1
0
Fork 0
mirror of synced 2025-03-06 20:59:54 +01:00
linux/drivers/net
Vladimir Oltean b38e659de9 net: dsa: sja1105: update existing VLANs from the bridge VLAN list
When running this sequence of operations:

ip link add br0 type bridge vlan_filtering 1
ip link set swp4 master br0
bridge vlan add dev swp4 vid 1

We observe the traffic sent on swp4 is still untagged, even though the
bridge has overwritten the existing VLAN entry:

port    vlan ids
swp4     1 PVID

br0      1 PVID Egress Untagged

This happens because we didn't consider that the 'bridge vlan add'
command just overwrites VLANs like it's nothing. We treat the 'vid 1
pvid untagged' and the 'vid 1' as two separate VLANs, and the first
still has precedence when calling sja1105_build_vlan_table. Obviously
there is a disagreement regarding semantics, and we end up doing
something unexpected from the PoV of the bridge.

Let's actually consider an "existing VLAN" to be one which is on the
same port, and has the same VLAN ID, as one we already have, and update
it if it has different flags than we do.

The first blamed commit is the one introducing the bug, the second one
is the latest on top of which the bugfix still applies.

Fixes: ec5ae61076 ("net: dsa: sja1105: save/restore VLANs using a delta commit method")
Fixes: 5899ee367a ("net: dsa: tag_8021q: add a context structure")
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2021-05-24 13:20:24 -07:00
..
appletalk
arcnet net: arcnet: com20020 fix error handling 2021-03-14 14:17:48 -07:00
bonding bonding: init notify_work earlier to avoid uninitialized use 2021-05-17 15:24:20 -07:00
caif net: caif: inline register_ldisc 2021-03-10 09:34:07 +01:00
can can: m_can: m_can_tx_work_queue(): fix tx_skb race condition 2021-05-06 09:24:07 +02:00
dsa net: dsa: sja1105: update existing VLANs from the bridge VLAN list 2021-05-24 13:20:24 -07:00
ethernet net: macb: ensure the device is available before accessing GEMGXL control registers 2021-05-23 16:15:11 -07:00
fddi fddi/skfp: fix typo 2021-04-27 14:07:27 -07:00
fjes
hamradio Merge 5.12-rc6 into tty-next 2021-04-05 08:59:21 +02:00
hippi
hyperv hv_netvsc: Make netvsc/VF binding check both MAC and serial number 2021-04-25 18:19:23 -07:00
ieee802154 Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-04-09 20:48:35 -07:00
ipa net: ipa: memory region array is variable size 2021-05-11 16:22:37 -07:00
ipvlan
mdio net: mdio: octeon: Fix some double free issues 2021-05-13 15:43:52 -07:00
mhi net: mhi: remove pointless conditional before kfree_skb() 2021-03-30 13:47:28 -07:00
netdevsim netdevsim: Only use sampling truncation length when valid 2021-04-22 13:23:56 -07:00
pcs net: pcs: add C37 SGMII AN support for intel mGbE controller 2021-03-15 12:53:12 -07:00
phy net: mdiobus: get rid of a BUG_ON() 2021-05-17 15:50:58 -07:00
plip net: plip: Fix fall-through warnings for Clang 2021-03-10 12:45:15 -08:00
ppp Networking changes for 5.13. 2021-04-29 11:57:23 -07:00
slip tty: remove TTY_LDISC_MAGIC 2021-03-10 09:34:06 +01:00
team
usb net: hso: fix control-request directions 2021-05-24 13:16:58 -07:00
vmxnet3 vmxnet3: Update driver to use ethtool_sprintf 2021-03-17 11:42:31 -07:00
wan Revert "drivers/net/wan/hdlc_fr: Fix a double free in pvc_xmit" 2021-05-03 13:37:58 -07:00
wireguard wireguard: queueing: get rid of per-peer ring buffers 2021-02-23 15:59:34 -08:00
wireless ath11k: Drop multicast fragments 2021-05-11 20:16:30 +02:00
wwan net: wwan: core: Return poll error in case of port removal 2021-04-22 13:26:02 -07:00
xen-netback xen-netback: Check for hotplug-status existence before watching 2021-04-13 15:24:14 -07:00
bareudp.c bareudp: allow UDP L4 GRO passthrou 2021-03-30 17:06:50 -07:00
dummy.c
eql.c
geneve.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-04-26 12:00:00 -07:00
gtp.c net: icmp: pass zeroed opts from icmp{,v6}_ndo_send before sending 2021-02-23 11:29:52 -08:00
ifb.c
Kconfig net: Add a WWAN subsystem 2021-04-16 15:31:02 -07:00
LICENSE.SRC
loopback.c Revert "net-loopback: set lo dev initial state to UP" 2021-02-11 13:10:44 -08:00
macsec.c
macvlan.c macvlan: Use 'hash' iterators to simplify code 2021-04-27 14:03:11 -07:00
macvtap.c
Makefile net: Add a WWAN subsystem 2021-04-16 15:31:02 -07:00
mdio.c net: mdio: Correct function name mdio45_links_ok() in comment 2021-03-29 13:42:44 -07:00
mii.c
net_failover.c
netconsole.c
nlmon.c
ntb_netdev.c
rionet.c
sb1000.c
Space.c net: Space: remove hp100 probe 2021-04-13 15:13:13 -07:00
sungem_phy.c
tap.c net: fix dev_ifsioc_locked() race condition 2021-02-11 18:14:19 -08:00
thunderbolt.c net: thunderbolt: Align the driver to the USB4 networking spec 2021-03-18 18:25:31 +03:00
tun.c net: tun: Remove redundant assignment to ret 2021-04-28 13:58:58 -07:00
veth.c veth: check for NAPI instead of xdp_prog before xmit of XDP frame 2021-04-16 15:42:07 -07:00
virtio_net.c virtio,vhost,vdpa: features, fixes 2021-05-05 13:31:39 -07:00
vrf.c vrf: fix a comment about loopback device 2021-04-14 13:13:53 -07:00
vsockmon.c
vxlan.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-04-09 20:48:35 -07:00
xen-netfront.c bpf, devmap: Move drop error path to devmap for XDP_REDIRECT 2021-03-18 16:38:51 +01:00