示例#1
0
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);
}
示例#2
0
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);
}