FD.io VPP  v21.06-3-gbb25fbf28
Vector Packet Processing
l2_api.c File Reference
+ Include dependency graph for l2_api.c:

Go to the source code of this file.

Macros

#define vl_typedefs   /* define message structures */
 
#define vl_endianfun   /* define message structures */
 
#define vl_print(handle, ...)   vlib_cli_output (handle, __VA_ARGS__)
 
#define vl_printfun
 
#define foreach_vpe_api_msg
 
#define vl_msg_name_crc_list
 

Functions

static void send_l2_xconnect_details (vl_api_registration_t *reg, u32 context, u32 rx_sw_if_index, u32 tx_sw_if_index)
 
static void vl_api_l2_xconnect_dump_t_handler (vl_api_l2_xconnect_dump_t *mp)
 
static void vl_api_l2_fib_clear_table_t_handler (vl_api_l2_fib_clear_table_t *mp)
 
static void send_l2fib_table_entry (vpe_api_main_t *am, vl_api_registration_t *reg, l2fib_entry_key_t *l2fe_key, l2fib_entry_result_t *l2fe_res, u32 context)
 
static void vl_api_l2_fib_table_dump_t_handler (vl_api_l2_fib_table_dump_t *mp)
 
static void vl_api_l2fib_add_del_t_handler (vl_api_l2fib_add_del_t *mp)
 
static void vl_api_want_l2_macs_events2_t_handler (vl_api_want_l2_macs_events2_t *mp)
 
static void vl_api_want_l2_macs_events_t_handler (vl_api_want_l2_macs_events_t *mp)
 
static void vl_api_l2fib_flush_int_t_handler (vl_api_l2fib_flush_int_t *mp)
 
static void vl_api_l2fib_flush_all_t_handler (vl_api_l2fib_flush_all_t *mp)
 
static void vl_api_l2fib_flush_bd_t_handler (vl_api_l2fib_flush_bd_t *mp)
 
static void vl_api_l2fib_set_scan_delay_t_handler (vl_api_l2fib_set_scan_delay_t *mp)
 
static void vl_api_l2_flags_t_handler (vl_api_l2_flags_t *mp)
 
static void vl_api_bridge_domain_set_default_learn_limit_t_handler (vl_api_bridge_domain_set_default_learn_limit_t *mp)
 
static void vl_api_bridge_domain_set_learn_limit_t_handler (vl_api_bridge_domain_set_learn_limit_t *mp)
 
static void vl_api_bridge_domain_set_mac_age_t_handler (vl_api_bridge_domain_set_mac_age_t *mp)
 
static void vl_api_bridge_domain_add_del_t_handler (vl_api_bridge_domain_add_del_t *mp)
 
static void send_bridge_domain_details (l2input_main_t *l2im, vl_api_registration_t *reg, l2_bridge_domain_t *bd_config, u32 n_sw_ifs, u32 context)
 
static void vl_api_bridge_domain_dump_t_handler (vl_api_bridge_domain_dump_t *mp)
 
static bd_flags_t bd_flags_decode (vl_api_bd_flags_t v)
 
static void vl_api_bridge_flags_t_handler (vl_api_bridge_flags_t *mp)
 
static void vl_api_l2_interface_vlan_tag_rewrite_t_handler (vl_api_l2_interface_vlan_tag_rewrite_t *mp)
 
static void vl_api_l2_interface_pbb_tag_rewrite_t_handler (vl_api_l2_interface_pbb_tag_rewrite_t *mp)
 
static void vl_api_sw_interface_set_l2_xconnect_t_handler (vl_api_sw_interface_set_l2_xconnect_t *mp)
 
static int l2_bd_port_type_decode (vl_api_l2_port_type_t v, l2_bd_port_type_t *l)
 
static void vl_api_sw_interface_set_l2_bridge_t_handler (vl_api_sw_interface_set_l2_bridge_t *mp)
 
static void send_bd_ip_mac_entry (vpe_api_main_t *am, vl_api_registration_t *reg, u32 bd_id, const ip46_address_t *ip, ip46_type_t itype, const mac_address_t *mac, u32 context)
 
static void vl_api_bd_ip_mac_dump_t_handler (vl_api_bd_ip_mac_dump_t *mp)
 
static void vl_api_bd_ip_mac_add_del_t_handler (vl_api_bd_ip_mac_add_del_t *mp)
 
