FD.io VPP
v19.08.3-2-gbabecb413
Vector Packet Processing
|
Layer 2 Output Classifier. More...
Go to the source code of this file.
Data Structures | |
struct | l2_output_classify_trace_t |
struct | l2_output_classify_runtime_t |
Macros | |
#define | foreach_l2_output_classify_error |
Enumerations | |
enum | l2_output_classify_error_t { L2_OUTPUT_CLASSIFY_N_ERROR } |
Functions | |
static u8 * | format_l2_output_classify_trace (u8 *s, va_list *args) |
Packet trace format function. More... | |
VLIB_NODE_FN() | l2_output_classify_node (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame) |
l2 output classifier node. More... | |
clib_error_t * | l2_output_classify_init (vlib_main_t *vm) |
l2 output classsifier feature initialization. More... | |
clib_error_t * | l2_output_classify_worker_init (vlib_main_t *vm) |
VLIB_WORKER_INIT_FUNCTION (l2_output_classify_worker_init) | |
void | vnet_l2_output_classify_enable_disable (u32 sw_if_index, int enable_disable) |
Enable/disable l2 input classification on a specific interface. More... | |
int | vnet_l2_output_classify_set_tables (u32 sw_if_index, u32 ip4_table_index, u32 ip6_table_index, u32 other_table_index) |
Set l2 per-protocol, per-interface output classification tables. More... | |
static clib_error_t * | int_l2_output_classify_command_fn (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd) |
Variables | |
l2_output_classify_main_t | l2_output_classify_main |
l2 output classifier main data structure. More... | |
static char * | l2_output_classify_error_strings [] |
vlib_node_registration_t | l2_output_classify_node |
(constructor) VLIB_REGISTER_NODE (l2_output_classify_node) More... | |
static vlib_cli_command_t | int_l2_output_classify_cli |
(constructor) VLIB_CLI_COMMAND (int_l2_output_classify_cli) More... | |
Layer 2 Output Classifier.
Definition in file l2_output_classify.c.
#define foreach_l2_output_classify_error |
Definition at line 69 of file l2_output_classify.c.
Enumerator | |
---|---|
L2_OUTPUT_CLASSIFY_N_ERROR |
Definition at line 75 of file l2_output_classify.c.
Packet trace format function.
Definition at line 49 of file l2_output_classify.c.
|
static |
clib_error_t* l2_output_classify_init | ( | vlib_main_t * | vm | ) |
l2 output classsifier feature initialization.
Definition at line 463 of file l2_output_classify.c.
VLIB_NODE_FN() l2_output_classify_node | ( | vlib_main_t * | vm, |
vlib_node_runtime_t * | node, | ||
vlib_frame_t * | frame | ||
) |
l2 output classifier node.
l2-output-classify
This is the l2 output classifier dispatch node
vm | vlib_main_t corresponding to the current thread. |
node | vlib_node_runtime_t data for this node. |
frame | vlib_frame_t whose contents should be dispatched. |
Uses:
(l2_output_classify_runtime_t *) rt->classify_table_index_by_sw_if_index
Head of the per-interface, per-protocol classifier table chain for a specific interface. ~0 => send pkts to the next feature in the L2 feature chain.vnet_buffer(b)->sw_if_index[VLIB_TX]
sw_if_index
value of the interface that the packet was received on.vnet_buffer (b0)->l2.feature_bitmap
(vnet_classify_entry_t) e0->next_index
(vnet_classify_entry_t) e0->advance
vlib_buffer_advance
when the classifier hits on a session(vnet_classify_table_t) t0->miss_next_index
Sets:
vnet_buffer (b0)->l2_classify.table_index
vnet_buffer (b0)->l2_classify.hash
vnet_buffer (b0)->l2.feature_bitmap
vnet_buffer (b0)->l2_classify.opaque_index
Counters:
L2_OUTPUT_CLASSIFY_ERROR_MISS
Classifier missesL2_OUTPUT_CLASSIFY_ERROR_HIT
Classifier hitsL2_OUTPUT_CLASSIFY_ERROR_CHAIN_HIT
Classifier hits in other than the first table Definition at line 139 of file l2_output_classify.c.
clib_error_t* l2_output_classify_worker_init | ( | vlib_main_t * | vm | ) |
VLIB_WORKER_INIT_FUNCTION | ( | l2_output_classify_worker_init | ) |
void vnet_l2_output_classify_enable_disable | ( | u32 | sw_if_index, |
int | enable_disable | ||
) |
Enable/disable l2 input classification on a specific interface.
Definition at line 506 of file l2_output_classify.c.
int vnet_l2_output_classify_set_tables | ( | u32 | sw_if_index, |
u32 | ip4_table_index, | ||
u32 | ip6_table_index, | ||
u32 | other_table_index | ||
) |
Set l2 per-protocol, per-interface output classification tables.
sw_if_index | interface handle |
ip4_table_index | ip4 classification table index, or ~0 |
ip6_table_index | ip6 classification table index, or ~0 |
other_table_index | non-ip4, non-ip6 classification table index, or ~0 |
Definition at line 525 of file l2_output_classify.c.
|
static |
(constructor) VLIB_CLI_COMMAND (int_l2_output_classify_cli)
Definition at line 639 of file l2_output_classify.c.
|
static |
Definition at line 83 of file l2_output_classify.c.
l2_output_classify_main_t l2_output_classify_main |
l2 output classifier main data structure.
Definition at line 66 of file l2_output_classify.c.
vlib_node_registration_t l2_output_classify_node |
(constructor) VLIB_REGISTER_NODE (l2_output_classify_node)
Definition at line 440 of file l2_output_classify.c.