5G-LENA nr-v3.3-81-g75c7590d
The 5G/NR module for the ns-3 simulator
|
Fronthaul Capacity Control. More...
#include "nr-fh-control.h"
Public Types | |
enum | FhControlMethod { Dropping , Postponing , OptimizeMcs , OptimizeRBs } |
The optimization models (FH Control method) of the NrFhControl. More... | |
Public Member Functions | |
NrFhControl () | |
NrFhControl constructor. | |
~NrFhControl () override | |
~NrFhControl deconstructor | |
NrFhPhySapProvider * | GetNrFhPhySapProvider () |
Get the Fh control - PHY SAP User ptr. | |
NrFhSchedSapProvider * | GetNrFhSchedSapProvider () |
Get the Fh control - Sched SAP User ptr. | |
void | SetCellFhCapacity (uint32_t capacity) |
Set the available fronthaul capacity of the cell. Notice that throughout the code, the capacity will be shared among all the active BWPs of the cell. ActiveBWPs are considered the BWPs that at least one of its UEs has data. | |
void | SetErrorModelType (std::string errorModelType) |
Set the ErrorModelType based on which the MCS Table (1 or 2) will be set."
"ns3::NrEesmIrT1 and ns3::NrEesmCcT1 for MCS Table 1"
"ns3::NrEesmIrT2 and ns3::NrEesmCcT2 for MCS Table 2. | |
void | SetFhControlMethod (FhControlMethod model) |
Set the FH Control method type. | |
void | SetFhNumerology (uint16_t bwpId, uint16_t num) |
Set the numerology. | |
void | SetNrFhPhySapUser (uint16_t bwpId, NrFhPhySapUser *s) |
Set the Fh control - PHY SAP User PHY is per bwp as such we store in a map the bwpId and the corresponding NrFhPhySapUser ptr. | |
void | SetNrFhSchedSapUser (uint16_t bwpId, NrFhSchedSapUser *s) |
Set the Fh control - Sched SAP User Sched is per bwp as such we store in a map the bwpId and the corresponding SetNrFhSchedSapUser ptr. | |
void | SetOverheadDyn (uint8_t overhead) |
Set the overhead for dynamic modulation compression. | |
void | SetPhysicalCellId (uint16_t physCellId) |
Set the physical cell Id of the cell to which this NrFhControl instance belongs to. | |
Static Public Member Functions | |
static TypeId | GetTypeId () |
GetTypeId. | |
Friends | |
class | MemberNrFhPhySapProvider< NrFhControl > |
let the forwarder class access the protected and private members | |
class | MemberNrFhSchedSapProvider< NrFhControl > |
let the forwarder class access the protected and private members | |
Fronthaul Capacity Control.
This class is used to simulate a limited-capacity fronthaul (FH) link based on the FhCapacity (m_fhCapacity) set by the user, and to apply FH control methods (m_fhControlMethod) in order to restrict user allocations, if they do not fit in the available FH capacity. Functional split 7.2x is assumed.
Notice that for each gNB a NrFhControl instance is created, therefore, in case that there are more than 1 BWPs defined, the FH link, and consequently the configured FhCapacity will be shared among the active BWPs. For more details have a look at the method SetCellFhCapacity().
The NrFhControl can exchange information with the scheduler and the PHY layer through the SAP interfaces NrFhSchedSapProvider/NrFhSchedSapUser and NrFhPhySapProvider/NrFhPhySapUser, respectively.
To enable the Fronthaul Capacity Control, the user must call in the example the method NrHelper::EnableFhControl() and configure it, as desired, through the NrHelper::SetFhControlAttribute(). Important note is that the method NrHelper::ConfigureFhControl() must be called after the device install, so that the NrFhControl can be configured correctly. In particular, with this method the numerology and the error model of each BWP will be stored in the NrFhControl maps.
Let us point out, that the current implementation of the NrFhControl is focused on DL traffic. In order to apply it for UL, there is the need for further extensions. Moreover, current implementation supports only OFDMA.
Introspection did not find any typical Config paths.
Size of this type is 720 bytes (on a 64-bit architecture).
Definition at line 53 of file nr-fh-control.h.
The optimization models (FH Control method) of the NrFhControl.
Enumerator | |
---|---|
Dropping | Drop DCI + DATA at the PHY Layer. |
Postponing | Postpone sending data (MAC Layer) |
OptimizeMcs | Optimize MCS. |
OptimizeRBs | Optimize RBs allocated. |
Definition at line 110 of file nr-fh-control.h.
ns3::NrFhControl::NrFhControl | ( | ) |
NrFhControl constructor.
Definition at line 81 of file nr-fh-control.cc.
References MemberNrFhPhySapProvider< NrFhControl >, and MemberNrFhSchedSapProvider< NrFhControl >.
|
override |
~NrFhControl deconstructor
Definition at line 91 of file nr-fh-control.cc.
NrFhPhySapProvider * ns3::NrFhControl::GetNrFhPhySapProvider | ( | ) |
Get the Fh control - PHY SAP User ptr.
Definition at line 114 of file nr-fh-control.cc.
NrFhSchedSapProvider * ns3::NrFhControl::GetNrFhSchedSapProvider | ( | ) |
Get the Fh control - Sched SAP User ptr.
Definition at line 139 of file nr-fh-control.cc.
|
static |
GetTypeId.
Definition at line 22 of file nr-fh-control.cc.
References Dropping, OptimizeMcs, OptimizeRBs, Postponing, SetCellFhCapacity(), SetFhControlMethod(), and SetOverheadDyn().
Referenced by ns3::NrHelper::NrHelper().
void ns3::NrFhControl::SetCellFhCapacity | ( | uint32_t | capacity | ) |
Set the available fronthaul capacity of the cell. Notice that throughout the code, the capacity will be shared among all the active BWPs of the cell. ActiveBWPs are considered the BWPs that at least one of its UEs has data.
capacity | The fronthaul capacity (in Mbps) |
Definition at line 167 of file nr-fh-control.cc.
Referenced by GetTypeId().
void ns3::NrFhControl::SetErrorModelType | ( | std::string | errorModelType | ) |
Set the ErrorModelType based on which the MCS Table (1 or 2) will be set." "ns3::NrEesmIrT1 and ns3::NrEesmCcT1 for MCS Table 1" "ns3::NrEesmIrT2 and ns3::NrEesmCcT2 for MCS Table 2.
errorModelType | The error model type |
Definition at line 181 of file nr-fh-control.cc.
void ns3::NrFhControl::SetFhControlMethod | ( | FhControlMethod | model | ) |
Set the FH Control method type.
model | The FH Control method type |
Definition at line 146 of file nr-fh-control.cc.
Referenced by GetTypeId().
void ns3::NrFhControl::SetFhNumerology | ( | uint16_t | bwpId, |
uint16_t | num | ||
) |
void ns3::NrFhControl::SetNrFhPhySapUser | ( | uint16_t | bwpId, |
NrFhPhySapUser * | s | ||
) |
Set the Fh control - PHY SAP User PHY is per bwp as such we store in a map the bwpId and the corresponding NrFhPhySapUser ptr.
bwpId | The bwpId |
s | The ptr of the SAP User |
Definition at line 98 of file nr-fh-control.cc.
void ns3::NrFhControl::SetNrFhSchedSapUser | ( | uint16_t | bwpId, |
NrFhSchedSapUser * | s | ||
) |
Set the Fh control - Sched SAP User Sched is per bwp as such we store in a map the bwpId and the corresponding SetNrFhSchedSapUser ptr.
bwpId | The bwpId |
s | The ptr of the SAP User |
Definition at line 122 of file nr-fh-control.cc.
void ns3::NrFhControl::SetOverheadDyn | ( | uint8_t | overhead | ) |
Set the overhead for dynamic modulation compression.
overhead | The overhead for dynamic modulation compression (in bits) |
Definition at line 174 of file nr-fh-control.cc.
Referenced by GetTypeId().
void ns3::NrFhControl::SetPhysicalCellId | ( | uint16_t | physCellId | ) |
Set the physical cell Id of the cell to which this NrFhControl instance belongs to.
physCellId | The physical cell Id |
Definition at line 203 of file nr-fh-control.cc.
|
friend |
let the forwarder class access the protected and private members
Definition at line 100 of file nr-fh-control.h.
Referenced by NrFhControl().
|
friend |
let the forwarder class access the protected and private members
Definition at line 100 of file nr-fh-control.h.
Referenced by NrFhControl().