Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Wifi: Allow crosstraffic simulations
authorLoic Guegan <manzerbredes@mailbox.org>
Thu, 5 Sep 2019 08:51:34 +0000 (10:51 +0200)
committerLoic Guegan <manzerbredes@mailbox.org>
Thu, 5 Sep 2019 09:21:16 +0000 (11:21 +0200)
src/surf/network_cm02.cpp

index 8ef0680..94409bb 100644 (file)
@@ -239,8 +239,6 @@ Action* NetworkCm02Model::communicate(s4u::Host* src, s4u::Host* dst, double siz
   for (auto const& link : route) {
     // Handle WIFI links
     if (link->get_sharing_policy() == s4u::Link::SharingPolicy::WIFI) {
-      xbt_assert(!cfg_crosstraffic,
-                 "Cross-traffic is not yet supported when using WIFI. Please use --cfg=network/crosstraffic:0");
       NetworkWifiLink* wifi_link = static_cast<NetworkWifiLink*>(link);
 
       double src_rate = wifi_link->get_host_rate(src);
@@ -265,8 +263,11 @@ Action* NetworkCm02Model::communicate(s4u::Host* src, s4u::Host* dst, double siz
 
   if (cfg_crosstraffic) {
     XBT_DEBUG("Crosstraffic active: adding backward flow using 5%% of the available bandwidth");
-    for (auto const& link : back_route)
-      get_maxmin_system()->expand(link->get_constraint(), action->get_variable(), .05);
+    for (auto const& link : back_route) {
+      // Do not add crosstraffic on WIFI links
+      if (link->get_sharing_policy() != s4u::Link::SharingPolicy::WIFI)
+        get_maxmin_system()->expand(link->get_constraint(), action->get_variable(), .05);
+    }
 
     // Change concurrency_share here, if you want that cross-traffic is included in the SURF concurrency
     // (You would also have to change simgrid::kernel::lmm::Element::get_concurrency())