Nikolay Aleksandrov
2019-Apr-03 10:49 UTC
[Bridge] [PATCH net-next] net: bridge: optimize backup_port fdb convergence
We can optimize the fdb convergence when a backup_port is present by not immediately flushing the entries of the stopped port since traffic for those entries will flow towards the backup_port. There are 2 cases specifically that benefit most: - when the stopped port comes up before the entries expire by themselves - when there's an external entry refresh and they're kept while the backup_port is operating (e.g. mlag) Signed-off-by: Nikolay Aleksandrov <nikolay at cumulusnetworks.com> --- We have been running with this change for over an year, it has been extensively tested. net/bridge/br_stp_if.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/net/bridge/br_stp_if.c b/net/bridge/br_stp_if.c index 808e2b914015..8d65ae5210e0 100644 --- a/net/bridge/br_stp_if.c +++ b/net/bridge/br_stp_if.c @@ -117,7 +117,8 @@ void br_stp_disable_port(struct net_bridge_port *p) del_timer(&p->forward_delay_timer); del_timer(&p->hold_timer); - br_fdb_delete_by_port(br, p, 0, 0); + if (!rcu_access_pointer(p->backup_port)) + br_fdb_delete_by_port(br, p, 0, 0); br_multicast_disable_port(p); br_configuration_update(br); -- 2.20.1
David Miller
2019-Apr-05 00:40 UTC
[Bridge] [PATCH net-next] net: bridge: optimize backup_port fdb convergence
From: Nikolay Aleksandrov <nikolay at cumulusnetworks.com> Date: Wed, 3 Apr 2019 13:49:24 +0300> We can optimize the fdb convergence when a backup_port is present by not > immediately flushing the entries of the stopped port since traffic for > those entries will flow towards the backup_port. > > There are 2 cases specifically that benefit most: > - when the stopped port comes up before the entries expire by themselves > - when there's an external entry refresh and they're kept while the > backup_port is operating (e.g. mlag) > > Signed-off-by: Nikolay Aleksandrov <nikolay at cumulusnetworks.com>Applied.