netdev: Decouple creating and configuring network devices.
[sliver-openvswitch.git] / lib / lacp.h
index 8371fec..0fb797e 100644 (file)
@@ -33,8 +33,7 @@
 
 #define LACP_FAST_TIME_TX 1000  /* Fast transmission rate. */
 #define LACP_SLOW_TIME_TX 30000 /* Slow transmission rate. */
-#define LACP_FAST_TIME_RX (LACP_FAST_TIME_TX * 3) /* Fast receive rate. */
-#define LACP_SLOW_TIME_RX (LACP_SLOW_TIME_TX * 3) /* Slow receive rate. */
+#define LACP_RX_MULTIPLIER 3    /* Multiply by TX rate to get RX rate. */
 
 #define LACP_INFO_LEN 15
 struct lacp_info {
@@ -76,13 +75,20 @@ const struct lacp_pdu *parse_lacp_packet(const struct ofpbuf *);
 \f
 /* LACP Protocol Implementation. */
 
+enum lacp_time {
+    LACP_TIME_FAST,
+    LACP_TIME_SLOW,
+    LACP_TIME_CUSTOM
+};
+
 struct lacp_settings {
     char *name;
     uint8_t id[ETH_ADDR_LEN];
     uint16_t priority;
     bool active;
-    bool fast;
-    bool strict;
+    enum lacp_time lacp_time;
+    long long int custom_time;
+    bool heartbeat;
 };
 
 void lacp_init(void);
@@ -100,6 +106,7 @@ struct lacp_slave_settings {
     char *name;
     uint16_t id;
     uint16_t priority;
+    uint16_t key;
 };
 
 void lacp_slave_register(struct lacp *, void *slave_,