22#ifndef SATELLITE_ORBITER_USER_PHY_H
23#define SATELLITE_ORBITER_USER_PHY_H
29#include "ns3/address.h"
30#include "ns3/nstime.h"
31#include "ns3/object.h"
32#include "ns3/packet.h"
63 Ptr<SatLinkResults> linkResults,
64 SatPhyRxCarrierConf::RxCarrierCreateParams_s parameters,
65 Ptr<SatSuperframeConf> superFrameConf);
108 virtual void Receive(Ptr<SatSignalParameters> rxParams,
bool phyError);
127 typedef Callback<bool, Ptr<SatControlMessage>,
const Address&, Ptr<SatSignalParameters>>
236 std::queue<std::tuple<Ptr<SatSignalParameters>, uint32_t, uint32_t>>
m_queue;
SatLinkDir_t
Link direction used for packet tracing.
RegenerationMode_t
The regeneration mode used in satellites.
TracedCallback< uint32_t, const Address & > m_queueSizePacketsTrace
Traced callback to monitor RTN feeder queue size in packets.
void SetSendControlMsgToFeederCallback(SendControlMsgToFeederCallback cb)
Set SendControlMsgToFeederCallback.
SatOrbiterUserPhy::SendControlMsgToFeederCallback m_txCtrlFeederCallback
Callback to send ctrl packet on orbiter feeder.
double m_otherSysInterferenceCOverI
Other system interference in linear.
uint32_t m_queueSizeBytes
Size of FIFO queue in bytes.
Ptr< SatSuperframeConf > m_superFrameConf
Super frame cofiguration.
virtual void SendPduWithParams(Ptr< SatSignalParameters > rxParams)
Send Pdu to the PHY tx module (for satellite switch packet forwarding).
virtual void DoInitialize(void)
Initialization of SatPhy.
uint32_t m_queueSizeMax
Maximum size of FIFO m_queue in bytes.
Address GetE2EDestinationAddress(SatPhy::PacketContainer_t packets)
Get destination address of packets.
virtual void DoDispose(void)
Dispose of this class instance.
virtual void NotifyConstructionCompleted() override
Notifier called once the ObjectBase is fully constructed.
virtual double GetAdditionalInterference()
Get additional interference, used to compute final SINR at RX.
Callback< bool, Ptr< SatControlMessage >, const Address &, Ptr< SatSignalParameters > > SendControlMsgToFeederCallback
SatOrbiterUserPhy(void)
Default constructor.
SatEnums::RegenerationMode_t m_forwardLinkRegenerationMode
Regeneration mode on forward link.
virtual void RxTraces(SatPhy::PacketContainer_t packets)
Invoke the Rx trace source for each received packet.
bool m_isSending
Indicates if a packet is already being sent.
double m_otherSysInterferenceCOverIDb
Configured other system interference in dB.
double m_aciInterferenceCOverIDb
Configured Adjacent Channel Interference (ACI) in dB.
std::queue< std::tuple< Ptr< SatSignalParameters >, uint32_t, uint32_t > > m_queue
Simple FIFO queue to avoid collisions on TX in case of REGENERATION_PHY.
virtual SatEnums::SatLinkDir_t GetSatLinkRxDir()
Get the link RX direction.
static TypeId GetTypeId(void)
inherited from Object
Ptr< SatLinkResults > m_linkResults
Link results used for this physical layer.
SatEnums::RegenerationMode_t m_returnLinkRegenerationMode
Regeneration mode on return link.
virtual SatEnums::SatLinkDir_t GetSatLinkTxDir()
Get the link TX direction.
TracedCallback< uint32_t, const Address & > m_queueSizeBytesTrace
Traced callback to monitor RTN feeder queue size in bytes.
void(* QueueSizeCallback)(uint32_t size, const Address &from)
Callback signature for QueueSizeBytes and QueueSizePackets trace source.
void SendFromQueue()
Send a packet from the queue.
virtual ~SatOrbiterUserPhy()
Destructor for SatOrbiterUserPhy.
virtual void Receive(Ptr< SatSignalParameters > rxParams, bool phyError)
Receives packets from lower layer.
SatPhyRxCarrierConf::RxCarrierCreateParams_s m_parameters
RX carrier configuration parameters.
void EndTx()
Notify a packet has finished being sent.
uint32_t m_queueSizePackets
Size of FIFO queue in packets.
double m_aciInterferenceCOverI
Adjacent Channel Interference (ACI) in linear.
SatPhy(void)
Default constructor.
SatSignalParameters::PacketsInBurst_t PacketContainer_t
Define PacketContainer in SatPhy.
Base class for all SatPhyRxCarriers.
Inherited the functionality of ground station SatPhyRxCarriers and extended it with CRDSA functionali...
Inherited the base functionality of SatPhyRxCarriers for ground station nodes.
Inherited the functionality of ground station SatPhyRxCarriers and extended it with CRDSA functionali...
Inherited functionality of the base SatPhyRxCarrier for satellite node.
SatArqSequenceNumber is handling the sequence numbers for the ARQ process.
Creation parameters for base PHY object.