WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
hmac_11v.h
浏览该文件的文档.
1/*
2 * Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2018-2024. All rights reserved.
3 * 文 件 名 : hmac_11v.h
4 * 生成日期 : 2018年4月7日
5 * 功能描述 : 11v 宏、枚举及结构定义
6 */
7
8#ifndef __HMAC_11V_H__
9#define __HMAC_11V_H__
10
11/*****************************************************************************
12 1 其他头文件包含
13*****************************************************************************/
14#include "mac_vap_ext.h"
15#include "hmac_vap.h"
16#include "hmac_roam_alg.h"
17
18#ifdef __cplusplus
19#if __cplusplus
20extern "C" {
21#endif
22#endif
23
24#undef THIS_FILE_ID
25#define THIS_FILE_ID OAM_FILE_ID_HMAC_11V_H
26
27/*****************************************************************************
28 2 宏定义
29*****************************************************************************/
30/* 目前管理帧申请内存800字节 帧自带最大长度19(frame boady)+50(url)+ N*(15(neighbor)+3(sub)+12(sub))
31 不存在超出 修改数量限制时须注意 */
32#define HMAC_MAX_BSS_NEIGHBOR_LIST 20 /* BSS Transition 帧中允许发送的最大候选AP列表集数量 */
33
34// 11v等待帧返回的超时时间
35#define HMAC_11V_WAIT_STATUS_TIMEOUT 5000 // 5000ms
36#define HMAC_11V_MAX_URL_LENGTH 50 /* 携带URL字符的最大长度限制为50 */
37#define HMAC_11V_QUERY_FRAME_BODY_FIX 4 /* query帧帧体固定头长度 */
38#define HMAC_11V_REQUEST_FRAME_BODY_FIX 7 /* query帧帧体固定头长度 */
39#define HMAC_11V_RESPONSE_FRAME_BODY_FIX 5 /* response帧帧体固定头长度 */
40#define HMAC_11V_PERFERMANCE_ELEMENT_LEN 1 /* perfermance ie length */
41#define HMAC_11V_TERMINATION_ELEMENT_LEN 10 /* termination ie length */
42#define HMAC_11V_TOKEN_MAX_VALUE 255 /* 帧发送信令的最大值 */
43#define HMAC_11V_SUBELEMENT_ID_RESV 0 /* SUBELEMENT预留 ID */
44#define MAC_11V_ROAM_SCAN_ONE_CHANNEL_LIMIT 2
45#define MAC_11V_ROAM_SCAN_FULL_CHANNEL_LIMIT (MAC_11V_ROAM_SCAN_ONE_CHANNEL_LIMIT + 1)
46#define HMAC_11V_TERMINATION_TSF_LENGTH 8 /* termination_tsf时间域字节长度 */
47#define WAL_WIFI_FEATURE_SUPPORT_11V 1
48
49/*****************************************************************************
50 3 枚举定义
51*****************************************************************************/
52/* IEEE Std 802.11-2012 - Table 8-253 */
64
65/*****************************************************************************
66 Neighbor Report Element子信息元素(Subelement)的 ID
67 820.11-2012协议583页,Table 8-115—SubElement IDs
68*****************************************************************************/
80
81
82/*****************************************************************************
83 4 STRUCT定义
84*****************************************************************************/
85/* 此文件中结构体与协议一致,要求1字节对齐 */
86#pragma pack(push, 1)
88 osal_u8 sub_ie_id; /* subelement ID,将ID置成0 表示不存在该元素 */
90 osal_u16 duration_min; /* BSS消失时间 time: 分钟 */
91 osal_u8 resv; /* 四字节对齐用 */
92};
94
95/* 候选BSS列表集的Neighbor Report IE结构体 由于只需要用到subelement 3 4 故定义两个subelement */
97 osal_u8 auc_mac_addr[WLAN_MAC_ADDR_LEN]; /* BSSID MAC地址 */
98 osal_u8 opt_class; /* Operation Class */
99 osal_u8 chl_num; /* Channel number */
100 osal_u8 phy_type; /* PHY type */
101 osal_u8 candidate_perf; /* perference data BSSID偏好值 */
102 osal_u16 resv; /* 四字节对齐 */
103 oal_bssid_infomation_stru bssid_info; /* BSSID information */
104 hmac_bss_term_duration_stru term_duration; /* 子元素Termination duration */
105};
107
108/* bss transition query帧体信息结构体 */
111 osal_u8 bss_list_num; /* bss list的数量 最大不允许超过50个 */
112 osal_u16 resv; /* 四字节对齐 */
114};
116
118 osal_u8 candidate_list_include : 1, /* 是否包含邻居AP列表 */
119 abridged : 1, /* 1:表示没有包含在邻居列表的AP优先级设置为0 */
120 bss_disassoc_imminent : 1, /* 是否即将断开STA 置0 帧的时间域全为FF FF */
121 termination_include : 1, /* BSS终结时间 置0则帧体中不包含BSS Termination Duration字段 */
122 ess_disassoc_imminent : 1, /* EES终止时间 */
123 rev : 3;
124};
126
127/* bss transition request帧体信息结构体 */
129 osal_u8 validity_interval; /* 邻居列表有效时间 TBTTs */
130 osal_u16 disassoc_time; /* AP取关联STA时间 TBTTs */
131 osal_u8 *session_url; /* 要求传入字符串 最大限制为100个字符 */
134 osal_u8 resv; /* 4字节对齐 */
135 hmac_neighbor_bss_info_stru *neighbor_bss_list; /* bss list的数量 最大不允许超过50个 */
136 hmac_bss_term_duration_stru term_duration; /* 子元素Termination duration */
137};
139
140/* bss transition response帧体信息结构体 */
142 osal_u8 status_code; /* 状态码 接收或者拒绝 */
143 osal_u8 termination_delay; /* 要求AP延后终止时间:分钟 */
144 osal_u8 target_bss_addr[WLAN_MAC_ADDR_LEN]; /* 接收切换的目标BSSID */
145 osal_u8 chl_num; /* Channel number */
146 osal_u8 bss_list_num; /* bss list的数量最大限制为50个 */
147 osal_u16 resv; /* 四字节对齐 */
149};
151
152/* 通过11v_tx_query命令下发的消息内容 */
154 osal_u8 mac_addr_list_0[WLAN_MAC_ADDR_LEN]; /* 第1个邻居的BSSID MAC地址 */
155 osal_u8 mac_addr_list_1[WLAN_MAC_ADDR_LEN]; /* 第2个邻居的BSSID MAC地址 */
156 osal_u8 chl_num_list_0; /* 第1个邻居的信道 */
157 osal_u8 chl_num_list_1; /* 第2个邻居的信道 */
158};
160#pragma pack(pop)
161
166
171
173 hmac_bsst_rsp_info_stru *bsst_rsp_info);
174/* 11v 控制信息结构体 */
175typedef struct {
176 osal_u8 user_bsst_token; /* 用户发送bss transition 帧的信令 */
177 osal_u8 user_status; /* 用户11V状态 */
178 osal_u8 uc_11v_roam_scan_times; /* 单信道11v漫游扫描次数 */
179 osal_u8 resv; /* 4字节对齐用 */
180 frw_timeout_stru status_wait_timer; /* 等待用户回应帧的计时器 */
183/*****************************************************************************
184 5 全局变量声明
185*****************************************************************************/
186
187
188/*****************************************************************************
189 6 消息头定义
190*****************************************************************************/
191
192
193/*****************************************************************************
194 7 消息定义
195*****************************************************************************/
196
197
198/*****************************************************************************
199 8 UNION定义
200*****************************************************************************/
201
202
203/*****************************************************************************
204 9 OTHERS定义
205*****************************************************************************/
206
207
208/*****************************************************************************
209 10 函数声明
210*****************************************************************************/
211static osal_u32 hmac_11v_init_weakref(osal_void) __attribute__ ((weakref("hmac_11v_init"), used));
212static osal_void hmac_11v_deinit_weakref(osal_void) __attribute__ ((weakref("hmac_11v_deinit"), used));
213
219 oal_bool_enum_uint8 flag_in_scan_rslts);
221typedef osal_void (*hmac_get_11v_cap_cb)(hmac_vap_stru *hmac_vap, osal_s32 *pl_value);
222
223#ifdef __cplusplus
224#if __cplusplus
225}
226#endif
227#endif
228
229#endif /* end of hmac_11v.h */
hmac_neighbor_sub_eid_enum
Definition hmac_11v.h:69
@ HMAC_NEIGH_SUB_ID_COND_COUNTRY
Definition hmac_11v.h:72
@ HMAC_NEIGH_SUB_ID_BUTT
Definition hmac_11v.h:77
@ HMAC_NEIGH_SUB_ID_VENDOR_SPECIFIC
Definition hmac_11v.h:75
@ HMAC_NEIGH_SUB_ID_TFS_INFO
Definition hmac_11v.h:71
@ HMAC_NEIGH_SUB_ID_RESERVED
Definition hmac_11v.h:70
@ HMAC_NEIGH_SUB_ID_BSS_CANDIDATE_PERF
Definition hmac_11v.h:73
@ HMAC_NEIGH_SUB_ID_TERM_DURATION
Definition hmac_11v.h:74
osal_u8 hmac_neighbor_sub_eid_enum_uint8
Definition hmac_11v.h:79
osal_bool(* hmac_11v_check_scan_result_cb)(hmac_roam_info_stru *roam_info, oal_bool_enum_uint8 flag_in_scan_rslts)
Definition hmac_11v.h:218
osal_u32(* mac_user_callback_func_11v)(hmac_vap_stru *hmac_vap, hmac_user_stru *hmac_user, hmac_bsst_rsp_info_stru *bsst_rsp_info)
Definition hmac_11v.h:172
bss_trans_mgmt_status_code
Definition hmac_11v.h:53
@ WNM_BSS_TM_REJECT_NO_SUITABLE_CANDIDATES
Definition hmac_11v.h:61
@ WNM_BSS_TM_REJECT_INSUFFICIENT_CAPABITY
Definition hmac_11v.h:57
@ WNM_BSS_TM_REJECT_UNDESIRED
Definition hmac_11v.h:58
@ WNM_BSS_TM_ACCEPT
Definition hmac_11v.h:54
@ WNM_BSS_TM_REJECT_LEAVING_ESS
Definition hmac_11v.h:62
@ WNM_BSS_TM_REJECT_STA_CANDIDATE_LIST_PROVIDED
Definition hmac_11v.h:60
@ WNM_BSS_TM_REJECT_DELAY_REQUEST
Definition hmac_11v.h:59
@ WNM_BSS_TM_REJECT_UNSPECIFIED
Definition hmac_11v.h:55
@ WNM_BSS_TM_REJECT_INSUFFICIENT_BEACON
Definition hmac_11v.h:56
osal_void(* hmac_11v_set_bss_transition_cb)(mac_user_cap_info_stru *cap_info, const osal_u8 *cap)
Definition hmac_11v.h:214
osal_void(* hmac_11v_trigger_roam_check_cb)(const hmac_roam_info_stru *roam_info, hmac_vap_stru *hmac_vap)
Definition hmac_11v.h:220
static osal_u32 used
Definition hmac_11v.h:211
osal_bool(* hmac_11v_check_bss_dscr_cb)(hmac_roam_info_stru *roam_info, mac_bss_dscr_stru *bss_dscr)
Definition hmac_11v.h:217
osal_void(* hmac_11v_set_scan_params_cb)(mac_scan_req_stru *scan_params, hmac_roam_info_stru *roam_info)
Definition hmac_11v.h:216
osal_void(* hmac_get_11v_cap_cb)(hmac_vap_stru *hmac_vap, osal_s32 *pl_value)
Definition hmac_11v.h:221
osal_void(* hmac_11v_set_ext_cap_bss_transition_cb)(hmac_vap_stru *hmac_vap, mac_ext_cap_ie_stru *ext_cap)
Definition hmac_11v.h:215
#define HMAC_11V_TERMINATION_TSF_LENGTH
Definition hmac_11v.h:46
#define WLAN_MAC_ADDR_LEN
Definition mac_addr.c:28
osal_u8 oal_bool_enum_uint8
Definition oal_types_device_rom.h:45
int osal_s32
Definition osal_types.h:19
unsigned char osal_u8
Definition osal_types.h:11
osal_u8 osal_bool
Definition osal_types.h:27
void osal_void
Definition osal_types.h:29
unsigned int osal_u32
Definition osal_types.h:13
unsigned short osal_u16
Definition osal_types.h:12
Log message information header.
Definition log_oam_logger.h:564
Definition frw_ext_common_rom.h:20
Definition hmac_11v.h:167
hmac_11v_vap_roam_info_stru * roam_info_11v
Definition hmac_11v.h:168
osal_u8 enable_11v
Definition hmac_11v.h:169
Definition hmac_11v.h:162
osal_u32 roam_11v_scan_fail
Definition hmac_11v.h:164
hmac_bsst_rsp_info_stru bsst_rsp_info
Definition hmac_11v.h:163
Definition hmac_11v.h:87
osal_u8 termination_tsf[8]
Definition hmac_11v.h:89
osal_u8 resv
Definition hmac_11v.h:91
osal_u8 sub_ie_id
Definition hmac_11v.h:88
osal_u16 duration_min
Definition hmac_11v.h:90
Definition hmac_11v.h:109
osal_u8 reason
Definition hmac_11v.h:110
hmac_neighbor_bss_info_stru * neighbor_bss_list
Definition hmac_11v.h:113
osal_u8 bss_list_num
Definition hmac_11v.h:111
osal_u16 resv
Definition hmac_11v.h:112
Definition hmac_11v.h:128
hmac_bsst_req_mode_stru request_mode
Definition hmac_11v.h:132
osal_u8 validity_interval
Definition hmac_11v.h:129
osal_u8 * session_url
Definition hmac_11v.h:131
osal_u16 disassoc_time
Definition hmac_11v.h:130
hmac_neighbor_bss_info_stru * neighbor_bss_list
Definition hmac_11v.h:135
osal_u8 resv
Definition hmac_11v.h:134
osal_u8 bss_list_num
Definition hmac_11v.h:133
hmac_bss_term_duration_stru term_duration
Definition hmac_11v.h:136
Definition hmac_11v.h:117
osal_u8 abridged
Definition hmac_11v.h:119
osal_u8 termination_include
Definition hmac_11v.h:121
osal_u8 rev
Definition hmac_11v.h:123
osal_u8 bss_disassoc_imminent
Definition hmac_11v.h:120
osal_u8 ess_disassoc_imminent
Definition hmac_11v.h:122
osal_u8 candidate_list_include
Definition hmac_11v.h:118
Definition hmac_11v.h:141
osal_u8 termination_delay
Definition hmac_11v.h:143
osal_u8 status_code
Definition hmac_11v.h:142
osal_u16 resv
Definition hmac_11v.h:147
osal_u8 chl_num
Definition hmac_11v.h:145
osal_u8 target_bss_addr[WLAN_MAC_ADDR_LEN]
Definition hmac_11v.h:144
hmac_neighbor_bss_info_stru * neighbor_bss_list
Definition hmac_11v.h:148
osal_u8 bss_list_num
Definition hmac_11v.h:146
Definition hmac_11v.h:96
osal_u8 opt_class
Definition hmac_11v.h:98
hmac_bss_term_duration_stru term_duration
Definition hmac_11v.h:104
osal_u8 chl_num
Definition hmac_11v.h:99
osal_u8 candidate_perf
Definition hmac_11v.h:101
osal_u8 auc_mac_addr[WLAN_MAC_ADDR_LEN]
Definition hmac_11v.h:97
osal_u16 resv
Definition hmac_11v.h:102
oal_bssid_infomation_stru bssid_info
Definition hmac_11v.h:103
osal_u8 phy_type
Definition hmac_11v.h:100
Definition hmac_roam_alg.h:277
Definition hmac_11v.h:153
osal_u8 chl_num_list_0
Definition hmac_11v.h:156
osal_u8 mac_addr_list_1[WLAN_MAC_ADDR_LEN]
Definition hmac_11v.h:155
osal_u8 mac_addr_list_0[WLAN_MAC_ADDR_LEN]
Definition hmac_11v.h:154
osal_u8 chl_num_list_1
Definition hmac_11v.h:157
Definition hmac_11v.h:175
mac_user_callback_func_11v mac_11v_callback_fn
Definition hmac_11v.h:181
osal_u8 user_status
Definition hmac_11v.h:177
osal_u8 user_bsst_token
Definition hmac_11v.h:176
frw_timeout_stru status_wait_timer
Definition hmac_11v.h:180
osal_u8 resv
Definition hmac_11v.h:179
osal_u8 uc_11v_roam_scan_times
Definition hmac_11v.h:178
Definition mac_user_ext.h:519
Definition mac_vap_ext.h:2019
Definition mac_device_ext.h:596
Definition mac_frame_common_rom.h:661
Definition mac_device_ext.h:682
Definition mac_user_ext.h:129
Definition oal_net.h:683