FD.io VPP
v21.01.1
Vector Packet Processing
|
EFP-filter - Ethernet Flow Point Filter. More...
Go to the source code of this file.
Data Structures | |
struct | l2_efp_filter_main_t |
struct | l2_efp_filter_trace_t |
Macros | |
#define | foreach_l2_efp_filter_error |
Enumerations | |
enum | l2_efp_filter_error_t { L2_EFP_FILTER_N_ERROR } |
enum | l2_efp_filter_next_t { L2_EFP_FILTER_NEXT_DROP, L2_EFP_FILTER_N_NEXT } |
Functions | |
static u8 * | format_l2_efp_filter_trace (u8 *s, va_list *args) |
static_always_inline void | extract_keys (vnet_main_t *vnet_main, u32 sw_if_index0, vlib_buffer_t *b0, u32 *port_sw_if_index0, u16 *first_ethertype0, u16 *outer_id0, u16 *inner_id0, u32 *match_flags0) |
Extract fields from the packet that will be used in interface classification. More... | |
VLIB_NODE_FN() | l2_efp_filter_node (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame) |
clib_error_t * | l2_efp_filter_init (vlib_main_t *vm) |
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 clib_error_t * | int_l2_efp_filter (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd) |
Set subinterface egress efp filter enable/disable. More... | |
Variables | |
l2_efp_filter_main_t | l2_efp_filter_main |
static char * | l2_efp_filter_error_strings [] |
vlib_node_registration_t | l2_efp_filter_node |
(constructor) VLIB_REGISTER_NODE (l2_efp_filter_node) More... | |
static vlib_cli_command_t | int_l2_efp_filter_cli |
(constructor) VLIB_CLI_COMMAND (int_l2_efp_filter_cli) More... | |
EFP-filter - Ethernet Flow Point Filter.
It is possible to transmit a packet out a subinterface with VLAN tags that are not compatible with that subinterface. In other words, if that packet arrived on the output port, it would not be classified as coming from the output subinterface. This can happen in various ways: through misconfiguration, by putting subinterfaces with different VLAN encaps in the same bridge-domain, etc. The EFP Filter Check detects such packets and drops them. It consists of two checks, one that verifies the packet prior to output VLAN tag rewrite and one that verifies the packet after VLAN tag rewrite.
Definition in file l2_efp_filter.c.
#define foreach_l2_efp_filter_error |
Definition at line 90 of file l2_efp_filter.c.
Enumerator | |
---|---|
L2_EFP_FILTER_N_ERROR |
Definition at line 94 of file l2_efp_filter.c.
enum l2_efp_filter_next_t |
Enumerator | |
---|---|
L2_EFP_FILTER_NEXT_DROP | |
L2_EFP_FILTER_N_NEXT |
Definition at line 108 of file l2_efp_filter.c.
static_always_inline void extract_keys | ( | vnet_main_t * | vnet_main, |
u32 | sw_if_index0, | ||
vlib_buffer_t * | b0, | ||
u32 * | port_sw_if_index0, | ||
u16 * | first_ethertype0, | ||
u16 * | outer_id0, | ||
u16 * | inner_id0, | ||
u32 * | match_flags0 | ||
) |
Extract fields from the packet that will be used in interface classification.
Definition at line 120 of file l2_efp_filter.c.
|
static |
Set subinterface egress efp filter enable/disable.
The CLI format is: set interface l2 efp-filter <interface> [disable]]
Definition at line 518 of file l2_efp_filter.c.
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.
clib_error_t* l2_efp_filter_init | ( | vlib_main_t * | vm | ) |
VLIB_NODE_FN() l2_efp_filter_node | ( | vlib_main_t * | vm, |
vlib_node_runtime_t * | node, | ||
vlib_frame_t * | frame | ||
) |
|
static |
(constructor) VLIB_CLI_COMMAND (int_l2_efp_filter_cli)
Definition at line 561 of file l2_efp_filter.c.
|
static |
Definition at line 102 of file l2_efp_filter.c.
l2_efp_filter_main_t l2_efp_filter_main |
Definition at line 87 of file l2_efp_filter.c.
vlib_node_registration_t l2_efp_filter_node |
(constructor) VLIB_REGISTER_NODE (l2_efp_filter_node)
Definition at line 463 of file l2_efp_filter.c.