+ wifiChannel.SetPropagationDelay ("ns3::ConstantSpeedPropagationDelayModel");
+
+ wifiChannel.AddPropagationLoss ("ns3::LogDistancePropagationLossModel",
+ "Exponent", ns3::DoubleValue (3.0),
+ "ReferenceLoss", ns3::DoubleValue (40.0459));
+
+ wifiPhy.SetChannel (wifiChannel.Create ());
+
+ wifi.SetRemoteStationManager ("ns3::ConstantRateWifiManager",
+ "ControlMode", ns3::StringValue ("VhtMcs0"),
+ "DataMode", ns3::StringValue ("VhtMcs9"));
+
+ mobility.SetMobilityModel ("ns3::ConstantPositionMobilityModel");
+
+ ns3::Ssid ssid = ns3::Ssid (std::to_string(number_of_networks) + "_" + std::to_string(number_of_links));
+
+ wifiMac.SetType("ns3::ApWifiMac",
+ "Ssid", ns3::SsidValue (ssid));
+ netA.Add(wifi.Install (wifiPhy, wifiMac, a));
+
+ wifiMac.SetType ("ns3::StaWifiMac",
+ "Ssid", ns3::SsidValue (ssid),
+ "ActiveProbing", ns3::BooleanValue (false));
+ netA.Add(wifi.Install (wifiPhy, wifiMac, b));
+
+ ns3::Ptr<ns3::ListPositionAllocator> positionAllocS = ns3::CreateObject<ns3::ListPositionAllocator> ();
+// positionAllocS->Add(ns3::Vector(-5, mobility_base, 0.0));
+// positionAllocS->Add(ns3::Vector(5, mobility_base, 0.0));
+ positionAllocS->Add(ns3::Vector(-5, 0, 0.0));
+ positionAllocS->Add(ns3::Vector(5, 0, 0.0));
+ mobility_base += mobility_delta;
+ mobility.SetPositionAllocator(positionAllocS);
+ mobility.Install(a);
+ mobility.Install(b);
+
+ } else {
+ ns3::PointToPointHelper pointToPoint;
+
+ XBT_DEBUG("\tAdd PTP from %d to %d bw:'%f Bps' lat:'%fs'", srcNum, dstNum, bw, lat);
+ pointToPoint.SetDeviceAttribute("DataRate",
+ ns3::DataRateValue(ns3::DataRate(bw * 8))); // ns-3 takes bps, but we provide Bps
+ pointToPoint.SetChannelAttribute("Delay", ns3::TimeValue(ns3::Seconds(lat)));
+
+ netA.Add(pointToPoint.Install(a, b));
+ }