Merge f86b658d0a on remote branch

Change-Id: I21c5383fcd99d3616f91c19dd51920bb9753696c
This commit is contained in:
Linux Build Service Account 2024-09-11 06:04:50 -07:00
commit f5a566817a
69 changed files with 2367 additions and 331 deletions

16
Kbuild
View File

@ -3009,11 +3009,14 @@ HAL_OBJS += $(WLAN_COMMON_ROOT)/$(HAL_DIR)/wifi3.0/be/hal_be_generic_api.o
HAL_OBJS += $(WLAN_COMMON_ROOT)/$(HAL_DIR)/wifi3.0/be/hal_be_reo.o \
ifeq (y,$(findstring y,$(CONFIG_CNSS_KIWI) $(CONFIG_CNSS_KIWI_V2) $(CONFIG_CNSS_PEACH)))
ifeq (y,$(findstring y,$(CONFIG_INCLUDE_HAL_PEACH)))
HAL_INC += -I$(WLAN_COMMON_INC)/$(HAL_DIR)/wifi3.0/peach
HAL_OBJS += $(WLAN_COMMON_ROOT)/$(HAL_DIR)/wifi3.0/peach/hal_peach.o
ccflags-y += -DINCLUDE_HAL_PEACH
else ifeq (y,$(findstring y,$(CONFIG_INCLUDE_HAL_KIWI)))
HAL_INC += -I$(WLAN_COMMON_INC)/$(HAL_DIR)/wifi3.0/kiwi
HAL_OBJS += $(WLAN_COMMON_ROOT)/$(HAL_DIR)/wifi3.0/kiwi/hal_kiwi.o
else
#error "Not Beryllium"
ccflags-y += -DINCLUDE_HAL_KIWI
endif
endif #### CONFIG_BERYLLIUM ####
@ -4696,6 +4699,13 @@ CONFIG_WLAN_MAX_ML_BSS_LINKS ?= 1
endif
ccflags-y += -DWLAN_MAX_ML_BSS_LINKS=$(CONFIG_WLAN_MAX_ML_BSS_LINKS)
ifdef CONFIG_WLAN_FEATURE_EMLSR
CONFIG_WLAN_EMLSR_ENABLE ?= 1
else
CONFIG_WLAN_EMLSR_ENABLE ?= 0
endif
ccflags-y += -DWLAN_EMLSR_ENABLE=$(CONFIG_WLAN_EMLSR_ENABLE)
#Maximum pending commands for a vdev is calculated in vdev create handler
#by WLAN_SER_MAX_PENDING_CMDS/WLAN_SER_MAX_VDEVS. For SAP case, we will need
#to accommodate 32 Pending commands to handle multiple STA sending

24
Kconfig
View File

@ -120,6 +120,18 @@ config CNSS_PEACH
bool "Enable CNSS_PEACH"
default n
config CNSS_PEACH_V2
bool "Enable CNSS_PEACH_V2"
default n
config INCLUDE_HAL_KIWI
bool "Enable INCLUDE_HAL_KIWI"
default n
config INCLUDE_HAL_PEACH
bool "Enable INCLUDE_HAL_PEACH"
default n
config CNSS_UTILS_MODULE
bool "Enable CNSS_UTILS_MODULE"
default n
@ -2027,6 +2039,10 @@ config CNSS_ADRASTEA
bool "Enable CNSS_ADRASTEA"
default n
config WLAN_FEATURE_EMLSR
bool "Enable EMLSR feature"
default n
if CNSS_KIWI_V2
config CFG_BMISS_OFFLOAD_MAX_VDEV
int "Enable CFG_BMISS_OFFLOAD_MAX_VDEV"
@ -2129,4 +2145,12 @@ config WLAN_FASTPATH_LEGACY
config QCA_SUPPORT_TX_THROTTLE_LEGACY
bool "Enable QCA_SUPPORT_TX_THROTTLE_LEGACY"
default n
config PLD_SNOC_ICNSS_FLAG
bool "Enable PLD_SNOC_ICNSS_FLAG"
default n
config ICNSS2_HELIUM
bool "Enable ICNSS2_HELIUM"
default n
endif # QCA_CLD_WLAN

View File

