22 #ifndef SATELLITE_GEO_FEEDER_PHY_H
23 #define SATELLITE_GEO_FEEDER_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);
197 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 SatGeoFeederPhy models the feeder link physical layer of the satellite node.
virtual ~SatGeoFeederPhy()
Destructor for SatGeoFeederPhy.
uint32_t m_queueSizeMax
Maximum size of FIFO m_queue in bytes.
virtual double GetAdditionalInterference()
Get additional interference, used to compute final SINR at RX.
static TypeId GetTypeId(void)
inherited from Object
double m_imInterferenceCOverI
Intermodulation interference in linear.
virtual void DoDispose(void)
Dispose of this class instance.
virtual void SendPduWithParams(Ptr< SatSignalParameters > rxParams)
Send Pdu to the PHY tx module (for GEO satellite switch packet forwarding)
virtual void RxTraces(SatPhy::PacketContainer_t packets)
Invoke the Rx trace source for each received packet.
uint32_t m_queueSizeBytes
Size of FIFO queue in bytes.
SatEnums::RegenerationMode_t m_returnLinkRegenerationMode
Regeneration mode on return link.
SatGeoFeederPhy(void)
Default constructor.
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 void Receive(Ptr< SatSignalParameters > rxParams, bool phyError)
Receives packets from lower layer.
double m_fixedAmplificationGainDb
Fixed amplification gain used in RTN link at the satellite.
virtual SatEnums::SatLinkDir_t GetSatLinkRxDir()
Get the link RX direction.
SatEnums::RegenerationMode_t m_forwardLinkRegenerationMode
Regeneration mode on forward link.
void SendFromQueue()
Send a packet from the queue.
bool m_isSending
Indicates if a packet is already being sent.
void(* QueueSizeCallback)(uint32_t size, const Address &from)
Callback signature for QueueSizeBytes and QueueSizePackets trace source.
virtual SatEnums::SatLinkDir_t GetSatLinkTxDir()
Get the link TX direction.
Address GetE2ESourceAddress(SatPhy::PacketContainer_t packets)
Get source address of packets.
virtual void DoInitialize(void)
Initialization of SatPhy.
TypeId GetInstanceTypeId(void) const
double m_imInterferenceCOverIDb
Configured Intermodulation interference in dB.
uint32_t m_queueSizePackets
Size of FIFO queue in packets.
void EndTx()
Notify a packet has finished being sent.
TracedCallback< uint32_t, const Address & > m_queueSizePacketsTrace
Traced callback to monitor RTN feeder queue size in packets.
double m_extNoisePowerDensityDbwHz
Configured external noise power.
TracedCallback< uint32_t, const Address & > m_queueSizeBytesTrace
Traced callback to monitor RTN feeder queue size in bytes.
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.