DPDK  2.1.0
Data Fields
rte_mbuf Struct Reference

#include <rte_mbuf.h>

Data Fields

void * buf_addr
phys_addr_t buf_physaddr
uint16_t buf_len
union {
   rte_atomic16_t   refcnt_atomic
   uint16_t   refcnt
}; 
uint8_t nb_segs
uint8_t port
uint64_t ol_flags
uint16_t packet_type
uint16_t data_len
uint32_t pkt_len
uint16_t vlan_tci
uint16_t vlan_tci_outer
union {
   uint32_t   rss
   struct {
      uint32_t   hi
   }   fdir
   uint32_t   sched
   uint32_t   usr
hash
uint32_t seqn
struct rte_mempoolpool
struct rte_mbufnext
uint16_t priv_size
uint16_t timesync
uint32_t lo
void * userdata
uint64_t udata64
uint64_t tx_offload
uint64_t l2_len:7
uint64_t l3_len:9
uint64_t l4_len:8
uint64_t tso_segsz:16
uint64_t outer_l3_len:9
uint64_t outer_l2_len:7

Detailed Description

The generic rte_mbuf, containing a packet mbuf.

Definition at line 746 of file rte_mbuf.h.

Field Documentation

void* buf_addr

Virtual address of segment buffer.

Definition at line 749 of file rte_mbuf.h.

phys_addr_t buf_physaddr

Physical address of segment buffer.

Definition at line 750 of file rte_mbuf.h.

uint16_t buf_len

Length of segment buffer.

Definition at line 752 of file rte_mbuf.h.

rte_atomic16_t refcnt_atomic

Atomically accessed refcnt

Definition at line 767 of file rte_mbuf.h.

uint16_t refcnt

Non-atomically accessed refcnt

Definition at line 768 of file rte_mbuf.h.

union { ... }

16-bit Reference counter. It should only be accessed using the following functions: rte_mbuf_refcnt_update(), rte_mbuf_refcnt_read(), and rte_mbuf_refcnt_set(). The functionality of these functions (atomic, or non-atomic) is controlled by the CONFIG_RTE_MBUF_REFCNT_ATOMIC config option.

uint8_t nb_segs

Number of segments.

Definition at line 770 of file rte_mbuf.h.

uint8_t port

Input port.

Definition at line 771 of file rte_mbuf.h.

uint64_t ol_flags

Offload features.

Definition at line 773 of file rte_mbuf.h.

uint16_t packet_type

The packet type, which is used to indicate ordinary packet and also tunneled packet format, i.e. each number is represented a type of packet.

Definition at line 805 of file rte_mbuf.h.

uint16_t data_len

Amount of data in segment buffer.

Definition at line 807 of file rte_mbuf.h.

uint32_t pkt_len

Total pkt len: sum of all segments.

Definition at line 808 of file rte_mbuf.h.

uint16_t vlan_tci

VLAN Tag Control Identifier (CPU order)

Definition at line 809 of file rte_mbuf.h.

uint16_t vlan_tci_outer

Outer VLAN Tag Control Identifier (CPU order)

Definition at line 810 of file rte_mbuf.h.

uint32_t rss

RSS hash result if RSS enabled

Definition at line 813 of file rte_mbuf.h.

uint32_t lo

Second 4 flexible bytes

Definition at line 821 of file rte_mbuf.h.

uint32_t hi

First 4 flexible bytes or FD ID, dependent on PKT_RX_FDIR_* flag in ol_flags.

Definition at line 824 of file rte_mbuf.h.

struct { ... } fdir

Filter identifier if FDIR enabled

uint32_t sched

Hierarchical scheduler

Definition at line 827 of file rte_mbuf.h.

uint32_t usr

User defined tags. See rte_distributor_process()

Definition at line 828 of file rte_mbuf.h.

union { ... } hash

hash information

uint32_t seqn

Sequence number. See also rte_reorder_insert()

Definition at line 831 of file rte_mbuf.h.

void* userdata

Can be used for external metadata

Definition at line 840 of file rte_mbuf.h.

uint64_t udata64

Allow 8-byte userdata on 32-bit

Definition at line 841 of file rte_mbuf.h.

struct rte_mempool* pool

Pool from which mbuf was allocated.

Definition at line 844 of file rte_mbuf.h.

struct rte_mbuf* next

Next segment of scattered packet.

Definition at line 845 of file rte_mbuf.h.

uint64_t tx_offload

combined for easy fetch

Definition at line 849 of file rte_mbuf.h.

uint64_t l2_len

L2 (MAC) Header Length.

Definition at line 851 of file rte_mbuf.h.

uint64_t l3_len

L3 (IP) Header Length.

Definition at line 852 of file rte_mbuf.h.

uint64_t l4_len

L4 (TCP/UDP) Header Length.

Definition at line 853 of file rte_mbuf.h.

uint64_t tso_segsz

TCP TSO segment size

Definition at line 854 of file rte_mbuf.h.

uint64_t outer_l3_len

Outer L3 (IP) Hdr Length.

Definition at line 857 of file rte_mbuf.h.

uint64_t outer_l2_len

Outer L2 (MAC) Hdr Length.

Definition at line 858 of file rte_mbuf.h.

uint16_t priv_size

Size of the application private data. In case of an indirect mbuf, it stores the direct mbuf private data size.

Definition at line 866 of file rte_mbuf.h.

uint16_t timesync

Timesync flags for use with IEEE1588.

Definition at line 869 of file rte_mbuf.h.


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