FD.io VPP
v17.07.01-10-g3be13f0
Vector Packet Processing
|
Go to the source code of this file.
Data Structures | |
struct | mpls_tunnel_collect_forwarding_ctx_t_ |
struct | mpls_tunnel_trace_t_ |
Packet trace structure. More... | |
Typedefs | |
typedef struct mpls_tunnel_collect_forwarding_ctx_t_ | mpls_tunnel_collect_forwarding_ctx_t |
typedef struct mpls_tunnel_trace_t_ | mpls_tunnel_trace_t |
Packet trace structure. More... | |
Functions | |
static mpls_tunnel_t * | mpls_tunnel_get_from_sw_if_index (u32 sw_if_index) |
Get a tunnel object from a SW interface index. More... | |
static u8 * | mpls_tunnel_build_rewrite_i (void) |
Build a rewrite string for the MPLS tunnel. More... | |
static u8 * | mpls_tunnel_build_rewrite (vnet_main_t *vnm, u32 sw_if_index, vnet_link_t link_type, const void *dst_address) |
Build a rewrite string for the MPLS tunnel. More... | |
static fib_path_list_walk_rc_t | mpls_tunnel_collect_forwarding (fib_node_index_t pl_index, fib_node_index_t path_index, void *arg) |
static void | mpls_tunnel_mk_lb (mpls_tunnel_t *mt, vnet_link_t linkt, fib_forward_chain_type_t fct, dpo_id_t *dpo_lb) |
static void | mpls_tunnel_stack (adj_index_t ai) |
mpls_tunnel_stack More... | |
static adj_walk_rc_t | mpls_adj_walk_cb (adj_index_t ai, void *ctx) |
Call back when restacking all adjacencies on a MPLS interface. More... | |
static void | mpls_tunnel_restack (mpls_tunnel_t *mt) |
static clib_error_t * | mpls_tunnel_admin_up_down (vnet_main_t *vnm, u32 hw_if_index, u32 flags) |
static void | mpls_tunnel_fixup (vlib_main_t *vm, ip_adjacency_t *adj, vlib_buffer_t *b0) |
Fixup the adj rewrite post encap. More... | |
static void | mpls_tunnel_update_adj (vnet_main_t *vnm, u32 sw_if_index, adj_index_t ai) |
static u8 * | format_mpls_tunnel_name (u8 *s, va_list *args) |
static u8 * | format_mpls_tunnel_device (u8 *s, va_list *args) |
static u8 * | format_mpls_tunnel_tx_trace (u8 *s, va_list *args) |
static uword | mpls_tunnel_tx (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame) |
TX function. More... | |
VNET_DEVICE_CLASS (mpls_tunnel_class) | |
VNET_HW_INTERFACE_CLASS (mpls_tunnel_hw_interface_class) | |
const mpls_tunnel_t * | mpls_tunnel_get (u32 mti) |
void | mpls_tunnel_walk (mpls_tunnel_walk_cb_t cb, void *ctx) |
Walk all the MPLS tunnels. More... | |
void | vnet_mpls_tunnel_del (u32 sw_if_index) |
Delete an MPLS tunnel. More... | |
u32 | vnet_mpls_tunnel_create (u8 l2_only, u8 is_multicast) |
Create a new MPLS tunnel. More... | |
void | vnet_mpls_tunnel_path_add (u32 sw_if_index, fib_route_path_t *rpaths) |
Add a path to an MPLS tunnel. More... | |
int | vnet_mpls_tunnel_path_remove (u32 sw_if_index, fib_route_path_t *rpaths) |
remove a path from a tunnel. More... | |
static clib_error_t * | vnet_create_mpls_tunnel_command_fn (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd) |
static u8 * | format_mpls_tunnel (u8 *s, va_list *args) |
static clib_error_t * | show_mpls_tunnel_command_fn (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd) |
static mpls_tunnel_t * | mpls_tunnel_from_fib_node (fib_node_t *node) |
static fib_node_back_walk_rc_t | mpls_tunnel_back_walk (fib_node_t *node, fib_node_back_walk_ctx_t *ctx) |
Function definition to backwalk a FIB node. More... | |
static fib_node_t * | mpls_tunnel_fib_node_get (fib_node_index_t index) |
Function definition to get a FIB node from its index. More... | |
static void | mpls_tunnel_last_lock_gone (fib_node_t *node) |
Function definition to inform the FIB node that its last lock has gone. More... | |
static clib_error_t * | mpls_tunnel_init (vlib_main_t *vm) |
Variables | |
static mpls_tunnel_t * | mpls_tunnel_pool |
pool of tunnel instances More... | |
static u32 * | mpls_tunnel_free_hw_if_indices |
Pool of free tunnel SW indices - i.e. More... | |
static u32 * | mpls_tunnel_db |
DB of SW index to tunnel index. More... | |
static const char * | mpls_tunnel_attribute_names [] = MPLS_TUNNEL_ATTRIBUTES |
MPLS tunnel flags strings. More... | |
static vlib_cli_command_t | create_mpls_tunnel_command |
(constructor) VLIB_CLI_COMMAND (create_mpls_tunnel_command) More... | |
static vlib_cli_command_t | show_mpls_tunnel_command |
(constructor) VLIB_CLI_COMMAND (show_mpls_tunnel_command) More... | |
static const fib_node_vft_t | mpls_vft |
typedef struct mpls_tunnel_trace_t_ mpls_tunnel_trace_t |
Packet trace structure.
Definition at line 896 of file mpls_tunnel.c.
Definition at line 421 of file mpls_tunnel.c.
Definition at line 414 of file mpls_tunnel.c.
Definition at line 441 of file mpls_tunnel.c.
|
static |
Call back when restacking all adjacencies on a MPLS interface.
Definition at line 300 of file mpls_tunnel.c.
|
static |
Definition at line 326 of file mpls_tunnel.c.
|
static |
Function definition to backwalk a FIB node.
Definition at line 998 of file mpls_tunnel.c.
|
static |
Build a rewrite string for the MPLS tunnel.
Definition at line 87 of file mpls_tunnel.c.
|
static |
Build a rewrite string for the MPLS tunnel.
Definition at line 67 of file mpls_tunnel.c.
|
static |
Definition at line 103 of file mpls_tunnel.c.
|
static |
Function definition to get a FIB node from its index.
Definition at line 1010 of file mpls_tunnel.c.
|
static |
Fixup the adj rewrite post encap.
This is a no-op since the rewrite is a stack of labels.
Definition at line 356 of file mpls_tunnel.c.
|
static |
const mpls_tunnel_t* mpls_tunnel_get | ( | u32 | mti | ) |
|
static |
Get a tunnel object from a SW interface index.
Definition at line 53 of file mpls_tunnel.c.
|
static |
|
static |
Function definition to inform the FIB node that its last lock has gone.
Definition at line 1023 of file mpls_tunnel.c.
|
static |
Definition at line 148 of file mpls_tunnel.c.
|
static |
Definition at line 309 of file mpls_tunnel.c.
|
static |
mpls_tunnel_stack
'stack' (resolve the recursion for) the tunnel's midchain adjacency
Definition at line 239 of file mpls_tunnel.c.
|
static |
TX function.
Only called L2. L3 traffic uses the adj-midchains
Definition at line 456 of file mpls_tunnel.c.
|
static |
Definition at line 369 of file mpls_tunnel.c.
void mpls_tunnel_walk | ( | mpls_tunnel_walk_cb_t | cb, |
void * | ctx | ||
) |
Walk all the MPLS tunnels.
Definition at line 544 of file mpls_tunnel.c.
|
static |
|
static |
VNET_DEVICE_CLASS | ( | mpls_tunnel_class | ) |
VNET_HW_INTERFACE_CLASS | ( | mpls_tunnel_hw_interface_class | ) |
Create a new MPLS tunnel.
Definition at line 577 of file mpls_tunnel.c.
void vnet_mpls_tunnel_del | ( | u32 | sw_if_index | ) |
Delete an MPLS tunnel.
Definition at line 556 of file mpls_tunnel.c.
void vnet_mpls_tunnel_path_add | ( | u32 | sw_if_index, |
fib_route_path_t * | rpaths | ||
) |
Add a path to an MPLS tunnel.
Definition at line 644 of file mpls_tunnel.c.
int vnet_mpls_tunnel_path_remove | ( | u32 | sw_if_index, |
fib_route_path_t * | rpath | ||
) |
remove a path from a tunnel.
Definition at line 696 of file mpls_tunnel.c.
|
static |
(constructor) VLIB_CLI_COMMAND (create_mpls_tunnel_command)
Definition at line 888 of file mpls_tunnel.c.
|
static |
MPLS tunnel flags strings.
Definition at line 47 of file mpls_tunnel.c.
|
static |
DB of SW index to tunnel index.
Definition at line 42 of file mpls_tunnel.c.
|
static |
|
static |
pool of tunnel instances
Definition at line 32 of file mpls_tunnel.c.
|
static |
Definition at line 1036 of file mpls_tunnel.c.
|
static |
(constructor) VLIB_CLI_COMMAND (show_mpls_tunnel_command)
Definition at line 979 of file mpls_tunnel.c.