5G-LENA  nr-v3.0-29-g83cc959
The 5G/NR module for the ns-3 simulator
ns3::NrHelper Class Reference

Helper for a correct setup of every NR simulation. More...

#include "nr-helper.h"

+ Inheritance diagram for ns3::NrHelper:
+ Collaboration diagram for ns3::NrHelper:

Classes

struct  AntennaParams
 parameters of the gNB or UE antenna arrays More...
 
struct  MimoPmiParams
 parameters for the search of optimal rank and precoding matrix indicator (RI, PMI) More...
 

Public Types

enum  OperationBandFlags : uint8_t { INIT_PROPAGATION = 0x01 , INIT_FADING = 0x02 , INIT_CHANNEL = 0x04 }
 Flags for OperationBand initialization. More...
 

Public Member Functions

 NrHelper ()
 NrHelper constructor.
 
 ~NrHelper () override
 ~NrHelper
 
void ActivateDataRadioBearer (NetDeviceContainer ueDevices, EpsBearer bearer)
 Activate a Data Radio Bearer on a given UE devices. More...
 
void ActivateDataRadioBearer (Ptr< NetDevice > ueDevice, EpsBearer bearer)
 Activate a Data Radio Bearer on a UE device. More...
 
uint8_t ActivateDedicatedEpsBearer (NetDeviceContainer ueDevices, EpsBearer bearer, Ptr< EpcTft > tft)
 
uint8_t ActivateDedicatedEpsBearer (Ptr< NetDevice > ueDevice, EpsBearer bearer, Ptr< EpcTft > tft)
 
int64_t AssignStreams (NetDeviceContainer c, int64_t stream)
 
void AttachToClosestEnb (NetDeviceContainer ueDevices, NetDeviceContainer enbDevices)
 Attach the UE specified to the closest GNB. More...
 
void AttachToEnb (const Ptr< NetDevice > &ueDevice, const Ptr< NetDevice > &gnbDevice)
 Attach a UE to a particular GNB. More...
 
void DeActivateDedicatedEpsBearer (Ptr< NetDevice > ueDevice, Ptr< NetDevice > enbDevice, uint8_t bearerId)
 Manually trigger dedicated bearer de-activation at specific simulation time. More...
 
void EnableDlCtrlPathlossTraces (NetDeviceContainer &netDeviceContainer)
 
void EnableDlCtrlPhyTraces ()
 Enable DL CTRL PHY traces.
 
void EnableDlDataPathlossTraces (NetDeviceContainer &netDeviceContainer)
 
void EnableDlDataPhyTraces ()
 Enable DL DATA PHY traces.
 
void EnableDlMacSchedTraces ()
 
void EnableGnbMacCtrlMsgsTraces ()
 Enable gNB MAC CTRL TX and RX traces.
 
void EnableGnbPacketCountTrace ()
 Enable gNB packet count trace.
 
void EnableGnbPhyCtrlMsgsTraces ()
 Enable gNB PHY CTRL TX and RX traces.
 
void EnablePathlossTraces ()
 Enable trace sinks for DL and UL pathloss.
 
void EnablePdcpE2eTraces ()
 Enable PDCP calculator and end-to-end PDCP traces to file.
 
void EnablePdcpSimpleTraces ()
 Enable PDCP traces (DL PDCP TX, DL PDCP RX, UL PDCP TX, UL PDCP RX)
 
void EnableRlcE2eTraces ()
 Enable RLC calculator and end-to-end RCL traces to file.
 
void EnableRlcSimpleTraces ()
 Enable RLC simple traces (DL RLC TX, DL RLC RX, UL DL TX, UL DL RX)
 
void EnableTraces ()
 Enables the following traces: Transmitted/Received Control Messages DL/UL Phy Traces RLC traces PDCP traces.
 
void EnableTransportBlockTrace ()
 Enable transport block trace. More...
 
void EnableUeMacCtrlMsgsTraces ()
 Enable UE MAC CTRL TX and RX traces.
 
void EnableUePacketCountTrace ()
 Enable UE packet count trace.
 
void EnableUePhyCtrlMsgsTraces ()
 Enable UE PHY CTRL TX and RX traces.
 
void EnableUlMacSchedTraces ()
 
void EnableUlPhyTraces ()
 Enable UL PHY traces.
 
bool GetHarqEnabled () const
 GetHarqEnabled. More...
 
Ptr< NrBearerStatsCalculatorGetPdcpStatsCalculator ()
 Get the PDCP stats calculator object. More...
 
Ptr< NrPhyRxTraceGetPhyRxTrace ()
 Get the phy traces object. More...
 
Ptr< NrBearerStatsCalculatorGetRlcStatsCalculator ()
 Get the RLC stats calculator object. More...
 
bool GetSnrTest () const
 GetSnrTest. More...
 
void InitializeOperationBand (OperationBandInfo *band, uint8_t flags=INIT_PROPAGATION|INIT_FADING|INIT_CHANNEL)
 Initialize the bandwidth parts by creating and configuring the channel models, if they are not already initialized. More...
 
NetDeviceContainer InstallGnbDevice (const NodeContainer &c, const std::vector< std::reference_wrapper< BandwidthPartInfoPtr >> allBwps)
 Install one (or more) GNBs. More...
 
NetDeviceContainer InstallUeDevice (const NodeContainer &c, const std::vector< std::reference_wrapper< BandwidthPartInfoPtr >> &allBwps)
 Install one (or more) UEs. More...
 
void SetBeamformingHelper (Ptr< BeamformingHelperBase > beamformingHelper)
 Set an ideal beamforming helper. More...
 
