ns3::SatUtPhy Class Reference

The SatUtPhy models the physical layer of the User Terminal of the satellite system. More...

#include "satellite-ut-phy.h"

+ Inheritance diagram for ns3::SatUtPhy:
+ Collaboration diagram for ns3::SatUtPhy:

Public Member Functions

 SatUtPhy (SatPhy::CreateParam_t &params, Ptr< SatLinkResults > linkResults, SatPhyRxCarrierConf::RxCarrierCreateParams_s parameters, Ptr< SatSuperframeConf > superFrameConf, SatEnums::RegenerationMode_t forwardLinkRegenerationMode)
 Constructor. More...
 
 SatUtPhy (void)
 Default constructor, which is not used. More...
 
virtual ~SatUtPhy ()
 Destructor. More...
 
virtual void DoDispose (void)
 Dispose of SatUtPhy. More...
 
virtual void DoInitialize (void)
 Initialization of SatUtPhy. More...
 
virtual double GetAdditionalInterference ()
 Get additional interference, used to compute final SINR at RX. More...
 
TypeId GetInstanceTypeId (void) const
 
bool IsTxPossible (void) const
 Inform whether or not the underlying Tx channel is properly configured for transmission. More...
 
void PerformHandover (uint32_t beamId)
 Change underlying SatChannel to send and receive data from a new beam. More...
 
void Receive (Ptr< SatSignalParameters > rxParams, bool phyError)
 Receives packets from lower layer. More...
 
void UpdateSliceSubscription (uint8_t slice)
 Updates the slices subscription list. More...
 
- Public Member Functions inherited from ns3::SatPhy
 SatPhy (CreateParam_t &params)
 Constructor to create PHY objects with parameters. More...
 
 SatPhy (void)
 Default constructor. More...
 
virtual ~SatPhy ()
 Destructor. More...
 
void AverageNormalizedOfferedRandomAccessLoadInfo (uint32_t satId, uint32_t beamId, uint32_t carrierId, uint8_t allocationChannelId, double averageNormalizedOfferedLoad)
 Function for getting the normalized offered load of the specific random access allocation channel. More...
 
void BeginEndScheduling ()
 Begin frame/window end scheduling for processes utilizing frame length as interval. More...
 
double CalculateSinr (double sinr, double otherInterference)
 Calculate final SINR with PHY specific parameters and given calculated SINR. More...
 
void CnoInfo (uint32_t satId, uint32_t beamId, Address source, Address destination, double cno, bool isSatelliteMac)
 Function for getting the C/NO information. More...
 
void ConfigureRxCarriers (Ptr< SatPhyRxCarrierConf > carrierConf, Ptr< SatSuperframeConf > superFrameConf)
 Configure Rx carriers. More...
 
double GetDefaultFading () const
 Get the default fading of the PHY. More...
 
TypeId GetInstanceTypeId (void) const
 Derived from Object. More...
 
virtual Ptr< SatPhyRxGetPhyRx () const
 Get the SatPhyRx pointer. More...
 
virtual Ptr< SatPhyTxGetPhyTx () const
 Get the SatPhyTx pointer. More...
 
double GetRxAntennaGainDb () const
 Get the maximum antenna gain of the receiver in dB. More...
 
double GetRxAntennaLossDb () const
 Get the antenna loss of the receiver in dB. More...
 
double GetRxNoiseTemperatureDbk () const
 Get the noise temperature of the receiver in dbK. More...
 
double GetTxAntennaGainDb () const
 Get the maximum antenna gain of the transmitter in dB. More...
 
double GetTxAntennaLossDb () const
 Get the antenna loss of the transmitter in dB. More...
 
Ptr< SatChannelGetTxChannel ()
 Get the Tx satellite channel. More...
 
double GetTxMaxPowerDbw () const
 Get the maximum transmit power of the transmitter in dB. More...
 
