+routing_t used_routing = NULL;
+
+/* Prototypes of each model */
+static void routing_model_full_create(size_t size_of_link,void *loopback);
+
+/* Definition of each model */
+struct model_type {
+ const char *name;
+ const char *desc;
+ void (*fun)(size_t,void*);
+};
+struct model_type models[] =
+{ {"Full", "Full routing data (fast, large memory requirements, fully expressive)", routing_model_full_create },
+ {NULL,NULL}};
+
+
+void routing_model_create(size_t size_of_links, void* loopback) {
+
+ char * wanted=xbt_cfg_get_string(_surf_cfg_set,"routing");
+ int cpt;
+ for (cpt=0;models[cpt].name;cpt++) {
+ if (!strcmp(wanted,models[cpt].name)) {
+ (*(models[cpt].fun))(size_of_links,loopback);
+ return;
+ }
+ }
+ fprintf(stderr,"Routing model %s not found. Existing models:\n",wanted);
+ for (cpt=0;models[cpt].name;cpt++)
+ if (!strcmp(wanted,models[cpt].name))
+ fprintf(stderr," %s: %s\n",models[cpt].name,models[cpt].desc);
+ exit(1);
+}
+
+/* ************************************************************************** */
+/* *************************** FULL ROUTING ********************************* */