#ifdef HAVE_TRACING
xbt_free (((surf_action_network_CM02_t)action)->src_name);
xbt_free (((surf_action_network_CM02_t)action)->dst_name);
+ if (action->category) xbt_free (action->category);
#endif
free(action);
return 1;
}
#ifdef HAVE_LATENCY_BOUND_TRACKING
-int net_get_link_latency(surf_action_t action)
+int net_get_link_latency_limited(surf_action_t action)
{
return action->latency_limited;
}
return (surf_action_t) action;
}
+static xbt_dynar_t net_get_route(const char *src, const char *dst)
+{
+ return global_routing->get_route( src, dst);
+}
+
static double net_get_link_bandwidth(const void *link)
{
surf_resource_lmm_t lmm = (surf_resource_lmm_t) link;
return lmm->power.peak * lmm->power.scale;
}
+static double net_get_link_latency(const void *link)
+{
+ return ((link_CM02_t) link)->lat_current;
+}
+
static int net_link_shared(const void *link)
{
return lmm_constraint_is_shared(((surf_resource_lmm_t) link)->constraint);
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;
+ surf_network_model->get_latency_limited = net_get_link_latency_limited;
#endif
surf_network_model->model_private->resource_used = net_resource_used;
surf_cpu_model->set_max_duration = net_action_set_max_duration;
surf_network_model->extension.network.communicate = net_communicate;
+ surf_network_model->extension.network.get_route = net_get_route;
surf_network_model->extension.network.get_link_bandwidth =
net_get_link_bandwidth;
+ surf_network_model->extension.network.get_link_latency =
+ net_get_link_latency;
surf_network_model->extension.network.link_shared = net_link_shared;
surf_network_model->extension.network.add_traces = net_add_traces;
surf_network_model->extension.network.create_resource = net_create_resource;