Message ID | 20220614063223.zvtrdrh7pbkv3b4v@wse-c0155 (mailing list archive) |
---|---|
State | Accepted |
Commit | 2aa4abed37927b9bc5db60dd5d440a7a47435a92 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net-next] net: bridge: allow add/remove permanent mdb entries on disabled ports | expand |
On 14/06/2022 09:32, Casper Andersson wrote: > Adding mdb entries on disabled ports allows you to do setup before > accepting any traffic, avoiding any time where the port is not in the > multicast group. > > Signed-off-by: Casper Andersson <casper.casan@gmail.com> > --- > net/bridge/br_mdb.c | 15 +++++++++------ > 1 file changed, 9 insertions(+), 6 deletions(-) > Sounds and looks good to me. Ideally you should send a small selftest to make sure this case is covered and someone won't break it in the future. Thanks, Acked-by: Nikolay Aleksandrov <razor@blackwall.org>
Hello: This patch was applied to netdev/net-next.git (master) by David S. Miller <davem@davemloft.net>: On Tue, 14 Jun 2022 08:32:23 +0200 you wrote: > Adding mdb entries on disabled ports allows you to do setup before > accepting any traffic, avoiding any time where the port is not in the > multicast group. > > Signed-off-by: Casper Andersson <casper.casan@gmail.com> > --- > net/bridge/br_mdb.c | 15 +++++++++------ > 1 file changed, 9 insertions(+), 6 deletions(-) Here is the summary with links: - [net-next] net: bridge: allow add/remove permanent mdb entries on disabled ports https://git.kernel.org/netdev/net-next/c/2aa4abed3792 You are awesome, thank you!
diff --git a/net/bridge/br_mdb.c b/net/bridge/br_mdb.c index fdcc641fc89a..589ff497d50c 100644 --- a/net/bridge/br_mdb.c +++ b/net/bridge/br_mdb.c @@ -1025,8 +1025,8 @@ static int br_mdb_add(struct sk_buff *skb, struct nlmsghdr *nlh, NL_SET_ERR_MSG_MOD(extack, "Port belongs to a different bridge device"); return -EINVAL; } - if (p->state == BR_STATE_DISABLED) { - NL_SET_ERR_MSG_MOD(extack, "Port is in disabled state"); + if (p->state == BR_STATE_DISABLED && entry->state != MDB_PERMANENT) { + NL_SET_ERR_MSG_MOD(extack, "Port is in disabled state and entry is not permanent"); return -EINVAL; } vg = nbp_vlan_group(p); @@ -1086,9 +1086,6 @@ static int __br_mdb_del(struct net_bridge *br, struct br_mdb_entry *entry, if (!p->key.port || p->key.port->dev->ifindex != entry->ifindex) continue; - if (p->key.port->state == BR_STATE_DISABLED) - goto unlock; - br_multicast_del_pg(mp, p, pp); err = 0; break; @@ -1124,8 +1121,14 @@ static int br_mdb_del(struct sk_buff *skb, struct nlmsghdr *nlh, return -ENODEV; p = br_port_get_rtnl(pdev); - if (!p || p->br != br || p->state == BR_STATE_DISABLED) + if (!p) { + NL_SET_ERR_MSG_MOD(extack, "Net device is not a bridge port"); + return -EINVAL; + } + if (p->br != br) { + NL_SET_ERR_MSG_MOD(extack, "Port belongs to a different bridge device"); return -EINVAL; + } vg = nbp_vlan_group(p); } else { vg = br_vlan_group(br);
Adding mdb entries on disabled ports allows you to do setup before accepting any traffic, avoiding any time where the port is not in the multicast group. Signed-off-by: Casper Andersson <casper.casan@gmail.com> --- net/bridge/br_mdb.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-)