Sie sind auf Seite 1von 11

http://www.linuxplumbersconf.

org/2014/ocw/sessions/2439

Minstrel-Blues"
Practical Joint Rate und Power
Control in Linux mac80211
!

Thomas Hhn
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

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

!
!
!
!

!
!
!

!
!
!

!
!

!
!
!

!
!

!
!

!
!

!
!
!
!
!

!
!
!

!
!

!
!
!
!
!

!
!
!
!
!

!
!

6
!
!

4
2

!
!

300

600

Time [sec]

900

1200

!
!
Validation and Performance Analysis

18
12
6

Time [sec]

Throughput as Function (rate,power)


sample power
@max_tp[0..3]

data

reference power
@max_tp[0..3]

rate

tx

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

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

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

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

2
3

60

4
50

total

40

udp

30
20
10
0
0

40

80

120

160

40

80

120

160

40

80

120

160

40

80

120

160

40

80

120

160

40

80

120

160

Time [s]
combined rel. MACstates (bin=1s) of all 8 Nodes
tcp
CSsensitivity:active
ani
MAC-states
links: 1234 protocol: tcp CSsensitivity: ani

ani
TCP

100%

50%

100

MAC
states

power
level
data
reference

TXL3

dwell time [s]

0%

18
100%
15
1250%
9
6
0%
3
100%
0

75%

TXL2

2ndbest

18
15 0%
12
100%
9
6
50%
3
0

50

txbusy
50%
rxbusy

idle
others
25%

TXL4

highpr

1850%
15
12
0%
9
100%
6
3
050%

0
0%
100%

BLUES=ON

TXL1

1stbest

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 link4
BLUES=ON

relative MACstates
txPower Level [dBm]

TX link4
BLUES=OFF

combined
MACstates
(bin=20s)
of all 8 Nodesprotocol:
active
1234
txpower level used
at each
sender links:
active rxsensitivity:
links: 1234 ani
protocol: tcp CSsensitivity: ani
active links: 1234
BLUES=OFF UDP
BLUES=OFF
BLUES=ON

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

20

40

60

80

100 120 140 160

Time [s]

20

40

60

Time [s]

50%
0%
100%

50%
0%

20

40

60

80

100

120

140

160

Time [s]

20

40

60

80

100

120

140

160

80

TX
RX
TX
RX
TX
RX
TX
RX
1link 1link 2link 2link 3link 3link 4link 4link

k3
=ON

ani
Blues: on

MAC
states
txbusy

MAC
states

100 120 140 160

rxbusy
idle

others
txbusy

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

1.3

39.2

20.3

19.0

29.1

8.8

1.3

57.5

13.8

43.7

50.6

12

11.7

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

A joint

Utility

Thr.1

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

Das könnte Ihnen auch gefallen