瀏覽代碼

qcacld-3.0: Set last beacon report indication for last report in last frame

Currently all the reports in the last beacon report frame has the
last beacon report indication field set to 1.

Set the last beacon report indication field to 1 only for the last
report in the last frame.

Change-Id: I7c824fc2ba0d26eae906c53b7ebd7c6111fc2379
CRs-Fixed: 2343956
Vignesh Viswanathan 6 年之前
父節點
當前提交
793328d6c7
共有 1 個文件被更改,包括 10 次插入1 次删除
  1. 10 1
      core/mac/src/pe/lim/lim_send_management_frames.c

+ 10 - 1
core/mac/src/pe/lim/lim_send_management_frames.c

@@ -4353,6 +4353,7 @@ lim_send_radio_measure_report_action_frame(tpAniSirGlobal pMac,
 	uint8_t i;
 	uint8_t txFlag = 0;
 	uint8_t smeSessionId = 0;
+	bool is_last_report = false;
 
 	tDot11fRadioMeasurementReport *frm =
 		qdf_mem_malloc(sizeof(tDot11fRadioMeasurementReport));
@@ -4385,11 +4386,19 @@ lim_send_radio_measure_report_action_frame(tpAniSirGlobal pMac,
 		frm->MeasurementReport[i].late = 0;     /* IEEE 802.11k section 7.3.22. (always zero in rrm) */
 		switch (pRRMReport[i].type) {
 		case SIR_MAC_RRM_BEACON_TYPE:
+			/*
+			 * Last beacon report indication needs to be set to 1
+			 * only for the last report in the last frame
+			 */
+			if (is_last_frame &&
+			    (i == (frm->num_MeasurementReport - 1)))
+				is_last_report = true;
+
 			populate_dot11f_beacon_report(pMac,
 						     &frm->MeasurementReport[i],
 						     &pRRMReport[i].report.
 						     beaconReport,
-						     is_last_frame);
+						     is_last_report);
 			frm->MeasurementReport[i].incapable =
 				pRRMReport[i].incapable;
 			frm->MeasurementReport[i].refused =