1*92022041SSam Saccone #ifndef __IEEE80211 2*92022041SSam Saccone #define __IEEE80211 3*92022041SSam Saccone 4*92022041SSam Saccone /* 802.11n HT capability AMPDU settings (for ampdu_params_info) */ 5*92022041SSam Saccone #define IEEE80211_HT_AMPDU_PARM_FACTOR 0x03 6*92022041SSam Saccone #define IEEE80211_HT_AMPDU_PARM_DENSITY 0x1C 7*92022041SSam Saccone 8*92022041SSam Saccone #define IEEE80211_HT_CAP_SUP_WIDTH_20_40 0x0002 9*92022041SSam Saccone #define IEEE80211_HT_CAP_SGI_40 0x0040 10*92022041SSam Saccone #define IEEE80211_HT_CAP_MAX_AMSDU 0x0800 11*92022041SSam Saccone 12*92022041SSam Saccone #define IEEE80211_HT_MCS_MASK_LEN 10 13*92022041SSam Saccone 14*92022041SSam Saccone /** 15*92022041SSam Saccone * struct ieee80211_mcs_info - MCS information 16*92022041SSam Saccone * @rx_mask: RX mask 17*92022041SSam Saccone * @rx_highest: highest supported RX rate. If set represents 18*92022041SSam Saccone * the highest supported RX data rate in units of 1 Mbps. 19*92022041SSam Saccone * If this field is 0 this value should not be used to 20*92022041SSam Saccone * consider the highest RX data rate supported. 21*92022041SSam Saccone * @tx_params: TX parameters 22*92022041SSam Saccone */ 23*92022041SSam Saccone struct ieee80211_mcs_info { 24*92022041SSam Saccone __u8 rx_mask[IEEE80211_HT_MCS_MASK_LEN]; 25*92022041SSam Saccone __u16 rx_highest; 26*92022041SSam Saccone __u8 tx_params; 27*92022041SSam Saccone __u8 reserved[3]; 28*92022041SSam Saccone } __attribute__ ((packed)); 29*92022041SSam Saccone 30*92022041SSam Saccone 31*92022041SSam Saccone /** 32*92022041SSam Saccone * struct ieee80211_ht_cap - HT capabilities 33*92022041SSam Saccone * 34*92022041SSam Saccone * This structure is the "HT capabilities element" as 35*92022041SSam Saccone * described in 802.11n D5.0 7.3.2.57 36*92022041SSam Saccone */ 37*92022041SSam Saccone struct ieee80211_ht_cap { 38*92022041SSam Saccone __u16 cap_info; 39*92022041SSam Saccone __u8 ampdu_params_info; 40*92022041SSam Saccone 41*92022041SSam Saccone /* 16 bytes MCS information */ 42*92022041SSam Saccone struct ieee80211_mcs_info mcs; 43*92022041SSam Saccone 44*92022041SSam Saccone __u16 extended_ht_cap_info; 45*92022041SSam Saccone __u32 tx_BF_cap_info; 46*92022041SSam Saccone __u8 antenna_selection_info; 47*92022041SSam Saccone } __attribute__ ((packed)); 48*92022041SSam Saccone 49*92022041SSam Saccone struct ieee80211_vht_mcs_info { 50*92022041SSam Saccone __u16 rx_vht_mcs; 51*92022041SSam Saccone __u16 rx_highest; 52*92022041SSam Saccone __u16 tx_vht_mcs; 53*92022041SSam Saccone __u16 tx_highest; 54*92022041SSam Saccone } __attribute__ ((packed)); 55*92022041SSam Saccone 56*92022041SSam Saccone struct ieee80211_vht_cap { 57*92022041SSam Saccone __u32 cap_info; 58*92022041SSam Saccone struct ieee80211_vht_mcs_info mcs; 59*92022041SSam Saccone } __attribute__ ((packed)); 60*92022041SSam Saccone 61*92022041SSam Saccone #define SUITE(oui, id) (((oui) << 8) | (id)) 62*92022041SSam Saccone 63*92022041SSam Saccone /* cipher suite selectors */ 64*92022041SSam Saccone #define WLAN_CIPHER_SUITE_USE_GROUP SUITE(0x000FAC, 0) 65*92022041SSam Saccone #define WLAN_CIPHER_SUITE_WEP40 SUITE(0x000FAC, 1) 66*92022041SSam Saccone #define WLAN_CIPHER_SUITE_TKIP SUITE(0x000FAC, 2) 67*92022041SSam Saccone /* reserved: SUITE(0x000FAC, 3) */ 68*92022041SSam Saccone #define WLAN_CIPHER_SUITE_CCMP SUITE(0x000FAC, 4) 69*92022041SSam Saccone #define WLAN_CIPHER_SUITE_WEP104 SUITE(0x000FAC, 5) 70*92022041SSam Saccone #define WLAN_CIPHER_SUITE_AES_CMAC SUITE(0x000FAC, 6) 71*92022041SSam Saccone #define WLAN_CIPHER_SUITE_GCMP SUITE(0x000FAC, 8) 72*92022041SSam Saccone #define WLAN_CIPHER_SUITE_GCMP_256 SUITE(0x000FAC, 9) 73*92022041SSam Saccone #define WLAN_CIPHER_SUITE_CCMP_256 SUITE(0x000FAC, 10) 74*92022041SSam Saccone #define WLAN_CIPHER_SUITE_BIP_GMAC_128 SUITE(0x000FAC, 11) 75*92022041SSam Saccone #define WLAN_CIPHER_SUITE_BIP_GMAC_256 SUITE(0x000FAC, 12) 76*92022041SSam Saccone #define WLAN_CIPHER_SUITE_BIP_CMAC_256 SUITE(0x000FAC, 13) 77*92022041SSam Saccone 78*92022041SSam Saccone #endif /* __IEEE80211 */ 79