diff -r 6ea379d8e564 -r d2e70680881a src/lte/model/pf-ff-mac-scheduler.cc --- a/src/lte/model/pf-ff-mac-scheduler.cc Tue May 10 13:05:06 2011 +0200 +++ b/src/lte/model/pf-ff-mac-scheduler.cc Tue May 10 16:52:43 2011 +0200 @@ -210,7 +210,7 @@ PfFfMacScheduler::PfFfMacScheduler () : m_cschedSapUser (0), m_schedSapUser (0), - m_timeWindow (0.5), + m_timeWindow (10.0), m_schedTtiDelay (2) // WILD ACK: based on a m_macChTtiDelay = 1 { m_cschedSapProvider = new PfSchedulerMemberCschedSapProvider (this); @@ -411,7 +411,7 @@ void PfFfMacScheduler::DoSchedDlTriggerReq (const struct FfMacSchedSapProvider::SchedDlTriggerReqParameters& params) { - NS_LOG_FUNCTION (this); + NS_LOG_FUNCTION (this << " Frame no. " << (params.m_sfnSf>>4) << " subframe no. " << (0xF & params.m_sfnSf)); // API generated by RLC for triggering the scheduling of a DL subframe @@ -424,7 +424,7 @@ std::map > allocationMap; for (int i = 0; i < rbgNum; i++) { - //NS_LOG_DEBUG (this << " ALLOCATION for RBG " << i << " of " << rbgNum); + NS_LOG_DEBUG (this << " ALLOCATION for RBG " << i << " of " << rbgNum); std::map ::iterator it; std::map ::iterator itMax = m_flowStats.end (); double rcqiMax = 0.0; @@ -435,7 +435,7 @@ uint8_t cqi = 0; if (itCqi == m_a30CqiRxed.end ()) { - //NS_LOG_DEBUG (this << " No DL-CQI for this UE " << (*it).first); + NS_LOG_DEBUG (this << " No DL-CQI for this UE " << (*it).first); cqi = 1; // start with lowest value } else @@ -444,17 +444,14 @@ } if (cqi > 0) // CQI == 0 means "out of range" (see table 7.2.3-1 of 36.213) { - //NS_LOG_DEBUG (this << " LC active " << LcActivePerFlow ((*it).first)); +// NS_LOG_DEBUG (this << " LC active " << LcActivePerFlow ((*it).first)); if (LcActivePerFlow ((*it).first) > 0) { // this UE has data to transmit - //NS_LOG_DEBUG (this << " RNTI " << (*it).first); uint8_t mcs = LteAmc::GetMcsFromCqi (cqi); - //NS_LOG_DEBUG (this << " MCS " << (uint32_t)mcs); double achievableRate = ((LteAmc::GetTbSizeFromMcs (mcs, 1) / 8)/0.001); // = TB size / TTI double rcqi = achievableRate / (*it).second.lastAveragedThroughput; - //NS_LOG_DEBUG (this << " achievaleRate " << achievableRate << " avg thr " << (*it).second.lastAveragedThroughput); - //NS_LOG_DEBUG (this << " RCQI " << rcqi); + NS_LOG_DEBUG (this << " RNTI " << (*it).first << " MCS " << (uint32_t)mcs << " achievableRate " << achievableRate << " avgThr " << (*it).second.lastAveragedThroughput << " RCQI " << rcqi); if (rcqi > rcqiMax) { @@ -468,7 +465,7 @@ if (itMax == m_flowStats.end ()) { // no UE available for this RB - //NS_LOG_DEBUG (this << " no UE found"); + NS_LOG_DEBUG (this << " no UE found"); } else { @@ -485,7 +482,7 @@ { (*itMap).second.push_back (i); } - //NS_LOG_DEBUG (this << " UE assigned " << (*itMax).first); + NS_LOG_DEBUG (this << " UE assigned " << (*itMax).first); } } // end for RBGs @@ -504,7 +501,7 @@ newDci.m_rnti = (*itMap).first; uint16_t lcActives = LcActivePerFlow ((*itMap).first); - //NS_LOG_DEBUG (this << "Allocate user " << newEl.m_rnti << " rbg " << lcActives); +// NS_LOG_DEBUG (this << "Allocate user " << newEl.m_rnti << " rbg " << lcActives); uint16_t RgbPerRnti = (*itMap).second.size (); std::map ::iterator itCqi; itCqi = m_a30CqiRxed.find ((*itMap).first); @@ -513,7 +510,7 @@ { if ((*itCqi).second.m_higherLayerSelected.size () > (*itMap).second.at (k)) { - //NS_LOG_DEBUG (this << " RBG " << (*itMap).second.at (k) << " CQI " << (uint16_t)((*itCqi).second.m_higherLayerSelected.at ((*itMap).second.at (k)).m_sbCqi.at (0)) ); +// NS_LOG_DEBUG (this << " RBG " << (*itMap).second.at (k) << " CQI " << (uint16_t)((*itCqi).second.m_higherLayerSelected.at ((*itMap).second.at (k)).m_sbCqi.at (0)) ); if (((*itCqi).second.m_higherLayerSelected.at ((*itMap).second.at (k)).m_sbCqi.at (0)) < worstCqi) { worstCqi = ((*itCqi).second.m_higherLayerSelected.at ((*itMap).second.at (k)).m_sbCqi.at (0)); @@ -524,7 +521,7 @@ worstCqi = 1; // try with lowest MCS in RBG with no info on channel } } - //NS_LOG_DEBUG (this << " CQI " << (uint16_t)worstCqi); +// NS_LOG_DEBUG (this << " CQI " << (uint16_t)worstCqi); newDci.m_mcs.push_back (LteAmc::GetMcsFromCqi (worstCqi)); int tbSize = (LteAmc::GetTbSizeFromMcs (newDci.m_mcs.at (0), RgbPerRnti * rbgSize) / 8); // (size of TB in bytes according to table 7.1.7.2.1-1 of 36.213) newDci.m_tbsSize.push_back (tbSize); @@ -535,7 +532,7 @@ for (uint16_t k = 0; k < (*itMap).second.size (); k++) { rbgMask = rbgMask + (0x1 << (*itMap).second.at (k)); - //NS_LOG_DEBUG (this << " Allocated PRB " << (*itMap).second.at (k)); +// NS_LOG_DEBUG (this << " Allocated PRB " << (*itMap).second.at (k)); } newDci.m_rbBitmap = rbgMask; // (32 bit bitmap see 7.1.6 of 36.213) @@ -550,7 +547,7 @@ { RlcPduListElement_s newRlcEl; newRlcEl.m_logicalChannelIdentity = (*itBufReq).first.m_lcId; - //NS_LOG_DEBUG (this << " LCID " << (uint32_t) newRlcEl.m_logicalChannelIdentity << " size " << rlcPduSize); + NS_LOG_DEBUG (this << " LCID " << (uint32_t) newRlcEl.m_logicalChannelIdentity << " size " << rlcPduSize); newRlcEl.m_size = rlcPduSize; newRlcPduLe.push_back (newRlcEl); } @@ -574,19 +571,19 @@ if (it != m_flowStats.end()) { (*it).second.lastTtiBytesTrasmitted = tbSize; - //NS_LOG_DEBUG (this << " UE bytes txed " << (*it).second.lastTtiBytesTrasmitted); + NS_LOG_DEBUG (this << " UE bytes txed " << (*it).second.lastTtiBytesTrasmitted); (*it).second.totalBytesTransmitted += (*it).second.lastTtiBytesTrasmitted; // update average throughput (see eq. 12.3 of Sec 12.3.1.2 of LTE – The UMTS Long Term Evolution, Ed Wiley) (*it).second.lastAveragedThroughput = ((1.0 - (1.0 / m_timeWindow)) * (*it).second.lastAveragedThroughput) + ((1.0 / m_timeWindow) * (double)((*it).second.lastTtiBytesTrasmitted / 0.001)); (*it).second.lastTtiBytesTrasmitted = 0; - //NS_LOG_DEBUG (this << " UE tot bytes " << (*it).second.totalBytesTransmitted); - //NS_LOG_DEBUG (this << " UE avg thr " << (*it).second.lastAveragedThroughput); + NS_LOG_DEBUG (this << " UE tot bytes " << (*it).second.totalBytesTransmitted); + NS_LOG_DEBUG (this << " UE avg thr " << (*it).second.lastAveragedThroughput); } -// else -// { -// NS_LOG_DEBUG (this << " No Stats for this allocated UE-LC"); -// } + else + { + NS_LOG_DEBUG (this << " No Stats for this allocated UE"); + } itMap++; } // end while allocation