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