The SatUtPhy models the physical layer of the User Terminal of the satellite system. More...
#include "satellite-ut-phy.h"
Public Member Functions | |
| SatUtPhy (SatPhy::CreateParam_t ¶ms, Ptr< SatLinkResults > linkResults, SatPhyRxCarrierConf::RxCarrierCreateParams_s parameters, Ptr< SatSuperframeConf > superFrameConf) | |
| Constructor. | |
| SatUtPhy (void) | |
| Default constructor, which is not used. | |
| virtual | ~SatUtPhy () |
| Destructor. | |
| virtual void | DoDispose (void) |
| Dispose of SatUtPhy. | |
| virtual void | DoInitialize (void) |
| Initialization of SatUtPhy. | |
| virtual double | GetAdditionalInterference () |
| Get additional interference, used to compute final SINR at RX. | |
| bool | IsTxPossible (void) const |
| Inform whether or not the underlying Tx channel is properly configured for transmission. | |
| 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. | |
| void | Receive (Ptr< SatSignalParameters > rxParams, bool phyError) |
| Receives packets from lower layer. | |
| void | UpdateSliceSubscription (uint8_t slice) |
| Updates the slices subscription list. | |
| 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 | 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. | |
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). | |
| virtual SatEnums::SatLinkDir_t | GetSatLinkRxDir () |
| Get the link RX direction. | |
| virtual SatEnums::SatLinkDir_t | GetSatLinkTxDir () |
| Get the link TX direction. | |
Private Attributes | |
| Time | m_antennaReconfigurationDelay |
| Delay of antenna reconfiguration when performing handover. | |
| Ptr< SatLinkResults > | m_linkResults |
| Link results used for this physical layer. | |
| double | m_otherSysInterferenceCOverI |
| Other system interference in linear. | |
| double | m_otherSysInterferenceCOverIDb |
| Configured other system interference in dB. | |
| SatPhyRxCarrierConf::RxCarrierCreateParams_s | m_parameters |
| RX carrier configuration parameters. | |
| std::set< uint8_t > | m_slicesSubscribed |
| The list of slices subscribed for this UT. | |
| 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 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. | |
| 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 SatUtPhy models the physical layer of the User Terminal of the satellite system.
Definition at line 54 of file satellite-ut-phy.h.
| ns3::SatUtPhy::SatUtPhy | ( | void | ) |
Default constructor, which is not used.
Definition at line 135 of file satellite-ut-phy.cc.
References m_antennaReconfigurationDelay, m_otherSysInterferenceCOverI, and m_otherSysInterferenceCOverIDb.
| ns3::SatUtPhy::SatUtPhy | ( | SatPhy::CreateParam_t & | params, |
| Ptr< SatLinkResults > | linkResults, | ||
| SatPhyRxCarrierConf::RxCarrierCreateParams_s | parameters, | ||
| Ptr< SatSuperframeConf > | superFrameConf ) |
Constructor.
| params | Creation parameters |
| linkResults | Link results |
| parameters | Rx carrier creation parameters |
| superFrameConf | Superframe configuration |
Definition at line 144 of file satellite-ut-phy.cc.
References ns3::SatPhy::SatPhy(), m_antennaReconfigurationDelay, m_linkResults, m_parameters, and m_superFrameConf.
|
virtual |
Destructor.
Definition at line 187 of file satellite-ut-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 231 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().
|
virtual |
Dispose of SatUtPhy.
Reimplemented from ns3::SatPhy.
Definition at line 193 of file satellite-ut-phy.cc.
|
virtual |
Initialization of SatUtPhy.
Reimplemented from ns3::SatPhy.
Definition at line 200 of file satellite-ut-phy.cc.
|
virtual |
Get additional interference, used to compute final SINR at RX.
Implements ns3::SatPhy.
Definition at line 207 of file satellite-ut-phy.cc.
References m_otherSysInterferenceCOverI.
Referenced by NotifyConstructionCompleted().
|
privatevirtual |
Get the link RX direction.
Must be implemented by child clases.
Reimplemented from ns3::SatPhy.
Definition at line 253 of file satellite-ut-phy.cc.
References ns3::SatEnums::LD_FORWARD.
|
privatevirtual |
Get the link TX direction.
Must be implemented by child clases.
Reimplemented from ns3::SatPhy.
Definition at line 247 of file satellite-ut-phy.cc.
References ns3::SatEnums::LD_RETURN.
|
static |
inherited from Object
Definition at line 49 of file satellite-ut-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_antennaReconfigurationDelay, m_otherSysInterferenceCOverIDb, 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().
| bool ns3::SatUtPhy::IsTxPossible | ( | void | ) | const |
Inform whether or not the underlying Tx channel is properly configured for transmission.
Definition at line 259 of file satellite-ut-phy.cc.
References ns3::SatPhy::m_phyTx.
Referenced by ns3::SatUtHelperDvb::Install().
|
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 158 of file satellite-ut-phy.cc.
References ns3::SatPhy::ConfigureRxCarriers(), ns3::SatUtils::DbToLinear(), ns3::SatEnums::FORWARD_USER_CH, GetAdditionalInterference(), ns3::SatPhy::GetRxNoiseTemperatureDbk(), m_linkResults, m_otherSysInterferenceCOverI, m_otherSysInterferenceCOverIDb, m_parameters, m_superFrameConf, ns3::SatPhyRxCarrierConf::NORMAL, and ns3::SatPhy::NotifyConstructionCompleted().
| void ns3::SatUtPhy::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 215 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, ns3::SatPhy::SetBeamId(), and ns3::SatPhy::SetSatId().
Referenced by ns3::SatUtHelperDvb::Install(), and ns3::SatUtHelperLora::Install().
|
virtual |
Receives packets from lower layer.
| rxParams | Packet reception parameters |
| phyError | Boolean indicating whether the packet successfully received or not? |
Reimplemented from ns3::SatPhy.
Definition at line 266 of file satellite-ut-phy.cc.
References ns3::SatEnums::DUMMY_FRAME, m_slicesSubscribed, and ns3::SatPhy::Receive().
| void ns3::SatUtPhy::UpdateSliceSubscription | ( | uint8_t | slice | ) |
Updates the slices subscription list.
| slice | The new slice to subscribe. If zero, reset the subscription list (except slice zero used for control messages). |
Definition at line 290 of file satellite-ut-phy.cc.
References m_slicesSubscribed.
Referenced by ns3::SatUtHelperDvb::Install().
|
private |
Delay of antenna reconfiguration when performing handover.
Definition at line 185 of file satellite-ut-phy.h.
Referenced by SatUtPhy(), SatUtPhy(), GetTypeId(), and PerformHandover().
|
private |
Link results used for this physical layer.
Definition at line 142 of file satellite-ut-phy.h.
Referenced by SatUtPhy(), and NotifyConstructionCompleted().
|
private |
Other system interference in linear.
Definition at line 180 of file satellite-ut-phy.h.
Referenced by SatUtPhy(), GetAdditionalInterference(), and NotifyConstructionCompleted().
|
private |
Configured other system interference in dB.
Definition at line 175 of file satellite-ut-phy.h.
Referenced by SatUtPhy(), GetTypeId(), and NotifyConstructionCompleted().
|
private |
RX carrier configuration parameters.
Definition at line 147 of file satellite-ut-phy.h.
Referenced by SatUtPhy(), and NotifyConstructionCompleted().
|
private |
The list of slices subscribed for this UT.
Definition at line 190 of file satellite-ut-phy.h.
Referenced by Receive(), and UpdateSliceSubscription().
|
private |
Super frame cofiguration.
Definition at line 152 of file satellite-ut-phy.h.
Referenced by SatUtPhy(), and NotifyConstructionCompleted().