SG_BEGIN_DECL()
/* Actions and models are highly connected structures... */
-typedef enum {
- SURF_LINK_FULLDUPLEX = 2,
- SURF_LINK_SHARED = 1,
- SURF_LINK_FATPIPE = 0
-} e_surf_link_sharing_policy_t;
-
typedef enum {
SURF_NETWORK_ELEMENT_NULL = 0, /* NULL */
SURF_NETWORK_ELEMENT_HOST, /* host type */
SURF_NETWORK_ELEMENT_AS, /* AS type */
} e_surf_network_element_type_t;
-XBT_PUBLIC(e_surf_network_element_type_t) get_network_element_type(const char
- *name);
+XBT_PUBLIC(e_surf_network_element_type_t)
+ routing_get_network_element_type(const char *name);
/** @Brief Specify that we use that action */
XBT_PUBLIC(void) surf_action_ref(surf_action_t action);
typedef struct surf_model_description {
const char *name;
const char *description;
- surf_model_t model;
- void (*model_init_preparse) (void);
- void (*model_init_postparse) (void);
+ void_f_void_t model_init_preparse;
} s_surf_model_description_t, *surf_model_description_t;
-XBT_PUBLIC(void) update_model_description(s_surf_model_description_t *
- table, const char *name,
- surf_model_t model);
XBT_PUBLIC(int) find_model_description(s_surf_model_description_t * table,
const char *name);
XBT_PUBLIC(void) model_help(const char *category,
surf_action_t(*communicate) (const char *src_name,
const char *dst_name,
double size, double rate);
- xbt_dynar_t(*get_route) (const char *src_name, const char *dst_name);
+ xbt_dynar_t(*get_route) (const char *src_name, const char *dst_name); //FIXME: kill field? That is done by the routing nowadays
double (*get_link_bandwidth) (const void *link);
double (*get_link_latency) (const void *link);
int (*link_shared) (const void *link);
surf_action_t(*communicate) (void *workstation_src, /**< Execute a communication amount between two workstations */
void *workstation_dst, double size,
double max_rate);
+ // FIXME: kill next field, which duplicates the routing
xbt_dynar_t(*get_route) (void *workstation_src, void *workstation_dst); /**< Get the list of links between two ws */
surf_action_t(*execute_parallel_task) (int workstation_nb, /**< Execute a parallel task on several workstations */
*/
XBT_PUBLIC(void) surf_init(int *argc, char **argv); /* initialize common structures */
-/** \brief create the elements of the models
- *
- * Must be called after parsing the platform file and before using any elements
- */
-XBT_PUBLIC(void) surf_config_models_create_elms(void);
-
/** \brief Finish simulation initialization
* \ingroup SURF_simulation
*
/* Prototypes of the functions that handle the properties */
XBT_PUBLIC_DATA(xbt_dict_t) current_property_set; /* the prop set for the currently parsed element (also used in SIMIX) */
-XBT_PUBLIC_DATA(void) parse_properties(const char* prop_id, const char* prop_value);
-XBT_PUBLIC_DATA(void) parse_properties_XML(void);
+XBT_PUBLIC(void) parse_properties(void);
/* surf parse file related (public because called from a test suite) */
XBT_PUBLIC(void) parse_platform_file(const char *file);
XBT_PUBLIC(double) get_cpu_power(const char *power);
-/*public interface to create resource bypassing the parser via cpu/network model
- *
- * see surfxml_parse.c
- * */
-XBT_PUBLIC(void*) surf_host_create_resource(char *name, double power_peak,
- double power_scale,
- tmgr_trace_t power_trace,
- int core,
- e_surf_resource_state_t
- state_initial,
- tmgr_trace_t state_trace,
- xbt_dict_t cpu_properties);
-
-/*public interface to create resource bypassing the parser via workstation_ptask_L07 model
- *
- * see surfxml_parse.c
- * */
-XBT_PUBLIC(void*) surf_wsL07_host_create_resource(char *name,
- double power_peak,
- double power_scale,
- tmgr_trace_t power_trace,
- e_surf_resource_state_t
- state_initial,
- tmgr_trace_t state_trace,
- xbt_dict_t
- cpu_properties);
-/**
- * create link resource
- * see surfxml_parse.c
- */
-XBT_PUBLIC(void*) surf_link_create_resource(char *name,
- double bw_initial,
- tmgr_trace_t bw_trace,
- double lat_initial,
- tmgr_trace_t lat_trace,
- e_surf_resource_state_t
- state_initial,
- tmgr_trace_t state_trace,
- e_surf_link_sharing_policy_t
- policy, xbt_dict_t properties);
-
-
-XBT_PUBLIC(void*) surf_wsL07_link_create_resource(char *name,
- double bw_initial,
- tmgr_trace_t bw_trace,
- double lat_initial,
- tmgr_trace_t lat_trace,
- e_surf_resource_state_t
- state_initial,
- tmgr_trace_t state_trace,
- e_surf_link_sharing_policy_t
- policy,
- xbt_dict_t properties);
-/**
- * add route element (link_ctn) bypassing the parser
- *
- * see surfxml_parse.c
- *
- */
-XBT_PUBLIC(void) surf_add_route_element(char *link_ctn_id);
-
-/**
- * set route src_id,dest_id, and create a route resource
- *
- * see surf_routing.c && surfxml_parse.c
- */
-
-XBT_PUBLIC(void) surf_set_routes(void);
-
-
-/**
- * add traces
- * see surfxml_parse.c
- */
-XBT_PUBLIC(void) surf_add_host_traces(void);
-XBT_PUBLIC(void) surf_add_link_traces(void);
-XBT_PUBLIC(void) surf_wsL07_add_traces(void);
-
-/*
- * lua console
- */
-// add host to network element list
-XBT_PUBLIC(void) routing_add_host(const char *host_id);
-//Set a new link on the actual list of link for a route or ASroute
-XBT_PUBLIC(void) routing_add_link(const char *link_id);
-//Set the endpoints for a route
-XBT_PUBLIC(void) routing_set_route(const char *src_id, const char *dst_id);
-//Store the route
-XBT_PUBLIC(void) routing_store_route(void);
-
-/*
- * interface between surf and lua bindings
- * see surfxml_parse.c
- */
-XBT_PUBLIC(void) surf_route_add_host(const char *id);
-XBT_PUBLIC(void) surf_routing_add_route(const char *src_id,
- const char *dest_id,
- xbt_dynar_t links_id);
-
-#include "surf/surf_resource.h"
-#include "surf/surf_resource_lmm.h"
-
SG_END_DECL()
#endif /* _SURF_SURF_H */