Proportional Integral controller-Enhanced (PIE) is a control
theoretic active queue management scheme. It is based on the
proportional integral controller but aims to control delay. The main
design goals are
o Low latency control
o High link utilization
o Simple implementation
o Guaranteed stability and fast responsiveness
PIE is designed to control delay effectively. First, an average
dequeue rate is estimated based on the standing queue. The rate is
used to calculate the current delay. Then, on a periodic basis, the
delay is used to calculate the dropping probabilty. Finally, on
arrival, a packet is dropped (or marked) based on this probability.
PIE makes adjustments to the probability based on the trend of the
delay i.e. whether it is going up or down.The delay converges
quickly to the target value specified.
alpha and beta are statically chosen parameters chosen to control the
drop probability growth and are determined through control theoretic
approaches. alpha determines how the deviation between the current
and target latency changes probability. beta exerts additional
adjustments depending on the latency trend.
The drop probabilty is used to mark packets in ecn mode. However, as
in RED, beyond 10% packets are dropped based on this probability. The
bytemode is used to drop packets proportional to the packet size.
Additional details can be found in the paper cited below.
limit on the queue size in packets. Incoming packets are dropped when
this limit is reached. Default is 1000 packets.
is the expected queue delay. The default target delay is 15ms.
is the frequency at which the system drop probability is calculated.
The default is 15ms.
alpha and beta are parameters chosen to control the drop probability.
These should be in the range between 0 and 32.
ecn | noecn
is used to mark packets instead of dropping. ecn to turn on ecn
mode, noecn to turn off ecn mode. By default, ecn is turned off.
bytemode | nobytemode
is used to scale drop probability proportional to packet size.
bytemode to turn on bytemode, nobytemode to turn off bytemode. By
default, bytemode is turned off.
dq_rate_estimator | no_dq_rate_estimator
is used to calculate delay using Little's law. dq_rate_estimator to
turn on dq_rate_estimator, no_dq_rate_estimator to turn off
no_dq_rate_estimator. By default, dq_rate_estimator is turned off.
PIE was implemented by Vijay Subramanian and Mythili Prabhu, also the
authors of this man page. Please report bugs and corrections to the
Linux networking development mailing list at
This page is part of the iproute2 (utilities for controlling TCP/IP
networking and traffic) project. Information about the project can
be found at
If you have a bug report for this manual page, send it to
firstname.lastname@example.org, email@example.com. This page was obtained
from the project's upstream Git repository
2020-08-13. (At that time, the date of the most recent commit that
was found in the repository was 2020-06-24.) If you discover any
rendering problems in this HTML version of the page, or you believe
there is a better or more up-to-date source for the page, or you have
corrections or improvements to the information in this COLOPHON
(which is not part of the original manual page), send a mail to
iproute2 16 January 2014 PIE(8)