a. La trame FC
Il existe deux types de trame Fibre Channel:
– Les trames de données qui permettent le transport des données utiles échangées entre les
équipements, des données de lien, etc.
– les trames de contrôle: ce sont les trames dans lesquelles sont contenues les messages
d’acquittement, de rejet, d’occupation, etc.
Ces deux type de trames ont tous deux le même format:
Figure 10 : Format de la trame Fibre Channel
R_CTL = Routing Control (1 octet) Permet de différencier fonctionnellement les types de trames
D_ID = Destination Identifier (3 octets) Adresse du port de destination
CS_CTL = Class Specific Control (1 octet) (*)
S_ID = Source Identifier (3 octets) Adresse du port source
Type = Upper Level Protocol (1 octet) (*)
F_CTL = Frame Control (3 octets) Trame de contrôle
SEQ_ID = Sequence Identifier (1 octet) Identifiant de sequence
DF_CTL = Data Field Control (1 octet) Indique la présence ou l’absence du Header optionnel dans la trame
SEQ_CNT = Sequence Count (2 octets Identifiant unique d’une trame à l’intérieur d’une séquence
OX_ID = Originator Exchange ID. (2 octets) Identifiant de l’initiateur de l’échange
RX_ID = Responder Exchange ID. (2 octets) Identifiant du “responder” de l’échange
Parameter = relative offset or link ctrl. info (4 octets) (*)
Les différentes champ de l’entête de trame sont expliqué dans l’annexe A.
b. Extension de la trame FC
Ce concept issu du nouveau standard FC-FS 2 consiste à ajouter un nouveau champ dans l’entête de
trame FC afin de pouvoir définir des réseaux virtuel ou d’assurer la qualité de service. Selon ce standard, le
format de trame FC se présente comme le montre la figure suivante:
Figure 11 : Le nouveau format de trame Fibre Channel
Le champ Extended_Header a une taille variable qui doit en octet, être un multiple de 4. Une trame FC peut
contenir un ou plusieurs champs Extended_Header différentié par la valeur de leur champ R_CTL. La figure
12 donne le format d’un champ Extended_Header.
Figure 12 : Structure du Champ Extended_Header
Le champ R_CTL d’un Extended_Header identifie son type. Sa valeur est comprise entre 0x50 et 0x5F. Les
valeurs de R_CTL comprises entre 0x51 et 0x5F sont réservés. Seule la valeur 0x50 est actuellement
utilisée. Un champ Extended_Header de R_CTL 0x50 est du type VFT_Header (Virtual Fabric Tagging
Header). Ce type permet créer une Fabric virtuel dans un réseau FC. Une fois l’utilisation du VFT_Header
négociée par les ports FC, le principe consiste à insérer ou à modifier le champ VFT_Header dans la trame.
De même le champ VFT_Header peut être supprimé lorsqu’il n’est pas supporté. La suppression, la
modification ou l’insertion ne doivent pas modifier les autres champs de la trame initiale sauf le CRC. Ce
dernier doit être évidemment recalculé après une quelconque modification de la trame. Par contre, si la
trame initiale possédait un CRC invalide, la trame restera invalide après la modification de la trame et le
calcul du nouveau CRC. Le format de VFT_Header se présente comme suit:
Figure 13 : Format de l’entête étendue VFT_Header
- Ver: Spécifie la version de VFT_Header. Les deux bits de ce champ doivent être
nuls.
- Type: Détermine le type de marquage. Ce champ doit être nul.
- Les bits R: Réservés. Ces deux bits doivent être nuls.
- Priority: Spécifie une priorité ou un QoS associé à la trame.
- VF_ID: Identifiant de la Fabric virtuel. Le tableau suivant répertorie l’ensemble des
valeurs possibles:
Tableau 5 : Les valeurs possibles du champ VF_ID
- HopCt: Détermine le nombre de saut restant avant que la trame ne soit supprimée
du réseau. Chaque commutateur décrémentera de 1 la valeur de ce champ avant
de retransmettre la trame. Toute trame de HopCt 0x01 sera supprimée par le
prochain commutateur. La valeur initiale de HopCt est par défaut de 16 mais peut
être configurée.
c. Séquences et échanges
Une séquence est un lot d’une ou plusieurs trames émises depuis un N_Port vers un autre, en plus des
trames de control associées. Elle est identifiée de façon unique dans chaque trame par la valeur du champ
SEQ_ID de la trame. La longueur d’une séquence est indéfinie et peut donc être composée d’un nombre
arbitraire de trames. Le port qui initialise la séquence est appelé “Sequence Initiator” et celui qui reçoit la
séquence est le “Sequence Recipient”.
Un échange est un ensemble d’un ou plusieurs séquences. L’initiateur d’un échange est appelé
“Exchange Originator” tandis que le récepteur est le “Exchange Responder”. Un échange est dit
unidirectionnel si les séquences qui la composent sont toutes initiées par le “Exchange Originator”, et
l’échange sera bidirectionnel si les séquences sont initiées tour à tour par le “Exchange Originator” et le
“Exchange Responder”. Un échange est identifié par deux paramètres qui sont le OX_ID (Originator
eXchange IDentifier) et le RX_ID (Response eXchange IDentifier).
Page suivante : II.2.2.4. Les classes de service
Retour au menu : Rapport de stage dans le cadre du projet STORM