equal
deleted
inserted
replaced
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 |