Loading...
Searching...
No Matches
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
36namespace 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
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
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
337 {
339 }
340
346 inline void SetHighLoadBackOffTimeInMilliSeconds(uint16_t backOffTimeInMilliSeconds)
347 {
348 m_highLoadBackOffTimeInMilliSeconds = backOffTimeInMilliSeconds;
349 }
350
356 inline uint16_t GetBackOffProbability() const
357 {
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
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
501class 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
530 inline uint8_t GetRaServiceCount() const
531 {
533 }
534
540 inline uint8_t GetDaServiceCount() const
541 {
543 }
544
551 {
553 }
554
561 {
563 }
564
574
580 inline uint8_t GetRaDefaultService() const
581 {
583 }
584
591 bool GetDaConstantAssignmentProvided(uint8_t index) const;
592
599 bool GetDaRbdcAllowed(uint8_t index) const;
600
607 bool GetDaVolumeAllowed(uint8_t index) const;
608
615 uint16_t GetDaConstantServiceRateInKbps(uint8_t index) const;
616
623 Ptr<RandomVariableStream> GetDaConstantServiceRateStream(uint8_t index) const;
624
631 uint16_t GetDaMaximumServiceRateInKbps(uint8_t index) const;
632
639 uint16_t GetDaMinimumServiceRateInKbps(uint8_t index) const;
640
647 uint16_t GetDaMaximumBacklogInKbytes(uint8_t index) const;
648
655 uint8_t GetRaMaximumUniquePayloadPerBlock(uint8_t index) const;
656
663 uint8_t GetRaMaximumConsecutiveBlockAccessed(uint8_t index) const;
664
671 uint8_t GetRaMinimumIdleBlock(uint8_t index) const;
672
679 uint16_t GetRaBackOffTimeInMilliSeconds(uint8_t index) const;
680
687 uint16_t GetRaHighLoadBackOffTimeInMilliSeconds(uint8_t index) const;
688
695 uint16_t GetRaBackOffProbability(uint8_t index) const;
696
703 uint16_t GetRaHighLoadBackOffProbability(uint8_t index) const;
704
711 uint8_t GetRaNumberOfInstances(uint8_t index) const;
712
719 double GetRaAverageNormalizedOfferedLoadThreshold(uint8_t index) const;
720
727 bool GetRaIsSlottedAlohaAllowed(uint8_t index) const;
728
735 bool GetRaIsCrdsaAllowed(uint8_t index) const;
736
743 bool GetRaIsEssaAllowed(uint8_t index) const;
744
745 private:
754
760 template <class T>
761 static std::string GetNumberAsString(T number)
762 {
763 std::stringstream ss; // create a string stream
764 ss << (double)number; // add number to the stream as double always to show number correctly
765 // in outputs
766
767 return ss.str();
768 }
769
776 static std::string GetIndexAsDaServiceName(uint8_t index);
777
784 static std::string GetIndexAsRaServiceName(uint8_t index);
785
792 void SetDaConstantAssignmentProvided(uint8_t index, bool constAssignmentProvided);
793
800 void SetDaRbdcAllowed(uint8_t index, bool bdcAllowed);
801
808 void SetDaVolumeAllowed(uint8_t index, bool volumeAllowed);
809
816 void SetDaConstantServiceRateStream(uint8_t index,
817 Ptr<RandomVariableStream> constantServiceRateStream);
818
825 void SetDaMaximumServiceRateInKbps(uint8_t index, uint16_t maximumServiceRateKbps);
826
833 void SetDaMinimumServiceRateInKbps(uint8_t index, uint16_t minimumServiceRateKbps);
834
841 void SetDaMaximumBacklogInKbytes(uint8_t index, uint16_t maximumBacklogInKbytes);
842
849 void SetRaMaximumUniquePayloadPerBlock(uint8_t index, uint8_t maxUniquePayloadPerBlock);
850
857 void SetRaMaximumConsecutiveBlockAccessed(uint8_t index, uint8_t maxConsecutiveBlockAccessed);
858
865 void SetRaMinimumIdleBlock(uint8_t index, uint8_t minimumIdleBlock);
866
873 void SetRaBackOffTimeInMilliSeconds(uint8_t index, uint16_t backOffTimeInMilliSeconds);
874
881 void SetRaHighLoadBackOffTimeInMilliSeconds(uint8_t index, uint16_t backOffTimeInMilliSeconds);
882
889 void SetRaBackOffProbability(uint8_t index, uint16_t backOffProbability);
890
897 void SetRaHighLoadBackOffProbability(uint8_t index, uint16_t highLoadBackOffProbability);
898
905 void SetRaNumberOfInstances(uint8_t index, uint8_t numberOfInstances);
906
914 double averageNormalizedOfferedLoadThreshold);
915
922 void SetRaIsSlottedAlohaAllowed(uint8_t index, bool isSlottedAlohaAllowed);
923
930 void SetRaIsCrdsaAllowed(uint8_t index, bool isCrdsaAllowed);
931
938 void SetRaIsEssaAllowed(uint8_t index, bool isEssaAllowed);
939
973#define SAT_DA_SERVICE_ATTRIBUTE_ACCESSOR_DEFINE(index) \
974 inline void SetDaServ##index##ConstantAssignmentProvided(bool value) \
975 { \
976 return SetDaConstantAssignmentProvided(index, value); \
977 } \
978 inline bool GetDaServ##index##ConstantAssignmentProvided() const \
979 { \
980 return GetDaConstantAssignmentProvided(index); \
981 } \
982 inline void SetDaServ##index##RbdcAllowed(bool value) \
983 { \
984 return SetDaRbdcAllowed(index, value); \
985 } \
986 inline bool GetDaServ##index##RbdcAllowed() const \
987 { \
988 return GetDaRbdcAllowed(index); \
989 } \
990 inline void SetDaServ##index##VolumeAllowed(bool value) \
991 { \
992 return SetDaVolumeAllowed(index, value); \
993 } \
994 inline bool GetDaServ##index##VolumeAllowed() const \
995 { \
996 return GetDaVolumeAllowed(index); \
997 } \
998 inline void SetDaServ##index##ConstantServiceRateStream(Ptr<RandomVariableStream> value) \
999 { \
1000 return SetDaConstantServiceRateStream(index, value); \
1001 } \
1002 inline Ptr<RandomVariableStream> GetDaServ##index##ConstantServiceRateStream() const \
1003 { \
1004 return GetDaConstantServiceRateStream(index); \
1005 } \
1006 inline void SetDaServ##index##MaximumServiceRateInKbps(uint16_t value) \
1007 { \
1008 return SetDaMaximumServiceRateInKbps(index, value); \
1009 } \
1010 inline uint16_t GetDaServ##index##MaximumServiceRateInKbps() const \
1011 { \
1012 return GetDaMaximumServiceRateInKbps(index); \
1013 } \
1014 inline void SetDaServ##index##MinimumServiceRateInKbps(uint16_t value) \
1015 { \
1016 return SetDaMinimumServiceRateInKbps(index, value); \
1017 } \
1018 inline uint16_t GetDaServ##index##MinimumServiceRateInKbps() const \
1019 { \
1020 return GetDaMinimumServiceRateInKbps(index); \
1021 } \
1022 inline void SetDaServ##index##MaximumBacklogInKbytes(uint16_t value) \
1023 { \
1024 return SetDaMaximumBacklogInKbytes(index, value); \
1025 } \
1026 inline uint8_t GetDaServ##index##MaximumBacklogInKbytes() const \
1027 { \
1028 return GetDaMaximumBacklogInKbytes(index); \
1029 }
1030
1076#define SAT_RA_SERVICE_ATTRIBUTE_ACCESSOR_DEFINE(index) \
1077 inline void SetRaServ##index##MaximumUniquePayloadPerBlock(uint8_t value) \
1078 { \
1079 return SetRaMaximumUniquePayloadPerBlock(index, value); \
1080 } \
1081 inline uint8_t GetRaServ##index##MaximumUniquePayloadPerBlock() const \
1082 { \
1083 return GetRaMaximumUniquePayloadPerBlock(index); \
1084 } \
1085 inline void SetRaServ##index##MaximumConsecutiveBlockAccessed(uint8_t value) \
1086 { \
1087 return SetRaMaximumConsecutiveBlockAccessed(index, value); \
1088 } \
1089 inline uint8_t GetRaServ##index##MaximumConsecutiveBlockAccessed() const \
1090 { \
1091 return GetRaMaximumConsecutiveBlockAccessed(index); \
1092 } \
1093 inline void SetRaServ##index##MinimumIdleBlock(uint8_t value) \
1094 { \
1095 return SetRaMinimumIdleBlock(index, value); \
1096 } \
1097 inline uint8_t GetRaServ##index##MinimumIdleBlock() const \
1098 { \
1099 return GetRaMinimumIdleBlock(index); \
1100 } \
1101 inline void SetRaServ##index##BackOffTimeInMilliSeconds(uint16_t value) \
1102 { \
1103 return SetRaBackOffTimeInMilliSeconds(index, value); \
1104 } \
1105 inline uint16_t GetRaServ##index##BackOffTimeInMilliSeconds() const \
1106 { \
1107 return GetRaBackOffTimeInMilliSeconds(index); \
1108 } \
1109 inline void SetRaServ##index##HighLoadBackOffTimeInMilliSeconds(uint16_t value) \
1110 { \
1111 return SetRaHighLoadBackOffTimeInMilliSeconds(index, value); \
1112 } \
1113 inline uint16_t GetRaServ##index##HighLoadBackOffTimeInMilliSeconds() const \
1114 { \
1115 return GetRaHighLoadBackOffTimeInMilliSeconds(index); \
1116 } \
1117 inline void SetRaServ##index##BackOffProbability(uint16_t value) \
1118 { \
1119 return SetRaBackOffProbability(index, value); \
1120 } \
1121 inline uint16_t GetRaServ##index##BackOffProbability() const \
1122 { \
1123 return GetRaBackOffProbability(index); \
1124 } \
1125 inline void SetRaServ##index##HighLoadBackOffProbability(uint16_t value) \
1126 { \
1127 return SetRaHighLoadBackOffProbability(index, value); \
1128 } \
1129 inline uint16_t GetRaServ##index##HighLoadBackOffProbability() const \
1130 { \
1131 return GetRaHighLoadBackOffProbability(index); \
1132 } \
1133 inline void SetRaServ##index##NumberOfInstances(uint8_t value) \
1134 { \
1135 return SetRaNumberOfInstances(index, value); \
1136 } \
1137 inline uint8_t GetRaServ##index##NumberOfInstances() const \
1138 { \
1139 return GetRaNumberOfInstances(index); \
1140 } \
1141 inline void SetRaServ##index##AverageNormalizedOfferedLoadThreshold(double value) \
1142 { \
1143 return SetRaAverageNormalizedOfferedLoadThreshold(index, value); \
1144 } \
1145 inline double GetRaServ##index##AverageNormalizedOfferedLoadThreshold() const \
1146 { \
1147 return GetRaAverageNormalizedOfferedLoadThreshold(index); \
1148 } \
1149 inline void SetRaServ##index##IsSlottedAlohaAllowed(bool value) \
1150 { \
1151 return SetRaIsSlottedAlohaAllowed(index, value); \
1152 } \
1153 inline bool GetRaServ##index##IsSlottedAlohaAllowed() const \
1154 { \
1155 return GetRaIsSlottedAlohaAllowed(index); \
1156 } \
1157 inline void SetRaServ##index##IsCrdsaAllowed(bool value) \
1158 { \
1159 return SetRaIsCrdsaAllowed(index, value); \
1160 } \
1161 inline bool GetRaServ##index##IsCrdsaAllowed() const \
1162 { \
1163 return GetRaIsCrdsaAllowed(index); \
1164 } \
1165 inline void SetRaServ##index##IsEssaAllowed(bool value) \
1166 { \
1167 return SetRaIsEssaAllowed(index, value); \
1168 } \
1169 inline bool GetRaServ##index##IsEssaAllowed() const \
1170 { \
1171 return GetRaIsEssaAllowed(index); \
1172 }
1173
1178
1182};
1183
1184} // namespace ns3
1185
1186#endif /* SATELLITE_LOWER_LAYER_SERIVICE_H */
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.
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.
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.
Ptr< RandomVariableStream > GetConstantServiceRateStream() const
Get constant service rate stream.
bool m_rbdcAllowed
uint16_t GetConstantServiceRateInKbps() const
Get constant service rate.
bool m_constantAssignmentProvided
void SetVolumeAllowed(bool volumeAllowed)
Set state, if volume is allowed.
friend class SatLowerLayerServiceConf
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.
friend class SatLowerLayerServiceConf
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.