Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
NS3: Remove content from NS3Sim(), to later kill it
authorMartin Quinson <martin.quinson@loria.fr>
Sun, 20 Mar 2016 23:51:18 +0000 (00:51 +0100)
committerMartin Quinson <martin.quinson@loria.fr>
Sun, 20 Mar 2016 23:51:18 +0000 (00:51 +0100)
src/surf/network_ns3.cpp
src/surf/ns3/ns3_interface.h
src/surf/ns3/ns3_simulator.cc
src/surf/ns3/ns3_simulator.h

index 5cb8300..871a39c 100644 (file)
@@ -284,7 +284,7 @@ NetworkNS3Model::NetworkNS3Model() : NetworkModel() {
 }
 
 NetworkNS3Model::~NetworkNS3Model() {
 }
 
 NetworkNS3Model::~NetworkNS3Model() {
-  ns3_finalize();
+  delete ns3_sim;
   xbt_dynar_free_container(&IPV4addr);
   xbt_dict_free(&dict_socket);
 }
   xbt_dynar_free_container(&IPV4addr);
   xbt_dict_free(&dict_socket);
 }
@@ -503,14 +503,6 @@ int ns3_create_flow(const char* a,const char *b,double start,u_int32_t TotalByte
   return 0;
 }
 
   return 0;
 }
 
-// clean up
-void ns3_finalize(){
-  if (!ns3_sim)
-    return;
-  delete ns3_sim;
-  ns3_sim = 0;
-}
-
 // initialize the NS3 interface and environment
 int ns3_initialize(const char* TcpProtocol){
   xbt_assert(!ns3_sim, "ns3 already initialized");
 // initialize the NS3 interface and environment
 int ns3_initialize(const char* TcpProtocol){
   xbt_assert(!ns3_sim, "ns3 already initialized");
index 0537b10..d80c85b 100644 (file)
@@ -38,7 +38,6 @@ XBT_PUBLIC_DATA(int) NS3_EXTENSION_ID;
 
 SG_BEGIN_DECL()
 
 
 SG_BEGIN_DECL()
 
-XBT_PUBLIC(void)   ns3_finalize();
 XBT_PUBLIC(int)    ns3_initialize(const char* TcpProtocol);
 XBT_PUBLIC(int)    ns3_create_flow(const char* a,const char *b,double start,u_int32_t TotalBytes,simgrid::surf::NetworkNS3Action * action);
 XBT_PUBLIC(void)   ns3_simulator(double min);
 XBT_PUBLIC(int)    ns3_initialize(const char* TcpProtocol);
 XBT_PUBLIC(int)    ns3_create_flow(const char* a,const char *b,double start,u_int32_t TotalBytes,simgrid::surf::NetworkNS3Action * action);
 XBT_PUBLIC(void)   ns3_simulator(double min);
index de44c38..e172c41 100644 (file)
@@ -26,8 +26,6 @@ XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(ns3);
 
 NS3Sim::NS3Sim(){
 }
 
 NS3Sim::NS3Sim(){
 }
-NS3Sim::~NS3Sim(){
-}
 
 static inline void transformSocketPtr (Ptr<Socket> localSocket)
 {
 
 static inline void transformSocketPtr (Ptr<Socket> localSocket)
 {
@@ -54,21 +52,14 @@ static void delete_mysocket(void *p)
  *             addr:  ip address
  *             totalBytes: number of bytes to transmit
  */
  *             addr:  ip address
  *             totalBytes: number of bytes to transmit
  */
-void NS3Sim::create_flow_NS3(
-               Ptr<Node> src,
-               Ptr<Node> dst,
-               uint16_t port_number,
-               double start,
-               const char *addr,
-               uint32_t totalBytes,
+void NS3Sim::create_flow_NS3(Ptr<Node> src, Ptr<Node> dst, uint16_t port_number,
+               double startTime, const char *ipAddr, uint32_t totalBytes,
                simgrid::surf::NetworkNS3Action * action)
 {
        if(!dict_socket)
          dict_socket = xbt_dict_new_homogeneous(delete_mysocket);
 
                simgrid::surf::NetworkNS3Action * action)
 {
        if(!dict_socket)
          dict_socket = xbt_dict_new_homogeneous(delete_mysocket);
 
-       PacketSinkHelper sink ("ns3::TcpSocketFactory",
-                                                       InetSocketAddress (Ipv4Address::GetAny(),
-                                                       port_number));
+       PacketSinkHelper sink("ns3::TcpSocketFactory", InetSocketAddress (Ipv4Address::GetAny(), port_number));
        sink.Install (dst);
 
        Ptr<Socket> sock = Socket::CreateSocket (src, TcpSocketFactory::GetTypeId());
        sink.Install (dst);
 
        Ptr<Socket> sock = Socket::CreateSocket (src, TcpSocketFactory::GetTypeId());
@@ -82,9 +73,11 @@ void NS3Sim::create_flow_NS3(
        xbt_dict_set(dict_socket,socket_key, mysocket,NULL);
 
        sock->Bind(InetSocketAddress(port_number));
        xbt_dict_set(dict_socket,socket_key, mysocket,NULL);
 
        sock->Bind(InetSocketAddress(port_number));
-       XBT_DEBUG("Create flow starting to %fs + %fs = %fs",start-ns3::Simulator::Now().GetSeconds(), ns3::Simulator::Now().GetSeconds(), start);
+       XBT_DEBUG("Create flow starting to %fs + %fs = %fs",
+           startTime-ns3::Simulator::Now().GetSeconds(), ns3::Simulator::Now().GetSeconds(), startTime);
 
 
-       Simulator::Schedule (Seconds(start-ns3::Simulator::Now().GetSeconds()),&StartFlow, sock, addr, port_number);
+       Simulator::Schedule (Seconds(startTime-ns3::Simulator::Now().GetSeconds()),
+           &StartFlow, sock, ipAddr, port_number);
 }
 
 void NS3Sim::simulator_start(double min){
 }
 
 void NS3Sim::simulator_start(double min){
index 6296b11..ddf1ab6 100644 (file)
@@ -41,7 +41,6 @@ private:
 
 public:
   NS3Sim();
 
 public:
   NS3Sim();
-  ~NS3Sim();
   void create_flow_NS3(ns3::Ptr<ns3::Node> src,
             ns3::Ptr<ns3::Node> dst,
             std::uint16_t port_number,
   void create_flow_NS3(ns3::Ptr<ns3::Node> src,
             ns3::Ptr<ns3::Node> dst,
             std::uint16_t port_number,