blob: e2aa91caa4830f7b165cee52c7acdf0de9448a04 [file] [log] [blame]
/*
* Copyright (c) 2024 Nordic Semiconductor ASA
*
* SPDX-License-Identifier: Apache-2.0
*/
/**
* @brief Header containing WiFi management operation implementations
* for the Zephyr OS.
*/
#ifndef __ZEPHYR_WIFI_MGMT_H__
#define __ZEPHYR_WIFI_MGMT_H__
#include <math.h>
#include <zephyr/device.h>
#include <zephyr/net/wifi_mgmt.h>
#include "osal_api.h"
/** Filter setting defines for sniffer mode. */
#define WIFI_MGMT_DATA_CTRL_FILTER_SETTING 0xE
#define WIFI_ALL_FILTER_SETTING 0xF
struct twt_interval_float {
unsigned short mantissa;
unsigned char exponent;
};
int nrf_wifi_set_power_save(const struct device *dev,
struct wifi_ps_params *params);
int nrf_wifi_set_twt(const struct device *dev,
struct wifi_twt_params *twt_params);
void nrf_wifi_event_proc_twt_setup_zep(void *vif_ctx,
struct nrf_wifi_umac_cmd_config_twt *twt_setup_info,
unsigned int event_len);
void nrf_wifi_event_proc_twt_teardown_zep(void *vif_ctx,
struct nrf_wifi_umac_cmd_teardown_twt *twt_teardown_info,
unsigned int event_len);
void nrf_wifi_event_proc_twt_sleep_zep(void *vif_ctx,
struct nrf_wifi_umac_event_twt_sleep *twt_sleep_info,
unsigned int event_len);
int nrf_wifi_twt_teardown_flows(struct nrf_wifi_vif_ctx_zep *vif_ctx_zep,
unsigned char start_flow_id, unsigned char end_flow_id);
int nrf_wifi_get_power_save_config(const struct device *dev,
struct wifi_ps_config *ps_config);
void nrf_wifi_event_proc_get_power_save_info(void *vif_ctx,
struct nrf_wifi_umac_event_power_save_info *ps_info,
unsigned int event_len);
#ifdef CONFIG_NRF70_SYSTEM_WITH_RAW_MODES
int nrf_wifi_mode(const struct device *dev,
struct wifi_mode_info *mode);
#endif
#if defined(CONFIG_NRF70_RAW_DATA_TX) || defined(CONFIG_NRF70_RAW_DATA_RX)
int nrf_wifi_channel(const struct device *dev,
struct wifi_channel_info *channel);
#endif /* CONFIG_NRF70_RAW_DATA_TX || CONFIG_NRF70_RAW_DATA_RX */
#if defined(CONFIG_NRF70_RAW_DATA_RX) || defined(CONFIG_NRF70_PROMISC_DATA_RX)
int nrf_wifi_filter(const struct device *dev,
struct wifi_filter_info *filter);
#endif /* CONFIG_NRF70_RAW_DATA_RX || CONFIG_NRF70_PROMISC_DATA_RX */
int nrf_wifi_set_rts_threshold(const struct device *dev,
unsigned int rts_threshold);
int nrf_wifi_get_rts_threshold(const struct device *dev,
unsigned int *rts_threshold);
#endif /* __ZEPHYR_WIFI_MGMT_H__ */