diff options
Diffstat (limited to 'include/linux/ieee80211.h')
| -rw-r--r-- | include/linux/ieee80211.h | 112 |
1 files changed, 100 insertions, 12 deletions
diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h index 163c840437d6..97b2eae6a22c 100644 --- a/include/linux/ieee80211.h +++ b/include/linux/ieee80211.h | |||
| @@ -120,6 +120,26 @@ | |||
| 120 | #define IEEE80211_QOS_CTL_TID_MASK 0x000F | 120 | #define IEEE80211_QOS_CTL_TID_MASK 0x000F |
| 121 | #define IEEE80211_QOS_CTL_TAG1D_MASK 0x0007 | 121 | #define IEEE80211_QOS_CTL_TAG1D_MASK 0x0007 |
| 122 | 122 | ||
| 123 | /* U-APSD queue for WMM IEs sent by AP */ | ||
| 124 | #define IEEE80211_WMM_IE_AP_QOSINFO_UAPSD (1<<7) | ||
| 125 | |||
| 126 | /* U-APSD queues for WMM IEs sent by STA */ | ||
| 127 | #define IEEE80211_WMM_IE_STA_QOSINFO_AC_VO (1<<0) | ||
| 128 | #define IEEE80211_WMM_IE_STA_QOSINFO_AC_VI (1<<1) | ||
| 129 | #define IEEE80211_WMM_IE_STA_QOSINFO_AC_BK (1<<2) | ||
| 130 | #define IEEE80211_WMM_IE_STA_QOSINFO_AC_BE (1<<3) | ||
| 131 | #define IEEE80211_WMM_IE_STA_QOSINFO_AC_MASK 0x0f | ||
| 132 | |||
| 133 | /* U-APSD max SP length for WMM IEs sent by STA */ | ||
| 134 | #define IEEE80211_WMM_IE_STA_QOSINFO_SP_ALL 0x00 | ||
| 135 | #define IEEE80211_WMM_IE_STA_QOSINFO_SP_2 0x01 | ||
| 136 | #define IEEE80211_WMM_IE_STA_QOSINFO_SP_4 0x02 | ||
| 137 | #define IEEE80211_WMM_IE_STA_QOSINFO_SP_6 0x03 | ||
| 138 | #define IEEE80211_WMM_IE_STA_QOSINFO_SP_MASK 0x03 | ||
| 139 | #define IEEE80211_WMM_IE_STA_QOSINFO_SP_SHIFT 5 | ||
| 140 | |||
| 141 | #define IEEE80211_HT_CTL_LEN 4 | ||
| 142 | |||
| 123 | struct ieee80211_hdr { | 143 | struct ieee80211_hdr { |
| 124 | __le16 frame_control; | 144 | __le16 frame_control; |
| 125 | __le16 duration_id; | 145 | __le16 duration_id; |
| @@ -130,6 +150,25 @@ struct ieee80211_hdr { | |||
| 130 | u8 addr4[6]; | 150 | u8 addr4[6]; |
| 131 | } __attribute__ ((packed)); | 151 | } __attribute__ ((packed)); |
| 132 | 152 | ||
| 153 | struct ieee80211_hdr_3addr { | ||
| 154 | __le16 frame_control; | ||
| 155 | __le16 duration_id; | ||
| 156 | u8 addr1[6]; | ||
| 157 | u8 addr2[6]; | ||
| 158 | u8 addr3[6]; | ||
| 159 | __le16 seq_ctrl; | ||
| 160 | } __attribute__ ((packed)); | ||
| 161 | |||
| 162 | struct ieee80211_qos_hdr { | ||
| 163 | __le16 frame_control; | ||
| 164 | __le16 duration_id; | ||
| 165 | u8 addr1[6]; | ||
| 166 | u8 addr2[6]; | ||
| 167 | u8 addr3[6]; | ||
| 168 | __le16 seq_ctrl; | ||
| 169 | __le16 qos_ctrl; | ||
| 170 | } __attribute__ ((packed)); | ||
| 171 | |||
| 133 | /** | 172 | /** |
| 134 | * ieee80211_has_tods - check if IEEE80211_FCTL_TODS is set | 173 | * ieee80211_has_tods - check if IEEE80211_FCTL_TODS is set |
| 135 | * @fc: frame control bytes in little-endian byteorder | 174 | * @fc: frame control bytes in little-endian byteorder |
| @@ -707,6 +746,10 @@ struct ieee80211_mgmt { | |||
| 707 | u8 action; | 746 | u8 action; |
| 708 | u8 trans_id[WLAN_SA_QUERY_TR_ID_LEN]; | 747 | u8 trans_id[WLAN_SA_QUERY_TR_ID_LEN]; |
| 709 | } __attribute__ ((packed)) sa_query; | 748 | } __attribute__ ((packed)) sa_query; |
| 749 | struct { | ||
| 750 | u8 action; | ||
| 751 | u8 smps_control; | ||
| 752 | } __attribute__ ((packed)) ht_smps; | ||
| 710 | } u; | 753 | } u; |
| 711 | } __attribute__ ((packed)) action; | 754 | } __attribute__ ((packed)) action; |
| 712 | } u; | 755 | } u; |
| @@ -771,7 +814,10 @@ struct ieee80211_bar { | |||
| 771 | /** | 814 | /** |
| 772 | * struct ieee80211_mcs_info - MCS information | 815 | * struct ieee80211_mcs_info - MCS information |
| 773 | * @rx_mask: RX mask | 816 | * @rx_mask: RX mask |
| 774 | * @rx_highest: highest supported RX rate | 817 | * @rx_highest: highest supported RX rate. If set represents |
| 818 | * the highest supported RX data rate in units of 1 Mbps. | ||
| 819 | * If this field is 0 this value should not be used to | ||
| 820 | * consider the highest RX data rate supported. | ||
| 775 | * @tx_params: TX parameters | 821 | * @tx_params: TX parameters |
| 776 | */ | 822 | */ |
| 777 | struct ieee80211_mcs_info { | 823 | struct ieee80211_mcs_info { |
| @@ -824,11 +870,13 @@ struct ieee80211_ht_cap { | |||
| 824 | #define IEEE80211_HT_CAP_LDPC_CODING 0x0001 | 870 | #define IEEE80211_HT_CAP_LDPC_CODING 0x0001 |
| 825 | #define IEEE80211_HT_CAP_SUP_WIDTH_20_40 0x0002 | 871 | #define IEEE80211_HT_CAP_SUP_WIDTH_20_40 0x0002 |
| 826 | #define IEEE80211_HT_CAP_SM_PS 0x000C | 872 | #define IEEE80211_HT_CAP_SM_PS 0x000C |
| 873 | #define IEEE80211_HT_CAP_SM_PS_SHIFT 2 | ||
| 827 | #define IEEE80211_HT_CAP_GRN_FLD 0x0010 | 874 | #define IEEE80211_HT_CAP_GRN_FLD 0x0010 |
| 828 | #define IEEE80211_HT_CAP_SGI_20 0x0020 | 875 | #define IEEE80211_HT_CAP_SGI_20 0x0020 |
| 829 | #define IEEE80211_HT_CAP_SGI_40 0x0040 | 876 | #define IEEE80211_HT_CAP_SGI_40 0x0040 |
| 830 | #define IEEE80211_HT_CAP_TX_STBC 0x0080 | 877 | #define IEEE80211_HT_CAP_TX_STBC 0x0080 |
| 831 | #define IEEE80211_HT_CAP_RX_STBC 0x0300 | 878 | #define IEEE80211_HT_CAP_RX_STBC 0x0300 |
| 879 | #define IEEE80211_HT_CAP_RX_STBC_SHIFT 8 | ||
| 832 | #define IEEE80211_HT_CAP_DELAY_BA 0x0400 | 880 | #define IEEE80211_HT_CAP_DELAY_BA 0x0400 |
| 833 | #define IEEE80211_HT_CAP_MAX_AMSDU 0x0800 | 881 | #define IEEE80211_HT_CAP_MAX_AMSDU 0x0800 |
| 834 | #define IEEE80211_HT_CAP_DSSSCCK40 0x1000 | 882 | #define IEEE80211_HT_CAP_DSSSCCK40 0x1000 |
| @@ -839,6 +887,7 @@ struct ieee80211_ht_cap { | |||
| 839 | /* 802.11n HT capability AMPDU settings (for ampdu_params_info) */ | 887 | /* 802.11n HT capability AMPDU settings (for ampdu_params_info) */ |
| 840 | #define IEEE80211_HT_AMPDU_PARM_FACTOR 0x03 | 888 | #define IEEE80211_HT_AMPDU_PARM_FACTOR 0x03 |
| 841 | #define IEEE80211_HT_AMPDU_PARM_DENSITY 0x1C | 889 | #define IEEE80211_HT_AMPDU_PARM_DENSITY 0x1C |
| 890 | #define IEEE80211_HT_AMPDU_PARM_DENSITY_SHIFT 2 | ||
| 842 | 891 | ||
| 843 | /* | 892 | /* |
| 844 | * Maximum length of AMPDU that the STA can receive. | 893 | * Maximum length of AMPDU that the STA can receive. |
| @@ -922,12 +971,17 @@ struct ieee80211_ht_info { | |||
| 922 | #define IEEE80211_MAX_AMPDU_BUF 0x40 | 971 | #define IEEE80211_MAX_AMPDU_BUF 0x40 |
| 923 | 972 | ||
| 924 | 973 | ||
| 925 | /* Spatial Multiplexing Power Save Modes */ | 974 | /* Spatial Multiplexing Power Save Modes (for capability) */ |
| 926 | #define WLAN_HT_CAP_SM_PS_STATIC 0 | 975 | #define WLAN_HT_CAP_SM_PS_STATIC 0 |
| 927 | #define WLAN_HT_CAP_SM_PS_DYNAMIC 1 | 976 | #define WLAN_HT_CAP_SM_PS_DYNAMIC 1 |
| 928 | #define WLAN_HT_CAP_SM_PS_INVALID 2 | 977 | #define WLAN_HT_CAP_SM_PS_INVALID 2 |
| 929 | #define WLAN_HT_CAP_SM_PS_DISABLED 3 | 978 | #define WLAN_HT_CAP_SM_PS_DISABLED 3 |
| 930 | 979 | ||
| 980 | /* for SM power control field lower two bits */ | ||
| 981 | #define WLAN_HT_SMPS_CONTROL_DISABLED 0 | ||
| 982 | #define WLAN_HT_SMPS_CONTROL_STATIC 1 | ||
| 983 | #define WLAN_HT_SMPS_CONTROL_DYNAMIC 3 | ||
| 984 | |||
| 931 | /* Authentication algorithms */ | 985 | /* Authentication algorithms */ |
| 932 | #define WLAN_AUTH_OPEN 0 | 986 | #define WLAN_AUTH_OPEN 0 |
| 933 | #define WLAN_AUTH_SHARED_KEY 1 | 987 | #define WLAN_AUTH_SHARED_KEY 1 |
| @@ -1071,12 +1125,12 @@ enum ieee80211_eid { | |||
| 1071 | WLAN_EID_TIM = 5, | 1125 | WLAN_EID_TIM = 5, |
| 1072 | WLAN_EID_IBSS_PARAMS = 6, | 1126 | WLAN_EID_IBSS_PARAMS = 6, |
| 1073 | WLAN_EID_CHALLENGE = 16, | 1127 | WLAN_EID_CHALLENGE = 16, |
| 1074 | /* 802.11d */ | 1128 | |
| 1075 | WLAN_EID_COUNTRY = 7, | 1129 | WLAN_EID_COUNTRY = 7, |
| 1076 | WLAN_EID_HP_PARAMS = 8, | 1130 | WLAN_EID_HP_PARAMS = 8, |
| 1077 | WLAN_EID_HP_TABLE = 9, | 1131 | WLAN_EID_HP_TABLE = 9, |
| 1078 | WLAN_EID_REQUEST = 10, | 1132 | WLAN_EID_REQUEST = 10, |
| 1079 | /* 802.11e */ | 1133 | |
| 1080 | WLAN_EID_QBSS_LOAD = 11, | 1134 | WLAN_EID_QBSS_LOAD = 11, |
| 1081 | WLAN_EID_EDCA_PARAM_SET = 12, | 1135 | WLAN_EID_EDCA_PARAM_SET = 12, |
| 1082 | WLAN_EID_TSPEC = 13, | 1136 | WLAN_EID_TSPEC = 13, |
| @@ -1099,7 +1153,7 @@ enum ieee80211_eid { | |||
| 1099 | WLAN_EID_PREP = 69, | 1153 | WLAN_EID_PREP = 69, |
| 1100 | WLAN_EID_PERR = 70, | 1154 | WLAN_EID_PERR = 70, |
| 1101 | WLAN_EID_RANN = 49, /* compatible with FreeBSD */ | 1155 | WLAN_EID_RANN = 49, /* compatible with FreeBSD */ |
| 1102 | /* 802.11h */ | 1156 | |
| 1103 | WLAN_EID_PWR_CONSTRAINT = 32, | 1157 | WLAN_EID_PWR_CONSTRAINT = 32, |
| 1104 | WLAN_EID_PWR_CAPABILITY = 33, | 1158 | WLAN_EID_PWR_CAPABILITY = 33, |
| 1105 | WLAN_EID_TPC_REQUEST = 34, | 1159 | WLAN_EID_TPC_REQUEST = 34, |
| @@ -1110,20 +1164,41 @@ enum ieee80211_eid { | |||
| 1110 | WLAN_EID_MEASURE_REPORT = 39, | 1164 | WLAN_EID_MEASURE_REPORT = 39, |
| 1111 | WLAN_EID_QUIET = 40, | 1165 | WLAN_EID_QUIET = 40, |
| 1112 | WLAN_EID_IBSS_DFS = 41, | 1166 | WLAN_EID_IBSS_DFS = 41, |
| 1113 | /* 802.11g */ | 1167 | |
| 1114 | WLAN_EID_ERP_INFO = 42, | 1168 | WLAN_EID_ERP_INFO = 42, |
| 1115 | WLAN_EID_EXT_SUPP_RATES = 50, | 1169 | WLAN_EID_EXT_SUPP_RATES = 50, |
| 1116 | /* 802.11n */ | 1170 | |
| 1117 | WLAN_EID_HT_CAPABILITY = 45, | 1171 | WLAN_EID_HT_CAPABILITY = 45, |
| 1118 | WLAN_EID_HT_INFORMATION = 61, | 1172 | WLAN_EID_HT_INFORMATION = 61, |
| 1119 | /* 802.11i */ | 1173 | |
| 1120 | WLAN_EID_RSN = 48, | 1174 | WLAN_EID_RSN = 48, |
| 1121 | WLAN_EID_TIMEOUT_INTERVAL = 56, | 1175 | WLAN_EID_MMIE = 76, |
| 1122 | WLAN_EID_MMIE = 76 /* 802.11w */, | ||
| 1123 | WLAN_EID_WPA = 221, | 1176 | WLAN_EID_WPA = 221, |
| 1124 | WLAN_EID_GENERIC = 221, | 1177 | WLAN_EID_GENERIC = 221, |
| 1125 | WLAN_EID_VENDOR_SPECIFIC = 221, | 1178 | WLAN_EID_VENDOR_SPECIFIC = 221, |
| 1126 | WLAN_EID_QOS_PARAMETER = 222 | 1179 | WLAN_EID_QOS_PARAMETER = 222, |
| 1180 | |||
| 1181 | WLAN_EID_AP_CHAN_REPORT = 51, | ||
| 1182 | WLAN_EID_NEIGHBOR_REPORT = 52, | ||
| 1183 | WLAN_EID_RCPI = 53, | ||
| 1184 | WLAN_EID_BSS_AVG_ACCESS_DELAY = 63, | ||
| 1185 | WLAN_EID_ANTENNA_INFO = 64, | ||
| 1186 | WLAN_EID_RSNI = 65, | ||
| 1187 | WLAN_EID_MEASUREMENT_PILOT_TX_INFO = 66, | ||
| 1188 | WLAN_EID_BSS_AVAILABLE_CAPACITY = 67, | ||
| 1189 | WLAN_EID_BSS_AC_ACCESS_DELAY = 68, | ||
| 1190 | WLAN_EID_RRM_ENABLED_CAPABILITIES = 70, | ||
| 1191 | WLAN_EID_MULTIPLE_BSSID = 71, | ||
| 1192 | |||
| 1193 | WLAN_EID_MOBILITY_DOMAIN = 54, | ||
| 1194 | WLAN_EID_FAST_BSS_TRANSITION = 55, | ||
| 1195 | WLAN_EID_TIMEOUT_INTERVAL = 56, | ||
| 1196 | WLAN_EID_RIC_DATA = 57, | ||
| 1197 | WLAN_EID_RIC_DESCRIPTOR = 75, | ||
| 1198 | |||
| 1199 | WLAN_EID_DSE_REGISTERED_LOCATION = 58, | ||
| 1200 | WLAN_EID_SUPPORTED_REGULATORY_CLASSES = 59, | ||
| 1201 | WLAN_EID_EXT_CHANSWITCH_ANN = 60, | ||
| 1127 | }; | 1202 | }; |
| 1128 | 1203 | ||
| 1129 | /* Action category code */ | 1204 | /* Action category code */ |
| @@ -1137,6 +1212,8 @@ enum ieee80211_category { | |||
| 1137 | WLAN_CATEGORY_SA_QUERY = 8, | 1212 | WLAN_CATEGORY_SA_QUERY = 8, |
| 1138 | WLAN_CATEGORY_PROTECTED_DUAL_OF_ACTION = 9, | 1213 | WLAN_CATEGORY_PROTECTED_DUAL_OF_ACTION = 9, |
| 1139 | WLAN_CATEGORY_WMM = 17, | 1214 | WLAN_CATEGORY_WMM = 17, |
| 1215 | WLAN_CATEGORY_MESH_PLINK = 30, /* Pending ANA approval */ | ||
| 1216 | WLAN_CATEGORY_MESH_PATH_SEL = 32, /* Pending ANA approval */ | ||
| 1140 | WLAN_CATEGORY_VENDOR_SPECIFIC_PROTECTED = 126, | 1217 | WLAN_CATEGORY_VENDOR_SPECIFIC_PROTECTED = 126, |
| 1141 | WLAN_CATEGORY_VENDOR_SPECIFIC = 127, | 1218 | WLAN_CATEGORY_VENDOR_SPECIFIC = 127, |
| 1142 | }; | 1219 | }; |
| @@ -1150,6 +1227,18 @@ enum ieee80211_spectrum_mgmt_actioncode { | |||
| 1150 | WLAN_ACTION_SPCT_CHL_SWITCH = 4, | 1227 | WLAN_ACTION_SPCT_CHL_SWITCH = 4, |
| 1151 | }; | 1228 | }; |
| 1152 | 1229 | ||
| 1230 | /* HT action codes */ | ||
| 1231 | enum ieee80211_ht_actioncode { | ||
| 1232 | WLAN_HT_ACTION_NOTIFY_CHANWIDTH = 0, | ||
| 1233 | WLAN_HT_ACTION_SMPS = 1, | ||
| 1234 | WLAN_HT_ACTION_PSMP = 2, | ||
| 1235 | WLAN_HT_ACTION_PCO_PHASE = 3, | ||
| 1236 | WLAN_HT_ACTION_CSI = 4, | ||
| 1237 | WLAN_HT_ACTION_NONCOMPRESSED_BF = 5, | ||
| 1238 | WLAN_HT_ACTION_COMPRESSED_BF = 6, | ||
| 1239 | WLAN_HT_ACTION_ASEL_IDX_FEEDBACK = 7, | ||
| 1240 | }; | ||
| 1241 | |||
| 1153 | /* Security key length */ | 1242 | /* Security key length */ |
| 1154 | enum ieee80211_key_len { | 1243 | enum ieee80211_key_len { |
| 1155 | WLAN_KEY_LEN_WEP40 = 5, | 1244 | WLAN_KEY_LEN_WEP40 = 5, |
| @@ -1238,7 +1327,6 @@ enum ieee80211_back_actioncode { | |||
| 1238 | enum ieee80211_back_parties { | 1327 | enum ieee80211_back_parties { |
| 1239 | WLAN_BACK_RECIPIENT = 0, | 1328 | WLAN_BACK_RECIPIENT = 0, |
| 1240 | WLAN_BACK_INITIATOR = 1, | 1329 | WLAN_BACK_INITIATOR = 1, |
| 1241 | WLAN_BACK_TIMER = 2, | ||
| 1242 | }; | 1330 | }; |
| 1243 | 1331 | ||
| 1244 | /* SA Query action */ | 1332 | /* SA Query action */ |