void SetChannelConditionModelAttribute (const std::string &n, const AttributeValue &v)
 
void SetDlErrorModel (const std::string &errorModelTypeId)
 Set the ErrorModel for DL AMC and GNB spectrum at the same time. More...
 
void SetEpcHelper (Ptr< EpcHelper > epcHelper)
 
void SetGnbAntennaAttribute (const std::string &n, const AttributeValue &v)
 Set an attribute for the GNB antenna, before it is created. More...
 
void SetGnbBeamManagerAttribute (const std::string &n, const AttributeValue &v)
 
void SetGnbBeamManagerTypeId (const TypeId &typeId)
 Set the TypeId of the beam manager. More...
 
void SetGnbBwpManagerAlgorithmAttribute (const std::string &n, const AttributeValue &v)
 Set an attribute for the GNB BWP Manager, before it is created. More...
 
void SetGnbBwpManagerAlgorithmTypeId (const TypeId &typeId)
 Set the TypeId of the GNB BWP Manager. Works only before it is created. More...
 
void SetGnbChannelAccessManagerAttribute (const std::string &n, const AttributeValue &v)
 Set an attribute for the GNB channel access manager, before it is created. More...
 
void SetGnbChannelAccessManagerTypeId (const TypeId &typeId)
 Set the TypeId of the GNB Channel Access Manager. Works only before it is created. More...
 
void SetGnbDlAmcAttribute (const std::string &n, const AttributeValue &v)
 
void SetGnbMacAttribute (const std::string &n, const AttributeValue &v)
 Set an attribute for the GNB MAC, before it is created. More...
 
void SetGnbPhyAttribute (const std::string &n, const AttributeValue &v)
 Set an attribute for the GNB PHY, before it is created. More...
 
void SetGnbSpectrumAttribute (const std::string &n, const AttributeValue &v)
 Set an attribute for the GNB spectrum, before it is created. More...
 
void SetGnbUlAmcAttribute (const std::string &n, const AttributeValue &v)
 
void SetHarqEnabled (bool harqEnabled)
 SetHarqEnabled. More...
 
void SetPathlossAttribute (const std::string &n, const AttributeValue &v)
 
void SetPhasedArraySpectrumPropagationLossModelAttribute (const std::string &n, const AttributeValue &v)
 Set an attribute for the PhasedArraySpectrumPropagationLossModel before it is created. More...
 
void SetPhasedArraySpectrumPropagationLossModelTypeId (const TypeId &typeId)
 
void SetPmSearchAttribute (const std::string &name, const AttributeValue &value)
 Set attribute of the precoding matrix search algorithm. More...
 
void SetPmSearchTypeId (const TypeId &typeId)
 Set TypeId of the precoding matrix search algorithm. More...
 
void SetSchedulerAttribute (const std::string &n, const AttributeValue &v)
 Set an attribute for the scheduler, before it is created. More...
 
void SetSchedulerTypeId (const TypeId &typeId)
 Set the Scheduler TypeId. Works only before it is created. More...
 
void SetSnrTest (bool snrTest)
 SetSnrTest. More...
 
void SetUeAntennaAttribute (const std::string &n, const AttributeValue &v)
 Set an attribute for the UE antenna, before it is created. More...
 
void SetUeBwpManagerAlgorithmAttribute (const std::string &n, const AttributeValue &v)
 Set an attribute for the GNB BWP Manager, before it is created. More...
 
void SetUeBwpManagerAlgorithmTypeId (const TypeId &typeId)
 Set the TypeId of the UE BWP Manager. Works only before it is created. More...
 
void SetUeChannelAccessManagerAttribute (const std::string &n, const AttributeValue &v)
 Set an attribute for the UE channel access manager, before it is created. More...
 
void SetUeChannelAccessManagerTypeId (const TypeId &typeId)
 Set the TypeId of the UE Channel Access Manager. Works only before it is created. More...
 
void SetUeMacAttribute (const std::string &n, const AttributeValue &v)
 Set an attribute for the UE MAC, before it is created. More...
 
void SetUePhyAttribute (const std::string &n, const AttributeValue &v)
 Set an attribute for the UE PHY, before it is created. More...
 
void SetUeSpectrumAttribute (const std::string &n, const AttributeValue &v)
 Set an attribute for the UE spectrum, before it is created. More...
 
void SetUlErrorModel (const std::string &errorModelTypeId)
 Set the ErrorModel for UL AMC and UE spectrum at the same time. More...
 
void SetupGnbAntennas (const AntennaParams &ap)
 Set parameters for gNB and UE antenna arrays. More...
 
void SetupMimoPmi (const MimoPmiParams &mp)
 Set parameters for PMI search in MIMO operation. More...
 
void SetupUeAntennas (const AntennaParams &ap)
 Set parameters for gNB and UE antenna arrays. More...
 

Static Public Member Functions

static Ptr< BwpManagerGnbGetBwpManagerGnb (const Ptr< NetDevice > &gnbDevice)
 Get the BwpManager of the GNB. More...
 
static Ptr< BwpManagerUeGetBwpManagerUe (const Ptr< NetDevice > &ueDevice)
 Get the BwpManager of the UE. More...
 
static Ptr< NrGnbMacGetGnbMac (const Ptr< NetDevice > &gnbDevice, uint32_t bwpIndex)
 Get a pointer to the MAC of the GNB at the specified BWP. More...
 
static Ptr< NrGnbPhyGetGnbPhy (const Ptr< NetDevice > &gnbDevice, uint32_t bwpIndex)
 Get a pointer to the PHY of the GNB at the specified BWP. More...
 
