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)
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) ...
NS_LOG_COMPONENT_DEFINE("LteHarqPhy")
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) ...
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)
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