1 /* Copyright (c) 2013-2016. The SimGrid Team. All rights reserved. */
3 /* This program is free software; you can redistribute it and/or modify it
4 * under the terms of the license (GNU LGPL) which comes with this package. */
6 #ifndef SURF_ROUTING_VIVALDI_HPP_
7 #define SURF_ROUTING_VIVALDI_HPP_
9 #include "src/kernel/routing/ClusterZone.hpp"
15 /* This extends cluster because each host has a private link */
16 class XBT_PRIVATE AsVivaldi : public AsCluster {
18 explicit AsVivaldi(As* father, const char* name);
20 void setPeerLink(NetCard* netcard, double bw_in, double bw_out, double lat, const char* coord);
21 void getLocalRoute(NetCard* src, NetCard* dst, sg_platf_route_cbarg_t into, double* latency) override;
25 class XBT_PRIVATE Coords {
27 static simgrid::xbt::Extension<NetCard, Coords> EXTENSION_ID;
28 explicit Coords(NetCard* host, const char* str);
31 std::vector<double> coords;
38 #endif /* SURF_ROUTING_VIVALDI_HPP_ */