WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
wal_cfg80211.h
浏览该文件的文档.
1/*
2 * Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2019-2022. All rights reserved.
3 * Description: Header file for wal_cfg80211.c.
4 */
5
6#ifndef __WAL_CFG80211_H__
7#define __WAL_CFG80211_H__
8
9/*****************************************************************************
10 1 其他头文件包含
11*****************************************************************************/
12#include "oal_ext_if.h"
13#include "wal_main.h"
14#include "hmac_ext_if.h"
15#include "wal_ioctl.h"
16#include "wal_ccpriv.h"
17#include "wal_scan.h"
18#include "oal_net.h"
20#ifdef _PRE_WLAN_FEATURE_P2P
21#include "hmac_p2p.h"
22#endif
23
24#ifdef __cplusplus
25#if __cplusplus
26extern "C" {
27#endif
28#endif
29
30/*****************************************************************************
31 2 宏定义
32*****************************************************************************/
33#define WAL_MAX_SCAN_TIME_PER_CHANNEL 400
34
35#define WAL_MAX_SCAN_TIME_PER_SCAN_REQ (5 * 1000) /* wpa_s下发扫描请求,超时时间为5s,单位为ms */
36
37/* channel index and frequence */
38#define WAL_MIN_CHANNEL_2G 1
39#define WAL_MAX_CHANNEL_2G 14
40
41#define WAL_MIN_FREQ_2G (2412 + 5*(WAL_MIN_CHANNEL_2G - 1))
42#ifdef _PRE_WLAN_FEATURE_015CHANNEL_EXP
43#define WAL_MAX_FREQ_2G 2512
44#else
45#define WAL_MAX_FREQ_2G 2484
46#endif
47
48/* wiphy 结构体初始化变量 */
49#define WAL_MAX_SCAN_IE_LEN 1000
50/* 802.11n HT 能力掩码 */
51#define IEEE80211_HT_CAP_LDPC_CODING 0x0001
52#define IEEE80211_HT_CAP_SUP_WIDTH_20_40 0x0002
53#define IEEE80211_HT_CAP_SM_PS 0x000C
54#define IEEE80211_HT_CAP_SM_PS_SHIFT 2
55#define IEEE80211_HT_CAP_GRN_FLD 0x0010
56#define IEEE80211_HT_CAP_SGI_20 0x0020
57#define IEEE80211_HT_CAP_SGI_40 0x0040
58#define IEEE80211_HT_CAP_TX_STBC 0x0080
59#define IEEE80211_HT_CAP_RX_STBC 0x0300
60#define IEEE80211_HT_CAP_DELAY_BA 0x0400
61#define IEEE80211_HT_CAP_MAX_AMSDU 0x0800
62#define IEEE80211_HT_CAP_DSSSCCK40 0x1000
63#define IEEE80211_HT_CAP_RESERVED 0x2000
64#define IEEE80211_HT_CAP_40MHZ_INTOLERANT 0x4000
65#define IEEE80211_HT_CAP_LSIG_TXOP_PROT 0x8000
66
67/* 802.11ac VHT Capabilities */
68#define IEEE80211_VHT_CAP_MAX_MPDU_LENGTH_3895 0x00000000
69#define IEEE80211_VHT_CAP_MAX_MPDU_LENGTH_7991 0x00000001
70#define IEEE80211_VHT_CAP_MAX_MPDU_LENGTH_11454 0x00000002
71#define IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_160MHZ 0x00000004
72#define IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_160_80PLUS80MHZ 0x00000008
73#define IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_MASK 0x0000000C
74#define IEEE80211_VHT_CAP_RXLDPC 0x00000010
75#define IEEE80211_VHT_CAP_SHORT_GI_80 0x00000020
76#define IEEE80211_VHT_CAP_SHORT_GI_160 0x00000040
77#define IEEE80211_VHT_CAP_TXSTBC 0x00000080
78#define IEEE80211_VHT_CAP_RXSTBC_1 0x00000100
79#define IEEE80211_VHT_CAP_RXSTBC_2 0x00000200
80#define IEEE80211_VHT_CAP_RXSTBC_3 0x00000300
81#define IEEE80211_VHT_CAP_RXSTBC_4 0x00000400
82#define IEEE80211_VHT_CAP_RXSTBC_MASK 0x00000700
83#define IEEE80211_VHT_CAP_SU_BEAMFORMER_CAPABLE 0x00000800
84#define IEEE80211_VHT_CAP_SU_BEAMFORMEE_CAPABLE 0x00001000
85#define IEEE80211_VHT_CAP_BEAMFORMER_ANTENNAS_MAX 0x00006000
86#define IEEE80211_VHT_CAP_SOUNDING_DIMENSIONS_MAX 0x00030000
87#define IEEE80211_VHT_CAP_MU_BEAMFORMER_CAPABLE 0x00080000
88#define IEEE80211_VHT_CAP_MU_BEAMFORMEE_CAPABLE 0x00100000
89#define IEEE80211_VHT_CAP_VHT_TXOP_PS 0x00200000
90#define IEEE80211_VHT_CAP_HTC_VHT 0x00400000
91#define IEEE80211_VHT_CAP_MAX_A_MPDU_LENGTH_EXPONENT_SHIFT 23
92#define IEEE80211_VHT_CAP_MAX_A_MPDU_LENGTH_EXPONENT_MASK \
93 (7 << IEEE80211_VHT_CAP_MAX_A_MPDU_LENGTH_EXPONENT_SHIFT)
94#define IEEE80211_VHT_CAP_VHT_LINK_ADAPTATION_VHT_UNSOL_MFB 0x08000000
95#define IEEE80211_VHT_CAP_VHT_LINK_ADAPTATION_VHT_MRQ_MFB 0x0c000000
96#define IEEE80211_VHT_CAP_RX_ANTENNA_PATTERN 0x10000000
97#define IEEE80211_VHT_CAP_TX_ANTENNA_PATTERN 0x20000000
98
99/* management */
100#define IEEE80211_STYPE_ASSOC_REQ 0x0000
101#define IEEE80211_STYPE_ASSOC_RESP 0x0010
102#define IEEE80211_STYPE_REASSOC_REQ 0x0020
103#define IEEE80211_STYPE_REASSOC_RESP 0x0030
104#define IEEE80211_STYPE_PROBE_REQ 0x0040
105#define IEEE80211_STYPE_PROBE_RESP 0x0050
106#define IEEE80211_STYPE_BEACON 0x0080
107#define IEEE80211_STYPE_ATIM 0x0090
108#define IEEE80211_STYPE_DISASSOC 0x00A0
109#define IEEE80211_STYPE_AUTH 0x00B0
110#define IEEE80211_STYPE_DEAUTH 0x00C0
111#define IEEE80211_STYPE_ACTION 0x00D0
112
113#define WAL_COOKIE_ARRAY_SIZE 8 /* 采用8bit 的map 作为保存cookie 的索引状态 */
114#define WAL_MGMT_TX_TIMEOUT_MSEC 500 /* WAL 发送管理帧超时时间 */
115#define WAL_MGMT_TX_RETRY_CNT 8 /* WAL 发送管理帧最大重传次数 */
116
117#define IEEE80211_FCTL_FTYPE 0x000c
118#define IEEE80211_FCTL_STYPE 0x00f0
119#define IEEE80211_FTYPE_MGMT 0x0000
120
121#define WAL_GET_STATION_THRESHOLD 1000 /* 固定时间内允许一次抛事件读DMAC RSSI */
122
128
129#define ratetab_ent(_rate, _rateid, _flags) \
130{ \
131 .bitrate = (_rate), \
132 .hw_value = (_rateid), \
133 .flags = (_flags), \
134}
135
136#define chan2g(_channel, _freq, _flags) \
137{ \
138 .band = OAL_IEEE80211_BAND_2GHZ, \
139 .center_freq = (_freq), \
140 .hw_value = (_channel), \
141 .flags = (_flags), \
142 .max_antenna_gain = 0, \
143 .max_power = 30, \
144}
145
146#define WAL_MIN_RTS_THRESHOLD 256
147#define WAL_MAX_RTS_THRESHOLD 0xFFFF
148
149#define WAL_MAX_FRAG_THRESHOLD 7536
150#define WAL_MIN_FRAG_THRESHOLD 256
151
152#define WAL_MAX_WAIT_TIME 3000
153
154#if defined(_PRE_OS_VERSION_LITEOS) && defined(_PRE_WLAN_FEATURE_11R)
155typedef struct {
156 osal_u16 md;
157 const osal_u8 *ie;
159} oal_ft_ies_stru;
160#endif
161
162#if defined(_PRE_WLAN_FEATURE_WS92_MERGE) && defined(_PRE_WLAN_FEATURE_ACS)
163typedef struct survey_info {
164 oal_ieee80211_channel *channel;
165 osal_u64 channel_time;
166 osal_u64 channel_time_busy;
167 osal_u64 channel_time_ext_busy;
168 osal_u64 channel_time_rx;
169 osal_u64 channel_time_tx;
170 osal_u32 filled;
171 osal_s8 noise;
172} oal_survey_info_stru;
173
174enum survey_info_flags {
175 SURVEY_INFO_NOISE_DBM,
176 SURVEY_INFO_IN_USE,
177 SURVEY_INFO_CHANNEL_TIME,
178 SURVEY_INFO_CHANNEL_TIME_BUSY,
179 SURVEY_INFO_CHANNEL_TIME_EXT_BUSY,
180 SURVEY_INFO_CHANNEL_TIME_RX,
181 SURVEY_INFO_CHANNEL_TIME_TX
182};
183
184#define SURVEY_HAS_NF (1U << 0)
185#define SURVEY_HAS_CHAN_TIME (1U << 1)
186#define SURVEY_HAS_CHAN_TIME_BUSY (1U << 2)
187#define SURVEY_HAS_CHAN_TIME_RX (1U << 3)
188#define SURVEY_HAS_CHAN_TIME_TX (1U << 4)
189#endif
190/*****************************************************************************
191 3 枚举定义
192*****************************************************************************/
193/*****************************************************************************
194 4 全局变量声明
195*****************************************************************************/
196/*****************************************************************************
197 5 消息头定义
198*****************************************************************************/
199/*****************************************************************************
200 6 消息定义
201*****************************************************************************/
202/*****************************************************************************
203 7 STRUCT定义
204*****************************************************************************/
205/*****************************************************************************
206 8 UNION定义
207*****************************************************************************/
208/*****************************************************************************
209 9 OTHERS定义
210*****************************************************************************/
211/*****************************************************************************
212 10 函数声明
213*****************************************************************************/
214
215/*****************************************************************************
216 函 数 名 : oal_ieee80211_is_probe_resp
217*****************************************************************************/
218static inline td_u32 oal_ieee80211_is_probe_resp(td_u16 fc)
219{
220 return (fc & (IEEE80211_FCTL_FTYPE | IEEE80211_FCTL_STYPE)) ==
222}
223#ifndef _PRE_WLAN_FEATURE_MFG_ONLY
225#endif
228td_u32 wal_cfg80211_set_default_key(oal_net_device_stru *netdev, td_u8 key_index, td_bool unicast,
229 td_bool multicast);
230td_u32 wal_cfg80211_add_key(oal_net_device_stru *netdev, const cfg80211_add_key_info_stru *cfg80211_add_key_info,
231 const td_u8 *mac_addr, oal_key_params_stru *params);
232td_u32 wal_cfg80211_remove_key(oal_net_device_stru *netdev, td_u8 key_index, td_bool pairwise, const td_u8 *mac_addr);
233td_u32 wal_cfg80211_p2p_mgmt_tx(oal_wireless_dev *wdev, oal_ieee80211_channel *chan, ext_mlme_data_stru *data,
234 osal_u64 *pull_cookie);
235td_u32 wal_cfg80211_mgmt_tx(oal_net_device_stru *netdev, oal_ieee80211_channel *chan, ext_mlme_data_stru *mlme_data);
236td_u32 wal_cfg80211_intf_mode_check(oal_net_device_stru *netdev, nl80211_iftype_uint8 type);
237td_u32 wal_cfg80211_scan(oal_cfg80211_scan_request_stru *request, hmac_scan_stru *scan_mgmt);
239td_u32 wal_cfg80211_del_station(oal_net_device_stru *netdev, const td_u8 *mac_addr);
240td_u32 wal_cfg80211_start_ap(oal_net_device_stru *netdev, oal_ap_settings_stru *ap_settings);
241td_u32 wal_cfg80211_change_beacon(oal_net_device_stru *netdev, oal_beacon_data_stru *beacon_info);
242td_u32 wal_cfg80211_disconnect(oal_net_device_stru *netdev, td_u16 reason_code);
243td_u32 wal_cfg80211_connect(oal_net_device_stru *netdev, oal_cfg80211_connect_params_stru *sme);
244#ifdef _PRE_WLAN_FEATURE_PNO_SCAN
245td_u32 wal_cfg80211_start_sched_scan(oal_net_device_stru *netdev, mac_pno_scan_stru *pno_scan_info);
246#endif
247td_u32 wal_cfg80211_set_pmksa(oal_net_device_stru *netdev, const ext_pmkid_params *pmkid_params);
248#if defined(_PRE_WLAN_FEATURE_WS92_MERGE) && defined(_PRE_WLAN_FEATURE_ACS)
249osal_s32 wal_cfg80211_get_survey_etc(oal_net_device_stru *netdev, osal_u32 ifidx, oal_survey_info_stru *sinfo);
250#endif
252#ifdef _PRE_WLAN_FEATURE_ROAM
253osal_s32 wal_roam_comp_proc_sta_etc(hmac_vap_stru *hmac_vap, frw_msg *msg);
254#ifdef _PRE_WLAN_FEATURE_11R
255osal_s32 wal_cfg80211_update_ft_ies(oal_net_device_stru *netdev, oal_ft_ies_stru *fties);
256osal_s32 wal_ft_event_proc_sta_etc(hmac_vap_stru *hmac_vap, frw_msg *msg);
257#endif
258#endif
259
260td_u32 wal_cfg80211_remove_pmksa(oal_net_device_stru *netdev, const ext_pmkid_params *pmkid_params);
261td_u32 wal_cfg80211_flush_pmksa(oal_net_device_stru *netdev);
262#ifdef _PRE_WLAN_FEATURE_P2P
263td_u32 wal_del_p2p_group(const hmac_device_stru *hmac_device);
264td_u32 wal_cfg80211_remain_on_channel(const oal_wireless_dev *wdev, const struct ieee80211_channel *chan,
265 td_u32 duration, osal_u64 *pull_cookie);
266td_u32 wal_cfg80211_cancel_remain_on_channel(const oal_wireless_dev *wdev, osal_u64 ull_cookie);
267#endif
268
269oal_ieee80211_channel* wal_get_g_wifi_2ghz_channels(td_void);
270oal_ieee80211_supported_band* wal_get_wifi_2ghz_band(td_void);
271oal_ieee80211_channel* wal_cfg80211_get_channel(td_s32 freq);
272
273td_u32 wal_cfg80211_del_beacon(oal_net_device_stru *netdev);
274#ifdef __cplusplus
275#if __cplusplus
276 }
277#endif
278#endif
279
280#endif /* end of wal_cfg80211.h */
osal_u8 type
Definition oal_net.h:0
osal_u32 ie_len
Definition oal_net.h:0
int osal_s32
Definition osal_types.h:19
unsigned char osal_u8
Definition osal_types.h:11
signed char osal_s8
Definition osal_types.h:17
unsigned long long osal_u64
Definition osal_types.h:14
unsigned int osal_u32
Definition osal_types.h:13
unsigned short osal_u16
Definition osal_types.h:12
Definition wal_cfg80211.h:123
td_u32 reserved
Definition wal_cfg80211.h:126
td_u32 record_time
Definition wal_cfg80211.h:125
osal_u64 ull_cookie
Definition wal_cfg80211.h:124
Definition driver_soc_common.h:296
Definition driver_soc_common.h:655
Definition frw_msg_rom.h:74
Definition mac_vap_ext.h:2544
Definition mac_device_ext.h:856
Definition mac_device_ext.h:572
Definition mac_vap_ext.h:2019
unsigned short td_u16
Definition td_type.h:37
unsigned char td_u8
Definition td_type.h:36
td_u8 td_bool
Definition td_type.h:50
void td_void
Definition td_type.h:49
unsigned int td_u32
Definition td_type.h:38
int td_s32
Definition td_type.h:44
char td_char
Definition td_type.h:41
Definition hal_uart_v151_regs_def.h:38
td_void wal_cfg80211_reset_bands(td_void)
#define IEEE80211_FTYPE_MGMT
Definition wal_cfg80211.h:119
td_u32 wal_cfg80211_disconnect(oal_net_device_stru *netdev, td_u16 reason_code)
td_u32 wal_cfg80211_set_default_key(oal_net_device_stru *netdev, td_u8 key_index, td_bool unicast, td_bool multicast)
td_u32 wal_cfg80211_del_beacon(oal_net_device_stru *netdev)
td_u32 wal_cfg80211_mgmt_tx(oal_net_device_stru *netdev, oal_ieee80211_channel *chan, ext_mlme_data_stru *mlme_data)
#define IEEE80211_FCTL_STYPE
Definition wal_cfg80211.h:118
td_u32 wal_cfg80211_start_ap(oal_net_device_stru *netdev, oal_ap_settings_stru *ap_settings)
td_u32 wal_cfg80211_scan(oal_cfg80211_scan_request_stru *request, hmac_scan_stru *scan_mgmt)
td_u32 wal_cfg80211_flush_pmksa(oal_net_device_stru *netdev)
#define IEEE80211_STYPE_PROBE_RESP
Definition wal_cfg80211.h:105
td_u32 wal_cfg80211_add_key(oal_net_device_stru *netdev, const cfg80211_add_key_info_stru *cfg80211_add_key_info, const td_u8 *mac_addr, oal_key_params_stru *params)
td_u32 wal_cfg80211_remove_pmksa(oal_net_device_stru *netdev, const ext_pmkid_params *pmkid_params)
td_u32 wal_cfg80211_add_vap(const hmac_cfg_add_vap_param_stru *add_vap_param)
td_u32 wal_cfg80211_remove_key(oal_net_device_stru *netdev, td_u8 key_index, td_bool pairwise, const td_u8 *mac_addr)
td_s32 uapi_wifi_app_service(const td_char *ifname, td_void *buf)
td_u32 wal_cfg80211_change_beacon(oal_net_device_stru *netdev, oal_beacon_data_stru *beacon_info)
oal_ieee80211_supported_band * wal_get_wifi_2ghz_band(td_void)
oal_ieee80211_channel * wal_cfg80211_get_channel(td_s32 freq)
td_u32 wal_cfg80211_set_pmksa(oal_net_device_stru *netdev, const ext_pmkid_params *pmkid_params)
osal_s32 wal_cfg80211_mgmt_tx_status(hmac_vap_stru *hmac_vap, frw_msg *msg)
td_u32 wal_cfg80211_connect(oal_net_device_stru *netdev, oal_cfg80211_connect_params_stru *sme)
#define IEEE80211_FCTL_FTYPE
Definition wal_cfg80211.h:117
td_u32 wal_cfg80211_p2p_mgmt_tx(oal_wireless_dev *wdev, oal_ieee80211_channel *chan, ext_mlme_data_stru *data, osal_u64 *pull_cookie)
td_u32 wal_cfg80211_del_station(oal_net_device_stru *netdev, const td_u8 *mac_addr)
osal_s32 wal_report_csa_done(hmac_vap_stru *hmac_vap, frw_msg *msg)
oal_ieee80211_channel * wal_get_g_wifi_2ghz_channels(td_void)
td_u32 wal_cfg80211_intf_mode_check(oal_net_device_stru *netdev, nl80211_iftype_uint8 type)
struct cookie_arry cookie_arry_stru