Go to the source code of this file.
|  | 
| 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) | 
|  | 
| 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) | 
|  | 
| void | adj_nbr_midchain_update_rewrite (adj_index_t adj_index, adj_midchain_fixup_t fixup, adj_midchain_flag_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... 
 | 
|  | 
Trace data for packets traversing the midchain tx node. 
 
 
  
  | 
        
          | static void adj_dpo_lock | ( | dpo_id_t * | dpo | ) |  |  | static | 
 
 
  
  | 
        
          | static void adj_dpo_unlock | ( | dpo_id_t * | dpo | ) |  |  | static | 
 
 
  
  | 
        
          | static u8 adj_midchain_get_feature_arc_index_for_link_type | ( | const ip_adjacency_t * | adj | ) |  |  | static | 
 
 
      
        
          | void adj_midchain_module_init | ( | void |  | ) |  | 
      
 
 
adj_nbr_midchain_stack 
[re]stack a midchain. 
Definition at line 463 of file adj_midchain.c.
 
 
adj_nbr_midchain_unstack 
unstack a midchain.
Unstack the adj. stack it on drop 
Definition at line 440 of file adj_midchain.c.
 
 
adj_nbr_midchain_update_rewrite 
Convert an existing neighbour adjacency into a midchain.
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 375 of file adj_midchain.c.
 
 
      
        
          | u8* format_adj_midchain | ( | u8 * | s, | 
        
          |  |  | va_list * | ap | 
        
          |  | ) |  |  | 
      
 
 
  
  | 
        
          | static u8* format_adj_midchain_tx_trace | ( | u8 * | s, |  
          |  |  | va_list * | args |  
          |  | ) |  |  |  | static | 
 
 
      
        
          | 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 |  | 
        
          |  | ) |  |  | 
      
 
 
Initial value:= {
}
static void adj_dpo_unlock(dpo_id_t *dpo)
u8 * format_adj_midchain(u8 *s, va_list *ap)
Format a midchain adjacency. 
static void adj_dpo_lock(dpo_id_t *dpo)
Definition at line 513 of file adj_midchain.c.
 
 
The two midchain tx feature node indices. 
Definition at line 27 of file adj_midchain.c.
 
 
Initial value:= {
    .name = "adj-midchain-tx-no-count",
    .vector_size = 
sizeof (
u32),
    .n_next_nodes = 1,
    .next_nodes = {
        [0] = "error-drop",
    },
}
static uword adj_midchain_tx_no_count(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
static u8 * format_adj_midchain_tx_trace(u8 *s, va_list *args)
(constructor) VLIB_REGISTER_NODE (adj_midchain_tx_no_count_node) 
Definition at line 250 of file adj_midchain.c.
 
 
Initial value:= {
    .name = "adj-midchain-tx",
    .vector_size = 
sizeof (
u32),
    .n_next_nodes = 1,
    .next_nodes = {
        [0] = "error-drop",
    },
}
static uword adj_midchain_tx(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
static u8 * format_adj_midchain_tx_trace(u8 *s, va_list *args)
(constructor) VLIB_REGISTER_NODE (adj_midchain_tx_node) 
Definition at line 229 of file adj_midchain.c.
 
 
  
  | 
        
          | const char* const midchain_ethernet_nodes[] |  | static | 
 
 
  
  | 
        
          | const char* const midchain_ip4_nodes[] |  | static | 
 
Initial value:
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 526 of file adj_midchain.c.
 
 
  
  | 
        
          | const char* const midchain_ip6_nodes[] |  | static | 
 
 
  
  | 
        
          | const char* const midchain_mpls_nodes[] |  | static | 
 
 
Initial value:=
{
}
static const char *const midchain_ip6_nodes[]
static const char *const midchain_ip4_nodes[]
The per-protocol VLIB graph nodes that are assigned to a midchain object. 
static const char *const midchain_mpls_nodes[]
static const char *const midchain_ethernet_nodes[]
Definition at line 547 of file adj_midchain.c.