FD.io VPP  v21.06-3-gbb25fbf28
Vector Packet Processing
ip6_ll_dpo.c File Reference
+ Include dependency graph for ip6_ll_dpo.c:

Go to the source code of this file.

Data Structures

struct  ip6_ll_dpo_trace_t_
 

Typedefs

typedef struct ip6_ll_dpo_trace_t_ ip6_ll_dpo_trace_t
 
typedef enum ip6_ll_next_t_ ip6_ll_next_t
 Exit nodes from a IP6_LL. More...
 

Enumerations

enum  ip6_ll_next_t_ { IP6_LL_NEXT_DROP, IP6_LL_NEXT_LOOKUP, IP6_LL_NEXT_NUM }
 Exit nodes from a IP6_LL. More...
 

Functions

const dpo_id_tip6_ll_dpo_get (void)
 The IP6 link-local DPO represents the lookup of a packet in the link-local IPv6 FIB. More...
 
static void ip6_ll_dpo_lock (dpo_id_t *dpo)
 
static void ip6_ll_dpo_unlock (dpo_id_t *dpo)
 
static u8format_ip6_ll_dpo (u8 *s, va_list *ap)
 
static uword ip6_ll_dpo_inline (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
 
static u8format_ip6_ll_dpo_trace (u8 *s, va_list *args)
 
static uword ip6_ll_dpo_switch (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
 
void ip6_ll_dpo_module_init (void)
 

Variables

static dpo_id_t ip6_ll_dpo
 The data-path object representing performing a lookup in the IPv6 link local table. More...
 
const static dpo_vft_t ip6_ll_vft
 
const static char *const ip6_null_nodes []
 The per-protocol VLIB graph nodes that are assigned to a ip6_ll object. More...
 
const static char *const *const ip6_ll_nodes [DPO_PROTO_NUM]
 
vlib_node_registration_t ip6_ll_dpo_node
 (constructor) VLIB_REGISTER_NODE (ip6_ll_dpo_node) More...
 

Typedef Documentation

◆ ip6_ll_dpo_trace_t

◆ ip6_ll_next_t

Exit nodes from a IP6_LL.

Enumeration Type Documentation

◆ ip6_ll_next_t_

Exit nodes from a IP6_LL.

Enumerator
IP6_LL_NEXT_DROP 
IP6_LL_NEXT_LOOKUP 
IP6_LL_NEXT_NUM 

Definition at line 93 of file ip6_ll_dpo.c.

Function Documentation

◆ format_ip6_ll_dpo()

static u8* format_ip6_ll_dpo ( u8 s,
va_list *  ap 
)
static

Definition at line 54 of file ip6_ll_dpo.c.

◆ format_ip6_ll_dpo_trace()

static u8* format_ip6_ll_dpo_trace ( u8 s,
va_list *  args 
)
static

Definition at line 156 of file ip6_ll_dpo.c.

◆ ip6_ll_dpo_get()

const dpo_id_t* ip6_ll_dpo_get ( void  )

The IP6 link-local DPO represents the lookup of a packet in the link-local IPv6 FIB.

Definition at line 34 of file ip6_ll_dpo.c.

+ Here is the caller graph for this function:

◆ ip6_ll_dpo_inline()

static uword ip6_ll_dpo_inline ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t frame 
)
inlinestatic

Definition at line 101 of file ip6_ll_dpo.c.

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

◆ ip6_ll_dpo_lock()

static void ip6_ll_dpo_lock ( dpo_id_t dpo)
static

Definition at line 40 of file ip6_ll_dpo.c.

◆ ip6_ll_dpo_module_init()

void ip6_ll_dpo_module_init ( void  )

Definition at line 192 of file ip6_ll_dpo.c.

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

◆ ip6_ll_dpo_switch()

static uword ip6_ll_dpo_switch ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t frame 
)
static

Definition at line 167 of file ip6_ll_dpo.c.

