[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r17490 - gnunet/src/ats
From: |
gnunet |
Subject: |
[GNUnet-SVN] r17490 - gnunet/src/ats |
Date: |
Fri, 14 Oct 2011 11:43:29 +0200 |
Author: wachs
Date: 2011-10-14 11:43:29 +0200 (Fri, 14 Oct 2011)
New Revision: 17490
Modified:
gnunet/src/ats/test_ats_api_bandwidth_consumption.c
gnunet/src/ats/test_ats_api_scheduling.c
Log:
Modified: gnunet/src/ats/test_ats_api_bandwidth_consumption.c
===================================================================
--- gnunet/src/ats/test_ats_api_bandwidth_consumption.c 2011-10-14 09:41:43 UTC
(rev 17489)
+++ gnunet/src/ats/test_ats_api_bandwidth_consumption.c 2011-10-14 09:43:29 UTC
(rev 17490)
@@ -28,7 +28,7 @@
#include "gnunet_ats_service.h"
#include "ats.h"
-#define VERBOSE GNUNET_YES
+#define VERBOSE GNUNET_EXTRA_LOGGING
#define VERBOSE_ARM GNUNET_EXTRA_LOGGING
@@ -36,16 +36,22 @@
static GNUNET_SCHEDULER_TaskIdentifier die_task;
+static GNUNET_SCHEDULER_TaskIdentifier consume_task;
+
static struct GNUNET_ATS_SchedulingHandle *ats;
static struct GNUNET_ATS_PerformanceHandle *atp;
+struct GNUNET_ATS_ReservationContext *sh;
+
static struct GNUNET_OS_Process * arm_proc;
-static struct GNUNET_BANDWIDTH_Value32NBO bw_in;
+static struct PeerContext * p;
-static struct GNUNET_BANDWIDTH_Value32NBO bw_out;
+static uint32_t bw_in;
+static uint32_t bw_out;
+
static int ret;
struct Address
@@ -85,11 +91,24 @@
end_badly (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
{
die_task = GNUNET_SCHEDULER_NO_TASK;
+
+ if (consume_task != GNUNET_SCHEDULER_NO_TASK)
+ {
+ GNUNET_SCHEDULER_cancel(consume_task);
+ consume_task = GNUNET_SCHEDULER_NO_TASK;
+ }
+
+ if (sh != NULL)
+ GNUNET_ATS_reserve_bandwidth_cancel(sh);
+
if (ats != NULL)
GNUNET_ATS_scheduling_done (ats);
if (atp != NULL)
GNUNET_ATS_performance_done (atp);
+ GNUNET_free (p->addr);
+ GNUNET_free (p);
+
ret = GNUNET_SYSERR;
stop_arm ();
@@ -105,10 +124,19 @@
die_task = GNUNET_SCHEDULER_NO_TASK;
}
+ if (consume_task != GNUNET_SCHEDULER_NO_TASK)
+ {
+ GNUNET_SCHEDULER_cancel(consume_task);
+ consume_task = GNUNET_SCHEDULER_NO_TASK;
+ }
+
GNUNET_ATS_scheduling_done (ats);
GNUNET_ATS_performance_done (atp);
+ GNUNET_free (p->addr);
+ GNUNET_free (p);
+
ret = 0;
stop_arm ();
@@ -135,7 +163,35 @@
}
+void reservation_cb (void *cls,
+ const struct
+ GNUNET_PeerIdentity *
+ peer,
+ int32_t amount,
+ struct
+ GNUNET_TIME_Relative
+ res_delay)
+{
+ sh = NULL;
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "ATS reserved bandwidth of %i to peer
`%s' in %llu ms\n",
+ amount,
+ GNUNET_i2s (peer),
+ res_delay.rel_value);
+}
+
static void
+consume_bandwidth (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+{
+ consume_task = GNUNET_SCHEDULER_NO_TASK;
+ int32_t to_reserve = 500;
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Trying to reserver bandwidth of %i to
peer `%s' in %llu ms\n",
+ to_reserve,
+ GNUNET_i2s (&p->id));
+
+ sh = GNUNET_ATS_reserve_bandwidth (atp, &p->id, to_reserve, &reservation_cb,
NULL);
+}
+
+static void
address_suggest_cb (void *cls,
const struct
GNUNET_PeerIdentity *
@@ -158,8 +214,10 @@
{
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "ATS suggested address for peer
`%s'\n", GNUNET_i2s (peer));
- bw_in = bandwidth_in;
- bw_out = bandwidth_out;
+ bw_in = ntohl (bandwidth_in.value__);
+ bw_out = ntohl (bandwidth_out.value__);
+
+ consume_task = GNUNET_SCHEDULER_add_now(&consume_bandwidth, NULL);
}
void
@@ -178,8 +236,7 @@
const struct GNUNET_CONFIGURATION_Handle *cfg)
{
ret = GNUNET_SYSERR;
- struct Address addr;
- struct PeerContext p;
+ struct Address *addr;
die_task = GNUNET_SCHEDULER_add_delayed(TIMEOUT, &end_badly, NULL);
start_arm (cfgfile);
@@ -192,6 +249,9 @@
return;
}
+ p = GNUNET_malloc (sizeof (struct PeerContext));
+ addr = GNUNET_malloc (sizeof (struct Address));
+
atp = GNUNET_ATS_performance_init (cfg, &performance_cb, NULL);
if (atp == NULL)
{
@@ -202,19 +262,18 @@
}
/* set up peer */
- GNUNET_CRYPTO_hash_create_random(GNUNET_CRYPTO_QUALITY_WEAK,
&p.id.hashPubKey);
+ GNUNET_CRYPTO_hash_create_random(GNUNET_CRYPTO_QUALITY_WEAK,
&p->id.hashPubKey);
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Created peer `%s'\n", GNUNET_i2s
(&p->id));
+ p->addr = addr;
+ addr->plugin = "test";
+ addr->session = NULL;
+ addr->addr = NULL;
+ addr->addr_len = 0;
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Created peer `%s'\n", GNUNET_i2s
(&p.id));
- p.addr = &addr;
- addr.plugin = "test";
- addr.session = NULL;
- addr.addr = NULL;
- addr.addr_len = 0;
+ GNUNET_ATS_address_update(ats, &p->id, addr->plugin, addr->addr,
addr->addr_len, addr->session, NULL, 0);
- GNUNET_ATS_address_update(ats, &p.id, addr.plugin, addr.addr, addr.addr_len,
addr.session, NULL, 0);
-
- GNUNET_ATS_suggest_address(ats, &p.id);
+ GNUNET_ATS_suggest_address(ats, &p->id);
}
int
Modified: gnunet/src/ats/test_ats_api_scheduling.c
===================================================================
--- gnunet/src/ats/test_ats_api_scheduling.c 2011-10-14 09:41:43 UTC (rev
17489)
+++ gnunet/src/ats/test_ats_api_scheduling.c 2011-10-14 09:43:29 UTC (rev
17490)
@@ -34,7 +34,7 @@
#include "gnunet_ats_service.h"
#include "ats.h"
-#define VERBOSE GNUNET_YES
+#define VERBOSE GNUNET_EXTRA_LOGGING
#define VERBOSE_ARM GNUNET_EXTRA_LOGGING
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r17490 - gnunet/src/ats,
gnunet <=