FD.io VPP  v18.04-17-g3a0d853
Vector Packet Processing
interface_funcs.h File Reference
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  vnet_interface_output_runtime_t
 

Macros

#define VNET_SIMULATED_ETHERNET_TX_NEXT_ETHERNET_INPUT   VNET_INTERFACE_TX_N_NEXT
 

Typedefs

typedef void(* vnet_hw_sw_interface_walk_t) (vnet_main_t *vnm, u32 sw_if_index, void *ctx)
 Call back walk type for walking SW indices on a HW interface. More...
 

Enumerations

enum  vnet_interface_output_next_t { VNET_INTERFACE_OUTPUT_NEXT_DROP, VNET_INTERFACE_OUTPUT_NEXT_TX }
 
enum  vnet_interface_tx_next_t { VNET_INTERFACE_TX_NEXT_DROP, VNET_INTERFACE_TX_N_NEXT }
 
enum  vnet_interface_output_error_t { VNET_INTERFACE_OUTPUT_ERROR_INTERFACE_DOWN, VNET_INTERFACE_OUTPUT_ERROR_INTERFACE_DELETED }
 

Functions

static vnet_hw_interface_tvnet_get_hw_interface (vnet_main_t *vnm, u32 hw_if_index)
 
static vnet_sw_interface_tvnet_get_sw_interface (vnet_main_t *vnm, u32 sw_if_index)
 
static vnet_sw_interface_tvnet_get_sw_interface_safe (vnet_main_t *vnm, u32 sw_if_index)
 
static vnet_sw_interface_tvnet_get_hw_sw_interface (vnet_main_t *vnm, u32 hw_if_index)
 
static vnet_sw_interface_tvnet_get_sup_sw_interface (vnet_main_t *vnm, u32 sw_if_index)
 
static vnet_hw_interface_tvnet_get_sup_hw_interface (vnet_main_t *vnm, u32 sw_if_index)
 
static vnet_hw_interface_class_tvnet_get_hw_interface_class (vnet_main_t *vnm, u32 hw_class_index)
 
static vnet_device_class_tvnet_get_device_class (vnet_main_t *vnm, u32 dev_class_index)
 
static u8vnet_get_sw_interface_tag (vnet_main_t *vnm, u32 sw_if_index)
 
static void vnet_set_sw_interface_tag (vnet_main_t *vnm, u8 *tag, u32 sw_if_index)
 
static void vnet_clear_sw_interface_tag (vnet_main_t *vnm, u32 sw_if_index)
 
void vnet_hw_interface_walk_sw (vnet_main_t *vnm, u32 hw_if_index, vnet_hw_sw_interface_walk_t fn, void *ctx)
 Walk the SW interfaces on a HW interface - this is the super interface and any sub-interfaces. More...
 
u32 vnet_register_interface (vnet_main_t *vnm, u32 dev_class_index, u32 dev_instance, u32 hw_class_index, u32 hw_instance)
 
void vnet_set_interface_output_node (vnet_main_t *vnm, u32 hw_if_index, u32 node_index)
 Set interface output node - for interface registered without its output/tx nodes created because its VNET_DEVICE_CLASS did not specify any tx_function. More...
 
clib_error_tvnet_create_sw_interface (vnet_main_t *vnm, vnet_sw_interface_t *template, u32 *sw_if_index)
 
void vnet_delete_hw_interface (vnet_main_t *vnm, u32 hw_if_index)
 
void vnet_delete_sw_interface (vnet_main_t *vnm, u32 sw_if_index)
 
int vnet_sw_interface_is_p2p (vnet_main_t *vnm, u32 sw_if_index)
 
static uword vnet_sw_interface_get_flags (vnet_main_t *vnm, u32 sw_if_index)
 
static uword vnet_sw_interface_is_admin_up (vnet_main_t *vnm, u32 sw_if_index)
 
static uword vnet_swif_is_api_visible (vnet_sw_interface_t *si)
 
static uword vnet_sw_interface_is_api_visible (vnet_main_t *vnm, u32 sw_if_index)
 
static uword vnet_sw_interface_is_api_valid (vnet_main_t *vnm, u32 sw_if_index)
 
static uword vnet_hw_interface_get_flags (vnet_main_t *vnm, u32 hw_if_index)
 
static uword vnet_hw_interface_get_mtu (vnet_main_t *vnm, u32 hw_if_index, vlib_rx_or_tx_t dir)
 
static uword vnet_sw_interface_get_mtu (vnet_main_t *vnm, u32 sw_if_index, vlib_rx_or_tx_t dir)
 
static uword vnet_hw_interface_is_link_up (vnet_main_t *vnm, u32 hw_if_index)
 
