Przeglądaj źródła

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 lat temu
rodzic
commit
793328d6c7
1 zmienionych plików z 10 dodań i 1 usunięć
  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 i;
 	uint8_t txFlag = 0;
 	uint8_t txFlag = 0;
 	uint8_t smeSessionId = 0;
 	uint8_t smeSessionId = 0;
+	bool is_last_report = false;
 
 
 	tDot11fRadioMeasurementReport *frm =
 	tDot11fRadioMeasurementReport *frm =
 		qdf_mem_malloc(sizeof(tDot11fRadioMeasurementReport));
 		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) */
 		frm->MeasurementReport[i].late = 0;     /* IEEE 802.11k section 7.3.22. (always zero in rrm) */
 		switch (pRRMReport[i].type) {
 		switch (pRRMReport[i].type) {
 		case SIR_MAC_RRM_BEACON_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,
 			populate_dot11f_beacon_report(pMac,
 						     &frm->MeasurementReport[i],
 						     &frm->MeasurementReport[i],
 						     &pRRMReport[i].report.
 						     &pRRMReport[i].report.
 						     beaconReport,
 						     beaconReport,
-						     is_last_frame);
+						     is_last_report);
 			frm->MeasurementReport[i].incapable =
 			frm->MeasurementReport[i].incapable =
 				pRRMReport[i].incapable;
 				pRRMReport[i].incapable;
 			frm->MeasurementReport[i].refused =
 			frm->MeasurementReport[i].refused =