ns3::SatPhyRxCarrier Class Referenceabstract

Base class for all SatPhyRxCarriers. More...

#include "satellite-phy-rx-carrier.h"

+ Inheritance diagram for ns3::SatPhyRxCarrier:
+ Collaboration diagram for ns3::SatPhyRxCarrier:

Classes

struct  rxParams_s
 Struct for storing the packet specific Rx parameters. More...
 

Public Types

enum  CarrierType {
  BASE , DEDICATED_ACCESS , RA_SLOTTED_ALOHA , RA_CRDSA ,
  RA_ESSA
}
 Possible carrier types. More...
 
typedef void(* LinkBudgetTraceCallback) (Ptr< SatSignalParameters > rxParams, Mac48Address receiverAddress, Mac48Address destinationAddress, double interference, double sinr)
 Callback signature for LinkBudgetTrace trace source. More...
 
typedef void(* LinkSinrTraceCallback) (double sinr, const Address &utAddress)
 Callback signature for LinkSinrTrace trace source. More...
 
typedef void(* PhyRxCollisionCallback) (uint32_t nPackets, const Address &utAddress, bool isCollided)
 Common callback signature for trace sources related to packets reception by PHY and its collision. More...
 
typedef void(* PhyRxErrorCallback) (uint32_t nPackets, const Address &utAddress, bool isError)
 Common callback signature for trace sources related to packets reception by PHY and its error. More...
 
typedef void(* RxPowerTraceCallback) (double rxPower, const Address &utAddress)
 Callback signature for RxPowerTrace trace source. More...
 
enum  State { IDLE , RX }
 Enum for PHY states. More...
 

Public Member Functions

 SatPhyRxCarrier (uint32_t carrierId, Ptr< SatPhyRxCarrierConf > carrierConf, Ptr< SatWaveformConf > waveformConf, bool isRandomAccessEnabled)
 Constructor. More...
 
virtual ~SatPhyRxCarrier ()
 Destructor. More...
 
virtual void BeginEndScheduling ()
 Function for initializing the frame/window end scheduling. More...
 
uint32_t GetBeamId ()
 Get ID the ID of the beam this carrier is attached to. More...
 
virtual CarrierType GetCarrierType ()
 Method for querying the type of the carrier. More...
 
double GetRxTemperatureK ()
 Method for querying the temperature of the carrier. More...
 
uint32_t GetSatId ()
 Get ID the ID of the satellite this carrier is attached to. More...
 
void SetAverageNormalizedOfferedLoadCallback (SatPhyRx::AverageNormalizedOfferedLoadCallback callback)
 Function for setting the AverageNormalizedOfferedLoadCallback callback. More...
 
void SetBeamId (uint32_t beamId)
 Function for setting the beam id for all the transmissions from this SatPhyTx. More...
 
void SetCnoCb (SatPhyRx::CnoCallback cb)
 Function for settign the C/NO callback. More...
 
void SetNodeInfo (const Ptr< SatNodeInfo > nodeInfo)
 Function for setting the node info class. More...
 
void SetPhy (Ptr< SatPhy > phy)
 Function for setting the SatPhy module. More...
 
void SetReceiveCb (SatPhyRx::ReceiveCallback cb)
 Function for setting the receive callback. More...
 
void SetSatId (uint32_t satId)
 Function for setting the satellite id for all the transmissions from this SatPhyTx. More...
 
virtual bool StartRx (Ptr< SatSignalParameters > rxParams)
 Function for starting packet reception from the SatChannel. More...
 

Static Public Member Functions

static TypeId GetTypeId (void)
 Function for gettign the NS-3 type ID. More...
 

Protected Member Functions

double CalculateCompositeSinr (double sinr1, double sinr2)
 Function for calculating the composite SINR. More...
 
double CalculateSinr (double rxPowerW, double ifPowerW, double rxNoisePowerW, double rxAciIfPowerW, double rxExtNoisePowerW, double otherInterference)
 Function for calculating the SINR. More...
 
double CalculateSinr (double sinr, double otherInterference)
 Calculate final SINR with PHY specific parameters and given calculated SINR. More...
 
void ChangeState (State newState)
 Function for changing the receiver state. More...
 
bool CheckAgainstLinkResults (double cSinr, Ptr< SatSignalParameters > rxParams)
 Function for checking the SINR against the link results. More...
 
void CheckRxStateSanity ()
 Function for checking the Rx state sanity. More...
 
virtual Ptr< SatInterference::InterferenceChangeEventCreateInterference (Ptr< SatSignalParameters > rxParams, Address rxAddress)=0
 Create an interference event based on Rx parameters and address. More...
 
void DecreaseNumOfRxState (SatEnums::PacketType_t packetType)
 Function for decreasing the number of ongoing transmissions. More...
 
void DoCompositeSinrOutputTrace (double cSinr)
 Function for composite SINR output tracing. More...
 
virtual void DoCreateInterferenceEliminationModel (Ptr< SatPhyRxCarrierConf > carrierConf, uint32_t carrierId, Ptr< SatWaveformConf > waveformConf)
 Create an interference cancelation model for this carrier. More...
 
virtual void DoCreateInterferenceModel (Ptr< SatPhyRxCarrierConf > carrierConf, uint32_t carrierId, double rxBandwidthHz)
 Create an interference model for this carrier. More...
 
virtual void DoDispose ()
 Dispose. More...
 
virtual void EndRxData (uint32_t key)=0
 Function for ending the packet reception from the SatChannel. More...
 
uint32_t GetCarrierId () const
 Get the ID of the carrier. More...
 
Ptr< SatChannelEstimationErrorContainerGetChannelEstimationErrorContainer ()
 Get a pointer to the channel estimation error container of the carrier. More...
 
virtual SatEnums::ChannelType_t GetChannelType ()
 Get the channel type. More...
 
virtual const bool GetDefaultReceiveMode ()
 Get the default receive mode for the carrier. More...
 
Ptr< SatInterferenceEliminationGetInterferenceEliminationModel ()
 Get pointer to the current interference elimination model. More...
 
Ptr< SatInterferenceGetInterferenceModel ()
 Get pointer to the current interference model. More...
 