static vlib_frame_tvnet_get_frame_to_sw_interface (vnet_main_t *vnm, u32 sw_if_index)
 
static void vnet_put_frame_to_sw_interface (vnet_main_t *vnm, u32 sw_if_index, vlib_frame_t *f)
 
clib_error_tvnet_hw_interface_set_flags (vnet_main_t *vnm, u32 hw_if_index, u32 flags)
 
clib_error_tvnet_sw_interface_set_flags (vnet_main_t *vnm, u32 sw_if_index, u32 flags)
 
clib_error_tvnet_hw_interface_set_class (vnet_main_t *vnm, u32 hw_if_index, u32 new_hw_class_index)
 
int vnet_hw_interface_rx_redirect_to_node (vnet_main_t *vnm, u32 hw_if_index, u32 node_index)
 
void vnet_hw_interface_init_for_class (vnet_main_t *vnm, u32 hw_if_index, u32 hw_class_index, u32 hw_instance)
 
clib_error_tvnet_rename_interface (vnet_main_t *vnm, u32 hw_if_index, char *new_name)
 
clib_error_tvnet_hw_interface_change_mac_address (vnet_main_t *vnm, u32 hw_if_index, u8 *mac_address)
 
clib_error_tset_hw_interface_change_rx_mode (vnet_main_t *vnm, u32 hw_if_index, u8 queue_id_valid, u32 queue_id, vnet_hw_interface_rx_mode mode)
 
void vnet_hw_interface_set_mtu (vnet_main_t *vnm, u32 hw_if_index, u32 mtu)
 
void vnet_sw_interface_update_unnumbered (u32 sw_if_index, u32 ip_sw_if_index, u8 enable)
 
int vnet_sw_interface_stats_collect_enable_disable (u32 sw_if_index, u8 enable)
 
void * vnet_interface_output_node_multiarch_select (void)
 
word vnet_sw_interface_compare (vnet_main_t *vnm, uword sw_if_index0, uword sw_if_index1)
 
word vnet_hw_interface_compare (vnet_main_t *vnm, uword hw_if_index0, uword hw_if_index1)
 
u8format_vnet_interface_output_trace (u8 *s, va_list *va)
 

Variables

format_function_t format_vnet_hw_interface
 
format_function_t format_vnet_hw_interface_rx_mode
 
format_function_t format_vnet_sw_interface
 
format_function_t format_vnet_sw_interface_name
 
format_function_t format_vnet_sw_interface_name_override
 
format_function_t format_vnet_sw_if_index_name
 
format_function_t format_vnet_sw_interface_flags
 
unformat_function_t unformat_vnet_sw_interface
 
unformat_function_t unformat_vnet_hw_interface
 
unformat_function_t unformat_vnet_hw_interface_flags
 
unformat_function_t unformat_vnet_sw_interface_flags
 
serialize_function_t serialize_vnet_interface_state
 
serialize_function_t unserialize_vnet_interface_state
 

Macro Definition Documentation

#define VNET_SIMULATED_ETHERNET_TX_NEXT_ETHERNET_INPUT   VNET_INTERFACE_TX_N_NEXT

Definition at line 351 of file interface_funcs.h.

Typedef Documentation

typedef void(* vnet_hw_sw_interface_walk_t) (vnet_main_t *vnm, u32 sw_if_index, void *ctx)

Call back walk type for walking SW indices on a HW interface.

Definition at line 145 of file interface_funcs.h.

Enumeration Type Documentation

Enumerator
VNET_INTERFACE_OUTPUT_ERROR_INTERFACE_DOWN 
VNET_INTERFACE_OUTPUT_ERROR_INTERFACE_DELETED 

Definition at line 353 of file interface_funcs.h.

Enumerator
VNET_INTERFACE_OUTPUT_NEXT_DROP 
VNET_INTERFACE_OUTPUT_NEXT_TX 

Definition at line 339 of file interface_funcs.h.

Enumerator
VNET_INTERFACE_TX_NEXT_DROP 
VNET_INTERFACE_TX_N_NEXT 

Definition at line 345 of file interface_funcs.h.

Function Documentation

u8* format_vnet_interface_output_trace ( u8 s,
va_list *  va 
)

Definition at line 55 of file interface_output.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

clib_error_t* set_hw_interface_change_rx_mode ( vnet_main_t vnm,
u32  hw_if_index,
u8  queue_id_valid,
u32  queue_id,
vnet_hw_interface_rx_mode  mode 
)

Definition at line 1298 of file interface_cli.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void vnet_clear_sw_interface_tag ( vnet_main_t vnm,
u32  sw_if_index 
)
inlinestatic

Definition at line 130 of file interface_funcs.h.

