DPDK
18.05.1
|
#include <rte_mbuf.h>
Public Member Functions | |
union { | |
rte_iova_t buf_physaddr | |
} | __rte_aligned (sizeof(rte_iova_t)) |
Data Fields | |
void * | buf_addr |
union { | |
rte_atomic16_t refcnt_atomic | |
uint16_t refcnt | |
} | __rte_aligned |
uint16_t | nb_segs |
uint16_t | port |
uint64_t | ol_flags |
uint32_t | pkt_len |
uint16_t | data_len |
uint16_t | vlan_tci |
union { | |
uint32_t rss | |
struct { | |
uint32_t hi | |
} fdir | |
struct { | |
} sched | |
uint32_t usr | |
} | hash |
uint16_t | vlan_tci_outer |
uint16_t | buf_len |
uint64_t | timestamp |
struct rte_mempool * | pool |
struct rte_mbuf * | next |
uint16_t | priv_size |
uint16_t | timesync |
uint32_t | seqn |
struct rte_mbuf_ext_shared_info * | shinfo |
uint32_t | packet_type |
uint32_t | l2_type:4 |
uint32_t | l3_type:4 |
uint32_t | l4_type:4 |
uint32_t | tun_type:4 |
uint8_t | inner_esp_next_proto |
uint8_t | inner_l2_type:4 |
uint8_t | inner_l3_type:4 |
uint32_t | inner_l4_type:4 |
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.
Definition at line 431 of file rte_mbuf.h.
RTE_STD_C11 union rte_mbuf::@134 __rte_aligned | ( | sizeof(rte_iova_t) | ) |
Physical address of segment buffer. Force alignment to 8-bytes, so as to ensure we have the exact same mbuf cacheline0 layout for 32-bit and 64-bit. This makes working on vector drivers easier.
void* buf_addr |
Virtual address of segment buffer.
Definition at line 434 of file rte_mbuf.h.
rte_iova_t buf_physaddr |
deprecated
Definition at line 444 of file rte_mbuf.h.
rte_atomic16_t refcnt_atomic |
Atomically accessed refcnt
Definition at line 462 of file rte_mbuf.h.
uint16_t refcnt |
Non-atomically accessed refcnt
Definition at line 463 of file rte_mbuf.h.
RTE_STD_C11 { ... } __rte_aligned |
Reference counter. Its size should at least equal to the size of port field (16 bits), to support zero-copy broadcast. 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.
uint16_t nb_segs |
Number of segments.
Definition at line 465 of file rte_mbuf.h.
uint16_t port |
Input port (16 bits to support more than 256 virtual ports).
Definition at line 468 of file rte_mbuf.h.
uint64_t ol_flags |
Offload features.
Definition at line 470 of file rte_mbuf.h.
uint32_t packet_type |
L2/L3/L4 and tunnel information.
Definition at line 484 of file rte_mbuf.h.
uint32_t l2_type |
(Outer) L2 type.
Definition at line 486 of file rte_mbuf.h.
uint32_t l3_type |
(Outer) L3 type.
Definition at line 487 of file rte_mbuf.h.
uint32_t l4_type |
(Outer) L4 type.
Definition at line 488 of file rte_mbuf.h.
uint32_t tun_type |
Tunnel type.
Definition at line 489 of file rte_mbuf.h.
uint8_t inner_esp_next_proto |
ESP next protocol type, valid if RTE_PTYPE_TUNNEL_ESP tunnel type is set on both Tx and Rx.
Definition at line 493 of file rte_mbuf.h.
uint8_t inner_l2_type |
Inner L2 type.
Definition at line 500 of file rte_mbuf.h.
uint8_t inner_l3_type |
Inner L3 type.
Definition at line 502 of file rte_mbuf.h.
uint32_t inner_l4_type |
Inner L4 type.
Definition at line 505 of file rte_mbuf.h.
uint32_t pkt_len |
Total pkt len: sum of all segments.
Definition at line 509 of file rte_mbuf.h.
uint16_t data_len |
Amount of data in segment buffer.
Definition at line 510 of file rte_mbuf.h.
uint16_t vlan_tci |
VLAN TCI (CPU order), valid if PKT_RX_VLAN is set.
Definition at line 512 of file rte_mbuf.h.
uint32_t rss |
RSS hash result if RSS enabled
Definition at line 515 of file rte_mbuf.h.
uint32_t lo |
Second 4 flexible bytes
Definition at line 524 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 527 of file rte_mbuf.h.
struct { ... } fdir |
Filter identifier if FDIR enabled
struct { ... } sched |
Hierarchical scheduler
uint32_t usr |
User defined tags. See rte_distributor_process()
Definition at line 534 of file rte_mbuf.h.
union { ... } hash |
hash information
uint16_t vlan_tci_outer |
Outer VLAN TCI (CPU order), valid if PKT_RX_QINQ is set.
Definition at line 538 of file rte_mbuf.h.
uint16_t buf_len |
Length of segment buffer.
Definition at line 540 of file rte_mbuf.h.
uint64_t timestamp |
Valid if PKT_RX_TIMESTAMP is set. The unit and time reference are not normalized but are always the same for a given port.
Definition at line 545 of file rte_mbuf.h.
void* userdata |
Can be used for external metadata
Definition at line 552 of file rte_mbuf.h.
uint64_t udata64 |
Allow 8-byte userdata on 32-bit
Definition at line 553 of file rte_mbuf.h.
struct rte_mempool* pool |
Pool from which mbuf was allocated.
Definition at line 556 of file rte_mbuf.h.
struct rte_mbuf* next |
Next segment of scattered packet.
Definition at line 557 of file rte_mbuf.h.
uint64_t tx_offload |
combined for easy fetch
Definition at line 562 of file rte_mbuf.h.
uint64_t l2_len |
L2 (MAC) Header Length for non-tunneling pkt. Outer_L4_len + ... + Inner_L2_len for tunneling pkt.
Definition at line 566 of file rte_mbuf.h.
uint64_t l3_len |
L3 (IP) Header Length.
Definition at line 569 of file rte_mbuf.h.
uint64_t l4_len |
L4 (TCP/UDP) Header Length.
Definition at line 570 of file rte_mbuf.h.
uint64_t tso_segsz |
TCP TSO segment size
Definition at line 571 of file rte_mbuf.h.
uint64_t outer_l3_len |
Outer L3 (IP) Hdr Length.
Definition at line 574 of file rte_mbuf.h.
uint64_t outer_l2_len |
Outer L2 (MAC) Hdr Length.
Definition at line 575 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 583 of file rte_mbuf.h.
uint16_t timesync |
Timesync flags for use with IEEE1588.
Definition at line 586 of file rte_mbuf.h.
uint32_t seqn |
Sequence number. See also rte_reorder_insert().
Definition at line 589 of file rte_mbuf.h.
struct rte_mbuf_ext_shared_info* shinfo |
Shared data for external buffer attached to mbuf. See rte_pktmbuf_attach_extbuf().
Definition at line 594 of file rte_mbuf.h.