5G-LENA nr-v3.1-69-g2dd513a7
The 5G/NR module for the ns-3 simulator
Loading...
Searching...
No Matches

Interface between the physical layer and the channel. More...

#include "nr-spectrum-phy.h"

+ Inheritance diagram for ns3::NrSpectrumPhy:
+ Collaboration diagram for ns3::NrSpectrumPhy:

Public Types

typedef void(* DataSnrTracedCallback) (const SfnSf &sfnSf, const uint16_t cellId, const uint8_t bwpId, const uint64_t imsi, const double snr)
 
typedef Callback< void, const DlHarqInfo & > NrPhyDlHarqFeedbackCallback
 
typedef std::function< void(const std::list< Ptr< NrControlMessage > > &, uint8_t)> NrPhyRxCtrlEndOkCallback
 This callback method type is used to notify that CTRL is received.
 
typedef Callback< void, const Ptr< Packet > & > NrPhyRxDataEndOkCallback
 This callback method type is used to notify that DATA is received.
 
typedef Callback< void, uint16_t, const Ptr< SpectrumValue > & > NrPhyRxPssCallback
 
typedef Callback< void, const UlHarqInfo & > NrPhyUlHarqFeedbackCallback
 
typedef void(* RxDataTracedCallback) (const SfnSf &sfnSf, Ptr< const SpectrumValue > v, const Time &t, uint16_t bwpId, uint16_t cellId)
 TracedCallback signature for RB statistics.
 
typedef Callback< void, uint16_t, uint16_t, double > SrsSinrReportCallback
 
typedef Callback< void, uint16_t, uint16_t, double > SrsSnrReportCallback
 
enum  State {
  IDLE = 0 , TX , RX_DATA , RX_DL_CTRL ,
  RX_UL_CTRL , RX_UL_SRS , CCA_BUSY
}
 Enum that defines possible states of the spectrum phy. More...
 

Public Member Functions

 NrSpectrumPhy ()
 NrSpectrumPhy constructor.
 
 ~NrSpectrumPhy () override
 ~NrSpectrumPhy
 
void AddDataMimoChunkProcessor (const Ptr< NrMimoChunkProcessor > &p)
 
void AddDataPowerChunkProcessor (const Ptr< NrChunkProcessor > &p)
 Adds the chunk processor that will process the power for the data.
 
void AddDataSinrChunkProcessor (const Ptr< NrChunkProcessor > &p)
 Adds the chunk processor that will process the interference.
 
void AddDlCtrlSinrChunkProcessor (const Ptr< NrChunkProcessor > &p)
 Adds the chunk processor that will process the received power.
 
void AddExpectedSrsRnti (uint16_t rnti)
 
void AddExpectedTb (ExpectedTb expectedTb)
 Instruct the Spectrum Model of a incoming transmission.
 
void AddRsPowerChunkProcessor (const Ptr< NrChunkProcessor > &p)
 Adds the chunk processor that will process the received power.
 
void AddSrsSinrChunkProcessor (const Ptr< NrChunkProcessor > &p)
 
void AddSrsSinrReportCallback (SrsSinrReportCallback callback)
 It adds callback to the list of callbacks that will be notified once SRS is being received.
 
void AddSrsSnrReportCallback (SrsSnrReportCallback callback)
 It adds callback to the list of callbacks that will be notified once SRS is being received.
 
int64_t AssignStreams (int64_t stream)
 
void EnableDlCtrlPathlossTrace ()
 
void EnableDlDataPathlossTrace ()
 
Ptr< Object > GetAntenna () const override
 Inherited from SpectrumPhy Note: Implements GetAntenna function from SpectrumPhy.
 
Ptr< BeamManagerGetBeamManager ()
 
uint16_t GetBwpId () const
 
double GetCcaMode1Threshold () const
 
uint16_t GetCellId () const
 
Ptr< NetDevice > GetDevice () const override
 
Ptr< NrErrorModelGetErrorModel () const
 
Ptr< NrHarqPhyGetHarqPhyModule () const
 
Ptr< MobilityModel > GetMobility () const override
 
Ptr< NrInterferenceGetNrInterference () const
 
Ptr< NrPhyGetPhy () const
 
Ptr< const SpectrumModel > GetRxSpectrumModel () const override
 
Ptr< SpectrumChannel > GetSpectrumChannel () const
 Returns spectrum channel object to which is attached this spectrum phy instance.
 
Ptr< const SpectrumValue > GetTxPowerSpectralDensity ()
 
void InstallHarqPhyModule (const Ptr< NrHarqPhy > &harq)
 Install HARQ phy module of this spectrum phy.
 
