Hans Schultz
2023-Apr-23 08:47 UTC
[Bridge] [PATCH v2 net] net: bridge: switchdev: don't notify FDB entries with "master dynamic"
On Tue, Apr 18, 2023 at 18:59, Vladimir Oltean <vladimir.oltean at nxp.com> wrote:> diff --git a/net/bridge/br_switchdev.c b/net/bridge/br_switchdev.c > index de18e9c1d7a7..ba95c4d74a60 100644 > --- a/net/bridge/br_switchdev.c > +++ b/net/bridge/br_switchdev.c > @@ -148,6 +148,17 @@ br_switchdev_fdb_notify(struct net_bridge *br, > if (test_bit(BR_FDB_LOCKED, &fdb->flags)) > return; > > + /* Entries with these flags were created using ndm_state == NUD_REACHABLE, > + * ndm_flags == NTF_MASTER( | NTF_STICKY), ext_flags == 0 by something > + * equivalent to 'bridge fdb add ... master dynamic (sticky)'. > + * Drivers don't know how to deal with these, so don't notify them to > + * avoid confusing them. > + */ > + if (test_bit(BR_FDB_ADDED_BY_USER, &fdb->flags) && > + !test_bit(BR_FDB_STATIC, &fdb->flags) && > + !test_bit(BR_FDB_ADDED_BY_EXT_LEARN, &fdb->flags)) > + return; > +I do not understand this patch. It seems to me that it basically blocks any future use of dynamic fdb entries from userspace towards drivers. I would have expected that something would be done in the DSA layer, where (switchcore) drivers would be able to set some flags to indicate which features are supported by the driver, including non-static fdb entries. But as the placement here is earlier in the datapath from userspace towards drivers it's not possible to do any such thing in the DSA layer wrt non-static fdb entries.
Vladimir Oltean
2023-Apr-24 12:26 UTC
[Bridge] [PATCH v2 net] net: bridge: switchdev: don't notify FDB entries with "master dynamic"
On Sun, Apr 23, 2023 at 10:47:15AM +0200, Hans Schultz wrote:> I do not understand this patch. It seems to me that it basically blocks > any future use of dynamic fdb entries from userspace towards drivers. > > I would have expected that something would be done in the DSA layer, > where (switchcore) drivers would be able to set some flags to indicate > which features are supported by the driver, including non-static > fdb entries. But as the placement here is earlier in the datapath from > userspace towards drivers it's not possible to do any such thing in the > DSA layer wrt non-static fdb entries.As explained too many times already in the thread here: https://patchwork.kernel.org/project/netdevbpf/patch/20230318141010.513424-3-netdev at kapio-technology.com/ the plan is: | Just like commit 6ab4c3117aec ("net: bridge: don't notify switchdev for | local FDB addresses"), we could deny that for stable kernels, and add | the correct interpretation of the flag in net-next. Obviously we have not reached the end of that plan, and net-next is closed now.