sat-cbr-stats-example.cc
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2014 Magister Solutions
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License version 2 as
7  * published by the Free Software Foundation;
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17  *
18  * Author: Budiarto Herman <budiarto.herman@magister.fi>
19  *
20  */
21 
22 #include "ns3/applications-module.h"
23 #include "ns3/core-module.h"
24 #include "ns3/internet-module.h"
25 #include "ns3/network-module.h"
26 #include "ns3/satellite-module.h"
27 #include "ns3/traffic-module.h"
28 
29 using namespace ns3;
30 
31 #define CALL_SAT_STATS_BASIC_ELEMENT(id) \
32  s->Add##id(SatStatsHelper::OUTPUT_SCALAR_FILE); \
33  s->Add##id(SatStatsHelper::OUTPUT_SCATTER_FILE); \
34  s->Add##id(SatStatsHelper::OUTPUT_SCATTER_PLOT);
35 
36 #define CALL_SAT_STATS_BASIC_SET(id) \
37  CALL_SAT_STATS_BASIC_ELEMENT(Global##id) \
38  CALL_SAT_STATS_BASIC_ELEMENT(PerGw##id) \
39  CALL_SAT_STATS_BASIC_ELEMENT(PerBeam##id) \
40  CALL_SAT_STATS_BASIC_ELEMENT(PerUt##id)
41 
42 #define CALL_SAT_STATS_DISTRIBUTION_ELEMENT(id) \
43  s->Add##id(SatStatsHelper::OUTPUT_SCALAR_FILE); \
44  s->Add##id(SatStatsHelper::OUTPUT_SCATTER_FILE); \
45  s->Add##id(SatStatsHelper::OUTPUT_HISTOGRAM_FILE); \
46  s->Add##id(SatStatsHelper::OUTPUT_PDF_FILE); \
47  s->Add##id(SatStatsHelper::OUTPUT_CDF_FILE); \
48  s->Add##id(SatStatsHelper::OUTPUT_SCATTER_PLOT); \
49  s->Add##id(SatStatsHelper::OUTPUT_HISTOGRAM_PLOT); \
50  s->Add##id(SatStatsHelper::OUTPUT_PDF_PLOT); \
51  s->Add##id(SatStatsHelper::OUTPUT_CDF_PLOT);
52 
53 #define CALL_SAT_STATS_DISTRIBUTION_SET(id) \
54  CALL_SAT_STATS_DISTRIBUTION_ELEMENT(Global##id) \
55  CALL_SAT_STATS_DISTRIBUTION_ELEMENT(PerGw##id) \
56  CALL_SAT_STATS_DISTRIBUTION_ELEMENT(PerBeam##id) \
57  CALL_SAT_STATS_DISTRIBUTION_ELEMENT(PerUt##id)
58 
59 #define CALL_SAT_STATS_AVERAGED_DISTRIBUTION_SET(id) \
60  s->AddAverageBeam##id(SatStatsHelper::OUTPUT_HISTOGRAM_FILE); \
61  s->AddAverageBeam##id(SatStatsHelper::OUTPUT_PDF_FILE); \
62  s->AddAverageBeam##id(SatStatsHelper::OUTPUT_CDF_FILE); \
63  s->AddAverageBeam##id(SatStatsHelper::OUTPUT_HISTOGRAM_PLOT); \
64  s->AddAverageBeam##id(SatStatsHelper::OUTPUT_PDF_PLOT); \
65  s->AddAverageBeam##id(SatStatsHelper::OUTPUT_CDF_PLOT); \
66  \
67  s->AddAverageUt##id(SatStatsHelper::OUTPUT_HISTOGRAM_FILE); \
68  s->AddAverageUt##id(SatStatsHelper::OUTPUT_PDF_FILE); \
69  s->AddAverageUt##id(SatStatsHelper::OUTPUT_CDF_FILE); \
70  s->AddAverageUt##id(SatStatsHelper::OUTPUT_HISTOGRAM_PLOT); \
71  s->AddAverageUt##id(SatStatsHelper::OUTPUT_PDF_PLOT); \
72  s->AddAverageUt##id(SatStatsHelper::OUTPUT_CDF_PLOT);
73 
87 NS_LOG_COMPONENT_DEFINE("sat-cbr-stats-example");
88 
89 int
90 main(int argc, char* argv[])
91 {
92  uint32_t packetSize = 512;
93  std::string interval = "1s";
94  std::string scenario = "larger";
96  double duration = 10;
97 
99  Config::SetDefault("ns3::SatEnvVariables::EnableSimulationOutputOverwrite", BooleanValue(true));
100 
102  Config::SetDefault("ns3::SatHelper::PacketTraceEnabled", BooleanValue(true));
103  Ptr<SimulationHelper> simulationHelper = CreateObject<SimulationHelper>("example-cbr-stats");
104 
105  // read command line parameters given by user
106  CommandLine cmd;
107  cmd.AddValue("packetSize", "Size of constant packet (bytes)", packetSize);
108  cmd.AddValue("interval", "Interval to sent packets in seconds, (e.g. (1s)", interval);
109  cmd.AddValue("duration", "Simulation duration (in seconds)", duration);
110  cmd.AddValue("scenario", "Test scenario to use. (simple, larger or full", scenario);
111  simulationHelper->AddDefaultUiArguments(cmd);
112  cmd.Parse(argc, argv);
113 
114  if (scenario == "larger")
115  {
116  satScenario = SatHelper::LARGER;
117  }
118  else if (scenario == "full")
119  {
120  satScenario = SatHelper::FULL;
121  }
122 
123  // Set tag, if output path is not explicitly defined
124  simulationHelper->SetOutputTag(scenario);
125  simulationHelper->SetSimulationTime(duration);
126 
127  // enable info logs
128  // LogComponentEnable ("CbrApplication", LOG_LEVEL_INFO);
129  // LogComponentEnable ("PacketSink", LOG_LEVEL_INFO);
130  LogComponentEnable("sat-cbr-stats-example", LOG_LEVEL_INFO);
131 
132  // remove next line from comments to run real time simulation
133  // GlobalValue::Bind ("SimulatorImplementationType", StringValue
134  // ("ns3::RealtimeSimulatorImpl"));
135 
136  // create satellite helper with given scenario default=simple
137 
138  // Creating the reference system. Note, currently the satellite module supports
139  // only one reference system, which is named as "Scenario72". The string is utilized
140  // in mapping the scenario to the needed reference system configuration files. Arbitrary
141  // scenario name results in fatal error.
142  Config::SetDefault("ns3::SatHelper::ScenarioCreationTraceEnabled", BooleanValue(true));
143  Ptr<SatHelper> helper = simulationHelper->CreateSatScenario(satScenario);
144 
145  // get users
146  // NodeContainer utUsers = helper->GetUtUsers ();
147  NodeContainer gwUsers = helper->GetGwUsers();
148 
149  // uint16_t port = 9;
150  // const std::string protocol = "ns3::UdpSocketFactory";
151 
152  // setup CBR traffic
153  Config::SetDefault("ns3::CbrApplication::Interval", StringValue(interval));
154  Config::SetDefault("ns3::CbrApplication::PacketSize", UintegerValue(packetSize));
155 
156  for (uint32_t i = 0; i < gwUsers.GetN(); i++)
157  {
158  simulationHelper->SetGwUserId(i);
159  simulationHelper->InstallTrafficModel(SimulationHelper::CBR,
162  Seconds(0.1),
163  Seconds(duration),
164  Seconds(0.001));
165  simulationHelper->InstallTrafficModel(SimulationHelper::CBR,
168  Seconds(0.1),
169  Seconds(duration),
170  Seconds(0.001));
171  }
172 
173  simulationHelper->EnableProgressLogs();
174 
175  /*for (NodeContainer::Iterator itGw = gwUsers.Begin ();
176  itGw != gwUsers.End (); ++itGw)
177  {
178  const InetSocketAddress gwAddr
179  = InetSocketAddress (helper->GetUserAddress (*itGw), port);
180 
181  for (NodeContainer::Iterator itUt = utUsers.Begin ();
182  itUt != utUsers.End (); ++itUt)
183  {
184  const InetSocketAddress utAddr
185  = InetSocketAddress (helper->GetUserAddress (*itUt), port);
186 
187  // forward link
188  Ptr<CbrApplication> fwdApp = CreateObject<CbrApplication> ();
189  fwdApp->SetAttribute ("Protocol", StringValue (protocol));
190  fwdApp->SetAttribute ("Remote", AddressValue (utAddr));
191  fwdApp->SetAttribute ("Interval", StringValue (interval));
192  fwdApp->SetAttribute ("PacketSize", UintegerValue (packetSize));
193  (*itGw)->AddApplication (fwdApp);
194 
195  // return link
196  Ptr<CbrApplication> rtnApp = CreateObject<CbrApplication> ();
197  rtnApp->SetAttribute ("Protocol", StringValue (protocol));
198  rtnApp->SetAttribute ("Remote", AddressValue (gwAddr));
199  rtnApp->SetAttribute ("Interval", StringValue (interval));
200  rtnApp->SetAttribute ("PacketSize", UintegerValue (packetSize));
201  (*itUt)->AddApplication (rtnApp);
202  }
203  }
204 
205  // setup packet sinks at all users
206  NodeContainer allUsers (gwUsers, utUsers);
207  for (NodeContainer::Iterator it = allUsers.Begin ();
208  it != allUsers.End (); ++it)
209  {
210  const InetSocketAddress addr = InetSocketAddress (helper->GetUserAddress (*it),
211  port);
212  Ptr<PacketSink> ps = CreateObject<PacketSink> ();
213  ps->SetAttribute ("Protocol", StringValue (protocol));
214  ps->SetAttribute ("Local", AddressValue (addr));
215  (*it)->AddApplication (ps);
216  }*/
217 
218  Ptr<SatStatsHelperContainer> s = simulationHelper->GetStatisticsContainer();
219 
220  /*
221  * The following is the statements for enabling *all* the satellite
222  * statistics.
223  */
224  // CALL_SAT_STATS_DISTRIBUTION_SET (FwdAppDelay)
225  // CALL_SAT_STATS_DISTRIBUTION_ELEMENT (PerUtUserFwdAppDelay)
226  // CALL_SAT_STATS_AVERAGED_DISTRIBUTION_SET (FwdAppDelay)
227  // s->AddAverageUtUserFwdAppDelay (SatStatsHelper::OUTPUT_HISTOGRAM_FILE);
228  // s->AddAverageUtUserFwdAppDelay (SatStatsHelper::OUTPUT_PDF_FILE);
229  // s->AddAverageUtUserFwdAppDelay (SatStatsHelper::OUTPUT_CDF_FILE);
230  // s->AddAverageUtUserFwdAppDelay (SatStatsHelper::OUTPUT_HISTOGRAM_PLOT);
231  // s->AddAverageUtUserFwdAppDelay (SatStatsHelper::OUTPUT_PDF_PLOT);
232  // s->AddAverageUtUserFwdAppDelay (SatStatsHelper::OUTPUT_CDF_PLOT);
233  // CALL_SAT_STATS_DISTRIBUTION_SET (FwdDevDelay)
234  // CALL_SAT_STATS_AVERAGED_DISTRIBUTION_SET (FwdDevDelay)
235  // CALL_SAT_STATS_DISTRIBUTION_SET (FwdMacDelay)
236  // CALL_SAT_STATS_AVERAGED_DISTRIBUTION_SET (FwdMacDelay)
237  // CALL_SAT_STATS_DISTRIBUTION_SET (FwdPhyDelay)
238  // CALL_SAT_STATS_AVERAGED_DISTRIBUTION_SET (FwdPhyDelay)
239  // CALL_SAT_STATS_DISTRIBUTION_SET (FwdQueueBytes)
240  // CALL_SAT_STATS_DISTRIBUTION_SET (FwdQueuePackets)
241  // CALL_SAT_STATS_BASIC_SET (FwdSignallingLoad)
242  // CALL_SAT_STATS_DISTRIBUTION_SET (FwdCompositeSinr)
243  // CALL_SAT_STATS_BASIC_SET (FwdAppThroughput)
244  // CALL_SAT_STATS_BASIC_ELEMENT (PerUtUserFwdAppThroughput)
245  // CALL_SAT_STATS_AVERAGED_DISTRIBUTION_SET (FwdAppThroughput)
246  // s->AddAverageUtUserFwdAppThroughput (SatStatsHelper::OUTPUT_HISTOGRAM_FILE);
247  // s->AddAverageUtUserFwdAppThroughput (SatStatsHelper::OUTPUT_PDF_FILE);
248  // s->AddAverageUtUserFwdAppThroughput (SatStatsHelper::OUTPUT_CDF_FILE);
249  // s->AddAverageUtUserFwdAppThroughput (SatStatsHelper::OUTPUT_HISTOGRAM_PLOT);
250  // s->AddAverageUtUserFwdAppThroughput (SatStatsHelper::OUTPUT_PDF_PLOT);
251  // s->AddAverageUtUserFwdAppThroughput (SatStatsHelper::OUTPUT_CDF_PLOT);
252  // CALL_SAT_STATS_BASIC_SET (FwdUserDevThroughput)
253  // CALL_SAT_STATS_AVERAGED_DISTRIBUTION_SET (FwdUserDevThroughput)
254  // CALL_SAT_STATS_BASIC_SET (FwdUserMacThroughput)
255  // CALL_SAT_STATS_AVERAGED_DISTRIBUTION_SET (FwdUserMacThroughput)
256  // CALL_SAT_STATS_BASIC_SET (FwdPhyThroughput)
257  // CALL_SAT_STATS_AVERAGED_DISTRIBUTION_SET (FwdPhyThroughput)
258  // CALL_SAT_STATS_DISTRIBUTION_SET (RtnAppDelay)
259  // CALL_SAT_STATS_DISTRIBUTION_ELEMENT (PerUtUserRtnAppDelay)
260  // CALL_SAT_STATS_AVERAGED_DISTRIBUTION_SET (RtnAppDelay)
261  // s->AddAverageUtUserRtnAppDelay (SatStatsHelper::OUTPUT_HISTOGRAM_FILE);
262  // s->AddAverageUtUserRtnAppDelay (SatStatsHelper::OUTPUT_PDF_FILE);
263  // s->AddAverageUtUserRtnAppDelay (SatStatsHelper::OUTPUT_CDF_FILE);
264  // s->AddAverageUtUserRtnAppDelay (SatStatsHelper::OUTPUT_HISTOGRAM_PLOT);
265  // s->AddAverageUtUserRtnAppDelay (SatStatsHelper::OUTPUT_PDF_PLOT);
266  // s->AddAverageUtUserRtnAppDelay (SatStatsHelper::OUTPUT_CDF_PLOT);
267  // CALL_SAT_STATS_DISTRIBUTION_SET (RtnDevDelay)
268  // CALL_SAT_STATS_AVERAGED_DISTRIBUTION_SET (RtnDevDelay)
269  // CALL_SAT_STATS_DISTRIBUTION_SET (RtnMacDelay)
270  // CALL_SAT_STATS_AVERAGED_DISTRIBUTION_SET (RtnMacDelay)
271  // CALL_SAT_STATS_DISTRIBUTION_SET (RtnPhyDelay)
272  // CALL_SAT_STATS_AVERAGED_DISTRIBUTION_SET (RtnPhyDelay)
273  // CALL_SAT_STATS_DISTRIBUTION_SET (RtnQueueBytes)
274  // CALL_SAT_STATS_DISTRIBUTION_SET (RtnQueuePackets)
275  // CALL_SAT_STATS_BASIC_SET (RtnSignallingLoad)
276  // CALL_SAT_STATS_DISTRIBUTION_SET (RtnCompositeSinr)
277  // CALL_SAT_STATS_BASIC_SET (RtnAppThroughput)
278  // CALL_SAT_STATS_BASIC_ELEMENT (PerUtUserRtnAppThroughput)
279  // CALL_SAT_STATS_AVERAGED_DISTRIBUTION_SET (RtnAppThroughput)
280  // s->AddAverageUtUserRtnAppThroughput (SatStatsHelper::OUTPUT_HISTOGRAM_FILE);
281  // s->AddAverageUtUserRtnAppThroughput (SatStatsHelper::OUTPUT_PDF_FILE);
282  // s->AddAverageUtUserRtnAppThroughput (SatStatsHelper::OUTPUT_CDF_FILE);
283  // s->AddAverageUtUserRtnAppThroughput (SatStatsHelper::OUTPUT_HISTOGRAM_PLOT);
284  // s->AddAverageUtUserRtnAppThroughput (SatStatsHelper::OUTPUT_PDF_PLOT);
285  // s->AddAverageUtUserRtnAppThroughput (SatStatsHelper::OUTPUT_CDF_PLOT);
286  // CALL_SAT_STATS_BASIC_SET (RtnFeederDevThroughput)
287  // CALL_SAT_STATS_AVERAGED_DISTRIBUTION_SET (RtnFeederDevThroughput)
288  // CALL_SAT_STATS_BASIC_SET (RtnFeederMacThroughput)
289  // CALL_SAT_STATS_AVERAGED_DISTRIBUTION_SET (RtnFeederMacThroughput)
290  // CALL_SAT_STATS_BASIC_SET (RtnPhyThroughput)
291  // CALL_SAT_STATS_AVERAGED_DISTRIBUTION_SET (RtnPhyThroughput)
292  // CALL_SAT_STATS_BASIC_SET (FwdDaPacketError)
293  // CALL_SAT_STATS_BASIC_SET (RtnDaPacketError)
294  // CALL_SAT_STATS_BASIC_SET (SlottedAlohaPacketError)
295  // CALL_SAT_STATS_BASIC_SET (SlottedAlohaPacketCollision)
296  // CALL_SAT_STATS_BASIC_SET (CrdsaPacketError)
297  // CALL_SAT_STATS_BASIC_SET (CrdsaPacketCollision)
298  // s->AddPerUtCapacityRequest (SatStatsHelper::OUTPUT_SCATTER_FILE);
299  // s->AddPerBeamCapacityRequest (SatStatsHelper::OUTPUT_SCATTER_FILE);
300  // s->AddPerGwCapacityRequest (SatStatsHelper::OUTPUT_SCATTER_FILE);
301  // s->AddGlobalCapacityRequest (SatStatsHelper::OUTPUT_SCATTER_FILE);
302  // CALL_SAT_STATS_DISTRIBUTION_SET (ResourcesGranted)
303  // s->AddPerBeamBackloggedRequest (SatStatsHelper::OUTPUT_SCATTER_FILE);
304  // s->AddPerGwBackloggedRequest (SatStatsHelper::OUTPUT_SCATTER_FILE);
305  // s->AddGlobalBackloggedRequest (SatStatsHelper::OUTPUT_SCATTER_FILE);
306  // s->AddPerBeamFrameSymbolLoad (SatStatsHelper::OUTPUT_SCALAR_FILE);
307  // s->AddPerGwFrameSymbolLoad (SatStatsHelper::OUTPUT_SCALAR_FILE);
308  // s->AddGlobalFrameSymbolLoad (SatStatsHelper::OUTPUT_SCALAR_FILE);
309  // s->AddPerBeamFrameUserLoad (SatStatsHelper::OUTPUT_SCALAR_FILE);
310  // s->AddPerGwFrameUserLoad (SatStatsHelper::OUTPUT_SCALAR_FILE);
311  // s->AddGlobalFrameUserLoad (SatStatsHelper::OUTPUT_SCALAR_FILE);
312  // s->AddPerBeamWaveformUsage (SatStatsHelper::OUTPUT_SCALAR_FILE);
313  // s->AddPerGwWaveformUsage (SatStatsHelper::OUTPUT_SCALAR_FILE);
314  // s->AddGlobalWaveformUsage (SatStatsHelper::OUTPUT_SCALAR_FILE);
315  // CALL_SAT_STATS_DISTRIBUTION_ELEMENT (GlobalFwdFeederLinkSinr);
316  // CALL_SAT_STATS_DISTRIBUTION_ELEMENT (GlobalFwdUserLinkSinr);
317  // CALL_SAT_STATS_DISTRIBUTION_ELEMENT (GlobalRtnFeederLinkSinr);
318  // CALL_SAT_STATS_DISTRIBUTION_ELEMENT (GlobalRtnUserLinkSinr);
319  // CALL_SAT_STATS_DISTRIBUTION_ELEMENT (GlobalFwdFeederLinkRxPower);
320  // CALL_SAT_STATS_DISTRIBUTION_ELEMENT (GlobalFwdUserLinkRxPower);
321  // CALL_SAT_STATS_DISTRIBUTION_ELEMENT (GlobalRtnFeederLinkRxPower);
322  // CALL_SAT_STATS_DISTRIBUTION_ELEMENT (GlobalRtnUserLinkRxPower);
323 
324  /*
325  * The following is the statements for enabling some satellite statistics
326  * for testing purpose.
327  */
328  s->AddPerUtUserFwdAppDelay(SatStatsHelper::OUTPUT_SCALAR_FILE);
329  s->AddPerUtRtnAppDelay(SatStatsHelper::OUTPUT_HISTOGRAM_PLOT);
330  s->AddPerBeamFwdDevDelay(SatStatsHelper::OUTPUT_PDF_PLOT);
331  s->AddPerGwRtnDevDelay(SatStatsHelper::OUTPUT_CDF_PLOT);
332  s->AddGlobalFwdMacDelay(SatStatsHelper::OUTPUT_SCATTER_PLOT);
333  s->AddPerUtRtnMacDelay(SatStatsHelper::OUTPUT_HISTOGRAM_FILE);
334  s->AddPerBeamFwdPhyDelay(SatStatsHelper::OUTPUT_PDF_FILE);
335  s->AddPerGwRtnPhyDelay(SatStatsHelper::OUTPUT_CDF_FILE);
336 
337  s->AddGlobalFwdAppThroughput(SatStatsHelper::OUTPUT_SCATTER_FILE);
338  s->AddPerUtUserRtnAppThroughput(SatStatsHelper::OUTPUT_SCALAR_FILE);
339  s->AddAverageUtFwdUserDevThroughput(SatStatsHelper::OUTPUT_HISTOGRAM_PLOT);
340  s->AddAverageBeamRtnFeederDevThroughput(SatStatsHelper::OUTPUT_PDF_PLOT);
341  s->AddPerGwFwdUserMacThroughput(SatStatsHelper::OUTPUT_SCATTER_PLOT);
342  s->AddGlobalRtnFeederMacThroughput(SatStatsHelper::OUTPUT_SCATTER_FILE);
343  s->AddPerUtFwdUserPhyThroughput(SatStatsHelper::OUTPUT_SCALAR_FILE);
344  s->AddAverageBeamRtnFeederPhyThroughput(SatStatsHelper::OUTPUT_CDF_PLOT);
345 
346  s->AddPerGwFwdQueueBytes(SatStatsHelper::OUTPUT_HISTOGRAM_FILE);
347  s->AddGlobalRtnQueuePackets(SatStatsHelper::OUTPUT_PDF_FILE);
348  s->AddPerUtFwdCompositeSinr(SatStatsHelper::OUTPUT_CDF_FILE);
349  s->AddPerBeamRtnCompositeSinr(SatStatsHelper::OUTPUT_SCATTER_FILE);
350  s->AddGlobalFwdFeederLinkSinr(SatStatsHelper::OUTPUT_SCALAR_FILE);
351  s->AddGlobalFwdUserLinkSinr(SatStatsHelper::OUTPUT_HISTOGRAM_PLOT);
352  s->AddGlobalRtnFeederLinkSinr(SatStatsHelper::OUTPUT_PDF_PLOT);
353  s->AddGlobalRtnUserLinkSinr(SatStatsHelper::OUTPUT_CDF_PLOT);
354  s->AddGlobalFwdFeederLinkRxPower(SatStatsHelper::OUTPUT_SCATTER_PLOT);
355  s->AddGlobalFwdUserLinkRxPower(SatStatsHelper::OUTPUT_HISTOGRAM_FILE);
356  s->AddGlobalRtnFeederLinkRxPower(SatStatsHelper::OUTPUT_PDF_FILE);
357  s->AddGlobalRtnUserLinkRxPower(SatStatsHelper::OUTPUT_CDF_FILE);
358 
359  s->AddPerGwFwdSignallingLoad(SatStatsHelper::OUTPUT_SCALAR_FILE);
360  s->AddGlobalRtnSignallingLoad(SatStatsHelper::OUTPUT_SCATTER_PLOT);
361  s->AddPerUtCapacityRequest(SatStatsHelper::OUTPUT_SCATTER_FILE);
362  s->AddPerBeamResourcesGranted(SatStatsHelper::OUTPUT_HISTOGRAM_PLOT);
363  s->AddPerGwBackloggedRequest(SatStatsHelper::OUTPUT_SCATTER_FILE);
364  s->AddGlobalFrameSymbolLoad(SatStatsHelper::OUTPUT_SCALAR_FILE);
365  s->AddPerBeamFrameUserLoad(SatStatsHelper::OUTPUT_SCALAR_FILE);
366  s->AddPerGwWaveformUsage(SatStatsHelper::OUTPUT_SCALAR_FILE);
367 
368  s->AddGlobalFwdAppJitter(SatStatsHelper::OUTPUT_SCALAR_FILE);
369  s->AddGlobalFwdAppJitter(SatStatsHelper::OUTPUT_SCATTER_FILE);
370  s->AddPerUtFwdAppJitter(SatStatsHelper::OUTPUT_SCALAR_FILE);
371  s->AddPerUtFwdAppJitter(SatStatsHelper::OUTPUT_SCATTER_FILE);
372 
373  s->AddGlobalRtnAppJitter(SatStatsHelper::OUTPUT_SCALAR_FILE);
374  s->AddGlobalRtnAppJitter(SatStatsHelper::OUTPUT_SCATTER_FILE);
375  s->AddPerUtRtnAppJitter(SatStatsHelper::OUTPUT_SCALAR_FILE);
376  s->AddPerUtRtnAppJitter(SatStatsHelper::OUTPUT_SCATTER_FILE);
377 
378  NS_LOG_INFO("--- Cbr-stats-example ---");
379  NS_LOG_INFO(" Scenario used: " << scenario);
380  NS_LOG_INFO(" PacketSize: " << packetSize);
381  NS_LOG_INFO(" Interval: " << interval);
382  NS_LOG_INFO(" ");
383 
384  simulationHelper->RunSimulation();
385 
386  return 0;
387 }
PreDefinedScenario_t
Values for pre-defined scenarios to be used by helper when building satellite network topology base.
@ LARGER
LARGER Larger scenario used as base.
@ FULL
FULL Full scenario used as base.
SatArqSequenceNumber is handling the sequence numbers for the ARQ process.