static void vl_api_bd_ip_mac_flush_t_handler (vl_api_bd_ip_mac_flush_t *mp)
 
void l2_efp_filter_configure (vnet_main_t *vnet_main, u32 sw_if_index, u8 enable)
 Enable/disable the EFP Filter check on the subinterface. More...
 
static void vl_api_l2_interface_efp_filter_t_handler (vl_api_l2_interface_efp_filter_t *mp)
 
static void vl_api_l2_patch_add_del_t_handler (vl_api_l2_patch_add_del_t *mp)
 
static void vl_api_sw_interface_set_vpath_t_handler (vl_api_sw_interface_set_vpath_t *mp)
 
static void vl_api_bvi_create_t_handler (vl_api_bvi_create_t *mp)
 
static void vl_api_bvi_delete_t_handler (vl_api_bvi_delete_t *mp)
 
static bool l2_arp_term_publish_event_is_equal (const l2_arp_term_publish_event_t *e1, const l2_arp_term_publish_event_t *e2)
 
static uword l2_arp_term_process (vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f)
 
static void vl_api_want_l2_arp_term_events_t_handler (vl_api_want_l2_arp_term_events_t *mp)
 
static clib_error_twant_l2_arp_term_events_reaper (u32 client_index)
 
 VL_MSG_API_REAPER_FUNCTION (want_l2_arp_term_events_reaper)
 
static void setup_message_id_table (api_main_t *am)
 
static clib_error_tl2_api_hookup (vlib_main_t *vm)
 
 VLIB_API_INIT_FUNCTION (l2_api_hookup)
 

Variables

vlib_node_registration_t l2_arp_term_process_node
 (constructor) VLIB_REGISTER_NODE (l2_arp_term_process_node) More...
 

Macro Definition Documentation

◆ foreach_vpe_api_msg

#define foreach_vpe_api_msg
Value:
_ (L2_XCONNECT_DUMP, l2_xconnect_dump) \
_ (L2_FIB_CLEAR_TABLE, l2_fib_clear_table) \
_ (L2_FIB_TABLE_DUMP, l2_fib_table_dump) \
_ (L2FIB_FLUSH_ALL, l2fib_flush_all) \
_ (L2FIB_FLUSH_INT, l2fib_flush_int) \
_ (L2FIB_FLUSH_BD, l2fib_flush_bd) \
_ (L2FIB_ADD_DEL, l2fib_add_del) \
_ (L2FIB_SET_SCAN_DELAY, l2fib_set_scan_delay) \
_ (WANT_L2_MACS_EVENTS, want_l2_macs_events) \
_ (WANT_L2_MACS_EVENTS2, want_l2_macs_events2) \
_ (L2_FLAGS, l2_flags) \
_ (SW_INTERFACE_SET_L2_XCONNECT, sw_interface_set_l2_xconnect) \
_ (SW_INTERFACE_SET_L2_BRIDGE, sw_interface_set_l2_bridge) \
_ (L2_PATCH_ADD_DEL, l2_patch_add_del) \
_ (L2_INTERFACE_EFP_FILTER, l2_interface_efp_filter) \
_ (BD_IP_MAC_ADD_DEL, bd_ip_mac_add_del) \
_ (BD_IP_MAC_FLUSH, bd_ip_mac_flush) \
_ (BD_IP_MAC_DUMP, bd_ip_mac_dump) \
_ (BRIDGE_DOMAIN_ADD_DEL, bridge_domain_add_del) \
_ (BRIDGE_DOMAIN_DUMP, bridge_domain_dump) \
_ (BRIDGE_FLAGS, bridge_flags) \
_ (L2_INTERFACE_VLAN_TAG_REWRITE, l2_interface_vlan_tag_rewrite) \
_ (L2_INTERFACE_PBB_TAG_REWRITE, l2_interface_pbb_tag_rewrite) \
_ (BRIDGE_DOMAIN_SET_MAC_AGE, bridge_domain_set_mac_age) \
_ (SW_INTERFACE_SET_VPATH, sw_interface_set_vpath) \
_ (BVI_CREATE, bvi_create) \
_ (BVI_DELETE, bvi_delete) \
_ (WANT_L2_ARP_TERM_EVENTS, want_l2_arp_term_events) \
_ (BRIDGE_DOMAIN_SET_LEARN_LIMIT, bridge_domain_set_learn_limit) \
_ (BRIDGE_DOMAIN_SET_DEFAULT_LEARN_LIMIT, \
bridge_domain_set_default_learn_limit)

