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

FreeBSD Manual Pages

  
 
  

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

NAME
       rte_pie.h

SYNOPSIS
       #include	<stdint.h>
       #include	<rte_random.h>
       #include	<rte_debug.h>
       #include	<rte_cycles.h>

   Data	Structures
       struct rte_pie_params
       struct rte_pie_config
       struct rte_pie

   Macros
       #define RTE_DQ_THRESHOLD	  16384
       #define RTE_DQ_WEIGHT   0.25
       #define RTE_ALPHA   0.125
       #define RTE_BETA	  1.25
       #define RTE_RAND_MAX   ~0LLU

   Functions
       int rte_pie_rt_data_init	(struct	rte_pie	*pie)
	   Initialises run-time	data.
       int rte_pie_config_init (struct rte_pie_config *pie_cfg,	const uint16_t
	   qdelay_ref, const uint16_t dp_update_interval, const	uint16_t
	   max_burst, const uint16_t tailq_th)
	   Configures a	single PIE configuration parameter structure.
       static int rte_pie_enqueue_empty	(const struct rte_pie_config *pie_cfg,
	   struct rte_pie *pie,	uint32_t pkt_len)
	   Decides packet enqueue when queue is	empty.
       static void _calc_drop_probability (const struct	rte_pie_config
	   *pie_cfg, struct rte_pie *pie, uint64_t time)
	   make	a decision to drop or enqueue a	packet based on	probability
	   criteria
       static int _rte_pie_drop	(const struct rte_pie_config *pie_cfg, struct
	   rte_pie *pie)
	   make	a decision to drop or enqueue a	packet based on	probability
	   criteria
       static int rte_pie_enqueue_nonempty (const struct rte_pie_config
	   *pie_cfg, struct rte_pie *pie, uint32_t pkt_len, const uint64_t
	   time)
	   Decides if new packet should	be enqueued or dropped for non-empty
	   queue.
       static int rte_pie_enqueue (const struct	rte_pie_config *pie_cfg,
	   struct rte_pie *pie,	const unsigned int qlen, uint32_t pkt_len,
	   const uint64_t time)
	   Decides if new packet should	be enqueued or dropped Updates run
	   time	data and gives verdict whether to enqueue or drop the packet.
       static void rte_pie_dequeue (struct rte_pie *pie, uint32_t pkt_len,
	   uint64_t time)
	   PIE rate estimation method Called on	each packet departure.

Detailed Description
       Proportional Integral controller	Enhanced (PIE)

       Definition in file rte_pie.h.

Macro Definition Documentation
   #define RTE_DQ_THRESHOLD   16384
       Queue length threshold (2^14) to	start measurement cycle	(bytes)

       Definition at line 25 of	file rte_pie.h.

   #define RTE_DQ_WEIGHT   0.25
       Weight (RTE_DQ_THRESHOLD/2^16) to compute dequeue rate

       Definition at line 26 of	file rte_pie.h.

   #define RTE_ALPHA   0.125
       Weights in drop probability calculations

       Definition at line 27 of	file rte_pie.h.

   #define RTE_BETA   1.25
       Weights in drop probability calculations

       Definition at line 28 of	file rte_pie.h.

   #define RTE_RAND_MAX	  ~0LLU
       Max value of the	random number

       Definition at line 29 of	file rte_pie.h.

