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  simulationHelper->LoadScenario("geo-33E");
137 
138  // Creating the reference system.
139  Config::SetDefault("ns3::SatHelper::ScenarioCreationTraceEnabled", BooleanValue(true));
140  Ptr<SatHelper> helper = simulationHelper->CreateSatScenario(satScenario);
141 
142  // get users
143  // NodeContainer utUsers = Singleton<SatTopology>::Get()->GetUtUserNodes();
144  NodeContainer gwUsers = Singleton<SatTopology>::Get()->GetGwUserNodes();
145 
146  // uint16_t port = 9;
147  // const std::string protocol = "ns3::UdpSocketFactory";
148 
149  // setup CBR traffic
150  Config::SetDefault("ns3::CbrApplication::Interval", StringValue(interval));
151  Config::SetDefault("ns3::CbrApplication::PacketSize", UintegerValue(packetSize));
152 
153  for (uint32_t i = 0; i < gwUsers.GetN(); i++)
154  {
155  simulationHelper->GetTrafficHelper()->AddCbrTraffic(
158  Time(interval),
159  packetSize,
160  Singleton<SatTopology>::Get()->GetGwUserNode(i),
161  Singleton<SatTopology>::Get()->GetUtUserNodes(),
162  Seconds(0.1),
163  Seconds(duration),
164  Seconds(0.001));
165 
166  simulationHelper->GetTrafficHelper()->AddCbrTraffic(
169  Time(interval),
170  packetSize,
171  Singleton<SatTopology>::Get()->GetGwUserNode(i),
172  Singleton<SatTopology>::Get()->GetUtUserNodes(),
173  Seconds(0.1),
174  Seconds(duration),
175  Seconds(0.001));
176  }
177 
178  simulationHelper->EnableProgressLogs();
179 
180  /*for (NodeContainer::Iterator itGw = gwUsers.Begin ();
181  itGw != gwUsers.End (); ++itGw)
182  {
183  const InetSocketAddress gwAddr
184  = InetSocketAddress (helper->GetUserAddress (*itGw), port);
185 
186  for (NodeContainer::Iterator itUt = utUsers.Begin ();
187  itUt != utUsers.End (); ++itUt)
188  {
189  const InetSocketAddress utAddr
190  = InetSocketAddress (helper->GetUserAddress (*itUt), port);
191 
192  // forward link
193  Ptr<CbrApplication> fwdApp = CreateObject<CbrApplication> ();
194  fwdApp->SetAttribute ("Protocol", StringValue (protocol));
195  fwdApp->SetAttribute ("Remote", AddressValue (utAddr));
196  fwdApp->SetAttribute ("Interval", StringValue (interval));
197  fwdApp->SetAttribute ("PacketSize", UintegerValue (packetSize));
198  (*itGw)->AddApplication (fwdApp);
199 
200  // return link
201  Ptr<CbrApplication> rtnApp = CreateObject<CbrApplication> ();
202  rtnApp->SetAttribute ("Protocol", StringValue (protocol));
203  rtnApp->SetAttribute ("Remote", AddressValue (gwAddr));
204  rtnApp->SetAttribute ("Interval", StringValue (interval));
205  rtnApp->SetAttribute ("PacketSize", UintegerValue (packetSize));
206  (*itUt)->AddApplication (rtnApp);
207  }
208  }
209 
210  // setup packet sinks at all users
211  NodeContainer allUsers (gwUsers, utUsers);
212  for (NodeContainer::Iterator it = allUsers.Begin ();
213  it != allUsers.End (); ++it)
214  {
215  const InetSocketAddress addr = InetSocketAddress (helper->GetUserAddress (*it),
216  port);
217  Ptr<PacketSink> ps = CreateObject<PacketSink> ();
218  ps->SetAttribute ("Protocol", StringValue (protocol));
219  ps->SetAttribute ("Local", AddressValue (addr));
220  (*it)->AddApplication (ps);
221  }*/
222 
223  Ptr<SatStatsHelperContainer> s = simulationHelper->GetStatisticsContainer();
224 
225  /*
226  * The following is the statements for enabling *all* the satellite
227  * statistics.
228  */
229  // CALL_SAT_STATS_DISTRIBUTION_SET (FwdAppDelay)
230  // CALL_SAT_STATS_DISTRIBUTION_ELEMENT (PerUtUserFwdAppDelay)
231  // CALL_SAT_STATS_AVERAGED_DISTRIBUTION_SET (FwdAppDelay)
232  // s->AddAverageUtUserFwdAppDelay (SatStatsHelper::OUTPUT_HISTOGRAM_FILE);
233  // s->AddAverageUtUserFwdAppDelay (SatStatsHelper::OUTPUT_PDF_FILE);
234  // s->AddAverageUtUserFwdAppDelay (SatStatsHelper::OUTPUT_CDF_FILE);
235  // s->AddAverageUtUserFwdAppDelay (SatStatsHelper::OUTPUT_HISTOGRAM_PLOT);
236  // s->AddAverageUtUserFwdAppDelay (SatStatsHelper::OUTPUT_PDF_PLOT);
237  // s->AddAverageUtUserFwdAppDelay (SatStatsHelper::OUTPUT_CDF_PLOT);
238  // CALL_SAT_STATS_DISTRIBUTION_SET (FwdDevDelay)
239  // CALL_SAT_STATS_AVERAGED_DISTRIBUTION_SET (FwdDevDelay)
240  // CALL_SAT_STATS_DISTRIBUTION_SET (FwdMacDelay)
241  // CALL_SAT_STATS_AVERAGED_DISTRIBUTION_SET (FwdMacDelay)
242  // CALL_SAT_STATS_DISTRIBUTION_SET (FwdPhyDelay)
243  // CALL_SAT_STATS_AVERAGED_DISTRIBUTION_SET (FwdPhyDelay)
244  // CALL_SAT_STATS_DISTRIBUTION_SET (FwdQueueBytes)
245  // CALL_SAT_STATS_DISTRIBUTION_SET (FwdQueuePackets)
246  // CALL_SAT_STATS_BASIC_SET (FwdSignallingLoad)
247  // CALL_SAT_STATS_DISTRIBUTION_SET (FwdCompositeSinr)
248  // CALL_SAT_STATS_BASIC_SET (FwdAppThroughput)
249  // CALL_SAT_STATS_BASIC_ELEMENT (PerUtUserFwdAppThroughput)
250  // CALL_SAT_STATS_AVERAGED_DISTRIBUTION_SET (FwdAppThroughput)
251  // s->AddAverageUtUserFwdAppThroughput (SatStatsHelper::OUTPUT_HISTOGRAM_FILE);
252  // s->AddAverageUtUserFwdAppThroughput (SatStatsHelper::OUTPUT_PDF_FILE);
253  // s->AddAverageUtUserFwdAppThroughput (SatStatsHelper::OUTPUT_CDF_FILE);
254  // s->AddAverageUtUserFwdAppThroughput (SatStatsHelper::OUTPUT_HISTOGRAM_PLOT);
255  // s->AddAverageUtUserFwdAppThroughput (SatStatsHelper::OUTPUT_PDF_PLOT);
256  // s->AddAverageUtUserFwdAppThroughput (SatStatsHelper::OUTPUT_CDF_PLOT);
257  // CALL_SAT_STATS_BASIC_SET (FwdUserDevThroughput)
258  // CALL_SAT_STATS_AVERAGED_DISTRIBUTION_SET (FwdUserDevThroughput)
259  // CALL_SAT_STATS_BASIC_SET (FwdUserMacThroughput)
260  // CALL_SAT_STATS_AVERAGED_DISTRIBUTION_SET (FwdUserMacThroughput)
261  // CALL_SAT_STATS_BASIC_SET (FwdPhyThroughput)
262  // CALL_SAT_STATS_AVERAGED_DISTRIBUTION_SET (FwdPhyThroughput)
263  // CALL_SAT_STATS_DISTRIBUTION_SET (RtnAppDelay)
264  // CALL_SAT_STATS_DISTRIBUTION_ELEMENT (PerUtUserRtnAppDelay)
265  // CALL_SAT_STATS_AVERAGED_DISTRIBUTION_SET (RtnAppDelay)
266  // s->AddAverageUtUserRtnAppDelay (SatStatsHelper::OUTPUT_HISTOGRAM_FILE);
267  // s->AddAverageUtUserRtnAppDelay (SatStatsHelper::OUTPUT_PDF_FILE);
268  // s->AddAverageUtUserRtnAppDelay (SatStatsHelper::OUTPUT_CDF_FILE);
269  // s->AddAverageUtUserRtnAppDelay (SatStatsHelper::OUTPUT_HISTOGRAM_PLOT);
270  // s->AddAverageUtUserRtnAppDelay (SatStatsHelper::OUTPUT_PDF_PLOT);
271  // s->AddAverageUtUserRtnAppDelay (SatStatsHelper::OUTPUT_CDF_PLOT);
272  // CALL_SAT_STATS_DISTRIBUTION_SET (RtnDevDelay)
273  // CALL_SAT_STATS_AVERAGED_DISTRIBUTION_SET (RtnDevDelay)
274  // CALL_SAT_STATS_DISTRIBUTION_SET (RtnMacDelay)
275  // CALL_SAT_STATS_AVERAGED_DISTRIBUTION_SET (RtnMacDelay)
276  // CALL_SAT_STATS_DISTRIBUTION_SET (RtnPhyDelay)
277  // CALL_SAT_STATS_AVERAGED_DISTRIBUTION_SET (RtnPhyDelay)
278  // CALL_SAT_STATS_DISTRIBUTION_SET (RtnQueueBytes)
279  // CALL_SAT_STATS_DISTRIBUTION_SET (RtnQueuePackets)
280  // CALL_SAT_STATS_BASIC_SET (RtnSignallingLoad)
281  // CALL_SAT_STATS_DISTRIBUTION_SET (RtnCompositeSinr)
282  // CALL_SAT_STATS_BASIC_SET (RtnAppThroughput)
283  // CALL_SAT_STATS_BASIC_ELEMENT (PerUtUserRtnAppThroughput)
284  // CALL_SAT_STATS_AVERAGED_DISTRIBUTION_SET (RtnAppThroughput)
285  // s->AddAverageUtUserRtnAppThroughput (SatStatsHelper::OUTPUT_HISTOGRAM_FILE);
286  // s->AddAverageUtUserRtnAppThroughput (SatStatsHelper::OUTPUT_PDF_FILE);
287  // s->AddAverageUtUserRtnAppThroughput (SatStatsHelper::OUTPUT_CDF_FILE);
288  // s->AddAverageUtUserRtnAppThroughput (SatStatsHelper::OUTPUT_HISTOGRAM_PLOT);
289  // s->AddAverageUtUserRtnAppThroughput (SatStatsHelper::OUTPUT_PDF_PLOT);
290  // s->AddAverageUtUserRtnAppThroughput (SatStatsHelper::OUTPUT_CDF_PLOT);
291  // CALL_SAT_STATS_BASIC_SET (RtnFeederDevThroughput)
292  // CALL_SAT_STATS_AVERAGED_DISTRIBUTION_SET (RtnFeederDevThroughput)
293  // CALL_SAT_STATS_BASIC_SET (RtnFeederMacThroughput)
294  // CALL_SAT_STATS_AVERAGED_DISTRIBUTION_SET (RtnFeederMacThroughput)
295  // CALL_SAT_STATS_BASIC_SET (RtnPhyThroughput)
296  // CALL_SAT_STATS_AVERAGED_DISTRIBUTION_SET (RtnPhyThroughput)
297  // CALL_SAT_STATS_BASIC_SET (FwdDaPacketError)
298  // CALL_SAT_STATS_BASIC_SET (RtnDaPacketError)
299  // CALL_SAT_STATS_BASIC_SET (SlottedAlohaPacketError)
300  // CALL_SAT_STATS_BASIC_SET (SlottedAlohaPacketCollision)
301  // CALL_SAT_STATS_BASIC_SET (CrdsaPacketError)
302  // CALL_SAT_STATS_BASIC_SET (CrdsaPacketCollision)
303  // s->AddPerUtCapacityRequest (SatStatsHelper::OUTPUT_SCATTER_FILE);
304  // s->AddPerBeamCapacityRequest (SatStatsHelper::OUTPUT_SCATTER_FILE);
305  // s->AddPerGwCapacityRequest (SatStatsHelper::OUTPUT_SCATTER_FILE);
306  // s->AddGlobalCapacityRequest (SatStatsHelper::OUTPUT_SCATTER_FILE);
307  // CALL_SAT_STATS_DISTRIBUTION_SET (ResourcesGranted)
308  // s->AddPerBeamBackloggedRequest (SatStatsHelper::OUTPUT_SCATTER_FILE);
309  // s->AddPerGwBackloggedRequest (SatStatsHelper::OUTPUT_SCATTER_FILE);
310  // s->AddGlobalBackloggedRequest (SatStatsHelper::OUTPUT_SCATTER_FILE);
311  // s->AddPerBeamFrameSymbolLoad (SatStatsHelper::OUTPUT_SCALAR_FILE);
312  // s->AddPerGwFrameSymbolLoad (SatStatsHelper::OUTPUT_SCALAR_FILE);
313  // s->AddGlobalFrameSymbolLoad (SatStatsHelper::OUTPUT_SCALAR_FILE);
314  // s->AddPerBeamFrameUserLoad (SatStatsHelper::OUTPUT_SCALAR_FILE);
315  // s->AddPerGwFrameUserLoad (SatStatsHelper::OUTPUT_SCALAR_FILE);
316  // s->AddGlobalFrameUserLoad (SatStatsHelper::OUTPUT_SCALAR_FILE);
317  // s->AddPerBeamWaveformUsage (SatStatsHelper::OUTPUT_SCALAR_FILE);
318  // s->AddPerGwWaveformUsage (SatStatsHelper::OUTPUT_SCALAR_FILE);
319  // s->AddGlobalWaveformUsage (SatStatsHelper::OUTPUT_SCALAR_FILE);
320  // CALL_SAT_STATS_DISTRIBUTION_ELEMENT (GlobalFwdFeederLinkSinr);
321  // CALL_SAT_STATS_DISTRIBUTION_ELEMENT (GlobalFwdUserLinkSinr);
322  // CALL_SAT_STATS_DISTRIBUTION_ELEMENT (GlobalRtnFeederLinkSinr);
323  // CALL_SAT_STATS_DISTRIBUTION_ELEMENT (GlobalRtnUserLinkSinr);
324  // CALL_SAT_STATS_DISTRIBUTION_ELEMENT (GlobalFwdFeederLinkRxPower);
325  // CALL_SAT_STATS_DISTRIBUTION_ELEMENT (GlobalFwdUserLinkRxPower);
326  // CALL_SAT_STATS_DISTRIBUTION_ELEMENT (GlobalRtnFeederLinkRxPower);
327  // CALL_SAT_STATS_DISTRIBUTION_ELEMENT (GlobalRtnUserLinkRxPower);
328 
329  /*
330  * The following is the statements for enabling some satellite statistics
331  * for testing purpose.
332  */
333  s->AddPerUtUserFwdAppDelay(SatStatsHelper::OUTPUT_SCALAR_FILE);
334  s->AddPerUtRtnAppDelay(SatStatsHelper::OUTPUT_HISTOGRAM_PLOT);
335  s->AddPerBeamFwdDevDelay(SatStatsHelper::OUTPUT_PDF_PLOT);
336  s->AddPerGwRtnDevDelay(SatStatsHelper::OUTPUT_CDF_PLOT);
337  s->AddGlobalFwdMacDelay(SatStatsHelper::OUTPUT_SCATTER_PLOT);
338  s->AddPerUtRtnMacDelay(SatStatsHelper::OUTPUT_HISTOGRAM_FILE);
339  s->AddPerBeamFwdPhyDelay(SatStatsHelper::OUTPUT_PDF_FILE);
340  s->AddPerGwRtnPhyDelay(SatStatsHelper::OUTPUT_CDF_FILE);
341 
342  s->AddGlobalFwdAppThroughput(SatStatsHelper::OUTPUT_SCATTER_FILE);
343  s->AddPerUtUserRtnAppThroughput(SatStatsHelper::OUTPUT_SCALAR_FILE);
344  s->AddAverageUtFwdUserDevThroughput(SatStatsHelper::OUTPUT_HISTOGRAM_PLOT);
345  s->AddAverageBeamRtnFeederDevThroughput(SatStatsHelper::OUTPUT_PDF_PLOT);
346  s->AddPerGwFwdUserMacThroughput(SatStatsHelper::OUTPUT_SCATTER_PLOT);
347  s->AddGlobalRtnFeederMacThroughput(SatStatsHelper::OUTPUT_SCATTER_FILE);
348  s->AddPerUtFwdUserPhyThroughput(SatStatsHelper::OUTPUT_SCALAR_FILE);
349  s->AddAverageBeamRtnFeederPhyThroughput(SatStatsHelper::OUTPUT_CDF_PLOT);
350 
351  s->AddPerGwFwdQueueBytes(SatStatsHelper::OUTPUT_HISTOGRAM_FILE);
352  s->AddGlobalRtnQueuePackets(SatStatsHelper::OUTPUT_PDF_FILE);
353  s->AddPerUtFwdCompositeSinr(SatStatsHelper::OUTPUT_CDF_FILE);
354  s->AddPerBeamRtnCompositeSinr(SatStatsHelper::OUTPUT_SCATTER_FILE);
355  s->AddGlobalFwdFeederLinkSinr(SatStatsHelper::OUTPUT_SCALAR_FILE);
356  s->AddGlobalFwdUserLinkSinr(SatStatsHelper::OUTPUT_HISTOGRAM_PLOT);
357  s->AddGlobalRtnFeederLinkSinr(SatStatsHelper::OUTPUT_PDF_PLOT);
358  s->AddGlobalRtnUserLinkSinr(SatStatsHelper::OUTPUT_CDF_PLOT);
359  s->AddGlobalFwdFeederLinkRxPower(SatStatsHelper::OUTPUT_SCATTER_PLOT);
360  s->AddGlobalFwdUserLinkRxPower(SatStatsHelper::OUTPUT_HISTOGRAM_FILE);
361  s->AddGlobalRtnFeederLinkRxPower(SatStatsHelper::OUTPUT_PDF_FILE);
362  s->AddGlobalRtnUserLinkRxPower(SatStatsHelper::OUTPUT_CDF_FILE);
363 
364  s->AddPerGwFwdSignallingLoad(SatStatsHelper::OUTPUT_SCALAR_FILE);
365  s->AddGlobalRtnSignallingLoad(SatStatsHelper::OUTPUT_SCATTER_PLOT);
366  s->AddPerUtCapacityRequest(SatStatsHelper::OUTPUT_SCATTER_FILE);
367  s->AddPerBeamResourcesGranted(SatStatsHelper::OUTPUT_HISTOGRAM_PLOT);
368  s->AddPerGwBackloggedRequest(SatStatsHelper::OUTPUT_SCATTER_FILE);
369  s->AddGlobalFrameSymbolLoad(SatStatsHelper::OUTPUT_SCALAR_FILE);
370  s->AddPerBeamFrameUserLoad(SatStatsHelper::OUTPUT_SCALAR_FILE);
371  s->AddPerGwWaveformUsage(SatStatsHelper::OUTPUT_SCALAR_FILE);
372 
373  s->AddGlobalFwdAppJitter(SatStatsHelper::OUTPUT_SCALAR_FILE);
374  s->AddGlobalFwdAppJitter(SatStatsHelper::OUTPUT_SCATTER_FILE);
375  s->AddPerUtFwdAppJitter(SatStatsHelper::OUTPUT_SCALAR_FILE);
376  s->AddPerUtFwdAppJitter(SatStatsHelper::OUTPUT_SCATTER_FILE);
377 
378  s->AddGlobalRtnAppJitter(SatStatsHelper::OUTPUT_SCALAR_FILE);
379  s->AddGlobalRtnAppJitter(SatStatsHelper::OUTPUT_SCATTER_FILE);
380  s->AddPerUtRtnAppJitter(SatStatsHelper::OUTPUT_SCALAR_FILE);
381  s->AddPerUtRtnAppJitter(SatStatsHelper::OUTPUT_SCATTER_FILE);
382 
383  NS_LOG_INFO("--- Cbr-stats-example ---");
384  NS_LOG_INFO(" Scenario used: " << scenario);
385  NS_LOG_INFO(" PacketSize: " << packetSize);
386  NS_LOG_INFO(" Interval: " << interval);
387  NS_LOG_INFO(" ");
388 
389  simulationHelper->RunSimulation();
390 
391  return 0;
392 }
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.