#include <xbt.h>
+typedef void *sg_routing_link_t; /* The actual type is model-dependent so use void* instead*/
+
+
typedef struct tmgr_trace *tmgr_trace_t; /**< Opaque structure defining an availability trace */
XBT_PUBLIC(tmgr_trace_t) tmgr_trace_new(const char *filename);
XBT_PUBLIC(tmgr_trace_t) tmgr_trace_new_from_string(const char *id,
//get the route
route_t route = xbt_new0(s_route_t,1);
- route->link_list = xbt_dynar_new(global_routing->size_of_link,NULL);
+ route->link_list = xbt_dynar_new(sizeof(sg_routing_link_t),NULL);
rc->get_route_and_latency(rc, child1->net_elm, child2->net_elm,
route, NULL);
//get the route
route_t route = xbt_new0(s_route_t,1);
- route->link_list = xbt_dynar_new(global_routing->size_of_link,NULL);
+ route->link_list = xbt_dynar_new(sizeof(sg_routing_link_t),NULL);
rc->get_route_and_latency(rc, child1->net_elm, child2->net_elm,
route, NULL);
xbt_dynar_t back_route = NULL;
int constraints_per_variable = 0;
- xbt_dynar_t route = xbt_dynar_new(global_routing->size_of_link, NULL);
+ xbt_dynar_t route = xbt_dynar_new(sizeof(sg_routing_link_t), NULL);
XBT_IN("(%s,%s,%g,%g)", src->name, dst->name, size, rate);
if (!network_maxmin_system)
network_maxmin_system = lmm_system_new(net_selective_update);
- routing_model_create(sizeof(link_CM02_t),
- net_create_resource("__loopback__",
+ routing_model_create(net_create_resource("__loopback__",
498000000, NULL, 0.000015, NULL,
SURF_RESOURCE_ON, NULL,
SURF_LINK_FATPIPE, NULL));
netcste_define_callbacks();
xbt_dynar_push(model_list, &surf_network_model);
- routing_model_create(sizeof(double), NULL);
+ routing_model_create(NULL);
}
struct s_routing_global {
AS_t root;
void *loopback;
- size_t size_of_link;
xbt_dynar_t last_route;
xbt_dynar_t(*get_onelink_routes) (void);
};
-XBT_PUBLIC(void) routing_model_create(size_t size_of_link, void *loopback);
+XBT_PUBLIC(void) routing_model_create(void *loopback);
XBT_PUBLIC(void) routing_exit(void);
XBT_PUBLIC(void) storage_register_callbacks(void);
XBT_PUBLIC(void) routing_register_callbacks(void);
/* Not in the same AS, no bypass. We'll have to find our path between the ASes recursively*/
- route.link_list = xbt_dynar_new(global_routing->size_of_link, NULL);
+ route.link_list = xbt_dynar_new(sizeof(sg_routing_link_t), NULL);
// Find the net_card corresponding to father
network_element_t src_father_net_elm = src_father->net_elem;
network_element_t dst_father_net_elm = dst_father->net_elem;
*
* Make a global routing structure and set all the parsing functions.
*/
-void routing_model_create(size_t size_of_links, void *loopback)
+void routing_model_create( void *loopback)
{
/* config the uniq global routing */
global_routing = xbt_new0(s_routing_global_t, 1);
global_routing->root = NULL;
global_routing->get_onelink_routes = get_onelink_routes;
global_routing->loopback = loopback;
- global_routing->size_of_link = size_of_links;
- global_routing->last_route = xbt_dynar_new(global_routing->size_of_link,NULL);
+ global_routing->last_route = xbt_dynar_new(sizeof(sg_routing_link_t),NULL);
/* no current routing at moment */
current_routing = NULL;
}
if (!found) {
route_t e_route = xbt_new0(s_route_t, 1);
- e_route->link_list = xbt_dynar_new(global_routing->size_of_link, NULL);
+ e_route->link_list = xbt_dynar_new(sizeof(sg_routing_link_t), NULL);
xbt_dynar_push(e_route->link_list,
&global_routing->loopback);
xbt_graph_new_edge(as->route_graph, node, node, e_route);
{
xbt_dynar_t ret = xbt_dynar_new(sizeof(onelink_t), xbt_free);
route_t route = xbt_new0(s_route_t,1);
- route->link_list = xbt_dynar_new(global_routing->size_of_link,NULL);
+ route->link_list = xbt_dynar_new(sizeof(sg_routing_link_t),NULL);
int src,dst;
network_element_t src_elm, dst_elm;
{
xbt_dynar_t ret = xbt_dynar_new(sizeof(onelink_t), xbt_free);
route_t route = xbt_new0(s_route_t, 1);
- route->link_list = xbt_dynar_new(global_routing->size_of_link, NULL);
+ route->link_list = xbt_dynar_new(sizeof(sg_routing_link_t), NULL);
int src,dst;
network_element_t src_elm, dst_elm;
if (asg->hierarchy == SURF_ROUTING_RECURSIVE && !first
&& strcmp(gw_dst->name, prev_gw_src->name)) {
xbt_dynar_t e_route_as_to_as;
- e_route_as_to_as = xbt_dynar_new(global_routing->size_of_link, NULL);
+ e_route_as_to_as = xbt_dynar_new(sizeof(sg_routing_link_t), NULL);
routing_get_route_and_latency(gw_dst, prev_gw_src,&e_route_as_to_as,NULL);
links = e_route_as_to_as;
int pos = 0;
e_route = xbt_new0(s_route_t, 1);
e_route->src_gateway = NULL;
e_route->dst_gateway = NULL;
- e_route->link_list =
- xbt_dynar_new(global_routing->size_of_link, NULL);
+ e_route->link_list = xbt_dynar_new(sizeof(sg_routing_link_t), NULL);
xbt_dynar_push(e_route->link_list, &global_routing->loopback);
TO_FLOYD_LINK(i, i) = e_route;
TO_FLOYD_PRED(i, i) = i;
char * link_name;
unsigned int cpt;
- xbt_dynar_t link_route_to_test = xbt_dynar_new(global_routing->size_of_link, NULL);
+ xbt_dynar_t link_route_to_test = xbt_dynar_new(sizeof(sg_routing_link_t), NULL);
xbt_dynar_foreach(route->link_list,cpt,link_name)
{
void *link = xbt_lib_get_or_null(link_lib, link_name, SURF_LINK_LEVEL);
route->src_gateway->name, src, route->dst_gateway->name);
char * link_name;
unsigned int i;
- xbt_dynar_t link_route_to_test = xbt_dynar_new(global_routing->size_of_link, NULL);
+ xbt_dynar_t link_route_to_test = xbt_dynar_new(sizeof(sg_routing_link_t), NULL);
for(i=xbt_dynar_length(route->link_list) ;i>0 ;i--)
{
link_name = xbt_dynar_get_as(route->link_list,i-1,void *);
e_route = xbt_new0(s_route_t, 1);
e_route->src_gateway = NULL;
e_route->dst_gateway = NULL;
- e_route->link_list = xbt_dynar_new(global_routing->size_of_link, NULL);
+ e_route->link_list = xbt_dynar_new(sizeof(sg_routing_link_t), NULL);
xbt_dynar_push(e_route->link_list, &global_routing->loopback);
TO_ROUTE_FULL(i, i) = e_route;
}
char *link_name;
unsigned int i;
xbt_dynar_t link_route_to_test =
- xbt_dynar_new(global_routing->size_of_link, NULL);
+ xbt_dynar_new(sizeof(sg_routing_link_t), NULL);
xbt_dynar_foreach(route->link_list, i, link_name) {
void *link = xbt_lib_get_or_null(link_lib, link_name, SURF_LINK_LEVEL);
xbt_assert(link, "Link : '%s' doesn't exists.", link_name);
char *link_name;
unsigned int i;
xbt_dynar_t link_route_to_test =
- xbt_dynar_new(global_routing->size_of_link, NULL);
+ xbt_dynar_new(sizeof(sg_routing_link_t), NULL);
for (i = xbt_dynar_length(route->link_list); i > 0; i--) {
link_name = xbt_dynar_get_as(route->link_list, i - 1, void *);
void *link = xbt_lib_get_or_null(link_lib, link_name, SURF_LINK_LEVEL);
new_e_route->src_gateway = e_route_bypass->src_gateway;
new_e_route->dst_gateway = e_route_bypass->dst_gateway;
new_e_route->link_list =
- xbt_dynar_new(global_routing->size_of_link, NULL);
+ xbt_dynar_new(sizeof(sg_routing_link_t), NULL);
xbt_dynar_foreach(e_route_bypass->link_list, cpt, link) {
xbt_dynar_push(new_e_route->link_list, &link);
if (lat)
unsigned int cpt;
result = xbt_new0(s_route_t, 1);
- result->link_list = xbt_dynar_new(global_routing->size_of_link, NULL);
+ result->link_list = xbt_dynar_new(sizeof(sg_routing_link_t), NULL);
xbt_assert(hierarchy == SURF_ROUTING_BASE
|| hierarchy == SURF_ROUTING_RECURSIVE,
network_element_t host = NULL;
xbt_lib_foreach(as_router_lib, cursor, k1, host){
route_t route = xbt_new0(s_route_t,1);
- route->link_list = xbt_dynar_new(global_routing->size_of_link,NULL);
+ route->link_list = xbt_dynar_new(sizeof(sg_routing_link_t),NULL);
rulebased_get_route_and_latency (rc, router, host, route,NULL);
int number_of_links = xbt_dynar_length(route->link_list);
if (!ptask_maxmin_system)
ptask_maxmin_system = lmm_system_new(1);
- routing_model_create(sizeof(link_L07_t),
- ptask_link_create_resource("__loopback__",
+ routing_model_create(ptask_link_create_resource("__loopback__",
498000000, NULL,
0.000015, NULL,
SURF_RESOURCE_ON, NULL,