![]() |
5G-LENA nr-v3.3-159-ga6832aa7
The 5G/NR module for the ns-3 simulator
|
The HarqProcess struct. More...
#include "nr-mac-harq-process.h"
Public Types | |
enum | Status : uint8_t { INACTIVE = 0 , WAITING_FEEDBACK = 1 , RECEIVED_FEEDBACK = 2 } |
Status of the process. More... | |
Public Member Functions | |
HarqProcess ()=default | |
Default constructor. | |
HarqProcess (bool active, Status status, uint8_t timer, const std::shared_ptr< DciInfoElementTdma > &dci) | |
HarqProcess value-by-value constructor. | |
HarqProcess (const HarqProcess &other) | |
HarqProcess copy constructor. | |
void | Erase () |
Reset the Process content. | |
Public Attributes | |
bool | m_active {false} |
False indicate that the process is not active. | |
std::shared_ptr< DciInfoElementTdma > | m_dciElement {} |
DCI element. | |
std::vector< RlcPduInfo > | m_rlcPduInfo {} |
vector of RLC PDU | |
Status | m_status {INACTIVE} |
Status of the process. | |
uint8_t | m_timer {0} |
Timer of the process (in slot) | |
The HarqProcess struct.
The struct represent a single HARQ process, identified by an ID (unfortunately the ID is not stored in the struct, but somewhere else, as it will be explained later). The process has a status (HarqProcess::Status) and could be active or inactive. Inside the process is stored a shared pointer to a DciInfoElementTdma, which contains all the information for the retransmission of the data, as well as the RLC PDU.
The HarqProcess will be stored inside the class NrMacHarqVector, which is a unordered map that maps the HARQ ID with the HARQ content (this struct).
Definition at line 29 of file nr-mac-harq-process.h.
enum ns3::HarqProcess::Status : uint8_t |
Status of the process.
Other than the obvious meaning of the values, it is worth to state that the RECEIVED_FEEDBACK status is equivalent to "the process has received a NACK feedback". An ACKed feedback will be erased immediately (after all, it has been ACKed...). That is probably worth a name change.
Enumerator | |
---|---|
INACTIVE | Inactive process. |
WAITING_FEEDBACK | Data transmitted, waiting the feedback. |
RECEIVED_FEEDBACK | Received feedback (NACK) |
Definition at line 39 of file nr-mac-harq-process.h.
|
inline |
HarqProcess copy constructor.
other | other instance |
Definition at line 55 of file nr-mac-harq-process.h.
|
inline |
HarqProcess value-by-value constructor.
active | Is the process active? |
status | Status of the process |
timer | Timer of the process (in slot) |
dci | DCI of the process |
Definition at line 71 of file nr-mac-harq-process.h.
|
inline |
Reset the Process content.
Definition at line 85 of file nr-mac-harq-process.h.
References INACTIVE, m_active, m_dciElement, m_rlcPduInfo, m_status, and m_timer.
bool ns3::HarqProcess::m_active {false} |
False indicate that the process is not active.
Definition at line 94 of file nr-mac-harq-process.h.
Referenced by Erase(), and ns3::NrMacHarqVector::Insert().
std::shared_ptr<DciInfoElementTdma> ns3::HarqProcess::m_dciElement {} |
DCI element.
Definition at line 97 of file nr-mac-harq-process.h.
Referenced by Erase(), ns3::NrMacSchedulerHarqRr::ScheduleDlHarq(), and ns3::NrMacSchedulerHarqRr::ScheduleUlHarq().
std::vector<RlcPduInfo> ns3::HarqProcess::m_rlcPduInfo {} |
vector of RLC PDU
Definition at line 98 of file nr-mac-harq-process.h.
Referenced by Erase(), and ns3::NrMacSchedulerHarqRr::ScheduleDlHarq().
Status of the process.
Definition at line 95 of file nr-mac-harq-process.h.
Referenced by Erase(), ns3::NrMacSchedulerHarqRr::ScheduleDlHarq(), and ns3::NrMacSchedulerHarqRr::ScheduleUlHarq().
uint8_t ns3::HarqProcess::m_timer {0} |
Timer of the process (in slot)
Definition at line 96 of file nr-mac-harq-process.h.
Referenced by Erase(), ns3::NrMacSchedulerHarqRr::ScheduleDlHarq(), and ns3::NrMacSchedulerHarqRr::ScheduleUlHarq().