WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
alg_autorate_basic_rom.h
浏览该文件的文档.
1/*
2 * Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2020-2022. All rights reserved.
3 * Description: header file of alg_autorate_rom.h
4 */
5
6#ifndef ALG_AUTORATE_BASIC_ROM_H
7#define ALG_AUTORATE_BASIC_ROM_H
8
9/*****************************************************************************
10 1 其他头文件包含
11*****************************************************************************/
12#include "alg_autorate_if_rom.h"
13#include "alg_autorate_rom.h"
14
15#ifdef __cplusplus
16#if __cplusplus
17extern "C" {
18#endif
19#endif
20
21#ifdef _PRE_WLAN_FEATURE_AUTORATE
22/*****************************************************************************
23 1 全局变量声明
24*****************************************************************************/
25/* 算法内部模块使用 */
27extern alg_autorate_dev_stru g_ast_autorate_dev_info; /* !!!从HOST传过来的参数,dev不允许修改赋值 */
28/*****************************************************************************
29 2 宏定义
30*****************************************************************************/
31/* AUTORATE DEBUG INFO LOG */
32#define alg_ar_dbg_log0(vap_id, fmt) \
33 do { \
34 if (g_ast_autorate_dev_info.enable_ar_log == OSAL_TRUE) { \
35 oam_warning_log0(vap_id, OAM_SF_AUTORATE, fmt); \
36 } \
37 } while (0)
38
39#define alg_ar_dbg_log1(vap_id, fmt, p1) \
40 do { \
41 if (g_ast_autorate_dev_info.enable_ar_log == OSAL_TRUE) { \
42 oam_warning_log1(vap_id, OAM_SF_AUTORATE, fmt, p1); \
43 } \
44 } while (0)
45
46#define alg_ar_dbg_log2(vap_id, fmt, p1, p2) \
47 do { \
48 if (g_ast_autorate_dev_info.enable_ar_log == OSAL_TRUE) { \
49 oam_warning_log2(vap_id, OAM_SF_AUTORATE, fmt, p1, p2); \
50 } \
51 } while (0)
52
53#define alg_ar_dbg_log3(vap_id, fmt, p1, p2, p3) \
54 do { \
55 if (g_ast_autorate_dev_info.enable_ar_log == OSAL_TRUE) { \
56 oam_warning_log3(vap_id, OAM_SF_AUTORATE, fmt, p1, p2, p3); \
57 } \
58 } while (0)
59
60#define alg_ar_dbg_log4(vap_id, fmt, p1, p2, p3, p4) \
61 do { \
62 if (g_ast_autorate_dev_info.enable_ar_log == OSAL_TRUE) { \
63 oam_warning_log4(vap_id, OAM_SF_AUTORATE, fmt, p1, p2, p3, p4); \
64 } \
65 } while (0)
66
67#define ALG_AR_GLA_PROTOCOL_SHIFT 8
68#define ALG_AR_GLA_BW_SHIFT 4
69/*****************************************************************************
70 1 函数声明
71*****************************************************************************/
72void alg_ar_probe_finish_update_info(alg_autorate_user_stru *user_info, oal_bool_enum_uint8 update_bestrate);
73osal_u32 alg_ar_probe_finish_process(alg_autorate_user_stru *user_info);
74alg_autorate_dev_stru *alg_ar_get_device_rate_info(void);
75alg_autorate_vap_stru *alg_ar_get_vap_rate_info(osal_u8 vap_id);
76alg_autorate_vap_stru *alg_ar_get_vap_rate_info_by_dmac_vap(const dmac_vap_stru *dmac_vap);
77alg_autorate_user_stru *alg_ar_get_user_rate_info(dmac_user_stru *dmac_user);
78oal_bool_enum_uint8 alg_autorate_is_enable(osal_void);
79osal_u8 alg_ar_get_hal_rate_by_wlan_11b_rate(wlan_11b_rate_index_enum_uint8 rate_index);
80osal_u8 alg_ar_get_hal_rate_by_wlan_legacy_rate(wlan_legacy_ofdm_mcs_enum_uint8 rate_index);
81osal_u8 alg_ar_get_wlan_legacy_rate_by_hal_rate(osal_u8 tx_param_mcs);
82osal_u8 alg_autorate_get_hal_nss_rate(wlan_protocol_enum_uint8 protocol, wlan_nss_enum_uint8 nss,
83 osal_u8 rate_index);
84wlan_phy_protocol_enum_uint8 alg_wlan_protocol_to_su_phy_protocol_mode(wlan_protocol_enum_uint8 en_wlan_pro);
85wlan_phy_protocol_enum_uint8 alg_ar_get_phy_protocol_by_rate_info(alg_autorate_user_stru *user_info,
86 alg_autorate_basic_rate_info_stru *rate_info, osal_u8 rate_index, wlan_gi_type_enum_uint8 gi_type);
87wlan_protocol_enum_uint8 alg_wlan_phy_protocol_mode_to_wlan_protocol(
88 wlan_phy_protocol_enum_uint8 phy_protocol);
89wlan_nss_enum_uint8 alg_ar_get_ht_nss_by_mcs_index(osal_u8 rate_index);
90osal_u32 alg_autorate_tx_param_nss_mcs_analysis(osal_u8 nss_rate, wlan_phy_protocol_enum protocol_mode,
91 wlan_nss_enum_uint8 *nss, osal_u8 *rate_index);
92const alg_rate_table_stru *alg_rate_table_obtain(wlan_protocol_enum_uint8 en_protocol,
93 alg_ar_bw_cap_enum_uint8 en_bw, wlan_nss_enum_uint8 en_nss);
94void alg_ar_get_rate_kbps(alg_autorate_basic_rate_info_stru *rate_info, osal_u8 rate_index,
95 const alg_rate_table_stru *rate_item, oal_bool_enum_uint8 dcm, osal_u32 *rate_kbps);
96osal_u32 alg_ar_rate_stat_calc_goodput(const alg_rate_table_stru *rate_item,
97 alg_autorate_basic_rate_info_stru *rate_info, osal_u8 rate_index, osal_u16 aggr_subfrm, osal_u32 *goodput);
98osal_u32 alg_ar_get_theory_goodput(alg_autorate_basic_rate_info_stru *rate_info, osal_u8 rate_index,
99 const alg_rate_table_stru *rate_item, osal_u32 *theory_goodput);
100oal_bool_enum_uint8 alg_ar_is_legacy_protocol(wlan_protocol_enum_uint8 protocol);
101osal_bool alg_get_vap_user_support_ldpc(const dmac_vap_stru *vap, const dmac_user_stru *user);
102osal_bool alg_get_user_cur_protocol_bw_support_short_gi(alg_autorate_user_stru *user_info,
103 wlan_protocol_enum_uint8 cur_protocol, alg_ar_bw_cap_enum_uint8 cur_bandwidth);
104void alg_autorate_notify_best_rate_change(alg_autorate_user_stru *user_info);
105osal_u8 alg_ar_get_highest_bit_one(osal_u16 bitmap);
106osal_u8 alg_ar_get_lowest_bit_one(osal_u16 bitmap);
107osal_u8 alg_ar_get_max_rate_avail(alg_autorate_user_stru *user_info, wlan_protocol_enum_uint8 protocol,
108 wlan_nss_enum_uint8 nss, alg_ar_bw_cap_enum_uint8 bw);
109osal_u8 alg_ar_get_min_rate_avail(alg_autorate_user_stru *user_info, wlan_protocol_enum_uint8 protocol,
110 wlan_nss_enum_uint8 nss, alg_ar_bw_cap_enum_uint8 bw);
111oal_bool_enum_uint8 alg_ar_rate_index_available(alg_autorate_user_stru *user_info,
112 wlan_protocol_enum_uint8 protocol, wlan_nss_enum_uint8 nss, alg_ar_bw_cap_enum_uint8 bw, osal_u8 rate_index);
113oal_bool_enum_uint8 alg_ar_rate_set_index_available(alg_autorate_user_stru *user_info,
114 wlan_protocol_enum_uint8 protocol, wlan_nss_enum_uint8 nss, alg_ar_bw_cap_enum_uint8 bw, osal_u8 rate_index);
115osal_u8 alg_ar_get_bigger_rate_index(alg_autorate_user_stru *user_info, wlan_protocol_enum_uint8 protocol,
116 wlan_nss_enum_uint8 nss, alg_ar_bw_cap_enum_uint8 bw, osal_u8 base_rate_index);
117osal_u8 alg_ar_get_smaller_rate_index(alg_autorate_user_stru *user_info, wlan_protocol_enum_uint8 protocol,
118 wlan_nss_enum_uint8 nss, alg_ar_bw_cap_enum_uint8 bw, osal_u8 base_rate_index);
119osal_u32 alg_ar_set_schedule_fix_rate_info(dmac_user_stru *user, alg_autorate_user_stru *user_info, osal_u8 tid_id);
120osal_u32 alg_ar_set_schedule_rate_info(dmac_user_stru *user, alg_autorate_user_stru *user_info, osal_u8 tid_id);
121osal_u32 alg_autorate_add_vap(dmac_vap_stru *dmac_vap);
122osal_u32 alg_autorate_start_vap(dmac_vap_stru *dmac_vap);
123osal_u32 alg_autorate_exit_vap(dmac_vap_stru *dmac_vap);
124osal_void alg_autorate_dev_para_init(osal_void);
125void alg_ar_init_user_basic_info(alg_autorate_user_stru *user_info,
126 alg_autorate_dev_stru *dev_autorate, dmac_user_stru *user, dmac_vap_stru *vap);
127void alg_ar_init_user_legacy_rate_set_capability(alg_autorate_user_stru *user_info);
128void alg_ar_init_user_ht_rate_set_capability(alg_autorate_user_stru *user_info);
129void alg_ar_init_user_vht_rate_set_capability(alg_autorate_user_stru *user_info);
130void alg_ar_init_user_he_rate_set_capability(alg_autorate_user_stru *user_info);
131void alg_ar_init_user_rate_set_capability(alg_autorate_user_stru *user_info);
132osal_u8 alg_ar_init_user_get_start_rate_index_by_protocol(alg_autorate_user_stru *user_info,
133 wlan_protocol_enum_uint8 protocol, wlan_nss_enum_uint8 nss, alg_ar_bw_cap_enum_uint8 bw);
134osal_u8 alg_ar_init_user_get_start_rate_index(alg_autorate_user_stru *user_info);
135void alg_ar_init_user_probe_info(alg_autorate_user_stru *user_info);
136void alg_ar_fill_retry_rank_with_er_base_info(alg_autorate_tx_rate_rank_stru *each_stable_rank,
137 alg_autorate_user_stru *user_rate_info);
138void alg_ar_fill_retry_rank_with_er_dcm_rate(osal_u8 rank_index,
139 alg_autorate_tx_rate_rank_stru *stable_rank, alg_autorate_user_stru *user_rate_info);
140void alg_ar_get_user_tx_rate_rank_info(
141 alg_autorate_user_stru *user_info, osal_u8 max_rank_index, alg_autorate_tx_rate_rank_stru *tx_rate_rank);
142osal_u32 alg_ar_init_user_rate_stat_info(alg_autorate_user_stru *user_info, osal_bool is_same_stat);
143osal_u32 alg_ar_init_user_best_rate_info(alg_autorate_user_stru *user_info,
144 alg_autorate_basic_rate_info_stru *rate_info);
145osal_u32 alg_ar_init_user_rate_info(alg_autorate_user_stru *user_info,
146 alg_autorate_basic_rate_info_stru *rate_info);
147osal_u32 alg_ar_init_user_rate(alg_autorate_user_stru *user_info);
148osal_u32 alg_autorate_init_user(dmac_vap_stru *vap, dmac_user_stru *user);
149osal_u32 alg_autorate_exit_user(dmac_vap_stru *vap, dmac_user_stru *user);
150osal_void alg_autorate_change_protocol_mode(dmac_user_stru *user, wlan_protocol_enum_uint8 new_protocol);
151void alg_ar_init_bcast_data_tx_param(dmac_vap_stru *dmac_vap, alg_autorate_tx_fix_rate_rank_stru *tx_param);
152void alg_ar_init_ucast_mgmt_tx_param(dmac_vap_stru *dmac_vap, alg_autorate_tx_fix_rate_rank_stru *tx_param);
153void alg_ar_init_bcast_mgmt_tx_param(dmac_vap_stru *dmac_vap, alg_autorate_tx_fix_rate_rank_stru *tx_param);
154osal_u32 alg_autorate_get_tx_best_rate_fix_mode(alg_autorate_dev_stru *device_info,
155 alg_autorate_basic_rate_info_stru *basic_rate_info);
156#endif /* #ifdef _PRE_WLAN_FEATURE_AUTORATE */
157
158#ifdef __cplusplus
159#if __cplusplus
160}
161#endif
162#endif
163
164#endif /* end of alg_autorate_rom.h */
osal_u8 oal_bool_enum_uint8
Definition oal_types_device_rom.h:45
@ OAL_BUTT
Definition oal_types_device_rom.h:43
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
Definition alg_autorate_common_rom.h:131
Definition alg_autorate_common_rom.h:103
Definition dmac_ext_if_rom.h:106
wlan_phy_protocol_enum
Definition wlan_spec_type_rom.h:22
osal_u8 wlan_phy_protocol_enum_uint8
Definition wlan_spec_type_rom.h:33
osal_u8 wlan_gi_type_enum_uint8
Definition wlan_types.h:668
@ WLAN_HE_GI_TYPE_BUTT
Definition wlan_types.h:666
osal_u8 wlan_legacy_ofdm_mcs_enum_uint8
Definition wlan_types.h:532
osal_u8 wlan_he_ltf_type_enum_uint8
Definition wlan_types.h:713
td_u8 wlan_protocol_enum_uint8
Definition wlan_types.h:488
osal_u8 wlan_11b_rate_index_enum_uint8
Definition wlan_types.h:519
osal_u8 wlan_nss_enum_uint8
Definition wlan_types_base_rom.h:240