![]() |
FD.io VPP
v18.11-rc0-18-g2a3fb1a
Vector Packet Processing
|
Include dependency graph for adj_midchain.c: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.
Here is the call graph for this function:
Here is the caller graph for this function:| 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.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
|
inlinestatic |
Definition at line 43 of file adj_midchain.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
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.
Here is the call graph for this function:
Here is the caller graph for this function:| 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.
Here is the call graph for this function:
Here is the caller graph for this function:| 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.
Here is the call graph for this function:
Here is the caller graph for this function:Format a midchain adjacency.
Definition at line 588 of file adj_midchain.c.
Here is the call graph for this function:
Here is the caller graph for this function:| 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.