static uint32_t GetNumberBwp (const Ptr< const NetDevice > &gnbDevice)
 Get the number of configured BWP for a specific GNB NetDevice. More...
 
static Ptr< NrMacSchedulerGetScheduler (const Ptr< NetDevice > &gnbDevice, uint32_t bwpIndex)
 Get the Scheduler from the GNB specified. More...
 
static TypeId GetTypeId ()
 GetTypeId. More...
 
static Ptr< NrUeMacGetUeMac (const Ptr< NetDevice > &ueDevice, uint32_t bwpIndex)
 Get a pointer to the MAC of the UE at the specified BWP. More...
 
static Ptr< NrUePhyGetUePhy (const Ptr< NetDevice > &ueDevice, uint32_t bwpIndex)
 Get a pointer to the PHY of the UE at the specified BWP. More...
 

Detailed Description

Helper for a correct setup of every NR simulation.

This class will help you in setting up a single- or multi-cell scenario with NR. Most probably, you will interact with the NR module only through this class, so make sure everything that is written in the following is clear enough to start creating your own scenario.

Pre-requisite: Node creation and placement

We assume that you read the ns-3 tutorials, and you're able to create your own node placement, as well as the mobility model that you prefer for your scenario. For simple cases, we provide a class that can help you in setting up a grid-like scenario. Please take a look at the GridScenarioHelper documentation in that case.

Creating the helper

Usually, the helper is created on the heap, and have to live till the end of the simulation program:

  Ptr<NrPointToPointEpcHelper> epcHelper = CreateObject<NrPointToPointEpcHelper> ();
  Ptr<IdealBeamformingHelper> idealBeamformingHelper = CreateObject<IdealBeamformingHelper>();
  Ptr<NrHelper> nrHelper = CreateObject<NrHelper> ();

  nrHelper->SetBeamformingHelper (idealBeamformingHelper);
  nrHelper->SetEpcHelper (epcHelper);

As you can see, we have created two other object that can help this class: the IdealBeamformingHelper and the NrPointToPointEpcHelper. Please refer to the documentation of such classes if you need more information about them.

Dividing the spectrum and creating the channels

The spectrum management is delegated to the class CcBwpHelper. Please refer to its documentation to have more information. After having divided the spectrum in component carriers and bandwidth part, use the method InitializeOperationBand() to create the channels and other things that will be used by the channel modeling part.

Configuring the cells

After the spectrum part is ready, it is time to check how to configure the cells. The configuration is done in the most typical ns-3 way, through the Attributes. We assume that you already know what an attribute is; if not, please read the ns-3 documentation about objects and attributes.

We have two different ways to configure the attributes of our objects (and, therefore, configure the cell). The first is before the object are created: as this class is responsible to create all the object that are needed in the module, we provide many methods (prefixed with "Set") that can store the attribute values for the objects, until they are created and then these values applied. For instance, we can set the antenna dimensions for all the UEs with:

  // Antennas for all the UEs
  nrHelper->SetUeAntennaAttribute ("NumRows", UintegerValue (2));
  nrHelper->SetUeAntennaAttribute ("NumColumns", UintegerValue (4));

These attributes will be stored, and then used inside the creation methods InstallGnbDevice() and InstallUeDevice(). In this case, the antenna dimensions will be taken inside the InstallUeDevice() method, and all the UEs created will have these dimensions.

Of course, it is possible to divide the nodes, and install them separately with different attributes. For example:

  NodeContainer ueFirstSet;
  NodeContainer ueSecondSet;
  ...
  nrHelper->SetUeAntennaAttribute ("NumRows", UintegerValue (2));
  nrHelper->SetUeAntennaAttribute ("NumColumns", UintegerValue (4));
  ...
  NetDeviceContainer ueFirstSetNetDevs = nrHelper->InstallUeDevice (ueFirstSet, allBwps);
  ...
  // Then, prepare the second set:
  nrHelper->SetUeAntennaAttribute ("NumRows", UintegerValue (4));
  nrHelper->SetUeAntennaAttribute ("NumColumns", UintegerValue (8));
  ...
  NetDeviceContainer ueSecondSetNetDevs = nrHelper->InstallUeDevice (ueSecondSet, allBwps);
  ...

In this way, you can configure different sets of nodes with different properties.

The second configuration option is setting the attributes after the object are created. Once you have a pointer to the object, you can use the Object::SetAttribute() method on it. To get the pointer, use one of the helper methods to retrieve a pointer to the PHY, MAC, or scheduler, given the index of the bandwidth part:

  ...
  NetDeviceContainer enbNetDev = nrHelper->InstallGnbDevice (gnbContainer, allBwps);
  nrHelper->GetGnbPhy (enbNetDev.Get (0), 0)->SetAttribute ("Numerology", UintegerValue (2));

In the snippet, we are selecting the first gnb (enbNetDev.Get (0)) and then selecting the first BWP (, 0). We are using the method GetGnbPhy() to obtain the PHY pointer, and then setting the Numerology attribute on it. The list of attributes is present in the class description, as well as some reminder on how configure it through the helper.

Installing UEs and GNBs

The installation part is done through two methods: InstallGnbDevice() and InstallUeDevice(). Pass to these methods the container of the nodes, plus the spectrum configuration that comes from CcBwpHelper.

Finishing the configuration

