Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
add the capacicity to modify links' latency and bandwidth
authorFrederic Suter <frederic.suter@cc.in2p3.fr>
Tue, 21 Apr 2020 11:40:42 +0000 (13:40 +0200)
committerFrederic Suter <frederic.suter@cc.in2p3.fr>
Tue, 21 Apr 2020 11:40:42 +0000 (13:40 +0200)
include/simgrid/link.h
include/simgrid/s4u/Link.hpp
src/s4u/s4u_Link.cpp

index 4c4cf86..115e64a 100644 (file)
@@ -17,7 +17,9 @@ XBT_PUBLIC const char* sg_link_name(const_sg_link_t link);
 XBT_PUBLIC sg_link_t sg_link_by_name(const char* name);
 XBT_PUBLIC int sg_link_is_shared(const_sg_link_t link);
 XBT_PUBLIC double sg_link_bandwidth(const_sg_link_t link);
 XBT_PUBLIC sg_link_t sg_link_by_name(const char* name);
 XBT_PUBLIC int sg_link_is_shared(const_sg_link_t link);
 XBT_PUBLIC double sg_link_bandwidth(const_sg_link_t link);
+XBT_PUBLIC void sg_link_bandwidth_set(sg_link_t link, double value);
 XBT_PUBLIC double sg_link_latency(const_sg_link_t link);
 XBT_PUBLIC double sg_link_latency(const_sg_link_t link);
+XBT_PUBLIC void sg_link_latency_set(sg_link_t link, double value);
 XBT_PUBLIC void* sg_link_data(const_sg_link_t link);
 XBT_PUBLIC void sg_link_data_set(sg_link_t link, void* data);
 XBT_PUBLIC int sg_link_count();
 XBT_PUBLIC void* sg_link_data(const_sg_link_t link);
 XBT_PUBLIC void sg_link_data_set(sg_link_t link, void* data);
 XBT_PUBLIC int sg_link_count();
index 4fa04e8..d5d13bb 100644 (file)
@@ -54,9 +54,11 @@ public:
 
   /** @brief Get the bandwidth in bytes per second of current Link */
   double get_bandwidth() const;
 
   /** @brief Get the bandwidth in bytes per second of current Link */
   double get_bandwidth() const;
+  void set_bandwidth(double value);
 
   /** @brief Get the latency in seconds of current Link */
   double get_latency() const;
 
   /** @brief Get the latency in seconds of current Link */
   double get_latency() const;
+  void set_latency(double value);
 
   /** @brief Describes how the link is shared between flows */
   SharingPolicy get_sharing_policy() const;
 
   /** @brief Describes how the link is shared between flows */
   SharingPolicy get_sharing_policy() const;
index 4942e65..4474227 100644 (file)
@@ -55,11 +55,21 @@ double Link::get_latency() const
   return this->pimpl_->get_latency();
 }
 
   return this->pimpl_->get_latency();
 }
 
+void Link::set_latency(double value)
+{
+  kernel::actor::simcall([this, value] { pimpl_->set_latency(value); });
+}
+
 double Link::get_bandwidth() const
 {
   return this->pimpl_->get_bandwidth();
 }
 
 double Link::get_bandwidth() const
 {
   return this->pimpl_->get_bandwidth();
 }
 
+void Link::set_bandwidth(double value)
+{
+  kernel::actor::simcall([this, value] { pimpl_->set_bandwidth(value); });
+}
+
 Link::SharingPolicy Link::get_sharing_policy() const
 {
   return this->pimpl_->get_sharing_policy();
 Link::SharingPolicy Link::get_sharing_policy() const
 {
   return this->pimpl_->get_sharing_policy();
@@ -127,10 +137,20 @@ double sg_link_bandwidth(const_sg_link_t link)
 {
   return link->get_bandwidth();
 }
 {
   return link->get_bandwidth();
 }
+
+void sg_link_bandwidth_set(sg_link_t link, double value)
+{
+  return link->set_bandwidth(value);
+}
+
 double sg_link_latency(const_sg_link_t link)
 {
   return link->get_latency();
 }
 double sg_link_latency(const_sg_link_t link)
 {
   return link->get_latency();
 }
+void sg_link_latency_set(sg_link_t link, double value)
+{
+  return link->set_latency(value);
+}
 void* sg_link_data(const_sg_link_t link)
 {
   return link->get_data();
 void* sg_link_data(const_sg_link_t link)
 {
   return link->get_data();