]> git.baikalelectronics.ru Git - kernel.git/commit
net: dsa: felix: send VLANs on CPU port as egress-tagged
authorVladimir Oltean <vladimir.oltean@nxp.com>
Wed, 27 May 2020 16:48:03 +0000 (19:48 +0300)
committerDavid S. Miller <davem@davemloft.net>
Wed, 27 May 2020 18:40:38 +0000 (11:40 -0700)
commit37b9ff23525ff5d9bfcd26d7676bb987cf384b7e
treeda46b2e726e23fb7a142eb6ba697a11a1c09db5c
parent5504be6bb66d8a14daaf26e271e735b285c10b28
net: dsa: felix: send VLANs on CPU port as egress-tagged

As explained in other commits before (b1807086cfc2 and 7959c264b1a7),
ocelot switches have a single egress-untagged VLAN per port, and the
driver would deny adding a second one while an egress-untagged VLAN
already exists.

But on the CPU port (where the VLAN configuration is implicit, because
there is no net device for the bridge to control), the DSA core attempts
to add a VLAN using the same flags as were used for the front-panel
port. This would make adding any untagged VLAN fail due to the CPU port
rejecting the configuration:

bridge vlan add dev swp0 vid 100 pvid untagged
[ 1865.854253] mscc_felix 0000:00:00.5: Port already has a native VLAN: 1
[ 1865.860824] mscc_felix 0000:00:00.5: Failed to add VLAN 100 to port 5: -16

(note that port 5 is the CPU port and not the front-panel swp0).

So this hardware will send all VLANs as tagged towards the CPU.

Fixes: 34efb4cbfb94 ("net: dsa: ocelot: add driver for Felix switch family")
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/ocelot/felix.c