+ Here is the caller graph for this function:

clib_error_t* vnet_create_sw_interface ( vnet_main_t vnm,
vnet_sw_interface_t template,
u32 sw_if_index 
)

Definition at line 614 of file interface.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void vnet_delete_hw_interface ( vnet_main_t vnm,
u32  hw_if_index 
)

Definition at line 917 of file interface.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void vnet_delete_sw_interface ( vnet_main_t vnm,
u32  sw_if_index 
)

Definition at line 652 of file interface.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static vnet_device_class_t* vnet_get_device_class ( vnet_main_t vnm,
u32  dev_class_index 
)
inlinestatic

Definition at line 98 of file interface_funcs.h.

+ Here is the caller graph for this function:

static vlib_frame_t* vnet_get_frame_to_sw_interface ( vnet_main_t vnm,
u32  sw_if_index 
)
inlinestatic

Definition at line 245 of file interface_funcs.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static vnet_hw_interface_t* vnet_get_hw_interface ( vnet_main_t vnm,
u32  hw_if_index 
)
inlinestatic

Definition at line 44 of file interface_funcs.h.

static vnet_hw_interface_class_t* vnet_get_hw_interface_class ( vnet_main_t vnm,
u32  hw_class_index 
)
inlinestatic

Definition at line 91 of file interface_funcs.h.

+ Here is the caller graph for this function:

static vnet_sw_interface_t* vnet_get_hw_sw_interface ( vnet_main_t vnm,
u32  hw_if_index 
)
inlinestatic

Definition at line 64 of file interface_funcs.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static vnet_hw_interface_t* vnet_get_sup_hw_interface ( vnet_main_t vnm,
u32  sw_if_index 
)
inlinestatic

Definition at line 83 of file interface_funcs.h.

+ Here is the call graph for this function:

static vnet_sw_interface_t* vnet_get_sup_sw_interface ( vnet_main_t vnm,
u32  sw_if_index 
)
inlinestatic

Definition at line 73 of file interface_funcs.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static vnet_sw_interface_t* vnet_get_sw_interface ( vnet_main_t vnm,
u32  sw_if_index 
)
inlinestatic

Definition at line 50 of file interface_funcs.h.

static vnet_sw_interface_t* vnet_get_sw_interface_safe ( vnet_main_t vnm,
u32  sw_if_index 
)
inlinestatic

Definition at line 56 of file interface_funcs.h.

+ Here is the caller graph for this function:

static u8* vnet_get_sw_interface_tag ( vnet_main_t vnm,
u32  sw_if_index 
)
inlinestatic

Definition at line 105 of file interface_funcs.h.

+ Here is the caller graph for this function:

clib_error_t* vnet_hw_interface_change_mac_address ( vnet_main_t vnm,
u32  hw_if_index,
u8 mac_address 
)

Definition at line 1425 of file interface.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

word vnet_hw_interface_compare ( vnet_main_t vnm,
uword  hw_if_index0,
uword  hw_if_index1 
)

Definition at line 1175 of file interface.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static uword vnet_hw_interface_get_flags ( vnet_main_t vnm,
u32  hw_if_index 
)
inlinestatic

Definition at line 215 of file interface_funcs.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static uword vnet_hw_interface_get_mtu ( vnet_main_t vnm,
u32  hw_if_index,
vlib_rx_or_tx_t  dir 
)
inlinestatic

Definition at line 222 of file interface_funcs.h.

+ Here is the call graph for this function:

void vnet_hw_interface_init_for_class ( vnet_main_t vnm,
u32  hw_if_index,
u32  hw_class_index,
u32  hw_instance 
)

Definition at line 1043 of file interface.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static uword vnet_hw_interface_is_link_up ( vnet_main_t vnm,
u32  hw_if_index 
)
inlinestatic

Definition at line 238 of file interface_funcs.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int vnet_hw_interface_rx_redirect_to_node ( vnet_main_t vnm,
u32  hw_if_index,
u32  node_index 
)

Definition at line 1152 of file interface.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

clib_error_t* vnet_hw_interface_set_class ( vnet_main_t vnm,
u32  hw_if_index,
u32  new_hw_class_index 
)

Definition at line 1120 of file interface.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

clib_error_t* vnet_hw_interface_set_flags ( vnet_main_t vnm,
u32  hw_if_index,
u32  flags 
)

Definition at line 554 of file interface.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void vnet_hw_interface_set_mtu ( vnet_main_t vnm,
u32  hw_if_index,
u32  mtu 
)

Definition at line 126 of file interface.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void vnet_hw_interface_walk_sw ( vnet_main_t vnm,
u32  hw_if_index,
vnet_hw_sw_interface_walk_t  fn,
void *  ctx 
)