+ Here is the call graph for this function:

◆ ip6_ll_dpo_unlock()

static void ip6_ll_dpo_unlock ( dpo_id_t dpo)
static

Definition at line 49 of file ip6_ll_dpo.c.

Variable Documentation

◆ ip6_ll_dpo

dpo_id_t ip6_ll_dpo
static
Initial value:
= {
.dpoi_type = DPO_IP6_LL,
.dpoi_proto = DPO_PROTO_IP6,
.dpoi_index = 0,
}

The data-path object representing performing a lookup in the IPv6 link local table.

the IP6 link-local DPO is global

Definition at line 27 of file ip6_ll_dpo.c.

◆ ip6_ll_dpo_node

vlib_node_registration_t ip6_ll_dpo_node
Initial value:
=
{
.function = ip6_ll_dpo_switch,
.name = "ip6-link-local",
.vector_size = sizeof (u32),
.format_trace = format_ip6_ll_dpo_trace,
.n_next_nodes = IP6_LL_NEXT_NUM,
.next_nodes = {
[IP6_LL_NEXT_DROP] = "ip6-drop",
[IP6_LL_NEXT_LOOKUP] = "ip6-lookup",
},
}

(constructor) VLIB_REGISTER_NODE (ip6_ll_dpo_node)

Definition at line 177 of file ip6_ll_dpo.c.

◆ ip6_ll_nodes

const static char* const * const ip6_ll_nodes[DPO_PROTO_NUM]
static
Initial value:

Definition at line 80 of file ip6_ll_dpo.c.

◆ ip6_ll_vft

const static dpo_vft_t ip6_ll_vft
static
Initial value:
= {
.dv_lock = ip6_ll_dpo_lock,
.dv_unlock = ip6_ll_dpo_unlock,
.dv_format = format_ip6_ll_dpo,
}

Definition at line 62 of file ip6_ll_dpo.c.

◆ ip6_null_nodes

const static char* const ip6_null_nodes[]
static
Initial value:
= {
"ip6-link-local",
NULL,
}

The per-protocol VLIB graph nodes that are assigned to a ip6_ll object.

this means that these graph nodes are ones from which a ip6_ll is the parent object in the DPO-graph.

Definition at line 75 of file ip6_ll_dpo.c.

ip6_null_nodes
const static char *const ip6_null_nodes[]
The per-protocol VLIB graph nodes that are assigned to a ip6_ll object.
Definition: ip6_ll_dpo.c:75
IP6_LL_NEXT_DROP
@ IP6_LL_NEXT_DROP
Definition: ip6_ll_dpo.c:95
format_ip6_ll_dpo
static u8 * format_ip6_ll_dpo(u8 *s, va_list *ap)
Definition: ip6_ll_dpo.c:54
DPO_IP6_LL
@ DPO_IP6_LL
Definition: dpo.h:128
ip6_ll_dpo_unlock
static void ip6_ll_dpo_unlock(dpo_id_t *dpo)
Definition: ip6_ll_dpo.c:49
format_ip6_ll_dpo_trace
static u8 * format_ip6_ll_dpo_trace(u8 *s, va_list *args)
Definition: ip6_ll_dpo.c:156
IP6_LL_NEXT_NUM
@ IP6_LL_NEXT_NUM
Definition: ip6_ll_dpo.c:97
ip6_ll_dpo_switch
static uword ip6_ll_dpo_switch(vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
Definition: ip6_ll_dpo.c:167
DPO_PROTO_IP6
@ DPO_PROTO_IP6
Definition: dpo.h:65
u32
unsigned int u32
Definition: types.h:88
ip6_ll_dpo_lock
static void ip6_ll_dpo_lock(dpo_id_t *dpo)
Definition: ip6_ll_dpo.c:40
IP6_LL_NEXT_LOOKUP
@ IP6_LL_NEXT_LOOKUP
Definition: ip6_ll_dpo.c:96