Für Bring-up und Feldausfälle (siehe Inbetriebnahme-Post dieser Serie) sind Diagnose-APIs entscheidend. Der Fact-Check gegen die reale SWS bringt hier eine Überraschung zutage, die die ursprüngliche Planung ("wird auf Switch-Ebene statt PHY-Ebene geschaltet") korrigiert.
Die meisten der hier vorgestellten |
Die Weiterleitungs-APIs im Überblick
| EthSwt-API | Leitet weiter an |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
Jede dieser Funktionen nutzt die EthIf-Treiberabstraktion, um den Aufruf an
die über EthSwtPortTrcvRef (siehe Teil 3 dieser Serie) referenzierte
EthTrcv-Instanz weiterzureichen.
Praktische Konsequenz: Referenziert ein |
EthSwt_GetPortIdentifier: ein cleveres Detail
Diese Funktion liefert die OUI (Organizationally Unique Identifier, 24 Bit) des Ports — mit einer bemerkenswerten Kodierungs-Regel:
Kann die OUI vom referenzierten
EthTrcvüberEthTrcv_GetPhyIdentifierermittelt werden, setztEthSwt_GetPortIdentifierdie 8 höchstwertigen Bits auf0x00xxxxxxKann sie nicht ermittelt werden bzw. kommt sie direkt vom Switch-Port selbst, werden die 8 höchstwertigen Bits auf
0xFFxxxxxxgesetzt
Diese Kodierung erlaubt es, allein am Rückgabewert zu erkennen, woher die OUI stammt — ein nützliches Diagnosemerkmal, um zu unterscheiden, ob man Informationen über einen echten externen PHY-Chip oder über den Switch-Port selbst erhalten hat. |
Switch-eigene Diagnose: GetSwitchIdentifier
Im Gegensatz zu den reinen Weiterleitungs-APIs identifiziert
EthSwt_GetSwitchIdentifier tatsächlich den Switch-Chip selbst — relevant
für Multi-Switch-Systeme, in denen mehrere gleichartige Chips
unterschieden werden müssen. EthSwt_GetPortIdentifier dagegen ist ein
Hybrid: Es bevorzugt die OUI vom referenzierten EthTrcv, fällt aber auf
eine switch-eigene Kennung zurück, wenn kein Transceiver referenziert ist
oder dieser keine OUI liefern kann (siehe Kodierungsregel oben).
Fallstudie: ein Port zeigt sporadische Fehler
Signalqualität prüfen —
EthSwt_GetPortSignalQuality; liefert der Aufruf0xFFFFFFFF, fehlt entweder die Trcv-Referenz oder der PHY unterstützt keine SignalqualitätsmessungKabeldiagnose anstoßen —
EthSwt_RunPortCableDiagnostic(asynchron) und das Ergebnis überEthSwt_GetPortCableDiagnosticsResultabholenLoopback-Test —
EthSwt_SetPortLoopbackMode, um den Fehler auf PHY-/Leitungsebene einzugrenzen, unabhängig vom Switch-FabricPort-Identität verifizieren —
EthSwt_GetPortIdentifier, um sicherzustellen, dass tatsächlich der erwartete Port bzw. PHY-Chip angesprochen wird
Zusammenfassung
| Aspekt | Kernaussage |
|---|---|
Weiterleitungs-APIs | Cable-Diagnose, Test-/Loopback-/Tx-Modus und Signalqualität sind
reine Wrapper um die entsprechende |
Ohne Trcv-Referenz | Diese APIs liefern |
OUI-Kodierung |
|
Switch-eigene Diagnose |
|