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