Codes de conformité : octets 3–10, 36 et tables étendues
Un hôte ne sait pas ce qu’est un module d’après son nom de fournisseur — il le sait d’après les codes de conformité : des champs de bits qui disent « je suis 10GBASE-LR » ou « je suis un SFP cuivre 1000BASE-T », plus un code étendu unique pour tout ce qui a été inventé une fois les champs de bits à court de place. Les hôtes s’en servent pour nommer le type de module, décider quels débits offrir, choisir le FEC et l’éclatement (breakout), et — sur les plateformes strictes — pour refuser un module dont les codes ne correspondent pas au port. Les régler correctement est la partie la plus importante du codage d’un module.
Deux générations de codage
| Mécanisme | Où | Fonctionnement |
|---|---|---|
| Champs de bits classiques | SFF-8472 octets 3–10 ; SFF-8636 octets 131–138 et 164 | un bit par standard ; plusieurs peuvent être positionnés (double débit, multiprotocole) |
| Conformité de spécification étendue | SFF-8472 octet 36 ; SFF-8636 octet 192 | une valeur de SFF-8024 Table 4-4 : 25G, 100G, 200G, 400G, PMD MSA |
| Applications | descripteurs CMIS | ID d’interface hôte + ID d’interface média + nombre de voies, plusieurs par module — voir CMIS |
Un module 25G ou 100G laisse la plupart des bits classiques à zéro et place son identité dans l’octet 36 ou 192 ; un module 10G/1G fait l’inverse. Les modules à double débit 10G/25G utilisent les deux.
SFF-8472 octets 3–10 (famille SFP)
| Octet | Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
|---|---|---|---|---|---|---|---|---|
| 3 — 10G Ethernet / InfiniBand | 10GBASE-ER | 10GBASE-LRM | 10GBASE-LR | 10GBASE-SR | IB 1X SX | IB 1X LX | IB 1X cuivre actif | IB 1X cuivre passif |
| 4 — ESCON / SONET | ESCON MMF 1310 LED | ESCON SMF 1310 laser | OC-192 courte portée | SONET bit de portée 1 | SONET bit de portée 2 | OC-48 longue | OC-48 intermédiaire | OC-48 courte |
| 5 — SONET | réservé | OC-12 SM longue | OC-12 SM intermédiaire | OC-12 courte | réservé | OC-3 SM longue | OC-3 SM intermédiaire | OC-3 courte |
| 6 — Ethernet | BASE-PX | BASE-BX10 | 100BASE-FX | 100BASE-LX/LX10 | 1000BASE-T | 1000BASE-CX | 1000BASE-LX | 1000BASE-SX |
| 7 — longueur de liaison FC / technologie | très longue (V) | courte (S) | intermédiaire (I) | longue (L) | moyenne (M) | réservé | laser courte longueur d’onde, Rx linéaire (SA) | laser longue longueur d’onde (LC) |
| 8 — technologie FC / câble | électrique inter-boîtier (EL) | laser courte longueur d’onde sans OFC (SN) | laser courte longueur d’onde avec OFC (SL) | laser longue longueur d’onde (LL) | câble actif | câble passif | réservé | réservé |
| 9 — média FC | bi-axial (TW) | paire torsadée (TP) | coaxial miniature (MI) | coaxial vidéo (TV) | multimode 62,5 µm (M6) | multimode 50 µm (M5/M5E) | réservé | monomode (SM) |
| 10 — débit FC | 1200 Mo/s | 800 Mo/s | 1600 Mo/s | 400 Mo/s | 3200 Mo/s | 200 Mo/s | voir octet 62 | 100 Mo/s |
L’octet 62 (Fibre Channel speed 2) prolonge la liste des débits pour 64GFC et au-delà. L’octet 36 porte le code étendu. L’octet 12 donne le débit nominal en ×100 Mb/s (FFh → octet 66 en ×250 Mb/s), l’octet 11 l’encodage, l’octet 13 l’identifiant de débit pour sélection de débit.
Codages SFP typiques
| Module | Octet 3 | Octet 6 | Octet 8 | Octet 36 | Octet 12 | Octet 11 | Longueur d’onde |
|---|---|---|---|---|---|---|---|
| 1000BASE-SX | 00h | 01h | 00h | 00h | 0Dh (1,3 Gb/s) | 01h 8B/10B | 850 nm |
| 1000BASE-LX | 00h | 02h | 00h | 00h | 0Dh | 01h | 1310 nm |
| 1000BASE-T cuivre | 00h | 08h | 00h | 00h | 0Dh | 01h | 0 (s.o.) |
| 10GBASE-SR | 10h | 00h | 00h | 00h | 67h (10,3 Gb/s) | 06h 64B/66B | 850 nm |
| 10GBASE-LR | 20h | 00h | 00h | 00h | 67h | 06h | 1310 nm |
| DAC passif 10G | 00h | 00h | 04h | 00h | 67h | 06h | 0, octet 60 = conformité du câble |
| 25GBASE-SR | 00h | 00h | 00h | 02h | FFh (octet 66 = 67h → 25,75 Gb/s) | 06h | 850 nm |
| 25GBASE-LR | 00h | 00h | 00h | 03h | FFh / 67h | 06h | 1310 nm |
| DAC passif 25G CA-25G-N | 00h | 00h | 04h | 0Dh | FFh / 67h | 06h | 0 |
| SR double débit 10G/25G | 10h | 00h | 00h | 02h | FFh / 67h | 06h | 850 nm |
Les octets de longueur 14–19 doivent concorder : un module SR déclare une portée OM3/OM4, un module LR des kilomètres, un DAC des mètres dans l’octet 18.
SFF-8636 octets 131–138, 164 (famille QSFP)
| Octet | Contenu |
|---|---|
| 131 — Ethernet 10/40G | bit 7 étendu (utiliser l’octet 192), 6 10GBASE-LRM, 5 10GBASE-LR, 4 10GBASE-SR, 3 40GBASE-CR4, 2 40GBASE-SR4, 1 40GBASE-LR4, 0 câble actif 40G (XLPPI) |
| 132 — SONET | OC-48 portée longue / intermédiaire / courte, 40G OTN |
| 133 — SAS/SATA | SAS 6 / 12 / 24 Gb/s |
| 134 — Gigabit Ethernet | bit 3 1000BASE-T, 2 1000BASE-CX, 1 1000BASE-LX, 0 1000BASE-SX |
| 135 — longueur de liaison et technologie FC | mêmes significations de bits que l’octet 7 du SFP |
| 136 — technologie d’émetteur FC | bits EL, SN, SL, LL comme l’octet 8 du SFP |
| 137 — média FC | TW, TP, MI, TV, M6, M5, OM3, SM |
| 138 — débit FC | 100 … 3200 Mo/s, indicateur étendu |
| 164 — module étendu | débits InfiniBand : SDR, DDR, QDR, FDR, EDR |
| 192 — conformité étendue | valeur de la Table 4-4 |
Typiquement : 40GBASE-SR4 → octet 131 = 04h, octet 192 = 00h ; 100GBASE-SR4 → octet 131 = 80h (étendu), octet 192 = 02h ; 100G CWDM4 → 80h / 06h ; DAC 100GBASE-CR4 → 80h / 0Bh avec connecteur 23h.
CMIS — applications plutôt que bits
Un module CMIS liste jusqu’à 15 applications, chacune associant une interface électrique hôte à une interface média (des codes SFF-8024 dans les deux cas) et indiquant le nombre de voies. Un module 400G DR4 peut annoncer 400GAUI-8 ↔ 400GBASE-DR4 (8:4) et 100GAUI-2 ↔ 100GBASE-DR (2:1, pour un éclatement (breakout) 4×100G). L’hôte en sélectionne une par chemin de données ; ce qui n’est pas annoncé ne peut pas être configuré. Détails et déroulement de la sélection : CMIS.
Comment les hôtes utilisent les codes
- Nommage — la chaîne de type affichée en CLI (
10GBASE-LR,QSFP-100G-SR4) est dérivée de ces octets, souvent le premier bit positionné trouvé dans un ordre fixe. - Offre de débits — un hôte ne liste que les débits dont le code est présent ; un module 25G avec l’octet 36 = 02h mais sans bit à l’octet 3 ne se verra pas proposer le 10G (Vitesse et débit).
- Sélection du FEC — les codes étendus portent l’hypothèse de FEC (CA-25G-L/S/N ; CAUI-4 avec ou sans RS-FEC) et certains hôtes règlent le FEC d’après eux (FEC et link training).
- Cuivre ou optique — les bits 2–3 de l’octet 8, le connecteur 23h et les technologies cuivre de l’octet 147 font basculer l’hôte vers la gestion DAC (autonégociation, link training).
- Politique — les plateformes strictes comparent les codes avec le mode du port et avec leur base de compatibilité ; une incohérence produit unsupported ou speed and type not supported même quand le bloc fournisseur est accepté (Verrouillage constructeur).
Règles de codage
- Ne positionner que les bits que le matériel satisfait réellement ; déclarer 10GBASE-LR sur un module SR transforme « pas de liaison » en « liaison avec erreurs ».
- Garder toute l’identité cohérente : conformité ↔ longueur d’onde ↔ longueurs ↔ encodage ↔ débit nominal ↔ connecteur ↔ technologie d’émetteur.
- Pour 25G et plus, remplir l’octet 36 / 192 et régler l’octet 12 / 140 à FFh avec le débit ×250 Mb/s dans l’octet 66 / 222.
- Pour un DAC, coder les bits de technologie de câble, la longueur en mètres, le connecteur 23h et les octets d’atténuation/conformité à la place d’une longueur d’onde.
- Recalculer ensuite les sommes de contrôle (Sommes de contrôle).
Dans CodingBox
L’écran Check transceiver décode chaque bit ci-dessus en noms clairs et liste les applications CMIS ; l’EEPROM editor modifie les octets de code champ par champ, affiche la chaîne de type résultante, et corrige CC_BASE et CC_EXT à l’écriture.
Les tables de bits complètes dans leur contexte d’octets : Carte SFF-8472 A0h (octets 3–10, 36, 62), Carte des pages supérieures SFF-8636 (131–138, 164, 192), Carte XFP (131–138).