Bug-fix in RrFfMacScheduler::DoSchedDlTriggerReq when scheduling multiple LCs per UE

This commit is contained in:
Marco Miozzo
2011-11-14 10:40:05 +01:00
parent a7bf1a25cb
commit 3264547824
2 changed files with 12 additions and 3 deletions

View File

@@ -321,7 +321,7 @@ RrFfMacScheduler::DoSchedDlRlcBufferReq (const struct FfMacSchedSapProvider::Sch
{
NS_LOG_FUNCTION (this << params.m_rnti << (uint32_t) params.m_logicalChannelIdentity);
// API generated by RLC for updating RLC parameters on a LC (tx and retx queues)
std::vector<FfMacSchedSapProvider::SchedDlRlcBufferReqParameters>::iterator it;
std::list<FfMacSchedSapProvider::SchedDlRlcBufferReqParameters>::iterator it;
bool newLc = true;
for (it = m_rlcBufferReq.begin (); it != m_rlcBufferReq.end (); it++)
{
@@ -375,6 +375,12 @@ RrFfMacScheduler::GetRbgSize (int dlbandwidth)
return (-1);
}
bool
RrFfMacScheduler::SortRlcBufferReq (FfMacSchedSapProvider::SchedDlRlcBufferReqParameters i,FfMacSchedSapProvider::SchedDlRlcBufferReqParameters j)
{
return (i.m_rnti<j.m_rnti);
}
void
RrFfMacScheduler::DoSchedDlTriggerReq (const struct FfMacSchedSapProvider::SchedDlTriggerReqParameters& params)
@@ -385,7 +391,8 @@ RrFfMacScheduler::DoSchedDlTriggerReq (const struct FfMacSchedSapProvider::Sched
RefreshDlCqiMaps ();
// Get the actual active flows (queue!=0)
std::vector<FfMacSchedSapProvider::SchedDlRlcBufferReqParameters>::iterator it;
std::list<FfMacSchedSapProvider::SchedDlRlcBufferReqParameters>::iterator it;
m_rlcBufferReq.sort (SortRlcBufferReq);
int nflows = 0;
std::map <uint16_t,uint8_t> lcActivesPerRnti;
std::map <uint16_t,uint8_t>::iterator itLcRnti;

View File

@@ -119,13 +119,15 @@ private:
int GetRbgSize (int dlbandwidth);
static bool SortRlcBufferReq (FfMacSchedSapProvider::SchedDlRlcBufferReqParameters i,FfMacSchedSapProvider::SchedDlRlcBufferReqParameters j);
void RefreshDlCqiMaps(void);
void RefreshUlCqiMaps(void);
/*
* Vectors of UE's RLC info
*/
std::vector <FfMacSchedSapProvider::SchedDlRlcBufferReqParameters> m_rlcBufferReq;
std::list <FfMacSchedSapProvider::SchedDlRlcBufferReqParameters> m_rlcBufferReq;
/*
* Map of UE's DL CQI P01 received