Der vierte und letzte Teil der EthSwt-Grundserie zeigt drei Laufzeit-Themen: VLAN-Umschaltung, Port-Mirroring und MAC-Learning-Modi. Besonders das Mirroring fällt beim Blick in die reale SWS deutlich mächtiger aus, als man mit einem einfachen "Source-Port/Target-Port"-Modell erwarten würde.
VLAN-Umschaltung zur Laufzeit
EthSwt_EnableVlan schaltet kein neues VLAN frei, sondern aktiviert
oder deaktiviert ein bereits vorkonfiguriertes VLAN an einem bestimmten
Port:
Std_ReturnType EthSwt_EnableVlan(
uint8 SwitchIdx,
uint8 SwitchPortIdx,
uint16 VlanId,
boolean Enable // TRUE = VLAN an diesem Port aktivieren
// FALSE = Frames mit dieser VLAN-ID werden verworfen
);
|
Bei Enable = FALSE werden Frames mit der betreffenden VLAN-ID am Port
verworfen — praktisch relevant z. B. um einen Diagnose- oder Werkstatt-Port
temporär vom Rest des Fahrzeugnetzes zu isolieren, ohne die komplette
ARXML-Konfiguration neu aufzuspielen.
Port-Mirroring: mächtiger als gedacht
Die reale EthSwt_PortMirrorCfgType-Struktur (Kapitel 8.2.5) geht weit über
ein simples "Port A spiegelt auf Port B" hinaus:
| Feld | Bedeutung |
|---|---|
| Nur Frames mit passender Quell-/Ziel-MAC-Adresse spiegeln;
|
| Nur Frames einer bestimmten VLAN-ID spiegeln; |
| Nur jeden n-ten Frame spiegeln (z. B. |
|
|
| Bitmasken (ein Bit pro |
| Der Port, an dem der gespiegelte Traffic ausgegeben wird |
| VLAN-ID(s) für Re-/Double-Tagging, sofern nicht bereits durch die Switch-Konfiguration vorgegeben |
Eine Port-Mirror-Konfiguration wird laut SWS pro Ethernet-Switch gepflegt (nicht pro Port) — die Bitmasken für Ingress/Egress erlauben es aber, mehrere Quell-Ports gleichzeitig auf einen einzigen Capture-Port zu spiegeln. |
Relevante APIs: EthSwt_WritePortMirrorConfiguration,
EthSwt_ReadPortMirrorConfiguration,
EthSwt_DeletePortMirrorConfiguration,
EthSwt_SetPortMirrorState / EthSwt_GetPortMirrorState.
|
MAC-Learning-Modi
EthSwt_SetMacLearningMode / EthSwt_GetMacLearningMode kennen laut SWS
genau drei Modi:
| Modus | Bedeutung |
|---|---|
HW-Learning aktiviert | Der Switch-Chip lernt MAC-Adressen eigenständig in Hardware |
HW-Learning deaktiviert | Kein automatisches Lernen — die ARL-Tabelle bleibt statisch, wie sie konfiguriert wurde (siehe den ARL-Tabelle-Post dieser Serie) |
SW-Learning aktiviert | Lernen erfolgt softwareseitig, z. B. über eine Integrationsroutine, die unbekannte Quelladressen auswertet |
Die SWS betont ausdrücklich, dass dieses Feature hardwareabhängig ist —
nicht jeder Switch-Chip unterstützt alle drei Modi. |
Diagnose über Zähler
Für die laufende Diagnose stehen mehrere Zähler-APIs zur Verfügung:
EthSwt_GetCounterValues, EthSwt_GetRxStats, EthSwt_GetTxStats und
EthSwt_GetTxErrorCounterValues. In Kombination mit Mirroring und
MAC-Learning-Status lassen sich damit typische Netzwerkprobleme eingrenzen,
ohne den Datenverkehr selbst zu beeinflussen.
Fallstudie: Broadcast-Sturm eingrenzen
Verdacht erhärten —
EthSwt_GetRxStatsan mehreren Ports zeigt ungewöhnlich hohe Broadcast-/Multicast-RatenGezielt spiegeln — Port-Mirror-Konfiguration mit
VlanIdFilterauf das betroffene VLAN undMirroringPacketDividerauf einen praktikablen Wert setzen, Capture-Port auf den Diagnose-Anschluss legenMAC-Learning prüfen —
EthSwt_GetMacLearningModeje beteiligtem Port abfragen; ein Loop im Netz zeigt sich oft durch ständig wechselnde ARL-Einträge für dieselbe QuelladresseIsolieren — betroffenes VLAN an einem verdächtigen Port per
EthSwt_EnableVlan(…, FALSE)temporär deaktivieren, um die Fehlerquelle einzugrenzen
Serie (abgeschlossen)
| Teil | Thema | Status |
|---|---|---|
1 | Grundlagen, SWS & Architektur | fertig |
2 | API & Initialisierung | fertig |
3 | ARXML-Konfiguration | fertig |
4 | VLAN-Management, Mirroring & Diagnose | dieser Post |
Die Grundserie ist damit komplett. Die folgenden Einzelposts vertiefen Spezialthemen: Hardware-Architektur, TSN, MACsec im Switch, Firewall-Interaktion, Global-Time-Support, ARL-Tabelle/MAC-Learning im Detail sowie Diagnose- und Registerzugriff.