satellite-lower-layer-service.h
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2013 Magister Solutions Ltd
4  * Copyright (c) 2018 CNES
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License version 2 as
8  * published by the Free Software Foundation;
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18  *
19  * Author: Sami Rantanen <sami.rantanen@magister.fi>
20  * Author: Mathias Ettinger <mettinger@toulouse.viveris.fr>
21  */
22 
23 #ifndef SATELLITE_LOWER_LAYER_SERIVICE_H
24 #define SATELLITE_LOWER_LAYER_SERIVICE_H
25 
26 #include <ns3/nstime.h>
27 #include <ns3/object.h>
28 #include <ns3/random-variable-stream.h>
29 
30 #include <unordered_set>
31 #include <vector>
32 
33 namespace ns3
34 {
35 
44 {
45  // grant access for SatLowerLayerServiceConf to access private members
47 
48  public:
50 
55 
56  private:
60  Ptr<RandomVariableStream> m_constantServiceRateStream;
64 
70  inline bool GetConstantAssignmentProvided() const
71  {
73  }
74 
80  inline void SetConstantAssignmentProvided(bool constAssignmentProvided)
81  {
82  m_constantAssignmentProvided = constAssignmentProvided;
83  }
84 
90  inline bool GetRbdcAllowed() const
91  {
92  return m_rbdcAllowed;
93  }
94 
100  inline void SetRbdcAllowed(bool bdcAllowed)
101  {
102  m_rbdcAllowed = bdcAllowed;
103  }
104 
110  inline bool GetVolumeAllowed() const
111  {
112  return m_volumeAllowed;
113  }
114 
120  inline void SetVolumeAllowed(bool volumeAllowed)
121  {
122  m_volumeAllowed = volumeAllowed;
123  }
124 
130  inline uint16_t GetConstantServiceRateInKbps() const
131  {
132  return m_constantServiceRateStream->GetInteger();
133  }
134 
140  inline Ptr<RandomVariableStream> GetConstantServiceRateStream() const
141  {
143  }
144 
150  inline void SetConstantServiceRateStream(Ptr<RandomVariableStream> constantServiceRateStream)
151  {
152  m_constantServiceRateStream = constantServiceRateStream;
153  }
154 
160  inline uint16_t GetMaximumServiceRateInKbps() const
161  {
163  }
164 
170  inline void SetMaximumServiceRateInKbps(uint16_t maximumServiceRateKbps)
171  {
172  m_maximumServiceRateKbps = maximumServiceRateKbps;
173  }
174 
180  inline uint16_t GetMinimumServiceRateInKbps() const
181  {
183  }
184 
190  inline void SetMinimumServiceRateInKbps(uint16_t minimumServiceRateKbps)
191  {
192  m_minimumServiceRateKbps = minimumServiceRateKbps;
193  }
194 
200  inline uint16_t GetMaximumBacklogInKbytes() const
201  {
203  }
204 
210  inline void SetMaximumBacklogInKbytes(uint16_t maximumBacklogInKbytes)
211  {
212  m_maximumBacklogInKbytes = maximumBacklogInKbytes;
213  }
214 };
215 
222 {
223  // grant access for SatLowerLayerServiceConf to access private members
225 
226  public:
228 
233 
234  private:
247 
253  inline uint8_t GetMaximumUniquePayloadPerBlock() const
254  {
256  }
257 
263  inline void SetMaximumUniquePayloadPerBlock(uint8_t maxUniquePayloadPerBlock)
264  {
265  m_maxUniquePayloadPerBlock = maxUniquePayloadPerBlock;
266  }
267 
273  inline uint8_t GetMaximumConsecutiveBlockAccessed() const
274  {
276  }
277 
283  inline void SetMaximumConsecutiveBlockAccessed(uint8_t maxConsecutiveBlockAccessed)
284  {
285  m_maxConsecutiveBlockAccessed = maxConsecutiveBlockAccessed;
286  }
287 
293  inline uint8_t GetMinimumIdleBlock() const
294  {
295  return m_minimumIdleBlock;
296  }
297 
303  inline void SetMinimumIdleBlock(uint8_t minimumIdleBlock)
304  {
305  m_minimumIdleBlock = minimumIdleBlock;
306  }
307 
313  inline uint16_t GetBackOffTimeInMilliSeconds() const
314  {
316  }
317 
323  inline void SetBackOffTimeInMilliSeconds(uint16_t backOffTimeInMilliSeconds)
324  {
325  m_backOffTimeInMilliSeconds = backOffTimeInMilliSeconds;
326  }
327 
333  inline uint16_t GetHighLoadBackOffTimeInMilliSeconds() const
334  {
336  }
337 
343  inline void SetHighLoadBackOffTimeInMilliSeconds(uint16_t backOffTimeInMilliSeconds)
344  {
345  m_highLoadBackOffTimeInMilliSeconds = backOffTimeInMilliSeconds;
346  }
347 
353  inline uint16_t GetBackOffProbability() const
354  {
355  return m_backOffProbability;
356  }
357 
363  inline void SetBackOffProbability(uint16_t backOffProbability)
364  {
365  m_backOffProbability = backOffProbability;
366  }
367 
373  inline uint16_t GetHighLoadBackOffProbability() const
374  {
376  }
377 
383  inline void SetHighLoadBackOffProbability(uint16_t highLoadBackOffProbability)
384  {
385  m_highLoadBackOffProbability = highLoadBackOffProbability;
386  }
387 
393  inline uint8_t GetNumberOfInstances() const
394  {
395  return m_numberOfInstances;
396  }
397 
403  inline void SetNumberOfInstances(uint8_t numberOfInstances)
404  {
405  m_numberOfInstances = numberOfInstances;
406  }
407 
414  {
416  }
417 
424  double averageNormalizedOfferedLoadThreshold)
425  {
426  m_averageNormalizedOfferedLoadThreshold = averageNormalizedOfferedLoadThreshold;
427  }
428 
434  inline bool GetIsSlottedAlohaAllowed() const
435  {
437  }
438 
444  inline void SetIsSlottedAlohaAllowed(bool isSlottedAlohaAllowed)
445  {
446  m_isSlottedAlohaAllowed = isSlottedAlohaAllowed;
447  }
448 
454  inline bool GetIsCrdsaAllowed() const
455  {
456  return m_isCrdsaAllowed;
457  }
458 
464  inline void SetIsCrdsaAllowed(bool isCrdsaAllowed)
465  {
466  m_isCrdsaAllowed = isCrdsaAllowed;
467  }
468 
474  inline bool GetIsEssaAllowed() const
475  {
476  return m_isEssaAllowed;
477  }
478 
484  inline void SetIsEssaAllowed(bool isEssaAllowed)
485  {
486  m_isEssaAllowed = isEssaAllowed;
487  }
488 };
489 
498 class SatLowerLayerServiceConf : public Object
499 {
500  public:
501  static const uint8_t m_minDaServiceEntries = 2;
502  static const uint8_t m_minRaServiceEntries = 1;
503 
504  static const uint8_t m_maxDaServiceEntries = 4;
505  static const uint8_t m_maxRaServiceEntries = 3;
506 
511 
516 
520  static TypeId GetTypeId(void);
521 
526  virtual TypeId GetInstanceTypeId(void) const;
527 
533  inline uint8_t GetRaServiceCount() const
534  {
535  return m_raServiceEntryCount;
536  }
537 
543  inline uint8_t GetDaServiceCount() const
544  {
545  return m_daServiceEntryCount;
546  }
547 
554  {
556  }
557 
564  {
566  }
567 
574  {
576  }
577 
583  inline uint8_t GetRaDefaultService() const
584  {
586  }
587 
594  bool GetDaConstantAssignmentProvided(uint8_t index) const;
595 
602  bool GetDaRbdcAllowed(uint8_t index) const;
603 
610  bool GetDaVolumeAllowed(uint8_t index) const;
611 
618  uint16_t GetDaConstantServiceRateInKbps(uint8_t index) const;
619 
626  Ptr<RandomVariableStream> GetDaConstantServiceRateStream(uint8_t index) const;
627 
634  uint16_t GetDaMaximumServiceRateInKbps(uint8_t index) const;
635 
642  uint16_t GetDaMinimumServiceRateInKbps(uint8_t index) const;
643 
650  uint16_t GetDaMaximumBacklogInKbytes(uint8_t index) const;
651 
658  uint8_t GetRaMaximumUniquePayloadPerBlock(uint8_t index) const;
659 
666  uint8_t GetRaMaximumConsecutiveBlockAccessed(uint8_t index) const;
667 
674  uint8_t GetRaMinimumIdleBlock(uint8_t index) const;
675 
682  uint16_t GetRaBackOffTimeInMilliSeconds(uint8_t index) const;
683 
690  uint16_t GetRaHighLoadBackOffTimeInMilliSeconds(uint8_t index) const;
691 
698  uint16_t GetRaBackOffProbability(uint8_t index) const;
699 
706  uint16_t GetRaHighLoadBackOffProbability(uint8_t index) const;
707 
714  uint8_t GetRaNumberOfInstances(uint8_t index) const;
715 
722  double GetRaAverageNormalizedOfferedLoadThreshold(uint8_t index) const;
723 
730  bool GetRaIsSlottedAlohaAllowed(uint8_t index) const;
731 
738  bool GetRaIsCrdsaAllowed(uint8_t index) const;
739 
746  bool GetRaIsEssaAllowed(uint8_t index) const;
747 
748  private:
757 
763  template <class T>
764  static std::string GetNumberAsString(T number)
765  {
766  std::stringstream ss; // create a string stream
767  ss << (double)number; // add number to the stream as double always to show number correctly
768  // in outputs
769 
770  return ss.str();
771  }
772 
779  static std::string GetIndexAsDaServiceName(uint8_t index);
780 
787  static std::string GetIndexAsRaServiceName(uint8_t index);
788 
795  void SetDaConstantAssignmentProvided(uint8_t index, bool constAssignmentProvided);
796 
803  void SetDaRbdcAllowed(uint8_t index, bool bdcAllowed);
804 
811  void SetDaVolumeAllowed(uint8_t index, bool volumeAllowed);
812 
819  void SetDaConstantServiceRateStream(uint8_t index,
820  Ptr<RandomVariableStream> constantServiceRateStream);
821 
828  void SetDaMaximumServiceRateInKbps(uint8_t index, uint16_t maximumServiceRateKbps);
829 
836  void SetDaMinimumServiceRateInKbps(uint8_t index, uint16_t minimumServiceRateKbps);
837 
844  void SetDaMaximumBacklogInKbytes(uint8_t index, uint16_t maximumBacklogInKbytes);
845 
852  void SetRaMaximumUniquePayloadPerBlock(uint8_t index, uint8_t maxUniquePayloadPerBlock);
853 
860  void SetRaMaximumConsecutiveBlockAccessed(uint8_t index, uint8_t maxConsecutiveBlockAccessed);
861 
868  void SetRaMinimumIdleBlock(uint8_t index, uint8_t minimumIdleBlock);
869 
876  void SetRaBackOffTimeInMilliSeconds(uint8_t index, uint16_t backOffTimeInMilliSeconds);
877 
884  void SetRaHighLoadBackOffTimeInMilliSeconds(uint8_t index, uint16_t backOffTimeInMilliSeconds);
885 
892  void SetRaBackOffProbability(uint8_t index, uint16_t backOffProbability);
893 
900  void SetRaHighLoadBackOffProbability(uint8_t index, uint16_t highLoadBackOffProbability);
901 
908  void SetRaNumberOfInstances(uint8_t index, uint8_t numberOfInstances);
909 
917  double averageNormalizedOfferedLoadThreshold);
918 
925  void SetRaIsSlottedAlohaAllowed(uint8_t index, bool isSlottedAlohaAllowed);
926 
933  void SetRaIsCrdsaAllowed(uint8_t index, bool isCrdsaAllowed);
934 
941  void SetRaIsEssaAllowed(uint8_t index, bool isEssaAllowed);
942 
976 #define SAT_DA_SERVICE_ATTRIBUTE_ACCESSOR_DEFINE(index) \
977  inline void SetDaServ##index##ConstantAssignmentProvided(bool value) \
978  { \
979  return SetDaConstantAssignmentProvided(index, value); \
980  } \
981  inline bool GetDaServ##index##ConstantAssignmentProvided() const \
982  { \
983  return GetDaConstantAssignmentProvided(index); \
984  } \
985  inline void SetDaServ##index##RbdcAllowed(bool value) \
986  { \
987  return SetDaRbdcAllowed(index, value); \
988  } \
989  inline bool GetDaServ##index##RbdcAllowed() const \
990  { \
991  return GetDaRbdcAllowed(index); \
992  } \
993  inline void SetDaServ##index##VolumeAllowed(bool value) \
994  { \
995  return SetDaVolumeAllowed(index, value); \
996  } \
997  inline bool GetDaServ##index##VolumeAllowed() const \
998  { \
999  return GetDaVolumeAllowed(index); \
1000  } \
1001  inline void SetDaServ##index##ConstantServiceRateStream(Ptr<RandomVariableStream> value) \
1002  { \
1003  return SetDaConstantServiceRateStream(index, value); \
1004  } \
1005  inline Ptr<RandomVariableStream> GetDaServ##index##ConstantServiceRateStream() const \
1006  { \
1007  return GetDaConstantServiceRateStream(index); \
1008  } \
1009  inline void SetDaServ##index##MaximumServiceRateInKbps(uint16_t value) \
1010  { \
1011  return SetDaMaximumServiceRateInKbps(index, value); \
1012  } \
1013  inline uint16_t GetDaServ##index##MaximumServiceRateInKbps() const \
1014  { \
1015  return GetDaMaximumServiceRateInKbps(index); \
1016  } \
1017  inline void SetDaServ##index##MinimumServiceRateInKbps(uint16_t value) \
1018  { \
1019  return SetDaMinimumServiceRateInKbps(index, value); \
1020  } \
1021  inline uint16_t GetDaServ##index##MinimumServiceRateInKbps() const \
1022  { \
1023  return GetDaMinimumServiceRateInKbps(index); \
1024  } \
1025  inline void SetDaServ##index##MaximumBacklogInKbytes(uint16_t value) \
1026  { \
1027  return SetDaMaximumBacklogInKbytes(index, value); \
1028  } \
1029  inline uint8_t GetDaServ##index##MaximumBacklogInKbytes() const \
1030  { \
1031  return GetDaMaximumBacklogInKbytes(index); \
1032  }
1033 
1079 #define SAT_RA_SERVICE_ATTRIBUTE_ACCESSOR_DEFINE(index) \
1080  inline void SetRaServ##index##MaximumUniquePayloadPerBlock(uint8_t value) \
1081  { \
1082  return SetRaMaximumUniquePayloadPerBlock(index, value); \
1083  } \
1084  inline uint8_t GetRaServ##index##MaximumUniquePayloadPerBlock() const \
1085  { \
1086  return GetRaMaximumUniquePayloadPerBlock(index); \
1087  } \
1088  inline void SetRaServ##index##MaximumConsecutiveBlockAccessed(uint8_t value) \
1089  { \
1090  return SetRaMaximumConsecutiveBlockAccessed(index, value); \
1091  } \
1092  inline uint8_t GetRaServ##index##MaximumConsecutiveBlockAccessed() const \
1093  { \
1094  return GetRaMaximumConsecutiveBlockAccessed(index); \
1095  } \
1096  inline void SetRaServ##index##MinimumIdleBlock(uint8_t value) \
1097  { \
1098  return SetRaMinimumIdleBlock(index, value); \
1099  } \
1100  inline uint8_t GetRaServ##index##MinimumIdleBlock() const \
1101  { \
1102  return GetRaMinimumIdleBlock(index); \
1103  } \
1104  inline void SetRaServ##index##BackOffTimeInMilliSeconds(uint16_t value) \
1105  { \
1106  return SetRaBackOffTimeInMilliSeconds(index, value); \
1107  } \
1108  inline uint16_t GetRaServ##index##BackOffTimeInMilliSeconds() const \
1109  { \
1110  return GetRaBackOffTimeInMilliSeconds(index); \
1111  } \
1112  inline void SetRaServ##index##HighLoadBackOffTimeInMilliSeconds(uint16_t value) \
1113  { \
1114  return SetRaHighLoadBackOffTimeInMilliSeconds(index, value); \
1115  } \
1116  inline uint16_t GetRaServ##index##HighLoadBackOffTimeInMilliSeconds() const \
1117  { \
1118  return GetRaHighLoadBackOffTimeInMilliSeconds(index); \
1119  } \
1120  inline void SetRaServ##index##BackOffProbability(uint16_t value) \
1121  { \
1122  return SetRaBackOffProbability(index, value); \
1123  } \
1124  inline uint16_t GetRaServ##index##BackOffProbability() const \
1125  { \
1126  return GetRaBackOffProbability(index); \
1127  } \
1128  inline void SetRaServ##index##HighLoadBackOffProbability(uint16_t value) \
1129  { \
1130  return SetRaHighLoadBackOffProbability(index, value); \
1131  } \
1132  inline uint16_t GetRaServ##index##HighLoadBackOffProbability() const \
1133  { \
1134  return GetRaHighLoadBackOffProbability(index); \
1135  } \
1136  inline void SetRaServ##index##NumberOfInstances(uint8_t value) \
1137  { \
1138  return SetRaNumberOfInstances(index, value); \
1139  } \
1140  inline uint8_t GetRaServ##index##NumberOfInstances() const \
1141  { \
1142  return GetRaNumberOfInstances(index); \
1143  } \
1144  inline void SetRaServ##index##AverageNormalizedOfferedLoadThreshold(double value) \
1145  { \
1146  return SetRaAverageNormalizedOfferedLoadThreshold(index, value); \
1147  } \
1148  inline double GetRaServ##index##AverageNormalizedOfferedLoadThreshold() const \
1149  { \
1150  return GetRaAverageNormalizedOfferedLoadThreshold(index); \
1151  } \
1152  inline void SetRaServ##index##IsSlottedAlohaAllowed(bool value) \
1153  { \
1154  return SetRaIsSlottedAlohaAllowed(index, value); \
1155  } \
1156  inline bool GetRaServ##index##IsSlottedAlohaAllowed() const \
1157  { \
1158  return GetRaIsSlottedAlohaAllowed(index); \
1159  } \
1160  inline void SetRaServ##index##IsCrdsaAllowed(bool value) \
1161  { \
1162  return SetRaIsCrdsaAllowed(index, value); \
1163  } \
1164  inline bool GetRaServ##index##IsCrdsaAllowed() const \
1165  { \
1166  return GetRaIsCrdsaAllowed(index); \
1167  } \
1168  inline void SetRaServ##index##IsEssaAllowed(bool value) \
1169  { \
1170  return SetRaIsEssaAllowed(index, value); \
1171  } \
1172  inline bool GetRaServ##index##IsEssaAllowed() const \
1173  { \
1174  return GetRaIsEssaAllowed(index); \
1175  }
1176 
1181 
1185 };
1186 
1187 } // namespace ns3
1188 
1189 #endif /* SATELLITE_LOWER_LAYER_SERIVICE_H */
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.
Time GetDefaultControlRandomizationInterval() const
Get configured default control randomization interval.
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 std::string GetNumberAsString(T number)
Template method to convert number to string.
uint8_t GetRaServiceCount() const
Get count of configured RA services.
uint8_t GetRaDefaultService() const
Get index of default RA service.
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.
SatLowerLayerServiceConf()
Constructor for SatLowerLayerServiceConf.
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.
uint8_t GetDynamicRatePersistence() const
Get configured dynamic rate persistence.
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 GetDaServiceCount() const
Get count of configured DA services.
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.
uint8_t GetVolumeBacklogPersistence() const
Get configured volume backlog persistence.
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.
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.
The SatLowerLayerService class holds information of a satellite lower layer service DA entry.
uint16_t m_minimumServiceRateKbps
bool GetRbdcAllowed() const
Get state, if RBDC is allowed.
uint16_t m_maximumServiceRateKbps
void SetConstantServiceRateStream(Ptr< RandomVariableStream > constantServiceRateStream)
Set constant service rate stream.
Ptr< RandomVariableStream > m_constantServiceRateStream
void SetMaximumBacklogInKbytes(uint16_t maximumBacklogInKbytes)
Set maximum backlog size.
bool m_volumeAllowed
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.
uint16_t m_maximumBacklogInKbytes
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.
bool m_rbdcAllowed
uint16_t GetConstantServiceRateInKbps() const
Get constant service rate.
bool m_constantAssignmentProvided
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.
The SatLowerLayerService class holds information of a satellite lower layer service RA entry.
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.
uint16_t m_backOffProbability
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 m_maxUniquePayloadPerBlock
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.
uint8_t m_minimumIdleBlock
bool GetIsCrdsaAllowed() const
Get CRDSA allowance.
uint8_t m_numberOfInstances
bool m_isSlottedAlohaAllowed
void SetIsSlottedAlohaAllowed(bool isSlottedAlohaAllowed)
Set Slotted Aloha allowance.
uint16_t m_highLoadBackOffTimeInMilliSeconds
void SetHighLoadBackOffTimeInMilliSeconds(uint16_t backOffTimeInMilliSeconds)
Set high load back off time in milliseconds.
uint16_t m_highLoadBackOffProbability
uint8_t m_maxConsecutiveBlockAccessed
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.
bool m_isCrdsaAllowed
uint16_t GetHighLoadBackOffProbability() const
Get high load back off probability.
uint16_t m_backOffTimeInMilliSeconds
bool m_isEssaAllowed
uint8_t GetMaximumUniquePayloadPerBlock() const
Get maximum unique payload per block.
double m_averageNormalizedOfferedLoadThreshold
SatArqSequenceNumber is handling the sequence numbers for the ARQ process.