Skip to contentSkip to conversation

Fun with QoS in AP mode.

DISCUSSION Ben Greear 3 participants 10 messages May 8, 2013 – May 9, 2013 1 message not in the archive

lore
Share & tools
lore

Ben Greear

author
#0 lore raw

We were doing some testing with ToS/QoS in some VOIP streams today.

The mappings on the station machine work fine, but on the AP, the packets always go to the BE queue. Both systems are 3.9.0+ ath9k, recent hostapd, supplicant, etc.

The VOIP call traffic is going station to station, so the AP is just turning the packets around..

Any ideas where to go poking?

Thanks,
Ben

Signature · 2 lines
Ben Greear <[email protected]>
Candela Technologies Inc  http://www.candelatech.com
#1 lore raw
Quoted 5 lines · Ben Greear

We were doing some testing with ToS/QoS in some VOIP streams today.

The mappings on the station machine work fine, but on the AP, the packets always go to the BE queue. Both systems are 3.9.0+ ath9k, recent hostapd, supplicant, etc.

Is the AP running ath9k ?

Sujith

author
#2 lore raw
Quoted 8 lines · Sujith Manoharan
Quoted 5 lines · Ben Greear

We were doing some testing with ToS/QoS in some VOIP streams today.

The mappings on the station machine work fine, but on the AP, the packets always go to the BE queue. Both systems are 3.9.0+ ath9k, recent hostapd, supplicant, etc.

Is the AP running ath9k ?

Yes, both AP and Station machine are ath9k, 3.9.0+, etc....

Basically identicaly hardware and software loads..just one is acting as AP and one as station(s) in this scenario.

Ben

Quoted 3 lines

Sujith

Signature · 2 lines
Ben Greear <[email protected]>
Candela Technologies Inc  http://www.candelatech.com
#3 lore raw
Quoted 4 lines · Ben Greear

Yes, both AP and Station machine are ath9k, 3.9.0+, etc....

Basically identicaly hardware and software loads..just one is acting as AP and one as station(s) in this scenario.

Works okay here.

STA1 <-> AP <-> STA2 (ath9k stations, ath9k AP running OpenWrt trunk).

Voice traffic from STA1 to STA2 and in the other direction are marked as VO in the AP.

root@OpenWrt:/# cat /sys/kernel/debug/ieee80211/phy1/ath9k/xmit 
                            BE         BK        VI        VO
MPDUs Queued:              411          0         0   1780727
MPDUs Completed:           411          0         0   1780659
MPDUs XRetried:              0          0         0         2
Aggregates:             111093          0         0         0
AMPDUs Queued HW:        21843          0         0         0
AMPDUs Queued SW:      2297530          0         0         0
AMPDUs Completed:      2319373          0         0         0
AMPDUs Retried:          28995          0         0         0
AMPDUs XRetried:             0          0         0         0
TXERR Filtered:              0          0         0       217
FIFO Underrun:               0          0         0         0
TXOP Exceeded:               0          0         0         0
TXTIMER Expiry:              0          0         0         0
DESC CFG Error:              0          0         0         0
DATA Underrun:               0          0         0         0
DELIM Underrun:              0          0         0         0
TX-Pkts-All:           2319784          0         0   1780661
TX-Bytes-All:        455830482          0         02734843421
HW-put-tx-buf:          153471          0         0    263350
HW-tx-start:                 0          0         0         0
HW-tx-proc-desc:        153681          0         0   1780661
TX-Failed:                   0          0         0         0

Sujith

author
#4 lore raw
Quoted 9 lines · Sujith Manoharan
Quoted 4 lines · Ben Greear

Yes, both AP and Station machine are ath9k, 3.9.0+, etc....

Basically identicaly hardware and software loads..just one is acting as AP and one as station(s) in this scenario.

Works okay here.

STA1 <-> AP <-> STA2 (ath9k stations, ath9k AP running OpenWrt trunk).

We're running Fedora 17..maybe we have to configure some more routing/QoS logic to enable the feature on the AP side...

Thanks,
Ben

Signature · 2 lines
Ben Greear <[email protected]>
Candela Technologies Inc  http://www.candelatech.com

A message that is not in the archive (sent off-list or not yet received): CAJu560hVBcdJ67uNprj0TOY6rWNd-iT8f7QNaE64=ENz91yj6w@mail.gmail.com

