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

  
 
  

home | help
rte_mbuf_history.h(3)		      DPDK		   rte_mbuf_history.h(3)

NAME
     rte_mbuf_history.h

SYNOPSIS
     #include <rte_common.h>
     #include <rte_debug.h>
     #include <rte_mbuf_dyn.h>

   Macros
     #define RTE_MBUF_HISTORY_BITS   4
     #define	RTE_MBUF_HISTORY_MAX	 (sizeof(rte_mbuf_history_t)   *   8   /
	 RTE_MBUF_HISTORY_BITS)

   Enumerations
     enum rte_mbuf_history_op {  RTE_MBUF_HISTORY_OP_NEVER  =  0,  RTE_MBUF_HIS-
	 TORY_OP_LIB_FREE  =  1, RTE_MBUF_HISTORY_OP_PMD_FREE = 2, RTE_MBUF_HIS-
	 TORY_OP_APP_FREE = 3, RTE_MBUF_HISTORY_OP_LIB_ALLOC = 4,  RTE_MBUF_HIS-
	 TORY_OP_PMD_ALLOC = 5, RTE_MBUF_HISTORY_OP_APP_ALLOC = 6, RTE_MBUF_HIS-
	 TORY_OP_RX = 7, RTE_MBUF_HISTORY_OP_TX = 8, RTE_MBUF_HISTORY_OP_TX_PREP
	 =  9,	RTE_MBUF_HISTORY_OP_TX_BUSY  = 10, RTE_MBUF_HISTORY_OP_ENQUEUE =
	 11, RTE_MBUF_HISTORY_OP_DEQUEUE = 12,	RTE_MBUF_HISTORY_OP_USR2  =  14,
	 RTE_MBUF_HISTORY_OP_USR1 = 15, RTE_MBUF_HISTORY_OP_MAX = 16 }

   Functions
     __rte_experimental void rte_mbuf_history_init (void)
     static  void  rte_mbuf_history_mark (struct rte_mbuf *m, enum rte_mbuf_his-
	 tory_op op)
     static void rte_mbuf_history_mark_bulk (struct rte_mbuf *const *mbufs,  un-
	 signed int count, enum rte_mbuf_history_op op)
     __rte_experimental   void	rte_mbuf_history_dump  (FILE  *f,  const  struct
	 rte_mbuf *m)
     __rte_experimental  void  rte_mbuf_history_dump_mempool  (FILE  *f,  struct
	 rte_mempool *mp)
     __rte_experimental void rte_mbuf_history_dump_all (FILE *f)

   Variables
     int rte_mbuf_history_field_offset

Detailed Description
     Warning
	 EXPERIMENTAL: this API may change without prior notice.

     These  functions  allow  to  track  history of mbuf objects using a dynamic
     field.

     It tracks the lifecycle of mbuf objects through the system with a fixed set
     of predefined events to maintain performance.

     The history is stored as an atomic value (64-bit) in a dynamic field of the
     mbuf, with each event encoded in 4 bits, allowing up to  16  events  to  be
     tracked.  Atomic  operations ensure thread safety for cloned mbufs accessed
     by multiple lcores.

     After dumping the history in a file, the script dpdk-mbuf-history-parser.py
     can be used for parsing.

     Definition in file rte_mbuf_history.h.

Macro Definition Documentation
   #define RTE_MBUF_HISTORY_BITS   4
     Number of bits for each history operation.

     Definition at line 43 of file rte_mbuf_history.h.

   #define   RTE_MBUF_HISTORY_MAX     (sizeof(rte_mbuf_history_t)    *	  8    /
     RTE_MBUF_HISTORY_BITS)
     Maximum number of history operations that can be stored.

     Definition at line 48 of file rte_mbuf_history.h.

