FD.io VPP  v16.12-rc0-308-g931be3a
Vector Packet Processing
vlib_buffer_t Struct Reference

Public Member Functions

 CLIB_CACHE_LINE_ALIGN_MARK (cacheline0)
 
 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_IS_TRACED: trace this buffer. More...
 
u32 free_list_index
 Buffer free list that this buffer was allocated from and will be freed to. More...
 
u32 total_length_not_including_first_buffer
 Only valid for first buffer in chain. 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...
 
u32 dont_waste_me
 Available space in the (precious) first 32 octets of buffer metadata Before allocating any of it, discussion required! More...
 
u32 opaque [8]
 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 opaque2 [14]
 More opaque data, currently unused. 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 73 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  )

Field Documentation

u32 vlib_buffer_t::current_config_index

Used by feature subgraph arcs to visit enabled feature nodes.

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

u16 vlib_buffer_t::current_length

Nbytes between current data and the end of this buffer.

Definition at line 82 of file buffer.h.

u8 vlib_buffer_t::data[0]

Packet data.

Hardware DMA here

Definition at line 154 of file buffer.h.

u32 vlib_buffer_t::dont_waste_me

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

Definition at line 128 of file buffer.h.

vlib_error_t vlib_buffer_t::error

Error code for buffers to be enqueued to error handler.

Definition at line 121 of file buffer.h.

u32 vlib_buffer_t::flags

buffer flags:
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, set to avoid adding it to a flow report
VLIB_BUFFER_FLAG_USER(n): user-defined bit N

Definition at line 85 of file buffer.h.

u32 vlib_buffer_t::free_list_index

Buffer free list that this buffer was allocated from and will be freed to.

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

u32 vlib_buffer_t::opaque[8]

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

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

Definition at line 133 of file buffer.h.

u32 vlib_buffer_t::opaque2[14]

More opaque data, currently unused.

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

u32 vlib_buffer_t::recycle_count

Used by L2 path recycle code.

Definition at line 141 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 112 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 138 of file buffer.h.


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