Go to the source code of this file.
|
void | l2_emulation_enable (u32 sw_if_index) |
| L2 Emulation is a feautre that is applied to L2 ports to 'extract' IP packets from the L2 path and inject them into the L3 path (i.e. More...
|
|
void | l2_emulation_disable (u32 sw_if_index) |
|
static clib_error_t * | l2_emulation_interface_add_del (vnet_main_t *vnm, u32 sw_if_index, u32 is_add) |
|
| VNET_SW_INTERFACE_ADD_DEL_FUNCTION (l2_emulation_interface_add_del) |
|
static clib_error_t * | l2_emulation_cli (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd) |
|
static clib_error_t * | l2_emulation_show (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd) |
|
static uword | l2_emulation_node_fn (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame) |
|
static u8 * | format_l2_emulation_trace (u8 *s, va_list *args) |
|
| VLIB_NODE_FUNCTION_MULTIARCH (l2_emulation_node, l2_emulation_node_fn) |
|
static clib_error_t * | l2_emulation_init (vlib_main_t *vm) |
|
◆ foreach_l2_emulation
#define foreach_l2_emulation |
Value:
Definition at line 194 of file l2e.c.
◆ l2_emulation_main_t
Grouping of global data for the L2 emulation feature.
◆ l2_emulation_t
Per-interface L2 configuration.
◆ l2_emulation_trace_t
◆ l2_emulation_error_t
Enumerator |
---|
L2_EMULATION_N_ERROR | |
Definition at line 198 of file l2e.c.
◆ l2_emulation_next_t
Enumerator |
---|
L2_EMULATION_N_NEXT | |
Definition at line 212 of file l2e.c.
◆ format_l2_emulation_trace()
static u8* format_l2_emulation_trace |
( |
u8 * |
s, |
|
|
va_list * |
args |
|
) |
| |
|
static |
◆ l2_emulation_cli()
◆ l2_emulation_disable()
void l2_emulation_disable |
( |
u32 |
sw_if_index | ) |
|
Definition at line 80 of file l2e.c.
◆ l2_emulation_enable()
void l2_emulation_enable |
( |
u32 |
sw_if_index | ) |
|
L2 Emulation is a feautre that is applied to L2 ports to 'extract' IP packets from the L2 path and inject them into the L3 path (i.e.
into the appropriate ip[4|6]_input node). L3 routes in the table_id for that interface should then be configured as DVR routes, therefore the forwarded packet has the L2 header preserved and togehter the L3 routed system behaves like an L2 bridge.
Definition at line 59 of file l2e.c.
◆ l2_emulation_init()
◆ l2_emulation_interface_add_del()
Definition at line 94 of file l2e.c.
◆ l2_emulation_node_fn()
◆ l2_emulation_show()
◆ VLIB_NODE_FUNCTION_MULTIARCH()
◆ VNET_SW_INTERFACE_ADD_DEL_FUNCTION()
◆ ezero
A zero'd out struct we can use in the vec_validate.
Definition at line 51 of file l2e.c.
◆ l2_emulation_cli_node
Initial value:= {
.path = "set interface l2 l2-emulation",
.short_help =
"set interface l2 l2-emulation <interface-name> [disable|enable]\n",
}
static clib_error_t * l2_emulation_cli(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
(constructor) VLIB_CLI_COMMAND (l2_emulation_cli_node)
Definition at line 149 of file l2e.c.
◆ l2_emulation_error_strings
char* l2_emulation_error_strings[] |
|
static |
Initial value:= {
#define _(sym,string)
}
#define foreach_l2_emulation
Definition at line 206 of file l2e.c.
◆ l2_emulation_main
Definition at line 34 of file l2e.c.
◆ l2_emulation_node
Initial value:= {
.name = "l2-emulation",
.vector_size =
sizeof (
u32),
.next_nodes = {
[L2_EMULATION_NEXT_IP4] = "ip4-input",
[L2_EMULATION_NEXT_IP6] = "ip6-input",
},
}
static char * l2_emulation_error_strings[]
static u8 * format_l2_emulation_trace(u8 *s, va_list *args)
static uword l2_emulation_node_fn(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
(constructor) VLIB_REGISTER_NODE (l2_emulation_node)
Definition at line 440 of file l2e.c.
◆ l2_emulation_show_node
Initial value:= {
.path = "show interface l2 l2-emulation",
.short_help = "show interface l2 l2-emulation\n",
}
static clib_error_t * l2_emulation_show(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
(constructor) VLIB_CLI_COMMAND (l2_emulation_show_node)
Definition at line 187 of file l2e.c.
◆ l2_emulations
Per-interface vector of emulation configs.
Definition at line 56 of file l2e.c.