5G-LENA nr-v3.3-159-ga6832aa7
The 5G/NR module for the ns-3 simulator
Loading...
Searching...
No Matches
ns3::HarqProcess Struct Reference

The HarqProcess struct. More...

#include "nr-mac-harq-process.h"

+ Collaboration diagram for ns3::HarqProcess:

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< DciInfoElementTdmam_dciElement {}
 DCI element.
 
std::vector< RlcPduInfom_rlcPduInfo {}
 vector of RLC PDU
 
Status m_status {INACTIVE}
 Status of the process.
 
uint8_t m_timer {0}
 Timer of the process (in slot)
 

Detailed Description

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.

Member Enumeration Documentation

◆ Status

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.

Constructor & Destructor Documentation

◆ HarqProcess() [1/2]

ns3::HarqProcess::HarqProcess ( const HarqProcess other)
inline

HarqProcess copy constructor.

Parameters
otherother instance

Definition at line 55 of file nr-mac-harq-process.h.

◆ HarqProcess() [2/2]

ns3::HarqProcess::HarqProcess ( bool  active,
Status  status,
uint8_t  timer,
const std::shared_ptr< DciInfoElementTdma > &  dci 
)
inline

HarqProcess value-by-value constructor.

Parameters
activeIs the process active?
statusStatus of the process
timerTimer of the process (in slot)
dciDCI of the process

Definition at line 71 of file nr-mac-harq-process.h.

Member Function Documentation

◆ Erase()

void ns3::HarqProcess::Erase ( )
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.

Member Data Documentation

◆ m_active

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().

◆ m_dciElement

std::shared_ptr<DciInfoElementTdma> ns3::HarqProcess::m_dciElement {}

◆ m_rlcPduInfo

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().

◆ m_status

Status ns3::HarqProcess::m_status {INACTIVE}

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().

◆ m_timer

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().


The documentation for this struct was generated from the following file: