Go to the source code of this file.
|  | 
| static dvr_dpo_t * | dvr_dpo_alloc (void) | 
|  | 
| static dvr_dpo_t * | dvr_dpo_get_from_dpo (const dpo_id_t *dpo) | 
|  | 
| static index_t | dvr_dpo_get_index (dvr_dpo_t *dd) | 
|  | 
| static void | dvr_dpo_lock (dpo_id_t *dpo) | 
|  | 
| static void | dvr_dpo_unlock (dpo_id_t *dpo) | 
|  | 
| void | dvr_dpo_add_or_lock (u32 sw_if_index, dpo_proto_t dproto, dpo_id_t *dpo) | 
|  | 
| static clib_error_t * | dvr_dpo_interface_state_change (vnet_main_t *vnm, u32 sw_if_index, u32 flags) | 
|  | 
|  | VNET_SW_INTERFACE_ADMIN_UP_DOWN_FUNCTION (dvr_dpo_interface_state_change) | 
|  | 
| static clib_error_t * | dvr_dpo_hw_interface_state_change (vnet_main_t *vnm, u32 hw_if_index, u32 flags) | 
|  | Registered callback for HW interface state changes.  More... 
 | 
|  | 
|  | VNET_HW_INTERFACE_LINK_UP_DOWN_FUNCTION (dvr_dpo_hw_interface_state_change) | 
|  | 
| static clib_error_t * | dvr_dpo_interface_delete (vnet_main_t *vnm, u32 sw_if_index, u32 is_add) | 
|  | 
|  | VNET_SW_INTERFACE_ADD_DEL_FUNCTION (dvr_dpo_interface_delete) | 
|  | 
| static u8 * | format_dvr_reinject (u8 *s, va_list *ap) | 
|  | 
| static u8 * | format_dvr_dpo (u8 *s, va_list *ap) | 
|  | 
| static void | dvr_dpo_mem_show (void) | 
|  | 
| void | dvr_dpo_module_init (void) | 
|  | 
| static uword | dvr_dpo_inline (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame, u8 is_ip6) | 
|  | 
| static u8 * | format_dvr_dpo_trace (u8 *s, va_list *args) | 
|  | 
| VLIB_NODE_FN() | ip4_dvr_dpo_node (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame) | 
|  | 
| VLIB_NODE_FN() | ip6_dvr_dpo_node (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame) | 
|  | 
| static uword | dvr_reinject_inline (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame) | 
|  | 
| VLIB_NODE_FN() | ip4_dvr_reinject_node (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame) | 
|  | 
| VLIB_NODE_FN() | ip6_dvr_reinject_node (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame) | 
|  | 
|  | VNET_FEATURE_INIT (ip4_dvr_reinject_feat_node, static) | 
|  | 
|  | VNET_FEATURE_INIT (ip6_dvr_reinject_feat_node, static) | 
|  | 
◆ dvr_dpo_trace_t
Interface DPO trace data. 
 
 
◆ dvr_reinject_next_t
◆ dvr_reinject_next_t_
| Enumerator | 
|---|
| DVR_REINJECT_NEXT_L2 |  | 
| DVR_REINJECT_NEXT_L3 |  | 
Definition at line 464 of file dvr_dpo.c.
 
 
◆ dvr_dpo_add_or_lock()
◆ dvr_dpo_alloc()
◆ dvr_dpo_get_from_dpo()
◆ dvr_dpo_get_index()
◆ dvr_dpo_hw_interface_state_change()
Registered callback for HW interface state changes. 
Definition at line 161 of file dvr_dpo.c.
 
 
◆ dvr_dpo_inline()
◆ dvr_dpo_interface_delete()
◆ dvr_dpo_interface_state_change()
◆ dvr_dpo_lock()
  
  | 
        
          | static void dvr_dpo_lock | ( | dpo_id_t * | dpo | ) |  |  | static | 
 
 
◆ dvr_dpo_mem_show()
  
  | 
        
          | static void dvr_dpo_mem_show | ( | void |  | ) |  |  | static | 
 
 
◆ dvr_dpo_module_init()
      
        
          | void dvr_dpo_module_init | ( | void |  | ) |  | 
      
 
 
◆ dvr_dpo_unlock()
  
  | 
        
          | static void dvr_dpo_unlock | ( | dpo_id_t * | dpo | ) |  |  | static | 
 
 
◆ dvr_reinject_inline()
◆ format_dvr_dpo()
  
  | 
        
          | static u8* format_dvr_dpo | ( | u8 * | s, |  
          |  |  | va_list * | ap |  
          |  | ) |  |  |  | static | 
 
 
◆ format_dvr_dpo_trace()
  
  | 
        
          | static u8* format_dvr_dpo_trace | ( | u8 * | s, |  
          |  |  | va_list * | args |  
          |  | ) |  |  |  | static | 
 
 
◆ format_dvr_reinject()
  
  | 
        
          | static u8* format_dvr_reinject | ( | u8 * | s, |  
          |  |  | va_list * | ap |  
          |  | ) |  |  |  | static | 
 
 
◆ ip4_dvr_dpo_node()
◆ ip4_dvr_reinject_node()
◆ ip6_dvr_dpo_node()
◆ ip6_dvr_reinject_node()
◆ VNET_FEATURE_INIT() [1/2]
      
        
          | VNET_FEATURE_INIT | ( | ip4_dvr_reinject_feat_node | , | 
        
          |  |  | static |  | 
        
          |  | ) |  |  | 
      
 
 
◆ VNET_FEATURE_INIT() [2/2]
      
        
          | VNET_FEATURE_INIT | ( | ip6_dvr_reinject_feat_node | , | 
        
          |  |  | static |  | 
        
          |  | ) |  |  | 
      
 
 
◆ VNET_HW_INTERFACE_LINK_UP_DOWN_FUNCTION()
◆ VNET_SW_INTERFACE_ADD_DEL_FUNCTION()
◆ VNET_SW_INTERFACE_ADMIN_UP_DOWN_FUNCTION()
◆ dvr_dpo_db
The 'DB' of DVR DPOs. 
There is one per-interface per-L3 proto, so this is a per-interface vector 
Definition at line 29 of file dvr_dpo.c.
 
 
◆ dvr_dpo_ip4_nodes
  
  | 
        
          | const char* const dvr_dpo_ip4_nodes[] |  | static | 
 
Initial value:
The per-protocol VLIB graph nodes that are assigned to a glean object. 
this means that these graph nodes are ones from which a glean is the parent object in the DPO-graph. 
Definition at line 240 of file dvr_dpo.c.
 
 
◆ dvr_dpo_ip6_nodes
  
  | 
        
          | const char* const dvr_dpo_ip6_nodes[] |  | static | 
 
 
◆ dvr_dpo_nodes
Initial value:=
{
}
static const char *const dvr_dpo_ip6_nodes[]
static const char *const dvr_dpo_ip4_nodes[]
The per-protocol VLIB graph nodes that are assigned to a glean object. 
Definition at line 251 of file dvr_dpo.c.
 
 
◆ dvr_dpo_pool
pool of all interface DPOs 
Definition at line 23 of file dvr_dpo.c.
 
 
◆ dvr_dpo_vft
Initial value:= {
}
static void dvr_dpo_lock(dpo_id_t *dpo)
static void dvr_dpo_unlock(dpo_id_t *dpo)
static u8 * format_dvr_dpo(u8 *s, va_list *ap)
static void dvr_dpo_mem_show(void)
Definition at line 226 of file dvr_dpo.c.
 
 
◆ ip4_dvr_dpo_node
Initial value:= {
    .name = "ip4-dvr-dpo",
    .vector_size = 
sizeof (
u32),
    .sibling_of = "ip4-rewrite",
}
static u8 * format_dvr_dpo_trace(u8 *s, va_list *args)
(constructor) VLIB_REGISTER_NODE (ip4_dvr_dpo_node) 
Definition at line 451 of file dvr_dpo.c.
 
 
◆ ip4_dvr_reinject_node
Initial value:= {
    .name = "ip4-dvr-reinject",
    .vector_size = 
sizeof (
u32),
    .n_next_nodes = 1,
    .next_nodes = {
    },
}
static u8 * format_dvr_dpo_trace(u8 *s, va_list *args)
(constructor) VLIB_REGISTER_NODE (ip4_dvr_reinject_node) 
Definition at line 606 of file dvr_dpo.c.
 
 
◆ ip6_dvr_dpo_node
Initial value:= {
    .name = "ip6-dvr-dpo",
    .vector_size = 
sizeof (
u32),
    .sibling_of = "ip6-rewrite",
}
static u8 * format_dvr_dpo_trace(u8 *s, va_list *args)
(constructor) VLIB_REGISTER_NODE (ip6_dvr_dpo_node) 
Definition at line 457 of file dvr_dpo.c.
 
 
◆ ip6_dvr_reinject_node
Initial value:= {
    .name = "ip6-dvr-reinject",
    .vector_size = 
sizeof (
u32),
    .n_next_nodes = 1,
    .next_nodes = {
    },
}
static u8 * format_dvr_dpo_trace(u8 *s, va_list *args)
(constructor) VLIB_REGISTER_NODE (ip6_dvr_reinject_node) 
Definition at line 618 of file dvr_dpo.c.