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"
71 NS_LOG_COMPONENT_DEFINE(
"sat-trace-input-external-fading-example");
74 main(
int argc,
char* argv[])
76 uint32_t packetSize = 512;
77 std::string interval =
"1s";
78 std::string scenario =
"simple";
81 Config::SetDefault(
"ns3::SatHelper::ScenarioCreationTraceEnabled", BooleanValue(
true));
82 std::string simulationName =
"example-trace-input-external-fading";
83 auto simulationHelper = CreateObject<SimulationHelper>(simulationName);
87 cmd.AddValue(
"packetSize",
"Size of constant packet (bytes)", packetSize);
88 cmd.AddValue(
"interval",
"Interval to sent packets in seconds, (e.g. (1s)", interval);
89 cmd.AddValue(
"scenario",
"Test scenario to use. (simple, larger or full", scenario);
90 simulationHelper->AddDefaultUiArguments(cmd);
91 cmd.Parse(argc, argv);
94 Config::SetDefault(
"ns3::SatChannel::EnableExternalFadingInputTrace", BooleanValue(
true));
97 Config::SetDefault(
"ns3::SatChannel::RxPowerCalculationMode",
99 Config::SetDefault(
"ns3::SatChannel::EnableRxPowerOutputTrace", BooleanValue(
true));
103 Config::SetDefault(
"ns3::SatChannel::EnableFadingOutputTrace", BooleanValue(
true));
108 Config::SetDefault(
"ns3::SatChannel::EnableExternalFadingInputTrace", BooleanValue(
true));
109 Config::SetDefault(
"ns3::SatFadingExternalInputTraceContainer::UtFwdDownIndexFileName",
110 StringValue(
"BeamId-1_256_UT_fading_fwddwn_trace_index.txt"));
111 Config::SetDefault(
"ns3::SatFadingExternalInputTraceContainer::UtRtnUpIndexFileName",
112 StringValue(
"BeamId-1_256_UT_fading_rtnup_trace_index.txt"));
115 Config::SetDefault(
"ns3::SatGwHelper::DaRtnLinkInterferenceModel",
117 Config::SetDefault(
"ns3::SatOrbiterHelper::DaRtnLinkInterferenceModel",
119 Config::SetDefault(
"ns3::SatOrbiterHelper::DaFwdLinkInterferenceModel",
121 Config::SetDefault(
"ns3::SatUtHelper::DaFwdLinkInterferenceModel",
123 Config::SetDefault(
"ns3::SatPhyRxCarrierConf::EnableIntfOutputTrace", BooleanValue(
true));
126 Config::SetDefault(
"ns3::SatPhyRxCarrier::EnableCompositeSinrOutputTrace", BooleanValue(
true));
129 simulationHelper->SetOutputTag(scenario);
145 Singleton<SatIdMapper>::Get()->EnableMapPrint(
true);
147 if (scenario ==
"larger")
151 else if (scenario ==
"full")
157 LogComponentEnable(
"CbrApplication", LOG_LEVEL_INFO);
158 LogComponentEnable(
"PacketSink", LOG_LEVEL_INFO);
159 LogComponentEnable(
"sat-trace-input-external-fading-example", LOG_LEVEL_INFO);
162 simulationHelper->SetSimulationTime(Seconds(11));
168 simulationHelper->LoadScenario(
"geo-33E");
171 simulationHelper->CreateSatScenario(satScenario);
173 simulationHelper->GetTrafficHelper()->AddCbrTraffic(
178 NodeContainer(Singleton<SatTopology>::Get()->GetGwUserNode(0)),
179 Singleton<SatTopology>::Get()->GetUtUserNodes(),
184 simulationHelper->GetTrafficHelper()->AddCbrTraffic(
189 NodeContainer(Singleton<SatTopology>::Get()->GetGwUserNode(0)),
190 Singleton<SatTopology>::Get()->GetUtUserNodes(),
195 NS_LOG_INFO(
"--- input-external-fading-example ---");
196 NS_LOG_INFO(
" Scenario used: " << scenario);
197 NS_LOG_INFO(
" PacketSize: " << packetSize);
198 NS_LOG_INFO(
" Interval: " << interval);
201 simulationHelper->RunSimulation();
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.
@ SIMPLE
SIMPLE Simple scenario used as base.
SatArqSequenceNumber is handling the sequence numbers for the ARQ process.