Fun with QoS in AP mode.
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
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
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
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 VOMPDUs 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
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
Quoted 6 lines · Cyril Segretain
Hello,
I have the same issue but it's with Video streaming, all the frames are inBest_EffortAccess 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
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
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
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?
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