5G-LENA nr-v3.3-81-g75c7590d
The 5G/NR module for the ns-3 simulator
Loading...
Searching...
No Matches
ns3::NrFhControl Class Reference

Fronthaul Capacity Control. More...

#include "nr-fh-control.h"

+ Inheritance diagram for ns3::NrFhControl:
+ Collaboration diagram for ns3::NrFhControl:

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
 
NrFhPhySapProviderGetNrFhPhySapProvider ()
 Get the Fh control - PHY SAP User ptr.
 
NrFhSchedSapProviderGetNrFhSchedSapProvider ()
 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
 

Detailed Description

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.

Attributes

  • FhControlMethod: The FH Control method defines the model that the fhControl will useto limit the capacity. There are four FH Control methods: a) Dropping. When CTRL channels are sent, PHY asks the FhControl whetherthe allocation fits. If not, it drops the DCI + data.b) Postponing. When tdma/ofdma have allocated the RBs/symbols to all theUEs, it iterates through all the UEs and asks the FhControl whether theallocation fits. If not, it sets the assigned RBGs to 0 and therefore thesending of the data is postponed (DCI is not created – data stays in RLC queue)c) Optimize MCS. When tdma/ofdma have allocated the RBs/symbols to all the UEs,it iterates through all the UEs (with data in their queues and resourcesallocated during the scheduling process) and asks fhControl for the max MCS.It assigns the min among the allocated one and the max MCS.d) Optimize RBs. When tdma/ofdma are allocating the RBs/symbols to a UE,it calls the fhControl to provide the max RBs that can be assigned.
    • Set with class: ns3::EnumValue<N3ns311NrFhControl15FhControlMethodE>
    • Underlying type: Dropping|Postponing|OptimizeMcs|OptimizeRBs
    • Initial value: Dropping
    • Flags: construct write read
  • FhCapacity: The available fronthaul capacity (in Mbps).The capacity is shared among the active BWPsof a cell.
    • Set with class: ns3::UintegerValue
    • Underlying type: uint32_t 0:150000
    • Initial value: 1000
    • Flags: construct write
  • OverheadDyn: The overhead for dynamic adaptation (in bits)
    • Set with class: ns3::UintegerValue
    • Underlying type: uint8_t 0:100
    • Initial value: 32
    • Flags: construct write

TraceSources

  • RequiredFhDlThroughput: Report required fronthaul throughput in DL per BWP (Sfnfn, bwpId, reqFhThr)
    Callback signature: ns3::ReqFhDlThr::TracedCallback
  • UsedAirRbs: Report the employed RBs of the air interface in DL per BWP (Sfnfn, bwpId, rbsAir)
    Callback signature: ns3::rbsAir::TracedCallback

Size of this type is 720 bytes (on a 64-bit architecture).

Definition at line 53 of file nr-fh-control.h.

Member Enumeration Documentation

◆ FhControlMethod

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.

Constructor & Destructor Documentation

◆ NrFhControl()

ns3::NrFhControl::NrFhControl ( )

◆ ~NrFhControl()

ns3::NrFhControl::~NrFhControl ( )
override

~NrFhControl deconstructor

Definition at line 91 of file nr-fh-control.cc.

Member Function Documentation

◆ GetNrFhPhySapProvider()

NrFhPhySapProvider * ns3::NrFhControl::GetNrFhPhySapProvider ( )

Get the Fh control - PHY SAP User ptr.

Returns
the ptr of the SAP User

Definition at line 114 of file nr-fh-control.cc.

◆ GetNrFhSchedSapProvider()

NrFhSchedSapProvider * ns3::NrFhControl::GetNrFhSchedSapProvider ( )

Get the Fh control - Sched SAP User ptr.

Returns
the ptr of the SAP User

Definition at line 139 of file nr-fh-control.cc.

◆ GetTypeId()

TypeId ns3::NrFhControl::GetTypeId ( )
static

GetTypeId.

Returns
the TypeId of the Object

Definition at line 22 of file nr-fh-control.cc.

References Dropping, OptimizeMcs, OptimizeRBs, Postponing, SetCellFhCapacity(), SetFhControlMethod(), and SetOverheadDyn().

Referenced by ns3::NrHelper::NrHelper().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetCellFhCapacity()

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.

Parameters
capacityThe fronthaul capacity (in Mbps)

Definition at line 167 of file nr-fh-control.cc.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetErrorModelType()

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.

Parameters
errorModelTypeThe error model type

Definition at line 181 of file nr-fh-control.cc.

◆ SetFhControlMethod()

void ns3::NrFhControl::SetFhControlMethod ( FhControlMethod  model)

Set the FH Control method type.

Parameters
modelThe FH Control method type

Definition at line 146 of file nr-fh-control.cc.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetFhNumerology()

void ns3::NrFhControl::SetFhNumerology ( uint16_t  bwpId,
uint16_t  num 
)

Set the numerology.

Parameters
numthe numerology

Definition at line 217 of file nr-fh-control.cc.

◆ SetNrFhPhySapUser()

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.

Parameters
bwpIdThe bwpId
sThe ptr of the SAP User

Definition at line 98 of file nr-fh-control.cc.

◆ SetNrFhSchedSapUser()

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.

Parameters
bwpIdThe bwpId
sThe ptr of the SAP User

Definition at line 122 of file nr-fh-control.cc.

◆ SetOverheadDyn()

void ns3::NrFhControl::SetOverheadDyn ( uint8_t  overhead)

Set the overhead for dynamic modulation compression.

Parameters
overheadThe overhead for dynamic modulation compression (in bits)

Definition at line 174 of file nr-fh-control.cc.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetPhysicalCellId()

void ns3::NrFhControl::SetPhysicalCellId ( uint16_t  physCellId)

Set the physical cell Id of the cell to which this NrFhControl instance belongs to.

Parameters
physCellIdThe physical cell Id

Definition at line 203 of file nr-fh-control.cc.

Friends And Related Symbol Documentation

◆ MemberNrFhPhySapProvider< NrFhControl >

friend class MemberNrFhPhySapProvider< 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().

◆ MemberNrFhSchedSapProvider< NrFhControl >

friend class MemberNrFhSchedSapProvider< 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().


The documentation for this class was generated from the following files: