X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/72cdaf67349bd5deefcb77d88633fe7923d112a7..0d3fb525534744cb1a0f7e0b664dbb3c2791e9cc:/src/surf/network_ns3.cpp diff --git a/src/surf/network_ns3.cpp b/src/surf/network_ns3.cpp index 2861ed3630..c5e05259f3 100644 --- a/src/surf/network_ns3.cpp +++ b/src/surf/network_ns3.cpp @@ -327,7 +327,7 @@ void NetworkNS3Model::update_actions_state(double now, double delta) ns3_socket = elm.first; SgFlow* sgFlow = elm.second; NetworkNS3Action * action = sgFlow->action_; - XBT_DEBUG("Processing socket %p (action %p)",sgFlow,action); + XBT_DEBUG("Processing flow %p (socket %s, action %p)", sgFlow, ns3_socket.c_str(), action); // Because NS3 stops as soon as a flow is finished, the other flows that ends at the same time may remains in an // inconsistent state (i.e. remains_ == 0 but finished_ == false). // However, SimGrid considers sometimes that an action with remains_ == 0 is finished. @@ -503,11 +503,10 @@ NetworkNS3Action::NetworkNS3Action(Model* model, double totalBytes, s4u::Host* s sink_from_sock.insert({transform_socket_ptr(sock), apps}); sock->Bind(ns3::InetSocketAddress(port_number)); - ns3::Simulator::ScheduleNow(&start_flow, sock, addr.c_str(), port_number); - port_number++; - if (port_number == UINT16_MAX) + port_number = 1 + (port_number % UINT16_MAX); + if (port_number == 1) XBT_WARN("Too many connections! Port number is saturated. Trying to use the oldest ports."); s4u::Link::on_communicate(*this);