void InstallPhy (const Ptr< NrPhy > &phyModel)
 Set NrPhy of this spectrum phy in order to be able to obtain information such as cellId, bwpId, etc.
 
bool IsTransmitting ()
 Return true if the current Phy State is TX.
 
void ReportDlCtrlSinr (const SpectrumValue &sinr)
 Called when DlCtrlSinr is fired.
 
void ReportWbDlDataSnrPerceived (const double dlDataSnr)
 Report wideband perceived downlink data SNR.
 
void SetAntenna (Ptr< Object > antenna)
 Sets the antenna of this NrSpectrumPhy instance, currently in NR module it is expected to be of type UniformPlannarArray.
 
void SetBeamManager (Ptr< BeamManager > b)
 
void SetCcaMode1Threshold (double thresholdDBm)
 Set clear channel assessment (CCA) threshold.
 
void SetChannel (Ptr< SpectrumChannel > c) override
 
void SetDataErrorModelEnabled (bool dataErrorModelEnabled)
 Enables or disabled data error model.
 
void SetDevice (Ptr< NetDevice > d) override
 
void SetErrorModel (Ptr< NrErrorModel > em)
 
void SetErrorModelType (TypeId errorModelType)
 Sets the error model type.
 
void SetIsGnb (bool isGnb)
 Set whether this spectrum PHY belongs to Gnb or UE TODO NrHelper should be declared as friend and this function should be private.
 
void SetMobility (Ptr< MobilityModel > m) override
 
void SetNoisePowerSpectralDensity (const Ptr< const SpectrumValue > &noisePsd)
 Sets noise power spectral density to be used by this device.
 
void SetPhyDlHarqFeedbackCallback (const NrPhyDlHarqFeedbackCallback &c)
 Sets the callback to be called when DL HARQ feedback is generated.
 
void SetPhyRxCtrlEndOkCallback (const NrPhyRxCtrlEndOkCallback &c)
 Sets the callback to be called when CTRL is received successfully.
 
void SetPhyRxDataEndOkCallback (const NrPhyRxDataEndOkCallback &c)
 Sets the callback to be called when DATA is received successfully.
 
void SetPhyRxPssCallback (const NrPhyRxPssCallback &c)
 
void SetPhyUlHarqFeedbackCallback (const NrPhyUlHarqFeedbackCallback &c)
 Sets the callback to be called when UL HARQ feedback is generated.
 
void SetRnti (uint16_t rnti)
 
void SetTxPowerSpectralDensity (const Ptr< SpectrumValue > &txPsd)
 Sets transmit power spectral density.
 
void SetUnlicensedMode (bool unlicensedMode)
 Sets whether to perform in unclicensed mode in which the channel monitoring is enabled.
 
void StartRx (Ptr< SpectrumSignalParameters > params) override
 Inherited from SpectrumPhy. When this function is called this spectrum phy starts receiving a signal from its spectrum channel.
 
void StartTxDataFrames (const Ptr< PacketBurst > &pb, const std::list< Ptr< NrControlMessage > > &ctrlMsgList, const std::shared_ptr< DciInfoElementTdma > dci, const Time &duration)
 Starts transmission of data frames on connected spectrum channel object.
 
void StartTxDlControlFrames (const std::list< Ptr< NrControlMessage > > &ctrlMsgList, const Time &duration)
 Starts transmission of DL CTRL.
 
void StartTxUlControlFrames (const std::list< Ptr< NrControlMessage > > &ctrlMsgList, const Time &duration)
 Start transmission of UL CTRL.
 
void UpdateMimoSinrPerceived (const std::vector< MimoSinrChunk > &sinr)
 Store the SINR chunks for all received signals at end of interference calculations.
 
void UpdateSinrPerceived (const SpectrumValue &sinr)
 SpectrumPhy that will be called when the SINR for the received DATA is being calculated by the interference object over DATA chunk processor.
 
void UpdateSrsSinrPerceived (const SpectrumValue &srsSinr)
 SpectrumPhy that will be called when the SINR for the received SRS at gNB is being calculated by the interference object over SRS chunk processor.
 
void UpdateSrsSnrPerceived (const double srsSnr)
 SpectrumPhy that will be called when the SNR for the received SRS at gNB is being calculated.
 

Static Public Member Functions

static TypeId GetTypeId ()
 Get the object TypeId.
 

Protected Member Functions

void DoDispose () override
 DoDispose method inherited from Object.
 

Detailed Description

Interface between the physical layer and the channel.

General information

