DPDK  16.11.11
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
 
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
 
uint32_t seqn
 
uint16_t vlan_tci_outer
 
struct rte_mempoolpool
 
struct rte_mbufnext
 
uint16_t priv_size
 
uint16_t timesync
 
uint32_t packet_type
 
uint32_t l2_type:4
 
uint32_t l3_type:4
 
uint32_t l4_type:4
 
uint32_t tun_type:4
 
uint32_t inner_l2_type:4
 
uint32_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
 

Detailed Description

The generic rte_mbuf, containing a packet mbuf.

Examples:
bond/main.c, distributor/main.c, dpdk_qat/crypto.c, dpdk_qat/main.c, ethtool/ethtool-app/main.c, exception_path/main.c, ip_fragmentation/main.c, ip_pipeline/config_parse.c, ip_pipeline/pipeline/pipeline_flow_actions_be.c, ip_pipeline/pipeline/pipeline_flow_classification_be.c, ip_pipeline/pipeline/pipeline_passthrough_be.c, ip_pipeline/pipeline/pipeline_routing_be.c, ip_reassembly/main.c, ipv4_multicast/main.c, kni/main.c, l2fwd-crypto/main.c, l2fwd-jobstats/main.c, l2fwd-keepalive/main.c, l2fwd/main.c, l3fwd-acl/main.c, l3fwd-power/main.c, l3fwd-vf/main.c, link_status_interrupt/main.c, load_balancer/runtime.c, multi_process/client_server_mp/mp_client/client.c, multi_process/client_server_mp/mp_server/main.c, multi_process/l2fwd_fork/main.c, multi_process/symmetric_mp/main.c, netmap_compat/lib/compat_netmap.c, packet_ordering/main.c, performance-thread/l3fwd-thread/main.c, ptpclient/ptpclient.c, qos_meter/main.c, qos_sched/app_thread.c, qos_sched/main.c, quota_watermark/qw/main.c, rxtx_callbacks/main.c, skeleton/basicfwd.c, tep_termination/main.c, tep_termination/vxlan.c, tep_termination/vxlan_setup.c, vhost/main.c, vhost_xen/main.c, vmdq/main.c, and vmdq_dcb/main.c.

Definition at line 359 of file rte_mbuf.h.

Field Documentation

void* buf_addr

Virtual address of segment buffer.

Examples:
ip_pipeline/pipeline/pipeline_routing_be.c.

Definition at line 362 of file rte_mbuf.h.

phys_addr_t buf_physaddr

Physical address of segment buffer.

Examples:
dpdk_qat/crypto.c.

Definition at line 363 of file rte_mbuf.h.

uint16_t buf_len

Length of segment buffer.

Definition at line 365 of file rte_mbuf.h.

rte_atomic16_t refcnt_atomic

Atomically accessed refcnt

Definition at line 381 of file rte_mbuf.h.

uint16_t refcnt

Non-atomically accessed refcnt

Definition at line 382 of file rte_mbuf.h.

RTE_STD_C11 { ... }

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.

Examples:
exception_path/main.c, and ipv4_multicast/main.c.

Definition at line 384 of file rte_mbuf.h.

uint8_t port
uint64_t ol_flags

Offload features.

Examples:
ptpclient/ptpclient.c, tep_termination/vxlan.c, tep_termination/vxlan_setup.c, and vhost/main.c.

Definition at line 387 of file rte_mbuf.h.

uint32_t packet_type
uint32_t l2_type

(Outer) L2 type.

Definition at line 403 of file rte_mbuf.h.

uint32_t l3_type

(Outer) L3 type.

Definition at line 404 of file rte_mbuf.h.

uint32_t l4_type

(Outer) L4 type.

Definition at line 405 of file rte_mbuf.h.

uint32_t tun_type

Tunnel type.

Definition at line 406 of file rte_mbuf.h.

uint32_t inner_l2_type

Inner L2 type.

Definition at line 407 of file rte_mbuf.h.

uint32_t inner_l3_type

Inner L3 type.

Definition at line 408 of file rte_mbuf.h.

uint32_t inner_l4_type

Inner L4 type.

Definition at line 409 of file rte_mbuf.h.

uint32_t pkt_len
uint16_t data_len
uint16_t vlan_tci

VLAN TCI (CPU order), valid if PKT_RX_VLAN_STRIPPED is set.

Examples:
ipv4_multicast/main.c.

Definition at line 416 of file rte_mbuf.h.

uint32_t rss

RSS hash result if RSS enabled

Examples:
distributor/main.c.

Definition at line 419 of file rte_mbuf.h.

uint32_t lo

Second 4 flexible bytes

Definition at line 427 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 430 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 438 of file rte_mbuf.h.

union { ... } hash

hash information

uint32_t seqn

Sequence number. See also rte_reorder_insert()

Definition at line 441 of file rte_mbuf.h.

uint16_t vlan_tci_outer

Outer VLAN TCI (CPU order), valid if PKT_RX_QINQ_STRIPPED is set.

Examples:
ipv4_multicast/main.c.

Definition at line 444 of file rte_mbuf.h.

void* userdata

Can be used for external metadata

Definition at line 451 of file rte_mbuf.h.

uint64_t udata64

Allow 8-byte userdata on 32-bit

Definition at line 452 of file rte_mbuf.h.

struct rte_mempool* pool

Pool from which mbuf was allocated.

Definition at line 455 of file rte_mbuf.h.

struct rte_mbuf* next

Next segment of scattered packet.

Examples:
exception_path/main.c, ipv4_multicast/main.c, and vhost/main.c.

Definition at line 456 of file rte_mbuf.h.

uint64_t tx_offload

combined for easy fetch

Examples:
ipv4_multicast/main.c.

Definition at line 461 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.

Examples:
ip_fragmentation/main.c, ip_reassembly/main.c, tep_termination/vxlan.c, and vhost/main.c.

Definition at line 464 of file rte_mbuf.h.

uint64_t l3_len

L3 (IP) Header Length.

Examples:
ip_reassembly/main.c, tep_termination/vxlan.c, and vhost/main.c.

Definition at line 468 of file rte_mbuf.h.

uint64_t l4_len

L4 (TCP/UDP) Header Length.

Examples:
tep_termination/vxlan.c.

Definition at line 469 of file rte_mbuf.h.

uint64_t tso_segsz

TCP TSO segment size

Examples:
tep_termination/vxlan.c.

Definition at line 470 of file rte_mbuf.h.

uint64_t outer_l3_len

Outer L3 (IP) Hdr Length.

Examples:
tep_termination/vxlan.c.

Definition at line 473 of file rte_mbuf.h.

uint64_t outer_l2_len

Outer L2 (MAC) Hdr Length.

Examples:
tep_termination/vxlan.c.

Definition at line 474 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 482 of file rte_mbuf.h.

uint16_t timesync

Timesync flags for use with IEEE1588.

Examples:
ptpclient/ptpclient.c.

Definition at line 485 of file rte_mbuf.h.


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