After you finish the configuration, please remember to call UpdateConfig() on all the NetDevices:

  for (auto it = enbNetDev.Begin (); it != enbNetDev.End (); ++it)
    {
      DynamicCast<NrGnbNetDevice> (*it)->UpdateConfig ();
    }

  for (auto it = ueNetDev.Begin (); it != ueNetDev.End (); ++it)
    {
      DynamicCast<NrUeNetDevice> (*it)->UpdateConfig ();
    }

The call to UpdateConfig() will finish the configuration, and update the RRC layer.

Dedicated bearers

We have methods to open dedicated UE bearers: ActivateDedicatedEpsBearer() and DeActivateDedicatedEpsBearer(). Please take a look at their documentation for more information.

Attachment of UEs to GNBs

We provide two methods to attach a set of UE to a GNB: AttachToClosestEnb() and AttachToEnb(). Through these function, you will manually attach one or more UEs to a specified GNB.

Traces

We provide a method that enables the generation of files that include among others information related to the received packets at the gNB and UE side, the control messages transmitted and received from/at the gNB and UE side, the SINR, as well as RLC and PDCP statistics such as the packet size. Please refer to their documentation for more information. Enabling the traces is done by simply adding the method enableTraces() in the scenario.

Introspection did not find any typical Config paths.

Attributes

  • HarqEnabled: Enable Hybrid ARQ
    • Set with class: BooleanValue
    • Underlying type: bool
    • Initial value: true
    • Flags: construct write read

No TraceSources are defined for this type.
Size of this type is 992 bytes (on a 64-bit architecture).

Definition at line 202 of file nr-helper.h.

Member Enumeration Documentation

◆ OperationBandFlags

Flags for OperationBand initialization.

Enumerator
INIT_PROPAGATION 

Initialize the propagation loss model.

INIT_FADING 

Initialize the fading model.

INIT_CHANNEL 

Initialize the channel model.

Definition at line 384 of file nr-helper.h.

Member Function Documentation

◆ ActivateDataRadioBearer() [1/2]

void ns3::NrHelper::ActivateDataRadioBearer ( NetDeviceContainer  ueDevices,
EpsBearer  bearer 
)

Activate a Data Radio Bearer on a given UE devices.

Parameters
ueDevicesthe set of UE devices
bearerthe characteristics of the bearer to be activated

Definition at line 1573 of file nr-helper.cc.

◆ ActivateDataRadioBearer() [2/2]

void ns3::NrHelper::ActivateDataRadioBearer ( Ptr< NetDevice >  ueDevice,
EpsBearer  bearer 
)

Activate a Data Radio Bearer on a UE device.

This method will schedule the actual activation the bearer so that it happens after the UE got connected.

Parameters
ueDevicethe UE device
bearerthe characteristics of the bearer to be activated

Definition at line 1583 of file nr-helper.cc.

◆ ActivateDedicatedEpsBearer() [1/2]

uint8_t ns3::NrHelper::ActivateDedicatedEpsBearer ( NetDeviceContainer  ueDevices,
EpsBearer  bearer,
Ptr< EpcTft >  tft 
)

Activate a dedicated EPS bearer on a given set of UE devices.

Parameters
ueDevicesthe set of UE devices
bearerthe characteristics of the bearer to be activated
tftthe Traffic Flow Template that identifies the traffic to go on this bearer
Returns
bearer ID

Definition at line 1148 of file nr-helper.cc.

◆ ActivateDedicatedEpsBearer() [2/2]

uint8_t ns3::NrHelper::ActivateDedicatedEpsBearer ( Ptr< NetDevice >  ueDevice,
EpsBearer  bearer,
Ptr< EpcTft >  tft 
)

Activate a dedicated EPS bearer on a given UE device.

Parameters
ueDevicethe UE device
bearerthe characteristics of the bearer to be activated
tftthe Traffic Flow Template that identifies the traffic to go on this bearer.
Returns
bearer ID

Definition at line 1162 of file nr-helper.cc.

◆ AssignStreams()

int64_t ns3::NrHelper::AssignStreams ( NetDeviceContainer  c,
int64_t  stream 
)

Assign a fixed random variable stream number to the random variables used.

The InstallGnbDevice() or InstallUeDevice method should have previously been called by the user on the given devices.

Parameters
cNetDeviceContainer of the set of net devices for which the LteNetDevice should be modified to use a fixed stream
streamfirst stream index to use
Returns
the number of stream indices (possibly zero) that have been assigned

Definition at line 1375 of file nr-helper.cc.

◆ AttachToClosestEnb()

void ns3::NrHelper::AttachToClosestEnb ( NetDeviceContainer  ueDevices,
NetDeviceContainer  enbDevices 
)

Attach the UE specified to the closest GNB.

Parameters
ueDevicesUE devices to attach
enbDevicesGNB devices from which the algorithm has to select the closest

Definition at line 1052 of file nr-helper.cc.

◆ AttachToEnb()

void ns3::NrHelper::AttachToEnb ( const Ptr< NetDevice > &  ueDevice,
const Ptr< NetDevice > &  gnbDevice 
)

Attach a UE to a particular GNB.

Parameters
ueDevicethe UE device
gnbDevicethe GNB device to which attach the UE

Definition at line 1086 of file nr-helper.cc.

References ns3::NrPmSearch::SetGnbParams().

+ Here is the call graph for this function:

◆ DeActivateDedicatedEpsBearer()

void ns3::NrHelper::DeActivateDedicatedEpsBearer ( Ptr< NetDevice >  ueDevice,
Ptr< NetDevice >  enbDevice,
uint8_t  bearerId 
)

Manually trigger dedicated bearer de-activation at specific simulation time.