virtual SatEnums::RegenerationMode_t GetLinkRegenerationMode ()
 Get the link regeneration mode. More...
 
Ptr< SatLinkResultsGetLinkResults ()
 Get pointer to the link results given by the carrier creation configuration. More...
 
Ptr< SatNodeInfoGetNodeInfo ()
 Get the satellite node info. More...
 
Mac48Address GetOwnAddress ()
 Get the MAC address of the carrier. More...
 
std::pair< bool, SatPhyRxCarrier::rxParams_sGetReceiveParams (Ptr< SatSignalParameters > rxParams)
 Rx parameter storage methods. More...
 
State GetState ()
 Get the state of the carrier. More...
 
rxParams_s GetStoredRxParams (uint32_t key)
 Get stored rxParams under a key. More...
 
double GetUniformRandomValue (double min, double max)
 A helper method for getting values form a uniform random variable in child classes. More...
 
Ptr< SatWaveformConfGetWaveformConf ()
 Get pointer to the waveform configuration. More...
 
double GetWorstSinr (double sinr1, double sinr2)
 Function for calculating the worst sinr between uplink and downlink. More...
 
void IncreaseNumOfRxState (SatEnums::PacketType_t packetType)
 Function for increasing the number of ongoing transmissions. More...
 
bool IsCompositeSinrOutputTraceEnabled () const
 Check if composite SINR output trace is enabled. More...
 
bool IsReceivingDedicatedAccess ()
 Check if the carrier is receiving a dedicated access packet. More...
 
void RemoveStoredRxParams (uint32_t key)
 Remove stored rxParams under a key. More...
 
void SetChannelType (SatEnums::ChannelType_t channelType)
 Set the channel type for the carrier. More...
 
void SetLinkRegenerationMode (SatEnums::RegenerationMode_t linkRegenerationMode)
 Set the link regeneration mode. More...
 
void StoreRxParams (uint32_t key, rxParams_s rxParams)
 Store rxParams under a key. More...
 

Protected Attributes

SatPhyRxCarrierConf::AdditionalInterferenceCallback m_additionalInterferenceCallback
 Callback to get additional interference. More...
 
SatPhy::AverageNormalizedOfferedLoadCallback m_avgNormalizedOfferedLoadCallback
 Average normalized offered load callback. More...
 
SatPhy::CnoCallback m_cnoCallback
 The upper layer C/N0 receive callback. More...
 
TracedCallback< uint32_t, const Address & > m_daRxCarrierIdTrace
 
TracedCallback< uint32_t, const Address &, bool > m_daRxTrace
 DaRx trace source. More...
 
TracedCallback< Ptr< SatSignalParameters >, Mac48Address, Mac48Address, double, double > m_linkBudgetTrace
 The trace source on packet receptiong. More...
 
SatEnums::RegenerationMode_t m_linkRegenerationMode
 Link regeneration mode. More...
 
TracedCallback< double, const Address & > m_linkSinrTrace
 A callback for link specific SINR in dB. More...
 
const bool m_randomAccessEnabled
 Is random access enabled for this carrier. More...
 
double m_rxAciIfPowerW
 RX Adjacent channel interference. More...
 
double m_rxBandwidthHz
 RX Bandwidth in Hz. More...
 
SatPhyRx::ReceiveCallback m_rxCallback
 The upper layer package receive callback. More...
 
double m_rxExtNoisePowerW
 External noise power system RX noise. More...
 
double m_rxNoisePowerW
 RX noise. More...
 
TracedCallback< double, const Address & > m_rxPowerTrace
 A callback for received signal power in dBW. More...
 
double m_rxTemperatureK
 RX noise temperature in K. More...
 
TracedCallback< double, const Address & > m_sinrTrace
 A callback for transmission composite SINR at UT (BBFrame) or GW (time slot). More...
 

Private Member Functions

bool CheckAgainstLinkResultsErrorModelAvi (double cSinr, Ptr< SatSignalParameters > rxParams)
 Function for checking the SINR against the link results. More...
 

Private Attributes

uint32_t m_beamId
 
uint32_t m_carrierId
 
Ptr< SatChannelEstimationErrorContainerm_channelEstimationError
 Channel estimation error container. More...
 
SatEnums::ChannelType_t m_channelType
 
double m_constantErrorRate
 
bool m_enableCompositeSinrOutputTrace
 
SatPhyRxCarrierConf::ErrorModel m_errorModel
 
Ptr< SatLinkResultsm_linkResults
 
Ptr< SatNodeInfom_nodeInfo
 
uint32_t m_numOfOngoingRx
 Contains information about how many ongoing Rx events there are. More...
 
Mac48Address m_ownAddress
 
bool m_receivingDedicatedAccess
 
uint32_t m_rxPacketCounter
 Running counter for received packets. More...
 
std::map< uint32_t, rxParams_sm_rxParamsMap
 
uint32_t m_satId
 
Ptr< SatInterferencem_satInterference
 
Ptr< SatInterferenceEliminationm_satInterferenceElimination
 
State m_state
 
Ptr< UniformRandomVariable > m_uniformVariable
 
Ptr< SatWaveformConfm_waveformConf
 

Detailed Description

Base class for all SatPhyRxCarriers.

Definition at line 60 of file satellite-phy-rx-carrier.h.

Member Typedef Documentation

◆ LinkBudgetTraceCallback

typedef void(* ns3::SatPhyRxCarrier::LinkBudgetTraceCallback) (Ptr< SatSignalParameters > rxParams, Mac48Address receiverAddress, Mac48Address destinationAddress, double interference, double sinr)

Callback signature for LinkBudgetTrace trace source.

Parameters
rxParamsRX signalling parameters
receiverAddressreceiver address
destinationAddresspacket destination address
interferenceinterference power (in W)
sinrcomposite SINR (in linear unit)

Definition at line 84 of file satellite-phy-rx-carrier.h.

◆ LinkSinrTraceCallback

typedef void(* ns3::SatPhyRxCarrier::LinkSinrTraceCallback) (double sinr, const Address &utAddress)

Callback signature for LinkSinrTrace trace source.

Parameters
sinrlink-specific SINR (in dB)
utAddressthe MAC48 address of the corresponding UT.

