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