.TH PIE 8 "16 January 2014" "iproute2" "Linux"
.SH NAME
PIE \- Proportional Integral controller-Enhanced AQM algorithm
.SH SYNOPSIS
.B tc qdisc ... pie
[
.B limit
PACKETS ] [
.B target
TIME ] [
.B tupdate
TIME ] [
.B alpha
int ] [
.B beta
int ] [
.B ecn
|
.B noecn
] [
.B bytemode
|
.B nobytemode
]

.SH DESCRIPTION
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

.SH ALGORITHM
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.

.SH PARAMETERS
.SS limit
limit on the queue size in packets. Incoming packets are dropped when this limit
is reached. Default is 1000 packets.

.SS target
is the expected queue delay. The default target delay is 20ms.

.SS tupdate
is the frequency at which the system drop probability is calculated. The default is 30ms.

.SS alpha
.SS beta
alpha and beta are parameters chosen to control the drop probability. These
should be in the range between 0 and 32.

.SS ecn | noecn
is used to mark packets instead of dropping
.B ecn
to turn on ecn mode,
.B noecn
to turn off ecn mode. By default,
.B ecn
is turned off.

.SS bytemode | nobytemode
is used to scale drop probability proportional to packet size
.B bytemode
to turn on bytemode,
.B nobytemode
to turn off bytemode. By default,
.B bytemode
is turned off.

.SH EXAMPLES
 # tc qdisc add dev eth0 root pie
 # tc -s qdisc show
   qdisc pie 8034: dev eth0 root refcnt 2 limit 200p target 19000us tupdate 29000us alpha 2 beta 20
   Sent 7443524 bytes 7204 pkt (dropped 900, overlimits 0 requeues 0)
   backlog 38998b 37p requeues 0
   prob 0.123384 delay 25000us avg_dq_rate 1464840
   pkts_in 7241 overlimit 900 dropped 0 maxq 186 ecn_mark 0

 # tc qdisc add dev eth0 root pie limit 100 target 20ms tupdate 30ms ecn
 # tc -s qdisc show
   qdisc pie 8036: dev eth0 root refcnt 2 limit 200p target 19000 tupdate 29000 alpha 2 beta 20 ecn
   Sent 2491922 bytes 2507 pkt (dropped 214, overlimits 0 requeues 0)
   backlog 33728b 32p requeues 0
   prob 0.102262 delay 24000us avg_dq_rate 1464840
   pkts_in 2468 overlimit 214 dropped 0 maxq 192 ecn_mark 71


 # tc qdisc add dev eth0 root pie limit 100 target 50ms tupdate 30ms bytemode
 # tc -s qdisc show
   qdisc pie 8036: dev eth0 root refcnt 2 limit 200p target 19000 tupdate 29000 alpha 2 beta 20 ecn
   Sent 2491922 bytes 2507 pkt (dropped 214, overlimits 0 requeues 0)
   backlog 33728b 32p requeues 0
   prob 0.102262 delay 24000us avg_dq_rate 1464840
   pkts_in 2468 overlimit 214 dropped 0 maxq 192 ecn_mark 71


.SH SEE ALSO
.BR tc (8),
.BR tc-codel (8)
.BR tc-red (8)

.SH SOURCES
 o IETF draft submission is at http://tools.ietf.org/html/draft-pan-tsvwg-pie-00
 o IEEE  Conference on High Performance Switching and Routing 2013 : "PIE: A
Lightweight Control Scheme to Address the Bufferbloat Problem"

.SH AUTHORS
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 <netdev@vger.kernel.org>.
