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 20ms.
is the frequency at which the system drop probability is calculated.
The default is 30ms.
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.
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
email@example.com, firstname.lastname@example.org. This page was obtained
from the project's upstream Git repository
on 2017-03-13. 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 email@example.com
iproute2 16 January 2014 PIE(8)