datapath: Shrink sw_flow_mask by 8 bytes (64-bit) or 4 bytes (32-bit).
[sliver-openvswitch.git] / lib / bond.h
index 306cf42..5b3814e 100644 (file)
@@ -21,7 +21,6 @@
 #include <stdint.h>
 
 #include "packets.h"
-#include "tag.h"
 
 struct flow;
 struct netdev;
@@ -54,6 +53,7 @@ struct bond_settings {
 
     /* Legacy compatibility. */
     bool fake_iface;            /* Update fake stats for netdev 'name'? */
+    bool lacp_fallback_ab_cfg;  /* Fallback to active-backup on LACP failure. */
 };
 
 /* Program startup. */
@@ -61,14 +61,15 @@ void bond_init(void);
 
 /* Basics. */
 struct bond *bond_create(const struct bond_settings *);
-void bond_destroy(struct bond *);
+void bond_unref(struct bond *);
+struct bond *bond_ref(const struct bond *);
 
 bool bond_reconfigure(struct bond *, const struct bond_settings *);
 void bond_slave_register(struct bond *, void *slave_, struct netdev *);
 void bond_slave_set_netdev(struct bond *, void *slave_, struct netdev *);
 void bond_slave_unregister(struct bond *, const void *slave);
 
-void bond_run(struct bond *, struct tag_set *, enum lacp_status);
+bool bond_run(struct bond *, enum lacp_status);
 void bond_wait(struct bond *);
 
 void bond_slave_set_may_enable(struct bond *, void *slave_, bool may_enable);
@@ -86,15 +87,13 @@ enum bond_verdict {
     BV_DROP_IF_MOVED            /* Drop if we've learned a different port. */
 };
 enum bond_verdict bond_check_admissibility(struct bond *, const void *slave_,
-                                           const uint8_t eth_dst[ETH_ADDR_LEN],
-                                           tag_type *);
+                                           const uint8_t dst[ETH_ADDR_LEN]);
 void *bond_choose_output_slave(struct bond *, const struct flow *,
-                               struct flow_wildcards *, uint16_t vlan,
-                               tag_type *);
+                               struct flow_wildcards *, uint16_t vlan);
 
 /* Rebalancing. */
 void bond_account(struct bond *, const struct flow *, uint16_t vlan,
                   uint64_t n_bytes);
-void bond_rebalance(struct bond *, struct tag_set *);
+void bond_rebalance(struct bond *);
 
 #endif /* bond.h */