if (surf_network_model)
return;
- surf_network_model = new NetworkCm02Model();
+ surf_network_model = new simgrid::surf::NetworkCm02Model();
net_define_callbacks();
- Model *model = surf_network_model;
+ simgrid::surf::Model *model = surf_network_model;
xbt_dynar_push(all_existing_models, &model);
xbt_cfg_setdefault_double(_sg_cfg_set, "network/latency_factor",
if (surf_network_model)
return;
- surf_network_model = new NetworkCm02Model();
+ surf_network_model = new simgrid::surf::NetworkCm02Model();
+ xbt_dynar_push(all_existing_models, &surf_network_model);
net_define_callbacks();
- Model *model = surf_network_model;
- xbt_dynar_push(all_existing_models, &model);
xbt_cfg_setdefault_double(_sg_cfg_set, "network/latency_factor", 1.0);
- xbt_cfg_setdefault_double(_sg_cfg_set, "network/bandwidth_factor",
- 1.0);
+ xbt_cfg_setdefault_double(_sg_cfg_set, "network/bandwidth_factor", 1.0);
xbt_cfg_setdefault_double(_sg_cfg_set, "network/weight_S", 0.0);
}
if (surf_network_model)
return;
- surf_network_model = new NetworkCm02Model();
+ surf_network_model = new simgrid::surf::NetworkCm02Model();
+ xbt_dynar_push(all_existing_models, &surf_network_model);
net_define_callbacks();
- Model *model = surf_network_model;
- xbt_dynar_push(all_existing_models, &model);
- lmm_set_default_protocol_function(func_reno_f, func_reno_fp,
- func_reno_fpi);
+ lmm_set_default_protocol_function(func_reno_f, func_reno_fp, func_reno_fpi);
surf_network_model->f_networkSolve = lagrange_solve;
xbt_cfg_setdefault_double(_sg_cfg_set, "network/latency_factor", 10.4);
- xbt_cfg_setdefault_double(_sg_cfg_set, "network/bandwidth_factor",
- 0.92);
+ xbt_cfg_setdefault_double(_sg_cfg_set, "network/bandwidth_factor", 0.92);
xbt_cfg_setdefault_double(_sg_cfg_set, "network/weight_S", 8775);
}
if (surf_network_model)
return;
- surf_network_model = new NetworkCm02Model();
+ surf_network_model = new simgrid::surf::NetworkCm02Model();
+ xbt_dynar_push(all_existing_models, &surf_network_model);
net_define_callbacks();
- Model *model = surf_network_model;
- xbt_dynar_push(all_existing_models, &model);
- lmm_set_default_protocol_function(func_reno2_f, func_reno2_fp,
- func_reno2_fpi);
+ lmm_set_default_protocol_function(func_reno2_f, func_reno2_fp, func_reno2_fpi);
surf_network_model->f_networkSolve = lagrange_solve;
xbt_cfg_setdefault_double(_sg_cfg_set, "network/latency_factor", 10.4);
- xbt_cfg_setdefault_double(_sg_cfg_set, "network/bandwidth_factor",
- 0.92);
- xbt_cfg_setdefault_double(_sg_cfg_set, "network/weight_S",
- 8775);
+ xbt_cfg_setdefault_double(_sg_cfg_set, "network/bandwidth_factor", 0.92);
+ xbt_cfg_setdefault_double(_sg_cfg_set, "network/weight_S", 8775);
}
void surf_network_model_init_Vegas(void)
if (surf_network_model)
return;
- surf_network_model = new NetworkCm02Model();
+ surf_network_model = new simgrid::surf::NetworkCm02Model();
+ xbt_dynar_push(all_existing_models, &surf_network_model);
net_define_callbacks();
- Model *model = surf_network_model;
- xbt_dynar_push(all_existing_models, &model);
- lmm_set_default_protocol_function(func_vegas_f, func_vegas_fp,
- func_vegas_fpi);
+ lmm_set_default_protocol_function(func_vegas_f, func_vegas_fp, func_vegas_fpi);
surf_network_model->f_networkSolve = lagrange_solve;
xbt_cfg_setdefault_double(_sg_cfg_set, "network/latency_factor", 10.4);
- xbt_cfg_setdefault_double(_sg_cfg_set, "network/bandwidth_factor",
- 0.92);
+ xbt_cfg_setdefault_double(_sg_cfg_set, "network/bandwidth_factor", 0.92);
xbt_cfg_setdefault_double(_sg_cfg_set, "network/weight_S", 8775);
}
+namespace simgrid {
+namespace surf {
+
NetworkCm02Model::NetworkCm02Model()
:NetworkModel()
{
routing_model_create(createLink("__loopback__",
498000000, NULL, 0.000015, NULL,
- SURF_RESOURCE_ON, NULL,
+ 1 /*SURF_RESOURCE_ON*/, NULL,
SURF_LINK_FATPIPE, NULL));
if (p_updateMechanism == UM_LAZY) {
p_modifiedSet = new ActionLmmList();
p_maxminSystem->keep_track = p_modifiedSet;
}
-
- m_haveGap = false;
}
Link* NetworkCm02Model::createLink(const char *name,
tmgr_trace_t bw_trace,
double lat_initial,
tmgr_trace_t lat_trace,
- e_surf_resource_state_t state_initial,
+ int initiallyOn,
tmgr_trace_t state_trace,
e_surf_link_sharing_policy_t policy,
xbt_dict_t properties)
name);
Link* 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);
- surf_callback_emit(networkLinkCreatedCallbacks, link);
+ initiallyOn, state_trace, bw_initial, bw_trace, lat_initial, lat_trace, policy);
+ Link::onCreation(link);
return link;
}
return;
}
-Action *NetworkCm02Model::communicate(RoutingEdge *src, RoutingEdge *dst,
+Action *NetworkCm02Model::communicate(NetCard *src, NetCard *dst,
double size, double rate)
{
unsigned int i;
xbt_dynar_t back_route = NULL;
int constraints_per_variable = 0;
- xbt_dynar_t route = xbt_dynar_new(sizeof(RoutingEdge*), NULL);
+ xbt_dynar_t route = xbt_dynar_new(sizeof(NetCard*), NULL);
XBT_IN("(%s,%s,%g,%g)", src->getName(), dst->getName(), size, rate);
routing_platf->getRouteAndLatency(src, dst, &route, &latency);
xbt_assert(!xbt_dynar_is_empty(route) || latency,
- "You're trying to send data from %s to %s but there is no connection at all between these two hosts.",
+ "You're trying to send data from %s to %s but there is no connecting path between these two hosts.",
src->getName(), dst->getName());
xbt_dynar_foreach(route, i, _link) {
link = static_cast<NetworkCm02Link*>(_link);
- if (link->getState() == SURF_RESOURCE_OFF) {
+ if (link->isOff()) {
failed = 1;
break;
}
routing_platf->getRouteAndLatency(dst, src, &back_route, NULL);
xbt_dynar_foreach(back_route, i, _link) {
link = static_cast<NetworkCm02Link*>(_link);
- if (link->getState() == SURF_RESOURCE_OFF) {
+ if (link->isOff()) {
failed = 1;
break;
}
xbt_dynar_free(&route);
XBT_OUT();
- surf_callback_emit(networkCommunicateCallbacks, action, src, dst, size, rate);
+ networkCommunicateCallbacks(action, src, dst, size, rate);
return action;
}
lmm_system_t system,
double constraint_value,
tmgr_history_t history,
- e_surf_resource_state_t state_init,
+ int initiallyOn,
tmgr_trace_t state_trace,
double metric_peak,
tmgr_trace_t metric_trace,
e_surf_link_sharing_policy_t policy)
: Link(model, name, props, lmm_constraint_new(system, this, constraint_value), history, state_trace)
{
- setState(state_init);
+ if (initiallyOn)
+ turnOn();
+ else
+ turnOff();
p_speed.scale = 1.0;
p_speed.peak = metric_peak;
p_latEvent = NULL;
} else if (event_type == p_stateEvent) {
if (value > 0)
- setState(SURF_RESOURCE_ON);
+ turnOn();
else {
lmm_constraint_t cnst = getConstraint();
lmm_variable_t var = NULL;
lmm_element_t elem = NULL;
- setState(SURF_RESOURCE_OFF);
+ turnOff();
while ((var = lmm_get_var_from_cnst(getModel()->getMaxminSystem(), cnst, &elem))) {
Action *action = static_cast<Action*>( lmm_variable_id(var) );
m_lastValue = lmm_variable_getvalue(getVariable());
}
+}
+}