WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
hmac_m2s.h
浏览该文件的文档.
1/*
2 * Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2020-2020. All rights reserved.
3 * Description: dmac m2s head
4 * Create: 2020-7-5
5 */
6
7#ifndef __HMAC_M2S_H__
8#define __HMAC_M2S_H__
9
10#ifdef _PRE_WLAN_FEATURE_M2S
11/*****************************************************************************
12 1 其他头文件包含
13*****************************************************************************/
14#include "oal_types.h"
15#include "frw_ext_if.h"
16#include "mac_frame.h"
17#include "mac_ie.h"
18#include "hmac_device.h"
19#include "hmac_user.h"
20#include "hmac_vap.h"
21#include "hmac_feature_main.h"
22
23#ifdef __cplusplus
24#if __cplusplus
25extern "C" {
26#endif
27#endif
28
29/*****************************************************************************
30 3 枚举定义
31*****************************************************************************/
32#define M2S_MIMO_RX_CNT_THRESHOLD 2
33#define M2S_SISO_RX_CNT_THRESHOLD 8
34#define M2S_RX_UCAST_CNT_THRESHOLD 10
35
36#define M2S_ACTION_SENT_CNT_THRESHOLD 3
37
38#define M2S_RX_STATISTICS_START_TIME 1000
39
40/*****************************************************************************
41 STRUCT定义
42*****************************************************************************/
43typedef struct {
44 frw_timeout_stru m2s_delay_switch_statistics_timer;
45 osal_u16 rx_nss_mimo_count;
46 osal_u16 rx_nss_siso_count;
47 osal_u16 rx_nss_ucast_count;
48 oal_bool_enum_uint8 rx_nss_statistics_start_flag;
49} hmac_vap_m2s_rx_statistics_stru;
50
51typedef struct {
52 hmac_vap_m2s_rx_statistics_stru hmac_vap_m2s_rx_statistics; /* STA当前切换初始模式不满足要求时,开启统计变量 */
53 oal_bool_enum_uint8 m2s_wait_complete; /* m2s切换是否正在执行,多vap都完成才能执行device状态切换 */
54 wlan_m2s_action_type_enum_uint8 m2s_switch_ori_type; /* STA当前关联ap的切换初始模式 */
55 oal_bool_enum_uint8 action_send_state; /* STA action帧发送是否成功 */
56 osal_u8 action_send_cnt;
57} hmac_vap_m2s_stru;
58
59/*****************************************************************************
60 10 函数声明
61*****************************************************************************/
62osal_u32 hmac_m2s_proc_vap_init(hmac_vap_stru *hmac_vap);
63osal_void hmac_m2s_proc_vap_deinit(hmac_vap_stru *hmac_vap);
64
65#ifdef _PRE_WIFI_DEBUG
66osal_void hmac_m2s_mgr_param_info(const hal_to_dmac_device_stru *hal_device);
67osal_void hmac_m2s_show_blacklist_in_list(const hal_to_dmac_device_stru *hal_device);
68#endif
69osal_void hmac_m2s_update_switch_mgr_param(hal_to_dmac_device_stru *hal_device, hal_m2s_event_tpye_uint16 m2s_event);
70wlan_nss_enum_uint8 hmac_m2s_get_bss_max_nss(const hmac_vap_stru *hmac_vap, const oal_netbuf_stru *netbuf,
71 osal_u16 frame_len, oal_bool_enum_uint8 assoc_status);
72osal_u8 hmac_m2s_scan_get_num_sounding_dim(const oal_netbuf_stru *netbuf, osal_u16 frame_len);
73oal_bool_enum_uint8 hmac_m2s_get_bss_support_opmode(const hmac_vap_stru *hmac_vap, osal_u8 *frame_body,
74 osal_u16 frame_len);
75osal_u32 hmac_m2s_d2h_vap_info_syn(hmac_vap_stru *hmac_vap);
76osal_void hmac_m2s_send_action_complete_check(hmac_vap_stru *hmac_vap, const mac_tx_ctl_stru *tx_ctl);
77osal_void hmac_m2s_mgr_back_to_mimo_check(hal_to_dmac_device_stru *hal_device);
78osal_void hmac_m2s_update_vap_capbility(const hmac_device_stru *hmac_device, hmac_vap_stru *hmac_vap);
79osal_void hmac_m2s_update_user_capbility(hmac_user_stru *hmac_user, const hmac_vap_stru *hmac_vap);
80osal_void hmac_m2s_switch_update_vap_capbility(const hal_to_dmac_device_stru *hal_device);
81osal_void hmac_m2s_switch_update_device_capbility(hal_to_dmac_device_stru *hal_device, hmac_device_stru *hmac_device);
82osal_void hmac_m2s_switch_same_channel_vaps_begin(hal_to_dmac_device_stru *hal_device, hmac_device_stru *hmac_device,
83 hmac_vap_stru *mac_vap1, hmac_vap_stru *mac_vap2);
84#ifdef _PRE_WLAN_FEATURE_DBAC
85osal_void hmac_m2s_switch_dbac_vaps_begin(hal_to_dmac_device_stru *hal_device, hmac_device_stru *hmac_device,
86 hmac_vap_stru *mac_vap1, hmac_vap_stru *mac_vap2);
87#endif
88osal_void hmac_m2s_switch_update_hal_chain_capbility(hal_to_dmac_device_stru *hal_device,
89 oal_bool_enum_uint8 set_channel);
90oal_bool_enum_uint8 hmac_m2s_custom_switch_check(const hal_to_dmac_device_stru *hal_device);
91osal_void hmac_m2s_command_mode_force_to_mimo(hal_to_dmac_device_stru *hal_device);
92osal_void hmac_m2s_spec_mode_force_to_mimo(hal_to_dmac_device_stru *hal_device);
93osal_void hmac_m2s_spec_mode_band_change_check(hal_to_dmac_device_stru *hal_device,
95osal_void hmac_m2s_switch_update_vap_tx_chain_capbility(const hal_to_dmac_device_stru *hal_device);
96osal_void hmac_m2s_spec_update_hal_device_capbility(hal_to_dmac_device_stru *hal_device,
98oal_bool_enum_uint8 hmac_m2s_spec_need_switch_keep_check(const hal_to_dmac_device_stru *hal_device);
99oal_bool_enum_uint8 hmac_m2s_spec_support_siso_switch_check(const hal_to_dmac_device_stru *hal_device,
100 const hmac_device_stru *hmac_device, wlan_m2s_trigger_mode_enum_uint8 trigger_mode);
101osal_void hmac_m2s_spec_update_vap_sw_capbility(const hmac_device_stru *hmac_device, hmac_vap_stru *hmac_vap,
102 wlan_nss_enum_uint8 nss_num);
103osal_void hmac_config_m2s_assoc_state_syn(const hmac_vap_stru *hmac_vap);
104osal_void hmac_config_m2s_disassoc_state_syn(hmac_vap_stru *hmac_vap);
105oal_bool_enum_uint8 hmac_m2s_assoc_vap_find_in_device_blacklist(const hal_to_dmac_device_stru *hal_device);
106osal_u32 hmac_m2s_check_blacklist_in_list(const hmac_vap_stru *hmac_vap, osal_u8 *index);
107osal_void hmac_m2s_action_frame_type_query(const hmac_vap_stru *hmac_vap, wlan_m2s_action_type_enum_uint8 *action_type);
108osal_void hmac_m2s_switch_protect_trigger(hmac_vap_stru *hmac_vap);
109osal_void hmac_m2s_send_action_frame(hmac_vap_stru *hmac_vap);
110osal_void hmac_m2s_rx_rate_nss_process(hmac_vap_stru *hmac_vap, const dmac_rx_ctl_stru *cb_ctrl,
111 const mac_ieee80211_frame_stru *frame_hdr);
112oal_bool_enum_uint8 hmac_m2s_switch_apply_and_confirm(hal_to_dmac_device_stru *hal_device, osal_u16 m2s_type,
114osal_void hmac_m2s_switch_vap_off(hal_to_dmac_device_stru *hal_device, hmac_device_stru *hmac_device,
115 hmac_vap_stru *hmac_vap);
116osal_u32 hmac_m2s_switch_device_begin(hmac_device_stru *hmac_device, hal_to_dmac_device_stru *hal_device);
117osal_void hmac_m2s_switch_device_end(hal_to_dmac_device_stru *hal_device);
118osal_void hmac_m2s_nss_and_bw_alg_notify(hmac_vap_stru *hmac_vap, hmac_user_stru *hmac_user,
119 oal_bool_enum_uint8 nss_change, oal_bool_enum_uint8 bw_change);
120osal_u32 hmac_m2s_switch(hal_to_dmac_device_stru *hal_device, hal_m2s_event_tpye_uint16 m2s_event,
121 oal_bool_enum_uint8 hw_switch);
122osal_void hmac_m2s_mimo_to_miso(hal_to_dmac_device_stru *hal_device, hal_m2s_event_tpye_uint16 m2s_event);
123osal_void hmac_m2s_mimo_to_siso(hal_to_dmac_device_stru *hal_device, hal_m2s_event_tpye_uint16 m2s_event);
124osal_void hmac_m2s_siso_to_mimo(hal_to_dmac_device_stru *hal_device, hal_m2s_event_tpye_uint16 m2s_event);
125osal_void hmac_m2s_siso_to_miso(hal_to_dmac_device_stru *hal_device, hal_m2s_event_tpye_uint16 m2s_event);
126osal_void hmac_m2s_miso_to_mimo(hal_to_dmac_device_stru *hal_device, hal_m2s_event_tpye_uint16 m2s_event);
127osal_void hmac_m2s_miso_to_siso(hal_to_dmac_device_stru *hal_device, hal_m2s_event_tpye_uint16 m2s_event);
128osal_void hmac_m2s_siso_to_siso(hal_to_dmac_device_stru *hal_device, hal_m2s_event_tpye_uint16 m2s_event);
129osal_u32 hmac_m2s_handle_event(hal_to_dmac_device_stru *hal_device, osal_u16 type, osal_u16 datalen, osal_u8 *data);
130osal_void hmac_m2s_fsm_attach(hal_to_dmac_device_stru *hal_device);
131osal_void hmac_m2s_fsm_detach(hal_to_dmac_device_stru *hal_device);
132osal_void hmac_m2s_mgmt_switch_judge(hal_to_dmac_device_stru *hal_device, const hmac_vap_stru *hmac_vap,
133 osal_char ant0_rssi_in, osal_char ant1_rssi_in);
134
135#ifdef __cplusplus
136#if __cplusplus
137}
138#endif
139#endif
140
141#endif /* end of _PRE_WLAN_FEATURE_M2S */
142
143#endif /* end of hmac_m2s.h */
osal_u16 hal_m2s_event_tpye_uint16
Definition hal_ext_if_device.h:152
osal_u8 type
Definition oal_net.h:0
osal_u8 oal_bool_enum_uint8
Definition oal_types_device_rom.h:45
unsigned char osal_u8
Definition osal_types.h:11
char osal_char
Definition osal_types.h:16
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
Definition dmac_ext_if_device_rom.h:81
Definition frw_ext_common_rom.h:20
Definition mac_device_ext.h:856
Definition mac_user_ext.h:519
Definition mac_vap_ext.h:2019
Definition mac_frame_common_rom.h:575
Definition dmac_ext_if_device_rom.h:98
Definition oal_skbuff.h:82
Definition hal_ops_common_rom.h:529
Definition hal_uart_v151_regs_def.h:38
osal_u8 wlan_nss_enum_uint8
Definition wlan_types_base_rom.h:240
osal_u8 wlan_m2s_action_type_enum_uint8
Definition wlan_types_base_rom.h:488
osal_u8 wlan_channel_band_enum_uint8
Definition wlan_types_base_rom.h:97
osal_u8 wlan_m2s_trigger_mode_enum_uint8
Definition wlan_types_base_rom.h:459