1 /** 2 * @file hi_wifi_driver_wpa_if.h 3 * 4 * 5 * Copyright (c) 2020 HiSilicon (Shanghai) Technologies CO., LIMITED. 6 * Licensed under the Apache License, Version 2.0 (the "License"); 7 * you may not use this file except in compliance with the License. 8 * You may obtain a copy of the License at 9 * 10 * http://www.apache.org/licenses/LICENSE-2.0 11 * 12 * Unless required by applicable law or agreed to in writing, software 13 * distributed under the License is distributed on an "AS IS" BASIS, 14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 * See the License for the specific language governing permissions and 16 * limitations under the License. 17 * 18 * Description: header file for wifi api.CNcomment:描述:WiFi api wpa接口头文件CNend\n 19 */ 20 21 /** 22 * @defgroup hi_wifi WiFi API 23 */ 24 /** 25 * @defgroup hi_wifi_driver_wpa Basic Settings 26 * @ingroup hi_wifi 27 */ 28 29 #ifndef __DRIVER_HISI_COMMON_H__ 30 #define __DRIVER_HISI_COMMON_H__ 31 32 #include "hi_types.h" 33 34 #ifdef __cplusplus 35 #if __cplusplus 36 extern "C" { 37 #endif 38 #endif 39 40 #ifndef ETH_ADDR_LEN 41 #define ETH_ADDR_LEN 6 42 #endif 43 44 #define HISI_SUCC 0 45 #define HISI_EFAIL 1 46 #define HISI_EINVAL 22 47 48 #ifndef MAX_SSID_LEN 49 #define MAX_SSID_LEN 32 50 #endif 51 52 #ifndef HISI_MAX_NR_CIPHER_SUITES 53 #define HISI_MAX_NR_CIPHER_SUITES 5 54 #endif 55 56 #ifndef HISI_WPAS_MAX_SCAN_SSIDS 57 #define HISI_WPAS_MAX_SCAN_SSIDS 2 58 #endif 59 60 #ifndef HISI_PTR_NULL 61 #define HISI_PTR_NULL NULL 62 #endif 63 64 #ifndef HISI_MAX_NR_AKM_SUITES 65 #define HISI_MAX_NR_AKM_SUITES 2 66 #endif 67 68 69 #ifndef NOTIFY_DONE 70 #define NOTIFY_DONE 0x0000 71 #endif 72 #ifndef NETDEV_UP 73 #define NETDEV_UP 0x0001 74 #endif 75 #ifndef SCAN_AP_LIMIT 76 #define SCAN_AP_LIMIT 64 77 #endif 78 #ifndef NETDEV_DOWN 79 #define NETDEV_DOWN 0x0002 80 #endif 81 82 #ifdef _PRE_WLAN_FEATURE_REKEY_OFFLOAD 83 #define HISI_REKEY_OFFLOAD_KCK_LEN 16 84 #define HISI_REKEY_OFFLOAD_KEK_LEN 16 85 #define HISI_REKEY_OFFLOAD_REPLAY_COUNTER_LEN 8 86 #endif 87 88 #define HI_WIFI_HIPRIV_ARGC_MAX 10 89 90 typedef enum { 91 HISI_FALSE = 0, 92 HISI_TRUE = 1, 93 94 HISI_BUTT 95 }hisi_bool_enum; 96 97 typedef hi_u8 hisi_bool_enum_uint8; 98 99 typedef enum { 100 HISI_IFTYPE_UNSPECIFIED, 101 HISI_IFTYPE_ADHOC, 102 HISI_IFTYPE_STATION, 103 HISI_IFTYPE_AP, 104 HISI_IFTYPE_AP_VLAN, 105 HISI_IFTYPE_WDS, 106 HISI_IFTYPE_MONITOR, 107 HISI_IFTYPE_MESH_POINT, 108 HISI_IFTYPE_P2P_CLIENT, 109 HISI_IFTYPE_P2P_GO, 110 HISI_IFTYPE_P2P_DEVICE, 111 112 /* keep last */ 113 NUM_HISI_IFTYPES, 114 HISI_IFTYPE_MAX = NUM_HISI_IFTYPES - 1 115 }hisi_iftype_enum; 116 typedef hi_u8 hisi_iftype_enum_uint8; 117 118 typedef enum { 119 HISI_KEYTYPE_GROUP, 120 HISI_KEYTYPE_PAIRWISE, 121 HISI_KEYTYPE_PEERKEY, 122 123 NUM_HISI_KEYTYPES 124 }hisi_key_type_enum; 125 typedef hi_u8 hisi_key_type_enum_uint8; 126 127 typedef enum { 128 __HISI_KEY_DEFAULT_TYPE_INVALID, 129 HISI_KEY_DEFAULT_TYPE_UNICAST, 130 HISI_KEY_DEFAULT_TYPE_MULTICAST, 131 132 NUM_HISI_KEY_DEFAULT_TYPES 133 }hisi_key_default_types_enum; 134 typedef hi_u8 hisi_key_default_types_enum_uint8; 135 136 typedef enum { 137 HISI_NO_SSID_HIDING, 138 HISI_HIDDEN_SSID_ZERO_LEN, 139 HISI_HIDDEN_SSID_ZERO_CONTENTS 140 }hisi_hidden_ssid_enum; 141 typedef hi_u8 hisi_hidden_ssid_enum_uint8; 142 143 typedef enum { 144 HISI_IOCTL_SET_AP = 0, 145 HISI_IOCTL_NEW_KEY, 146 HISI_IOCTL_DEL_KEY, 147 HISI_IOCTL_SET_KEY, 148 HISI_IOCTL_SEND_MLME, 149 HISI_IOCTL_SEND_EAPOL, 150 HISI_IOCTL_RECEIVE_EAPOL, 151 HISI_IOCTL_ENALBE_EAPOL, 152 HISI_IOCTL_DISABLE_EAPOL, 153 HIIS_IOCTL_GET_ADDR, 154 HISI_IOCTL_SET_MODE, 155 HIIS_IOCTL_GET_HW_FEATURE, 156 HISI_IOCTL_SCAN, 157 HISI_IOCTL_DISCONNET, 158 HISI_IOCTL_ASSOC, 159 HISI_IOCTL_SET_NETDEV, 160 HISI_IOCTL_CHANGE_BEACON, 161 HISI_IOCTL_SET_REKEY_INFO, 162 HISI_IOCTL_STA_REMOVE, 163 HISI_IOCTL_SEND_ACTION, 164 HISI_IOCTL_SET_MESH_USER, 165 HISI_IOCTL_SET_MESH_GTK, 166 HISI_IOCTL_EN_ACCEPT_PEER, 167 HISI_IOCTL_EN_ACCEPT_STA, 168 HISI_IOCTL_ADD_IF, 169 HISI_IOCTL_PROBE_REQUEST_REPORT, 170 HISI_IOCTL_REMAIN_ON_CHANNEL, 171 HISI_IOCTL_CANCEL_REMAIN_ON_CHANNEL, 172 HISI_IOCTL_SET_P2P_NOA, 173 HISI_IOCTL_SET_P2P_POWERSAVE, 174 HISI_IOCTL_SET_AP_WPS_P2P_IE, 175 HISI_IOCTL_REMOVE_IF, 176 HISI_IOCTL_GET_P2P_MAC_ADDR, 177 HISI_IOCTL_GET_DRIVER_FLAGS, 178 HISI_IOCTL_SET_USR_APP_IE, 179 HISI_IOCTL_DELAY_REPORT, 180 HISI_IOCTL_SEND_EXT_AUTH_STATUS, 181 HWAL_EVENT_BUTT 182 }hisi_event_enum; 183 typedef hi_u8 hisi_event_enum_uint8; 184 185 typedef enum { 186 HISI_ELOOP_EVENT_NEW_STA = 0, 187 HISI_ELOOP_EVENT_DEL_STA, 188 HISI_ELOOP_EVENT_RX_MGMT, 189 HISI_ELOOP_EVENT_TX_STATUS, 190 HISI_ELOOP_EVENT_SCAN_DONE, 191 HISI_ELOOP_EVENT_SCAN_RESULT, 192 HISI_ELOOP_EVENT_CONNECT_RESULT, 193 HISI_ELOOP_EVENT_DISCONNECT, 194 HISI_ELOOP_EVENT_MESH_CLOSE, 195 HISI_ELOOP_EVENT_REMAIN_ON_CHANNEL, 196 HISI_ELOOP_EVENT_CANCEL_REMAIN_ON_CHANNEL, 197 HISI_ELOOP_EVENT_CHANNEL_SWITCH, 198 HISI_ELOOP_EVENT_TIMEOUT_DISCONN, 199 HISI_ELOOP_EVENT_EXTERNAL_AUTH, 200 HISI_ELOOP_EVENT_BUTT 201 }hisi_eloop_event_enum; 202 typedef hi_u8 hisi_eloop_event_enum_uint8; 203 204 typedef enum { 205 HISI_MFP_NO, 206 HISI_MFP_OPTIONAL, 207 HISI_MFP_REQUIRED, 208 }hisi_mfp_enum; 209 typedef hi_u8 hisi_mfp_enum_uint8; 210 211 typedef enum { 212 HISI_AUTHTYPE_OPEN_SYSTEM = 0, 213 HISI_AUTHTYPE_SHARED_KEY, 214 HISI_AUTHTYPE_FT, 215 HISI_AUTHTYPE_SAE, 216 HISI_AUTHTYPE_NETWORK_EAP, 217 218 /* keep last */ 219 __HISI_AUTHTYPE_NUM, 220 HISI_AUTHTYPE_MAX = __HISI_AUTHTYPE_NUM - 1, 221 HISI_AUTHTYPE_AUTOMATIC, 222 223 HISI_AUTHTYPE_BUTT 224 }hisi_auth_type_enum; 225 typedef hi_u8 hisi_auth_type_enum_uint8; 226 227 typedef enum { 228 HISI_SCAN_SUCCESS = 0, 229 HISI_SCAN_FAILED = 1, 230 HISI_SCAN_REFUSED = 2, 231 HISI_SCAN_TIMEOUT = 3, 232 } hisi_scan_status_enum; 233 typedef hi_u8 hisi_scan_status_enum_uint8; 234 235 typedef enum { 236 HISI_FRAME_TYPE_BEACON = bit(0), 237 HISI_FRAME_TYPE_PROBE_REQ = bit(1), 238 HISI_FRAME_TYPE_PROBE_RSP = bit(2), 239 HISI_FRAME_TYPE_BUTT 240 } hisi_frame_app_ie_enum; 241 242 /** 243 * Action to perform with external authentication request. 244 * @HISI_EXTERNAL_AUTH_START: Start the authentication. 245 * @HISI_EXTERNAL_AUTH_ABORT: Abort the ongoing authentication. 246 */ 247 typedef enum { 248 HISI_EXTERNAL_AUTH_START, 249 HISI_EXTERNAL_AUTH_ABORT, 250 251 HISI_EXTERNAL_AUTH_BUTT, 252 }hisi_external_auth_action_enum; 253 typedef hi_u8 hisi_external_auth_action_enum_uint8; 254 255 typedef struct _hisi_driver_scan_status_stru { 256 hisi_scan_status_enum scan_status; 257 } hisi_driver_scan_status_stru; 258 259 typedef struct _hisi_ioctl_command_stru { 260 hi_u32 cmd; 261 hi_void *buf; 262 }hisi_ioctl_command_stru; 263 264 typedef hi_s32 (*hisi_send_event_cb)(const hi_char*, hi_s32, hi_u8*, hi_u32); 265 266 #ifdef _PRE_WLAN_FEATURE_P2P 267 typedef struct _hisi_remain_on_channel_stru { 268 hi_s32 freq; 269 hi_s32 duration; 270 } hisi_on_channel_stru; 271 272 typedef struct _hisi_if_add_stru { 273 hi_s8 type; 274 } hisi_if_add_stru; 275 276 typedef struct _hisi_if_remove_stru { 277 hi_u8 ifname[IFNAMSIZ]; 278 } hisi_if_remove_stru; 279 280 typedef struct _hisi_get_p2p_addr_stru { 281 hi_s8 type; 282 hi_u8 mac_addr[ETH_ADDR_LEN]; 283 hi_u8 resv; 284 } hisi_get_p2p_addr_stru; 285 286 typedef struct _hisi_p2p_noa_stru { 287 hi_s32 start; 288 hi_s32 duration; 289 hi_u8 count; 290 hi_u8 resv[3]; /* 3 byte reserved */ 291 } hisi_p2p_noa_stru; 292 293 typedef struct _hisi_p2p_power_save_stru { 294 hi_s32 legacy_ps; 295 hi_s8 opp_ps; 296 hi_u8 ctwindow; 297 hi_u8 resv[2]; /* 2 BYTE reserved */ 298 } hisi_p2p_power_save_stru; 299 #endif 300 301 typedef struct _hisi_get_drv_flags_stru { 302 hi_u64 drv_flags; 303 } hisi_get_drv_flags_stru; 304 305 typedef struct _hisi_new_sta_info_stru { 306 hi_s32 l_reassoc; 307 hi_u32 ielen; 308 hi_u8 *puc_ie; 309 hi_u8 auc_macaddr[ETH_ADDR_LEN]; 310 hi_u8 resv[2]; /* 2 BYTE reserved */ 311 }hisi_new_sta_info_stru; 312 313 typedef struct _hisi_rx_mgmt_stru { 314 hi_u8 *puc_buf; 315 hi_u32 len; 316 hi_s32 l_sig_mbm; 317 hi_u32 freq; 318 }hisi_rx_mgmt_stru; 319 320 typedef struct _hisi_tx_status_stru { 321 hi_u8 *puc_buf; 322 hi_u32 len; 323 hisi_bool_enum_uint8 ack; 324 hi_u8 resv[3]; /* 3 BYTE */ 325 }hisi_tx_status_stru; 326 327 typedef struct _hisi_mlme_data_stru { 328 hi_u32 freq; 329 hi_u32 data_len; 330 hi_u8 *puc_data; 331 hi_u64 *pull_send_action_cookie; 332 }hisi_mlme_data_stru; 333 334 typedef struct _hisi_beacon_data_stru { 335 hi_u32 head_len; 336 hi_u32 tail_len; 337 hi_u8 *puc_head; 338 hi_u8 *puc_tail; 339 }hisi_beacon_data_stru; 340 341 typedef struct _hisi_action_data_stru { 342 hi_u8 *puc_dst; 343 hi_u8 *puc_src; 344 hi_u8 *puc_bssid; 345 hi_u8 *puc_data; 346 hi_u32 data_len; 347 }hisi_action_data_stru; 348 349 #ifdef _PRE_WLAN_FEATURE_MESH 350 typedef struct _hisi_set_mesh_user_data_stru { 351 hi_u8 *puc_addr; 352 hi_u8 plink_state; 353 hi_u8 set; 354 hi_u8 bcn_prio; 355 hi_u8 is_mbr; 356 hi_u8 mesh_initiative_peering; 357 }hisi_set_mesh_user_data_stru; 358 359 typedef struct _hisi_enable_auto_peer_stru { 360 hi_u8 enable_auto_peer; 361 }hisi_enable_auto_peer_stru; 362 363 typedef struct _hisi_set_mesh_user_gtk_stru { 364 hi_u8 *puc_addr; 365 hi_u8 *puc_gtk; 366 hi_u8 gtk_len; 367 hi_u8 resv[3]; /* 3 bytes reserved */ 368 }hisi_set_mesh_user_gtk_stru; 369 370 typedef struct _hisi_enable_accept_peer_stru { 371 hi_u8 enable_accept_peer; 372 }hisi_enable_accept_peer_stru; 373 374 typedef struct _hisi_enable_accept_sta_stru { 375 hi_u8 enable_accept_sta; 376 }hisi_enable_accept_sta_stru; 377 #endif 378 379 typedef struct _hisi_delay_report_stru { 380 hi_u8 enable; 381 hi_u16 timeout; 382 hi_u8 resv; 383 }hisi_delay_report_stru; 384 385 typedef struct _hisi_freq_params_stru { 386 hi_s32 l_mode; 387 hi_s32 l_freq; 388 hi_s32 l_channel; 389 390 /* for HT */ 391 hi_s32 l_ht_enabled; 392 393 /* 0 = HT40 disabled, -1 = HT40 enabled, 394 * secondary channel below primary, 1 = HT40 395 * enabled, secondary channel above primary */ 396 hi_s32 l_sec_channel_offset; 397 398 /* for VHT */ 399 hi_s32 l_vht_enabled; 400 401 /* valid for both HT and VHT, center_freq2 is non-zero 402 * only for bandwidth 80 and an 80+80 channel */ 403 hi_s32 l_center_freq1; 404 hi_s32 l_center_freq2; 405 hi_s32 l_bandwidth; 406 }hisi_freq_params_stru; 407 408 typedef struct _hisi_key_ext_stru { 409 hi_s32 l_type; 410 hi_u32 key_idx; 411 hi_u32 key_len; 412 hi_u32 seq_len; 413 hi_u32 cipher; 414 hi_u8 *puc_addr; 415 hi_u8 *puc_key; 416 hi_u8 *puc_seq; 417 hisi_bool_enum_uint8 def; 418 hisi_bool_enum_uint8 defmgmt; 419 hisi_key_default_types_enum_uint8 default_types; 420 hi_u8 resv; 421 }hisi_key_ext_stru; 422 423 /* Data transfer structure related to AP information configuration */ 424 typedef struct _hisi_ap_settings_stru { 425 hisi_freq_params_stru freq_params; 426 hisi_beacon_data_stru beacon_data; 427 hi_u32 ssid_len; 428 hi_s32 l_beacon_interval; 429 hi_s32 l_dtim_period; 430 hi_u8 *puc_ssid; 431 hisi_hidden_ssid_enum_uint8 hidden_ssid; 432 hisi_auth_type_enum_uint8 auth_type; 433 hi_u8 resv[2]; /* 2 bytes reserved */ 434 }hisi_ap_settings_stru; 435 436 typedef struct _hisi_set_mode_stru { 437 hi_u8 auc_bssid[ETH_ADDR_LEN]; 438 hisi_iftype_enum_uint8 iftype; 439 hi_u8 resv; 440 }hisi_set_mode_stru; 441 442 typedef struct _hisi_tx_eapol_stru { 443 hi_u8 *puc_buf; 444 hi_u32 len; 445 }hisi_tx_eapol_stru; 446 447 typedef struct _hisi_rx_eapol_stru { 448 hi_u8 *puc_buf; 449 hi_u32 len; 450 }hisi_rx_eapol_stru; 451 452 typedef struct _hisi_enable_eapol_stru { 453 hi_void *callback; 454 hi_void *contex; 455 }hisi_enable_eapol_stru; 456 457 typedef struct _hisi_ieee80211_channel_stru { 458 hi_u16 us_channel; 459 hi_u8 resv[2]; /* 2 bytes reserved */ 460 hi_u32 freq; 461 hi_u32 flags; 462 }hisi_ieee80211_channel_stru; 463 464 typedef struct _hisi_hw_feature_data_stru { 465 hi_s32 l_channel_num; 466 hi_u16 aus_bitrate[12]; /* Take 12 short integer space */ 467 hi_u16 us_ht_capab; 468 hi_u8 resv[2]; /* 2 bytes reserved */ 469 hisi_ieee80211_channel_stru ast_iee80211_channel[14]; /* 14 dimensions */ 470 }hisi_hw_feature_data_stru; 471 472 typedef struct _hisi_driver_scan_ssid_stru { 473 hi_u8 auc_ssid[MAX_SSID_LEN]; 474 hi_u32 ssid_len; 475 } hisi_driver_scan_ssid_stru; 476 477 typedef struct _hisi_scan_stru { 478 hisi_driver_scan_ssid_stru *ast_ssids; 479 hi_s32 *pl_freqs; 480 hi_u8 *puc_extra_ies; 481 hi_u8 *puc_bssid; 482 hi_u8 num_ssids; 483 hi_u8 num_freqs; 484 hi_u8 prefix_ssid_scan_flag; 485 hi_u8 fast_connect_flag; 486 hi_u32 extra_ies_len; 487 }hisi_scan_stru; 488 489 typedef struct _hisi_crypto_settings_stru { 490 hi_u32 wpa_versions; 491 hi_u32 cipher_group; 492 hi_s32 l_n_ciphers_pairwise; 493 hi_u32 aul_ciphers_pairwise[HISI_MAX_NR_CIPHER_SUITES]; 494 hi_s32 l_n_akm_suites; 495 hi_u32 aul_akm_suites[HISI_MAX_NR_AKM_SUITES]; 496 }hisi_crypto_settings_stru; 497 498 typedef struct _hisi_associate_params_stru { 499 hi_u8 *puc_bssid; 500 hi_u8 *puc_ssid; 501 hi_u8 *puc_ie; 502 hi_u8 *puc_key; 503 hi_u8 auth_type; 504 hi_u8 privacy; 505 hi_u8 key_len; 506 hi_u8 key_idx; 507 hi_u8 mfp; 508 hi_u8 auto_conn; 509 hi_u8 resv[2]; /* 2 bytes reserved */ 510 hi_u32 freq; 511 hi_u32 ssid_len; 512 hi_u32 ie_len; 513 hisi_crypto_settings_stru *crypto; 514 } hisi_associate_params_stru; 515 516 typedef struct _hisi_connect_result_stru { 517 hi_u8 *puc_req_ie; 518 hi_u32 req_ie_len; 519 hi_u8 *puc_resp_ie; 520 hi_u32 resp_ie_len; 521 hi_u8 auc_bssid[ETH_ADDR_LEN]; 522 hi_u8 resv[2]; /* 2 bytes reserved */ 523 hi_u16 us_status; 524 hi_u16 us_freq; 525 } hisi_connect_result_stru; 526 527 typedef struct _hisi_scan_result_stru { 528 hi_s32 l_flags; 529 hi_u8 auc_bssid[ETH_ADDR_LEN]; 530 hi_s16 s_caps; 531 hi_s32 l_freq; 532 hi_s32 l_level; 533 hi_u32 age; 534 hi_u32 ie_len; 535 hi_u8 *puc_variable; 536 } hisi_scan_result_stru; 537 538 typedef struct _hisi_disconnect_stru { 539 hi_u8 *puc_ie; 540 hi_u16 us_reason; 541 hi_u8 auc_rsv[2]; /* 2 bytes reserved */ 542 hi_u32 ie_len; 543 } hisi_disconnect_stru; 544 545 #ifdef _PRE_WLAN_FEATURE_P2P 546 typedef struct _hisi_app_ie_stru { 547 hi_u32 ie_len; 548 hi_u8 app_ie_type; 549 hi_u8 auc_rsv[3]; /* 3 bytes reserved */ 550 hi_u8 *puc_ie; 551 }hisi_app_ie_stru; 552 #endif 553 #ifdef _PRE_WLAN_FEATURE_REKEY_OFFLOAD 554 typedef struct _hisi_rekey_offload_stru { 555 hi_u8 auc_kck[HISI_REKEY_OFFLOAD_KCK_LEN]; 556 hi_u8 auc_kek[HISI_REKEY_OFFLOAD_KEK_LEN]; 557 hi_u8 auc_replay_ctr[HISI_REKEY_OFFLOAD_REPLAY_COUNTER_LEN]; 558 }hisi_rekey_offload_stru; 559 #endif 560 #ifdef _PRE_WLAN_FEATURE_MESH 561 typedef struct _hisi_mesh_close_peer_stru { 562 hi_u8 auc_macaddr[ETH_ADDR_LEN]; 563 hi_u16 us_reason; 564 } hisi_mesh_close_peer_stru; 565 566 typedef struct _hisi_mesh_new_peer_candidate_stru { 567 hi_u8 auc_peer_addr[ETH_ADDR_LEN]; 568 hi_u8 bcn_prio; 569 hi_u8 is_mbr; 570 hi_s8 rssi; 571 hi_u8 reserved[3]; /* 3 BYTE reserved */ 572 }hisi_mesh_new_peer_candidate_stru; 573 #endif 574 575 typedef struct { 576 hi_u8 set; /* 0: del, 1: add */ 577 hi_u8 ie_type; 578 hi_u16 ie_len; 579 hisi_frame_app_ie_enum frame_type; 580 hi_u8 *ie; 581 } hisi_usr_app_ie_stru; 582 583 typedef struct _hisi_ch_switch_stru { 584 hi_s32 freq; 585 } hisi_ch_switch_stru; 586 587 #ifdef _PRE_WLAN_FEATURE_SAE 588 /* The driver reports an event to trigger WPA to start SAE authentication. */ 589 /* 驱动上报事件触发WPA开始SAE认证 */ 590 typedef struct { 591 hisi_external_auth_action_enum auth_action; 592 hi_u8 bssid[ETH_ADDR_LEN]; 593 hi_u8 *ssid; 594 hi_u32 ssid_len; 595 hi_u32 key_mgmt_suite; 596 hi_u16 status; 597 hi_u8 *pmkid; 598 }hisi_external_auth_stru; 599 #endif 600 601 #ifdef __cplusplus 602 #if __cplusplus 603 } 604 #endif 605 #endif 606 607 #endif /* end of driver_hisi_common.h */ 608