Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
proper initialization of get_latency_limited on vivaldi network model
[simgrid.git] / src / surf / network_vivaldi.c
index 7b9b40b..852d333 100644 (file)
@@ -1,6 +1,5 @@
-/*     $Id$     */
-
-/* Copyright (c) 2004 Arnaud Legrand. All rights reserved.                  */
+/* Copyright (c) 2010. The SimGrid Team.
+ * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
@@ -24,12 +23,12 @@ typedef struct s_netviva_coords {
 xbt_dict_t coords; /* Host name -> coordinates */
 
 XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(surf_network);
-static random_data_t random_latency = NULL;
-static int host_number_int = 0;
+static random_data_t random_latency_viva = NULL;
+static int host_number_int_viva = 0;
 
 static void netviva_count_hosts(void)
 {
-  host_number_int++;
+  host_number_int_viva++;
 }
 
 static void netviva_define_callbacks(const char *file)
@@ -127,21 +126,18 @@ static void netviva_update_resource_state(void *id,
 }
 
 static surf_action_t netviva_communicate(const char *src_name, const char *dst_name,
-                                 int src, int dst, double size, double rate)
+                                  double size, double rate)
 {
+  surf_action_network_Vivaldi_t action = NULL;
   netviva_coords_t c1,c2;
   c1 = xbt_dict_get(coords,src_name);
   c2 = xbt_dict_get(coords,dst_name);
 
-  surf_action_network_Vivaldi_t action = NULL;
-
-  action =
-    surf_action_new(sizeof(s_surf_action_network_Vivaldi_t), size,
-                    surf_network_model, 0);
+  action = surf_action_new(sizeof(s_surf_action_network_Vivaldi_t), size,surf_network_model, 0);
 
   action->suspended = 0;
 
-  action->latency = sqrt((c1->x-c2->x)*(c1->x-c2->x) + (c1->y-c2->y)*(c1->y-c2->y)) + fabs(c1->h)+ fabs(c2->h) ;          //random_generate(random_latency);
+  action->latency = sqrt((c1->x-c2->x)*(c1->x-c2->x) + (c1->y-c2->y)*(c1->y-c2->y)) + fabs(c1->h)+ fabs(c2->h) ;          //random_generate(random_latency_viva);
   action->lat_init = action->latency;
 
   if (action->latency <= 0.0) {
@@ -169,7 +165,7 @@ static double netviva_get_link_latency(const void *link)
   DIE_IMPOSSIBLE;
 }
 
-static int link_shared(const void *link)
+static int netviva_link_shared(const void *link)
 {
   DIE_IMPOSSIBLE;
 }
@@ -201,12 +197,6 @@ static void netviva_finalize(void)
   surf_network_model = NULL;
 }
 
-
-static void net_define_callbacks(const char *file)
-{
-  /* Figuring out the network links */
-}
-
 static void netviva_parse_host(void) {
   netviva_coords_t coord = xbt_new(s_netviva_coords_t,1);
 
@@ -216,10 +206,17 @@ static void netviva_parse_host(void) {
   coord->y = atof(xbt_dynar_get_as(ctn, 1, char*));
   coord->h = atof(xbt_dynar_get_as(ctn, 2, char*));
 
+#ifdef HAVE_TRACING
+  TRACE_surf_host_vivaldi_parse (A_surfxml_host_id, coord->x, coord->y, coord->h);
+#endif
+
   xbt_dynar_free(&ctn);
   xbt_dict_set(coords, A_surfxml_host_id,coord,NULL);
 }
 
+static int netviva_get_latency_limited(surf_action_t action){
+  return 0;
+}
 void surf_network_model_init_Vivaldi(const char *filename)
 {
   xbt_assert(surf_network_model == NULL);
@@ -234,6 +231,7 @@ void surf_network_model_init_Vivaldi(const char *filename)
   surf_network_model->action_cancel = netviva_action_cancel;
   surf_network_model->action_recycle = netviva_action_recycle;
   surf_network_model->get_remains = netviva_action_get_remains;
+  surf_network_model->get_latency_limited = netviva_get_latency_limited;
 
   surf_network_model->model_private->resource_used = netviva_resource_used;
   surf_network_model->model_private->share_resources = netviva_share_resources;
@@ -252,10 +250,10 @@ void surf_network_model_init_Vivaldi(const char *filename)
   surf_network_model->extension.network.get_link_bandwidth =
     netviva_get_link_bandwidth;
   surf_network_model->extension.network.get_link_latency = netviva_get_link_latency;
-  surf_network_model->extension.network.link_shared = link_shared;
+  surf_network_model->extension.network.link_shared = netviva_link_shared;
 
-  if (!random_latency)
-    random_latency = random_new(RAND, 100, 0.0, 1.0, .125, .034);
+  if (!random_latency_viva)
+    random_latency_viva = random_new(RAND, 100, 0.0, 1.0, .125, .034);
   netviva_define_callbacks(filename);
   xbt_dynar_push(model_list, &surf_network_model);
 
@@ -265,6 +263,12 @@ void surf_network_model_init_Vivaldi(const char *filename)
   update_model_description(surf_network_model_description,
                            "Vivaldi", surf_network_model);
 
+#ifdef HAVE_TRACING
+  __TRACE_host_variable(0,"vivaldi_x",0,"declare");
+  __TRACE_host_variable(0,"vivaldi_y",0,"declare");
+  __TRACE_host_variable(0,"vivaldi_h",0,"declare");
+#endif
+
   xbt_cfg_set_string(_surf_cfg_set, "routing", "none");
   routing_model_create(sizeof(double), NULL);
 }