static void start_benchmark() { int c_m; int c_s; GNUNET_log(GNUNET_ERROR_TYPE_INFO, _("Benchmarking start\n")); if (NULL != shutdown_task) GNUNET_SCHEDULER_cancel(shutdown_task); shutdown_task = GNUNET_SCHEDULER_add_delayed(perf_duration, &do_shutdown, NULL ); progress_task = GNUNET_SCHEDULER_add_now(&print_progress, NULL ); GNUNET_log(GNUNET_ERROR_TYPE_INFO, "Topology connected, start benchmarking...\n"); /* Start sending test messages */ for (c_m = 0; c_m < num_masters; c_m++) { 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], 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, num_slaves, GNUNET_NO); }
static void topology_setup_done (void *cls, struct BenchmarkPeer *masters, struct BenchmarkPeer *slaves) { GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Topology setup complete!\n"); masters_p = masters; slaves_p = slaves; l = GNUNET_ATS_TEST_logging_start (e->log_freq, e->name, masters_p, e->num_masters, e->num_slaves, opt_verbose); GNUNET_ATS_TEST_experimentation_run (e, &episode_done_cb, &experiment_done_cb); /* GNUNET_ATS_TEST_generate_preferences_start(&masters[0],&masters[0].partners[0], GNUNET_ATS_TEST_TG_CONSTANT, 1, 1, GNUNET_TIME_UNIT_SECONDS, GNUNET_TIME_relative_multiply(GNUNET_TIME_UNIT_MILLISECONDS, 250), GNUNET_ATS_PREFERENCE_BANDWIDTH); */ /* GNUNET_ATS_TEST_generate_preferences_start(&masters[0],&masters[0].partners[0], GNUNET_ATS_TEST_TG_LINEAR, 1, 50, GNUNET_TIME_relative_multiply(GNUNET_TIME_UNIT_SECONDS, 2), GNUNET_TIME_relative_multiply(GNUNET_TIME_UNIT_MILLISECONDS, 250), GNUNET_ATS_PREFERENCE_BANDWIDTH); */ /* GNUNET_ATS_TEST_generate_preferences_start(&masters[0],&masters[0].partners[0], GNUNET_ATS_TEST_TG_RANDOM, 1, 50, GNUNET_TIME_relative_multiply(GNUNET_TIME_UNIT_SECONDS, 2), GNUNET_TIME_relative_multiply(GNUNET_TIME_UNIT_MILLISECONDS, 250), GNUNET_ATS_PREFERENCE_BANDWIDTH); */ /* GNUNET_ATS_TEST_generate_preferences_start(&masters[0],&masters[0].partners[0], GNUNET_ATS_TEST_TG_SINUS, 10, 5, GNUNET_TIME_relative_multiply(GNUNET_TIME_UNIT_SECONDS, 5), GNUNET_TIME_relative_multiply(GNUNET_TIME_UNIT_MILLISECONDS, 250), GNUNET_ATS_PREFERENCE_BANDWIDTH); */ #if 0 int c_m; int c_s; for (c_m = 0; c_m < e->num_masters; c_m++) { for (c_s = 0; c_s < e->num_slaves; c_s++) { /* Generate maximum traffic to all peers */ /* Example: Generate traffic with constant 10,000 Bytes/s */ GNUNET_ATS_TEST_generate_traffic_start (&masters[c_m], &masters[c_m].partners[c_s], GNUNET_ATS_TEST_TG_CONSTANT, 10000, GNUNET_TIME_UNIT_FOREVER_REL); /* Example: Generate traffic with an increasing rate from 1000 to 2000 * Bytes/s with in a minute */ GNUNET_ATS_TEST_generate_traffic_start (&masters[c_m], &masters[c_m].partners[c_s], GNUNET_ATS_TEST_TG_LINEAR, 1000, 2000, GNUNET_TIME_UNIT_MINUTES, GNUNET_TIME_UNIT_FOREVER_REL); /* Example: Generate traffic with a random rate between 1000 to 2000 * Bytes/s */ GNUNET_ATS_TEST_generate_traffic_start (&masters[c_m], &masters[c_m].partners[c_s], GNUNET_ATS_TEST_TG_RANDOM, 1000, 2000, GNUNET_TIME_UNIT_FOREVER_REL, GNUNET_TIME_UNIT_FOREVER_REL); /* Example: Generate traffic with a sinus form, a base rate of * 1000 Bytes/s, an amplitude of (max-base), and a period of 1 minute */ GNUNET_ATS_TEST_generate_traffic_start (&masters[c_m], &masters[c_m].partners[c_s], GNUNET_ATS_TEST_TG_SINUS, 1000, 2000, GNUNET_TIME_UNIT_MINUTES, GNUNET_TIME_UNIT_FOREVER_REL); } } #endif timeout_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_add (GNUNET_TIME_UNIT_MINUTES, e->max_duration), &do_shutdown, NULL); }