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 + ...	+
       Inner_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_attach_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