Teil 4 dieser Serie hat MAC-Learning-Modi bereits kurz erwähnt. Dieser Post vertieft, was hinter der ARL-Tabelle (Address Resolution / Learning Table) steckt und welche zwei Lernmodi IEEE 802.1Q — und mit ihm AUTOSAR — genau vorschreiben.
Die Lernphase beim Start-up
Nach Montage und Erst-Inbetriebnahme eines Netzwerks durchläuft der Switch laut SWS mehrere aufeinanderfolgende Lernphasen (MAC-Learning und IP-Adresszuweisung), bevor die gelernten Parameter persistent gespeichert werden, um bei künftigen Starts sofort verfügbar zu sein. Ein typischer Auslöser für diesen Auto-Konfigurationsprozess ist laut SWS eine Diagnoseanfrage über den Bus oder eine Broadcast-Nachricht im Ethernet-Netz.
Erstinbetriebnahme
│
▼
MAC-Learning-Phase (optional) ── Nachrichten fließen durchs Netz,
│ Switch lernt neue MAC-Adressen
▼
IP-Adresszuweisung
│
▼
Persistente Speicherung der gelernten
Parameter (NVM) ── ab dem nächsten Start sofort verfügbarSVL und IVL — die zwei Lernmodi nach IEEE 802.1Q
| Modus | Funktionsweise |
|---|---|
SVL (Shared VLAN Learning) | Der Switch berücksichtigt Quell-MAC-Adresse und Eingangsport, um einen ARL-Tabelleneintrag zu erzeugen — die VLAN-ID spielt für die Zuordnung keine Rolle |
IVL (Independent VLAN Learning) | Der Switch berücksichtigt zusätzlich die VLAN-ID des empfangenen Frames — dieselbe MAC-Adresse kann so unterschiedlichen Ports zugeordnet werden, je nachdem in welchem VLAN sie auftritt |
Die Wahl zwischen SVL und IVL ist keine Geschmacksfrage, sondern hängt an der Netzwerktopologie: SVL eignet sich, wenn garantiert ist, dass eine MAC-Quelladresse ausschließlich an einem Switch-Port auftritt. Andernfalls — z. B. wenn dieselbe MAC-Adresse in mehreren VLANs an unterschiedlichen Ports sichtbar sein kann — ist IVL zwingend erforderlich, um eine eindeutige Zuordnung sicherzustellen. |
Gesteuert wird der Modus über EthSwtMacAddressLearningMode
(SVL/IVL), aktiviert werden muss die Lernphase zusätzlich über
EthSwt_SetMacLearningMode (siehe Teil 4 dieser Serie).
Statische vs. dynamische Einträge
Vordefinierte MAC-Adressen (z. B. Multicast-Adressen, die beim Fahrzeugnetz-Design festgelegt wurden) existieren unabhängig vom Lernmodus. Die SWS unterscheidet dabei explizit:
Bei SVL werden vordefinierte MAC-Adressen ohne VLAN-Membership-Beziehung konfiguriert
Bei IVL benötigen vordefinierte MAC-Adressen eine VLAN-Membership-Beziehung
ARL-Tabelle auslesen: das Zwei-Phasen-Muster
EthSwt_GetArlTable liefert eine Liste von Structs
(MAC-Adresse, VLAN-ID, Port) — mit einem cleveren Zwei-Phasen-Muster:
uint16 numberOfElements = 0;
EthSwt_GetArlTable(switchIdx, &numberOfElements, NULL_PTR);
// → numberOfElements enthält jetzt die Anzahl gültiger Einträge,
// ohne dass Daten kopiert wurden
Eth_MacVlanType buffer[numberOfElements];
EthSwt_GetArlTable(switchIdx, &numberOfElements, buffer);
// → buffer ist jetzt mit bis zu numberOfElements Einträgen gefülltWird |
Fallstudie: falscher Lernmodus führt zu Frames am falschen Port
Symptom: Ein Gerät ist über mehrere VLANs an unterschiedlichen Switch-Ports erreichbar, aber Frames werden nur an einen Port zugestellt
EthSwt_GetArlTableauslesen und prüfen, ob der Eintrag für die betroffene MAC-Adresse nur einen einzigen Port pro VLAN-ID zeigtEthSwtMacAddressLearningModeprüfen — steht der Switch auf SVL, obwohl das Gerät in mehreren VLANs an unterschiedlichen Ports auftritt, ist das die UrsacheUmstellung auf IVL, damit MAC-Adresse und VLAN-ID gemeinsam den Port bestimmen
Zusammenfassung
| Aspekt | Kernaussage |
|---|---|
SVL | MAC-Adresse + Eingangsport, keine VLAN-Berücksichtigung — nur bei eindeutiger Port-Zuordnung geeignet |
IVL | MAC-Adresse + VLAN-ID + Eingangsport — notwendig bei mehrdeutigen Topologien |
Auslesen |
|
Statische Einträge | Konfiguration unterscheidet sich je nach Lernmodus (mit/ohne VLAN-Membership) |