FD.io VPP  v20.05.1-6-gf53edbc3b
Vector Packet Processing
device.c File Reference
+ Include dependency graph for device.c:

Go to the source code of this file.

Macros

#define foreach_bond_tx_error
 

Enumerations

enum  bond_tx_error_t { BOND_TX_N_ERROR }
 

Functions

static u8format_bond_tx_trace (u8 *s, va_list *args)
 
u8format_bond_interface_name (u8 *s, va_list *args)
 
static __clib_unused clib_error_tbond_set_l2_mode_function (vnet_main_t *vnm, struct vnet_hw_interface_t *bif_hw, i32 l2_if_adjust)
 
static __clib_unused clib_error_tbond_subif_add_del_function (vnet_main_t *vnm, u32 hw_if_index, struct vnet_sw_interface_t *st, int is_add)
 
static clib_error_tbond_interface_admin_up_down (vnet_main_t *vnm, u32 hw_if_index, u32 flags)
 
static clib_error_tbond_add_del_mac_address (vnet_hw_interface_t *hi, const u8 *address, u8 is_add)
 
static_always_inline void bond_tx_add_to_queue (bond_per_thread_data_t *ptd, u32 port, u32 bi)
 
static_always_inline u32 bond_lb_broadcast (vlib_main_t *vm, bond_if_t *bif, vlib_buffer_t *b0, uword n_slaves)
 
static_always_inline u32 bond_lb_l2 (vlib_buffer_t *b0)
 
static_always_inline u16bond_locate_ethertype (ethernet_header_t *eth)
 
static_always_inline u32 bond_lb_l23 (vlib_buffer_t *b0)
 
static_always_inline u32 bond_lb_l34 (vlib_buffer_t *b0)
 
static_always_inline u32 bond_lb_round_robin (bond_if_t *bif, vlib_buffer_t *b0, uword n_slaves)
 
static_always_inline void bond_tx_inline (vlib_main_t *vm, bond_if_t *bif, vlib_buffer_t **b, u32 *h, u32 n_left, uword n_slaves, u32 lb_alg)
 
static_always_inline void bond_hash_to_port (u32 *h, u32 n_left, u32 n_slaves, int use_modulo_shortcut)
 
static_always_inline void bond_update_sw_if_index (bond_per_thread_data_t *ptd, bond_if_t *bif, u32 *bi, vlib_buffer_t **b, u32 *data, u32 n_left, int single_sw_if_index)
 
static_always_inline void bond_tx_trace (vlib_main_t *vm, vlib_node_runtime_t *node, bond_if_t *bif, vlib_buffer_t **b, u32 n_left, u32 *h)
 
VNET_DEVICE_CLASS_TX_FN() bond_dev_class (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
 
static walk_rc_t bond_active_interface_switch_cb (vnet_main_t *vnm, u32 sw_if_index, void *arg)
 
static uword bond_process (vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f)
 
 VNET_DEVICE_CLASS (bond_dev_class)
 
static clib_error_tbond_slave_interface_add_del (vnet_main_t *vnm, u32 sw_if_index, u32 is_add)
 
 VNET_SW_INTERFACE_ADD_DEL_FUNCTION (bond_slave_interface_add_del)
 

Variables

static char * bond_tx_error_strings []
 
vlib_node_registration_t bond_process_node
 (constructor) VLIB_REGISTER_NODE (bond_process_node) More...
 

Macro Definition Documentation

◆ foreach_bond_tx_error

#define foreach_bond_tx_error
Value:
_(NONE, "no error") \
_(IF_DOWN, "interface down") \
_(NO_SLAVE, "no slave")

Definition at line 29 of file device.c.

Enumeration Type Documentation

◆ bond_tx_error_t

Enumerator
BOND_TX_N_ERROR 

Definition at line 34 of file device.c.

Function Documentation

◆ bond_active_interface_switch_cb()

static walk_rc_t bond_active_interface_switch_cb ( vnet_main_t vnm,
u32  sw_if_index,
void *  arg 
)
static

Definition at line 793 of file device.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bond_add_del_mac_address()

static clib_error_t* bond_add_del_mac_address ( vnet_hw_interface_t hi,
const u8 address,
u8  is_add 
)
static

Definition at line 142 of file device.c.

+ Here is the call graph for this function:

◆ bond_dev_class()

VNET_DEVICE_CLASS_TX_FN() bond_dev_class ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t frame 
)

Definition at line 676 of file device.c.

+ Here is the call graph for this function:

◆ bond_hash_to_port()

static_always_inline void bond_hash_to_port ( u32 h,
u32  n_left,
u32  n_slaves,
int  use_modulo_shortcut 
)

Definition at line 497 of file device.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bond_interface_admin_up_down()

