Date: Wed, 14 Feb 2007 22:54:16 GMT From: Sam Leffler <sam@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 114516 for review Message-ID: <200702142254.l1EMsGCt022973@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=114516 Change 114516 by sam@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 */
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200702142254.l1EMsGCt022973>