summaryrefslogtreecommitdiff
path: root/lib/lacp.h
diff options
context:
space:
mode:
authorEthan Jackson <ethan@nicira.com>2011-11-28 13:54:08 -0800
committerEthan Jackson <ethan@nicira.com>2012-01-23 14:29:11 -0800
commitbdebeece558fbeebb87c17b11a8468d88875037d (patch)
tree685ca46e8f860338f77ee1f4769bb4452f476cde /lib/lacp.h
parent26fbdf773f546f653d67f1bf022ff9021cefc062 (diff)
downloadopenvswitch-bdebeece558fbeebb87c17b11a8468d88875037d.tar.gz
lacp: Require successful LACP negotiations when configured.
In the original Open vSwitch LACP implementation, when no slaves found a LACP partner, the LACP module would attach all of them. This allowed the LACP bond to fall back to a standard bond when partnered with a non-LACP switch. In practice, this has caused confusion with marginal benefit, so this feature is removed with this patch. Signed-off-by: Ethan Jackson <ethan@nicira.com>
Diffstat (limited to 'lib/lacp.h')
-rw-r--r--lib/lacp.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/lacp.h b/lib/lacp.h
index 1d717d608..293fc454d 100644
--- a/lib/lacp.h
+++ b/lib/lacp.h
@@ -29,6 +29,12 @@ enum lacp_time {
LACP_TIME_CUSTOM /* Nonstandard custom mode. */
};
+enum lacp_status {
+ LACP_NEGOTIATED, /* Successful LACP negotations. */
+ LACP_CONFIGURED, /* LACP is enabled but not negotiated. */
+ LACP_DISABLED /* LACP is not enabled. */
+};
+
struct lacp_settings {
char *name; /* Name (for debugging). */
uint8_t id[ETH_ADDR_LEN]; /* System ID. Must be nonzero. */
@@ -48,7 +54,7 @@ bool lacp_is_active(const struct lacp *);
void lacp_process_packet(struct lacp *, const void *slave,
const struct ofpbuf *packet);
-bool lacp_negotiated(const struct lacp *);
+enum lacp_status lacp_status(const struct lacp *);
struct lacp_slave_settings {
char *name; /* Name (for debugging). */