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. 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 satId, uint32_t beamId) |
Change underlying SatChannel to send and receive data from a new satellite and 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 ¶ms) | |
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< SatPhyRx > | GetPhyRx () const |
Get the SatPhyRx pointer. More... | |
virtual Ptr< SatPhyTx > | GetPhyTx () 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< SatChannel > | GetTxChannel () |
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 satellite switch packet forwarding) More... | |
bool | 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< SatNodeInfo > | m_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< SatPhyRx > | m_phyRx |
Pointer to internal SatPhyRx instance. More... | |
Ptr< SatPhyTx > | m_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... | |
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 142 of file satellite-ut-phy.cc.
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 151 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.
|
virtual |
Destructor.
Definition at line 185 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 229 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 191 of file satellite-ut-phy.cc.
|
virtual |
Initialization of SatUtPhy.
Reimplemented from ns3::SatPhy.
Definition at line 198 of file satellite-ut-phy.cc.
|
virtual |
Get additional interference, used to compute final SINR at RX.
Implements ns3::SatPhy.
Definition at line 205 of file satellite-ut-phy.cc.
References m_otherSysInterferenceCOverI.
Referenced by SatUtPhy().
TypeId ns3::SatUtPhy::GetInstanceTypeId | ( | void | ) | const |
Definition at line 136 of file satellite-ut-phy.cc.
References GetTypeId().
|
privatevirtual |
Get the link RX direction.
Must be implemented by child clases.
Reimplemented from ns3::SatPhy.
Definition at line 251 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 245 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::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().
Referenced by GetInstanceTypeId().
bool ns3::SatUtPhy::IsTxPossible | ( | void | ) | const |
Inform whether or not the underlying Tx channel is properly configured for transmission.
Definition at line 257 of file satellite-ut-phy.cc.
References ns3::SatPhy::m_phyTx.
Referenced by ns3::SatUtHelperDvb::Install().
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 213 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 264 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 288 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 161 of file satellite-ut-phy.h.
Referenced by GetTypeId(), and PerformHandover().
|
private |
Other system interference in linear.
Definition at line 156 of file satellite-ut-phy.h.
Referenced by SatUtPhy(), and GetAdditionalInterference().
|
private |
Configured other system interference in dB.
Definition at line 151 of file satellite-ut-phy.h.
Referenced by SatUtPhy(), and GetTypeId().
|
private |
The list of slices subscribed for this UT.
Definition at line 166 of file satellite-ut-phy.h.
Referenced by Receive(), and UpdateSliceSubscription().