FD.io VPP
v18.04-17-g3a0d853
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... | |
Functions | |
static uword | adj_midchain_tx_inline (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame, int interface_count) |
static u8 * | format_adj_midchain_tx_trace (u8 *s, va_list *args) |
static uword | adj_midchain_tx (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame) |
static uword | adj_midchain_tx_no_count (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame) |
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 u32 | adj_get_midchain_node (vnet_link_t link) |
static u8 | adj_midchain_get_feature_arc_index_for_link_type (const ip_adjacency_t *adj) |
static u32 | adj_nbr_midchain_get_tx_node (ip_adjacency_t *adj) |
static u32 | adj_nbr_midchain_get_feature_node (ip_adjacency_t *adj) |
void | adj_midchain_setup (adj_index_t adj_index, adj_midchain_fixup_t fixup, const void *data, adj_flags_t flags) |
adj_midchain_setup More... | |
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 More... | |
void | adj_nbr_midchain_unstack (adj_index_t adj_index) |
adj_nbr_midchain_unstack More... | |
void | adj_nbr_midchain_stack (adj_index_t adj_index, const dpo_id_t *next) |
adj_nbr_midchain_stack More... | |
u8 * | format_adj_midchain (u8 *s, va_list *ap) |
Format a midchain adjacency. More... | |
static void | adj_dpo_lock (dpo_id_t *dpo) |
static void | adj_dpo_unlock (dpo_id_t *dpo) |
void | adj_midchain_module_init (void) |
Module initialisation. 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 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 670 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 461 of file adj_midchain.c.
|
static |
|
inlinestatic |
Definition at line 43 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 570 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 548 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 etnry is gone). NB: the adj being updated may be handling traffic in the DP.
Definition at line 506 of file adj_midchain.c.
Format a midchain adjacency.
Definition at line 588 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 620 of file adj_midchain.c.
|
static |
The two midchain tx feature node indices.
Definition at line 28 of file adj_midchain.c.
|
static |
Definition at line 29 of file adj_midchain.c.
|
static |
(constructor) VLIB_REGISTER_NODE (adj_midchain_tx_no_count_node)
Definition at line 300 of file adj_midchain.c.
|
static |
(constructor) VLIB_REGISTER_NODE (adj_midchain_tx_node)
Definition at line 279 of file adj_midchain.c.
|
static |
Definition at line 649 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 634 of file adj_midchain.c.
|
static |
Definition at line 639 of file adj_midchain.c.
|
static |
Definition at line 644 of file adj_midchain.c.
|
static |
Definition at line 660 of file adj_midchain.c.
|
static |
Definition at line 654 of file adj_midchain.c.