22 #ifndef SATELLITE_GEO_USER_PHY_H
23 #define SATELLITE_GEO_USER_PHY_H
29 #include <ns3/address.h>
30 #include <ns3/nstime.h>
31 #include <ns3/object.h>
32 #include <ns3/packet.h>
41 class SatPhyRxCarrier;
42 class SatPhyRxCarrierUplink;
43 class SatPhyRxCarrierPerSlot;
44 class SatPhyRxCarrierPerFrame;
45 class SatPhyRxCarrierPerWindow;
62 Ptr<SatLinkResults> linkResults,
63 SatPhyRxCarrierConf::RxCarrierCreateParams_s parameters,
64 Ptr<SatSuperframeConf> superFrameConf,
100 virtual void Receive(Ptr<SatSignalParameters> rxParams,
bool phyError);
119 typedef Callback<bool, Ptr<SatControlMessage>,
const Address&, Ptr<SatSignalParameters>>
213 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.
The SatGeoUserPhy models the user link physical layer of the satellite node.
uint32_t m_queueSizeMax
Maximum size of FIFO m_queue in bytes.
uint32_t m_queueSizeBytes
Size of FIFO queue in bytes.
virtual void SendPduWithParams(Ptr< SatSignalParameters > rxParams)
Send Pdu to the PHY tx module (for GEO satellite switch packet forwarding)
Address GetE2EDestinationAddress(SatPhy::PacketContainer_t packets)
Get destination address of packets.
void EndTx()
Notify a packet has finished being sent.
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 double GetAdditionalInterference()
Get additional interference, used to compute final SINR at RX.
virtual void DoDispose(void)
Dispose of this class instance.
double m_aciInterferenceCOverIDb
Configured Adjacent Channel Interference (ACI) in dB.
TypeId GetInstanceTypeId(void) const
void(* QueueSizeCallback)(uint32_t size, const Address &from)
Callback signature for QueueSizeBytes and QueueSizePackets trace source.
uint32_t m_queueSizePackets
Size of FIFO queue in packets.
void SetSendControlMsgToFeederCallback(SendControlMsgToFeederCallback cb)
Set SendControlMsgToFeederCallback.
virtual SatEnums::SatLinkDir_t GetSatLinkTxDir()
Get the link TX direction.
bool m_isSending
Indicates if a packet is already being sent.
Callback< bool, Ptr< SatControlMessage >, const Address &, Ptr< SatSignalParameters > > SendControlMsgToFeederCallback
virtual void Receive(Ptr< SatSignalParameters > rxParams, bool phyError)
Receives packets from lower layer.
TracedCallback< uint32_t, const Address & > m_queueSizeBytesTrace
Traced callback to monitor RTN feeder queue size in bytes.
virtual SatEnums::SatLinkDir_t GetSatLinkRxDir()
Get the link RX direction.
double m_otherSysInterferenceCOverIDb
Configured other system interference in dB.
TracedCallback< uint32_t, const Address & > m_queueSizePacketsTrace
Traced callback to monitor RTN feeder queue size in packets.
double m_aciInterferenceCOverI
Adjacent Channel Interference (ACI) in linear.
double m_otherSysInterferenceCOverI
Other system interference in linear.
static TypeId GetTypeId(void)
inherited from Object
virtual void RxTraces(SatPhy::PacketContainer_t packets)
Invoke the Rx trace source for each received packet.
SatGeoUserPhy(void)
Default constructor.
virtual ~SatGeoUserPhy()
Destructor for SatGeoUserPhy.
SatEnums::RegenerationMode_t m_forwardLinkRegenerationMode
Regeneration mode on forward link.
SatEnums::RegenerationMode_t m_returnLinkRegenerationMode
Regeneration mode on return link.
virtual void DoInitialize(void)
Initialization of SatPhy.
SatGeoUserPhy::SendControlMsgToFeederCallback m_txCtrlFeederCallback
Callback to send ctrl packet on geo feeder.
void SendFromQueue()
Send a packet from the queue.
The SatPhy models the basic physical layer of the satellite system.
SatSignalParameters::PacketsInBurst_t PacketContainer_t
Define PacketContainer in SatPhy.
SatArqSequenceNumber is handling the sequence numbers for the ARQ process.
Creation parameters for base PHY object.