mirror of
https://github.com/kernelkit/infix.git
synced 2026-07-22 09:13:01 +02:00
common: nameif: Handle nested dsa ports
In setups like this...
CPU
eth0
|
.----0----.
| dst0sw0 |
'-1-2-3-4-'
|
.----0----.
| dst1sw0 |
'-1-2-3-4-'
...both eth0 and dst0sw0p4 are DSA ports. But the latter is _also_ a
physical port as far as devlink is concerned. As a result, it would
first be marked as "internal" and is then instantly reclassified as a
"port".
Catch this condition and stick with the initial "internal"
classification.
This commit is contained in:
@@ -34,6 +34,12 @@ ports=$(devlink -j port | jq -r '.port[]
|
||||
| select(.flavour == "physical")
|
||||
| .netdev')
|
||||
for iface in $ports; do
|
||||
# On systems with multiple switch trees, a port may be _both_
|
||||
# a physical port, registered with devlink, _and_ a DSA
|
||||
# port. In those cases, hold on to our initial "internal"
|
||||
# classification.
|
||||
[ $(ip -j link show dev "$iface" | jq -r '.[0].group') = internal ] && continue
|
||||
|
||||
ip link set "$iface" group port
|
||||
done
|
||||
|
||||
|
||||
Reference in New Issue
Block a user