-/* Copyright (c) 2004, 2005, 2006, 2007, 2008, 2009, 2010. The SimGrid Team.
+/* Copyright (c) 2004-2011. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
#include "xbt/str.h"
#include "surf/surfxml_parse_values.h"
+#include "surf/surf_resource.h"
+#include "surf/surf_resource_lmm.h"
+
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_network, surf,
"Logging specific to the SURF network module");
return nw_link;
}
-static void net_parse_link_init(void)
+static void net_parse_link_init(sg_platf_link_cbarg_t link)
{
XBT_DEBUG("link_CM02");
- if(struct_lnk->V_policy_initial_link == SURF_LINK_FULLDUPLEX)
- {
- net_create_resource(bprintf("%s_UP",struct_lnk->V_link_id), struct_lnk->V_link_bandwidth, struct_lnk->V_link_bandwidth_file,
- struct_lnk->V_link_latency, struct_lnk->V_link_latency_file, struct_lnk->V_link_state, struct_lnk->V_link_state_file,
- struct_lnk->V_policy_initial_link, xbt_dict_new());
- net_create_resource(bprintf("%s_DOWN",struct_lnk->V_link_id), struct_lnk->V_link_bandwidth, struct_lnk->V_link_bandwidth_file,
- struct_lnk->V_link_latency, struct_lnk->V_link_latency_file, struct_lnk->V_link_state, struct_lnk->V_link_state_file,
- struct_lnk->V_policy_initial_link, xbt_dict_new());
- }
- else
- {
- net_create_resource(xbt_strdup(struct_lnk->V_link_id), struct_lnk->V_link_bandwidth, struct_lnk->V_link_bandwidth_file,
- struct_lnk->V_link_latency, struct_lnk->V_link_latency_file, struct_lnk->V_link_state, struct_lnk->V_link_state_file,
- struct_lnk->V_policy_initial_link, xbt_dict_new());
+ if (link->policy == SURF_LINK_FULLDUPLEX) {
+ char *link_id;
+ link_id = bprintf("%s_UP", link->id);
+ net_create_resource(link_id,
+ link->bandwidth,
+ link->bandwidth_trace,
+ link->latency,
+ link->latency_trace,
+ link->state,
+ link->state_trace,
+ link->policy,
+ link->properties);
+ xbt_free(link_id);
+ link_id = bprintf("%s_DOWN", link->id);
+ net_create_resource(link_id,
+ link->bandwidth,
+ link->bandwidth_trace,
+ link->latency,
+ link->latency_trace,
+ link->state,
+ link->state_trace,
+ link->policy,
+ NULL); /* FIXME: We need to deep copy the properties or
+ * we won't be able to free it */
+ xbt_free(link_id);
+ } else {
+ net_create_resource(link->id,
+ link->bandwidth,
+ link->bandwidth_trace,
+ link->latency,
+ link->latency_trace,
+ link->state,
+ link->state_trace,
+ link->policy,
+ link->properties);
}
-
}
static void net_add_traces(void)
static void net_define_callbacks(void)
{
/* Figuring out the network links */
- surfxml_add_callback(STag_surfxml_link_cb_list, &net_parse_link_init);
+ sg_platf_link_add_cb(net_parse_link_init);
sg_platf_postparse_add_cb(net_add_traces);
}
#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);
+ xbt_free(action->category);
#endif
surf_action_free(&action);
return 1;
network_maxmin_system = lmm_system_new();
routing_model_create(sizeof(link_CM02_t),
- net_create_resource(xbt_strdup("__loopback__"),
- 498000000, NULL, 0.000015, NULL,
- SURF_RESOURCE_ON, NULL,
- SURF_LINK_FATPIPE, NULL),
- net_get_link_latency);
+ net_create_resource("__loopback__",
+ 498000000, NULL,
+ 0.000015, NULL,
+ SURF_RESOURCE_ON, NULL,
+ SURF_LINK_FATPIPE, NULL));
}
xbt_cfg_setdefault_double(_surf_cfg_set, "network/sender_gap", 10e-6);
xbt_cfg_setdefault_double(_surf_cfg_set, "network/weight_S", 8775);
- update_model_description(surf_network_model_description,
- "SMPI", surf_network_model);
}
/************************************************************************/
0.92);
xbt_cfg_setdefault_double(_surf_cfg_set, "network/weight_S", 8775);
- update_model_description(surf_network_model_description,
- "LV08_fullupdate", surf_network_model);
}
/***************************************************************************/
net_define_callbacks();
xbt_dynar_push(model_list, &surf_network_model);
network_solve = lmm_solve;
-
- update_model_description(surf_network_model_description,
- "CM02", surf_network_model);
}
void surf_network_model_init_Reno(void)
xbt_cfg_setdefault_double(_surf_cfg_set, "network/bandwidth_factor",
0.92);
xbt_cfg_setdefault_double(_surf_cfg_set, "network/weight_S", 8775);
-
- update_model_description(surf_network_model_description,
- "Reno", surf_network_model);
}
0.92);
xbt_cfg_setdefault_double(_surf_cfg_set, "network/weight_S_parameter",
8775);
-
- update_model_description(surf_network_model_description,
- "Reno2", surf_network_model);
}
void surf_network_model_init_Vegas(void)
xbt_cfg_setdefault_double(_surf_cfg_set, "network/bandwidth_factor",
0.92);
xbt_cfg_setdefault_double(_surf_cfg_set, "network/weight_S", 8775);
-
- update_model_description(surf_network_model_description,
- "Vegas", surf_network_model);
}