Definition at line 53 of file l2_api.c.

◆ vl_endianfun

#define vl_endianfun   /* define message structures */

Definition at line 41 of file l2_api.c.

◆ vl_msg_name_crc_list

#define vl_msg_name_crc_list

Definition at line 1327 of file l2_api.c.

◆ vl_print

#define vl_print (   handle,
  ... 
)    vlib_cli_output (handle, __VA_ARGS__)

Definition at line 46 of file l2_api.c.

◆ vl_printfun

#define vl_printfun

Definition at line 47 of file l2_api.c.

◆ vl_typedefs

#define vl_typedefs   /* define message structures */

Definition at line 37 of file l2_api.c.

Function Documentation

◆ bd_flags_decode()

static bd_flags_t bd_flags_decode ( vl_api_bd_flags_t  v)
static

Definition at line 649 of file l2_api.c.

+ Here is the caller graph for this function:

◆ l2_api_hookup()

static clib_error_t* l2_api_hookup ( vlib_main_t vm)
static

Definition at line 1340 of file l2_api.c.

+ Here is the call graph for this function:

◆ l2_arp_term_process()

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

Definition at line 1172 of file l2_api.c.

+ Here is the call graph for this function:

◆ l2_arp_term_publish_event_is_equal()

static bool l2_arp_term_publish_event_is_equal ( const l2_arp_term_publish_event_t e1,
const l2_arp_term_publish_event_t e2 
)
static

Definition at line 1161 of file l2_api.c.

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

◆ l2_bd_port_type_decode()

static int l2_bd_port_type_decode ( vl_api_l2_port_type_t  v,
l2_bd_port_type_t l 
)
static

Definition at line 831 of file l2_api.c.

+ Here is the caller graph for this function:

◆ l2_efp_filter_configure()

void l2_efp_filter_configure ( vnet_main_t vnet_main,
u32  sw_if_index,
u8  enable 
)

Enable/disable the EFP Filter check on the subinterface.

Definition at line 505 of file l2_efp_filter.c.

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

◆ send_bd_ip_mac_entry()

static void send_bd_ip_mac_entry ( vpe_api_main_t am,
vl_api_registration_t reg,
u32  bd_id,
const ip46_address_t *  ip,
ip46_type_t  itype,
const mac_address_t mac,
u32  context 
)
static

Definition at line 899 of file l2_api.c.

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

◆ send_bridge_domain_details()

static void send_bridge_domain_details ( l2input_main_t l2im,
vl_api_registration_t reg,
l2_bridge_domain_t bd_config,
u32  n_sw_ifs,
u32  context 
)
static

Definition at line 558 of file l2_api.c.

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

◆ send_l2_xconnect_details()

static void send_l2_xconnect_details ( vl_api_registration_t reg,
u32  context,
u32  rx_sw_if_index,
u32  tx_sw_if_index 
)
static

Definition at line 87 of file l2_api.c.

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

◆ send_l2fib_table_entry()

static void send_l2fib_table_entry ( vpe_api_main_t am,
vl_api_registration_t reg,
l2fib_entry_key_t l2fe_key,
l2fib_entry_result_t l2fe_res,
u32  context 
)
static

Definition at line 138 of file l2_api.c.

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

◆ setup_message_id_table()

static void setup_message_id_table ( api_main_t am)
static

Definition at line 1332 of file l2_api.c.

+ Here is the caller graph for this function:

◆ vl_api_bd_ip_mac_add_del_t_handler()

static void vl_api_bd_ip_mac_add_del_t_handler ( vl_api_bd_ip_mac_add_del_t mp)
static

Definition at line 993 of file l2_api.c.

+ Here is the call graph for this function:

◆ vl_api_bd_ip_mac_dump_t_handler()

static void vl_api_bd_ip_mac_dump_t_handler ( vl_api_bd_ip_mac_dump_t mp)
static

Definition at line 922 of file l2_api.c.

+ Here is the call graph for this function:

◆ vl_api_bd_ip_mac_flush_t_handler()

static void vl_api_bd_ip_mac_flush_t_handler ( vl_api_bd_ip_mac_flush_t mp)
static