Parameters
ueDevicethe UE on which dedicated bearer to be de-activated must be of the type LteUeNetDevice
enbDeviceeNB, must be of the type LteEnbNetDevice
bearerIdBearer Identity which is to be de-activated
Warning
Requires the use of EPC mode. See SetEpcHelper() method.

Definition at line 1174 of file nr-helper.cc.

◆ EnableDlMacSchedTraces()

void ns3::NrHelper::EnableDlMacSchedTraces ( )

Enable trace sinks for DL MAC layer scheduling.

Definition at line 1774 of file nr-helper.cc.

References ns3::NrMacSchedulingStats::DlSchedulingCallback().

Referenced by EnableTraces().

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

◆ EnableTransportBlockTrace()

void ns3::NrHelper::EnableTransportBlockTrace ( )

Enable transport block trace.

At the time of writing this documentation this method only connect the ReportDownlinkTbSize of NrUePhy.

Definition at line 1724 of file nr-helper.cc.

◆ EnableUlMacSchedTraces()

void ns3::NrHelper::EnableUlMacSchedTraces ( )

Enable trace sinks for UL MAC layer scheduling.

Definition at line 1783 of file nr-helper.cc.

References ns3::NrMacSchedulingStats::UlSchedulingCallback().

Referenced by EnableTraces().

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

◆ GetBwpManagerGnb()

Ptr< BwpManagerGnb > ns3::NrHelper::GetBwpManagerGnb ( const Ptr< NetDevice > &  gnbDevice)
static

Get the BwpManager of the GNB.

Parameters
gnbDevicethe GNB NetDevice, obtained from InstallGnbDevice()
Returns
A pointer to the BwpManager of the GNB, or nullptr if there are errors

Definition at line 423 of file nr-helper.cc.

◆ GetBwpManagerUe()

Ptr< BwpManagerUe > ns3::NrHelper::GetBwpManagerUe ( const Ptr< NetDevice > &  ueDevice)
static

Get the BwpManager of the UE.

Parameters
ueDevicethe UE NetDevice, obtained from InstallGnbDevice()
Returns
A pointer to the BwpManager of the UE, or nullptr if there are errors

Definition at line 437 of file nr-helper.cc.

◆ GetGnbMac()

Ptr< NrGnbMac > ns3::NrHelper::GetGnbMac ( const Ptr< NetDevice > &  gnbDevice,
uint32_t  bwpIndex 
)
static

Get a pointer to the MAC of the GNB at the specified BWP.

Parameters
gnbDeviceThe GNB NetDevice, obtained from InstallGnbDevice()
bwpIndexThe index of the BWP required
Returns
A pointer to the MAC layer of the GNB, or nullptr if there are errors

Definition at line 384 of file nr-helper.cc.

◆ GetGnbPhy()

Ptr< NrGnbPhy > ns3::NrHelper::GetGnbPhy ( const Ptr< NetDevice > &  gnbDevice,
uint32_t  bwpIndex 
)
static

Get a pointer to the PHY of the GNB at the specified BWP.

Parameters
gnbDeviceThe GNB NetDevice, obtained from InstallGnbDevice()
bwpIndexThe index of the BWP required
Returns
A pointer to the PHY layer of the GNB, or nullptr if there are errors

Definition at line 371 of file nr-helper.cc.

◆ GetHarqEnabled()

bool ns3::NrHelper::GetHarqEnabled ( ) const

GetHarqEnabled.

Returns
the value of HarqEnabled variable

Definition at line 471 of file nr-helper.cc.

◆ GetNumberBwp()

uint32_t ns3::NrHelper::GetNumberBwp ( const Ptr< const NetDevice > &  gnbDevice)
static

Get the number of configured BWP for a specific GNB NetDevice.

Parameters
gnbDeviceThe GNB NetDevice, obtained from InstallGnbDevice()
Returns
the number of BWP installed, or 0 if there are errors

Definition at line 359 of file nr-helper.cc.

◆ GetPdcpStatsCalculator()

Ptr< NrBearerStatsCalculator > ns3::NrHelper::GetPdcpStatsCalculator ( )

Get the PDCP stats calculator object.

Returns
The NrBearerStatsCalculator stats calculator object to write PDCP traces

Definition at line 1767 of file nr-helper.cc.

References ns3::NrBearerStatsConnector::GetPdcpStats().

+ Here is the call graph for this function:

◆ GetPhyRxTrace()

Ptr< NrPhyRxTrace > ns3::NrHelper::GetPhyRxTrace ( )

Get the phy traces object.

Returns
The NrPhyRxTrace object to write PHY traces

Definition at line 1625 of file nr-helper.cc.

◆ GetRlcStatsCalculator()

Ptr< NrBearerStatsCalculator > ns3::NrHelper::GetRlcStatsCalculator ( )

Get the RLC stats calculator object.

Returns
The NrBearerStatsCalculator stats calculator object to write RLC traces

Definition at line 1760 of file nr-helper.cc.

References ns3::NrBearerStatsConnector::GetRlcStats().

+ Here is the call graph for this function:

◆ GetScheduler()

Ptr< NrMacScheduler > ns3::NrHelper::GetScheduler ( const Ptr< NetDevice > &  gnbDevice,
uint32_t  bwpIndex 
)
static

Get the Scheduler from the GNB specified.

Parameters
gnbDeviceThe GNB NetDevice, obtained from InstallGnbDevice()
bwpIndexThe index of the BWP required
Returns
A pointer to the scheduler, or nullptr if there are errors

Definition at line 451 of file nr-helper.cc.

◆ GetSnrTest()

