X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fbonding%2Fnode.h;fp=src%2Fvnet%2Fbonding%2Fnode.h;h=1479209369a18c2a0e688a26e54262e3d9717f64;hb=a1876b84e5598fcfad1debe5abb51d152e06a66e;hp=1ad19dec872fd998eb1b41e2d51fd3986f4b6b6d;hpb=ffbfe3a2d6aaf4e847a1848c29fc8ce2997ed260;p=vpp.git diff --git a/src/vnet/bonding/node.h b/src/vnet/bonding/node.h index 1ad19dec872..1479209369a 100644 --- a/src/vnet/bonding/node.h +++ b/src/vnet/bonding/node.h @@ -110,6 +110,15 @@ typedef struct clib_error_t *error; } bond_detach_slave_args_t; +typedef struct +{ + u32 sw_if_index; + u32 weight; + /* return */ + int rv; + clib_error_t *error; +} bond_set_intf_weight_args_t; + /** BOND interface details struct */ typedef struct { @@ -130,6 +139,8 @@ typedef struct u8 interface_name[64]; u8 is_passive; u8 is_long_timeout; + u8 is_local_numa; + u32 weight; u32 active_slaves; } slave_interface_details_t; @@ -159,11 +170,6 @@ typedef struct u8 mode; u8 lb; - /* This flag works for active-backup mode only - and marks if the working port is local numa. */ - u8 is_local_numa; - /* current working sw_if_index in active-bakeup mode. */ - u32 sw_if_index_working; /* the last slave index for the rr lb */ u32 lb_rr_last_index; @@ -239,6 +245,9 @@ typedef struct /* neighbor vlib hw_if_index */ u32 hw_if_index; + /* weight -- valid only for active backup */ + u32 weight; + /* actor does not initiate the protocol exchange */ u8 is_passive; @@ -336,6 +345,9 @@ typedef struct /* pdu sent */ u64 marker_pdu_sent; + + /* slave is numa node */ + u8 is_local_numa; } slave_if_t; typedef void (*lacp_enable_disable_func) (vlib_main_t * vm, bond_if_t * bif, @@ -398,6 +410,8 @@ void bond_disable_collecting_distributing (vlib_main_t * vm, void bond_enable_collecting_distributing (vlib_main_t * vm, slave_if_t * sif); u8 *format_bond_interface_name (u8 * s, va_list * args); +void bond_set_intf_weight (vlib_main_t * vm, + bond_set_intf_weight_args_t * args); void bond_create_if (vlib_main_t * vm, bond_create_if_args_t * args); int bond_delete_if (vlib_main_t * vm, u32 sw_if_index); void bond_enslave (vlib_main_t * vm, bond_enslave_args_t * args);