28 #include <ns3/boolean.h>
29 #include <ns3/double.h>
32 #include <ns3/uinteger.h>
34 NS_LOG_COMPONENT_DEFINE(
"SatPhyRxCarrierConf");
39 NS_OBJECT_ENSURE_REGISTERED(SatPhyRxCarrierConf);
44 m_raIfEliminateModel(),
46 m_daConstantErrorRate(0.0),
48 m_rxAciIfWrtNoiseFactor(),
51 m_carrierBandwidthConverter(),
53 m_linkRegenerationMode(),
54 m_channelEstimationError(),
55 m_additionalInterferenceCallback(),
57 m_rxExtNoiseDensityWhz(0),
58 m_enableIntfOutputTrace(false),
59 m_randomAccessAverageNormalizedOfferedLoadMeasurementWindowSize(10),
60 m_raCollisionModel(RA_COLLISION_NOT_DEFINED),
61 m_raConstantErrorRate(0.0),
62 m_enableRandomAccessDynamicLoadControl(true),
65 NS_FATAL_ERROR(
"SatPhyRxCarrierConf::SatPhyRxCarrierConf - Constructor not in use");
69 : m_daIfModel(createParams.m_daIfModel),
70 m_raIfModel(createParams.m_raIfModel),
71 m_raIfEliminateModel(createParams.m_raIfEliminateModel),
72 m_errorModel(createParams.m_errorModel),
73 m_daConstantErrorRate(createParams.m_daConstantErrorRate),
74 m_rxTemperatureK(createParams.m_rxTemperatureK),
75 m_rxAciIfWrtNoiseFactor(createParams.m_aciIfWrtNoiseFactor),
76 m_rxMode(createParams.m_rxMode),
77 m_carrierCount(createParams.m_carrierCount),
78 m_carrierBandwidthConverter(createParams.m_bwConverter),
79 m_channelType(createParams.m_chType),
80 m_linkRegenerationMode(createParams.m_linkRegenerationMode),
81 m_channelEstimationError(createParams.m_cec),
82 m_additionalInterferenceCallback(),
84 m_rxExtNoiseDensityWhz(createParams.m_extNoiseDensityWhz),
85 m_enableIntfOutputTrace(false),
86 m_randomAccessAverageNormalizedOfferedLoadMeasurementWindowSize(10),
87 m_raCollisionModel(createParams.m_raCollisionModel),
88 m_raConstantErrorRate(createParams.m_raConstantErrorRate),
89 m_enableRandomAccessDynamicLoadControl(true),
90 m_randomAccessModel(createParams.m_randomAccessModel)
92 NS_LOG_FUNCTION(
this);
99 TypeId(
"ns3::SatPhyRxCarrierConf")
101 .AddAttribute(
"EnableIntfOutputTrace",
102 "Enable interference output trace.",
105 MakeBooleanChecker())
106 .AddAttribute(
"RandomAccessAverageNormalizedOfferedLoadMeasurementWindowSize",
107 "Random access average normalized offered load measurement window size",
109 MakeUintegerAccessor(
112 MakeUintegerChecker<uint32_t>())
114 "EnableRandomAccessDynamicLoadControl",
115 "Enable random access dynamic load control.",
118 MakeBooleanChecker())
119 .AddConstructor<SatPhyRxCarrierConf>();
126 NS_LOG_FUNCTION(
this);
162 if (isRandomAccessCarrier)
175 if (isRandomAccessCarrier)
240 Ptr<SatChannelEstimationErrorContainer>
ChannelType_t
Types of channel.
CarrierBandwidthType_t
Types of bandwidth.
RegenerationMode_t
The regeneration mode used in satellites.
Information of beam users liken UTs and their users.
SatEnums::ChannelType_t GetChannelType() const
Get channel type.
double m_rxAciIfWrtNoiseFactor
static TypeId GetTypeId(void)
Get the type ID.
double m_daConstantErrorRate
double GetRandomAccessConstantErrorRate() const
Get random access constant error rate.
double m_raConstantErrorRate
Ptr< SatLinkResults > m_linkResults
ErrorModel GetErrorModel() const
Get configured error model.
AdditionalInterferenceCallback m_additionalInterferenceCallback
SatPhyRxCarrierConf()
Constructor for SatPhyRxCarrierConf.
bool IsRandomAccessDynamicLoadControlEnabled() const
Function for checking if random access dynamic load control is enabled.
bool m_enableIntfOutputTrace
InterferenceEliminationModel
Interference cancelation model enum.
double GetCarrierBandwidthHz(uint32_t carrierId, SatEnums::CarrierBandwidthType_t bandwidthType) const
Get configured bandwidth.
uint32_t GetCarrierCount() const
Get the number of configured carriers.
ErrorModel
Error model enum.
uint32_t m_randomAccessAverageNormalizedOfferedLoadMeasurementWindowSize
SatEnums::RegenerationMode_t GetLinkRegenerationMode() const
Get link regeneration mode.
RandomAccessCollisionModel m_raCollisionModel
double GetConstantDaErrorRate() const
Get constant error rate for dedicated access.
RandomAccessCollisionModel
Random access collision model enum.
@ RA_COLLISION_ALWAYS_DROP_ALL_COLLIDING_PACKETS
void SetLinkResults(Ptr< SatLinkResults > linkResults)
Set link results for the carrier configuration, either DVB-RCS2 or DVB-S2.
uint32_t GetRandomAccessAverageNormalizedOfferedLoadMeasurementWindowSize() const
Get random access average normalized offered load measurement window size.
InterferenceModel m_daIfModel
SatEnums::RegenerationMode_t m_linkRegenerationMode
bool m_enableRandomAccessDynamicLoadControl
double GetRxAciInterferenceWrtNoiseFactor() const
Get adjacent channel interference wrt noise (factor)
InterferenceEliminationModel m_raIfEliminateModel
RandomAccessCollisionModel GetRandomAccessCollisionModel() const
Get random access collision model.
RxMode GetRxMode() const
Get configured RX mode.
double GetRxTemperatureK() const
Get configured RX noise temperature.
Ptr< SatLinkResults > GetLinkResults() const
Get configured link results.
SatTypedefs::CarrierBandwidthConverter_t m_carrierBandwidthConverter
Ptr< SatChannelEstimationErrorContainer > GetChannelEstimatorErrorContainer() const
Get channel estimator container.
InterferenceModel
Interference model enum.
SatEnums::ChannelType_t m_channelType
double GetExtPowerDensityWhz() const
Get other system RX noise.
bool IsIntfOutputTraceEnabled() const
Is interference output trace enabled.
double m_rxExtNoiseDensityWhz
InterferenceModel GetInterferenceModel(bool isRandomAccessCarrier) const
Get configured interference model.
InterferenceModel m_raIfModel
InterferenceEliminationModel GetInterferenceEliminationModel(bool isRandomAccessCarrier) const
Get configured interference cancelation model.
virtual void DoDispose()
Dispose function.
Ptr< SatChannelEstimationErrorContainer > m_channelEstimationError
SatArqSequenceNumber is handling the sequence numbers for the ARQ process.
Struct for storing the information for SatPhyRxCarrierConf.