[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r28808 - gnunet/src/ats
From: |
gnunet |
Subject: |
[GNUnet-SVN] r28808 - gnunet/src/ats |
Date: |
Fri, 23 Aug 2013 12:01:19 +0200 |
Author: wachs
Date: 2013-08-23 12:01:19 +0200 (Fri, 23 Aug 2013)
New Revision: 28808
Modified:
gnunet/src/ats/perf_ats.c
Log:
partner task
Modified: gnunet/src/ats/perf_ats.c
===================================================================
--- gnunet/src/ats/perf_ats.c 2013-08-23 09:26:09 UTC (rev 28807)
+++ gnunet/src/ats/perf_ats.c 2013-08-23 10:01:19 UTC (rev 28808)
@@ -51,12 +51,24 @@
*/
struct GNUNET_TESTBED_Peer *peer;
+ /**
+ * Unique identifier
+ */
int no;
- int master; /* master: GNUNET_YES/NO */
+ /**
+ * master: GNUNET_YES/NO
+ */
+ int master;
+ /**
+ * Peer ID
+ */
struct GNUNET_PeerIdentity id;
+ /**
+ * Core handle
+ */
struct GNUNET_CORE_Handle *ch;
/**
@@ -79,19 +91,48 @@
*/
struct GNUNET_ATS_PerformanceHandle *p_handle;
+ /**
+ * Testbed connecect operation
+ */
struct ConnectOperation *connect_ops;
+ /**
+ * ATS Measurement Partner
+ */
+ struct BenchmarkPeer *destination;
+
+ GNUNET_SCHEDULER_TaskIdentifier ats_task;
+
/* Message exchange */
+
+ /**
+ * Core transmit handle
+ */
struct GNUNET_CORE_TransmitHandle *cth;
+ /**
+ * DLL for pending messages: head
+ */
struct PendingMessages *p_head;
+
+ /**
+ * DLL for pending messages: tail
+ */
struct PendingMessages *p_tail;
- /* Bit-mask for next partner selection */
+ /**
+ * Bit-mask for next partner selection
+ */
uint32_t send_mask;
+ /**
+ * Number of core connections
+ */
int core_connections;
+ /**
+ * Number of slave connections
+ */
int slave_connections;
/**
@@ -137,6 +178,8 @@
int benchmarking;
int *core_connections;
+
+ uint32_t partner_map;
};
static struct BenchmarkState state;
@@ -226,6 +269,12 @@
GNUNET_free (cur);
}
+ if (GNUNET_SCHEDULER_NO_TASK != bp_master[c_p].ats_task)
+ {
+ GNUNET_SCHEDULER_cancel (bp_master[c_p].ats_task);
+ bp_master[c_p].ats_task = GNUNET_SCHEDULER_NO_TASK;
+ }
+
if (NULL != bp_master[c_p].cth)
{
GNUNET_CORE_notify_transmit_ready_cancel(bp_master[c_p].cth);
@@ -433,6 +482,20 @@
}
+static void
+ats_pref_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+{
+ struct BenchmarkPeer *bp = cls;
+
+ bp->ats_task = GNUNET_SCHEDULER_NO_TASK;
+
+ GNUNET_break (0);
+
+ bp->ats_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS,
+ &ats_pref_task, bp);
+}
+
+
static void
do_benchmark ()
{
@@ -461,6 +524,8 @@
GNUNET_NO, 0, GNUNET_TIME_UNIT_MINUTES,
&s->id,
TEST_MESSAGE_SIZE, &core_send_ready,
&bp_master[c_m]);
+ bp_master[c_m].ats_task = GNUNET_SCHEDULER_add_delayed
(GNUNET_TIME_UNIT_SECONDS,
+ &ats_pref_task, &bp_master[c_m]);
}
@@ -1073,6 +1138,7 @@
unsigned int links_failed)
{
int c_p;
+ uint32_t partner_map;
GNUNET_log (GNUNET_ERROR_TYPE_INFO,
_("Benchmarking solver `%s' on preference `%s' with %u master and
%u slave peers\n"),
@@ -1097,6 +1163,9 @@
bp_master[c_p].info_op = GNUNET_TESTBED_peer_get_information
(bp_master[c_p].peer,
GNUNET_TESTBED_PIT_IDENTITY,
&peerinformation_cb,
&bp_master[c_p]);
+
+ /* Select ATS measurement partner */
+ bp_master[c_p].destination = &bp_slaves[c_p];
}
for (c_p = 0; c_p < c_slave_peers; c_p++)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r28808 - gnunet/src/ats,
gnunet <=