27 #include <ns3/boolean.h>
28 #include <ns3/double.h>
30 #include <ns3/object.h>
31 #include <ns3/pointer.h>
32 #include <ns3/random-variable-stream.h>
33 #include <ns3/string.h>
34 #include <ns3/uinteger.h>
36 NS_LOG_COMPONENT_DEFINE(
"SatLowerLayerServiceConf");
42 : m_constantAssignmentProvided(false),
44 m_volumeAllowed(false),
45 m_constantServiceRateStream(0),
46 m_maximumServiceRateKbps(0.0),
47 m_minimumServiceRateKbps(0.0),
48 m_maximumBacklogInKbytes(0)
50 NS_LOG_FUNCTION(
this);
55 NS_LOG_FUNCTION(
this);
59 : m_maxUniquePayloadPerBlock(0),
60 m_maxConsecutiveBlockAccessed(0),
61 m_minimumIdleBlock(0),
62 m_backOffTimeInMilliSeconds(0),
63 m_highLoadBackOffTimeInMilliSeconds(0),
64 m_backOffProbability(0),
65 m_highLoadBackOffProbability(0),
66 m_numberOfInstances(0),
67 m_averageNormalizedOfferedLoadThreshold(0.0),
68 m_isCrdsaAllowed(false),
69 m_isSlottedAlohaAllowed(false),
70 m_isEssaAllowed(false)
72 NS_LOG_FUNCTION(
this);
77 NS_LOG_FUNCTION(
this);
83 : m_dynamicRatePersistence(0),
84 m_volumeBacklogPersistence(0),
85 m_defaultControlRandomizationInterval(0.0),
86 m_daServiceEntryCount(0),
87 m_raServiceEntryCount(0)
89 NS_LOG_FUNCTION(
this);
93 NS_FATAL_ERROR(
"SatLowerLayerServiceConf::SatLowerLayerServiceConf - m_minRaServiceEntries "
94 "> m_maxRaServiceEntries");
99 NS_FATAL_ERROR(
"SatLowerLayerServiceConf::SatLowerLayerServiceConf - m_minDaServiceEntries "
100 "> m_maxDaServiceEntries");
106 NS_LOG_FUNCTION(
this);
112 std::string name =
"DaService";
113 return name + GetNumberAsString<uint8_t>(index);
119 std::string name =
"RaService";
120 return name + GetNumberAsString<uint8_t>(index);
138 #define SAT_ADD_DA_SERVICE_ATTRIBUTES(index, a1, a2, a3, a4, a5, a6, a7) \
139 AddAttribute(GetIndexAsDaServiceName(index) + "_ConstantAssignmentProvided", \
140 "Constant Assignment provided for " + GetIndexAsDaServiceName(index), \
142 MakeBooleanAccessor( \
143 &SatLowerLayerServiceConf::SetDaServ##index##ConstantAssignmentProvided, \
144 &SatLowerLayerServiceConf::GetDaServ##index##ConstantAssignmentProvided), \
145 MakeBooleanChecker()) \
147 GetIndexAsDaServiceName(index) + "_RbdcAllowed", \
148 "RBDC allowed for DA " + GetIndexAsDaServiceName(index), \
150 MakeBooleanAccessor(&SatLowerLayerServiceConf::SetDaServ##index##RbdcAllowed, \
151 &SatLowerLayerServiceConf::GetDaServ##index##RbdcAllowed), \
152 MakeBooleanChecker()) \
154 GetIndexAsDaServiceName(index) + "_VolumeAllowed", \
155 "Volume allowed for DA " + GetIndexAsDaServiceName(index), \
157 MakeBooleanAccessor(&SatLowerLayerServiceConf::SetDaServ##index##VolumeAllowed, \
158 &SatLowerLayerServiceConf::GetDaServ##index##VolumeAllowed), \
159 MakeBooleanChecker()) \
160 .AddAttribute(GetIndexAsDaServiceName(index) + "_ConstantServiceRate", \
161 "A RandomVariableStream for constant service rate [kbps] for DA " + \
162 GetIndexAsDaServiceName(index), \
163 StringValue("ns3::ConstantRandomVariable[Constant=" + \
164 GetNumberAsString<uint16_t>(a4) + "]"), \
165 MakePointerAccessor( \
166 &SatLowerLayerServiceConf::SetDaServ##index##ConstantServiceRateStream, \
167 &SatLowerLayerServiceConf::GetDaServ##index##ConstantServiceRateStream), \
168 MakePointerChecker<RandomVariableStream>()) \
169 .AddAttribute(GetIndexAsDaServiceName(index) + "_MaximumServiceRate", \
170 "Maximum service rate [kbps] for DA " + GetIndexAsDaServiceName(index), \
172 MakeUintegerAccessor( \
173 &SatLowerLayerServiceConf::SetDaServ##index##MaximumServiceRateInKbps, \
174 &SatLowerLayerServiceConf::GetDaServ##index##MaximumServiceRateInKbps), \
175 MakeUintegerChecker<uint16_t>()) \
176 .AddAttribute(GetIndexAsDaServiceName(index) + "_MinimumServiceRate", \
177 "Minimum service rate [kbps] for DA " + GetIndexAsDaServiceName(index), \
179 MakeUintegerAccessor( \
180 &SatLowerLayerServiceConf::SetDaServ##index##MinimumServiceRateInKbps, \
181 &SatLowerLayerServiceConf::GetDaServ##index##MinimumServiceRateInKbps), \
182 MakeUintegerChecker<uint16_t>()) \
183 .AddAttribute(GetIndexAsDaServiceName(index) + "_MaximumBacklogSize", \
184 "Maximum backlog size [Kbytes] for DA " + GetIndexAsDaServiceName(index), \
186 MakeUintegerAccessor( \
187 &SatLowerLayerServiceConf::SetDaServ##index##MaximumBacklogInKbytes, \
188 &SatLowerLayerServiceConf::GetDaServ##index##MaximumBacklogInKbytes), \
189 MakeUintegerChecker<uint16_t>())
211 #define SAT_ADD_RA_SERVICE_ATTRIBUTES(index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) \
212 AddAttribute(GetIndexAsRaServiceName(index) + "_MaximumUniquePayloadPerBlock", \
213 "Maximum unique payload per block for RA " + GetIndexAsRaServiceName(index), \
215 MakeUintegerAccessor( \
216 &SatLowerLayerServiceConf::SetRaServ##index##MaximumUniquePayloadPerBlock, \
217 &SatLowerLayerServiceConf::GetRaServ##index##MaximumUniquePayloadPerBlock), \
218 MakeUintegerChecker<uint8_t>()) \
220 GetIndexAsRaServiceName(index) + "_MaximumConsecutiveBlockAccessed", \
221 "Maximum consecutive block accessed for RA " + GetIndexAsRaServiceName(index), \
223 MakeUintegerAccessor( \
224 &SatLowerLayerServiceConf::SetRaServ##index##MaximumConsecutiveBlockAccessed, \
225 &SatLowerLayerServiceConf::GetRaServ##index##MaximumConsecutiveBlockAccessed), \
226 MakeUintegerChecker<uint8_t>()) \
228 GetIndexAsRaServiceName(index) + "_MinimumIdleBlock", \
229 "Minimum idle block for RA " + GetIndexAsRaServiceName(index), \
231 MakeUintegerAccessor(&SatLowerLayerServiceConf::SetRaServ##index##MinimumIdleBlock, \
232 &SatLowerLayerServiceConf::GetRaServ##index##MinimumIdleBlock), \
233 MakeUintegerChecker<uint8_t>()) \
234 .AddAttribute(GetIndexAsRaServiceName(index) + "_BackOffTimeInMilliSeconds", \
235 "Back off time in milliseconds for RA " + GetIndexAsRaServiceName(index), \
237 MakeUintegerAccessor( \
238 &SatLowerLayerServiceConf::SetRaServ##index##BackOffTimeInMilliSeconds, \
239 &SatLowerLayerServiceConf::GetRaServ##index##BackOffTimeInMilliSeconds), \
240 MakeUintegerChecker<uint16_t>()) \
242 GetIndexAsRaServiceName(index) + "_HighLoadBackOffTimeInMilliSeconds", \
243 "High load back off time in milliseconds for RA " + GetIndexAsRaServiceName(index), \
245 MakeUintegerAccessor( \
246 &SatLowerLayerServiceConf::SetRaServ##index##HighLoadBackOffTimeInMilliSeconds, \
247 &SatLowerLayerServiceConf::GetRaServ##index##HighLoadBackOffTimeInMilliSeconds), \
248 MakeUintegerChecker<uint16_t>()) \
250 GetIndexAsRaServiceName(index) + "_BackOffProbability", \
251 "Back off probability for RA " + GetIndexAsRaServiceName(index), \
253 MakeUintegerAccessor(&SatLowerLayerServiceConf::SetRaServ##index##BackOffProbability, \
254 &SatLowerLayerServiceConf::GetRaServ##index##BackOffProbability), \
255 MakeUintegerChecker<uint16_t>()) \
257 GetIndexAsRaServiceName(index) + "_HighLoadBackOffProbability", \
258 "High load back off probability for RA " + GetIndexAsRaServiceName(index), \
260 MakeUintegerAccessor( \
261 &SatLowerLayerServiceConf::SetRaServ##index##HighLoadBackOffProbability, \
262 &SatLowerLayerServiceConf::GetRaServ##index##HighLoadBackOffProbability), \
263 MakeUintegerChecker<uint16_t>()) \
265 GetIndexAsRaServiceName(index) + "_NumberOfInstances", \
266 "Number of instances for RA " + GetIndexAsRaServiceName(index), \
268 MakeUintegerAccessor(&SatLowerLayerServiceConf::SetRaServ##index##NumberOfInstances, \
269 &SatLowerLayerServiceConf::GetRaServ##index##NumberOfInstances), \
270 MakeUintegerChecker<uint8_t>()) \
272 GetIndexAsRaServiceName(index) + "_AverageNormalizedOfferedLoadThreshold", \
273 "Average normalized offered load threshold for RA " + GetIndexAsRaServiceName(index), \
275 MakeDoubleAccessor(&SatLowerLayerServiceConf:: \
276 SetRaServ##index##AverageNormalizedOfferedLoadThreshold, \
277 &SatLowerLayerServiceConf:: \
278 GetRaServ##index##AverageNormalizedOfferedLoadThreshold), \
279 MakeDoubleChecker<double>()) \
280 .AddAttribute(GetIndexAsRaServiceName(index) + "_SlottedAlohaAllowed", \
281 "Slotted Aloha allowed for RA " + GetIndexAsRaServiceName(index), \
283 MakeBooleanAccessor( \
284 &SatLowerLayerServiceConf::SetRaServ##index##IsSlottedAlohaAllowed, \
285 &SatLowerLayerServiceConf::GetRaServ##index##IsSlottedAlohaAllowed), \
286 MakeBooleanChecker()) \
288 GetIndexAsRaServiceName(index) + "_CrdsaAllowed", \
289 "CRDSA allowed for RA " + GetIndexAsRaServiceName(index), \
291 MakeBooleanAccessor(&SatLowerLayerServiceConf::SetRaServ##index##IsCrdsaAllowed, \
292 &SatLowerLayerServiceConf::GetRaServ##index##IsCrdsaAllowed), \
293 MakeBooleanChecker()) \
295 GetIndexAsRaServiceName(index) + "_EssaAllowed", \
296 "ESSA allowed for RA " + GetIndexAsRaServiceName(index), \
298 MakeBooleanAccessor(&SatLowerLayerServiceConf::SetRaServ##index##IsEssaAllowed, \
299 &SatLowerLayerServiceConf::GetRaServ##index##IsEssaAllowed), \
300 MakeBooleanChecker())
306 TypeId(
"ns3::SatLowerLayerServiceConf")
308 .AddConstructor<SatLowerLayerServiceConf>()
311 "DA services in use.",
318 "RA services in use.",
325 "Index of the RA service to use as a default for carriers with no explicitly "
326 "assigned services.",
329 MakeUintegerChecker<uint8_t>(0,
331 .AddAttribute(
"DynamicRatePersistence",
332 "Dynamic rate persistence for the lower layer service.",
335 MakeUintegerChecker<uint8_t>())
337 "VolumeBacklogPersistence",
338 "Volume backlog persistence for the lower layer service",
341 MakeUintegerChecker<uint8_t>())
343 "DefaultControlRandomizationInterval",
344 "Default control randomization interval for the lower layer service",
345 TimeValue(MilliSeconds(100)),
347 MakeTimeChecker(MilliSeconds(0), MilliSeconds(std::numeric_limits<uint8_t>::max())))
353 .SAT_ADD_DA_SERVICE_ATTRIBUTES(1,
false,
false,
false, 50, 9216, 10, 384)
354 .SAT_ADD_DA_SERVICE_ATTRIBUTES(2,
false,
false,
false, 50, 9216, 10, 384)
355 .SAT_ADD_DA_SERVICE_ATTRIBUTES(3,
false,
true,
false, 50, 9216, 10, 384)
362 .SAT_ADD_RA_SERVICE_ATTRIBUTES(0,
375 .SAT_ADD_RA_SERVICE_ATTRIBUTES(1,
388 .SAT_ADD_RA_SERVICE_ATTRIBUTES(2,
408 NS_LOG_FUNCTION(
this);
416 NS_LOG_FUNCTION(
this << (uint32_t)index);
420 NS_FATAL_ERROR(
"Service index out of range!!!");
428 bool constAssignmentProvided)
430 NS_LOG_FUNCTION(
this << (uint32_t)index << constAssignmentProvided);
434 NS_FATAL_ERROR(
"Service index out of range!!!");
443 NS_LOG_FUNCTION(
this << (uint32_t)index);
447 NS_FATAL_ERROR(
"Service index out of range!!!");
456 NS_LOG_FUNCTION(
this << (uint32_t)index << bdcAllowed);
460 NS_FATAL_ERROR(
"Service index out of range!!!");
469 NS_LOG_FUNCTION(
this << (uint32_t)index);
473 NS_FATAL_ERROR(
"Service index out of range!!!");
482 NS_LOG_FUNCTION(
this << (uint32_t)index << volumeAllowed);
486 NS_FATAL_ERROR(
"Service index out of range!!!");
495 NS_LOG_FUNCTION(
this << (uint32_t)index);
499 NS_FATAL_ERROR(
"Service index out of range!!!");
505 Ptr<RandomVariableStream>
508 NS_LOG_FUNCTION(
this << (uint32_t)index);
512 NS_FATAL_ERROR(
"Service index out of range!!!");
521 Ptr<RandomVariableStream> constantServiceRateStream)
523 NS_LOG_FUNCTION(
this << (uint32_t)index);
527 NS_FATAL_ERROR(
"Service index out of range!!!");
536 NS_LOG_FUNCTION(
this << (uint32_t)index);
540 NS_FATAL_ERROR(
"Service index out of range!!!");
548 uint16_t maximumServiceRateKbps)
550 NS_LOG_FUNCTION(
this << (uint32_t)index << maximumServiceRateKbps);
554 NS_FATAL_ERROR(
"Service index out of range!!!");
563 NS_LOG_FUNCTION(
this << (uint32_t)index);
567 NS_FATAL_ERROR(
"Service index out of range!!!");
575 uint16_t minimumServiceRateKbps)
577 NS_LOG_FUNCTION(
this << (uint32_t)index << minimumServiceRateKbps);
581 NS_FATAL_ERROR(
"Service index out of range!!!");
590 NS_LOG_FUNCTION(
this << (uint32_t)index);
594 NS_FATAL_ERROR(
"Service index out of range!!!");
602 uint16_t maximumBacklogInKbytes)
604 NS_LOG_FUNCTION(
this << (uint32_t)index << maximumBacklogInKbytes);
608 NS_FATAL_ERROR(
"Service index out of range!!!");
617 NS_LOG_FUNCTION(
this << (uint32_t)index);
621 NS_FATAL_ERROR(
"Service index out of range!!!");
629 uint8_t uniquePayloadPerBlock)
631 NS_LOG_FUNCTION(
this << (uint32_t)index << uniquePayloadPerBlock);
635 NS_FATAL_ERROR(
"Service index out of range!!!");
644 NS_LOG_FUNCTION(
this << (uint32_t)index);
648 NS_FATAL_ERROR(
"Service index out of range!!!");
656 uint8_t consecutiveBlockAccessed)
658 NS_LOG_FUNCTION(
this << (uint32_t)index << consecutiveBlockAccessed);
662 NS_FATAL_ERROR(
"Service index out of range!!!");
671 NS_LOG_FUNCTION(
this << (uint32_t)index);
675 NS_FATAL_ERROR(
"Service index out of range!!!");
684 NS_LOG_FUNCTION(
this << (uint32_t)index << minimumIdleBlock);
688 NS_FATAL_ERROR(
"Service index out of range!!!");
697 NS_LOG_FUNCTION(
this << (uint32_t)index);
701 NS_FATAL_ERROR(
"Service index out of range!!!");
709 uint16_t backOffTimeInMilliSeconds)
711 NS_LOG_FUNCTION(
this << (uint32_t)index << backOffTimeInMilliSeconds);
715 NS_FATAL_ERROR(
"Service index out of range!!!");
724 NS_LOG_FUNCTION(
this << (uint32_t)index);
728 NS_FATAL_ERROR(
"Service index out of range!!!");
736 uint16_t backOffTimeInMilliSeconds)
738 NS_LOG_FUNCTION(
this << (uint32_t)index << backOffTimeInMilliSeconds);
742 NS_FATAL_ERROR(
"Service index out of range!!!");
751 NS_LOG_FUNCTION(
this << (uint32_t)index);
755 NS_FATAL_ERROR(
"Service index out of range!!!");
764 NS_LOG_FUNCTION(
this << (uint32_t)index << backOffProbability);
768 NS_FATAL_ERROR(
"Service index out of range!!!");
777 NS_LOG_FUNCTION(
this << (uint32_t)index);
781 NS_FATAL_ERROR(
"Service index out of range!!!");
789 uint16_t highLoadBackOffProbability)
791 NS_LOG_FUNCTION(
this << (uint32_t)index << highLoadBackOffProbability);
795 NS_FATAL_ERROR(
"Service index out of range!!!");
804 NS_LOG_FUNCTION(
this << (uint32_t)index);
808 NS_FATAL_ERROR(
"Service index out of range!!!");
817 NS_LOG_FUNCTION(
this << (uint32_t)index << (uint32_t)numberOfInstances);
821 NS_FATAL_ERROR(
"Service index out of range!!!");
830 NS_LOG_FUNCTION(
this << (uint32_t)index);
834 NS_FATAL_ERROR(
"Service index out of range!!!");
843 double averageNormalizedOfferedLoadThreshold)
845 NS_LOG_FUNCTION(
this << (uint32_t)index << averageNormalizedOfferedLoadThreshold);
849 NS_FATAL_ERROR(
"Service index out of range!!!");
853 averageNormalizedOfferedLoadThreshold);
859 NS_LOG_FUNCTION(
this << (uint32_t)index);
863 NS_FATAL_ERROR(
"Service index out of range!!!");
872 NS_LOG_FUNCTION(
this << (uint32_t)index << isSlottedAlohaAllowed);
876 NS_FATAL_ERROR(
"Service index out of range!!!");
885 NS_LOG_FUNCTION(
this << (uint32_t)index);
889 NS_FATAL_ERROR(
"Service index out of range!!!");
898 NS_LOG_FUNCTION(
this << (uint32_t)index << isCrdsaAllowed);
902 NS_FATAL_ERROR(
"Service index out of range!!!");
911 NS_LOG_FUNCTION(
this << (uint32_t)index);
915 NS_FATAL_ERROR(
"Service index out of range!!!");
924 NS_LOG_FUNCTION(
this << (uint32_t)index << isEssaAllowed);
928 NS_FATAL_ERROR(
"Service index out of range!!!");
The SatLowerLayerServiceConf class holds information of all configures lower layer service entries.
void SetDaVolumeAllowed(uint8_t index, bool volumeAllowed)
Set state, if volume is allowed for a DA service.
bool GetDaVolumeAllowed(uint8_t index) const
Get state, if volume is allowed for a DA service.
uint16_t GetDaMaximumBacklogInKbytes(uint8_t index) const
Get maximum backlog size for a DA service.
uint8_t GetRaMaximumUniquePayloadPerBlock(uint8_t index) const
Get maximum unique payload per block for a RA service.
uint8_t m_volumeBacklogPersistence
uint8_t m_raServiceIndexDefault
void SetRaIsCrdsaAllowed(uint8_t index, bool isCrdsaAllowed)
Set CRDSA allowance.
void SetDaMinimumServiceRateInKbps(uint8_t index, uint16_t minimumServiceRateKbps)
Set minimum service rate for a DA service.
static std::string GetIndexAsDaServiceName(uint8_t index)
Method to convert DA service index to service name.
bool GetRaIsSlottedAlohaAllowed(uint8_t index) const
Get Slotted Aloha allowance.
void SetRaHighLoadBackOffProbability(uint8_t index, uint16_t highLoadBackOffProbability)
Set high load back off probability.
static const uint8_t m_minDaServiceEntries
static const uint8_t m_maxDaServiceEntries
void SetRaNumberOfInstances(uint8_t index, uint8_t numberOfInstances)
Set number of instances.
void SetDaConstantAssignmentProvided(uint8_t index, bool constAssignmentProvided)
Set state, if constant assignment is provided for a DA service.
bool GetDaRbdcAllowed(uint8_t index) const
Get state, if RBDC is allowed for a DA service.
uint16_t GetRaHighLoadBackOffProbability(uint8_t index) const
Get high load back off probability.
uint16_t GetDaMaximumServiceRateInKbps(uint8_t index) const
Get maximum service rate for a DA service.
void SetRaMaximumUniquePayloadPerBlock(uint8_t index, uint8_t maxUniquePayloadPerBlock)
Set maximum unique payload per block for a RA service.
~SatLowerLayerServiceConf()
Destructor for SatLowerLayerServiceConf.
uint16_t GetRaHighLoadBackOffTimeInMilliSeconds(uint8_t index) const
Get high load back off time in milliseconds.
virtual TypeId GetInstanceTypeId(void) const
Get the type ID of instance.
static const uint8_t m_maxRaServiceEntries
SatLowerLayerServiceConf()
Constructor for SatLowerLayerServiceConf.
uint8_t m_daServiceEntryCount
static const uint8_t m_minRaServiceEntries
void SetRaAverageNormalizedOfferedLoadThreshold(uint8_t index, double averageNormalizedOfferedLoadThreshold)
Set average normalized offeredLoad Threshold.
SatLowerLayerServiceRaEntry m_raServiceEntries[m_maxRaServiceEntries]
bool GetRaIsEssaAllowed(uint8_t index) const
Get E-SSA allowance.
void SetRaIsSlottedAlohaAllowed(uint8_t index, bool isSlottedAlohaAllowed)
Set Slotted Aloha allowance.
void SetRaIsEssaAllowed(uint8_t index, bool isEssaAllowed)
Set ESSA allowance.
static TypeId GetTypeId(void)
methods derived from base classes
uint16_t GetDaMinimumServiceRateInKbps(uint8_t index) const
Get minimum service rate for a DA service.
bool GetRaIsCrdsaAllowed(uint8_t index) const
Get CRDSA allowance.
uint16_t GetDaConstantServiceRateInKbps(uint8_t index) const
Get constant service rate for a DA service.
void SetDaRbdcAllowed(uint8_t index, bool bdcAllowed)
Set state, if RBDC is allowed for a DA service.
double GetRaAverageNormalizedOfferedLoadThreshold(uint8_t index) const
Get average normalized offeredLoad Threshold.
uint8_t GetRaNumberOfInstances(uint8_t index) const
Get number of instances.
Ptr< RandomVariableStream > GetDaConstantServiceRateStream(uint8_t index) const
Get constant service rate stream for a DA service.
void SetRaMaximumConsecutiveBlockAccessed(uint8_t index, uint8_t maxConsecutiveBlockAccessed)
Set maximum consecutive block accessed for a RA service.
void SetRaBackOffProbability(uint8_t index, uint16_t backOffProbability)
Set back off probability.
void SetRaMinimumIdleBlock(uint8_t index, uint8_t minimumIdleBlock)
Set minimum idle block for a RA service.
uint16_t GetRaBackOffProbability(uint8_t index) const
Get back off probability.
static std::string GetIndexAsRaServiceName(uint8_t index)
Method to convert RA service index to service name.
uint8_t GetRaMaximumConsecutiveBlockAccessed(uint8_t index) const
Get maximum consecutive block accessed for a RA service.
void SetRaBackOffTimeInMilliSeconds(uint8_t index, uint16_t backOffTimeInMilliSeconds)
Set back off time in milliseconds.
void SetDaMaximumServiceRateInKbps(uint8_t index, uint16_t maximumServiceRateKbps)
Set maximum service rate for a DA service.
Time m_defaultControlRandomizationInterval
void SetRaHighLoadBackOffTimeInMilliSeconds(uint8_t index, uint16_t backOffTimeInMilliSeconds)
Set high load back off time in milliseconds.
void SetDaConstantServiceRateStream(uint8_t index, Ptr< RandomVariableStream > constantServiceRateStream)
Set constant service rate stream for a DA service.
bool GetDaConstantAssignmentProvided(uint8_t index) const
Get state, if constant assignment is provided for a DA service.
SatLowerLayerServiceDaEntry m_daServiceEntries[m_maxDaServiceEntries]
uint8_t GetRaMinimumIdleBlock(uint8_t index) const
Get minimum idle block for a RA service.
uint8_t m_raServiceEntryCount
uint16_t GetRaBackOffTimeInMilliSeconds(uint8_t index) const
Get back off time in milliseconds.
void SetDaMaximumBacklogInKbytes(uint8_t index, uint16_t maximumBacklogInKbytes)
Set maximum backlog size for a DA service.
uint8_t m_dynamicRatePersistence
bool GetRbdcAllowed() const
Get state, if RBDC is allowed.
void SetConstantServiceRateStream(Ptr< RandomVariableStream > constantServiceRateStream)
Set constant service rate stream.
void SetMaximumBacklogInKbytes(uint16_t maximumBacklogInKbytes)
Set maximum backlog size.
uint16_t GetMinimumServiceRateInKbps() const
Get minimum service rate.
Ptr< RandomVariableStream > GetConstantServiceRateStream() const
Get constant service rate stream.
SatLowerLayerServiceDaEntry()
~SatLowerLayerServiceDaEntry()
Destructor for SatLowerLayerServiceDaEntry.
void SetMinimumServiceRateInKbps(uint16_t minimumServiceRateKbps)
Set minimum service rate.
void SetConstantAssignmentProvided(bool constAssignmentProvided)
Set state, if constant assignment is provided.
void SetMaximumServiceRateInKbps(uint16_t maximumServiceRateKbps)
Set maximum service rate.
uint16_t GetMaximumServiceRateInKbps() const
Get maximum service rate.
bool GetVolumeAllowed() const
Get state, if volume is allowed.
uint16_t GetMaximumBacklogInKbytes() const
Get maximum backlog size.
uint16_t GetConstantServiceRateInKbps() const
Get constant service rate.
void SetVolumeAllowed(bool volumeAllowed)
Set state, if volume is allowed.
bool GetConstantAssignmentProvided() const
Get state, if constant assignment is provided.
void SetRbdcAllowed(bool bdcAllowed)
Set state, if RBDC is allowed.
void SetHighLoadBackOffProbability(uint16_t highLoadBackOffProbability)
Set high load back off probability.
void SetBackOffProbability(uint16_t backOffProbability)
Set back off probability.
void SetMaximumUniquePayloadPerBlock(uint8_t maxUniquePayloadPerBlock)
Set maximum unique payload per block.
void SetAverageNormalizedOfferedLoadThreshold(double averageNormalizedOfferedLoadThreshold)
Set average normalized offered load threshold.
uint16_t GetBackOffProbability() const
Get back off probability.
SatLowerLayerServiceRaEntry()
void SetMinimumIdleBlock(uint8_t minimumIdleBlock)
Set minimum idle block.
bool GetIsEssaAllowed() const
Get ESSA allowance.
void SetBackOffTimeInMilliSeconds(uint16_t backOffTimeInMilliSeconds)
Set back off time in milliseconds.
void SetMaximumConsecutiveBlockAccessed(uint8_t maxConsecutiveBlockAccessed)
Set maximum consecutive block accessed.
double GetAverageNormalizedOfferedLoadThreshold() const
Get average normalized offered load threshold.
void SetIsCrdsaAllowed(bool isCrdsaAllowed)
Set CRDSA allowance.
uint8_t GetNumberOfInstances() const
Get number of instances.
uint16_t GetHighLoadBackOffTimeInMilliSeconds() const
Get high load back off time in milliseconds.
uint8_t GetMaximumConsecutiveBlockAccessed() const
Get maximum consecutive block accessed.
bool GetIsCrdsaAllowed() const
Get CRDSA allowance.
void SetIsSlottedAlohaAllowed(bool isSlottedAlohaAllowed)
Set Slotted Aloha allowance.
void SetHighLoadBackOffTimeInMilliSeconds(uint16_t backOffTimeInMilliSeconds)
Set high load back off time in milliseconds.
bool GetIsSlottedAlohaAllowed() const
Get Slotted Aloha allowance.
uint16_t GetBackOffTimeInMilliSeconds() const
Get back off time in milliseconds.
void SetNumberOfInstances(uint8_t numberOfInstances)
Set number of instances.
uint8_t GetMinimumIdleBlock() const
Get minimum idle block.
~SatLowerLayerServiceRaEntry()
Destructor for SatLowerLayerServiceRaEntry.
void SetIsEssaAllowed(bool isEssaAllowed)
Set ESSA allowance.
uint16_t GetHighLoadBackOffProbability() const
Get high load back off probability.
uint8_t GetMaximumUniquePayloadPerBlock() const
Get maximum unique payload per block.
SatArqSequenceNumber is handling the sequence numbers for the ARQ process.
#define SAT_ADD_DA_SERVICE_ATTRIBUTES(index, a1, a2, a3, a4, a5, a6, a7)
SAT_ADD_DA_SERVICE_ATTRIBUTES macro helps defining service specific attributes for SatLowerLayerServi...