Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
rte_mbuf(3)			      DPDK			     rte_mbuf(3)

NAME
     rte_mbuf

SYNOPSIS
     #include <rte_mbuf_core.h>

   Data Fields
     void * buf_addr
     struct rte_mbuf * next
     uint64_t ol_flags
     struct rte_mempool * pool
     uint64_t dynfield2
     struct rte_mbuf_ext_shared_info * shinfo
     uint16_t priv_size
     uint16_t timesync
     uint32_t dynfield1 [9]
     uint16_t refcnt
     uint16_t nb_segs
     uint16_t port
     uint32_t packet_type
     uint8_t l2_type:4
     uint8_t l3_type:4
     uint8_t l4_type:4
     uint8_t tun_type:4
     uint8_t inner_esp_next_proto
     uint8_t inner_l2_type:4
     uint8_t inner_l3_type:4
     uint8_t inner_l4_type:4
     uint32_t pkt_len
     uint16_t data_len
     uint16_t vlan_tci
     uint32_t rss
     uint32_t lo
     uint32_t hi
     struct {
	uint32_t hi
     } fdir
     struct rte_mbuf_sched sched
     uint16_t txq
     struct {
	uint16_t txq
     } txadapter
     uint32_t usr
     union {
	uint32_t rss
	struct {
	   uint32_t hi
	} fdir
	struct rte_mbuf_sched sched
	struct {
	   uint16_t txq
	} txadapter
	uint32_t usr
     } hash
     uint16_t vlan_tci_outer
     uint16_t buf_len
     uint64_t tx_offload
     uint64_t l2_len:RTE_MBUF_L2_LEN_BITS
     uint64_t l3_len:RTE_MBUF_L3_LEN_BITS
     uint64_t l4_len:RTE_MBUF_L4_LEN_BITS
     uint64_t tso_segsz:RTE_MBUF_TSO_SEGSZ_BITS
     uint64_t outer_l3_len:RTE_MBUF_OUTL3_LEN_BITS
     uint64_t outer_l2_len:RTE_MBUF_OUTL2_LEN_BITS

Detailed Description
     The generic rte_mbuf, containing a packet mbuf.

     Definition at line 475 of file rte_mbuf_core.h.

