Re: [PATCH net-next 0/8] bridge: mcast: Preparations for EVPN extensions
From: Nikolay Aleksandrov <razor@blackwall.org>
Date: 2022-12-05 11:55:33
Also in:
bridge
On 05/12/2022 09:42, Ido Schimmel wrote:
This patchset was split from [1] and includes non-functional changes aimed at making it easier to add additional netlink attributes later on. Future extensions are available here [2]. The idea behind these patches is to create an MDB configuration structure into which netlink messages are parsed into. The structure is then passed in the entry creation / deletion call chain instead of passing the netlink attributes themselves. The same pattern is used by other rtnetlink objects such as routes and nexthops. I initially tried to extend the current code, but it proved to be too difficult, which is why I decided to refactor it to the extensible and familiar pattern used by other rtnetlink objects. Tested using existing selftests and using a new selftest that will be submitted together with the planned extensions. No changes since initial RFC. [1] https://lore.kernel.org/netdev/20221018120420.561846-1-idosch@nvidia.com/ (local) [2] https://github.com/idosch/linux/commits/submit/mdb_v1 Ido Schimmel (8): bridge: mcast: Centralize netlink attribute parsing bridge: mcast: Remove redundant checks bridge: mcast: Use MDB configuration structure where possible bridge: mcast: Propagate MDB configuration structure further bridge: mcast: Use MDB group key from configuration structure bridge: mcast: Remove br_mdb_parse() bridge: mcast: Move checks out of critical section bridge: mcast: Remove redundant function arguments net/bridge/br_mdb.c | 312 +++++++++++++++++++--------------------- net/bridge/br_private.h | 7 + 2 files changed, 156 insertions(+), 163 deletions(-)
As I also commented on the RFC, nice work! Allowing user-space to manipulate and manually install such entries is a natural extension. One thought (not a big deal) but it would've been ideal if we could initialize the config struct once when parsing and then pass it around as a const argument. I know that its arguments are currently passed to functions that don't expect const, but I *think* it could be a small change. Thanks, Nik