1PIE(8) Linux PIE(8)
2
3
4
6 PIE - Proportional Integral controller-Enhanced AQM algorithm
7
9 tc qdisc ... pie [ limit PACKETS ] [ target TIME ] [ tupdate TIME ] [
10 alpha int ] [ beta int ] [ ecn | noecn ] [ bytemode | nobytemode ]
11
12
14 Proportional Integral controller-Enhanced (PIE) is a control theoretic
15 active queue management scheme. It is based on the proportional inte‐
16 gral controller but aims to control delay. The main design goals are
17 o Low latency control
18 o High link utilization
19 o Simple implementation
20 o Guaranteed stability and fast responsiveness
21
22
24 PIE is designed to control delay effectively. First, an average dequeue
25 rate is estimated based on the standing queue. The rate is used to cal‐
26 culate the current delay. Then, on a periodic basis, the delay is used
27 to calculate the dropping probabilty. Finally, on arrival, a packet is
28 dropped (or marked) based on this probability.
29
30 PIE makes adjustments to the probability based on the trend of the
31 delay i.e. whether it is going up or down.The delay converges quickly
32 to the target value specified.
33
34 alpha and beta are statically chosen parameters chosen to control the
35 drop probability growth and are determined through control theoretic
36 approaches. alpha determines how the deviation between the current and
37 target latency changes probability. beta exerts additional adjustments
38 depending on the latency trend.
39
40 The drop probabilty is used to mark packets in ecn mode. However, as in
41 RED, beyond 10% packets are dropped based on this probability. The
42 bytemode is used to drop packets proportional to the packet size.
43
44 Additional details can be found in the paper cited below.
45
46
48 limit
49 limit on the queue size in packets. Incoming packets are dropped when
50 this limit is reached. Default is 1000 packets.
51
52
53 target
54 is the expected queue delay. The default target delay is 20ms.
55
56
57 tupdate
58 is the frequency at which the system drop probability is calculated.
59 The default is 30ms.
60
61
62 alpha
63 beta
64 alpha and beta are parameters chosen to control the drop probability.
65 These should be in the range between 0 and 32.
66
67
68 ecn | noecn
69 is used to mark packets instead of dropping ecn to turn on ecn mode,
70 noecn to turn off ecn mode. By default, ecn is turned off.
71
72
73 bytemode | nobytemode
74 is used to scale drop probability proportional to packet size bytemode
75 to turn on bytemode, nobytemode to turn off bytemode. By default, byte‐
76 mode is turned off.
77
78
80 # tc qdisc add dev eth0 root pie
81 # tc -s qdisc show
82 qdisc pie 8034: dev eth0 root refcnt 2 limit 200p target 19000us
83 tupdate 29000us alpha 2 beta 20
84 Sent 7443524 bytes 7204 pkt (dropped 900, overlimits 0 requeues 0)
85 backlog 38998b 37p requeues 0
86 prob 0.123384 delay 25000us avg_dq_rate 1464840
87 pkts_in 7241 overlimit 900 dropped 0 maxq 186 ecn_mark 0
88
89 # tc qdisc add dev eth0 root pie limit 100 target 20ms tupdate 30ms
90 ecn
91 # tc -s qdisc show
92 qdisc pie 8036: dev eth0 root refcnt 2 limit 200p target 19000 tup‐
93 date 29000 alpha 2 beta 20 ecn
94 Sent 2491922 bytes 2507 pkt (dropped 214, overlimits 0 requeues 0)
95 backlog 33728b 32p requeues 0
96 prob 0.102262 delay 24000us avg_dq_rate 1464840
97 pkts_in 2468 overlimit 214 dropped 0 maxq 192 ecn_mark 71
98
99
100 # tc qdisc add dev eth0 root pie limit 100 target 50ms tupdate 30ms
101 bytemode
102 # tc -s qdisc show
103 qdisc pie 8036: dev eth0 root refcnt 2 limit 200p target 19000 tup‐
104 date 29000 alpha 2 beta 20 ecn
105 Sent 2491922 bytes 2507 pkt (dropped 214, overlimits 0 requeues 0)
106 backlog 33728b 32p requeues 0
107 prob 0.102262 delay 24000us avg_dq_rate 1464840
108 pkts_in 2468 overlimit 214 dropped 0 maxq 192 ecn_mark 71
109
110
111
113 tc(8), tc-codel(8) tc-red(8)
114
115
117 o IETF draft submission is at http://tools.ietf.org/html/draft-pan-
118 tsvwg-pie-00
119 o IEEE Conference on High Performance Switching and Routing 2013 :
120 "PIE: A Lightweight Control Scheme to Address the Bufferbloat Problem"
121
122
124 PIE was implemented by Vijay Subramanian and Mythili Prabhu, also the
125 authors of this man page. Please report bugs and corrections to the
126 Linux networking development mailing list at <netdev@vger.kernel.org>.
127
128
129
130iproute2 16 January 2014 PIE(8)