FD.io VPP
v19.01.2-3-gf61a1a8
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... | |
static uword | l2_efp_filter_node_fn (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 vlib_node_registration_t | l2_efp_filter_node |
(constructor) VLIB_REGISTER_NODE (l2_efp_filter_node) More... | |
static char * | l2_efp_filter_error_strings [] |
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 87 of file l2_efp_filter.c.
Enumerator | |
---|---|
L2_EFP_FILTER_N_ERROR |
Definition at line 91 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 105 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 117 of file l2_efp_filter.c.
Definition at line 66 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 515 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 502 of file l2_efp_filter.c.
clib_error_t* l2_efp_filter_init | ( | vlib_main_t * | vm | ) |
|
static |
|
static |
(constructor) VLIB_CLI_COMMAND (int_l2_efp_filter_cli)
Definition at line 558 of file l2_efp_filter.c.
|
static |
Definition at line 99 of file l2_efp_filter.c.
l2_efp_filter_main_t l2_efp_filter_main |
Definition at line 83 of file l2_efp_filter.c.
|
static |
(constructor) VLIB_REGISTER_NODE (l2_efp_filter_node)
Definition at line 85 of file l2_efp_filter.c.