Sommes de contrôle : CC_BASE, CC_EXT, CC_DMI, pages CMIS · Spécifications et normes · Transceivers et câbles optiques · Documentation · CodingBox
CodingBox Documentation

Sommes de contrôle : CC_BASE, CC_EXT, CC_DMI, pages CMIS

Chaque spécification de gestion protège son bloc d’identité avec une ou plusieurs sommes de contrôle — un octet unique qui permet à l’hôte de détecter une EEPROM corrompue ou à moitié écrite avant de faire confiance à son contenu. Elles sont triviales à calculer et faciles à oublier : une somme de contrôle obsolète après une édition est la raison la plus courante pour laquelle un module fraîchement codé est signalé comme invalid.

L’algorithme

Toutes utilisent la même règle : additionner les octets de la plage couverte en valeurs non signées sur 8 bits et conserver les 8 bits de poids faible de la somme (somme modulo 256). Pas de CRC, pas de polynôme.

sum = 0
pour chaque octet b de la plage :
    sum = (sum + b) & 0xFF
checksum = sum

Exemple — les cinq premiers octets d’un SFP 10GBASE-SR : 03 04 07 10 00 → 3 + 4 + 7 + 16 + 0 = 30 = 1Eh. Continuez jusqu’à l’octet 62 et le résultat est CC_BASE.

Où vit chaque somme

SpécificationSommeEmplacementCouvre
SFF-8472 (SFP)CC_BASEA0h octet 63A0h octets 0–62
SFF-8472CC_EXTA0h octet 95A0h octets 64–94
SFF-8472CC_DMIA2h octet 95A2h octets 0–94 (seuils et constantes d’étalonnage)
SFF-8636 (QSFP)CC_BASEoctet 191page supérieure 00h octets 128–190
SFF-8636CC_EXToctet 223octets 192–222
INF-8077i (XFP)CC_BASEoctet 191octets 128–190
INF-8077iCC_EXToctet 223octets 192–222
CMISsomme de contrôle de pagepage 00h octet 222page 00h octets 128–221
CMISsomme de contrôle de pagepage 01h octet 255page 01h octets 130–254 (128–129 contiennent la version du firmware inactif et sont exclus)
CMISsomme de contrôle de pagepage 02h octet 255page 02h octets 128–254
CMISsomme de contrôle de pagepage 04h octet 255page 04h octets 128–254

Non couvertes par une somme de contrôle : les zones spécifiques au fournisseur (SFP A0h 96–127, QSFP 224–255, CMIS 223–255), l’EEPROM utilisateur, les moniteurs et indicateurs en direct, les seuils de la page 03h de QSFP, et les pages de voie CMIS. Les fournisseurs peuvent ajouter leurs propres champs d’intégrité dans l’espace fournisseur — ceux-ci ne font pas partie de la spécification.

Ce que font les hôtes avec elles

ComportementRésultat d’une somme incorrecte
Valident CC_BASE (la plupart des commutateurs et routeurs)module affiché comme invalid, unsupported ou EEPROM checksum error ; le port peut passer en errdisable ; le laser est souvent maintenu éteint
Valident aussi CC_EXTpareil, ou seulement une entrée de journal, selon la plateforme
Valident CC_DMIle DDM est affiché comme not supported ou les valeurs sont ignorées ; la liaison elle-même n’est pas affectée
Ignorent les sommes de contrôle (beaucoup de NIC, certains commutateurs ouverts)le module fonctionne ; l’erreur n’apparaît que dans les outils

Un échec de somme de contrôle est signalé en même temps que l’identité, donc un module qui a aussi un problème de politique affiche un message qui en cache un autre — vérifiez d’abord les sommes de contrôle, c’est la correction la moins coûteuse. Carte des symptômes : Index des symptômes.

Quand il faut recalculer

  • Après avoir édité n’importe quoi dans les plages couvertes — nom du fournisseur, numéro de pièce, numéro de série, code date, codes de conformité, longueur d’onde, longueurs, options, classe de puissance.
  • Après avoir appliqué des seuils ou constantes d’étalonnage sur SFP (CC_DMI).
  • Après avoir restauré une image partielle depuis un autre module.
  • Pas nécessaire pour des changements dans l’espace fournisseur, l’EEPROM utilisateur ou les octets de contrôle A2h.

Ordre des opérations : éditer → recalculer chaque somme de contrôle affectée → écrire → relire → vérifier. Écrire l’octet de somme de contrôle avant les données qu’il couvre laisse une fenêtre où une coupure d’alimentation produit un module invalide.

Sommes de contrôle et verrouillages constructeur

Des sommes de contrôle correctes sont nécessaires, mais pas suffisantes. Une plateforme stricte vérifie aussi le bloc fournisseur et, sur les conceptions verrouillées, une signature propriétaire dans l’espace fournisseur dont les sommes de contrôle de la spécification ne savent rien. Passer CC_BASE avec une identité rejetée ressemble à un cas de verrouillage constructeur, pas à un cas de somme de contrôle — Verrouillage constructeur, Champs fournisseur.

Dans CodingBox

CodingBox recalcule automatiquement CC_BASE, CC_EXT, CC_DMI et les sommes de contrôle de page CMIS à chaque écriture, et signale une incohérence à la lecture d’un module — un champ de somme de contrôle en rouge sur Check transceiver ou dans l'EEPROM editor signifie que le module a été édité ailleurs sans correction, ou que l’EEPROM est corrompue.

Où se situe chaque somme de contrôle par rapport à ses voisines : SFF-8472 A0h (63, 95), A2h (95), SFF-8636 supérieure (191, 223), pages supérieures CMIS (222, 255), XFP (191, 223).


Si vous trouvez une inexactitude ou une erreur dans cet article, sélectionnez le passage concerné et appuyez sur Ctrl+Enter pour .