diff options
author | Horatiu Vultur <horatiu.vultur@microchip.com> | 2020-04-26 15:22:07 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2020-04-27 11:40:25 -0700 |
commit | 6536993371fab3de4e8379649b60e94d03e6ff37 (patch) | |
tree | f7d09710caa35c5a376141cbc43c24ab87517351 /net/bridge/br_if.c | |
parent | 4d02b8f075153508562803e590f76c4dfe5f4b66 (diff) | |
download | linux-stable-6536993371fab3de4e8379649b60e94d03e6ff37.tar.gz linux-stable-6536993371fab3de4e8379649b60e94d03e6ff37.tar.bz2 linux-stable-6536993371fab3de4e8379649b60e94d03e6ff37.zip |
bridge: mrp: Integrate MRP into the bridge
To integrate MRP into the bridge, the bridge needs to do the following:
- detect if the MRP frame was received on MRP ring port in that case it would be
processed otherwise just forward it as usual.
- enable parsing of MRP
- before whenever the bridge was set up, it would set all the ports in
forwarding state. Add an extra check to not set ports in forwarding state if
the port is an MRP ring port. The reason of this change is that if the MRP
instance initially sets the port in blocked state by setting the bridge up it
would overwrite this setting.
Reviewed-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
Signed-off-by: Horatiu Vultur <horatiu.vultur@microchip.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/bridge/br_if.c')
-rw-r--r-- | net/bridge/br_if.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/net/bridge/br_if.c b/net/bridge/br_if.c index 4fe30b182ee7..ca685c0cdf95 100644 --- a/net/bridge/br_if.c +++ b/net/bridge/br_if.c @@ -333,6 +333,8 @@ static void del_nbp(struct net_bridge_port *p) br_stp_disable_port(p); spin_unlock_bh(&br->lock); + br_mrp_port_del(br, p); + br_ifinfo_notify(RTM_DELLINK, NULL, p); list_del_rcu(&p->list); |