aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2011-06-22 04:06:59 -0400
committerJohn W. Linville <linville@tuxdriver.com>2011-06-27 15:09:39 -0400
commit04b7dcf979d71e870683c804802e44287a802760 (patch)
tree41eed581c3e99d2de254aebe8d68e63c427aea62
parente913d468308be1cce7cc8e6e6e997d54a403ce64 (diff)
wireless: unify QoS control field definitions
Move all that mac80211 has into the generic ieee80211.h header file and use them. At the same time move them from mask+shift to just bits and rename them for consistent names. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--drivers/net/wireless/ath/carl9170/rx.c2
-rw-r--r--drivers/net/wireless/libertas_tf/main.c2
-rw-r--r--include/linux/ieee80211.h18
-rw-r--r--net/mac80211/rx.c2
-rw-r--r--net/mac80211/wme.c3
-rw-r--r--net/mac80211/wme.h5
6 files changed, 17 insertions, 15 deletions
diff --git a/drivers/net/wireless/ath/carl9170/rx.c b/drivers/net/wireless/ath/carl9170/rx.c
index ec21ea9fd8d5..dc99030ea8b6 100644
--- a/drivers/net/wireless/ath/carl9170/rx.c
+++ b/drivers/net/wireless/ath/carl9170/rx.c
@@ -472,7 +472,7 @@ static struct sk_buff *carl9170_rx_copy_data(u8 *buf, int len)
472 u8 *qc = ieee80211_get_qos_ctl(hdr); 472 u8 *qc = ieee80211_get_qos_ctl(hdr);
473 reserved += NET_IP_ALIGN; 473 reserved += NET_IP_ALIGN;
474 474
475 if (*qc & IEEE80211_QOS_CONTROL_A_MSDU_PRESENT) 475 if (*qc & IEEE80211_QOS_CTL_A_MSDU_PRESENT)
476 reserved += NET_IP_ALIGN; 476 reserved += NET_IP_ALIGN;
477 } 477 }
478 478
diff --git a/drivers/net/wireless/libertas_tf/main.c b/drivers/net/wireless/libertas_tf/main.c
index d4005081f1df..2aa4de7cad24 100644
--- a/drivers/net/wireless/libertas_tf/main.c
+++ b/drivers/net/wireless/libertas_tf/main.c
@@ -585,7 +585,7 @@ int lbtf_rx(struct lbtf_private *priv, struct sk_buff *skb)
585 need_padding ^= ieee80211_has_a4(hdr->frame_control); 585 need_padding ^= ieee80211_has_a4(hdr->frame_control);
586 need_padding ^= ieee80211_is_data_qos(hdr->frame_control) && 586 need_padding ^= ieee80211_is_data_qos(hdr->frame_control) &&
587 (*ieee80211_get_qos_ctl(hdr) & 587 (*ieee80211_get_qos_ctl(hdr) &
588 IEEE80211_QOS_CONTROL_A_MSDU_PRESENT); 588 IEEE80211_QOS_CTL_A_MSDU_PRESENT);
589 589
590 if (need_padding) { 590 if (need_padding) {
591 memmove(skb->data + 2, skb->data, skb->len); 591 memmove(skb->data + 2, skb->data, skb->len);
diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h
index bf56b6f78270..a26108e4d924 100644
--- a/include/linux/ieee80211.h
+++ b/include/linux/ieee80211.h
@@ -117,8 +117,19 @@
117#define IEEE80211_MAX_MESH_ID_LEN 32 117#define IEEE80211_MAX_MESH_ID_LEN 32
118 118
119#define IEEE80211_QOS_CTL_LEN 2 119#define IEEE80211_QOS_CTL_LEN 2
120#define IEEE80211_QOS_CTL_TID_MASK 0x000F 120/* 1d tag mask */
121#define IEEE80211_QOS_CTL_TAG1D_MASK 0x0007 121#define IEEE80211_QOS_CTL_TAG1D_MASK 0x0007
122/* TID mask */
123#define IEEE80211_QOS_CTL_TID_MASK 0x000f
124/* EOSP */
125#define IEEE80211_QOS_CTL_EOSP 0x0010
126/* ACK policy */
127#define IEEE80211_QOS_CTL_ACK_POLICY_NORMAL 0x0000
128#define IEEE80211_QOS_CTL_ACK_POLICY_NOACK 0x0020
129#define IEEE80211_QOS_CTL_ACK_POLICY_NO_EXPL 0x0040
130#define IEEE80211_QOS_CTL_ACK_POLICY_BLOCKACK 0x0060
131/* A-MSDU 802.11n */
132#define IEEE80211_QOS_CTL_A_MSDU_PRESENT 0x0080
122 133
123/* U-APSD queue for WMM IEs sent by AP */ 134/* U-APSD queue for WMM IEs sent by AP */
124#define IEEE80211_WMM_IE_AP_QOSINFO_UAPSD (1<<7) 135#define IEEE80211_WMM_IE_AP_QOSINFO_UAPSD (1<<7)
@@ -1423,9 +1434,6 @@ enum ieee80211_sa_query_action {
1423}; 1434};
1424 1435
1425 1436
1426/* A-MSDU 802.11n */
1427#define IEEE80211_QOS_CONTROL_A_MSDU_PRESENT 0x0080
1428
1429/* cipher suite selectors */ 1437/* cipher suite selectors */
1430#define WLAN_CIPHER_SUITE_USE_GROUP 0x000FAC00 1438#define WLAN_CIPHER_SUITE_USE_GROUP 0x000FAC00
1431#define WLAN_CIPHER_SUITE_WEP40 0x000FAC01 1439#define WLAN_CIPHER_SUITE_WEP40 0x000FAC01
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index 7fa8c6be7bf0..b5493ecd1e93 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -338,7 +338,7 @@ static void ieee80211_parse_qos(struct ieee80211_rx_data *rx)
338 u8 *qc = ieee80211_get_qos_ctl(hdr); 338 u8 *qc = ieee80211_get_qos_ctl(hdr);
339 /* frame has qos control */ 339 /* frame has qos control */
340 tid = *qc & IEEE80211_QOS_CTL_TID_MASK; 340 tid = *qc & IEEE80211_QOS_CTL_TID_MASK;
341 if (*qc & IEEE80211_QOS_CONTROL_A_MSDU_PRESENT) 341 if (*qc & IEEE80211_QOS_CTL_A_MSDU_PRESENT)
342 status->rx_flags |= IEEE80211_RX_AMSDU; 342 status->rx_flags |= IEEE80211_RX_AMSDU;
343 } else { 343 } else {
344 /* 344 /*
diff --git a/net/mac80211/wme.c b/net/mac80211/wme.c
index 28bc084dbfb9..7a49532f14cb 100644
--- a/net/mac80211/wme.c
+++ b/net/mac80211/wme.c
@@ -151,8 +151,7 @@ void ieee80211_set_qos_hdr(struct ieee80211_local *local, struct sk_buff *skb)
151 tid = skb->priority & IEEE80211_QOS_CTL_TAG1D_MASK; 151 tid = skb->priority & IEEE80211_QOS_CTL_TAG1D_MASK;
152 152
153 if (unlikely(local->wifi_wme_noack_test)) 153 if (unlikely(local->wifi_wme_noack_test))
154 ack_policy |= QOS_CONTROL_ACK_POLICY_NOACK << 154 ack_policy |= IEEE80211_QOS_CTL_ACK_POLICY_NOACK;
155 QOS_CONTROL_ACK_POLICY_SHIFT;
156 /* qos header is 2 bytes, second reserved */ 155 /* qos header is 2 bytes, second reserved */
157 *p++ = ack_policy | tid; 156 *p++ = ack_policy | tid;
158 *p = 0; 157 *p = 0;
diff --git a/net/mac80211/wme.h b/net/mac80211/wme.h
index 6053b1c9feee..faead6d02026 100644
--- a/net/mac80211/wme.h
+++ b/net/mac80211/wme.h
@@ -13,11 +13,6 @@
13#include <linux/netdevice.h> 13#include <linux/netdevice.h>
14#include "ieee80211_i.h" 14#include "ieee80211_i.h"
15 15
16#define QOS_CONTROL_ACK_POLICY_NORMAL 0
17#define QOS_CONTROL_ACK_POLICY_NOACK 1
18
19#define QOS_CONTROL_ACK_POLICY_SHIFT 5
20
21extern const int ieee802_1d_to_ac[8]; 16extern const int ieee802_1d_to_ac[8];
22 17
23u16 ieee80211_select_queue(struct ieee80211_sub_if_data *sdata, 18u16 ieee80211_select_queue(struct ieee80211_sub_if_data *sdata,