NrSpectrumPhy models some of the basic physical layer functionalities such as transmitting CTRL or DATA, receiving the signals, decoding them, and distinguishing whether the signal is useful (CTRL, DATA), i.e. sent to this NR device NrPhy instance, or it should be considered as interference. It is also responsible for obtaining measurements, and for HARQ feedback generation by leveraging HARQ module.

This class implements the interface between the NrPhy and the spectrum channel, and provides to NrPhy aforementioned functionalities. Each NR device's NrPhy has its own NrSpectrumPhy that is in charge of providing these basic phy layer functionalities. In order to be able to receive signals from the channel, each NrSpectrumPhy should be registered to listen events from its channel. To achieve that, during the configuration of NR device's NrPhy at some point should be called AddRx function of the spectrum channel to register the NrSpectrumPhy instance as a receiver on that channel.

This class also has the interface with NrInterference class to pass the necessary information for the interference calculation and to obtain the interference calculation results.

Also it has interface with HARQ module, to which it passes necessary information for the HARQ feedback generation, which is then forwarded to NrPhy.

Configuration

The user can configure the class using the method NrHelper::SetGnbSpectrumAttribute(), or NrHelper::SetUeSpectrumAttribute(), depending on the type of user you want to configure, or by directly calling SetAttribute on the pointer. The list of attributes is reported below, in the Attributes section.

Config Paths

ns3::NrSpectrumPhy is accessible through the following paths with Config::Set and Config::Connect:

Attributes

  • DataErrorModelEnabled: Activate/Deactivate the error model of data (TBs of PDSCH and PUSCH) [by default is active].
    • Set with class: ns3::BooleanValue
    • Underlying type: bool
    • Initial value: true
    • Flags: construct write
  • ErrorModelType: Default type of the Error Model to apply to TBs of PDSCH and PUSCH
    • Set with class: ns3::TypeIdValue
    • Underlying type: TypeId
    • Initial value: ns3::NrLteMiErrorModel
    • Flags: construct write
  • UnlicensedMode: Activate/Deactivate unlicensed mode in which energy detection is performed and PHY state machine has an additional state CCA_BUSY.
    • Set with class: ns3::BooleanValue
    • Underlying type: bool
    • Initial value: false
    • Flags: construct write
  • CcaMode1Threshold: The energy of a received signal should be higher than this threshold (dbm) to allow the PHY layer to declare CCA BUSY state.
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: -62
    • Flags: construct write read

TraceSources

  • RxPacketTraceGnb: The no. of packets received and transmitted by the Base Station
    Callback signature: ns3::RxPacketTraceParams::TracedCallback
  • TxPacketTraceGnb: Traces when the packet is being transmitted by the Base Station
    Callback signature: ns3::GnbPhyPacketCountParameter::TracedCallback
  • RxPacketTraceUe: The no. of packets received and transmitted by the User Device
    Callback signature: ns3::RxPacketTraceParams::TracedCallback
  • ChannelOccupied: This traced callback is triggered every time that the channel is occupied
    Callback signature: ns3::Time::TracedCallback
  • TxDataTrace: Indicates when the channel is being occupied by a data transmission
    Callback signature: ns3::Time::TracedCallback
  • TxCtrlTrace: Indicates when the channel is being occupied by a ctrl transmission
    Callback signature: ns3::Time::TracedCallback
  • RxDataTrace: Indicates the reception of data from this cell (reporting the rxPsd without interferences)
    Callback signature: ns3::RxDataTracedCallback::TracedCallback
  • DlDataSnrTrace: Report the SNR computed for each TB in DL
    Callback signature: ns3::NrSpectrumPhy::DataSnrTracedCallback
  • DlCtrlPathloss: Pathloss calculated for CTRL
    Callback signature: ns3::NrSpectrumPhy::DlPathlossTrace
  • DlDataPathloss: Pathloss calculated for CTRL
    Callback signature: ns3::NrSpectrumPhy::DlPathlossTrace

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

Definition at line 70 of file nr-spectrum-phy.h.

Member Typedef Documentation

◆ DataSnrTracedCallback

typedef void(* ns3::NrSpectrumPhy::DataSnrTracedCallback) (const SfnSf &sfnSf, const uint16_t cellId, const uint8_t bwpId, const uint64_t imsi, const double snr)
Parameters
[in]sfnSfSfnSf
[in]cellId
[in]bwpId
[in]imsi
[in]snr

Definition at line 446 of file nr-spectrum-phy.h.

◆ NrPhyDlHarqFeedbackCallback

This callback method type is used by the NrSpectrumPhy to notify the PHY about the status of a DL HARQ feedback

Definition at line 124 of file nr-spectrum-phy.h.

◆ NrPhyRxCtrlEndOkCallback

typedef std::function<void(const std::list<Ptr<NrControlMessage>>&, uint8_t)> ns3::NrSpectrumPhy::NrPhyRxCtrlEndOkCallback

This callback method type is used to notify that CTRL is received.

Definition at line 112 of file nr-spectrum-phy.h.

◆ NrPhyRxDataEndOkCallback

typedef Callback<void, const Ptr<Packet>&> ns3::NrSpectrumPhy::NrPhyRxDataEndOkCallback

This callback method type is used to notify that DATA is received.

Definition at line 107 of file nr-spectrum-phy.h.

◆ NrPhyRxPssCallback

typedef Callback<void, uint16_t, const Ptr<SpectrumValue>&> ns3::NrSpectrumPhy::NrPhyRxPssCallback

This method is used by the NrSpectrumPhy to notify the UE PHY that a PSS has been received

Definition at line 118 of file nr-spectrum-phy.h.

◆ NrPhyUlHarqFeedbackCallback

This callback method type is used by the NrSpectrumPhy to notify the PHY about the status of a UL HARQ feedback

Definition at line 129 of file nr-spectrum-phy.h.

◆ RxDataTracedCallback

typedef void(* ns3::NrSpectrumPhy::RxDataTracedCallback) (const SfnSf &sfnSf, Ptr< const SpectrumValue > v, const Time &t, uint16_t bwpId, uint16_t cellId)

TracedCallback signature for RB statistics.

Parameters
[in]sfnSfSfnSf
[in]vrxPsd values
[in]tduration of the reception
[in]bwpIdBWP ID
[in]cellIdCell ID

Definition at line 399 of file nr-spectrum-phy.h.

◆ SrsSinrReportCallback

typedef Callback<void, uint16_t, uint16_t, double> ns3::NrSpectrumPhy::SrsSinrReportCallback

Definition at line 410 of file nr-spectrum-phy.h.

◆ SrsSnrReportCallback

typedef Callback<void, uint16_t, uint16_t, double> ns3::NrSpectrumPhy::SrsSnrReportCallback

Definition at line 411 of file nr-spectrum-phy.h.

Member Enumeration Documentation

◆ State

Enum that defines possible states of the spectrum phy.

Enumerator
IDLE 

IDLE state (no action in progress)

TX 

Transmitting state (data or ctrl)

RX_DATA 

Receiving data.

RX_DL_CTRL 

receiving DL CTRL

RX_UL_CTRL 

Receiving UL CTRL.

RX_UL_SRS 

Receiving SRS.

CCA_BUSY 

BUSY state (channel occupied by another entity)

Definition at line 92 of file nr-spectrum-phy.h.

Constructor & Destructor Documentation

◆ NrSpectrumPhy()

ns3::NrSpectrumPhy::NrSpectrumPhy ( )

NrSpectrumPhy constructor.

Definition at line 59 of file nr-spectrum-phy.cc.

◆ ~NrSpectrumPhy()

ns3::NrSpectrumPhy::~NrSpectrumPhy ( )
override

~NrSpectrumPhy

Definition at line 69 of file nr-spectrum-phy.cc.

Member Function Documentation

◆ AddDataMimoChunkProcessor()

void ns3::NrSpectrumPhy::AddDataMimoChunkProcessor ( const Ptr< NrMimoChunkProcessor > &  p)

Definition at line 1710 of file nr-spectrum-phy.cc.

◆ AddDataPowerChunkProcessor()

void ns3::NrSpectrumPhy::AddDataPowerChunkProcessor ( const Ptr< NrChunkProcessor > &  p)

Adds the chunk processor that will process the power for the data.

Parameters
pthe chunk processor

Definition at line 746 of file nr-spectrum-phy.cc.

◆ AddDataSinrChunkProcessor()

void ns3::NrSpectrumPhy::AddDataSinrChunkProcessor ( const Ptr< NrChunkProcessor > &  p)

Adds the chunk processor that will process the interference.

Parameters
pthe chunk processor

Definition at line 753 of file nr-spectrum-phy.cc.

◆ AddDlCtrlSinrChunkProcessor()

void ns3::NrSpectrumPhy::AddDlCtrlSinrChunkProcessor ( const Ptr< NrChunkProcessor > &  p)

Adds the chunk processor that will process the received power.

Parameters
pthe chunk processor

Definition at line 814 of file nr-spectrum-phy.cc.

◆ AddExpectedSrsRnti()