author
#6 lore raw
Quoted 6 lines · Cyril Segretain

Hello,
I have the same issue but it's with Video streaming, all the frames are in Best_Effort Access Category.
I work with ath9k driver and hostapd for the AP.
STA1 <- - - - > AP <--------> Server
Same software and hardware for STA and AP, WMM enabled in hostapd, hardware support WMM, I don't know where is the problem... If you have any idea.

I suspect we need to set up rules with 'tc' and maybe iptables.

I'm not having any luck finding any examples out on the web, but surely the info is somewhere w/out having to fully understand 'tc'.

Thanks,
Ben

Signature · 2 lines
Ben Greear <[email protected]>
Candela Technologies Inc  http://www.candelatech.com
#7 lore raw
Quoted 4 lines · Ben Greear

I suspect we need to set up rules with 'tc' and maybe iptables.

I'm not having any luck finding any examples out on the web, but surely the info is somewhere w/out having to fully understand 'tc'.

DSCP can be used...

Something like "iptables -t mangle -A OUTPUT -p tcp --dport 5005 -j DSCP --set-dscp-class "CS6"" (Change the class for other priorities).

Sujith

author
#8 lore raw
Quoted 10 lines · Sujith Manoharan
Quoted 4 lines · Ben Greear

I suspect we need to set up rules with 'tc' and maybe iptables.

I'm not having any luck finding any examples out on the web, but surely the info is somewhere w/out having to fully understand 'tc'.

DSCP can be used...

Something like "iptables -t mangle -A OUTPUT -p tcp --dport 5005 -j DSCP --set-dscp-class "CS6"" (Change the class for other priorities).

In my case, I'd like to match on the ToS set in the IP headers.

Basically, just map ToS 192 to VO, for instance.

Thanks,
Ben

Quoted 3 lines

Sujith

Signature · 2 lines
Ben Greear <[email protected]>
Candela Technologies Inc  http://www.candelatech.com
#9 lore raw
Quoted 13 lines · Ben Greear
Quoted 11 lines · Sujith Manoharan
Quoted 5 lines · Ben Greear

I suspect we need to set up rules with 'tc' and maybe iptables.

I'm not having any luck finding any examples out on the web, but surely the info is somewhere w/out having to fully understand 'tc'.

DSCP can be used...

Quoted 7 lines
Quoted 2 lines

Something like "iptables -t mangle -A OUTPUT -p tcp --dport 5005 -j DSCP --set-dscp-class "CS6"" (Change the class for other priorities).

In my case, I'd like to match on the ToS set in the IP headers.

Basically, just map ToS 192 to VO, for instance.

Talking about rules, Are you able to see the ToS marked in the IP header in the sniffer and not in the 802.11 header? Then we can concentrate on marking the packet (or) mapping in the driver?

author
#10 lore raw
Quoted 18 lines · Krishna Chaitanya
Quoted 17 lines · Ben Greear
Quoted 13 lines · Sujith Manoharan
Quoted 5 lines · Ben Greear

I suspect we need to set up rules with 'tc' and maybe iptables.

I'm not having any luck finding any examples out on the web, but surely the info is somewhere w/out having to fully understand 'tc'.

DSCP can be used...

Something like "iptables -t mangle -A OUTPUT -p tcp --dport 5005 -j DSCP --set-dscp-class "CS6"" (Change the class for other priorities).

Quoted 8 lines
Quoted 3 lines

In my case, I'd like to match on the ToS set in the IP headers.

Basically, just map ToS 192 to VO, for instance.

Talking about rules, Are you able to see the ToS marked in the IP header in the sniffer and not in the 802.11 header? Then we can concentrate on marking the packet (or) mapping in the driver?

Ahh, in my case, I introduced the bug in my code trying to fix a kernel splat when using pktgen to drive packets against wifi interfaces.

When I remove that, then the AP uses queues as expected. I'm going to have to make the pktgen hack a bit better it seems.

With this in mind, other folks that want QoS working on their APs probably just needs to somehow mangle the ToS on their packets to get it automatically working. Hopefully no 'tc' or similar commands would be needed.

Thanks,
Ben

Signature · 2 lines
Ben Greear <[email protected]>
Candela Technologies Inc  http://www.candelatech.com