FD.io VPP  v18.07.1-19-g511ce25
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...
 
static const dpo_vft_t ip6_ll_vft
 
static const char *const ip6_null_nodes []
 The per-protocol VLIB graph nodes that are assigned to a ip6_ll object. More...
 
static const 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

Exit nodes from a IP6_LL.

Enumeration Type Documentation

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

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

Definition at line 54 of file ip6_ll_dpo.c.

+ Here is the call graph for this function:

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

Definition at line 156 of file ip6_ll_dpo.c.

+ Here is the call graph for this function:

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:

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:

static void ip6_ll_dpo_lock ( dpo_id_t dpo)
static

Definition at line 40 of file ip6_ll_dpo.c.

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:

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:

static void ip6_ll_dpo_unlock ( dpo_id_t dpo)
static

Definition at line 49 of file ip6_ll_dpo.c.

Variable Documentation

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.

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",
},
}
static u8 * format_ip6_ll_dpo_trace(u8 *s, va_list *args)
Definition: ip6_ll_dpo.c:156
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
unsigned int u32
Definition: types.h:88

(constructor) VLIB_REGISTER_NODE (ip6_ll_dpo_node)

Definition at line 177 of file ip6_ll_dpo.c.

const char* const* const ip6_ll_nodes[DPO_PROTO_NUM]
static
Initial value:
= {
}
static const 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

Definition at line 80 of file ip6_ll_dpo.c.

const 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,
}
static void ip6_ll_dpo_lock(dpo_id_t *dpo)
Definition: ip6_ll_dpo.c:40
static u8 * format_ip6_ll_dpo(u8 *s, va_list *ap)
Definition: ip6_ll_dpo.c:54
static void ip6_ll_dpo_unlock(dpo_id_t *dpo)
Definition: ip6_ll_dpo.c:49

Definition at line 62 of file ip6_ll_dpo.c.

const char* const ip6_null_nodes[]
static
Initial value:
= {
"ip6-link-local",
}
#define NULL
Definition: clib.h:55

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.