void ns3::NrSpectrumPhy::AddExpectedSrsRnti ( uint16_t  rnti)

Definition at line 900 of file nr-spectrum-phy.cc.

◆ AddExpectedTb()

void ns3::NrSpectrumPhy::AddExpectedTb ( ExpectedTb  expectedTb)

Instruct the Spectrum Model of a incoming transmission.

Parameters
expectedTbExpected transport block

Definition at line 873 of file nr-spectrum-phy.cc.

References ns3::ExpectedTb::m_mcs, ns3::ExpectedTb::m_numSym, ns3::ExpectedTb::m_rnti, ns3::ExpectedTb::m_symStart, and ns3::ExpectedTb::m_tbSize.

◆ AddRsPowerChunkProcessor()

void ns3::NrSpectrumPhy::AddRsPowerChunkProcessor ( const Ptr< NrChunkProcessor > &  p)

Adds the chunk processor that will process the received power.

Parameters
pthe chunk processor

Definition at line 807 of file nr-spectrum-phy.cc.

◆ AddSrsSinrChunkProcessor()

void ns3::NrSpectrumPhy::AddSrsSinrChunkProcessor ( const Ptr< NrChunkProcessor > &  p)

Definition at line 760 of file nr-spectrum-phy.cc.

◆ AddSrsSinrReportCallback()

void ns3::NrSpectrumPhy::AddSrsSinrReportCallback ( SrsSinrReportCallback  callback)

It adds callback to the list of callbacks that will be notified once SRS is being received.

Parameters
callbackcallback to be added to the list of callbacks

Definition at line 906 of file nr-spectrum-phy.cc.

◆ AddSrsSnrReportCallback()

void ns3::NrSpectrumPhy::AddSrsSnrReportCallback ( SrsSnrReportCallback  callback)

It adds callback to the list of callbacks that will be notified once SRS is being received.

Parameters
callbackcallback to be added to the list of callbacks

Definition at line 912 of file nr-spectrum-phy.cc.

◆ AssignStreams()

int64_t ns3::NrSpectrumPhy::AssignStreams ( int64_t  stream)

Assign a fixed random variable stream number to the random variables used by this model. Return the number of streams (possibly zero) that have been assigned.

Parameters
streamfirst stream index to use
Returns
the number of stream indices assigned by this model

Definition at line 1696 of file nr-spectrum-phy.cc.

◆ DoDispose()

void ns3::NrSpectrumPhy::DoDispose ( )
overrideprotected

DoDispose method inherited from Object.

Definition at line 74 of file nr-spectrum-phy.cc.

◆ EnableDlCtrlPathlossTrace()

void ns3::NrSpectrumPhy::EnableDlCtrlPathlossTrace ( )

Definition at line 330 of file nr-spectrum-phy.cc.

◆ EnableDlDataPathlossTrace()

void ns3::NrSpectrumPhy::EnableDlDataPathlossTrace ( )

Definition at line 324 of file nr-spectrum-phy.cc.

◆ GetAntenna()

Ptr< Object > ns3::NrSpectrumPhy::GetAntenna ( ) const
override

Inherited from SpectrumPhy Note: Implements GetAntenna function from SpectrumPhy.

Returns
Antenna of this NrSpectrumPhy

Definition at line 290 of file nr-spectrum-phy.cc.

Referenced by ns3::LenaV2Utils::SetLenaV2SimulatorParameters().

+ Here is the caller graph for this function:

◆ GetBeamManager()

Ptr< BeamManager > ns3::NrSpectrumPhy::GetBeamManager ( )

Definition at line 305 of file nr-spectrum-phy.cc.

◆ GetBwpId()

uint16_t ns3::NrSpectrumPhy::GetBwpId ( ) const
Returns
the bwp id

Definition at line 1176 of file nr-spectrum-phy.cc.

Referenced by StartRx().

+ Here is the caller graph for this function:

◆ GetCcaMode1Threshold()

double ns3::NrSpectrumPhy::GetCcaMode1Threshold ( ) const

Returns clear channel assessment (CCA) threshold

Returns
CCA threshold in dBms

Definition at line 351 of file nr-spectrum-phy.cc.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ GetCellId()

uint16_t ns3::NrSpectrumPhy::GetCellId ( ) const
Returns
the cell id

Definition at line 1170 of file nr-spectrum-phy.cc.

Referenced by StartRx(), StartTxDataFrames(), StartTxDlControlFrames(), StartTxUlControlFrames(), UpdateSrsSinrPerceived(), and UpdateSrsSnrPerceived().

