22 #ifndef __SATELLITE_TRAFFIC_HELPER_H__
23 #define __SATELLITE_TRAFFIC_HELPER_H__
27 #include <ns3/application-container.h>
28 #include <ns3/cbr-application.h>
29 #include <ns3/config.h>
30 #include <ns3/object.h>
31 #include <ns3/satellite-stats-helper-container.h>
32 #include <ns3/string.h>
38 #define STRINGIFY(x) #x
39 #define TOSTRING(x) STRINGIFY(x)
107 Ptr<SatStatsHelperContainer> satStatsHelperContainer);
162 NodeContainer gwUsers,
163 NodeContainer utUsers,
181 NodeContainer gwUsers,
182 NodeContainer utUsers,
204 NodeContainer gwUsers,
205 NodeContainer utUsers,
227 NodeContainer gwUsers,
228 NodeContainer utUsers,
252 NodeContainer gwUsers,
253 NodeContainer utUsers,
254 std::string onTimePattern,
255 std::string offTimePattern,
279 NodeContainer gwUsers,
280 NodeContainer utUsers,
281 std::string onTimePattern,
282 std::string offTimePattern,
298 NodeContainer gwUsers,
299 NodeContainer utUsers,
315 NodeContainer gwUsers,
316 NodeContainer utUsers,
332 NodeContainer gwUsers,
333 NodeContainer utUsers,
349 NodeContainer gwUsers,
350 NodeContainer utUsers,
373 NodeContainer gwUsers,
374 NodeContainer utUsers,
397 NodeContainer gwUsers,
398 NodeContainer utUsers,
416 NodeContainer gwUsers,
417 NodeContainer utUsers,
435 NodeContainer gwUsers,
436 NodeContainer utUsers,
454 std::string interval,
456 NodeContainer gwUsers,
457 NodeContainer utUsers,
483 Ptr<SatStatsHelperContainer>
497 std::string interval,
498 uint32_t packetSize);
576 m_interval(Seconds(1.0)),
577 m_dataRate(DataRate(
"500kb/s")),
579 m_onTimePattern(
"ns3::ConstantRandomVariable[Constant=1000]"),
580 m_offTimePattern(
"ns3::ConstantRandomVariable[Constant=0]"),
581 m_onTime(Seconds(1)),
582 m_offTime(MilliSeconds(100)),
583 m_codec(SatTrafficHelper::VoipCodec_t::G_711_1),
598 std::map<std::string, TrafficConfiguration_t>::iterator it =
608 it->second.m_protocol = protocol;
614 std::map<std::string, TrafficConfiguration_t>::const_iterator it =
618 NS_FATAL_ERROR(
"Traffic model " << trafficModel <<
" has not been configured");
621 return it->second.m_protocol;
626 std::map<std::string, TrafficConfiguration_t>::iterator it =
636 it->second.m_direction = direction;
642 std::map<std::string, TrafficConfiguration_t>::const_iterator it =
646 NS_FATAL_ERROR(
"Traffic model " << trafficModel <<
" has not been configured");
649 return it->second.m_direction;
654 std::map<std::string, TrafficConfiguration_t>::iterator it =
664 it->second.m_interval = interval;
670 std::map<std::string, TrafficConfiguration_t>::const_iterator it =
674 NS_FATAL_ERROR(
"Traffic model " << trafficModel <<
" has not been configured");
677 return it->second.m_interval;
682 std::map<std::string, TrafficConfiguration_t>::iterator it =
692 it->second.m_dataRate = dataRate;
698 std::map<std::string, TrafficConfiguration_t>::const_iterator it =
702 NS_FATAL_ERROR(
"Traffic model " << trafficModel <<
" has not been configured");
705 return it->second.m_dataRate;
710 std::map<std::string, TrafficConfiguration_t>::iterator it =
720 it->second.m_packetSize = packetSize;
726 std::map<std::string, TrafficConfiguration_t>::const_iterator it =
730 NS_FATAL_ERROR(
"Traffic model " << trafficModel <<
" has not been configured");
733 return it->second.m_packetSize;
738 std::map<std::string, TrafficConfiguration_t>::iterator it =
748 it->second.m_onTimePattern = onTimePattern;
754 std::map<std::string, TrafficConfiguration_t>::const_iterator it =
758 NS_FATAL_ERROR(
"Traffic model " << trafficModel <<
" has not been configured");
761 return it->second.m_onTimePattern;
766 std::map<std::string, TrafficConfiguration_t>::iterator it =
776 it->second.m_offTimePattern = offTimePattern;
782 std::map<std::string, TrafficConfiguration_t>::const_iterator it =
786 NS_FATAL_ERROR(
"Traffic model " << trafficModel <<
" has not been configured");
789 return it->second.m_offTimePattern;
794 std::map<std::string, TrafficConfiguration_t>::iterator it =
804 it->second.m_onTime = onTime;
810 std::map<std::string, TrafficConfiguration_t>::const_iterator it =
814 NS_FATAL_ERROR(
"Traffic model " << trafficModel <<
" has not been configured");
817 return it->second.m_onTime;
822 std::map<std::string, TrafficConfiguration_t>::iterator it =
832 it->second.m_offTime = offTime;
838 std::map<std::string, TrafficConfiguration_t>::const_iterator it =
842 NS_FATAL_ERROR(
"Traffic model " << trafficModel <<
" has not been configured");
845 return it->second.m_offTime;
850 std::map<std::string, TrafficConfiguration_t>::iterator it =
860 it->second.m_codec = codec;
866 std::map<std::string, TrafficConfiguration_t>::const_iterator it =
870 NS_FATAL_ERROR(
"Traffic model " << trafficModel <<
" has not been configured");
873 return it->second.m_codec;
878 std::map<std::string, TrafficConfiguration_t>::iterator it =
888 it->second.m_startTime = startTime;
894 std::map<std::string, TrafficConfiguration_t>::const_iterator it =
898 NS_FATAL_ERROR(
"Traffic model " << trafficModel <<
" has not been configured");
901 return it->second.m_startTime;
906 std::map<std::string, TrafficConfiguration_t>::iterator it =
916 it->second.m_stopTime = stopTime;
922 std::map<std::string, TrafficConfiguration_t>::const_iterator it =
926 NS_FATAL_ERROR(
"Traffic model " << trafficModel <<
" has not been configured");
929 return it->second.m_stopTime;
934 std::map<std::string, TrafficConfiguration_t>::iterator it =
944 it->second.m_startDelay = startDelay;
950 std::map<std::string, TrafficConfiguration_t>::const_iterator it =
954 NS_FATAL_ERROR(
"Traffic model " << trafficModel <<
" has not been configured");
957 return it->second.m_startDelay;
962 std::map<std::string, TrafficConfiguration_t>::iterator it =
972 it->second.m_percentage = percentage;
978 std::map<std::string, TrafficConfiguration_t>::const_iterator it =
982 NS_FATAL_ERROR(
"Traffic model " << trafficModel <<
" has not been configured");
985 return it->second.m_percentage;
988 #define TRAFFIC_MODEL_PROTOCOL_ATTRIBUTE_ACCESSOR_DEFINE(index) \
989 inline void SetTraffic##index##Protocol(TransportLayerProtocol_t value) \
991 return SetTrafficProtocol(TOSTRING(index), value); \
993 inline TransportLayerProtocol_t GetTraffic##index##Protocol() const \
995 return GetTrafficProtocol(TOSTRING(index)); \
998 #define TRAFFIC_MODEL_DIRECTION_ATTRIBUTE_ACCESSOR_DEFINE(index) \
999 inline void SetTraffic##index##Direction(TrafficDirection_t value) \
1001 return SetTrafficDirection(TOSTRING(index), value); \
1003 inline TrafficDirection_t GetTraffic##index##Direction() const \
1005 return GetTrafficDirection(TOSTRING(index)); \
1008 #define TRAFFIC_MODEL_INTERVAL_ATTRIBUTE_ACCESSOR_DEFINE(index) \
1009 inline void SetTraffic##index##Interval(Time value) \
1011 return SetTrafficInterval(TOSTRING(index), value); \
1013 inline Time GetTraffic##index##Interval() const \
1015 return GetTrafficInterval(TOSTRING(index)); \
1018 #define TRAFFIC_MODEL_DATA_RATE_ATTRIBUTE_ACCESSOR_DEFINE(index) \
1019 inline void SetTraffic##index##DataRate(DataRate value) \
1021 return SetTrafficDataRate(TOSTRING(index), value); \
1023 inline DataRate GetTraffic##index##DataRate() const \
1025 return GetTrafficDataRate(TOSTRING(index)); \
1028 #define TRAFFIC_MODEL_PACKET_SIZE_ATTRIBUTE_ACCESSOR_DEFINE(index) \
1029 inline void SetTraffic##index##PacketSize(uint32_t value) \
1031 return SetTrafficPacketSize(TOSTRING(index), value); \
1033 inline uint32_t GetTraffic##index##PacketSize() const \
1035 return GetTrafficPacketSize(TOSTRING(index)); \
1038 #define TRAFFIC_MODEL_ON_TIME_PATTERN_ATTRIBUTE_ACCESSOR_DEFINE(index) \
1039 inline void SetTraffic##index##OnTimePattern(std::string value) \
1041 return SetTrafficOnTimePattern(TOSTRING(index), value); \
1043 inline std::string GetTraffic##index##OnTimePattern() const \
1045 return GetTrafficOnTimePattern(TOSTRING(index)); \
1048 #define TRAFFIC_MODEL_OFF_TIME_PATTERN_ATTRIBUTE_ACCESSOR_DEFINE(index) \
1049 inline void SetTraffic##index##OffTimePattern(std::string value) \
1051 return SetTrafficOffTimePattern(TOSTRING(index), value); \
1053 inline std::string GetTraffic##index##OffTimePattern() const \
1055 return GetTrafficOffTimePattern(TOSTRING(index)); \
1058 #define TRAFFIC_MODEL_ON_TIME_ATTRIBUTE_ACCESSOR_DEFINE(index) \
1059 inline void SetTraffic##index##OnTime(Time value) \
1061 return SetTrafficOnTime(TOSTRING(index), value); \
1063 inline Time GetTraffic##index##OnTime() const \
1065 return GetTrafficOnTime(TOSTRING(index)); \
1068 #define TRAFFIC_MODEL_OFF_TIME_ATTRIBUTE_ACCESSOR_DEFINE(index) \
1069 inline void SetTraffic##index##OffTime(Time value) \
1071 return SetTrafficOffTime(TOSTRING(index), value); \
1073 inline Time GetTraffic##index##OffTime() const \
1075 return GetTrafficOffTime(TOSTRING(index)); \
1078 #define TRAFFIC_MODEL_CODEC_ATTRIBUTE_ACCESSOR_DEFINE(index) \
1079 inline void SetTraffic##index##Codec(SatTrafficHelper::VoipCodec_t value) \
1081 return SetTrafficCodec(TOSTRING(index), value); \
1083 inline SatTrafficHelper::VoipCodec_t GetTraffic##index##Codec() const \
1085 return GetTrafficCodec(TOSTRING(index)); \
1088 #define TRAFFIC_MODEL_START_TIME_ATTRIBUTE_ACCESSOR_DEFINE(index) \
1089 inline void SetTraffic##index##StartTime(Time value) \
1091 return SetTrafficStartTime(TOSTRING(index), value); \
1093 inline Time GetTraffic##index##StartTime() const \
1095 return GetTrafficStartTime(TOSTRING(index)); \
1098 #define TRAFFIC_MODEL_STOP_TIME_ATTRIBUTE_ACCESSOR_DEFINE(index) \
1099 inline void SetTraffic##index##StopTime(Time value) \
1101 return SetTrafficStopTime(TOSTRING(index), value); \
1103 inline Time GetTraffic##index##StopTime() const \
1105 return GetTrafficStopTime(TOSTRING(index)); \
1108 #define TRAFFIC_MODEL_START_DELAY_ATTRIBUTE_ACCESSOR_DEFINE(index) \
1109 inline void SetTraffic##index##StartDelay(Time value) \
1111 return SetTrafficStartDelay(TOSTRING(index), value); \
1113 inline Time GetTraffic##index##StartDelay() const \
1115 return GetTrafficStartDelay(TOSTRING(index)); \
1118 #define TRAFFIC_MODEL_PERCENTAGE_ATTRIBUTE_ACCESSOR_DEFINE(index) \
1119 inline void SetTraffic##index##Percentage(double value) \
1121 return SetTrafficPercentage(TOSTRING(index), value); \
1123 inline double GetTraffic##index##Percentage() const \
1125 return GetTrafficPercentage(TOSTRING(index)); \
Time GetTrafficStartDelay(std::string trafficModel) const
void SetTrafficProtocol(std::string trafficModel, TransportLayerProtocol_t protocol)
TRAFFIC_MODEL_STOP_TIME_ATTRIBUTE_ACCESSOR_DEFINE(Poisson)
TRAFFIC_MODEL_PACKET_SIZE_ATTRIBUTE_ACCESSOR_DEFINE(OnOff)
void SetTrafficStartDelay(std::string trafficModel, Time startDelay)
Time GetTrafficOffTime(std::string trafficModel) const
void SetTrafficDataRate(std::string trafficModel, DataRate dataRate)
TrafficDirection_t GetTrafficDirection(std::string trafficModel) const
TRAFFIC_MODEL_STOP_TIME_ATTRIBUTE_ACCESSOR_DEFINE(Cbr)
TRAFFIC_MODEL_STOP_TIME_ATTRIBUTE_ACCESSOR_DEFINE(LoraPeriodic)
TRAFFIC_MODEL_PERCENTAGE_ATTRIBUTE_ACCESSOR_DEFINE(Http)
TRAFFIC_MODEL_PACKET_SIZE_ATTRIBUTE_ACCESSOR_DEFINE(LoraPeriodic)
TRAFFIC_MODEL_PROTOCOL_ATTRIBUTE_ACCESSOR_DEFINE(OnOff)
TRAFFIC_MODEL_START_TIME_ATTRIBUTE_ACCESSOR_DEFINE(LoraPeriodic)
TRAFFIC_MODEL_START_DELAY_ATTRIBUTE_ACCESSOR_DEFINE(LoraCbr)
TRAFFIC_MODEL_START_DELAY_ATTRIBUTE_ACCESSOR_DEFINE(Nrtv)
Time GetTrafficStopTime(std::string trafficModel) const
TRAFFIC_MODEL_START_DELAY_ATTRIBUTE_ACCESSOR_DEFINE(Voip)
TRAFFIC_MODEL_DIRECTION_ATTRIBUTE_ACCESSOR_DEFINE(Http)
TRAFFIC_MODEL_PACKET_SIZE_ATTRIBUTE_ACCESSOR_DEFINE(Poisson)
TRAFFIC_MODEL_START_DELAY_ATTRIBUTE_ACCESSOR_DEFINE(OnOff)
void SetTrafficOffTimePattern(std::string trafficModel, std::string offTimePattern)
TRAFFIC_MODEL_START_TIME_ATTRIBUTE_ACCESSOR_DEFINE(Http)
Time GetTrafficInterval(std::string trafficModel) const
TRAFFIC_MODEL_DATA_RATE_ATTRIBUTE_ACCESSOR_DEFINE(OnOff)
uint32_t GetTrafficPacketSize(std::string trafficModel) const
TRAFFIC_MODEL_DIRECTION_ATTRIBUTE_ACCESSOR_DEFINE(OnOff)
void SetTrafficInterval(std::string trafficModel, Time interval)
TRAFFIC_MODEL_PERCENTAGE_ATTRIBUTE_ACCESSOR_DEFINE(Cbr)
TRAFFIC_MODEL_START_TIME_ATTRIBUTE_ACCESSOR_DEFINE(Nrtv)
TRAFFIC_MODEL_OFF_TIME_ATTRIBUTE_ACCESSOR_DEFINE(Poisson)
TRAFFIC_MODEL_START_TIME_ATTRIBUTE_ACCESSOR_DEFINE(Voip)
TRAFFIC_MODEL_INTERVAL_ATTRIBUTE_ACCESSOR_DEFINE(LoraPeriodic)
TRAFFIC_MODEL_DIRECTION_ATTRIBUTE_ACCESSOR_DEFINE(Voip)
TRAFFIC_MODEL_START_TIME_ATTRIBUTE_ACCESSOR_DEFINE(OnOff)
TRAFFIC_MODEL_ON_TIME_PATTERN_ATTRIBUTE_ACCESSOR_DEFINE(OnOff)
TRAFFIC_MODEL_INTERVAL_ATTRIBUTE_ACCESSOR_DEFINE(LoraCbr)
std::string GetTrafficOffTimePattern(std::string trafficModel) const
TRAFFIC_MODEL_STOP_TIME_ATTRIBUTE_ACCESSOR_DEFINE(Http)
TRAFFIC_MODEL_PACKET_SIZE_ATTRIBUTE_ACCESSOR_DEFINE(LoraCbr)
TRAFFIC_MODEL_PERCENTAGE_ATTRIBUTE_ACCESSOR_DEFINE(Voip)
TRAFFIC_MODEL_START_DELAY_ATTRIBUTE_ACCESSOR_DEFINE(Poisson)
TRAFFIC_MODEL_START_TIME_ATTRIBUTE_ACCESSOR_DEFINE(Cbr)
TRAFFIC_MODEL_START_DELAY_ATTRIBUTE_ACCESSOR_DEFINE(Cbr)
TRAFFIC_MODEL_STOP_TIME_ATTRIBUTE_ACCESSOR_DEFINE(Voip)
void SetTrafficDirection(std::string trafficModel, TrafficDirection_t direction)
TRAFFIC_MODEL_PERCENTAGE_ATTRIBUTE_ACCESSOR_DEFINE(LoraCbr)
TRAFFIC_MODEL_STOP_TIME_ATTRIBUTE_ACCESSOR_DEFINE(OnOff)
TRAFFIC_MODEL_START_TIME_ATTRIBUTE_ACCESSOR_DEFINE(LoraCbr)
TRAFFIC_MODEL_PERCENTAGE_ATTRIBUTE_ACCESSOR_DEFINE(OnOff)
void SetTrafficCodec(std::string trafficModel, SatTrafficHelper::VoipCodec_t codec)
Time GetTrafficStartTime(std::string trafficModel) const
TRAFFIC_MODEL_ON_TIME_ATTRIBUTE_ACCESSOR_DEFINE(Poisson)
TRAFFIC_MODEL_CODEC_ATTRIBUTE_ACCESSOR_DEFINE(Voip)
virtual ~SatTrafficHelperConf()
Destructor.
void SetTrafficOnTimePattern(std::string trafficModel, std::string onTimePattern)
SatTrafficHelperConf()
Default constructor.
TRAFFIC_MODEL_PERCENTAGE_ATTRIBUTE_ACCESSOR_DEFINE(LoraPeriodic)
TRAFFIC_MODEL_DIRECTION_ATTRIBUTE_ACCESSOR_DEFINE(Cbr)
TypeId GetInstanceTypeId(void) const
Derived from Object.
TRAFFIC_MODEL_STOP_TIME_ATTRIBUTE_ACCESSOR_DEFINE(LoraCbr)
SatTrafficHelper::VoipCodec_t GetTrafficCodec(std::string trafficModel) const
TRAFFIC_MODEL_START_DELAY_ATTRIBUTE_ACCESSOR_DEFINE(LoraPeriodic)
TRAFFIC_MODEL_DIRECTION_ATTRIBUTE_ACCESSOR_DEFINE(Nrtv)
void InstallTrafficModels()
Install traffic models from configuration files.
TRAFFIC_MODEL_START_TIME_ATTRIBUTE_ACCESSOR_DEFINE(Poisson)
static TypeId GetTypeId(void)
Derived from Object.
void SetTrafficStartTime(std::string trafficModel, Time startTime)
Ptr< SatTrafficHelper > m_trafficHelper
DataRate GetTrafficDataRate(std::string trafficModel) const
void SetTrafficStopTime(std::string trafficModel, Time stopTime)
TRAFFIC_MODEL_DIRECTION_ATTRIBUTE_ACCESSOR_DEFINE(Poisson)
TRAFFIC_MODEL_STOP_TIME_ATTRIBUTE_ACCESSOR_DEFINE(Nrtv)
TRAFFIC_MODEL_DATA_RATE_ATTRIBUTE_ACCESSOR_DEFINE(Poisson)
TRAFFIC_MODEL_PERCENTAGE_ATTRIBUTE_ACCESSOR_DEFINE(Nrtv)
TRAFFIC_MODEL_PROTOCOL_ATTRIBUTE_ACCESSOR_DEFINE(Cbr)
void SetTrafficOffTime(std::string trafficModel, Time offTime)
TransportLayerProtocol_t GetTrafficProtocol(std::string trafficModel) const
void SetTrafficPercentage(std::string trafficModel, double percentage)
TRAFFIC_MODEL_PERCENTAGE_ATTRIBUTE_ACCESSOR_DEFINE(Poisson)
std::string GetTrafficOnTimePattern(std::string trafficModel) const
TRAFFIC_MODEL_START_DELAY_ATTRIBUTE_ACCESSOR_DEFINE(Http)
void SetTrafficOnTime(std::string trafficModel, Time onTime)
TRAFFIC_MODEL_OFF_TIME_PATTERN_ATTRIBUTE_ACCESSOR_DEFINE(OnOff)
TRAFFIC_MODEL_INTERVAL_ATTRIBUTE_ACCESSOR_DEFINE(Cbr)
Time GetTrafficOnTime(std::string trafficModel) const
void SetTrafficPacketSize(std::string trafficModel, uint32_t packetSize)
std::map< std::string, TrafficConfiguration_t > m_trafficModel
double GetTrafficPercentage(std::string trafficModel) const
TRAFFIC_MODEL_PACKET_SIZE_ATTRIBUTE_ACCESSOR_DEFINE(Cbr)
Creates pre-defined trafics.
void AddNrtvTraffic(TrafficDirection_t direction, NodeContainer gwUsers, NodeContainer utUsers, Time startTime, Time stopTime, Time startDelay)
Add a new TCP/NRTV traffic between chosen GWs and UTs.
void AddCustomTraffic(TrafficDirection_t direction, std::string interval, uint32_t packetSize, NodeContainer gwUsers, NodeContainer utUsers, Time startTime, Time stopTime, Time startDelay)
Add a new CBR traffic between chosen GWs and UTs that can be customized.
SatTrafficHelper()
Default constructor.
void ChangeCustomTraffic(Time delay, std::string interval, uint32_t packetSize)
Change the parameters of the last custom traffic created.
CustomTrafficInfo_s m_last_custom_application
void AddCbrTraffic(TrafficDirection_t direction, TransportLayerProtocol_t protocol, Time interval, uint32_t packetSize, NodeContainer gwUsers, NodeContainer utUsers, Time startTime, Time stopTime, Time startDelay)
Add a new CBR traffic between chosen GWs and UTs.
bool HasSinkInstalled(Ptr< Node > node, uint16_t port)
Check if node has a PacketSink installed at certain port.
void AddOnOffTraffic(TrafficDirection_t direction, TransportLayerProtocol_t protocol, DataRate dataRate, uint32_t packetSize, NodeContainer gwUsers, NodeContainer utUsers, std::string onTimePattern, std::string offTimePattern, Time startTime, Time stopTime, Time startDelay)
Add a new ONOFF traffic between chosen GWs and UTs.
Ptr< SatHelper > m_satHelper
bool m_enableDefaultStatistics
virtual ~SatTrafficHelper()
Destructor for SatTrafficHelper.
static TypeId GetTypeId(void)
Get the type ID.
void AddPoissonTraffic(TrafficDirection_t direction, Time onTime, Time offTimeExpMean, DataRate rate, uint32_t packetSize, NodeContainer gwUsers, NodeContainer utUsers, Time startTime, Time stopTime, Time startDelay)
Add a new Poisson traffic between chosen GWs and UTs.
void AddVoipTraffic(TrafficDirection_t direction, VoipCodec_t codec, NodeContainer gwUsers, NodeContainer utUsers, Time startTime, Time stopTime, Time startDelay)
Add a new Poisson traffic between chosen GWs and UTs.
TypeId GetInstanceTypeId(void) const
Get the type ID of object instance.
TrafficType_t
List of available traffics.
Ptr< SatStatsHelperContainer > m_satStatsHelperContainer
void AddHttpTraffic(TrafficDirection_t direction, NodeContainer gwUsers, NodeContainer utUsers, Time startTime, Time stopTime, Time startDelay)
Add a new TCP/HTTP traffic between chosen GWs and UTs.
void AddLoraPeriodicTraffic(Time interval, uint32_t packetSize, NodeContainer uts, Time startTime, Time stopTime, Time startDelay)
Add Lora periodic traffic between chosen GWs and UTs.
void UpdateAttribute(Ptr< CbrApplication > application, std::string interval, uint32_t packetSize)
Update the chosen attribute of a custom traffic.
void AddLoraCbrTraffic(Time interval, uint32_t packetSize, NodeContainer gwUsers, NodeContainer utUsers, Time startTime, Time stopTime, Time startDelay)
Add Lora CBR traffic between chosen GWs and UTs.
SatArqSequenceNumber is handling the sequence numbers for the ARQ process.
SatTrafficHelper::VoipCodec_t m_codec
TrafficDirection_t m_direction
std::string m_onTimePattern
std::string m_offTimePattern
TransportLayerProtocol_t m_protocol
Struct for info on last custom trafic created.
ApplicationContainer application