engine->get_netzone_root()->set_network_model(net_model);
}
-namespace simgrid {
-namespace kernel {
-namespace resource {
+namespace simgrid::kernel::resource {
NetworkCm02Model::NetworkCm02Model(const std::string& name) : NetworkModel(name)
{
select = true;
}
- set_maxmin_system(lmm::System::build(cfg_network_solver, select));
+ set_maxmin_system(lmm::System::build(cfg_network_solver.get(), select));
- loopback_ = create_link("__loopback__", {config::get_value<double>("network/loopback-bw")});
+ loopback_.reset(create_link("__loopback__", {config::get_value<double>("network/loopback-bw")}));
loopback_->set_sharing_policy(s4u::Link::SharingPolicy::FATPIPE, {});
loopback_->set_latency(config::get_value<double>("network/loopback-lat"));
- loopback_->seal();
+ loopback_->get_iface()->seal();
}
void NetworkCm02Model::check_lat_factor_cb()
auto& action = static_cast<NetworkCm02Action&>(*it);
++it; // increment iterator here since the following calls to action.finish() may invalidate it
XBT_DEBUG("Something happened to action %p", &action);
- double deltap = delta;
if (action.latency_ > 0) {
- if (action.latency_ > deltap) {
- double_update(&action.latency_, deltap, sg_surf_precision);
- deltap = 0.0;
+ if (action.latency_ > delta) {
+ double_update(&action.latency_, delta, sg_surf_precision);
} else {
- double_update(&deltap, action.latency_, sg_surf_precision);
action.latency_ = 0.0;
}
if (action.latency_ <= 0.0 && not action.is_suspended())
/* WI-FI links needs special treatment, do it here */
if (src_wifi_link != nullptr) {
- /* In case of 0Mbps data rate, don't consider it in the LMM */
if (src_wifi_link->get_host_rate(src) > 0)
get_maxmin_system()->expand(src_wifi_link->get_constraint(), action->get_variable(),
1.0 / src_wifi_link->get_host_rate(src));
- else
+ else {
get_maxmin_system()->update_variable_penalty(action->get_variable(), 0);
+ }
}
+
if (dst_wifi_link != nullptr) {
if (dst_wifi_link->get_host_rate(dst) > 0)
get_maxmin_system()->expand(dst_wifi_link->get_constraint(), action->get_variable(),
1.0 / dst_wifi_link->get_host_rate(dst));
- else
+ else {
get_maxmin_system()->update_variable_penalty(action->get_variable(), 0);
+ }
}
for (auto const* link : route) {
set_last_value(get_rate());
}
-} // namespace resource
-} // namespace kernel
-} // namespace simgrid
+} // namespace simgrid::kernel::resource