aboutsummaryrefslogtreecommitdiff
path: root/src/experimentation
diff options
context:
space:
mode:
authorMatthias Wachs <wachs@net.in.tum.de>2013-07-30 12:22:57 +0000
committerMatthias Wachs <wachs@net.in.tum.de>2013-07-30 12:22:57 +0000
commit4ea563a1d1fbdf020af2432c0b0320e8422051f7 (patch)
tree84bfe84f2f6bfedd339c2e7c0f97cdb7870a2f51 /src/experimentation
parenta8318fab8d0bd30cd98d2a42a0b429893e34b284 (diff)
downloadgnunet-4ea563a1d1fbdf020af2432c0b0320e8422051f7.tar.gz
gnunet-4ea563a1d1fbdf020af2432c0b0320e8422051f7.zip
updated code
Diffstat (limited to 'src/experimentation')
-rw-r--r--src/experimentation/gnunet-daemon-experimentation.c8
-rw-r--r--src/experimentation/gnunet-daemon-experimentation_experiments.c5
-rw-r--r--src/experimentation/gnunet-daemon-experimentation_nodes.c13
-rw-r--r--src/experimentation/gnunet-daemon-experimentation_scheduler.c8
4 files changed, 21 insertions, 13 deletions
diff --git a/src/experimentation/gnunet-daemon-experimentation.c b/src/experimentation/gnunet-daemon-experimentation.c
index 085dd14b1..4ecc03d7d 100644
--- a/src/experimentation/gnunet-daemon-experimentation.c
+++ b/src/experimentation/gnunet-daemon-experimentation.c
@@ -86,15 +86,19 @@ run (void *cls, char *const *args, const char *cfgfile,
86 } 86 }
87 87
88 GNUNET_EXPERIMENTATION_capabilities_start (); 88 GNUNET_EXPERIMENTATION_capabilities_start ();
89
89 GNUNET_EXPERIMENTATION_storage_start (); 90 GNUNET_EXPERIMENTATION_storage_start ();
91
90 if (GNUNET_SYSERR == GNUNET_EXPERIMENTATION_experiments_start ()) 92 if (GNUNET_SYSERR == GNUNET_EXPERIMENTATION_experiments_start ())
91 { 93 {
92 GNUNET_SCHEDULER_add_now (&shutdown_task, NULL); 94 GNUNET_SCHEDULER_add_now (&shutdown_task, NULL);
93 return; 95 return;
94 } 96 }
97
95 GNUNET_EXPERIMENTATION_nodes_start (); 98 GNUNET_EXPERIMENTATION_nodes_start ();
99 /*
96 GNUNET_EXPERIMENTATION_scheduler_start (); 100 GNUNET_EXPERIMENTATION_scheduler_start ();
97 101*/
98 GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL, &shutdown_task, 102 GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL, &shutdown_task,
99 NULL); 103 NULL);
100} 104}
@@ -116,7 +120,7 @@ main (int argc, char *const *argv)
116 120
117 return (GNUNET_OK == 121 return (GNUNET_OK ==
118 GNUNET_PROGRAM_run (argc, argv, "experimentation", 122 GNUNET_PROGRAM_run (argc, argv, "experimentation",
119 _("GNUnet hostlist server and client"), options, 123 _("GNUnet experimentation daemon"), options,
120 &run, NULL)) ? 0 : 1; 124 &run, NULL)) ? 0 : 1;
121} 125}
122 126
diff --git a/src/experimentation/gnunet-daemon-experimentation_experiments.c b/src/experimentation/gnunet-daemon-experimentation_experiments.c
index 09fd8d1ec..bf8bc7df5 100644
--- a/src/experimentation/gnunet-daemon-experimentation_experiments.c
+++ b/src/experimentation/gnunet-daemon-experimentation_experiments.c
@@ -56,6 +56,11 @@ static struct GNUNET_CONTAINER_MultiHashMap *experiments;
56 56
57uint32_t GSE_my_issuer_count; 57uint32_t GSE_my_issuer_count;
58 58
59/**
60 * Valid experiment issuer for this daemon
61 *
62 * Array Experimentation_Issuer with GSE_my_issuer_count elements
63 */
59struct Experimentation_Issuer *GSE_my_issuer; 64struct Experimentation_Issuer *GSE_my_issuer;
60 65
61 66
diff --git a/src/experimentation/gnunet-daemon-experimentation_nodes.c b/src/experimentation/gnunet-daemon-experimentation_nodes.c
index ac1d00ce0..a77e841b8 100644
--- a/src/experimentation/gnunet-daemon-experimentation_nodes.c
+++ b/src/experimentation/gnunet-daemon-experimentation_nodes.c
@@ -199,7 +199,7 @@ remove_request (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
199 * @param buf the buffer to copy to 199 * @param buf the buffer to copy to
200 * @return bytes passed 200 * @return bytes passed
201 */ 201 */
202size_t send_request_cb (void *cls, size_t bufsize, void *buf) 202size_t send_experimentation_request_cb (void *cls, size_t bufsize, void *buf)
203{ 203{
204 struct Node *n = cls; 204 struct Node *n = cls;
205 struct Experimentation_Request msg; 205 struct Experimentation_Request msg;
@@ -234,11 +234,11 @@ size_t send_request_cb (void *cls, size_t bufsize, void *buf)
234 234
235 235
236/** 236/**
237 * Send request 237 * Send request to peer to start add him to to the set of experimentation nodes
238 * 238 *
239 * @param peer the peer to send to 239 * @param peer the peer to send to
240 */ 240 */
241static void send_request (const struct GNUNET_PeerIdentity *peer) 241static void send_experimentation_request (const struct GNUNET_PeerIdentity *peer)
242{ 242{
243 struct Node *n; 243 struct Node *n;
244 size_t size; 244 size_t size;
@@ -254,7 +254,7 @@ static void send_request (const struct GNUNET_PeerIdentity *peer)
254 n->capabilities = NONE; 254 n->capabilities = NONE;
255 n->cth = GNUNET_CORE_notify_transmit_ready(ch, GNUNET_NO, 0, 255 n->cth = GNUNET_CORE_notify_transmit_ready(ch, GNUNET_NO, 0,
256 GNUNET_TIME_relative_get_forever_(), 256 GNUNET_TIME_relative_get_forever_(),
257 peer, size, send_request_cb, n); 257 peer, size, send_experimentation_request_cb, n);
258 258
259 GNUNET_assert (GNUNET_OK == GNUNET_CONTAINER_multihashmap_put (nodes_requested, 259 GNUNET_assert (GNUNET_OK == GNUNET_CONTAINER_multihashmap_put (nodes_requested,
260 &peer->hashPubKey, n, GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_FAST)); 260 &peer->hashPubKey, n, GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_FAST));
@@ -315,9 +315,8 @@ get_experiments_cb (struct Node *n, struct Experiment *e)
315 e->name, 315 e->name,
316 GNUNET_i2s (&n->id)); 316 GNUNET_i2s (&n->id));
317 317
318 /* Request experiment */ 318 /* Tell the scheduler to add a node with an experiment */
319 GNUNET_EXPERIMENTATION_scheduler_add (n, e); 319 GNUNET_EXPERIMENTATION_scheduler_add (n, e);
320
321 counter ++; 320 counter ++;
322} 321}
323 322
@@ -571,7 +570,7 @@ void core_connect_handler (void *cls,
571 if (GNUNET_YES == GNUNET_CONTAINER_multihashmap_contains (nodes_inactive, &peer->hashPubKey)) 570 if (GNUNET_YES == GNUNET_CONTAINER_multihashmap_contains (nodes_inactive, &peer->hashPubKey))
572 return; /* This peer is known as inactive */ 571 return; /* This peer is known as inactive */
573 572
574 send_request (peer); 573 send_experimentation_request (peer);
575 574
576} 575}
577 576
diff --git a/src/experimentation/gnunet-daemon-experimentation_scheduler.c b/src/experimentation/gnunet-daemon-experimentation_scheduler.c
index 502c65229..795c993dd 100644
--- a/src/experimentation/gnunet-daemon-experimentation_scheduler.c
+++ b/src/experimentation/gnunet-daemon-experimentation_scheduler.c
@@ -74,7 +74,7 @@ request_timeout (void *cls,const struct GNUNET_SCHEDULER_TaskContext* tc)
74 GNUNET_STATISTICS_set (GSE_stats, "# experiments requested", experiments_requested, GNUNET_NO); 74 GNUNET_STATISTICS_set (GSE_stats, "# experiments requested", experiments_requested, GNUNET_NO);
75} 75}
76 76
77static void run (void *cls,const struct GNUNET_SCHEDULER_TaskContext* tc) 77static void start_experiment (void *cls,const struct GNUNET_SCHEDULER_TaskContext* tc)
78{ 78{
79 struct ScheduledExperiment *se = cls; 79 struct ScheduledExperiment *se = cls;
80 struct GNUNET_TIME_Relative end; 80 struct GNUNET_TIME_Relative end;
@@ -114,7 +114,7 @@ static void run (void *cls,const struct GNUNET_SCHEDULER_TaskContext* tc)
114 se->state = STOPPED; 114 se->state = STOPPED;
115 return; /* End of experiment is reached */ 115 return; /* End of experiment is reached */
116 } 116 }
117 se->task = GNUNET_SCHEDULER_add_delayed (se->e->frequency, &run, se); 117 se->task = GNUNET_SCHEDULER_add_delayed (se->e->frequency, &start_experiment, se);
118 } 118 }
119 119
120 else if (STOPPED == se->state) 120 else if (STOPPED == se->state)
@@ -145,9 +145,9 @@ GNUNET_EXPERIMENTATION_scheduler_add (struct Node *n, struct Experiment *e)
145 se->e = e; 145 se->e = e;
146 se->n = n; 146 se->n = n;
147 if (0 == start.rel_value) 147 if (0 == start.rel_value)
148 se->task = GNUNET_SCHEDULER_add_now (&run, se); 148 se->task = GNUNET_SCHEDULER_add_now (&start_experiment, se);
149 else 149 else
150 se->task = GNUNET_SCHEDULER_add_delayed (start, &run, se); 150 se->task = GNUNET_SCHEDULER_add_delayed (start, &start_experiment, se);
151 151
152 GNUNET_CONTAINER_DLL_insert (list_head, list_tail, se); 152 GNUNET_CONTAINER_DLL_insert (list_head, list_tail, se);
153 GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Added experiment `%s' for node to be scheduled\n", 153 GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Added experiment `%s' for node to be scheduled\n",