Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
b2e747039ba641e22b5e8c11446d6039dc950cb2
[simgrid.git] / src / surf / network_ns3.c
1 /* Copyright (c) 2007, 2008, 2009, 2010, 2011. The SimGrid Team.
2  * All rights reserved.                                                     */
3
4 /* This program is free software; you can redistribute it and/or modify it
5  * under the terms of the license (GNU LGPL) which comes with this package. */
6
7 #include "surf_private.h"
8 #include "surf/ns3/ns3_interface.h"
9
10 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_network_ns3, surf,
11                                 "Logging specific to the SURF network NS3 module");
12
13 extern routing_global_t global_routing;
14
15 void parse_ns3_add_host(void)
16 {
17         XBT_INFO("NS3_ADD_HOST '%s'",A_surfxml_host_id);
18         //ns3_add_host(A_surfxml_host_id);
19 }
20 void parse_ns3_add_router(void)
21 {
22         XBT_INFO("NS3_ADD_ROUTER '%s'",A_surfxml_router_id);
23 }
24 void parse_ns3_add_link(void)
25 {
26         XBT_INFO("NS3_ADD_LINK '%s'",A_surfxml_link_id);
27 }
28 void parse_ns3_add_AS(void)
29 {
30         XBT_INFO("NS3_ADD_AS '%s'",A_surfxml_AS_id);
31 }
32 void parse_ns3_add_route(void)
33 {
34         XBT_INFO("NS3_ADD_ROUTE from '%s' to '%s'",A_surfxml_route_src,A_surfxml_route_dst);
35 }
36 void parse_ns3_add_ASroute(void)
37 {
38         XBT_INFO("NS3_ADD_ASROUTE from '%s' to '%s'",A_surfxml_ASroute_src,A_surfxml_ASroute_dst);
39 }
40 void parse_ns3_add_cluster(void)
41 {
42         XBT_INFO("NS3_ADD_CLUSTER '%s'",A_surfxml_cluster_id);
43         routing_parse_Scluster();
44 }
45
46 static void define_callbacks_ns3(const char *filename)
47 {
48   surfxml_add_callback(STag_surfxml_host_cb_list, &parse_ns3_add_host); //HOST
49   surfxml_add_callback(STag_surfxml_router_cb_list, &parse_ns3_add_router);     //ROUTER
50   surfxml_add_callback(STag_surfxml_link_cb_list, &parse_ns3_add_link); //LINK
51   surfxml_add_callback(STag_surfxml_AS_cb_list, &parse_ns3_add_AS);             //AS
52   surfxml_add_callback(STag_surfxml_route_cb_list, &parse_ns3_add_route);       //ROUTE
53   surfxml_add_callback(STag_surfxml_ASroute_cb_list, &parse_ns3_add_ASroute);   //ASROUTE
54   surfxml_add_callback(STag_surfxml_cluster_cb_list, &parse_ns3_add_cluster); //CLUSTER
55 }
56
57 void surf_network_model_init_NS3(const char *filename)
58 {
59         define_callbacks_ns3(filename);
60         surf_network_model = surf_model_init();
61         surf_network_model->name = "network NS3";
62
63         update_model_description(surf_network_model_description,
64                     "NS3", surf_network_model);
65 }