5G-LENA nr-v3.3-120-gdac69c56
The 5G/NR module for the ns-3 simulator
Loading...
Searching...
No Matches
lena-lte-comparison-campaign.cc
1// Copyright (c) 2022 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
2//
3// SPDX-License-Identifier: GPL-2.0-only
4
5#include "lena-lte-comparison.h"
6
7#include "ns3/command-line.h"
8#include "ns3/show-progress.h"
9
10using namespace ns3;
11
12int
13main(int argc, char* argv[])
14{
15 Parameters params;
16 /*
17 * From here, we instruct the ns3::CommandLine class of all the input parameters
18 * that we may accept as input, as well as their description, and the storage
19 * variable.
20 */
21 CommandLine cmd(__FILE__);
22
23 cmd.AddValue("scenario", "The urban scenario string (UMa,UMi,RMa)", params.scenario);
24 cmd.AddValue("numRings", "The number of rings around the central site", params.numOuterRings);
25 cmd.AddValue("ueNumPergNb",
26 "The number of UE per cell or gNB in multiple-ue topology",
27 params.ueNumPergNb);
28 cmd.AddValue("siteFile",
29 "Path to file of tower coordinates (instead of hexagonal grid)",
30 params.baseStationFile);
31 cmd.AddValue("useSiteFile",
32 "If true, it will be used site file, otherwise it will be used "
33 "numRings parameter to create scenario.",
34 params.useSiteFile);
35 cmd.AddValue("appGenerationTime",
36 "Duration applications will generate traffic.",
37 params.appGenerationTime);
38 cmd.AddValue("numerologyBwp", "The numerology to be used (NR only)", params.numerologyBwp);
39 cmd.AddValue("pattern", "The TDD pattern to use", params.pattern);
40 cmd.AddValue("direction", "The flow direction (DL or UL)", params.direction);
41 cmd.AddValue("simulator",
42 "The cellular network simulator to use: LENA or 5GLENA",
43 params.simulator);
44 cmd.AddValue("technology",
45 "The radio access network technology (LTE or NR)",
46 params.radioNetwork);
47 cmd.AddValue("operationMode",
48 "The network operation mode can be TDD or FDD",
49 params.operationMode);
50 cmd.AddValue("simTag",
51 "tag to be appended to output filenames to distinguish simulation campaigns",
52 params.simTag);
53 cmd.AddValue("outputDir", "directory where to store simulation results", params.outputDir);
54 cmd.AddValue("errorModelType",
55 "Error model type: ns3::NrEesmCcT1, ns3::NrEesmCcT2, ns3::NrEesmIrT1, "
56 "ns3::NrEesmIrT2, ns3::NrLteMiErrorModel",
57 params.errorModel);
58 cmd.AddValue("calibration",
59 "disable a bunch of things to make LENA and NR_LTE comparable",
60 params.calibration);
61 cmd.AddValue("trafficScenario",
62 "0: saturation (80 Mbps/20 MHz), 1: latency (1 pkt of 12 bytes), 2: low-load (1 "
63 "Mbps), 3: medium-load (20Mbps)",
64 params.trafficScenario);
65 cmd.AddValue("scheduler", "PF: Proportional Fair, RR: Round-Robin", params.scheduler);
66 cmd.AddValue("bandwidth",
67 "BW in MHz for each BWP (integer value): valid values are 20, 10, 5",
68 params.bandwidthMHz);
69 cmd.AddValue("freqScenario",
70 "0: NON_OVERLAPPING (each sector in different freq), 1: OVERLAPPING (same freq "
71 "for all sectors)",
72 params.freqScenario);
73 cmd.AddValue("downtiltAngle",
74 "Base station antenna downtilt angle (deg)",
75 params.downtiltAngle);
76 cmd.AddValue("enableUlPc", "Whether to enable or disable UL power control", params.enableUlPc);
77 cmd.AddValue("powerAllocation",
78 "Power allocation can be a)UniformPowerAllocBw or b)UniformPowerAllocUsed.",
79 params.powerAllocation);
80
81 // Parse the command line
82 cmd.Parse(argc, argv);
83 params.Validate();
84
85 std::cout << params;
86
87 ShowProgress spinner(Seconds(100));
88
89 LenaLteComparison(params);
90
91 return 0;
92}