diff mbox series

[net-next] net: dsa: felix: accept VLAN config regardless of bridge VLAN awareness state

Message ID 20200527164538.1082478-1-olteanv@gmail.com
State Accepted
Delegated to: David Miller
Headers show
Series [net-next] net: dsa: felix: accept VLAN config regardless of bridge VLAN awareness state | expand

Commit Message

Vladimir Oltean May 27, 2020, 4:45 p.m. UTC
From: Vladimir Oltean <vladimir.oltean@nxp.com>

The ocelot core library is written with the idea in mind that the VLAN
table is populated by the bridge. Otherwise, not even a sane default
pvid is provided: in standalone mode, the default pvid is 0, and the
core expects the bridge layer to change it to 1.

So without this patch, the VLAN table is completely empty at the end of
the commands below, and traffic is broken as a result:

ip link add dev br0 type bridge vlan_filtering 0 && ip link set dev br0 up
for eth in $(ls /sys/bus/pci/devices/0000\:00\:00.5/net/); do
	ip link set dev $eth master br0
	ip link set dev $eth up
done
ip link set dev br0 type bridge vlan_filtering 1

Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
---
 drivers/net/dsa/ocelot/felix.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Florian Fainelli May 27, 2020, 4:50 p.m. UTC | #1
On 5/27/2020 9:45 AM, Vladimir Oltean wrote:
> From: Vladimir Oltean <vladimir.oltean@nxp.com>
> 
> The ocelot core library is written with the idea in mind that the VLAN
> table is populated by the bridge. Otherwise, not even a sane default
> pvid is provided: in standalone mode, the default pvid is 0, and the
> core expects the bridge layer to change it to 1.
> 
> So without this patch, the VLAN table is completely empty at the end of
> the commands below, and traffic is broken as a result:
> 
> ip link add dev br0 type bridge vlan_filtering 0 && ip link set dev br0 up
> for eth in $(ls /sys/bus/pci/devices/0000\:00\:00.5/net/); do
> 	ip link set dev $eth master br0
> 	ip link set dev $eth up
> done
> ip link set dev br0 type bridge vlan_filtering 1
> 
> Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>

Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
David Miller May 27, 2020, 6:40 p.m. UTC | #2
From: Vladimir Oltean <olteanv@gmail.com>
Date: Wed, 27 May 2020 19:45:38 +0300

> From: Vladimir Oltean <vladimir.oltean@nxp.com>
> 
> The ocelot core library is written with the idea in mind that the VLAN
> table is populated by the bridge. Otherwise, not even a sane default
> pvid is provided: in standalone mode, the default pvid is 0, and the
> core expects the bridge layer to change it to 1.
> 
> So without this patch, the VLAN table is completely empty at the end of
> the commands below, and traffic is broken as a result:
> 
> ip link add dev br0 type bridge vlan_filtering 0 && ip link set dev br0 up
> for eth in $(ls /sys/bus/pci/devices/0000\:00\:00.5/net/); do
> 	ip link set dev $eth master br0
> 	ip link set dev $eth up
> done
> ip link set dev br0 type bridge vlan_filtering 1
> 
> Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>

Applied, thanks.
diff mbox series

Patch

diff --git a/drivers/net/dsa/ocelot/felix.c b/drivers/net/dsa/ocelot/felix.c
index 18c23ffd6b40..a6e272d2110d 100644
--- a/drivers/net/dsa/ocelot/felix.c
+++ b/drivers/net/dsa/ocelot/felix.c
@@ -594,6 +594,7 @@  static int felix_setup(struct dsa_switch *ds)
 				 ANA_FLOODING, tc);
 
 	ds->mtu_enforcement_ingress = true;
+	ds->configure_vlan_while_not_filtering = true;
 	/* It looks like the MAC/PCS interrupt register - PM0_IEVENT (0x8040)
 	 * isn't instantiated for the Felix PF.
 	 * In-band AN may take a few ms to complete, so we need to poll.