gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r32729 - gnunet/src/mesh


From: gnunet
Subject: [GNUnet-SVN] r32729 - gnunet/src/mesh
Date: Fri, 21 Mar 2014 19:44:32 +0100

Author: bartpolot
Date: 2014-03-21 19:44:32 +0100 (Fri, 21 Mar 2014)
New Revision: 32729

Modified:
   gnunet/src/mesh/gnunet-mesh-profiler.c
Log:
- read peers form argv

Modified: gnunet/src/mesh/gnunet-mesh-profiler.c
===================================================================
--- gnunet/src/mesh/gnunet-mesh-profiler.c      2014-03-21 18:44:30 UTC (rev 
32728)
+++ gnunet/src/mesh/gnunet-mesh-profiler.c      2014-03-21 18:44:32 UTC (rev 
32729)
@@ -32,10 +32,6 @@
 #define PING 1
 #define PONG 2
 
-/**
- * How many peers to run
- */
-#define TOTAL_PEERS 20
 
 /**
  * How many peers do pinging
@@ -183,7 +179,7 @@
 /**
  * Operation to get peer ids.
  */
-struct MeshPeer peers[TOTAL_PEERS];
+struct MeshPeer *peers;
 
 /**
  * Peer ids counter.
@@ -191,8 +187,13 @@
 static unsigned int p_ids;
 
 /**
- * Total number of currently running peers.
+ * Total number of peers.
  */
+static unsigned long long peers_total;
+
+/**
+ * Number of currently running peers.
+ */
 static unsigned long long peers_running;
 
 /**
@@ -309,7 +310,7 @@
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "disconnecting mesh service, called from line %ld\n", line);
   disconnect_task = GNUNET_SCHEDULER_NO_TASK;
-  for (i = 0; i < TOTAL_PEERS; i++)
+  for (i = 0; i < peers_total; i++)
   {
     if (NULL != peers[i].op)
       GNUNET_TESTBED_operation_done (peers[i].op);
@@ -416,7 +417,7 @@
     return;
 
   GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Start collecting statistics...\n");
-  stats_op = GNUNET_TESTBED_get_statistics (TOTAL_PEERS, testbed_handles,
+  stats_op = GNUNET_TESTBED_get_statistics (peers_total, testbed_handles,
                                             NULL, NULL,
                                             stats_iterator, stats_cont, NULL);
 }
@@ -453,7 +454,7 @@
   unsigned int i;
   unsigned int r;
 
-  GNUNET_assert (target <= TOTAL_PEERS);
+  GNUNET_assert (target <= peers_total);
 
   GNUNET_log (GNUNET_ERROR_TYPE_INFO, "adjust peers to %u\n", target);
   if (target > peers_running)
@@ -471,7 +472,7 @@
   {
     do {
       r = GNUNET_CRYPTO_random_u32 (GNUNET_CRYPTO_QUALITY_WEAK,
-                                    TOTAL_PEERS - PING_PEERS);
+                                    peers_total - PING_PEERS);
       r += PING_PEERS;
     } while (peers[r].up == run || NULL != peers[r].incoming);
     GNUNET_log (GNUNET_ERROR_TYPE_INFO, "St%s peer %u: %s\n",
@@ -521,7 +522,7 @@
     GNUNET_SCHEDULER_add_now (&finish_profiler, NULL);
     return;
   }
-  adjust_running_peers (rounds[current_round] * TOTAL_PEERS);
+  adjust_running_peers (rounds[current_round] * peers_total);
   current_round++;
 
   GNUNET_SCHEDULER_add_delayed (ROUND_TIME, &next_rnd, NULL);
@@ -793,7 +794,7 @@
 
   do
   {
-    r = GNUNET_CRYPTO_random_u32 (GNUNET_CRYPTO_QUALITY_WEAK, TOTAL_PEERS);
+    r = GNUNET_CRYPTO_random_u32 (GNUNET_CRYPTO_QUALITY_WEAK, peers_total);
   } while (NULL != peers[r].incoming);
   peers[r].incoming = peer;
 
@@ -839,7 +840,7 @@
     peers[i].ping_task = GNUNET_SCHEDULER_add_delayed (delay_ms_rnd (2000),
                                                        &ping, &peers[i]);
   }
-  peers_running = TOTAL_PEERS;
+  peers_running = peers_total;
   if (GNUNET_SCHEDULER_NO_TASK != disconnect_task)
     GNUNET_SCHEDULER_cancel (disconnect_task);
   disconnect_task =
@@ -885,7 +886,7 @@
   peers[n].op = NULL;
 
   p_ids++;
-  if (p_ids < TOTAL_PEERS)
+  if (p_ids < peers_total)
     return;
   GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Got all IDs, starting profiler\n");
   test_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS,
@@ -912,8 +913,8 @@
 
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "test main\n");
   test_ctx = ctx;
-  GNUNET_assert (TOTAL_PEERS > 2 * PING_PEERS);
-  GNUNET_assert (TOTAL_PEERS == num_peers);
+  GNUNET_assert (peers_total > 2 * PING_PEERS);
+  GNUNET_assert (peers_total == num_peers);
   peers_running = num_peers;
   testbed_handles = testbed_peers;
   disconnect_task = GNUNET_SCHEDULER_add_delayed (SHORT_TIME,
@@ -921,7 +922,7 @@
                                                   (void *) __LINE__);
   shutdown_handle = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL,
                                                   &shutdown_task, NULL);
-  for (i = 0; i < TOTAL_PEERS; i++)
+  for (i = 0; i < peers_total; i++)
   {
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "requesting id %ld\n", i);
     peers[i].up = GNUNET_YES;
@@ -947,13 +948,25 @@
 
   config_file = "profiler.conf";
 
-  ids = GNUNET_CONTAINER_multipeermap_create (2 * TOTAL_PEERS, GNUNET_YES);
+  if (2 > argc)
+  {
+    fprintf (stderr, "usage: %s PEERS\n", argv[0]);
+    return 1;
+  }
+  peers_total = atoll (argv[1]);
+  if (2 > peers_total)
+  {
+    fprintf (stderr, "%s peers is not valid (> 2)\n", argv[1]);
+    return 1;
+  }
+
+  ids = GNUNET_CONTAINER_multipeermap_create (2 * peers_total, GNUNET_YES);
   GNUNET_assert (NULL != ids);
   p_ids = 0;
   test_finished = GNUNET_NO;
   ports[0] = 1;
   ports[1] = 0;
-  GNUNET_MESH_TEST_run ("mesh-profiler", config_file, TOTAL_PEERS,
+  GNUNET_MESH_TEST_run ("mesh-profiler", config_file, peers_total,
                         &tmain, NULL, /* tmain cls */
                         &incoming_channel, &channel_cleaner,
                         handlers, ports);




reply via email to

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