FD.io VPP  v18.01-8-g0eacf49
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 next_buffer
 Next buffer for this linked-list of buffers. More...
 
vlib_error_t error
 Error code for buffers to be enqueued to error handler. More...
 
u32 current_config_index
 Used by feature subgraph arcs to visit enabled feature nodes. More...
 
u8 feature_arc_index
 Used to identify feature arcs by intermediate feature node. 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...
 
u8 dont_waste_me [1]
 Available space in the (precious) first 32 octets of buffer metadata Before allocating any of it, discussion required! 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...
 
u32 align_pad
 available 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 62 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

u32 vlib_buffer_t::align_pad

available

Definition at line 146 of file buffer.h.

u8 vlib_buffer_t::buffer_pool_index

index of buffer pool this buffer belongs.

Definition at line 126 of file buffer.h.

u32 vlib_buffer_t::current_config_index

Used by feature subgraph arcs to visit enabled feature nodes.

Definition at line 116 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 68 of file buffer.h.

u16 vlib_buffer_t::current_length

Nbytes between current data and the end of this buffer.

Definition at line 72 of file buffer.h.

u8 vlib_buffer_t::data[0]

Packet data.

Hardware DMA here

Definition at line 159 of file buffer.h.

u8 vlib_buffer_t::dont_waste_me[1]

Available space in the (precious) first 32 octets of buffer metadata Before allocating any of it, discussion required!

Definition at line 127 of file buffer.h.

vlib_error_t vlib_buffer_t::error

Error code for buffers to be enqueued to error handler.

Definition at line 113 of file buffer.h.

u8 vlib_buffer_t::feature_arc_index

Used to identify feature arcs by intermediate feature node.

Definition at line 120 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_FLOW_REPORT: buffer is a flow report,
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 75 of file buffer.h.

u8 vlib_buffer_t::n_add_refs

Number of additional references to this buffer.

Definition at line 124 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 109 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 132 of file buffer.h.

u32 vlib_buffer_t::opaque2[12]

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

Definition at line 147 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 151 of file buffer.h.

u32 vlib_buffer_t::recycle_count

Used by L2 path recycle code.

Definition at line 140 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 142 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 137 of file buffer.h.


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