Message ID | 20231016131259.3302298-2-idosch@nvidia.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | Add MDB get support | expand |
On 10/16/23 16:12, Ido Schimmel wrote: > Currently, the bridge driver does not dump MDB entries when multicast > snooping is disabled although the entries are present in the kernel: > > # bridge mdb add dev br0 port swp1 grp 239.1.1.1 permanent > # bridge mdb show dev br0 > dev br0 port swp1 grp 239.1.1.1 permanent > dev br0 port br0 grp ff02::6a temp > dev br0 port br0 grp ff02::1:ff9d:e61b temp > # ip link set dev br0 type bridge mcast_snooping 0 > # bridge mdb show dev br0 > # ip link set dev br0 type bridge mcast_snooping 1 > # bridge mdb show dev br0 > dev br0 port swp1 grp 239.1.1.1 permanent > dev br0 port br0 grp ff02::6a temp > dev br0 port br0 grp ff02::1:ff9d:e61b temp > > This behavior differs from other netlink dump interfaces that dump > entries regardless if they are used or not. For example, VLANs are > dumped even when VLAN filtering is disabled: > > # ip link set dev br0 type bridge vlan_filtering 0 > # bridge vlan show dev swp1 > port vlan-id > swp1 1 PVID Egress Untagged > > Remove the check and always dump MDB entries: > > # bridge mdb add dev br0 port swp1 grp 239.1.1.1 permanent > # bridge mdb show dev br0 > dev br0 port swp1 grp 239.1.1.1 permanent > dev br0 port br0 grp ff02::6a temp > dev br0 port br0 grp ff02::1:ffeb:1a4d temp > # ip link set dev br0 type bridge mcast_snooping 0 > # bridge mdb show dev br0 > dev br0 port swp1 grp 239.1.1.1 permanent > dev br0 port br0 grp ff02::6a temp > dev br0 port br0 grp ff02::1:ffeb:1a4d temp > # ip link set dev br0 type bridge mcast_snooping 1 > # bridge mdb show dev br0 > dev br0 port swp1 grp 239.1.1.1 permanent > dev br0 port br0 grp ff02::6a temp > dev br0 port br0 grp ff02::1:ffeb:1a4d temp > > Signed-off-by: Ido Schimmel <idosch@nvidia.com> > --- > net/bridge/br_mdb.c | 3 --- > 1 file changed, 3 deletions(-) > > diff --git a/net/bridge/br_mdb.c b/net/bridge/br_mdb.c > index 7305f5f8215c..fb58bb1b60e8 100644 > --- a/net/bridge/br_mdb.c > +++ b/net/bridge/br_mdb.c > @@ -323,9 +323,6 @@ static int br_mdb_fill_info(struct sk_buff *skb, struct netlink_callback *cb, > struct net_bridge_mdb_entry *mp; > struct nlattr *nest, *nest2; > > - if (!br_opt_get(br, BROPT_MULTICAST_ENABLED)) > - return 0; > - > nest = nla_nest_start_noflag(skb, MDBA_MDB); > if (nest == NULL) > return -EMSGSIZE; Finally! Thanks :) this has been a long-standing annoyance. Acked-by: Nikolay Aleksandrov <razor@blackwall.org>
diff --git a/net/bridge/br_mdb.c b/net/bridge/br_mdb.c index 7305f5f8215c..fb58bb1b60e8 100644 --- a/net/bridge/br_mdb.c +++ b/net/bridge/br_mdb.c @@ -323,9 +323,6 @@ static int br_mdb_fill_info(struct sk_buff *skb, struct netlink_callback *cb, struct net_bridge_mdb_entry *mp; struct nlattr *nest, *nest2; - if (!br_opt_get(br, BROPT_MULTICAST_ENABLED)) - return 0; - nest = nla_nest_start_noflag(skb, MDBA_MDB); if (nest == NULL) return -EMSGSIZE;
Currently, the bridge driver does not dump MDB entries when multicast snooping is disabled although the entries are present in the kernel: # bridge mdb add dev br0 port swp1 grp 239.1.1.1 permanent # bridge mdb show dev br0 dev br0 port swp1 grp 239.1.1.1 permanent dev br0 port br0 grp ff02::6a temp dev br0 port br0 grp ff02::1:ff9d:e61b temp # ip link set dev br0 type bridge mcast_snooping 0 # bridge mdb show dev br0 # ip link set dev br0 type bridge mcast_snooping 1 # bridge mdb show dev br0 dev br0 port swp1 grp 239.1.1.1 permanent dev br0 port br0 grp ff02::6a temp dev br0 port br0 grp ff02::1:ff9d:e61b temp This behavior differs from other netlink dump interfaces that dump entries regardless if they are used or not. For example, VLANs are dumped even when VLAN filtering is disabled: # ip link set dev br0 type bridge vlan_filtering 0 # bridge vlan show dev swp1 port vlan-id swp1 1 PVID Egress Untagged Remove the check and always dump MDB entries: # bridge mdb add dev br0 port swp1 grp 239.1.1.1 permanent # bridge mdb show dev br0 dev br0 port swp1 grp 239.1.1.1 permanent dev br0 port br0 grp ff02::6a temp dev br0 port br0 grp ff02::1:ffeb:1a4d temp # ip link set dev br0 type bridge mcast_snooping 0 # bridge mdb show dev br0 dev br0 port swp1 grp 239.1.1.1 permanent dev br0 port br0 grp ff02::6a temp dev br0 port br0 grp ff02::1:ffeb:1a4d temp # ip link set dev br0 type bridge mcast_snooping 1 # bridge mdb show dev br0 dev br0 port swp1 grp 239.1.1.1 permanent dev br0 port br0 grp ff02::6a temp dev br0 port br0 grp ff02::1:ffeb:1a4d temp Signed-off-by: Ido Schimmel <idosch@nvidia.com> --- net/bridge/br_mdb.c | 3 --- 1 file changed, 3 deletions(-)