diff options
author | Ethan Jackson <ethan@nicira.com> | 2011-11-28 15:14:11 -0800 |
---|---|---|
committer | Ethan Jackson <ethan@nicira.com> | 2012-01-16 18:14:56 -0800 |
commit | 4592d0e2fb90aa9a9592a433a8e01aaeb513b2a9 (patch) | |
tree | c6d8fc5b2a6eef28031696c422b0c4eee7e9eecb /lib/bond.c | |
parent | a9bf011b82b02249344740d139f2f28594fe9e61 (diff) |
bond: Revalidate when lacp_negotiated status changes.
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 <ethan@nicira.com>
Diffstat (limited to 'lib/bond.c')
-rw-r--r-- | lib/bond.c | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -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) { |