+ Here is the caller graph for this function:

◆ GetDevice()

Ptr< NetDevice > ns3::NrSpectrumPhy::GetDevice ( ) const
override

Definition at line 260 of file nr-spectrum-phy.cc.

◆ GetErrorModel()

Ptr< NrErrorModel > ns3::NrSpectrumPhy::GetErrorModel ( ) const

Definition at line 318 of file nr-spectrum-phy.cc.

◆ GetHarqPhyModule()

Ptr< NrHarqPhy > ns3::NrSpectrumPhy::GetHarqPhyModule ( ) const
Returns
HARQ module of this spectrum phy

Definition at line 860 of file nr-spectrum-phy.cc.

◆ GetMobility()

Ptr< MobilityModel > ns3::NrSpectrumPhy::GetMobility ( ) const
override

Definition at line 272 of file nr-spectrum-phy.cc.

◆ GetNrInterference()

Ptr< NrInterference > ns3::NrSpectrumPhy::GetNrInterference ( ) const
Returns
NrInterference instance of this spectrum phy

Definition at line 866 of file nr-spectrum-phy.cc.

◆ GetPhy()

Ptr< NrPhy > ns3::NrSpectrumPhy::GetPhy ( ) const

Definition at line 842 of file nr-spectrum-phy.cc.

◆ GetRxSpectrumModel()

Ptr< const SpectrumModel > ns3::NrSpectrumPhy::GetRxSpectrumModel ( ) const
override

Definition at line 284 of file nr-spectrum-phy.cc.

◆ GetSpectrumChannel()

Ptr< SpectrumChannel > ns3::NrSpectrumPhy::GetSpectrumChannel ( ) const

Returns spectrum channel object to which is attached this spectrum phy instance.

Definition at line 854 of file nr-spectrum-phy.cc.

◆ GetTxPowerSpectralDensity()

Ptr< const SpectrumValue > ns3::NrSpectrumPhy::GetTxPowerSpectralDensity ( )

Definition at line 399 of file nr-spectrum-phy.cc.

◆ GetTypeId()

TypeId ns3::NrSpectrumPhy::GetTypeId ( )
static

Get the object TypeId.

Returns
the object TypeId

Definition at line 116 of file nr-spectrum-phy.cc.

References GetCcaMode1Threshold(), ns3::NrLteMiErrorModel::GetTypeId(), SetCcaMode1Threshold(), SetDataErrorModelEnabled(), SetErrorModelType(), and SetUnlicensedMode().

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

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

◆ InstallHarqPhyModule()

void ns3::NrSpectrumPhy::InstallHarqPhyModule ( const Ptr< NrHarqPhy > &  harq)

Install HARQ phy module of this spectrum phy.

Parameters
harqHarq module of this spectrum phy

Definition at line 829 of file nr-spectrum-phy.cc.

◆ InstallPhy()

void ns3::NrSpectrumPhy::InstallPhy ( const Ptr< NrPhy > &  phyModel)

Set NrPhy of this spectrum phy in order to be able to obtain information such as cellId, bwpId, etc.

Definition at line 836 of file nr-spectrum-phy.cc.

◆ IsTransmitting()

bool ns3::NrSpectrumPhy::IsTransmitting ( )

Return true if the current Phy State is TX.

Definition at line 640 of file nr-spectrum-phy.cc.

References TX.

◆ ReportDlCtrlSinr()

void ns3::NrSpectrumPhy::ReportDlCtrlSinr ( const SpectrumValue &  sinr)

Called when DlCtrlSinr is fired.

Parameters
sinrthe sinr PSD

Definition at line 770 of file nr-spectrum-phy.cc.

◆ ReportWbDlDataSnrPerceived()

void ns3::NrSpectrumPhy::ReportWbDlDataSnrPerceived ( const double  dlDataSnr)

Report wideband perceived downlink data SNR.

Parameters
dlDataSnrthe downlink data SNR

Definition at line 1682 of file nr-spectrum-phy.cc.

◆ SetAntenna()

void ns3::NrSpectrumPhy::SetAntenna ( Ptr< Object >  antenna)

Sets the antenna of this NrSpectrumPhy instance, currently in NR module it is expected to be of type UniformPlannarArray.

Parameters
antennathe antenna to be set to this NrSpectrumPhy instance

Definition at line 848 of file nr-spectrum-phy.cc.

◆ SetBeamManager()

void ns3::NrSpectrumPhy::SetBeamManager ( Ptr< BeamManager b)

Definition at line 299 of file nr-spectrum-phy.cc.

◆ SetCcaMode1Threshold()