bool ns3::NrHelper::GetSnrTest ( ) const

GetSnrTest.

Returns
the value of SnrTest variable

Definition at line 483 of file nr-helper.cc.

◆ GetTypeId()

TypeId ns3::NrHelper::GetTypeId ( )
static

GetTypeId.

Returns
the type id of the object

Definition at line 102 of file nr-helper.cc.

References ns3::NrPmSearchFull::GetTypeId(), and SetPmSearchTypeId().

+ Here is the call graph for this function:

◆ GetUeMac()

Ptr< NrUeMac > ns3::NrHelper::GetUeMac ( const Ptr< NetDevice > &  ueDevice,
uint32_t  bwpIndex 
)
static

Get a pointer to the MAC of the UE at the specified BWP.

Parameters
ueDeviceThe UE NetDevice, obtained from InstallUeDevice()
bwpIndexThe index of the BWP required
Returns
A pointer to the MAC layer of the UE, or nullptr if there are errors

Definition at line 397 of file nr-helper.cc.

◆ GetUePhy()

Ptr< NrUePhy > ns3::NrHelper::GetUePhy ( const Ptr< NetDevice > &  ueDevice,
uint32_t  bwpIndex 
)
static

Get a pointer to the PHY of the UE at the specified BWP.

Parameters
ueDeviceThe UE NetDevice, obtained from InstallUeDevice()
bwpIndexThe index of the BWP required
Returns
A pointer to the PHY layer of the UE, or nullptr if there are errors

Definition at line 410 of file nr-helper.cc.

◆ InitializeOperationBand()

◆ InstallGnbDevice()

NetDeviceContainer ns3::NrHelper::InstallGnbDevice ( const NodeContainer &  c,
const std::vector< std::reference_wrapper< BandwidthPartInfoPtr >>  allBwps 
)

Install one (or more) GNBs.

Parameters
cNode container with the GNB
allBwpsThe spectrum configuration that comes from CcBwpHelper
Returns
a NetDeviceContainer with the net devices that have been installed.

Definition at line 506 of file nr-helper.cc.

◆ InstallUeDevice()

NetDeviceContainer ns3::NrHelper::InstallUeDevice ( const NodeContainer &  c,
const std::vector< std::reference_wrapper< BandwidthPartInfoPtr >> &  allBwps 
)

Install one (or more) UEs.

Parameters
cNode container with the UEs
allBwpsThe spectrum configuration that comes from CcBwpHelper
Returns
a NetDeviceContainer with the net devices that have been installed.

Definition at line 489 of file nr-helper.cc.

◆ SetBeamformingHelper()

void ns3::NrHelper::SetBeamformingHelper ( Ptr< BeamformingHelperBase beamformingHelper)

Set an ideal beamforming helper.

Parameters
beamformingHelpera pointer to the beamforming helper

Definition at line 1503 of file nr-helper.cc.

◆ SetChannelConditionModelAttribute()

void ns3::NrHelper::SetChannelConditionModelAttribute ( const std::string &  n,
const AttributeValue &  v 
)

Set an attribute for the Channel Condition model, before it is created.

Parameters
nthe name of the attribute
vthe value of the attribute

Definition at line 1315 of file nr-helper.cc.

◆ SetDlErrorModel()

void ns3::NrHelper::SetDlErrorModel ( const std::string &  errorModelTypeId)

Set the ErrorModel for DL AMC and GNB spectrum at the same time.

Parameters
errorModelTypeIdThe TypeId of the error model

