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>
39 NS_LOG_COMPONENT_DEFINE(
"SatLowerLayerServiceConf");
45 : m_constantAssignmentProvided(false),
47 m_volumeAllowed(false),
48 m_constantServiceRateStream(0),
49 m_maximumServiceRateKbps(0.0),
50 m_minimumServiceRateKbps(0.0),
51 m_maximumBacklogInKbytes(0)
53 NS_LOG_FUNCTION(
this);
58 NS_LOG_FUNCTION(
this);
62 : m_maxUniquePayloadPerBlock(0),
63 m_maxConsecutiveBlockAccessed(0),
64 m_minimumIdleBlock(0),
65 m_backOffTimeInMilliSeconds(0),
66 m_highLoadBackOffTimeInMilliSeconds(0),
67 m_backOffProbability(0),
68 m_highLoadBackOffProbability(0),
69 m_numberOfInstances(0),
70 m_averageNormalizedOfferedLoadThreshold(0.0),
71 m_isCrdsaAllowed(false),
72 m_isSlottedAlohaAllowed(false),
73 m_isEssaAllowed(false)
75 NS_LOG_FUNCTION(
this);
80 NS_LOG_FUNCTION(
this);
86 : m_dynamicRatePersistence(0),
87 m_volumeBacklogPersistence(0),
88 m_defaultControlRandomizationInterval(0.0),
89 m_daServiceEntryCount(0),
90 m_raServiceEntryCount(0)
92 NS_LOG_FUNCTION(
this);
96 NS_FATAL_ERROR(
"SatLowerLayerServiceConf::SatLowerLayerServiceConf - m_minRaServiceEntries "
97 "> m_maxRaServiceEntries");
102 NS_FATAL_ERROR(
"SatLowerLayerServiceConf::SatLowerLayerServiceConf - m_minDaServiceEntries "
103 "> m_maxDaServiceEntries");
109 NS_LOG_FUNCTION(
this);
115 std::string name =
"DaService";
116 return name + GetNumberAsString<uint8_t>(index);
122 std::string name =
"RaService";
123 return name + GetNumberAsString<uint8_t>(index);
141 #define SAT_ADD_DA_SERVICE_ATTRIBUTES(index, a1, a2, a3, a4, a5, a6, a7) \
142 AddAttribute(GetIndexAsDaServiceName(index) + "_ConstantAssignmentProvided", \
143 "Constant Assignment provided for " + GetIndexAsDaServiceName(index), \
145 MakeBooleanAccessor( \
146 &SatLowerLayerServiceConf::SetDaServ##index##ConstantAssignmentProvided, \
147 &SatLowerLayerServiceConf::GetDaServ##index##ConstantAssignmentProvided), \
148 MakeBooleanChecker()) \
150 GetIndexAsDaServiceName(index) + "_RbdcAllowed", \
151 "RBDC allowed for DA " + GetIndexAsDaServiceName(index), \
153 MakeBooleanAccessor(&SatLowerLayerServiceConf::SetDaServ##index##RbdcAllowed, \
154 &SatLowerLayerServiceConf::GetDaServ##index##RbdcAllowed), \
155 MakeBooleanChecker()) \
157 GetIndexAsDaServiceName(index) + "_VolumeAllowed", \
158 "Volume allowed for DA " + GetIndexAsDaServiceName(index), \
160 MakeBooleanAccessor(&SatLowerLayerServiceConf::SetDaServ##index##VolumeAllowed, \
161 &SatLowerLayerServiceConf::GetDaServ##index##VolumeAllowed), \
162 MakeBooleanChecker()) \
163 .AddAttribute(GetIndexAsDaServiceName(index) + "_ConstantServiceRate", \
164 "A RandomVariableStream for constant service rate [kbps] for DA " + \
165 GetIndexAsDaServiceName(index), \
166 StringValue("ns3::ConstantRandomVariable[Constant=" + \
167 GetNumberAsString<uint16_t>(a4) + "]"), \
168 MakePointerAccessor( \
169 &SatLowerLayerServiceConf::SetDaServ##index##ConstantServiceRateStream, \
170 &SatLowerLayerServiceConf::GetDaServ##index##ConstantServiceRateStream), \
171 MakePointerChecker<RandomVariableStream>()) \
172 .AddAttribute(GetIndexAsDaServiceName(index) + "_MaximumServiceRate", \
173 "Maximum service rate [kbps] for DA " + GetIndexAsDaServiceName(index), \
175 MakeUintegerAccessor( \
176 &SatLowerLayerServiceConf::SetDaServ##index##MaximumServiceRateInKbps, \
177 &SatLowerLayerServiceConf::GetDaServ##index##MaximumServiceRateInKbps), \
178 MakeUintegerChecker<uint16_t>()) \
179 .AddAttribute(GetIndexAsDaServiceName(index) + "_MinimumServiceRate", \
180 "Minimum service rate [kbps] for DA " + GetIndexAsDaServiceName(index), \
182 MakeUintegerAccessor( \
183 &SatLowerLayerServiceConf::SetDaServ##index##MinimumServiceRateInKbps, \
184 &SatLowerLayerServiceConf::GetDaServ##index##MinimumServiceRateInKbps), \
185 MakeUintegerChecker<uint16_t>()) \
186 .AddAttribute(GetIndexAsDaServiceName(index) + "_MaximumBacklogSize", \
187 "Maximum backlog size [Kbytes] for DA " + GetIndexAsDaServiceName(index), \
189 MakeUintegerAccessor( \
190 &SatLowerLayerServiceConf::SetDaServ##index##MaximumBacklogInKbytes, \
191 &SatLowerLayerServiceConf::GetDaServ##index##MaximumBacklogInKbytes), \
192 MakeUintegerChecker<uint16_t>())
214 #define SAT_ADD_RA_SERVICE_ATTRIBUTES(index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) \
215 AddAttribute(GetIndexAsRaServiceName(index) + "_MaximumUniquePayloadPerBlock", \
216 "Maximum unique payload per block for RA " + GetIndexAsRaServiceName(index), \
218 MakeUintegerAccessor( \
219 &SatLowerLayerServiceConf::SetRaServ##index##MaximumUniquePayloadPerBlock, \
220 &SatLowerLayerServiceConf::GetRaServ##index##MaximumUniquePayloadPerBlock), \
221 MakeUintegerChecker<uint8_t>()) \
223 GetIndexAsRaServiceName(index) + "_MaximumConsecutiveBlockAccessed", \
224 "Maximum consecutive block accessed for RA " + GetIndexAsRaServiceName(index), \
226 MakeUintegerAccessor( \
227 &SatLowerLayerServiceConf::SetRaServ##index##MaximumConsecutiveBlockAccessed, \
228 &SatLowerLayerServiceConf::GetRaServ##index##MaximumConsecutiveBlockAccessed), \
229 MakeUintegerChecker<uint8_t>()) \
231 GetIndexAsRaServiceName(index) + "_MinimumIdleBlock", \
232 "Minimum idle block for RA " + GetIndexAsRaServiceName(index), \
234 MakeUintegerAccessor(&SatLowerLayerServiceConf::SetRaServ##index##MinimumIdleBlock, \
235 &SatLowerLayerServiceConf::GetRaServ##index##MinimumIdleBlock), \
236 MakeUintegerChecker<uint8_t>()) \
237 .AddAttribute(GetIndexAsRaServiceName(index) + "_BackOffTimeInMilliSeconds", \
238 "Back off time in milliseconds for RA " + GetIndexAsRaServiceName(index), \
240 MakeUintegerAccessor( \
241 &SatLowerLayerServiceConf::SetRaServ##index##BackOffTimeInMilliSeconds, \
242 &SatLowerLayerServiceConf::GetRaServ##index##BackOffTimeInMilliSeconds), \
243 MakeUintegerChecker<uint16_t>()) \
245 GetIndexAsRaServiceName(index) + "_HighLoadBackOffTimeInMilliSeconds", \
246 "High load back off time in milliseconds for RA " + GetIndexAsRaServiceName(index), \
248 MakeUintegerAccessor( \
249 &SatLowerLayerServiceConf::SetRaServ##index##HighLoadBackOffTimeInMilliSeconds, \
250 &SatLowerLayerServiceConf::GetRaServ##index##HighLoadBackOffTimeInMilliSeconds), \
251 MakeUintegerChecker<uint16_t>()) \
253 GetIndexAsRaServiceName(index) + "_BackOffProbability", \
254 "Back off probability for RA " + GetIndexAsRaServiceName(index), \
256 MakeUintegerAccessor(&SatLowerLayerServiceConf::SetRaServ##index##BackOffProbability, \
257 &SatLowerLayerServiceConf::GetRaServ##index##BackOffProbability), \
258 MakeUintegerChecker<uint16_t>()) \
260 GetIndexAsRaServiceName(index) + "_HighLoadBackOffProbability", \
261 "High load back off probability for RA " + GetIndexAsRaServiceName(index), \
263 MakeUintegerAccessor( \
264 &SatLowerLayerServiceConf::SetRaServ##index##HighLoadBackOffProbability, \
265 &SatLowerLayerServiceConf::GetRaServ##index##HighLoadBackOffProbability), \
266 MakeUintegerChecker<uint16_t>()) \
268 GetIndexAsRaServiceName(index) + "_NumberOfInstances", \
269 "Number of instances for RA " + GetIndexAsRaServiceName(index), \
271 MakeUintegerAccessor(&SatLowerLayerServiceConf::SetRaServ##index##NumberOfInstances, \
272 &SatLowerLayerServiceConf::GetRaServ##index##NumberOfInstances), \
273 MakeUintegerChecker<uint8_t>()) \
275 GetIndexAsRaServiceName(index) + "_AverageNormalizedOfferedLoadThreshold", \
276 "Average normalized offered load threshold for RA " + GetIndexAsRaServiceName(index), \
278 MakeDoubleAccessor(&SatLowerLayerServiceConf:: \
279 SetRaServ##index##AverageNormalizedOfferedLoadThreshold, \
280 &SatLowerLayerServiceConf:: \
281 GetRaServ##index##AverageNormalizedOfferedLoadThreshold), \
282 MakeDoubleChecker<double>()) \
283 .AddAttribute(GetIndexAsRaServiceName(index) + "_SlottedAlohaAllowed", \
284 "Slotted Aloha allowed for RA " + GetIndexAsRaServiceName(index), \
286 MakeBooleanAccessor( \
287 &SatLowerLayerServiceConf::SetRaServ##index##IsSlottedAlohaAllowed, \
288 &SatLowerLayerServiceConf::GetRaServ##index##IsSlottedAlohaAllowed), \
289 MakeBooleanChecker()) \
291 GetIndexAsRaServiceName(index) + "_CrdsaAllowed", \
292 "CRDSA allowed for RA " + GetIndexAsRaServiceName(index), \
294 MakeBooleanAccessor(&SatLowerLayerServiceConf::SetRaServ##index##IsCrdsaAllowed, \
295 &SatLowerLayerServiceConf::GetRaServ##index##IsCrdsaAllowed), \
296 MakeBooleanChecker()) \
298 GetIndexAsRaServiceName(index) + "_EssaAllowed", \
299 "ESSA allowed for RA " + GetIndexAsRaServiceName(index), \
301 MakeBooleanAccessor(&SatLowerLayerServiceConf::SetRaServ##index##IsEssaAllowed, \
302 &SatLowerLayerServiceConf::GetRaServ##index##IsEssaAllowed), \
303 MakeBooleanChecker())
309 TypeId(
"ns3::SatLowerLayerServiceConf")
311 .AddConstructor<SatLowerLayerServiceConf>()
314 "DA services in use.",
321 "RA services in use.",
328 "Index of the RA service to use as a default for carriers with no explicitly "
329 "assigned services.",
332 MakeUintegerChecker<uint8_t>(0,
334 .AddAttribute(
"DynamicRatePersistence",
335 "Dynamic rate persistence for the lower layer service.",
338 MakeUintegerChecker<uint8_t>())
340 "VolumeBacklogPersistence",
341 "Volume backlog persistence for the lower layer service",
344 MakeUintegerChecker<uint8_t>())
346 "DefaultControlRandomizationInterval",
347 "Default control randomization interval for the lower layer service",
348 TimeValue(MilliSeconds(100)),
350 MakeTimeChecker(MilliSeconds(0), MilliSeconds(std::numeric_limits<uint8_t>::max())))
356 .SAT_ADD_DA_SERVICE_ATTRIBUTES(1,
false,
false,
false, 50, 9216, 10, 384)
357 .SAT_ADD_DA_SERVICE_ATTRIBUTES(2,
false,
false,
false, 50, 9216, 10, 384)
358 .SAT_ADD_DA_SERVICE_ATTRIBUTES(3,
false,
true,
false, 50, 9216, 10, 384)
365 .SAT_ADD_RA_SERVICE_ATTRIBUTES(0,
378 .SAT_ADD_RA_SERVICE_ATTRIBUTES(1,
391 .SAT_ADD_RA_SERVICE_ATTRIBUTES(2,
411 NS_LOG_FUNCTION(
this);
419 NS_LOG_FUNCTION(
this << (uint32_t)index);
423 NS_FATAL_ERROR(
"Service index out of range!!!");
431 bool constAssignmentProvided)
433 NS_LOG_FUNCTION(
this << (uint32_t)index << constAssignmentProvided);
437 NS_FATAL_ERROR(
"Service index out of range!!!");
446 NS_LOG_FUNCTION(
this << (uint32_t)index);
450 NS_FATAL_ERROR(
"Service index out of range!!!");
459 NS_LOG_FUNCTION(
this << (uint32_t)index << bdcAllowed);
463 NS_FATAL_ERROR(
"Service index out of range!!!");
472 NS_LOG_FUNCTION(
this << (uint32_t)index);
476 NS_FATAL_ERROR(
"Service index out of range!!!");
485 NS_LOG_FUNCTION(
this << (uint32_t)index << volumeAllowed);
489 NS_FATAL_ERROR(
"Service index out of range!!!");
498 NS_LOG_FUNCTION(
this << (uint32_t)index);
502 NS_FATAL_ERROR(
"Service index out of range!!!");
508 Ptr<RandomVariableStream>
511 NS_LOG_FUNCTION(
this << (uint32_t)index);
515 NS_FATAL_ERROR(
"Service index out of range!!!");
524 Ptr<RandomVariableStream> constantServiceRateStream)
526 NS_LOG_FUNCTION(
this << (uint32_t)index);
530 NS_FATAL_ERROR(
"Service index out of range!!!");
539 NS_LOG_FUNCTION(
this << (uint32_t)index);
543 NS_FATAL_ERROR(
"Service index out of range!!!");
551 uint16_t maximumServiceRateKbps)
553 NS_LOG_FUNCTION(
this << (uint32_t)index << maximumServiceRateKbps);
557 NS_FATAL_ERROR(
"Service index out of range!!!");
566 NS_LOG_FUNCTION(
this << (uint32_t)index);
570 NS_FATAL_ERROR(
"Service index out of range!!!");
578 uint16_t minimumServiceRateKbps)
580 NS_LOG_FUNCTION(
this << (uint32_t)index << minimumServiceRateKbps);
584 NS_FATAL_ERROR(
"Service index out of range!!!");
593 NS_LOG_FUNCTION(
this << (uint32_t)index);
597 NS_FATAL_ERROR(
"Service index out of range!!!");
605 uint16_t maximumBacklogInKbytes)
607 NS_LOG_FUNCTION(
this << (uint32_t)index << maximumBacklogInKbytes);
611 NS_FATAL_ERROR(
"Service index out of range!!!");
620 NS_LOG_FUNCTION(
this << (uint32_t)index);
624 NS_FATAL_ERROR(
"Service index out of range!!!");
632 uint8_t uniquePayloadPerBlock)
634 NS_LOG_FUNCTION(
this << (uint32_t)index << uniquePayloadPerBlock);
638 NS_FATAL_ERROR(
"Service index out of range!!!");
647 NS_LOG_FUNCTION(
this << (uint32_t)index);
651 NS_FATAL_ERROR(
"Service index out of range!!!");
659 uint8_t consecutiveBlockAccessed)
661 NS_LOG_FUNCTION(
this << (uint32_t)index << consecutiveBlockAccessed);
665 NS_FATAL_ERROR(
"Service index out of range!!!");
674 NS_LOG_FUNCTION(
this << (uint32_t)index);
678 NS_FATAL_ERROR(
"Service index out of range!!!");
687 NS_LOG_FUNCTION(
this << (uint32_t)index << minimumIdleBlock);
691 NS_FATAL_ERROR(
"Service index out of range!!!");
700 NS_LOG_FUNCTION(
this << (uint32_t)index);
704 NS_FATAL_ERROR(
"Service index out of range!!!");
712 uint16_t backOffTimeInMilliSeconds)
714 NS_LOG_FUNCTION(
this << (uint32_t)index << backOffTimeInMilliSeconds);
718 NS_FATAL_ERROR(
"Service index out of range!!!");
727 NS_LOG_FUNCTION(
this << (uint32_t)index);
731 NS_FATAL_ERROR(
"Service index out of range!!!");
739 uint16_t backOffTimeInMilliSeconds)
741 NS_LOG_FUNCTION(
this << (uint32_t)index << backOffTimeInMilliSeconds);
745 NS_FATAL_ERROR(
"Service index out of range!!!");
754 NS_LOG_FUNCTION(
this << (uint32_t)index);
758 NS_FATAL_ERROR(
"Service index out of range!!!");
767 NS_LOG_FUNCTION(
this << (uint32_t)index << backOffProbability);
771 NS_FATAL_ERROR(
"Service index out of range!!!");
780 NS_LOG_FUNCTION(
this << (uint32_t)index);
784 NS_FATAL_ERROR(
"Service index out of range!!!");
792 uint16_t highLoadBackOffProbability)
794 NS_LOG_FUNCTION(
this << (uint32_t)index << highLoadBackOffProbability);
798 NS_FATAL_ERROR(
"Service index out of range!!!");
807 NS_LOG_FUNCTION(
this << (uint32_t)index);
811 NS_FATAL_ERROR(
"Service index out of range!!!");
820 NS_LOG_FUNCTION(
this << (uint32_t)index << (uint32_t)numberOfInstances);
824 NS_FATAL_ERROR(
"Service index out of range!!!");
833 NS_LOG_FUNCTION(
this << (uint32_t)index);
837 NS_FATAL_ERROR(
"Service index out of range!!!");
846 double averageNormalizedOfferedLoadThreshold)
848 NS_LOG_FUNCTION(
this << (uint32_t)index << averageNormalizedOfferedLoadThreshold);
852 NS_FATAL_ERROR(
"Service index out of range!!!");
856 averageNormalizedOfferedLoadThreshold);
862 NS_LOG_FUNCTION(
this << (uint32_t)index);
866 NS_FATAL_ERROR(
"Service index out of range!!!");
875 NS_LOG_FUNCTION(
this << (uint32_t)index << isSlottedAlohaAllowed);
879 NS_FATAL_ERROR(
"Service index out of range!!!");
888 NS_LOG_FUNCTION(
this << (uint32_t)index);
892 NS_FATAL_ERROR(
"Service index out of range!!!");
901 NS_LOG_FUNCTION(
this << (uint32_t)index << isCrdsaAllowed);
905 NS_FATAL_ERROR(
"Service index out of range!!!");
914 NS_LOG_FUNCTION(
this << (uint32_t)index);
918 NS_FATAL_ERROR(
"Service index out of range!!!");
927 NS_LOG_FUNCTION(
this << (uint32_t)index << isEssaAllowed);
931 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...