xbt_dynar_t p_storage;
RoutingEdgePtr p_netElm;
CpuPtr p_cpu;
- LinkPtr p_network;
+ Link* p_network; //FIXME:rename
/**
* @brief Get the list of virtual machines on the current Host
return cpu;
}
-LinkPtr NetworkL07Model::createLink(const char *name,
+Link* NetworkL07Model::createLink(const char *name,
double bw_initial,
tmgr_trace_t bw_trace,
double lat_initial,
public:
NetworkL07Model() : NetworkModel() {};
~NetworkL07Model() {surf_network_model = NULL;};
- LinkPtr createLink(const char *name,
+ Link* createLink(const char *name,
double bw_initial,
tmgr_trace_t bw_trace,
double lat_initial,
m_haveGap = false;
}
-LinkPtr NetworkCm02Model::createLink(const char *name,
+Link* NetworkCm02Model::createLink(const char *name,
double bw_initial,
tmgr_trace_t bw_trace,
double lat_initial,
"Link '%s' declared several times in the platform file.",
name);
- NetworkCm02LinkPtr nw_link =
+ NetworkCm02Link *nw_link =
new NetworkCm02Link(this, name, properties, p_maxminSystem, sg_bandwidth_factor * bw_initial, history,
state_initial, state_trace, bw_initial, bw_trace, lat_initial, lat_trace, policy);
lmm_constraint_t constraint = lmm_get_cnst_from_var(p_maxminSystem,
action->getVariable(),
i);
- NetworkCm02LinkPtr link = static_cast<NetworkCm02LinkPtr>(lmm_constraint_id(constraint));
+ NetworkCm02Link *link = static_cast<NetworkCm02Link*>(lmm_constraint_id(constraint));
TRACE_surf_link_set_utilization(link->getName(),
action->getCategory(),
(lmm_variable_getvalue(action->getVariable())*
lmm_constraint_t constraint = lmm_get_cnst_from_var(p_maxminSystem,
action->getVariable(),
i);
- NetworkCm02LinkPtr link = static_cast<NetworkCm02LinkPtr>(lmm_constraint_id(constraint));
+ NetworkCm02Link* link = static_cast<NetworkCm02Link*>(lmm_constraint_id(constraint));
TRACE_surf_link_set_utilization(link->getName(),
action->getCategory(),
(lmm_variable_getvalue(action->getVariable())*
{
unsigned int i;
void *_link;
- NetworkCm02LinkPtr link;
+ NetworkCm02Link *link;
int failed = 0;
NetworkCm02ActionPtr action = NULL;
double bandwidth_bound;
src->getName(), dst->getName());
xbt_dynar_foreach(route, i, _link) {
- link = static_cast<NetworkCm02LinkPtr>(_link);
+ link = static_cast<NetworkCm02Link*>(_link);
if (link->getState() == SURF_RESOURCE_OFF) {
failed = 1;
break;
if (sg_network_crosstraffic == 1) {
routing_platf->getRouteAndLatency(dst, src, &back_route, NULL);
xbt_dynar_foreach(back_route, i, _link) {
- link = static_cast<NetworkCm02LinkPtr>(_link);
+ link = static_cast<NetworkCm02Link*>(_link);
if (link->getState() == SURF_RESOURCE_OFF) {
failed = 1;
break;
bandwidth_bound = -1.0;
if (sg_weight_S_parameter > 0) {
xbt_dynar_foreach(route, i, _link) {
- link = static_cast<NetworkCm02LinkPtr>(_link);
+ link = static_cast<NetworkCm02Link*>(_link);
action->m_weight += sg_weight_S_parameter / link->getBandwidth();
}
}
xbt_dynar_foreach(route, i, _link) {
- link = static_cast<NetworkCm02LinkPtr>(_link);
+ link = static_cast<NetworkCm02Link*>(_link);
double bb = bandwidthFactor(size) * link->getBandwidth(); //(link->p_power.peak * link->p_power.scale);
bandwidth_bound =
(bandwidth_bound < 0.0) ? bb : min(bandwidth_bound, bb);
xbt_assert(!xbt_dynar_is_empty(route),
"Using a model with a gap (e.g., SMPI) with a platform without links (e.g. vivaldi)!!!");
- link = *static_cast<NetworkCm02LinkPtr *>(xbt_dynar_get_ptr(route, 0));
+ link = *static_cast<NetworkCm02Link **>(xbt_dynar_get_ptr(route, 0));
gapAppend(size, link, action);
XBT_DEBUG("Comm %p: %s -> %s gap=%f (lat=%f)",
action, src->getName(), dst->getName(), action->m_senderGap,
}
xbt_dynar_foreach(route, i, _link) {
- link = static_cast<NetworkCm02LinkPtr>(_link);
+ link = static_cast<NetworkCm02Link*>(_link);
lmm_expand(p_maxminSystem, link->getConstraint(), action->getVariable(), 1.0);
}
if (sg_network_crosstraffic == 1) {
XBT_DEBUG("Fullduplex active adding backward flow using 5%%");
xbt_dynar_foreach(back_route, i, _link) {
- link = static_cast<NetworkCm02LinkPtr>(_link);
+ link = static_cast<NetworkCm02Link*>(_link);
lmm_expand(p_maxminSystem, link->getConstraint(), action->getVariable(), .05);
}
}
/* connect all traces relative to network */
xbt_dict_foreach(trace_connect_list_link_avail, cursor, trace_name, elm) {
tmgr_trace_t trace = (tmgr_trace_t) xbt_dict_get_or_null(traces_set_list, trace_name);
- NetworkCm02LinkPtr link = static_cast<NetworkCm02LinkPtr>(
+ NetworkCm02Link *link = static_cast<NetworkCm02Link*>(
xbt_lib_get_or_null(link_lib, elm, SURF_LINK_LEVEL));
xbt_assert(link, "Cannot connect trace %s to link %s: link undefined",
xbt_dict_foreach(trace_connect_list_bandwidth, cursor, trace_name, elm) {
tmgr_trace_t trace = (tmgr_trace_t) xbt_dict_get_or_null(traces_set_list, trace_name);
- NetworkCm02LinkPtr link = static_cast<NetworkCm02LinkPtr>(
+ NetworkCm02Link *link = static_cast<NetworkCm02Link*>(
xbt_lib_get_or_null(link_lib, elm, SURF_LINK_LEVEL));
xbt_assert(link, "Cannot connect trace %s to link %s: link undefined",
xbt_dict_foreach(trace_connect_list_latency, cursor, trace_name, elm) {
tmgr_trace_t trace = (tmgr_trace_t) xbt_dict_get_or_null(traces_set_list, trace_name);
- NetworkCm02LinkPtr link = static_cast<NetworkCm02LinkPtr>(
+ NetworkCm02Link *link = static_cast<NetworkCm02Link*>(
xbt_lib_get_or_null(link_lib, elm, SURF_LINK_LEVEL));
xbt_assert(link, "Cannot connect trace %s to link %s: link undefined",
class NetworkCm02Model;
typedef NetworkCm02Model *NetworkCm02ModelPtr;
-class NetworkCm02Link;
-typedef NetworkCm02Link *NetworkCm02LinkPtr;
-
class NetworkCm02Action;
typedef NetworkCm02Action *NetworkCm02ActionPtr;
}
~NetworkCm02Model() {
}
- LinkPtr createLink(const char *name,
+ Link* createLink(const char *name,
double bw_initial,
tmgr_trace_t bw_trace,
double lat_initial,
class NetworkConstantModel;
typedef NetworkConstantModel *NetworkConstantModelPtr;
-class NetworkConstantLink;
-typedef NetworkConstantLink *NetworkConstantLinkPtr;
-
class NetworkConstantAction;
typedef NetworkConstantAction *NetworkConstantActionPtr;
xbt_dynar_t links, int nb_link)
{
void *_link;
- NetworkGTNetsLinkPtr link;
+ NetworkGTNetsLink *link;
unsigned int cursor;
int i = 0;
int *gtnets_links;
gtnets_links = xbt_new0(int, nb_link);
i = 0;
xbt_dynar_foreach(links, cursor, _link) {
- link = (NetworkGTNetsLinkPtr) _link;
+ link = (NetworkGTNetsLink*) _link;
gtnets_links[i++] = link->m_id;
}
}
void newRouteOnehop(int src_id, int dst_id,
- NetworkGTNetsLinkPtr link)
+ NetworkGTNetsLink *link)
{
if (gtnets_add_onehop_route(src_id, dst_id, link->m_id)) {
xbt_die("Cannot create GTNetS route");
class NetworkGTNetsModel;
typedef NetworkGTNetsModel *NetworkGTNetsModelPtr;
-class NetworkGTNetsLink;
-typedef NetworkGTNetsLink *NetworkGTNetsLinkPtr;
-
class NetworkGTNetsAction;
typedef NetworkGTNetsAction *NetworkGTNetsActionPtr;
* Callbacks *
*************/
-surf_callback(void, LinkPtr) networkLinkCreatedCallbacks;
-surf_callback(void, LinkPtr) networkLinkDestructedCallbacks;
-surf_callback(void, LinkPtr, e_surf_resource_state_t, e_surf_resource_state_t) networkLinkStateChangedCallbacks;
+surf_callback(void, Link*) networkLinkCreatedCallbacks;
+surf_callback(void, Link*) networkLinkDestructedCallbacks;
+surf_callback(void, Link*, e_surf_resource_state_t, e_surf_resource_state_t) networkLinkStateChangedCallbacks;
surf_callback(void, NetworkActionPtr, e_surf_action_state_t, e_surf_action_state_t) networkActionStateChangedCallbacks;
surf_callback(void, NetworkActionPtr, RoutingEdgePtr src, RoutingEdgePtr dst, double size, double rate) networkCommunicateCallbacks;
/** @ingroup SURF_callbacks
* @brief Callbacks handler which emits the callbacks after Link creation
- * @details Callback functions have the following signature: `void(LinkPtr)`
+ * @details Callback functions have the following signature: `void(Link*)`
*/
-XBT_PUBLIC_DATA( surf_callback(void, LinkPtr)) networkLinkCreatedCallbacks;
+XBT_PUBLIC_DATA( surf_callback(void, Link*)) networkLinkCreatedCallbacks;
/** @ingroup SURF_callbacks
* @brief Callbacks handler which emits the callbacks after Link destruction
- * @details Callback functions have the following signature: `void(LinkPtr)`
+ * @details Callback functions have the following signature: `void(Link*)`
*/
-XBT_PUBLIC_DATA( surf_callback(void, LinkPtr)) networkLinkDestructedCallbacks;
+XBT_PUBLIC_DATA( surf_callback(void, Link*)) networkLinkDestructedCallbacks;
/** @ingroup SURF_callbacks
* @brief Callbacks handler which emits the callbacks after Link State changed
* @details Callback functions have the following signature: `void(LinkActionPtr action, e_surf_resource_state_t old, e_surf_resource_state_t current)`
*/
-XBT_PUBLIC_DATA( surf_callback(void, LinkPtr, e_surf_resource_state_t, e_surf_resource_state_t)) networkLinkStateChangedCallbacks;
+XBT_PUBLIC_DATA( surf_callback(void, Link*, e_surf_resource_state_t, e_surf_resource_state_t)) networkLinkStateChangedCallbacks;
/** @ingroup SURF_callbacks
* @brief Callbacks handler which emits the callbacks after NetworkAction State changed
* @param properties Dictionary of properties associated to this Resource
* @return The created Link
*/
- virtual LinkPtr createLink(const char *name,
+ virtual Link* createLink(const char *name,
double bw_initial,
tmgr_trace_t bw_trace,
double lat_initial,
e_surf_link_sharing_policy_t policy,
xbt_dict_t properties)=0;
- virtual void gapAppend(double /*size*/, const LinkPtr /*link*/, NetworkActionPtr /*action*/) {};
+ virtual void gapAppend(double /*size*/, const Link* /*link*/, NetworkActionPtr /*action*/) {};
/**
* @brief Create a communication between two hosts.
if(!IPV4addr) IPV4addr = xbt_dynar_new(sizeof(char*),free);
- LinkPtr net_link = surf_network_model->createLink(link->id,
+ Link* net_link = surf_network_model->createLink(link->id,
link->bandwidth,
link->bandwidth_trace,
link->latency,
xbt_dynar_foreach(onelink_routes, iter, onelink) {
char *src = onelink->p_src->getName();
char *dst = onelink->p_dst->getName();
- NetworkNS3LinkPtr link = static_cast<NetworkNS3LinkPtr>(onelink->p_link);
+ NetworkNS3Link *link = static_cast<NetworkNS3Link *>(onelink->p_link);
if (strcmp(src,dst) && link->m_created){
XBT_DEBUG("Route from '%s' to '%s' with link '%s'", src, dst, link->getName());
*********/
static void free_ns3_link(void * elmts)
{
- delete static_cast<NetworkNS3LinkPtr>(elmts);
+ delete static_cast<NetworkNS3Link*>(elmts);
}
static void free_ns3_host(void * elmts)
xbt_dict_free(&dict_socket);
}
-LinkPtr NetworkNS3Model::createLink(const char *name,
+Link* NetworkNS3Model::createLink(const char *name,
double bw_initial,
tmgr_trace_t bw_trace,
double lat_initial,
routing_get_route_and_latency (action->p_srcElm, action->p_dstElm, &route, NULL);
unsigned int i;
for (i = 0; i < xbt_dynar_length (route); i++){
- NetworkNS3LinkPtr link = ((NetworkNS3LinkPtr)xbt_dynar_get_ptr (route, i));
+ NetworkNS3Link* link = ((NetworkNS3Link*)xbt_dynar_get_ptr (route, i));
TRACE_surf_link_set_utilization (link->getName(),
action->getCategory(),
(data_delta_sent)/delta,
class NetworkNS3Model;
typedef NetworkNS3Model *NetworkNS3ModelPtr;
-class NetworkNS3Link;
-typedef NetworkNS3Link *NetworkNS3LinkPtr;
-
class NetworkNS3Action;
typedef NetworkNS3Action *NetworkNS3ActionPtr;
NetworkNS3Model();
~NetworkNS3Model();
- LinkPtr createLink(const char *name,
+ Link* createLink(const char *name,
double bw_initial,
tmgr_trace_t bw_trace,
double lat_initial,
}
}
-void NetworkSmpiModel::gapAppend(double size, const LinkPtr link, NetworkActionPtr action)
+void NetworkSmpiModel::gapAppend(double size, Link* link, NetworkActionPtr action)
{
const char *src = link->getName();
xbt_fifo_t fifo;
- //surf_action_network_CM02_t last_action;
- //double bw;
if (sg_sender_gap > 0.0) {
if (!gap_lookup) {
NetworkSmpiModel();
~NetworkSmpiModel();
- void gapAppend(double size, const LinkPtr link, NetworkActionPtr action);
+ void gapAppend(double size, Link* link, NetworkActionPtr action);
void gapRemove(ActionPtr action);
double latencyFactor(double size);
double bandwidthFactor(double size);
}
void surf_as_cluster_set_backbone(AS_t as, void* backbone){
- static_cast<AsClusterPtr>(as)->p_backbone = static_cast<LinkPtr>(backbone);
+ static_cast<AsClusterPtr>(as)->p_backbone = static_cast<Link*>(backbone);
}
const char *surf_model_name(surf_model_t model){
static XBT_INLINE void surf_link_free(void *r)
{
- delete static_cast<LinkPtr>(r);
+ delete static_cast<Link*>(r);
}
static XBT_INLINE void surf_host_free(void *r)
info = xbt_dynar_get_as(p_linkUpDownList, src->getId() * p_nb_links_per_node, s_surf_parsing_link_up_down_t);
xbt_dynar_push_as(route->link_list, void *, info.link_up);
if (lat)
- *lat += static_cast<LinkPtr>(info.link_up)->getLatency();
+ *lat += static_cast<Link*>(info.link_up)->getLatency();
return;
}
if (info.link_up) { // link up
xbt_dynar_push_as(route->link_list, void *, info.link_up);
if (lat)
- *lat += static_cast<LinkPtr>(info.link_up)->getLatency();
+ *lat += static_cast<Link*>(info.link_up)->getLatency();
}
}
if (info.link_down) { // link down
xbt_dynar_push_as(route->link_list, void *, info.link_down);
if (lat)
- *lat += static_cast<LinkPtr>(info.link_down)->getLatency();
+ *lat += static_cast<Link*>(info.link_down)->getLatency();
}
if (p_has_limiter){ // limiter for receiver
info = xbt_dynar_get_as(p_linkUpDownList, dst->getId() * p_nb_links_per_node + p_has_loopback, s_surf_parsing_link_up_down_t);
int parsePU(RoutingEdgePtr elm); /* A host or a router, whatever */
int parseAS(RoutingEdgePtr elm);
virtual void create_links_for_node(sg_platf_cluster_cbarg_t cluster, int id, int rank, int position);
- LinkPtr p_backbone;
+ Link* p_backbone;
void *p_loopback;
RoutingEdgePtr p_router;
int p_has_limiter;
xbt_dynar_push_as(route->link_list, void *, info.link_up);
if (lat)
- *lat += static_cast<LinkPtr>(info.link_up)->getLatency();
+ *lat += static_cast<Link*>(info.link_up)->getLatency();
return;
}
xbt_dynar_push_as(route->link_list,void*,info.link_down);
if (lat)
- *lat += static_cast<LinkPtr>(info.link_down)->getLatency();
+ *lat += static_cast<Link*>(info.link_down)->getLatency();
}else{
xbt_dynar_push_as(route->link_list,void*,info.link_up);
if (lat)
- *lat += static_cast<LinkPtr>(info.link_up)->getLatency();
+ *lat += static_cast<Link*>(info.link_up)->getLatency();
}
current_node = next_node;
next_node = 0;
xbt_dynar_foreach(links, cpt, link) {
xbt_dynar_unshift(route->link_list, &link);
if (lat)
- *lat += static_cast<LinkPtr>(link)->getLatency();
+ *lat += static_cast<Link*>(link)->getLatency();
}
}
xbt_dynar_foreach(links, cpt, link) {
xbt_dynar_insert_at(route->link_list, pos, &link);
if (lat)
- *lat += static_cast<LinkPtr>(link)->getLatency();
+ *lat += static_cast<Link*>(link)->getLatency();
pos++;
}
}
xbt_dynar_foreach(links, cpt, link) {
xbt_dynar_unshift(route->link_list, &link);
if (lat)
- *lat += static_cast<LinkPtr>(link)->getLatency();
+ *lat += static_cast<Link*>(link)->getLatency();
}
size++;
}
xbt_dynar_foreach(links, cpt, link) {
xbt_dynar_push_as(res->link_list, sg_routing_link_t, link);
if (lat)
- *lat += static_cast<LinkPtr>(link)->getLatency();
+ *lat += static_cast<Link*>(link)->getLatency();
}
prev_dst_gw = e_route->gw_dst;
xbt_dynar_foreach(e_route->link_list, cpt, link) {
xbt_dynar_push(res->link_list, &link);
if (lat)
- *lat += static_cast<LinkPtr>(link)->getLatency();
+ *lat += static_cast<Link*>(link)->getLatency();
}
}
}
sg_platf_route_cbarg_t new_e_route = NULL;
if (e_route_bypass) {
- LinkPtr link;
+ Link* link;
unsigned int cpt = 0;
new_e_route = xbt_new0(s_sg_platf_route_cbarg_t, 1);
new_e_route->gw_src = e_route_bypass->gw_src;
if(info.link_up) { // link up
xbt_dynar_push_as(route->link_list, void*, info.link_up);
if (lat)
- *lat += static_cast<LinkPtr>(info.link_up)->getLatency();
+ *lat += static_cast<Link*>(info.link_up)->getLatency();
}
}
src_ctn = (xbt_dynar_t) xbt_lib_get_or_null(host_lib, tmp_src_name, COORD_HOST_LEVEL);
if(info.link_down) { // link down
xbt_dynar_push_as(route->link_list,void*,info.link_down);
if (lat)
- *lat += static_cast<LinkPtr>(info.link_down)->getLatency();
+ *lat += static_cast<Link*>(info.link_down)->getLatency();
}
}
dst_ctn = (xbt_dynar_t) xbt_lib_get_or_null(host_lib, tmp_dst_name, COORD_HOST_LEVEL);