diff --git a/src/lte/model/lte-common.cc b/src/lte/model/lte-common.cc index 2e38346b5..b83f0a6c1 100644 --- a/src/lte/model/lte-common.cc +++ b/src/lte/model/lte-common.cc @@ -78,6 +78,9 @@ uint16_t LteFfConverter::double2fpS11dot3 (double val) { // convert from double to fixed point notation Sxxxxxxxxxxx.xxx + // truncate val to notation limits + if (val > 4095.88) val = 4095.88; + if (val < -4096) val = -4096; int16_t valFp = (int16_t)(val * pow (2, 3)); return (valFp); } diff --git a/src/lte/model/pf-ff-mac-scheduler.cc b/src/lte/model/pf-ff-mac-scheduler.cc index d5392f31e..c811be4b5 100644 --- a/src/lte/model/pf-ff-mac-scheduler.cc +++ b/src/lte/model/pf-ff-mac-scheduler.cc @@ -861,6 +861,7 @@ PfFfMacScheduler::DoSchedUlTriggerReq (const struct FfMacSchedSapProvider::Sched } uldci.m_tbSize = (m_amc->GetTbSizeFromMcs (uldci.m_mcs, rbPerFlow) / 8); // NS_LOG_DEBUG (this << " UE " << (*it).first << " startPRB " << (uint32_t)uldci.m_rbStart << " nPRB " << (uint32_t)uldci.m_rbLen << " CQI " << cqi << " MCS " << (uint32_t)uldci.m_mcs << " TBsize " << uldci.m_tbSize << " RbAlloc " << rbAllocated); + UpdateUlRlcBufferInfo (uldci.m_rnti, uldci.m_tbSize); uldci.m_ndi = 1; uldci.m_cceIndex = 0; uldci.m_aggrLevel = 1; diff --git a/src/lte/model/rr-ff-mac-scheduler.cc b/src/lte/model/rr-ff-mac-scheduler.cc index 365b80665..171d17dee 100644 --- a/src/lte/model/rr-ff-mac-scheduler.cc +++ b/src/lte/model/rr-ff-mac-scheduler.cc @@ -744,6 +744,7 @@ RrFfMacScheduler::DoSchedUlTriggerReq (const struct FfMacSchedSapProvider::Sched uldci.m_tbSize = (m_amc->GetTbSizeFromMcs (uldci.m_mcs, rbPerFlow) / 8); // MCS 0 -> UL-AMC TBD NS_LOG_DEBUG (this << " UE " << (*it).first << " startPRB " << (uint32_t)uldci.m_rbStart << " nPRB " << (uint32_t)uldci.m_rbLen << " CQI " << cqi << " MCS " << (uint32_t)uldci.m_mcs << " TBsize " << uldci.m_tbSize); + UpdateUlRlcBufferInfo (uldci.m_rnti, uldci.m_tbSize); uldci.m_ndi = 1; uldci.m_cceIndex = 0; uldci.m_aggrLevel = 1;