|
|
Subscribe / Log in / New account

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




Copyright © 2024, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds