aboutsummaryrefslogtreecommitdiff
path: root/lib/lacp.h
diff options
context:
space:
mode:
authorBen Pfaff <blp@nicira.com>2011-03-21 14:30:33 -0700
committerBen Pfaff <blp@nicira.com>2011-04-01 15:52:20 -0700
commitbb5bc6c042a22103612205483558f472f8929356 (patch)
tree1b2805764326feed79b365d0a8d695f3e34cba7b /lib/lacp.h
parent7a6735157c0df93375e9daadf0bbd1dca4160533 (diff)
lacp: Encapsulate configuration into new structs.
This makes it easier to pass configuration between modules.
Diffstat (limited to 'lib/lacp.h')
-rw-r--r--lib/lacp.h26
1 files changed, 19 insertions, 7 deletions
diff --git a/lib/lacp.h b/lib/lacp.h
index c5f3c2ff..29383dcd 100644
--- a/lib/lacp.h
+++ b/lib/lacp.h
@@ -21,29 +21,41 @@
#include <stdint.h>
#include "packets.h"
-/* Function called when a LACP PDU is ready to be sent out the given slave */
-typedef void lacp_send_pdu(void *slave, const struct lacp_pdu *);
+struct lacp_settings {
+ char *name;
+ uint8_t id[ETH_ADDR_LEN];
+ uint16_t priority;
+ bool active;
+ bool fast;
+};
void lacp_init(void);
struct lacp *lacp_create(void);
void lacp_destroy(struct lacp *);
-void lacp_configure(struct lacp *, const char *name,
- const uint8_t sys_id[ETH_ADDR_LEN],
- uint16_t sys_priority, bool active, bool fast);
+void lacp_configure(struct lacp *, const struct lacp_settings *);
bool lacp_is_active(const struct lacp *);
void lacp_process_pdu(struct lacp *, const void *slave,
const struct lacp_pdu *);
bool lacp_negotiated(const struct lacp *);
-void lacp_slave_register(struct lacp *, void *slave_, const char *name,
- uint16_t port_id, uint16_t port_priority);
+struct lacp_slave_settings {
+ char *name;
+ uint16_t id;
+ uint16_t priority;
+};
+
+void lacp_slave_register(struct lacp *, void *slave_,
+ const struct lacp_slave_settings *);
void lacp_slave_unregister(struct lacp *, const void *slave);
void lacp_slave_enable(struct lacp *lacp, void *slave_, bool enabled);
void lacp_slave_carrier_changed(const struct lacp *, const void *slave);
bool lacp_slave_may_enable(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 *);
+
void lacp_run(struct lacp *, lacp_send_pdu *);
void lacp_wait(struct lacp *);