Enumeration Type Documentation
   enum rte_mbuf_history_op
     History operation types.

     Enumerator

     RTE_MBUF_HISTORY_OP_NEVER
	    Initial state - never allocated

     RTE_MBUF_HISTORY_OP_LIB_FREE
	    Freed back to pool

     RTE_MBUF_HISTORY_OP_PMD_FREE
	    Freed by PMD

     RTE_MBUF_HISTORY_OP_APP_FREE
	    Freed by application

     RTE_MBUF_HISTORY_OP_LIB_ALLOC
	    Allocation in mbuf library

     RTE_MBUF_HISTORY_OP_PMD_ALLOC
	    Allocated by PMD for Rx

     RTE_MBUF_HISTORY_OP_APP_ALLOC
	    Allocated by application

     RTE_MBUF_HISTORY_OP_RX
	    Received

     RTE_MBUF_HISTORY_OP_TX
	    Sent

     RTE_MBUF_HISTORY_OP_TX_PREP
	    Being prepared before Tx

     RTE_MBUF_HISTORY_OP_TX_BUSY
	    Returned due to Tx busy

     RTE_MBUF_HISTORY_OP_ENQUEUE
	    Enqueued for processing

     RTE_MBUF_HISTORY_OP_DEQUEUE
	    Dequeued for processing

     RTE_MBUF_HISTORY_OP_USR2
	    Application-defined event 2

     RTE_MBUF_HISTORY_OP_USR1
	    Application-defined event 1

     RTE_MBUF_HISTORY_OP_MAX
	    Maximum number of operation types

     Definition at line 53 of file rte_mbuf_history.h.

Function Documentation
   __rte_experimental void rte_mbuf_history_init (void)
     Initialize the mbuf history system.

     Warning
	 EXPERIMENTAL: this API may change without prior notice.

     This  function  registers	the  dynamic field for mbuf history tracking. It
     should be called once during application initialization.

     Note: This function is called by rte_pktmbuf_pool_create, so explicit invo-
     cation is usually not required.

   static void rte_mbuf_history_mark (struct rte_mbuf *  m,  enum  rte_mbuf_his-
     tory_op op) [inline],  [static]
     Mark an mbuf with a history event.

     Warning
	 EXPERIMENTAL: this API may change without prior notice.

     Parameters
	 m Pointer to the mbuf.
	 op The operation to record.

     Definition at line 105 of file rte_mbuf_history.h.

   static  void  rte_mbuf_history_mark_bulk (struct rte_mbuf *const * mbufs, un-
     signed int count, enum rte_mbuf_history_op op) [inline],  [static]
     Mark multiple mbufs with a history event.

     Warning
	 EXPERIMENTAL: this API may change without prior notice.

     Parameters
	 mbufs Array of mbuf pointers.
	 count Number of mbufs to mark.
	 op The operation to record.

     Definition at line 142 of file rte_mbuf_history.h.

   __rte_experimental  void  rte_mbuf_history_dump  (FILE  *  f,  const   struct
     rte_mbuf * m)
     Dump mbuf history for a single mbuf to a file.

     Warning
	 EXPERIMENTAL: this API may change without prior notice.

	 EXPERIMENTAL: this API may change without prior notice.

     Parameters
	 f File pointer to write the history to.
	 m Pointer to the mbuf to dump history for.

   __rte_experimental  void  rte_mbuf_history_dump_mempool  (FILE  *  f,  struct
     rte_mempool * mp)
     Dump mbuf history statistics for a single mempool to a file.

     Warning
	 EXPERIMENTAL: this API may change without prior notice.

     Parameters
	 f File pointer to write the history statistics to.
	 mp Pointer to the mempool to dump history for.

   __rte_experimental void rte_mbuf_history_dump_all (FILE * f)
     Dump mbuf history statistics for all mempools to a file.

     Warning
	 EXPERIMENTAL: this API may change without prior notice.

     Parameters
	 f File pointer to write the history statistics to.

Variable Documentation
   int rte_mbuf_history_field_offset [extern]
     Global offset for the history dynamic field (set during initialization).

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

Version 25.11.0 		 Thu Aug 27 2026	   rte_mbuf_history.h(3)

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

home | help