bonding: add support for numa-only in lacp mode
If numa-only is set, Only slaves on local numa node
transmit pkts if have at least one, otherwise the bond
interface works as usual.
CLI change:
create bond mode lacp [load-balance { l2 | l23 | l34 } {numa-only}]
[hw-addr <mac-address>] [id <if-id>]
The new member "u8 numa_only;" is also added to bond_create_if_args_t.
Type: feature
Change-Id: Icdccedafb0738d8c9d4a5acce909ce562428c071
Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com>
diff --git a/src/vnet/bonding/node.h b/src/vnet/bonding/node.h
index 1782150..94b43dc 100644
--- a/src/vnet/bonding/node.h
+++ b/src/vnet/bonding/node.h
@@ -82,6 +82,7 @@
u8 hw_addr[6];
u8 mode;
u8 lb;
+ u8 numa_only;
/* return */
u32 sw_if_index;
int rv;
@@ -117,6 +118,7 @@
u8 interface_name[64];
u8 mode;
u8 lb;
+ u8 numa_only;
u32 active_slaves;
u32 slaves;
} bond_interface_details_t;
@@ -187,6 +189,14 @@
lacp_port_info_t actor;
u8 individual_aggregator;
+ /* If the flag numa_only is set, it means that only slaves
+ on local numa node works for lacp mode if have at least one,
+ otherwise it works as usual. */
+ u8 numa_only;
+
+ /* How many slaves on local numa node are there in lacp mode? */
+ word n_numa_slaves;
+
u32 group;
uword *port_number_bitmap;
u8 use_custom_mac;