PERFORCE change 114516 for review

Sam Leffler sam at FreeBSD.org
Wed Feb 14 22:54:17 UTC 2007


http://perforce.freebsd.org/chv.cgi?CH=114516

Change 114516 by sam at sam_ebb on 2007/02/14 22:53:30

	start of 11n defs

Affected files ...

.. //depot/projects/wifi/sys/net80211/ieee80211.h#16 edit

Differences ...

==== //depot/projects/wifi/sys/net80211/ieee80211.h#16 (text+ko) ====

@@ -172,6 +172,8 @@
 
 #define	IEEE80211_QOS_TXOP			0x00ff
 /* bit 8 is reserved */
+#define	IEEE80211_QOS_AMSDU			0x80
+#define	IEEE80211_QOS_AMSDU_S			7
 #define	IEEE80211_QOS_ACKPOLICY			0x60
 #define	IEEE80211_QOS_ACKPOLICY_S		5
 #define	IEEE80211_QOS_ESOP			0x10
@@ -370,7 +372,7 @@
 /* BA - DELBA */
 struct ieee80211_action_ba_delba {
 	struct ieee80211_action dl_header;
-	u_int16_t	dl_delbaparamset;
+	u_int16_t	dl_baparamset;
 	u_int16_t	dl_reasoncode;
 } __packed;
 
