From b156579b1404871d97d2713c1f93c9526618e3ba Mon Sep 17 00:00:00 2001 From: =?utf8?q?Dave=20T=C3=A4ht?= Date: Thu, 22 Dec 2011 12:55:08 -0800 Subject: [PATCH] wireless: Treat IPv6 diffserv the same as IPv4 for 802.11e MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Wireless will select a different hardware queue based on the top 3 bits of the diffserv field, for ipv4. Extend that queue selection mechanism to ipv6, and make the calls orthogonal. Signed-off-by: Dave Täht Signed-off-by: John W. Linville --- net/wireless/util.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/net/wireless/util.c b/net/wireless/util.c index e77df7585004..9aa9db6c8141 100644 --- a/net/wireless/util.c +++ b/net/wireless/util.c @@ -9,6 +9,7 @@ #include #include #include +#include #include "core.h" struct ieee80211_rate * @@ -650,7 +651,10 @@ unsigned int cfg80211_classify8021d(struct sk_buff *skb) switch (skb->protocol) { case htons(ETH_P_IP): - dscp = ip_hdr(skb)->tos & 0xfc; + dscp = ipv4_get_dsfield(ip_hdr(skb)) & 0xfc; + break; + case htons(ETH_P_IPV6): + dscp = ipv6_get_dsfield(ipv6_hdr(skb)) & 0xfc; break; default: return 0; -- 2.39.5