aboutsummaryrefslogtreecommitdiffstats
path: root/ieee80211.h
diff options
context:
space:
mode:
authorJonathan McCrohan <jmccrohan@gmail.com>2016-01-30 17:08:40 +0000
committerJonathan McCrohan <jmccrohan@gmail.com>2016-01-30 17:08:40 +0000
commit947da597663e60b0a214d96bfcadc0cd042a49ff (patch)
treef4d3df7b9f3e41ee4beed2e049d9b52031404b8e /ieee80211.h
parentcec92f1a82b9f29ec16a4c03c37487c7cb019acf (diff)
parent0b0aac6ce21bcb38d7e03dc2b3ff419861476a24 (diff)
downloadwavemon-947da597663e60b0a214d96bfcadc0cd042a49ff.tar.gz
Merge tag 'upstream/0.8.0'
Upstream version 0.8.0
Diffstat (limited to 'ieee80211.h')
-rw-r--r--ieee80211.h61
1 files changed, 61 insertions, 0 deletions
diff --git a/ieee80211.h b/ieee80211.h
new file mode 100644
index 0000000..8745608
--- /dev/null
+++ b/ieee80211.h
@@ -0,0 +1,61 @@
+#ifndef __IEEE80211
+#define __IEEE80211
+
+/* 802.11n HT capability AMPDU settings (for ampdu_params_info) */
+#define IEEE80211_HT_AMPDU_PARM_FACTOR 0x03
+#define IEEE80211_HT_AMPDU_PARM_DENSITY 0x1C
+
+#define IEEE80211_HT_CAP_SUP_WIDTH_20_40 0x0002
+#define IEEE80211_HT_CAP_SGI_40 0x0040
+#define IEEE80211_HT_CAP_MAX_AMSDU 0x0800
+
+#define IEEE80211_HT_MCS_MASK_LEN 10
+
+/**
+ * struct ieee80211_mcs_info - MCS information
+ * @rx_mask: RX mask
+ * @rx_highest: highest supported RX rate. If set represents
+ * the highest supported RX data rate in units of 1 Mbps.
+ * If this field is 0 this value should not be used to
+ * consider the highest RX data rate supported.
+ * @tx_params: TX parameters
+ */
+struct ieee80211_mcs_info {
+ __u8 rx_mask[IEEE80211_HT_MCS_MASK_LEN];
+ __u16 rx_highest;
+ __u8 tx_params;
+ __u8 reserved[3];
+} __attribute__ ((packed));
+
+
+/**
+ * struct ieee80211_ht_cap - HT capabilities
+ *
+ * This structure is the "HT capabilities element" as
+ * described in 802.11n D5.0 7.3.2.57
+ */
+struct ieee80211_ht_cap {
+ __u16 cap_info;
+ __u8 ampdu_params_info;
+
+ /* 16 bytes MCS information */
+ struct ieee80211_mcs_info mcs;
+
+ __u16 extended_ht_cap_info;
+ __u32 tx_BF_cap_info;
+ __u8 antenna_selection_info;
+} __attribute__ ((packed));
+
+struct ieee80211_vht_mcs_info {
+ __u16 rx_vht_mcs;
+ __u16 rx_highest;
+ __u16 tx_vht_mcs;
+ __u16 tx_highest;
+} __attribute__ ((packed));
+
+struct ieee80211_vht_cap {
+ __u32 cap_info;
+ struct ieee80211_vht_mcs_info mcs;
+} __attribute__ ((packed));
+
+#endif /* __IEEE80211 */