summaryrefslogtreecommitdiff
path: root/ns3-simulations/nix/simulator/main.cc
diff options
context:
space:
mode:
authorLoic Guegan <manzerberdes@gmx.com>2019-05-22 10:15:45 +0200
committerLoic Guegan <manzerberdes@gmx.com>2019-05-22 10:15:45 +0200
commit5a77b67d6baae0414310d29cab6f240963866062 (patch)
tree4121e3e4065872ee697fdf79033e11e9236d2cb6 /ns3-simulations/nix/simulator/main.cc
parent4045a41e029ed11dde5763455095bd33c7746a72 (diff)
Clean repo, update paper
Diffstat (limited to 'ns3-simulations/nix/simulator/main.cc')
-rw-r--r--ns3-simulations/nix/simulator/main.cc85
1 files changed, 0 insertions, 85 deletions
diff --git a/ns3-simulations/nix/simulator/main.cc b/ns3-simulations/nix/simulator/main.cc
deleted file mode 100644
index cb38ead..0000000
--- a/ns3-simulations/nix/simulator/main.cc
+++ /dev/null
@@ -1,85 +0,0 @@
-#include "modules/modules.hpp"
-#ifndef NS3_VERSION
-#define NS3_VERSION "unknown"
-#endif
-
-NS_LOG_COMPONENT_DEFINE ("WIFISensorsSimulator");
-
-
-/**
- * To get more details about functions please have a look at modules/modules.hpp
- */
-int main(int argc, char* argv[]){
-
- uint32_t sensorsFrequency=1;
- uint32_t sensorsPktSize=192; // 128 bits for sensors id and 32 bit for the temperature (an arbitrary Integer) and a timestamp (32bits)
- uint32_t sensorsNumber=2;
- uint32_t nbHop=5;
- uint32_t linksBandwidth=5;
- uint32_t linksLatency=2;
- uint32_t positionSeed=5;
-
- CommandLine cmd;
- cmd.AddValue ("sensorsSendInterval", "Number of sensors measurement per second", sensorsFrequency);
- cmd.AddValue ("sensorsPktSize", "Sensors packet size (bytes)", sensorsPktSize);
- cmd.AddValue ("sensorsNumber", "Number of sensors connected to AP", sensorsNumber);
- cmd.AddValue ("nbHop", "Number of hop between AP and Cloud", nbHop);
- cmd.AddValue ("linksBandwidth", "Links bandwidth between AP and Cloud", linksBandwidth);
- cmd.AddValue ("linksLatency", "Links latency between AP and Cloud", linksLatency);
- cmd.AddValue ("positionSeed", "RandomRectangle Sensors placement seed", positionSeed);
- cmd.Parse (argc, argv);
-
- // Check sensors frequency
- if(sensorsFrequency<1){
- NS_LOG_UNCOND("SensorsSendInterval too small: " << sensorsFrequency << " (it should be >1)." );
- exit(1);
- }
-
- //LogComponentEnable("UdpEchoClientApplication", LOG_LEVEL_INFO);
- //LogComponentEnable("PacketSink", LOG_LEVEL_INFO);
-
- // ---------- Setup Simulations ----------
- CloudInfos cloud=createCloud(nbHop,linksBandwidth,linksLatency); // Create cloud P2P node chain o--o--o--o--o
- setupCloudEnergy(cloud); // DO IT JUST AFTER createCloud !!!!! Otherwise you will be in trouble
- Cell cell=createCell(sensorsNumber,cloud.first.Get(0),positionSeed); // Use first cloud node as Access Point
- setupScenario(cell,cloud,sensorsPktSize,sensorsFrequency); // Send data from Sensors to Cloud
- DeviceEnergyModelContainer wifi=setupCellEnergy(cell);
-
- // Don't forget the following
- Ipv4GlobalRoutingHelper::PopulateRoutingTables ();
-
- // Setup Logs
- uint32_t nNode=ns3::NodeList::GetNNodes();
- FlowMonitorHelper flowmon;
- Ptr<FlowMonitor> monitor = flowmon.InstallAll();
- Ptr<Ipv4FlowClassifier> classifier = DynamicCast<Ipv4FlowClassifier> (flowmon.GetClassifier ());
-
- // Run Simulations
- Simulator::Stop (Seconds (SIM_TIME));
- Simulator::Run ();
-
- // Print logs
- NS_LOG_UNCOND("NS-3 Version " << NS3_VERSION);
- NS_LOG_UNCOND("Simulation used "<< nNode << " nodes");
- std::map<FlowId, FlowMonitor::FlowStats> stats = monitor->GetFlowStats ();
- for (std::map< FlowId, FlowMonitor::FlowStats>::iterator flow=stats.begin(); flow!=stats.end(); flow++)
- {
- Ipv4FlowClassifier::FiveTuple t = classifier->FindFlow(flow->first);
- NS_LOG_UNCOND("Flow " <<t.sourceAddress<< " -> "<< t.destinationAddress << " delay = " <<flow->second.delaySum.GetSeconds());
- }
-
-
- // Trace
- DeviceEnergyModelContainer::Iterator it=wifi.Begin();
- int i=0; // Note that node 0 is the AP
- while(it!=wifi.End()){
- NS_LOG_UNCOND ("Node " << i << " consumes " <<(*it)->GetTotalEnergyConsumption());
- it++;
- i--; // Edge device will have id < 0 and ap will have id 0
- }
-
-
- // Finish
- Simulator::Destroy ();
- return(0);
-}