FD.io VPP
v20.01-48-g3e0dafb74
Vector Packet Processing
|
Go to the source code of this file.
Data Structures | |
struct | adj_midchain_tx_trace_t_ |
Trace data for packets traversing the midchain tx node. More... | |
Typedefs | |
typedef struct adj_midchain_tx_trace_t_ | adj_midchain_tx_trace_t |
Trace data for packets traversing the midchain tx node. More... | |
Variables | |
static u32 | adj_midchain_tx_feature_node [VNET_LINK_NUM] |
The two midchain tx feature node indices. More... | |
static u32 | adj_midchain_tx_no_count_feature_node [VNET_LINK_NUM] |
static u32 * | adj_midchain_feat_count_per_sw_if_index [VNET_LINK_NUM] |
static vlib_node_registration_t | adj_midchain_tx_node |
(constructor) VLIB_REGISTER_NODE (adj_midchain_tx_node) More... | |
static vlib_node_registration_t | adj_midchain_tx_no_count_node |
(constructor) VLIB_REGISTER_NODE (adj_midchain_tx_no_count_node) More... | |
static const dpo_vft_t | adj_midchain_dpo_vft |
static const char *const | midchain_ip4_nodes [] |
The per-protocol VLIB graph nodes that are assigned to a midchain object. More... | |
static const char *const | midchain_ip6_nodes [] |
static const char *const | midchain_mpls_nodes [] |
static const char *const | midchain_ethernet_nodes [] |
static const char *const | midchain_nsh_nodes [] |
static const char *const *const | midchain_nodes [DPO_PROTO_NUM] |
typedef struct adj_midchain_tx_trace_t_ adj_midchain_tx_trace_t |
Trace data for packets traversing the midchain tx node.
|
static |
|
static |
|
inlinestatic |
|
static |
void adj_midchain_module_init | ( | void | ) |
Module initialisation.
Definition at line 810 of file adj_midchain.c.
void adj_midchain_setup | ( | adj_index_t | adj_index, |
adj_midchain_fixup_t | fixup, | ||
const void * | data, | ||
adj_flags_t | flags | ||
) |
adj_midchain_setup
Setup the adj as a mid-chain
Definition at line 480 of file adj_midchain.c.
void adj_midchain_teardown | ( | ip_adjacency_t * | adj | ) |
adj_midchain_setup
Setup the adj as a mid-chain
Definition at line 456 of file adj_midchain.c.
|
static |
|
inlinestatic |
Definition at line 47 of file adj_midchain.c.
|
static |
|
static |
|
static |
void adj_nbr_midchain_stack | ( | adj_index_t | adj_index, |
const dpo_id_t * | next | ||
) |
adj_nbr_midchain_stack
[re]stack a midchain.
Definition at line 674 of file adj_midchain.c.
void adj_nbr_midchain_stack_on_fib_entry | ( | adj_index_t | adj_index, |
fib_node_index_t | fei, | ||
fib_forward_chain_type_t | fct | ||
) |
[re]stack a midchain.
'Stacking' is the act of forming parent-child relationships in the data-plane graph. Since function performs recursive loop detection.
adj_index | The index of the midchain to stack |
fei | The FIB entry to stack on |
fct | The chain type to use from the fib entry fowarding |
Definition at line 603 of file adj_midchain.c.
void adj_nbr_midchain_unstack | ( | adj_index_t | adj_index | ) |
adj_nbr_midchain_unstack
unstack a midchain.
Unstack the adj. stack it on drop
Definition at line 571 of file adj_midchain.c.
void adj_nbr_midchain_update_rewrite | ( | adj_index_t | adj_index, |
adj_midchain_fixup_t | fixup, | ||
const void * | fixup_data, | ||
adj_flags_t | flags, | ||
u8 * | rewrite | ||
) |
adj_nbr_midchain_update_rewrite
Midchain Adjacency sub-type.
Update the adjacency's rewrite string. A NULL string implies the rewrite is reset (i.e. when ARP/ND entry is gone). NB: the adj being updated may be handling traffic in the DP.
Definition at line 532 of file adj_midchain.c.
int adj_ndr_midchain_recursive_loop_detect | ( | adj_index_t | ai, |
fib_node_index_t ** | entry_indicies | ||
) |
descend the FIB graph looking for loops
ai | The adj index to traverse |
entry_indicies) | A pointer to a vector of FIB entries already visited. |
Definition at line 692 of file adj_midchain.c.
Format a midchain adjacency.
Definition at line 719 of file adj_midchain.c.
VNET_FEATURE_INIT | ( | adj_midchain_tx_ip4 | , |
static | |||
) |
VNET_FEATURE_INIT | ( | adj_midchain_tx_no_count_ip4 | , |
static | |||
) |
VNET_FEATURE_INIT | ( | adj_midchain_tx_ip6 | , |
static | |||
) |
VNET_FEATURE_INIT | ( | adj_midchain_tx_no_count_ip6 | , |
static | |||
) |
VNET_FEATURE_INIT | ( | adj_midchain_tx_mpls | , |
static | |||
) |
VNET_FEATURE_INIT | ( | adj_midchain_tx_no_count_mpls | , |
static | |||
) |
VNET_FEATURE_INIT | ( | adj_midchain_tx_ethernet | , |
static | |||
) |
VNET_FEATURE_INIT | ( | adj_midchain_tx_no_count_ethernet | , |
static | |||
) |
VNET_FEATURE_INIT | ( | adj_midchain_tx_nsh | , |
static | |||
) |
VNET_FEATURE_INIT | ( | adj_midchain_tx_no_count_nsh | , |
static | |||
) |
|
static |
Definition at line 760 of file adj_midchain.c.
|
static |
Definition at line 33 of file adj_midchain.c.
|
static |
The two midchain tx feature node indices.
Definition at line 30 of file adj_midchain.c.
|
static |
Definition at line 31 of file adj_midchain.c.
|
static |
(constructor) VLIB_REGISTER_NODE (adj_midchain_tx_no_count_node)
Definition at line 295 of file adj_midchain.c.
|
static |
(constructor) VLIB_REGISTER_NODE (adj_midchain_tx_node)
Definition at line 274 of file adj_midchain.c.
|
static |
Definition at line 789 of file adj_midchain.c.
|
static |
The per-protocol VLIB graph nodes that are assigned to a midchain object.
this means that these graph nodes are ones from which a midchain is the parent object in the DPO-graph.
Definition at line 774 of file adj_midchain.c.
|
static |
Definition at line 779 of file adj_midchain.c.
|
static |
Definition at line 784 of file adj_midchain.c.
|
static |
Definition at line 800 of file adj_midchain.c.
|
static |
Definition at line 794 of file adj_midchain.c.