@@ -499,6 +501,137 @@
 } __packed;
 
 /*
+ * 802.11n HT Capability IE
+ * NB: these reflect D1.10 
+ */
+struct ieee80211_ie_htcap {
+	u_int8_t	hc_id;			/* element ID */
+	u_int8_t	hc_len;			/* length in bytes */
+	u_int16_t	hc_cap;			/* HT caps (see below) */
+	u_int8_t	hc_param;		/* HT params (see below) */
+	u_int8_t 	hc_mcsset[16]; 		/* supported MCS set */
+	u_int16_t	hc_extcap;		/* extended HT capabilities */
+	u_int32_t	hc_txbf;		/* txbf capabilities */
+	u_int8_t	hc_antenna;		/* antenna capabilities */
+} __packed;
+
+/* HT capability flags (ht_cap) */
+#define	IEEE80211_HTCAP_LDPC		0x0001	/* LDPC supported */
+#define	IEEE80211_HTCAP_CHWIDTH40	0x0002	/* 20/40 supported */
+#define	IEEE80211_HTCAP_SMPS		0x000c	/* SM Power Save mode */
+#define	IEEE80211_HTCAP_SMPS_OFF	0x0000	/* none (static mode) */
+#define	IEEE80211_HTCAP_SMPS_DYNAMIC	0x0004	/* send RTS first */
+#define	IEEE80211_HTCAP_SMPS_NA		0x0008	/* not applicable */
+#define	IEEE80211_HTCAP_SMPS_ALL	0x000c	/* no limitation */
+#define	IEEE80211_HTCAP_GREENFIELD	0x0010	/* Greenfield supported */
+#define	IEEE80211_HTCAP_SHORTGI20	0x0020	/* Short GI in 20MHz */
+#define	IEEE80211_HTCAP_SHORTGI40	0x0040	/* Short GI in 40MHz */
+#define	IEEE80211_HTCAP_TXSTBC		0x0080	/* STBC tx ok */
+#define	IEEE80211_HTCAP_RXSTBC		0x0300  /* STBC rx support */
+#define	IEEE80211_HTCAP_RXSTBC_S	8
+#define	IEEE80211_HTCAP_RXSTBC_1STREAM	0x0100  /* 1 spatial stream */
+#define	IEEE80211_HTCAP_RXSTBC_2STREAM	0x0200  /* 1-2 spatial streams*/
+#define	IEEE80211_HTCAP_RXSTBC_3STREAM	0x0300  /* 1-3 spatial streams*/
+#define	IEEE80211_HTCAP_DELBA		0x0400	/* HT DELBA supported */
+#define	IEEE80211_HTCAP_MAXAMSDU	0x0800	/* max A-MSDU length */
+#define	IEEE80211_HTCAP_MAXAMSDU_7935	0x0800	/* 7935 octets */
+#define	IEEE80211_HTCAP_MAXAMSDU_3839	0x0000	/* 3839 octets */
+#define	IEEE80211_HTCAP_DSSSCCK40	0x1000  /* DSSS/CCK in 40MHz */
+#define	IEEE80211_HTCAP_PSMP		0x2000  /* PSMP supported */
+#define	IEEE80211_HTCAP_40INTOLERANT	0x4000  /* 40MHz intolerant */
+#define	IEEE80211_HTCAP_LSIGTXOPPROT	0x8000  /* L-SIG TXOP prot */
+
+/* HT parameters (hc_param) */
+#define	IEEE80211_HTCAP_MAXRXAMPDU	0x03	/* max rx A-MPDU factor */
+#define	IEEE80211_HTCAP_MAXRXAMPDU_S	0
+#define	IEEE80211_HTCAP_MAXRXAMPDU_8K	0x00
+#define	IEEE80211_HTCAP_MAXRXAMPDU_16K	0x01
+#define	IEEE80211_HTCAP_MAXRXAMPDU_32K	0x02
+#define	IEEE80211_HTCAP_MAXRXAMPDU_64K	0x03
+#define	IEEE80211_HTCAP_MPDUDENSITY	0x1c	/* min MPDU start spacing */
+#define	IEEE80211_HTCAP_MPDUDENSITY_S	2
+#define	IEEE80211_HTCAP_MPDUDENSITY_NA	0x00	/* no time restriction */
+#define	IEEE80211_HTCAP_MPDUDENSITY_025	0x04	/* 1/4 us */
+#define	IEEE80211_HTCAP_MPDUDENSITY_05	0x08	/* 1/2 us */
+#define	IEEE80211_HTCAP_MPDUDENSITY_1	0x0c	/* 1 us */
+#define	IEEE80211_HTCAP_MPDUDENSITY_2	0x10	/* 2 us */
+#define	IEEE80211_HTCAP_MPDUDENSITY_4	0x14	/* 4 us */
+#define	IEEE80211_HTCAP_MPDUDENSITY_8	0x18	/* 8 us */
+#define	IEEE80211_HTCAP_MPDUDENSITY_16	0x1c	/* 16 us */
+
+/* HT extended capabilities (hc_extcap) */
+#define	IEEE80211_HTCAP_PCO		0x0001	/* PCO capable */
+#define	IEEE80211_HTCAP_PCOTRANS	0x0006	/* PCO transition time */
+#define	IEEE80211_HTCAP_PCOTRANS_S	1
+#define	IEEE80211_HTCAP_PCOTRANS_04	0x0002	/* 400 us */
+#define	IEEE80211_HTCAP_PCOTRANS_15	0x0004	/* 1.5 ms */
+#define	IEEE80211_HTCAP_PCOTRANS_5	0x0006	/* 5 ms */
+/* bits 3-7 reserved */
+#define	IEEE80211_HTCAP_MCSFBACK	0x0300	/* MCS feedback */
+#define	IEEE80211_HTCAP_MCSFBACK_S	8
+#define	IEEE80211_HTCAP_MCSFBACK_NONE	0x0000	/* nothing provided */
+#define	IEEE80211_HTCAP_MCSFBACK_UNSOL	0x0200	/* unsolicited feedback */
+#define	IEEE80211_HTCAP_MCSFBACK_MRQ	0x0300	/* " "+respond to MRQ */
+#define	IEEE80211_HTCAP_HTC		0x0400	/* +HTC support */
+#define	IEEE80211_HTCAP_RDR		0x0800	/* reverse direction responder*/
+/* bits 12-15 reserved */
+
+/*
+ * 802.11n HT Information IE
+ */
+struct ieee80211_ie_htinfo {
+	u_int8_t	hi_id;			/* element ID */
+	u_int8_t	hi_len;			/* length in bytes */
+	u_int8_t	hi_ctrlchannel;		/* primary channel */
+	u_int8_t	hi_byte1;		/* ht ie byte 1 */
+	u_int16_t	hi_byte23;		/* ht ie bytes 2+3 */
+	u_int16_t	hi_byte45;		/* ht ie bytes 4+5 */
+	u_int8_t 	hi_basicmcsset[16]; 	/* basic MCS set */
+} __packed;
+
+/* byte1 */
+#define	IEEE80211_HTINFO_2NDCHAN	0x03	/* secondary/ext chan offset */
+#define	IEEE80211_HTINFO_2NDCHAN_S	0
+#define	IEEE80211_HTINFO_2NDCHAN_NONE	0x00	/* no secondary/ext channel */
+#define	IEEE80211_HTINFO_2NDCHAN_ABOVE	0x01	/* above private channel */
+/* NB: 2 is reserved */
+#define	IEEE80211_HTINFO_2NDCHAN_BELOW	0x03	/* below primary channel */ 
+#define	IEEE80211_HTINFO_TXWIDTH	0x04	/* tx channel width */
+#define	IEEE80211_HTINFO_TXWIDTH_20	0x00	/* 20MHz width */
+#define	IEEE80211_HTINFO_TXWIDTH_2040	0x04	/* any supported width */
+#define	IEEE80211_HTINFO_RIFSMODE	0x08	/* Reduced IFS (RIFS) use */
+#define	IEEE80211_HTINFO_RIFSMODE_PROH	0x00	/* RIFS use prohibited */
+#define	IEEE80211_HTINFO_RIFSMODE_PERM	0x08	/* RIFS use permitted */
+#define	IEEE80211_HTINFO_PMSPONLY	0x10	/* PSMP required to associate */
+#define	IEEE80211_HTINFO_SIGRAN		0xe0	/* shortest Service Interval */
+#define	IEEE80211_HTINFO_SIGRAN_S	5
+#define	IEEE80211_HTINFO_SIGRAN_5	0x00	/* 5 ms */
+/* XXX add rest */
+
+/* bytes 2+3 */
+#define	IEEE80211_HTINFO_OPMODE		0x03	/* operating mode */
+#define	IEEE80211_HTINFO_OPMODE_S	0
+#define	IEEE80211_HTINFO_OPMODE_PURE	0x00	/* no protection */
+#define	IEEE80211_HTINFO_OPMODE_MIXED	0x01	/* protection required */      	
+#define	IEEE80211_HTINFO_OPMODE_PROTOPT	0x02	/* protection optional */      	
+#define	IEEE80211_HTINFO_OPMODE_TBD	0x03
+#define	IEEE80211_HTINFO_NONGF_PRESENT	0x04	/* non-GF sta's present */
+#define	IEEE80211_HTINFO_TXBL		0x08	/* transmit burst limit */
+#define	IEEE80211_HTINFO_NONHT_PRESENT	0x10	/* non-HT sta's present */
+/* bits 5-15 reserved */
+
+/* bytes 4+5 */
+#define	IEEE80211_HTINFO_2NDARYBEACON	0x01
+#define	IEEE80211_HTINFO_LSIGTXOPPROT	0x02
+#define	IEEE80211_HTINFO_PCO_ACTIVE	0x04
+#define	IEEE80211_HTINFO_40MHZPHASE	0x08
+
+/* byte5 */
+#define	IEEE80211_HTINFO_BASIC_STBCMCS	0x7f
+#define	IEEE80211_HTINFO_BASIC_STBCMCS_S 0
+#define	IEEE80211_HTINFO_DUALPROTECTED	0x80
+
+/*
  * Management information element payloads.
  */
 
