The SatGwPhy models the physical layer of the satellite system (UT, GW, satellite). More...
#include "satellite-gw-phy.h"
Public Member Functions | |
| SatGwPhy (SatPhy::CreateParam_t ¶ms, Ptr< SatLinkResults > linkResults, SatPhyRxCarrierConf::RxCarrierCreateParams_s parameters, Ptr< SatSuperframeConf > superFrameConf) | |
| SatGwPhy (void) | |
| Default constructor. | |
| virtual | ~SatGwPhy () |
| Destructor for SatGwPhy. | |
| virtual void | DoDispose (void) |
| Dispose of this class instance. | |
| virtual void | DoInitialize (void) |
| Initialization of SatPhy. | |
| virtual double | GetAdditionalInterference () |
| Get additional interference, used to compute final SINR at RX. | |
| virtual void | NotifyConstructionCompleted () override |
| Notifier called once the ObjectBase is fully constructed. | |
| void | PerformHandover (uint32_t satId, uint32_t beamId) |
| Change underlying SatChannel to send and receive data from a new satellite and beam. | |
| Public Member Functions inherited from ns3::SatPhy | |
| SatPhy (CreateParam_t params) | |
| Constructor to create PHY objects with parameters. | |
| SatPhy (void) | |
| Default constructor. | |
| virtual | ~SatPhy () |
| Destructor. | |
| 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. | |
| void | BeginEndScheduling () |
| Begin frame/window end scheduling for processes utilizing frame length as interval. | |
| double | CalculateSinr (double sinr, double otherInterference) |
| Calculate final SINR with PHY specific parameters and given calculated SINR. | |
| void | CnoInfo (uint32_t satId, uint32_t beamId, Address source, Address destination, double cno, bool isSatelliteMac) |
| Function for getting the C/NO information. | |
| void | ConfigureRxCarriers (Ptr< SatPhyRxCarrierConf > carrierConf, Ptr< SatSuperframeConf > superFrameConf) |
| Configure Rx carriers. | |
| double | GetDefaultFading () const |
| Get the default fading of the PHY. | |
| virtual Ptr< SatPhyRx > | GetPhyRx () const |
| Get the SatPhyRx pointer. | |
| virtual Ptr< SatPhyTx > | GetPhyTx () const |
| Get the SatPhyTx pointer. | |
| double | GetRxAntennaGainDb () const |
| Get the maximum antenna gain of the receiver in dB. | |
| double | GetRxAntennaLossDb () const |
| Get the antenna loss of the receiver in dB. | |
| double | GetRxNoiseTemperatureDbk () const |
| Get the noise temperature of the receiver in dbK. | |
| double | GetTxAntennaGainDb () const |
| Get the maximum antenna gain of the transmitter in dB. | |
| double | GetTxAntennaLossDb () const |
| Get the antenna loss of the transmitter in dB. | |
| Ptr< SatChannel > | GetTxChannel () |
| Get the Tx satellite channel. | |
| double | GetTxMaxPowerDbw () const |
| Get the maximum transmit power of the transmitter in dB. | |
| double | GetTxOboLossDb () const |
| Get the OBO loss of the transmitter in dB. | |
| double | GetTxOutputLossDb () const |
| Get the output loss of the transmitter in dB. | |
| double | GetTxPointingLossDb () const |
| Get the pointing loss of the transmitter in dB. | |
| void | Initialize () |
| Initialize phy. | |
| virtual void | Receive (Ptr< SatSignalParameters > rxParams, bool phyError) |
| Receives packets from lower layer. | |
| 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). | |
| virtual void | SendPduWithParams (Ptr< SatSignalParameters > rxParams) |
| Send Pdu to the PHY tx module (for satellite switch packet forwarding). | |
| bool | SetBeamId (uint32_t beamId) |
| Set the beamId this PHY is connected with. | |
| void | SetChannelPairGetterCallback (SatPhy::ChannelPairGetterCallback cb) |
| Set the channel pair getter callback. | |
| void | SetDefaultFading (double fading) |
| Set the default fading of the PHY. | |
| void | SetNodeInfo (const Ptr< SatNodeInfo > nodeInfo) |
| Set the node info class. | |
| virtual void | SetPhyRx (Ptr< SatPhyRx > phyRx) |
| Set the SatPhyRx module. | |
| virtual void | SetPhyTx (Ptr< SatPhyTx > phyTx) |
| Set the SatPhyTx module. | |
| void | SetRxAntennaGainDb (double gainDb) |
| Set the maximum antenna gain of the receiver in dB. | |
| virtual void | SetRxAntennaGainPattern (Ptr< SatAntennaGainPattern > agp, Ptr< SatMobilityModel > satelliteMobility) |
| Set the receive antenna gain pattern. | |
| void | SetRxAntennaLossDb (double lossDb) |
| Set the antenna loss of the receiver in dB. | |
| void | SetRxFadingContainer (Ptr< SatBaseFading > fadingContainer) |
| Set fading container. | |
| void | SetRxNoiseTemperatureDbk (double temperatureDbk) |
| Set the noise temperature of the receiver in dbK. | |
| void | SetSatId (uint32_t satId) |
| Set the satId this PHY is connected with. | |
| void | SetTxAntennaGainDb (double gainDb) |
| Set the maximum antenna gain of the transmitter in dB. | |
| virtual void | SetTxAntennaGainPattern (Ptr< SatAntennaGainPattern > agp, Ptr< SatMobilityModel > satelliteMobility) |
| Set the transmit antenna gain pattern. | |
| void | SetTxAntennaLossDb (double lossDb) |
| Set the antenna loss of the transmitter in dB. | |
| void | SetTxFadingContainer (Ptr< SatBaseFading > fadingContainer) |
| Set fading container. | |
| void | SetTxMaxPowerDbw (double powerDb) |
| Set the maximum transmit power of the transmitter in dB. | |
| void | SetTxOboLossDb (double lossDb) |
| Set the OBO loss of the transmitter in dB. | |
| void | SetTxOutputLossDb (double lossDb) |
| Set the output loss of the transmitter in dB. | |
| void | SetTxPointingLossDb (double lossDb) |
| Set the pointing loss of the transmitter in dB. | |
Static Public Member Functions | |
| static TypeId | GetTypeId (void) |
| inherited from Object | |
| Static Public Member Functions inherited from ns3::SatPhy | |
| static TypeId | GetTypeId (void) |
| Derived from Object. | |
Protected Member Functions | |
| virtual SatEnums::SatLinkDir_t | GetSatLinkRxDir () |
| Get the link RX direction. | |
| virtual SatEnums::SatLinkDir_t | GetSatLinkTxDir () |
| Get the link TX direction. | |
| Protected Member Functions inherited from ns3::SatPhy | |
| void | ModcodTrace (Ptr< SatSignalParameters > rxParams) |
| Invoke the RxLinkModcod trace source for each received packet. | |
| virtual void | RxTraces (SatPhy::PacketContainer_t packets) |
| Invoke the Rx trace source for each received packet. | |
| void | SetTimeTag (SatPhy::PacketContainer_t packets) |
| Set SatPhyTimeTag of packets. | |
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). | |
Private Attributes | |
| double | m_aciIfWrtNoisePercent |
| Configured adjacent channel interference wrt noise (percent). | |
| Time | m_antennaReconfigurationDelay |
| Delay of antenna reconfiguration when performing handover. | |
| double | m_imInterferenceCOverI |
| Intermodulation interference in linear. | |
| double | m_imInterferenceCOverIDb |
| Configured intermodulation interference in dB. | |
| Ptr< SatLinkResults > | m_linkResults |
| Link results used for this physical layer. | |
| SatPhyRxCarrierConf::RxCarrierCreateParams_s | m_parameters |
| RX carrier configuration parameters. | |
| Ptr< SatSuperframeConf > | m_superFrameConf |
| Super frame cofiguration. | |
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. | |
| typedef Callback< void, uint32_t, uint32_t, Address, Address, double, bool > | CnoCallback |
| typedef SatPhyRxCarrierConf::ErrorModel | ErrorModel |
| Define ErrorModel in SatPhy. | |
| typedef SatPhyRxCarrierConf::InterferenceEliminationModel | InterferenceEliminationModel |
| Define InterferenceEliminationModel in SatPhy. | |
| typedef SatPhyRxCarrierConf::InterferenceModel | InterferenceModel |
| Define InterferenceModel in SatPhy. | |
| typedef SatSignalParameters::PacketsInBurst_t | PacketContainer_t |
| Define PacketContainer in SatPhy. | |
| typedef Callback< void, PacketContainer_t, Ptr< SatSignalParameters > > | ReceiveCallback |
| Protected Attributes inherited from ns3::SatPhy | |
| uint32_t | m_beamId |
| Beam ID. | |
| double | m_eirpWoGainW |
| Calculated EIRP without gain in W. | |
| bool | m_isStatisticsTagsEnabled |
| EnableStatisticsTags attribute. | |
| Time | m_lastDelay |
| Last delay measurement. | |
| Time | m_lastLinkDelay |
| Last delay measurement for link. | |
| Ptr< SatNodeInfo > | m_nodeInfo |
| Node info containing node related information, such as node type, node id and MAC address (of the SatNetDevice). | |
| 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: | |
| CreateParam_t | m_params |
| Satellite physical layer construction parameters. | |
| Ptr< SatPhyRx > | m_phyRx |
| Pointer to internal SatPhyRx instance. | |
| Ptr< SatPhyTx > | m_phyTx |
| Pointer to internal SatPhyTx instance. | |
| SatPhy::ChannelPairGetterCallback | m_retrieveChannelPair |
| Callback for retrieving SatChannel pairs by beam. | |
| SatPhy::ReceiveCallback | m_rxCallback |
| The upper layer package receive callback. | |
| TracedCallback< const Time &, const Address & > | m_rxDelayTrace |
| Traced callback for all received packets, including delay information and the address of the senders. | |
| TracedCallback< const Time &, const Address & > | m_rxJitterTrace |
| Traced callback for all received packets, including jitter information and the address of the senders. | |
| TracedCallback< const Time &, const Address & > | m_rxLinkDelayTrace |
| Traced callback for all received packets, including link delay information and the address of the senders. | |
| TracedCallback< const Time &, const Address & > | m_rxLinkJitterTrace |
| Traced callback for all received packets, including link jitter information and the address of the senders. | |
| TracedCallback< uint32_t, const Address & > | m_rxLinkModcodTrace |
| Traced callback for all received packets, including link MODCOD information and the address of the senders. | |
| TracedCallback< Ptr< const Packet >, const Address & > | m_rxTrace |
| Traced callback for all received packets, including the address of the senders. | |
| uint32_t | m_satId |
| Satellite ID. | |
The SatGwPhy models the physical layer of the satellite system (UT, GW, satellite).
Definition at line 51 of file satellite-gw-phy.h.
| ns3::SatGwPhy::SatGwPhy | ( | void | ) |
Default constructor.
Definition at line 138 of file satellite-gw-phy.cc.
References m_aciIfWrtNoisePercent, m_antennaReconfigurationDelay, m_imInterferenceCOverI, and m_imInterferenceCOverIDb.
| ns3::SatGwPhy::SatGwPhy | ( | SatPhy::CreateParam_t & | params, |
| Ptr< SatLinkResults > | linkResults, | ||
| SatPhyRxCarrierConf::RxCarrierCreateParams_s | parameters, | ||
| Ptr< SatSuperframeConf > | superFrameConf ) |
Definition at line 148 of file satellite-gw-phy.cc.
References ns3::SatPhy::SatPhy(), m_aciIfWrtNoisePercent, m_antennaReconfigurationDelay, m_imInterferenceCOverI, m_imInterferenceCOverIDb, m_linkResults, m_parameters, and m_superFrameConf.
|
virtual |
Destructor for SatGwPhy.
Definition at line 194 of file satellite-gw-phy.cc.
|
private |
Update the underlying SatChannel to send and receive data from the current beam (as described in the m_beamId attribute).
Definition at line 251 of file satellite-gw-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().
|
virtual |
Dispose of this class instance.
Reimplemented from ns3::SatPhy.
Definition at line 200 of file satellite-gw-phy.cc.
References ns3::SatPhy::DoDispose().
|
virtual |
Initialization of SatPhy.
Reimplemented from ns3::SatPhy.
Definition at line 207 of file satellite-gw-phy.cc.
References ns3::SatPhy::DoInitialize().
|
virtual |
Get additional interference, used to compute final SINR at RX.
Implements ns3::SatPhy.
Definition at line 214 of file satellite-gw-phy.cc.
References m_imInterferenceCOverI.
Referenced by NotifyConstructionCompleted().
|
protectedvirtual |
Get the link RX direction.
Must be implemented by child clases.
Reimplemented from ns3::SatPhy.
Definition at line 228 of file satellite-gw-phy.cc.
References ns3::SatEnums::LD_RETURN.
|
protectedvirtual |
Get the link TX direction.
Must be implemented by child clases.
Reimplemented from ns3::SatPhy.
Definition at line 222 of file satellite-gw-phy.cc.
References ns3::SatEnums::LD_FORWARD.
|
static |
inherited from Object
Definition at line 47 of file satellite-gw-phy.cc.
References ns3::SatPhy::SatPhy(), ns3::SatPhy::GetDefaultFading(), ns3::SatPhy::GetPhyRx(), ns3::SatPhy::GetPhyTx(), ns3::SatPhy::GetRxAntennaGainDb(), ns3::SatPhy::GetRxAntennaLossDb(), ns3::SatPhy::GetRxNoiseTemperatureDbk(), ns3::SatPhy::GetTxAntennaGainDb(), ns3::SatPhy::GetTxAntennaLossDb(), ns3::SatPhy::GetTxMaxPowerDbw(), ns3::SatPhy::GetTxOboLossDb(), ns3::SatPhy::GetTxOutputLossDb(), ns3::SatPhy::GetTxPointingLossDb(), m_aciIfWrtNoisePercent, m_antennaReconfigurationDelay, m_imInterferenceCOverIDb, ns3::SatPhy::SetDefaultFading(), ns3::SatPhy::SetPhyRx(), ns3::SatPhy::SetPhyTx(), ns3::SatPhy::SetRxAntennaGainDb(), ns3::SatPhy::SetRxAntennaLossDb(), ns3::SatPhy::SetRxNoiseTemperatureDbk(), ns3::SatPhy::SetTxAntennaGainDb(), ns3::SatPhy::SetTxAntennaLossDb(), ns3::SatPhy::SetTxMaxPowerDbw(), ns3::SatPhy::SetTxOboLossDb(), ns3::SatPhy::SetTxOutputLossDb(), and ns3::SatPhy::SetTxPointingLossDb().
|
overridevirtual |
Notifier called once the ObjectBase is fully constructed.
This method is invoked once all member attributes have been initialized. Subclasses can override this method to be notified of this event but if they do this, they must chain up to their parent's NotifyConstructionCompleted method.
Reimplemented from ns3::SatPhy.
Definition at line 165 of file satellite-gw-phy.cc.
References ns3::SatPhy::ConfigureRxCarriers(), ns3::SatUtils::DbToLinear(), GetAdditionalInterference(), ns3::SatPhy::GetRxNoiseTemperatureDbk(), m_aciIfWrtNoisePercent, m_imInterferenceCOverI, m_imInterferenceCOverIDb, m_linkResults, m_parameters, m_superFrameConf, ns3::SatPhyRxCarrierConf::NORMAL, ns3::SatPhy::NotifyConstructionCompleted(), and ns3::SatEnums::RETURN_FEEDER_CH.
| void ns3::SatGwPhy::PerformHandover | ( | uint32_t | satId, |
| uint32_t | beamId ) |
Change underlying SatChannel to send and receive data from a new satellite and beam.
| satId | the new satellite to listen/send to |
| beamId | the new beam to listen/send to |
Definition at line 234 of file satellite-gw-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, ns3::SatPhy::SetBeamId(), and ns3::SatPhy::SetSatId().
Referenced by ns3::SatGwHelperDvb::Install().
|
private |
Configured adjacent channel interference wrt noise (percent).
Definition at line 142 of file satellite-gw-phy.h.
Referenced by SatGwPhy(), SatGwPhy(), GetTypeId(), and NotifyConstructionCompleted().
|
private |
Delay of antenna reconfiguration when performing handover.
Definition at line 157 of file satellite-gw-phy.h.
Referenced by SatGwPhy(), SatGwPhy(), GetTypeId(), and PerformHandover().
|
private |
Intermodulation interference in linear.
Definition at line 152 of file satellite-gw-phy.h.
Referenced by SatGwPhy(), SatGwPhy(), GetAdditionalInterference(), and NotifyConstructionCompleted().
|
private |
Configured intermodulation interference in dB.
Definition at line 147 of file satellite-gw-phy.h.
Referenced by SatGwPhy(), SatGwPhy(), GetTypeId(), and NotifyConstructionCompleted().
|
private |
Link results used for this physical layer.
Definition at line 127 of file satellite-gw-phy.h.
Referenced by SatGwPhy(), and NotifyConstructionCompleted().
|
private |
RX carrier configuration parameters.
Definition at line 132 of file satellite-gw-phy.h.
Referenced by SatGwPhy(), and NotifyConstructionCompleted().
|
private |
Super frame cofiguration.
Definition at line 137 of file satellite-gw-phy.h.
Referenced by SatGwPhy(), and NotifyConstructionCompleted().