Re: B53 DSA switch problem on Banana Pi-R1 on Fedora 26 - systemd-networkd problem

From: Gerhard Wiesinger
Date: Mon May 28 2018 - 01:25:06 EST


On 27.05.2018 22:35, Florian Fainelli wrote:
Le 05/27/18 Ã 12:18, Gerhard Wiesinger a ÃcritÂ:
On 27.05.2018 21:01, Gerhard Wiesinger wrote:
On 24.05.2018 08:22, Gerhard Wiesinger wrote:
On 24.05.2018 07:29, Gerhard Wiesinger wrote:
After some analysis with Florian (thnx) we found out that the
current implementation is broken:

https://patchwork.ozlabs.org/patch/836538/
https://github.com/torvalds/linux/commit/c499696e7901bda18385ac723b7bd27c3a4af624#diff-a2b6f8d89e18de600e873ac3ac43fa1d


Florians comment:

c499696e7901bda18385ac723b7bd27c3a4af624 ("net: dsa: b53: Stop using
dev->cpu_port incorrectly") since it would result in no longer setting
the CPU port as tagged for a specific VLAN. Easiest way for you right
now is to just revert it, but this needs some more thoughts for a
proper
upstream change. I will think about it some more.
Can confirm 4.14.18-200.fc26.armv7hl works, 4.15.x should be broken.

# Kernel 4.14.x ok
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/drivers/net/dsa/b53?h=v4.14.43

# Kernel 4.15.x should be NOT ok
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/log/drivers/net/dsa/b53?h=v4.15.18


Forgot to mention: What's also strange is that the VLAN ID is very high:

# 4.14.18-300.fc27.armv7hl, iproute-4.15.0-1.fc28.armv7hl
ip -d link show eth0.101 | grep "vlan protocol"
ÂÂÂ vlan protocol 802.1Q id 3069279796 <REORDER_HDR>
ip -d link show eth0.102 | grep "vlan protocol"
ÂÂÂ vlan protocol 802.1Q id 3068673588 <REORDER_HDR>

On older kernels this looks ok: 4.12.8-200.fc25.armv7hl,
iproute-4.11.0-1.fc25.armv7hl:
Âip -d link show eth0.101 | grep "vlan protocol"
ÂÂÂ vlan protocol 802.1Q id 101 <REORDER_HDR>
ip -d link show eth0.102 | grep "vlan protocol"
ÂÂÂ vlan protocol 802.1Q id 102 <REORDER_HDR>

Ideas?
That is quite likely a kernel/iproute2 issue, if you configured the
switch through bridge vlan to have the ports in VLAN 101 and VLAN 102
and you do indeed see frames entering eth0 with these VLAN IDs, then
clearly the bridge -> switchdev -> dsa -> b53 part is working just fine
and what you are seeing is some for of kernel header/netlink
incompatibility.

Yes, sniffing on eth0 shows the correct VLAN IDs, e.g. 101.

Yes, my guess is that tools are wrong and have random values on 2 calls in different values (e.g. alsopromiscuity ) , see below ....

Who can fix it?

BTW: On FC27 same issue with same kernel version, but guess older iproute version.

Ciao,

Gerhard


ip -d link show eth0.101

13: eth0.101@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br0 state UP mode DEFAULT group default qlen 1000
ÂÂÂ link/ether 02:18:09:ab:cd:ef brd ff:ff:ff:ff:ff:ff promiscuity 3068661300
ÂÂÂ vlan protocol 802.1Q id 3068661300 <REORDER_HDR>
ÂÂÂ bridge_slave state forwarding priority 32 cost 4 hairpin off guard off root_block off fastleave off learning on flood on port_id 0x8005 port_no 0x5 designa
ted_port 3068661300 designated_cost 3068661300 designated_bridge 8000.66:5d:a2:ab:cd:ef designated_root 8000.66:5d:a2:ab:cd:ef hold_timerÂÂÂ 0.00 message_age_tim
erÂÂÂ 0.00 forward_delay_timerÂÂÂ 0.00 topology_change_ack 3068661300 config_pending 3068661300 proxy_arp off proxy_arp_wifi off mcast_router 3068661300 mcast_
fast_leave off mcast_flood on vlan_tunnel off addrgenmode eui64 numtxqueues 3068661300 numrxqueues 3068661300 gso_max_size 3068661300 gso_max_segs 3068661300

ip -d link show eth0.101
13: eth0.101@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br0 state UP mode DEFAULT group default qlen 1000
ÂÂÂ link/ether 02:18:09:ab:cd:ef brd ff:ff:ff:ff:ff:ff promiscuity 3068735028
ÂÂÂ vlan protocol 802.1Q id 3068735028 <REORDER_HDR>
ÂÂÂ bridge_slave state forwarding priority 32 cost 4 hairpin off guard off root_block off fastleave off learning on flood on port_id 0x8005 port_no 0x5 designa
ted_port 3068735028 designated_cost 3068735028 designated_bridge 8000.66:5d:ab:cd:ef designated_root 8000.66:5d:a2:ab:cd:ef hold_timerÂÂÂ 0.00 message_age_tim
erÂÂÂ 0.00 forward_delay_timerÂÂÂ 0.00 topology_change_ack 3068735028 config_pending 3068735028 proxy_arp off proxy_arp_wifi off mcast_router 3068735028 mcast_
fast_leave off mcast_flood on vlan_tunnel off addrgenmode eui64 numtxqueues 3068735028 numrxqueues 3068735028 gso_max_size 3068735028 gso_max_segs 3068735028