@@ -513,9 +646,23 @@
 	IEEE80211_ELEMID_COUNTRY	= 7,
 	IEEE80211_ELEMID_CHALLENGE	= 16,
 	/* 17-31 reserved for challenge text extension */
+	IEEE80211_ELEMID_PWRCNSTR	= 32,
+	IEEE80211_ELEMID_PWRCAP		= 33,
+	IEEE80211_ELEMID_TPCREQ		= 34,
+	IEEE80211_ELEMID_TPCREP		= 35,
+	IEEE80211_ELEMID_SUPPCHAN	= 36,
+	IEEE80211_ELEMID_CHANSWITCHANN	= 37,
+	IEEE80211_ELEMID_MEASREQ	= 38,
+	IEEE80211_ELEMID_MEASREP	= 39,
+	IEEE80211_ELEMID_QUIET		= 40,
+	IEEE80211_ELEMID_IBSSDFS	= 41,
 	IEEE80211_ELEMID_ERP		= 42,
+	IEEE80211_ELEMID_HTCAP_ANA	= 45,
 	IEEE80211_ELEMID_RSN		= 48,
 	IEEE80211_ELEMID_XRATES		= 50,
+	IEEE80211_ELEMID_HTCAP		= 51,
+	IEEE80211_ELEMID_HTINFO		= 52,
+	IEEE80211_ELEMID_HTINFO_ANA	= 61,
 	IEEE80211_ELEMID_TPC		= 150,
 	IEEE80211_ELEMID_CCKM		= 156,
 	IEEE80211_ELEMID_VENDOR		= 221,	/* vendor private */


More information about the p4-projects mailing list