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ügbar

SVL und IVL — die zwei Lernmodi nach IEEE 802.1Q

ModusFunktionsweise

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üllt

Wird numberOfElements mit 0 aufgerufen, kopiert die Funktion laut SWS keine Daten, sondern liefert nur die Anzahl der aktuell verfügbaren Einträge zurück — arlTableListPointer darf in diesem Fall NULL_PTR sein. Das erlaubt es, den benötigten Puffer exakt passend zu allozieren, statt mit einer geschätzten Maximalgröße zu arbeiten.

Fallstudie: falscher Lernmodus führt zu Frames am falschen Port

  1. Symptom: Ein Gerät ist über mehrere VLANs an unterschiedlichen Switch-Ports erreichbar, aber Frames werden nur an einen Port zugestellt

  2. EthSwt_GetArlTable auslesen und prüfen, ob der Eintrag für die betroffene MAC-Adresse nur einen einzigen Port pro VLAN-ID zeigt

  3. EthSwtMacAddressLearningMode prüfen — steht der Switch auf SVL, obwohl das Gerät in mehreren VLANs an unterschiedlichen Ports auftritt, ist das die Ursache

  4. Umstellung auf IVL, damit MAC-Adresse und VLAN-ID gemeinsam den Port bestimmen

Zusammenfassung

AspektKernaussage

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

EthSwt_GetArlTable mit Zwei-Phasen-Muster: erst Anzahl abfragen, dann Puffer exakt dimensioniert füllen

Statische Einträge

Konfiguration unterscheidet sich je nach Lernmodus (mit/ohne VLAN-Membership)