Mi4A gateway config

Fabian Bläse fabian at blaese.de
Do Apr 14 23:15:14 CEST 2022


Hallo Rainer,

sowohl swconfig als auch DSA sind Treiberkonzepte zur Konfiguration von Hardware-Switches. Dabei ist der Switch häufig direkt auf dem selben SoC wie die CPU und mit einem oder mehreren Ports an mehr oder weniger gewöhnliche Ethernet-Interfaces angebunden. swconfig stammt dabei aus der OpenWrt-Ecke, DSA ist das, was es am Ende Upstream in den Linux-Kernel geschafft hat. Beide erfüllen in etwa den selben Zweck.

Bei DSA werden Switch-Ports als Linux-Interfaces dargestellt, wodurch sie sich wie gewöhnliches Interfaces konfigurieren lassen. Außerdem ist es damit möglich, Interfaces ohne VLANs unabhängig voneinander zu verwenden. Um zwischen Ports zu switchen, werden die Ports in eine Linux-Bridge gepackt, die dann (soweit möglich) auf der Hardware abgebildet wird. Zur Konfiguration von VLANs kann dann eine vlan-aware bridge verwendet werden.

Bei uns in der Firmware wird DSA aktuell durch eine zweite, unabhängige bridge (switch0) konfiguriert, wodurch das Verhalten von swconfig nachgebildet wird. Dadurch was der initiale Support von DSA-Geräten einfacher zu realisieren.

Ich denke, dass die Geräte mit swconfig-Treiber jetzt nach und nach auf DSA-Treiber umgestellt (bzw. entsprechende DSA-Treiber entwickelt) werden.

On 14.04.22 20:05, Rainer Batz wrote:
> - Mehrere Ports werden vom Switch meist ungetagged nach aussen gelegt, je nach config
>      - die Ports können entweder durch die interne Router-Verdrahtung verschiedenen VLANs zugeordnet sein
>      - oder wahrscheinlicher, die Ports können in einer Switch-config den VLANs zugeordnet werden
Den Unterschied zwischen diesen beiden Punkten verstehe ich nicht.. ?

>      - folglich könnte dann jeder Switch mit einem DSA Treiber ausgerüstet werden (falls vorhanden)?
Hmm. Es gibt bestimmt ein paar Dinge, die ein Switch zwingend können muss, damit dafür ein entsprechender DSA-Treiber gebaut werden kann. Außerdem braucht auch der Treiber für das Netzwerkinterface DSA-Unterstützung.

Ich gehe aber davon aus, dass dies für die meisten swconfig-Geräte realisierbar ist, zumindest theoretisch.

>      - woher weiß dann das Betriebssystem den Names eines Interface zB lan1 und wie das der Router am Gehäuse kennzeichnet? (vom Treiber des Switch-Chips oder des Routers?)
Das steht im Device Tree. Für den Xiaomi Mi Router 4A wäre das beispielsweise hier:
https://github.com/openwrt/openwrt/blob/master/target/linux/ramips/dts/mt7621_xiaomi_mi-router-4a-3g-v2.dtsi#L138-L157

Gruß
Fabian


Mehr Informationen über die Mailingliste franken