Definition at line 102 of file satellite-phy-rx-carrier.h.

◆ PhyRxCollisionCallback

typedef void(* ns3::SatPhyRxCarrier::PhyRxCollisionCallback) (uint32_t nPackets, const Address &utAddress, bool isCollided)

Common callback signature for trace sources related to packets reception by PHY and its collision.

Parameters
nPacketsnumber of packets in the received packet burst.
utAddressthe MAC48 address of the corresponding UT.
isCollidedwhether a collision has occurred.

Definition at line 120 of file satellite-phy-rx-carrier.h.

◆ PhyRxErrorCallback

typedef void(* ns3::SatPhyRxCarrier::PhyRxErrorCallback) (uint32_t nPackets, const Address &utAddress, bool isError)

Common callback signature for trace sources related to packets reception by PHY and its error.

Parameters
nPacketsnumber of upper layer packets in the received packet burst.
utAddressthe MAC48 address of the corresponding UT.
isErrorwhether a PHY error has occurred.

Definition at line 111 of file satellite-phy-rx-carrier.h.

◆ RxPowerTraceCallback

typedef void(* ns3::SatPhyRxCarrier::RxPowerTraceCallback) (double rxPower, const Address &utAddress)

Callback signature for RxPowerTrace trace source.

Parameters
rxPowerreceived signal power (in dbW)
utAddressthe MAC48 address of the corresponding UT.

Definition at line 95 of file satellite-phy-rx-carrier.h.

Member Enumeration Documentation

◆ CarrierType

Possible carrier types.

Enumerator
BASE 
DEDICATED_ACCESS 
RA_SLOTTED_ALOHA 
RA_CRDSA 
RA_ESSA 

Definition at line 153 of file satellite-phy-rx-carrier.h.

◆ State

Enum for PHY states.

Enumerator
IDLE 
RX 

Definition at line 144 of file satellite-phy-rx-carrier.h.

Constructor & Destructor Documentation

◆ SatPhyRxCarrier()

ns3::SatPhyRxCarrier::SatPhyRxCarrier ( uint32_t  carrierId,
Ptr< SatPhyRxCarrierConf carrierConf,
Ptr< SatWaveformConf waveformConf,
bool  isRandomAccessEnabled 
)

◆ ~SatPhyRxCarrier()

ns3::SatPhyRxCarrier::~SatPhyRxCarrier ( )
virtual

Destructor.

Definition at line 203 of file satellite-phy-rx-carrier.cc.

Member Function Documentation

◆ BeginEndScheduling()

void ns3::SatPhyRxCarrier::BeginEndScheduling ( void  )
virtual

Function for initializing the frame/window end scheduling.

Reimplemented in ns3::SatPhyRxCarrierPerWindow, ns3::SatPhyRxCarrierPerSlot, and ns3::SatPhyRxCarrierPerFrame.

Definition at line 209 of file satellite-phy-rx-carrier.cc.

◆ CalculateCompositeSinr()

double ns3::SatPhyRxCarrier::CalculateCompositeSinr ( double  sinr1,
double  sinr2 
)
protected

Function for calculating the composite SINR.

Parameters
sinr1SINR 1
sinr2SINR 2
Returns
Composite SINR

Definition at line 676 of file satellite-phy-rx-carrier.cc.

Referenced by ns3::SatPhyRxCarrierPerFrame::CalculatePacketCompositeSinr(), ns3::SatPhyRxCarrierPerWindow::CalculatePacketInterferenceVectors(), ns3::SatPhyRxCarrierMarsala::PerformMarsala(), and ns3::SatPhyRxCarrierPerSlot::ReceiveSlot().

+ Here is the caller graph for this function:

◆ CalculateSinr() [1/2]

double ns3::SatPhyRxCarrier::CalculateSinr ( double  rxPowerW,
double  ifPowerW,
double  rxNoisePowerW,
double  rxAciIfPowerW,
double  rxExtNoisePowerW,
double  otherInterference 
)
protected

Function for calculating the SINR.

Parameters
rxPowerWRx power in Watts
ifPowerWInterference power in Watts
rxNoisePowerWRx noise power in Watts
rxAciIfPowerWRx ACI power in Watts
rxExtNoisePowerWRx external noise power in Watts
otherInterferenceAdditional interference to compute final SINR
Returns
Calculated SINR

Definition at line 629 of file satellite-phy-rx-carrier.cc.

Referenced by ns3::SatPhyRxCarrierPerFrame::CalculatePacketCompositeSinr(), ns3::SatPhyRxCarrierPerWindow::CalculatePacketInterferenceVectors(), ns3::SatPhyRxCarrierUplink::EndRxData(), ns3::SatPhyRxCarrierMarsala::PerformMarsala(), and ns3::SatPhyRxCarrierPerSlot::ReceiveSlot().

+ Here is the caller graph for this function:

◆ CalculateSinr() [2/2]

double ns3::SatPhyRxCarrier::CalculateSinr ( double  sinr,
double  otherInterference 
)
protected

Calculate final SINR with PHY specific parameters and given calculated SINR.

Additional interference value is added.

Parameters
sinrCalculated SINR
otherInterferenceInterference to add to the sinr
Returns
Final SINR

Definition at line 656 of file satellite-phy-rx-carrier.cc.

◆ ChangeState()

void ns3::SatPhyRxCarrier::ChangeState ( State  newState)
protected

Function for changing the receiver state.

Parameters
newStateNew state

Definition at line 300 of file satellite-phy-rx-carrier.cc.

References m_state.

Referenced by DecreaseNumOfRxState(), and IncreaseNumOfRxState().

+ Here is the caller graph for this function:

◆ CheckAgainstLinkResults()

bool ns3::SatPhyRxCarrier::CheckAgainstLinkResults ( double  cSinr,
Ptr< SatSignalParameters rxParams 
)
protected

Function for checking the SINR against the link results.

Parameters
cSinrcomposite SINR
rxParamsRx parameters
Returns
result of the check

Initialize with no errors

No errors i.e. error = false;

Definition at line 484 of file satellite-phy-rx-carrier.cc.

