![]() |
5G-LENA nr-v3.3-81-g75c7590d
The 5G/NR module for the ns-3 simulator
|
HARQ functionalities for the PHY layer. More...
#include "nr-harq-phy.h"
Public Member Functions | |
~NrHarqPhy () | |
Destructor. | |
const NrErrorModel::NrErrorModelHistory & | GetHarqProcessInfoDl (uint16_t rnti, uint8_t harqProcId) |
Return the info of the HARQ procId in case of retransmissions for DL (asynchronous) | |
const NrErrorModel::NrErrorModelHistory & | GetHarqProcessInfoDlUl (bool dl, uint16_t rnti, uint8_t harqProcId) |
Return the info of the HARQ procId in case of retransmissions for DL/UL (asynchronous) | |
const NrErrorModel::NrErrorModelHistory & | GetHarqProcessInfoUl (uint16_t rnti, uint8_t harqProcId) |
Return the info of the HARQ procId in case of retransmissions for UL (asynchronous) | |
void | ResetDlHarqProcessStatus (uint16_t rnti, uint8_t id) |
Reset the info associated to the decodification of an HARQ process for DL (asynchronous) | |
void | ResetUlHarqProcessStatus (uint16_t rnti, uint8_t id) |
Reset the info associated to the decodification of an HARQ process for UL (asynchronous) | |
void | UpdateDlHarqProcessStatus (uint16_t rnti, uint8_t harqProcId, const Ptr< NrErrorModelOutput > &output) |
Update the Info associated to the decodification of an HARQ process for DL (asynchronous) | |
void | UpdateUlHarqProcessStatus (uint16_t rnti, uint8_t harqProcId, const Ptr< NrErrorModelOutput > &output) |
Update the Info associated to the decodification of an HARQ process for UL (asynchronous) | |
Protected Types | |
typedef std::unordered_map< uint16_t, ProcIdHistoryMap > | HistoryMap |
Map between an RNTI and its ProcIdHistoryMap. | |
typedef std::unordered_map< uint8_t, NrErrorModel::NrErrorModelHistory > | ProcIdHistoryMap |
Map between a process id and its HARQ history (a vector of pointers) | |
Protected Member Functions | |
const NrErrorModel::NrErrorModelHistory & | GetHarqProcessInfo (HistoryMap *map, uint16_t rnti, uint8_t harqProcId) const |
Return the HARQ history of a particular process id. | |
HistoryMap::iterator | GetHistoryMapOf (HistoryMap *map, uint16_t rnti) const |
Return the HARQ history map of the retransmissions of all process ids of a particular RNTI. | |
ProcIdHistoryMap::iterator | GetProcIdHistoryMapOf (ProcIdHistoryMap *map, uint16_t procId) const |
Return the HARQ history of a particular process id. | |
void | ResetHarqProcessStatus (HistoryMap *map, uint16_t rnti, uint8_t harqProcId) const |
Reset the HARQ history of a particular process id. | |
void | UpdateHarqProcessStatus (HistoryMap *map, uint16_t rnti, uint8_t harqProcId, const Ptr< NrErrorModelOutput > &output) const |
Update the HARQ history of a particular process id. | |
HARQ functionalities for the PHY layer.
(i.e., decodification buffers for incremental redundancy management)
Definition at line 24 of file nr-harq-phy.h.
|
protected |
Map between an RNTI and its ProcIdHistoryMap.
Definition at line 116 of file nr-harq-phy.h.
|
protected |
Map between a process id and its HARQ history (a vector of pointers)
The HARQ history depends on the error model (LTE error model stores MI (MIESM-based), while NR error model stores SINR (EESM-based)) as well as on the HARQ combining method.
Definition at line 112 of file nr-harq-phy.h.
ns3::NrHarqPhy::~NrHarqPhy | ( | ) |
Destructor.
Definition at line 15 of file nr-harq-phy.cc.
|
protected |
Return the HARQ history of a particular process id.
rnti | the RNTI |
id | the HARQ process id |
map | the Map between RNTIs and their history |
Definition at line 128 of file nr-harq-phy.cc.
References GetHistoryMapOf(), and GetProcIdHistoryMapOf().
Referenced by GetHarqProcessInfoDl(), and GetHarqProcessInfoUl().
const NrErrorModel::NrErrorModelHistory & ns3::NrHarqPhy::GetHarqProcessInfoDl | ( | uint16_t | rnti, |
uint8_t | harqProcId | ||
) |
Return the info of the HARQ procId in case of retransmissions for DL (asynchronous)
rnti | the RNTI |
harqProcId | the HARQ proc id |
Definition at line 23 of file nr-harq-phy.cc.
References GetHarqProcessInfo().
Referenced by GetHarqProcessInfoDlUl().
|
inline |
Return the info of the HARQ procId in case of retransmissions for DL/UL (asynchronous)
dl | if downlink |
rnti | the RNTI |
harqProcId | the HARQ proc id |
Definition at line 40 of file nr-harq-phy.h.
References GetHarqProcessInfoDl(), and GetHarqProcessInfoUl().
const NrErrorModel::NrErrorModelHistory & ns3::NrHarqPhy::GetHarqProcessInfoUl | ( | uint16_t | rnti, |
uint8_t | harqProcId | ||
) |
Return the info of the HARQ procId in case of retransmissions for UL (asynchronous)
rnti | the RNTI |
harqProcId | the HARQ process id |
Definition at line 30 of file nr-harq-phy.cc.
References GetHarqProcessInfo().
Referenced by GetHarqProcessInfoDlUl().
|
protected |
Return the HARQ history map of the retransmissions of all process ids of a particular RNTI.
rnti | the RNTI |
map | the Map between RNTIs and their history |
Definition at line 69 of file nr-harq-phy.cc.
Referenced by GetHarqProcessInfo(), ResetHarqProcessStatus(), and UpdateHarqProcessStatus().
|
protected |
Return the HARQ history of a particular process id.
procId | the process id |
map | the Map between processes ids and their history |
Definition at line 84 of file nr-harq-phy.cc.
Referenced by GetHarqProcessInfo(), ResetHarqProcessStatus(), and UpdateHarqProcessStatus().
void ns3::NrHarqPhy::ResetDlHarqProcessStatus | ( | uint16_t | rnti, |
uint8_t | id | ||
) |
Reset the info associated to the decodification of an HARQ process for DL (asynchronous)
rnti | the RNTI |
id | the HARQ process id |
Definition at line 46 of file nr-harq-phy.cc.
References ResetHarqProcessStatus().
|
protected |
Reset the HARQ history of a particular process id.
rnti | the RNTI |
id | the HARQ process id |
map | the Map between RNTIs and their history |
Definition at line 99 of file nr-harq-phy.cc.
References GetHistoryMapOf(), and GetProcIdHistoryMapOf().
Referenced by ResetDlHarqProcessStatus(), and ResetUlHarqProcessStatus().
void ns3::NrHarqPhy::ResetUlHarqProcessStatus | ( | uint16_t | rnti, |
uint8_t | id | ||
) |
Reset the info associated to the decodification of an HARQ process for UL (asynchronous)
rnti | the RNTI |
id | the HARQ process id |
Definition at line 62 of file nr-harq-phy.cc.
References ResetHarqProcessStatus().
void ns3::NrHarqPhy::UpdateDlHarqProcessStatus | ( | uint16_t | rnti, |
uint8_t | harqProcId, | ||
const Ptr< NrErrorModelOutput > & | output | ||
) |
Update the Info associated to the decodification of an HARQ process for DL (asynchronous)
rnti | the RNTI |
harqProcId | the HARQ process id |
output | output of the error model |
Definition at line 37 of file nr-harq-phy.cc.
References UpdateHarqProcessStatus().
|
protected |
Update the HARQ history of a particular process id.
rnti | the RNTI |
id | the HARQ process id |
map | the Map between RNTIs and their history |
output | the new HARQ history to be included |
Definition at line 113 of file nr-harq-phy.cc.
References GetHistoryMapOf(), and GetProcIdHistoryMapOf().
Referenced by UpdateDlHarqProcessStatus(), and UpdateUlHarqProcessStatus().
void ns3::NrHarqPhy::UpdateUlHarqProcessStatus | ( | uint16_t | rnti, |
uint8_t | harqProcId, | ||
const Ptr< NrErrorModelOutput > & | output | ||
) |
Update the Info associated to the decodification of an HARQ process for UL (asynchronous)
rnti | the RNTI |
harqProcId | the HARQ process id |
output | output of the error model |
Definition at line 53 of file nr-harq-phy.cc.
References UpdateHarqProcessStatus().