Author: adrian
Date: Wed May 17 19:34:36 2017
New Revision: 318413
URL: https://svnweb.freebsd.org/changeset/base/318413

Log:
  [net80211] initial VHT radiotap implementation defines from upstream radiotap.

Modified:
  head/sys/net80211/ieee80211_radiotap.h

Modified: head/sys/net80211/ieee80211_radiotap.h
==============================================================================
--- head/sys/net80211/ieee80211_radiotap.h      Wed May 17 16:32:24 2017        
(r318412)
+++ head/sys/net80211/ieee80211_radiotap.h      Wed May 17 19:34:36 2017        
(r318413)
@@ -178,6 +178,30 @@ struct ieee80211_radiotap_header {
  *      finally the maximum regulatory transmit power cap in .5 dBm
  *      units.  This property supersedes IEEE80211_RADIOTAP_CHANNEL
  *      and only one of the two should be present.
+ * IEEE80211_RADIOTAP_RX_FLAGS          guint16       bitmap
+ *
+ *     Properties of received frames. See flags defined below.
+ *
+ * IEEE80211_RADIOTAP_TX_FLAGS          guint16       bitmap
+ *
+ *     Properties of transmitted frames. See flags defined below.
+ *
+ * IEEE80211_RADIOTAP_RTS_RETRIES       u8           data
+ *
+ *     Number of rts retries a transmitted frame used.
+ *
+ * IEEE80211_RADIOTAP_DATA_RETRIES      u8           data
+ *
+ *     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.
+ *
+ * IEEE80211_RADIOTAP_AMPDU_STATUS      u32, u16, u8, u8        unitlesss
+ *
+ *      Contains the AMPDU information for the subframe.
  */
 enum ieee80211_radiotap_type {
        IEEE80211_RADIOTAP_TSFT = 0,
@@ -206,6 +230,7 @@ enum ieee80211_radiotap_type {
        IEEE80211_RADIOTAP_XCHANNEL = 18,
        IEEE80211_RADIOTAP_MCS = 19,
        IEEE80211_RADIOTAP_AMPDU_STATUS = 20,
+       IEEE80211_RADIOTAP_VHT = 21,
 
         IEEE80211_RADIOTAP_RADIOTAP_NAMESPACE = 29,
        IEEE80211_RADIOTAP_VENDOREXT = 30,
@@ -250,4 +275,95 @@ enum ieee80211_radiotap_type {
 #define        IEEE80211_RADIOTAP_F_BADFCS     0x40    /* does not pass FCS 
check */
 #define        IEEE80211_RADIOTAP_F_SHORTGI    0x80    /* HT short GI */
 
+/* For IEEE80211_RADIOTAP_RX_FLAGS */
+#define        IEEE80211_RADIOTAP_F_RX_BADPLCP 0x0002  /* bad PLCP */
+
+/* For IEEE80211_RADIOTAP_TX_FLAGS */
+#define        IEEE80211_RADIOTAP_F_TX_FAIL    0x0001  /* failed due to 
excessive
+                                                * retries */
+#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_HAVE_STBC        0x20
+#define        IEEE80211_RADIOTAP_MCS_HAVE_NESS        0x40
+#define        IEEE80211_RADIOTAP_MCS_NESS_BIT1        0x80
+
+#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
+#define        IEEE80211_RADIOTAP_MCS_STBC_MASK        0x60
+#define        IEEE80211_RADIOTAP_MCS_STBC_SHIFT       5
+#define            IEEE80211_RADIOTAP_MCS_STBC_1       1
+#define            IEEE80211_RADIOTAP_MCS_STBC_2       2
+#define            IEEE80211_RADIOTAP_MCS_STBC_3       3
+#define        IEEE80211_RADIOTAP_MCS_NESS_BIT0        0x80
+
+/* For IEEE80211_RADIOTAP_AMPDU_STATUS */
+#define        IEEE80211_RADIOTAP_AMPDU_REPORT_ZEROLEN         0x0001
+#define        IEEE80211_RADIOTAP_AMPDU_IS_ZEROLEN             0x0002
+#define        IEEE80211_RADIOTAP_AMPDU_LAST_KNOWN             0x0004
+#define        IEEE80211_RADIOTAP_AMPDU_IS_LAST                0x0008
+#define        IEEE80211_RADIOTAP_AMPDU_DELIM_CRC_ERR          0x0010
+#define        IEEE80211_RADIOTAP_AMPDU_DELIM_CRC_KNOWN        0x0020
+
+/* For IEEE80211_RADIOTAP_VHT */
+#define        IEEE80211_RADIOTAP_VHT_HAVE_STBC        0x0001
+#define        IEEE80211_RADIOTAP_VHT_HAVE_TXOP_PS     0x0002
+#define        IEEE80211_RADIOTAP_VHT_HAVE_GI          0x0004
+#define        IEEE80211_RADIOTAP_VHT_HAVE_SGI_NSYM_DA 0x0008
+#define        IEEE80211_RADIOTAP_VHT_HAVE_LDPC_EXTRA  0x0010
+#define        IEEE80211_RADIOTAP_VHT_HAVE_BF          0x0020
+#define        IEEE80211_RADIOTAP_VHT_HAVE_BW          0x0040
+#define        IEEE80211_RADIOTAP_VHT_HAVE_GID         0x0080
+#define        IEEE80211_RADIOTAP_VHT_HAVE_PAID        0x0100
+#define        IEEE80211_RADIOTAP_VHT_STBC             0x01
+#define        IEEE80211_RADIOTAP_VHT_TXOP_PS          0x02
+#define        IEEE80211_RADIOTAP_VHT_SGI              0x04
+#define        IEEE80211_RADIOTAP_VHT_SGI_NSYM_DA      0x08
+#define        IEEE80211_RADIOTAP_VHT_LDPC_EXTRA       0x10
+#define        IEEE80211_RADIOTAP_VHT_BF               0x20
+#define        IEEE80211_RADIOTAP_VHT_NSS              0x0f
+#define        IEEE80211_RADIOTAP_VHT_MCS              0xf0
+#define        IEEE80211_RADIOTAP_VHT_CODING_LDPC      0x01
+
+#define        IEEE80211_RADIOTAP_VHT_BW_MASK          0x1f
+#define        IEEE80211_RADIOTAP_VHT_BW_20            
IEEE80211_RADIOTAP_MCS_BW_20
+#define        IEEE80211_RADIOTAP_VHT_BW_40            
IEEE80211_RADIOTAP_MCS_BW_40
+#define        IEEE80211_RADIOTAP_VHT_BW_20L           
IEEE80211_RADIOTAP_MCS_BW_20L
+#define        IEEE80211_RADIOTAP_VHT_BW_20U           
IEEE80211_RADIOTAP_MCS_BW_20U
+#define        IEEE80211_RADIOTAP_VHT_BW_80            4
+#define        IEEE80211_RADIOTAP_VHT_BW_40L           5
+#define        IEEE80211_RADIOTAP_VHT_BW_40U           6
+#define        IEEE80211_RADIOTAP_VHT_BW_20LL          7
+#define        IEEE80211_RADIOTAP_VHT_BW_20LU          8
+#define        IEEE80211_RADIOTAP_VHT_BW_20UL          9
+#define        IEEE80211_RADIOTAP_VHT_BW_20UU          10
+#define        IEEE80211_RADIOTAP_VHT_BW_160           11
+#define        IEEE80211_RADIOTAP_VHT_BW_80L           12
+#define        IEEE80211_RADIOTAP_VHT_BW_80U           13
+#define        IEEE80211_RADIOTAP_VHT_BW_40LL          14
+#define        IEEE80211_RADIOTAP_VHT_BW_40LU          15
+#define        IEEE80211_RADIOTAP_VHT_BW_40UL          16
+#define        IEEE80211_RADIOTAP_VHT_BW_40UU          17
+#define        IEEE80211_RADIOTAP_VHT_BW_20LLL         18
+#define        IEEE80211_RADIOTAP_VHT_BW_20LLU         19
+#define        IEEE80211_RADIOTAP_VHT_BW_20LUL         20
+#define        IEEE80211_RADIOTAP_VHT_BW_20LUU         21
+#define        IEEE80211_RADIOTAP_VHT_BW_20ULL         22
+#define        IEEE80211_RADIOTAP_VHT_BW_20ULU         23
+#define        IEEE80211_RADIOTAP_VHT_BW_20UUL         24
+#define        IEEE80211_RADIOTAP_VHT_BW_20UUU         25
+
 #endif /* !_NET80211_IEEE80211_RADIOTAP_H_ */
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to