double GetTxOboLossDb () const
 Get the OBO loss of the transmitter in dB. More...
 
double GetTxOutputLossDb () const
 Get the output loss of the transmitter in dB. More...
 
double GetTxPointingLossDb () const
 Get the pointing loss of the transmitter in dB. More...
 
void Initialize ()
 Initialize phy. More...
 
virtual void SendPdu (PacketContainer_t, uint32_t carrierId, Time duration, SatSignalParameters::txInfo_s txInfo)
 Send Pdu to the PHY tx module (for initial transmissions from either UT or GW) More...
 
virtual void SendPduWithParams (Ptr< SatSignalParameters > rxParams)
 Send Pdu to the PHY tx module (for GEO satellite switch packet forwarding) More...
 
void SetBeamId (uint32_t beamId)
 Set the beamId this PHY is connected with. More...
 
void SetChannelPairGetterCallback (SatPhy::ChannelPairGetterCallback cb)
 Set the channel pair getter callback. More...
 
void SetDefaultFading (double fading)
 Set the default fading of the PHY. More...
 
void SetNodeInfo (const Ptr< SatNodeInfo > nodeInfo)
 Set the node info class. More...
 
virtual void SetPhyRx (Ptr< SatPhyRx > phyRx)
 Set the SatPhyRx module. More...
 
virtual void SetPhyTx (Ptr< SatPhyTx > phyTx)
 Set the SatPhyTx module. More...
 
void SetRxAntennaGainDb (double gainDb)
 Set the maximum antenna gain of the receiver in dB. More...
 
virtual void SetRxAntennaGainPattern (Ptr< SatAntennaGainPattern > agp, Ptr< SatMobilityModel > satelliteMobility)
 Set the receive antenna gain pattern. More...
 
void SetRxAntennaLossDb (double lossDb)
 Set the antenna loss of the receiver in dB. More...
 
void SetRxFadingContainer (Ptr< SatBaseFading > fadingContainer)
 Set fading container. More...
 
void SetRxNoiseTemperatureDbk (double temperatureDbk)
 Set the noise temperature of the receiver in dbK. More...
 
void SetSatId (uint32_t satId)
 Set the satId this PHY is connected with. More...
 
void SetTxAntennaGainDb (double gainDb)
 Set the maximum antenna gain of the transmitter in dB. More...
 
virtual void SetTxAntennaGainPattern (Ptr< SatAntennaGainPattern > agp, Ptr< SatMobilityModel > satelliteMobility)
 Set the transmit antenna gain pattern. More...
 
void SetTxAntennaLossDb (double lossDb)
 Set the antenna loss of the transmitter in dB. More...
 
void SetTxFadingContainer (Ptr< SatBaseFading > fadingContainer)
 Set fading container. More...
 
void SetTxMaxPowerDbw (double powerDb)
 Set the maximum transmit power of the transmitter in dB. More...
 
void SetTxOboLossDb (double lossDb)
 Set the OBO loss of the transmitter in dB. More...
 
void SetTxOutputLossDb (double lossDb)
 Set the output loss of the transmitter in dB. More...
 
void SetTxPointingLossDb (double lossDb)
 Set the pointing loss of the transmitter in dB. More...
 

Static Public Member Functions

static TypeId GetTypeId (void)
 inherited from Object More...
 
- Static Public Member Functions inherited from ns3::SatPhy
static TypeId GetTypeId (void)
 Derived from Object. More...
 

Private Member Functions

void AssignNewSatChannels ()
 Update the underlying SatChannel to send and receive data from the current beam (as described in the m_beamId attribute). More...
 
virtual SatEnums::SatLinkDir_t GetSatLinkRxDir ()
 Get the link RX direction. More...
 
virtual SatEnums::SatLinkDir_t GetSatLinkTxDir ()
 Get the link TX direction. More...
 

Private Attributes

Time m_antennaReconfigurationDelay
 Delay of antenna reconfiguration when performing handover. More...
 
double m_otherSysInterferenceCOverI
 Other system interference in linear. More...
 
double m_otherSysInterferenceCOverIDb
 Configured other system interference in dB. More...
 
std::set< uint8_t > m_slicesSubscribed
 The list of slices subscribed for this UT. More...
 

Additional Inherited Members

- Public Types inherited from ns3::SatPhy
typedef Callback< void, uint32_t, uint32_t, uint32_t, uint8_t, double > AverageNormalizedOfferedLoadCallback
 
typedef Callback< SatChannelPair::ChannelPair_t, uint32_t, uint32_t > ChannelPairGetterCallback
 Callback for retrieving a pair of SatChannel associated to a beam. More...
 
typedef Callback< void, uint32_t, uint32_t, Address, Address, double, bool > CnoCallback
 
typedef SatPhyRxCarrierConf::ErrorModel ErrorModel
 Define ErrorModel in SatPhy. More...
 
typedef SatPhyRxCarrierConf::InterferenceEliminationModel InterferenceEliminationModel
 Define InterferenceEliminationModel in SatPhy. More...
 
typedef SatPhyRxCarrierConf::InterferenceModel InterferenceModel
 Define InterferenceModel in SatPhy. More...
 
typedef SatSignalParameters::PacketsInBurst_t PacketContainer_t
 Define PacketContainer in SatPhy. More...
 
typedef Callback< void, PacketContainer_t, Ptr< SatSignalParameters > > ReceiveCallback
 
- Protected Member Functions inherited from ns3::SatPhy
void ModcodTrace (Ptr< SatSignalParameters > rxParams)
 Invoke the RxLinkModcod trace source for each received packet. More...
 
virtual void RxTraces (SatPhy::PacketContainer_t packets)
 Invoke the Rx trace source for each received packet. More...
 
void SetTimeTag (SatPhy::PacketContainer_t packets)
 Set SatPhyTimeTag of packets. More...
 
- Protected Attributes inherited from ns3::SatPhy
uint32_t m_beamId
 Beam ID. More...
 
double m_eirpWoGainW
 Calculated EIRP without gain in W. More...
 
bool m_isStatisticsTagsEnabled
 EnableStatisticsTags attribute. More...
 
Time m_lastDelay
 Last delay measurement. More...
 
Time m_lastLinkDelay
 Last delay measurement for link. More...
 
Ptr< SatNodeInfom_nodeInfo
 Node info containing node related information, such as node type, node id and MAC address (of the SatNetDevice) More...
 
TracedCallback< Time, SatEnums::SatPacketEvent_t, SatEnums::SatNodeType_t, uint32_t, Mac48Address, SatEnums::SatLogLevel_t, SatEnums::SatLinkDir_t, std::string > m_packetTrace
 Trace callback used for packet tracing: More...
 
Ptr< SatPhyRxm_phyRx
 Pointer to internal SatPhyRx instance. More...
 
Ptr< SatPhyTxm_phyTx
 Pointer to internal SatPhyTx instance. More...
 
SatPhy::ChannelPairGetterCallback m_retrieveChannelPair
 Callback for retrieving SatChannel pairs by beam. More...
 
SatPhy::ReceiveCallback m_rxCallback
 The upper layer package receive callback. More...
 
TracedCallback< const Time &, const Address & > m_rxDelayTrace
 Traced callback for all received packets, including delay information and the address of the senders. More...
 
TracedCallback< const Time &, const Address & > m_rxJitterTrace
 Traced callback for all received packets, including jitter information and the address of the senders. More...
 
TracedCallback< const Time &, const Address & > m_rxLinkDelayTrace
 Traced callback for all received packets, including link delay information and the address of the senders. More...
 
TracedCallback< const Time &, const Address & > m_rxLinkJitterTrace
 Traced callback for all received packets, including link jitter information and the address of the senders. More...
 
TracedCallback< uint32_t, const Address & > m_rxLinkModcodTrace
 Traced callback for all received packets, including link MODCOD information and the address of the senders. More...
 
TracedCallback< Ptr< const Packet >, const Address & > m_rxTrace
 Traced callback for all received packets, including the address of the senders. More...
 
uint32_t m_satId
 Satellite ID. More...
 

Detailed Description

The SatUtPhy models the physical layer of the User Terminal of the satellite system.

Definition at line 51 of file satellite-ut-phy.h.

Constructor & Destructor Documentation

◆ SatUtPhy() [1/2]

ns3::SatUtPhy::SatUtPhy ( void  )

Default constructor, which is not used.

Definition at line 140 of file satellite-ut-phy.cc.

◆ SatUtPhy() [2/2]

ns3::SatUtPhy::SatUtPhy ( SatPhy::CreateParam_t params,
Ptr< SatLinkResults linkResults,
SatPhyRxCarrierConf::RxCarrierCreateParams_s  parameters,
Ptr< SatSuperframeConf superFrameConf,
SatEnums::RegenerationMode_t  forwardLinkRegenerationMode 
)

Constructor.

Parameters
paramsCreation parameters
linkResultsLink results
parametersRx carrier creation parameters
superFrameConfSuperframe configuration

Definition at line 149 of file satellite-ut-phy.cc.

References ns3::SatPhy::ConfigureRxCarriers(), ns3::SatUtils::DbToLinear(), ns3::SatEnums::FORWARD_USER_CH, GetAdditionalInterference(), ns3::SatPhy::GetRxNoiseTemperatureDbk(), m_otherSysInterferenceCOverI, m_otherSysInterferenceCOverIDb, and ns3::SatPhyRxCarrierConf::NORMAL.

+ Here is the call graph for this function:

◆ ~SatUtPhy()

ns3::SatUtPhy::~SatUtPhy ( )
virtual

Destructor.

Definition at line 183 of file satellite-ut-phy.cc.

Member Function Documentation

◆ AssignNewSatChannels()

void ns3::SatUtPhy::AssignNewSatChannels ( )
private

Update the underlying SatChannel to send and receive data from the current beam (as described in the m_beamId attribute).

Definition at line 226 of file satellite-ut-phy.cc.

References ns3::SatPhy::m_beamId, ns3::SatPhy::m_phyRx, ns3::SatPhy::m_phyTx, ns3::SatPhy::m_retrieveChannelPair, and ns3::SatPhy::m_satId.

Referenced by PerformHandover().

+ Here is the caller graph for this function:

◆ DoDispose()

void ns3::SatUtPhy::DoDispose ( void  )
virtual

Dispose of SatUtPhy.

Reimplemented from ns3::SatPhy.

Definition at line 189 of file satellite-ut-phy.cc.

◆ DoInitialize()

void ns3::SatUtPhy::DoInitialize ( void  )
virtual

Initialization of SatUtPhy.

Reimplemented from ns3::SatPhy.

Definition at line 196 of file satellite-ut-phy.cc.

◆ GetAdditionalInterference()

double ns3::SatUtPhy::GetAdditionalInterference ( void  )
virtual

Get additional interference, used to compute final SINR at RX.

Returns
Additional interference

Implements ns3::SatPhy.

Definition at line 203 of file satellite-ut-phy.cc.

References m_otherSysInterferenceCOverI.

Referenced by SatUtPhy().

+ Here is the caller graph for this function:

◆ GetInstanceTypeId()

TypeId ns3::SatUtPhy::GetInstanceTypeId ( void  ) const

Definition at line 134 of file satellite-ut-phy.cc.

References GetTypeId().

+ Here is the call graph for this function:

◆ GetSatLinkRxDir()

SatEnums::SatLinkDir_t ns3::SatUtPhy::GetSatLinkRxDir ( )
privatevirtual

Get the link RX direction.

Must be implemented by child clases.

Returns
The link RX direction

Reimplemented from ns3::SatPhy.

Definition at line 248 of file satellite-ut-phy.cc.

References ns3::SatEnums::LD_FORWARD.

◆ GetSatLinkTxDir()

SatEnums::SatLinkDir_t ns3::SatUtPhy::GetSatLinkTxDir ( )
privatevirtual

Get the link TX direction.

Must be implemented by child clases.

Returns
The link TX direction

Reimplemented from ns3::SatPhy.

Definition at line 242 of file satellite-ut-phy.cc.

References ns3::SatEnums::LD_RETURN.

◆ GetTypeId()

◆ IsTxPossible()

bool ns3::SatUtPhy::IsTxPossible ( void  ) const

Inform whether or not the underlying Tx channel is properly configured for transmission.

Definition at line 254 of file satellite-ut-phy.cc.

References ns3::SatPhy::m_phyTx.

Referenced by ns3::SatUtHelper::InstallDvb().

+ Here is the caller graph for this function:

◆ PerformHandover()

void ns3::SatUtPhy::PerformHandover ( uint32_t  beamId)

Change underlying SatChannel to send and receive data from a new beam.

Parameters
beamIdthe new beam to listen/send to

Definition at line 211 of file satellite-ut-phy.cc.

References AssignNewSatChannels(), m_antennaReconfigurationDelay, ns3::SatPhy::m_beamId, ns3::SatPhy::m_phyRx, ns3::SatPhy::m_phyTx, ns3::SatPhy::m_retrieveChannelPair, ns3::SatPhy::m_satId, and ns3::SatPhy::SetBeamId().

Referenced by ns3::SatUtHelper::InstallDvb().

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

◆ Receive()

void ns3::SatUtPhy::Receive ( Ptr< SatSignalParameters rxParams,
bool  phyError 
)
virtual

Receives packets from lower layer.

Parameters
rxParamsPacket reception parameters
phyErrorBoolean indicating whether the packet successfully received or not?

Reimplemented from ns3::SatPhy.

Definition at line 261 of file satellite-ut-phy.cc.

References ns3::SatEnums::DUMMY_FRAME, m_slicesSubscribed, and ns3::SatPhy::Receive().

+ Here is the call graph for this function:

◆ UpdateSliceSubscription()

void ns3::SatUtPhy::UpdateSliceSubscription ( uint8_t  slice)

Updates the slices subscription list.

Parameters
sliceThe new slice to subscribe. If zero, reset the subscription list (except slice zero used for control messages).

Definition at line 285 of file satellite-ut-phy.cc.

References m_slicesSubscribed.

Referenced by ns3::SatUtHelper::InstallDvb().

+ Here is the caller graph for this function:

Member Data Documentation

◆ m_antennaReconfigurationDelay

Time ns3::SatUtPhy::m_antennaReconfigurationDelay
private

Delay of antenna reconfiguration when performing handover.

Definition at line 158 of file satellite-ut-phy.h.

Referenced by GetTypeId(), and PerformHandover().

◆ m_otherSysInterferenceCOverI

double ns3::SatUtPhy::m_otherSysInterferenceCOverI
private

Other system interference in linear.

Definition at line 153 of file satellite-ut-phy.h.

Referenced by SatUtPhy(), and GetAdditionalInterference().

◆ m_otherSysInterferenceCOverIDb

double ns3::SatUtPhy::m_otherSysInterferenceCOverIDb
private

Configured other system interference in dB.

Definition at line 148 of file satellite-ut-phy.h.

Referenced by SatUtPhy(), and GetTypeId().

◆ m_slicesSubscribed

std::set<uint8_t> ns3::SatUtPhy::m_slicesSubscribed
private

The list of slices subscribed for this UT.

Definition at line 163 of file satellite-ut-phy.h.

Referenced by Receive(), and UpdateSliceSubscription().


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