+
+// FIXME: the next lines cant be comented without fix the code in network.c file.
+// struct s_routing {
+// const char *name;
+// xbt_dict_t host_id; /* char* -> int* */
+// xbt_dynar_t (*get_route)(int src, int dst);
+// xbt_dict_t (*get_onelink_routes)(void);
+// int (*is_router)(int id);
+// void (*finalize)(void);
+// int host_count;
+// int router_count;
+// };
+
+////////////////////////////////////////////////////////////////////////////////
+// HERE START THE NEW STRUCTURES
+////////////////////////////////////////////////////////////////////////////////
+
+typedef enum {
+ SURF_NETWORK_ELEMENT_NULL = 0, /* NULL */
+ SURF_NETWORK_ELEMENT_HOST, /* host type */
+ SURF_NETWORK_ELEMENT_ROUTER, /* router type */
+ SURF_NETWORK_ELEMENT_GATEWAY, /* gateway type of the AS */
+ SURF_NETWORK_ELEMENT_AS, /* AS type */
+ SURF_NETWORK_ELEMENT_AS_GATEWAY, /* gateway type for internals AS */
+ SURF_NETWORK_ELEMENT_LINK /* link type */
+} e_surf_network_element_type_t;
+
+typedef struct s_model_type s_model_type_t, *model_type_t;
+typedef struct s_network_element s_network_element_t, *network_element_t;
+typedef struct s_route s_route_t, *route_t;
+typedef struct s_route_limits s_route_limits_t, *route_limits_t;
+typedef struct s_route_extended s_route_extended_t, *route_extended_t;
+typedef struct s_routing_component s_routing_component_t, *routing_component_t;
+//typedef struct s_routing_global s_routing_global_t, *routing_global_t;
+
+struct s_model_type {