X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/2807fde4fd1f59c230d69a934634c5dfb77905f2..c4df442a7767bdb51ac7cbeb3ee5909a489bf623:/src/surf/network_ns3.cpp diff --git a/src/surf/network_ns3.cpp b/src/surf/network_ns3.cpp index 7c300951cf..806c707e3b 100644 --- a/src/surf/network_ns3.cpp +++ b/src/surf/network_ns3.cpp @@ -8,6 +8,7 @@ #include "xbt/config.hpp" #include "xbt/string.hpp" +#include "xbt/utility.hpp" #include "ns3/core-module.h" #include "ns3/node.h" @@ -229,8 +230,11 @@ void NetworkNS3Model::updateActionsState(double now, double delta) if(sgFlow->finished_){ socket_to_destroy.push_back(ns3Socket); - XBT_DEBUG("Destroy socket %p of action %p", ns3Socket, action); + XBT_DEBUG("Destroy socket %p of action %p", ns3Socket.c_str(), action); action->finish(Action::State::done); + } else { + XBT_DEBUG("Socket %p sent %u bytes out of %u (%u remaining)", ns3Socket.c_str(), sgFlow->sentBytes_, + sgFlow->totalBytes_, sgFlow->remaining_); } } @@ -239,7 +243,7 @@ void NetworkNS3Model::updateActionsState(double now, double delta) socket_to_destroy.pop_back(); SgFlow* flow = flowFromSock.at(ns3Socket); if (XBT_LOG_ISENABLED(ns3, xbt_log_priority_debug)) { - XBT_DEBUG ("Removing socket %p of action %p", ns3Socket, flow->action_); + XBT_DEBUG("Removing socket %p of action %p", ns3Socket.c_str(), flow->action_); } delete flow; flowFromSock.erase(ns3Socket); @@ -312,7 +316,7 @@ int NetworkNS3Action::unref() refcount_--; if (not refcount_) { if (action_hook.is_linked()) - stateSet_->erase(stateSet_->iterator_to(*this)); + simgrid::xbt::intrusive_erase(*stateSet_, *this); XBT_DEBUG ("Removing action %p", this); delete this; return 1; @@ -392,7 +396,7 @@ void ns3_initialize(const char* TcpProtocol){ return; } - xbt_die("The ns3/TcpModel must be : NewReno or Reno or Tahoe"); + xbt_die("The ns3/TcpModel must be: NewReno or Reno or Tahoe"); } void ns3_add_cluster(const char* id, double bw, double lat) { @@ -409,7 +413,7 @@ void ns3_add_cluster(const char* id, double bw, double lat) { xbt_assert(Nodes.GetN() <= 65000, "Cluster with NS3 is limited to 65000 nodes"); ns3::CsmaHelper csma; - csma.SetDeviceAttribute("DataRate", ns3::DataRateValue(ns3::DataRate(bw*8)));// NS3 takes bps, but we provide Bps + csma.SetChannelAttribute("DataRate", ns3::DataRateValue(ns3::DataRate(bw * 8))); // NS3 takes bps, but we provide Bps csma.SetChannelAttribute("Delay", ns3::TimeValue(ns3::Seconds(lat))); ns3::NetDeviceContainer devices = csma.Install(Nodes); XBT_DEBUG("Create CSMA"); @@ -449,14 +453,10 @@ void ns3_add_link(NetPointNs3* src, NetPointNs3* dst, double bw, double lat) { ns3::Ptr b = nodes.Get(dstNum); 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)));// NS3 takes bps, but we provide Bps + pointToPoint.SetDeviceAttribute("DataRate", + ns3::DataRateValue(ns3::DataRate(bw * 8))); // NS3 takes bps, but we provide Bps pointToPoint.SetChannelAttribute("Delay", ns3::TimeValue(ns3::Seconds(lat))); - std::string filename = simgrid::xbt::string_printf("link-%d-%d.tr", srcNum, dstNum); - ns3::AsciiTraceHelper ascii; - pointToPoint.EnableAsciiAll(ascii.CreateFileStream(filename)); - pointToPoint.EnablePcapAll ("tcp-bulk-send", false); - ns3::NetDeviceContainer netA; netA.Add(pointToPoint.Install (a, b));