Update LteEnbMac for sending report only when they are received, avioding empty parameters
--- a/src/lte/model/lte-enb-mac.cc Wed Dec 21 19:32:18 2011 +0100
+++ b/src/lte/model/lte-enb-mac.cc Thu Dec 22 17:55:42 2011 +0100
@@ -382,17 +382,20 @@
// --- DOWNLINK ---
// Send Dl-CQI info to the scheduler
- FfMacSchedSapProvider::SchedDlCqiInfoReqParameters dlcqiInfoReq;
- dlcqiInfoReq.m_sfnSf = ((0x3FF & frameNo) << 4) | (0xF & subframeNo);
-
- int cqiNum = m_dlCqiReceived.size ();
- if (cqiNum > MAX_CQI_LIST)
+ if (m_dlCqiReceived.size () > 0)
{
- cqiNum = MAX_CQI_LIST;
+ FfMacSchedSapProvider::SchedDlCqiInfoReqParameters dlcqiInfoReq;
+ dlcqiInfoReq.m_sfnSf = ((0x3FF & frameNo) << 4) | (0xF & subframeNo);
+
+ int cqiNum = m_dlCqiReceived.size ();
+ if (cqiNum > MAX_CQI_LIST)
+ {
+ cqiNum = MAX_CQI_LIST;
+ }
+ dlcqiInfoReq.m_cqiList.insert (dlcqiInfoReq.m_cqiList.begin (), m_dlCqiReceived.begin (), m_dlCqiReceived.end ());
+ m_dlCqiReceived.erase (m_dlCqiReceived.begin (), m_dlCqiReceived.end ());
+ m_schedSapProvider->SchedDlCqiInfoReq (dlcqiInfoReq);
}
- dlcqiInfoReq.m_cqiList.insert (dlcqiInfoReq.m_cqiList.begin (), m_dlCqiReceived.begin (), m_dlCqiReceived.end ());
- m_dlCqiReceived.erase (m_dlCqiReceived.begin (), m_dlCqiReceived.end ());
- m_schedSapProvider->SchedDlCqiInfoReq (dlcqiInfoReq);
// Get downlink transmission opportunities
@@ -403,29 +406,35 @@
// --- UPLINK ---
// Send UL-CQI info to the scheduler
- FfMacSchedSapProvider::SchedUlCqiInfoReqParameters ulcqiInfoReq;
- ulcqiInfoReq.m_sfnSf = ((0x3FF & frameNo) << 4) | (0xF & subframeNo);
- cqiNum = m_ulCqiReceived.size ();
- if (cqiNum >= 1)
+ if (m_ulCqiReceived.size () > 0)
{
- ulcqiInfoReq.m_ulCqi = m_ulCqiReceived.at (cqiNum - 1);
- if (cqiNum > 1)
+ FfMacSchedSapProvider::SchedUlCqiInfoReqParameters ulcqiInfoReq;
+ ulcqiInfoReq.m_sfnSf = ((0x3FF & frameNo) << 4) | (0xF & subframeNo);
+ int cqiNum = m_ulCqiReceived.size ();
+ if (cqiNum >= 1)
{
- // empty old ul cqi
- while (m_ulCqiReceived.size () > 0)
+ ulcqiInfoReq.m_ulCqi = m_ulCqiReceived.at (cqiNum - 1);
+ if (cqiNum > 1)
{
- m_ulCqiReceived.pop_back ();
+ // empty old ul cqi
+ while (m_ulCqiReceived.size () > 0)
+ {
+ m_ulCqiReceived.pop_back ();
+ }
}
+ m_schedSapProvider->SchedUlCqiInfoReq (ulcqiInfoReq);
}
- m_schedSapProvider->SchedUlCqiInfoReq (ulcqiInfoReq);
}
-
+
// Send BSR reports to the scheduler
- FfMacSchedSapProvider::SchedUlMacCtrlInfoReqParameters ulMacReq;
- ulMacReq.m_sfnSf = ((0x3FF & frameNo) << 4) | (0xF & subframeNo);
- ulMacReq.m_macCeList.insert (ulMacReq.m_macCeList.begin (), m_ulCeReceived.begin (), m_ulCeReceived.end ());
- m_ulCeReceived.erase (m_ulCeReceived.begin (), m_ulCeReceived.end ());
- m_schedSapProvider->SchedUlMacCtrlInfoReq (ulMacReq);
+ if (m_ulCeReceived.size () > 0)
+ {
+ FfMacSchedSapProvider::SchedUlMacCtrlInfoReqParameters ulMacReq;
+ ulMacReq.m_sfnSf = ((0x3FF & frameNo) << 4) | (0xF & subframeNo);
+ ulMacReq.m_macCeList.insert (ulMacReq.m_macCeList.begin (), m_ulCeReceived.begin (), m_ulCeReceived.end ());
+ m_ulCeReceived.erase (m_ulCeReceived.begin (), m_ulCeReceived.end ());
+ m_schedSapProvider->SchedUlMacCtrlInfoReq (ulMacReq);
+ }
// Get uplink transmission opportunities