Go to the source code of this file.
|
static u8 * | format_nsh_output_trace (u8 *s, va_list *args) |
|
static uword | nsh_output_inline (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame, int is_midchain) |
|
VLIB_NODE_FN() | nsh_eth_output_node (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame) |
|
VLIB_NODE_FN() | nsh_midchain_node (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame) |
|
| VNET_FEATURE_INIT (nsh_interface_output, static) |
|
| VNET_FEATURE_ARC_INIT (nsh_eth_output, static) |
|
| VNET_FEATURE_INIT (nsh_eth_tx_drop, static) |
|
VLIB_NODE_FN() | nsh_adj_incomplete_node (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame) |
| Graph node for incomplete NSH adjacency. More...
|
|
static u8 * | format_nsh_adj_incomplete_trace (u8 *s, va_list *args) |
|
◆ foreach_nsh_adj_incomplete_next
#define foreach_nsh_adj_incomplete_next |
Value:_(IP4, "ip4-arp") \
_(IP6, "ip6-discover-neighbor")
Next index values from the NSH incomplete adj node.
Definition at line 387 of file nsh_output.c.
◆ foreach_nsh_output_next
#define foreach_nsh_output_next |
Value:_(INTERFACE, "interface-output" )
Definition at line 32 of file nsh_output.c.
◆ nsh_adj_incomplete_trace_t
A struct to hold tracing information for the NSH label imposition node.
◆ nsh_midchain_next_t
◆ nsh_adj_incomplete_next_t
Enumerator |
---|
NSH_ADJ_INCOMPLETE_N_NEXT | |
Definition at line 392 of file nsh_output.c.
◆ nsh_midchain_next_t_
Enumerator |
---|
NSH_MIDCHAIN_NEXT_DROP | |
Definition at line 319 of file nsh_output.c.
◆ nsh_output_next_t
Enumerator |
---|
NSH_OUTPUT_N_NEXT | |
Definition at line 36 of file nsh_output.c.
◆ format_nsh_adj_incomplete_trace()
static u8* format_nsh_adj_incomplete_trace |
( |
u8 * |
s, |
|
|
va_list * |
args |
|
) |
| |
|
static |
◆ format_nsh_output_trace()
static u8* format_nsh_output_trace |
( |
u8 * |
s, |
|
|
va_list * |
args |
|
) |
| |
|
static |
◆ nsh_adj_incomplete_node()
Graph node for incomplete NSH adjacency.
This node will push traffic to either the v4-arp or v6-nd node based on the next-hop proto of the adj. We pay a cost for this 'routing' node, but an incomplete adj is the exception case.
Definition at line 416 of file nsh_output.c.
◆ nsh_eth_output_node()
◆ nsh_midchain_node()
◆ nsh_output_inline()
◆ VNET_FEATURE_ARC_INIT()
VNET_FEATURE_ARC_INIT |
( |
nsh_eth_output |
, |
|
|
static |
|
|
) |
| |
◆ VNET_FEATURE_INIT() [1/2]
VNET_FEATURE_INIT |
( |
nsh_interface_output |
, |
|
|
static |
|
|
) |
| |
◆ VNET_FEATURE_INIT() [2/2]
VNET_FEATURE_INIT |
( |
nsh_eth_tx_drop |
, |
|
|
static |
|
|
) |
| |
◆ nsh_adj_incomplete_node
Initial value:= {
.name = "nsh-adj-incomplete",
.vector_size =
sizeof (
u32),
.next_nodes = {
#define _(s,n)
},
}
static u8 * format_nsh_adj_incomplete_trace(u8 *s, va_list *args)
#define foreach_nsh_adj_incomplete_next
Next index values from the NSH incomplete adj node.
(constructor) VLIB_REGISTER_NODE (nsh_adj_incomplete_node)
Definition at line 494 of file nsh_output.c.
◆ nsh_eth_output_node
Initial value:= {
.name = "nsh-eth-output",
.vector_size =
sizeof (
u32),
.next_nodes = {
#define _(s,n)
},
}
static u8 * format_nsh_output_trace(u8 *s, va_list *args)
#define foreach_nsh_output_next
(constructor) VLIB_REGISTER_NODE (nsh_eth_output_node)
Definition at line 331 of file nsh_output.c.
◆ nsh_midchain_node
Initial value:= {
.name = "nsh-midchain",
.vector_size =
sizeof (
u32),
.n_next_nodes = 1,
.next_nodes = {
},
}
static u8 * format_nsh_output_trace(u8 *s, va_list *args)
(constructor) VLIB_REGISTER_NODE (nsh_midchain_node)
Definition at line 352 of file nsh_output.c.