Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Move the latency computation logic from surf models to the routing module.
[simgrid.git] / src / surf / network_constant.c
index 10e25fd..b76ff47 100644 (file)
@@ -52,20 +52,11 @@ static void netcste_action_cancel(surf_action_t action)
   return;
 }
 
-static void netcste_action_recycle(surf_action_t action)
-{
-  return;
-}
-
-static double netcste_action_get_remains(surf_action_t action)
-{
-  return action->remains;
-}
-
 static double netcste_share_resources(double now)
 {
   surf_action_network_Constant_t action = NULL;
-  xbt_swag_t running_actions = surf_network_model->states.running_action_set;
+  xbt_swag_t running_actions =
+      surf_network_model->states.running_action_set;
   double min = -1.0;
 
   xbt_swag_foreach(action, running_actions) {
@@ -84,7 +75,8 @@ static void netcste_update_actions_state(double now, double delta)
 {
   surf_action_network_Constant_t action = NULL;
   surf_action_network_Constant_t next_action = NULL;
-  xbt_swag_t running_actions = surf_network_model->states.running_action_set;
+  xbt_swag_t running_actions =
+      surf_network_model->states.running_action_set;
 
   xbt_swag_foreach_safe(action, next_action, running_actions) {
     if (action->latency > 0) {
@@ -113,22 +105,23 @@ static void netcste_update_actions_state(double now, double delta)
 }
 
 static void netcste_update_resource_state(void *id,
-                                  tmgr_trace_event_t event_type,
-                                  double value, double time)
+                                          tmgr_trace_event_t event_type,
+                                          double value, double time)
 {
   DIE_IMPOSSIBLE;
 }
 
-static surf_action_t netcste_communicate(const char *src_name, const char *dst_name,
-                                 int src, int dst, double size, double rate)
+static surf_action_t netcste_communicate(const char *src_name,
+                                         const char *dst_name, double size,
+                                         double rate)
 {
   surf_action_network_Constant_t action = NULL;
 
   XBT_IN4("(%s,%s,%g,%g)", src_name, dst_name, size, rate);
 
   action =
-    surf_action_new(sizeof(s_surf_action_network_Constant_t), size,
-                    surf_network_model, 0);
+      surf_action_new(sizeof(s_surf_action_network_Constant_t), size,
+                      surf_network_model, 0);
 
   action->suspended = 0;
 
@@ -137,7 +130,7 @@ static surf_action_t netcste_communicate(const char *src_name, const char *dst_n
 
   if (action->latency <= 0.0) {
     action->generic_action.state_set =
-      surf_network_model->states.done_action_set;
+        surf_network_model->states.done_action_set;
     xbt_swag_insert(action, action->generic_action.state_set);
   }
 
@@ -183,11 +176,6 @@ static int netcste_action_is_suspended(surf_action_t action)
   return ((surf_action_network_Constant_t) action)->suspended;
 }
 
-static void netcste_action_set_max_duration(surf_action_t action, double duration)
-{
-  action->max_duration = duration;
-}
-
 static void netcste_finalize(void)
 {
   surf_model_exit(surf_network_model);
@@ -203,30 +191,34 @@ void surf_network_model_init_Constant(const char *filename)
     return;
   surf_network_model = surf_model_init();
 
-  INFO0("Blah");
   surf_network_model->name = "constant time network";
   surf_network_model->action_unref = netcste_action_unref;
   surf_network_model->action_cancel = netcste_action_cancel;
-  surf_network_model->action_recycle = netcste_action_recycle;
-  surf_network_model->get_remains = netcste_action_get_remains;
+  surf_network_model->action_recycle = net_action_recycle;
+  surf_network_model->get_remains = net_action_get_remains;
+#ifdef HAVE_LATENCY_BOUND_TRACKING
+  surf_network_model->get_latency_limited = net_get_link_latency_limited;
+#endif
 
   surf_network_model->model_private->resource_used = netcste_resource_used;
-  surf_network_model->model_private->share_resources = netcste_share_resources;
+  surf_network_model->model_private->share_resources =
+      netcste_share_resources;
   surf_network_model->model_private->update_actions_state =
-    netcste_update_actions_state;
+      netcste_update_actions_state;
   surf_network_model->model_private->update_resource_state =
-    netcste_update_resource_state;
+      netcste_update_resource_state;
   surf_network_model->model_private->finalize = netcste_finalize;
 
   surf_network_model->suspend = netcste_action_suspend;
   surf_network_model->resume = netcste_action_resume;
   surf_network_model->is_suspended = netcste_action_is_suspended;
-  surf_cpu_model->set_max_duration = netcste_action_set_max_duration;
+  surf_cpu_model->set_max_duration = net_action_set_max_duration;
 
   surf_network_model->extension.network.communicate = netcste_communicate;
   surf_network_model->extension.network.get_link_bandwidth =
-    netcste_get_link_bandwidth;
-  surf_network_model->extension.network.get_link_latency = netcste_get_link_latency;
+      netcste_get_link_bandwidth;
+  surf_network_model->extension.network.get_link_latency =
+      netcste_get_link_latency;
   surf_network_model->extension.network.link_shared = link_shared;
 
   if (!random_latency)
@@ -238,5 +230,5 @@ void surf_network_model_init_Constant(const char *filename)
                            "Constant", surf_network_model);
 
   xbt_cfg_set_string(_surf_cfg_set, "routing", "none");
-  routing_model_create(sizeof(double), NULL);
+  routing_model_create(sizeof(double), NULL, (double_f_pvoid_t)netcste_get_link_latency);
 }