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

Go to the source code of this file.

Data Structures

struct  pw_cw_trace_t_
 A struct to hold tracing information for the MPLS label imposition node. More...
 

Typedefs

typedef struct pw_cw_trace_t_ pw_cw_trace_t
 A struct to hold tracing information for the MPLS label imposition node. More...
 

Functions

static pw_cw_dpo_tpw_cw_dpo_alloc (void)
 
static index_t pw_cw_dpo_get_index (pw_cw_dpo_t *pwcw)
 
void pw_cw_dpo_create (const dpo_id_t *parent, dpo_id_t *dpo)
 Create an PW CW pop. More...
 
u8format_pw_cw_dpo (u8 *s, va_list *args)
 
static void pw_cw_dpo_lock (dpo_id_t *dpo)
 
static void pw_cw_dpo_unlock (dpo_id_t *dpo)
 
static uword pw_cw_pop_inline (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame)
 
static u8format_pw_cw_trace (u8 *s, va_list *args)
 
VLIB_NODE_FN() pw_cw_node (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame)
 
static void pw_cw_dpo_mem_show (void)
 
void pw_cw_dpo_module_init (void)
 

Variables

pw_cw_dpo_tpw_cw_dpo_pool
 
vlib_node_registration_t pw_cw_node
 (constructor) VLIB_REGISTER_NODE (pw_cw_node) More...
 
const static dpo_vft_t pwcw_vft
 
const static char *const pw_cw_proto_nodes []
 
const static char *const *const pw_cw_nodes [DPO_PROTO_NUM]
 

Typedef Documentation

◆ pw_cw_trace_t

typedef struct pw_cw_trace_t_ pw_cw_trace_t

A struct to hold tracing information for the MPLS label imposition node.

Function Documentation

◆ format_pw_cw_dpo()

u8* format_pw_cw_dpo ( u8 s,
va_list *  args 
)

Definition at line 68 of file pw_cw.c.

+ Here is the call graph for this function:

◆ format_pw_cw_trace()

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

Definition at line 252 of file pw_cw.c.

◆ pw_cw_dpo_alloc()

static pw_cw_dpo_t* pw_cw_dpo_alloc ( void  )
static

Definition at line 27 of file pw_cw.c.

+ Here is the caller graph for this function:

◆ pw_cw_dpo_create()

void pw_cw_dpo_create ( const dpo_id_t paremt,
dpo_id_t dpo 
)

Create an PW CW pop.

Parameters
parentThe parent of the created MPLS label object
dpoThe PW CW DPO created

Definition at line 43 of file pw_cw.c.

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

◆ pw_cw_dpo_get_index()

static index_t pw_cw_dpo_get_index ( pw_cw_dpo_t pwcw)
static

Definition at line 37 of file pw_cw.c.

+ Here is the caller graph for this function:

◆ pw_cw_dpo_lock()

static void pw_cw_dpo_lock ( dpo_id_t dpo)
static

Definition at line 92 of file pw_cw.c.

+ Here is the call graph for this function:

◆ pw_cw_dpo_mem_show()

static void pw_cw_dpo_mem_show ( void  )
static

Definition at line 280 of file pw_cw.c.

+ Here is the call graph for this function:

◆ pw_cw_dpo_module_init()

void pw_cw_dpo_module_init ( void  )

Definition at line 310 of file pw_cw.c.

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

◆ pw_cw_dpo_unlock()

static void pw_cw_dpo_unlock ( dpo_id_t dpo)
static

Definition at line 102 of file pw_cw.c.

+ Here is the call graph for this function:

◆ pw_cw_node()

VLIB_NODE_FN() pw_cw_node ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t frame 
)

Definition at line 265 of file pw_cw.c.

+ Here is the call graph for this function:

◆ pw_cw_pop_inline()

static uword pw_cw_pop_inline ( vlib_main_t vm,
vlib_node_runtime_t node,
vlib_frame_t from_frame 
)
inlinestatic

Definition at line 131 of file pw_cw.c.

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

Variable Documentation

◆ pw_cw_dpo_pool

pw_cw_dpo_t* pw_cw_dpo_pool

Definition at line 24 of file pw_cw.c.

◆ pw_cw_node

Initial value:
= {
.name = "pw-cw-pop",
.vector_size = sizeof(u32),
.format_trace = format_pw_cw_trace,
}

(constructor) VLIB_REGISTER_NODE (pw_cw_node)

Definition at line 272 of file pw_cw.c.

◆ pw_cw_nodes

const static char* const * const pw_cw_nodes[DPO_PROTO_NUM]
static

◆ pw_cw_proto_nodes

const static char* const pw_cw_proto_nodes[]
static
Initial value:
=
{
"pw-cw-pop",
NULL,
}

Definition at line 295 of file pw_cw.c.

◆ pwcw_vft

const static dpo_vft_t pwcw_vft
static
Initial value:
= {
.dv_lock = pw_cw_dpo_lock,
.dv_unlock = pw_cw_dpo_unlock,
.dv_format = format_pw_cw_dpo,
.dv_mem_show = pw_cw_dpo_mem_show,
}

Definition at line 288 of file pw_cw.c.

pw_cw_proto_nodes
const static char *const pw_cw_proto_nodes[]
Definition: pw_cw.c:295
pw_cw_dpo_mem_show
static void pw_cw_dpo_mem_show(void)
Definition: pw_cw.c:280
pw_cw_dpo_lock
static void pw_cw_dpo_lock(dpo_id_t *dpo)
Definition: pw_cw.c:92
pw_cw_dpo_unlock
static void pw_cw_dpo_unlock(dpo_id_t *dpo)
Definition: pw_cw.c:102
format_pw_cw_trace
static u8 * format_pw_cw_trace(u8 *s, va_list *args)
Definition: pw_cw.c:252
DPO_PROTO_IP6
@ DPO_PROTO_IP6
Definition: dpo.h:65
DPO_PROTO_MPLS
@ DPO_PROTO_MPLS
Definition: dpo.h:66
u32
unsigned int u32
Definition: types.h:88
format_pw_cw_dpo
u8 * format_pw_cw_dpo(u8 *s, va_list *args)
Definition: pw_cw.c:68
DPO_PROTO_IP4
@ DPO_PROTO_IP4
Definition: dpo.h:64
DPO_PROTO_ETHERNET
@ DPO_PROTO_ETHERNET
Definition: dpo.h:67