References CheckAgainstLinkResultsErrorModelAvi(), ns3::SatPhyRxCarrierConf::EM_AVI, ns3::SatPhyRxCarrierConf::EM_CONSTANT, ns3::SatPhyRxCarrierConf::EM_NONE, GetUniformRandomValue(), m_constantErrorRate, and m_errorModel.

Referenced by ns3::SatPhyRxCarrierMarsala::PerformMarsala(), ns3::SatPhyRxCarrierPerFrame::ProcessReceivedCrdsaPacket(), ns3::SatPhyRxCarrierPerSlot::ProcessSlottedAlohaCollisions(), ns3::SatPhyRxCarrierPerWindow::ProcessWindow(), and ns3::SatPhyRxCarrierPerSlot::ReceiveSlot().

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

◆ CheckAgainstLinkResultsErrorModelAvi()

bool ns3::SatPhyRxCarrier::CheckAgainstLinkResultsErrorModelAvi ( double  cSinr,
Ptr< SatSignalParameters rxParams 
)
private

Function for checking the SINR against the link results.

Parameters
cSinrcomposite SINR
rxParamsRx parameters
Returns
result of the check

In forward link the link results are in Es/No format, thus here we need to convert the SINR into Es/No:

C/No = C/N * fs Es/No = C/N * B/fs = (C/No / fs) * B/fs Es/No = (C*Ts)/No = C/No * (1/fs) = C/N

where C/No = carrier to noise density C/N = signal to noise ratio (= SINR in the simulator) Es/No = energy per symbol per noise density B = channel bandwidth in Hz fs = symbol rate in baud

In return link the link results are in Eb/No format, thus here we need to convert the SINR into Eb/No: Eb/No = C/N * B/fb = (C/No / fs) * B/fb Eb/No = (Es/log2M)/No = (Es/No)*(1/log2M) = C/N * (1/log2M) = C/No * (1/fs) * (1/log2M)

where C/No = carrier to noise density C/N = signal to noise ratio (= SINR in the simulator) Es/No = energy per symbol per noise density Eb/No = energy per bit per noise density B = channel bandwidth in Hz fs = symbol rate in baud fb = channel bitrate (after FEC) in bps (i.e. burst payloadInBits / burstDurationInSec)

Definition at line 518 of file satellite-phy-rx-carrier.cc.

References ns3::SatEnums::FORWARD_FEEDER_CH, ns3::SatEnums::FORWARD_USER_CH, GetChannelType(), ns3::SatUtils::GetCodingRate(), GetLinkResults(), ns3::SatUtils::GetModulatedBits(), GetUniformRandomValue(), ns3::SatUtils::LinearToDb(), m_linkRegenerationMode, ns3::SatEnums::REGENERATION_LINK, ns3::SatEnums::REGENERATION_NETWORK, ns3::SatEnums::RETURN_FEEDER_CH, ns3::SatEnums::RETURN_USER_CH, and ns3::SatEnums::UNKNOWN_CH.

Referenced by CheckAgainstLinkResults().

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

◆ CheckRxStateSanity()

void ns3::SatPhyRxCarrier::CheckRxStateSanity ( )
protected

Function for checking the Rx state sanity.

Definition at line 751 of file satellite-phy-rx-carrier.cc.

References IDLE, m_numOfOngoingRx, m_state, and RX.

Referenced by DecreaseNumOfRxState(), and IncreaseNumOfRxState().

+ Here is the caller graph for this function:

◆ CreateInterference()

virtual Ptr<SatInterference::InterferenceChangeEvent> ns3::SatPhyRxCarrier::CreateInterference ( Ptr< SatSignalParameters rxParams,
Address  rxAddress 
)
protectedpure virtual

Create an interference event based on Rx parameters and address.

Implemented by child classes.

Returns
Pointer to the interference event.

Implemented in ns3::SatPhyRxCarrierUplink, and ns3::SatPhyRxCarrierPerSlot.

Referenced by StartRx().

+ Here is the caller graph for this function:

◆ DecreaseNumOfRxState()

void ns3::SatPhyRxCarrier::DecreaseNumOfRxState ( SatEnums::PacketType_t  packetType)
protected

Function for decreasing the number of ongoing transmissions.

Parameters
packetTypePacket type of the ongoing transmission

Definition at line 728 of file satellite-phy-rx-carrier.cc.

References ChangeState(), CheckRxStateSanity(), IDLE, m_numOfOngoingRx, m_receivingDedicatedAccess, and ns3::SatEnums::PACKET_TYPE_DEDICATED_ACCESS.

Referenced by ns3::SatPhyRxCarrierPerSlot::EndRxData(), and ns3::SatPhyRxCarrierUplink::EndRxData().

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

◆ DoCompositeSinrOutputTrace()

void ns3::SatPhyRxCarrier::DoCompositeSinrOutputTrace ( double  cSinr)
protected

Function for composite SINR output tracing.

Parameters
cSinrcomposite SINR

Definition at line 470 of file satellite-phy-rx-carrier.cc.

References GetChannelType(), and GetOwnAddress().

Referenced by ns3::SatPhyRxCarrierPerWindow::CalculatePacketInterferenceVectors(), and ns3::SatPhyRxCarrierPerSlot::ReceiveSlot().

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

◆ DoCreateInterferenceEliminationModel()

void ns3::SatPhyRxCarrier::DoCreateInterferenceEliminationModel ( Ptr< SatPhyRxCarrierConf carrierConf,
uint32_t  carrierId,
Ptr< SatWaveformConf waveformConf 
)
protectedvirtual

Create an interference cancelation model for this carrier.

Parameters
carrierConf
carrierId
frameConf

Definition at line 177 of file satellite-phy-rx-carrier.cc.

References m_randomAccessEnabled, m_satInterferenceElimination, ns3::SatPhyRxCarrierConf::SIC_PERFECT, and ns3::SatPhyRxCarrierConf::SIC_RESIDUAL.

Referenced by SatPhyRxCarrier().

+ Here is the caller graph for this function:

◆ DoCreateInterferenceModel()

void ns3::SatPhyRxCarrier::DoCreateInterferenceModel ( Ptr< SatPhyRxCarrierConf carrierConf,
uint32_t  carrierId,
double  rxBandwidthHz 
)
protectedvirtual

Create an interference model for this carrier.

Parameters
carrierConf
carrierId
rxBandwidthHz
randomAccessEnabled

Definition at line 127 of file satellite-phy-rx-carrier.cc.

References GetChannelType(), ns3::SatPhyRxCarrierConf::IF_CONSTANT, ns3::SatPhyRxCarrierConf::IF_PER_FRAGMENT, ns3::SatPhyRxCarrierConf::IF_PER_PACKET, ns3::SatPhyRxCarrierConf::IF_TRACE, m_randomAccessEnabled, and m_satInterference.

Referenced by SatPhyRxCarrier().

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

◆ DoDispose()

void ns3::SatPhyRxCarrier::DoDispose ( void  )
protectedvirtual

◆ EndRxData()

virtual void ns3::SatPhyRxCarrier::EndRxData ( uint32_t  key)
protectedpure virtual

Function for ending the packet reception from the SatChannel.

Parameters
keyKey for Rx params map

Implemented in ns3::SatPhyRxCarrierUplink, and ns3::SatPhyRxCarrierPerSlot.

Referenced by StartRx().

+ Here is the caller graph for this function:

◆ GetBeamId()

uint32_t ns3::SatPhyRxCarrier::GetBeamId ( void  )
inline

Get ID the ID of the beam this carrier is attached to.

Returns
Beam ID

Definition at line 205 of file satellite-phy-rx-carrier.h.

References m_beamId.

Referenced by ns3::SatPhyRxCarrierPerSlot::CreateInterference(), ns3::SatPhyRxCarrierPerFrame::MeasureRandomAccessLoad(), ns3::SatPhyRxCarrierPerWindow::MeasureRandomAccessLoad(), ns3::SatPhyRxCarrierPerSlot::ReceiveSlot(), and StartRx().

+ Here is the caller graph for this function:

◆ GetCarrierId()

uint32_t ns3::SatPhyRxCarrier::GetCarrierId ( ) const
inlineprotected

Get the ID of the carrier.

Returns
Carrier ID

Definition at line 529 of file satellite-phy-rx-carrier.h.

References m_carrierId.

Referenced by ns3::SatPhyRxCarrierPerFrame::MeasureRandomAccessLoad(), ns3::SatPhyRxCarrierPerWindow::MeasureRandomAccessLoad(), and ns3::SatPhyRxCarrierPerSlot::ReceiveSlot().

+ Here is the caller graph for this function:

◆ GetCarrierType()

virtual CarrierType ns3::SatPhyRxCarrier::GetCarrierType ( )
inlinevirtual

Method for querying the type of the carrier.

Reimplemented in ns3::SatPhyRxCarrierUplink, ns3::SatPhyRxCarrierPerWindow, ns3::SatPhyRxCarrierPerSlot, and ns3::SatPhyRxCarrierPerFrame.

Definition at line 226 of file satellite-phy-rx-carrier.h.

References BASE.

◆ GetChannelEstimationErrorContainer()

Ptr<SatChannelEstimationErrorContainer> ns3::SatPhyRxCarrier::GetChannelEstimationErrorContainer ( )
inlineprotected

Get a pointer to the channel estimation error container of the carrier.

Returns
channel estimation error containe pointer

Definition at line 557 of file satellite-phy-rx-carrier.h.

References m_channelEstimationError.

Referenced by ns3::SatPhyRxCarrierPerSlot::ReceiveSlot().

+ Here is the caller graph for this function:

◆ GetChannelType()

virtual SatEnums::ChannelType_t ns3::SatPhyRxCarrier::GetChannelType ( )
inlineprotectedvirtual

Get the channel type.

Base class has undefined channel type, while child classes have can have other channel types.

Returns
Channel type

Definition at line 394 of file satellite-phy-rx-carrier.h.

References m_channelType.

Referenced by SatPhyRxCarrier(), CheckAgainstLinkResultsErrorModelAvi(), ns3::SatPhyRxCarrierPerSlot::CreateInterference(), DoCompositeSinrOutputTrace(), DoCreateInterferenceModel(), ns3::SatPhyRxCarrierUplink::EndRxData(), ns3::SatPhyRxCarrierPerWindow::MeasureRandomAccessLoad(), ns3::SatPhyRxCarrierPerSlot::ReceiveSlot(), and StartRx().

+ Here is the caller graph for this function:

◆ GetDefaultReceiveMode()

virtual const bool ns3::SatPhyRxCarrier::GetDefaultReceiveMode ( )
inlineprotectedvirtual

Get the default receive mode for the carrier.

In satellite nodes, this will be overrided to always receive packets.

Returns
True or false, false by default in base class

Reimplemented in ns3::SatPhyRxCarrierUplink.

Definition at line 271 of file satellite-phy-rx-carrier.h.

Referenced by GetReceiveParams().

+ Here is the caller graph for this function:

◆ GetInterferenceEliminationModel()

Ptr<SatInterferenceElimination> ns3::SatPhyRxCarrier::GetInterferenceEliminationModel ( )
inlineprotected

Get pointer to the current interference elimination model.

Returns
interference elimination model

Definition at line 298 of file satellite-phy-rx-carrier.h.

References m_satInterferenceElimination.

Referenced by ns3::SatPhyRxCarrierPerWindow::DoSic(), ns3::SatPhyRxCarrierPerFrame::EliminateInterference(), and ns3::SatPhyRxCarrierPerWindow::EliminatePreviousInterferences().

+ Here is the caller graph for this function:

◆ GetInterferenceModel()

Ptr<SatInterference> ns3::SatPhyRxCarrier::GetInterferenceModel ( )
inlineprotected

◆ GetLinkRegenerationMode()

virtual SatEnums::RegenerationMode_t ns3::SatPhyRxCarrier::GetLinkRegenerationMode ( )
inlineprotectedvirtual

◆ GetLinkResults()

Ptr<SatLinkResults> ns3::SatPhyRxCarrier::GetLinkResults ( )
inlineprotected

Get pointer to the link results given by the carrier creation configuration.

Returns
Link results

Definition at line 539 of file satellite-phy-rx-carrier.h.

References m_linkResults.

Referenced by CheckAgainstLinkResultsErrorModelAvi(), and ns3::SatPhyRxCarrierPerWindow::GetEffectiveSnir().

+ Here is the caller graph for this function:

◆ GetNodeInfo()

Ptr<SatNodeInfo> ns3::SatPhyRxCarrier::GetNodeInfo ( )
inlineprotected

Get the satellite node info.

Returns
SatNodeInfo pointer

Definition at line 357 of file satellite-phy-rx-carrier.h.

References m_nodeInfo.

Referenced by ns3::SatPhyRxCarrierPerFrame::BeginEndScheduling(), ns3::SatPhyRxCarrierPerWindow::BeginEndScheduling(), and ns3::SatPhyRxCarrierPerSlot::ReceiveSlot().

+ Here is the caller graph for this function:

◆ GetOwnAddress()

Mac48Address ns3::SatPhyRxCarrier::GetOwnAddress ( )
inlineprotected

◆ GetReceiveParams()

std::pair< bool, SatPhyRxCarrier::rxParams_s > ns3::SatPhyRxCarrier::GetReceiveParams ( Ptr< SatSignalParameters rxParams)
protected

◆ GetRxTemperatureK()

double ns3::SatPhyRxCarrier::GetRxTemperatureK ( )
inline

Method for querying the temperature of the carrier.

Definition at line 260 of file satellite-phy-rx-carrier.h.

References m_rxTemperatureK.

◆ GetSatId()

uint32_t ns3::SatPhyRxCarrier::GetSatId ( )
inline

Get ID the ID of the satellite this carrier is attached to.

Returns
Satellite ID

Definition at line 187 of file satellite-phy-rx-carrier.h.

References m_satId.

Referenced by ns3::SatPhyRxCarrierPerFrame::MeasureRandomAccessLoad(), ns3::SatPhyRxCarrierPerWindow::MeasureRandomAccessLoad(), and ns3::SatPhyRxCarrierPerSlot::ReceiveSlot().

+ Here is the caller graph for this function:

◆ GetState()

State ns3::SatPhyRxCarrier::GetState ( )
inlineprotected

Get the state of the carrier.

Returns
State of the carrier.

Definition at line 436 of file satellite-phy-rx-carrier.h.

References m_state.

Referenced by ns3::SatPhyRxCarrierPerSlot::EndRxData(), and ns3::SatPhyRxCarrierUplink::EndRxData().

+ Here is the caller graph for this function:

◆ GetStoredRxParams()

rxParams_s ns3::SatPhyRxCarrier::GetStoredRxParams ( uint32_t  key)
inlineprotected

Get stored rxParams under a key.

Definition at line 327 of file satellite-phy-rx-carrier.h.

References m_rxParamsMap.

Referenced by ns3::SatPhyRxCarrierPerSlot::EndRxData(), and ns3::SatPhyRxCarrierUplink::EndRxData().

+ Here is the caller graph for this function:

◆ GetTypeId()

TypeId ns3::SatPhyRxCarrier::GetTypeId ( void  )
static

Function for gettign the NS-3 type ID.

Returns

Definition at line 214 of file satellite-phy-rx-carrier.cc.

References m_daRxCarrierIdTrace, m_daRxTrace, m_enableCompositeSinrOutputTrace, m_linkBudgetTrace, m_linkSinrTrace, m_rxPowerTrace, and m_sinrTrace.

◆ GetUniformRandomValue()

double ns3::SatPhyRxCarrier::GetUniformRandomValue ( double  min,
double  max 
)
inlineprotected

A helper method for getting values form a uniform random variable in child classes.

Parameters
minMinimum value
maxMaximum value
Returns
Double between min and max

Definition at line 576 of file satellite-phy-rx-carrier.h.

References m_uniformVariable.

Referenced by CheckAgainstLinkResults(), CheckAgainstLinkResultsErrorModelAvi(), and ns3::SatPhyRxCarrierPerSlot::ProcessSlottedAlohaCollisions().

+ Here is the caller graph for this function:

◆ GetWaveformConf()

Ptr<SatWaveformConf> ns3::SatPhyRxCarrier::GetWaveformConf ( )
inlineprotected

Get pointer to the waveform configuration.

Returns
Waveform Configuration

Definition at line 548 of file satellite-phy-rx-carrier.h.

References m_waveformConf.

Referenced by ns3::SatPhyRxCarrierPerWindow::CalculatePacketInterferenceVectors(), and ns3::SatPhyRxCarrierPerWindow::GetWindowBounds().

+ Here is the caller graph for this function:

◆ GetWorstSinr()

double ns3::SatPhyRxCarrier::GetWorstSinr ( double  sinr1,
double  sinr2 
)
protected

Function for calculating the worst sinr between uplink and downlink.

Parameters
sinr1SINR 1
sinr2SINR 2
Returns
Worst SINR

Definition at line 694 of file satellite-phy-rx-carrier.cc.

Referenced by ns3::SatPhyRxCarrierPerSlot::ReceiveSlot().

+ Here is the caller graph for this function:

◆ IncreaseNumOfRxState()

void ns3::SatPhyRxCarrier::IncreaseNumOfRxState ( SatEnums::PacketType_t  packetType)
protected

Function for increasing the number of ongoing transmissions.

Parameters
packetTypePacket type of the ongoing transmission

Definition at line 712 of file satellite-phy-rx-carrier.cc.

References ChangeState(), CheckRxStateSanity(), m_numOfOngoingRx, m_receivingDedicatedAccess, ns3::SatEnums::PACKET_TYPE_DEDICATED_ACCESS, and RX.

Referenced by StartRx().

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

◆ IsCompositeSinrOutputTraceEnabled()

bool ns3::SatPhyRxCarrier::IsCompositeSinrOutputTraceEnabled ( ) const
inlineprotected

Check if composite SINR output trace is enabled.

Definition at line 565 of file satellite-phy-rx-carrier.h.

References m_enableCompositeSinrOutputTrace.

Referenced by ns3::SatPhyRxCarrierPerWindow::CalculatePacketInterferenceVectors(), and ns3::SatPhyRxCarrierPerSlot::ReceiveSlot().

+ Here is the caller graph for this function:

◆ IsReceivingDedicatedAccess()

bool ns3::SatPhyRxCarrier::IsReceivingDedicatedAccess ( )
inlineprotected

Check if the carrier is receiving a dedicated access packet.

Returns
true or false

Definition at line 280 of file satellite-phy-rx-carrier.h.

References m_receivingDedicatedAccess.

Referenced by StartRx().

+ Here is the caller graph for this function:

◆ RemoveStoredRxParams()

void ns3::SatPhyRxCarrier::RemoveStoredRxParams ( uint32_t  key)
inlineprotected

Remove stored rxParams under a key.

Definition at line 339 of file satellite-phy-rx-carrier.h.

References m_rxParamsMap.

Referenced by ns3::SatPhyRxCarrierPerSlot::EndRxData(), and ns3::SatPhyRxCarrierUplink::EndRxData().

+ Here is the caller graph for this function:

◆ SetAverageNormalizedOfferedLoadCallback()

void ns3::SatPhyRxCarrier::SetAverageNormalizedOfferedLoadCallback ( SatPhyRx::AverageNormalizedOfferedLoadCallback  callback)

Function for setting the AverageNormalizedOfferedLoadCallback callback.

Parameters
callbackcallback

Definition at line 767 of file satellite-phy-rx-carrier.cc.

References m_avgNormalizedOfferedLoadCallback.

◆ SetBeamId()

void ns3::SatPhyRxCarrier::SetBeamId ( uint32_t  beamId)
inline

Function for setting the beam id for all the transmissions from this SatPhyTx.

Parameters
beamIdthe Beam Identifier

Definition at line 196 of file satellite-phy-rx-carrier.h.

References m_beamId.

◆ SetChannelType()

void ns3::SatPhyRxCarrier::SetChannelType ( SatEnums::ChannelType_t  channelType)
inlineprotected

Set the channel type for the carrier.

Parameters
channelTypeChannel type.

Definition at line 403 of file satellite-phy-rx-carrier.h.

References m_channelType.

Referenced by SatPhyRxCarrier().

+ Here is the caller graph for this function:

◆ SetCnoCb()

void ns3::SatPhyRxCarrier::SetCnoCb ( SatPhyRx::CnoCallback  cb)

Function for settign the C/NO callback.

Parameters
cbcallback

Definition at line 293 of file satellite-phy-rx-carrier.cc.

References m_cnoCallback.

◆ SetLinkRegenerationMode()

void ns3::SatPhyRxCarrier::SetLinkRegenerationMode ( SatEnums::RegenerationMode_t  linkRegenerationMode)
inlineprotected

Set the link regeneration mode.

Parameters
linkRegenerationModeLink regeneration mode

Definition at line 421 of file satellite-phy-rx-carrier.h.

References m_linkRegenerationMode.

Referenced by SatPhyRxCarrier().

+ Here is the caller graph for this function:

◆ SetNodeInfo()

void ns3::SatPhyRxCarrier::SetNodeInfo ( const Ptr< SatNodeInfo nodeInfo)

Function for setting the node info class.

Parameters
nodeInfoNode information related to this SatPhyRxCarrier

Definition at line 620 of file satellite-phy-rx-carrier.cc.

References m_nodeInfo, and m_ownAddress.

◆ SetPhy()

void ns3::SatPhyRxCarrier::SetPhy ( Ptr< SatPhy phy)

Function for setting the SatPhy module.

Parameters
phyPHY module

◆ SetReceiveCb()

void ns3::SatPhyRxCarrier::SetReceiveCb ( SatPhyRx::ReceiveCallback  cb)

Function for setting the receive callback.

Parameters
cbcallback

Definition at line 286 of file satellite-phy-rx-carrier.cc.

References m_rxCallback.

◆ SetSatId()

void ns3::SatPhyRxCarrier::SetSatId ( uint32_t  satId)
inline

Function for setting the satellite id for all the transmissions from this SatPhyTx.

Parameters
beamIdthe satellite Identifier

Definition at line 178 of file satellite-phy-rx-carrier.h.

References m_satId.

◆ StartRx()

◆ StoreRxParams()

void ns3::SatPhyRxCarrier::StoreRxParams ( uint32_t  key,
rxParams_s  rxParams 
)
inlineprotected

Store rxParams under a key.

Definition at line 333 of file satellite-phy-rx-carrier.h.

References m_rxParamsMap.

Referenced by StartRx().

+ Here is the caller graph for this function:

Member Data Documentation

◆ m_additionalInterferenceCallback

◆ m_avgNormalizedOfferedLoadCallback

SatPhy::AverageNormalizedOfferedLoadCallback ns3::SatPhyRxCarrier::m_avgNormalizedOfferedLoadCallback
protected

◆ m_beamId

uint32_t ns3::SatPhyRxCarrier::m_beamId
private

Definition at line 694 of file satellite-phy-rx-carrier.h.

Referenced by GetBeamId(), and SetBeamId().

◆ m_carrierId

uint32_t ns3::SatPhyRxCarrier::m_carrierId
private

Definition at line 695 of file satellite-phy-rx-carrier.h.

Referenced by SatPhyRxCarrier(), GetCarrierId(), and StartRx().

◆ m_channelEstimationError

Ptr<SatChannelEstimationErrorContainer> ns3::SatPhyRxCarrier::m_channelEstimationError
private

Channel estimation error container.

Definition at line 724 of file satellite-phy-rx-carrier.h.

Referenced by SatPhyRxCarrier(), and GetChannelEstimationErrorContainer().

◆ m_channelType

SatEnums::ChannelType_t ns3::SatPhyRxCarrier::m_channelType
private

Definition at line 714 of file satellite-phy-rx-carrier.h.

Referenced by GetChannelType(), and SetChannelType().

◆ m_cnoCallback

SatPhy::CnoCallback ns3::SatPhyRxCarrier::m_cnoCallback
protected

The upper layer C/N0 receive callback.

Definition at line 676 of file satellite-phy-rx-carrier.h.

Referenced by DoDispose(), ns3::SatPhyRxCarrierPerSlot::ReceiveSlot(), and SetCnoCb().

◆ m_constantErrorRate

double ns3::SatPhyRxCarrier::m_constantErrorRate
private

Definition at line 719 of file satellite-phy-rx-carrier.h.

Referenced by SatPhyRxCarrier(), and CheckAgainstLinkResults().

◆ m_daRxCarrierIdTrace

TracedCallback<uint32_t, const Address&> ns3::SatPhyRxCarrier::m_daRxCarrierIdTrace
protected

◆ m_daRxTrace

TracedCallback<uint32_t, const Address&, bool> ns3::SatPhyRxCarrier::m_daRxTrace
protected

DaRx trace source.

Fired when a packet burst is received through Dedicated Channel.

Contains the following information:

  • number of upper layer packets in the received packet burst;
  • the MAC48 address of the sender; and
  • whether a PHY error has occurred.

Definition at line 659 of file satellite-phy-rx-carrier.h.

Referenced by ns3::SatPhyRxCarrierPerWindow::CleanOldPackets(), GetTypeId(), and ns3::SatPhyRxCarrierPerSlot::ReceiveSlot().

◆ m_enableCompositeSinrOutputTrace

bool ns3::SatPhyRxCarrier::m_enableCompositeSinrOutputTrace
private

Definition at line 699 of file satellite-phy-rx-carrier.h.

Referenced by GetTypeId(), and IsCompositeSinrOutputTraceEnabled().

◆ m_errorModel

SatPhyRxCarrierConf::ErrorModel ns3::SatPhyRxCarrier::m_errorModel
private

Definition at line 718 of file satellite-phy-rx-carrier.h.

Referenced by SatPhyRxCarrier(), and CheckAgainstLinkResults().

◆ m_linkBudgetTrace

TracedCallback<Ptr<SatSignalParameters>, Mac48Address, Mac48Address, double, double > ns3::SatPhyRxCarrier::m_linkBudgetTrace
protected

◆ m_linkRegenerationMode

◆ m_linkResults

Ptr<SatLinkResults> ns3::SatPhyRxCarrier::m_linkResults
private

Definition at line 715 of file satellite-phy-rx-carrier.h.

Referenced by SatPhyRxCarrier(), and GetLinkResults().

◆ m_linkSinrTrace

◆ m_nodeInfo

Ptr<SatNodeInfo> ns3::SatPhyRxCarrier::m_nodeInfo
private

Definition at line 713 of file satellite-phy-rx-carrier.h.

Referenced by GetNodeInfo(), SetNodeInfo(), and StartRx().

◆ m_numOfOngoingRx

uint32_t ns3::SatPhyRxCarrier::m_numOfOngoingRx
private

Contains information about how many ongoing Rx events there are.

Definition at line 704 of file satellite-phy-rx-carrier.h.

Referenced by CheckRxStateSanity(), DecreaseNumOfRxState(), and IncreaseNumOfRxState().

◆ m_ownAddress

Mac48Address ns3::SatPhyRxCarrier::m_ownAddress
private

Definition at line 712 of file satellite-phy-rx-carrier.h.

Referenced by GetOwnAddress(), and SetNodeInfo().

◆ m_randomAccessEnabled

◆ m_receivingDedicatedAccess

bool ns3::SatPhyRxCarrier::m_receivingDedicatedAccess
private

◆ m_rxAciIfPowerW

◆ m_rxBandwidthHz

◆ m_rxCallback

◆ m_rxExtNoisePowerW

◆ m_rxNoisePowerW

◆ m_rxPacketCounter

uint32_t ns3::SatPhyRxCarrier::m_rxPacketCounter
private

Running counter for received packets.

Definition at line 709 of file satellite-phy-rx-carrier.h.

Referenced by StartRx().

◆ m_rxParamsMap

std::map<uint32_t, rxParams_s> ns3::SatPhyRxCarrier::m_rxParamsMap
private

◆ m_rxPowerTrace

TracedCallback<double, const Address&> ns3::SatPhyRxCarrier::m_rxPowerTrace
protected

A callback for received signal power in dBW.

Definition at line 630 of file satellite-phy-rx-carrier.h.

Referenced by GetTypeId(), and StartRx().

◆ m_rxTemperatureK

double ns3::SatPhyRxCarrier::m_rxTemperatureK
protected

RX noise temperature in K.

Definition at line 585 of file satellite-phy-rx-carrier.h.

Referenced by SatPhyRxCarrier(), and GetRxTemperatureK().

◆ m_satId

uint32_t ns3::SatPhyRxCarrier::m_satId
private

Definition at line 693 of file satellite-phy-rx-carrier.h.

Referenced by GetSatId(), and SetSatId().

◆ m_satInterference

Ptr<SatInterference> ns3::SatPhyRxCarrier::m_satInterference
private

◆ m_satInterferenceElimination

Ptr<SatInterferenceElimination> ns3::SatPhyRxCarrier::m_satInterferenceElimination
private

◆ m_sinrTrace

TracedCallback<double, const Address&> ns3::SatPhyRxCarrier::m_sinrTrace
protected

A callback for transmission composite SINR at UT (BBFrame) or GW (time slot).

The first argument is the SINR in dB. The second argument is the address of the node where the signal originates from.

Definition at line 639 of file satellite-phy-rx-carrier.h.

Referenced by ns3::SatPhyRxCarrierPerFrame::DoFrameEnd(), GetTypeId(), ns3::SatPhyRxCarrierPerWindow::ProcessWindow(), and ns3::SatPhyRxCarrierPerSlot::ReceiveSlot().

◆ m_state

State ns3::SatPhyRxCarrier::m_state
private

Definition at line 692 of file satellite-phy-rx-carrier.h.

Referenced by ChangeState(), CheckRxStateSanity(), GetState(), and StartRx().

◆ m_uniformVariable

Ptr<UniformRandomVariable> ns3::SatPhyRxCarrier::m_uniformVariable
private

Definition at line 717 of file satellite-phy-rx-carrier.h.

Referenced by SatPhyRxCarrier(), DoDispose(), and GetUniformRandomValue().

◆ m_waveformConf

Ptr<SatWaveformConf> ns3::SatPhyRxCarrier::m_waveformConf
private

Definition at line 716 of file satellite-phy-rx-carrier.h.

Referenced by GetWaveformConf().


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