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 <sstream>
31 #include <stdint.h>
32 #include <string>
33 #include <unordered_set>
34 #include <vector>
35 
36 namespace ns3
37 {
38 
47 {
48  // grant access for SatLowerLayerServiceConf to access private members
50 
51  public:
53 
58 
59  private:
63  Ptr<RandomVariableStream> m_constantServiceRateStream;
67 
73  inline bool GetConstantAssignmentProvided() const
74  {
76  }
77 
83  inline void SetConstantAssignmentProvided(bool constAssignmentProvided)
84  {
85  m_constantAssignmentProvided = constAssignmentProvided;
86  }
87 
93  inline bool GetRbdcAllowed() const
94  {
95  return m_rbdcAllowed;
96  }
97 
103  inline void SetRbdcAllowed(bool bdcAllowed)
104  {
105  m_rbdcAllowed = bdcAllowed;
106  }
107 
113  inline bool GetVolumeAllowed() const
114  {
115  return m_volumeAllowed;
116  }
117 
123  inline void SetVolumeAllowed(bool volumeAllowed)
124  {
125  m_volumeAllowed = volumeAllowed;
126  }
127 
133  inline uint16_t GetConstantServiceRateInKbps() const
134  {
135  return m_constantServiceRateStream->GetInteger();
136  }
137 
143  inline Ptr<RandomVariableStream> GetConstantServiceRateStream() const
144  {
146  }
147 
153  inline void SetConstantServiceRateStream(Ptr<RandomVariableStream> constantServiceRateStream)
154  {
155  m_constantServiceRateStream = constantServiceRateStream;
156  }
157 
163  inline uint16_t GetMaximumServiceRateInKbps() const
164  {
166  }
167 
173  inline void SetMaximumServiceRateInKbps(uint16_t maximumServiceRateKbps)
174  {
175  m_maximumServiceRateKbps = maximumServiceRateKbps;
176  }
177 
183  inline uint16_t GetMinimumServiceRateInKbps() const
184  {
186  }
187 
193  inline void SetMinimumServiceRateInKbps(uint16_t minimumServiceRateKbps)
194  {
195  m_minimumServiceRateKbps = minimumServiceRateKbps;
196  }
197 
203  inline uint16_t GetMaximumBacklogInKbytes() const
204  {
206  }
207 
213  inline void SetMaximumBacklogInKbytes(uint16_t maximumBacklogInKbytes)
214  {
215  m_maximumBacklogInKbytes = maximumBacklogInKbytes;
216  }
217 };
218 
225 {
226  // grant access for SatLowerLayerServiceConf to access private members
228 
229  public:
231 
236 
237  private:
250 
256  inline uint8_t GetMaximumUniquePayloadPerBlock() const
257  {
259  }
260 
266  inline void SetMaximumUniquePayloadPerBlock(uint8_t maxUniquePayloadPerBlock)
267  {
268  m_maxUniquePayloadPerBlock = maxUniquePayloadPerBlock;
269  }
270 
276  inline uint8_t GetMaximumConsecutiveBlockAccessed() const
277  {
279  }
280 
286  inline void SetMaximumConsecutiveBlockAccessed(uint8_t maxConsecutiveBlockAccessed)
287  {
288  m_maxConsecutiveBlockAccessed = maxConsecutiveBlockAccessed;
289  }
290 
296  inline uint8_t GetMinimumIdleBlock() const
297  {
298  return m_minimumIdleBlock;
299  }
300 
306  inline void SetMinimumIdleBlock(uint8_t minimumIdleBlock)
307  {
308  m_minimumIdleBlock = minimumIdleBlock;
309  }
310 
316  inline uint16_t GetBackOffTimeInMilliSeconds() const
317  {
319  }
320 
326  inline void SetBackOffTimeInMilliSeconds(uint16_t backOffTimeInMilliSeconds)
327  {
328  m_backOffTimeInMilliSeconds = backOffTimeInMilliSeconds;
329  }
330 
336  inline uint16_t GetHighLoadBackOffTimeInMilliSeconds() const
337  {
339  }
340 
346  inline void SetHighLoadBackOffTimeInMilliSeconds(uint16_t backOffTimeInMilliSeconds)
347  {
348  m_highLoadBackOffTimeInMilliSeconds = backOffTimeInMilliSeconds;
349  }
350 
356  inline uint16_t GetBackOffProbability() const
357  {
358  return m_backOffProbability;
359  }
360 
366  inline void SetBackOffProbability(uint16_t backOffProbability)
367  {
368  m_backOffProbability = backOffProbability;
369  }
370 
376  inline uint16_t GetHighLoadBackOffProbability() const
377  {
379  }
380 
386  inline void SetHighLoadBackOffProbability(uint16_t highLoadBackOffProbability)
387  {
388  m_highLoadBackOffProbability = highLoadBackOffProbability;
389  }
390 
396  inline uint8_t GetNumberOfInstances() const
397  {
398  return m_numberOfInstances;
399  }
400 
406  inline void SetNumberOfInstances(uint8_t numberOfInstances)
407  {
408  m_numberOfInstances = numberOfInstances;
409  }
410 
417  {
419  }
420 
427  double averageNormalizedOfferedLoadThreshold)
428  {
429  m_averageNormalizedOfferedLoadThreshold = averageNormalizedOfferedLoadThreshold;
430  }
431 
437  inline bool GetIsSlottedAlohaAllowed() const
438  {
440  }
441 
447  inline void SetIsSlottedAlohaAllowed(bool isSlottedAlohaAllowed)
448  {
449  m_isSlottedAlohaAllowed = isSlottedAlohaAllowed;
450  }
451 
457  inline bool GetIsCrdsaAllowed() const
458  {
459  return m_isCrdsaAllowed;
460  }
461 
467  inline void SetIsCrdsaAllowed(bool isCrdsaAllowed)
468  {
469  m_isCrdsaAllowed = isCrdsaAllowed;
470  }
471 
477  inline bool GetIsEssaAllowed() const
478  {
479  return m_isEssaAllowed;
480  }
481 
487  inline void SetIsEssaAllowed(bool isEssaAllowed)
488  {
489  m_isEssaAllowed = isEssaAllowed;
490  }
491 };
492 
501 class SatLowerLayerServiceConf : public Object
502 {
503  public:
504  static const uint8_t m_minDaServiceEntries = 2;
505  static const uint8_t m_minRaServiceEntries = 1;
506 
507  static const uint8_t m_maxDaServiceEntries = 4;
508  static const uint8_t m_maxRaServiceEntries = 3;
509 
514 
519 
523  static TypeId GetTypeId(void);
524 
529  virtual TypeId GetInstanceTypeId(void) const;
530 
536  inline uint8_t GetRaServiceCount() const
537  {
538  return m_raServiceEntryCount;
539  }
540 
546  inline uint8_t GetDaServiceCount() const
547  {
548  return m_daServiceEntryCount;
549  }
550 
557  {
559  }
560 
567  {
569  }
570 
577  {
579  }
580 
586  inline uint8_t GetRaDefaultService() const
587  {
589  }
590 
597  bool GetDaConstantAssignmentProvided(uint8_t index) const;
598 
605  bool GetDaRbdcAllowed(uint8_t index) const;
606 
613  bool GetDaVolumeAllowed(uint8_t index) const;
614 
621  uint16_t GetDaConstantServiceRateInKbps(uint8_t index) const;
622 
629  Ptr<RandomVariableStream> GetDaConstantServiceRateStream(uint8_t index) const;
630 
637  uint16_t GetDaMaximumServiceRateInKbps(uint8_t index) const;
638 
645  uint16_t GetDaMinimumServiceRateInKbps(uint8_t index) const;
646 
653  uint16_t GetDaMaximumBacklogInKbytes(uint8_t index) const;
654 
661  uint8_t GetRaMaximumUniquePayloadPerBlock(uint8_t index) const;
662 
669  uint8_t GetRaMaximumConsecutiveBlockAccessed(uint8_t index) const;
670 
677  uint8_t GetRaMinimumIdleBlock(uint8_t index) const;
678 
685  uint16_t GetRaBackOffTimeInMilliSeconds(uint8_t index) const;
686 
693  uint16_t GetRaHighLoadBackOffTimeInMilliSeconds(uint8_t index) const;
694 
701  uint16_t GetRaBackOffProbability(uint8_t index) const;
702 
709  uint16_t GetRaHighLoadBackOffProbability(uint8_t index) const;
710 
717  uint8_t GetRaNumberOfInstances(uint8_t index) const;
718 
725  double GetRaAverageNormalizedOfferedLoadThreshold(uint8_t index) const;
726 
733  bool GetRaIsSlottedAlohaAllowed(uint8_t index) const;
734 
741  bool GetRaIsCrdsaAllowed(uint8_t index) const;
742 
749  bool GetRaIsEssaAllowed(uint8_t index) const;
750 
751  private:
760 
766  template <class T>
767  static std::string GetNumberAsString(T number)
768  {
769  std::stringstream ss; // create a string stream
770  ss << (double)number; // add number to the stream as double always to show number correctly
771  // in outputs
772 
773  return ss.str();
774  }
775 
782  static std::string GetIndexAsDaServiceName(uint8_t index);
783 
790  static std::string GetIndexAsRaServiceName(uint8_t index);
791 
798  void SetDaConstantAssignmentProvided(uint8_t index, bool constAssignmentProvided);
799 
806  void SetDaRbdcAllowed(uint8_t index, bool bdcAllowed);
807 
814  void SetDaVolumeAllowed(uint8_t index, bool volumeAllowed);
815 
822  void SetDaConstantServiceRateStream(uint8_t index,
823  Ptr<RandomVariableStream> constantServiceRateStream);
824 
831  void SetDaMaximumServiceRateInKbps(uint8_t index, uint16_t maximumServiceRateKbps);
832 
839  void SetDaMinimumServiceRateInKbps(uint8_t index, uint16_t minimumServiceRateKbps);
840 
847  void SetDaMaximumBacklogInKbytes(uint8_t index, uint16_t maximumBacklogInKbytes);
848 
855  void SetRaMaximumUniquePayloadPerBlock(uint8_t index, uint8_t maxUniquePayloadPerBlock);
856 
863  void SetRaMaximumConsecutiveBlockAccessed(uint8_t index, uint8_t maxConsecutiveBlockAccessed);
864 
871  void SetRaMinimumIdleBlock(uint8_t index, uint8_t minimumIdleBlock);
872 
879  void SetRaBackOffTimeInMilliSeconds(uint8_t index, uint16_t backOffTimeInMilliSeconds);
880 
887  void SetRaHighLoadBackOffTimeInMilliSeconds(uint8_t index, uint16_t backOffTimeInMilliSeconds);
888 
895  void SetRaBackOffProbability(uint8_t index, uint16_t backOffProbability);
896 
903  void SetRaHighLoadBackOffProbability(uint8_t index, uint16_t highLoadBackOffProbability);
904 
911  void SetRaNumberOfInstances(uint8_t index, uint8_t numberOfInstances);
912 
920  double averageNormalizedOfferedLoadThreshold);
921 
928  void SetRaIsSlottedAlohaAllowed(uint8_t index, bool isSlottedAlohaAllowed);
929 
936  void SetRaIsCrdsaAllowed(uint8_t index, bool isCrdsaAllowed);
937 
944  void SetRaIsEssaAllowed(uint8_t index, bool isEssaAllowed);
945 
979 #define SAT_DA_SERVICE_ATTRIBUTE_ACCESSOR_DEFINE(index) \
980  inline void SetDaServ##index##ConstantAssignmentProvided(bool value) \
981  { \
982  return SetDaConstantAssignmentProvided(index, value); \
983  } \
984  inline bool GetDaServ##index##ConstantAssignmentProvided() const \
985  { \
986  return GetDaConstantAssignmentProvided(index); \
987  } \
988  inline void SetDaServ##index##RbdcAllowed(bool value) \
989  { \
990  return SetDaRbdcAllowed(index, value); \
991  } \
992  inline bool GetDaServ##index##RbdcAllowed() const \
993  { \
994  return GetDaRbdcAllowed(index); \
995  } \
996  inline void SetDaServ##index##VolumeAllowed(bool value) \
997  { \
998  return SetDaVolumeAllowed(index, value); \
999  } \
1000  inline bool GetDaServ##index##VolumeAllowed() const \
1001  { \
1002  return GetDaVolumeAllowed(index); \
1003  } \
1004  inline void SetDaServ##index##ConstantServiceRateStream(Ptr<RandomVariableStream> value) \
1005  { \
1006  return SetDaConstantServiceRateStream(index, value); \
1007  } \
1008  inline Ptr<RandomVariableStream> GetDaServ##index##ConstantServiceRateStream() const \
1009  { \
1010  return GetDaConstantServiceRateStream(index); \
1011  } \
1012  inline void SetDaServ##index##MaximumServiceRateInKbps(uint16_t value) \
1013  { \
1014  return SetDaMaximumServiceRateInKbps(index, value); \
1015  } \
1016  inline uint16_t GetDaServ##index##MaximumServiceRateInKbps() const \
1017  { \
1018  return GetDaMaximumServiceRateInKbps(index); \
1019  } \
1020  inline void SetDaServ##index##MinimumServiceRateInKbps(uint16_t value) \
1021  { \
1022  return SetDaMinimumServiceRateInKbps(index, value); \
1023  } \
1024  inline uint16_t GetDaServ##index##MinimumServiceRateInKbps() const \
1025  { \
1026  return GetDaMinimumServiceRateInKbps(index); \
1027  } \
1028  inline void SetDaServ##index##MaximumBacklogInKbytes(uint16_t value) \
1029  { \
1030  return SetDaMaximumBacklogInKbytes(index, value); \
1031  } \
1032  inline uint8_t GetDaServ##index##MaximumBacklogInKbytes() const \
1033  { \
1034  return GetDaMaximumBacklogInKbytes(index); \
1035  }
1036 
1082 #define SAT_RA_SERVICE_ATTRIBUTE_ACCESSOR_DEFINE(index) \
1083  inline void SetRaServ##index##MaximumUniquePayloadPerBlock(uint8_t value) \
1084  { \
1085  return SetRaMaximumUniquePayloadPerBlock(index, value); \
1086  } \
1087  inline uint8_t GetRaServ##index##MaximumUniquePayloadPerBlock() const \
1088  { \
1089  return GetRaMaximumUniquePayloadPerBlock(index); \
1090  } \
1091  inline void SetRaServ##index##MaximumConsecutiveBlockAccessed(uint8_t value) \
1092  { \
1093  return SetRaMaximumConsecutiveBlockAccessed(index, value); \
1094  } \
1095  inline uint8_t GetRaServ##index##MaximumConsecutiveBlockAccessed() const \
1096  { \
1097  return GetRaMaximumConsecutiveBlockAccessed(index); \
1098  } \
1099  inline void SetRaServ##index##MinimumIdleBlock(uint8_t value) \
1100  { \
1101  return SetRaMinimumIdleBlock(index, value); \
1102  } \
1103  inline uint8_t GetRaServ##index##MinimumIdleBlock() const \
1104  { \
1105  return GetRaMinimumIdleBlock(index); \
1106  } \
1107  inline void SetRaServ##index##BackOffTimeInMilliSeconds(uint16_t value) \
1108  { \
1109  return SetRaBackOffTimeInMilliSeconds(index, value); \
1110  } \
1111  inline uint16_t GetRaServ##index##BackOffTimeInMilliSeconds() const \
1112  { \
1113  return GetRaBackOffTimeInMilliSeconds(index); \
1114  } \
1115  inline void SetRaServ##index##HighLoadBackOffTimeInMilliSeconds(uint16_t value) \
1116  { \
1117  return SetRaHighLoadBackOffTimeInMilliSeconds(index, value); \
1118  } \
1119  inline uint16_t GetRaServ##index##HighLoadBackOffTimeInMilliSeconds() const \
1120  { \
1121  return GetRaHighLoadBackOffTimeInMilliSeconds(index); \
1122  } \
1123  inline void SetRaServ##index##BackOffProbability(uint16_t value) \
1124  { \
1125  return SetRaBackOffProbability(index, value); \
1126  } \
1127  inline uint16_t GetRaServ##index##BackOffProbability() const \
1128  { \
1129  return GetRaBackOffProbability(index); \
1130  } \
1131  inline void SetRaServ##index##HighLoadBackOffProbability(uint16_t value) \
1132  { \
1133  return SetRaHighLoadBackOffProbability(index, value); \
1134  } \
1135  inline uint16_t GetRaServ##index##HighLoadBackOffProbability() const \
1136  { \
1137  return GetRaHighLoadBackOffProbability(index); \
1138  } \
1139  inline void SetRaServ##index##NumberOfInstances(uint8_t value) \
1140  { \
1141  return SetRaNumberOfInstances(index, value); \
1142  } \
1143  inline uint8_t GetRaServ##index##NumberOfInstances() const \
1144  { \
1145  return GetRaNumberOfInstances(index); \
1146  } \
1147  inline void SetRaServ##index##AverageNormalizedOfferedLoadThreshold(double value) \
1148  { \
1149  return SetRaAverageNormalizedOfferedLoadThreshold(index, value); \
1150  } \
1151  inline double GetRaServ##index##AverageNormalizedOfferedLoadThreshold() const \
1152  { \
1153  return GetRaAverageNormalizedOfferedLoadThreshold(index); \
1154  } \
1155  inline void SetRaServ##index##IsSlottedAlohaAllowed(bool value) \
1156  { \
1157  return SetRaIsSlottedAlohaAllowed(index, value); \
1158  } \
1159  inline bool GetRaServ##index##IsSlottedAlohaAllowed() const \
1160  { \
1161  return GetRaIsSlottedAlohaAllowed(index); \
1162  } \
1163  inline void SetRaServ##index##IsCrdsaAllowed(bool value) \
1164  { \
1165  return SetRaIsCrdsaAllowed(index, value); \
1166  } \
1167  inline bool GetRaServ##index##IsCrdsaAllowed() const \
1168  { \
1169  return GetRaIsCrdsaAllowed(index); \
1170  } \
1171  inline void SetRaServ##index##IsEssaAllowed(bool value) \
1172  { \
1173  return SetRaIsEssaAllowed(index, value); \
1174  } \
1175  inline bool GetRaServ##index##IsEssaAllowed() const \
1176  { \
1177  return GetRaIsEssaAllowed(index); \
1178  }
1179 
1184 
1188 };
1189 
1190 } // namespace ns3
1191 
1192 #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.