Equivalent to the calls to

  • SetGnbDlAmcAttribute ("ErrorModelType", ....
  • SetUeSpectrumAttribute ("ErrorModelType", ...
See also
NrErrorModel
NrEesmIrT2
NrEesmIrT1
NrEesmCcT1
NrEesmCcT2
NrLteMiErrorModel

Definition at line 1366 of file nr-helper.cc.

References SetGnbDlAmcAttribute(), and SetUeSpectrumAttribute().

+ Here is the call graph for this function:

◆ SetEpcHelper()

void ns3::NrHelper::SetEpcHelper ( Ptr< EpcHelper >  epcHelper)

Set the EpcHelper to be used to setup the EPC network in conjunction with the setup of the LTE radio access network.

Note
if no EpcHelper is ever set, then LteHelper will default to creating a simulation with no EPC, using LteRlcSm as the RLC model, and without supporting any IP networking. In other words, it will be a radio-level simulation involving only LTE PHY and MAC and the Scheduler, with a saturation traffic model for the RLC.
Parameters
epcHelpera pointer to the EpcHelper to be used

Definition at line 1497 of file nr-helper.cc.

◆ SetGnbAntennaAttribute()

void ns3::NrHelper::SetGnbAntennaAttribute ( const std::string &  n,
const AttributeValue &  v 
)

Set an attribute for the GNB antenna, before it is created.

Parameters
nthe name of the attribute
vthe value of the attribute
See also
UniformPlanarArray (in ns-3 documentation)

Definition at line 1258 of file nr-helper.cc.

Referenced by SetupGnbAntennas().

+ Here is the caller graph for this function:

◆ SetGnbBeamManagerTypeId()

void ns3::NrHelper::SetGnbBeamManagerTypeId ( const TypeId &  typeId)

Set the TypeId of the beam manager.

Parameters
typeIdthe type of the object

Definition at line 1350 of file nr-helper.cc.

◆ SetGnbBwpManagerAlgorithmAttribute()

void ns3::NrHelper::SetGnbBwpManagerAlgorithmAttribute ( const std::string &  n,
const AttributeValue &  v 
)

Set an attribute for the GNB BWP Manager, before it is created.

Parameters
nthe name of the attribute
vthe value of the attribute

Definition at line 1474 of file nr-helper.cc.

◆ SetGnbBwpManagerAlgorithmTypeId()

void ns3::NrHelper::SetGnbBwpManagerAlgorithmTypeId ( const TypeId &  typeId)

Set the TypeId of the GNB BWP Manager. Works only before it is created.

Parameters
typeIdType of the object
See also
BwpManagerAlgorithm

Definition at line 1467 of file nr-helper.cc.

◆ SetGnbChannelAccessManagerAttribute()

void ns3::NrHelper::SetGnbChannelAccessManagerAttribute ( const std::string &  n,
const AttributeValue &  v 
)

Set an attribute for the GNB channel access manager, before it is created.

Parameters
nthe name of the attribute
vthe value of the attribute
See also
NrChAccessManager

Definition at line 1223 of file nr-helper.cc.

◆ SetGnbChannelAccessManagerTypeId()

void ns3::NrHelper::SetGnbChannelAccessManagerTypeId ( const TypeId &  typeId)

Set the TypeId of the GNB Channel Access Manager. Works only before it is created.

Parameters
typeIdthe type of the object
See also
NrChAccessManager
NrAlwaysOnAccessManager

Definition at line 1272 of file nr-helper.cc.

◆ SetGnbDlAmcAttribute()

void ns3::NrHelper::SetGnbDlAmcAttribute ( const std::string &  n,
const AttributeValue &  v 
)

Set an attribute for the GNB DL AMC, before it is created.

Parameters
nthe name of the attribute
vthe value of the attribute
See also
NrAmc

Definition at line 1329 of file nr-helper.cc.

Referenced by SetDlErrorModel().

+ Here is the caller graph for this function:

◆ SetGnbMacAttribute()

void ns3::NrHelper::SetGnbMacAttribute ( const std::string &  n,
const AttributeValue &  v 
)

Set an attribute for the GNB MAC, before it is created.

Parameters
nthe name of the attribute
vthe value of the attribute
See also
NrGnbMac

Definition at line 1195 of file nr-helper.cc.

◆ SetGnbPhyAttribute()

void ns3::NrHelper::SetGnbPhyAttribute ( const std::string &  n,
const AttributeValue &  v 
)

Set an attribute for the GNB PHY, before it is created.

Parameters
nthe name of the attribute
vthe value of the attribute
See also
NrGnbPhy

Definition at line 1244 of file nr-helper.cc.

◆ SetGnbSpectrumAttribute()

void ns3::NrHelper::SetGnbSpectrumAttribute ( const std::string &  n,
const AttributeValue &  v 
)

Set an attribute for the GNB spectrum, before it is created.

Parameters
nthe name of the attribute
vthe value of the attribute
See also
NrSpectrumPhy

Definition at line 1202 of file nr-helper.cc.

Referenced by SetUlErrorModel().

+ Here is the caller graph for this function:

◆ SetGnbUlAmcAttribute()

void ns3::NrHelper::SetGnbUlAmcAttribute ( const std::string &  n,
const AttributeValue &  v 
)

Set an attribute for the GNB UL AMC, before it is created.

Parameters
nthe name of the attribute
vthe value of the attribute
See also
NrAmc

Definition at line 1336 of file nr-helper.cc.

Referenced by SetUlErrorModel().

+ Here is the caller graph for this function:

◆ SetHarqEnabled()

void ns3::NrHelper::SetHarqEnabled ( bool  harqEnabled)

SetHarqEnabled.

Parameters
harqEnabledWe never really tested this function, so please be careful when using it.

Definition at line 465 of file nr-helper.cc.

◆ SetPathlossAttribute()

void ns3::NrHelper::SetPathlossAttribute ( const std::string &  n,
const AttributeValue &  v 
)

Set an attribute for the pathloss model, before it is created.

Parameters
nthe name of the attribute
vthe value of the attribute

Definition at line 1322 of file nr-helper.cc.

◆ SetPhasedArraySpectrumPropagationLossModelAttribute()

void ns3::NrHelper::SetPhasedArraySpectrumPropagationLossModelAttribute ( const std::string &  n,
const AttributeValue &  v 
)

Set an attribute for the PhasedArraySpectrumPropagationLossModel before it is created.

Parameters
nthe name of the attribute
vthe value of the attribute

Definition at line 1307 of file nr-helper.cc.

◆ SetPmSearchAttribute()

void ns3::NrHelper::SetPmSearchAttribute ( const std::string &  name,
const AttributeValue &  value 
)

Set attribute of the precoding matrix search algorithm.

Parameters
nameattribute to set
valuevalue of the attribute

Definition at line 1857 of file nr-helper.cc.

Referenced by SetupMimoPmi().

+ Here is the caller graph for this function:

◆ SetPmSearchTypeId()

void ns3::NrHelper::SetPmSearchTypeId ( const TypeId &  typeId)

Set TypeId of the precoding matrix search algorithm.

Parameters
typeIdClass TypeId

Definition at line 1851 of file nr-helper.cc.

Referenced by GetTypeId(), and SetupMimoPmi().

+ Here is the caller graph for this function:

◆ SetSchedulerAttribute()

void ns3::NrHelper::SetSchedulerAttribute ( const std::string &  n,
const AttributeValue &  v 
)

Set an attribute for the scheduler, before it is created.

Parameters
nthe name of the attribute
vthe value of the attribute
See also
NrMacSchedulerNs3

Definition at line 1230 of file nr-helper.cc.

◆ SetSchedulerTypeId()

void ns3::NrHelper::SetSchedulerTypeId ( const TypeId &  typeId)

Set the Scheduler TypeId. Works only before it is created.

Parameters
typeIdThe scheduler type
See also
NrMacSchedulerOfdmaPF
NrMacSchedulerOfdmaRR
NrMacSchedulerOfdmaMR
NrMacSchedulerTdmaPF
NrMacSchedulerTdmaRR
NrMacSchedulerTdmaMR

Definition at line 1279 of file nr-helper.cc.

◆ SetSnrTest()

void ns3::NrHelper::SetSnrTest ( bool  snrTest)

SetSnrTest.

Parameters
snrTestWe never really tested this function, so please be careful when using it.

Definition at line 477 of file nr-helper.cc.

◆ SetUeAntennaAttribute()

void ns3::NrHelper::SetUeAntennaAttribute ( const std::string &  n,
const AttributeValue &  v 
)

Set an attribute for the UE antenna, before it is created.

Parameters
nthe name of the attribute
vthe value of the attribute
See also
UniformPlanarArray (in ns-3 documentation)

Definition at line 1251 of file nr-helper.cc.

Referenced by SetupUeAntennas().

+ Here is the caller graph for this function:

◆ SetUeBwpManagerAlgorithmAttribute()

void ns3::NrHelper::SetUeBwpManagerAlgorithmAttribute ( const std::string &  n,
const AttributeValue &  v 
)

Set an attribute for the GNB BWP Manager, before it is created.

Parameters
nthe name of the attribute
vthe value of the attribute

Definition at line 1300 of file nr-helper.cc.

◆ SetUeBwpManagerAlgorithmTypeId()

void ns3::NrHelper::SetUeBwpManagerAlgorithmTypeId ( const TypeId &  typeId)

Set the TypeId of the UE BWP Manager. Works only before it is created.

Parameters
typeIdType of the object
See also
BwpManagerAlgorithm

Definition at line 1286 of file nr-helper.cc.

◆ SetUeChannelAccessManagerAttribute()

void ns3::NrHelper::SetUeChannelAccessManagerAttribute ( const std::string &  n,
const AttributeValue &  v 
)

Set an attribute for the UE channel access manager, before it is created.

Parameters
nthe name of the attribute
vthe value of the attribute
See also
NrChAccessManager

Definition at line 1216 of file nr-helper.cc.

◆ SetUeChannelAccessManagerTypeId()

void ns3::NrHelper::SetUeChannelAccessManagerTypeId ( const TypeId &  typeId)

Set the TypeId of the UE Channel Access Manager. Works only before it is created.

Parameters
typeIdthe type of the object
See also
NrChAccessManager
NrAlwaysOnAccessManager

Definition at line 1265 of file nr-helper.cc.

◆ SetUeMacAttribute()

void ns3::NrHelper::SetUeMacAttribute ( const std::string &  n,
const AttributeValue &  v 
)

Set an attribute for the UE MAC, before it is created.

Parameters
nthe name of the attribute
vthe value of the attribute
See also
NrUeMac

Definition at line 1188 of file nr-helper.cc.

◆ SetUePhyAttribute()

void ns3::NrHelper::SetUePhyAttribute ( const std::string &  n,
const AttributeValue &  v 
)

Set an attribute for the UE PHY, before it is created.

Parameters
nthe name of the attribute
vthe value of the attribute
See also
NrUePhy

Definition at line 1237 of file nr-helper.cc.

◆ SetUeSpectrumAttribute()

void ns3::NrHelper::SetUeSpectrumAttribute ( const std::string &  n,
const AttributeValue &  v 
)

Set an attribute for the UE spectrum, before it is created.

Parameters
nthe name of the attribute
vthe value of the attribute
See also
NrSpectrumPhy

Definition at line 1209 of file nr-helper.cc.

Referenced by SetDlErrorModel().

+ Here is the caller graph for this function:

◆ SetUlErrorModel()

void ns3::NrHelper::SetUlErrorModel ( const std::string &  errorModelTypeId)

Set the ErrorModel for UL AMC and UE spectrum at the same time.

Parameters
errorModelTypeIdThe TypeId of the error model

Equivalent to the calls to

  • SetGnbUlAmcAttribute ("ErrorModelType", ....
  • SetGnbSpectrumAttribute ("ErrorModelType", ...
See also
NrErrorModel
NrEesmIrT2
NrEesmIrT1
NrEesmCcT1
NrEesmCcT2
NrLteMiErrorModel

Definition at line 1357 of file nr-helper.cc.

References SetGnbSpectrumAttribute(), and SetGnbUlAmcAttribute().

+ Here is the call graph for this function:

◆ SetupGnbAntennas()

void ns3::NrHelper::SetupGnbAntennas ( const AntennaParams ap)

◆ SetupMimoPmi()

void ns3::NrHelper::SetupMimoPmi ( const MimoPmiParams mp)

Set parameters for PMI search in MIMO operation.

Parameters
mpthe struct with MIMO PMI parameters

Definition at line 1894 of file nr-helper.cc.

References ns3::NrHelper::MimoPmiParams::fullSearchCb, ns3::NrPmSearchFull::GetTypeId(), ns3::NrHelper::MimoPmiParams::pmSearchMethod, ns3::NrHelper::MimoPmiParams::rankLimit, SetPmSearchAttribute(), and SetPmSearchTypeId().

+ Here is the call graph for this function:

◆ SetupUeAntennas()


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