@ -1,6 +1,6 @@
/*
* Copyright (c) 2020-2021, The Linux Foundation. All rights reserved.
* Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
* Copyright (c) 2021-2024 Qualcomm Innovation Center, Inc. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@ -216,6 +216,9 @@ QDF_STATUS if_mgr_disconnect_start(struct wlan_objmgr_vdev *vdev,
qdf_runtime_pm_prevent_suspend(&mlme_priv->disconnect_runtime_lock);
if (mlo_mgr_is_link_switch_in_progress(vdev))
wlan_tdls_delete_all_peers(vdev);
return QDF_STATUS_SUCCESS;
}

View File

@ -1315,10 +1315,12 @@ wlan_connectivity_mlo_reconfig_event(struct wlan_objmgr_vdev *vdev);
/**
* wlan_connectivity_mlo_setup_event() - Fill and send MLO setup data
* @vdev: vdev pointer
* @is_band_present: If Band is present(Associated link band is shared by FW)
*
* Return: None
*/
void wlan_connectivity_mlo_setup_event(struct wlan_objmgr_vdev *vdev);
void wlan_connectivity_mlo_setup_event(struct wlan_objmgr_vdev *vdev,
bool is_band_present);
/**
* wlan_connectivity_t2lm_req_resp_event - API to send t2lm Req/resp
@ -1382,7 +1384,8 @@ wlan_connectivity_mlo_reconfig_event(struct wlan_objmgr_vdev *vdev)
}
static inline void
wlan_connectivity_mlo_setup_event(struct wlan_objmgr_vdev *vdev)
wlan_connectivity_mlo_setup_event(struct wlan_objmgr_vdev *vdev,
bool is_band_present)
{
}

View File

@ -596,9 +596,6 @@ wlan_populate_roam_mld_log_param(struct wlan_objmgr_vdev *vdev,
struct wlan_objmgr_pdev *pdev;
QDF_STATUS status = QDF_STATUS_SUCCESS;
if (!mlo_is_mld_sta(vdev))
return status;
pdev = wlan_vdev_get_pdev(vdev);
if (!pdev)
return QDF_STATUS_E_INVAL;
@ -636,7 +633,8 @@ wlan_convert_freq_to_diag_band(uint16_t ch_freq)
#define REJECTED_LINK_STATUS 1
void
wlan_connectivity_mlo_setup_event(struct wlan_objmgr_vdev *vdev)
wlan_connectivity_mlo_setup_event(struct wlan_objmgr_vdev *vdev,
bool is_band_present)
{
uint i = 0;
struct mlo_link_switch_context *link_ctx = NULL;
@ -646,7 +644,16 @@ wlan_connectivity_mlo_setup_event(struct wlan_objmgr_vdev *vdev)
WLAN_HOST_DIAG_EVENT_DEF(wlan_diag_event,
struct wlan_diag_mlo_setup);
if (!mlo_is_mld_sta(vdev))
/*
* MLO setup event need to be logged in the following cases:
*
* 1. When connection request is initiated and the ML
* candidate is selected.
* 2. When roamed successfully to ML AP
*
*/
if ((wlan_cm_is_vdev_connecting(vdev) && !mlo_is_mld_sta(vdev)) ||
(wlan_cm_is_vdev_active(vdev) && !is_band_present))
return;
qdf_mem_zero(&wlan_diag_event, sizeof(struct wlan_diag_mlo_setup));
@ -1015,7 +1022,7 @@ wlan_connectivity_mgmt_event(struct wlan_objmgr_psoc *psoc,
WLAN_HOST_DIAG_EVENT_REPORT(&wlan_diag_event, EVENT_WLAN_MGMT);
if (tag == WLAN_ASSOC_RSP || tag == WLAN_REASSOC_RSP)
wlan_connectivity_mlo_setup_event(vdev);
wlan_connectivity_mlo_setup_event(vdev, false);
out:
wlan_objmgr_vdev_release_ref(vdev, WLAN_MLME_OBJMGR_ID);

View File

@ -1807,6 +1807,11 @@ static bool dp_fisa_aggregation_should_stop(
uint32_t l3_hdr_offset, l4_hdr_offset, l2_l3_hdr_len;
uint32_t cumulative_ip_len_delta = hal_cumulative_ip_len -
fisa_flow->hal_cumultive_ip_len;
uint32_t ip_csum_err = 0;
uint32_t tcp_udp_csum_err = 0;
hal_rx_tlv_csum_err_get(fisa_flow->dp_ctx->hal_soc, rx_tlv_hdr,
&ip_csum_err, &tcp_udp_csum_err);
hal_rx_get_l3_l4_offsets(fisa_flow->dp_ctx->hal_soc, rx_tlv_hdr,
&l3_hdr_offset, &l4_hdr_offset);
@ -1814,6 +1819,12 @@ static bool dp_fisa_aggregation_should_stop(
l2_l3_hdr_len = l3_hdr_offset + l4_hdr_offset;
/**
* If l3/l4 checksum validation failed for MSDU, then data
* is not trust worthy to build aggregated skb, so do not
* allow for aggregation. And also in aggregated case it
* is job of driver to make sure checksum is valid before
* computing partial checksum for final aggregated skb.
*
* kernel network panic if UDP data length < 12 bytes get aggregated,
* no solid conclusion currently, as a SW WAR, only allow UDP
* aggregation if UDP data length >= 16 bytes.
@ -1826,6 +1837,7 @@ static bool dp_fisa_aggregation_should_stop(
* otherwise, current fisa flow aggregation should be stopped.
*/
if (fisa_flow->do_not_aggregate ||
(ip_csum_err || tcp_udp_csum_err) ||
msdu_len < (l2_l3_hdr_len + FISA_MIN_L4_AND_DATA_LEN) ||
hal_cumulative_ip_len <= fisa_flow->hal_cumultive_ip_len ||
cumulative_ip_len_delta > FISA_MAX_SINGLE_CUMULATIVE_IP_LEN ||

View File

@ -2028,7 +2028,6 @@ void wlan_dp_link_cdp_vdev_delete_notification(void *context)
{
struct wlan_dp_link *dp_link = (struct wlan_dp_link *)context;
struct wlan_dp_link *tmp_dp_link;
struct wlan_dp_intf *dp_intf = NULL;
struct wlan_dp_psoc_context *dp_ctx = NULL;
uint8_t found = 0;
@ -2039,8 +2038,7 @@ void wlan_dp_link_cdp_vdev_delete_notification(void *context)
}
dp_info("dp_link %pK id %d", dp_link, dp_link->link_id);
dp_intf = dp_link->dp_intf;
dp_ctx = dp_intf->dp_ctx;
dp_ctx = dp_get_context();
qdf_spin_lock_bh(&dp_ctx->dp_link_del_lock);
@ -2220,8 +2218,13 @@ err_soc_detach:
void wlan_dp_txrx_soc_detach(ol_txrx_soc_handle soc)
{
struct wlan_dp_psoc_context *dp_ctx = dp_get_context();
cdp_soc_deinit(soc);
cdp_soc_detach(soc);
if (dp_ctx)
dp_ctx->cdp_soc = NULL;
}
QDF_STATUS wlan_dp_txrx_attach_target(ol_txrx_soc_handle soc, uint8_t pdev_id)

View File

@ -932,19 +932,24 @@ void dp_rx_monitor_callback(ol_osif_vdev_handle context,
/**
* dp_is_rx_wake_lock_needed() - check if wake lock is needed
* @nbuf: pointer to sk_buff
* @is_arp_req: ARP request packet
*
* RX wake lock is needed for:
* 1) Unicast data packet OR
* 2) Local ARP data packet
* 1) Local ARP data packet
* 2) Unicast data packet
*
* Return: true if wake lock is needed or false otherwise.
*/
static bool dp_is_rx_wake_lock_needed(qdf_nbuf_t nbuf)
static bool dp_is_rx_wake_lock_needed(qdf_nbuf_t nbuf, bool is_arp_req)
{
if ((!qdf_nbuf_pkt_type_is_mcast(nbuf) &&
!qdf_nbuf_pkt_type_is_bcast(nbuf)) ||
qdf_nbuf_is_arp_local(nbuf))
/* Take wake lock for local ARP request packet */
if (qdf_unlikely(is_arp_req)) {
if (qdf_nbuf_is_arp_local(nbuf))
return true;
} else if (qdf_likely(!qdf_nbuf_pkt_type_is_mcast(nbuf) &&
!qdf_nbuf_pkt_type_is_bcast(nbuf))) {
return true;
}
return false;
}
@ -1661,9 +1666,10 @@ QDF_STATUS dp_rx_packet_cbk(void *dp_link_context,
struct qdf_mac_addr *mac_addr, *dest_mac_addr;
bool wake_lock = false;
bool track_arp = false;
bool is_arp_req;
enum qdf_proto_subtype subtype = QDF_PROTO_INVALID;
bool is_eapol, send_over_nl;
bool is_dhcp;
bool is_dhcp, is_ip_mcast;
struct dp_tx_rx_stats *stats;
QDF_STATUS status;
uint8_t pkt_type;
@ -1687,8 +1693,10 @@ QDF_STATUS dp_rx_packet_cbk(void *dp_link_context,
nbuf = next;
next = qdf_nbuf_next(nbuf);
qdf_nbuf_set_next(nbuf, NULL);
is_arp_req = false;
is_eapol = false;
is_dhcp = false;
is_ip_mcast = false;
send_over_nl = false;
if (qdf_nbuf_is_ipv4_arp_pkt(nbuf)) {
@ -1699,6 +1707,8 @@ QDF_STATUS dp_rx_packet_cbk(void *dp_link_context,
rx_arp_rsp_count;
dp_debug("ARP packet received");
track_arp = true;
} else if (qdf_nbuf_data_is_arp_req(nbuf)) {
is_arp_req = true;
}
} else if (qdf_nbuf_is_ipv4_eapol_pkt(nbuf)) {
subtype = qdf_nbuf_get_eapol_subtype(nbuf);
@ -1726,6 +1736,9 @@ QDF_STATUS dp_rx_packet_cbk(void *dp_link_context,
dhcp_ack_count;
is_dhcp = true;
}
} else if (qdf_nbuf_data_is_ipv4_mcast_pkt(nbuf->data) ||
qdf_nbuf_data_is_ipv6_mcast_pkt(nbuf->data)) {
is_ip_mcast = true;
}
wlan_dp_pkt_add_timestamp(dp_intf, QDF_PKT_RX_DRIVER_EXIT,
@ -1803,8 +1816,8 @@ QDF_STATUS dp_rx_packet_cbk(void *dp_link_context,
/* hold configurable wakelock for unicast traffic */
if (!dp_is_current_high_throughput(dp_ctx) &&
dp_ctx->dp_cfg.rx_wakelock_timeout &&
dp_link->conn_info.is_authenticated)
wake_lock = dp_is_rx_wake_lock_needed(nbuf);
dp_link->conn_info.is_authenticated && !is_ip_mcast)
wake_lock = dp_is_rx_wake_lock_needed(nbuf, is_arp_req);
if (wake_lock) {
cds_host_diag_log_work(&dp_ctx->rx_wake_lock,

View File

@ -1,6 +1,6 @@
/*
* Copyright (c) 2017 The Linux Foundation. All rights reserved.
* Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
* Copyright (c) 2023-2024 Qualcomm Innovation Center, Inc. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@ -42,7 +42,7 @@
struct pmo_mc_addr_list_params {
struct wlan_objmgr_psoc *psoc;
uint8_t vdev_id;
uint8_t count;
int count;
struct qdf_mac_addr mc_addr[PMO_MAX_MC_ADDR_LIST];
};

View File

@ -40,6 +40,7 @@
#include "nan_ucfg_api.h"
#include "wlan_mlme_main.h"
#include "wlan_policy_mgr_i.h"
#include "wlan_mlo_mgr_link_switch.h"
static uint16_t tdls_get_connected_peer_count(struct tdls_soc_priv_obj *soc_obj)
{
@ -890,6 +891,12 @@ int tdls_validate_mgmt_request(struct tdls_action_frame_request *tdls_mgmt_req)
return -EAGAIN;
}
if (mlo_mgr_is_link_switch_in_progress(vdev)) {
tdls_notice("vdev:%d Link Switch in progress. TDLS is not allowed",
wlan_vdev_get_id(vdev));
return -EAGAIN;
}
/* other than teardown frame, mgmt frames are not sent if disabled */
if (TDLS_TEARDOWN != tdls_validate->action_code) {
if (!tdls_check_is_tdls_allowed(vdev)) {
@ -897,6 +904,7 @@ int tdls_validate_mgmt_request(struct tdls_action_frame_request *tdls_mgmt_req)
tdls_validate->action_code);
return -EPERM;
}
/* if tdls_mode is disabled, then decline the peer's request */
if (TDLS_SUPPORT_DISABLED == tdls_soc->tdls_current_mode ||
TDLS_SUPPORT_SUSPENDED == tdls_soc->tdls_current_mode) {
@ -1033,6 +1041,12 @@ QDF_STATUS tdls_process_add_peer(struct tdls_add_peer_request *req)
goto error;
}
if (mlo_mgr_is_link_switch_in_progress(vdev)) {
tdls_err("Link Switch in progress, reject add sta for vdev: %d",
wlan_vdev_get_id(vdev));
goto error;
}
psoc = wlan_vdev_get_psoc(vdev);
if (!psoc) {
tdls_err("can't get psoc");
@ -2075,6 +2089,13 @@ QDF_STATUS tdls_process_setup_peer(struct tdls_oper_request *req)
goto error;
}
if (mlo_mgr_is_link_switch_in_progress(vdev)) {
tdls_err("TDLS not allowed on vdev:%d, Link switch in progress",
wlan_vdev_get_id(vdev));
status = QDF_STATUS_E_INVAL;
goto error;
}
tdls_debug("vdev:%d Configure external TDLS peer " QDF_MAC_ADDR_FMT,
wlan_vdev_get_id(vdev),
QDF_MAC_ADDR_REF(req->peer_addr));

View File

@ -32,6 +32,7 @@
#include "wlan_reg_services_api.h"
#include "wlan_policy_mgr_api.h"
#include "wlan_tdls_tgt_api.h"
#include "wlan_mlo_mgr_link_switch.h"
bool tdls_is_vdev_authenticated(struct wlan_objmgr_vdev *vdev)
{
@ -494,6 +495,12 @@ tdls_implicit_send_discovery_request(struct tdls_vdev_priv_obj *tdls_vdev_obj)
return;
}
if (mlo_mgr_is_link_switch_in_progress(tdls_vdev_obj->vdev)) {
tdls_notice("vdev:%d Link Switch in progress. TDLS discovery not allowed",
wlan_vdev_get_id(tdls_vdev_obj->vdev));
return;
}
curr_peer = tdls_vdev_obj->curr_candidate;
if (!curr_peer) {

View File

@ -1651,8 +1651,8 @@ tdls_process_sta_disconnect(struct tdls_sta_notify_params *notify)
if (notify->user_disconnect)
return tdls_delete_all_tdls_peers(notify->vdev, tdls_soc_obj);
tdls_debug("Check and update TDLS state for vdev:%d",
notify->session_id);
tdls_debug("vdev:%d Disable TDLS peer_count:%d",
notify->session_id, tdls_soc_obj->connected_peer_count);
/* Disassociation event */
tdls_send_update_to_fw(tdls_vdev_obj, tdls_soc_obj, false,

View File

@ -1,6 +1,6 @@
/*
* Copyright (c) 2017-2021 The Linux Foundation. All rights reserved.
* Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
* Copyright (c) 2022-2024 Qualcomm Innovation Center, Inc. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@ -141,6 +141,14 @@ struct tdls_set_state_info {
uint8_t vdev_id;
};
/**
* struct tdls_callbacks - vdev id state info
* @delete_all_tdls_peers: Callback to lim to delete TDLS peers
*/
struct tdls_callbacks {
QDF_STATUS (*delete_all_tdls_peers) (struct wlan_objmgr_vdev *vdev);
};
/**
* struct tdls_soc_priv_obj - tdls soc private context
* @soc: objmgr psoc
@ -198,6 +206,7 @@ struct tdls_set_state_info {
* @timer_cnt: used for mlo tdls to monitor discovery response
* @fw_tdls_wideband_capability: bool for tdls wideband fw capability
* @is_user_tdls_enable: bool to check whether TDLS enable through userspace
* @tdls_cb: TDLS callbacks to other modules
*/
struct tdls_soc_priv_obj {
struct wlan_objmgr_psoc *soc;
@ -258,6 +267,7 @@ struct tdls_soc_priv_obj {
qdf_atomic_t timer_cnt;
bool fw_tdls_wideband_capability;
bool is_user_tdls_enable;
struct tdls_callbacks tdls_cb;
};
/**

View File

@ -24,6 +24,7 @@
#include "wlan_objmgr_psoc_obj.h"
#include "wlan_objmgr_pdev_obj.h"
#include "wlan_objmgr_vdev_obj.h"
#include "wlan_tdls_main.h"
#ifdef FEATURE_WLAN_TDLS
#ifdef WLAN_FEATURE_11BE_MLO
@ -54,6 +55,16 @@ void wlan_tdls_get_features_info(struct wlan_objmgr_psoc *psoc,
struct wlan_tdls_features *tdls_feature_set);
#endif
/**
* wlan_tdls_register_lim_callbacks() - Register callbacks for legacy LIM API
* @psoc: Pointer to psoc object
* @cbs: Pointer to callback struct
*
* Return: None
*/
void wlan_tdls_register_lim_callbacks(struct wlan_objmgr_psoc *psoc,
struct tdls_callbacks *cbs);
/**
* wlan_tdls_teardown_links() - notify TDLS module to teardown all TDLS links
* @psoc: psoc object
@ -215,8 +226,30 @@ void wlan_tdls_handle_p2p_client_connect(struct wlan_objmgr_psoc *psoc,
void wlan_tdls_increment_discovery_attempts(struct wlan_objmgr_psoc *psoc,
uint8_t vdev_id,
uint8_t *peer_addr);
/**
* wlan_tdls_is_addba_request_allowed() - API to check if Add Block ack request
* is allowed for TDLS peer in current state.
* @vdev: Vdev object pointer
* @mac_addr: Mac address of the peer
*
* Return: True if ADDBA frame can be allowed
*/
bool wlan_tdls_is_addba_request_allowed(struct wlan_objmgr_vdev *vdev,
struct qdf_mac_addr *mac_addr);
/*
* wlan_tdls_delete_all_peers() - Delete all TDLS peers in lim
* @vdev: Pointer to vdev object
*
* Return: None
*/
void wlan_tdls_delete_all_peers(struct wlan_objmgr_vdev *vdev);
#else
static inline
void wlan_tdls_register_lim_callbacks(struct wlan_objmgr_psoc *psoc,
struct tdls_callbacks *cbs)
{}
#ifdef FEATURE_SET
static inline
void wlan_tdls_get_features_info(struct wlan_objmgr_psoc *psoc,
@ -295,5 +328,16 @@ void wlan_tdls_increment_discovery_attempts(struct wlan_objmgr_psoc *psoc,
uint8_t vdev_id,
uint8_t *peer_addr)
{}
static inline
bool wlan_tdls_is_addba_request_allowed(struct wlan_objmgr_vdev *vdev,
struct qdf_mac_addr *mac_addr)
{
return false;
}
static inline
void wlan_tdls_delete_all_peers(struct wlan_objmgr_vdev *vdev)
{}
#endif
#endif

View File

@ -33,6 +33,21 @@
#include "wlan_policy_mgr_api.h"
#include "wlan_mlo_mgr_sta.h"
void wlan_tdls_register_lim_callbacks(struct wlan_objmgr_psoc *psoc,
struct tdls_callbacks *cbs)
{
struct tdls_soc_priv_obj *soc_obj;
soc_obj = wlan_objmgr_psoc_get_comp_private_obj(psoc,
WLAN_UMAC_COMP_TDLS);
if (!soc_obj) {
tdls_err("Failed to get tdls psoc component");
return;
}
soc_obj->tdls_cb.delete_all_tdls_peers = cbs->delete_all_tdls_peers;
}
static QDF_STATUS tdls_teardown_flush_cb(struct scheduler_msg *msg)
{
struct tdls_link_teardown *tdls_teardown = msg->bodyptr;
@ -552,3 +567,55 @@ void wlan_tdls_increment_discovery_attempts(struct wlan_objmgr_psoc *psoc,
wlan_objmgr_vdev_release_ref(vdev, WLAN_TDLS_NB_ID);
}
static
struct tdls_peer *wlan_tdls_find_peer(struct tdls_vdev_priv_obj *vdev_obj,
const uint8_t *macaddr)
{
return tdls_find_peer(vdev_obj, macaddr);
}
bool wlan_tdls_is_addba_request_allowed(struct wlan_objmgr_vdev *vdev,
struct qdf_mac_addr *mac_addr)
{
struct tdls_vdev_priv_obj *vdev_obj;
struct tdls_peer *curr_peer;
vdev_obj = wlan_vdev_get_tdls_vdev_obj(vdev);
if (!vdev_obj) {
tdls_err("vdev_obj: %pK is null", vdev_obj);
return false;
}
curr_peer = wlan_tdls_find_peer(vdev_obj, mac_addr->bytes);
if (!curr_peer) {
tdls_err("tdls peer is null");
return false;
}
if (curr_peer->valid_entry &&
curr_peer->link_status == TDLS_LINK_CONNECTED)
return true;
return false;
}
void wlan_tdls_delete_all_peers(struct wlan_objmgr_vdev *vdev)
{
struct wlan_objmgr_psoc *psoc;
struct tdls_soc_priv_obj *soc_obj;
psoc = wlan_vdev_get_psoc(vdev);
if (!psoc)
return;
soc_obj = wlan_objmgr_psoc_get_comp_private_obj(psoc,
WLAN_UMAC_COMP_TDLS);
if (!soc_obj) {
tdls_err("Failed to get tdls psoc component");
return;
}
if (soc_obj->tdls_cb.delete_all_tdls_peers)
soc_obj->tdls_cb.delete_all_tdls_peers(vdev);
}

View File

@ -1,6 +1,6 @@
/*
* Copyright (c) 2017-2020 The Linux Foundation. All rights reserved.
* Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
* Copyright (c) 2023-2024 Qualcomm Innovation Center, Inc. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@ -144,8 +144,8 @@ QDF_STATUS tgt_tdls_register_ev_handler(struct wlan_objmgr_psoc *psoc)
tdls_ops = wlan_psoc_get_tdls_txops(psoc);
if (tdls_ops && tdls_ops->tdls_reg_ev_handler)
return tdls_ops->tdls_reg_ev_handler(psoc, NULL);
else
return QDF_STATUS_SUCCESS;
return QDF_STATUS_SUCCESS;
}
QDF_STATUS tgt_tdls_unregister_ev_handler(struct wlan_objmgr_psoc *psoc)

View File

@ -7260,6 +7260,7 @@ cm_roam_mgmt_frame_event(struct wlan_objmgr_vdev *vdev,
QDF_STATUS status = QDF_STATUS_SUCCESS;
uint8_t i;
uint16_t diag_event;
bool is_mlo = false;
WLAN_HOST_DIAG_EVENT_DEF(wlan_diag_event, struct wlan_diag_packet_info);
@ -7313,16 +7314,29 @@ cm_roam_mgmt_frame_event(struct wlan_objmgr_vdev *vdev,
!frame_data->is_rsp);
diag_event = EVENT_WLAN_MGMT;
status = wlan_populate_roam_mld_log_param(vdev,
&wlan_diag_event,
wlan_diag_event.subtype);
if (QDF_IS_STATUS_ERROR(status)) {
mlme_err("vdev: %d Unable to populate MLO parameter",
wlan_vdev_get_id(vdev));
return status;
wlan_diag_event.supported_links = frame_data->band;
/*
* Frame_data->band will be '0' for legacy connection and
* And will be band bit map for MLO connection where band bitmap
* as follows:
* BIT 0: 2 GHz link
* BIT 1: 5 GHz link
* BIT 2: 6 GHz link
*/
if (frame_data->band) {
is_mlo = true;
status =
wlan_populate_roam_mld_log_param(vdev,
&wlan_diag_event,
wlan_diag_event.subtype);
if (QDF_IS_STATUS_ERROR(status)) {
mlme_err("vdev: %d Unable to populate MLO parameter",
wlan_vdev_get_id(vdev));
return status;
}
}
wlan_diag_event.supported_links = frame_data->band;
}
if (wlan_diag_event.subtype > WLAN_CONN_DIAG_REASSOC_RESP_EVENT &&
@ -7336,7 +7350,7 @@ cm_roam_mgmt_frame_event(struct wlan_objmgr_vdev *vdev,
WLAN_HOST_DIAG_EVENT_REPORT(&wlan_diag_event, diag_event);
if (wlan_diag_event.subtype == WLAN_CONN_DIAG_REASSOC_RESP_EVENT ||
wlan_diag_event.subtype == WLAN_CONN_DIAG_ASSOC_RESP_EVENT) {
wlan_connectivity_mlo_setup_event(vdev);
wlan_connectivity_mlo_setup_event(vdev, is_mlo);
/*
* Send STA info event when roaming is successful

View File

@ -90,11 +90,21 @@ QDF_STATUS cm_disconnect_start_ind(struct wlan_objmgr_vdev *vdev,
user_disconnect =
(req->source == CM_OSIF_DISCONNECT ||
req->source == CM_MLO_LINK_SWITCH_DISCONNECT) ? true : false;
if (user_disconnect) {
if (user_disconnect)
wlan_p2p_cleanup_roc_by_vdev(vdev, false);
/*
* For link switch disconnect avoid posting msg to PE to
* delete all the TDLS peers since pe_session can get deleted before
* TDLS msg is processed, causing the TDLS peers to be not deleted.
* The AID bitmap also gets cleared during pe_session deletion,
* so during subsequent disconnects also to not deleted the TDLS peers
* TODO: Move all TDLS peers deletion logic from IF_MGR to be symmetric
*/
if (req->source == CM_OSIF_DISCONNECT)
wlan_tdls_notify_sta_disconnect(req->vdev_id, false,
user_disconnect, vdev);
}
true, vdev);
cm_abort_connect_request_timers(vdev);
if (req->source != CM_MLO_ROAM_INTERNAL_DISCONNECT &&

View File

@ -2414,11 +2414,117 @@ QDF_STATUS wlan_cm_set_btm_config(struct wlan_objmgr_psoc *psoc,
&src_config);
}
static QDF_STATUS
cm_roam_refine_channels(struct wlan_objmgr_vdev *vdev,
struct rso_config *rso_cfg,
struct wlan_roam_scan_channel_list *chan_info,
struct rso_chan_info *cached_chan_info)
{
struct rso_chan_info temp_chan_info = {0}, computed_chan_info = {0};
QDF_STATUS status = QDF_STATUS_SUCCESS;
uint32_t i;
temp_chan_info.num_chan = cached_chan_info->num_chan;
computed_chan_info.num_chan = cached_chan_info->num_chan;
temp_chan_info.freq_list = qdf_mem_malloc(
temp_chan_info.num_chan * sizeof(qdf_freq_t));
if (!temp_chan_info.freq_list)
goto done;
computed_chan_info.freq_list = qdf_mem_malloc(
temp_chan_info.num_chan * sizeof(qdf_freq_t));
if (!computed_chan_info.freq_list)
goto done;
for (i = 0; i < temp_chan_info.num_chan; i++) {
temp_chan_info.freq_list[i] =
cached_chan_info->freq_list[i];
computed_chan_info.freq_list[i] =
cached_chan_info->freq_list[i];
}
status = cm_update_roam_scan_channel_list(wlan_vdev_get_psoc(vdev),
vdev, rso_cfg,
wlan_vdev_get_id(vdev),
&computed_chan_info,
temp_chan_info.freq_list,
temp_chan_info.num_chan,
false);
if (QDF_IS_STATUS_ERROR(status))
goto done;
chan_info->chan_count = computed_chan_info.num_chan;
for (i = 0; i < chan_info->chan_count; i++)
chan_info->chan_freq_list[i] = computed_chan_info.freq_list[i];
done:
qdf_mem_free(temp_chan_info.freq_list);
qdf_mem_free(computed_chan_info.freq_list);
return status;
}
QDF_STATUS wlan_cm_set_roam_band_update(struct wlan_objmgr_psoc *psoc,
uint8_t vdev_id)
{
return cm_roam_update_cfg(psoc, vdev_id,
REASON_ROAM_CONTROL_CONFIG_ENABLED);
struct wlan_objmgr_vdev *vdev;
QDF_STATUS status = QDF_STATUS_SUCCESS;
struct rso_config *rso_cfg;
struct rso_cfg_params *dst_cfg;
struct wlan_mlme_psoc_ext_obj *mlme_obj;
struct wlan_roam_scan_channel_list chan_info = {0};
mlme_obj = mlme_get_psoc_ext_obj(psoc);
if (!mlme_obj)
return QDF_STATUS_E_FAILURE;
if (!mlme_obj->cfg.lfr.roam_scan_offload_enabled)
return QDF_STATUS_E_INVAL;
vdev = wlan_objmgr_get_vdev_by_id_from_psoc(psoc, vdev_id,
WLAN_MLME_NB_ID);
if (!vdev) {
mlme_err("vdev object is NULL");
return QDF_STATUS_E_FAILURE;
}
rso_cfg = wlan_cm_get_rso_config(vdev);
if (!rso_cfg) {
status = QDF_STATUS_E_FAILURE;
goto done;
}
dst_cfg = &rso_cfg->cfg_param;
chan_info.vdev_id = vdev_id;
if (dst_cfg->specific_chan_info.num_chan) {
status = cm_roam_refine_channels(vdev, rso_cfg,
&chan_info,
&dst_cfg->specific_chan_info);
if (QDF_IS_STATUS_ERROR(status))
goto done;
chan_info.chan_cache_type = CHANNEL_LIST_STATIC;
} else if (dst_cfg->pref_chan_info.num_chan) {
status = cm_roam_refine_channels(vdev, rso_cfg,
&chan_info,
&dst_cfg->pref_chan_info);
if (QDF_IS_STATUS_ERROR(status))
goto done;
chan_info.chan_cache_type = CHANNEL_LIST_DYNAMIC;
} else {
goto done;
}
status = cm_roam_acquire_lock(vdev);
if (QDF_IS_STATUS_ERROR(status))
goto done;
if (!MLME_IS_ROAM_STATE_RSO_ENABLED(psoc, vdev_id)) {
mlme_debug("CHAN update received while ROAM RSO not started");
cm_roam_release_lock(vdev);
status = QDF_STATUS_E_INVAL;
goto done;
}
wlan_cm_tgt_send_roam_freqs(psoc, vdev_id, &chan_info);
cm_roam_release_lock(vdev);
done:
wlan_objmgr_vdev_release_ref(vdev, WLAN_MLME_NB_ID);
return status;
}
uint32_t wlan_cm_get_roam_scan_scheme_bitmap(struct wlan_objmgr_psoc *psoc,
@ -3226,7 +3332,8 @@ static void cm_roam_stats_process_roam_msg_info(struct wlan_objmgr_psoc *psoc,
char time[TIME_STRING_LEN];
static const char msg_id1_str[] = "Roam RSSI TH Reset";
if (data->msg_id == WMI_ROAM_MSG_RSSI_RECOVERED) {
if (data->msg_id == WMI_ROAM_MSG_RSSI_RECOVERED ||
data->msg_id == WMI_ROAM_MSG_CONNECTED_IN_POOR_RSSI) {
mlme_get_converted_timestamp(data->timestamp, time);
mlme_nofl_info("%s [ROAM MSG INFO]: VDEV[%d] %s, Current rssi: %d dbm, next_rssi_threshold: %d dbm",
time, vdev_id, msg_id1_str, data->msg_param1,

View File

@ -1540,6 +1540,18 @@
#define QCA_WIFI_PEACH (1)
#endif
#ifdef CONFIG_CNSS_PEACH_V2
#define QCA_WIFI_PEACH_V2 (1)
#endif
#ifdef CONFIG_INCLUDE_HAL_KIWI
#define INCLUDE_HAL_KIWI (1)
#endif
#ifdef CONFIG_INCLUDE_HAL_PEACH
#define INCLUDE_HAL_PEACH (1)
#endif
#ifdef CONFIG_QCA_WIFI_QCA8074
#define QCA_WIFI_QCA8074 (1)
#endif
@ -2928,6 +2940,20 @@
#define WLAN_MAX_ML_BSS_LINKS CONFIG_WLAN_MAX_ML_BSS_LINKS
#endif
#if defined(CONFIG_WLAN_FEATURE_11BE_MLO) && defined(CONFIG_WLAN_FEATURE_EMLSR)
#ifndef CONFIG_WLAN_EMLSR_ENABLE
#define CONFIG_WLAN_EMLSR_ENABLE (1)
#endif
#else
#ifndef CONFIG_WLAN_EMLSR_ENABLE
#define CONFIG_WLAN_EMLSR_ENABLE (0)
#endif
#endif
#ifdef CONFIG_WLAN_EMLSR_ENABLE
#define WLAN_EMLSR_ENABLE CONFIG_WLAN_EMLSR_ENABLE
#endif
#ifdef CONFIG_WALT_GET_CPU_TAKEN_SUPPORT
#define WALT_GET_CPU_TAKEN_SUPPORT (1)
#endif

View File

@ -1,4 +1,5 @@
CONFIG_CNSS_KIWI := y
CONFIG_INCLUDE_HAL_KIWI := y
include $(WLAN_ROOT)/configs/default_defconfig

View File

@ -1,5 +1,6 @@
CONFIG_CNSS_KIWI := y
CONFIG_CNSS_KIWI_V2 := y
CONFIG_INCLUDE_HAL_KIWI := y
ifeq ($(CONFIG_ARCH_SDXPINN), y)
CONFIG_MOBILE_ROUTER := y

View File

@ -1,6 +1,7 @@
CONFIG_CNSS_KIWI := y
CONFIG_CNSS_KIWI_V2 := y
CONFIG_CNSS_MANGO := y
CONFIG_INCLUDE_HAL_KIWI := y
include $(WLAN_ROOT)/configs/default_defconfig

View File

@ -17,6 +17,7 @@ CONFIG_CHIP_VERSION=2
CONFIG_CNSS_GENL_MODULE=y
CONFIG_CNSS_KIWI=y
CONFIG_CNSS_KIWI_V2=y
CONFIG_INCLUDE_HAL_KIWI=y
CONFIG_CNSS_UTILS_MODULE=y
CONFIG_CNSS_UTILS=y
CONFIG_CONNECTIVITY_PKTLOG=y

View File

@ -128,6 +128,8 @@ CONFIG_WLAN_LOG_ENTER=y
CONFIG_WLAN_LOG_EXIT=y
CONFIG_ATH_PERF_PWR_OFFLOAD=y
CONFIG_HIF_SNOC=y
CONFIG_PLD_SNOC_ICNSS_FLAG=y
CONFIG_ICNSS2_HELIUM=y
CONFIG_QCOM_ESE=y
CONFIG_WLAN_OPEN_P2P_INTERFACE=y
CONFIG_WLAN_ENABLE_SOCIAL_CHANNELS_5G_ONLY=y

View File

@ -1,6 +1,7 @@
CONFIG_CNSS_PEACH := y
CONFIG_CNSS_KIWI := y
CONFIG_CNSS_KIWI_V2 := y
CONFIG_INCLUDE_HAL_PEACH := y
#Enable 11BE EHT
CONFIG_WLAN_FEATURE_11BE := y

View File

@ -0,0 +1,34 @@
CONFIG_ALLOW_PKT_DROPPING=y
CONFIG_ATH_DIAG_EXT_DIRECT=y
CONFIG_DESC_TIMESTAMP_DEBUG_INFO=y
CONFIG_DP_RX_REFILL_CPU_PERF_AFFINE_MASK=y
CONFIG_DP_TX_COMP_RING_DESC_SANITY_CHECK=y
CONFIG_DP_TX_HW_DESC_HISTORY=y
CONFIG_DSC_DEBUG=y
CONFIG_DSC_TEST=y
CONFIG_ENABLE_QDF_PTR_HASH_DEBUG=y
CONFIG_FEATURE_HIF_LATENCY_PROFILE_ENABLE=y
CONFIG_FEATURE_UNIT_TEST_SUSPEND=y
CONFIG_HAL_DEBUG=y
CONFIG_HIF_CE_DEBUG_DATA_BUF=y
CONFIG_HIF_CPU_PERF_AFFINE_MASK=y
CONFIG_LEAK_DETECTION=y
CONFIG_MAX_LOGS_PER_SEC=500
CONFIG_ENABLE_MAX_LOGS_PER_SEC=y
CONFIG_QDF_NBUF_HISTORY_SIZE=16384
CONFIG_REGISTER_OP_DEBUG=y
CONFIG_REO_QDESC_HISTORY=y
CONFIG_RX_DESC_DEBUG_CHECK=y
CONFIG_SCHED_HISTORY_SIZE=256
CONFIG_ENABLE_SCHED_HISTORY_SIZE=y
CONFIG_TALLOC_DEBUG=y
CONFIG_UNIT_TEST=y
CONFIG_WLAN_FEATURE_DP_CFG_EVENT_HISTORY=y
CONFIG_WLAN_FEATURE_DP_MON_STATUS_RING_HISTORY=y
CONFIG_WLAN_FEATURE_DP_RX_RING_HISTORY=y
CONFIG_WLAN_FEATURE_DP_TX_DESC_HISTORY=y
CONFIG_WLAN_RECORD_RX_PADDR=y
CONFIG_QDF_TEST=y
CONFIG_DYNAMIC_DEBUG=y
CONFIG_FEATURE_WLM_STATS=y
CONFIG_WLAN_TRACE_HIDE_MAC_ADDRESS_DISABLE=y

View File

@ -17,6 +17,7 @@ CONFIG_CHIP_VERSION=2
CONFIG_CNSS_GENL_MODULE=y
CONFIG_CNSS_KIWI=y
CONFIG_CNSS_KIWI_V2=y
CONFIG_INCLUDE_HAL_KIWI=y
CONFIG_CNSS_UTILS_MODULE=y
CONFIG_CNSS_UTILS=y
CONFIG_CONNECTIVITY_PKTLOG=y

View File

@ -0,0 +1,399 @@
CONFIG_QCA_CLD_WLAN=y
CONFIG_160MHZ_SUPPORT=y
CONFIG_6G_SCAN_CHAN_SORT_ALGO=y
CONFIG_ADAPTIVE_11R=y
CONFIG_ANI_LEVEL_REQUEST=y
CONFIG_AR900B=y
CONFIG_ATH_11AC_TXCOMPACT=y
CONFIG_ATH_BUS_PM=y
CONFIG_ATH_PERF_PWR_OFFLOAD=y
CONFIG_BAND_6GHZ=y
CONFIG_BERYLLIUM=y
CONFIG_CE_DISABLE_SRNG_TIMER_IRQ=y
CONFIG_CFG_BMISS_OFFLOAD_MAX_VDEV=4
CONFIG_CFG_MAX_STA_VDEVS=4
CONFIG_CHECKSUM_OFFLOAD=y
CONFIG_CHIP_VERSION=2
CONFIG_CNSS_GENL_MODULE=y
CONFIG_CNSS_KIWI=y
CONFIG_CNSS_KIWI_V2=y
CONFIG_CNSS_PEACH=y
CONFIG_CNSS_PEACH_V2=y
CONFIG_INCLUDE_HAL_PEACH=y
CONFIG_CNSS_UTILS_MODULE=y
CONFIG_CNSS_UTILS=y
CONFIG_CONNECTIVITY_PKTLOG=y
CONFIG_CONVERGED_P2P_ENABLE=y
CONFIG_CP_STATS=y
CONFIG_QCA_TARGET_IF_MLME=y
CONFIG_DCS=y
CONFIG_DDP_MON_RSSI_IN_DBM=y
CONFIG_DEBUG_RX_RING_BUFFER=y
CONFIG_DELIVERY_TO_STACK_STATUS_CHECK=y
CONFIG_DESC_DUP_DETECT_DEBUG=y
CONFIG_DEVICE_FORCE_WAKE_ENABLE=y
CONFIG_DIRECT_BUF_RX_ENABLE=y
CONFIG_DISABLE_CHANNEL_LIST=y
CONFIG_DISABLE_EAPOL_INTRABSS_FWD=y
CONFIG_DISABLE_STATUS_RING_TIMER_WAR=y
CONFIG_DP_BE_WAR=y
CONFIG_DP_CON_MON_MSI_ENABLED=y
CONFIG_DP_CON_MON_MSI_SKIP_SET=y
CONFIG_DP_FEATURE_HW_COOKIE_CONVERSION=y
CONFIG_DP_HW_COOKIE_CONVERT_EXCEPTION=y
CONFIG_DP_HW_TX_DELAY_STATS_ENABLE=y
CONFIG_DP_INTR_POLL_BASED=y
CONFIG_DP_LFR=y
CONFIG_DP_MEM_PRE_ALLOC=y
CONFIG_DP_PKT_ADD_TIMESTAMP=y
CONFIG_DP_PKT_STATS_PER_LMAC=y
CONFIG_DP_RX_BUFFER_POOL_ALLOC_THRES=5
CONFIG_DP_RX_BUFFER_POOL_SIZE=128
CONFIG_DP_RX_REFILL_BUFF_POOL_SIZE=2048
CONFIG_DP_RX_REFILL_THRD_THRESHOLD=512
CONFIG_DP_RX_DROP_RAW_FRM=y
CONFIG_DP_RX_PKT_NO_PEER_DELIVER=y
CONFIG_DP_RX_SPECIAL_FRAME_NEED=y
CONFIG_DP_TRACE=y
CONFIG_DP_TRAFFIC_END_INDICATION=y
CONFIG_DP_TXRX_SOC_ATTACH=y
CONFIG_DP_USE_REDUCED_PEER_ID_FIELD_WIDTH=y
CONFIG_DP_WAR_INVALID_FIRST_MSDU_FLAG=y
CONFIG_DUP_RX_DESC_WAR=y
CONFIG_DYNAMIC_RX_AGGREGATION=y
CONFIG_EMULATION_2_0=y
CONFIG_ENABLE_HAL_REG_WR_HISTORY=y
CONFIG_ENABLE_HAL_SOC_STATS=y
CONFIG_ENABLE_MTRACE_LOG=y
CONFIG_ENABLE_SMMU_S1_TRANSLATION=y
CONFIG_FEATURE_ACTIVE_TOS=y
CONFIG_FEATURE_ALIGN_STATS_FROM_DP=y
CONFIG_FEATURE_BECN_STATS=y
CONFIG_FEATURE_BSS_TRANSITION=y
CONFIG_FEATURE_BUS_BANDWIDTH_MGR=y
CONFIG_FEATURE_CLUB_LL_STATS_AND_GET_STATION=y
CONFIG_FEATURE_COEX=y
CONFIG_FEATURE_CONCURRENCY_MATRIX=y
CONFIG_FEATURE_DELAYED_PEER_OBJ_DESTROY=y
CONFIG_FEATURE_DENYLIST_MGR=y
CONFIG_FEATURE_EPPING=y
CONFIG_FEATURE_FORCE_WAKE=y
CONFIG_FEATURE_FW_LOG_PARSING=y
CONFIG_FEATURE_GPIO_CFG=y
CONFIG_FEATURE_HAL_DELAYED_REG_WRITE=y
CONFIG_FEATURE_HTC_CREDIT_HISTORY=y
CONFIG_FEATURE_INTEROP_ISSUES_AP=y
CONFIG_FEATURE_MEMDUMP_ENABLE=y
CONFIG_FEATURE_MONITOR_MODE_SUPPORT=y
CONFIG_FEATURE_MSCS=y
CONFIG_FEATURE_NO_DBS_INTRABAND_MCC_SUPPORT=y
CONFIG_FEATURE_OEM_DATA=y
CONFIG_FEATURE_OTA_TEST=y
CONFIG_FEATURE_P2P_LISTEN_OFFLOAD=y
CONFIG_FEATURE_RADAR_HISTORY=y
CONFIG_FEATURE_ROAM_DEBUG=y
CONFIG_FEATURE_RSSI_MONITOR=y
CONFIG_FEATURE_RX_LINKSPEED_ROAM_TRIGGER=y
CONFIG_FEATURE_SAP_COND_CHAN_SWITCH=y
CONFIG_FEATURE_SAR_LIMITS=y
CONFIG_FEATURE_SET=y
CONFIG_FEATURE_STATION_INFO=y
CONFIG_FEATURE_STATS_EXT=y
CONFIG_FEATURE_STATS_EXT_V2=y
CONFIG_FEATURE_TSO=y
CONFIG_FEATURE_TSO_STATS=y
CONFIG_FEATURE_TX_POWER=y
CONFIG_FEATURE_VDEV_OPS_WAKELOCK=y
CONFIG_FEATURE_WLAN_LPHB=y
CONFIG_FEATURE_WLAN_PRE_CAC=y
CONFIG_FEATURE_WLAN_RA_FILTERING=y
CONFIG_FEATURE_WLAN_SCAN_PNO=y
CONFIG_FEATURE_WLAN_WAPI=y
CONFIG_FIX_TXDMA_LIMITATION=y
CONFIG_FOURTH_CONNECTION=y
CONFIG_FW_THERMAL_THROTTLE=y
CONFIG_GET_DRIVER_MODE=y
CONFIG_GTK_OFFLOAD=y
CONFIG_HAL_DISABLE_NON_BA_2K_JUMP_ERROR=y
CONFIG_HANDLE_BC_EAP_TX_FRM=y
CONFIG_HANDLE_RX_REROUTE_ERR=y
CONFIG_HASTINGS_BT_WAR=y
CONFIG_HDD_INIT_WITH_RTNL_LOCK=y
CONFIG_HIF_PCI=y
CONFIG_HIF_REG_WINDOW_SUPPORT=y
CONFIG_HOST_OPCLASS=y
CONFIG_HTT_PADDR64=y
CONFIG_IPA_OFFLOAD=y
CONFIG_IPA_OPT_WIFI_DP=y
CONFIG_IPA_SET_RESET_TX_DB_PA=y
CONFIG_KIWI_HEADERS_DEF=y
CONFIG_LFR_SUBNET_DETECTION=y
CONFIG_LINUX_QCMBR=y
CONFIG_LITTLE_ENDIAN=y
CONFIG_LL_DP_SUPPORT=y
CONFIG_LTE_COEX=y
CONFIG_MARK_ICMP_REQ_TO_FW=y
CONFIG_MAX_ALLOC_PAGE_SIZE=y
CONFIG_MCC_TO_SCC_SWITCH=y
CONFIG_MON_ENABLE_DROP_FOR_MAC=y
CONFIG_MON_ENABLE_DROP_FOR_NON_MON_PMAC=y
CONFIG_MORE_TX_DESC=y
CONFIG_MULTI_CLIENT_LL_SUPPORT=y
CONFIG_NO_RX_PKT_HDR_TLV=y
CONFIG_OBSS_PD=y
CONFIG_OFDM_SCRAMBLER_SEED=y
CONFIG_PCI_LINK_STATUS_SANITY=y
CONFIG_PCIE_GEN_SWITCH=y
CONFIG_PEER_PROTECTED_ACCESS=y
CONFIG_PKTLOG_HAS_SPECIFIC_DATA=y
CONFIG_PLD_PCIE_CNSS_FLAG=y
CONFIG_PLD_PCIE_INIT_FLAG=y
CONFIG_POWER_MANAGEMENT_OFFLOAD=y
CONFIG_PTT_SOCK_SVC_ENABLE=y
CONFIG_QCA_DFS_BW_PUNCTURE=y
CONFIG_QCA_GET_TSF_VIA_REG=y
CONFIG_QCA_MONITOR_PKT_SUPPORT=y
CONFIG_QCA_SUPPORT_TX_MIN_RATES_FOR_SPECIAL_FRAMES=y
CONFIG_QCA_SUPPORT_TX_THROTTLE=y
CONFIG_QCA_WIFI_FTM=y
CONFIG_QCA_WIFI_KIWI=y
CONFIG_QCA_WIFI_MONITOR_MODE_NO_MSDU_START_TLV_SUPPORT=y
CONFIG_QCA_WIFI_QCA8074=y
CONFIG_QCA_WIFI_QCA8074_VP=y
CONFIG_QCACLD_FEATURE_APF=y
CONFIG_QCACLD_FEATURE_FW_STATE=y
CONFIG_QCACLD_FEATURE_GAP_LL_PS_MODE=y
CONFIG_QCACLD_FEATURE_GREEN_AP=y
CONFIG_QCACLD_FEATURE_NAN=y
CONFIG_QCACLD_RX_DESC_MULTI_PAGE_ALLOC=y
CONFIG_QCACLD_WLAN_CONNECTIVITY_DIAG_EVENT=y
CONFIG_QCACLD_WLAN_LFR3=y
CONFIG_QCOM_ESE=y
CONFIG_QCOM_LTE_COEX=y
CONFIG_QCOM_TDLS=y
CONFIG_QCOM_VOWIFI_11R=y
CONFIG_QMI_SUPPORT=y
CONFIG_REG_CLIENT=y
CONFIG_REMOVE_PKT_LOG=y
CONFIG_REO_DESC_DEFER_FREE=y
CONFIG_RX_DEFRAG_DO_NOT_REINJECT=y
CONFIG_RX_DESC_SANITY_WAR=y
CONFIG_RX_FISA=y
CONFIG_RX_HASH_DEBUG=y
CONFIG_RX_OL=y
CONFIG_RXDMA_ERR_PKT_DROP=y
CONFIG_SAE_SINGLE_PMK=y
CONFIG_SAP_AVOID_ACS_FREQ_LIST=y
CONFIG_SAP_DHCP_FW_IND=y
CONFIG_SAR_SAFETY_FEATURE=y
CONFIG_SCALE_INCLUDES=y
CONFIG_SERIALIZE_QUEUE_SETUP=y
CONFIG_SHADOW_V3=y
CONFIG_SMMU_S1_UNMAP=y
CONFIG_SOFTAP_CHANNEL_RANGE=y
CONFIG_SUPPORT_11AX=y
CONFIG_SYSTEM_PM_CHECK=y
CONFIG_TARGET_11D_SCAN=y
CONFIG_TARGET_RAMDUMP_AFTER_KERNEL_PANIC=y
CONFIG_THERMAL_STATS_SUPPORT=y
CONFIG_TRACE_RECORD_FEATURE=y
CONFIG_TSO_DEBUG_LOG_ENABLE=y
CONFIG_TX_ADDR_INDEX_SEARCH=y
CONFIG_TX_MULTI_TCL=y
CONFIG_TX_MULTIQ_PER_AC=y
CONFIG_TX_PER_PDEV_DESC_POOL=y
CONFIG_TX_TID_OVERRIDE=y
CONFIG_VERBOSE_DEBUG=y
CONFIG_WAPI_BIG_ENDIAN=y
CONFIG_WCNSS_MEM_PRE_ALLOC_MODULE=y
CONFIG_WCNSS_MEM_PRE_ALLOC=y
CONFIG_WDI_EVENT_ENABLE=y
CONFIG_WDI3_IPA_OVER_GSI=y
CONFIG_WIFI_MONITOR_SUPPORT=y
CONFIG_WIFI_POS_CONVERGED=y
CONFIG_WIFI_POS_PASN=y
CONFIG_WINDOW_REG_PLD_LOCK_ENABLE=y
CONFIG_WLAN_BCN_RECV_FEATURE=y
CONFIG_WLAN_BMISS=y
CONFIG_WLAN_CE_INTERRUPT_THRESHOLD_CONFIG=y
CONFIG_WLAN_CFR_ENABLE=y
CONFIG_WLAN_CLD_DEV_PM_QOS=y
CONFIG_WLAN_CLD_PM_QOS=y
CONFIG_WLAN_CONV_SPECTRAL_ENABLE=y
CONFIG_WLAN_CUSTOM_DSCP_UP_MAP=y
CONFIG_WLAN_DEBUG_CRASH_INJECT=y
CONFIG_WLAN_DEBUG_LINK_VOTE=y
CONFIG_WLAN_DEBUG_VERSION=y
CONFIG_WLAN_DEBUGFS=y
CONFIG_WLAN_DFS_MASTER_ENABLE=y
CONFIG_WLAN_DFS_STATIC_MEM_ALLOC=y
CONFIG_WLAN_DIAG_VERSION=y
CONFIG_WLAN_DL_MODES=y
CONFIG_WLAN_DP_DISABLE_TCL_CMD_CRED_SRNG=y
CONFIG_WLAN_DP_DISABLE_TCL_STATUS_SRNG=y
CONFIG_WLAN_DP_PENDING_MEM_FLUSH=y
CONFIG_WLAN_DP_PER_RING_TYPE_CONFIG=y
CONFIG_WLAN_DP_SRNG_USAGE_WM_TRACKING=y
CONFIG_WLAN_DYNAMIC_CVM=y
CONFIG_WLAN_ENABLE_SOCIAL_CHANNELS_5G_ONLY=y
CONFIG_WLAN_ENH_CFR_ENABLE=y
CONFIG_WLAN_FEATURE_11AX=y
CONFIG_WLAN_FEATURE_11BE=y
CONFIG_WLAN_FEATURE_11BE_MLO=y
CONFIG_WLAN_HDD_MULTI_VDEV_SINGLE_NDEV=y
CONFIG_WLAN_FEATURE_ACTION_OUI=y
CONFIG_WLAN_FEATURE_BIG_DATA_STATS=y
CONFIG_WLAN_FEATURE_CAL_FAILURE_TRIGGER=y
CONFIG_WLAN_FEATURE_COAP=y
CONFIG_WLAN_FEATURE_COEX_DBAM=y
CONFIG_WLAN_FEATURE_DFS_OFFLOAD=y
CONFIG_WLAN_FEATURE_DISA=y
CONFIG_WLAN_FEATURE_DP_BUS_BANDWIDTH=y
CONFIG_WLAN_FEATURE_DP_EVENT_HISTORY=y
CONFIG_WLAN_FEATURE_DP_RX_THREADS=y
CONFIG_WLAN_FEATURE_DYNAMIC_MAC_ADDR_UPDATE=y
CONFIG_WLAN_FEATURE_ELNA=y
CONFIG_WLAN_FEATURE_FILS=y
CONFIG_WLAN_FEATURE_FIPS=y
CONFIG_WLAN_FEATURE_GET_USABLE_CHAN_LIST=y
CONFIG_WLAN_FEATURE_ICMP_OFFLOAD=y
CONFIG_WLAN_FEATURE_IGMP_OFFLOAD=y
CONFIG_WLAN_FEATURE_LINK_LAYER_STATS=y
CONFIG_WLAN_FEATURE_LPSS=y
CONFIG_WLAN_FEATURE_LRO_CTX_IN_CB=y
CONFIG_WLAN_FEATURE_MBSSID=y
CONFIG_WLAN_FEATURE_MCC_QUOTA=y
CONFIG_WLAN_FEATURE_MDNS_OFFLOAD=y
CONFIG_WLAN_FEATURE_MEDIUM_ASSESS=y
CONFIG_WLAN_FEATURE_MIB_STATS=y
CONFIG_WLAN_FEATURE_NEAR_FULL_IRQ=y
CONFIG_WLAN_FEATURE_P2P_DEBUG=y
CONFIG_WLAN_FEATURE_P2P_P2P_STA=y
CONFIG_WLAN_FEATURE_PACKET_FILTERING=y
CONFIG_WLAN_FEATURE_PEER_TXQ_FLUSH_CONF=y
CONFIG_WLAN_FEATURE_ROAM_INFO_STATS=y
CONFIG_WLAN_FEATURE_RX_BUFFER_POOL=y
CONFIG_WLAN_FEATURE_RX_SOFTIRQ_TIME_LIMIT=y
CONFIG_WLAN_FEATURE_SAE=y
CONFIG_WLAN_FEATURE_SAP_ACS_OPTIMIZE=y
CONFIG_WLAN_FEATURE_SARV1_TO_SARV2=y
CONFIG_WLAN_FEATURE_SR=y
CONFIG_WLAN_FEATURE_TWT=y
CONFIG_WLAN_FEATURE_WMI_DIAG_OVER_CE7=y
CONFIG_WLAN_FREQ_LIST=y
CONFIG_WLAN_FW_OFFLOAD=y
CONFIG_WLAN_GTX_BW_MASK=y
CONFIG_WLAN_HANG_EVENT=y
CONFIG_WLAN_LOG_DEBUG=y
CONFIG_WLAN_LOG_ENTER=y
CONFIG_WLAN_LOG_ERROR=y
CONFIG_WLAN_LOG_EXIT=y
CONFIG_WLAN_LOG_FATAL=y
CONFIG_WLAN_LOG_INFO=y
CONFIG_WLAN_LOG_WARN=y
CONFIG_WLAN_LOGGING_SOCK_SVC=y
CONFIG_WLAN_MWS_INFO_DEBUGFS=y
CONFIG_WLAN_NAPI=y
CONFIG_WLAN_NS_OFFLOAD=y
CONFIG_WLAN_NUD_TRACKING=y
CONFIG_WLAN_OFFLOAD_PACKETS=y
CONFIG_WLAN_OPEN_P2P_INTERFACE=y
CONFIG_WLAN_PDEV_VDEV_SEND_MULTI_PARAM=y
CONFIG_WLAN_PMO_ENABLE=y
CONFIG_WLAN_POLICY_MGR_ENABLE=y
CONFIG_WLAN_POWER_DEBUG=y
CONFIG_WLAN_REASSOC=y
CONFIG_WLAN_RX_MON_PARSE_CMN_USER_INFO=y
CONFIG_WLAN_SCAN_DISABLE=y
CONFIG_WLAN_SKIP_BAR_UPDATE=y
CONFIG_WLAN_SUPPORT_DATA_STALL=y
CONFIG_WLAN_SYNC_TSF=y
CONFIG_WLAN_SYNC_TSF_PLUS=y
CONFIG_WLAN_SYNC_TSF_TIMER=y
CONFIG_WLAN_SYSFS=y
CONFIG_WLAN_SYSFS_CHANNEL=y
CONFIG_WLAN_SYSFS_CONNECT_INFO=y
CONFIG_WLAN_SYSFS_DCM=y
CONFIG_WLAN_SYSFS_DFSNOL=y
CONFIG_WLAN_SYSFS_DP_STATS=y
CONFIG_WLAN_SYSFS_DP_TRACE=y
CONFIG_WLAN_SYSFS_EHT_RATE=y
CONFIG_WLAN_SYSFS_FW_MODE_CFG=y
CONFIG_WLAN_SYSFS_HE_BSS_COLOR=y
CONFIG_WLAN_SYSFS_LOG_BUFFER=y
CONFIG_WLAN_SYSFS_MEM_STATS=y
CONFIG_WLAN_SYSFS_MONITOR_MODE_CHANNEL=y
CONFIG_WLAN_SYSFS_RADAR=y
CONFIG_WLAN_SYSFS_RANGE_EXT=y
CONFIG_WLAN_SYSFS_RTS_CTS=y
CONFIG_WLAN_SYSFS_SCAN_CFG=y
CONFIG_WLAN_SYSFS_STA_INFO=y
CONFIG_WLAN_SYSFS_STATS=y
CONFIG_WLAN_SYSFS_TDLS_PEERS=y
CONFIG_WLAN_SYSFS_TEMPERATURE=y
CONFIG_WLAN_SYSFS_TX_STBC=y
CONFIG_WLAN_SYSFS_WLAN_DBG=y
CONFIG_WLAN_SYSFS_BITRATES=y
CONFIG_WLAN_SYSFS_RF_TEST_MODE=y
CONFIG_WLAN_THERMAL_CFG=y
CONFIG_WLAN_THERMAL_MULTI_CLIENT_SUPPORT=y
CONFIG_WLAN_TRACEPOINTS=y
CONFIG_WLAN_TSF_AUTO_REPORT=y
CONFIG_WLAN_TSF_UPLINK_DELAY=y
CONFIG_WLAN_TX_LATENCY_STATS=y
CONFIG_WLAN_TWT_CONVERGED=y
CONFIG_WLAN_TWT_SAP_PDEV_COUNT=y
CONFIG_WLAN_TWT_SAP_STA_COUNT=y
CONFIG_WLAN_TX_FLOW_CONTROL_V2=y
CONFIG_WLAN_TXRX_FW_ST_RST=y
CONFIG_WLAN_TXRX_FW_STATS=y
CONFIG_WLAN_TXRX_STATS=y
CONFIG_WLAN_UMAC_MLO_MAX_DEV=3
CONFIG_WLAN_VENDOR_HANDOFF_CONTROL=y
CONFIG_WLAN_WBUFF=y
CONFIG_WLAN_WOW_ITO=y
CONFIG_WLAN_WOWL_ADD_PTRN=y
CONFIG_WLAN_WOWL_DEL_PTRN=y
CONFIG_WMI_BCN_OFFLOAD=y
CONFIG_WMI_CMD_STRINGS=y
CONFIG_WMI_CONCURRENCY_SUPPORT=y
CONFIG_WMI_DBR_SUPPORT=y
CONFIG_WMI_INTERFACE_EVENT_LOGGING=y
CONFIG_WMI_ROAM_SUPPORT=y
CONFIG_WMI_SEND_RECV_QMI=y
CONFIG_WMI_STA_SUPPORT=y
CONFIG_CFG80211_EXTERNAL_AUTH_MLO_SUPPORT=y
CONFIG_CFG80211_EXT_FEATURE_SECURE_NAN=y
CONFIG_WLAN_CTRL_NAME="wlan"
CONFIG_MULTI_IF_NAME="peach_v2"
CONFIG_NL80211_TESTMODE=y
CONFIG_ENABLE_CE4_COMP_DISABLE_HTT_HTC_MISC_LIST=y
CONFIG_WLAN_HOST_ARCH_ARM=y
CONFIG_ARCH_MSM=y
CONFIG_DP_TX_PACKET_INSPECT_FOR_ILP=y
CONFIG_NUM_SOC_PERF_CLUSTER=2
CONFIG_WLAN_OPEN_SOURCE=y
CONFIG_QCA_WIFI_FTM_NL80211=y
CONFIG_CFG80211_MLD_AP_STA_CONNECT_UPSTREAM_SUPPORT=y
CONFIG_DP_MULTIPASS_SUPPORT=y
CONFIG_WLAN_DP_VDEV_NO_SELF_PEER=y
CONFIG_WLAN_FEATURE_AFFINITY_MGR=y
CONFIG_WALT_GET_CPU_TAKEN_SUPPORT=y
CONFIG_DP_MLO_LINK_STATS_SUPPORT=y
CONFIG_HIF_DEBUG=y
CONFIG_WLAN_OBJMGR_DEBUG=y
CONFIG_WLAN_OBJMGR_REF_ID_TRACE=y
CONFIG_WLAN_WARN_ON_ASSERT=y
CONFIG_WLAN_DP_FEATURE_DEFERRED_REO_QDESC_DESTROY=y
CONFIG_PANIC_ON_BUG=y
CONFIG_FEATURE_WLAN_CH_AVOID_EXT=y
CONFIG_CNSS2_SSR_DRIVER_DUMP=y
CONFIG_BUS_AUTO_SUSPEND=y
CONFIG_CNSS_OUT_OF_TREE=y
CONFIG_SMP=y
CONFIG_RPS=y
CONFIG_BCN_RATECODE_ENABLE=y
CONFIG_4_BYTES_TLV_TAG=y
CONFIG_WLAN_FEATURE_MARK_FIRST_WAKEUP_PACKET=y
CONFIG_WLAN_MULTI_CHIP_SUPPORT=y
CONFIG_WLAN_FEATURE_EMLSR=y

View File

@ -18,6 +18,7 @@ CONFIG_CNSS_GENL_MODULE=y
CONFIG_CNSS_KIWI=y
CONFIG_CNSS_KIWI_V2=y
CONFIG_CNSS_PEACH=y
CONFIG_INCLUDE_HAL_PEACH=y
CONFIG_CNSS_UTILS_MODULE=y
CONFIG_CNSS_UTILS=y
CONFIG_CONNECTIVITY_PKTLOG=y
@ -394,3 +395,4 @@ CONFIG_BCN_RATECODE_ENABLE=y
CONFIG_4_BYTES_TLV_TAG=y
CONFIG_WLAN_FEATURE_MARK_FIRST_WAKEUP_PACKET=y
CONFIG_WLAN_MULTI_CHIP_SUPPORT=y
CONFIG_WLAN_FEATURE_EMLSR=y

View File

@ -0,0 +1,34 @@
CONFIG_ALLOW_PKT_DROPPING=y
CONFIG_ATH_DIAG_EXT_DIRECT=y
CONFIG_DESC_TIMESTAMP_DEBUG_INFO=y
CONFIG_DP_RX_REFILL_CPU_PERF_AFFINE_MASK=y
CONFIG_DP_TX_COMP_RING_DESC_SANITY_CHECK=y
CONFIG_DP_TX_HW_DESC_HISTORY=y
CONFIG_DSC_DEBUG=y
CONFIG_DSC_TEST=y
CONFIG_ENABLE_QDF_PTR_HASH_DEBUG=y
CONFIG_FEATURE_HIF_LATENCY_PROFILE_ENABLE=y
CONFIG_FEATURE_UNIT_TEST_SUSPEND=y
CONFIG_HAL_DEBUG=y
CONFIG_HIF_CE_DEBUG_DATA_BUF=y
CONFIG_HIF_CPU_PERF_AFFINE_MASK=y
CONFIG_LEAK_DETECTION=y
CONFIG_MAX_LOGS_PER_SEC=500
CONFIG_ENABLE_MAX_LOGS_PER_SEC=y
CONFIG_QDF_NBUF_HISTORY_SIZE=16384
CONFIG_REGISTER_OP_DEBUG=y
CONFIG_REO_QDESC_HISTORY=y
CONFIG_RX_DESC_DEBUG_CHECK=y
CONFIG_SCHED_HISTORY_SIZE=256
CONFIG_ENABLE_SCHED_HISTORY_SIZE=y
CONFIG_TALLOC_DEBUG=y
CONFIG_UNIT_TEST=y
CONFIG_WLAN_FEATURE_DP_CFG_EVENT_HISTORY=y
CONFIG_WLAN_FEATURE_DP_MON_STATUS_RING_HISTORY=y
CONFIG_WLAN_FEATURE_DP_RX_RING_HISTORY=y
CONFIG_WLAN_FEATURE_DP_TX_DESC_HISTORY=y
CONFIG_WLAN_RECORD_RX_PADDR=y
CONFIG_QDF_TEST=y
CONFIG_DYNAMIC_DEBUG=y
CONFIG_FEATURE_WLM_STATS=y
CONFIG_WLAN_TRACE_HIDE_MAC_ADDRESS_DISABLE=y

View File

@ -17,6 +17,7 @@ CONFIG_CHIP_VERSION=2
CONFIG_CNSS_GENL_MODULE=y
CONFIG_CNSS_KIWI=y
CONFIG_CNSS_KIWI_V2=y
CONFIG_INCLUDE_HAL_KIWI=y
CONFIG_CNSS_UTILS_MODULE=y
CONFIG_CNSS_UTILS=y
CONFIG_CONNECTIVITY_PKTLOG=y

View File

@ -0,0 +1,398 @@
CONFIG_QCA_CLD_WLAN=y
CONFIG_160MHZ_SUPPORT=y
CONFIG_6G_SCAN_CHAN_SORT_ALGO=y
CONFIG_ADAPTIVE_11R=y
CONFIG_ANI_LEVEL_REQUEST=y
CONFIG_AR900B=y
CONFIG_ATH_11AC_TXCOMPACT=y
CONFIG_ATH_BUS_PM=y
CONFIG_ATH_PERF_PWR_OFFLOAD=y
CONFIG_BAND_6GHZ=y
CONFIG_BERYLLIUM=y
CONFIG_CE_DISABLE_SRNG_TIMER_IRQ=y
CONFIG_CFG_BMISS_OFFLOAD_MAX_VDEV=4
CONFIG_CFG_MAX_STA_VDEVS=4
CONFIG_CHECKSUM_OFFLOAD=y
CONFIG_CHIP_VERSION=2
CONFIG_CNSS_GENL_MODULE=y
CONFIG_CNSS_KIWI=y
CONFIG_CNSS_KIWI_V2=y
CONFIG_CNSS_PEACH=y
CONFIG_CNSS_PEACH_V2=y
CONFIG_INCLUDE_HAL_PEACH=y
CONFIG_CNSS_UTILS_MODULE=y
CONFIG_CNSS_UTILS=y
CONFIG_CONNECTIVITY_PKTLOG=y
CONFIG_CONVERGED_P2P_ENABLE=y
CONFIG_CP_STATS=y
CONFIG_QCA_TARGET_IF_MLME=y
CONFIG_DCS=y
CONFIG_DDP_MON_RSSI_IN_DBM=y
CONFIG_DEBUG_RX_RING_BUFFER=y
CONFIG_DELIVERY_TO_STACK_STATUS_CHECK=y
CONFIG_DESC_DUP_DETECT_DEBUG=y
CONFIG_DEVICE_FORCE_WAKE_ENABLE=y
CONFIG_DIRECT_BUF_RX_ENABLE=y
CONFIG_DISABLE_CHANNEL_LIST=y
CONFIG_DISABLE_EAPOL_INTRABSS_FWD=y
CONFIG_DISABLE_STATUS_RING_TIMER_WAR=y
CONFIG_DP_BE_WAR=y
CONFIG_DP_CON_MON_MSI_ENABLED=y
CONFIG_DP_CON_MON_MSI_SKIP_SET=y
CONFIG_DP_FEATURE_HW_COOKIE_CONVERSION=y
CONFIG_DP_HW_COOKIE_CONVERT_EXCEPTION=y
CONFIG_DP_HW_TX_DELAY_STATS_ENABLE=y
CONFIG_DP_INTR_POLL_BASED=y
CONFIG_DP_LFR=y
CONFIG_DP_MEM_PRE_ALLOC=y
CONFIG_DP_PKT_ADD_TIMESTAMP=y
CONFIG_DP_PKT_STATS_PER_LMAC=y
CONFIG_DP_RX_BUFFER_POOL_ALLOC_THRES=5
CONFIG_DP_RX_BUFFER_POOL_SIZE=128
CONFIG_DP_RX_REFILL_BUFF_POOL_SIZE=2048
CONFIG_DP_RX_REFILL_THRD_THRESHOLD=512
CONFIG_DP_RX_DROP_RAW_FRM=y
CONFIG_DP_RX_PKT_NO_PEER_DELIVER=y
CONFIG_DP_RX_SPECIAL_FRAME_NEED=y
CONFIG_DP_TRACE=y
CONFIG_DP_TRAFFIC_END_INDICATION=y
CONFIG_DP_TXRX_SOC_ATTACH=y
CONFIG_DP_USE_REDUCED_PEER_ID_FIELD_WIDTH=y
CONFIG_DP_WAR_INVALID_FIRST_MSDU_FLAG=y
CONFIG_DUP_RX_DESC_WAR=y
CONFIG_DYNAMIC_RX_AGGREGATION=y
CONFIG_EMULATION_2_0=y
CONFIG_ENABLE_HAL_REG_WR_HISTORY=y
CONFIG_ENABLE_HAL_SOC_STATS=y
CONFIG_ENABLE_MTRACE_LOG=y
CONFIG_ENABLE_SMMU_S1_TRANSLATION=y
CONFIG_FEATURE_ACTIVE_TOS=y
CONFIG_FEATURE_ALIGN_STATS_FROM_DP=y
CONFIG_FEATURE_BECN_STATS=y
CONFIG_FEATURE_BSS_TRANSITION=y
CONFIG_FEATURE_BUS_BANDWIDTH_MGR=y
CONFIG_FEATURE_CLUB_LL_STATS_AND_GET_STATION=y
CONFIG_FEATURE_COEX=y
CONFIG_FEATURE_CONCURRENCY_MATRIX=y
CONFIG_FEATURE_DELAYED_PEER_OBJ_DESTROY=y
CONFIG_FEATURE_DENYLIST_MGR=y
CONFIG_FEATURE_EPPING=y
CONFIG_FEATURE_FORCE_WAKE=y
CONFIG_FEATURE_FW_LOG_PARSING=y
CONFIG_FEATURE_GPIO_CFG=y
CONFIG_FEATURE_HAL_DELAYED_REG_WRITE=y
CONFIG_FEATURE_HTC_CREDIT_HISTORY=y
CONFIG_FEATURE_INTEROP_ISSUES_AP=y
CONFIG_FEATURE_MEMDUMP_ENABLE=y
CONFIG_FEATURE_MONITOR_MODE_SUPPORT=y
CONFIG_FEATURE_MSCS=y
CONFIG_FEATURE_NO_DBS_INTRABAND_MCC_SUPPORT=y
CONFIG_FEATURE_OEM_DATA=y
CONFIG_FEATURE_OTA_TEST=y
CONFIG_FEATURE_P2P_LISTEN_OFFLOAD=y
CONFIG_FEATURE_RADAR_HISTORY=y
CONFIG_FEATURE_ROAM_DEBUG=y
CONFIG_FEATURE_RSSI_MONITOR=y
CONFIG_FEATURE_RX_LINKSPEED_ROAM_TRIGGER=y
CONFIG_FEATURE_SAP_COND_CHAN_SWITCH=y
CONFIG_FEATURE_SAR_LIMITS=y
CONFIG_FEATURE_SET=y
CONFIG_FEATURE_STATION_INFO=y
CONFIG_FEATURE_STATS_EXT=y
CONFIG_FEATURE_STATS_EXT_V2=y
CONFIG_FEATURE_TSO=y
CONFIG_FEATURE_TSO_STATS=y
CONFIG_FEATURE_TX_POWER=y
CONFIG_FEATURE_VDEV_OPS_WAKELOCK=y
CONFIG_FEATURE_WLAN_LPHB=y
CONFIG_FEATURE_WLAN_PRE_CAC=y
CONFIG_FEATURE_WLAN_RA_FILTERING=y
CONFIG_FEATURE_WLAN_SCAN_PNO=y
CONFIG_FEATURE_WLAN_WAPI=y
CONFIG_FIX_TXDMA_LIMITATION=y
CONFIG_FOURTH_CONNECTION=y
CONFIG_FW_THERMAL_THROTTLE=y
CONFIG_GET_DRIVER_MODE=y
CONFIG_GTK_OFFLOAD=y
CONFIG_HAL_DISABLE_NON_BA_2K_JUMP_ERROR=y
CONFIG_HANDLE_BC_EAP_TX_FRM=y
CONFIG_HANDLE_RX_REROUTE_ERR=y
CONFIG_HASTINGS_BT_WAR=y
CONFIG_HDD_INIT_WITH_RTNL_LOCK=y
CONFIG_HIF_PCI=y
CONFIG_HIF_REG_WINDOW_SUPPORT=y
CONFIG_HOST_OPCLASS=y
CONFIG_HTT_PADDR64=y
CONFIG_IPA_OFFLOAD=y
CONFIG_IPA_OPT_WIFI_DP=y
CONFIG_IPA_SET_RESET_TX_DB_PA=y
CONFIG_KIWI_HEADERS_DEF=y
CONFIG_LFR_SUBNET_DETECTION=y
CONFIG_LINUX_QCMBR=y
CONFIG_LITTLE_ENDIAN=y
CONFIG_LL_DP_SUPPORT=y
CONFIG_LTE_COEX=y
CONFIG_MARK_ICMP_REQ_TO_FW=y
CONFIG_MAX_ALLOC_PAGE_SIZE=y
CONFIG_MCC_TO_SCC_SWITCH=y
CONFIG_MON_ENABLE_DROP_FOR_MAC=y
CONFIG_MON_ENABLE_DROP_FOR_NON_MON_PMAC=y
CONFIG_MORE_TX_DESC=y
CONFIG_MULTI_CLIENT_LL_SUPPORT=y
CONFIG_NO_RX_PKT_HDR_TLV=y
CONFIG_OBSS_PD=y
CONFIG_OFDM_SCRAMBLER_SEED=y
CONFIG_PCI_LINK_STATUS_SANITY=y
CONFIG_PCIE_GEN_SWITCH=y
CONFIG_PEER_PROTECTED_ACCESS=y
CONFIG_PKTLOG_HAS_SPECIFIC_DATA=y
CONFIG_PLD_PCIE_CNSS_FLAG=y
CONFIG_PLD_PCIE_INIT_FLAG=y
CONFIG_POWER_MANAGEMENT_OFFLOAD=y
CONFIG_PTT_SOCK_SVC_ENABLE=y
CONFIG_QCA_DFS_BW_PUNCTURE=y
CONFIG_QCA_GET_TSF_VIA_REG=y
CONFIG_QCA_MONITOR_PKT_SUPPORT=y
CONFIG_QCA_SUPPORT_TX_MIN_RATES_FOR_SPECIAL_FRAMES=y
CONFIG_QCA_SUPPORT_TX_THROTTLE=y
CONFIG_QCA_WIFI_FTM=y
CONFIG_QCA_WIFI_KIWI=y
CONFIG_QCA_WIFI_MONITOR_MODE_NO_MSDU_START_TLV_SUPPORT=y
CONFIG_QCA_WIFI_QCA8074=y
CONFIG_QCA_WIFI_QCA8074_VP=y
CONFIG_QCACLD_FEATURE_APF=y
CONFIG_QCACLD_FEATURE_FW_STATE=y
CONFIG_QCACLD_FEATURE_GAP_LL_PS_MODE=y
CONFIG_QCACLD_FEATURE_GREEN_AP=y
CONFIG_QCACLD_FEATURE_NAN=y
CONFIG_QCACLD_RX_DESC_MULTI_PAGE_ALLOC=y
CONFIG_QCACLD_WLAN_CONNECTIVITY_DIAG_EVENT=y
CONFIG_QCACLD_WLAN_LFR3=y
CONFIG_QCOM_ESE=y
CONFIG_QCOM_LTE_COEX=y
CONFIG_QCOM_TDLS=y
CONFIG_QCOM_VOWIFI_11R=y
CONFIG_QMI_SUPPORT=y
CONFIG_REG_CLIENT=y
CONFIG_REMOVE_PKT_LOG=y
CONFIG_REO_DESC_DEFER_FREE=y
CONFIG_RX_DEFRAG_DO_NOT_REINJECT=y
CONFIG_RX_DESC_SANITY_WAR=y
CONFIG_RX_FISA=y
CONFIG_RX_HASH_DEBUG=y
CONFIG_RX_OL=y
CONFIG_RXDMA_ERR_PKT_DROP=y
CONFIG_SAE_SINGLE_PMK=y
CONFIG_SAP_AVOID_ACS_FREQ_LIST=y
CONFIG_SAP_DHCP_FW_IND=y
CONFIG_SAR_SAFETY_FEATURE=y
CONFIG_SCALE_INCLUDES=y
CONFIG_SERIALIZE_QUEUE_SETUP=y
CONFIG_SHADOW_V3=y
CONFIG_SMMU_S1_UNMAP=y
CONFIG_SOFTAP_CHANNEL_RANGE=y
CONFIG_SUPPORT_11AX=y
CONFIG_SYSTEM_PM_CHECK=y
CONFIG_TARGET_11D_SCAN=y
CONFIG_TARGET_RAMDUMP_AFTER_KERNEL_PANIC=y
CONFIG_THERMAL_STATS_SUPPORT=y
CONFIG_TRACE_RECORD_FEATURE=y
CONFIG_TSO_DEBUG_LOG_ENABLE=y
CONFIG_TX_ADDR_INDEX_SEARCH=y
CONFIG_TX_MULTI_TCL=y
CONFIG_TX_MULTIQ_PER_AC=y
CONFIG_TX_PER_PDEV_DESC_POOL=y
CONFIG_TX_TID_OVERRIDE=y
CONFIG_VERBOSE_DEBUG=y
CONFIG_WAPI_BIG_ENDIAN=y
CONFIG_WCNSS_MEM_PRE_ALLOC_MODULE=y
CONFIG_WCNSS_MEM_PRE_ALLOC=y
CONFIG_WDI_EVENT_ENABLE=y
CONFIG_WDI3_IPA_OVER_GSI=y
CONFIG_WIFI_MONITOR_SUPPORT=y
CONFIG_WIFI_POS_CONVERGED=y
CONFIG_WIFI_POS_PASN=y
CONFIG_WINDOW_REG_PLD_LOCK_ENABLE=y
CONFIG_WLAN_BCN_RECV_FEATURE=y
CONFIG_WLAN_BMISS=y
CONFIG_WLAN_CE_INTERRUPT_THRESHOLD_CONFIG=y
CONFIG_WLAN_CFR_ENABLE=y
CONFIG_WLAN_CLD_DEV_PM_QOS=y
CONFIG_WLAN_CLD_PM_QOS=y
CONFIG_WLAN_CONV_SPECTRAL_ENABLE=y
CONFIG_WLAN_CUSTOM_DSCP_UP_MAP=y
CONFIG_WLAN_DEBUG_CRASH_INJECT=y
CONFIG_WLAN_DEBUG_LINK_VOTE=y
CONFIG_WLAN_DEBUG_VERSION=y
CONFIG_WLAN_DEBUGFS=y
CONFIG_WLAN_DFS_MASTER_ENABLE=y
CONFIG_WLAN_DFS_STATIC_MEM_ALLOC=y
CONFIG_WLAN_DIAG_VERSION=y
CONFIG_WLAN_DL_MODES=y
CONFIG_WLAN_DP_DISABLE_TCL_CMD_CRED_SRNG=y
CONFIG_WLAN_DP_DISABLE_TCL_STATUS_SRNG=y
CONFIG_WLAN_DP_PENDING_MEM_FLUSH=y
CONFIG_WLAN_DP_PER_RING_TYPE_CONFIG=y
CONFIG_WLAN_DP_SRNG_USAGE_WM_TRACKING=y
CONFIG_WLAN_DYNAMIC_CVM=y
CONFIG_WLAN_ENABLE_SOCIAL_CHANNELS_5G_ONLY=y
CONFIG_WLAN_ENH_CFR_ENABLE=y
CONFIG_WLAN_FEATURE_11AX=y
CONFIG_WLAN_FEATURE_11BE=y
CONFIG_WLAN_FEATURE_11BE_MLO=y
CONFIG_WLAN_HDD_MULTI_VDEV_SINGLE_NDEV=y
CONFIG_WLAN_FEATURE_ACTION_OUI=y
CONFIG_WLAN_FEATURE_BIG_DATA_STATS=y
CONFIG_WLAN_FEATURE_CAL_FAILURE_TRIGGER=y
CONFIG_WLAN_FEATURE_COAP=y
CONFIG_WLAN_FEATURE_COEX_DBAM=y
CONFIG_WLAN_FEATURE_DFS_OFFLOAD=y
CONFIG_WLAN_FEATURE_DISA=y
CONFIG_WLAN_FEATURE_DP_BUS_BANDWIDTH=y
CONFIG_WLAN_FEATURE_DP_EVENT_HISTORY=y
CONFIG_WLAN_FEATURE_DP_RX_THREADS=y
CONFIG_WLAN_FEATURE_DYNAMIC_MAC_ADDR_UPDATE=y
CONFIG_WLAN_FEATURE_ELNA=y
CONFIG_WLAN_FEATURE_FILS=y
CONFIG_WLAN_FEATURE_FIPS=y
CONFIG_WLAN_FEATURE_GET_USABLE_CHAN_LIST=y
CONFIG_WLAN_FEATURE_ICMP_OFFLOAD=y
CONFIG_WLAN_FEATURE_IGMP_OFFLOAD=y
CONFIG_WLAN_FEATURE_LINK_LAYER_STATS=y
CONFIG_WLAN_FEATURE_LPSS=y
CONFIG_WLAN_FEATURE_LRO_CTX_IN_CB=y
CONFIG_WLAN_FEATURE_MBSSID=y
CONFIG_WLAN_FEATURE_MCC_QUOTA=y
CONFIG_WLAN_FEATURE_MDNS_OFFLOAD=y
CONFIG_WLAN_FEATURE_MEDIUM_ASSESS=y
CONFIG_WLAN_FEATURE_MIB_STATS=y
CONFIG_WLAN_FEATURE_NEAR_FULL_IRQ=y
CONFIG_WLAN_FEATURE_P2P_DEBUG=y
CONFIG_WLAN_FEATURE_P2P_P2P_STA=y
CONFIG_WLAN_FEATURE_PACKET_FILTERING=y
CONFIG_WLAN_FEATURE_PEER_TXQ_FLUSH_CONF=y
CONFIG_WLAN_FEATURE_ROAM_INFO_STATS=y
CONFIG_WLAN_FEATURE_RX_BUFFER_POOL=y
CONFIG_WLAN_FEATURE_RX_SOFTIRQ_TIME_LIMIT=y
CONFIG_WLAN_FEATURE_SAE=y
CONFIG_WLAN_FEATURE_SAP_ACS_OPTIMIZE=y
CONFIG_WLAN_FEATURE_SARV1_TO_SARV2=y
CONFIG_WLAN_FEATURE_SR=y
CONFIG_WLAN_FEATURE_TWT=y
CONFIG_WLAN_FEATURE_WMI_DIAG_OVER_CE7=y
CONFIG_WLAN_FREQ_LIST=y
CONFIG_WLAN_FW_OFFLOAD=y
CONFIG_WLAN_GTX_BW_MASK=y
CONFIG_WLAN_HANG_EVENT=y
CONFIG_WLAN_LOG_DEBUG=y
CONFIG_WLAN_LOG_ENTER=y
CONFIG_WLAN_LOG_ERROR=y
CONFIG_WLAN_LOG_EXIT=y
CONFIG_WLAN_LOG_FATAL=y
CONFIG_WLAN_LOG_INFO=y
CONFIG_WLAN_LOG_WARN=y
CONFIG_WLAN_LOGGING_SOCK_SVC=y
CONFIG_WLAN_MWS_INFO_DEBUGFS=y
CONFIG_WLAN_NAPI=y
CONFIG_WLAN_NS_OFFLOAD=y
CONFIG_WLAN_NUD_TRACKING=y
CONFIG_WLAN_OFFLOAD_PACKETS=y
CONFIG_WLAN_OPEN_P2P_INTERFACE=y
CONFIG_WLAN_PDEV_VDEV_SEND_MULTI_PARAM=y
CONFIG_WLAN_PMO_ENABLE=y
CONFIG_WLAN_POLICY_MGR_ENABLE=y
CONFIG_WLAN_POWER_DEBUG=y
CONFIG_WLAN_REASSOC=y
CONFIG_WLAN_RX_MON_PARSE_CMN_USER_INFO=y
CONFIG_WLAN_SCAN_DISABLE=y
CONFIG_WLAN_SKIP_BAR_UPDATE=y
CONFIG_WLAN_SUPPORT_DATA_STALL=y
CONFIG_WLAN_SYNC_TSF=y
CONFIG_WLAN_SYNC_TSF_PLUS=y
CONFIG_WLAN_SYNC_TSF_TIMER=y
CONFIG_WLAN_SYSFS=y
CONFIG_WLAN_SYSFS_CHANNEL=y
CONFIG_WLAN_SYSFS_CONNECT_INFO=y
CONFIG_WLAN_SYSFS_DCM=y
CONFIG_WLAN_SYSFS_DFSNOL=y
CONFIG_WLAN_SYSFS_DP_STATS=y
CONFIG_WLAN_SYSFS_DP_TRACE=y
CONFIG_WLAN_SYSFS_EHT_RATE=y
CONFIG_WLAN_SYSFS_FW_MODE_CFG=y
CONFIG_WLAN_SYSFS_HE_BSS_COLOR=y
CONFIG_WLAN_SYSFS_LOG_BUFFER=y
CONFIG_WLAN_SYSFS_MEM_STATS=y
CONFIG_WLAN_SYSFS_MONITOR_MODE_CHANNEL=y
CONFIG_WLAN_SYSFS_RADAR=y
CONFIG_WLAN_SYSFS_RANGE_EXT=y
CONFIG_WLAN_SYSFS_RTS_CTS=y
CONFIG_WLAN_SYSFS_SCAN_CFG=y
CONFIG_WLAN_SYSFS_STA_INFO=y
CONFIG_WLAN_SYSFS_STATS=y
CONFIG_WLAN_SYSFS_TDLS_PEERS=y
CONFIG_WLAN_SYSFS_TEMPERATURE=y
CONFIG_WLAN_SYSFS_TX_STBC=y
CONFIG_WLAN_SYSFS_WLAN_DBG=y
CONFIG_WLAN_SYSFS_BITRATES=y
CONFIG_WLAN_SYSFS_RF_TEST_MODE=y
CONFIG_WLAN_THERMAL_CFG=y
CONFIG_WLAN_THERMAL_MULTI_CLIENT_SUPPORT=y
CONFIG_WLAN_TRACEPOINTS=y
CONFIG_WLAN_TSF_AUTO_REPORT=y
CONFIG_WLAN_TSF_UPLINK_DELAY=y
CONFIG_WLAN_TX_LATENCY_STATS=y
CONFIG_WLAN_TWT_CONVERGED=y
CONFIG_WLAN_TWT_SAP_PDEV_COUNT=y
CONFIG_WLAN_TWT_SAP_STA_COUNT=y
CONFIG_WLAN_TX_FLOW_CONTROL_V2=y
CONFIG_WLAN_TXRX_FW_ST_RST=y
CONFIG_WLAN_TXRX_FW_STATS=y
CONFIG_WLAN_TXRX_STATS=y
CONFIG_WLAN_UMAC_MLO_MAX_DEV=3
CONFIG_WLAN_VENDOR_HANDOFF_CONTROL=y
CONFIG_WLAN_WBUFF=y
CONFIG_WLAN_WOW_ITO=y
CONFIG_WLAN_WOWL_ADD_PTRN=y
CONFIG_WLAN_WOWL_DEL_PTRN=y
CONFIG_WMI_BCN_OFFLOAD=y
CONFIG_WMI_CMD_STRINGS=y
CONFIG_WMI_CONCURRENCY_SUPPORT=y
CONFIG_WMI_DBR_SUPPORT=y
CONFIG_WMI_INTERFACE_EVENT_LOGGING=y
CONFIG_WMI_ROAM_SUPPORT=y
CONFIG_WMI_SEND_RECV_QMI=y
CONFIG_WMI_STA_SUPPORT=y
CONFIG_CFG80211_EXTERNAL_AUTH_MLO_SUPPORT=y
CONFIG_CFG80211_EXT_FEATURE_SECURE_NAN=y
CONFIG_WLAN_CTRL_NAME="wlan"
CONFIG_MULTI_IF_NAME="peach_v2"
CONFIG_NL80211_TESTMODE=y
CONFIG_ENABLE_CE4_COMP_DISABLE_HTT_HTC_MISC_LIST=y
CONFIG_WLAN_HOST_ARCH_ARM=y
CONFIG_ARCH_MSM=y
CONFIG_DP_TX_PACKET_INSPECT_FOR_ILP=y
CONFIG_NUM_SOC_PERF_CLUSTER=2
CONFIG_WLAN_OPEN_SOURCE=y
CONFIG_QCA_WIFI_FTM_NL80211=y
CONFIG_CFG80211_MLD_AP_STA_CONNECT_UPSTREAM_SUPPORT=y
CONFIG_DP_MULTIPASS_SUPPORT=y
CONFIG_WLAN_DP_VDEV_NO_SELF_PEER=y
CONFIG_WLAN_FEATURE_AFFINITY_MGR=y
CONFIG_WALT_GET_CPU_TAKEN_SUPPORT=y
CONFIG_DP_MLO_LINK_STATS_SUPPORT=y
CONFIG_HIF_DEBUG=y
CONFIG_WLAN_OBJMGR_DEBUG=y
CONFIG_WLAN_OBJMGR_REF_ID_TRACE=y
CONFIG_WLAN_WARN_ON_ASSERT=y
CONFIG_WLAN_DP_FEATURE_DEFERRED_REO_QDESC_DESTROY=y
CONFIG_PANIC_ON_BUG=y
CONFIG_FEATURE_WLAN_CH_AVOID_EXT=y
CONFIG_CNSS2_SSR_DRIVER_DUMP=y
CONFIG_BUS_AUTO_SUSPEND=y
CONFIG_CNSS_OUT_OF_TREE=y
CONFIG_SMP=y
CONFIG_RPS=y
CONFIG_BCN_RATECODE_ENABLE=y
CONFIG_4_BYTES_TLV_TAG=y
CONFIG_WLAN_FEATURE_MARK_FIRST_WAKEUP_PACKET=y
CONFIG_WLAN_MULTI_CHIP_SUPPORT=y

View File

@ -18,6 +18,7 @@ CONFIG_CNSS_GENL_MODULE=y
CONFIG_CNSS_KIWI=y
CONFIG_CNSS_KIWI_V2=y
CONFIG_CNSS_PEACH=y
CONFIG_INCLUDE_HAL_PEACH=y
CONFIG_CNSS_UTILS_MODULE=y
CONFIG_CNSS_UTILS=y
CONFIG_CONNECTIVITY_PKTLOG=y

View File

@ -0,0 +1,34 @@
CONFIG_ALLOW_PKT_DROPPING=y
CONFIG_ATH_DIAG_EXT_DIRECT=y
CONFIG_DESC_TIMESTAMP_DEBUG_INFO=y
CONFIG_DP_RX_REFILL_CPU_PERF_AFFINE_MASK=y
CONFIG_DP_TX_COMP_RING_DESC_SANITY_CHECK=y
CONFIG_DP_TX_HW_DESC_HISTORY=y
CONFIG_DSC_DEBUG=y
CONFIG_DSC_TEST=y
CONFIG_ENABLE_QDF_PTR_HASH_DEBUG=y
CONFIG_FEATURE_HIF_LATENCY_PROFILE_ENABLE=y
CONFIG_FEATURE_UNIT_TEST_SUSPEND=y
CONFIG_HAL_DEBUG=y
CONFIG_HIF_CE_DEBUG_DATA_BUF=y
CONFIG_HIF_CPU_PERF_AFFINE_MASK=y
CONFIG_LEAK_DETECTION=y
CONFIG_MAX_LOGS_PER_SEC=500
CONFIG_ENABLE_MAX_LOGS_PER_SEC=y
CONFIG_QDF_NBUF_HISTORY_SIZE=16384
CONFIG_REGISTER_OP_DEBUG=y
CONFIG_REO_QDESC_HISTORY=y
CONFIG_RX_DESC_DEBUG_CHECK=y
CONFIG_SCHED_HISTORY_SIZE=256
CONFIG_ENABLE_SCHED_HISTORY_SIZE=y
CONFIG_TALLOC_DEBUG=y
CONFIG_UNIT_TEST=y
CONFIG_WLAN_FEATURE_DP_CFG_EVENT_HISTORY=y
CONFIG_WLAN_FEATURE_DP_MON_STATUS_RING_HISTORY=y
CONFIG_WLAN_FEATURE_DP_RX_RING_HISTORY=y
CONFIG_WLAN_FEATURE_DP_TX_DESC_HISTORY=y
CONFIG_WLAN_RECORD_RX_PADDR=y
CONFIG_QDF_TEST=y
CONFIG_DYNAMIC_DEBUG=y
CONFIG_FEATURE_WLM_STATS=y
CONFIG_WLAN_TRACE_HIDE_MAC_ADDRESS_DISABLE=y

View File

@ -0,0 +1,414 @@
CONFIG_QCA_CLD_WLAN=y
CONFIG_160MHZ_SUPPORT=y
CONFIG_6G_SCAN_CHAN_SORT_ALGO=y
CONFIG_ADAPTIVE_11R=y
CONFIG_ANI_LEVEL_REQUEST=y
CONFIG_AR900B=y
CONFIG_ATH_11AC_TXCOMPACT=y
CONFIG_ATH_BUS_PM=y
CONFIG_ATH_PERF_PWR_OFFLOAD=y
CONFIG_BAND_6GHZ=y
CONFIG_BERYLLIUM=y
CONFIG_CE_DISABLE_SRNG_TIMER_IRQ=y
CONFIG_CFG_BMISS_OFFLOAD_MAX_VDEV=4
CONFIG_CFG_MAX_STA_VDEVS=4
CONFIG_CHECKSUM_OFFLOAD=y
CONFIG_CHIP_VERSION=2
CONFIG_CNSS_GENL_MODULE=y
CONFIG_CNSS_KIWI=y
CONFIG_CNSS_KIWI_V2=y
CONFIG_CNSS_PEACH=y
CONFIG_CNSS_PEACH_V2=y
CONFIG_INCLUDE_HAL_PEACH=y
CONFIG_CNSS_UTILS_MODULE=y
CONFIG_CNSS_UTILS=y
CONFIG_CONNECTIVITY_PKTLOG=y
CONFIG_CONVERGED_P2P_ENABLE=y
CONFIG_CP_STATS=y
CONFIG_QCA_TARGET_IF_MLME=y
CONFIG_DCS=y
CONFIG_DDP_MON_RSSI_IN_DBM=y
CONFIG_DEBUG_RX_RING_BUFFER=y
CONFIG_DELIVERY_TO_STACK_STATUS_CHECK=y
CONFIG_DESC_DUP_DETECT_DEBUG=y
CONFIG_DEVICE_FORCE_WAKE_ENABLE=y
CONFIG_DIRECT_BUF_RX_ENABLE=y
CONFIG_DISABLE_CHANNEL_LIST=y
CONFIG_DISABLE_EAPOL_INTRABSS_FWD=y
CONFIG_DISABLE_STATUS_RING_TIMER_WAR=y
CONFIG_DP_BE_WAR=y
CONFIG_DP_CON_MON_MSI_ENABLED=y
CONFIG_DP_CON_MON_MSI_SKIP_SET=y
CONFIG_DP_FEATURE_HW_COOKIE_CONVERSION=y
CONFIG_DP_HW_COOKIE_CONVERT_EXCEPTION=y
CONFIG_DP_HW_TX_DELAY_STATS_ENABLE=y
CONFIG_DP_INTR_POLL_BASED=y
CONFIG_DP_LFR=y
CONFIG_DP_MEM_PRE_ALLOC=y
CONFIG_DP_PKT_ADD_TIMESTAMP=y
CONFIG_DP_PKT_STATS_PER_LMAC=y
CONFIG_DP_RX_BUFFER_POOL_ALLOC_THRES=5
CONFIG_DP_RX_BUFFER_POOL_SIZE=128
CONFIG_DP_RX_REFILL_BUFF_POOL_SIZE=2048
CONFIG_DP_RX_REFILL_THRD_THRESHOLD=512
CONFIG_DP_RX_DROP_RAW_FRM=y
CONFIG_DP_RX_PKT_NO_PEER_DELIVER=y
CONFIG_DP_RX_SPECIAL_FRAME_NEED=y
CONFIG_DP_TRACE=y
CONFIG_DP_TRAFFIC_END_INDICATION=y
CONFIG_DP_TXRX_SOC_ATTACH=y
CONFIG_TX_NSS_STATS_SUPPORT=y
CONFIG_DP_USE_REDUCED_PEER_ID_FIELD_WIDTH=y
CONFIG_DP_WAR_INVALID_FIRST_MSDU_FLAG=y
CONFIG_DUP_RX_DESC_WAR=y
CONFIG_DYNAMIC_RX_AGGREGATION=y
CONFIG_EMULATION_2_0=y
CONFIG_ENABLE_HAL_REG_WR_HISTORY=y
CONFIG_ENABLE_HAL_SOC_STATS=y
CONFIG_ENABLE_MTRACE_LOG=y
CONFIG_ENABLE_SMMU_S1_TRANSLATION=y
CONFIG_FEATURE_ACTIVE_TOS=y
CONFIG_FEATURE_ALIGN_STATS_FROM_DP=y
CONFIG_FEATURE_BECN_STATS=y
CONFIG_FEATURE_BSS_TRANSITION=y
CONFIG_FEATURE_BUS_BANDWIDTH_MGR=y
CONFIG_FEATURE_CLUB_LL_STATS_AND_GET_STATION=y
CONFIG_FEATURE_COEX=y
CONFIG_FEATURE_CONCURRENCY_MATRIX=y
CONFIG_FEATURE_DELAYED_PEER_OBJ_DESTROY=y
CONFIG_FEATURE_DENYLIST_MGR=y
CONFIG_FEATURE_EPPING=y
CONFIG_FEATURE_FORCE_WAKE=y
CONFIG_FEATURE_FW_LOG_PARSING=y
CONFIG_FEATURE_GPIO_CFG=y
CONFIG_FEATURE_HAL_DELAYED_REG_WRITE=y
CONFIG_FEATURE_HTC_CREDIT_HISTORY=y
CONFIG_FEATURE_INTEROP_ISSUES_AP=y
CONFIG_FEATURE_MEMDUMP_ENABLE=y
CONFIG_FEATURE_MONITOR_MODE_SUPPORT=y
CONFIG_FEATURE_MSCS=y
CONFIG_FEATURE_NO_DBS_INTRABAND_MCC_SUPPORT=y
CONFIG_FEATURE_OEM_DATA=y
CONFIG_FEATURE_OTA_TEST=y
CONFIG_FEATURE_P2P_LISTEN_OFFLOAD=y
CONFIG_FEATURE_RADAR_HISTORY=y
CONFIG_FEATURE_ROAM_DEBUG=y
CONFIG_FEATURE_RSSI_MONITOR=y
CONFIG_FEATURE_RX_LINKSPEED_ROAM_TRIGGER=y
CONFIG_FEATURE_SAP_COND_CHAN_SWITCH=y
CONFIG_FEATURE_SAR_LIMITS=y
CONFIG_FEATURE_SET=y
CONFIG_FEATURE_STATION_INFO=y
CONFIG_FEATURE_STATS_EXT=y
CONFIG_FEATURE_STATS_EXT_V2=y
CONFIG_FEATURE_TSO=y
CONFIG_FEATURE_TSO_STATS=y
CONFIG_FEATURE_TX_POWER=y
CONFIG_FEATURE_VDEV_OPS_WAKELOCK=y
CONFIG_FEATURE_WLAN_LPHB=y
CONFIG_FEATURE_WLAN_PRE_CAC=y
CONFIG_FEATURE_WLAN_RA_FILTERING=y
CONFIG_FEATURE_WLAN_SCAN_PNO=y
CONFIG_FEATURE_WLAN_WAPI=y
CONFIG_FIX_TXDMA_LIMITATION=y
CONFIG_FOURTH_CONNECTION=y
CONFIG_FIFTH_CONNECTION=y
CONFIG_FW_THERMAL_THROTTLE=y
CONFIG_GET_DRIVER_MODE=y
CONFIG_GTK_OFFLOAD=y
CONFIG_HAL_DISABLE_NON_BA_2K_JUMP_ERROR=y
CONFIG_HANDLE_BC_EAP_TX_FRM=y
CONFIG_HANDLE_RX_REROUTE_ERR=y
CONFIG_HASTINGS_BT_WAR=y
CONFIG_HDD_INIT_WITH_RTNL_LOCK=y
CONFIG_HIF_PCI=y
CONFIG_HIF_REG_WINDOW_SUPPORT=y
CONFIG_HOST_OPCLASS=y
CONFIG_HTT_PADDR64=y
CONFIG_IPA_OFFLOAD=y
CONFIG_IPA_OPT_WIFI_DP=y
CONFIG_IPA_SET_RESET_TX_DB_PA=y
CONFIG_KIWI_HEADERS_DEF=y
CONFIG_LFR_SUBNET_DETECTION=y
CONFIG_LINUX_QCMBR=y
CONFIG_LITTLE_ENDIAN=y
CONFIG_LL_DP_SUPPORT=y
CONFIG_LTE_COEX=y
CONFIG_MARK_ICMP_REQ_TO_FW=y
CONFIG_MAX_ALLOC_PAGE_SIZE=y
CONFIG_MCC_TO_SCC_SWITCH=y
CONFIG_MON_ENABLE_DROP_FOR_MAC=y
CONFIG_MON_ENABLE_DROP_FOR_NON_MON_PMAC=y
CONFIG_MORE_TX_DESC=y
CONFIG_MULTI_CLIENT_LL_SUPPORT=y
CONFIG_NO_RX_PKT_HDR_TLV=y
CONFIG_WORD_BASED_TLV=y
CONFIG_DP_RX_BUFFER_OPTIMIZATION=y
CONFIG_OBSS_PD=y
CONFIG_OFDM_SCRAMBLER_SEED=y
CONFIG_PCI_LINK_STATUS_SANITY=y
CONFIG_PCIE_GEN_SWITCH=y
CONFIG_PEER_PROTECTED_ACCESS=y
CONFIG_PKTLOG_HAS_SPECIFIC_DATA=y
CONFIG_PLD_PCIE_CNSS_FLAG=y
CONFIG_PLD_PCIE_INIT_FLAG=y
CONFIG_POWER_MANAGEMENT_OFFLOAD=y
CONFIG_PTT_SOCK_SVC_ENABLE=y
CONFIG_QCA_DFS_BW_PUNCTURE=y
CONFIG_QCA_GET_TSF_VIA_REG=y
CONFIG_QCA_MONITOR_PKT_SUPPORT=y
CONFIG_QCA_SUPPORT_TX_MIN_RATES_FOR_SPECIAL_FRAMES=y
CONFIG_QCA_SUPPORT_TX_THROTTLE=y
CONFIG_QCA_WIFI_FTM=y
CONFIG_QCA_WIFI_KIWI=y
CONFIG_QCA_WIFI_MONITOR_MODE_NO_MSDU_START_TLV_SUPPORT=y
CONFIG_QCA_WIFI_QCA8074=y
CONFIG_QCA_WIFI_QCA8074_VP=y
CONFIG_QCACLD_FEATURE_APF=y
CONFIG_QCACLD_FEATURE_FW_STATE=y
CONFIG_QCACLD_FEATURE_GAP_LL_PS_MODE=y
CONFIG_QCACLD_FEATURE_GREEN_AP=y
CONFIG_QCACLD_FEATURE_NAN=y
CONFIG_QCACLD_RX_DESC_MULTI_PAGE_ALLOC=y
CONFIG_QCACLD_WLAN_CONNECTIVITY_DIAG_EVENT=y
CONFIG_QCACLD_WLAN_LFR3=y
CONFIG_QCOM_ESE=y
CONFIG_QCOM_LTE_COEX=y
CONFIG_QCOM_TDLS=y
CONFIG_QCOM_VOWIFI_11R=y
CONFIG_QMI_SUPPORT=y
CONFIG_REG_CLIENT=y
CONFIG_REMOVE_PKT_LOG=y
CONFIG_REO_DESC_DEFER_FREE=y
CONFIG_RX_DEFRAG_DO_NOT_REINJECT=y
CONFIG_RX_DESC_SANITY_WAR=y
CONFIG_RX_FISA=y
CONFIG_RX_HASH_DEBUG=y
CONFIG_RX_OL=y
CONFIG_RXDMA_ERR_PKT_DROP=y
CONFIG_SAE_SINGLE_PMK=y
CONFIG_SAP_AVOID_ACS_FREQ_LIST=y
CONFIG_SAP_DHCP_FW_IND=y
CONFIG_SAR_SAFETY_FEATURE=y
CONFIG_SCALE_INCLUDES=y
CONFIG_SERIALIZE_QUEUE_SETUP=y
CONFIG_SHADOW_V3=y
CONFIG_SMMU_S1_UNMAP=y
CONFIG_SOFTAP_CHANNEL_RANGE=y
CONFIG_SUPPORT_11AX=y
CONFIG_SYSTEM_PM_CHECK=y
CONFIG_TARGET_11D_SCAN=y
CONFIG_TARGET_RAMDUMP_AFTER_KERNEL_PANIC=y
CONFIG_THERMAL_STATS_SUPPORT=y
CONFIG_TRACE_RECORD_FEATURE=y
CONFIG_TSO_DEBUG_LOG_ENABLE=y
CONFIG_TX_ADDR_INDEX_SEARCH=y
CONFIG_TX_MULTI_TCL=y
CONFIG_TX_MULTIQ_PER_AC=y
CONFIG_TX_PER_PDEV_DESC_POOL=y
CONFIG_TX_TID_OVERRIDE=y
CONFIG_VERBOSE_DEBUG=y
CONFIG_WAPI_BIG_ENDIAN=y
CONFIG_WCNSS_MEM_PRE_ALLOC_MODULE=y
CONFIG_WCNSS_MEM_PRE_ALLOC=y
CONFIG_WDI_EVENT_ENABLE=y
CONFIG_WDI3_IPA_OVER_GSI=y
CONFIG_WIFI_MONITOR_SUPPORT=y
CONFIG_WIFI_POS_CONVERGED=y
CONFIG_WIFI_POS_PASN=y
CONFIG_WINDOW_REG_PLD_LOCK_ENABLE=y
CONFIG_WLAN_BCN_RECV_FEATURE=y
CONFIG_WLAN_BMISS=y
CONFIG_WLAN_CE_INTERRUPT_THRESHOLD_CONFIG=y
CONFIG_WLAN_CFR_ENABLE=y
CONFIG_WLAN_CLD_DEV_PM_QOS=y
CONFIG_WLAN_CLD_PM_QOS=y
CONFIG_WLAN_CONV_SPECTRAL_ENABLE=y
CONFIG_WLAN_CUSTOM_DSCP_UP_MAP=y
CONFIG_WLAN_DEBUG_CRASH_INJECT=y
CONFIG_WLAN_DEBUG_LINK_VOTE=y
CONFIG_WLAN_DEBUG_VERSION=y
CONFIG_WLAN_DEBUGFS=y
CONFIG_WLAN_DFS_MASTER_ENABLE=y
CONFIG_WLAN_DFS_STATIC_MEM_ALLOC=y
CONFIG_WLAN_DIAG_VERSION=y
CONFIG_WLAN_DL_MODES=y
CONFIG_WLAN_DP_DISABLE_TCL_CMD_CRED_SRNG=y
CONFIG_WLAN_DP_DISABLE_TCL_STATUS_SRNG=y
CONFIG_WLAN_DP_PENDING_MEM_FLUSH=y
CONFIG_WLAN_DP_PER_RING_TYPE_CONFIG=y
CONFIG_WLAN_DP_SRNG_USAGE_WM_TRACKING=y
CONFIG_WLAN_DYNAMIC_CVM=y
CONFIG_WLAN_ENABLE_SOCIAL_CHANNELS_5G_ONLY=y
CONFIG_WLAN_ENH_CFR_ENABLE=y
CONFIG_WLAN_FEATURE_11AX=y
CONFIG_WLAN_FEATURE_11BE=y
CONFIG_WLAN_FEATURE_11BE_MLO=y
CONFIG_WLAN_HDD_MULTI_VDEV_SINGLE_NDEV=y
CONFIG_WLAN_FEATURE_ACTION_OUI=y
CONFIG_WLAN_FEATURE_BIG_DATA_STATS=y
CONFIG_WLAN_FEATURE_CAL_FAILURE_TRIGGER=y
CONFIG_WLAN_FEATURE_COAP=y
CONFIG_WLAN_FEATURE_COEX_DBAM=y
CONFIG_WLAN_FEATURE_DFS_OFFLOAD=y
CONFIG_WLAN_FEATURE_DISA=y
CONFIG_WLAN_FEATURE_DP_BUS_BANDWIDTH=y
CONFIG_WLAN_FEATURE_DP_EVENT_HISTORY=y
CONFIG_WLAN_FEATURE_DP_RX_THREADS=y
CONFIG_WLAN_FEATURE_DYNAMIC_MAC_ADDR_UPDATE=y
CONFIG_WLAN_FEATURE_ELNA=y
CONFIG_WLAN_FEATURE_FILS=y
CONFIG_WLAN_FEATURE_FIPS=y
CONFIG_WLAN_FEATURE_GET_USABLE_CHAN_LIST=y
CONFIG_WLAN_FEATURE_ICMP_OFFLOAD=y
CONFIG_WLAN_FEATURE_IGMP_OFFLOAD=y
CONFIG_WLAN_FEATURE_LINK_LAYER_STATS=y
CONFIG_WLAN_FEATURE_LPSS=y
CONFIG_WLAN_FEATURE_LRO_CTX_IN_CB=y
CONFIG_WLAN_FEATURE_MBSSID=y
CONFIG_WLAN_FEATURE_MCC_QUOTA=y
CONFIG_WLAN_FEATURE_MDNS_OFFLOAD=y
CONFIG_WLAN_FEATURE_MEDIUM_ASSESS=y
CONFIG_WLAN_FEATURE_MIB_STATS=y
CONFIG_WLAN_FEATURE_NEAR_FULL_IRQ=y
CONFIG_WLAN_FEATURE_P2P_DEBUG=y
CONFIG_WLAN_FEATURE_P2P_P2P_STA=y
CONFIG_WLAN_FEATURE_PACKET_FILTERING=y
CONFIG_WLAN_FEATURE_PEER_TXQ_FLUSH_CONF=y
CONFIG_WLAN_FEATURE_ROAM_INFO_STATS=y
CONFIG_WLAN_FEATURE_RX_BUFFER_POOL=y
CONFIG_WLAN_FEATURE_RX_SOFTIRQ_TIME_LIMIT=y
CONFIG_WLAN_FEATURE_SAE=y
CONFIG_WLAN_FEATURE_SAP_ACS_OPTIMIZE=y
CONFIG_WLAN_FEATURE_SARV1_TO_SARV2=y
CONFIG_WLAN_FEATURE_SR=y
CONFIG_WLAN_FEATURE_TWT=y
CONFIG_WLAN_FEATURE_WMI_DIAG_OVER_CE7=y
CONFIG_WLAN_FREQ_LIST=y
CONFIG_WLAN_FW_OFFLOAD=y
CONFIG_WLAN_GTX_BW_MASK=y
CONFIG_WLAN_HANG_EVENT=y
CONFIG_WLAN_LOG_DEBUG=y
CONFIG_WLAN_LOG_ENTER=y
CONFIG_WLAN_LOG_ERROR=y
CONFIG_WLAN_LOG_EXIT=y
CONFIG_WLAN_LOG_FATAL=y
CONFIG_WLAN_LOG_INFO=y
CONFIG_WLAN_LOG_WARN=y
CONFIG_WLAN_LOGGING_SOCK_SVC=y
CONFIG_WLAN_MWS_INFO_DEBUGFS=y
CONFIG_WLAN_NAPI=y
CONFIG_WLAN_NS_OFFLOAD=y
CONFIG_WLAN_NUD_TRACKING=y
CONFIG_WLAN_OFFLOAD_PACKETS=y
CONFIG_WLAN_OPEN_P2P_INTERFACE=y
CONFIG_WLAN_PDEV_VDEV_SEND_MULTI_PARAM=y
CONFIG_WLAN_PMO_ENABLE=y
CONFIG_WLAN_POLICY_MGR_ENABLE=y
CONFIG_WLAN_POWER_DEBUG=y
CONFIG_WLAN_REASSOC=y
CONFIG_WLAN_RX_MON_PARSE_CMN_USER_INFO=y
CONFIG_WLAN_SCAN_DISABLE=y
CONFIG_WLAN_SKIP_BAR_UPDATE=y
CONFIG_WLAN_SUPPORT_DATA_STALL=y
CONFIG_WLAN_SYNC_TSF=y
CONFIG_WLAN_SYNC_TSF_PLUS=y
CONFIG_WLAN_SYNC_TSF_TIMER=y
CONFIG_WLAN_SYSFS=y
CONFIG_WLAN_SYSFS_CHANNEL=y
CONFIG_WLAN_SYSFS_CONNECT_INFO=y
CONFIG_WLAN_SYSFS_DCM=y
CONFIG_WLAN_SYSFS_DFSNOL=y
CONFIG_WLAN_SYSFS_DP_STATS=y
CONFIG_WLAN_SYSFS_DP_TRACE=y
CONFIG_WLAN_SYSFS_EHT_RATE=y
CONFIG_WLAN_SYSFS_FW_MODE_CFG=y
CONFIG_WLAN_SYSFS_HE_BSS_COLOR=y
CONFIG_WLAN_SYSFS_LOG_BUFFER=y
CONFIG_WLAN_SYSFS_MEM_STATS=y
CONFIG_WLAN_SYSFS_MONITOR_MODE_CHANNEL=y
CONFIG_WLAN_SYSFS_RADAR=y
CONFIG_WLAN_SYSFS_RANGE_EXT=y
CONFIG_WLAN_SYSFS_RTS_CTS=y
CONFIG_WLAN_SYSFS_SCAN_CFG=y
CONFIG_WLAN_SYSFS_STA_INFO=y
CONFIG_WLAN_SYSFS_STATS=y
CONFIG_WLAN_SYSFS_TDLS_PEERS=y
CONFIG_WLAN_SYSFS_TEMPERATURE=y
CONFIG_WLAN_SYSFS_TX_STBC=y
CONFIG_WLAN_SYSFS_WLAN_DBG=y
CONFIG_WLAN_SYSFS_BITRATES=y
CONFIG_WLAN_SYSFS_RF_TEST_MODE=y
CONFIG_WLAN_THERMAL_CFG=y
CONFIG_WLAN_THERMAL_MULTI_CLIENT_SUPPORT=y
CONFIG_WLAN_TRACEPOINTS=y
CONFIG_WLAN_TSF_AUTO_REPORT=y
CONFIG_WLAN_TSF_UPLINK_DELAY=y
CONFIG_WLAN_TX_LATENCY_STATS=y
CONFIG_WLAN_FEATURE_UL_JITTER=y
CONFIG_WLAN_TWT_CONVERGED=y
CONFIG_WLAN_TWT_SAP_PDEV_COUNT=y
CONFIG_WLAN_TWT_SAP_STA_COUNT=y
CONFIG_WLAN_TX_FLOW_CONTROL_V2=y
CONFIG_WLAN_TXRX_FW_ST_RST=y
CONFIG_WLAN_TXRX_FW_STATS=y
CONFIG_WLAN_TXRX_STATS=y
CONFIG_WLAN_UMAC_MLO_MAX_DEV=3
CONFIG_WLAN_VENDOR_HANDOFF_CONTROL=y
CONFIG_WLAN_WBUFF=y
CONFIG_WLAN_WOW_ITO=y
CONFIG_WLAN_WOWL_ADD_PTRN=y
CONFIG_WLAN_WOWL_DEL_PTRN=y
CONFIG_WMI_BCN_OFFLOAD=y
CONFIG_WMI_CMD_STRINGS=y
CONFIG_WMI_CONCURRENCY_SUPPORT=y
CONFIG_WMI_DBR_SUPPORT=y
CONFIG_WMI_INTERFACE_EVENT_LOGGING=y
CONFIG_WMI_ROAM_SUPPORT=y
CONFIG_WMI_SEND_RECV_QMI=y
CONFIG_WMI_STA_SUPPORT=y
CONFIG_CFG80211_EXTERNAL_AUTH_MLO_SUPPORT=y
CONFIG_CFG80211_EXT_FEATURE_SECURE_NAN=y
CONFIG_WLAN_CTRL_NAME="wlan"
CONFIG_MULTI_IF_NAME="peach_v2"
CONFIG_ENABLE_CE4_COMP_DISABLE_HTT_HTC_MISC_LIST=y
CONFIG_WLAN_HOST_ARCH_ARM=y
CONFIG_ARCH_MSM=y
CONFIG_DP_TX_PACKET_INSPECT_FOR_ILP=y
CONFIG_NUM_SOC_PERF_CLUSTER=2
CONFIG_WLAN_OPEN_SOURCE=y
CONFIG_QCA_WIFI_FTM_NL80211=y
CONFIG_CFG80211_MLD_AP_STA_CONNECT_UPSTREAM_SUPPORT=y
CONFIG_DP_MULTIPASS_SUPPORT=y
CONFIG_WLAN_DP_VDEV_NO_SELF_PEER=y
CONFIG_WLAN_FEATURE_AFFINITY_MGR=y
CONFIG_WALT_GET_CPU_TAKEN_SUPPORT=y
CONFIG_DP_MLO_LINK_STATS_SUPPORT=y
CONFIG_WLAN_FEATURE_LL_LT_SAP=y
CONFIG_WLAN_FEATURE_VDEV_DCS=y
CONFIG_HIF_DEBUG=y
CONFIG_WLAN_OBJMGR_DEBUG=y
CONFIG_WLAN_OBJMGR_REF_ID_TRACE=y
CONFIG_WLAN_WARN_ON_ASSERT=y
CONFIG_WLAN_DP_FEATURE_DEFERRED_REO_QDESC_DESTROY=y
CONFIG_PANIC_ON_BUG=y
CONFIG_FEATURE_WLAN_CH_AVOID_EXT=y
CONFIG_CNSS2_SSR_DRIVER_DUMP=y
CONFIG_BUS_AUTO_SUSPEND=y
CONFIG_CNSS_OUT_OF_TREE=y
CONFIG_SMP=y
CONFIG_RPS=y
CONFIG_BCN_RATECODE_ENABLE=y
CONFIG_4_BYTES_TLV_TAG=y
CONFIG_WLAN_FEATURE_MARK_FIRST_WAKEUP_PACKET=y
CONFIG_WLAN_MULTI_CHIP_SUPPORT=y
CONFIG_FEATURE_SMEM_MAILBOX=y
CONFIG_QMI_COMPONENT_ENABLE=y
CONFIG_QMI_WFDS=y
CONFIG_WLAN_DP_FEATURE_STC=y
CONFIG_WLAN_FEATURE_EMLSR=y
CONFIG_FEATURE_DIRECT_LINK=y
CONFIG_DP_SWLM=y
CONFIG_FEATURE_EPM=y
CONFIG_WLAN_FEATURE_LATENCY_SENSITIVE_REO=y
CONFIG_IPA_OPT_WIFI_DP_CTRL=y

View File

@ -5566,4 +5566,29 @@ hdd_lpc_is_work_scheduled(struct hdd_context *hdd_ctx)
*/
bool hdd_allow_new_intf(struct hdd_context *hdd_ctx,
enum QDF_OPMODE mode);
#ifdef WLAN_FEATURE_11BE_MLO_ADV_FEATURE
/**
* wlan_hdd_is_link_switch_in_progress() - Function to check if there is any
* link switch in progress
* @link_info: Link info pointer in HDD adapter
*
* Return: true if link switch in progress, false otherwise
*/
bool wlan_hdd_is_link_switch_in_progress(struct wlan_hdd_link_info *link_info);
#else
static inline bool
wlan_hdd_is_link_switch_in_progress(struct wlan_hdd_link_info *link_info)
{
return false;
}
#endif
/**
* wlan_hdd_is_mlo_connection() - Check if connection is legacy or mlo
* @link_info: Link info pointer in HDD adapter
*
* Return: True if MLO connection, else False
*/
bool wlan_hdd_is_mlo_connection(struct wlan_hdd_link_info *link_info);
#endif /* end #if !defined(WLAN_HDD_MAIN_H) */

View File

@ -19568,7 +19568,13 @@ hdd_send_usable_channel(struct hdd_context *hdd_ctx,
return -EINVAL;
}
skb_len += NLMSG_HDRLEN;
/**
* As each nesting occupies NLMSG_HDRLEN size in the skb, add
* NLMSG_HDRLEN worth space for each nesting.
*/
skb_len += NLMSG_HDRLEN * (count + 1);
skb = wlan_cfg80211_vendor_cmd_alloc_reply_skb(hdd_ctx->wiphy, skb_len);
if (!skb) {
hdd_info("wlan_cfg80211_vendor_cmd_alloc_reply_skb failed");

View File

@ -3508,7 +3508,7 @@ void hdd_get_roam_scan_ch_cb(hdd_handle_t hdd_handle,
osif_request_put(request);
}
static uint32_t
static int
hdd_get_roam_chan_from_fw(struct hdd_adapter *adapter, uint32_t *chan_list,
uint8_t *num_channels)
{
@ -3578,7 +3578,7 @@ hdd_get_roam_scan_freq(struct hdd_adapter *adapter, mac_handle_t mac_handle,
if (is_roam_ch_from_fw_supported(adapter->hdd_ctx)) {
ret = hdd_get_roam_chan_from_fw(adapter, chan_list,
num_channels);
if (ret != QDF_STATUS_SUCCESS) {
if (ret) {
hdd_err("failed to get roam scan channel list from FW");
return -EFAULT;
}
@ -6681,12 +6681,16 @@ static bool check_disable_channels(struct hdd_context *hdd_ctx,
!hdd_ctx->original_channels->channel_info)
return false;
qdf_mutex_acquire(&hdd_ctx->cache_channel_lock);
num_channels = hdd_ctx->original_channels->num_channels;
for (i = 0; i < num_channels; i++) {
if (operating_freq ==
hdd_ctx->original_channels->channel_info[i].freq)
hdd_ctx->original_channels->channel_info[i].freq) {
qdf_mutex_release(&hdd_ctx->cache_channel_lock);
return true;
}
}
qdf_mutex_release(&hdd_ctx->cache_channel_lock);
return false;
}

View File

@ -3022,10 +3022,8 @@ int hdd_update_tgt_cfg(hdd_handle_t hdd_handle, struct wma_tgt_cfg *cfg)
status = ucfg_mlme_cfg_get_vht_tx_bfee_ant_supp(hdd_ctx->psoc,
&value);
if (QDF_IS_STATUS_ERROR(status)) {
status = false;
if (QDF_IS_STATUS_ERROR(status))
hdd_err("set tx_bfee_ant_supp failed");
}
status = ucfg_mlme_set_restricted_80p80_bw_supp(hdd_ctx->psoc,
cfg->restricted_80p80_bw_supp);
@ -3036,10 +3034,8 @@ int hdd_update_tgt_cfg(hdd_handle_t hdd_handle, struct wma_tgt_cfg *cfg)
!cfg->tx_bfee_8ss_enabled) {
status = ucfg_mlme_cfg_set_vht_tx_bfee_ant_supp(hdd_ctx->psoc,
MLME_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED_FW_DEF);
if (QDF_IS_STATUS_ERROR(status)) {
status = false;
if (QDF_IS_STATUS_ERROR(status))
hdd_err("set tx_bfee_ant_supp failed");
}
}
hdd_update_tid_to_link_supported(hdd_ctx, &cfg->services);
@ -6407,7 +6403,7 @@ hdd_set_derived_multicast_list(struct wlan_objmgr_psoc *psoc,
struct pmo_mc_addr_list_params *mc_list_request,
int *mc_count)
{
int i = 0, j = 0, list_count = *mc_count;
uint8_t i = 0, j = 0, list_count = *mc_count;
struct qdf_mac_addr *peer_mc_addr_list = NULL;
uint8_t driver_mc_cnt = 0;
uint32_t max_ndp_sessions = 0;
@ -6423,7 +6419,8 @@ hdd_set_derived_multicast_list(struct wlan_objmgr_psoc *psoc,
&peer_mc_addr_list[j]))
break;
}
if (i == list_count) {
if (i == list_count &&
(list_count + driver_mc_cnt < PMO_MAX_MC_ADDR_LIST)) {
qdf_mem_copy(
&(mc_list_request->mc_addr[list_count +
driver_mc_cnt].bytes),
@ -22109,6 +22106,57 @@ int hdd_we_set_ch_width(struct wlan_hdd_link_info *link_info, int ch_width)
return -EINVAL;
}
#ifdef WLAN_FEATURE_11BE_MLO_ADV_FEATURE
bool
wlan_hdd_is_link_switch_in_progress(struct wlan_hdd_link_info *link_info)
{
struct wlan_objmgr_vdev *vdev;
bool ret = false;
if (!link_info) {
hdd_err_rl("Invalid link info");
return ret;
}
if (!wlan_hdd_is_mlo_connection(link_info))
return ret;
vdev = hdd_objmgr_get_vdev_by_user(link_info, WLAN_OSIF_STATS_ID);
if (!vdev) {
hdd_err("invalid vdev");
return ret;
}
ret = mlo_mgr_is_link_switch_in_progress(vdev);
hdd_objmgr_put_vdev_by_user(vdev, WLAN_OSIF_STATS_ID);
return ret;
}
#endif
bool wlan_hdd_is_mlo_connection(struct wlan_hdd_link_info *link_info)
{
struct wlan_objmgr_vdev *vdev;
bool ret = false;
if (!link_info) {
hdd_err("Invalid link_info");
return ret;
}
vdev = hdd_objmgr_get_vdev_by_user(link_info, WLAN_OSIF_STATS_ID);
if (!vdev) {
hdd_err("invalid vdev");
return ret;
}
if (wlan_vdev_mlme_is_mlo_vdev(vdev))
ret = true;
hdd_objmgr_put_vdev_by_user(vdev, WLAN_OSIF_STATS_ID);
return ret;
}
/* Register the module init/exit functions */
module_init(hdd_module_init);
module_exit(hdd_module_exit);

View File

@ -1464,7 +1464,7 @@ static uint32_t set_first_connection_operating_channel(
oper_chan_freq = hdd_get_operating_chan_freq(hdd_ctx, dev_mode);
if (!oper_chan_freq) {
hdd_err(" First adapter operating channel is invalid");
return -EINVAL;
return set_value;
}
operating_channel = wlan_reg_freq_to_chan(hdd_ctx->pdev,
oper_chan_freq);
@ -1504,9 +1504,9 @@ static uint32_t set_second_connection_operating_channel(
policy_mgr_get_mcc_operating_channel(
hdd_ctx->psoc, vdev_id));
if (operating_channel == 0) {
if (!operating_channel) {
hdd_err("Second adapter operating channel is invalid");
return -EINVAL;
return set_value;
}
hdd_info("Second connection channel No.:%d and quota:%dms",

View File

@ -1680,6 +1680,11 @@ static void hdd_country_change_update_sta(struct hdd_context *hdd_ctx)
* continue to next statement
*/
case QDF_STA_MODE:
hdd_debug("Update vdev %d CAP IE", link_info->vdev_id);
sme_set_vdev_ies_per_band(hdd_ctx->mac_handle,
link_info->vdev_id,
QDF_STA_MODE);
sta_ctx =
WLAN_HDD_GET_STATION_CTX_PTR(link_info);
new_phy_mode = wlan_reg_get_max_phymode(pdev,
@ -1718,9 +1723,6 @@ static void hdd_country_change_update_sta(struct hdd_context *hdd_ctx)
pdev,
link_info->vdev_id);
}
sme_set_vdev_ies_per_band(hdd_ctx->mac_handle,
link_info->vdev_id,
QDF_STA_MODE);
break;
default:
break;

View File

@ -465,35 +465,6 @@ int wlan_hdd_qmi_put_suspend(void)
}
#endif /* end if of WLAN_FEATURE_WMI_SEND_RECV_QMI */
/*
* wlan_hdd_is_mlo_connection() - Check if connection is legacy or mlo
* @link_info: Link info pointer in HDD adapter
*
* Return: True if MLO connection, else False
*/
static bool wlan_hdd_is_mlo_connection(struct wlan_hdd_link_info *link_info)
{
struct wlan_objmgr_vdev *vdev;
bool ret = false;
if (!link_info) {
hdd_err("Invalid link_info");
return ret;
}
vdev = hdd_objmgr_get_vdev_by_user(link_info, WLAN_OSIF_STATS_ID);
if (!vdev) {
hdd_err("invalid vdev");
return ret;
}
if (wlan_vdev_mlme_is_mlo_vdev(vdev))
ret = true;
hdd_objmgr_put_vdev_by_user(vdev, WLAN_OSIF_STATS_ID);
return ret;
}
static struct wlan_hdd_link_info *
hdd_get_link_info_by_bssid(struct hdd_context *hdd_ctx, const uint8_t *bssid)
{
@ -570,40 +541,6 @@ wlan_hdd_get_bss_peer_mld_mac(struct wlan_hdd_link_info *link_info,
return status;
}
#ifdef WLAN_FEATURE_11BE_MLO_ADV_FEATURE
static bool
wlan_hdd_is_link_switch_in_progress(struct wlan_hdd_link_info *link_info)
{
struct wlan_objmgr_vdev *vdev;
bool ret = false;
if (!link_info) {
hdd_err_rl("Invalid link info");
return ret;
}
if (!wlan_hdd_is_mlo_connection(link_info))
return ret;
vdev = hdd_objmgr_get_vdev_by_user(link_info, WLAN_OSIF_STATS_ID);
if (!vdev) {
hdd_err("invalid vdev");
return ret;
}
ret = mlo_mgr_is_link_switch_in_progress(vdev);
hdd_objmgr_put_vdev_by_user(vdev, WLAN_OSIF_STATS_ID);
return ret;
}
#else
static inline bool
wlan_hdd_is_link_switch_in_progress(struct wlan_hdd_link_info *link_info)
{
return false;
}
#endif /* WLAN_FEATURE_11BE_MLO_ADV_FEATURE */
/**
* wlan_hdd_copy_sinfo_to_link_info() - Copy sinfo to link_info
* @link_info: Pointer to the hdd link info
@ -766,12 +703,6 @@ wlan_hdd_get_bss_peer_mld_mac(struct wlan_hdd_link_info *link_info,
return QDF_STATUS_E_FAILURE;
}
static inline bool
wlan_hdd_is_link_switch_in_progress(struct wlan_hdd_link_info *link_info)
{
return false;
}
static inline void
wlan_hdd_copy_sinfo_to_link_info(struct wlan_hdd_link_info *link_info,
struct station_info *sinfo)

View File

@ -194,6 +194,7 @@ static bool wlan_hdd_is_tdls_allowed(struct hdd_context *hdd_ctx,
struct wlan_objmgr_vdev *vdev)
{
bool tdls_support;
struct wlan_hdd_link_info *link_info;
if ((cfg_tdls_get_support_enable(hdd_ctx->psoc, &tdls_support) ==
QDF_STATUS_SUCCESS) && !tdls_support) {
@ -222,6 +223,13 @@ static bool wlan_hdd_is_tdls_allowed(struct hdd_context *hdd_ctx,
return false;
}
link_info = hdd_get_link_info_by_vdev(hdd_ctx, wlan_vdev_get_id(vdev));
if (wlan_hdd_is_link_switch_in_progress(link_info)) {
hdd_debug("vdev:%d Link switch in progress",
wlan_vdev_get_id(vdev));
return false;
}
return true;
}

View File

@ -32,9 +32,9 @@
#define QWLAN_VERSION_MAJOR 5
#define QWLAN_VERSION_MINOR 2
#define QWLAN_VERSION_PATCH 1
#define QWLAN_VERSION_EXTRA "J"
#define QWLAN_VERSION_BUILD 92
#define QWLAN_VERSION_EXTRA "C"
#define QWLAN_VERSION_BUILD 93
#define QWLAN_VERSIONSTR "5.2.1.92J"
#define QWLAN_VERSIONSTR "5.2.1.93C"
#endif /* QWLAN_VERSION_H */

View File

@ -804,41 +804,32 @@ struct bss_description {
/* offset of the ieFields from bssId. */
uint16_t length;
tSirMacAddr bssId;
unsigned long scansystimensec;
uint32_t timeStamp[2];
uint16_t beaconInterval;
uint16_t capabilityInfo;
tSirNwType nwType; /* Indicates 11a/b/g */
int8_t rssi;
int8_t rssi_raw;
int8_t sinr;
/* channel frequency what peer sent in beacon/probersp. */
uint32_t chan_freq;
/* Based on system time, not a relative time. */
uint64_t received_time;
uint32_t parentTSF;
uint32_t startTSF[2];
uint8_t mdiePresent;
/* MDIE for 11r, picked from the beacons */
uint8_t mdie[SIR_MDIE_SIZE];
#ifdef FEATURE_WLAN_ESE
uint16_t QBSSLoad_present;
uint16_t QBSSLoad_avail;
#endif
/* whether it is from a probe rsp */
uint8_t fProbeRsp;
tSirMacSeqCtl seq_ctrl;
uint32_t tsf_delta;
struct scan_mbssid_info mbssid_info;
#ifdef WLAN_FEATURE_FILS_SK
struct fils_ind_elements fils_info_element;
#endif
uint32_t assoc_disallowed;
uint32_t adaptive_11r_ap;
uint32_t mbo_oce_enabled_ap;
#if defined(WLAN_SAE_SINGLE_PMK) && defined(WLAN_FEATURE_ROAM_OFFLOAD)
uint32_t is_single_pmk;
#endif
uint32_t is_ml_ap;
/* Please keep the structure 4 bytes aligned above the ieFields */
QDF_FLEX_ARRAY(uint32_t, ieFields);
};

View File

@ -1,6 +1,6 @@
/*
* Copyright (c) 2012-2020 The Linux Foundation. All rights reserved.
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
* Copyright (c) 2022-2024 Qualcomm Innovation Center, Inc. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@ -122,6 +122,52 @@ tpDphHashNode dph_lookup_hash_entry(struct mac_context *mac, uint8_t staAddr[],
return ptr;
}
#ifdef WLAN_FEATURE_11BE_MLO
/* --------------------------------------------------------------------- */
/**
* dph_lookup_hash_entry_by_mld_addr
*
* FUNCTION:
* Look up an entry in hash table
*
* LOGIC:
*
* ASSUMPTIONS:
*
* NOTE:
*
* @param mld_addr MLD MAC address of the station
* @param pStaId pointer to the Station ID assigned to the station
* @return pointer to STA hash entry if lookup was a success \n
* NULL if lookup was a failure
*/
tpDphHashNode dph_lookup_hash_entry_by_mld_addr(
struct mac_context *mac,
uint8_t mld_addr[],
uint16_t *pAssocId,
struct dph_hash_table *hash_table)
{
tpDphHashNode ptr = NULL;
uint16_t i = 0;
if (!hash_table->pHashTable) {
pe_err("pHashTable is NULL");
return ptr;
}
for (i = 0; i < hash_table->size; i++) {
for (ptr = hash_table->pHashTable[i]; ptr; ptr = ptr->next) {
if (dph_compare_mac_addr(mld_addr, ptr->mld_addr)) {
*pAssocId = ptr->assocId;
return ptr;
}
}
}
return ptr;
}
#endif
/* --------------------------------------------------------------------- */
/**
* dph_get_hash_entry

View File

@ -1,6 +1,6 @@
/*
* Copyright (c) 2011-2015, 2017-2019 The Linux Foundation. All rights reserved.
*
* Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved.
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
* above copyright notice and this permission notice appear in all
@ -58,6 +58,24 @@ tpDphHashNode dph_lookup_hash_entry(struct mac_context *mac, uint8_t staAddr[],
uint16_t *pStaId,
struct dph_hash_table *hash_table);
#ifdef WLAN_FEATURE_11BE_MLO
tpDphHashNode dph_lookup_hash_entry_by_mld_addr(
struct mac_context *mac,
uint8_t staAddr[],
uint16_t *pStaId,
struct dph_hash_table *hash_table);
#else
static inline
tpDphHashNode dph_lookup_hash_entry_by_mld_addr(
struct mac_context *mac,
uint8_t staAddr[],
uint16_t *pStaId,
struct dph_hash_table *hash_table)
{
return NULL;
}
#endif
/* Get a pointer to the hash node */
tpDphHashNode dph_get_hash_entry(struct mac_context *mac, uint16_t staId,
struct dph_hash_table *hash_table);

View File

@ -564,6 +564,20 @@ static inline void lim_nan_register_callbacks(struct mac_context *mac_ctx)
}
#endif
#ifdef FEATURE_WLAN_TDLS
static void lim_register_tdls_callbacks(struct mac_context *mac_ctx)
{
struct tdls_callbacks tdls_cb = {0};
tdls_cb.delete_all_tdls_peers = lim_delete_all_tdls_peers;
wlan_tdls_register_lim_callbacks(mac_ctx->psoc, &tdls_cb);
}
#else
static inline void lim_register_tdls_callbacks(struct mac_context *mac_ctx)
{}
#endif
void lim_stop_pmfcomeback_timer(struct pe_session *session)
{
if (session->opmode != QDF_STA_MODE)
@ -860,6 +874,7 @@ QDF_STATUS pe_open(struct mac_context *mac, struct cds_config_info *cds_cfg)
lim_register_debug_callback();
lim_nan_register_callbacks(mac);
p2p_register_callbacks(mac);
lim_register_tdls_callbacks(mac);
lim_register_scan_mbssid_callback(mac);
lim_register_sap_bcn_callback(mac);
wlan_reg_register_ctry_change_callback(
@ -2252,8 +2267,6 @@ lim_roam_fill_bss_descr(struct mac_context *mac,
roam_synch_ind->is_link_beacon :
roam_synch_ind->is_beacon);
bss_desc_ptr->rssi = roam_synch_ind->rssi;
/* Copy Timestamp */
bss_desc_ptr->scansystimensec = qdf_get_monotonic_boottime_ns();
if (is_multi_link_roam(roam_synch_ind)) {
bss_desc_ptr->chan_freq =
@ -2280,7 +2293,6 @@ lim_roam_fill_bss_descr(struct mac_context *mac,
SIR_MAC_MGMT_FRAME,
parsed_frm_ptr);
bss_desc_ptr->sinr = 0;
bss_desc_ptr->beaconInterval = parsed_frm_ptr->beaconInterval;
bss_desc_ptr->timeStamp[0] = parsed_frm_ptr->timeStamp[0];
bss_desc_ptr->timeStamp[1] = parsed_frm_ptr->timeStamp[1];
@ -2291,12 +2303,6 @@ lim_roam_fill_bss_descr(struct mac_context *mac,
(uint8_t *)&bssid.bytes,
sizeof(tSirMacAddr));
qdf_mem_copy((uint8_t *)&bss_desc_ptr->seq_ctrl,
(uint8_t *)&mac_hdr->seqControl,
sizeof(tSirMacSeqCtl));
bss_desc_ptr->received_time =
(uint64_t)qdf_mc_timer_get_system_time();
if (parsed_frm_ptr->mdiePresent) {
bss_desc_ptr->mdiePresent = parsed_frm_ptr->mdiePresent;
qdf_mem_copy((uint8_t *)bss_desc_ptr->mdie,

View File

@ -492,6 +492,7 @@ lim_cleanup_rx_path(struct mac_context *mac, tpDphHashNode sta,
* lim_send_del_sta_cnf() - Send Del sta confirmation
* @mac: Pointer to Global MAC structure
* @sta_dsaddr: sta ds address
* @sta_mld_addr: sta mld address
* @staDsAssocId: sta ds association id
* @mlmStaContext: MLM station context
* @status_code: Status code
@ -503,6 +504,7 @@ lim_cleanup_rx_path(struct mac_context *mac, tpDphHashNode sta,
*/
void
lim_send_del_sta_cnf(struct mac_context *mac, struct qdf_mac_addr sta_dsaddr,
struct qdf_mac_addr sta_mld_addr,
uint16_t staDsAssocId,
struct lim_sta_context mlmStaContext,
tSirResultCodes status_code, struct pe_session *pe_session)
@ -633,6 +635,9 @@ lim_send_del_sta_cnf(struct mac_context *mac, struct qdf_mac_addr sta_dsaddr,
qdf_mem_copy((uint8_t *) &mlmDisassocCnf.peerMacAddr,
(uint8_t *) sta_dsaddr.bytes, QDF_MAC_ADDR_SIZE);
qdf_mem_copy((uint8_t *)&mlmDisassocCnf.peerMldAddr,
(uint8_t *)sta_mld_addr.bytes, QDF_MAC_ADDR_SIZE);
mlmDisassocCnf.resultCode = status_code;
mlmDisassocCnf.disassocTrigger = eLIM_DUPLICATE_ENTRY;
/* Update PE session Id */
@ -4508,6 +4513,20 @@ void lim_prepare_and_send_del_all_sta_cnf(struct mac_context *mac,
(uint32_t *)&mlm_deauth);
}
#ifdef WLAN_FEATURE_11BE_MLO
static void lim_copy_mld_mac_addr(uint8_t *sta_mld_addr,
tpDphHashNode sta)
{
qdf_mem_copy(sta_mld_addr, sta->mld_addr, QDF_MAC_ADDR_SIZE);
}
#else
static inline
void lim_copy_mld_mac_addr(uint8_t *sta_mld_addr,
tpDphHashNode sta)
{
}
#endif
/**
* lim_prepare_and_send_del_sta_cnf() - prepares and send del sta cnf
*
@ -4528,6 +4547,7 @@ lim_prepare_and_send_del_sta_cnf(struct mac_context *mac, tpDphHashNode sta,
{
uint16_t staDsAssocId = 0;
struct qdf_mac_addr sta_dsaddr;
struct qdf_mac_addr sta_mld_addr = QDF_MAC_ADDR_ZERO_INIT;
struct lim_sta_context mlmStaContext;
bool mlo_conn = false;
@ -4539,6 +4559,7 @@ lim_prepare_and_send_del_sta_cnf(struct mac_context *mac, tpDphHashNode sta,
staDsAssocId = sta->assocId;
qdf_mem_copy((uint8_t *) sta_dsaddr.bytes,
sta->staAddr, QDF_MAC_ADDR_SIZE);
lim_copy_mld_mac_addr(sta_mld_addr.bytes, sta);
mlmStaContext = sta->mlmStaContext;
@ -4561,7 +4582,8 @@ lim_prepare_and_send_del_sta_cnf(struct mac_context *mac, tpDphHashNode sta,
pe_session->limMlmState));
}
lim_send_del_sta_cnf(mac, sta_dsaddr, staDsAssocId, mlmStaContext,
lim_send_del_sta_cnf(mac, sta_dsaddr, sta_mld_addr, staDsAssocId,
mlmStaContext,
status_code, pe_session);
}
@ -4792,3 +4814,65 @@ void lim_extract_ies_from_deauth_disassoc(struct pe_session *session,
mlme_set_peer_disconnect_ies(session->vdev, &ie);
}
#ifdef WLAN_FEATURE_11BE_MLO
static void lim_get_sta_mld_log(tpDphHashNode sta_ds, tSirMacAddr mld_mac,
char *mld_log_str)
{
if (!qdf_is_macaddr_zero((struct qdf_mac_addr *)mld_mac))
qdf_scnprintf(mld_log_str, MAC_ADDR_DUMP_LEN,
" SA mld: " QDF_MAC_ADDR_FMT,
QDF_MAC_ADDR_REF(mld_mac));
if (!qdf_is_macaddr_zero((struct qdf_mac_addr *)
sta_ds->mld_addr))
qdf_scnprintf(mld_log_str, MAC_ADDR_DUMP_LEN,
" STA DS mld: " QDF_MAC_ADDR_FMT,
QDF_MAC_ADDR_REF(sta_ds->mld_addr));
}
#else
static inline
void lim_get_sta_mld_log(tpDphHashNode sta_ds, tSirMacAddr mld_mac,
char *mld_log_str)
{
}
#endif
tpDphHashNode lim_get_sta_ds(struct mac_context *mac_ctx,
tSirMacAddr sa, tSirMacAddr mld_mac,
uint16_t *assoc_id,
struct pe_session *session)
{
tpDphHashNode sta_ds = NULL;
char mld_log_str[52] = {0};
/* Check if STA present with SA address */
sta_ds = dph_lookup_hash_entry(
mac_ctx, sa,
assoc_id,
&session->dph.dphHashTable);
/* Check if STA present with MLD address,
* this can happen if SAP is non ML,
* so the MLD address will be used as address for connected STA
*/
if (!sta_ds && !qdf_is_macaddr_zero((struct qdf_mac_addr *)mld_mac))
sta_ds = dph_lookup_hash_entry(
mac_ctx, mld_mac,
assoc_id,
&session->dph.dphHashTable);
/* Check if STA present with same MLD address as current SA,
* this can happen if SAP is ML, so the MLD address will be
* used as SA address for connected STA
*/
if (!sta_ds && wlan_vdev_mlme_is_mlo_vdev(session->vdev))
sta_ds = dph_lookup_hash_entry_by_mld_addr(
mac_ctx, sa,
assoc_id,
&session->dph.dphHashTable);
if (sta_ds) {
lim_get_sta_mld_log(sta_ds, mld_mac, mld_log_str);
pe_debug("Vdev %d STA found for " QDF_MAC_ADDR_FMT "%s",
session->vdev_id, QDF_MAC_ADDR_REF(sa), mld_log_str);
}
return sta_ds;
}

View File

@ -151,6 +151,20 @@ QDF_STATUS lim_del_peer_info(struct mac_context *mac,
*/
QDF_STATUS lim_del_sta_all(struct mac_context *mac,
struct pe_session *pe_session);
/**
* lim_get_sta_ds() -get sta ds
* @mac_ctx: mac ctx
* @sa: source addr
* @mld_mac: mld mac
* @assoc_id: assoc id
* @session: pe session ctx
*
* @Return: sta ds in case of success else NULL
*/
tpDphHashNode lim_get_sta_ds(struct mac_context *mac_ctx,
tSirMacAddr sa, tSirMacAddr mld_mac,
uint16_t *assoc_id,
struct pe_session *session);
#ifdef WLAN_FEATURE_HOST_ROAM
void lim_restore_pre_reassoc_state(struct mac_context *,
@ -227,6 +241,7 @@ static inline bool lim_is_roam_synch_in_progress(struct wlan_objmgr_psoc *psoc,
void
lim_send_del_sta_cnf(struct mac_context *mac, struct qdf_mac_addr sta_dsaddr,
struct qdf_mac_addr sta_mld_addr,
uint16_t staDsAssocId,
struct lim_sta_context mlmStaContext,
tSirResultCodes status_code,

View File

@ -59,6 +59,7 @@
#include <wlan_mlo_mgr_sta.h>
#include "wlan_mlo_mgr_public_structs.h"
#include "wlan_p2p_api.h"
#include "wlan_tdls_api.h"
#define SA_QUERY_REQ_MIN_LEN \
(DOT11F_FF_CATEGORY_LEN + DOT11F_FF_ACTION_LEN + DOT11F_FF_TRANSACTIONID_LEN)
@ -1561,7 +1562,8 @@ static void lim_process_addba_req(struct mac_context *mac_ctx, uint8_t *rx_pkt_i
uint8_t extd_buff_size = 0;
if (mlo_is_any_link_disconnecting(session->vdev)) {
pe_err("Ignore ADDBA, vdev is in not in conncted state");
pe_err("Ignore ADDBA, vdev:%d is in not in conncted state",
wlan_vdev_get_id(session->vdev));
return;
}
@ -1578,7 +1580,6 @@ static void lim_process_addba_req(struct mac_context *mac_ctx, uint8_t *rx_pkt_i
/* Unpack ADDBA request frame */
status = dot11f_unpack_addba_req(mac_ctx, body_ptr, frame_len,
addba_req, false);
if (DOT11F_FAILED(status)) {
pe_err("Failed to unpack and parse (0x%08x, %d bytes)",
status, frame_len);
@ -1590,6 +1591,21 @@ static void lim_process_addba_req(struct mac_context *mac_ctx, uint8_t *rx_pkt_i
sta_ds = dph_lookup_hash_entry(mac_ctx, mac_hdr->sa, &aid,
&session->dph.dphHashTable);
/*
* TDLS peer addba request for some TID could be received before
* TDLS_CHANGE_STA is received from userspace in some scenario
* for example when the DUT sends TDLS setup response directly
* to an already discovered peer and peer sends the addba request
* immediately for TID 0.
*/
if (sta_ds && sta_ds->staType == STA_ENTRY_TDLS_PEER &&
!wlan_tdls_is_addba_request_allowed(session->vdev,
(struct qdf_mac_addr *)sta_ds->staAddr)) {
pe_err("vdev:%d Dropping TDLS peer addba req received before change_sta",
wlan_vdev_get_id(session->vdev));
goto error;
}
if (sta_ds &&
(lim_is_session_he_capable(session) ||
sta_ds->staType == STA_ENTRY_TDLS_PEER))

View File

@ -147,6 +147,7 @@ static void lim_convert_supported_channels(struct mac_context *mac_ctx,
*/
static QDF_STATUS lim_check_sta_in_pe_entries(struct mac_context *mac_ctx,
tSirMacAddr sa,
tSirMacAddr mld_mac,
uint16_t sessionid,
bool *dup_entry)
{
@ -160,9 +161,9 @@ static QDF_STATUS lim_check_sta_in_pe_entries(struct mac_context *mac_ctx,
session = &mac_ctx->lim.gpSession[i];
if (session->valid &&
(session->opmode == QDF_SAP_MODE)) {
sta_ds = dph_lookup_hash_entry(
mac_ctx, sa,
&assoc_id, &session->dph.dphHashTable);
sta_ds = lim_get_sta_ds(
mac_ctx, sa, mld_mac,
&assoc_id, session);
if (sta_ds
&& (!sta_ds->rmfEnabled ||
(sessionid != session->peSessionId))
@ -181,10 +182,9 @@ static QDF_STATUS lim_check_sta_in_pe_entries(struct mac_context *mac_ctx,
return QDF_STATUS_E_AGAIN;
}
sta_ds->sta_deletion_in_progress = true;
pe_err("Sending Disassoc and Deleting existing STA entry:"
QDF_MAC_ADDR_FMT,
QDF_MAC_ADDR_REF(
session->self_mac_addr));
pe_debug("Vdev %d Delete STA " QDF_MAC_ADDR_FMT,
session->vdev_id,
QDF_MAC_ADDR_REF(sa));
lim_send_disassoc_mgmt_frame(mac_ctx,
REASON_UNSPEC_FAILURE,
(uint8_t *)sa, session, false);
@ -257,19 +257,21 @@ static bool lim_chk_assoc_req_parse_error(struct mac_context *mac_ctx,
QDF_STATUS qdf_status;
enum wlan_status_code wlan_status;
struct qdf_mac_addr *mld_mac;
uint32_t offset = WLAN_ASSOC_REQ_IES_OFFSET;
if (sub_type == LIM_ASSOC)
if (sub_type == LIM_ASSOC) {
wlan_status = sir_convert_assoc_req_frame2_struct(mac_ctx, frm_body,
frame_len,
assoc_req);
else
} else {
wlan_status = sir_convert_reassoc_req_frame2_struct(mac_ctx,
frm_body, frame_len, assoc_req);
offset = WLAN_REASSOC_REQ_IES_OFFSET;
}
if (wlan_status == STATUS_SUCCESS) {
qdf_status = lim_strip_and_decode_eht_cap(
frm_body + WLAN_ASSOC_REQ_IES_OFFSET,
frame_len - WLAN_ASSOC_REQ_IES_OFFSET,
frm_body + offset,
frame_len - offset,
&assoc_req->eht_cap,
assoc_req->he_cap,
session->curr_op_freq);
@ -289,7 +291,6 @@ static bool lim_chk_assoc_req_parse_error(struct mac_context *mac_ctx,
qdf_mem_zero(&assoc_req->mlo_info,
sizeof(assoc_req->mlo_info));
}
return true;
}
@ -2554,7 +2555,12 @@ QDF_STATUS lim_proc_assoc_req_frm_cmn(struct mac_context *mac_ctx,
lim_get_phy_mode(mac_ctx, &phy_mode, session);
limGetQosMode(session, &qos_mode);
status = lim_check_sta_in_pe_entries(mac_ctx, sa,
if (!lim_chk_assoc_req_parse_error(mac_ctx, sa, session,
assoc_req, sub_type,
frm_body, frame_len))
goto error;
status = lim_check_sta_in_pe_entries(mac_ctx, sa, assoc_req->mld_mac,
session->peSessionId,
&dup_entry);
if (QDF_IS_STATUS_ERROR(status)) {
@ -2596,10 +2602,6 @@ QDF_STATUS lim_proc_assoc_req_frm_cmn(struct mac_context *mac_ctx,
}
}
if (!lim_chk_assoc_req_parse_error(mac_ctx, sa, session,
assoc_req, sub_type,
frm_body, frame_len))
goto error;
if (!lim_chk_capab(mac_ctx, sa, session, assoc_req,
sub_type, &local_cap))

View File

@ -120,7 +120,8 @@ static void lim_process_sae_msg_sta(struct mac_context *mac,
qdf_mem_zero(session->lim_join_req->rsnIE.rsnIEdata,
WLAN_MAX_IE_LEN + 2);
lim_update_connect_rsn_ie(session, rsn_ie_buf, pmksa);
lim_update_connect_rsn_ie(mac, session, rsn_ie_buf,
pmksa);
qdf_mem_free(pmksa);
qdf_mem_free(rsn_ie_buf);

View File

@ -1713,7 +1713,6 @@ static void lim_process_periodic_join_probe_req_timer(struct mac_context *mac_ct
struct pe_session *session;
tSirMacSSid ssid;
tSirMacAddr bssid;
tSirMacAddr bcast_mac = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF };
session = pe_find_session_by_session_id(mac_ctx,
mac_ctx->lim.lim_timers.gLimPeriodicJoinProbeReqTimer.sessionId);
@ -1733,16 +1732,6 @@ static void lim_process_periodic_join_probe_req_timer(struct mac_context *mac_ct
sir_copy_mac_addr(bssid,
session->pLimMlmJoinReq->bssDescription.bssId);
/*
* Some APs broadcasting hidden SSID doesn't respond to unicast
* probe requests, however those APs respond to broadcast probe
* requests. Therefore for hidden ssid connections, after 3
* unicast probe requests, try the pending probes with broadcast
* mac.
*/
if (session->ssidHidden && session->join_probe_cnt > 2)
sir_copy_mac_addr(bssid, bcast_mac);
lim_send_probe_req_mgmt_frame(mac_ctx, &ssid, bssid,
session->curr_op_freq,
session->self_mac_addr, session->dot11mode,

View File

@ -981,6 +981,7 @@ void lim_process_mlm_disassoc_cnf(struct mac_context *mac_ctx,
tSirResultCodes result_code;
tLimMlmDisassocCnf *disassoc_cnf;
struct pe_session *session_entry;
struct qdf_mac_addr mld_mac = QDF_MAC_ADDR_ZERO_INIT;
disassoc_cnf = (tLimMlmDisassocCnf *) msg;
@ -1033,13 +1034,16 @@ void lim_process_mlm_disassoc_cnf(struct mac_context *mac_ctx,
session_entry->peSessionId,
session_entry->limSmeState));
lim_send_sme_disassoc_ntf(mac_ctx,
disassoc_cnf->peerMacAddr, result_code,
disassoc_cnf->peerMacAddr,
(uint8_t *)mld_mac.bytes, result_code,
disassoc_cnf->disassocTrigger,
disassoc_cnf->aid, session_entry->smeSessionId,
session_entry);
}
} else if (LIM_IS_AP_ROLE(session_entry)) {
lim_send_sme_disassoc_ntf(mac_ctx, disassoc_cnf->peerMacAddr,
lim_send_sme_disassoc_ntf(
mac_ctx, disassoc_cnf->peerMacAddr,
disassoc_cnf->peerMldAddr,
result_code, disassoc_cnf->disassocTrigger,
disassoc_cnf->aid, session_entry->smeSessionId,
session_entry);
@ -1182,6 +1186,7 @@ void lim_process_mlm_purge_sta_ind(struct mac_context *mac, uint32_t *msg_buf)
tSirResultCodes resultCode;
tpLimMlmPurgeStaInd pMlmPurgeStaInd;
struct pe_session *pe_session;
struct qdf_mac_addr mld_addr = QDF_MAC_ADDR_ZERO_INIT;
if (!msg_buf) {
pe_err("Buffer is Pointing to NULL");
@ -1233,6 +1238,7 @@ void lim_process_mlm_purge_sta_ind(struct mac_context *mac, uint32_t *msg_buf)
} else
lim_send_sme_disassoc_ntf(mac,
pMlmPurgeStaInd->peerMacAddr,
(uint8_t *)mld_addr.bytes,
resultCode,
pMlmPurgeStaInd->purgeTrigger,
pMlmPurgeStaInd->aid,

View File

@ -2928,6 +2928,9 @@ static void lim_update_sae_config(struct mac_context *mac,
{
struct wlan_crypto_pmksa *pmksa;
struct qdf_mac_addr bssid;
struct bss_description *bss_desc;
struct action_oui_search_attr ap_attr = {0};
bool is_vendor_ap = false;
qdf_mem_copy(bssid.bytes, session->bssId,
QDF_MAC_ADDR_SIZE);
@ -2939,6 +2942,16 @@ static void lim_update_sae_config(struct mac_context *mac,
if (!pmksa)
return;
bss_desc = &session->lim_join_req->bssDescription;
ap_attr.ie_data = (uint8_t *)&bss_desc->ieFields[0];
ap_attr.ie_length =
wlan_get_ielen_from_bss_description(bss_desc);
is_vendor_ap = wlan_action_oui_search(mac->psoc,
&ap_attr,
ACTION_OUI_RESTRICT_MAX_MLO_LINKS);
if (is_vendor_ap)
return;
session->sae_pmk_cached = true;
pe_debug("PMKSA Found for BSSID=" QDF_MAC_ADDR_FMT,
QDF_MAC_ADDR_REF(bssid.bytes));
@ -4162,9 +4175,18 @@ lim_strip_rsnx_ie(struct mac_context *mac_ctx,
(uint16_t *)&req->assoc_ie.len, WLAN_ELEMID_RSNXE,
ONE_BYTE, NULL, 0, rsnxe, WLAN_MAX_IE_LEN);
if (!rsnxe[0])
if (!rsnxe[SIR_MAC_IE_TYPE_OFFSET] || !rsnxe[SIR_MAC_IE_LEN_OFFSET])
goto end;
/*
* Do not rebuild the RSNXE with length 1, if none of the caps are set
* in the first octet. It leads to the creation of an empty RSNXE.
*/
if (!(rsnxe[2] & 0xF0)) {
pe_debug("None of the caps are set in 1st octet, strip RSNXE");
goto end;
}
switch (ap_rsnxe_len) {
case 0:
/*
@ -4221,11 +4243,23 @@ end:
}
void
lim_update_connect_rsn_ie(struct pe_session *session,
lim_update_connect_rsn_ie(struct mac_context *mac,
struct pe_session *session,
uint8_t *rsn_ie_buf, struct wlan_crypto_pmksa *pmksa)
{
uint8_t *rsn_ie_end;
uint16_t rsn_ie_len = 0;
struct bss_description *bss_desc =
&session->lim_join_req->bssDescription;
struct action_oui_search_attr ap_attr = {0};
ap_attr.ie_data = (uint8_t *)&bss_desc->ieFields[0];
ap_attr.ie_length =
wlan_get_ielen_from_bss_description(bss_desc);
if (wlan_action_oui_search(mac->psoc,
&ap_attr,
ACTION_OUI_RESTRICT_MAX_MLO_LINKS))
pmksa = NULL;
rsn_ie_end = wlan_crypto_build_rsnie_with_pmksa(session->vdev,
rsn_ie_buf, pmksa);
@ -4299,7 +4333,7 @@ lim_fill_rsn_ie(struct mac_context *mac_ctx, struct pe_session *session,
if (pmksa_peer)
pe_debug("PMKSA found");
lim_update_connect_rsn_ie(session, rsn_ie, pmksa_peer);
lim_update_connect_rsn_ie(mac_ctx, session, rsn_ie, pmksa_peer);
qdf_mem_free(rsn_ie);
/*
@ -4468,6 +4502,7 @@ static void lim_copy_ml_partner_info_to_session(struct pe_session *session,
void lim_set_emlsr_caps(struct mac_context *mac_ctx, struct pe_session *session)
{
bool emlsr_cap, emlsr_allowed, emlsr_band_check, emlsr_enabled = false;
bool emlsr_aux_support = false;
/* Check if HW supports eMLSR mode */
emlsr_cap = policy_mgr_is_hw_emlsr_capable(mac_ctx->psoc);
@ -4481,8 +4516,11 @@ void lim_set_emlsr_caps(struct mac_context *mac_ctx, struct pe_session *session)
emlsr_band_check = lim_is_emlsr_band_supported(session);
emlsr_allowed = emlsr_cap && emlsr_enabled && emlsr_band_check;
emlsr_aux_support = emlsr_enabled && WLAN_EMLSR_ENABLE &&
wlan_mlme_is_aux_emlsr_support(mac_ctx->psoc,
WLAN_MLME_HW_MODE_MAX);
if (emlsr_allowed) {
if (emlsr_allowed || emlsr_aux_support) {
wlan_vdev_obj_lock(session->vdev);
wlan_vdev_mlme_cap_set(session->vdev, WLAN_VDEV_C_EMLSR_CAP);
wlan_vdev_obj_unlock(session->vdev);
@ -4491,6 +4529,9 @@ void lim_set_emlsr_caps(struct mac_context *mac_ctx, struct pe_session *session)
wlan_vdev_mlme_cap_clear(session->vdev, WLAN_VDEV_C_EMLSR_CAP);
wlan_vdev_obj_unlock(session->vdev);
}
pe_debug("eMLSR vdev cap: %d", emlsr_allowed);
pe_debug("eMLSR aux support: %d", emlsr_aux_support);
}
#else
static void lim_fill_ml_info(struct cm_vdev_join_req *req,
@ -6457,6 +6498,7 @@ static void __lim_process_sme_disassoc_req(struct mac_context *mac,
struct pe_session *pe_session = NULL;
uint8_t sessionId;
uint8_t smesessionId;
struct qdf_mac_addr mld_addr = QDF_MAC_ADDR_ZERO_INIT;
if (!msg_buf) {
pe_err("Buffer is Pointing to NULL");
@ -6627,6 +6669,7 @@ sendDisassoc:
if (pe_session)
lim_send_sme_disassoc_ntf(mac,
smeDisassocReq.peer_macaddr.bytes,
(uint8_t *)mld_addr.bytes,
retCode,
disassocTrigger,
1, smesessionId,
@ -6634,6 +6677,7 @@ sendDisassoc:
else
lim_send_sme_disassoc_ntf(mac,
smeDisassocReq.peer_macaddr.bytes,
(uint8_t *)mld_addr.bytes,
retCode, disassocTrigger, 1,
smesessionId, NULL);
@ -7331,6 +7375,7 @@ void __lim_process_sme_assoc_cnf_new(struct mac_context *mac_ctx, uint32_t msg_t
struct pe_session *session_entry = NULL;
uint8_t session_id;
tpSirAssocReq assoc_req;
struct qdf_mac_addr mld_addr = QDF_MAC_ADDR_ZERO_INIT;
if (!msg_buf) {
pe_err("msg_buf is NULL");
@ -7368,7 +7413,10 @@ void __lim_process_sme_assoc_cnf_new(struct mac_context *mac_ctx, uint32_t msg_t
* send a DISASSOC_IND message to WSM to make sure
* the state in WSM and LIM is the same
*/
lim_send_sme_disassoc_ntf(mac_ctx, assoc_cnf.peer_macaddr.bytes,
lim_send_sme_disassoc_ntf(
mac_ctx,
assoc_cnf.peer_macaddr.bytes,
(uint8_t *)mld_addr.bytes,
eSIR_SME_STA_NOT_ASSOCIATED,
eLIM_PEER_ENTITY_DISASSOC, assoc_cnf.aid,
session_entry->smeSessionId,
@ -8878,6 +8926,7 @@ static void lim_process_sme_disassoc_req(struct mac_context *mac_ctx,
struct disassoc_req disassoc_req;
struct pe_session *session;
uint8_t session_id;
struct qdf_mac_addr mld_addr = QDF_MAC_ADDR_ZERO_INIT;
qdf_mem_copy(&disassoc_req, msg->bodyptr, sizeof(struct disassoc_req));
@ -8889,6 +8938,7 @@ static void lim_process_sme_disassoc_req(struct mac_context *mac_ctx,
QDF_MAC_ADDR_REF(disassoc_req.bssid.bytes));
lim_send_sme_disassoc_ntf(mac_ctx,
disassoc_req.peer_macaddr.bytes,
mld_addr.bytes,
eSIR_SME_INVALID_PARAMETERS,
eLIM_HOST_DISASSOC, 1,
disassoc_req.sessionId, NULL);

View File

@ -77,6 +77,7 @@
#include "wlan_cfg80211_tdls.h"
#include "wlan_tdls_api.h"
#include "lim_mlo.h"
#include "wlan_mlo_mgr_link_switch.h"
/* define NO_PAD_TDLS_MIN_8023_SIZE to NOT padding: See CR#447630
There was IOT issue with cisco 1252 open mode, where it pads
@ -3722,38 +3723,54 @@ static void lim_tdls_update_hash_node_info(struct mac_context *mac,
return;
}
/*
* Add STA for TDLS setup procedure
*/
static QDF_STATUS lim_tdls_setup_add_sta(struct mac_context *mac,
struct tdls_add_sta_req *pAddStaReq,
struct pe_session *pe_session)
struct tdls_add_sta_req *pAddStaReq,
struct pe_session *pe_session)
{
tpDphHashNode sta = NULL;
struct wlan_objmgr_peer *peer;
QDF_STATUS status = QDF_STATUS_SUCCESS;
uint16_t aid = 0;
uint8_t peer_vdev_id;
sta = dph_lookup_hash_entry(mac, pAddStaReq->peermac.bytes, &aid,
&pe_session->dph.dphHashTable);
if (!sta && pAddStaReq->tdls_oper == TDLS_OPER_UPDATE) {
pe_err("TDLS update peer is given without peer creation");
pe_err("vdev:%d TDLS update peer is given without peer creation",
pe_session->vdev_id);
return QDF_STATUS_E_FAILURE;
}
if (sta && pAddStaReq->tdls_oper == TDLS_OPER_ADD) {
pe_err("TDLS entry for peer: "QDF_MAC_ADDR_FMT " already exist, cannot add new entry",
QDF_MAC_ADDR_REF(pAddStaReq->peermac.bytes));
return QDF_STATUS_E_FAILURE;
pe_err("vdev:%d TDLS entry for peer: " QDF_MAC_ADDR_FMT " already exist, cannot add new entry",
pe_session->vdev_id,
QDF_MAC_ADDR_REF(pAddStaReq->peermac.bytes));
return QDF_STATUS_E_FAILURE;
}
peer = wlan_objmgr_get_peer_by_mac(mac->psoc, pAddStaReq->peermac.bytes,
WLAN_TDLS_NB_ID);
if (peer) {
peer_vdev_id = wlan_vdev_get_id(wlan_peer_get_vdev(peer));
wlan_objmgr_peer_release_ref(peer, WLAN_TDLS_NB_ID);
if (pAddStaReq->tdls_oper == TDLS_OPER_ADD) {
pe_err("vdev:%d peer: " QDF_MAC_ADDR_FMT " already exist on vdev:%d, cannot add new entry",
pe_session->vdev_id,
QDF_MAC_ADDR_REF(pAddStaReq->peermac.bytes),
peer_vdev_id);
return QDF_STATUS_E_EXISTS;
}
}
if (sta && sta->staType != STA_ENTRY_TDLS_PEER) {
pe_err("Non TDLS entry for peer: "QDF_MAC_ADDR_FMT " already exist",
QDF_MAC_ADDR_REF(pAddStaReq->peermac.bytes));
return QDF_STATUS_E_FAILURE;
return QDF_STATUS_E_FAILURE;
}
if (!sta) {
aid = lim_assign_peer_idx(mac, pe_session);
if (!aid) {
pe_err("No more free AID for peer: "QDF_MAC_ADDR_FMT,
QDF_MAC_ADDR_REF(pAddStaReq->peermac.bytes));
@ -3765,13 +3782,11 @@ static QDF_STATUS lim_tdls_setup_add_sta(struct mac_context *mac,
pe_debug("Aid: %d, for peer: " QDF_MAC_ADDR_FMT,
aid, QDF_MAC_ADDR_REF(pAddStaReq->peermac.bytes));
sta =
dph_get_hash_entry(mac, aid,
&pe_session->dph.dphHashTable);
sta = dph_get_hash_entry(mac, aid,
&pe_session->dph.dphHashTable);
if (sta) {
(void)lim_del_sta(mac, sta, false /*asynchronous */,
pe_session);
/* asynchronous */
lim_del_sta(mac, sta, false, pe_session);
lim_delete_dph_hash_entry(mac, sta->staAddr, aid,
pe_session);
}
@ -3780,25 +3795,25 @@ static QDF_STATUS lim_tdls_setup_add_sta(struct mac_context *mac,
aid, &pe_session->dph.dphHashTable);
if (!sta) {
pe_err("add hash entry failed");
pe_err("vdev::%d add hash entry failed",
pe_session->vdev_id);
CLEAR_PEER_AID_BITMAP(pe_session->peerAIDBitmap, aid);
QDF_ASSERT(0);
return QDF_STATUS_E_FAILURE;
}
}
lim_tdls_update_hash_node_info(mac, sta, pAddStaReq, pe_session);
sta->staType = STA_ENTRY_TDLS_PEER;
status =
lim_add_sta(mac, sta,
(pAddStaReq->tdls_oper ==
TDLS_OPER_UPDATE) ? true : false, pe_session);
if (QDF_STATUS_SUCCESS != status) {
/* should not fail */
status = lim_add_sta(mac, sta,
pAddStaReq->tdls_oper == TDLS_OPER_UPDATE,
pe_session);
if (QDF_IS_STATUS_ERROR(status)) {
CLEAR_PEER_AID_BITMAP(pe_session->peerAIDBitmap, aid);
QDF_ASSERT(0);
}
return status;
}
@ -3848,10 +3863,10 @@ static QDF_STATUS lim_send_sme_tdls_add_sta_rsp(struct mac_context *mac,
add_sta_rsp->session_id = sessionId;
add_sta_rsp->status_code = status;
if (peerMac) {
if (peerMac)
qdf_mem_copy(add_sta_rsp->peermac.bytes,
(uint8_t *) peerMac, QDF_MAC_ADDR_SIZE);
}
if (updateSta)
add_sta_rsp->tdls_oper = TDLS_OPER_UPDATE;
else
@ -3884,26 +3899,41 @@ QDF_STATUS lim_process_tdls_add_sta_rsp(struct mac_context *mac, void *msg,
uint16_t aid = 0;
SET_LIM_PROCESS_DEFD_MESGS(mac, true);
pe_debug("staMac: "QDF_MAC_ADDR_FMT,
QDF_MAC_ADDR_REF(pAddStaParams->staMac));
if (pAddStaParams->status != QDF_STATUS_SUCCESS) {
QDF_ASSERT(0);
pe_err("Add sta failed ");
sta = dph_lookup_hash_entry(mac, pAddStaParams->staMac, &aid,
&pe_session->dph.dphHashTable);
if (!sta) {
pe_err("staMac: " QDF_MAC_ADDR_FMT,
QDF_MAC_ADDR_REF(pAddStaParams->staMac));
CLEAR_PEER_AID_BITMAP(pe_session->peerAIDBitmap,
pAddStaParams->assocId);
lim_release_peer_idx(mac, pAddStaParams->assocId, pe_session);
status = QDF_STATUS_E_FAILURE;
goto add_sta_error;
}
sta = dph_lookup_hash_entry(mac, pAddStaParams->staMac, &aid,
&pe_session->dph.dphHashTable);
if (!sta) {
pe_err("sta is NULL ");
if (pAddStaParams->status != QDF_STATUS_SUCCESS) {
pe_err("vdev:%d TDLS add sta failed", pe_session->vdev_id);
CLEAR_PEER_AID_BITMAP(pe_session->peerAIDBitmap, aid);
lim_release_peer_idx(mac, sta->assocId, pe_session);
if (sta &&
dph_delete_hash_entry(mac, pAddStaParams->staMac,
sta->assocId,
&pe_session->dph.dphHashTable))
pe_err("Unable to delete Hash entry");
status = QDF_STATUS_E_FAILURE;
QDF_ASSERT(0);
goto add_sta_error;
}
sta->mlmStaContext.mlmState = eLIM_MLM_LINK_ESTABLISHED_STATE;
sta->valid = 1;
pe_debug("vdev:%d sta_mac: " QDF_MAC_ADDR_FMT,
pe_session->vdev_id,
QDF_MAC_ADDR_REF(pAddStaParams->staMac));
add_sta_error:
status = lim_send_sme_tdls_add_sta_rsp(mac, pe_session->smeSessionId,
pAddStaParams->staMac,
@ -4132,7 +4162,8 @@ QDF_STATUS lim_process_sme_tdls_add_sta_req(struct mac_context *mac,
struct pe_session *pe_session;
uint8_t session_id;
pe_debug("TDLS Add STA Request Received");
pe_debug("vdev:%d TDLS Add STA Request Received",
add_sta_req->session_id);
pe_session =
pe_find_session_by_bssid(mac, add_sta_req->bssid.bytes,
&session_id);
@ -4281,15 +4312,16 @@ static void lim_check_aid_and_delete_peer(struct mac_context *p_mac,
if (!stads)
goto skip;
pe_debug("Deleting "QDF_MAC_ADDR_FMT,
QDF_MAC_ADDR_REF(stads->staAddr));
pe_err("Deleting "QDF_MAC_ADDR_FMT,
QDF_MAC_ADDR_REF(stads->staAddr));
if (!lim_is_roam_synch_in_progress(p_mac->psoc,
session_entry)) {
lim_send_deauth_mgmt_frame(p_mac,
session_entry))
lim_send_deauth_mgmt_frame(
p_mac,
REASON_DEAUTH_NETWORK_LEAVING,
stads->staAddr, session_entry, false);
}
/* Delete TDLS peer */
qdf_mem_copy(mac_addr.bytes, stads->staAddr,
QDF_MAC_ADDR_SIZE);
@ -4349,7 +4381,7 @@ void lim_update_tdls_2g_bw(struct pe_session *session)
* Return: QDF_STATUS_SUCCESS on success, error code otherwise
*/
QDF_STATUS lim_delete_tdls_peers(struct mac_context *mac_ctx,
struct pe_session *session_entry)
struct pe_session *session_entry)
{
if (!session_entry) {
@ -4360,38 +4392,55 @@ QDF_STATUS lim_delete_tdls_peers(struct mac_context *mac_ctx,
lim_check_aid_and_delete_peer(mac_ctx, session_entry);
tgt_tdls_delete_all_peers_indication(mac_ctx->psoc,
session_entry->smeSessionId);
session_entry->vdev_id);
if (lim_is_roam_synch_in_progress(mac_ctx->psoc, session_entry))
return QDF_STATUS_SUCCESS;
/* In case of CSA, Only peers in lim and TDLS component
/*
* For Link Switch disconnect, TDLS set state to disable will be sent
* to firmware after the disconnect complete indication. So don't
* send TDLS set state disable from here.
*/
if (mlo_mgr_is_link_switch_in_progress(session_entry->vdev))
return QDF_STATUS_SUCCESS;
/*
* In case of CSA, Only peers in lim and TDLS component
* needs to be removed and set state disable command
* should not be sent to fw as there is no way to enable
* TDLS in FW after vdev restart.
*/
if (session_entry->tdls_send_set_state_disable) {
if (session_entry->tdls_send_set_state_disable)
tgt_tdls_peers_deleted_notification(mac_ctx->psoc,
session_entry->
smeSessionId);
}
session_entry->smeSessionId);
/* reset the set_state_disable flag */
session_entry->tdls_send_set_state_disable = true;
return QDF_STATUS_SUCCESS;
}
/**
* lim_process_sme_del_all_tdls_peers(): process delete tdls peers
* @p_mac: pointer to mac context
* @msg_buf: message buffer
*
* This function processes request to delete tdls peers
*
* Return: Success: QDF_STATUS_SUCCESS Failure: Error value
*/
QDF_STATUS lim_process_sme_del_all_tdls_peers(struct mac_context *p_mac,
uint32_t *msg_buf)
QDF_STATUS lim_delete_all_tdls_peers(struct wlan_objmgr_vdev *vdev)
{
struct mac_context *mac = cds_get_context(QDF_MODULE_ID_PE);
struct pe_session *session;
if (!mac)
return QDF_STATUS_E_FAILURE;
session = pe_find_session_by_vdev_id(mac, wlan_vdev_get_id(vdev));
if (!session) {
pe_debug("No pe_session found for vdev_id:%d",
wlan_vdev_get_id(vdev));
return QDF_STATUS_E_FAILURE;
}
return lim_delete_tdls_peers(mac, session);
}
QDF_STATUS
lim_process_sme_del_all_tdls_peers(struct mac_context *p_mac, uint32_t *msg_buf)
{
struct tdls_del_all_tdls_peers *msg;
struct pe_session *session_entry;

View File

@ -1,6 +1,6 @@
/*
* Copyright (c) 2011-2020 The Linux Foundation. All rights reserved.
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
* Copyright (c) 2022,2024 Qualcomm Innovation Center, Inc. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@ -104,9 +104,6 @@ lim_collect_bss_description(struct mac_context *mac,
qdf_mem_copy((uint8_t *) &pBssDescr->bssId,
(uint8_t *) pHdr->bssId, sizeof(tSirMacAddr));
/* Copy Timestamp, Beacon Interval and Capability Info */
pBssDescr->scansystimensec = qdf_get_bootbased_boottime_ns();
pBssDescr->timeStamp[0] = pBPR->timeStamp[0];
pBssDescr->timeStamp[1] = pBPR->timeStamp[1];
pBssDescr->beaconInterval = pBPR->beaconInterval;
@ -142,21 +139,15 @@ lim_collect_bss_description(struct mac_context *mac,
pBssDescr->rssi = (int8_t) WMA_GET_RX_RSSI_NORMALIZED(pRxPacketInfo);
pBssDescr->rssi_raw = (int8_t) WMA_GET_RX_RSSI_RAW(pRxPacketInfo);
/* SINR no longer reported by HW */
pBssDescr->sinr = 0;
pe_debug(QDF_MAC_ADDR_FMT " rssi: normalized: %d, absolute: %d",
QDF_MAC_ADDR_REF(pHdr->bssId), pBssDescr->rssi,
pBssDescr->rssi_raw);
pBssDescr->received_time = (uint64_t)qdf_mc_timer_get_system_time();
pBssDescr->tsf_delta = WMA_GET_RX_TSF_DELTA(pRxPacketInfo);
pBssDescr->seq_ctrl = pHdr->seqControl;
pe_debug("Received %s from BSSID: " QDF_MAC_ADDR_FMT " tsf_delta = %u Seq Num: %x ssid:" QDF_SSID_FMT ", rssi: %d",
pe_debug("Received %s from BSSID: " QDF_MAC_ADDR_FMT " Seq Num: %x ssid:" QDF_SSID_FMT ", rssi: %d",
pBssDescr->fProbeRsp ? "Probe Rsp" : "Beacon",
QDF_MAC_ADDR_REF(pHdr->bssId),
pBssDescr->tsf_delta, ((pHdr->seqControl.seqNumHi <<
HIGH_SEQ_NUM_OFFSET) | pHdr->seqControl.seqNumLo),
((pHdr->seqControl.seqNumHi << HIGH_SEQ_NUM_OFFSET) |
pHdr->seqControl.seqNumLo),
QDF_SSID_REF(pBPR->ssId.length, pBPR->ssId.ssId),
pBssDescr->rssi_raw);
@ -179,14 +170,6 @@ lim_collect_bss_description(struct mac_context *mac,
pBssDescr->mdie[2] = pBPR->mdie[2];
}
#ifdef FEATURE_WLAN_ESE
pBssDescr->QBSSLoad_present = false;
pBssDescr->QBSSLoad_avail = 0;
if (pBPR->QBSSLoad.present) {
pBssDescr->QBSSLoad_present = true;
pBssDescr->QBSSLoad_avail = pBPR->QBSSLoad.avail;
}
#endif
/* Copy IE fields */
qdf_mem_copy((uint8_t *) &pBssDescr->ieFields,
pBody + SIR_MAC_B_PR_SSID_OFFSET, ieLen);

View File

@ -186,7 +186,7 @@ lim_send_probe_req_mgmt_frame(struct mac_context *mac_ctx,
uint8_t *frame;
void *packet;
QDF_STATUS qdf_status;
struct pe_session *pesession;
struct pe_session *pesession = NULL;
uint8_t sessionid;
const uint8_t *p2pie = NULL;
uint8_t txflag = 0;
@ -202,6 +202,7 @@ lim_send_probe_req_mgmt_frame(struct mac_context *mac_ctx,
uint8_t *eht_cap_ie = NULL, eht_cap_ie_len = 0;
bool is_band_2g;
uint16_t mlo_ie_len = 0;
tSirMacAddr bcast_mac = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF };
if (additional_ielen)
addn_ielen = *additional_ielen;
@ -240,6 +241,16 @@ lim_send_probe_req_mgmt_frame(struct mac_context *mac_ctx,
return QDF_STATUS_E_NOMEM;
}
/*
* Some IOT APs doesn't respond to unicast probe requests,
* however those APs respond to broadcast probe requests.
* Therefore for hidden ssid connections, after 3 unicast probe
* requests, try the pending probes with broadcast mac.
*/
if (pesession && !WLAN_REG_IS_6GHZ_CHAN_FREQ(pesession->curr_op_freq) &&
pesession->join_probe_cnt > 2)
sir_copy_mac_addr(bssid, bcast_mac);
/* The scheme here is to fill out a 'tDot11fProbeRequest' structure */
/* and then hand it off to 'dot11f_pack_probe_request' (for */
/* serialization). */
@ -339,9 +350,12 @@ lim_send_probe_req_mgmt_frame(struct mac_context *mac_ctx,
&pr->he_6ghz_band_cap);
if (IS_DOT11_MODE_EHT(dot11mode) && pesession &&
pesession->lim_join_req) {
pesession->lim_join_req &&
!qdf_is_macaddr_broadcast((struct qdf_mac_addr *)bssid)) {
lim_update_session_eht_capable(mac_ctx, pesession);
mlo_ie_len = lim_send_probe_req_frame_mlo(mac_ctx, pesession);
if (pesession->lim_join_req->bssDescription.is_ml_ap)
mlo_ie_len = lim_send_probe_req_frame_mlo(mac_ctx, pesession);
}
populate_dot11f_eht_caps(mac_ctx, pesession, &pr->eht_cap);
@ -2399,8 +2413,8 @@ lim_send_assoc_req_mgmt_frame(struct mac_context *mac_ctx,
uint8_t *eht_cap_ie = NULL, eht_cap_ie_len = 0;
bool bss_mfp_capable, frag_ie_present = false;
int8_t peer_rssi = 0;
bool is_band_2g;
uint16_t mlo_ie_len, fils_hlp_ie_len = 0;
bool is_band_2g, is_ml_ap;
uint16_t mlo_ie_len = 0, fils_hlp_ie_len = 0;
uint8_t *fils_hlp_ie = NULL;
struct cm_roam_values_copy mdie_cfg = {0};
@ -2641,12 +2655,14 @@ lim_send_assoc_req_mgmt_frame(struct mac_context *mac_ctx,
lim_strip_mlo_ie(mac_ctx, add_ie, &add_ie_len);
}
mlo_ie_len = lim_fill_assoc_req_mlo_ie(mac_ctx, pe_session, frm);
is_ml_ap = !!pe_session->lim_join_req->bssDescription.is_ml_ap;
if (is_ml_ap)
mlo_ie_len = lim_fill_assoc_req_mlo_ie(mac_ctx, pe_session, frm);
/**
* In case of ML connection, if ML IE length is 0 then return failure.
*/
if (mlo_is_mld_sta(pe_session->vdev) && !mlo_ie_len) {
if (is_ml_ap && mlo_is_mld_sta(pe_session->vdev) && !mlo_ie_len) {
pe_err("Failed to add ML IE for vdev:%d", pe_session->vdev_id);
goto end;
}

View File

@ -882,6 +882,7 @@ void lim_send_sme_disassoc_deauth_ntf(struct mac_context *mac,
void lim_send_sme_disassoc_ntf(struct mac_context *mac,
tSirMacAddr peerMacAddr,
tSirMacAddr peerMldAddr,
tSirResultCodes reasonCode,
uint16_t disassocTrigger,
uint16_t aid,
@ -915,9 +916,9 @@ void lim_send_sme_disassoc_ntf(struct mac_context *mac,
if (session->valid &&
(session->opmode == QDF_SAP_MODE)) {
/* Find the sta ds entry in another session */
sta_ds = dph_lookup_hash_entry(mac,
peerMacAddr, &assoc_id,
&session->dph.dphHashTable);
sta_ds = lim_get_sta_ds(mac, peerMacAddr,
peerMldAddr, &assoc_id,
session);
if (sta_ds)
break;
}

View File

@ -134,6 +134,7 @@ QDF_STATUS lim_prepare_disconnect_done_ind(struct mac_context *mac_ctx,
* lim_send_sme_disassoc_ntf() - Send disassoc notification to upper layer
* @mac: Global MAC context
* @peerMacAddr: The peer MAC addr to which disassociate was initiated
* @peerMldAddr: Peer MLD mac
* @reasonCode: The reason for Disassociation
* @disassocTrigger: The trigger for Disassociation
* @aid: The STAID. This parameter is present only on AP
@ -148,6 +149,7 @@ QDF_STATUS lim_prepare_disconnect_done_ind(struct mac_context *mac_ctx,
*/
void lim_send_sme_disassoc_ntf(struct mac_context *mac,
tSirMacAddr peerMacAddr,
tSirMacAddr peerMldAddr,
tSirResultCodes reasonCode,
uint16_t disassocTrigger,
uint16_t aid,

View File

@ -1,6 +1,6 @@
/*
* Copyright (c) 2012-2021 The Linux Foundation. All rights reserved.
* Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
* Copyright (c) 2021-2024 Qualcomm Innovation Center, Inc. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@ -322,6 +322,7 @@ typedef struct sLimMlmDisassocReq {
typedef struct sLimMlmDisassocCnf {
tSirMacAddr peerMacAddr;
tSirMacAddr peerMldAddr;
tSirResultCodes resultCode;
uint16_t disassocTrigger;
uint16_t aid;
@ -1397,8 +1398,25 @@ void lim_send_sme_disassoc_deauth_ntf(struct mac_context *mac_ctx,
QDF_STATUS status, uint32_t *ctx);
#ifdef FEATURE_WLAN_TDLS
QDF_STATUS lim_process_sme_del_all_tdls_peers(struct mac_context *p_mac,
uint32_t *msg_buf);
/**
* lim_process_sme_del_all_tdls_peers(): process delete tdls peers
* @mac: pointer to mac context
* @msg_buf: message buffer
*
* This function processes request to delete tdls peers
*
* Return: Success: QDF_STATUS_SUCCESS Failure: Error value
*/
QDF_STATUS
lim_process_sme_del_all_tdls_peers(struct mac_context *mac, uint32_t *msg_buf);
/**
* lim_delete_all_tdls_peers() - Delete all TDLS peers
* @vdev: Pointer to vdev object
*
* Return: QDF_STATUS
*/
QDF_STATUS lim_delete_all_tdls_peers(struct wlan_objmgr_vdev *vdev);
#else
static inline
QDF_STATUS lim_process_sme_del_all_tdls_peers(struct mac_context *p_mac,
@ -1406,6 +1424,12 @@ QDF_STATUS lim_process_sme_del_all_tdls_peers(struct mac_context *p_mac,
{
return QDF_STATUS_SUCCESS;
}
static inline
QDF_STATUS lim_delete_all_tdls_peers(struct wlan_objmgr_vdev *vdev)
{
return QDF_STATUS_SUCCESS;
}
#endif
/**

View File

@ -9034,18 +9034,26 @@ void lim_log_eht_op(struct mac_context *mac, tDot11fIEeht_op *eht_ops,
}
static void
lim_revise_eht_caps(struct mac_context *mac, tDot11fIEeht_cap *eht_cap)
lim_revise_eht_caps_per_band(struct mac_context *mac, enum cds_band_type band,
tDot11fIEeht_cap *eht_cap)
{
uint32_t country_max_allowed_bw;
if (band == CDS_BAND_2GHZ)
return;
country_max_allowed_bw = wlan_reg_get_country_max_allowed_bw(mac->pdev);
if (!country_max_allowed_bw) {
pe_debug("Failed to get country_max_allowed_bw");
return;
} else {
pe_debug("max_allowed_bw %d", country_max_allowed_bw);
}
if (country_max_allowed_bw < BW_320_MHZ)
eht_cap->support_320mhz_6ghz = 0;
else if (country_max_allowed_bw == BW_320_MHZ)
eht_cap->support_320mhz_6ghz = 1;
}
void lim_set_eht_caps(struct mac_context *mac,
@ -9067,7 +9075,7 @@ void lim_set_eht_caps(struct mac_context *mac,
is_band_2g = true;
populate_dot11f_eht_caps_by_band(mac, is_band_2g, &dot11_cap, NULL);
lim_revise_eht_caps(mac, &dot11_cap);
lim_revise_eht_caps_per_band(mac, band, &dot11_cap);
populate_dot11f_he_caps_by_band(mac, is_band_2g, &dot11_he_cap,
NULL);
lim_log_eht_cap(mac, &dot11_cap);

View File

@ -1048,6 +1048,7 @@ QDF_STATUS lim_send_ies_per_band(struct mac_context *mac_ctx,
/**
* lim_update_connect_rsn_ie() - Update the connection RSN IE
* @mac_ctx: MAC context
* @session: PE session
* @rsn_ie_buf: RSN IE buffer
* @pmksa: PMKSA entry for the connecting AP
@ -1055,7 +1056,8 @@ QDF_STATUS lim_send_ies_per_band(struct mac_context *mac_ctx,
* Return: None
*/
void
lim_update_connect_rsn_ie(struct pe_session *session, uint8_t *rsn_ie_buf,
lim_update_connect_rsn_ie(struct mac_context *mac_ctx,
struct pe_session *session, uint8_t *rsn_ie_buf,
struct wlan_crypto_pmksa *pmksa);
/**

View File

@ -1743,7 +1743,7 @@ rrm_process_beacon_report_xmit(struct mac_context *mac_ctx,
beacon_xmit_ind->duration;
beacon_report->phyType = bss_desc->nwType;
beacon_report->bcnProbeRsp = 1;
beacon_report->rsni = bss_desc->sinr;
beacon_report->rsni = 0;
rrm_calculate_and_fill_rcpi(&beacon_report->rcpi,
bss_desc->rssi);

View File

@ -11977,23 +11977,6 @@ uint32_t wlan_get_11h_power_constraint(struct mac_context *mac_ctx,
return local_power_constraint;
}
#ifdef FEATURE_WLAN_ESE
static void wlan_fill_qbss_load_param(tDot11fBeaconIEs *bcn_ies,
struct bss_description *bss_desc)
{
if (!bcn_ies->QBSSLoad.present)
return;
bss_desc->QBSSLoad_present = true;
bss_desc->QBSSLoad_avail = bcn_ies->QBSSLoad.avail;
}
#else
static void wlan_fill_qbss_load_param(tDot11fBeaconIEs *bcn_ies,
struct bss_description *bss_desc)
{
}
#endif
#ifdef WLAN_FEATURE_FILS_SK
static void wlan_update_bss_with_fils_data(struct mac_context *mac_ctx,
struct scan_cache_entry *scan_entry,
@ -12083,7 +12066,6 @@ wlan_fill_bss_desc_from_scan_entry(struct mac_context *mac_ctx,
qdf_mem_copy(bss_desc->bssId, scan_entry->bssid.bytes,
QDF_MAC_ADDR_SIZE);
bss_desc->scansystimensec = scan_entry->boottime_ns;
qdf_mem_copy(bss_desc->timeStamp,
scan_entry->tsf_info.data, 8);
@ -12103,8 +12085,6 @@ wlan_fill_bss_desc_from_scan_entry(struct mac_context *mac_ctx,
/* channel frequency what peer sent in beacon/probersp. */
bss_desc->chan_freq = scan_entry->channel.chan_freq;
bss_desc->received_time =
scan_entry->scan_entry_time;
bss_desc->startTSF[0] =
mac_ctx->rrm.rrmPEContext.startTSF[0];
bss_desc->startTSF[1] =
@ -12113,9 +12093,9 @@ wlan_fill_bss_desc_from_scan_entry(struct mac_context *mac_ctx,
scan_entry->rrm_parent_tsf;
bss_desc->fProbeRsp = (scan_entry->frm_subtype ==
MGMT_SUBTYPE_PROBE_RESP);
bss_desc->seq_ctrl = hdr->seqControl;
bss_desc->tsf_delta = scan_entry->tsf_delta;
bss_desc->adaptive_11r_ap = scan_entry->adaptive_11r_ap;
bss_desc->is_ml_ap =
util_scan_entry_bv_ml_ie(scan_entry) ? true : false;
bss_desc->mbo_oce_enabled_ap =
util_scan_entry_mbo_oce(scan_entry) ? true : false;
@ -12143,7 +12123,6 @@ wlan_fill_bss_desc_from_scan_entry(struct mac_context *mac_ctx,
(bcn_ies->MobilityDomain.resourceReqCap << 1));
}
wlan_fill_qbss_load_param(bcn_ies, bss_desc);
wlan_update_bss_with_fils_data(mac_ctx, scan_entry, bss_desc);
qdf_mem_free(bcn_ies);
@ -12916,6 +12895,7 @@ QDF_STATUS populate_dot11f_mlo_ie(struct mac_context *mac_ctx,
struct wlan_mlo_eml_cap eml_cap = {0};
uint16_t presence_bitmap = 0;
bool emlsr_cap, emlsr_enabled = false;
bool aux_emlsr_support = false;
if (!mac_ctx || !mlo_ie)
return QDF_STATUS_E_NULL_VALUE;
@ -12959,8 +12939,13 @@ QDF_STATUS populate_dot11f_mlo_ie(struct mac_context *mac_ctx,
/* Check if vendor command chooses eMLSR mode */
wlan_mlme_get_emlsr_mode_enabled(mac_ctx->psoc, &emlsr_enabled);
/* check if aux elmsr capable */
aux_emlsr_support = wlan_mlme_is_aux_emlsr_support(mac_ctx->psoc,
WLAN_MLME_HW_MODE_MAX);
/* Check if STA supports EMLSR and vendor command prefers EMLSR mode */
if (emlsr_cap && emlsr_enabled) {
if ((emlsr_cap && emlsr_enabled) ||
aux_emlsr_support) {
wlan_mlme_get_eml_params(psoc, &eml_cap);
mlo_ie->eml_capab_present = 1;
presence_bitmap |= WLAN_ML_BV_CTRL_PBM_EMLCAP_P;

View File

@ -7710,17 +7710,17 @@ QDF_STATUS sme_set_ht2040_mode(mac_handle_t mac_handle, uint8_t sessionId,
switch (channel_type) {
case eHT_CHAN_HT20:
if (!session->cb_mode)
if (session->cb_mode == PHY_SINGLE_CHANNEL_CENTERED)
return QDF_STATUS_SUCCESS;
cb_mode = PHY_SINGLE_CHANNEL_CENTERED;
break;
case eHT_CHAN_HT40MINUS:
if (session->cb_mode)
if (session->cb_mode != PHY_SINGLE_CHANNEL_CENTERED)
return QDF_STATUS_SUCCESS;
cb_mode = PHY_DOUBLE_CHANNEL_HIGH_PRIMARY;
break;
case eHT_CHAN_HT40PLUS:
if (session->cb_mode)
if (session->cb_mode != PHY_SINGLE_CHANNEL_CENTERED)
return QDF_STATUS_SUCCESS;
cb_mode = PHY_DOUBLE_CHANNEL_LOW_PRIMARY;
break;

View File

@ -7,16 +7,19 @@ _target_chipset_map = {
"kiwi-v2",
],
"pineapple": [
"peach-v2",
"peach",
"kiwi-v2",
"qca6750",
],
"sun": [
"peach-v2",
"peach",
"kiwi-v2",
],
"volcano": [
"qca6750",
"peach-v2",
],
"parrot": [
"qca6750",
@ -27,14 +30,19 @@ _target_chipset_map = {
_chipset_hw_map = {
"kiwi-v2": "BERYLLIUM",
"peach": "BERYLLIUM",
"peach-v2": "BERYLLIUM",
"qca6750": "MOSELLE",
"adrastea" : "ADRASTEA",
}
_chipset_header_map = {
"peach-v2": [
"api/hw/peach/v2",
"cmn/hal/wifi3.0/peach",
],
"peach": [
"api/hw/peach/v1",
"cmn/hal/wifi3.0/kiwi",
"cmn/hal/wifi3.0/peach",
],
"kiwi-v2": [
"api/hw/kiwi/v2",
@ -693,21 +701,25 @@ _conditional_srcs = {
},
"CONFIG_CNSS_KIWI_V2": {
True: [
"cmn/hal/wifi3.0/kiwi/hal_kiwi.c",
"cmn/hif/src/kiwidef.c",
],
},
"CONFIG_INCLUDE_HAL_KIWI": {
True: [
"cmn/hal/wifi3.0/kiwi/hal_kiwi.c",
],
},
"CONFIG_INCLUDE_HAL_PEACH": {
True: [
"cmn/hal/wifi3.0/peach/hal_peach.c",
],
},
"CONFIG_QCA6750_HEADERS_DEF": {
True: [
"cmn/hal/wifi3.0/qca6750/hal_6750.c",
"cmn/hif/src/qca6750def.c",
],
},
"CONFIG_CNSS_PEACH": {
True: [
"cmn/hal/wifi3.0/kiwi/hal_kiwi.c",
],
},
"CONFIG_CP_STATS": {
True: [
"cmn/target_if/cp_stats/src/target_if_cp_stats.c",