[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r13536 - gnunet/src/core
From: |
gnunet |
Subject: |
[GNUnet-SVN] r13536 - gnunet/src/core |
Date: |
Wed, 3 Nov 2010 18:30:50 +0100 |
Author: wachs
Date: 2010-11-03 18:30:50 +0100 (Wed, 03 Nov 2010)
New Revision: 13536
Modified:
gnunet/src/core/test_core_quota_compliance.c
Log:
limiting send rate
Modified: gnunet/src/core/test_core_quota_compliance.c
===================================================================
--- gnunet/src/core/test_core_quota_compliance.c 2010-11-03 15:35:42 UTC
(rev 13535)
+++ gnunet/src/core/test_core_quota_compliance.c 2010-11-03 17:30:50 UTC
(rev 13536)
@@ -50,7 +50,7 @@
#define MEASUREMENT_MSG_SIZE 1024
#define MEASUREMENT_MAX_QUOTA 1024 * 1024 * 1024
#define MEASUREMENT_MIN_QUOTA 1024
-#define MEASUREMENT_INTERVALL GNUNET_TIME_relative_multiply
(GNUNET_TIME_UNIT_SECONDS, 8)
+#define MEASUREMENT_INTERVALL GNUNET_TIME_relative_multiply
(GNUNET_TIME_UNIT_SECONDS, 10)
/**
* How long until we give up on transmitting the message?
@@ -75,9 +75,16 @@
static unsigned long long total_bytes;
static unsigned long long total_bytes_sent;
+static unsigned long long total_bytes_recv;
static struct GNUNET_TIME_Absolute start_time;
+static GNUNET_SCHEDULER_TaskIdentifier err_task;
+
+static GNUNET_SCHEDULER_TaskIdentifier send_task;
+
+static GNUNET_SCHEDULER_TaskIdentifier measure_task;
+
struct PeerContext
{
struct GNUNET_CONFIGURATION_Handle *cfg;
@@ -136,6 +143,8 @@
terminate_task_error (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
{
GNUNET_break (0);
+ if (send_task != GNUNET_SCHEDULER_NO_TASK)
+ GNUNET_SCHEDULER_cancel (sched,send_task);
GNUNET_CORE_disconnect (p1.ch);
p1.ch = NULL;
GNUNET_CORE_disconnect (p2.ch);
@@ -184,10 +193,11 @@
struct GNUNET_TIME_Relative latency,
uint32_t distance)
{
+ total_bytes_recv += ntohs (message->size);
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ "Core provides inbound data from `%4s' size %u.\n", GNUNET_i2s
(other), ntohs (message->size));
#if DEBUG_CONNECTIONS
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
- "Core provides inbound data from `%4s'.\n", GNUNET_i2s (other));
-#endif
+ #endif
return GNUNET_OK;
}
@@ -207,12 +217,6 @@
return GNUNET_OK;
}
-
-static GNUNET_SCHEDULER_TaskIdentifier err_task;
-
-static GNUNET_SCHEDULER_TaskIdentifier measure_task;
-
-
static void
measurement_end (void *cls,
const struct GNUNET_SCHEDULER_TaskContext *tc)
@@ -227,23 +231,40 @@
duration = GNUNET_TIME_absolute_get_difference(start_time,
GNUNET_TIME_absolute_get());
GNUNET_log (GNUNET_ERROR_TYPE_INFO,
"\nQuota compliance: \n"\
- "Throughput : %10llu kB/s\n"\
- "Quota : %10llu kB/s\n",
(total_bytes_sent/(duration.rel_value / 1000)/1024),current_quota_p1_in/1024);
+ "Received %llu \n"
+ "Throughput: %10llu kB/s\n"\
+ "Quota : %10llu kB/s\n",
+ total_bytes_recv,
+ (total_bytes_sent/(duration.rel_value /
1000)/1024),current_quota_p1_in/1024);
if (err_task != GNUNET_SCHEDULER_NO_TASK)
GNUNET_SCHEDULER_cancel (sched, err_task);
+ if (send_task != GNUNET_SCHEDULER_NO_TASK)
+ GNUNET_SCHEDULER_cancel (sched,send_task);
GNUNET_SCHEDULER_add_now (sched, &terminate_task, NULL);
}
static size_t
transmit_ready (void *cls, size_t size, void *buf);
+static void
+send_tsk (void *cls,
+ const struct GNUNET_SCHEDULER_TaskContext *tc)
+{
+ ch = GNUNET_CORE_notify_transmit_ready (p1.ch,
+ 0,
+ FAST_TIMEOUT,
+ &p2.id,
+ sizeof (struct
TestMessage) + MEASUREMENT_MSG_SIZE,
+
&transmit_ready, &p1);
+}
+
static void measure (unsigned long long quota_p1, unsigned long long quota_p2 )
{
#if VERBOSE
if ((is_asymmetric_send_constant == GNUNET_YES) ||
(is_asymmetric_recv_constant == GNUNET_YES))
GNUNET_log (GNUNET_ERROR_TYPE_INFO,
- "Starting core level measurement for %u seconds, receiving peer
quota %llu kB/s, sending peer quota %llu kB/s\n",
MEASUREMENT_INTERVALL.rel_value / 1000 , current_quota_p1_in / 1024,
current_quota_p2_out / 1024);
+ "Starting core level measurement for %u seconds receiving peer
quota %llu kB/s, sending peer quota %llu kB/s\n",
MEASUREMENT_INTERVALL.rel_value / 1000 , current_quota_p1_in / 1024,
current_quota_p2_out / 1024);
else
GNUNET_log (GNUNET_ERROR_TYPE_INFO,
"Starting core level measurement for %u seconds, symmetric quota
%llu kB/s\n", MEASUREMENT_INTERVALL.rel_value / 1000 , current_quota_p2_out /
1024);
@@ -375,13 +396,8 @@
total_bytes += ret;
total_bytes_sent += ret;
+ send_task = GNUNET_SCHEDULER_add_delayed (sched,
GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MILLISECONDS, 500), &send_tsk,
NULL);
- ch = GNUNET_CORE_notify_transmit_ready (p1.ch,
- 0,
- FAST_TIMEOUT,
- &p2.id,
- sizeof (struct
TestMessage) + MEASUREMENT_MSG_SIZE,
- &transmit_ready, &p1);
return ret;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r13536 - gnunet/src/core,
gnunet <=