5#include "lena-lte-comparison.h"
7#include "ns3/command-line.h"
8#include "ns3/show-progress.h"
40main(
int argc,
char* argv[])
48 CommandLine cmd(__FILE__);
50 cmd.AddValue(
"scenario",
"The urban scenario string (UMa,UMi,RMa)", params.scenario);
51 cmd.AddValue(
"numRings",
"The number of rings around the central site", params.numOuterRings);
52 cmd.AddValue(
"ueNumPergNb",
53 "The number of UE per cell or gNB in multiple-ue topology",
55 cmd.AddValue(
"siteFile",
56 "Path to file of tower coordinates (instead of hexagonal grid)",
57 params.baseStationFile);
58 cmd.AddValue(
"useSiteFile",
59 "If true, it will be used site file, otherwise it will be used "
60 "numRings parameter to create scenario.",
62 cmd.AddValue(
"appGenerationTime",
63 "Duration applications will generate traffic.",
64 params.appGenerationTime);
65 cmd.AddValue(
"numerologyBwp",
"The numerology to be used (NR only)", params.numerologyBwp);
66 cmd.AddValue(
"pattern",
"The TDD pattern to use", params.pattern);
67 cmd.AddValue(
"direction",
"The flow direction (DL or UL)", params.direction);
68 cmd.AddValue(
"simulator",
69 "The cellular network simulator to use: LENA or 5GLENA",
71 cmd.AddValue(
"technology",
72 "The radio access network technology (LTE or NR)",
74 cmd.AddValue(
"operationMode",
75 "The network operation mode can be TDD or FDD",
76 params.operationMode);
77 cmd.AddValue(
"simTag",
78 "tag to be appended to output filenames to distinguish simulation campaigns",
80 cmd.AddValue(
"outputDir",
"directory where to store simulation results", params.outputDir);
81 cmd.AddValue(
"errorModelType",
82 "Error model type: ns3::NrEesmCcT1, ns3::NrEesmCcT2, ns3::NrEesmIrT1, "
83 "ns3::NrEesmIrT2, ns3::NrLteMiErrorModel",
85 cmd.AddValue(
"calibration",
86 "disable a bunch of things to make LENA and NR_LTE comparable",
88 cmd.AddValue(
"trafficScenario",
89 "0: saturation (80 Mbps/20 MHz), 1: latency (1 pkt of 12 bytes), 2: low-load (1 "
90 "Mbps), 3: medium-load (20Mbps)",
91 params.trafficScenario);
92 cmd.AddValue(
"scheduler",
"PF: Proportional Fair, RR: Round-Robin", params.scheduler);
93 cmd.AddValue(
"bandwidth",
94 "BW in MHz for each BWP (integer value): valid values are 20, 10, 5",
96 cmd.AddValue(
"freqScenario",
97 "0: NON_OVERLAPPING (each sector in different freq), 1: OVERLAPPING (same freq "
100 cmd.AddValue(
"downtiltAngle",
101 "Base station antenna downtilt angle (deg)",
102 params.downtiltAngle);
103 cmd.AddValue(
"enableUlPc",
"Whether to enable or disable UL power control", params.enableUlPc);
104 cmd.AddValue(
"powerAllocation",
105 "Power allocation can be a)UniformPowerAllocBw or b)UniformPowerAllocUsed.",
106 params.powerAllocation);
107 cmd.AddValue(
"xMin",
"The min x coordinate of the rem map", params.xMinRem);
108 cmd.AddValue(
"xMax",
"The max x coordinate of the rem map", params.xMaxRem);
109 cmd.AddValue(
"xRes",
"The resolution on the x axis of the rem map", params.xResRem);
110 cmd.AddValue(
"yMin",
"The min y coordinate of the rem map", params.yMinRem);
111 cmd.AddValue(
"yMax",
"The max y coordinate of the rem map", params.yMaxRem);
112 cmd.AddValue(
"yRes",
"The resolution on the y axis of the rem map", params.yResRem);
113 cmd.AddValue(
"z",
"The z coordinate of the rem map", params.zRem);
114 cmd.AddValue(
"dlRem",
"Generates DL REM without executing simulation", params.dlRem);
115 cmd.AddValue(
"ulRem",
"Generates UL REM without executing simulation", params.ulRem);
116 cmd.AddValue(
"remSector",
"For which sector to generate the rem", params.remSector);
117 cmd.AddValue(
"progressInterval",
"Progress reporting interval", params.progressInterval);
120 cmd.Parse(argc, argv);
125 ShowProgress spinner(params.progressInterval);
127 LenaLteComparison(params);