• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2021 HiSilicon (Shanghai) Technologies CO., LIMITED.
3  *
4  * This program is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU General Public License
6  * as published by the Free Software Foundation; either version 2
7  * of the License, or (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
17  */
18 
19 /* *
20  * @defgroup hi_wifi WiFi API
21  */
22 /* *
23  * @defgroup hi_wifi_driver_wpa Basic Settings
24  * @ingroup hi_wifi
25  */
26 
27 #ifndef __DRIVER_HISI_COMMON_H__
28 #define __DRIVER_HISI_COMMON_H__
29 
30 /* ****************************************************************************
31   1 其他头文件包含
32 **************************************************************************** */
33 #include "hi_types.h"
34 
35 #ifdef __cplusplus
36 #if __cplusplus
37 extern "C" {
38 #endif
39 #endif
40 
41 /* ****************************************************************************
42   2 宏定义
43 **************************************************************************** */
44 #ifndef ETH_ADDR_LEN
45 #define ETH_ADDR_LEN        6
46 #endif
47 
48 #define HISI_SUCC            0
49 #define HISI_EFAIL           1
50 #define HISI_EINVAL         22
51 
52 #ifndef MAX_SSID_LEN
53 #define MAX_SSID_LEN        32
54 #endif
55 
56 #ifndef HISI_MAX_NR_CIPHER_SUITES
57 #define HISI_MAX_NR_CIPHER_SUITES    5
58 #endif
59 
60 #ifndef HISI_WPAS_MAX_SCAN_SSIDS
61 #define HISI_WPAS_MAX_SCAN_SSIDS     2
62 #endif
63 
64 #ifndef HISI_PTR_NULL
65 #define HISI_PTR_NULL  NULL
66 #endif
67 
68 #ifndef HISI_MAX_NR_AKM_SUITES
69 #define HISI_MAX_NR_AKM_SUITES       2
70 #endif
71 
72 
73 #ifndef NOTIFY_DONE
74 #define NOTIFY_DONE            0x0000
75 #endif
76 #ifndef NETDEV_UP
77 #define NETDEV_UP              0x0001
78 #endif
79 #ifndef SCAN_AP_LIMIT
80 #define SCAN_AP_LIMIT            64
81 #endif
82 #ifndef NETDEV_DOWN
83 #define NETDEV_DOWN            0x0002
84 #endif
85 
86 #ifdef _PRE_WLAN_FEATURE_REKEY_OFFLOAD
87 #define HISI_REKEY_OFFLOAD_KCK_LEN              16
88 #define HISI_REKEY_OFFLOAD_KEK_LEN              16
89 #define HISI_REKEY_OFFLOAD_REPLAY_COUNTER_LEN   8
90 #endif
91 
92 #define HI_WIFI_HIPRIV_ARGC_MAX 10
93 
94 /* ****************************************************************************
95   4 枚举定义
96 **************************************************************************** */
97 typedef enum {
98     HISI_FALSE   = 0,
99     HISI_TRUE    = 1,
100 
101     HISI_BUTT
102 } hisi_bool_enum;
103 
104 typedef hi_u8 hisi_bool_enum_uint8;
105 
106 typedef enum {
107     HISI_IFTYPE_UNSPECIFIED,
108     HISI_IFTYPE_ADHOC,
109     HISI_IFTYPE_STATION,
110     HISI_IFTYPE_AP,
111     HISI_IFTYPE_AP_VLAN,
112     HISI_IFTYPE_WDS,
113     HISI_IFTYPE_MONITOR,
114     HISI_IFTYPE_MESH_POINT,
115     HISI_IFTYPE_P2P_CLIENT,
116     HISI_IFTYPE_P2P_GO,
117     HISI_IFTYPE_P2P_DEVICE,
118 
119     /* keep last */
120     NUM_HISI_IFTYPES,
121     HISI_IFTYPE_MAX = NUM_HISI_IFTYPES - 1
122 } hisi_iftype_enum;
123 typedef hi_u8 hisi_iftype_enum_uint8;
124 
125 typedef enum {
126     HISI_KEYTYPE_GROUP,
127     HISI_KEYTYPE_PAIRWISE,
128     HISI_KEYTYPE_PEERKEY,
129     NUM_HISI_KEYTYPES
130 } hisi_key_type_enum;
131 typedef hi_u8 hisi_key_type_enum_uint8;
132 
133 typedef enum {
134     HISI_KEY_DEFAULT_TYPE_INVALID,
135     HISI_KEY_DEFAULT_TYPE_UNICAST,
136     HISI_KEY_DEFAULT_TYPE_MULTICAST,
137     NUM_HISI_KEY_DEFAULT_TYPES
138 } hisi_key_default_types_enum;
139 typedef hi_u8 hisi_key_default_types_enum_uint8;
140 
141 typedef enum {
142     HISI_NO_SSID_HIDING,
143     HISI_HIDDEN_SSID_ZERO_LEN,
144     HISI_HIDDEN_SSID_ZERO_CONTENTS
145 } hisi_hidden_ssid_enum;
146 typedef hi_u8 hisi_hidden_ssid_enum_uint8;
147 
148 typedef enum {
149     HISI_IOCTL_SET_AP = 0,
150     HISI_IOCTL_NEW_KEY,
151     HISI_IOCTL_DEL_KEY,
152     HISI_IOCTL_SET_KEY,
153     HISI_IOCTL_SEND_MLME,
154     HISI_IOCTL_SEND_EAPOL,
155     HISI_IOCTL_RECEIVE_EAPOL,
156     HISI_IOCTL_ENALBE_EAPOL,
157     HISI_IOCTL_DISABLE_EAPOL,
158     HIIS_IOCTL_GET_ADDR,
159     HISI_IOCTL_SET_MODE,
160     HIIS_IOCTL_GET_HW_FEATURE,
161     HISI_IOCTL_SCAN,
162     HISI_IOCTL_DISCONNET,
163     HISI_IOCTL_ASSOC,
164     HISI_IOCTL_SET_NETDEV,
165     HISI_IOCTL_CHANGE_BEACON,
166     HISI_IOCTL_SET_REKEY_INFO,
167     HISI_IOCTL_STA_REMOVE,
168     HISI_IOCTL_SEND_ACTION,
169     HISI_IOCTL_SET_MESH_USER,
170     HISI_IOCTL_SET_MESH_GTK,
171     HISI_IOCTL_EN_ACCEPT_PEER,
172     HISI_IOCTL_EN_ACCEPT_STA,
173     HISI_IOCTL_ADD_IF,
174     HISI_IOCTL_PROBE_REQUEST_REPORT,
175     HISI_IOCTL_REMAIN_ON_CHANNEL,
176     HISI_IOCTL_CANCEL_REMAIN_ON_CHANNEL,
177     HISI_IOCTL_SET_P2P_NOA,
178     HISI_IOCTL_SET_P2P_POWERSAVE,
179     HISI_IOCTL_SET_AP_WPS_P2P_IE,
180     HISI_IOCTL_REMOVE_IF,
181     HISI_IOCTL_GET_P2P_MAC_ADDR,
182     HISI_IOCTL_GET_DRIVER_FLAGS,
183     HISI_IOCTL_SET_USR_APP_IE,
184     HISI_IOCTL_DELAY_REPORT,
185     HWAL_EVENT_BUTT
186 } hisi_event_enum;
187 typedef hi_u8 hisi_event_enum_uint8;
188 
189 typedef enum {
190     HISI_ELOOP_EVENT_NEW_STA = 0,
191     HISI_ELOOP_EVENT_DEL_STA,
192     HISI_ELOOP_EVENT_RX_MGMT,
193     HISI_ELOOP_EVENT_TX_STATUS,
194     HISI_ELOOP_EVENT_SCAN_DONE,
195     HISI_ELOOP_EVENT_SCAN_RESULT,
196     HISI_ELOOP_EVENT_CONNECT_RESULT,
197     HISI_ELOOP_EVENT_DISCONNECT,
198 #if (_PRE_OS_VERSION_LINUX == _PRE_OS_VERSION)
199     HISI_ELOOP_EVENT_RX_DFX,
200 #endif
201     HISI_ELOOP_EVENT_MESH_CLOSE,
202     HISI_ELOOP_EVENT_NEW_PEER_CANDIDATE,
203 #if (_PRE_OS_VERSION_LINUX == _PRE_OS_VERSION)
204     HISI_ELOOP_EVENT_MICHAEL_MIC_FAILURE,
205 #endif
206     HISI_ELOOP_EVENT_REMAIN_ON_CHANNEL,
207     HISI_ELOOP_EVENT_CANCEL_REMAIN_ON_CHANNEL,
208     HISI_ELOOP_EVENT_CHANNEL_SWITCH,
209     HISI_ELOOP_EVENT_EAPOL_RECV,
210     HISI_ELOOP_EVENT_TIMEOUT_DISCONN,
211     HISI_ELOOP_EVENT_BUTT
212 } hisi_eloop_event_enum;
213 typedef hi_u8 hisi_eloop_event_enum_uint8;
214 
215 typedef enum {
216     HISI_MFP_NO,
217     HISI_MFP_OPTIONAL,
218     HISI_MFP_REQUIRED,
219 } hisi_mfp_enum;
220 typedef hi_u8 hisi_mfp_enum_uint8;
221 
222 typedef enum {
223     HISI_AUTHTYPE_OPEN_SYSTEM = 0,
224     HISI_AUTHTYPE_SHARED_KEY,
225     HISI_AUTHTYPE_FT,
226     HISI_AUTHTYPE_NETWORK_EAP,
227     HISI_AUTHTYPE_SAE,
228 
229     /* keep last */
230     __HISI_AUTHTYPE_NUM,
231     HISI_AUTHTYPE_MAX = __HISI_AUTHTYPE_NUM - 1,
232     HISI_AUTHTYPE_AUTOMATIC,
233 
234     HISI_AUTHTYPE_BUTT
235 } hisi_auth_type_enum;
236 typedef hi_u8 hisi_auth_type_enum_uint8;
237 
238 typedef enum {
239     HISI_SCAN_SUCCESS = 0,
240     HISI_SCAN_FAILED = 1,
241     HISI_SCAN_REFUSED = 2,
242     HISI_SCAN_TIMEOUT = 3,
243 } hisi_scan_status_enum;
244 typedef hi_u8 hisi_scan_status_enum_uint8;
245 
246 typedef enum {
247     HISI_FRAME_TYPE_BEACON    = bit(0),
248     HISI_FRAME_TYPE_PROBE_REQ = bit(1),
249     HISI_FRAME_TYPE_BUTT
250 } hisi_frame_app_ie_enum;
251 
252 /* ****************************************************************************
253   5 全局变量声明
254 **************************************************************************** */
255 /* ****************************************************************************
256   6 消息头定义
257 **************************************************************************** */
258 /* ****************************************************************************
259   7 消息定义
260 **************************************************************************** */
261 /* ****************************************************************************
262   8 STRUCT定义
263 **************************************************************************** */
264 typedef struct _hisi_driver_scan_status_stru {
265     hisi_scan_status_enum scan_status;
266 } hisi_driver_scan_status_stru;
267 
268 typedef struct _hisi_ioctl_command_stru {
269     hi_u32      cmd;
270     hi_void    *buf;
271 } hisi_ioctl_command_stru;
272 
273 typedef hi_s32 (*hisi_send_event_cb)(const hi_char *, hi_s32, hi_u8 *, hi_u32);
274 
275 #ifdef _PRE_WLAN_FEATURE_P2P
276 typedef struct _hisi_remain_on_channel_stru {
277     hi_s32 freq;
278     hi_s32 duration;
279 } hisi_on_channel_stru;
280 
281 typedef struct _hisi_if_add_stru {
282     hi_s8 type;
283 } hisi_if_add_stru;
284 #define WIFI_IFNAME_MAX_SIZE 16
285 typedef struct _hisi_if_remove_stru {
286     hi_u8 ifname[WIFI_IFNAME_MAX_SIZE];
287 } hisi_if_remove_stru;
288 
289 typedef struct _hisi_get_p2p_addr_stru {
290     hi_s8 type;
291     hi_u8 mac_addr[ETH_ADDR_LEN];
292     hi_u8 resv;
293 } hisi_get_p2p_addr_stru;
294 
295 typedef struct _hisi_p2p_noa_stru {
296     hi_s32 start;
297     hi_s32 duration;
298     hi_u8 count;
299     hi_u8 resv[3]; /* 3 byte保留字段 */
300 } hisi_p2p_noa_stru;
301 
302 typedef struct _hisi_p2p_power_save_stru {
303     hi_s32 legacy_ps;
304     hi_s8 opp_ps;
305     hi_u8 ctwindow;
306     hi_u8 resv[2]; /* 2 BYTE 保留字段 */
307 } hisi_p2p_power_save_stru;
308 #endif
309 
310 typedef struct _hisi_get_drv_flags_stru {
311     hi_u64 drv_flags;
312 } hisi_get_drv_flags_stru;
313 
314 typedef struct _hisi_new_sta_info_stru {
315     hi_s32 reassoc;
316     hi_u32 ielen;
317     hi_u8 *ie;
318     hi_u8 macaddr[ETH_ADDR_LEN];
319     hi_u8 resv[2]; /* 2 BYTE保留字段 */
320 } hisi_new_sta_info_stru;
321 
322 typedef struct _hisi_rx_mgmt_stru {
323     hi_u8 *buf;
324     hi_u32 len;
325     hi_s32 sig_mbm;
326     hi_u32 freq;
327 } hisi_rx_mgmt_stru;
328 
329 typedef struct _hisi_tx_status_stru {
330     hi_u8               *buf;
331     hi_u32               len;
332     hisi_bool_enum_uint8 ack;
333     hi_u8 resv[3]; /* 3 BYTE保留字段 */
334 } hisi_tx_status_stru;
335 
336 typedef struct _hisi_mlme_data_stru {
337     hi_u32 freq;
338     hi_u32 data_len;
339     hi_u8 *data;
340     hi_u64 *send_action_cookie;
341 } hisi_mlme_data_stru;
342 
343 typedef struct _hisi_beacon_data_stru {
344     hi_u32 head_len;
345     hi_u32 tail_len;
346     hi_u8 *head;
347     hi_u8 *tail;
348 } hisi_beacon_data_stru;
349 
350 typedef struct _hisi_action_data_stru {
351     hi_u8 *dst;
352     hi_u8 *src;
353     hi_u8 *bssid;
354     hi_u8 *data;
355     hi_u32 data_len;
356 } hisi_action_data_stru;
357 
358 #ifdef _PRE_WLAN_FEATURE_MESH
359 typedef struct _hisi_set_mesh_user_data_stru {
360     hi_u8 *puc_addr;
361     hi_u8 plink_state;
362     hi_u8 set;
363     hi_u8 bcn_prio; /* 上报lwip使用 */
364     hi_u8 is_mbr;
365     hi_u8 mesh_initiative_peering;
366 } hisi_set_mesh_user_data_stru;
367 
368 typedef struct _hisi_enable_auto_peer_stru {
369     hi_u8 enable_auto_peer;
370 } hisi_enable_auto_peer_stru;
371 
372 typedef struct _hisi_set_mesh_user_gtk_stru {
373     hi_u8 *puc_addr;
374     hi_u8 *puc_gtk;
375     hi_u8 gtk_len;
376     hi_u8 resv[3]; /* 3 BYTE保留字段 */
377 } hisi_set_mesh_user_gtk_stru;
378 
379 typedef struct _hisi_enable_accept_peer_stru {
380     hi_u8 enable_accept_peer;
381 } hisi_enable_accept_peer_stru;
382 
383 typedef struct _hisi_enable_accept_sta_stru {
384     hi_u8 enable_accept_sta;
385 } hisi_enable_accept_sta_stru;
386 #endif
387 
388 /* 延时上报关联状态配置参数结构体 */
389 typedef struct _hisi_delay_report_stru {
390     hi_u8  enable;   /* 配置开关 */
391     hi_u16 timeout; /* 延时时间 */
392     hi_u8  resv;
393 } hisi_delay_report_stru;
394 
395 typedef struct _hisi_freq_params_stru {
396     hi_s32 l_mode;
397     hi_s32 l_freq;
398     hi_s32 l_channel;
399 
400     /* for HT */
401     hi_s32 l_ht_enabled;
402 
403     /* 0 = HT40 disabled, -1 = HT40 enabled,
404      * secondary channel below primary, 1 = HT40
405      * enabled, secondary channel above primary */
406     hi_s32 l_sec_channel_offset;
407 
408     /* for VHT */
409     hi_s32 l_vht_enabled;
410 
411     /* valid for both HT and VHT, center_freq2 is non-zero
412      * only for bandwidth 80 and an 80+80 channel */
413     hi_s32 l_center_freq1;
414     hi_s32 l_center_freq2;
415     hi_s32 l_bandwidth;
416 } hisi_freq_params_stru;
417 
418 /* 密钥信息设置数据传递结构体 */
419 typedef struct _hisi_key_ext_stru {
420     hi_s32                          type;
421     hi_u32                          key_idx;
422     hi_u32                          key_len;
423     hi_u32                          seq_len;
424     hi_u32                          cipher;
425     hi_u8                          *addr;
426     hi_u8                          *key;
427     hi_u8                          *seq;
428     hisi_bool_enum_uint8                def;
429     hisi_bool_enum_uint8                defmgmt;
430     hisi_key_default_types_enum_uint8   default_types;
431     hi_u8                               resv;
432 } hisi_key_ext_stru;
433 
434 /* AP信息设置相关数据传递结构体 */
435 typedef struct _hisi_ap_settings_stru {
436     hisi_freq_params_stru        freq_params;
437     hisi_beacon_data_stru        beacon_data;
438     hi_u32                       ssid_len;
439     hi_s32                       l_beacon_interval;
440     hi_s32                       l_dtim_period;
441     hi_u8                       *puc_ssid;
442     hisi_hidden_ssid_enum_uint8  hidden_ssid;
443     hisi_auth_type_enum_uint8    auth_type;
444     hi_u8                        resv[2]; /* 2 BYTE 保留字段 */
445 } hisi_ap_settings_stru;
446 
447 /* 设置模式结构体 */
448 typedef struct _hisi_set_mode_stru {
449     hi_u8                   bssid[ETH_ADDR_LEN];
450     hisi_iftype_enum_uint8  iftype;
451     hi_u8                   resv;
452 } hisi_set_mode_stru;
453 
454 typedef struct _hisi_tx_eapol_stru {
455     hi_u8 *buf;
456     hi_u32 len;
457 } hisi_tx_eapol_stru;
458 
459 typedef struct _hisi_rx_eapol_stru {
460     hi_u8 *buf;
461     hi_u32 len;
462 } hisi_rx_eapol_stru;
463 
464 typedef struct _hisi_enable_eapol_stru {
465     hi_void *callback;
466     hi_void *contex;
467 } hisi_enable_eapol_stru;
468 
469 typedef struct _hisi_ieee80211_channel_stru {
470     hi_u16 channel;
471     hi_u8  resv[2]; /* 2 BYTE保留字段 */
472     hi_u32 freq;
473     hi_u32 flags;
474 } hisi_ieee80211_channel_stru;
475 
476 typedef struct _hisi_hw_feature_data_stru {
477     hi_s32 channel_num;
478     hi_u16 bitrate[12]; /* 占12 short */
479     hi_u16 ht_capab;
480     hi_u8  resv[2];                                    /* 2 BYTE保留字段 */
481     hisi_ieee80211_channel_stru iee80211_channel[14]; /* 14维 */
482 } hisi_hw_feature_data_stru;
483 
484 typedef struct _hisi_driver_scan_ssid_stru {
485     hi_u8  auc_ssid[MAX_SSID_LEN];
486     hi_u32 ssid_len;
487 } hisi_driver_scan_ssid_stru;
488 
489 typedef struct _hisi_scan_stru {
490     hisi_driver_scan_ssid_stru *ssids;
491     hi_s32                     *freqs;
492     hi_u8                      *extra_ies;
493     hi_u8                      *bssid;
494     hi_u8                       num_ssids;
495     hi_u8                       num_freqs;
496     hi_u8                       prefix_ssid_scan_flag;
497     hi_u8                       fast_connect_flag;
498     hi_u32                      extra_ies_len;
499 } hisi_scan_stru;
500 
501 typedef struct _hisi_crypto_settings_stru {
502     hi_u32 wpa_versions;
503     hi_u32 cipher_group;
504     hi_s32 l_n_ciphers_pairwise;
505     hi_u32 aul_ciphers_pairwise[HISI_MAX_NR_CIPHER_SUITES];
506     hi_s32 l_n_akm_suites;
507     hi_u32 aul_akm_suites[HISI_MAX_NR_AKM_SUITES];
508 } hisi_crypto_settings_stru;
509 
510 typedef struct _hisi_associate_params_stru {
511     hi_u8 *bssid;
512     hi_u8 *ssid;
513     hi_u8 *ie;
514     hi_u8 *key;
515     hi_u8 auth_type;
516     hi_u8 privacy;
517     hi_u8 key_len;
518     hi_u8 key_idx;
519     hi_u8 mfp;
520     hi_u8 auto_conn; /* 自动重关联标志 */
521     hi_u8 resv[2];   /* 2 BYTE保留字段 */
522     hi_u32 freq;
523     hi_u32 ssid_len;
524     hi_u32 ie_len;
525     hisi_crypto_settings_stru *crypto;
526 } hisi_associate_params_stru;
527 
528 
529 typedef struct _hisi_connect_result_stru {
530     hi_u8              *req_ie;
531     hi_u32              req_ie_len;
532     hi_u8              *resp_ie;
533     hi_u32              resp_ie_len;
534     hi_u8               bssid[ETH_ADDR_LEN];
535     hi_u8               resv[2]; /* 2 BYTE保留字段 */
536     hi_u16              status;
537     hi_u16              freq;
538 } hisi_connect_result_stru;
539 
540 typedef struct _hisi_scan_result_stru {
541     hi_s32 flags;
542     hi_u8  bssid[ETH_ADDR_LEN];
543     hi_s16 caps;
544     hi_s32 freq;
545     hi_s16 beacon_int;
546     hi_s32 qual;
547     hi_u32 beacon_ie_len;
548     hi_s32 level;
549     hi_u32 age;
550     hi_u32 ie_len;
551     hi_u8  *variable;
552 } hisi_scan_result_stru;
553 
554 typedef struct _hisi_disconnect_stru {
555     hi_u8  *ie;
556     hi_u16 reason;
557     hi_u8  rsv[2]; /* 2 BYTE保留字段 */
558     hi_u32 ie_len;
559 } hisi_disconnect_stru;
560 
561 #if (_PRE_OS_VERSION_LINUX == _PRE_OS_VERSION)
562 typedef struct _hisi_michael_mic_failure_stru {
563     hi_u8 user_mac_addr[WLAN_MAC_ADDR_LEN];
564     hi_u8 reserve[2]; /* 2 BYTE保留字段 */
565     oal_nl80211_key_type key_type;
566     hi_s32 l_key_id;
567 } hisi_michael_mic_failure_stru;
568 #endif
569 #ifdef _PRE_WLAN_FEATURE_P2P
570 typedef struct _hisi_app_ie_stru {
571     hi_u32 ie_len;
572     hi_u8  app_ie_type;
573     hi_u8  auc_rsv[3]; /* 3 BYTE保留字段 */
574     /* auc_ie 中保存信息元素 */
575     hi_u8 *puc_ie;
576 } hisi_app_ie_stru;
577 #endif
578 #ifdef _PRE_WLAN_FEATURE_REKEY_OFFLOAD
579 typedef struct _hisi_rekey_offload_stru {
580     hi_u8 auc_kck[HISI_REKEY_OFFLOAD_KCK_LEN];
581     hi_u8 auc_kek[HISI_REKEY_OFFLOAD_KEK_LEN];
582     hi_u8 auc_replay_ctr[HISI_REKEY_OFFLOAD_REPLAY_COUNTER_LEN];
583 } hisi_rekey_offload_stru;
584 #endif
585 #ifdef _PRE_WLAN_FEATURE_MESH
586 typedef struct _hisi_mesh_close_peer_stru {
587     hi_u8 auc_macaddr[ETH_ADDR_LEN];
588     hi_u16 us_reason;
589 } hisi_mesh_close_peer_stru;
590 
591 typedef struct _hisi_mesh_new_peer_candidate_stru {
592     hi_u8 peer_addr[ETH_ADDR_LEN];
593     hi_u8 bcn_prio;
594     hi_u8 is_mbr;
595     hi_s8 rssi;
596     hi_u8 reserved[3]; /* 3 BYTE保留字段 */
597 } hisi_mesh_new_peer_candidate_stru;
598 
599 typedef struct {
600     hi_u8 set; /* 0: del, 1: add */
601     hi_u8 ie_type;
602     hi_u16 ie_len;
603     hisi_frame_app_ie_enum frame_type;
604     hi_u8 *ie;
605 } hisi_usr_app_ie_stru;
606 #endif
607 
608 typedef struct _hisi_ch_switch_stru {
609     hi_s32 freq;
610 } hisi_ch_switch_stru;
611 
612 /* ****************************************************************************
613   9 UNION定义
614 **************************************************************************** */
615 /* ****************************************************************************
616   10 OTHERS定义
617 **************************************************************************** */
618 /* ****************************************************************************
619   11 函数声明
620 **************************************************************************** */
621 #ifdef __cplusplus
622 #if __cplusplus
623 }
624 #endif
625 #endif
626 
627 #endif /* end of driver_hisi_common.h */
628