gnunet-svn
[Top][All Lists]
Advanced

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

[gnunet] branch master updated: - refactored singleton worker task for u


From: gnunet
Subject: [gnunet] branch master updated: - refactored singleton worker task for udp com. to be per sender. refactored test code to only accept packet loss in case of timeout.
Date: Tue, 02 Feb 2021 16:46:10 +0100

This is an automated email from the git hooks/post-receive script.

t3sserakt pushed a commit to branch master
in repository gnunet.

The following commit(s) were added to refs/heads/master by this push:
     new 7eeceb994 - refactored singleton worker task for udp com. to be per 
sender. refactored test code to only accept packet loss in case of timeout.
     new 84663e5d6 Merge branch 'master' of ssh://gnunet.org/gnunet
7eeceb994 is described below

commit 7eeceb994d27f5bb6c360ce518b40074a1e0ce22
Author: t3sserakt <t3ss@posteo.de>
AuthorDate: Tue Feb 2 13:20:04 2021 +0100

    - refactored singleton worker task for udp com. to be per sender. 
refactored test code to only accept packet loss in case of timeout.
---
 src/transport/gnunet-communicator-udp.c |  95 +++---
 src/transport/test_communicator_basic.c | 504 ++++++++++++++++----------------
 2 files changed, 314 insertions(+), 285 deletions(-)

diff --git a/src/transport/gnunet-communicator-udp.c 
b/src/transport/gnunet-communicator-udp.c
index 2e09bc9d2..415dc4b48 100644
--- a/src/transport/gnunet-communicator-udp.c
+++ b/src/transport/gnunet-communicator-udp.c
@@ -574,6 +574,22 @@ struct SenderAddress
    * sender_destroy already called on sender.
    */
   int sender_destroy_called;
+
+
+  /**
+   * ID of kce working queue task
+   */
+  struct GNUNET_SCHEDULER_Task *kce_task;
+
+  /**
+   * ID of kce rekey working queue task
+   */
+  struct GNUNET_SCHEDULER_Task *kce_task_rekey;
+
+  /**
+   * Is the kce_task finished?
+   */
+  int kce_task_finished;
 };
 
 
@@ -788,21 +804,6 @@ static struct GNUNET_SCHEDULER_Task *read_task;
  */
 static struct GNUNET_SCHEDULER_Task *timeout_task;
 
-/**
- * ID of kce working queue task
- */
-static struct GNUNET_SCHEDULER_Task *kce_task;
-
-/**
- * ID of kce rekey working queue task
- */
-static struct GNUNET_SCHEDULER_Task *kce_task_rekey;
-
-/**
- * Is the kce_task finished?
- */
-static int kce_task_finished = GNUNET_NO;
-
 /**
  * ID of master broadcast task
  */
@@ -1744,7 +1745,8 @@ static void
 kce_generate_cb (void *cls)
 {
   struct SharedSecret *ss = cls;
-  kce_task = NULL;
+
+  ss->sender->kce_task = NULL;
 
   if (((GNUNET_NO == ss->sender->rekeying) && (ss->sender->acks_available <
                                                KCN_TARGET) ) ||
@@ -1759,16 +1761,17 @@ kce_generate_cb (void *cls)
     for (int i = 0; i < GENERATE_AT_ONCE; i++)
       kce_generate (ss, ++ss->sequence_allowed);
 
-    kce_task = GNUNET_SCHEDULER_add_delayed (WORKING_QUEUE_INTERVALL,
-                                             kce_generate_cb,
-                                             ss);
+    ss->sender->kce_task = GNUNET_SCHEDULER_add_delayed (
+      WORKING_QUEUE_INTERVALL,
+      kce_generate_cb,
+      ss);
   }
   else
   {
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
                 "We have enough keys.\n");
     ss_finished = ss;
-    kce_task_finished = GNUNET_YES;
+    ss->sender->kce_task_finished = GNUNET_YES;
   }
 
 
@@ -1779,9 +1782,10 @@ static void
 kce_generate_rekey_cb (void *cls)
 {
   struct SharedSecret *ss = cls;
-  kce_task_rekey = NULL;
 
-  if (NULL == kce_task)
+  ss->sender->kce_task_rekey = NULL;
+
+  if (NULL == ss->sender->kce_task)
   {
 
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
@@ -1791,16 +1795,18 @@ kce_generate_rekey_cb (void *cls)
     for (int i = 0; i < GENERATE_AT_ONCE; i++)
       kce_generate (ss, ++ss->sequence_allowed);
 
-    kce_task = GNUNET_SCHEDULER_add_delayed (WORKING_QUEUE_INTERVALL,
-                                             kce_generate_cb,
-                                             ss);
-    kce_task_rekey = NULL;
+    ss->sender->kce_task = GNUNET_SCHEDULER_add_delayed (
+      WORKING_QUEUE_INTERVALL,
+      kce_generate_cb,
+      ss);
+    ss->sender->kce_task_rekey = NULL;
   }
   else
   {
-    kce_task_rekey = GNUNET_SCHEDULER_add_delayed (WORKING_QUEUE_INTERVALL,
-                                                   kce_generate_rekey_cb,
-                                                   ss);
+    ss->sender->kce_task_rekey = GNUNET_SCHEDULER_add_delayed (
+      WORKING_QUEUE_INTERVALL,
+      kce_generate_rekey_cb,
+      ss);
   }
 }
 
@@ -1817,6 +1823,14 @@ kce_generate_rekey_cb (void *cls)
 static void
 consider_ss_ack (struct SharedSecret *ss, int initial)
 {
+  struct GNUNET_SCHEDULER_Task *kce_task_rekey;
+  struct GNUNET_SCHEDULER_Task *kce_task;
+  int kce_task_finished;
+
+  kce_task_rekey = ss->sender->kce_task_rekey;
+  kce_task_finished = ss->sender->kce_task_finished;
+  kce_task = ss->sender->kce_task;
+
   GNUNET_assert (NULL != ss->sender);
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "Considering SS UDPAck %s\n",
@@ -1886,6 +1900,7 @@ consider_ss_ack (struct SharedSecret *ss, int initial)
     kce_task = GNUNET_SCHEDULER_add_delayed (WORKING_QUEUE_INTERVALL,
                                              kce_generate_cb,
                                              ss);
+    kce_task_finished = GNUNET_NO;
 
   }
   else if ((NULL == kce_task_rekey) && (GNUNET_YES ==
@@ -3247,6 +3262,18 @@ get_sender_delete_it (void *cls,
 
   (void) cls;
   (void) target;
+
+  if (NULL != sender->kce_task_rekey)
+  {
+    GNUNET_SCHEDULER_cancel (sender->kce_task_rekey);
+    sender->kce_task_rekey = NULL;
+  }
+  if (NULL != sender->kce_task)
+  {
+    GNUNET_SCHEDULER_cancel (sender->kce_task);
+    sender->kce_task = NULL;
+  }
+
   sender_destroy (sender);
   return GNUNET_OK;
 }
@@ -3274,16 +3301,6 @@ do_shutdown (void *cls)
     GNUNET_SCHEDULER_cancel (broadcast_task);
     broadcast_task = NULL;
   }
-  if (NULL != kce_task_rekey)
-  {
-    GNUNET_SCHEDULER_cancel (kce_task_rekey);
-    kce_task_rekey = NULL;
-  }
-  if (NULL != kce_task)
-  {
-    GNUNET_SCHEDULER_cancel (kce_task);
-    kce_task = NULL;
-  }
   if (NULL != timeout_task)
   {
     GNUNET_SCHEDULER_cancel (timeout_task);
diff --git a/src/transport/test_communicator_basic.c 
b/src/transport/test_communicator_basic.c
index ffc21e47a..98b49012a 100644
--- a/src/transport/test_communicator_basic.c
+++ b/src/transport/test_communicator_basic.c
@@ -326,46 +326,128 @@ get_peer_nr (void *cls, unsigned int get_the_other_one)
 }
 
 static void
-latency_timeout (void *cls)
+process_statistics_box_done (void *cls, int success)
 {
+  struct GNUNET_TRANSPORT_TESTING_TransportCommunicatorHandle *tc_h = cls;
+  unsigned int peer_nr;
+
+  peer_nr = get_peer_nr_from_tc (tc_h);
 
+  if (NULL != box_stats[peer_nr])
+    box_stats[peer_nr] = NULL;
+  if (NULL == rekey_stats[peer_nr])
+  {
+    LOG (GNUNET_ERROR_TYPE_DEBUG,
+         "Finished\n");
+    GNUNET_SCHEDULER_shutdown ();
+  }
+}
+
+
+static void
+process_statistics_rekey_done (void *cls, int success)
+{
   struct GNUNET_TRANSPORT_TESTING_TransportCommunicatorHandle *tc_h = cls;
   unsigned int peer_nr;
-  size_t num_sent = 0;
-  size_t num_received = 0;
 
   peer_nr = get_peer_nr_from_tc (tc_h);
-  to_task[peer_nr] = NULL;
-  if (GNUNET_TIME_absolute_get_remaining (timeout[peer_nr]).rel_value_us > 0)
+
+  if (NULL != rekey_stats[peer_nr])
+    rekey_stats[peer_nr] = NULL;
+  if (NULL == box_stats[peer_nr])
   {
-    to_task[peer_nr] = GNUNET_SCHEDULER_add_at (timeout[peer_nr],
-                                                &latency_timeout,
-                                                cls);
-    return;
+    LOG (GNUNET_ERROR_TYPE_DEBUG,
+         "Finished\n");
+    GNUNET_SCHEDULER_shutdown ();
   }
-  switch (phase[peer_nr])
+}
+
+static int
+process_statistics (void *cls,
+                    const char *subsystem,
+                    const char *name,
+                    uint64_t value,
+                    int is_persistent)
+{
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+              "Statistic: Name %s and value %lu\n",
+              name,
+              value);
+  if ((0 == strcmp ("rekey", test_name)) && (0 == strcmp (
+                                               "# rekeying successful",
+                                               name)) && (0 == value))
   {
-  case TP_INIT:
-    GNUNET_assert (0);
-    break;
-  case TP_BURST_SHORT:
-    num_sent = num_sent_short[peer_nr];
-    num_received = num_received_short[peer_nr];
-    break;
-  case TP_BURST_LONG:
-    num_sent = num_sent_long[peer_nr];
-    num_received = num_received_long[peer_nr];
-    break;
-  case TP_SIZE_CHECK:
-    num_sent = num_sent_size[peer_nr];
-    num_received = num_received_size[peer_nr];
-    break;
+    ret = 2;
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+                "No successful rekeying!\n");
+    GNUNET_SCHEDULER_shutdown ();
   }
-  LOG (GNUNET_ERROR_TYPE_ERROR,
-       "Latency too high. Test failed. (Phase: %d. Sent: %lu, Received: 
%lu)\n",
-       phase[peer_nr], num_sent, num_received);
-  ret = 2;
-  GNUNET_SCHEDULER_shutdown ();
+  if ((0 == strcmp ("backchannel", test_name)) &&
+      (0 == strcmp (
+         "# messages decrypted with BOX",
+         name))
+      && (9000 > value))
+  {
+    ret = 2;
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+                "Not enough BOX messages!\n");
+    GNUNET_SCHEDULER_shutdown ();
+  }
+  if ((0 == strcmp ("rekey", test_name)) &&
+      (0 == strcmp (
+         "# messages decrypted with BOX",
+         name))
+      && (6000 > value))
+  {
+    ret = 2;
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+                "Not enough BOX messages!\n");
+    GNUNET_SCHEDULER_shutdown ();
+  }
+  return GNUNET_OK;
+}
+
+static void
+short_test (void *cls);
+
+static void
+short_test_cb (void *cls)
+{
+  struct GNUNET_TRANSPORT_TESTING_TransportCommunicatorHandle *tc_h = cls;
+  unsigned int peer_nr;
+  char *payload;
+
+  peer_nr = get_peer_nr_from_tc (tc_h);
+
+  LOG (GNUNET_ERROR_TYPE_DEBUG,
+       "short_test_cb %u/%u for peer %u and handle %p\n",
+       (unsigned int) num_sent_short[peer_nr],
+       (unsigned int) num_received_short[peer_nr],
+       peer_nr,
+       tc_h);
+  payload = make_payload (SHORT_MESSAGE_SIZE);
+  num_sent_short[peer_nr]++;
+  GNUNET_TRANSPORT_TESTING_transport_communicator_send (tc_h,
+                                                        (burst_packets_short ==
+                                                         
num_sent_short[peer_nr])
+                                                        ? NULL
+                                                        : &short_test,
+                                                        cls,
+                                                        payload,
+                                                        SHORT_MESSAGE_SIZE);
+  GNUNET_free (payload);
+  timeout[peer_nr] = GNUNET_TIME_relative_to_absolute (
+    GNUNET_TIME_relative_multiply (
+      GNUNET_TIME_UNIT_SECONDS,
+      TIMEOUT_MULTIPLIER));
+}
+
+static void
+short_test (void *cls)
+{
+  GNUNET_SCHEDULER_add_delayed (delay_short,
+                                &short_test_cb,
+                                cls);
 }
 
 static void
@@ -403,7 +485,6 @@ size_test (void *cls)
       TIMEOUT_MULTIPLIER));
 }
 
-
 static void
 long_test (void *cls);
 
@@ -446,161 +527,6 @@ long_test (void *cls)
                                 cls);
 }
 
-
-static void
-short_test (void *cls);
-
-
-static void
-short_test_cb (void *cls)
-{
-  struct GNUNET_TRANSPORT_TESTING_TransportCommunicatorHandle *tc_h = cls;
-  unsigned int peer_nr;
-  char *payload;
-
-  peer_nr = get_peer_nr_from_tc (tc_h);
-
-  LOG (GNUNET_ERROR_TYPE_DEBUG,
-       "short_test_cb %u/%u for peer %u and handle %p\n",
-       (unsigned int) num_sent_short[peer_nr],
-       (unsigned int) num_received_short[peer_nr],
-       peer_nr,
-       tc_h);
-  payload = make_payload (SHORT_MESSAGE_SIZE);
-  num_sent_short[peer_nr]++;
-  GNUNET_TRANSPORT_TESTING_transport_communicator_send (tc_h,
-                                                        (burst_packets_short ==
-                                                         
num_sent_short[peer_nr])
-                                                        ? NULL
-                                                        : &short_test,
-                                                        cls,
-                                                        payload,
-                                                        SHORT_MESSAGE_SIZE);
-  GNUNET_free (payload);
-  timeout[peer_nr] = GNUNET_TIME_relative_to_absolute (
-    GNUNET_TIME_relative_multiply (
-      GNUNET_TIME_UNIT_SECONDS,
-      TIMEOUT_MULTIPLIER));
-}
-
-
-static void
-short_test (void *cls)
-{
-  GNUNET_SCHEDULER_add_delayed (delay_short,
-                                &short_test_cb,
-                                cls);
-}
-
-
-/* static int test_prepared = GNUNET_NO; */
-
-/* This helps establishing the backchannel */
-/* static void */
-/* prepare_test (void *cls) */
-/* { */
-/*   char *payload; */
-
-/*   if (GNUNET_YES == test_prepared) */
-/*   { */
-/*     GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS, */
-/*                                   &short_test, */
-/*                                   NULL); */
-/*     return; */
-/*   } */
-/*   test_prepared = GNUNET_YES; */
-/*   payload = make_payload (SHORT_MESSAGE_SIZE); */
-/*   GNUNET_TRANSPORT_TESTING_transport_communicator_send (my_tc, */
-/*                                                         &prepare_test, */
-/*                                                         NULL, */
-/*                                                         payload, */
-/*                                                         
SHORT_MESSAGE_SIZE); */
-/*   GNUNET_free (payload); */
-/* } */
-
-static void
-process_statistics_box_done (void *cls, int success)
-{
-  struct GNUNET_TRANSPORT_TESTING_TransportCommunicatorHandle *tc_h = cls;
-  unsigned int peer_nr;
-
-  peer_nr = get_peer_nr_from_tc (tc_h);
-
-  if (NULL != box_stats[peer_nr])
-    box_stats[peer_nr] = NULL;
-  if (NULL == rekey_stats[peer_nr])
-  {
-    LOG (GNUNET_ERROR_TYPE_DEBUG,
-         "Finished\n");
-    GNUNET_SCHEDULER_shutdown ();
-  }
-}
-
-
-static void
-process_statistics_rekey_done (void *cls, int success)
-{
-  struct GNUNET_TRANSPORT_TESTING_TransportCommunicatorHandle *tc_h = cls;
-  unsigned int peer_nr;
-
-  peer_nr = get_peer_nr_from_tc (tc_h);
-
-  if (NULL != rekey_stats[peer_nr])
-    rekey_stats[peer_nr] = NULL;
-  if (NULL == box_stats[peer_nr])
-  {
-    LOG (GNUNET_ERROR_TYPE_DEBUG,
-         "Finished\n");
-    GNUNET_SCHEDULER_shutdown ();
-  }
-}
-
-
-static int
-process_statistics (void *cls,
-                    const char *subsystem,
-                    const char *name,
-                    uint64_t value,
-                    int is_persistent)
-{
-  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-              "Statistic: Name %s and value %lu\n",
-              name,
-              value);
-  if ((0 == strcmp ("rekey", test_name)) && (0 == strcmp (
-                                               "# rekeying successful",
-                                               name)) && (0 == value))
-  {
-    ret = 2;
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "No successful rekeying!\n");
-    GNUNET_SCHEDULER_shutdown ();
-  }
-  if ((0 == strcmp ("backchannel", test_name)) &&
-      (0 == strcmp (
-         "# messages decrypted with BOX",
-         name))
-      && (9000 > value))
-  {
-    ret = 2;
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Not enough BOX messages!\n");
-    GNUNET_SCHEDULER_shutdown ();
-  }
-  if ((0 == strcmp ("rekey", test_name)) &&
-      (0 == strcmp (
-         "# messages decrypted with BOX",
-         name))
-      && (6000 > value))
-  {
-    ret = 2;
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Not enough BOX messages!\n");
-    GNUNET_SCHEDULER_shutdown ();
-  }
-  return GNUNET_OK;
-}
-
 static void
 choose_phase (struct GNUNET_TRANSPORT_TESTING_TransportCommunicatorHandle 
*tc_h)
 {
@@ -661,8 +587,11 @@ choose_phase (struct 
GNUNET_TRANSPORT_TESTING_TransportCommunicatorHandle *tc_h)
     }
     else
     {
-      if (((PEER_A == peer_nr) && finished[PEER_B]) || ((PEER_B == peer_nr) &&
-                                                        finished[PEER_A]))
+      if ((GNUNET_NO == bidirect)|| (((PEER_A == peer_nr) &&
+                                      finished[PEER_B]) || ((PEER_B ==
+                                                             peer_nr) &&
+                                                            finished
+                                                            [PEER_A])))
       {
         LOG (GNUNET_ERROR_TYPE_DEBUG,
              "Finished\n");
@@ -673,6 +602,137 @@ choose_phase (struct 
GNUNET_TRANSPORT_TESTING_TransportCommunicatorHandle *tc_h)
   }
 }
 
+static void finish_phase_long (unsigned int peer_nr)
+{
+  static struct GNUNET_TIME_Relative duration;
+
+  duration = GNUNET_TIME_absolute_get_duration (start_long[peer_nr]);
+  LOG (GNUNET_ERROR_TYPE_MESSAGE,
+       "Long size packet test  for peer %u done.\n",
+       peer_nr);
+  char *goodput = GNUNET_STRINGS_byte_size_fancy (
+    (long_message_size * num_received_long[peer_nr] * 1000 * 1000)
+    / duration.
+    rel_value_us);
+
+  LOG (GNUNET_ERROR_TYPE_MESSAGE,
+       "%lu/%lu packets in %llu us (%s/s) -- avg latency: %llu us\n",
+       (unsigned long) num_received_long[peer_nr],
+       (unsigned long) num_sent_long[peer_nr],
+       (unsigned long long) duration.rel_value_us,
+       goodput,
+       (unsigned long long) avg_latency[peer_nr]);
+  GNUNET_free (goodput);
+  ack[peer_nr] = 0;
+  // phase = TP_SIZE_CHECK;
+  // num_received = 0;
+  // num_sent_long = 0;
+  avg_latency[peer_nr] = 0;
+  // size_test (NULL);
+  phase_long[peer_nr] = GNUNET_NO;
+  choose_phase (get_tc_h (peer_nr));
+}
+
+static void
+finish_phase_short (unsigned int peer_nr)
+{
+  static struct GNUNET_TIME_Relative duration;
+
+  duration = GNUNET_TIME_absolute_get_duration (start_short[peer_nr]);
+  LOG (GNUNET_ERROR_TYPE_MESSAGE,
+       "Short size packet test for peer %u done.\n",
+       peer_nr);
+  char *goodput = GNUNET_STRINGS_byte_size_fancy (
+    (SHORT_MESSAGE_SIZE * num_received_short[peer_nr] * 1000 * 1000)
+    / duration.rel_value_us);
+  LOG (GNUNET_ERROR_TYPE_MESSAGE,
+       "%lu/%lu packets in %llu us (%s/s) -- avg latency: %llu us\n",
+       (unsigned long) num_received_short[peer_nr],
+       (unsigned long) num_sent_short[peer_nr],
+       (unsigned long long) duration.rel_value_us,
+       goodput,
+       (unsigned long long) avg_latency[peer_nr]);
+  GNUNET_free (goodput);
+  // start_long = GNUNET_TIME_absolute_get ();
+  // phase = TP_BURST_LONG;
+  // num_sent_short = 0;
+  avg_latency[peer_nr] = 0;
+  // num_received = 0;
+  phase_short[peer_nr] = GNUNET_NO;
+  choose_phase (get_tc_h (peer_nr));
+  // long_test (NULL);
+}
+
+static void
+latency_timeout (void *cls)
+{
+
+  struct GNUNET_TRANSPORT_TESTING_TransportCommunicatorHandle *tc_h = cls;
+  unsigned int peer_nr;
+  size_t num_sent = 0;
+  size_t num_received = 0;
+
+  peer_nr = get_peer_nr_from_tc (tc_h);
+  to_task[peer_nr] = NULL;
+
+  switch (phase[peer_nr])
+  {
+  case TP_INIT:
+    GNUNET_assert (0);
+    break;
+  case TP_BURST_SHORT:
+    num_sent = num_sent_short[peer_nr];
+    num_received = num_received_short[peer_nr];
+    if ((num_sent_short[peer_nr] == burst_packets_short) &&
+        (num_received_short[peer_nr] >
+         burst_packets_short
+         / 100
+         *
+         allowed_packet_loss_short) )
+    {
+      finish_phase_short (peer_nr);
+      to_task[peer_nr] = GNUNET_SCHEDULER_add_at (timeout[peer_nr],
+                                                  &latency_timeout,
+                                                  cls);
+      return;
+    }
+    break;
+  case TP_BURST_LONG:
+    num_sent = num_sent_long[peer_nr];
+    num_received = num_received_long[peer_nr];
+    if ((num_sent_long[peer_nr] == burst_packets_long) &&
+        (num_received_long[peer_nr] >
+         burst_packets_long
+         / 100
+         *
+         allowed_packet_loss_long) )
+    {
+      finish_phase_long (peer_nr);
+      to_task[peer_nr] = GNUNET_SCHEDULER_add_at (timeout[peer_nr],
+                                                  &latency_timeout,
+                                                  cls);
+      return;
+    }
+    break;
+  case TP_SIZE_CHECK:
+    num_sent = num_sent_size[peer_nr];
+    num_received = num_received_size[peer_nr];
+    break;
+  }
+  if (GNUNET_TIME_absolute_get_remaining (timeout[peer_nr]).rel_value_us > 0)
+  {
+    to_task[peer_nr] = GNUNET_SCHEDULER_add_at (timeout[peer_nr],
+                                                &latency_timeout,
+                                                cls);
+    return;
+  }
+  LOG (GNUNET_ERROR_TYPE_ERROR,
+       "Latency too high. Test failed. (Phase: %d. Sent: %lu, Received: 
%lu)\n",
+       phase[peer_nr], num_sent, num_received);
+  ret = 2;
+  GNUNET_SCHEDULER_shutdown ();
+}
+
 /**
  * @brief Handle opening of queue
  *
@@ -812,6 +872,8 @@ load_phase_config ()
   phase_size[1] = phase_size[0];
 }
 
+
+
 /**
  * @brief Handle an incoming message
  *
@@ -829,7 +891,7 @@ incoming_message_cb (
   size_t payload_len)
 {
   unsigned int peer_nr;
-  static struct GNUNET_TIME_Relative duration;
+
 
   peer_nr = get_peer_nr (cls, GNUNET_YES);
 
@@ -854,37 +916,13 @@ incoming_message_cb (
     {
       GNUNET_assert (SHORT_MESSAGE_SIZE == payload_len);
       num_received_short[peer_nr]++;
-      duration = GNUNET_TIME_absolute_get_duration (start_short[peer_nr]);
+
       update_avg_latency (payload, peer_nr);
       if ((num_sent_short[peer_nr] == burst_packets_short) &&
-          (num_received_short[peer_nr] >
-           burst_packets_short
-           / 100
-           *
-           allowed_packet_loss_short) )
+          (num_received_short[peer_nr] ==
+           burst_packets_short))
       {
-        LOG (GNUNET_ERROR_TYPE_MESSAGE,
-             "Short size packet test for peer %u done.\n",
-             peer_nr);
-        char *goodput = GNUNET_STRINGS_byte_size_fancy (
-          (SHORT_MESSAGE_SIZE * num_received_short[peer_nr] * 1000 * 1000)
-          / duration.rel_value_us);
-        LOG (GNUNET_ERROR_TYPE_MESSAGE,
-             "%lu/%lu packets in %llu us (%s/s) -- avg latency: %llu us\n",
-             (unsigned long) num_received_short[peer_nr],
-             (unsigned long) num_sent_short[peer_nr],
-             (unsigned long long) duration.rel_value_us,
-             goodput,
-             (unsigned long long) avg_latency[peer_nr]);
-        GNUNET_free (goodput);
-        // start_long = GNUNET_TIME_absolute_get ();
-        // phase = TP_BURST_LONG;
-        // num_sent_short = 0;
-        avg_latency[peer_nr] = 0;
-        // num_received = 0;
-        phase_short[peer_nr] = GNUNET_NO;
-        choose_phase (get_tc_h (peer_nr));
-        // long_test (NULL);
+        finish_phase_short (peer_nr);
       }
       break;
     }
@@ -897,39 +935,13 @@ incoming_message_cb (
         return;   // Ignore
       }
       num_received_long[peer_nr]++;
-      duration = GNUNET_TIME_absolute_get_duration (start_long[peer_nr]);
+
       update_avg_latency (payload, peer_nr);
       if ((num_sent_long[peer_nr] == burst_packets_long) &&
           (num_received_long[peer_nr] >
-           burst_packets_long
-           / 100
-           *
-           allowed_packet_loss_short) )
+           burst_packets_long))
       {
-        LOG (GNUNET_ERROR_TYPE_MESSAGE,
-             "Long size packet test  for peer %u done.\n",
-             peer_nr);
-        char *goodput = GNUNET_STRINGS_byte_size_fancy (
-          (long_message_size * num_received_long[peer_nr] * 1000 * 1000)
-          / duration.
-          rel_value_us);
-
-        LOG (GNUNET_ERROR_TYPE_MESSAGE,
-             "%lu/%lu packets in %llu us (%s/s) -- avg latency: %llu us\n",
-             (unsigned long) num_received_long[peer_nr],
-             (unsigned long) num_sent_long[peer_nr],
-             (unsigned long long) duration.rel_value_us,
-             goodput,
-             (unsigned long long) avg_latency[peer_nr]);
-        GNUNET_free (goodput);
-        ack[peer_nr] = 0;
-        // phase = TP_SIZE_CHECK;
-        // num_received = 0;
-        // num_sent_long = 0;
-        avg_latency[peer_nr] = 0;
-        // size_test (NULL);
-        phase_long[peer_nr] = GNUNET_NO;
-        choose_phase (get_tc_h (peer_nr));
+        finish_phase_long (peer_nr);
       }
       break;
     }

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

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