40 #ifndef included_vnet_interface_funcs_h 41 #define included_vnet_interface_funcs_h 120 return ((
u8 *) p[0]);
131 u8 *oldtag = (
u8 *) p[0];
146 u8 *oldtag = (
u8 *) p[0];
165 u32 sw_if_index,
void *
ctx);
195 u32 hw_if_index,
void *
ctx);
208 u32 hw_class_index,
u32 hw_instance);
216 u32 hw_if_index,
u32 node_index);
331 u32 new_hw_class_index);
338 u32 hw_class_index,
u32 hw_instance);
367 u32 ip_sw_if_index,
u8 enable);
419 #define VNET_SIMULATED_ETHERNET_TX_NEXT_ETHERNET_INPUT VNET_INTERFACE_TX_N_NEXT 420 #define VNET_SIMULATED_ETHERNET_TX_NEXT_L2_INPUT (VNET_SIMULATED_ETHERNET_TX_NEXT_ETHERNET_INPUT + 1) unformat_function_t unformat_vnet_hw_interface
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 ...
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.
format_function_t format_vnet_sw_interface
format_function_t format_vnet_hw_if_index_name
#define hash_set(h, key, value)
#define hash_unset(h, key)
void vnet_hw_interface_walk(vnet_main_t *vnm, vnet_hw_interface_walk_t fn, void *ctx)
Walk all the HW interface.
static vnet_hw_interface_t * vnet_get_sup_hw_interface(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.
clib_error_t * vnet_rename_interface(vnet_main_t *vnm, u32 hw_if_index, char *new_name)
vnet_interface_main_t interface_main
void * vnet_interface_output_node_multiarch_select(void)
serialize_function_t serialize_vnet_interface_state
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.
word vnet_sw_interface_compare(vnet_main_t *vnm, uword sw_if_index0, uword sw_if_index1)
static vnet_hw_interface_t * vnet_get_hw_interface(vnet_main_t *vnm, u32 hw_if_index)
static u32 vnet_hw_interface_get_mtu(vnet_main_t *vnm, u32 hw_if_index)
static void vnet_clear_sw_interface_tag(vnet_main_t *vnm, u32 sw_if_index)
word vnet_hw_interface_compare(vnet_main_t *vnm, uword hw_if_index0, uword hw_if_index1)
static vnet_sw_interface_t * vnet_get_sw_interface(vnet_main_t *vnm, u32 sw_if_index)
static u32 vnet_sw_interface_get_mtu(vnet_main_t *vnm, u32 sw_if_index, vnet_mtu_t af)
unformat_function_t unformat_vnet_sw_interface
uword * interface_tag_by_sw_if_index
#define VNET_HW_INTERFACE_FLAG_LINK_UP
void vnet_hw_interface_set_mtu(vnet_main_t *vnm, u32 hw_if_index, u32 mtu)
struct _vnet_device_class vnet_device_class_t
clib_error_t * vnet_hw_interface_set_flags(vnet_main_t *vnm, u32 hw_if_index, u32 flags)
format_function_t format_vnet_sw_if_index_name
static vnet_sw_interface_t * vnet_get_hw_sw_interface(vnet_main_t *vnm, u32 hw_if_index)
enum walk_rc_t_ walk_rc_t
Walk return code.
vnet_hw_interface_rx_mode
format_function_t format_vnet_hw_interface
int vnet_hw_interface_rx_redirect_to_node(vnet_main_t *vnm, u32 hw_if_index, u32 node_index)
static vnet_device_class_t * vnet_get_device_class(vnet_main_t *vnm, u32 dev_class_index)
#define vec_elt_at_index(v, i)
Get vector value at index i checking that i is in bounds.
static vnet_sw_interface_t * vnet_get_sup_sw_interface(vnet_main_t *vnm, u32 sw_if_index)
vlib_frame_t * vlib_get_frame_to_node(vlib_main_t *vm, u32 to_node_index)
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)
static uword vnet_sw_interface_is_valid(vnet_main_t *vnm, u32 sw_if_index)
void vnet_delete_sw_interface(vnet_main_t *vnm, u32 sw_if_index)
vnet_hw_interface_t * hw_interfaces
format_function_t format_vnet_sw_interface_name
#define pool_elt_at_index(p, i)
Returns pointer to element at given index.
u8 * format_vnet_interface_output_trace(u8 *s, va_list *va)
static uword vnet_hw_interface_get_flags(vnet_main_t *vnm, u32 hw_if_index)
serialize_function_t unserialize_vnet_interface_state
void vlib_put_frame_to_node(vlib_main_t *vm, u32 to_node_index, vlib_frame_t *f)
format_function_t format_vnet_hw_interface_rx_mode
vnet_interface_output_error_t
void vnet_hw_interface_init_for_class(vnet_main_t *vnm, u32 hw_if_index, u32 hw_class_index, u32 hw_instance)
static void vnet_put_frame_to_sw_interface(vnet_main_t *vnm, u32 sw_if_index, vlib_frame_t *f)
#define vec_free(V)
Free vector's memory (no header).
static vnet_sw_interface_t * vnet_get_sw_interface_safe(vnet_main_t *vnm, u32 sw_if_index)
static uword vnet_swif_is_api_visible(vnet_sw_interface_t *si)
static vnet_hw_interface_t * vnet_get_hw_interface_safe(vnet_main_t *vnm, u32 hw_if_index)
#define VNET_SW_INTERFACE_FLAG_HIDDEN
vnet_interface_output_next_t
walk_rc_t_
Walk return code.
#define pool_is_free_index(P, I)
Use free bitmap to query whether given index is free.
void vnet_sw_interface_set_mtu(vnet_main_t *vnm, u32 sw_if_index, u32 mtu)
static uword vnet_hw_interface_is_valid(vnet_main_t *vnm, u32 hw_if_index)
format_function_t format_vnet_sw_interface_flags
u32 vnet_register_interface(vnet_main_t *vnm, u32 dev_class_index, u32 dev_instance, u32 hw_class_index, u32 hw_instance)
#define VNET_SW_INTERFACE_FLAG_ADMIN_UP
void vnet_sw_interface_update_unnumbered(u32 sw_if_index, u32 ip_sw_if_index, u8 enable)
static void vnet_set_sw_interface_tag(vnet_main_t *vnm, u8 *tag, u32 sw_if_index)
static vnet_hw_interface_class_t * vnet_get_hw_interface_class(vnet_main_t *vnm, u32 hw_class_index)
clib_error_t * vnet_hw_interface_set_class(vnet_main_t *vnm, u32 hw_if_index, u32 new_hw_class_index)
static u8 * vnet_get_sw_interface_tag(vnet_main_t *vnm, u32 sw_if_index)
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.
static vlib_frame_t * vnet_get_frame_to_sw_interface(vnet_main_t *vnm, u32 sw_if_index)
int vnet_sw_interface_is_p2p(vnet_main_t *vnm, u32 sw_if_index)
clib_error_t * vnet_hw_interface_change_mac_address(vnet_main_t *vnm, u32 hw_if_index, u8 *mac_address)
static vlib_main_t * vlib_get_main(void)
static uword vnet_sw_interface_is_admin_up(vnet_main_t *vnm, u32 sw_if_index)
static uword vnet_sw_interface_is_api_valid(vnet_main_t *vnm, u32 sw_if_index)
void vnet_sw_interface_set_protocol_mtu(vnet_main_t *vnm, u32 sw_if_index, u32 mtu[])
struct _vnet_hw_interface_class vnet_hw_interface_class_t
void( serialize_function_t)(serialize_main_t *m, va_list *va)
unformat_function_t unformat_vnet_sw_interface_flags
vnet_sw_interface_t * sw_interfaces
vnet_hw_interface_class_t * hw_interface_classes
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.
int vnet_sw_interface_stats_collect_enable_disable(u32 sw_if_index, u8 enable)
void vnet_delete_hw_interface(vnet_main_t *vnm, u32 hw_if_index)
unformat_function_t unformat_vnet_hw_interface_flags
vnet_sw_interface_type_t type
vnet_device_class_t * device_classes
clib_error_t * vnet_create_sw_interface(vnet_main_t *vnm, vnet_sw_interface_t *template, u32 *sw_if_index)
static uword vnet_sw_interface_get_flags(vnet_main_t *vnm, u32 sw_if_index)
format_function_t format_vnet_sw_interface_name_override
static uword vnet_hw_interface_is_link_up(vnet_main_t *vnm, u32 hw_if_index)
clib_error_t * vnet_sw_interface_set_flags(vnet_main_t *vnm, u32 sw_if_index, u32 flags)
static uword vnet_sw_interface_is_api_visible(vnet_main_t *vnm, u32 sw_if_index)