22 #include <ns3/lte-harq-phy.h> 
   24 #include <ns3/assert.h> 
   37   std::vector <HarqProcessInfoList_t> dlHarqLayer0;
 
   38   dlHarqLayer0.resize (8);
 
   39   std::vector <HarqProcessInfoList_t> dlHarqLayer1;
 
   40   dlHarqLayer1.resize (8);
 
   59   std::map <uint16_t, std::vector <HarqProcessInfoList_t> >::iterator it;
 
   62       (*it).second.erase ((*it).second.begin ());
 
   64       (*it).second.push_back (h);      
 
   76   for (uint8_t i = 0; i < list.size (); i++)
 
   78       mi += list.at (i).m_mi;
 
   96   std::map <uint16_t, std::vector <HarqProcessInfoList_t> >::iterator it;
 
  101   for (uint8_t i = 0; i < list.size (); i++)
 
  103       mi += list.at (i).m_mi;
 
  112   std::map <uint16_t, std::vector <HarqProcessInfoList_t> >::iterator it;
 
  117       std::vector <HarqProcessInfoList_t> harqList;
 
  120       return (harqList.at (harqProcId));
 
  124       return ((*it).second.at (harqProcId));
 
  163   std::map <uint16_t, std::vector <HarqProcessInfoList_t> >::iterator it;
 
  168       std::vector <HarqProcessInfoList_t> harqList;
 
  174       harqList.at (7).push_back (el);
 
  179       if ((*it).second.at (7).size () == 3) 
 
  188       (*it).second.at (7).push_back (el);
 
  196   std::map <uint16_t, std::vector <HarqProcessInfoList_t> >::iterator it;
 
  201       std::vector <HarqProcessInfoList_t> harqList;
 
  207       (*it).second.at (
id).clear ();
 
#define NS_LOG_FUNCTION(parameters)
If log level LOG_FUNCTION is enabled, this macro will output all input parameters separated by "...
 
void SubframeIndication(uint32_t frameNo, uint32_t subframeNo)
 
HarqProcessInfoList_t GetHarqProcessInfoDl(uint8_t harqProcId, uint8_t layer)
Return the info of the HARQ procId in case of retranmissions for DL (asynchronous) ...
 
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name. 
 
double GetAccumulatedMiDl(uint8_t harqProcId, uint8_t layer)
Return the cumulated MI of the HARQ procId in case of retranmissions for DL (asynchronous) ...
 
void UpdateUlHarqProcessStatus(uint16_t rnti, double mi, uint16_t infoBytes, uint16_t codeBytes)
Update the MI value associated to the decodification of an HARQ process for DL (asynchronous) ...
 
Every class exported by the ns3 library is enclosed in the ns3 namespace. 
 
void UpdateDlHarqProcessStatus(uint8_t id, uint8_t layer, double mi, uint16_t infoBytes, uint16_t codeBytes)
Update the Info associated to the decodification of an HARQ process for DL (asynchronous) ...
 
#define NS_ASSERT_MSG(condition, message)
At runtime, in debugging builds, if this condition is not true, the program prints the message to out...
 
std::vector< std::vector< HarqProcessInfoList_t > > m_miDlHarqProcessesInfoMap
 
std::map< uint16_t, std::vector< HarqProcessInfoList_t > > m_miUlHarqProcessesInfoMap
 
void ResetUlHarqProcessStatus(uint16_t rnti, uint8_t id)
Reset the info associated to the decodification of an HARQ process for DL (asynchronous) ...
 
double GetAccumulatedMiUl(uint16_t rnti)
Return the cumulated MI of the HARQ procId in case of retranmissions for UL (synchronous) ...
 
void ResetDlHarqProcessStatus(uint8_t id)
Reset the info associated to the decodification of an HARQ process for DL (asynchronous) ...
 
HarqProcessInfoList_t GetHarqProcessInfoUl(uint16_t rnti, uint8_t harqProcId)
Return the info of the HARQ procId in case of retranmissions for UL (asynchronous) ...
 
std::vector< HarqProcessInfoElement_t > HarqProcessInfoList_t