src/lte/model/lte-harq-phy.cc
changeset 9361 4b1130527bbf
parent 9355 1da2c1fd7dbb
child 10410 4d4eb8097fa3
equal deleted inserted replaced
9360:197c71f20845 9361:4b1130527bbf
   125 }
   125 }
   126 
   126 
   127 
   127 
   128 
   128 
   129 void
   129 void
   130 LteHarqPhy::UpdateDlHarqProcessStatus (uint8_t id, uint8_t layer, double mi, uint16_t infoBits, uint16_t codeBits)
   130 LteHarqPhy::UpdateDlHarqProcessStatus (uint8_t id, uint8_t layer, double mi, uint16_t infoBytes, uint16_t codeBytes)
   131 {
   131 {
   132   NS_LOG_FUNCTION (this << (uint16_t) id << mi);
   132   NS_LOG_FUNCTION (this << (uint16_t) id << mi);
   133   if (m_miDlHarqProcessesInfoMap.at (layer).at (id).size () == 3)  // MAX HARQ RETX
   133   if (m_miDlHarqProcessesInfoMap.at (layer).at (id).size () == 3)  // MAX HARQ RETX
   134     {
   134     {
   135       // HARQ should be disabled -> discard info
   135       // HARQ should be disabled -> discard info
   136       return;
   136       return;
   137     }
   137     }
   138   HarqProcessInfoElement_t el;
   138   HarqProcessInfoElement_t el;
   139   el.m_mi = mi;
   139   el.m_mi = mi;
   140   el.m_infoBits = infoBits;
   140   el.m_infoBits = infoBytes * 8;
   141   el.m_codeBits = codeBits;
   141   el.m_codeBits = codeBytes * 8;
   142   m_miDlHarqProcessesInfoMap.at (layer).at (id).push_back (el);
   142   m_miDlHarqProcessesInfoMap.at (layer).at (id).push_back (el);
   143 }
   143 }
   144 
   144 
   145 
   145 
   146 void
   146 void
   154   
   154   
   155 }
   155 }
   156 
   156 
   157 
   157 
   158 void
   158 void
   159 LteHarqPhy::UpdateUlHarqProcessStatus (uint16_t rnti, double mi, uint16_t infoBits, uint16_t codeBits)
   159 LteHarqPhy::UpdateUlHarqProcessStatus (uint16_t rnti, double mi, uint16_t infoBytes, uint16_t codeBytes)
   160 {
   160 {
   161   NS_LOG_FUNCTION (this << rnti << mi);
   161   NS_LOG_FUNCTION (this << rnti << mi);
   162   std::map <uint16_t, std::vector <HarqProcessInfoList_t> >::iterator it;
   162   std::map <uint16_t, std::vector <HarqProcessInfoList_t> >::iterator it;
   163   it = m_miUlHarqProcessesInfoMap.find (rnti);
   163   it = m_miUlHarqProcessesInfoMap.find (rnti);
   164   if (it==m_miUlHarqProcessesInfoMap.end ())
   164   if (it==m_miUlHarqProcessesInfoMap.end ())
   166       // new entry
   166       // new entry
   167       std::vector <HarqProcessInfoList_t> harqList;
   167       std::vector <HarqProcessInfoList_t> harqList;
   168       harqList.resize (8);
   168       harqList.resize (8);
   169       HarqProcessInfoElement_t el;
   169       HarqProcessInfoElement_t el;
   170       el.m_mi = mi;
   170       el.m_mi = mi;
   171       el.m_infoBits = infoBits;
   171       el.m_infoBits = infoBytes * 8;
   172       el.m_codeBits = codeBits;
   172       el.m_codeBits = codeBytes * 8;
   173       harqList.at (7).push_back (el);
   173       harqList.at (7).push_back (el);
   174       m_miUlHarqProcessesInfoMap.insert (std::pair <uint16_t, std::vector <HarqProcessInfoList_t> > (rnti, harqList));
   174       m_miUlHarqProcessesInfoMap.insert (std::pair <uint16_t, std::vector <HarqProcessInfoList_t> > (rnti, harqList));
   175     }
   175     }
   176   else
   176   else
   177     {
   177     {
   180           // HARQ should be disabled -> discard info
   180           // HARQ should be disabled -> discard info
   181           return;
   181           return;
   182         }
   182         }
   183       HarqProcessInfoElement_t el;
   183       HarqProcessInfoElement_t el;
   184       el.m_mi = mi;
   184       el.m_mi = mi;
   185       el.m_infoBits = infoBits;
   185       el.m_infoBits = infoBytes * 8;
   186       el.m_codeBits = codeBits;
   186       el.m_codeBits = codeBytes * 8;
   187       (*it).second.at (7).push_back (el);
   187       (*it).second.at (7).push_back (el);
   188     }
   188     }
   189 }
   189 }
   190 
   190 
   191 void
   191 void