FD.io VPP  v17.10-9-gd594711
Vector Packet Processing
buffer.c File Reference

Allocate/free network buffers. More...

+ Include dependency graph for buffer.c:

Go to the source code of this file.

Functions

 STATIC_ASSERT (VLIB_BUFFER_PRE_DATA_SIZE==RTE_PKTMBUF_HEADROOM,"VLIB_BUFFER_PRE_DATA_SIZE must be equal to RTE_PKTMBUF_HEADROOM")
 
static_always_inline void dpdk_rte_pktmbuf_free (vlib_main_t *vm, vlib_buffer_t *b)
 
static void del_free_list (vlib_main_t *vm, vlib_buffer_free_list_t *f)
 
static void dpdk_buffer_delete_free_list (vlib_main_t *vm, u32 free_list_index)
 
static uword fill_free_list (vlib_main_t *vm, vlib_buffer_free_list_t *fl, uword min_free_buffers)
 
static u32 alloc_from_free_list (vlib_main_t *vm, vlib_buffer_free_list_t *free_list, u32 *alloc_buffers, u32 n_alloc_buffers)
 
u32 dpdk_buffer_alloc (vlib_main_t *vm, u32 *buffers, u32 n_buffers)
 
u32 dpdk_buffer_alloc_from_free_list (vlib_main_t *vm, u32 *buffers, u32 n_buffers, u32 free_list_index)
 
static_always_inline void vlib_buffer_free_inline (vlib_main_t *vm, u32 *buffers, u32 n_buffers, u32 follow_buffer_next)
 
static void dpdk_buffer_free (vlib_main_t *vm, u32 *buffers, u32 n_buffers)
 
static void dpdk_buffer_free_no_next (vlib_main_t *vm, u32 *buffers, u32 n_buffers)
 
static void dpdk_packet_template_init (vlib_main_t *vm, void *vt, void *packet_data, uword n_packet_data_bytes, uword min_n_buffers_each_physmem_alloc, u8 *name)
 
clib_error_tdpdk_buffer_pool_create (vlib_main_t *vm, unsigned num_mbufs, unsigned socket_id)
 
static clib_error_tbuffer_state_validation_init (vlib_main_t *vm)
 
 VLIB_BUFFER_REGISTER_CALLBACKS (dpdk, static)
 

Variables

u32vlib_buffer_state_validation_lock
 
uwordvlib_buffer_state_validation_hash
 
void * vlib_buffer_state_heap
 

Detailed Description

Allocate/free network buffers.

Definition in file buffer.c.

Function Documentation

static u32 alloc_from_free_list ( vlib_main_t vm,
vlib_buffer_free_list_t free_list,
u32 alloc_buffers,
u32  n_alloc_buffers 
)
static

Definition at line 268 of file buffer.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static clib_error_t* buffer_state_validation_init ( vlib_main_t vm)
static

Definition at line 478 of file buffer.c.

+ Here is the call graph for this function:

static void del_free_list ( vlib_main_t vm,
vlib_buffer_free_list_t f 
)
static

Definition at line 111 of file buffer.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u32 dpdk_buffer_alloc ( vlib_main_t vm,
u32 buffers,
u32  n_buffers 
)

Definition at line 296 of file buffer.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u32 dpdk_buffer_alloc_from_free_list ( vlib_main_t vm,
u32 buffers,
u32  n_buffers,
u32  free_list_index 
)

Definition at line 309 of file buffer.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void dpdk_buffer_delete_free_list ( vlib_main_t vm,
u32  free_list_index 
)
static

Definition at line 128 of file buffer.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void dpdk_buffer_free ( vlib_main_t vm,
u32 buffers,
u32  n_buffers 
)
static

Definition at line 382 of file buffer.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void dpdk_buffer_free_no_next ( vlib_main_t vm,
u32 buffers,
u32  n_buffers 
)
static

Definition at line 389 of file buffer.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

clib_error_t* dpdk_buffer_pool_create ( vlib_main_t vm,
unsigned  num_mbufs,
unsigned  socket_id 
)

Definition at line 413 of file buffer.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void dpdk_packet_template_init ( vlib_main_t vm,
void *  vt,
void *  packet_data,
uword  n_packet_data_bytes,
uword  min_n_buffers_each_physmem_alloc,
u8 name 
)
static

Definition at line 396 of file buffer.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static_always_inline void dpdk_rte_pktmbuf_free ( vlib_main_t vm,
vlib_buffer_t b 
)

Definition at line 83 of file buffer.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static uword fill_free_list ( vlib_main_t vm,
vlib_buffer_free_list_t fl,
uword  min_free_buffers 
)
static

Definition at line 165 of file buffer.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

STATIC_ASSERT ( VLIB_BUFFER_PRE_DATA_SIZE  = =RTE_PKTMBUF_HEADROOM,
"VLIB_BUFFER_PRE_DATA_SIZE must be equal to RTE_PKTMBUF_HEADROOM"   
)
static_always_inline void vlib_buffer_free_inline ( vlib_main_t vm,
u32 buffers,
u32  n_buffers,
u32  follow_buffer_next 
)

Definition at line 320 of file buffer.c.

+ Here is the call graph for this function:

VLIB_BUFFER_REGISTER_CALLBACKS ( dpdk  ,
static   
)

+ Here is the caller graph for this function:

Variable Documentation

void* vlib_buffer_state_heap

Definition at line 475 of file buffer.c.

uword* vlib_buffer_state_validation_hash

Definition at line 474 of file buffer.c.

u32* vlib_buffer_state_validation_lock

Definition at line 473 of file buffer.c.