Field Documentation
   void* buf_addr
     Virtual address of segment buffer.

     Definition at line 476 of file rte_mbuf_core.h.

   struct rte_mbuf* next
     Next segment of scattered packet. This field is valid when physical address
     field is undefined. Otherwise next pointer in the second cache line will be
     used.

     Definition at line 493 of file rte_mbuf_core.h.

   uint16_t refcnt
     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 RTE_MBUF_REFCNT_ATOMIC flag.

     Definition at line 514 of file rte_mbuf_core.h.

   uint16_t nb_segs
     Number of segments. Only valid for the first segment of an mbuf chain.

     Definition at line 520 of file rte_mbuf_core.h.

   uint16_t port
     Input port (16 bits to support more than 256 virtual ports). The event  eth
     Tx adapter uses this field to specify the output port.

     Definition at line 525 of file rte_mbuf_core.h.

   uint64_t ol_flags
     Offload features.

     Definition at line 529 of file rte_mbuf_core.h.

   uint32_t packet_type
     L2/L3/L4 and tunnel information.

     Definition at line 545 of file rte_mbuf_core.h.

   uint8_t l2_type
     (Outer) L2 type.

     Definition at line 548 of file rte_mbuf_core.h.

   uint8_t l3_type
     (Outer) L3 type.

     Definition at line 549 of file rte_mbuf_core.h.

   uint8_t l4_type
     (Outer) L4 type.

     Definition at line 550 of file rte_mbuf_core.h.

   uint8_t tun_type
     Tunnel type.

     Definition at line 551 of file rte_mbuf_core.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 553 of file rte_mbuf_core.h.

   uint8_t inner_l2_type
     Inner L2 type.

     Definition at line 560 of file rte_mbuf_core.h.

   uint8_t inner_l3_type
     Inner L3 type.

     Definition at line 562 of file rte_mbuf_core.h.

   uint8_t inner_l4_type
     Inner L4 type.

     Definition at line 566 of file rte_mbuf_core.h.

   uint32_t pkt_len
     Total pkt len: sum of all segments.

     Definition at line 570 of file rte_mbuf_core.h.

   uint16_t data_len
     Amount of data in segment buffer.

     Definition at line 571 of file rte_mbuf_core.h.

   uint16_t vlan_tci
     VLAN TCI (CPU order), valid if RTE_MBUF_F_RX_VLAN is set.

     Definition at line 573 of file rte_mbuf_core.h.

   uint32_t rss
     RSS hash result if RSS enabled

     Definition at line 577 of file rte_mbuf_core.h.

   uint32_t lo
     Second 4 flexible bytes

     Definition at line 584 of file rte_mbuf_core.h.

   uint32_t hi
     First  4 flexible bytes or FD ID, dependent on RTE_MBUF_F_RX_FDIR_* flag in
     ol_flags.

     Definition at line 587 of file rte_mbuf_core.h.

   struct  { ... }  fdir
     Filter identifier if FDIR enabled

   struct rte_mbuf_sched sched
     Hierarchical scheduler : 8 bytes

     Definition at line 592 of file rte_mbuf_core.h.

   uint16_t txq
     The event eth Tx adapter uses this field to store Tx queue id.

     See also
	 rte_event_eth_tx_adapter_txq_set()

     Definition at line 597 of file rte_mbuf_core.h.

   struct  { ... }  txadapter
     Eventdev ethdev Tx adapter

   uint32_t usr
     User defined tags. See rte_distributor_process()

     Definition at line 603 of file rte_mbuf_core.h.

   union  { ... }  hash
     hash information

   uint16_t vlan_tci_outer
     Outer VLAN TCI (CPU order), valid if RTE_MBUF_F_RX_QINQ is set.

     Definition at line 609 of file rte_mbuf_core.h.

   uint16_t buf_len
     Length of segment buffer.

     Definition at line 611 of file rte_mbuf_core.h.

   struct rte_mempool* pool
     Pool from which mbuf was allocated.

     Definition at line 615 of file rte_mbuf_core.h.

   uint64_t dynfield2
     Reserved for dynamic fields when the next pointer is in  first  cache  line
     (i.e. RTE_IOVA_IN_MBUF is 0).

     Definition at line 635 of file rte_mbuf_core.h.

   uint64_t tx_offload
     combined for easy fetch

     Definition at line 640 of file rte_mbuf_core.h.

   uint64_t l2_len
     L2  (MAC)	Header	Length	for  non-tunneling pkt. Outer_L4_len + ... + In-
     ner_L2_len for tunneling pkt.

     Definition at line 643 of file rte_mbuf_core.h.

   uint64_t l3_len
     L3 (IP) Header Length.

     Definition at line 647 of file rte_mbuf_core.h.

   uint64_t l4_len
     L4 (TCP/UDP) Header Length.

     Definition at line 649 of file rte_mbuf_core.h.

   uint64_t tso_segsz
     TCP TSO segment size

     Definition at line 651 of file rte_mbuf_core.h.

   uint64_t outer_l3_len
     Outer L3 (IP) Hdr Length.

     Definition at line 666 of file rte_mbuf_core.h.

   uint64_t outer_l2_len
     Outer L2 (MAC) Hdr Length.

     Definition at line 668 of file rte_mbuf_core.h.

   struct rte_mbuf_ext_shared_info* shinfo
     Shared data for external  buffer  attached  to  mbuf.  See  rte_pktmbuf_at-
     tach_extbuf().

     Definition at line 678 of file rte_mbuf_core.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 683 of file rte_mbuf_core.h.

   uint16_t timesync
     Timesync flags for use with IEEE1588.

     Definition at line 686 of file rte_mbuf_core.h.

   uint32_t dynfield1[9]
     Reserved for dynamic fields.

     Definition at line 688 of file rte_mbuf_core.h.

Author
     Generated automatically by Doxygen for DPDK from the source code.

Version 25.11.0 		 Thu Jun 11 2026		     rte_mbuf(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=lo&manpath=FreeBSD+15.1-RELEASE+and+Ports.quarterly>

home | help