Signed-off-by: Daniele Venturino <daniele.ventur...@m3s.it> --- lib/rstp.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/lib/rstp.c b/lib/rstp.c index e3007e2..55c43c0 100644 --- a/lib/rstp.c +++ b/lib/rstp.c @@ -523,8 +523,9 @@ static void rstp_set_bridge_max_age__(struct rstp *rstp, int new_max_age) OVS_REQUIRES(rstp_mutex) { - if (new_max_age >= RSTP_MIN_BRIDGE_MAX_AGE && - new_max_age <= RSTP_MAX_BRIDGE_MAX_AGE) { + if (rstp->bridge_max_age != new_max_age + && new_max_age >= RSTP_MIN_BRIDGE_MAX_AGE + && new_max_age <= RSTP_MAX_BRIDGE_MAX_AGE) { /* [17.13] */ if ((2 * (rstp->bridge_forward_delay - 1) >= new_max_age) && (new_max_age >= 2 * rstp->bridge_hello_time)) { @@ -533,6 +534,8 @@ rstp_set_bridge_max_age__(struct rstp *rstp, int new_max_age) rstp->bridge_max_age = new_max_age; rstp->bridge_times.max_age = new_max_age; + rstp->changes = true; + updt_roles_tree__(rstp); } } } @@ -551,13 +554,16 @@ static void rstp_set_bridge_forward_delay__(struct rstp *rstp, int new_forward_delay) OVS_REQUIRES(rstp_mutex) { - if (new_forward_delay >= RSTP_MIN_BRIDGE_FORWARD_DELAY - && new_forward_delay <= RSTP_MAX_BRIDGE_FORWARD_DELAY) { + if (rstp->bridge_forward_delay != new_forward_delay + && new_forward_delay >= RSTP_MIN_BRIDGE_FORWARD_DELAY + && new_forward_delay <= RSTP_MAX_BRIDGE_FORWARD_DELAY) { if (2 * (new_forward_delay - 1) >= rstp->bridge_max_age) { VLOG_DBG("%s: set RSTP Forward Delay to %d", rstp->name, new_forward_delay); rstp->bridge_forward_delay = new_forward_delay; rstp->bridge_times.forward_delay = new_forward_delay; + rstp->changes = true; + updt_roles_tree__(rstp); } } } -- 1.8.1.2 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev