Skip to content

Commit

Permalink
lte: (fixes #2523) Scheduler to generate properly the RLC PDU (fix by…
Browse files Browse the repository at this point in the history
… Marco Miozzo and Zoraze Ali)

Extend all schedulers to generate properly the RLC PDU structure when there is no retransmission on the layer.
  • Loading branch information
biljkus committed Nov 7, 2016
1 parent 1748d66 commit 05d4a0f
Show file tree
Hide file tree
Showing 11 changed files with 99 additions and 0 deletions.
9 changes: 9 additions & 0 deletions src/lte/model/cqa-ff-mac-scheduler.cc
Original file line number Diff line number Diff line change
Expand Up @@ -989,9 +989,18 @@ CqaFfMacScheduler::DoSchedDlTriggerReq (const struct FfMacSchedSapProvider::Sche
{
if (j < dci.m_ndi.size ())
{
NS_LOG_INFO (" layer " << (uint16_t)j << " tb size " << dci.m_tbsSize.at (j));
rlcPduListPerLc.push_back ((*itRlcPdu).second.at (j).at (dci.m_harqProcess).at (k));
}
}
else
{ // if no retx needed on layer j, push an RlcPduListElement_s object with m_size=0 to keep the size of rlcPduListPerLc vector = 2 in case of MIMO
NS_LOG_INFO (" layer " << (uint16_t)j << " tb size "<<dci.m_tbsSize.at (j));
RlcPduListElement_s emptyElement;
emptyElement.m_logicalChannelIdentity = (*itRlcPdu).second.at (j).at (dci.m_harqProcess).at (k).m_logicalChannelIdentity;
emptyElement.m_size = 0;
rlcPduListPerLc.push_back (emptyElement);
}
}

if (rlcPduListPerLc.size () > 0)
Expand Down
9 changes: 9 additions & 0 deletions src/lte/model/fdbet-ff-mac-scheduler.cc
Original file line number Diff line number Diff line change
Expand Up @@ -798,9 +798,18 @@ FdBetFfMacScheduler::DoSchedDlTriggerReq (const struct FfMacSchedSapProvider::Sc
{
if (j < dci.m_ndi.size ())
{
NS_LOG_INFO (" layer " << (uint16_t)j << " tb size " << dci.m_tbsSize.at (j));
rlcPduListPerLc.push_back ((*itRlcPdu).second.at (j).at (dci.m_harqProcess).at (k));
}
}
else
{ // if no retx needed on layer j, push an RlcPduListElement_s object with m_size=0 to keep the size of rlcPduListPerLc vector = 2 in case of MIMO
NS_LOG_INFO (" layer " << (uint16_t)j << " tb size "<<dci.m_tbsSize.at (j));
RlcPduListElement_s emptyElement;
emptyElement.m_logicalChannelIdentity = (*itRlcPdu).second.at (j).at (dci.m_harqProcess).at (k).m_logicalChannelIdentity;
emptyElement.m_size = 0;
rlcPduListPerLc.push_back (emptyElement);
}
}

if (rlcPduListPerLc.size () > 0)
Expand Down
9 changes: 9 additions & 0 deletions src/lte/model/fdmt-ff-mac-scheduler.cc
Original file line number Diff line number Diff line change
Expand Up @@ -786,9 +786,18 @@ FdMtFfMacScheduler::DoSchedDlTriggerReq (const struct FfMacSchedSapProvider::Sch
{
if (j < dci.m_ndi.size ())
{
NS_LOG_INFO (" layer " << (uint16_t)j << " tb size " << dci.m_tbsSize.at (j));
rlcPduListPerLc.push_back ((*itRlcPdu).second.at (j).at (dci.m_harqProcess).at (k));
}
}
else
{ // if no retx needed on layer j, push an RlcPduListElement_s object with m_size=0 to keep the size of rlcPduListPerLc vector = 2 in case of MIMO
NS_LOG_INFO (" layer " << (uint16_t)j << " tb size "<<dci.m_tbsSize.at (j));
RlcPduListElement_s emptyElement;
emptyElement.m_logicalChannelIdentity = (*itRlcPdu).second.at (j).at (dci.m_harqProcess).at (k).m_logicalChannelIdentity;
emptyElement.m_size = 0;
rlcPduListPerLc.push_back (emptyElement);
}
}

if (rlcPduListPerLc.size () > 0)
Expand Down
9 changes: 9 additions & 0 deletions src/lte/model/fdtbfq-ff-mac-scheduler.cc
Original file line number Diff line number Diff line change
Expand Up @@ -894,9 +894,18 @@ FdTbfqFfMacScheduler::DoSchedDlTriggerReq (const struct FfMacSchedSapProvider::S
{
if (j < dci.m_ndi.size ())
{
NS_LOG_INFO (" layer " << (uint16_t)j << " tb size " << dci.m_tbsSize.at (j));
rlcPduListPerLc.push_back ((*itRlcPdu).second.at (j).at (dci.m_harqProcess).at (k));
}
}
else
{ // if no retx needed on layer j, push an RlcPduListElement_s object with m_size=0 to keep the size of rlcPduListPerLc vector = 2 in case of MIMO
NS_LOG_INFO (" layer " << (uint16_t)j << " tb size "<<dci.m_tbsSize.at (j));
RlcPduListElement_s emptyElement;
emptyElement.m_logicalChannelIdentity = (*itRlcPdu).second.at (j).at (dci.m_harqProcess).at (k).m_logicalChannelIdentity;
emptyElement.m_size = 0;
rlcPduListPerLc.push_back (emptyElement);
}
}

if (rlcPduListPerLc.size () > 0)
Expand Down
9 changes: 9 additions & 0 deletions src/lte/model/pf-ff-mac-scheduler.cc
Original file line number Diff line number Diff line change
Expand Up @@ -851,9 +851,18 @@ PfFfMacScheduler::DoSchedDlTriggerReq (const struct FfMacSchedSapProvider::Sched
{
if (j < dci.m_ndi.size ())
{
NS_LOG_INFO (" layer " << (uint16_t)j << " tb size " << dci.m_tbsSize.at (j));
rlcPduListPerLc.push_back ((*itRlcPdu).second.at (j).at (dci.m_harqProcess).at (k));
}
}
else
{ // if no retx needed on layer j, push an RlcPduListElement_s object with m_size=0 to keep the size of rlcPduListPerLc vector = 2 in case of MIMO
NS_LOG_INFO (" layer " << (uint16_t)j << " tb size "<<dci.m_tbsSize.at (j));
RlcPduListElement_s emptyElement;
emptyElement.m_logicalChannelIdentity = (*itRlcPdu).second.at (j).at (dci.m_harqProcess).at (k).m_logicalChannelIdentity;
emptyElement.m_size = 0;
rlcPduListPerLc.push_back (emptyElement);
}
}

if (rlcPduListPerLc.size () > 0)
Expand Down
9 changes: 9 additions & 0 deletions src/lte/model/pss-ff-mac-scheduler.cc
Original file line number Diff line number Diff line change
Expand Up @@ -878,9 +878,18 @@ PssFfMacScheduler::DoSchedDlTriggerReq (const struct FfMacSchedSapProvider::Sche
{
if (j < dci.m_ndi.size ())
{
NS_LOG_INFO (" layer " << (uint16_t)j << " tb size " << dci.m_tbsSize.at (j));
rlcPduListPerLc.push_back ((*itRlcPdu).second.at (j).at (dci.m_harqProcess).at (k));
}
}
else
{ // if no retx needed on layer j, push an RlcPduListElement_s object with m_size=0 to keep the size of rlcPduListPerLc vector = 2 in case of MIMO
NS_LOG_INFO (" layer " << (uint16_t)j << " tb size "<<dci.m_tbsSize.at (j));
RlcPduListElement_s emptyElement;
emptyElement.m_logicalChannelIdentity = (*itRlcPdu).second.at (j).at (dci.m_harqProcess).at (k).m_logicalChannelIdentity;
emptyElement.m_size = 0;
rlcPduListPerLc.push_back (emptyElement);
}
}

if (rlcPduListPerLc.size () > 0)
Expand Down
9 changes: 9 additions & 0 deletions src/lte/model/rr-ff-mac-scheduler.cc
Original file line number Diff line number Diff line change
Expand Up @@ -765,9 +765,18 @@ RrFfMacScheduler::DoSchedDlTriggerReq (const struct FfMacSchedSapProvider::Sched
{
if (j < dci.m_ndi.size ())
{
NS_LOG_INFO (" layer " << (uint16_t)j << " tb size " << dci.m_tbsSize.at (j));
rlcPduListPerLc.push_back ((*itRlcPdu).second.at (j).at (dci.m_harqProcess).at (k));
}
}
else
{ // if no retx needed on layer j, push an RlcPduListElement_s object with m_size=0 to keep the size of rlcPduListPerLc vector = 2 in case of MIMO
NS_LOG_INFO (" layer " << (uint16_t)j << " tb size "<<dci.m_tbsSize.at (j));
RlcPduListElement_s emptyElement;
emptyElement.m_logicalChannelIdentity = (*itRlcPdu).second.at (j).at (dci.m_harqProcess).at (k).m_logicalChannelIdentity;
emptyElement.m_size = 0;
rlcPduListPerLc.push_back (emptyElement);
}
}

