X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/d7377843192020efb1b215c504e36e84558ac520..dd217af23fbb42b3d76218e5c60b6b3e7f154583:/src/surf/network_ns3.cpp diff --git a/src/surf/network_ns3.cpp b/src/surf/network_ns3.cpp index 358799560d..b6835cd628 100644 --- a/src/surf/network_ns3.cpp +++ b/src/surf/network_ns3.cpp @@ -70,7 +70,7 @@ NetPointNs3::NetPointNs3() : ns3_node_(ns3::CreateObject(0)) stack.Install(ns3_node_); } -WifiZone::WifiZone(std::string name_, simgrid::s4u::Host* host_, ns3::Ptr ap_node_, +WifiZone::WifiZone(const std::string& name_, simgrid::s4u::Host* host_, ns3::Ptr ap_node_, ns3::Ptr channel_, int mcs_, int nss_, int network_, int link_) : name(name_) , host(host_) @@ -93,7 +93,7 @@ bool WifiZone::is_ap(ns3::Ptr node) return false; } -WifiZone* WifiZone::by_name(std::string name) +WifiZone* WifiZone::by_name(const std::string& name) { WifiZone* zone; try { @@ -388,7 +388,8 @@ LinkNS3::LinkNS3(NetworkNS3Model* model, const std::string& name, double bandwid wifiPhy.Set("MaxSupportedTxSpatialStreams", ns3::UintegerValue(zone->get_nss())); wifiPhy.Set("MaxSupportedRxSpatialStreams", ns3::UintegerValue(zone->get_nss())); - wifiMac.SetType("ns3::ApWifiMac"); + wifiMac.SetType("ns3::ApWifiMac", + "Ssid", ns3::SsidValue(name)); netA.Add(wifi.Install(wifiPhy, wifiMac, zone->get_ap_node())); @@ -406,7 +407,7 @@ LinkNS3::LinkNS3(NetworkNS3Model* model, const std::string& name, double bandwid zone->set_network(number_of_networks); zone->set_link(number_of_links); - netpoint_ns3->ipv4_address_ = transformIpv4Address(addresses.GetAddress(addresses.GetN() - 1)); + netpoint_ns3->ipv4_address_ = transformIpv4Address(addresses.GetAddress(1)); if (number_of_links == 255) { xbt_assert(number_of_networks < 255, "Number of links and networks exceed 255*255"); @@ -519,7 +520,7 @@ void ns3_simulator(double maxSeconds) } void ns3_add_direct_route(simgrid::kernel::routing::NetPoint* src, simgrid::kernel::routing::NetPoint* dst, double bw, - double lat, std::string link_name, simgrid::s4u::Link::SharingPolicy policy) + double lat, const std::string& link_name, simgrid::s4u::Link::SharingPolicy policy) { ns3::Ipv4AddressHelper address; ns3::NetDeviceContainer netA; @@ -550,14 +551,16 @@ void ns3_add_direct_route(simgrid::kernel::routing::NetPoint* src, simgrid::kern wifiPhy.Set("MaxSupportedTxSpatialStreams", ns3::UintegerValue(zone->get_nss())); wifiPhy.Set("MaxSupportedRxSpatialStreams", ns3::UintegerValue(zone->get_nss())); - wifiMac.SetType("ns3::StaWifiMac"); + wifiMac.SetType ("ns3::StaWifiMac", + "Ssid", ns3::SsidValue(link_name), + "ActiveProbing", ns3::BooleanValue(false)); netA.Add(wifi.Install(wifiPhy, wifiMac, staNode)); ns3::Config::Set("/NodeList/*/DeviceList/*/$ns3::WifiNetDevice/Phy/ChannelWidth", ns3::UintegerValue(40)); - NetPointNs3* sta_netpointNs3 = WifiZone::is_ap(host_src->ns3_node_) ? host_src : host_dst; - const char* wifi_distance = simgrid::s4u::Host::by_name(sta_netpointNs3->name_)->get_property("wifi_distance"); + simgrid::kernel::routing::NetPoint* sta_netpoint = WifiZone::is_ap(host_src->ns3_node_) ? dst : src; + const char* wifi_distance = simgrid::s4u::Host::by_name(sta_netpoint->get_name())->get_property("wifi_distance"); ns3::Ptr positionAllocS = ns3::CreateObject(); positionAllocS->Add(ns3::Vector(wifi_distance ? atof(wifi_distance) : 10.0, 0, 0)); mobility.SetPositionAllocator(positionAllocS); @@ -569,7 +572,7 @@ void ns3_add_direct_route(simgrid::kernel::routing::NetPoint* src, simgrid::kern zone->add_sta_node(); XBT_DEBUG("\tInterface stack '%s'", addr.c_str()); auto addresses = address.Assign(netA); - host_dst->ipv4_address_ = transformIpv4Address(addresses.GetAddress(addresses.GetN() - 1)); + host_dst->ipv4_address_ = transformIpv4Address(addresses.GetAddress(1)); } else { ns3::PointToPointHelper pointToPoint;