static clib_error_t* bond_interface_admin_up_down ( vnet_main_t vnm,
u32  hw_if_index,
u32  flags 
)
static

Definition at line 127 of file device.c.

+ Here is the call graph for this function:

◆ bond_lb_broadcast()

static_always_inline u32 bond_lb_broadcast ( vlib_main_t vm,
bond_if_t bif,
vlib_buffer_t b0,
uword  n_slaves 
)

Definition at line 193 of file device.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bond_lb_l2()

static_always_inline u32 bond_lb_l2 ( vlib_buffer_t b0)

Definition at line 219 of file device.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bond_lb_l23()

static_always_inline u32 bond_lb_l23 ( vlib_buffer_t b0)

Definition at line 254 of file device.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bond_lb_l34()

static_always_inline u32 bond_lb_l34 ( vlib_buffer_t b0)

Definition at line 314 of file device.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bond_lb_round_robin()

static_always_inline u32 bond_lb_round_robin ( bond_if_t bif,
vlib_buffer_t b0,
uword  n_slaves 
)

Definition at line 390 of file device.c.

+ Here is the caller graph for this function:

◆ bond_locate_ethertype()

static_always_inline u16* bond_locate_ethertype ( ethernet_header_t eth)

Definition at line 231 of file device.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bond_process()

static uword bond_process ( vlib_main_t vm,
vlib_node_runtime_t rt,
vlib_frame_t f 
)
static

Definition at line 804 of file device.c.

+ Here is the call graph for this function:

◆ bond_set_l2_mode_function()

static __clib_unused clib_error_t* bond_set_l2_mode_function ( vnet_main_t vnm,
struct vnet_hw_interface_t bif_hw,
i32  l2_if_adjust 
)
static

Definition at line 82 of file device.c.

+ Here is the call graph for this function:

◆ bond_slave_interface_add_del()

static clib_error_t* bond_slave_interface_add_del ( vnet_main_t vnm,
u32  sw_if_index,
u32  is_add 
)
static

Definition at line 855 of file device.c.

+ Here is the call graph for this function:

◆ bond_subif_add_del_function()

static __clib_unused clib_error_t* bond_subif_add_del_function ( vnet_main_t vnm,
u32  hw_if_index,
struct vnet_sw_interface_t st,
int  is_add 
)
static

Definition at line 119 of file device.c.

◆ bond_tx_add_to_queue()

static_always_inline void bond_tx_add_to_queue ( bond_per_thread_data_t ptd,
u32  port,
u32  bi 
)

Definition at line 186 of file device.c.

+ Here is the caller graph for this function:

◆ bond_tx_inline()

static_always_inline void bond_tx_inline ( vlib_main_t vm,
bond_if_t bif,
vlib_buffer_t **  b,
u32 h,
u32  n_left,
uword  n_slaves,
u32  lb_alg 
)

Definition at line 400 of file device.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bond_tx_trace()

static_always_inline void bond_tx_trace ( vlib_main_t vm,
vlib_node_runtime_t node,
bond_if_t bif,
vlib_buffer_t **  b,
u32  n_left,
u32 h 
)

Definition at line 645 of file device.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ bond_update_sw_if_index()

static_always_inline void bond_update_sw_if_index ( bond_per_thread_data_t ptd,
bond_if_t bif,
u32 bi,
vlib_buffer_t **  b,
u32 data,
u32  n_left,
int  single_sw_if_index 
)

Definition at line 566 of file device.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ format_bond_interface_name()

u8* format_bond_interface_name ( u8 s,
va_list *  args 
)

Definition at line 69 of file device.c.

+ Here is the call graph for this function:

◆ format_bond_tx_trace()

static u8* format_bond_tx_trace ( u8 s,
va_list *  args 
)
static

Definition at line 49 of file device.c.

+ Here is the call graph for this function:

◆ VNET_DEVICE_CLASS()

VNET_DEVICE_CLASS ( bond_dev_class  )

◆ VNET_SW_INTERFACE_ADD_DEL_FUNCTION()

VNET_SW_INTERFACE_ADD_DEL_FUNCTION ( bond_slave_interface_add_del  )
+ Here is the caller graph for this function:

Variable Documentation

◆ bond_process_node

vlib_node_registration_t bond_process_node
Initial value:
= {
.function = bond_process,
.name = "bond-process",
}
#define VLIB_NODE_FLAG_TRACE_SUPPORTED
Definition: node.h:308
static uword bond_process(vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f)
Definition: device.c:804

(constructor) VLIB_REGISTER_NODE (bond_process_node)

Definition at line 831 of file device.c.

◆ bond_tx_error_strings

char* bond_tx_error_strings[]
static
Initial value:
= {
#define _(n,s)
}
#define foreach_bond_tx_error
Definition: device.c:29

Definition at line 42 of file device.c.