Definition at line 1031 of file l2_api.c.

+ Here is the call graph for this function:

◆ vl_api_bridge_domain_add_del_t_handler()

static void vl_api_bridge_domain_add_del_t_handler ( vl_api_bridge_domain_add_del_t mp)
static

Definition at line 536 of file l2_api.c.

+ Here is the call graph for this function:

◆ vl_api_bridge_domain_dump_t_handler()

static void vl_api_bridge_domain_dump_t_handler ( vl_api_bridge_domain_dump_t mp)
static

Definition at line 606 of file l2_api.c.

+ Here is the call graph for this function:

◆ vl_api_bridge_domain_set_default_learn_limit_t_handler()

static void vl_api_bridge_domain_set_default_learn_limit_t_handler ( vl_api_bridge_domain_set_default_learn_limit_t mp)
static

Definition at line 469 of file l2_api.c.

◆ vl_api_bridge_domain_set_learn_limit_t_handler()

static void vl_api_bridge_domain_set_learn_limit_t_handler ( vl_api_bridge_domain_set_learn_limit_t mp)
static

Definition at line 480 of file l2_api.c.

+ Here is the call graph for this function:

◆ vl_api_bridge_domain_set_mac_age_t_handler()

static void vl_api_bridge_domain_set_mac_age_t_handler ( vl_api_bridge_domain_set_mac_age_t mp)
static

Definition at line 508 of file l2_api.c.

+ Here is the call graph for this function:

◆ vl_api_bridge_flags_t_handler()

static void vl_api_bridge_flags_t_handler ( vl_api_bridge_flags_t mp)
static

Definition at line 672 of file l2_api.c.

+ Here is the call graph for this function:

◆ vl_api_bvi_create_t_handler()

static void vl_api_bvi_create_t_handler ( vl_api_bvi_create_t mp)
static

Definition at line 1130 of file l2_api.c.

+ Here is the call graph for this function:

◆ vl_api_bvi_delete_t_handler()

static void vl_api_bvi_delete_t_handler ( vl_api_bvi_delete_t mp)
static

Definition at line 1150 of file l2_api.c.

+ Here is the call graph for this function:

◆ vl_api_l2_fib_clear_table_t_handler()

static void vl_api_l2_fib_clear_table_t_handler ( vl_api_l2_fib_clear_table_t mp)
static

Definition at line 126 of file l2_api.c.

+ Here is the call graph for this function:

◆ vl_api_l2_fib_table_dump_t_handler()

static void vl_api_l2_fib_table_dump_t_handler ( vl_api_l2_fib_table_dump_t mp)
static

Definition at line 163 of file l2_api.c.

+ Here is the call graph for this function:

◆ vl_api_l2_flags_t_handler()

static void vl_api_l2_flags_t_handler ( vl_api_l2_flags_t mp)
static

Definition at line 429 of file l2_api.c.

+ Here is the call graph for this function:

◆ vl_api_l2_interface_efp_filter_t_handler()

static void vl_api_l2_interface_efp_filter_t_handler ( vl_api_l2_interface_efp_filter_t mp)
static

Definition at line 1065 of file l2_api.c.

+ Here is the call graph for this function:

◆ vl_api_l2_interface_pbb_tag_rewrite_t_handler()

static void vl_api_l2_interface_pbb_tag_rewrite_t_handler ( vl_api_l2_interface_pbb_tag_rewrite_t mp)
static

Definition at line 750 of file l2_api.c.

+ Here is the call graph for this function:

◆ vl_api_l2_interface_vlan_tag_rewrite_t_handler()

static void vl_api_l2_interface_vlan_tag_rewrite_t_handler ( vl_api_l2_interface_vlan_tag_rewrite_t mp)
static

Definition at line 708 of file l2_api.c.

+ Here is the call graph for this function:

◆ vl_api_l2_patch_add_del_t_handler()

static void vl_api_l2_patch_add_del_t_handler ( vl_api_l2_patch_add_del_t mp)
static

Definition at line 1083 of file l2_api.c.

+ Here is the call graph for this function:

◆ vl_api_l2_xconnect_dump_t_handler()

static void vl_api_l2_xconnect_dump_t_handler ( vl_api_l2_xconnect_dump_t mp)
static

Definition at line 103 of file l2_api.c.

