diff options
Diffstat (limited to 'net/wireless/util.c')
| -rw-r--r-- | net/wireless/util.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/net/wireless/util.c b/net/wireless/util.c index ce090c1c5e4f..3c8be6104ba4 100644 --- a/net/wireless/util.c +++ b/net/wireless/util.c | |||
| @@ -10,6 +10,7 @@ | |||
| 10 | #include <net/cfg80211.h> | 10 | #include <net/cfg80211.h> |
| 11 | #include <net/ip.h> | 11 | #include <net/ip.h> |
| 12 | #include <net/dsfield.h> | 12 | #include <net/dsfield.h> |
| 13 | #include <linux/if_vlan.h> | ||
| 13 | #include "core.h" | 14 | #include "core.h" |
| 14 | #include "rdev-ops.h" | 15 | #include "rdev-ops.h" |
| 15 | 16 | ||
| @@ -691,6 +692,7 @@ EXPORT_SYMBOL(ieee80211_amsdu_to_8023s); | |||
| 691 | unsigned int cfg80211_classify8021d(struct sk_buff *skb) | 692 | unsigned int cfg80211_classify8021d(struct sk_buff *skb) |
| 692 | { | 693 | { |
| 693 | unsigned int dscp; | 694 | unsigned int dscp; |
| 695 | unsigned char vlan_priority; | ||
| 694 | 696 | ||
| 695 | /* skb->priority values from 256->263 are magic values to | 697 | /* skb->priority values from 256->263 are magic values to |
| 696 | * directly indicate a specific 802.1d priority. This is used | 698 | * directly indicate a specific 802.1d priority. This is used |
| @@ -700,6 +702,13 @@ unsigned int cfg80211_classify8021d(struct sk_buff *skb) | |||
| 700 | if (skb->priority >= 256 && skb->priority <= 263) | 702 | if (skb->priority >= 256 && skb->priority <= 263) |
| 701 | return skb->priority - 256; | 703 | return skb->priority - 256; |
| 702 | 704 | ||
| 705 | if (vlan_tx_tag_present(skb)) { | ||
| 706 | vlan_priority = (vlan_tx_tag_get(skb) & VLAN_PRIO_MASK) | ||
| 707 | >> VLAN_PRIO_SHIFT; | ||
| 708 | if (vlan_priority > 0) | ||
| 709 | return vlan_priority; | ||
| 710 | } | ||
| 711 | |||
| 703 | switch (skb->protocol) { | 712 | switch (skb->protocol) { |
| 704 | case htons(ETH_P_IP): | 713 | case htons(ETH_P_IP): |
| 705 | dscp = ipv4_get_dsfield(ip_hdr(skb)) & 0xfc; | 714 | dscp = ipv4_get_dsfield(ip_hdr(skb)) & 0xfc; |
