DPDK
2.0.0
|
#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 |
union { | |
uint32_t rss | |
struct { | |
uint32_t hi | |
} fdir | |
uint32_t sched | |
uint32_t usr | |
} | hash |
uint32_t | seqn |
struct rte_mempool * | pool |
struct rte_mbuf * | next |
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 |
The generic rte_mbuf, containing a packet mbuf.
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.
void* buf_addr |
Virtual address of segment buffer.
uint16_t buf_len |
Length of segment buffer.
phys_addr_t buf_physaddr |
Physical address of segment buffer.
uint16_t data_len |
Amount of data in segment buffer.
struct { ... } fdir |
Filter identifier if FDIR enabled
union { ... } hash |
hash information
uint32_t hi |
First 4 flexible bytes or FD ID, dependent on PKT_RX_FDIR_* flag in ol_flags.
uint64_t l2_len |
L2 (MAC) Header Length.
uint64_t l3_len |
L3 (IP) Header Length.
uint64_t l4_len |
L4 (TCP/UDP) Header Length.
uint32_t lo |
Second 4 flexible bytes
uint8_t nb_segs |
Number of segments.
struct rte_mbuf* next |
Next segment of scattered packet.
uint64_t ol_flags |
Offload features.
uint64_t outer_l2_len |
Outer L2 (MAC) Hdr Length.
uint64_t outer_l3_len |
Outer L3 (IP) Hdr Length.
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.
uint32_t pkt_len |
Total pkt len: sum of all segments.
struct rte_mempool* pool |
Pool from which mbuf was allocated.
uint8_t port |
Input port.
uint16_t refcnt |
Non-atomically accessed refcnt
rte_atomic16_t refcnt_atomic |
Atomically accessed refcnt
uint32_t rss |
RSS hash result if RSS enabled
uint32_t sched |
Hierarchical scheduler
uint32_t seqn |
Sequence number. See also rte_reorder_insert()
uint64_t tso_segsz |
TCP TSO segment size
uint64_t tx_offload |
combined for easy fetch
uint64_t udata64 |
Allow 8-byte userdata on 32-bit
void* userdata |
Can be used for external metadata
uint32_t usr |
User defined tags. See rte_distributor_process()
uint16_t vlan_tci |
VLAN Tag Control Identifier (CPU order)