qcacld-3.0: Reject STA assoc on non-AP chan if DNSC enabled
It might happen that the STA-interface is in the process of associating and before association is complete, "Do_Not_Switch_Channel" is enabled on the AP-interface. Reject STA association if "Do_Not_Switch_Channel" is enabled. A check is performed in hdd_association_completion_handler() for "Do_Not_Switch_Channel" in AP/GO vdev and STA association is rejected accordingly. Change-Id: I3f319a9e14c28add68f9809eeb86e782e58e72de CRs-Fixed: 2036942
Este cometimento está contido em:

cometido por
snandini

ascendente
c8fb5ff450
cometimento
7983af6459
@@ -2394,6 +2394,7 @@ static QDF_STATUS hdd_association_completion_handler(hdd_adapter_t *pAdapter,
|
||||
bool hddDisconInProgress = false;
|
||||
unsigned long rc;
|
||||
tSirResultCodes timeout_reason = 0;
|
||||
bool ok;
|
||||
|
||||
if (!pHddCtx) {
|
||||
hdd_err("HDD context is NULL");
|
||||
@@ -2513,6 +2514,31 @@ static QDF_STATUS hdd_association_completion_handler(hdd_adapter_t *pAdapter,
|
||||
wlan_hdd_auto_shutdown_enable(pHddCtx, false);
|
||||
#endif
|
||||
|
||||
hdd_debug("check if STA chan ok for DNBS");
|
||||
if (policy_mgr_is_chan_ok_for_dnbs(pHddCtx->hdd_psoc,
|
||||
pHddStaCtx->conn_info.operationChannel,
|
||||
&ok)) {
|
||||
hdd_err("Unable to check DNBS eligibility for chan:%d",
|
||||
pHddStaCtx->conn_info.operationChannel);
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
if (!ok) {
|
||||
hdd_err("Chan:%d not suitable for DNBS",
|
||||
pHddStaCtx->conn_info.operationChannel);
|
||||
wlan_hdd_netif_queue_control(pAdapter,
|
||||
WLAN_NETIF_CARRIER_OFF,
|
||||
WLAN_CONTROL_PATH);
|
||||
if (!hddDisconInProgress) {
|
||||
hdd_err("Disconnecting...");
|
||||
sme_roam_disconnect(
|
||||
WLAN_HDD_GET_HAL_CTX(pAdapter),
|
||||
pAdapter->sessionId,
|
||||
eCSR_DISCONNECT_REASON_UNSPECIFIED);
|
||||
}
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
hdd_debug("check for SAP restart");
|
||||
policy_mgr_check_concurrent_intf_and_restart_sap(
|
||||
pHddCtx->hdd_psoc);
|
||||
|
Criar uma nova questão referindo esta
Bloquear um utilizador