if (((surf_action_network_CM02_t) action)->variable)
lmm_variable_free(network_maxmin_system,
((surf_action_network_CM02_t) action)->variable);
+#ifdef HAVE_TRACING
+ xbt_free (((surf_action_network_CM02_t)action)->src_name);
+ xbt_free (((surf_action_network_CM02_t)action)->dst_name);
+#endif
free(action);
return 1;
}
static void net_action_cancel(surf_action_t action)
{
- surf_network_model->action_state_set((surf_action_t) action,
- SURF_ACTION_FAILED);
- return;
+ surf_network_model->action_state_set(action, SURF_ACTION_FAILED);
}
-static void net_action_recycle(surf_action_t action)
+void net_action_recycle(surf_action_t action)
{
return;
}
-static int net_get_link_latency(surf_action_t action)
+int net_get_link_latency(surf_action_t action)
{
return action->latency_limited;
}
-static double net_action_get_remains(surf_action_t action)
+double net_action_get_remains(surf_action_t action)
{
return action->remains;
}
*/
xbt_swag_foreach_safe(action, next_action, running_actions) {
-
-#ifdef HAVE_TRACING
- xbt_dynar_t route = used_routing->get_route(action->src, action->dst);
- link_CM02_t link;
- unsigned int i;
- xbt_dynar_foreach(route, i, link) {
- TRACE_surf_link_set_utilization (link->lmm_resource.generic_resource.name,
- action->generic_action.data, lmm_variable_getvalue(action->variable), now-delta, delta);
- }
-#endif
-
deltap = delta;
if (action->latency > 0) {
if (action->latency > deltap) {
lmm_update_variable_weight(network_maxmin_system, action->variable,
action->weight);
}
+#ifdef HAVE_TRACING
+ xbt_dynar_t route = used_routing->get_route(action->src, action->dst);
+ link_CM02_t link;
+ unsigned int i;
+ xbt_dynar_foreach(route, i, link) {
+ TRACE_surf_link_set_utilization (link->lmm_resource.generic_resource.name,
+ action->generic_action.data, lmm_variable_getvalue(action->variable), now-delta, delta);
+ }
+#endif
double_update(&(action->generic_action.remains),
lmm_variable_getvalue(action->variable) * deltap);
if (action->generic_action.max_duration != NO_MAX_DURATION)
static surf_action_t net_communicate(const char *src_name, const char *dst_name,
- int src, int dst, double size, double rate)
+ double size, double rate)
{
unsigned int i;
link_CM02_t link;
/* LARGE PLATFORMS HACK:
Add a link_CM02_t *link and a int link_nb to network_card_CM02_t. It will represent local links for this node
Use the cluster_id for ->id */
- xbt_dynar_t route = used_routing->get_route(src, dst);
+
+ xbt_dynar_t route = global_routing->get_route(src_name, dst_name);
xbt_dynar_t back_route = NULL;
int constraints_per_variable = 0;
if( sg_network_fullduplex == 1){
- back_route = used_routing->get_route(dst, src);
+ back_route = global_routing->get_route(src_name, dst_name);
}
-
+
/* LARGE PLATFORMS HACK:
total_route_size = route_size + src->link_nb + dst->nb */
} /* LARGE PLATFORMS HACK:
expand also with src->link and dst->link */
- /* saving the src and dst of this communication */
- action->src = src;
- action->dst = dst;
+#ifdef HAVE_TRACING
+ action->src_name = xbt_new (char, strlen(src_name)+1);
+ strncpy (action->src_name, src_name, strlen(src_name)+1);
+
+ action->dst_name = xbt_new (char, strlen(dst_name)+1);
+ strncpy (action->dst_name, dst_name, strlen(dst_name)+1);
+#endif
XBT_OUT;
return ((surf_action_network_CM02_t) action)->suspended;
}
-static void net_action_set_max_duration(surf_action_t action, double duration)
+void net_action_set_max_duration(surf_action_t action, double duration)
{
action->max_duration = duration;
}
{
surf_model_exit(surf_network_model);
surf_network_model = NULL;
-
- used_routing->finalize();
+
+ global_routing->finalize();
+
lmm_system_free(network_maxmin_system);
network_maxmin_system = NULL;
}