bridge: Handle changes in VLAN_FLAG_BRIDGE_BINDING
From: | Petr Machata <petrm-AT-nvidia.com> | |
To: | "David S. Miller" <davem-AT-davemloft.net>, Eric Dumazet <edumazet-AT-google.com>, Jakub Kicinski <kuba-AT-kernel.org>, Paolo Abeni <pabeni-AT-redhat.com>, <netdev-AT-vger.kernel.org> | |
Subject: | [PATCH net-next 0/4] bridge: Handle changes in VLAN_FLAG_BRIDGE_BINDING | |
Date: | Wed, 18 Dec 2024 18:15:55 +0100 | |
Message-ID: | <cover.1734540770.git.petrm@nvidia.com> | |
Cc: | Simon Horman <horms-AT-kernel.org>, Roopa Prabhu <roopa-AT-nvidia.com>, "Nikolay Aleksandrov" <razor-AT-blackwall.org>, <bridge-AT-lists.linux.dev>, Ido Schimmel <idosch-AT-nvidia.com>, Petr Machata <petrm-AT-nvidia.com>, <mlxsw-AT-nvidia.com> | |
Archive-link: | Article |
When bridge binding is enabled on a VLAN netdevice, its link state should track bridge ports that are members of the corresponding VLAN. This works for a newly-added netdevices. However toggling the option does not have the effect of enabling or disabling the behavior as appropriate. In this patchset, have bridge react to bridge_binding toggles on VLAN uppers. There has been another attempt at supporting this behavior in 2022 by Sevinj Aghayeva [0]. A discussion ensued that informed how this new patchset is constructed, namely that the logic is in the bridge as opposed to the 8021q driver, and the bridge reacts to NETDEV_CHANGE events on the 8021q upper. Patches #1 and #2 contain the implementation, patches #3 and #4 a selftest. [0] https://lore.kernel.org/netdev/cover.1660100506.git.sevin... Petr Machata (4): net: bridge: Extract a helper to handle bridge_binding toggles net: bridge: Handle changes in VLAN_FLAG_BRIDGE_BINDING selftests: net: lib: Add a couple autodefer helpers selftests: net: Add a VLAN bridge binding selftest net/bridge/br.c | 7 + net/bridge/br_private.h | 9 + net/bridge/br_vlan.c | 44 ++- tools/testing/selftests/net/Makefile | 1 + tools/testing/selftests/net/lib.sh | 31 ++- .../selftests/net/vlan_bridge_binding.sh | 256 ++++++++++++++++++ 6 files changed, 340 insertions(+), 8 deletions(-) create mode 100755 tools/testing/selftests/net/vlan_bridge_binding.sh -- 2.47.0