Walk the SW interfaces on a HW interface - this is the super interface and any sub-interfaces.

Definition at line 986 of file interface.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void* vnet_interface_output_node_multiarch_select ( void  )

+ Here is the caller graph for this function:

static void vnet_put_frame_to_sw_interface ( vnet_main_t vnm,
u32  sw_if_index,
vlib_frame_t f 
)
inlinestatic

Definition at line 252 of file interface_funcs.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u32 vnet_register_interface ( vnet_main_t vnm,
u32  dev_class_index,
u32  dev_instance,
u32  hw_class_index,
u32  hw_instance 
)

Definition at line 705 of file interface.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

clib_error_t* vnet_rename_interface ( vnet_main_t vnm,
u32  hw_if_index,
char *  new_name 
)

Definition at line 1346 of file interface.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void vnet_set_interface_output_node ( vnet_main_t vnm,
u32  hw_if_index,
u32  node_index 
)

Set interface output node - for interface registered without its output/tx nodes created because its VNET_DEVICE_CLASS did not specify any tx_function.

This is typically the case for tunnel interfaces.

Definition at line 1122 of file interface_output.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void vnet_set_sw_interface_tag ( vnet_main_t vnm,
u8 tag,
u32  sw_if_index 
)
inlinestatic

Definition at line 115 of file interface_funcs.h.

+ Here is the caller graph for this function:

word vnet_sw_interface_compare ( vnet_main_t vnm,
uword  sw_if_index0,
uword  sw_if_index1 
)

Definition at line 1161 of file interface.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static uword vnet_sw_interface_get_flags ( vnet_main_t vnm,
u32  sw_if_index 
)
inlinestatic

Definition at line 181 of file interface_funcs.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static uword vnet_sw_interface_get_mtu ( vnet_main_t vnm,
u32  sw_if_index,
vlib_rx_or_tx_t  dir 
)
inlinestatic

Definition at line 230 of file interface_funcs.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static uword vnet_sw_interface_is_admin_up ( vnet_main_t vnm,
u32  sw_if_index 
)
inlinestatic

Definition at line 188 of file interface_funcs.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static uword vnet_sw_interface_is_api_valid ( vnet_main_t vnm,
u32  sw_if_index 
)
inlinestatic

Definition at line 208 of file interface_funcs.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static uword vnet_sw_interface_is_api_visible ( vnet_main_t vnm,
u32  sw_if_index 
)
inlinestatic

Definition at line 201 of file interface_funcs.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int vnet_sw_interface_is_p2p ( vnet_main_t vnm,
u32  sw_if_index 
)

Definition at line 1187 of file interface.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

clib_error_t* vnet_sw_interface_set_flags ( vnet_main_t vnm,
u32  sw_if_index,
u32  flags 
)

Definition at line 562 of file interface.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int vnet_sw_interface_stats_collect_enable_disable ( u32  sw_if_index,
u8  enable 
)

Definition at line 24 of file interface_stats.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void vnet_sw_interface_update_unnumbered ( u32  sw_if_index,
u32  ip_sw_if_index,
u8  enable 
)

Definition at line 1434 of file interface.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static uword vnet_swif_is_api_visible ( vnet_sw_interface_t si)
inlinestatic

Definition at line 195 of file interface_funcs.h.

+ Here is the caller graph for this function:

Variable Documentation

format_function_t format_vnet_hw_interface

Definition at line 306 of file interface_funcs.h.

format_function_t format_vnet_hw_interface_rx_mode

Definition at line 307 of file interface_funcs.h.

format_function_t format_vnet_sw_if_index_name

Definition at line 311 of file interface_funcs.h.

format_function_t format_vnet_sw_interface

Definition at line 308 of file interface_funcs.h.

format_function_t format_vnet_sw_interface_flags

Definition at line 312 of file interface_funcs.h.

format_function_t format_vnet_sw_interface_name

Definition at line 309 of file interface_funcs.h.

format_function_t format_vnet_sw_interface_name_override

Definition at line 310 of file interface_funcs.h.

serialize_function_t serialize_vnet_interface_state

Definition at line 362 of file interface_funcs.h.

unformat_function_t unformat_vnet_hw_interface

Definition at line 316 of file interface_funcs.h.

unformat_function_t unformat_vnet_hw_interface_flags

Definition at line 319 of file interface_funcs.h.

unformat_function_t unformat_vnet_sw_interface

Definition at line 315 of file interface_funcs.h.

unformat_function_t unformat_vnet_sw_interface_flags

Definition at line 320 of file interface_funcs.h.

serialize_function_t unserialize_vnet_interface_state

Definition at line 362 of file interface_funcs.h.