-
Notifications
You must be signed in to change notification settings - Fork 9
/
ecrnx_msg_tx.h
executable file
·155 lines (148 loc) · 9.19 KB
/
ecrnx_msg_tx.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
/**
****************************************************************************************
*
* @file ecrnx_msg_tx.h
*
* @brief TX function declarations
*
* Copyright (C) ESWIN 2015-2020
*
****************************************************************************************
*/
#ifndef _ECRNX_MSG_TX_H_
#define _ECRNX_MSG_TX_H_
#include "ecrnx_defs.h"
int ecrnx_send_reset(struct ecrnx_hw *ecrnx_hw);
int ecrnx_send_start(struct ecrnx_hw *ecrnx_hw);
int ecrnx_send_version_req(struct ecrnx_hw *ecrnx_hw, struct mm_version_cfm *cfm);
int ecrnx_send_add_if(struct ecrnx_hw *ecrnx_hw, const unsigned char *mac,
enum nl80211_iftype iftype, bool p2p, struct mm_add_if_cfm *cfm);
int ecrnx_send_remove_if(struct ecrnx_hw *ecrnx_hw, u8 vif_index);
int ecrnx_send_set_channel(struct ecrnx_hw *ecrnx_hw, int phy_idx,
struct mm_set_channel_cfm *cfm);
int ecrnx_send_key_add(struct ecrnx_hw *ecrnx_hw, u8 vif_idx, u8 sta_idx, bool pairwise,
u8 *key, u8 key_len, u8 key_idx, u8 cipher_suite,
struct mm_key_add_cfm *cfm);
int ecrnx_send_key_del(struct ecrnx_hw *ecrnx_hw, uint8_t hw_key_idx);
int ecrnx_send_bcn_change(struct ecrnx_hw *ecrnx_hw, u8 vif_idx, dma_addr_t bcn_addr,
u16 bcn_len, u16 tim_oft, u16 tim_len, u16 *csa_oft);
int ecrnx_send_tim_update(struct ecrnx_hw *ecrnx_hw, u8 vif_idx, u16 aid,
u8 tx_status);
int ecrnx_send_roc(struct ecrnx_hw *ecrnx_hw, struct ecrnx_vif *vif,
struct ieee80211_channel *chan, unsigned int duration);
int ecrnx_send_cancel_roc(struct ecrnx_hw *ecrnx_hw);
int ecrnx_send_set_power(struct ecrnx_hw *ecrnx_hw, u8 vif_idx, s8 pwr,
struct mm_set_power_cfm *cfm);
int ecrnx_send_set_edca(struct ecrnx_hw *ecrnx_hw, u8 hw_queue, u32 param,
bool uapsd, u8 inst_nbr);
int ecrnx_send_tdls_chan_switch_req(struct ecrnx_hw *ecrnx_hw, struct ecrnx_vif *ecrnx_vif,
struct ecrnx_sta *ecrnx_sta, bool sta_initiator,
u8 oper_class, struct cfg80211_chan_def *chandef,
struct tdls_chan_switch_cfm *cfm);
int ecrnx_send_tdls_cancel_chan_switch_req(struct ecrnx_hw *ecrnx_hw,
struct ecrnx_vif *ecrnx_vif,
struct ecrnx_sta *ecrnx_sta,
struct tdls_cancel_chan_switch_cfm *cfm);
#ifdef CONFIG_ECRNX_P2P_DEBUGFS
int ecrnx_send_p2p_oppps_req(struct ecrnx_hw *ecrnx_hw, struct ecrnx_vif *ecrnx_vif,
u8 ctw, struct mm_set_p2p_oppps_cfm *cfm);
int ecrnx_send_p2p_noa_req(struct ecrnx_hw *ecrnx_hw, struct ecrnx_vif *ecrnx_vif,
int count, int interval, int duration,
bool dyn_noa, struct mm_set_p2p_noa_cfm *cfm);
#endif /* CONFIG_ECRNX_P2P_DEBUGFS */
#ifdef CONFIG_ECRNX_FULLMAC
int ecrnx_send_me_config_req(struct ecrnx_hw *ecrnx_hw);
int ecrnx_send_me_chan_config_req(struct ecrnx_hw *ecrnx_hw);
int ecrnx_send_me_set_control_port_req(struct ecrnx_hw *ecrnx_hw, bool opened,
u8 sta_idx);
int ecrnx_send_me_sta_add(struct ecrnx_hw *ecrnx_hw, struct station_parameters *params,
const u8 *mac, u8 inst_nbr, struct me_sta_add_cfm *cfm);
int ecrnx_send_me_sta_del(struct ecrnx_hw *ecrnx_hw, u8 sta_idx, bool tdls_sta);
int ecrnx_send_me_traffic_ind(struct ecrnx_hw *ecrnx_hw, u8 sta_idx, bool uapsd, u8 tx_status);
int ecrnx_send_twt_request(struct ecrnx_hw *ecrnx_hw,
u8 setup_type, u8 vif_idx,
struct twt_conf_tag *conf,
struct twt_setup_cfm *cfm);
int ecrnx_send_twt_teardown(struct ecrnx_hw *ecrnx_hw,
struct twt_teardown_req *twt_teardown,
struct twt_teardown_cfm *cfm);
int ecrnx_send_me_rc_stats(struct ecrnx_hw *ecrnx_hw, u8 sta_idx,
struct me_rc_stats_cfm *cfm);
int ecrnx_send_me_rc_set_rate(struct ecrnx_hw *ecrnx_hw,
u8 sta_idx,
u16 rate_idx);
int ecrnx_send_me_set_ps_mode(struct ecrnx_hw *ecrnx_hw, u8 ps_mode);
int ecrnx_send_sm_connect_req(struct ecrnx_hw *ecrnx_hw,
struct ecrnx_vif *ecrnx_vif,
struct cfg80211_connect_params *sme,
struct sm_connect_cfm *cfm);
int ecrnx_send_sm_disconnect_req(struct ecrnx_hw *ecrnx_hw,
struct ecrnx_vif *ecrnx_vif,
u16 reason);
int ecrnx_send_disconnect_local(struct ecrnx_hw *ecrnx_hw,
struct ecrnx_vif *ecrnx_vif,
u16 reason);
int ecrnx_send_sm_external_auth_required_rsp(struct ecrnx_hw *ecrnx_hw,
struct ecrnx_vif *ecrnx_vif,
u16 status);
int ecrnx_send_sm_ft_auth_rsp(struct ecrnx_hw *ecrnx_hw, struct ecrnx_vif *ecrnx_vif,
uint8_t *ie, int ie_len);
int ecrnx_send_apm_start_req(struct ecrnx_hw *ecrnx_hw, struct ecrnx_vif *vif,
struct cfg80211_ap_settings *settings,
struct apm_start_cfm *cfm,
struct ecrnx_ipc_elem_var *elem);
int ecrnx_send_apm_stop_req(struct ecrnx_hw *ecrnx_hw, struct ecrnx_vif *vif);
int ecrnx_send_apm_probe_req(struct ecrnx_hw *ecrnx_hw, struct ecrnx_vif *vif,
struct ecrnx_sta *sta, struct apm_probe_client_cfm *cfm);
int ecrnx_send_scanu_req(struct ecrnx_hw *ecrnx_hw, struct ecrnx_vif *ecrnx_vif,
struct cfg80211_scan_request *param);
int ecrnx_send_scanu_cancel_req(struct ecrnx_hw *ecrnx_hw, struct ecrnx_vif *ecrnx_vif);
int ecrnx_send_apm_start_cac_req(struct ecrnx_hw *ecrnx_hw, struct ecrnx_vif *vif,
struct cfg80211_chan_def *chandef,
struct apm_start_cac_cfm *cfm);
int ecrnx_send_apm_stop_cac_req(struct ecrnx_hw *ecrnx_hw, struct ecrnx_vif *vif);
int ecrnx_send_tdls_peer_traffic_ind_req(struct ecrnx_hw *ecrnx_hw, struct ecrnx_vif *ecrnx_vif);
int ecrnx_send_config_monitor_req(struct ecrnx_hw *ecrnx_hw,
struct cfg80211_chan_def *chandef,
struct me_config_monitor_cfm *cfm);
int ecrnx_send_mesh_start_req(struct ecrnx_hw *ecrnx_hw, struct ecrnx_vif *vif,
const struct mesh_config *conf, const struct mesh_setup *setup,
struct mesh_start_cfm *cfm);
int ecrnx_send_mesh_stop_req(struct ecrnx_hw *ecrnx_hw, struct ecrnx_vif *vif,
struct mesh_stop_cfm *cfm);
int ecrnx_send_mesh_update_req(struct ecrnx_hw *ecrnx_hw, struct ecrnx_vif *vif,
u32 mask, const struct mesh_config *p_mconf, struct mesh_update_cfm *cfm);
int ecrnx_send_mesh_peer_info_req(struct ecrnx_hw *ecrnx_hw, struct ecrnx_vif *vif,
u8 sta_idx, struct mesh_peer_info_cfm *cfm);
void ecrnx_send_mesh_peer_update_ntf(struct ecrnx_hw *ecrnx_hw, struct ecrnx_vif *vif,
u8 sta_idx, u8 mlink_state);
void ecrnx_send_mesh_path_create_req(struct ecrnx_hw *ecrnx_hw, struct ecrnx_vif *vif, u8 *tgt_addr);
int ecrnx_send_mesh_path_update_req(struct ecrnx_hw *ecrnx_hw, struct ecrnx_vif *vif, const u8 *tgt_addr,
const u8 *p_nhop_addr, struct mesh_path_update_cfm *cfm);
void ecrnx_send_mesh_proxy_add_req(struct ecrnx_hw *ecrnx_hw, struct ecrnx_vif *vif, u8 *ext_addr);
#if defined(CONFIG_ECRNX_P2P)
int ecrnx_send_p2p_start_listen_req(struct ecrnx_hw *ecrnx_hw, struct ecrnx_vif *ecrnx_vif, unsigned int duration);
int ecrnx_send_p2p_cancel_listen_req(struct ecrnx_hw *ecrnx_hw, struct ecrnx_vif *ecrnx_vif);
#endif
#endif /* CONFIG_ECRNX_FULLMAC */
#ifdef CONFIG_ECRNX_BFMER
void ecrnx_send_bfmer_enable(struct ecrnx_hw *ecrnx_hw, struct ecrnx_sta *ecrnx_sta,
const struct ieee80211_vht_cap *vht_cap);
#ifdef CONFIG_ECRNX_MUMIMO_TX
int ecrnx_send_mu_group_update_req(struct ecrnx_hw *ecrnx_hw, struct ecrnx_sta *ecrnx_sta);
#endif /* CONFIG_ECRNX_MUMIMO_TX */
#endif /* CONFIG_ECRNX_BFMER */
/* Debug messages */
int ecrnx_send_dbg_trigger_req(struct ecrnx_hw *ecrnx_hw, char *msg);
int ecrnx_send_dbg_mem_read_req(struct ecrnx_hw *ecrnx_hw, u32 mem_addr,
struct dbg_mem_read_cfm *cfm);
int ecrnx_send_dbg_mem_write_req(struct ecrnx_hw *ecrnx_hw, u32 mem_addr,
u32 mem_data);
int ecrnx_send_dbg_set_mod_filter_req(struct ecrnx_hw *ecrnx_hw, u32 filter);
int ecrnx_send_dbg_set_sev_filter_req(struct ecrnx_hw *ecrnx_hw, u32 filter);
int ecrnx_send_dbg_get_sys_stat_req(struct ecrnx_hw *ecrnx_hw,
struct dbg_get_sys_stat_cfm *cfm);
int ecrnx_send_cfg_rssi_req(struct ecrnx_hw *ecrnx_hw, u8 vif_index, int rssi_thold, u32 rssi_hyst);
int ecrnx_send_set_gain_delta_req(struct ecrnx_hw *ecrnx_hw);
int ecrnx_send_cal_result_get_req(struct ecrnx_hw *ecrnx_hw, void *cfm);
#endif /* _ECRNX_MSG_TX_H_ */