X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/e1a5484101efbff9c8d982a0c4650f7953ee7e2f..1f5cc4e090af49a98da0e25e9ee21a8ce6ce30f8:/src/plugins/link_energy_wifi.cpp diff --git a/src/plugins/link_energy_wifi.cpp b/src/plugins/link_energy_wifi.cpp index 9396746d09..dca8c0453d 100644 --- a/src/plugins/link_energy_wifi.cpp +++ b/src/plugins/link_energy_wifi.cpp @@ -3,17 +3,17 @@ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ -#include "simgrid/Exception.hpp" -#include "simgrid/plugins/energy.h" -#include "simgrid/s4u/Engine.hpp" -#include "simgrid/s4u/Host.hpp" -#include "simgrid/s4u/Link.hpp" +#include +#include +#include +#include +#include +#include + #include "src/surf/network_interface.hpp" #include "src/surf/network_wifi.hpp" #include "src/surf/surf_interface.hpp" -#include "surf/surf.hpp" #include "src/kernel/lmm/maxmin.hpp" -#include "xbt/config.hpp" #include #include @@ -104,8 +104,8 @@ xbt::Extension LinkEnergyWifi::EXTENSION_ID; void LinkEnergyWifi::update_destroy() { auto const* wifi_link = static_cast(link_->get_impl()); - double duration = surf_get_clock() - prev_update_; - prev_update_ = surf_get_clock(); + double duration = simgrid::s4u::Engine::get_clock() - prev_update_; + prev_update_ = simgrid::s4u::Engine::get_clock(); dur_idle_ += duration; @@ -120,8 +120,8 @@ void LinkEnergyWifi::update(const kernel::resource::NetworkAction&) { init_watts_range_list(); - double duration = surf_get_clock() - prev_update_; - prev_update_ = surf_get_clock(); + double duration = simgrid::s4u::Engine::get_clock() - prev_update_; + prev_update_ = simgrid::s4u::Engine::get_clock(); // we don't update for null durations if(duration < 1e-6) @@ -143,11 +143,10 @@ void LinkEnergyWifi::update(const kernel::resource::NetworkAction&) double durUsage = 0; while (const auto* var = wifi_link->get_constraint()->get_variable(&elem)) { auto* action = static_cast(var->get_id()); - XBT_DEBUG("cost: %f action value: %f link rate 1: %f link rate 2: %f", action->get_cost(), - action->get_variable()->get_value(), wifi_link->get_host_rate(&action->get_src()), - wifi_link->get_host_rate(&action->get_dst())); + XBT_DEBUG("cost: %f action value: %f link rate 1: %f link rate 2: %f", action->get_cost(), action->get_rate(), + wifi_link->get_host_rate(&action->get_src()), wifi_link->get_host_rate(&action->get_dst())); - if(action->get_variable()->get_value()) { + if (action->get_rate() != 0.0) { auto it = flowTmp.find(action); // if the flow has not been registered, initialize it: 0 bytes sent, and not updated since its creation timestamp @@ -161,18 +160,18 @@ void LinkEnergyWifi::update(const kernel::resource::NetworkAction&) * If this is longer than the duration since the previous update, active duration = now - previous_update */ double du = // durUsage on the current flow - (action->get_cost() - it->second.first) / action->get_variable()->get_value(); + (action->get_cost() - it->second.first) / action->get_rate(); - if(du > surf_get_clock()-it->second.second) - du = surf_get_clock()-it->second.second; + if (du > simgrid::s4u::Engine::get_clock() - it->second.second) + du = simgrid::s4u::Engine::get_clock() - it->second.second; // if the flow has been more active than the others if(du > durUsage) durUsage = du; // update the amount of data already sent by the flow - it->second.first += du*action->get_variable()->get_value(); - it->second.second = surf_get_clock(); + it->second.first += du * action->get_rate(); + it->second.second = simgrid::s4u::Engine::get_clock(); // important: if the transmission finished, remove it (needed for performance and multi-message flows) if(it->second.first >= action->get_cost()) @@ -191,13 +190,13 @@ void LinkEnergyWifi::update(const kernel::resource::NetworkAction&) * - if idle i.e. get_usage = 0, update P_{stat} * P_{tot} = P_{dyn}+P_{stat} */ - if(link_->get_usage()){ + if (link_->get_usage() != 0.0) { eDyn_ += /*duration * */ durUsage * ((wifi_link->get_host_count() * pRx_) + pTx_); eStat_ += (duration - durUsage) * pIdle_ * (wifi_link->get_host_count() + 1); XBT_DEBUG("eDyn += %f * ((%d * %f) + %f) | eDyn = %f (durusage =%f)", durUsage, wifi_link->get_host_count(), pRx_, pTx_, eDyn_, durUsage); dur_TxRx_ += duration; - }else{ + } else { dur_idle_ += duration; eStat_ += (duration - (duration * control_duration_)) * pIdle_ * (wifi_link->get_host_count() + 1); }