On Tue, Jul 05, 2022 at 05:05:52PM +0200, Hans S wrote:
Hi, does anybody know what it going on with this variable? struct dsa_port *dp ->ageing_time;
I experience that it changes value like a factor ~10 at times.
Could you be a bit more specific? Are you talking about STP Topology Change Notification BPDUs, which trigger this code path?
diff --git a/net/bridge/br_stp.c b/net/bridge/br_stp.c index 7d27b2e6038f..9b25bc2dcb3e 100644 --- a/net/bridge/br_stp.c +++ b/net/bridge/br_stp.c @@ -671,10 +671,10 @@ void __br_set_topology_change(struct net_bridge *br, unsigned char val)
if (val) { t = 2 * br->forward_delay; - br_debug(br, "decreasing ageing time to %lu\n", t); + br_info(br, "decreasing ageing time to %lu\n", t); } else { t = br->bridge_ageing_time; - br_debug(br, "restoring ageing time to %lu\n", t); + br_info(br, "restoring ageing time to %lu\n", t); }
err = __set_ageing_time(br->dev, t);
Coincidentally the default values of 2 * br->forward_delay and br->bridge_ageing_time are 1 order of magnitude apart from each other.
[ 139.998310] br0: topology change detected, propagating [ 140.003490] br0: decreasing ageing time to 3000 [ 175.193054] br0: restoring ageing time to 30000
What's the problem anyway?