1PIE(8)                               Linux                              PIE(8)
2
3
4

NAME

6       PIE - Proportional Integral controller-Enhanced AQM algorithm
7

SYNOPSIS

9       tc  qdisc  ... pie [ limit PACKETS ] [ target TIME ] [ tupdate TIME ] [
10       alpha int ] [ beta int ] [ ecn | noecn ] [ bytemode |  nobytemode  ]  [
11       dq_rate_estimator | no_dq_rate_estimator ]
12
13

DESCRIPTION

15       Proportional  Integral controller-Enhanced (PIE) is a control theoretic
16       active queue management scheme. It is based on the  proportional  inte‐
17       gral controller but aims to control delay. The main design goals are
18        o Low latency control
19        o High link utilization
20        o Simple implementation
21        o Guaranteed stability and fast responsiveness
22
23

ALGORITHM

25       PIE is designed to control delay effectively. First, an average dequeue
26       rate is estimated based on the standing queue. The rate is used to cal‐
27       culate  the current delay. Then, on a periodic basis, the delay is used
28       to calculate the dropping probabilty. Finally, on arrival, a packet  is
29       dropped (or marked) based on this probability.
30
31       PIE  makes  adjustments  to  the  probability based on the trend of the
32       delay i.e.  whether it is going up or down.The delay converges  quickly
33       to the target value specified.
34
35       alpha  and  beta are statically chosen parameters chosen to control the
36       drop probability growth and are determined  through  control  theoretic
37       approaches.  alpha determines how the deviation between the current and
38       target latency changes probability. beta exerts additional  adjustments
39       depending on the latency trend.
40
41       The drop probabilty is used to mark packets in ecn mode. However, as in
42       RED, beyond 10% packets are dropped  based  on  this  probability.  The
43       bytemode is used to drop packets proportional to the packet size.
44
45       Additional details can be found in the paper cited below.
46
47

PARAMETERS

49   limit
50       limit  on  the queue size in packets. Incoming packets are dropped when
51       this limit is reached. Default is 1000 packets.
52
53
54   target
55       is the expected queue delay. The default target delay is 15ms.
56
57
58   tupdate
59       is the frequency at which the system drop  probability  is  calculated.
60       The default is 15ms.
61
62
63   alpha
64   beta
65       alpha  and  beta are parameters chosen to control the drop probability.
66       These should be in the range between 0 and 32.
67
68
69   ecn | noecn
70       is used to mark packets instead of dropping.  ecn to turn on ecn  mode,
71       noecn to turn off ecn mode. By default, ecn is turned off.
72
73
74   bytemode | nobytemode
75       is  used  to scale drop probability proportional to packet size.  byte‐
76       mode to turn on bytemode, nobytemode to turn off bytemode. By  default,
77       bytemode is turned off.
78
79
80   dq_rate_estimator | no_dq_rate_estimator
81       is  used  to  calculate delay using Little's law.  dq_rate_estimator to
82       turn   on   dq_rate_estimator,   no_dq_rate_estimator   to   turn   off
83       no_dq_rate_estimator. By default, dq_rate_estimator is turned off.
84
85

EXAMPLES

87        # tc qdisc add dev eth0 root pie
88        # tc -s qdisc show
89          qdisc  pie  8036:  dev  eth0 root refcnt 2 limit 1000p target 15.0ms
90       tupdate 16.0ms alpha 2 beta 20
91           Sent 31216108 bytes 20800 pkt (dropped 80, overlimits 0 requeues 0)
92           backlog 16654b 11p requeues 0
93            prob 0.006161 delay 15666us
94            pkts_in 20811 overlimit 0 dropped 80 maxq 50 ecn_mark 0
95
96        # tc qdisc add dev eth0 root pie dq_rate_estimator
97        # tc -s qdisc show
98          qdisc pie 8036: dev eth0 root refcnt 2  limit  1000p  target  15.0ms
99       tupdate 16.0ms alpha 2 beta 20
100           Sent 63947420 bytes 42414 pkt (dropped 41, overlimits 0 requeues 0)
101           backlog 271006b 179p requeues 0
102            prob 0.000092 delay 22200us avg_dq_rate 12145996
103            pkts_in 41 overlimit 343 dropped 0 maxq 50 ecn_mark 0
104
105        #  tc  qdisc  add dev eth0 root pie limit 100 target 20ms tupdate 30ms
106       ecn
107        # tc -s qdisc show
108          qdisc pie 8036: dev eth0 root refcnt 2 limit 100p target 20.0ms tup‐
109       date 32.0ms alpha 2 beta 20 ecn
110           Sent 6591724 bytes 4442 pkt (dropped 27, overlimits 0 requeues 0)
111           backlog 18168b 12p requeues 0
112            prob 0.008845 delay 11348us
113            pkts_in 4454 overlimit 0 dropped 27 maxq 65 ecn_mark 0
114
115        #  tc  qdisc  add dev eth0 root pie limit 100 target 50ms tupdate 30ms
116       bytemode
117        # tc -s qdisc show
118          qdisc pie 8036: dev eth0 root refcnt 2 limit 100p target 50.0ms tup‐
119       date 32.0ms alpha 2 beta 20 bytemode
120           Sent 1616274 bytes 1137 pkt (dropped 0, overlimits 0 requeues 0)
121           backlog 13626b 9p requeues 0
122            prob 0.000000 delay 0us
123            pkts_in 1146 overlimit 0 dropped 0 maxq 23 ecn_mark 0
124
125

SEE ALSO

127       tc(8), tc-codel(8) tc-red(8)
128
129

SOURCES

131        o RFC 8033: https://tools.ietf.org/html/rfc8033
132
133

AUTHORS

135       PIE  was  implemented by Vijay Subramanian and Mythili Prabhu, also the
136       authors of this man page. Please report bugs  and  corrections  to  the
137       Linux networking development mailing list at <netdev@vger.kernel.org>.
138
139
140
141iproute2                        16 January 2014                         PIE(8)
Impressum