svn commit: r318413 - head/sys/net80211

Adrian Chadd adrian at FreeBSD.org
Wed May 17 19:34:38 UTC 2017


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_ */


More information about the svn-src-all mailing list