1 /* 2 * Copyright (C) 2023 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #ifndef OHOS_HDI_DEFINE_H 17 #define OHOS_HDI_DEFINE_H 18 19 #include <stddef.h> 20 #include <stdint.h> 21 22 #ifdef __cplusplus 23 extern "C" { 24 #endif 25 26 #ifndef ETH_ALEN 27 #define ETH_ALEN 6 28 #endif 29 30 #define HDI_UUID_LEN 16 31 #define HDI_PIN_LEN 9 32 #define HDI_MAC_SUB_LEN 2 33 34 #define HDI_PROTO_DEFAULT HDI_BIT(0) 35 #define HDI_PROTO_ONE HDI_BIT(1) 36 #define HDI_PROTO_THREE HDI_BIT(3) 37 38 #define HDI_MAX__VENDOR_EXT 10 39 40 #define HDI_MAX_IES_SUPPORTED 5 41 42 #define HDI_P2P_CARD_SSID "DIRECT-" 43 #define HDI_P2P_CARD_SSID_LEN 7 44 45 #define HDI_IE_VENDOR_TYPE 0x0050f201 46 #define HDI_P2P_IE_VENDOR_TYPE 0x506f9a09 47 #define HDI_WFD_TYPE 10 48 #define HDI_HS20_IE_VENDOR_TYPE 0x506f9a10 49 #define HDI_OSEN_IE_VENDOR_TYPE 0x506f9a12 50 #define HDI_MBO_OUI_TYPE 22 51 #define HDI_OWE_VENDOR_TYPE 0x506f9a1c 52 #define HDI_OWE_OUI_TYPE 28 53 #define HDI_AP_OUI_TYPE 0x1B 54 55 #define HDI_WMM_OUI_TYPE 2 56 #define HDI_WMM_OUI_SUBTYPE_INFORMATION 0 57 #define HDI_WMM_OUI_SUBTYPE_PARAMETER 1 58 #define HDI_WMM_OUI_SUBTYPE_ELEMENT 2 59 60 61 #define HDI_SELECTOR_LEN 4 62 #define HDI_VERSION 1 63 64 #define HDI_CIPHER_NONE HDI_BIT(0) 65 #define HDI_CIPHER_TKIP HDI_BIT(3) 66 #define HDI_CIPHER_CCMP HDI_BIT(4) 67 #define HDI_CIPHER_AES_128_CMAC HDI_BIT(5) 68 #define HDI_CIPHER_GCMP HDI_BIT(6) 69 #define HDI_CIPHER_GCMP_256 HDI_BIT(8) 70 #define HDI_CIPHER_CCMP_256 HDI_BIT(9) 71 #define HDI_CIPHER_BIP_GMAC_128 HDI_BIT(11) 72 #define HDI_CIPHER_BIP_GMAC_256 HDI_BIT(12) 73 #define HDI_CIPHER_BIP_CMAC_256 HDI_BIT(13) 74 #define HDI_CIPHER_GTK_NOT_USED HDI_BIT(14) 75 76 #define HDI_KEY_MGMT HDI_BIT(0) 77 #define HDI_KEY_MGMT_PSK HDI_BIT(1) 78 #define HDI_KEY_MGMT_HDI_NONE HDI_BIT(4) 79 #define HDI_KEY_MGMT_FT_IEEE8021X HDI_BIT(5) 80 #define HDI_KEY_MGMT_FT_PSK HDI_BIT(6) 81 #define HDI_KEY_MGMT_IEEE8021X_SHA256 HDI_BIT(7) 82 #define HDI_KEY_MGMT_PSK_SHA256 HDI_BIT(8) 83 #define HDI_KEY_MGMT_SAE HDI_BIT(10) 84 #define HDI_KEY_MGMT_FT_SAE HDI_BIT(11) 85 #define HDI_KEY_MGMT_OSEN HDI_BIT(15) 86 #define HDI_KEY_MGMT_SUITE_B HDI_BIT(16) 87 #define HDI_KEY_MGMT_SUITE_B_192 HDI_BIT(17) 88 #define HDI_KEY_MGMT_FILS_SHA256 HDI_BIT(18) 89 #define HDI_KEY_MGMT_FILS_SHA384 HDI_BIT(19) 90 #define HDI_KEY_MGMT_FT_FILS_SHA256 HDI_BIT(20) 91 #define HDI_KEY_MGMT_FT_FILS_SHA384 HDI_BIT(21) 92 #define HDI_KEY_MGMT_OWE HDI_BIT(22) 93 #define HDI_KEY_MGMT_DPP HDI_BIT(23) 94 #define HDI_KEY_MGMT_FT_SHA384 HDI_BIT(24) 95 96 #define HDI_PMKID_LEN 16 97 98 #define HDI_EID_RSNX 244 99 #define HDI_RSNX_CAPAB_SAE_H2E 5 100 #define HDI_RSNX_CAPAB_SAE_PK 6 101 102 #define HDI_CAPABILITY_PREAUTH HDI_BIT(0) 103 104 #define HDI_AUTH_KEY_MGMT_NONE HDI_BIT_MULTI(0x00, 0x50, 0xf2, 0) 105 #define HDI_AUTH_KEY_MGMT_UNSPEC HDI_BIT_MULTI(0x00, 0x50, 0xf2, 1) 106 #define HDI_AUTH_KEY_MGMT_PSK_OVER HDI_BIT_MULTI(0x00, 0x50, 0xf2, 2) 107 #define HDI_CIPHER_SUITE_NONE HDI_BIT_MULTI(0x00, 0x50, 0xf2, 0) 108 #define HDI_CIPHER_SUITE_TKIP HDI_BIT_MULTI(0x00, 0x50, 0xf2, 2) 109 #define HDI_CIPHER_SUITE_CCMP HDI_BIT_MULTI(0x00, 0x50, 0xf2, 4) 110 111 #define HDI_RSN_AUTH_KEY_MGMT_UNSPEC HDI_BIT_MULTI(0x00, 0x0f, 0xac, 1) 112 #define HDI_RSN_AUTH_KEY_MGMT_PSK_OVER HDI_BIT_MULTI(0x00, 0x0f, 0xac, 2) 113 #define HDI_RSN_AUTH_KEY_MGMT_FT HDI_BIT_MULTI(0x00, 0x0f, 0xac, 3) 114 #define HDI_RSN_AUTH_KEY_MGMT_FT_PSK HDI_BIT_MULTI(0x00, 0x0f, 0xac, 4) 115 #define HDI_RSN_AUTH_KEY_MGMT_SHA256 HDI_BIT_MULTI(0x00, 0x0f, 0xac, 5) 116 #define HDI_RSN_AUTH_KEY_MGMT_PSK_SHA256 HDI_BIT_MULTI(0x00, 0x0f, 0xac, 6) 117 #define HDI_RSN_AUTH_KEY_MGMT_SAE HDI_BIT_MULTI(0x00, 0x0f, 0xac, 8) 118 #define HDI_RSN_AUTH_KEY_MGMT_FT_SAE HDI_BIT_MULTI(0x00, 0x0f, 0xac, 9) 119 #define HDI_RSN_AUTH_KEY_MGMT_SUITE_B HDI_BIT_MULTI(0x00, 0x0f, 0xac, 11) 120 #define HDI_RSN_AUTH_KEY_MGMT_SUITE_B_192 HDI_BIT_MULTI(0x00, 0x0f, 0xac, 12) 121 #define HDI_RSN_AUTH_KEY_MGMT_FT_SHA384 HDI_BIT_MULTI(0x00, 0x0f, 0xac, 13) 122 #define HDI_RSN_AUTH_KEY_MGMT_FILS_SHA256 HDI_BIT_MULTI(0x00, 0x0f, 0xac, 14) 123 #define HDI_RSN_AUTH_KEY_MGMT_FILS_SHA384 HDI_BIT_MULTI(0x00, 0x0f, 0xac, 15) 124 #define HDI_RSN_AUTH_KEY_MGMT_FT_FILS_SHA256 HDI_BIT_MULTI(0x00, 0x0f, 0xac, 16) 125 #define HDI_RSN_AUTH_KEY_MGMT_FT_FILS_SHA384 HDI_BIT_MULTI(0x00, 0x0f, 0xac, 17) 126 #define HDI_RSN_AUTH_KEY_MGMT_OWE HDI_BIT_MULTI(0x00, 0x0f, 0xac, 18) 127 #define HDI_RSN_AUTH_KEY_MGMT_OSEN HDI_BIT_MULTI(0x50, 0x6f, 0x9a, 0x01) 128 #define HDI_RSN_AUTH_KEY_MGMT_DPP HDI_BIT_MULTI(0x50, 0x6f, 0x9a, 0x02) 129 130 #define HDI_RSN_CIPHER_SUITE_NONE HDI_BIT_MULTI(0x00, 0x0f, 0xac, 0) 131 #define HDI_RSN_CIPHER_SUITE_TKIP HDI_BIT_MULTI(0x00, 0x0f, 0xac, 2) 132 133 #define HDI_RSN_CIPHER_SUITE_CCMP HDI_BIT_MULTI(0x00, 0x0f, 0xac, 4) 134 #define HDI_RSN_CIPHER_SUITE_AES_128_CMAC HDI_BIT_MULTI(0x00, 0x0f, 0xac, 6) 135 #define HDI_RSN_CIPHER_SUITE_NO_GROUP_ADDRESSED HDI_BIT_MULTI(0x00, 0x0f, 0xac, 7) 136 #define HDI_RSN_CIPHER_SUITE_GCMP HDI_BIT_MULTI(0x00, 0x0f, 0xac, 8) 137 #define HDI_RSN_CIPHER_SUITE_GCMP_256 HDI_BIT_MULTI(0x00, 0x0f, 0xac, 9) 138 #define HDI_RSN_CIPHER_SUITE_CCMP_256 HDI_BIT_MULTI(0x00, 0x0f, 0xac, 10) 139 #define HDI_RSN_CIPHER_SUITE_BIP_GMAC_128 HDI_BIT_MULTI(0x00, 0x0f, 0xac, 11) 140 #define HDI_RSN_CIPHER_SUITE_BIP_GMAC_256 HDI_BIT_MULTI(0x00, 0x0f, 0xac, 12) 141 #define HDI_RSN_CIPHER_SUITE_BIP_CMAC_256 HDI_BIT_MULTI(0x00, 0x0f, 0xac, 13) 142 143 #define HDI_OUI_TYPE HDI_BIT_MULTI(0x00, 0x50, 0xf2, 1) 144 145 #define SSID_MAX_LEN 32 146 147 #define HDI_EID_SSID 0 148 #define HDI_EID_SUPP_RATES 1 149 #define HDI_EID_DS_PARAMS 3 150 #define HDI_EID_CF_PARAMS 4 151 #define HDI_EID_TIM 5 152 #define HDI_EID_COUNTRY 7 153 #define HDI_EID_CHALLENGE 16 154 #define HDI_EID_PWR_CAPABILITY 33 155 #define HDI_EID_SUPPORTED_CHANNELS 36 156 #define HDI_EID_ERP_INFO 42 157 #define HDI_EID_HT_CAP 45 158 #define HDI_EID_RSN 48 159 #define HDI_EID_EXT_SUPP_RATES 50 160 #define HDI_EID_MOBILITY_DOMAIN 54 161 #define HDI_EID_FAST_BSS_TRANSITION 55 162 #define HDI_EID_TIMEOUT_INTERVAL 56 163 #define HDI_EID_SUPPORTED_OPERATING_CLASSES 59 164 #define HDI_EID_HT_OPERATION 61 165 #define HDI_EID_WAPI 68 166 #define HDI_EID_RRM_ENABLED_CAPABILITIES 70 167 #define HDI_EID_SSID_LIST 84 168 #define HDI_EID_BSS_MAX_IDLE_PERIOD 90 169 #define HDI_EID_LINK_ID 101 170 #define HDI_EID_INTERWORKING 107 171 #define HDI_EID_QOS_MAP_SET 110 172 #define HDI_EID_MESH_CONFIG 113 173 #define HDI_EID_MESH_ID 114 174 #define HDI_EID_PEER_MGMT 117 175 #define HDI_EID_EXT_CAPAB 127 176 #define HDI_EID_AMPE 139 177 #define HDI_EID_MIC 140 178 #define HDI_EID_MULTI_BAND 158 179 #define HDI_EID_VHT_CAP 191 180 #define HDI_EID_VHT_OPERATION 192 181 #define HDI_EID_VHT_OPERATING_MODE_NOTIFICATION 199 182 #define HDI_EID_VENDOR_SPECIFIC 221 183 #define HDI_EID_CAG_NUMBER 237 184 #define HDI_EID_AP_CSN 239 185 #define HDI_EID_FILS_INDICATION 240 186 #define HDI_EID_DILS 241 187 #define HDI_EID_FRAGMENT 242 188 #define HDI_EID_EXTENSION 255 189 190 /* Element ID Extension (EID 255) values */ 191 #define HDI_EID_EXT_ASSOC_DELAY_INFO 1 192 #define HDI_EID_EXT_FILS_REQ_PARAMS 2 193 #define HDI_EID_EXT_FILS_KEY_CONFIRM 3 194 #define HDI_EID_EXT_FILS_SESSION 4 195 #define HDI_EID_EXT_FILS_HLP_CONTAINER 5 196 #define HDI_EID_EXT_FILS_IP_ADDR_ASSIGN 6 197 #define HDI_EID_EXT_KEY_DELIVERY 7 198 #define HDI_EID_EXT_FILS_WRAPPED_DATA 8 199 #define HDI_EID_EXT_FILS_PUBLIC_KEY 12 200 #define HDI_EID_EXT_FILS_NONCE 13 201 #define HDI_EID_EXT_OWE_DH_PARAM 32 202 #define HDI_EID_EXT_PASSWORD_IDENTIFIER 33 203 #define HDI_EID_EXT_HE_CAPABILITIES 35 204 #define HDI_EID_EXT_HE_OPERATION 36 205 #define HDI_EID_EXT_OCV_OCI 54 206 #define HDI_EID_EXT_EHT_CAPABILITIES_80211BE 108 207 208 #define HDI_EID_EXT_EDMG_OPERATION 62 209 #define HDI_EXT_CAPAB_UTF_8_SSID 48 210 211 #define HDI_CAP_ESS 0x0001 212 #define HDI_CAP_IBSS 0x0002 213 #define HDI_CAP_PRIVACY 0x0010 214 215 #define HDI_CAP_DMG_MASK 0x0003 216 #define HDI_CAP_DMG_IBSS 0x0001 217 #define HDI_CAP_DMG_PBSS 0x0002 218 #define HDI_CAP_DMG_AP 0x0003 219 220 #define HDI_OUI_MICROSOFT 0x0050f2 221 #define HDI_OUI_WFA 0x506f9a 222 #define HDI_P2P_OUI_TYPE 9 223 #define HDI_HT_CAPAB_OUI_TYPE 0x33 224 #define HDI_OUI_BROADCOM 0x00904c 225 226 #define HDI_VHT_TYPE 0x04 227 #define HDI_VHT_SUBTYPE 0x08 228 #define HDI_VHT_SUBTYPE2 0x00 229 230 #define HDI_HS20_INDICATION_OUI_TYPE 16 231 #define HDI_HS20_OSEN_OUI_TYPE 18 232 #define HDI_HS20_ROAMING_CONS_SEL_OUI_TYPE 29 233 234 #define HDI_OUI_QCA 0x001374 235 236 #define HDI_MOBILITY_DOMAIN_ID_LEN 2 237 238 #define HDI_FILS_NONCE_LEN 16 239 #define HDI_FILS_SESSION_LEN 8 240 241 #define HDI_KEY_RSC_LEN 8 242 243 #define HDI_NONCE_LEN 32 244 245 #define HDI_MAX_CRED_COUNT 10 246 #define HDI_MAX_REQ_DEV_TYPE_COUNT 10 247 248 #define HDI_POS_ZERO 0 249 #define HDI_POS_FIRST 1 250 #define HDI_POS_SECOND 2 251 #define HDI_POS_THIRD 3 252 #define HDI_POS_FOURTH 4 253 #define HDI_POS_FIVE 5 254 #define HDI_POS_SIX 6 255 #define HDI_POS_EIGHT 8 256 #define HDI_POS_TEN 10 257 #define HDI_POS_OT 16 258 #define HDI_POS_ET 18 259 #define HDI_POS_TT 32 260 #define HDI_POS_OTX 126 261 #define HDI_POS_DMG 45000 262 263 #define HDI_MOVE_EIGHT 8 264 #define HDI_MOVE_SIXTEEN 16 265 #define HDI_MOVE_TF 24 266 267 #define HDI_BSSID_LENGTH 18 268 #define HDI_SSID_LENGTH 132 269 #define HDI_SCAN_INFO_CAPABILITY_LENGTH 256 270 #define HDI_GET_MAX_SCAN_INFO 256 /* Maximum number of scan infos obtained at a time */ 271 #define HDI_COUNTRY_CODE_LENGTH 2 272 #define HDI_MAC_LENGTH 17 273 274 #define HDI_STA_CB_SCAN_FAILED 1 275 #define HDI_STA_CB_SCAN_OVER_OK 2 276 277 #define WIFI_CAPABILITY_DEFAULT 0 278 #define CMD_GET_FEATURE_CAPAB 101 279 #define CMD_GET_WIFI_CATEGORY 127 280 #define HDI_SCAN_RESULTS_MAX_LEN 1024 281 282 #define HDI_CAP_WAPI_BIT_OFFSET 9 283 #define HDI_KEY_MGMT_WAPI_CERT_AKM 0X01 284 #define HDI_KEY_MGMT_WAPI_PSK_AKM 0X02 285 286 typedef long os_time_t; 287 288 enum HDIVendorElementId { 289 HDI_VENDOR_ELEM_P2P_PREF_CHAN_LIST = 0, 290 HDI_VENDOR_ELEM_HE_CAPAB = 1, 291 HDI_VENDOR_ELEM_HE_OPER = 2, 292 HDI_VENDOR_ELEM_RAPS = 3, 293 HDI_VENDOR_ELEM_MU_EDCA_PARAMS = 4, 294 HDI_VENDOR_ELEM_BSS_COLOR_CHANGE = 5, 295 }; 296 297 typedef enum HdiPortType { 298 HDI_PORT_TYPE_STATION = 0, 299 HDI_PORT_TYPE_AP = 1, 300 HDI_PORT_TYPE_P2P_CLIENT = 2, 301 HDI_PORT_TYPE_P2P_GO = 3, 302 HDI_PORT_TYPE_P2P_DEVICE = 4, 303 HDI_PORT_TYPE_BUTT // invalid type 304 } HdiPortType; 305 306 typedef enum { 307 PROTOCOL_80211_IFTYPE_UNSPECIFIED, 308 PROTOCOL_80211_IFTYPE_ADHOC, 309 PROTOCOL_80211_IFTYPE_STATION, 310 PROTOCOL_80211_IFTYPE_AP, 311 PROTOCOL_80211_IFTYPE_AP_VLAN, 312 PROTOCOL_80211_IFTYPE_WDS, 313 PROTOCOL_80211_IFTYPE_MONITOR, 314 PROTOCOL_80211_IFTYPE_MESH_POINT, 315 PROTOCOL_80211_IFTYPE_P2P_CLIENT, 316 PROTOCOL_80211_IFTYPE_P2P_GO, 317 PROTOCOL_80211_IFTYPE_P2P_DEVICE, 318 PROTOCOL_80211_IFTYPE_NUM, 319 } FeatureType; 320 #ifdef __cplusplus 321 } 322 #endif 323 #endif