16#ifndef __FMAC_STRUCTS_H__
17#define __FMAC_STRUCTS_H__
24#define MAX_SW_PEERS (MAX_PEERS + 1)
25#define NRF_WIFI_AC_TWT_PRIORITY_EMERGENCY 0xFF
26#define NRF_WIFI_MAGIC_NUM_RAWTX 0x12345678
76#if defined(CONFIG_NRF700X_RAW_DATA_RX) || defined(CONFIG_NRF700X_PROMISC_DATA_RX)
83struct raw_rx_pkt_header {
85 unsigned short frequency;
89 unsigned char rate_flags;
105 unsigned int event_len);
110 unsigned int event_len);
115 unsigned int event_len);
120 unsigned int event_len);
125 unsigned int event_len,
131 unsigned int event_len,
134#if defined(CONFIG_WIFI_MGMT_RAW_SCAN_RESULTS) || defined(__DOXYGEN__)
136 void (*rx_bcn_prb_resp_callbk_fn)(
void *os_vif_ctx,
138 unsigned short frequency,
139 signed short signal);
142#if defined(CONFIG_NRF700X_STA_MODE) || defined(__DOXYGEN__)
148 void (*rx_frm_callbk_fn)(
void *os_vif_ctx,
152 void (*auth_resp_callbk_fn)(
void *os_vif_ctx,
154 unsigned int event_len);
157 void (*assoc_resp_callbk_fn)(
void *os_vif_ctx,
159 unsigned int event_len);
162 void (*deauth_callbk_fn)(
void *os_vif_ctx,
164 unsigned int event_len);
167 void (*disassoc_callbk_fn)(
void *os_vif_ctx,
169 unsigned int event_len);
172 void (*mgmt_rx_callbk_fn)(
void *os_vif_ctx,
174 unsigned int event_len);
177 void (*unprot_mlme_mgmt_rx_callbk_fn)(
void *os_vif_ctx,
179 unsigned int event_len);
182 void (*tx_pwr_get_callbk_fn)(
void *os_vif_ctx,
184 unsigned int event_len);
187 void (*chnl_get_callbk_fn)(
void *os_vif_ctx,
189 unsigned int event_len);
192 void (*cookie_rsp_callbk_fn)(
void *os_vif_ctx,
194 unsigned int event_len);
197 void (*tx_status_callbk_fn)(
void *os_vif_ctx,
199 unsigned int event_len);
202 void (*set_if_callbk_fn)(
void *os_vif_ctx,
204 unsigned int event_len);
207 void (*roc_callbk_fn)(
void *os_vif_ctx,
209 unsigned int event_len);
212 void (*roc_cancel_callbk_fn)(
void *os_vif_ctx,
214 unsigned int event_len);
217 void (*get_station_callbk_fn)(
void *os_vif_ctx,
219 unsigned int event_len);
222 void (*get_interface_callbk_fn)(
void *os_vif_ctx,
224 unsigned int event_len);
227 void (*mgmt_tx_status)(
void *if_priv,
229 unsigned int event_len);
232 void (*twt_config_callbk_fn)(
void *if_priv,
234 unsigned int event_len);
237 void (*twt_teardown_callbk_fn)(
void *if_priv,
239 unsigned int event_len);
242 void (*event_get_wiphy)(
void *if_priv,
244 unsigned int event_len);
247 void (*twt_sleep_callbk_fn)(
void *if_priv,
249 unsigned int event_len);
252 void (*event_get_reg)(
void *if_priv,
254 unsigned int event_len);
259 void (*event_get_ps_info)(
void *if_priv,
261 unsigned int event_len);
264 void (*get_conn_info_callbk_fn)(
void *os_vif_ctx,
266 unsigned int event_len);
269 void (*process_rssi_from_rx)(
void *os_vif_ctx,
270 signed short signal);
272#if defined(CONFIG_NRF700X_RAW_DATA_RX) || defined(CONFIG_NRF700X_PROMISC_DATA_RX)
273 void (*rx_sniffer_frm_callbk_fn)(
void *os_vif_ctx,
275 struct raw_rx_pkt_header *,
280 unsigned int event_len);
283#if defined(CONFIG_NRF700X_STA_MODE) || defined(__DOXYGEN__)
288enum nrf_wifi_fmac_twt_state {
290 NRF_WIFI_FMAC_TWT_STATE_SLEEP,
292 NRF_WIFI_FMAC_TWT_STATE_AWAKE
305 unsigned char if_idx;
307 unsigned char ps_state;
309 unsigned char is_legacy;
311 unsigned char qos_supported;
313 unsigned char pend_q_bmp __NRF_WIFI_ALIGN_4;
317 unsigned int pairwise_cipher;
332 unsigned int *send_pkt_coalesce_count_p;
336 void *wakeup_client_q;
338 unsigned long *buf_pool_bmp_p;
344 unsigned int next_spare_desc_ac;
351 unsigned int spare_desc_queue_map;
352#if defined(CONFIG_NRF700X_TX_DONE_WQ_ENABLED) || defined(__DOXYGEN__)
354 void *tx_done_tasklet_event_q;
376#if defined(CONFIG_NRF700X_STA_MODE)
378 unsigned char num_tx_tokens;
380 unsigned char num_tx_tokens_per_ac;
382 unsigned char num_tx_tokens_spare;
384 unsigned int max_ampdu_len_per_token;
386 unsigned int avail_ampdu_len_per_token;
390#ifdef CONFIG_NRF700X_RAW_DATA_TX
396enum nrf_wifi_fmac_rawtx_mode {
398 NRF_WIFI_FMAC_RAWTX_MODE_LEGACY,
400 NRF_WIFI_FMAC_RAWTX_MODE_HT,
402 NRF_WIFI_FMAC_RAWTX_MODE_VHT,
404 NRF_WIFI_FMAC_RAWTX_MODE_HE_SU,
406 NRF_WIFI_FMAC_RAWTX_MODE_HE_ER_SU,
408 NRF_WIFI_FMAC_RAWTX_MODE_HE_TB,
410 NRF_WIFI_FMAC_RAWTX_MODE_MAX
419struct raw_tx_pkt_header {
421 unsigned int magic_num;
423 unsigned char data_rate;
425 unsigned short packet_length;
427 unsigned char tx_mode;
431 unsigned char raw_tx_flag;
442 unsigned int raw_pkts_sent;
444 unsigned int raw_pkt_send_failure;
446 unsigned int raw_pkt_send_success;
459#if defined(CONFIG_NRF700X_RX_WQ_ENABLED)
463 void *rx_tasklet_event_q;
473#if defined(CONFIG_NRF700X_STA_MODE)
477 struct tx_config tx_config;
479 enum nrf_wifi_fmac_twt_state twt_sleep_status;
480#if defined(CONFIG_NRF700X_TX_DONE_WQ_ENABLED)
482 void *tx_done_tasklet;
485#ifdef CONFIG_NRF700X_RAW_DATA_TX
486 struct raw_tx_pkt_header raw_tx_config;
487 struct raw_tx_stats raw_pkt_stats;
514#if defined(CONFIG_NRF700X_RAW_DATA_TX) || defined(CONFIG_NRF700X_RAW_DATA_RX)
516 unsigned char channel;
518 bool txinjection_mode;
520#if defined(CONFIG_NRF700X_RAW_DATA_RX) || defined(CONFIG_NRF700X_PROMISC_DATA_RX)
522 unsigned char packet_filter;
524#ifdef CONFIG_NRF700X_PROMISC_DATA_RX
nrf_wifi_fmac_if_carr_state
The carrier state of an interface.
Definition: fmac_structs.h:67
@ NRF_WIFI_FMAC_IF_CARR_STATE_INVALID
Definition: fmac_structs.h:73
@ NRF_WIFI_FMAC_IF_CARR_STATE_ON
Definition: fmac_structs.h:71
@ NRF_WIFI_FMAC_IF_CARR_STATE_OFF
Definition: fmac_structs.h:69
#define MAX_SW_PEERS
Definition: fmac_structs.h:24
nrf_wifi_fmac_if_op_state
The operational state of an interface.
Definition: fmac_structs.h:53
@ NRF_WIFI_FMAC_IF_OP_STATE_DOWN
Definition: fmac_structs.h:55
@ NRF_WIFI_FMAC_IF_OP_STATE_INVALID
Definition: fmac_structs.h:59
@ NRF_WIFI_FMAC_IF_OP_STATE_UP
Definition: fmac_structs.h:57
nrf_wifi_fmac_ac
WLAN access categories.
Definition: fmac_structs.h:33
@ NRF_WIFI_FMAC_AC_BK
Definition: fmac_structs.h:35
@ NRF_WIFI_FMAC_AC_VO
Definition: fmac_structs.h:41
@ NRF_WIFI_FMAC_AC_MAX
Definition: fmac_structs.h:45
@ NRF_WIFI_FMAC_AC_BE
Definition: fmac_structs.h:37
@ NRF_WIFI_FMAC_AC_MC
Definition: fmac_structs.h:43
@ NRF_WIFI_FMAC_AC_VI
Definition: fmac_structs.h:39
#define MAX_NUM_VIFS
Definition: host_rpu_sys_if.h:55
#define MAX_NUM_OF_RX_QUEUES
Definition: lmac_if_common.h:200
#define NRF_WIFI_ETH_ADDR_LEN
Definition: host_rpu_sys_if.h:47
nrf_wifi_status
The status of an operation performed by the RPU driver.
Definition: osal_structs.h:29
This structure specifies the configuration parameters used for configuring data-related settings.
Definition: host_rpu_sys_if.h:702
This structure represents wiphy parameters.
Definition: host_rpu_umac_if.h:3260
This structure represents the event that is generated when the regulatory domain is modified or updat...
Definition: host_rpu_umac_if.h:3482
This structure represents the response to command "Remain on Channel".
Definition: host_rpu_umac_if.h:2999
unsigned long nwb
Definition: fmac_structs.h:538
bool mapped
Definition: fmac_structs.h:536
Structure to hold TX/RX buffer pool configuration data.
Definition: fmac_structs.h:534
void(* scan_start_callbk_fn)(void *os_vif_ctx, struct nrf_wifi_umac_event_trigger_scan *scan_start_event, unsigned int event_len)
Definition: fmac_structs.h:108
void(* disp_scan_res_callbk_fn)(void *os_vif_ctx, struct nrf_wifi_umac_event_new_scan_display_results *scan_res, unsigned int event_len, bool more_res)
Definition: fmac_structs.h:129
void(* scan_abort_callbk_fn)(void *os_vif_ctx, struct nrf_wifi_umac_event_trigger_scan *scan_done_event, unsigned int event_len)
Definition: fmac_structs.h:118
void(* scan_res_callbk_fn)(void *os_vif_ctx, struct nrf_wifi_umac_event_new_scan_results *scan_res, unsigned int event_len, bool more_res)
Definition: fmac_structs.h:123
void(* scan_done_callbk_fn)(void *os_vif_ctx, struct nrf_wifi_umac_event_trigger_scan *scan_done_event, unsigned int event_len)
Definition: fmac_structs.h:113
void(* reg_change_callbk_fn)(void *os_vif_ctx, struct nrf_wifi_event_regulatory_change *reg_change, unsigned int event_len)
Definition: fmac_structs.h:278
void(* rpu_recovery_callbk_fn)(void *os_vif_ctx, void *event_data, unsigned int event_len)
Definition: fmac_structs.h:103
Callback functions to be invoked by UMAC IF layer when a particular event occurs.
Definition: fmac_structs.h:101
struct rpu_host_stats host_stats
Definition: fmac_structs.h:466
unsigned char num_ap
Definition: fmac_structs.h:470
unsigned char num_sta
Definition: fmac_structs.h:468
struct nrf_wifi_fmac_buf_map_info * rx_buf_info
Definition: fmac_structs.h:472
struct nrf_wifi_fmac_vif_ctx * vif_ctx[MAX_NUM_VIFS]
Definition: fmac_structs.h:458
Structure to hold per device context information for the UMAC IF layer.
Definition: fmac_structs.h:456
Structure to hold common fmac dev context parameter data.
Definition: fmac_structs_common.h:146
struct nrf_wifi_fmac_callbk_fns callbk_fns
Definition: fmac_structs.h:367
unsigned int rx_desc[MAX_NUM_OF_RX_QUEUES]
Definition: fmac_structs.h:373
unsigned int num_rx_bufs
Definition: fmac_structs.h:375
struct nrf_wifi_data_config_params data_config
Definition: fmac_structs.h:369
struct rx_buf_pool_params rx_buf_pools[MAX_NUM_OF_RX_QUEUES]
Definition: fmac_structs.h:371
Structure to hold context information for the UMAC IF layer.
Definition: fmac_structs.h:365
char mac_addr[NRF_WIFI_ETH_ADDR_LEN]
Definition: fmac_structs.h:503
int if_type
Definition: fmac_structs.h:509
struct nrf_wifi_fmac_dev_ctx * fmac_dev_ctx
Definition: fmac_structs.h:499
unsigned char mode
Definition: fmac_structs.h:513
void * os_vif_ctx
Definition: fmac_structs.h:501
int groupwise_cipher
Definition: fmac_structs.h:505
unsigned char bssid[NRF_WIFI_ETH_ADDR_LEN]
Definition: fmac_structs.h:511
bool ifflags
Definition: fmac_structs.h:507
Structure to hold per VIF context information for the UMAC IF layer.
Definition: fmac_structs.h:497
This structure represents an event that contains information about a network interface.
Definition: host_rpu_umac_if.h:3032
This structure represents an event that contains regulatory domain information.
Definition: host_rpu_umac_if.h:3446
This structure defines the parameters required for setting up TWT session.
Definition: host_rpu_umac_if.h:2396
This structure defines the command used to delete or remove a TWT session.
Definition: host_rpu_umac_if.h:2423
This structure represents the information related to the connection of a station.
Definition: host_rpu_umac_if.h:2846
This structure specifies the cookie response event, which is used to receive an RPU cookie associated...
Definition: host_rpu_umac_if.h:2708
This structure represents channel information and serves as the event for the command NRF_WIFI_UMAC_C...
Definition: host_rpu_umac_if.h:2816
This structure represents the event that corresponds to the command NRF_WIFI_UMAC_CMD_GET_TX_POWER....
Definition: host_rpu_umac_if.h:2729
This structure represent different responses received from the access point during various stages of ...
Definition: host_rpu_umac_if.h:2647
This structure serves as a response to the command NRF_WIFI_UMAC_CMD_GET_SCAN_RESULTS of display scan...
Definition: host_rpu_umac_if.h:2620
This structure serves as a response to the command NRF_WIFI_UMAC_CMD_GET_SCAN_RESULTS....
Definition: host_rpu_umac_if.h:2525
This structure represents an event that is generated when a station is added or removed.
Definition: host_rpu_umac_if.h:2679
This structure represents an event that provides information about the RPU power save mode....
Definition: host_rpu_umac_if.h:2916
This structure represents the response to the command NRF_WIFI_UMAC_CMD_SET_INTERFACE....
Definition: host_rpu_umac_if.h:2744
This structure represents the event used to indicate that a scan has started.
Definition: host_rpu_umac_if.h:2485
This structure defines an event used to indicate to the host whether to block or unblock Tx (transmit...
Definition: host_rpu_umac_if.h:2449
Structure to hold host specific statistics.
Definition: fmac_structs_common.h:28
Definition: lmac_if_common.h:202
Structure containing information about a TX packet.
Definition: fmac_tx.h:54