lacp: New function lacp_slave_is_current().
authorEthan Jackson <ethan@nicira.com>
Wed, 13 Apr 2011 22:44:37 +0000 (15:44 -0700)
committerEthan Jackson <ethan@nicira.com>
Mon, 18 Apr 2011 17:48:48 +0000 (10:48 -0700)
Used in future patches.

lib/lacp.c
lib/lacp.h

index ee796772475b037c7d3b7cb7b663383a8842ad88..9b3b14b5c93ccc5675ead5a5e75b44e2c9303554 100644 (file)
@@ -269,6 +269,15 @@ lacp_slave_get_port_id(const struct lacp *lacp, const void *slave_)
     return slave->port_id;
 }
 
+/* Returns true if partner information on 'slave_' is up to date.  'slave_'
+ * not being current, generally indicates a connectivity problem, or a
+ * misconfigured (or broken) partner. */
+bool
+lacp_slave_is_current(const struct lacp *lacp, const void *slave_)
+{
+    return slave_lookup(lacp, slave_)->status == LACP_CURRENT;
+}
+
 /* This function should be called periodically to update 'lacp'. */
 void
 lacp_run(struct lacp *lacp, lacp_send_pdu *send_pdu)
index 38c8f6eb4de4803ad32ec0d59e87c9babf47717f..2992bcfd78cc72fb0179ebaf10761e6e1888575b 100644 (file)
@@ -52,6 +52,7 @@ void lacp_slave_unregister(struct lacp *, const void *slave);
 void lacp_slave_carrier_changed(const struct lacp *, const void *slave);
 bool lacp_slave_may_enable(const struct lacp *, const void *slave);
 uint16_t lacp_slave_get_port_id(const struct lacp *, const void *slave);
+bool lacp_slave_is_current(const struct lacp *, const void *slave_);
 
 /* Callback function for lacp_run() for sending a LACP PDU. */
 typedef void lacp_send_pdu(void *slave, const struct lacp_pdu *);