-/* Copyright (c) 2009, 2010, 2011. The SimGrid Team.
+/* Copyright (c) 2009-2013. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
#define _SURF_SURF_ROUTING_PRIVATE_H
#include <float.h>
-#include "gras_config.h"
+#include "internal_config.h"
#include "surf_private.h"
#include "xbt/dynar.h"
int generic_parse_PU(AS_t rc, sg_routing_edge_t elm);
int generic_parse_AS(AS_t rc, sg_routing_edge_t elm);
-void generic_parse_bypassroute(AS_t rc, const char *src, const char *dst,
- route_t e_route);
+void generic_parse_bypassroute(AS_t rc, sg_platf_route_cbarg_t e_route);
/* ************************************************************************** */
/* *************** GENERIC BUSINESS METHODS (declarations) ****************** */
xbt_dynar_t generic_get_onelink_routes(AS_t rc);
-route_t generic_get_bypassroute(AS_t rc,
+sg_platf_route_cbarg_t generic_get_bypassroute(AS_t rc,
sg_routing_edge_t src,
sg_routing_edge_t dst,
double *lat);
/* change a route containing link names into a route containing link entities.
* If change_order is true, the links are put in reverse order in the
* produced route */
-route_t generic_new_extended_route(e_surf_routing_hierarchy_t hierarchy,
- route_t data, int preserve_order);
+sg_platf_route_cbarg_t generic_new_extended_route(e_surf_routing_hierarchy_t hierarchy,
+ sg_platf_route_cbarg_t data, int preserve_order);
AS_t
generic_autonomous_system_exist(AS_t rc, char *element);
AS_t
void generic_src_dst_check(AS_t rc, sg_routing_edge_t src,
sg_routing_edge_t dst);
-
/* ************************************************************************** */
/* *************************** FLOYD ROUTING ******************************** */
AS_t model_floyd_create(void); /* create structures for floyd routing model */
void model_floyd_end(AS_t as); /* finalize the creation of floyd routing model */
-void model_floyd_parse_route(AS_t rc, const char *src,
- const char *dst, route_t route);
-
-/* ************************************************** */
-/* ************** RULE-BASED ROUTING **************** */
-AS_t model_rulebased_create(void); /* create structures for rulebased routing model */
+void model_floyd_parse_route(AS_t rc, sg_platf_route_cbarg_t route);
/* ************************************************** */
/* ************** Cluster ROUTING **************** */
typedef struct {
s_as_t generic_routing;
void *backbone;
+ void *loopback;
+ sg_routing_edge_t router;
} s_as_cluster_t, *as_cluster_t;
AS_t model_cluster_create(void); /* create structures for cluster routing model */
AS_t model_dijkstra_create(void); /* create structures for dijkstra routing model */
AS_t model_dijkstracache_create(void); /* create structures for dijkstracache routing model */
void model_dijkstra_both_end(AS_t as); /* finalize the creation of dijkstra routing model */
-void model_dijkstra_both_parse_route (AS_t rc, const char *src,
- const char *dst, route_t route);
+void model_dijkstra_both_parse_route (AS_t rc, sg_platf_route_cbarg_t route);
/* ************************************************************************** */
/* *************************** FULL ROUTING ********************************* */
AS_t model_full_create(void); /* create structures for full routing model */
void model_full_end(AS_t as); /* finalize the creation of full routing model */
void model_full_set_route( /* Set the route and ASroute between src and dst */
- AS_t rc, const char *src, const char *dst, route_t route);
+ AS_t rc, sg_platf_route_cbarg_t route);
+/* ************************************************************************** */
+/* ************************* GRAPH EXPORTING FUNCTIONS ********************** */
+xbt_node_t new_xbt_graph_node (xbt_graph_t graph, const char *name, xbt_dict_t nodes);
+xbt_edge_t new_xbt_graph_edge (xbt_graph_t graph, xbt_node_t s, xbt_node_t d, xbt_dict_t edges);
#endif /* _SURF_SURF_ROUTING_PRIVATE_H */