Function Documentation
   int rte_pie_rt_data_init (struct rte_pie * pie)
       Initialises run-time data.

       Parameters
	   pie [in,out]	data pointer to	PIE runtime data

       Returns
	   Operation status

       Return values
	   0 success
	   !0 error

   int rte_pie_config_init (struct rte_pie_config * pie_cfg, const uint16_t
       qdelay_ref, const uint16_t dp_update_interval, const uint16_t
       max_burst, const	uint16_t tailq_th)
       Configures a single PIE configuration parameter structure.

       Parameters
	   pie_cfg [in,out] config pointer to a	PIE configuration parameter
	   structure
	   qdelay_ref [in] latency target(milliseconds)
	   dp_update_interval [in] update interval for drop probability
	   (milliseconds)
	   max_burst [in] maximum burst	allowance (milliseconds)
	   tailq_th [in] tail drop threshold for the queue (number of packets)

       Returns
	   Operation status

       Return values
	   0 success
	   !0 error

   static int rte_pie_enqueue_empty (const struct rte_pie_config * pie_cfg,
       struct rte_pie *	pie, uint32_t pkt_len) [static]
       Decides packet enqueue when queue is empty. Note: packet	is never
       dropped in this particular case.

       Parameters
	   pie_cfg [in]	config pointer to a PIE	configuration parameter
	   structure
	   pie [in, out] data pointer to PIE runtime data
	   pkt_len [in]	packet length in bytes

       Returns
	   Operation status

       Return values
	   0 enqueue the packet
	   !0 drop the packet

       If the queue has	been idle for a	while, turn off	PIE and	Reset counters

       Definition at line 116 of file rte_pie.h.

   static void _calc_drop_probability (const struct rte_pie_config * pie_cfg,
       struct rte_pie *	pie, uint64_t time) [static]
       make a decision to drop or enqueue a packet based on probability
       criteria

       Parameters
	   pie_cfg [in]	config pointer to a PIE	configuration parameter
	   structure
	   pie [in, out] data pointer to PIE runtime data
	   time	[in] current time (measured in cpu cycles)

       Definition at line 147 of file rte_pie.h.

   static int _rte_pie_drop (const struct rte_pie_config * pie_cfg, struct
       rte_pie * pie) [inline],	 [static]
       make a decision to drop or enqueue a packet based on probability
       criteria

       Parameters
	   pie_cfg [in]	config pointer to a PIE	configuration parameter
	   structure
	   pie [in, out] data pointer to PIE runtime data

       Returns
	   operation status

       Return values
	   0 enqueue the packet
	   1 drop the packet

       Definition at line 210 of file rte_pie.h.

   static int rte_pie_enqueue_nonempty (const struct rte_pie_config * pie_cfg,
       struct rte_pie *	pie, uint32_t pkt_len, const uint64_t time) [inline],
       [static]
       Decides if new packet should be enqueued	or dropped for non-empty
       queue.

       Parameters
	   pie_cfg [in]	config pointer to a PIE	configuration parameter
	   structure
	   pie [in,out]	data pointer to	PIE runtime data
	   pkt_len [in]	packet length in bytes
	   time	[in] current time (measured in cpu cycles)

       Returns
	   Operation status

       Return values
	   0 enqueue the packet
	   1 drop the packet based on max threshold criterion
	   2 drop the packet based on mark probability criterion

       Definition at line 258 of file rte_pie.h.

   static int rte_pie_enqueue (const struct rte_pie_config * pie_cfg, struct
       rte_pie * pie, const unsigned int qlen, uint32_t	pkt_len, const
       uint64_t	time) [inline],	 [static]
       Decides if new packet should be enqueued	or dropped Updates run time
       data and	gives verdict whether to enqueue or drop the packet.

       Parameters
	   pie_cfg [in]	config pointer to a PIE	configuration parameter
	   structure
	   pie [in,out]	data pointer to	PIE runtime data
	   qlen	[in] queue length
	   pkt_len [in]	packet length in bytes
	   time	[in] current time stamp	(measured in cpu cycles)

       Returns
	   Operation status

       Return values
	   0 enqueue the packet
	   1 drop the packet based on drop probability criteria

       Definition at line 325 of file rte_pie.h.

   static void rte_pie_dequeue (struct rte_pie * pie, uint32_t pkt_len,
       uint64_t	time) [inline],	 [static]
       PIE rate	estimation method Called on each packet	departure.

       Parameters
	   pie [in] data pointer to PIE	runtime	data
	   pkt_len [in]	packet length in bytes
	   time	[in] current time stamp	in cpu cycles

       Definition at line 349 of file rte_pie.h.

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

Version	25.11.0			Thu Jun	11 2026			  rte_pie.h(3)

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

home | help