void ns3::NrSpectrumPhy::SetCcaMode1Threshold ( double  thresholdDBm)

Set clear channel assessment (CCA) threshold.

Parameters
thresholdDBm- CCA threshold in dBms

Definition at line 343 of file nr-spectrum-phy.cc.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetChannel()

void ns3::NrSpectrumPhy::SetChannel ( Ptr< SpectrumChannel >  c)
override

Definition at line 278 of file nr-spectrum-phy.cc.

◆ SetDataErrorModelEnabled()

void ns3::NrSpectrumPhy::SetDataErrorModelEnabled ( bool  dataErrorModelEnabled)

Enables or disabled data error model.

Parameters
dataErrorModelEnabledboolean saying whether the data error model should be enabled

Definition at line 365 of file nr-spectrum-phy.cc.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetDevice()

void ns3::NrSpectrumPhy::SetDevice ( Ptr< NetDevice >  d)
override

Definition at line 232 of file nr-spectrum-phy.cc.

◆ SetErrorModel()

void ns3::NrSpectrumPhy::SetErrorModel ( Ptr< NrErrorModel em)

Definition at line 311 of file nr-spectrum-phy.cc.

◆ SetErrorModelType()

void ns3::NrSpectrumPhy::SetErrorModelType ( TypeId  errorModelType)

Sets the error model type.

Definition at line 371 of file nr-spectrum-phy.cc.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetIsGnb()

void ns3::NrSpectrumPhy::SetIsGnb ( bool  isGnb)

Set whether this spectrum PHY belongs to Gnb or UE TODO NrHelper should be declared as friend and this function should be private.

Parameters
isGnbwhether the spectrum PHY belongs to Gnb or UE

Definition at line 1188 of file nr-spectrum-phy.cc.

◆ SetMobility()

void ns3::NrSpectrumPhy::SetMobility ( Ptr< MobilityModel >  m)
override

Definition at line 266 of file nr-spectrum-phy.cc.

◆ SetNoisePowerSpectralDensity()

void ns3::NrSpectrumPhy::SetNoisePowerSpectralDensity ( const Ptr< const SpectrumValue > &  noisePsd)

Sets noise power spectral density to be used by this device.

Parameters
noisePsdSpectrumValue object holding noise PSD

Definition at line 379 of file nr-spectrum-phy.cc.

◆ SetPhyDlHarqFeedbackCallback()

void ns3::NrSpectrumPhy::SetPhyDlHarqFeedbackCallback ( const NrPhyDlHarqFeedbackCallback c)

Sets the callback to be called when DL HARQ feedback is generated.

Definition at line 217 of file nr-spectrum-phy.cc.

◆ SetPhyRxCtrlEndOkCallback()

void ns3::NrSpectrumPhy::SetPhyRxCtrlEndOkCallback ( const NrPhyRxCtrlEndOkCallback c)

Sets the callback to be called when CTRL is received successfully.

Parameters
cthe callback function

Definition at line 203 of file nr-spectrum-phy.cc.

◆ SetPhyRxDataEndOkCallback()

void ns3::NrSpectrumPhy::SetPhyRxDataEndOkCallback ( const NrPhyRxDataEndOkCallback c)

Sets the callback to be called when DATA is received successfully.

Parameters
cthe callback function

Definition at line 196 of file nr-spectrum-phy.cc.

◆ SetPhyRxPssCallback()

void ns3::NrSpectrumPhy::SetPhyRxPssCallback ( const NrPhyRxPssCallback c)

set the callback for the reception of the PSS as part of the interconnections between the NrSpectrumPhy and the UE PHY

Parameters
cthe callback

Definition at line 210 of file nr-spectrum-phy.cc.

◆ SetPhyUlHarqFeedbackCallback()

void ns3::NrSpectrumPhy::SetPhyUlHarqFeedbackCallback ( const NrPhyUlHarqFeedbackCallback c)

Sets the callback to be called when UL HARQ feedback is generated.

Definition at line 224 of file nr-spectrum-phy.cc.

◆ SetRnti()

void ns3::NrSpectrumPhy::SetRnti ( uint16_t  rnti)

Definition at line 336 of file nr-spectrum-phy.cc.

◆ SetTxPowerSpectralDensity()

void ns3::NrSpectrumPhy::SetTxPowerSpectralDensity ( const Ptr< SpectrumValue > &  txPsd)

Sets transmit power spectral density.

Parameters
txPsdtransmit power spectral density to be used for the upcoming transmissions by this spectrum phy

Definition at line 393 of file nr-spectrum-phy.cc.

