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

Spectrum part. More...

#include "cc-bwp-helper.h"

Public Types

enum  Scenario {
  RMa , RMa_LoS , RMa_nLoS , UMa_LoS ,
  UMa_nLoS , UMa , UMi_StreetCanyon , UMi_StreetCanyon_LoS ,
  UMi_StreetCanyon_nLoS , InH_OfficeOpen , InH_OfficeOpen_LoS , InH_OfficeOpen_nLoS ,
  InH_OfficeMixed , InH_OfficeMixed_LoS , InH_OfficeMixed_nLoS , UMa_Buildings ,
  UMi_Buildings , V2V_Highway , V2V_Urban , Custom
}
 Different types for the propagation loss model of this bandwidth part. More...
 

Public Member Functions

 BandwidthPartInfo (uint8_t bwpId, double centralFrequency, double channelBandwidth, enum Scenario scenario=BandwidthPartInfo::Custom)
 
std::string GetScenario () const
 Retrieve a string version of the scenario. More...
 

Public Attributes

Ptr< PhasedArraySpectrumPropagationLossModel > m_3gppChannel
 Nr Channel. Leave it nullptr to let the helper fill it.
 
uint8_t m_bwpId {0}
 BWP id.
 
double m_centralFrequency {0.0}
 BWP central frequency.
 
Ptr< SpectrumChannel > m_channel
 Channel for the Bwp. Leave it nullptr to let the helper fill it.
 
double m_channelBandwidth {0.0}
 BWP bandwidth.
 
double m_higherFrequency {0.0}
 BWP higher frequency.
 
double m_lowerFrequency {0.0}
 BWP lower frequency.
 
Ptr< PropagationLossModel > m_propagation
 Propagation model. Leave it nullptr to let the helper fill it.
 
enum ns3::BandwidthPartInfo::Scenario RMa
 

Detailed Description

Spectrum part.

This is the minimum unit of usable spectrum by a PHY class. For creating any GNB or UE, you will be asked to provide a list of BandwidthPartInfo to the methods NrHelper::InstallGnbDevice() and NrHelper::InstallUeDevice(). The reason is that the helper will, for every GNB and UE in the scenario, create a PHY class that will be attached to the channels included in this struct.

For every bandwidth part (in this context, referred to a spectrum part) you have to indicate the central frequency and the higher/lower frequency, as well as the entire bandwidth plus the modeling.

The pointers to the channels, if left empty, will be initialized by NrHelper::InitializeOperationBand().

Definition at line 49 of file cc-bwp-helper.h.

Member Enumeration Documentation

◆ Scenario

Different types for the propagation loss model of this bandwidth part.

Enumerator
RMa 

RMa.

RMa_LoS 

RMa where all the nodes will be in Line-of-Sight.

RMa_nLoS 

RMA where all the nodes will not be in Line-of-Sight.

UMa_LoS 

UMa where all the nodes will be in Line-of-Sight.

UMa_nLoS 

UMa where all the nodes will not be in Line-of-Sight.

UMa 

UMa.

UMi_StreetCanyon 

UMi_StreetCanyon.

UMi_StreetCanyon_LoS 

UMi_StreetCanyon where all the nodes will be in Line-of-Sight.

UMi_StreetCanyon_nLoS 

UMi_StreetCanyon where all the nodes will not be in Line-of-Sight

InH_OfficeOpen 

InH_OfficeOpen.

InH_OfficeOpen_LoS 

indoor office where all the nodes will be in Line-of-Sight

InH_OfficeOpen_nLoS 

indoor office where all the nodes will not be in Line-of-Sight

InH_OfficeMixed 

InH_OfficeMixed.

InH_OfficeMixed_LoS 

indoor office where all the nodes will be in Line-of-Sight

InH_OfficeMixed_nLoS 

indoor office where all the nodes will not be in Line-of-Sight

UMa_Buildings 

UMa with buildings.

UMi_Buildings 

UMi_StreetCanyon with buildings.

V2V_Highway 

V2V_Highway.

V2V_Urban 

V2V_Urban.

Custom 

User-defined custom scenario.

Definition at line 60 of file cc-bwp-helper.h.

Constructor & Destructor Documentation

◆ BandwidthPartInfo()

ns3::BandwidthPartInfo::BandwidthPartInfo ( uint8_t  bwpId,
double  centralFrequency,
double  channelBandwidth,
enum Scenario  scenario = BandwidthPartInfo::Custom 
)

Parameterized constructor, for directly defining BandwidthPartInfo outside of CcBwpCreator

Use this constructor if you want to customize the propagation models outside of the ThreeGppPropagationModel framework (e.g., s simple Friis loss model with no shadowing or other fading models). After calling this constructor, the user is responsible for setting the m_channel pointer after adding any desired loss and delay models to it; the m_propagation and m_3GppChannel pointers may be left null.

Parameters
bwpIdBandwidth Part ID
centralFrequencyCentral frequency in Hz
channelBandwidthChannel bandwidth in Hz
scenarioThe 3GPP scenario (if applicable). If unset, will default to 'Custom'.

If a 3GPP scenario is desired, the CcBwpCreator should probably be used to initialize the 3GPP propagation modesl properly; this constructor is more aimed at providing an option to configure a non-3GPP model.

An example usage of this constructor to set up a Friis propagation loss model is:

std::vector<std::reference_wrapper<std::unique_ptr<BandwidthPartInfo> > > bwps;
std::unique_ptr<BandwidthPartInfo> bwpi (new BandwidthPartInfo (bwpId, centralFrequency,
bandwidth)); auto spectrumChannel = CreateObject<MultiModelSpectrumChannel> (); auto
propagationLoss = CreateObject<FriisPropagationLossModel> ();
propagationLoss->SetAttributeFailSafe ("Frequency", DoubleValue (centralFrequencyBand1));
spectrumChannel->AddPropagationLossModel (propagationLoss);
bwpi->m_channel = spectrumChannel;
bwps.push_back(bwpi);

Definition at line 453 of file cc-bwp-helper.cc.

References m_higherFrequency, and m_lowerFrequency.

Member Function Documentation

◆ GetScenario()

std::string ns3::BandwidthPartInfo::GetScenario ( ) const

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