FD.io VPP  v18.07.1-11-g31aa6f2
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
 
#define VNET_SIMULATED_ETHERNET_TX_NEXT_L2_INPUT   (VNET_SIMULATED_ETHERNET_TX_NEXT_ETHERNET_INPUT + 1)
 

Typedefs

typedef enum walk_rc_t_ walk_rc_t
 Walk return code. More...
 
typedef walk_rc_t(* 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...
 
typedef walk_rc_t(* vnet_sw_interface_walk_t) (vnet_main_t *vnm, vnet_sw_interface_t *si, void *ctx)
 Call back walk type for walking SW indices on a HW interface. More...
 
typedef walk_rc_t(* vnet_hw_interface_walk_t) (vnet_main_t *vnm, u32 hw_if_index, void *ctx)
 Call back walk type for walking all HW indices. More...
 

Enumerations

enum  walk_rc_t_ { WALK_STOP, WALK_CONTINUE }
 Walk return code. More...
 
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_hw_interface_tvnet_get_hw_interface_safe (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...
 
void vnet_sw_interface_walk (vnet_main_t *vnm, vnet_sw_interface_walk_t fn, void *ctx)
 Walk all the SW interfaces in the system. More...
 
void vnet_hw_interface_walk (vnet_main_t *vnm, vnet_hw_interface_walk_t fn, void *ctx)
 Walk all the HW interface. 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_valid (vnet_main_t *vnm, u32 sw_if_index)
 
static uword vnet_hw_interface_is_valid (vnet_main_t *vnm, u32 hw_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 u32 vnet_hw_interface_get_mtu (vnet_main_t *vnm, u32 hw_if_index)
 
static u32 vnet_sw_interface_get_mtu (vnet_main_t *vnm, u32 sw_if_index, vnet_mtu_t af)
 
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_set_mtu (vnet_main_t *vnm, u32 sw_if_index, u32 mtu)
 
void vnet_sw_interface_set_protocol_mtu (vnet_main_t *vnm, u32 sw_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_hw_if_index_name
 
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 419 of file interface_funcs.h.

#define VNET_SIMULATED_ETHERNET_TX_NEXT_L2_INPUT   (VNET_SIMULATED_ETHERNET_TX_NEXT_ETHERNET_INPUT + 1)

Definition at line 420 of file interface_funcs.h.

Typedef Documentation

typedef walk_rc_t(* vnet_hw_interface_walk_t) (vnet_main_t *vnm, u32 hw_if_index, void *ctx)

Call back walk type for walking all HW indices.

Definition at line 194 of file interface_funcs.h.

typedef walk_rc_t(* 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 164 of file interface_funcs.h.

typedef walk_rc_t(* vnet_sw_interface_walk_t) (vnet_main_t *vnm, vnet_sw_interface_t *si, void *ctx)

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

Definition at line 179 of file interface_funcs.h.

typedef enum walk_rc_t_ walk_rc_t

Walk return code.

Enumeration Type Documentation

Enumerator
VNET_INTERFACE_OUTPUT_ERROR_INTERFACE_DOWN 
VNET_INTERFACE_OUTPUT_ERROR_INTERFACE_DELETED 

Definition at line 422 of file interface_funcs.h.

Enumerator
VNET_INTERFACE_OUTPUT_NEXT_DROP 
VNET_INTERFACE_OUTPUT_NEXT_TX 

Definition at line 407 of file interface_funcs.h.

Enumerator
VNET_INTERFACE_TX_NEXT_DROP 
VNET_INTERFACE_TX_N_NEXT 

Definition at line 413 of file interface_funcs.h.

enum walk_rc_t_

Walk return code.

Enumerator
WALK_STOP 
WALK_CONTINUE 

Definition at line 155 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 1332 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 140 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 601 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 968 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 639 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 108 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 307 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 101 of file interface_funcs.h.

+ Here is the caller graph for this function:

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

Definition at line 50 of file interface_funcs.h.

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

Definition at line 72 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 92 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 81 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 58 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 64 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 115 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 1501 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 1264 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 275 of file interface_funcs.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u32 vnet_hw_interface_get_mtu ( vnet_main_t vnm,
u32  hw_if_index 
)
inlinestatic

Definition at line 282 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 1132 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 300 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_is_valid ( vnet_main_t vnm,
u32  hw_if_index 
)
inlinestatic

Definition at line 241 of file interface_funcs.h.

+ 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 1241 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 1209 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 541 of file interface.c.

+ Here is the call graph for this function:

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

Definition at line 720 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 ( vnet_main_t vnm,
vnet_hw_interface_walk_t  fn,
void *  ctx 
)

Walk all the HW interface.

Definition at line 1060 of file interface.c.

+ 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 1037 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 314 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 758 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 1422 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 1128 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 125 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 1250 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 228 of file interface_funcs.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u32 vnet_sw_interface_get_mtu ( vnet_main_t vnm,
u32  sw_if_index,
vnet_mtu_t  af 
)
inlinestatic

Definition at line 289 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 248 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 268 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 261 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 1276 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_is_valid ( vnet_main_t vnm,
u32  sw_if_index 
)
inlinestatic

Definition at line 235 of file interface_funcs.h.

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

Definition at line 549 of file interface.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void vnet_sw_interface_set_mtu ( vnet_main_t vnm,
u32  sw_if_index,
u32  mtu 
)

Definition at line 676 of file interface.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void vnet_sw_interface_set_protocol_mtu ( vnet_main_t vnm,
u32  sw_if_index,
u32  mtu[] 
)

Definition at line 688 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 1510 of file interface.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void vnet_sw_interface_walk ( vnet_main_t vnm,
vnet_sw_interface_walk_t  fn,
void *  ctx 
)

Walk all the SW interfaces in the system.

Definition at line 1078 of file interface.c.

+ Here is the caller graph for this function:

static uword vnet_swif_is_api_visible ( vnet_sw_interface_t si)
inlinestatic

Definition at line 255 of file interface_funcs.h.

+ Here is the caller graph for this function:

Variable Documentation

format_function_t format_vnet_hw_if_index_name

Definition at line 375 of file interface_funcs.h.

format_function_t format_vnet_hw_interface

Definition at line 373 of file interface_funcs.h.

format_function_t format_vnet_hw_interface_rx_mode

Definition at line 374 of file interface_funcs.h.

format_function_t format_vnet_sw_if_index_name

Definition at line 379 of file interface_funcs.h.

format_function_t format_vnet_sw_interface

Definition at line 376 of file interface_funcs.h.

format_function_t format_vnet_sw_interface_flags

Definition at line 380 of file interface_funcs.h.

format_function_t format_vnet_sw_interface_name

Definition at line 377 of file interface_funcs.h.

format_function_t format_vnet_sw_interface_name_override

Definition at line 378 of file interface_funcs.h.

serialize_function_t serialize_vnet_interface_state

Definition at line 431 of file interface_funcs.h.

unformat_function_t unformat_vnet_hw_interface

Definition at line 384 of file interface_funcs.h.

unformat_function_t unformat_vnet_hw_interface_flags

Definition at line 387 of file interface_funcs.h.

unformat_function_t unformat_vnet_sw_interface

Definition at line 383 of file interface_funcs.h.

unformat_function_t unformat_vnet_sw_interface_flags

Definition at line 388 of file interface_funcs.h.

serialize_function_t unserialize_vnet_interface_state

Definition at line 431 of file interface_funcs.h.