xbt_dict_set(surf_network_model->resource_set, name, nw_link,
surf_resource_free);
#ifdef HAVE_TRACING
- TRACE_surf_link_declaration (name, bw_initial, lat_initial);
+ TRACE_surf_link_declaration (nw_link, name, bw_initial, lat_initial);
#endif
return nw_link;
return;
}
-int net_get_link_latency(surf_action_t action)
+#ifdef HAVE_LATENCY_BOUND_TRACKING
+int net_get_link_latency_limited(surf_action_t action)
{
return action->latency_limited;
}
+#endif
double net_action_get_remains(surf_action_t action)
{
#define VARIABLE(action) (*((lmm_variable_t*)(((char *) (action)) + xbt_swag_offset(s_action, variable) )))
xbt_swag_foreach(action, running_actions) {
- if( lmm_is_variable_limited_by_latency(action->variable) ){
- (action->generic_action).latency_limited = 1;
- }else{
- (action->generic_action).latency_limited = 0;
- }
+#ifdef HAVE_LATENCY_BOUND_TRACKING
+ if( lmm_is_variable_limited_by_latency(action->variable) ){
+ (action->generic_action).latency_limited = 1;
+ }else{
+ (action->generic_action).latency_limited = 0;
+ }
+#endif
if (action->latency > 0) {
if (min < 0)
min = action->latency;
action->weight);
}
#ifdef HAVE_TRACING
- xbt_dynar_t route = used_routing->get_route(action->src, action->dst);
+ xbt_dynar_t route = global_routing->get_route(action->src_name, action->dst_name);
link_CM02_t link;
unsigned int i;
xbt_dynar_foreach(route, i, link) {
- TRACE_surf_link_set_utilization (link->lmm_resource.generic_resource.name,
+ TRACE_surf_link_set_utilization (link,
action->generic_action.data, lmm_variable_getvalue(action->variable), now-delta, delta);
}
#endif
(nw_link->lmm_resource.power.peak *
nw_link->lmm_resource.power.scale));
#ifdef HAVE_TRACING
- TRACE_surf_link_set_bandwidth (date, nw_link->lmm_resource.generic_resource.name, sg_bandwidth_factor * (nw_link->lmm_resource.power.peak * nw_link->lmm_resource.power.scale));
+ TRACE_surf_link_set_bandwidth (date, nw_link, sg_bandwidth_factor * (nw_link->lmm_resource.power.peak * nw_link->lmm_resource.power.scale));
#endif
if (sg_weight_S_parameter > 0) {
while ((var = lmm_get_var_from_cnst
action =
surf_action_new(sizeof(s_surf_action_network_CM02_t), size,
surf_network_model, failed);
+#ifdef HAVE_LATENCY_BOUND_TRACKING
(action->generic_action).latency_limited = 0;
+#endif
xbt_swag_insert(action, action->generic_action.state_set);
action->rate = rate;
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_cancel = net_action_cancel;
surf_network_model->action_recycle = net_action_recycle;
surf_network_model->get_remains = net_action_get_remains;
- surf_network_model->get_latency_limited = net_get_link_latency;
+#ifdef HAVE_LATENCY_BOUND_TRACKING
+ surf_network_model->get_latency_limited = net_get_link_latency_limited;
+#endif
surf_network_model->model_private->resource_used = net_resource_used;
surf_network_model->model_private->share_resources = net_share_resources;
surf_network_model->extension.network.communicate = net_communicate;
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;