FD.io VPP  v16.06
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...
 
u32 trace_index
 Specifies index into trace buffer if VLIB_PACKET_IS_TRACED flag is set. More...
 
u32 clone_count
 Specifies whether this buffer should be reinitialized when freed. More...
 
vlib_error_t error
 Error code for buffers to be enqueued to error handler. More...
 
u32 opaque [8]
 Opaque data used by sub-graphs for their own purposes. More...
 
u32 opaque2 [16]
 More opaque data, in its own cache line. 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::clone_count

Specifies whether this buffer should be reinitialized when freed.

It will be reinitialized if the value is 0. This field can be used as a counter or for other state during packet replication. The buffer free function does not modify this value.

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

u16 vlib_buffer_t::current_length

Nbytes between current data and the end of this buffer.

Definition at line 81 of file buffer.h.

u8 vlib_buffer_t::data[0]

Packet data.

Hardware DMA here

Definition at line 150 of file buffer.h.

vlib_error_t vlib_buffer_t::error

Error code for buffers to be enqueued to error handler.

Definition at line 129 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_FLAG_USER(n): user-defined bit N

Definition at line 84 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 102 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 112 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[16]

More opaque data, in its own cache line.

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


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