qcacld-3.0: Reconfig OBSS periodicity upon NDP create/delete

When STA is connected to an 11ax AP, driver issues a scan request(OBSS)
to firmware with certain periodicity(it's 120 seconds currently).
Firmware shall do a scan for every 120 seconds irrespective of the
device activity. This causes data glitches throughout the scan duration
when data is going on a concurrent interface.
It's observed that the OBSS scan interrupts NDP data traffic from NDP
applications and causes glitches in file sharing/music sharing use cases.

Configure the OBSS scan periodicity with a larger value(1200 seconds) to
mitigate the glitches when first NDP forms. Reconfigure the original
scan duration(120 seconds) once all NDPs tear down.

Change-Id: Ie0c8228ff3b26f8d9a091909c710928e7ae2a787
CRs-Fixed: 3323193
Цей коміт міститься в:
Rahul Gusain
2022-11-04 16:53:01 +05:30
зафіксовано Madan Koyyalamudi
джерело 6ba5b28b6c
коміт 5c9d7e5c13
12 змінених файлів з 242 додано та 4 видалено

Переглянути файл

@@ -2861,6 +2861,18 @@ QDF_STATUS sme_send_rso_connect_params(mac_handle_t mac_handle,
*/
QDF_STATUS sme_set_he_bss_color(mac_handle_t mac_handle, uint8_t session_id,
uint8_t bss_color);
/**
* sme_reconfig_obss_scan_param() - reconfig obss scan param
*
* @mac_handle: The handle returned by mac_open
* @session_id: session_id of the request
* @is_scan_reconfig: true if modify OBSS scan periodicity, otherwise false
*
* Return: QDF_STATUS
*/
QDF_STATUS sme_reconfig_obss_scan_param(mac_handle_t mac_handle,
uint8_t session_id,
bool is_scan_reconfig);
#else
static inline
QDF_STATUS sme_set_he_bss_color(mac_handle_t mac_handle, uint8_t session_id,
@@ -2868,6 +2880,14 @@ QDF_STATUS sme_set_he_bss_color(mac_handle_t mac_handle, uint8_t session_id,
{
return QDF_STATUS_SUCCESS;
}
static inline
QDF_STATUS sme_reconfig_obss_scan_param(mac_handle_t mac_handle,
uint8_t session_id,
bool is_scan_reconfig)
{
return QDF_STATUS_SUCCESS;
}
#endif
/**

Переглянути файл

@@ -12788,6 +12788,30 @@ QDF_STATUS sme_set_he_bss_color(mac_handle_t mac_handle, uint8_t session_id,
bss_color_msg->bss_color = bss_color;
return umac_send_mb_message_to_mac(bss_color_msg);
}
QDF_STATUS sme_reconfig_obss_scan_param(mac_handle_t mac_handle,
uint8_t session_id,
bool is_scan_reconfig)
{
struct sir_cfg_obss_scan *obss_scan_msg;
uint8_t len;
if (!mac_handle) {
sme_err("Invalid mac_handle pointer");
return QDF_STATUS_E_FAULT;
}
len = sizeof(*obss_scan_msg);
obss_scan_msg = qdf_mem_malloc(len);
if (!obss_scan_msg)
return QDF_STATUS_E_NOMEM;
obss_scan_msg->message_type = eWNI_SME_RECONFIG_OBSS_SCAN_PARAM;
obss_scan_msg->length = len;
obss_scan_msg->vdev_id = session_id;
obss_scan_msg->is_scan_reconfig = is_scan_reconfig;
return umac_send_mb_message_to_mac(obss_scan_msg);
}
#endif
#ifdef FEATURE_P2P_LISTEN_OFFLOAD