X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/99cc570bb5718475bd7b0bca233503b1ffbc9135..d7621ee830197a4b0f44de326bbfe4397f0e1d6a:/src/surf/network_cm02.cpp diff --git a/src/surf/network_cm02.cpp b/src/surf/network_cm02.cpp index 8d1b395fe7..73e4ba8d9c 100644 --- a/src/surf/network_cm02.cpp +++ b/src/surf/network_cm02.cpp @@ -79,9 +79,7 @@ void surf_network_model_init_CM02() 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) { @@ -95,12 +93,12 @@ 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("network/loopback-bw")}); + loopback_.reset(create_link("__loopback__", {config::get_value("network/loopback-bw")})); loopback_->set_sharing_policy(s4u::Link::SharingPolicy::FATPIPE, {}); loopback_->set_latency(config::get_value("network/loopback-lat")); - loopback_->seal(); + loopback_->get_iface()->seal(); } void NetworkCm02Model::check_lat_factor_cb() @@ -182,13 +180,10 @@ void NetworkCm02Model::update_actions_state_full(double /*now*/, double delta) auto& action = static_cast(*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()) @@ -230,19 +225,21 @@ void NetworkCm02Model::comm_action_expand_constraints(const s4u::Host* src, cons /* 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) { @@ -583,6 +580,4 @@ void NetworkCm02Action::update_remains_lazy(double now) set_last_value(get_rate()); } -} // namespace resource -} // namespace kernel -} // namespace simgrid +} // namespace simgrid::kernel::resource