if (not dst->isRouter()) { // No specific link for router
std::pair<surf::LinkImpl*, surf::LinkImpl*> info =
- privateLinks_.at(dst->id() * linkCountPerNode_ + hasLoopback_ + hasLimiter_);
+ privateLinks_.at(dst->id() * linkCountPerNode_ + (hasLoopback_ ? 1 : 0) + (hasLimiter_ ? 1 : 0));
if (info.second) { // link down
route->link_list->push_back(info.second);
if (lat)
*lat += info.second->latency();
}
if (hasLimiter_) { // limiter for receiver
- info = privateLinks_.at(dst->id() * linkCountPerNode_ + hasLoopback_);
+ info = privateLinks_.at(dst->id() * linkCountPerNode_ + (hasLoopback_ ? 1 : 0));
route->link_list->push_back(info.first);
}
}
*latency += myRouter->myNodes_[myCoords[3] * numLinksperLink_]->latency();
if (hasLimiter_) { // limiter for sender
- std::pair<surf::LinkImpl*, surf::LinkImpl*> info = privateLinks_.at(src->id() * linkCountPerNode_ + hasLoopback_);
+ std::pair<surf::LinkImpl*, surf::LinkImpl*> info =
+ privateLinks_.at(src->id() * linkCountPerNode_ + (hasLoopback_ ? 1 : 0));
route->link_list->push_back(info.first);
}
}
if (hasLimiter_) { // limiter for receiver
- std::pair<surf::LinkImpl*, surf::LinkImpl*> info = privateLinks_.at(dst->id() * linkCountPerNode_ + hasLoopback_);
+ std::pair<surf::LinkImpl*, surf::LinkImpl*> info =
+ privateLinks_.at(dst->id() * linkCountPerNode_ + (hasLoopback_ ? 1 : 0));
route->link_list->push_back(info.first);
}
std::pair<surf::LinkImpl*, surf::LinkImpl*> info;
if (hasLimiter_) { // limiter for sender
- info = privateLinks_.at(nodeOffset + hasLoopback_);
+ info = privateLinks_.at(nodeOffset + (hasLoopback_ ? 1 : 0));
route->link_list->push_back(info.first);
}
if(cluster->loopback_bw > 0 || cluster->loopback_lat > 0){
current_as->linkCountPerNode_++;
- current_as->hasLoopback_ = 1;
+ current_as->hasLoopback_ = true;
}
if(cluster->limiter_link > 0){
current_as->linkCountPerNode_++;
- current_as->hasLimiter_ = 1;
+ current_as->hasLimiter_ = true;
}
for (int const& i : *cluster->radicals) {
linkDown = simgrid::surf::LinkImpl::byName(tmp_link);
linkUp = linkDown;
current_as->privateLinks_.insert(
- {rankId * current_as->linkCountPerNode_ + current_as->hasLoopback_, {linkUp, linkDown}});
+ {rankId * current_as->linkCountPerNode_ + (current_as->hasLoopback_ ? 1 : 0), {linkUp, linkDown}});
}
//call the cluster function that adds the others links
if (cluster->topology == SURF_CLUSTER_FAT_TREE) {
static_cast<FatTreeZone*>(current_as)->addProcessingNode(i);
} else {
- current_as->create_links_for_node(cluster, i, rankId,
- rankId*current_as->linkCountPerNode_ + current_as->hasLoopback_ + current_as->hasLimiter_ );
+ current_as->create_links_for_node(cluster, i, rankId, rankId * current_as->linkCountPerNode_ +
+ (current_as->hasLoopback_ ? 1 : 0) +
+ (current_as->hasLimiter_ ? 1 : 0));
}
rankId++;
}