diff --git a/core/mac/src/pe/lim/lim_send_management_frames.c b/core/mac/src/pe/lim/lim_send_management_frames.c index 230e942311..29b644ca8b 100644 --- a/core/mac/src/pe/lim/lim_send_management_frames.c +++ b/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 =