On 05/31/2013 11:41 AM, Johannes Berg wrote:
On Fri, 2013-05-31 at 11:00 -0700, Ben Greear wrote:
I think it might be more that the wifi stacks have some specific
assumptions about how skb->priority maps to queues and QoS. If
they get out of sync, then the TID mappings and so forth get
confused.
What I'm saying though is that I don't see where skb->priority is even
_used_ in the wifi stack. I can see it getting set, but not used.
ieee80211_downgrade_queue
wme_downgrade_ac // sort of
ieee80211_select_queue_80211 // sort of...seems twiddling skb->priority is more of a by-product here.
cfg80211_classify8021d
Actually that makes it seem like something else should be doing packet
classification, not mac80211 in select_queue()?
Where is skb->priority actually really used in mac80211? I don't see
much?
There's a bit more in net/wireless/util.c, at least (cfg80211_classify8021d, for instance).
But that's pretty much all assignments.
cfg80211_classify8021d uses it to determine the queue in if skb->priority is
set to a special range (hard coded un-documented hack from hell, it appears).
I didn't go looking to find out where those magic values might be set.
The mac80211/wme.c uses it. Some of this is called from the drivers
(line 1916 or so of ath9k/xmit.c).
What's called there? I don't see any reason for that to use
skb->priority?
Ok, I was confused about that..but that *is* the code that pukes if you
have have mis-matched queues like you get with pktgen in upstream kernels...
Thanks,
Ben
--
Ben Greear <greearb@xxxxxxxxxxxxxxx>
Candela Technologies Inc http://www.candelatech.com
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html