|
@@ -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 =
|