2 * network_interface.cpp
4 * Created on: Nov 29, 2013
7 #include "network_interface.hpp"
8 #include "simgrid/sg_config.h"
10 #ifndef NETWORK_INTERFACE_CPP_
11 #define NETWORK_INTERFACE_CPP_
13 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_network, surf,
14 "Logging specific to the SURF network module");
16 NetworkModelPtr surf_network_model = NULL;
18 xbt_dynar_t NetworkModel::getRoute(RoutingEdgePtr src, RoutingEdgePtr dst)
20 xbt_dynar_t route = NULL;
21 routing_platf->getRouteAndLatency(src, dst, &route, NULL);
25 double NetworkModel::latencyFactor(double /*size*/) {
26 return sg_latency_factor;
29 double NetworkModel::bandwidthFactor(double /*size*/) {
30 return sg_bandwidth_factor;
33 double NetworkModel::bandwidthConstraint(double rate, double /*bound*/, double /*size*/) {
37 NetworkLink::NetworkLink(NetworkModelPtr model, const char *name, xbt_dict_t props)
41 NetworkLink::NetworkLink(NetworkModelPtr model, const char *name, xbt_dict_t props,
42 lmm_constraint_t constraint,
43 tmgr_history_t history,
44 tmgr_trace_t state_trace)
45 : Resource(model, name, props, constraint),
49 p_stateEvent = tmgr_history_add_trace(history, state_trace, 0.0, 0, static_cast<ResourcePtr>(this));
52 bool NetworkLink::isUsed()
54 return lmm_constraint_used(getModel()->getMaxminSystem(), getConstraint());
57 double NetworkLink::getLatency()
62 double NetworkLink::getBandwidth()
64 return p_power.peak * p_power.scale;
67 bool NetworkLink::isShared()
69 return lmm_constraint_is_shared(getConstraint());
72 #endif /* NETWORK_INTERFACE_CPP_ */