if (rlcPduListPerLc.size () > 0)
Expand Down
9 changes: 9 additions & 0 deletions src/lte/model/tdbet-ff-mac-scheduler.cc
Original file line number Diff line number Diff line change
Expand Up @@ -797,9 +797,18 @@ TdBetFfMacScheduler::DoSchedDlTriggerReq (const struct FfMacSchedSapProvider::Sc
{
if (j < dci.m_ndi.size ())
{
NS_LOG_INFO (" layer " << (uint16_t)j << " tb size " << dci.m_tbsSize.at (j));
rlcPduListPerLc.push_back ((*itRlcPdu).second.at (j).at (dci.m_harqProcess).at (k));
}
}
else
{ // if no retx needed on layer j, push an RlcPduListElement_s object with m_size=0 to keep the size of rlcPduListPerLc vector = 2 in case of MIMO
NS_LOG_INFO (" layer " << (uint16_t)j << " tb size "<<dci.m_tbsSize.at (j));
RlcPduListElement_s emptyElement;
emptyElement.m_logicalChannelIdentity = (*itRlcPdu).second.at (j).at (dci.m_harqProcess).at (k).m_logicalChannelIdentity;
emptyElement.m_size = 0;
rlcPduListPerLc.push_back (emptyElement);
}
}

if (rlcPduListPerLc.size () > 0)
Expand Down
9 changes: 9 additions & 0 deletions src/lte/model/tdmt-ff-mac-scheduler.cc
Original file line number Diff line number Diff line change
Expand Up @@ -786,9 +786,18 @@ TdMtFfMacScheduler::DoSchedDlTriggerReq (const struct FfMacSchedSapProvider::Sch
{
if (j < dci.m_ndi.size ())
{
NS_LOG_INFO (" layer " << (uint16_t)j << " tb size " << dci.m_tbsSize.at (j));
rlcPduListPerLc.push_back ((*itRlcPdu).second.at (j).at (dci.m_harqProcess).at (k));
}
}
else
{ // if no retx needed on layer j, push an RlcPduListElement_s object with m_size=0 to keep the size of rlcPduListPerLc vector = 2 in case of MIMO
NS_LOG_INFO (" layer " << (uint16_t)j << " tb size "<<dci.m_tbsSize.at (j));
RlcPduListElement_s emptyElement;
emptyElement.m_logicalChannelIdentity = (*itRlcPdu).second.at (j).at (dci.m_harqProcess).at (k).m_logicalChannelIdentity;
emptyElement.m_size = 0;
rlcPduListPerLc.push_back (emptyElement);
}
}

if (rlcPduListPerLc.size () > 0)
Expand Down
9 changes: 9 additions & 0 deletions src/lte/model/tdtbfq-ff-mac-scheduler.cc
Original file line number Diff line number Diff line change
Expand Up @@ -894,9 +894,18 @@ TdTbfqFfMacScheduler::DoSchedDlTriggerReq (const struct FfMacSchedSapProvider::S
{
if (j < dci.m_ndi.size ())
{
NS_LOG_INFO (" layer " << (uint16_t)j << " tb size " << dci.m_tbsSize.at (j));
rlcPduListPerLc.push_back ((*itRlcPdu).second.at (j).at (dci.m_harqProcess).at (k));
}
}
else
{ // if no retx needed on layer j, push an RlcPduListElement_s object with m_size=0 to keep the size of rlcPduListPerLc vector = 2 in case of MIMO
NS_LOG_INFO (" layer " << (uint16_t)j << " tb size "<<dci.m_tbsSize.at (j));
RlcPduListElement_s emptyElement;
emptyElement.m_logicalChannelIdentity = (*itRlcPdu).second.at (j).at (dci.m_harqProcess).at (k).m_logicalChannelIdentity;
emptyElement.m_size = 0;
rlcPduListPerLc.push_back (emptyElement);
}
}

if (rlcPduListPerLc.size () > 0)
Expand Down
9 changes: 9 additions & 0 deletions src/lte/model/tta-ff-mac-scheduler.cc
Original file line number Diff line number Diff line change
Expand Up @@ -786,9 +786,18 @@ TtaFfMacScheduler::DoSchedDlTriggerReq (const struct FfMacSchedSapProvider::Sche
{
if (j < dci.m_ndi.size ())
{
NS_LOG_INFO (" layer " << (uint16_t)j << " tb size " << dci.m_tbsSize.at (j));
rlcPduListPerLc.push_back ((*itRlcPdu).second.at (j).at (dci.m_harqProcess).at (k));
}
}
else
{ // if no retx needed on layer j, push an RlcPduListElement_s object with m_size=0 to keep the size of rlcPduListPerLc vector = 2 in case of MIMO
NS_LOG_INFO (" layer " << (uint16_t)j << " tb size "<<dci.m_tbsSize.at (j));
RlcPduListElement_s emptyElement;
emptyElement.m_logicalChannelIdentity = (*itRlcPdu).second.at (j).at (dci.m_harqProcess).at (k).m_logicalChannelIdentity;
emptyElement.m_size = 0;
rlcPduListPerLc.push_back (emptyElement);
}
}

if (rlcPduListPerLc.size () > 0)
Expand Down

0 comments on commit 05d4a0f

Please sign in to comment.