+ Here is the call graph for this function:

◆ vl_api_l2fib_add_del_t_handler()

static void vl_api_l2fib_add_del_t_handler ( vl_api_l2fib_add_del_t mp)
static

Definition at line 202 of file l2_api.c.

+ Here is the call graph for this function:

◆ vl_api_l2fib_flush_all_t_handler()

static void vl_api_l2fib_flush_all_t_handler ( vl_api_l2fib_flush_all_t mp)
static

Definition at line 376 of file l2_api.c.

+ Here is the call graph for this function:

◆ vl_api_l2fib_flush_bd_t_handler()

static void vl_api_l2fib_flush_bd_t_handler ( vl_api_l2fib_flush_bd_t mp)
static

Definition at line 386 of file l2_api.c.

+ Here is the call graph for this function:

◆ vl_api_l2fib_flush_int_t_handler()

static void vl_api_l2fib_flush_int_t_handler ( vl_api_l2fib_flush_int_t mp)
static

Definition at line 360 of file l2_api.c.

+ Here is the call graph for this function:

◆ vl_api_l2fib_set_scan_delay_t_handler()

static void vl_api_l2fib_set_scan_delay_t_handler ( vl_api_l2fib_set_scan_delay_t mp)
static

Definition at line 406 of file l2_api.c.

+ Here is the call graph for this function:

◆ vl_api_sw_interface_set_l2_bridge_t_handler()

static void vl_api_sw_interface_set_l2_bridge_t_handler ( vl_api_sw_interface_set_l2_bridge_t mp)
static

Definition at line 853 of file l2_api.c.

+ Here is the call graph for this function:

◆ vl_api_sw_interface_set_l2_xconnect_t_handler()

static void vl_api_sw_interface_set_l2_xconnect_t_handler ( vl_api_sw_interface_set_l2_xconnect_t mp)
static

Definition at line 790 of file l2_api.c.

+ Here is the call graph for this function:

◆ vl_api_sw_interface_set_vpath_t_handler()

static void vl_api_sw_interface_set_vpath_t_handler ( vl_api_sw_interface_set_vpath_t mp)
static

Definition at line 1106 of file l2_api.c.

+ Here is the call graph for this function:

◆ vl_api_want_l2_arp_term_events_t_handler()

static void vl_api_want_l2_arp_term_events_t_handler ( vl_api_want_l2_arp_term_events_t mp)
static

Definition at line 1248 of file l2_api.c.

+ Here is the call graph for this function:

◆ vl_api_want_l2_macs_events2_t_handler()

static void vl_api_want_l2_macs_events2_t_handler ( vl_api_want_l2_macs_events2_t mp)
static

Definition at line 265 of file l2_api.c.

+ Here is the call graph for this function:

◆ vl_api_want_l2_macs_events_t_handler()

static void vl_api_want_l2_macs_events_t_handler ( vl_api_want_l2_macs_events_t mp)
static

Definition at line 310 of file l2_api.c.

+ Here is the call graph for this function:

◆ VL_MSG_API_REAPER_FUNCTION()

VL_MSG_API_REAPER_FUNCTION ( want_l2_arp_term_events_reaper  )

◆ VLIB_API_INIT_FUNCTION()

VLIB_API_INIT_FUNCTION ( l2_api_hookup  )

◆ want_l2_arp_term_events_reaper()

static clib_error_t* want_l2_arp_term_events_reaper ( u32  client_index)
static

Definition at line 1296 of file l2_api.c.

+ Here is the call graph for this function:

Variable Documentation

◆ l2_arp_term_process_node

vlib_node_registration_t l2_arp_term_process_node
Initial value:
= {
.function = l2_arp_term_process,
.name = "l2-arp-term-publisher",
}

(constructor) VLIB_REGISTER_NODE (l2_arp_term_process_node)

Definition at line 1240 of file l2_api.c.

l2fib_set_scan_delay
static clib_error_t * l2fib_set_scan_delay(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
Definition: l2_fib.c:849
VLIB_NODE_TYPE_PROCESS
@ VLIB_NODE_TYPE_PROCESS
Definition: node.h:84
l2_arp_term_process
static uword l2_arp_term_process(vlib_main_t *vm, vlib_node_runtime_t *rt, vlib_frame_t *f)
Definition: l2_api.c:1172