FD.io VPP  v19.08.3-2-gbabecb413
Vector Packet Processing
dvr_dpo.h File Reference
+ Include dependency graph for dvr_dpo.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  dvr_dpo_t_
 The DVR DPO. More...
 

Typedefs

typedef enum dvr_dpo_reinject_t_ dvr_dpo_reinject_t
 Control how the reinject is performed. More...
 
typedef struct dvr_dpo_t_ dvr_dpo_t
 The DVR DPO. More...
 

Enumerations

enum  dvr_dpo_reinject_t_ { DVR_REINJECT_L2, DVR_REINJECT_L3 }
 Control how the reinject is performed. More...
 

Functions

 STATIC_ASSERT_SIZEOF (dvr_dpo_t, 8)
 
void dvr_dpo_add_or_lock (u32 sw_if_index, dpo_proto_t dproto, dpo_id_t *dpo)
 
void dvr_dpo_module_init (void)
 
static dvr_dpo_tdvr_dpo_get (index_t index)
 

Variables

dvr_dpo_tdvr_dpo_pool
 pool of all interface DPOs More...
 

Typedef Documentation

◆ dvr_dpo_reinject_t

Control how the reinject is performed.

◆ dvr_dpo_t

typedef struct dvr_dpo_t_ dvr_dpo_t

The DVR DPO.

Used as the resolving object for a DVR route. This is used, in place of the usual L3 Adjacency, to retransmit the packet with the original L2 header intact but also to run L3 features. After running L3 features the packet is re-injected back into the L2 path so it can pick up the necessary VLAN tags of the egress interface. This re-injection is done with an output feature.

Enumeration Type Documentation

◆ dvr_dpo_reinject_t_

Control how the reinject is performed.

Enumerator
DVR_REINJECT_L2 
DVR_REINJECT_L3 

Definition at line 24 of file dvr_dpo.h.

Function Documentation

◆ dvr_dpo_add_or_lock()

void dvr_dpo_add_or_lock ( u32  sw_if_index,
dpo_proto_t  dproto,
dpo_id_t dpo 
)

Definition at line 91 of file dvr_dpo.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ dvr_dpo_get()

static dvr_dpo_t* dvr_dpo_get ( index_t  index)
inlinestatic

Definition at line 77 of file dvr_dpo.h.

+ Here is the caller graph for this function:

◆ dvr_dpo_module_init()

void dvr_dpo_module_init ( void  )

Definition at line 258 of file dvr_dpo.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ STATIC_ASSERT_SIZEOF()

STATIC_ASSERT_SIZEOF ( dvr_dpo_t  ,
 
)

Variable Documentation

◆ dvr_dpo_pool

dvr_dpo_t* dvr_dpo_pool

pool of all interface DPOs

Definition at line 23 of file dvr_dpo.c.