Quellcode durchsuchen

qcacld-3.0: Prioritize connection req frames in pe queue

qcacld-2.0 to qcacld-3.0 propagation

If there are many beacon/probe received and posted to pe queue
the connection req frames may get delayed and thus effect the
connection. This may also lead to connection failures.

To avoid this prioritize the connection req frames in pe queue.

Change-Id: I5a6fd5c21242205dd080b2ba0cff5f823f51d109
CRs-Fixed: 2013381
Abhishek Singh vor 8 Jahren
Ursprung
Commit
9e42cff3c5
1 geänderte Dateien mit 13 neuen und 2 gelöschten Zeilen
  1. 13 2
      core/mac/src/sys/legacy/src/system/src/sys_entry_func.c

+ 13 - 2
core/mac/src/sys/legacy/src/system/src/sys_entry_func.c

@@ -180,8 +180,19 @@ sys_bbt_process_message_core(tpAniSirGlobal mac_ctx, struct scheduler_msg *msg,
 				mac_ctx->sys.gSysFrameCount[type][subtype]);
 		}
 
-		/* Post the message to PE Queue */
-		ret = (tSirRetStatus) lim_post_msg_api(mac_ctx, msg);
+		/*
+		 * Post the message to PE Queue. Prioritize the
+		 * Auth and assoc frames.
+		 */
+		if ((subtype == SIR_MAC_MGMT_AUTH) ||
+		   (subtype == SIR_MAC_MGMT_ASSOC_RSP) ||
+		   (subtype == SIR_MAC_MGMT_REASSOC_RSP) ||
+		   (subtype == SIR_MAC_MGMT_ASSOC_REQ) ||
+		   (subtype == SIR_MAC_MGMT_REASSOC_REQ))
+			ret = (tSirRetStatus)
+				   lim_post_msg_high_priority(mac_ctx, msg);
+		else
+			ret = (tSirRetStatus) lim_post_msg_api(mac_ctx, msg);
 		if (ret != eSIR_SUCCESS) {
 			sys_log(mac_ctx, LOGE,
 				FL("posting to LIM2 failed, ret %d\n"), ret);