23 #ifndef SATELLITE_PHY_RX_CARRIER_PER_SLOT_H
24 #define SATELLITE_PHY_RX_CARRIER_PER_SLOT_H
28 #include <ns3/mac48-address.h>
29 #include <ns3/object.h>
31 #include <ns3/traced-callback.h>
42 class SatPhyRxCarrier;
60 Ptr<SatPhyRxCarrierConf> carrierConf,
61 Ptr<SatWaveformConf> waveformConf,
62 bool randomAccessEnabled);
104 : CarrierType::DEDICATED_ACCESS;
158 Ptr<SatSignalParameters> rxParams,
202 Ptr<SatSignalParameters> rxParams,
203 Ptr<SatInterference::InterferenceChangeEvent> interferenceEvent);
RandomAccessCollisionModel
Random access collision model enum.
Base class for all SatPhyRxCarriers.
CarrierType
Possible carrier types.
const bool m_randomAccessEnabled
Is random access enabled for this carrier.
Inherited the base functionality of SatPhyRxCarriers for ground station nodes.
uint8_t m_randomAccessAllocationChannelId
PRIVATE MEMBER VARIABLES.
TracedCallback< uint32_t, const Address &, bool > m_slottedAlohaRxCollisionTrace
SlottedAlohaRxCollision trace source.
uint8_t GetRandomAccessAllocationChannelId() const
Function for getting the random access allocation channel ID.
SatPhyRxCarrierPerSlot(uint32_t carrierId, Ptr< SatPhyRxCarrierConf > carrierConf, Ptr< SatWaveformConf > waveformConf, bool randomAccessEnabled)
Constructor.
static TypeId GetTypeId(void)
Get the TypeId of the class.
virtual void EndRxData(uint32_t key)
Function for ending the packet reception from the SatChannel.
bool ProcessSlottedAlohaCollisions(double cSinr, Ptr< SatSignalParameters > rxParams, Ptr< SatInterference::InterferenceChangeEvent > interferenceEvent)
Function for processing the Slotted ALOHA collisions.
TracedCallback< uint32_t, const Address &, bool > m_slottedAlohaRxErrorTrace
SlottedAlohaRxError trace source.
virtual ~SatPhyRxCarrierPerSlot()
Destructor.
bool m_enableRandomAccessDynamicLoadControl
bool m_disableErrorHighTransmissionTime
virtual void ReceiveSlot(SatPhyRxCarrier::rxParams_s packetRxParams, const uint32_t nPackets)
Receive a slot.
virtual void DoDispose()
Dispose implementation.
void SaveMeasuredRandomAccessLoad(double measuredRandomAccessLoad)
Function for saving the measured random access load.
double m_randomAccessConstantErrorRate
void SetRandomAccessAllocationChannelId(uint8_t randomAccessAllocationChannelId)
Function for setting the random access allocation channel ID.
SatPhyRxCarrierConf::RandomAccessCollisionModel m_randomAccessCollisionModel
virtual CarrierType GetCarrierType()
Method for querying the type of the carrier.
virtual Ptr< SatInterference::InterferenceChangeEvent > CreateInterference(Ptr< SatSignalParameters > rxParams, Address rxAddress)
Create an interference event based on Rx parameters and address.
SatPhyRxCarrierConf::RandomAccessCollisionModel GetRandomAccessCollisionModel() const
Get the random access collision model of the carrier.
bool IsRandomAccessDynamicLoadControlEnabled() const
Check if random access dynamic load control is enabled.
uint32_t m_randomAccessBitsInFrame
The number of random access bits in current frame.
std::deque< double > m_randomAccessDynamicLoadControlNormalizedOfferedLoad
double CalculateAverageNormalizedOfferedRandomAccessLoad()
Function for calculating the average normalized offered random access load.
virtual void BeginEndScheduling()
Function for initializing the frame/window end scheduling.
uint32_t m_randomAccessAverageNormalizedOfferedLoadMeasurementWindowSize
SatArqSequenceNumber is handling the sequence numbers for the ARQ process.
Struct for storing the packet specific Rx parameters.