Checksums: CC_BASE, CC_EXT, CC_DMI, CMIS-pagina’s · Specificaties en standaarden · Optische transceivers en kabels · Documentatie · CodingBox
CodingBox Documentatie

Checksums: CC_BASE, CC_EXT, CC_DMI, CMIS-pagina’s

Elke beheerspecificatie beschermt het identiteitsblok met één of meer checksums: een enkele byte waarmee de host een beschadigde of halfgeschreven EEPROM detecteert voordat hij de inhoud vertrouwt. Ze zijn eenvoudig te berekenen en worden gemakkelijk vergeten: een verouderde checksum na het bewerken is de meest voorkomende reden waarom een pas gecodeerde module als ongeldig wordt gemeld.

Het algoritme

Ze gebruiken allemaal dezelfde regel: tel de bytes van het gedekte bereik op als 8-bitwaarden zonder teken en behoud de onderste 8 bits van de som (som modulo 256). Geen CRC, geen polynoom.

sum = 0
for each byte b in range:
    sum = (sum + b) & 0xFF
checksum = sum

Voorbeeld: de eerste vijf bytes van een 10GBASE-SR SFP: 03 04 07 10 00 → 3 + 4 + 7 + 16 + 0 = 30 = 1Eh. Ga door tot en met byte 62; het resultaat is CC_BASE.

Waar elke checksum staat

SpecificatieChecksumLocatieDekt
SFF-8472 (SFP)CC_BASEA0h byte 63A0h bytes 0–62
SFF-8472CC_EXTA0h byte 95A0h bytes 64–94
SFF-8472CC_DMIA2h byte 95A2h bytes 0–94 (drempels en kalibratieconstanten)
SFF-8636 (QSFP)CC_BASEbyte 191upper page 00h bytes 128–190
SFF-8636CC_EXTbyte 223bytes 192–222
INF-8077i (XFP)CC_BASEbyte 191bytes 128–190
INF-8077iCC_EXTbyte 223bytes 192–222
CMISpaginachecksumpage 00h byte 222page 00h bytes 128–221
CMISpaginachecksumpage 01h byte 255page 01h bytes 130–254 (128–129 bevatten de inactieve firmwareversie en zijn uitgesloten)
CMISpaginachecksumpage 02h byte 255page 02h bytes 128–254
CMISpaginachecksumpage 04h byte 255page 04h bytes 128–254

Niet door een checksum gedekt zijn de fabrikantspecifieke gebieden (SFP A0h 96–127, QSFP 224–255, CMIS 223–255), de gebruikers-EEPROM, de actuele monitors en vlaggen, QSFP page 03h-drempels en CMIS-lanepagina's. Fabrikanten kunnen eigen integriteitsvelden in de fabrikantruimte toevoegen; die maken geen deel uit van de specificatie.

Wat hosts ermee doen

GedragResultaat van een slechte checksum
CC_BASE valideren (de meeste switches en routers)module weergegeven als ongeldig, niet ondersteund of EEPROM checksum error; poort kan errdisable krijgen; laser blijft vaak uit
Ook CC_EXT validerenhetzelfde, of alleen een logvermelding, afhankelijk van het platform
CC_DMI validerenDDM weergegeven als niet ondersteund of waarden genegeerd; de link zelf blijft onaangetast
Checksums negeren (veel NICs, enkele open switches)module werkt; de fout verschijnt alleen in tools

Een checksumfout wordt samen met de identiteit gemeld. Een module met ook een beleidsprobleem toont dus één melding die de andere verbergt. Controleer eerst de checksums; dat is de eenvoudige oplossing. Symptoomkaart: Symptoomindex.

Wanneer opnieuw berekenen nodig is

  • Na het bewerken van alles binnen de gedekte bereiken: fabrikantnaam, artikelnummer, serienummer, datumcode, conformiteitscodes, golflengte, lengtes, opties, vermogensklasse.
  • Na het toepassen van drempels of kalibratieconstanten op SFP (CC_DMI).
  • Na het herstellen van een gedeeltelijke image van een andere module.
  • Niet nodig voor wijzigingen in fabrikantruimte, gebruikers-EEPROM of A2h-besturingsbytes.

Volgorde van bewerkingen: bewerken → elke betrokken checksum opnieuw berekenen → schrijven → teruglezen → verifiëren. De checksumbyte vóór de gegevens schrijven die hij dekt, laat een venster waarin stroomuitval een ongeldige module veroorzaakt.

Checksums en fabrikantvergrendelingen

Correcte checksums zijn noodzakelijk, maar niet voldoende. Een strikt platform controleert ook het fabrikantblok en bij vergrendelde ontwerpen een bedrijfseigen handtekening in de fabrikantruimte waar de checksums uit de specificatie niets van weten. Een geldige CC_BASE met afgewezen identiteit wijst op een geval van fabrikantvergrendeling, niet op een checksumprobleem: Fabrikantvergrendeling, Fabrikantvelden.

In CodingBox

CodingBox berekent CC_BASE, CC_EXT, CC_DMI en de CMIS-paginachecksums automatisch opnieuw bij elke schrijfbewerking en markeert een afwijking bij het lezen van een module. Een rood checksumveld in Check transceiver of in de EEPROM editor betekent dat de module elders is bewerkt zonder dit te corrigeren, of dat de EEPROM beschadigd is.

Waar elke checksum tussen de aangrenzende velden staat: SFF-8472 A0h (63, 95), A2h (95), SFF-8636 bovenste pagina's (191, 223), CMIS bovenste pagina's (222, 255), XFP (191, 223).


Vindt u een onjuistheid of fout in dit materiaal? Selecteer het betreffende fragment en druk op Ctrl+Enter om .