◆ SetUnlicensedMode()

void ns3::NrSpectrumPhy::SetUnlicensedMode ( bool  unlicensedMode)

Sets whether to perform in unclicensed mode in which the channel monitoring is enabled.

Parameters
unlicensedModeif true the unlicensed mode is enabled

Definition at line 358 of file nr-spectrum-phy.cc.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ StartRx()

void ns3::NrSpectrumPhy::StartRx ( Ptr< SpectrumSignalParameters >  params)
override

Inherited from SpectrumPhy. When this function is called this spectrum phy starts receiving a signal from its spectrum channel.

Parameters
paramsSpectrumSignalParameters object that will be used to process this signal

Definition at line 405 of file nr-spectrum-phy.cc.

References GetBwpId(), GetCellId(), and IDLE.

+ Here is the call graph for this function:

◆ StartTxDataFrames()

void ns3::NrSpectrumPhy::StartTxDataFrames ( const Ptr< PacketBurst > &  pb,
const std::list< Ptr< NrControlMessage > > &  ctrlMsgList,
const std::shared_ptr< DciInfoElementTdma dci,
const Time &  duration 
)

Starts transmission of data frames on connected spectrum channel object.

Parameters
pbpacket burst to be transmitted
ctrlMsgListcontrol message list
dcidownlink control information
durationthe duration of transmission

Definition at line 564 of file nr-spectrum-phy.cc.

References CCA_BUSY, GetCellId(), IDLE, RX_DATA, RX_DL_CTRL, RX_UL_CTRL, RX_UL_SRS, and TX.

+ Here is the call graph for this function:

◆ StartTxDlControlFrames()

void ns3::NrSpectrumPhy::StartTxDlControlFrames ( const std::list< Ptr< NrControlMessage > > &  ctrlMsgList,
const Time &  duration 
)

Starts transmission of DL CTRL.

Parameters
durationthe duration of this transmission

Definition at line 646 of file nr-spectrum-phy.cc.

References CCA_BUSY, GetCellId(), IDLE, RX_DATA, RX_DL_CTRL, RX_UL_CTRL, RX_UL_SRS, and TX.

+ Here is the call graph for this function:

◆ StartTxUlControlFrames()

void ns3::NrSpectrumPhy::StartTxUlControlFrames ( const std::list< Ptr< NrControlMessage > > &  ctrlMsgList,
const Time &  duration 
)

Start transmission of UL CTRL.

Parameters
ctrlMsgListthe list of control messages to be transmitted in UL
durationthe duration of the CTRL messages transmission

Definition at line 697 of file nr-spectrum-phy.cc.

References CCA_BUSY, GetCellId(), IDLE, RX_DATA, RX_DL_CTRL, RX_UL_CTRL, RX_UL_SRS, and TX.

+ Here is the call graph for this function:

◆ UpdateMimoSinrPerceived()

void ns3::NrSpectrumPhy::UpdateMimoSinrPerceived ( const std::vector< MimoSinrChunk > &  sinr)

Store the SINR chunks for all received signals at end of interference calculations.

Parameters
sinrThe vector of all SINR values of receive signals. A new chunk is generated for each different receive signal (for example for each UL reception of a signal from a different UE) and at each time instant where the interference changes.

Definition at line 1704 of file nr-spectrum-phy.cc.

◆ UpdateSinrPerceived()

void ns3::NrSpectrumPhy::UpdateSinrPerceived ( const SpectrumValue &  sinr)

SpectrumPhy that will be called when the SINR for the received DATA is being calculated by the interference object over DATA chunk processor.

Parameters
sinrthe resulting SINR spectrum value

Definition at line 821 of file nr-spectrum-phy.cc.

◆ UpdateSrsSinrPerceived()

void ns3::NrSpectrumPhy::UpdateSrsSinrPerceived ( const SpectrumValue &  srsSinr)

SpectrumPhy that will be called when the SINR for the received SRS at gNB is being calculated by the interference object over SRS chunk processor.

Parameters
srsSinrthe resulting SRS SINR spectrum value

Definition at line 781 of file nr-spectrum-phy.cc.

References GetCellId().

+ Here is the call graph for this function:

◆ UpdateSrsSnrPerceived()

void ns3::NrSpectrumPhy::UpdateSrsSnrPerceived ( const double  srsSnr)

SpectrumPhy that will be called when the SNR for the received SRS at gNB is being calculated.

Parameters
srsSnrthe resulting SRS SNR

Definition at line 795 of file nr-spectrum-phy.cc.

References GetCellId().

+ Here is the call graph for this function:

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