40 #ifndef included_vnet_interface_funcs_h 41 #define included_vnet_interface_funcs_h 109 return ((
u8 *) p[0]);
120 u8 *oldtag = (
u8 *) p[0];
135 u8 *oldtag = (
u8 *) p[0];
145 u32 sw_if_index,
void *ctx);
160 u32 hw_class_index,
u32 hw_instance);
260 u32 new_hw_class_index);
267 u32 hw_class_index,
u32 hw_instance);
325 #define VNET_SIMULATED_ETHERNET_TX_NEXT_ETHERNET_INPUT VNET_INTERFACE_TX_N_NEXT unformat_function_t unformat_vnet_hw_interface
vlib_frame_t * vlib_get_frame_to_node(vlib_main_t *vm, u32 to_node_index)
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.
format_function_t format_vnet_sw_interface
#define hash_set(h, key, value)
static uword vnet_hw_interface_get_mtu(vnet_main_t *vnm, u32 hw_if_index, vlib_rx_or_tx_t dir)
#define hash_unset(h, key)
static uword vnet_sw_interface_get_mtu(vnet_main_t *vnm, u32 sw_if_index, vlib_rx_or_tx_t dir)
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
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 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)
unformat_function_t unformat_vnet_sw_interface
uword * interface_tag_by_sw_if_index
#define VNET_HW_INTERFACE_FLAG_LINK_UP
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)
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)
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)
clib_error_t * vnet_hw_interface_change_mac_address(vnet_main_t *vnm, u32 hw_if_index, u64 mac_address)
static uword vnet_hw_interface_get_flags(vnet_main_t *vnm, u32 hw_if_index)
serialize_function_t unserialize_vnet_interface_state
format_function_t format_vnet_hw_interface_rx_mode
void * vnet_interface_output_node_flatten_multiarch_select(void)
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)
#define VNET_SW_INTERFACE_FLAG_HIDDEN
vnet_interface_output_next_t
#define pool_is_free_index(P, I)
Use free bitmap to query whether given index is free.
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
u32 max_l3_packet_bytes[VLIB_N_RX_TX]
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)
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)
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)
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
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
void vlib_put_frame_to_node(vlib_main_t *vm, u32 to_node_index, vlib_frame_t *f)
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)