FD.io VPP  v18.07.1-13-g909ba93
Vector Packet Processing
vlib_buffer_t Struct Reference

Public Member Functions

 CLIB_CACHE_LINE_ALIGN_MARK (cacheline0)
 
 STRUCT_MARK (template_start)
 
 STRUCT_MARK (template_end)
 
 CLIB_CACHE_LINE_ALIGN_MARK (cacheline1)
 
 CLIB_CACHE_LINE_ALIGN_MARK (cacheline2)
 

Data Fields

i16 current_data
 signed offset in data[], pre_data[] that we are currently processing. More...
 
u16 current_length
 Nbytes between current data and the end of this buffer. More...
 
u32 flags
 buffer flags:
VLIB_BUFFER_FREE_LIST_INDEX_MASK: bits used to store free list index,
VLIB_BUFFER_IS_TRACED: trace this buffer. More...
 
u32 flow_id
 Generic flow identifier. More...
 
u32 next_buffer
 Next buffer for this linked-list of buffers. More...
 
u32 current_config_index
 Used by feature subgraph arcs to visit enabled feature nodes. More...
 
vlib_error_t error
 Error code for buffers to be enqueued to error handler. More...
 
u8 n_add_refs
 Number of additional references to this buffer. More...
 
u8 buffer_pool_index
 index of buffer pool this buffer belongs. More...
 
u32 opaque [10]
 Opaque data used by sub-graphs for their own purposes. More...
 
u32 trace_index
 Specifies index into trace buffer if VLIB_PACKET_IS_TRACED flag is set. More...
 
u32 recycle_count
 Used by L2 path recycle code. More...
 
u32 total_length_not_including_first_buffer
 Only valid for first buffer in chain. More...
 
vlib_buffer_free_list_index_t free_list_index
 
u8 align_pad [3]
 < only used if VLIB_BUFFER_NON_DEFAULT_FREELIST flag is set More...
 
u32 opaque2 [12]
 More opaque data, see ../vnet/vnet/buffer.h. More...
 
u8 pre_data [VLIB_BUFFER_PRE_DATA_SIZE]
 Space for inserting data before buffer start. More...
 
u8 data [0]
 Packet data. More...
 

Detailed Description

Definition at line 98 of file buffer.h.

Member Function Documentation

vlib_buffer_t::CLIB_CACHE_LINE_ALIGN_MARK ( cacheline0  )
vlib_buffer_t::CLIB_CACHE_LINE_ALIGN_MARK ( cacheline1  )
vlib_buffer_t::CLIB_CACHE_LINE_ALIGN_MARK ( cacheline2  )
vlib_buffer_t::STRUCT_MARK ( template_start  )
vlib_buffer_t::STRUCT_MARK ( template_end  )

Field Documentation

u8 vlib_buffer_t::align_pad[3]

< only used if VLIB_BUFFER_NON_DEFAULT_FREELIST flag is set

available

Definition at line 159 of file buffer.h.

u8 vlib_buffer_t::buffer_pool_index

index of buffer pool this buffer belongs.

Definition at line 140 of file buffer.h.

u32 vlib_buffer_t::current_config_index

Used by feature subgraph arcs to visit enabled feature nodes.

Definition at line 132 of file buffer.h.

i16 vlib_buffer_t::current_data

signed offset in data[], pre_data[] that we are currently processing.

If negative current header points into predata area.

Definition at line 104 of file buffer.h.

u16 vlib_buffer_t::current_length

Nbytes between current data and the end of this buffer.

Definition at line 108 of file buffer.h.

u8 vlib_buffer_t::data[0]

Packet data.

Hardware DMA here

Definition at line 172 of file buffer.h.

vlib_error_t vlib_buffer_t::error

Error code for buffers to be enqueued to error handler.

Definition at line 135 of file buffer.h.

u32 vlib_buffer_t::flags

buffer flags:
VLIB_BUFFER_FREE_LIST_INDEX_MASK: bits used to store free list index,
VLIB_BUFFER_IS_TRACED: trace this buffer.


VLIB_BUFFER_NEXT_PRESENT: this is a multi-chunk buffer.
VLIB_BUFFER_TOTAL_LENGTH_VALID: as it says
VLIB_BUFFER_REPL_FAIL: packet replication failure
VLIB_BUFFER_RECYCLE: as it says
VLIB_BUFFER_EXT_HDR_VALID: buffer contains valid external buffer manager header, set to avoid adding it to a flow report
VLIB_BUFFER_FLAG_USER(n): user-defined bit N

Definition at line 111 of file buffer.h.

u32 vlib_buffer_t::flow_id

Generic flow identifier.

Definition at line 123 of file buffer.h.

vlib_buffer_free_list_index_t vlib_buffer_t::free_list_index

Definition at line 156 of file buffer.h.

u8 vlib_buffer_t::n_add_refs

Number of additional references to this buffer.

Definition at line 138 of file buffer.h.

u32 vlib_buffer_t::next_buffer

Next buffer for this linked-list of buffers.

Only valid if VLIB_BUFFER_NEXT_PRESENT flag is set.

Definition at line 126 of file buffer.h.

u32 vlib_buffer_t::opaque[10]

Opaque data used by sub-graphs for their own purposes.

See .../vnet/vnet/buffer.h

Definition at line 142 of file buffer.h.

u32 vlib_buffer_t::opaque2[12]

More opaque data, see ../vnet/vnet/buffer.h.

Definition at line 160 of file buffer.h.

u8 vlib_buffer_t::pre_data[VLIB_BUFFER_PRE_DATA_SIZE]

Space for inserting data before buffer start.

Packet rewrite string will be rewritten backwards and may extend back before buffer->data[0]. Must come directly before packet data.

Definition at line 164 of file buffer.h.

u32 vlib_buffer_t::recycle_count

Used by L2 path recycle code.

Definition at line 150 of file buffer.h.

u32 vlib_buffer_t::total_length_not_including_first_buffer

Only valid for first buffer in chain.

Current length plus total length given here give total number of bytes in buffer chain.

Definition at line 152 of file buffer.h.

u32 vlib_buffer_t::trace_index

Specifies index into trace buffer if VLIB_PACKET_IS_TRACED flag is set.

Definition at line 147 of file buffer.h.


The documentation for this struct was generated from the following file: