gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r29367 - gnunet/src/ats-tests


From: gnunet
Subject: [GNUnet-SVN] r29367 - gnunet/src/ats-tests
Date: Wed, 18 Sep 2013 11:24:32 +0200

Author: wachs
Date: 2013-09-18 11:24:32 +0200 (Wed, 18 Sep 2013)
New Revision: 29367

Modified:
   gnunet/src/ats-tests/perf_ats.c
Log:
adding ats preference setting


Modified: gnunet/src/ats-tests/perf_ats.c
===================================================================
--- gnunet/src/ats-tests/perf_ats.c     2013-09-18 08:50:22 UTC (rev 29366)
+++ gnunet/src/ats-tests/perf_ats.c     2013-09-18 09:24:32 UTC (rev 29367)
@@ -35,6 +35,10 @@
 #define DEFAULT_SLAVES_NUM 3
 #define DEFAULT_MASTERS_NUM 1
 
+#define TEST_ATS_PREFRENCE_FREQUENCY GNUNET_TIME_relative_multiply 
(GNUNET_TIME_UNIT_SECONDS, 1)
+#define TEST_ATS_PREFRENCE_START 1.0
+#define TEST_ATS_PREFRENCE_DELTA 1.0
+
 #define TEST_MESSAGE_TYPE_PING 12345
 #define TEST_MESSAGE_TYPE_PONG 12346
 #define TEST_MESSAGE_SIZE 1000
@@ -165,6 +169,18 @@
   struct BenchmarkPeer *pref_partner;
 
   /**
+   * Masters only
+   * Progress task
+   */
+  GNUNET_SCHEDULER_TaskIdentifier ats_task;
+
+  /**
+   * Masters only
+   * Progress task
+   */
+  double pref_value;
+
+  /**
    * Array of partners with num_slaves entries (if master) or
    * num_master entries (if slave)
    */
@@ -299,10 +315,13 @@
     for (c_s = 0; c_s < num_slaves; c_s++)
     {
       fprintf (stderr,
-          "Master [%u] -> Slave [%u]: sent %u KiB/s, received %u KiB/s \n",
+          "%c Master [%u] -> Slave [%u]: sent %u KiB/s (%.2f \%), received %u 
KiB/s (%.2f \%)\n",
+          (mp->pref_partner == mp->partners[c_s].dest) ? '*' : ' ',
           mp->no, mp->partners[c_s].dest->no,
           (mp->partners[c_s].bytes_sent / 1024) / duration,
-          (mp->partners[c_s].bytes_received / 1024) / duration);
+          ((double) mp->partners[c_s].bytes_sent * 100) / mp->total_bytes_sent,
+          (mp->partners[c_s].bytes_received / 1024) / duration,
+          ((double) mp->partners[c_s].bytes_received * 100) / 
mp->total_bytes_received );
     }
   }
 }
@@ -340,6 +359,10 @@
       mps[c_m].peer_id_op = NULL;
     }
 
+    if (GNUNET_SCHEDULER_NO_TASK != mps[c_m].ats_task)
+      GNUNET_SCHEDULER_cancel (mps[c_m].ats_task);
+    mps[c_m].ats_task = GNUNET_SCHEDULER_NO_TASK;
+
     for (c_op = 0; c_op < num_slaves; c_op++)
     {
 
@@ -494,6 +517,23 @@
 }
 
 static void
+ats_pref_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+{
+  struct BenchmarkPeer *me = cls;
+
+  me->ats_task = GNUNET_SCHEDULER_NO_TASK;
+
+  GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, " Master [%u] set preference for slave 
[%u] to %f\n",
+      me->no, me->pref_partner->no, me->pref_value);
+  GNUNET_ATS_performance_change_preference (me->ats_perf_handle,
+      &me->pref_partner->id,
+      pref_val, me->pref_value, GNUNET_ATS_PREFERENCE_END);
+  me->pref_value += TEST_ATS_PREFRENCE_DELTA;
+  me->ats_task = GNUNET_SCHEDULER_add_delayed (TEST_ATS_PREFRENCE_FREQUENCY,
+      &ats_pref_task, cls);
+}
+
+static void
 do_benchmark ()
 {
   int c_m;
@@ -524,6 +564,8 @@
           mps[c_m].ch, GNUNET_NO, 0, GNUNET_TIME_UNIT_MINUTES, &sps[c_s].id,
           TEST_MESSAGE_SIZE, &core_send_ready, &mps[c_m].partners[c_s]);
     }
+    if (pref_val != GNUNET_ATS_PREFERENCE_END)
+      mps[c_m].ats_task = GNUNET_SCHEDULER_add_now (&ats_pref_task, &mps[c_m]);
   }
 }
 
@@ -1037,6 +1079,7 @@
     mps[c_m].no = c_m;
     mps[c_m].master = GNUNET_YES;
     mps[c_m].pref_partner = &sps[c_m];
+    mps[c_m].pref_value = TEST_ATS_PREFRENCE_START;
     mps[c_m].partners =
         GNUNET_malloc (num_slaves * sizeof (struct BenchmarkPeer));
     /* Initialize partners */




reply via email to

[Prev in Thread] Current Thread [Next in Thread]