WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
alg_rts_rom.h
浏览该文件的文档.
1/*
2 * Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2020-2022. All rights reserved.
3 * Description: header file of alg_rts_rom.c for outer files to reference
4 */
5
6#ifndef ALG_RTS_ROM_H
7#define ALG_RTS_ROM_H
8
9/*****************************************************************************
10 1 其他头文件包含
11*****************************************************************************/
12#include "alg_main_rom.h"
13#include "hal_device_rom.h"
14#include "dmac_alg_if_part_rom.h"
15#include "dmac_user_rom.h"
16#include "dmac_alg_rom.h"
17#include "mac_device_rom.h"
18#include "alg_txbf_rom.h"
19#include "hal_device_rom.h"
20#include "hal_power_rom.h"
21#include "dmac_ext_if_rom.h"
22#include "frw_util_rom.h"
23#include "hal_alg_rts_rom.h"
24
25#ifdef __cplusplus
26#if __cplusplus
27extern "C" {
28#endif
29#endif
30
31#ifdef _PRE_WLAN_FEATURE_RTS
32
33/*****************************************************************************
34 1 宏定义
35*****************************************************************************/
36#define ALG_RTS_CFG_RATE_SHIFT 3
37#define ALG_RTS_CFG_RATE_BITS 0x7
38
39/*****************************************************************************
40 2 枚举定义
41*****************************************************************************/
42/* RTS mode */
43typedef enum {
44 ALG_RTS_MODE_ALL_ENABLE = 0, /* rate[0..3]都开RTS */
45 ALG_RTS_MODE_ALL_DISABLE = 1, /* rate[0..3]都不开RTS */
46 ALG_RTS_MODE_RATE0_DYNAMIC = 2, /* rate[0]动态RTS, rate[1..3]都开RTS */
47 ALG_RTS_MODE_RATE0_DISABLE = 3, /* rate[0]不开RTS, rate[1..3]都开RTS */
48 ALG_RTS_MODE_THRESHOLD = 4, /* 根据MIB配置的RTS Threshold字节数门限确定是否开RTS */
49
53
54/*****************************************************************************
55 7 STRUCT定义
56*****************************************************************************/
57/* rts固定速率结构体 */
58typedef struct {
59 osal_u8 fixed_rate : 3;
60 osal_u8 is_fixed_rate : 1;
61 osal_u8 reserved : 4;
62} alg_rts_fixed_rate_stru;
63/* rts_dev结构体 */
64typedef struct {
65 alg_param_sync_rts_stru *rts_sync_dmac; /* 从host同步参数 */
66 alg_config_param_sync_rts_stru rts_config_param_sync_dmac; /* 从host同步rts配置命令参数 */
67
68 alg_rts_fixed_rate_stru fix_rate[HAL_TX_RATE_MAX_NUM]; /* 固定速率配置参数 */
69
70 osal_u32 co_intf : 1; /* 干扰检测模块通知RTS算法同频干扰状态 */
71 osal_u32 res : 31; /* 4字节对齐 */
72
73 osal_u32 *rom;
74}alg_rts_dev_info_stru;
75/* rts的user信息结构体 */
76typedef struct {
77 osal_u32 first_loss_ratio : 11; /* 首包错误率(千分数) */
78 osal_u32 first_pkt_stat_intvl_pktcnt : 7; /* 首包统计间隔包计数 */
79 osal_u32 first_pkt_stat_rate0_pktcnt : 8; /* rate0首包统计间隔包计数 */
80
81 osal_u32 is_valid_user : 1; /* 当前用户是否注册标记位 */
82 osal_u32 rate0_use_rts : 1; /* rate0是否使用RTS */
83 osal_u32 enable_ampdu : 1; /* 是否支持AMPDU */
84 osal_u32 traffic_type : 3; /* 该用户的业务类型 */
85
86 /* 指向其它已分配空间的指针 */
87 alg_rts_dev_info_stru *rts_dev_info;
88 dmac_user_stru *dmac_user;
89}alg_rts_user_info_stru;
90/* rts_dev结构体rom指针 */
91typedef osal_u32 (*alg_rts_dev_init_cb)(alg_rts_dev_info_stru *rts_dev);
92/* 重点函数rom钩子预留 */
93typedef osal_u32 (*alg_rts_tx_process_cb)(dmac_user_stru *user, mac_tx_ctl_stru *cb, hal_tx_txop_alg_stru *txop_param,
94 osal_u32 *ret);
95typedef osal_u32 (*alg_rts_tx_comp_process_cb)(dmac_user_stru *user, oal_dmac_netbuf_stru *buf,
96 hal_tx_dscr_ctrl_one_param *tx_dscr_param, osal_u32 *ret);
97typedef osal_u32 (*alg_rts_rate_tx_param_cb)(hal_tx_ctrl_desc_rate_stru *per_rate_params, osal_u8 *rts_rate,
98 alg_rts_user_info_stru *user_info, osal_u32 *ret);
99typedef osal_u32 (*alg_rts_tx_payload_len_notify_cb)(dmac_user_stru *user, hal_tx_txop_alg_stru *txop_param,
100 osal_u32 payload_len, osal_u8 ampdu_enable, osal_u32 *ret);
101/*****************************************************************************
102 10 函数声明
103*****************************************************************************/
104osal_s32 alg_rts_init(osal_void);
105osal_void alg_rts_exit(osal_void);
106osal_u32 alg_rts_init_user(dmac_vap_stru *vap, dmac_user_stru *user);
107osal_u32 alg_rts_exit_user(dmac_vap_stru *vap, dmac_user_stru *user);
108osal_u32 alg_rts_tx_process(dmac_user_stru *user, mac_tx_ctl_stru *cb, hal_tx_txop_alg_stru *txop_param);
109osal_u32 alg_rts_tx_complete_process(dmac_user_stru *user, oal_dmac_netbuf_stru *buf,
110 hal_tx_dscr_ctrl_one_param *tx_dscr_param);
111osal_u32 alg_rts_tx_payload_len_notify(dmac_user_stru *user, hal_tx_txop_alg_stru *txop_param, osal_u32 payload_len,
112 osal_u8 ampdu_enable);
113osal_u32 alg_rts_co_intf_notify(hal_to_dmac_device_stru *hal_dev, alg_intf_det_notify_info_stru *intf_det_notify);
114osal_s32 alg_rts_threshold_sync(dmac_vap_stru *dmac_vap, frw_msg *msg);
115/* 配置命令相关的函数调用给外部接口使用 */
116osal_u32 alg_rts_config_param(frw_msg *msg);
117osal_u32 alg_rts_param_sync(const alg_param_sync_stru *sync);
118#endif /* #ifdef _PRE_WLAN_FEATURE_RTS */
119
120#ifdef __cplusplus
121#if __cplusplus
122}
123#endif
124#endif
125
126#endif /* end of alg_rts_rom.h */
osal_u16 reserved
Definition oal_net.h:4
int osal_s32
Definition osal_types.h:19
unsigned char osal_u8
Definition osal_types.h:11
void osal_void
Definition osal_types.h:29
unsigned int osal_u32
Definition osal_types.h:13
alg_rts_mode_enum
Definition soc_wifi_driver_api.h:114
@ ALG_RTS_MODE_RATE0_DYNAMIC
Definition soc_wifi_driver_api.h:117
@ ALG_RTS_MODE_ALL_ENABLE
Definition soc_wifi_driver_api.h:115
@ ALG_RTS_MODE_RATE0_DISABLE
Definition soc_wifi_driver_api.h:118
@ ALG_RTS_MODE_THRESHOLD
Definition soc_wifi_driver_api.h:119
@ ALG_RTS_MODE_ALL_DISABLE
Definition soc_wifi_driver_api.h:116
@ ALG_RTS_MODE_BUTT
Definition soc_wifi_driver_api.h:121
osal_u8 alg_rts_mode_enum_uint8
Definition soc_wifi_driver_api.h:123
Definition alg_common_rom.h:347
Definition alg_common_rom.h:77
Definition alg_common_rom.h:310
Definition alg_common_rom.h:411
Definition dmac_ext_if_rom.h:106
Definition frw_msg_rom.h:74
Definition hal_common_ops_device_rom.h:720
Definition hal_common_ops_rom.h:56
Definition hal_ops_common_rom.h:240
Definition dmac_ext_if_device_rom.h:98
Definition oal_net_pkt_rom.h:83
Definition hal_ops_common_rom.h:529
#define HAL_TX_RATE_MAX_NUM
Definition wlan_spec_hh503_rom.h:40