-/* Copyright (c) 2004-2014. The SimGrid Team.
+/* Copyright (c) 2004-2015. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
#include "xbt/dict.h"
#include "xbt/graph.h"
#include "xbt/misc.h"
-#include "portable.h"
#include "xbt/config.h"
+#include "src/portable.h"
#include "surf/datatypes.h"
#include "xbt/lib.h"
#include "surf/surf_routing.h"
/* Actions and models are highly connected structures... */
/* user-visible parameters */
-extern double sg_tcp_gamma;
-extern double sg_sender_gap;
-extern double sg_latency_factor;
-extern double sg_bandwidth_factor;
-extern double sg_weight_S_parameter;
-extern int sg_network_crosstraffic;
-#ifdef HAVE_GTNETS
-extern double sg_gtnets_jitter;
-extern int sg_gtnets_jitter_seed;
-#endif
-extern xbt_dynar_t surf_path;
+extern XBT_PRIVATE double sg_tcp_gamma;
+extern XBT_PRIVATE double sg_sender_gap;
+extern XBT_PRIVATE double sg_latency_factor;
+extern XBT_PRIVATE double sg_bandwidth_factor;
+extern XBT_PRIVATE double sg_weight_S_parameter;
+extern XBT_PRIVATE int sg_network_crosstraffic;
+extern XBT_PRIVATE xbt_dynar_t surf_path;
typedef enum {
SURF_NETWORK_ELEMENT_NULL = 0, /* NULL */
class Action;
class ActionLmm;
class StorageActionLmm;
-struct As;
-struct RoutingEdge;
+class As;
+class RoutingEdge;
class RoutingPlatf;
#else
typedef struct Model Model;
/** @ingroup SURF_interface
* @brief Action states
*
- * Action states.
- *
* @see Action
*/
typedef enum {
return xbt_lib_get_elm_or_null(storage_lib, name);
}
-XBT_PUBLIC(void *) surf_as_cluster_get_backbone(AS_t as);
-XBT_PUBLIC(void) surf_as_cluster_set_backbone(AS_t as, void* backbone);
-
/** @{ @ingroup SURF_c_bindings */
-/** @brief Get the name of a surf model (dont rely on exact value)
- *
- * This is implemented using typeid(), so it may change with the compiler
- */
-XBT_PUBLIC(const char *) surf_model_name(surf_model_t model);
-
/**
* @brief Pop an action from the done actions set
*
surf_resource_set_state((surf_cpp_resource_t)host, state);
}
-/**
- * @brief Get the speed of the cpu associated to a host
- *
- * @param resource The surf host
- * @param load [description]
- *
- * @return [description]
- */
+/** @brief Get the speed of the cpu associated to a host */
XBT_PUBLIC(double) surf_host_get_speed(surf_resource_t resource, double load);
-/**
- * @brief Get the available speed of cpu associated to a host
- *
- * @param resource The surf host
- * @return [description]
- */
+/** @brief Get the available speed of cpu associated to a host */
XBT_PUBLIC(double) surf_host_get_available_speed(surf_resource_t host);
/** @brief Get the number of cores of the cpu associated to a host */
*/
XBT_PUBLIC(void) surf_network_model_init_CM02(void);
-#ifdef HAVE_GTNETS
-/** \ingroup SURF_models
- * \brief Initializes the platform with the network model GTNETS
- * \param filename XML platform file name
- *
- * This function is called by surf_host_model_init_GTNETS
- * or by yourself only if you plan using surf_host_model_init_compound
- *
- * \see surf_host_model_init_GTNETS()
- */
-XBT_PUBLIC(void) surf_network_model_init_GTNETS(void);
-#endif
-
#ifdef HAVE_NS3
/** \ingroup SURF_models
* \brief Initializes the platform with the network model NS3
- * \param filename XML platform file name
*
* This function is called by surf_host_model_init_NS3
* or by yourself only if you plan using surf_host_model_init_compound
/** \ingroup SURF_models
* \brief Initializes the platform with the network model Reno
- * \param filename XML platform file name
*
* The problem is related to max( sum( arctan(C * Df * xi) ) ).
*
/** \ingroup SURF_models
* \brief Initializes the platform with the network model Reno2
- * \param filename XML platform file name
*
* The problem is related to max( sum( arctan(C * Df * xi) ) ).
*
/** \ingroup SURF_models
* \brief Initializes the platform with the network model Vegas
- * \param filename XML platform file name
*
* This problem is related to max( sum( a * Df * ln(xi) ) ) which is equivalent
* to the proportional fairness.
/** \ingroup SURF_models
* \brief List of initialized models
*/
-XBT_PUBLIC_DATA(xbt_dynar_t) model_list;
-XBT_PUBLIC_DATA(xbt_dynar_t) model_list_invoke;
+XBT_PUBLIC_DATA(xbt_dynar_t) all_existing_models;
/** \ingroup SURF_simulation
- * \brief List of hosts that have juste restarted and whose autorestart process should be restarted.
+ * \brief List of hosts that have just restarted and whose autorestart process should be restarted.
*/
XBT_PUBLIC_DATA(xbt_dynar_t) host_that_restart;
xbt_graph_t instr_routing_platform_graph (void);
void instr_routing_platform_graph_export_graphviz (xbt_graph_t g, const char *filename);
+/********** Routing **********/
+void routing_AS_begin(sg_platf_AS_cbarg_t AS);
+void routing_AS_end(void);
+RoutingEdge *routing_add_host(As* as, sg_platf_host_cbarg_t host);
+void routing_cluster_add_backbone(void* bb);
+As* routing_get_current();
+
SG_END_DECL()
#endif /* _SURF_SURF_H */