X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/5787a5c839c1f49fec942290449d18b72b036d98..28200591a8ba30e8b362400419b03bc94205198e:/src/surf/sg_platf.cpp diff --git a/src/surf/sg_platf.cpp b/src/surf/sg_platf.cpp index e3898d17b7..9dfdc53525 100644 --- a/src/surf/sg_platf.cpp +++ b/src/surf/sg_platf.cpp @@ -96,8 +96,7 @@ void sg_platf_new_host(sg_platf_host_cbarg_t host) unsigned int cursor; char*str; - if (!COORD_HOST_LEVEL) - xbt_die ("To use host coordinates, please add --cfg=network/coordinates:yes to your command line"); + xbt_assert(COORD_HOST_LEVEL, "To use host coordinates, please add --cfg=network/coordinates:yes to your command line"); /* Pre-parse the host coordinates -- FIXME factorize with routers by overloading the routing->parse_PU function*/ xbt_dynar_t ctn_str = xbt_str_split_str(host->coord, " "); xbt_dynar_t ctn = xbt_dynar_new(sizeof(double),NULL); @@ -172,6 +171,27 @@ void sg_platf_new_router(sg_platf_router_cbarg_t router) } void sg_platf_new_link(sg_platf_link_cbarg_t link){ + std::vector names; + + if (link->policy == SURF_LINK_FULLDUPLEX) { + names.push_back(bprintf("%s_UP", link->id)); + names.push_back(bprintf("%s_DOWN", link->id)); + } else { + names.push_back(xbt_strdup(link->id)); + } + for (auto link_name : names) { + Link *l = surf_network_model->createLink(link_name, link->bandwidth, link->latency, link->policy, link->properties); + + if (link->latency_trace) + l->setLatencyTrace(link->latency_trace); + if (link->bandwidth_trace) + l->setBandwidthTrace(link->bandwidth_trace); + if (link->state_trace) + l->setStateTrace(link->state_trace); + + xbt_free(link_name); + } + simgrid::surf::on_link(link); }