• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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