Typically, when the lacp_negotiated flag changes, the result of bond_is_tcp_hash() will change as well. However, for certain bond types (SLB, Active-Backup, etc) this may not be true. Since the lacp_negotiated flag affects the results of bond_check_admissibility() revalidation needs to happen whenever it changes. This patch makes the revalidation explicit.
Signed-off-by: Ethan Jackson <et...@nicira.com> --- lib/bond.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-) diff --git a/lib/bond.c b/lib/bond.c index 79fc18c..a2105ca 100644 --- a/lib/bond.c +++ b/lib/bond.c @@ -407,7 +407,10 @@ bond_run(struct bond *bond, struct tag_set *tags, bool lacp_negotiated) struct bond_slave *slave; bool is_tcp_hash = bond_is_tcp_hash(bond); - bond->lacp_negotiated = lacp_negotiated; + if (bond->lacp_negotiated != lacp_negotiated) { + bond->lacp_negotiated = lacp_negotiated; + bond->bond_revalidate = true; + } /* Enable slaves based on link status and LACP feedback. */ HMAP_FOR_EACH (slave, hmap_node, &bond->slaves) { -- 1.7.7.1 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev