ns3::SatGwPhy Class Reference

The SatGwPhy models the physical layer of the satellite system (UT, GW, satellite) More...

#include "satellite-gw-phy.h"

+ Inheritance diagram for ns3::SatGwPhy:
+ Collaboration diagram for ns3::SatGwPhy:

Public Member Functions

 SatGwPhy (SatPhy::CreateParam_t &params, Ptr< SatLinkResults > linkResults, SatPhyRxCarrierConf::RxCarrierCreateParams_s parameters, Ptr< SatSuperframeConf > superFrameConf, SatEnums::RegenerationMode_t returnLinkRegenerationMode)
 
 SatGwPhy (void)
 Default constructor. More...
 
virtual ~SatGwPhy ()
 Destructor for SatGwPhy. More...
 
virtual void DoDispose (void)
 Dispose of this class instance. More...
 
virtual void DoInitialize (void)
 Initialization of SatPhy. More...
 
virtual double GetAdditionalInterference ()
 Get additional interference, used to compute final SINR at RX. More...
 
TypeId GetInstanceTypeId (void) const
 
- 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 Receive (Ptr< SatSignalParameters > rxParams, bool phyError)
 Receives packets from lower layer. 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...
 

Protected Member Functions

virtual SatEnums::SatLinkDir_t GetSatLinkRxDir ()
 Get the link RX direction. More...
 
virtual SatEnums::SatLinkDir_t GetSatLinkTxDir ()
 Get the link TX direction. More...
 
- 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...
 

Private Attributes

double m_aciIfWrtNoisePercent
 Configured adjacent channel interference wrt noise (percent). More...
 
double m_imInterferenceCOverI
 Intermodulation interference in linear. More...
 
double m_imInterferenceCOverIDb
 Configured intermodulation interference in dB. 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 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 SatGwPhy models the physical layer of the satellite system (UT, GW, satellite)

Definition at line 49 of file satellite-gw-phy.h.

Constructor & Destructor Documentation

◆ SatGwPhy() [1/2]

ns3::SatGwPhy::SatGwPhy ( void  )

Default constructor.

Definition at line 139 of file satellite-gw-phy.cc.

◆ SatGwPhy() [2/2]

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

◆ ~SatGwPhy()

ns3::SatGwPhy::~SatGwPhy ( )
virtual

Destructor for SatGwPhy.

Definition at line 184 of file satellite-gw-phy.cc.

Member Function Documentation

◆ DoDispose()

void ns3::SatGwPhy::DoDispose ( void  )
virtual

Dispose of this class instance.

Reimplemented from ns3::SatPhy.

Definition at line 190 of file satellite-gw-phy.cc.

References ns3::SatPhy::DoDispose().

+ Here is the call graph for this function:

◆ DoInitialize()

void ns3::SatGwPhy::DoInitialize ( void  )
virtual

Initialization of SatPhy.

Reimplemented from ns3::SatPhy.

Definition at line 197 of file satellite-gw-phy.cc.

References ns3::SatPhy::DoInitialize().

+ Here is the call graph for this function:

◆ GetAdditionalInterference()

double ns3::SatGwPhy::GetAdditionalInterference ( )
virtual

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

Returns
Additional interference

Implements ns3::SatPhy.

Definition at line 204 of file satellite-gw-phy.cc.

References m_imInterferenceCOverI.

Referenced by SatGwPhy().

+ Here is the caller graph for this function:

◆ GetInstanceTypeId()

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

Definition at line 132 of file satellite-gw-phy.cc.

References GetTypeId().

+ Here is the call graph for this function:

◆ GetSatLinkRxDir()

SatEnums::SatLinkDir_t ns3::SatGwPhy::GetSatLinkRxDir ( )
protectedvirtual

Get the link RX direction.

Must be implemented by child clases.

Returns
The link RX direction

Reimplemented from ns3::SatPhy.

Definition at line 218 of file satellite-gw-phy.cc.

References ns3::SatEnums::LD_RETURN.

◆ GetSatLinkTxDir()

SatEnums::SatLinkDir_t ns3::SatGwPhy::GetSatLinkTxDir ( )
protectedvirtual

Get the link TX direction.

Must be implemented by child clases.

Returns
The link TX direction

Reimplemented from ns3::SatPhy.

Definition at line 212 of file satellite-gw-phy.cc.

References ns3::SatEnums::LD_FORWARD.

◆ GetTypeId()

Member Data Documentation

◆ m_aciIfWrtNoisePercent

double ns3::SatGwPhy::m_aciIfWrtNoisePercent
private

Configured adjacent channel interference wrt noise (percent).

Definition at line 104 of file satellite-gw-phy.h.

Referenced by SatGwPhy(), and GetTypeId().

◆ m_imInterferenceCOverI

double ns3::SatGwPhy::m_imInterferenceCOverI
private

Intermodulation interference in linear.

Definition at line 114 of file satellite-gw-phy.h.

Referenced by SatGwPhy(), and GetAdditionalInterference().

◆ m_imInterferenceCOverIDb

double ns3::SatGwPhy::m_imInterferenceCOverIDb
private

Configured intermodulation interference in dB.

Definition at line 109 of file satellite-gw-phy.h.

Referenced by SatGwPhy(), and GetTypeId().


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