]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - include/net/ieee80211_radiotap.h
mac80211: add MCS information to radiotap
[karo-tx-linux.git] / include / net / ieee80211_radiotap.h
index af49f8ab7f8166de6c7b135e6296968ed094e0d1..b0be5fb9de19675ef765ec9e69ecde771b62a15b 100644 (file)
@@ -178,6 +178,11 @@ struct ieee80211_radiotap_header {
  *
  *     Number of unicast retries a transmitted frame used.
  *
+ * IEEE80211_RADIOTAP_MCS      u8, u8, u8              unitless
+ *
+ *     Contains a bitmap of known fields/flags, the flags, and
+ *     the MCS index.
+ *
  */
 enum ieee80211_radiotap_type {
        IEEE80211_RADIOTAP_TSFT = 0,
@@ -199,6 +204,8 @@ enum ieee80211_radiotap_type {
        IEEE80211_RADIOTAP_RTS_RETRIES = 16,
        IEEE80211_RADIOTAP_DATA_RETRIES = 17,
 
+       IEEE80211_RADIOTAP_MCS = 19,
+
        /* valid in every it_present bitmap, even vendor namespaces */
        IEEE80211_RADIOTAP_RADIOTAP_NAMESPACE = 29,
        IEEE80211_RADIOTAP_VENDOR_NAMESPACE = 30,
@@ -245,6 +252,24 @@ enum ieee80211_radiotap_type {
 #define IEEE80211_RADIOTAP_F_TX_CTS    0x0002  /* used cts 'protection' */
 #define IEEE80211_RADIOTAP_F_TX_RTS    0x0004  /* used rts/cts handshake */
 
+
+/* For IEEE80211_RADIOTAP_MCS */
+#define IEEE80211_RADIOTAP_MCS_HAVE_BW         0x01
+#define IEEE80211_RADIOTAP_MCS_HAVE_MCS                0x02
+#define IEEE80211_RADIOTAP_MCS_HAVE_GI         0x04
+#define IEEE80211_RADIOTAP_MCS_HAVE_FMT                0x08
+#define IEEE80211_RADIOTAP_MCS_HAVE_FEC                0x10
+
+#define IEEE80211_RADIOTAP_MCS_BW_MASK         0x03
+#define                IEEE80211_RADIOTAP_MCS_BW_20    0
+#define                IEEE80211_RADIOTAP_MCS_BW_40    1
+#define                IEEE80211_RADIOTAP_MCS_BW_20L   2
+#define                IEEE80211_RADIOTAP_MCS_BW_20U   3
+#define IEEE80211_RADIOTAP_MCS_SGI             0x04
+#define IEEE80211_RADIOTAP_MCS_FMT_GF          0x08
+#define IEEE80211_RADIOTAP_MCS_FEC_LDPC                0x10
+
+
 /* Ugly macro to convert literal channel numbers into their mhz equivalents
  * There are certianly some conditions that will break this (like feeding it '30')
  * but they shouldn't arise since nothing talks on channel 30. */