diff options
author | Vivien Didelot <vivien.didelot@savoirfairelinux.com> | 2016-12-10 13:44:29 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-12-10 21:28:28 -0500 |
commit | 34d8acd8aabb6e070b6fb718909db80458ef32ec (patch) | |
tree | 1fc8f50b8590b7d90e898a3d95da56fced30aad5 /net/bridge/br_private.h | |
parent | 8384b5f5b293389a42cc65bfca2d767d15809aa1 (diff) | |
download | linux-rpi3-34d8acd8aabb6e070b6fb718909db80458ef32ec.tar.gz linux-rpi3-34d8acd8aabb6e070b6fb718909db80458ef32ec.tar.bz2 linux-rpi3-34d8acd8aabb6e070b6fb718909db80458ef32ec.zip |
net: bridge: shorten ageing time on topology change
802.1D [1] specifies that the bridges must use a short value to age out
dynamic entries in the Filtering Database for a period, once a topology
change has been communicated by the root bridge.
Add a bridge_ageing_time member in the net_bridge structure to store the
bridge ageing time value configured by the user (ioctl/netlink/sysfs).
If we are using in-kernel STP, shorten the ageing time value to twice
the forward delay used by the topology when the topology change flag is
set. When the flag is cleared, restore the configured ageing time.
[1] "8.3.5 Notifying topology changes ",
http://profesores.elo.utfsm.cl/~agv/elo309/doc/802.1D-1998.pdf
Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/bridge/br_private.h')
-rw-r--r-- | net/bridge/br_private.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/net/bridge/br_private.h b/net/bridge/br_private.h index e2cd6d12a273..8ce621e8345c 100644 --- a/net/bridge/br_private.h +++ b/net/bridge/br_private.h @@ -300,10 +300,11 @@ struct net_bridge unsigned long max_age; unsigned long hello_time; unsigned long forward_delay; - unsigned long bridge_max_age; unsigned long ageing_time; + unsigned long bridge_max_age; unsigned long bridge_hello_time; unsigned long bridge_forward_delay; + unsigned long bridge_ageing_time; u8 group_addr[ETH_ALEN]; bool group_addr_set; |