#include "xbt/config.h"
#include "surf/datatypes.h"
#include "xbt/lib.h"
-
-xbt_lib_t host_lib;
-int ROUTING_HOST_LEVEL; //Routing level
-int SURF_CPU_LEVEL; //Surf cpu level
-int SURF_WKS_LEVEL; //Surf workstation level
-int SIMIX_HOST_LEVEL; //Simix level
-int MSG_HOST_LEVEL; //Msg level
-int SD_HOST_LEVEL; //Simdag level
-int COORD_HOST_LEVEL; //Coordinates level
-int NS3_HOST_LEVEL; //host node for ns3
-
-xbt_lib_t link_lib;
-int SD_LINK_LEVEL; //Simdag level
-int SURF_LINK_LEVEL; //Surf level
-int NS3_LINK_LEVEL; //link for ns3
-
-xbt_lib_t as_router_lib;
-int ROUTING_ASR_LEVEL; //Routing level
-int COORD_ASR_LEVEL; //Coordinates level
-int NS3_ASR_LEVEL; //host node for ns3
+#include "surf/surf_routing.h"
SG_BEGIN_DECL()
/* Actions and models are highly connected structures... */
const char *name;
const char *description;
surf_model_t model;
- void (*model_init_preparse) (const char *filename);
+ void (*model_init_preparse) (void);
void (*model_init_postparse) (void);
} s_surf_model_description_t, *surf_model_description_t;
e_surf_resource_state_t(*get_state) (void *cpu);
double (*get_speed) (void *cpu, double load);
double (*get_available_speed) (void *cpu);
- void (*create_resource) (char *name, double power_peak,
+ void* (*create_resource) (const char *name, double power_peak,
double power_scale,
tmgr_trace_t power_trace,
int core,
double (*get_link_latency) (const void *link);
int (*link_shared) (const void *link);
void (*add_traces) (void);
- void (*create_resource) (char *name,
+ void* (*create_resource) (const char *name,
double bw_initial,
tmgr_trace_t bw_trace,
double lat_initial,
double (*get_link_latency) (const void *link); /**< Return the current latency of a network link */
int (*link_shared) (const void *link);
xbt_dict_t(*get_properties) (const void *resource);
- void (*link_create_resource) (char *name,
+ void* (*link_create_resource) (const char *name,
double bw_initial,
tmgr_trace_t bw_trace,
double lat_initial,
tmgr_trace_t state_trace,
e_surf_link_sharing_policy_t
policy, xbt_dict_t properties);
- void (*cpu_create_resource) (char *name, double power_peak,
+ void* (*cpu_create_resource) (const char *name, double power_peak,
double power_scale,
tmgr_trace_t power_trace,
e_surf_resource_state_t state_initial,
*
* \see surf_workstation_model_init_CLM03()
*/
-XBT_PUBLIC(void) surf_cpu_model_init_Cas01(const char *filename);
+XBT_PUBLIC(void) surf_cpu_model_init_Cas01(void);
/** \brief Initializes the CPU model with trace integration
* \ingroup SURF_models
*
*/
-XBT_PUBLIC(void) surf_cpu_model_init_ti(const char *filename);
+XBT_PUBLIC(void) surf_cpu_model_init_ti(void);
/** \brief Initializes the CPU model with the model Cas01 Improved. This model uses a heap to order the events, decreasing the time complexity to get the minimum next event.
* \ingroup SURF_models
*
* \see surf_workstation_model_init_CLM03()
*/
-XBT_PUBLIC(void) surf_cpu_model_init_Cas01_im(const char *filename);
+XBT_PUBLIC(void) surf_cpu_model_init_Cas01_im(void);
/** \brief The list of all available cpu model models
* \ingroup SURF_models
*
* \see surf_workstation_model_init_SMPI()
*/
-XBT_PUBLIC(void) surf_network_model_init_SMPI(const char *filename);
+XBT_PUBLIC(void) surf_network_model_init_SMPI(void);
/** \brief Initializes the platform with the network model 'LagrangeVelho'
* \ingroup SURF_models
*
* \see surf_workstation_model_init_LegrandVelho()
*/
-XBT_PUBLIC(void) surf_network_model_init_LegrandVelho(const char
- *filename);
+XBT_PUBLIC(void) surf_network_model_init_LegrandVelho(void);
/** \brief Initializes the platform with the network model 'LV08_im'
*
* \see surf_workstation_model_init_LegrandVelho()
*/
-XBT_PUBLIC(void) im_surf_network_model_init_LegrandVelho(const char
- *filename);
+XBT_PUBLIC(void) im_surf_network_model_init_LegrandVelho(void);
/** \brief Initializes the platform with the network model 'Constant'
* \ingroup SURF_models
*
* \see surf_workstation_model_init_compound()
*/
-XBT_PUBLIC(void) surf_network_model_init_Constant(const char *filename);
+XBT_PUBLIC(void) surf_network_model_init_Constant(void);
/** \brief Initializes the platform with the network model CM02
* \ingroup SURF_models
*
* \see surf_workstation_model_init_CLM03()
*/
-XBT_PUBLIC(void) surf_network_model_init_CM02(const char *filename);
+XBT_PUBLIC(void) surf_network_model_init_CM02(void);
/**
* brief initialize the the network model bypassing the XML parser
*
* \see surf_workstation_model_init_GTNETS()
*/
-XBT_PUBLIC(void) surf_network_model_init_GTNETS(const char *filename);
+XBT_PUBLIC(void) surf_network_model_init_GbTNETS(void);
#endif
#ifdef HAVE_NS3
*
* \see surf_workstation_model_init_NS3()
*/
-XBT_PUBLIC(void) surf_network_model_init_NS3(const char *filename);
+XBT_PUBLIC(void) surf_network_model_init_NS3(void);
XBT_PUBLIC(void) parse_ns3_add_host(void);
XBT_PUBLIC(void) parse_ns3_add_router(void);
XBT_PUBLIC(void) parse_ns3_add_ASroute(void);
XBT_PUBLIC(void) parse_ns3_add_cluster(void);
XBT_PUBLIC(void) parse_ns3_end_platform(void);
+XBT_PUBLIC(void) create_ns3_topology(void);
+XBT_PUBLIC(double) ns3_get_link_latency(const void *link);
+XBT_PUBLIC(double) ns3_get_link_bandwidth(const void *link);
#endif
* Call this function only if you plan using surf_workstation_model_init_compound.
*
*/
-XBT_PUBLIC(void) surf_network_model_init_Reno(const char *filename);
+XBT_PUBLIC(void) surf_network_model_init_Reno(void);
/** \brief Initializes the platform with the network model Reno2
* \ingroup SURF_models
* Call this function only if you plan using surf_workstation_model_init_compound.
*
*/
-XBT_PUBLIC(void) surf_network_model_init_Reno2(const char *filename);
+XBT_PUBLIC(void) surf_network_model_init_Reno2(void);
/** \brief Initializes the platform with the network model Vegas
* \ingroup SURF_models
* Call this function only if you plan using surf_workstation_model_init_compound.
*
*/
-XBT_PUBLIC(void) surf_network_model_init_Vegas(const char *filename);
+XBT_PUBLIC(void) surf_network_model_init_Vegas(void);
/** \brief The list of all available network model models
* \ingroup SURF_models
* network_model have been set up.
*
*/
-XBT_PUBLIC(void) surf_workstation_model_init_compound(const char
- *filename);
+XBT_PUBLIC(void) surf_workstation_model_init_compound(void);
/** \brief Initializes the platform with the workstation model CLM03
* \ingroup SURF_models
*
* \see surf_workstation_model_init_KCCFLN05()
*/
-XBT_PUBLIC(void) surf_workstation_model_init_CLM03(const char *filename);
+XBT_PUBLIC(void) surf_workstation_model_init_CLM03(void);
/** \brief Initializes the platform with the model KCCFLN05
* \ingroup SURF_models
* SimDag.
*
*/
-XBT_PUBLIC(void) surf_workstation_model_init_KCCFLN05(const char
- *filename);
+XBT_PUBLIC(void) surf_workstation_model_init_KCCFLN05(void);
/** \brief Initializes the platform with the model KCCFLN05
* \ingroup SURF_models
* the model to each action.
*
*/
-XBT_PUBLIC(void) surf_workstation_model_init_ptask_L07(const char
- *filename);
+XBT_PUBLIC(void) surf_workstation_model_init_ptask_L07(void);
/** \brief The list of all available workstation model models
* \ingroup SURF_models
*/
XBT_PUBLIC(void) surf_init(int *argc, char **argv); /* initialize common structures */
-/** \brief Initialize the used models.
- *
- * Must be called after the surf_init so that configuration infrastructure is created
- * Must be called before parsing/creating the environment
- * Must not be called within the initialization process so that the use get a chance to change the settings from
- * its code between, say, MSG_init and MSG_create_environment using MSG_config
- */
-XBT_PUBLIC(void) surf_config_models_setup(const char *platform_file);
-
/** \brief create the elements of the models
*
* Must be called after parsing the platform file and before using any elements
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_DATA(void) parse_properties_lua(const char* prop_id, const char* prop_value);
/* surf parse file related (public because called from a test suite) */
XBT_PUBLIC(void) parse_platform_file(const char *file);
*
* see surfxml_parse.c
* */
-XBT_PUBLIC(void) surf_host_create_resource(char *name, double power_peak,
+XBT_PUBLIC(void*) surf_host_create_resource(char *name, double power_peak,
double power_scale,
tmgr_trace_t power_trace,
int core,
*
* see surfxml_parse.c
* */
-XBT_PUBLIC(void) surf_wsL07_host_create_resource(char *name,
+XBT_PUBLIC(void*) surf_wsL07_host_create_resource(char *name,
double power_peak,
double power_scale,
tmgr_trace_t power_trace,
* create link resource
* see surfxml_parse.c
*/
-XBT_PUBLIC(void) surf_link_create_resource(char *name,
+XBT_PUBLIC(void*) surf_link_create_resource(char *name,
double bw_initial,
tmgr_trace_t bw_trace,
double lat_initial,
policy, xbt_dict_t properties);
-XBT_PUBLIC(void) surf_wsL07_link_create_resource(char *name,
+XBT_PUBLIC(void*) surf_wsL07_link_create_resource(char *name,
double bw_initial,
tmgr_trace_t bw_trace,
double lat_initial,
* interface between surf and lua bindings
* see surfxml_parse.c
*/
-XBT_PUBLIC(void) surf_AS_new(const char *id, const char *mode);
-XBT_PUBLIC(void) surf_AS_finalize(const char *id);
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,