FD.io VPP
v17.01-9-ge7dcee4
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, u32 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 88 of file l2_efp_filter.c.
Enumerator | |
---|---|
L2_EFP_FILTER_N_ERROR |
Definition at line 92 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 106 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 118 of file l2_efp_filter.c.
Definition at line 67 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 557 of file l2_efp_filter.c.
void l2_efp_filter_configure | ( | vnet_main_t * | vnet_main, |
u32 | sw_if_index, | ||
u32 | enable | ||
) |
Enable/disable the EFP Filter check on the subinterface.
Definition at line 544 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 600 of file l2_efp_filter.c.
|
static |
Definition at line 100 of file l2_efp_filter.c.
l2_efp_filter_main_t l2_efp_filter_main |
Definition at line 84 of file l2_efp_filter.c.
|
static |
(constructor) VLIB_REGISTER_NODE (l2_efp_filter_node)
Definition at line 86 of file l2_efp_filter.c.