/**
* File-size we use for testing.
*/
-#define FILESIZE (1024 * 1024 * 10)
+#define FILESIZE (1024 * 1024 * 1)
/**
* How long until we give up on transmitting the message?
*/
-#define TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MINUTES, 300)
+#define TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MINUTES, 30)
#define NUM_DAEMONS 2
static struct GNUNET_FS_TestDaemon *daemons[NUM_DAEMONS];
-static struct GNUNET_SCHEDULER_Handle *sched;
-
static int ok;
static struct GNUNET_TIME_Absolute start_time;
+static const char *progname;
+
static void
do_stop (void *cls,
const struct GNUNET_SCHEDULER_TaskContext *tc)
{
- GNUNET_FS_TEST_daemons_stop (sched,
- NUM_DAEMONS,
+ GNUNET_FS_TEST_daemons_stop (NUM_DAEMONS,
daemons);
}
{ "fs", "# results found locally"},
{ "fs", "# requests forwarded due to high load"},
{ "fs", "# requests done for free (low load)"},
+ { "fs", "# requests dropped, priority insufficient"},
+ { "fs", "# requests done for a price (normal load)"},
+ { "fs", "# requests dropped by datastore (queue length limit)"},
{ "fs", "# P2P searches received"},
+ { "fs", "# P2P searches discarded (queue length bound)"},
{ "fs", "# replies received for local clients"},
+ { "fs", "# queries retransmitted to same target"},
{ "fs", "cummulative artificial delay introduced (ms)"},
{ "core", "# bytes decrypted"},
{ "core", "# bytes encrypted"},
- { "core", "# transmissions delayed due to corking"},
+ { "core", "# discarded CORE_SEND requests"},
+ { "core", "# discarded CORE_SEND request bytes"},
+ { "core", "# discarded lower priority CORE_SEND requests"},
+ { "core", "# discarded lower priority CORE_SEND request bytes"},
{ "transport", "# bytes received via TCP"},
{ "transport", "# bytes transmitted via TCP"},
{ "datacache", "# bytes stored"},
- { "dht", "# DHT ROUTE Requests Seen"},
- { "dht", "# DHT ROUTE Requests Forwarded"},
{ NULL, NULL}
};
return GNUNET_OK;
}
+
/**
* Function that gathers stats from all daemons.
*/
stat_run (void *cls,
const struct GNUNET_SCHEDULER_TaskContext *tc);
+
/**
* Function called when GET operation on stats is done.
*/
struct StatMaster *sm = cls;
GNUNET_break (GNUNET_OK == success);
sm->value++;
- GNUNET_SCHEDULER_add_now (sched, &stat_run, sm);
+ GNUNET_SCHEDULER_add_now (&stat_run, sm);
}
+
/**
* Function that gathers stats from all daemons.
*/
if (sm->daemon == NUM_DAEMONS)
{
GNUNET_free (sm);
- GNUNET_SCHEDULER_add_now (sched, &do_stop, NULL);
+ GNUNET_SCHEDULER_add_now (&do_stop, NULL);
return;
}
- sm->stat = GNUNET_STATISTICS_create (sched, "<driver>",
+ sm->stat = GNUNET_STATISTICS_create ("<driver>",
GNUNET_FS_TEST_get_configuration (daemons,
sm->daemon));
- GNUNET_SCHEDULER_add_now (sched, &stat_run, sm);
+ GNUNET_SCHEDULER_add_now (&stat_run, sm);
}
if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_PREREQ_DONE))
{
del = GNUNET_TIME_absolute_get_duration (start_time);
- if (del.value == 0)
- del.value = 1;
- fancy = GNUNET_STRINGS_byte_size_fancy (((unsigned long long)FILESIZE) * 1000LL / del.value);
+ if (del.rel_value == 0)
+ del.rel_value = 1;
+ fancy = GNUNET_STRINGS_byte_size_fancy (((unsigned long long)FILESIZE) * 1000LL / del.rel_value);
fprintf (stdout,
"Download speed was %s/s\n",
fancy);
"Finished download, shutting down\n",
(unsigned long long) FILESIZE);
sm = GNUNET_malloc (sizeof (struct StatMaster));
- sm->stat = GNUNET_STATISTICS_create (sched, "<driver>",
+ sm->stat = GNUNET_STATISTICS_create ("<driver>",
GNUNET_FS_TEST_get_configuration (daemons,
sm->daemon));
- GNUNET_SCHEDULER_add_now (sched, &stat_run, sm);
+ GNUNET_SCHEDULER_add_now (&stat_run, sm);
}
else
{
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Timeout during download, shutting down with error\n");
ok = 1;
- GNUNET_SCHEDULER_add_now (sched, &do_stop, NULL);
+ GNUNET_SCHEDULER_add_now (&do_stop, NULL);
}
}
do_download (void *cls,
const struct GNUNET_FS_Uri *uri)
{
+ int anonymity;
+
if (NULL == uri)
{
- GNUNET_FS_TEST_daemons_stop (sched,
- NUM_DAEMONS,
+ GNUNET_FS_TEST_daemons_stop (NUM_DAEMONS,
daemons);
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Timeout during upload attempt, shutting down with error\n");
ok = 1;
return;
"Downloading %llu bytes\n",
(unsigned long long) FILESIZE);
start_time = GNUNET_TIME_absolute_get ();
- GNUNET_FS_TEST_download (sched,
- daemons[0],
+ if (NULL != strstr (progname, "dht"))
+ anonymity = 0;
+ else
+ anonymity = 1;
+ GNUNET_FS_TEST_download (daemons[0],
TIMEOUT,
- 1, SEED, uri,
+ anonymity, SEED, uri,
VERBOSE,
&do_report, NULL);
}
do_publish (void *cls,
const char *emsg)
{
+ int do_index;
+ int anonymity;
+
if (NULL != emsg)
{
- GNUNET_FS_TEST_daemons_stop (sched,
- NUM_DAEMONS,
+ GNUNET_FS_TEST_daemons_stop (NUM_DAEMONS,
daemons);
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Error trying to connect: %s\n",
emsg);
ok = 1;
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Publishing %llu bytes\n",
(unsigned long long) FILESIZE);
- GNUNET_FS_TEST_publish (sched,
- daemons[NUM_DAEMONS-1],
+ if (NULL != strstr (progname, "index"))
+ do_index = GNUNET_YES;
+ else
+ do_index = GNUNET_NO;
+ if (NULL != strstr (progname, "dht"))
+ anonymity = 0;
+ else
+ anonymity = 1;
+
+ GNUNET_FS_TEST_publish (daemons[NUM_DAEMONS-1],
TIMEOUT,
- 1, GNUNET_NO, FILESIZE, SEED,
+ anonymity,
+ do_index, FILESIZE, SEED,
VERBOSE,
&do_download, NULL);
}
static void
run (void *cls,
- struct GNUNET_SCHEDULER_Handle *s,
char *const *args,
const char *cfgfile,
const struct GNUNET_CONFIGURATION_Handle *cfg)
{
- sched = s;
- GNUNET_FS_TEST_daemons_start (sched,
- "fs_test_lib_data.conf",
+ GNUNET_FS_TEST_daemons_start ("fs_test_lib_data.conf",
TIMEOUT,
NUM_DAEMONS,
daemons,
struct GNUNET_GETOPT_CommandLineOption options[] = {
GNUNET_GETOPT_OPTION_END
};
-
+ progname = argv[0];
GNUNET_DISK_directory_remove ("/tmp/gnunet-test-fs-lib/");
- GNUNET_log_setup ("perf_gnunet_service_fs_p2p",
+ GNUNET_log_setup ("perf_gnunet_service_fs_p2p_index",
#if VERBOSE
"DEBUG",
#else
#endif
NULL);
GNUNET_PROGRAM_run ((sizeof (argvx) / sizeof (char *)) - 1,
- argvx, "perf-gnunet-service-fs-p2p",
+ argvx, "perf-gnunet-service-fs-p2p-index",
"nohelp", options, &run, NULL);
GNUNET_DISK_directory_remove ("/tmp/gnunet-test-fs-lib/");
return ok;
}
-/* end of perf_gnunet_service_fs_p2p.c */
+/* end of perf_gnunet_service_fs_p2p_index.c */