소스 검색

qcacld-3.0: Fix roaming fresh assoc issue in mcc

qcacld-2.0 to qcacld-3.0 propagation

Roaming send fresh assoc instead of reassoc because the preauth frame
has high possibility sending on wrong channel if in MCC. Need to
trigger scan to schedule to target AP channel if DUT in MCC state.

Change-Id: Ifee8bc00c10ea995093e3f4621b94e0d81a7c32e
CRs-Fixed: 962162
Hong Shi 8 년 전
부모
커밋
5e94208f72
1개의 변경된 파일8개의 추가작업 그리고 3개의 파일을 삭제
  1. 8 3
      core/mac/src/pe/lim/lim_ft_preauth.c

+ 8 - 3
core/mac/src/pe/lim/lim_ft_preauth.c

@@ -31,6 +31,7 @@
 #include <lim_prop_exts_utils.h>
 #include <lim_assoc_utils.h>
 #include <lim_session.h>
+#include <lim_session_utils.h>
 #include <lim_admit_control.h>
 #include "wma.h"
 
@@ -191,9 +192,13 @@ int lim_process_ft_pre_auth_req(tpAniSirGlobal mac_ctx, tpSirMsgQ msg)
 			      session, 0, 0);
 #endif
 
-	/* Dont need to suspend if APs are in same channel */
-	if (session->currentOperChannel !=
-	    session->ftPEContext.pFTPreAuthReq->preAuthchannelNum) {
+	/*
+	 * Dont need to suspend if APs are in same channel and DUT
+	 * is not in MCC state
+	 */
+	if ((session->currentOperChannel !=
+	    session->ftPEContext.pFTPreAuthReq->preAuthchannelNum)
+	    || lim_is_in_mcc(mac_ctx)) {
 		/* Need to suspend link only if the channels are different */
 		lim_log(mac_ctx, LOG2,
 			FL("Performing pre-auth on diff channel(session %p)"),