FD.io VPP  v17.01-9-ge7dcee4
Vector Packet Processing
adj_midchain.h File Reference
+ Include dependency graph for adj_midchain.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Typedefs

typedef enum adj_midchain_flag_t_ adj_midchain_flag_t
 Midchain Adjacency sub-type. More...
 

Enumerations

enum  adj_midchain_flag_t_ { ADJ_MIDCHAIN_FLAG_NONE = 0, ADJ_MIDCHAIN_FLAG_NO_COUNT = (1 << 0) }
 Midchain Adjacency sub-type. More...
 

Functions

void adj_nbr_midchain_update_rewrite (adj_index_t adj_index, adj_midchain_fixup_t fixup, adj_midchain_flag_t flags, u8 *rewrite)
 Convert an existing neighbour adjacency into a midchain. More...
 
void adj_nbr_midchain_stack (adj_index_t adj_index, const dpo_id_t *dpo)
 [re]stack a midchain. More...
 
void adj_nbr_midchain_unstack (adj_index_t adj_index)
 unstack a midchain. More...
 
void adj_midchain_module_init (void)
 Module initialisation. More...
 
u8format_adj_midchain (u8 *s, va_list *ap)
 Format a midchain adjacency. More...
 

Typedef Documentation

Midchain Adjacency sub-type.

These adjs represent an L3 peer on a tunnel interface. The tunnel's adjacency is thus not the end of the chain, and needs to stack on/link to another chain (or portion of the graph) to reach the tunnel's destination. Flags controlling the midchain adjacency

Enumeration Type Documentation

Midchain Adjacency sub-type.

These adjs represent an L3 peer on a tunnel interface. The tunnel's adjacency is thus not the end of the chain, and needs to stack on/link to another chain (or portion of the graph) to reach the tunnel's destination. Flags controlling the midchain adjacency

Enumerator
ADJ_MIDCHAIN_FLAG_NONE 

No flags.

ADJ_MIDCHAIN_FLAG_NO_COUNT 

Packets TX through the midchain do not increment the interface counters.

This should be used when the adj is associated with an L2 interface and that L2 interface is in a bridege domain. In that case the packet will have traversed the interface's TX node, and hence have been counted, before it traverses ths midchain

Definition at line 30 of file adj_midchain.h.

Function Documentation

void adj_midchain_module_init ( void  )

Module initialisation.

Definition at line 556 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_stack ( adj_index_t  adj_index,
const dpo_id_t next 
)

[re]stack a midchain.

'Stacking' is the act of forming parent-child relationships in the data-plane graph.

Parameters
adj_indexThe index of the midchain to stack
dpoThe parent DPO to stack onto (i.e. become a child of).

[re]stack a midchain.

Definition at line 463 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)

unstack a midchain.

This will break the chain between the midchain and the next graph section. This is a implemented as stack-on-drop

Parameters
adj_indexThe index of the midchain to stack

unstack a midchain.

Unstack the adj. stack it on drop

Definition at line 440 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,
adj_midchain_flag_t  flags,
u8 rewrite 
)

Convert an existing neighbour adjacency into a midchain.

Parameters
adj_indexThe index of the neighbour adjacency.
post_rewrite_nodeThe VLIB graph node that provides the post-encap fixup. where 'fixup' is e.g., correcting chksum, length, etc.
rewriteThe 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.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u8* format_adj_midchain ( u8 s,
va_list *  ap 
)

Format a midchain adjacency.

Definition at line 480 of file adj_midchain.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function: