Loading...
Searching...
No Matches
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
29using 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
86
87NS_LOG_COMPONENT_DEFINE("sat-cbr-stats-example");
88
89int
90main(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.