Provided by: iproute2_4.3.0-1ubuntu3_amd64

#### NAME

```       PIE - Proportional Integral controller-Enhanced AQM algorithm

```

#### SYNOPSIS

```       tc  qdisc  ... pie [ limit PACKETS ] [ target TIME ] [ tupdate TIME ] [ alpha int ] [ beta
int ] [ ecn | noecn ] [ bytemode | nobytemode ]

```

#### 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 Simple implementation
o Guaranteed stability and fast responsiveness

```

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

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.

```

#### PARAMETERS

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

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

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

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

```

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

```

#### SEEALSO

```       tc(8), tc-codel(8) tc-red(8)

```

#### 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"

```

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