ソースを参照

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 =