From: Frederic Suter Date: Fri, 25 Mar 2016 12:47:28 +0000 (+0100) Subject: Merge branch 'master' of git+ssh://scm.gforge.inria.fr//gitroot/simgrid/simgrid X-Git-Tag: v3_13~270^2~8 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/614ef2324cbba0fee07ae420907633a31c571ad7?hp=1bc7aeab041e3ce07b22351094fa1f1700cfde72 Merge branch 'master' of git+ssh://scm.gforge.inria.fr//gitroot/simgrid/simgrid --- diff --git a/examples/msg/ns3/ns3.tesh b/examples/msg/ns3/ns3.tesh index e4f7fbb702..50c83db585 100644 --- a/examples/msg/ns3/ns3.tesh +++ b/examples/msg/ns3/ns3.tesh @@ -41,8 +41,8 @@ p Dogbone ! timeout 10 $ ns3/ns3 ${srcdir:=.}/examples/platforms/dogbone.xml ${srcdir:=.}/examples/msg/ns3/dogbone_d.xml --cfg=network/model:NS3 "--log=root.fmt:[%h:%P(%i)]%e[%c/%p]%e%m%n" > [:maestro(0)] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'NS3' -> [C2:slave(4)] [msg_test/INFO] FLOW[1] : Receive 20000000 bytes from S2 to C2 > [C1:slave(3)] [msg_test/INFO] FLOW[0] : Receive 20000000 bytes from S1 to C1 +> [C2:slave(4)] [msg_test/INFO] FLOW[1] : Receive 20000000 bytes from S2 to C2 p 2hosts 1link diff --git a/src/surf/network_ns3.cpp b/src/surf/network_ns3.cpp index d9589426aa..d559716f3b 100644 --- a/src/surf/network_ns3.cpp +++ b/src/surf/network_ns3.cpp @@ -60,19 +60,24 @@ static void simgrid_ns3_add_host(simgrid::s4u::Host& host) ns3::Ptr node = ns3::CreateObject (0); stack.Install(node); nodes.Add(node); - ns3host->node_num = number_of_nodes; - ns3host->type = NS3_NETWORK_ELEMENT_HOST; - number_of_nodes++; + ns3host->node_num = number_of_nodes ++; host.extension_set(NS3_EXTENSION_ID, ns3host); } -static void simgrid_ns3_add_router(simgrid::surf::NetCard* router) +static void simgrid_ns3_add_netcard(simgrid::surf::NetCard* netcard) { - const char* router_id = router->name(); - XBT_DEBUG("NS3_ADD_ROUTER '%s'",router_id); - xbt_lib_set(as_router_lib, router_id, NS3_ASR_LEVEL, ns3_add_router(router_id) - ); + const char* id = netcard->name(); + + ns3_node_t ns3netcard = xbt_new0(s_ns3_node_t,1); + XBT_DEBUG("Interface ns3 add netcard[%d] '%s'",number_of_nodes,id); + ns3::Ptr node = ns3::CreateObject (0); + stack.Install(node); + nodes.Add(node); + ns3netcard->node_num = number_of_nodes++; + + + xbt_lib_set(as_router_lib, id, NS3_ASR_LEVEL, ns3netcard ); } #include "src/surf/xml/platf.hpp" // FIXME: move that back to the parsing area @@ -136,8 +141,8 @@ static void parse_ns3_add_cluster(sg_platf_cluster_cbarg_t cluster) xbt_assert(host_src && host_dst, "\tns3_add_link from %d to %d",host_src->node_num,host_dst->node_num); - ns3_add_link(host_src->node_num,host_src->type, - host_dst->node_num,host_dst->type, + ns3_add_link(host_src->node_num,NS3_NETWORK_ELEMENT_HOST, + host_dst->node_num,NS3_NETWORK_ELEMENT_HOST, bw,lat); free(router_id); @@ -196,7 +201,7 @@ static void create_ns3_topology(void) if (!host_src || !host_dst) xbt_die("\tns3_add_link from %d to %d",host_src->node_num,host_dst->node_num); - ns3_add_link(host_src->node_num,host_src->type,host_dst->node_num,host_dst->type,link_bdw,link_lat); + ns3_add_link(host_src->node_num,NS3_NETWORK_ELEMENT_HOST,host_dst->node_num,NS3_NETWORK_ELEMENT_HOST,link_bdw,link_lat); xbt_free(link_bdw); xbt_free(link_lat); @@ -224,7 +229,7 @@ NetworkNS3Model::NetworkNS3Model() : NetworkModel() { routing_model_create(NULL); simgrid::s4u::Host::onCreation.connect(simgrid_ns3_add_host); - simgrid::surf::netcardCreatedCallbacks.connect(simgrid_ns3_add_router); + simgrid::surf::netcardCreatedCallbacks.connect(simgrid_ns3_add_netcard); simgrid::surf::on_link.connect(netlink_parse_init); simgrid::surf::on_cluster.connect (&parse_ns3_add_cluster); simgrid::surf::on_postparse.connect(&create_ns3_topology); //get_one_link_routes @@ -474,24 +479,10 @@ void * ns3_add_host_cluster(const char * id) Cluster_nodes.Add(node); nodes.Add(node); host->node_num = number_of_nodes; - host->type = NS3_NETWORK_ELEMENT_HOST; number_of_nodes++; return host; } -void * ns3_add_router(const char * id) -{ - ns3_node_t router = xbt_new0(s_ns3_node_t,1); - XBT_DEBUG("Interface ns3 add router[%d] '%s'",number_of_nodes,id); - ns3::Ptr node = ns3::CreateObject (0); - stack.Install(node); - nodes.Add(node); - router->node_num = number_of_nodes; - router->type = NS3_NETWORK_ELEMENT_ROUTER; - number_of_nodes++; - return router; -} - void ns3_add_cluster(char * bw,char * lat,const char *id) { diff --git a/src/surf/ns3/ns3_interface.h b/src/surf/ns3/ns3_interface.h index b0eb1bbcc2..33ce2eb510 100644 --- a/src/surf/ns3/ns3_interface.h +++ b/src/surf/ns3/ns3_interface.h @@ -31,7 +31,6 @@ typedef enum { typedef struct ns3_node { int node_num; - e_ns3_network_element_type_t type; } s_ns3_node_t, *ns3_node_t; XBT_PUBLIC_DATA(int) NS3_EXTENSION_ID;