/*
This file is part of GNUnet.
- (C) 2010-2013 Christian Grothoff (and other contributing authors)
+ Copyright (C) 2010-2013 Christian Grothoff (and other contributing authors)
GNUnet is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published
You should have received a copy of the GNU General Public License
along with GNUnet; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
*/
/**
* @file ats/perf_ats.c
/**
* Shutdown task
*/
-static GNUNET_SCHEDULER_TaskIdentifier shutdown_task;
+static struct GNUNET_SCHEDULER_Task * shutdown_task;
/**
* Progress task
*/
-static GNUNET_SCHEDULER_TaskIdentifier progress_task;
+static struct GNUNET_SCHEDULER_Task * progress_task;
/**
* Test result
if (GNUNET_YES == logging)
GNUNET_ATS_TEST_logging_clean_up(l);
- shutdown_task = GNUNET_SCHEDULER_NO_TASK;
- if (GNUNET_SCHEDULER_NO_TASK != progress_task)
+ shutdown_task = NULL;
+ if (NULL != progress_task)
{
fprintf (stderr, "0\n");
GNUNET_SCHEDULER_cancel (progress_task);
}
- progress_task = GNUNET_SCHEDULER_NO_TASK;
+ progress_task = NULL;
evaluate ();
GNUNET_log(GNUNET_ERROR_TYPE_INFO, _("Benchmarking done\n"));
print_progress ()
{
static int calls;
- progress_task = GNUNET_SCHEDULER_NO_TASK;
+ progress_task = NULL;
fprintf (stderr, "%llu..",
(long long unsigned) perf_duration.rel_value_us / (1000 * 1000) - calls);
{
struct BenchmarkPeer *me = cls;
- me->ats_task = GNUNET_SCHEDULER_NO_TASK;
+ me->ats_task = NULL;
GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, " Master [%u] set preference for slave [%u] to %f\n",
me->no, me->pref_partner->no, me->pref_value);
GNUNET_log(GNUNET_ERROR_TYPE_INFO, _("Benchmarking start\n"));
- if (GNUNET_SCHEDULER_NO_TASK != shutdown_task)
+ if (NULL != shutdown_task)
GNUNET_SCHEDULER_cancel(shutdown_task);
shutdown_task = GNUNET_SCHEDULER_add_delayed(perf_duration, &do_shutdown,
NULL );
for (c_s = 0; c_s < num_slaves; c_s++)
{
GNUNET_ATS_TEST_generate_traffic_start (&mps[c_m], &mps[c_m].partners[c_s],
- UINT32_MAX, GNUNET_TIME_UNIT_FOREVER_REL);
+ GNUNET_ATS_TEST_TG_LINEAR, UINT32_MAX, UINT32_MAX,
+ GNUNET_TIME_UNIT_MINUTES, GNUNET_TIME_UNIT_FOREVER_REL);
}
if (pref_val != GNUNET_ATS_PREFERENCE_END)
mps[c_m].ats_task = GNUNET_SCHEDULER_add_now(&ats_pref_task, &mps[c_m]);
}
if (GNUNET_YES == logging)
- l = GNUNET_ATS_TEST_logging_start(log_frequency, testname, mps, num_masters);
+ l = GNUNET_ATS_TEST_logging_start (log_frequency, testname, mps,
+ num_masters, num_slaves, GNUNET_NO);
}
static void
log_request_cb (void *cls, const struct GNUNET_HELLO_Address *address,
int address_active, struct GNUNET_BANDWIDTH_Value32NBO bandwidth_out,
struct GNUNET_BANDWIDTH_Value32NBO bandwidth_in,
- const struct GNUNET_ATS_Information *ats, uint32_t ats_count)
+ const struct GNUNET_ATS_Properties *ats)
{
struct BenchmarkPeer *me = cls;
struct BenchmarkPartner *p;
- int c_a;
char *peer_id;
p = find_partner (me, &address->peer);
p->bandwidth_in = ntohl (bandwidth_in.value__);
p->bandwidth_out = ntohl (bandwidth_out.value__);
- for (c_a = 0; c_a < ats_count; c_a++)
- {
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "%s [%u] received ATS information: %s %s %u\n",
- (GNUNET_YES == p->me->master) ? "Master" : "Slave",
- p->me->no,
- GNUNET_i2s (&p->dest->id),
- GNUNET_ATS_print_property_type(ntohl(ats[c_a].type)),
- ntohl(ats[c_a].value));
- }
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "%s [%u] received ATS information for peers `%s'\n",
+ (GNUNET_YES == p->me->master) ? "Master" : "Slave",
+ p->me->no,
+ GNUNET_i2s (&p->dest->id));
+
GNUNET_free(peer_id);
if (NULL != l)
GNUNET_ATS_TEST_logging_now (l);
char *conf_name;
char *comm_name;
char *dotexe;
- char *prefs[GNUNET_ATS_PreferenceCount] = GNUNET_ATS_PreferenceTypeString;
+ char *prefs[] = GNUNET_ATS_PreferenceTypeString;
int c;
result = 0;
- /* figure out testname */
+ /* Determine testname
+ * perf_ats_<solver>_<transport>_<preference>[.exe]*/
+
+ /* Find test prefix, store in temp */
tmp = strstr (argv[0], TESTNAME_PREFIX);
if (NULL == tmp)
{
fprintf (stderr, "Unable to parse test name `%s'\n", argv[0]);
return GNUNET_SYSERR;
}
+
+ /* Set tmp to end of test name prefix */
tmp += strlen (TESTNAME_PREFIX);
+
+ /* Determine solver name */
solver = GNUNET_strdup (tmp);
+ /* Remove .exe prefix */
if (NULL != (dotexe = strstr (solver, ".exe")) && dotexe[4] == '\0')
dotexe[0] = '\0';
+
+ /* Determine first '_' after solver */
tmp_sep = strchr (solver, '_');
if (NULL == tmp_sep)
{
if (0 != strcmp (pref_str, "NONE"))
{
- for (c = 1; c < GNUNET_ATS_PreferenceCount; c++)
+ for (c = 0; c < GNUNET_ATS_PREFERENCE_END; c++)
{
if (0 == strcmp (pref_str, prefs[c]))
{