mirror of
https://github.com/torvalds/linux.git
synced 2024-11-22 20:22:09 +00:00
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>
This commit is contained in:
parent
e913d46830
commit
04b7dcf979
@ -472,7 +472,7 @@ static struct sk_buff *carl9170_rx_copy_data(u8 *buf, int len)
|
|||||||
u8 *qc = ieee80211_get_qos_ctl(hdr);
|
u8 *qc = ieee80211_get_qos_ctl(hdr);
|
||||||
reserved += NET_IP_ALIGN;
|
reserved += NET_IP_ALIGN;
|
||||||
|
|
||||||
if (*qc & IEEE80211_QOS_CONTROL_A_MSDU_PRESENT)
|
if (*qc & IEEE80211_QOS_CTL_A_MSDU_PRESENT)
|
||||||
reserved += NET_IP_ALIGN;
|
reserved += NET_IP_ALIGN;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -585,7 +585,7 @@ int lbtf_rx(struct lbtf_private *priv, struct sk_buff *skb)
|
|||||||
need_padding ^= ieee80211_has_a4(hdr->frame_control);
|
need_padding ^= ieee80211_has_a4(hdr->frame_control);
|
||||||
need_padding ^= ieee80211_is_data_qos(hdr->frame_control) &&
|
need_padding ^= ieee80211_is_data_qos(hdr->frame_control) &&
|
||||||
(*ieee80211_get_qos_ctl(hdr) &
|
(*ieee80211_get_qos_ctl(hdr) &
|
||||||
IEEE80211_QOS_CONTROL_A_MSDU_PRESENT);
|
IEEE80211_QOS_CTL_A_MSDU_PRESENT);
|
||||||
|
|
||||||
if (need_padding) {
|
if (need_padding) {
|
||||||
memmove(skb->data + 2, skb->data, skb->len);
|
memmove(skb->data + 2, skb->data, skb->len);
|
||||||
|
@ -117,8 +117,19 @@
|
|||||||
#define IEEE80211_MAX_MESH_ID_LEN 32
|
#define IEEE80211_MAX_MESH_ID_LEN 32
|
||||||
|
|
||||||
#define IEEE80211_QOS_CTL_LEN 2
|
#define IEEE80211_QOS_CTL_LEN 2
|
||||||
#define IEEE80211_QOS_CTL_TID_MASK 0x000F
|
/* 1d tag mask */
|
||||||
#define IEEE80211_QOS_CTL_TAG1D_MASK 0x0007
|
#define IEEE80211_QOS_CTL_TAG1D_MASK 0x0007
|
||||||
|
/* TID mask */
|
||||||
|
#define IEEE80211_QOS_CTL_TID_MASK 0x000f
|
||||||
|
/* EOSP */
|
||||||
|
#define IEEE80211_QOS_CTL_EOSP 0x0010
|
||||||
|
/* ACK policy */
|
||||||
|
#define IEEE80211_QOS_CTL_ACK_POLICY_NORMAL 0x0000
|
||||||
|
#define IEEE80211_QOS_CTL_ACK_POLICY_NOACK 0x0020
|
||||||
|
#define IEEE80211_QOS_CTL_ACK_POLICY_NO_EXPL 0x0040
|
||||||
|
#define IEEE80211_QOS_CTL_ACK_POLICY_BLOCKACK 0x0060
|
||||||
|
/* A-MSDU 802.11n */
|
||||||
|
#define IEEE80211_QOS_CTL_A_MSDU_PRESENT 0x0080
|
||||||
|
|
||||||
/* U-APSD queue for WMM IEs sent by AP */
|
/* U-APSD queue for WMM IEs sent by AP */
|
||||||
#define IEEE80211_WMM_IE_AP_QOSINFO_UAPSD (1<<7)
|
#define IEEE80211_WMM_IE_AP_QOSINFO_UAPSD (1<<7)
|
||||||
@ -1423,9 +1434,6 @@ enum ieee80211_sa_query_action {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/* A-MSDU 802.11n */
|
|
||||||
#define IEEE80211_QOS_CONTROL_A_MSDU_PRESENT 0x0080
|
|
||||||
|
|
||||||
/* cipher suite selectors */
|
/* cipher suite selectors */
|
||||||
#define WLAN_CIPHER_SUITE_USE_GROUP 0x000FAC00
|
#define WLAN_CIPHER_SUITE_USE_GROUP 0x000FAC00
|
||||||
#define WLAN_CIPHER_SUITE_WEP40 0x000FAC01
|
#define WLAN_CIPHER_SUITE_WEP40 0x000FAC01
|
||||||
|
@ -338,7 +338,7 @@ static void ieee80211_parse_qos(struct ieee80211_rx_data *rx)
|
|||||||
u8 *qc = ieee80211_get_qos_ctl(hdr);
|
u8 *qc = ieee80211_get_qos_ctl(hdr);
|
||||||
/* frame has qos control */
|
/* frame has qos control */
|
||||||
tid = *qc & IEEE80211_QOS_CTL_TID_MASK;
|
tid = *qc & IEEE80211_QOS_CTL_TID_MASK;
|
||||||
if (*qc & IEEE80211_QOS_CONTROL_A_MSDU_PRESENT)
|
if (*qc & IEEE80211_QOS_CTL_A_MSDU_PRESENT)
|
||||||
status->rx_flags |= IEEE80211_RX_AMSDU;
|
status->rx_flags |= IEEE80211_RX_AMSDU;
|
||||||
} else {
|
} else {
|
||||||
/*
|
/*
|
||||||
|
@ -151,8 +151,7 @@ void ieee80211_set_qos_hdr(struct ieee80211_local *local, struct sk_buff *skb)
|
|||||||
tid = skb->priority & IEEE80211_QOS_CTL_TAG1D_MASK;
|
tid = skb->priority & IEEE80211_QOS_CTL_TAG1D_MASK;
|
||||||
|
|
||||||
if (unlikely(local->wifi_wme_noack_test))
|
if (unlikely(local->wifi_wme_noack_test))
|
||||||
ack_policy |= QOS_CONTROL_ACK_POLICY_NOACK <<
|
ack_policy |= IEEE80211_QOS_CTL_ACK_POLICY_NOACK;
|
||||||
QOS_CONTROL_ACK_POLICY_SHIFT;
|
|
||||||
/* qos header is 2 bytes, second reserved */
|
/* qos header is 2 bytes, second reserved */
|
||||||
*p++ = ack_policy | tid;
|
*p++ = ack_policy | tid;
|
||||||
*p = 0;
|
*p = 0;
|
||||||
|
@ -13,11 +13,6 @@
|
|||||||
#include <linux/netdevice.h>
|
#include <linux/netdevice.h>
|
||||||
#include "ieee80211_i.h"
|
#include "ieee80211_i.h"
|
||||||
|
|
||||||
#define QOS_CONTROL_ACK_POLICY_NORMAL 0
|
|
||||||
#define QOS_CONTROL_ACK_POLICY_NOACK 1
|
|
||||||
|
|
||||||
#define QOS_CONTROL_ACK_POLICY_SHIFT 5
|
|
||||||
|
|
||||||
extern const int ieee802_1d_to_ac[8];
|
extern const int ieee802_1d_to_ac[8];
|
||||||
|
|
||||||
u16 ieee80211_select_queue(struct ieee80211_sub_if_data *sdata,
|
u16 ieee80211_select_queue(struct ieee80211_sub_if_data *sdata,
|
||||||
|
Loading…
Reference in New Issue
Block a user