qcacld-3.0: Handle SAP + TDLS concurrencies

Disable TDLS offchannel on SAP start if concurrent STA with
TDLS exist.
Enable TDLS off channel after SAP start if SAP and
STA are not in MCC.

If TDLS is enabled, and off channel is required, update
TDLS off channel to be the SAP channel.

Change-Id: Ica508889acbae5e2dc4269d4d7518cf01d62714f
CRs-Fixed: 3444747
This commit is contained in:
Pragaspathi Thilagaraj
2023-02-13 03:05:28 +05:30
committed by Madan Koyyalamudi
parent f5de86a061
commit c2976a7b2d
10 changed files with 254 additions and 104 deletions

View File

@@ -1,6 +1,6 @@
/*
* Copyright (c) 2020, The Linux Foundation. All rights reserved.
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
* Copyright (c) 2022-2023 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
@@ -110,6 +110,13 @@ void wlan_tdls_update_rx_pkt_cnt(struct wlan_objmgr_vdev *vdev,
struct qdf_mac_addr *mac_addr,
struct qdf_mac_addr *dest_mac_addr);
/**
* wlan_tdls_notify_start_bss() - Notify TDLS module on start bss
* @psoc: Pointer to PSOC object
*
* Return: None
*/
void wlan_tdls_notify_start_bss(struct wlan_objmgr_psoc *psoc);
#else
#ifdef FEATURE_SET
@@ -153,5 +160,8 @@ void wlan_tdls_update_rx_pkt_cnt(struct wlan_objmgr_vdev *vdev,
{
}
static inline
void wlan_tdls_notify_start_bss(struct wlan_objmgr_psoc *psoc)
{}
#endif
#endif

View File

@@ -46,8 +46,20 @@
#define WLAN_MAC_MAX_SUPP_RATES 32
#define WLAN_CHANNEL_14 14
/* Enable TDLS off-channel switch */
#define ENABLE_CHANSWITCH 1
/*
* Passive(peer requested) responder mode off-channel switch.
* If peer initiates off channel request, that will be honored in
* this mode
*/
#define DISABLE_CHANSWITCH 2
/*
* Disable TDLS off-channel operation completely.
* Peer initiated requests will also be discarded.
*/
#define DISABLE_ACTIVE_CHANSWITCH 3
#define WLAN_TDLS_PREFERRED_OFF_CHANNEL_NUM_MIN 1
@@ -228,6 +240,7 @@ enum tdls_feature_mode {
* @TDLS_CMD_SET_OFFCHANMODE: tdls offchannel mode
* @TDLS_CMD_SET_SECOFFCHANOFFSET: tdls secondary offchannel offset
* @TDLS_DELETE_ALL_PEERS_INDICATION: tdls delete all peers indication
* @TDLS_CMD_START_BSS: SAP start indication to tdls module
*/
enum tdls_command_type {
TDLS_CMD_TX_ACTION = 1,
@@ -253,7 +266,8 @@ enum tdls_command_type {
TDLS_CMD_SET_OFFCHANNEL,
TDLS_CMD_SET_OFFCHANMODE,
TDLS_CMD_SET_SECOFFCHANOFFSET,
TDLS_DELETE_ALL_PEERS_INDICATION
TDLS_DELETE_ALL_PEERS_INDICATION,
TDLS_CMD_START_BSS
};
/**