slides - Linux Plumbers Conference

„Minstrel-Blues"
Practical Joint Rate und Power
Control in Linux mac80211
!
Thomas Hühn
TU-Berlin
Problem
Wireless network
capacity is bounded
by interference
Can we increase the efficiency of WiFi spectrum usage ?
How to manage interference to increase spatial reuse ?
Can we fulfill regulatory TPC requirements (802.11h) ?
2
2
WiFi Resource Allocation
Link scheduling
Rate control
IEEE 802.11
@MAC layer
cross-layer ?
!
!
Carrier sense control
Power control (TPC)
@physical layer
Status quo:
todays APs use a static (max) power level to all STAs
3
Working parts of Minstrel-Blues
• Linux mac80211 extension to enable power level
annotations in sample packets and rate-power table
!
!
• Design and implementation of
!
decentralized joint power &
rate control per packet: “Minstrel-Blues”
• working with Minstrel & ath5k & ath9k
• global Ack Power control
• new mac80211 driver flags (TPC per packet, per mrr, ACK)
!
12
Throughput [MBit/s]
Throughput [MBit/s]
• Weight your interference preference with a utility function
10
8
6
4
2
0
0
300
600
Time [sec]
36
30
SNR [dB]
!
24
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
900
1200
12
!
!
!
!
!
!
10
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
8
!
6
!
!
4
2
!
0
!
!
0
300
600
Time [sec]
900
1200
!
!
• Validation and Performance Analysis
!
18
12
6
Time [sec]
4
Throughput as Function (rate,power)
sample power
@max_tp[0..3]
data
reference power
@max_tp[0..3]
rate
tx
5
er
w
po
new rate-power-table
tx
path
sk_buff
Minstrel-Blues
data
sk_buff->cb
48-Byte
statistics
data
reference
•rate
• rates[4] •retry
•power
• vif
• hw_keys
data
sampling
fill sk_buff->cb with
ieee80211_tx_info->control
sample
update
look-up
mac80211
fail
fail
fail
o
data
rx
path
d
per neighbor
tx
ieee80211_ops.tx
Rate-Power-Table
pos
1
2
3
4
rate … power
24
12
6
6
13
9
1
1
ieee80211_sta_rates
Beacons
compose tx-control
descriptor
- ath5k
- ath9k
failed
failed
failed
ok
fill sk_buff->cb with
ieee80211_tx_info->tx-status
rx
ack
PCI/PCIe via
dma access
process
rx-status
descriptor
SoftMAC
drivers
(ath5k)
rx
data
Atheros WiFi chip
tx
hardware
802.11 a/g/n
6
Performance with
4 active indoor links
16-5
16. floor
16-1
link-2
source
link-1
16-4
16-3
sink
16-2
17-4
17. floor
link-4
17-3
link-3
17-1
17-2
7
Throughput with
links:1, 2, 3, 4
activeactive
links: 1234
ani
Blues: off
high
Blues: off
high
Blues: on
low
Blues: off
low
Blues: on
60
50
40
tcp
Throughput [MBit/s]
30
20
link
10
1
0
2
3
60
4
50
total
40
udp
30
20
10
0
0
40
80
120
160
0
40
80
120
160
0
40
80
120
160
0
40
80
120
160
0
40
80
120
160
0
40
80
120
160
Time [s]
combined rel. MAC−states (bin=1s) of all 8 Nodes
tcp
CS−sensitivity:active
ani
MAC-states
links: 1234 protocol: tcp CS−sensitivity: ani
ani
TCP
100%
50%
100
MAC
states
power
level
data
reference
TX−L3
dwell time [s]
0%
18
100%
15
1250%
9
6
0%
3
100%
0
75%
TX−L2
2nd−best
18
15 0%
12
100%
9
6
50%
3
0
50
tx−busy
50%
rx−busy
idle
others
25%
TX−L4
high−pr
1850%
15
12
0%
9
100%
6
3
050%
0
0%
100%
BLUES=ON
TX−L1
1st−best
0 120 0 40 80 120 0 40 80 120
BLUES=ON
BLUES=OFF
100%
18
1550%
12
9 0%
6
100%
3
0
rel. dwell time [%]
TX link−4
BLUES=ON
relative MAC−states
tx−Power Level [dBm]
TX link−4
BLUES=OFF
combined
MAC−states
(bin=20s)
of all 8 Nodesprotocol:
active
1234
tx−power level used
at each
sender links:
active rx−sensitivity:
links: 1234 ani
protocol: tcp CS−sensitivity: ani
active links: 1234
BLUES=OFF UDP
BLUES=OFF
BLUES=ON
0
20
40
60
0%
100 40
120 60
140 80
160 1000 120201404016060
080 20
Time [s]
80 0 10020 12040 14060 16080
100 120 140 160
0
20
40
60
80
100 120 140 160
Time [s]
0
20
40
60
Time [s]
50%
0%
100%
8
50%
0%
0
20
40
60
80
100
120
140
160
0
Time [s]
20
40
60
80
100
120
140
160
80
TX
RX
TX
RX
TX
RX
TX
RX
1−link 1−link 2−link 2−link 3−link 3−link 4−link 4−link
k−3
=ON
ani
Blues: on
MAC
states
tx−busy
MAC
states
100 120 140 160
rx−busy
idle
others
tx−busy
rx−busy
idle
others
Joint Power and Rate Control Algorithm: MINSTREL-BLUES
Are you egoistic or altruistic ?
Table 5.1: Impact of different weighting factors w to the joint power and ra
[MBits]
Power
[mW]
Power
[dBm]
Benefit
[%]
Cost
[%]
w=1
w=2
6
6.0
1
1.3
39.2
20.3
19.0
29.1
9
8.8
1
1.3
57.5
13.8
43.7
50.6
12
11.7
1
1.3
76.5
10.4
66.12
71.32
18
15.3
12
15.9
100.0
100.0
0.0
50.0
24
4.7
19
79.4
30.7
1631.5
-1600.0
-758.0
-
36
2.1
19
79.4
13.7
3651.5
-3600.0
-1812.0
-
48
0.0
19
79.4
0.0
0.0
0.0
0.0
54
0.0
19
79.4
0.0
0.0
0.0
0.0
Data
Rate
1
A joint
Utility
Thr.1
w
Throughput: Minstrel periodically estimates the achievable throughput per data rate based on m
probabilities.
decision
based on preference is implemented !
2
Maximum utility at a given weighting factor w is shown in bold.
my current work:
!
!
•get everything in upstream shape !!!
!
!
•Blues integration in Minstrel_HT
!
!
!
!
•since 3 weeks took a detour: enhancing Minstrel_HT
!
!
!
!
•my performance patches get sent in the next days
•Full fledged Minstrel-Blues … this year
10
Thank You !
11