aboutsummaryrefslogtreecommitdiff
path: root/src/testbed/testbed_api_testbed.c
diff options
context:
space:
mode:
authorSree Harsha Totakura <totakura@in.tum.de>2012-11-16 17:53:26 +0000
committerSree Harsha Totakura <totakura@in.tum.de>2012-11-16 17:53:26 +0000
commit26bf6d22e5395a03ec3f6ac6164df1f3482da374 (patch)
treebecde8a860504da20f45045815fc9252cce7d252 /src/testbed/testbed_api_testbed.c
parent5c6866ff424ec0292ea1b5cc637c5a0d87021c82 (diff)
downloadgnunet-26bf6d22e5395a03ec3f6ac6164df1f3482da374.tar.gz
gnunet-26bf6d22e5395a03ec3f6ac6164df1f3482da374.zip
small world topology
Diffstat (limited to 'src/testbed/testbed_api_testbed.c')
-rw-r--r--src/testbed/testbed_api_testbed.c40
1 files changed, 31 insertions, 9 deletions
diff --git a/src/testbed/testbed_api_testbed.c b/src/testbed/testbed_api_testbed.c
index a7e15dc6b..20633378d 100644
--- a/src/testbed/testbed_api_testbed.c
+++ b/src/testbed/testbed_api_testbed.c
@@ -441,17 +441,34 @@ call_cc:
441 if (GNUNET_TESTBED_TOPOLOGY_NONE != rc->topology) 441 if (GNUNET_TESTBED_TOPOLOGY_NONE != rc->topology)
442 { 442 {
443 if ( (GNUNET_TESTBED_TOPOLOGY_ERDOS_RENYI == rc->topology) 443 if ( (GNUNET_TESTBED_TOPOLOGY_ERDOS_RENYI == rc->topology)
444 || (GNUNET_TESTBED_TOPOLOGY_SMALL_WORLD_RING == rc->topology)) 444 || (GNUNET_TESTBED_TOPOLOGY_SMALL_WORLD_RING == rc->topology)
445 || (GNUNET_TESTBED_TOPOLOGY_SMALL_WORLD == rc->topology))
446 {
447 unsigned int rand_links;
448
449 switch (rc->topology)
450 {
451 case GNUNET_TESTBED_TOPOLOGY_ERDOS_RENYI:
452 rand_links = rc->num_oc;
453 break;
454 case GNUNET_TESTBED_TOPOLOGY_SMALL_WORLD_RING:
455 rand_links = rc->num_oc - rc->num_peers;
456 break;
457 case GNUNET_TESTBED_TOPOLOGY_SMALL_WORLD:
458 rand_links = GNUNET_TESTBED_2dtorus_calc_links (rc->num_peers, NULL, NULL);
459 break;
460 default:
461 GNUNET_break (0);
462 rand_links = 0;
463 }
445 rc->topology_operation = 464 rc->topology_operation =
446 GNUNET_TESTBED_overlay_configure_topology (NULL, 465 GNUNET_TESTBED_overlay_configure_topology (NULL,
447 rc->num_peers, 466 rc->num_peers,
448 rc->peers, 467 rc->peers,
449 rc->topology, 468 rc->topology,
450 (GNUNET_TESTBED_TOPOLOGY_ERDOS_RENYI 469 rand_links,
451 == rc->topology) ?
452 rc->num_oc :
453 (rc->num_oc - rc->num_peers),
454 GNUNET_TESTBED_TOPOLOGY_OPTION_END); 470 GNUNET_TESTBED_TOPOLOGY_OPTION_END);
471 }
455 else 472 else
456 rc->topology_operation = 473 rc->topology_operation =
457 GNUNET_TESTBED_overlay_configure_topology (NULL, 474 GNUNET_TESTBED_overlay_configure_topology (NULL,
@@ -655,6 +672,12 @@ GNUNET_TESTBED_run (const char *host_filename,
655 else if (0 == strcasecmp (topology, "SMALL_WORLD_RING")) 672 else if (0 == strcasecmp (topology, "SMALL_WORLD_RING"))
656 { 673 {
657 rc->topology = GNUNET_TESTBED_TOPOLOGY_SMALL_WORLD_RING; 674 rc->topology = GNUNET_TESTBED_TOPOLOGY_SMALL_WORLD_RING;
675 rc->num_oc = num_peers;
676 }
677 else if (0 == strcasecmp (topology, "SMALL_WORLD"))
678 {
679 rc->topology = GNUNET_TESTBED_TOPOLOGY_SMALL_WORLD;
680 rc->num_oc = GNUNET_TESTBED_2dtorus_calc_links (num_peers, NULL, NULL);
658 } 681 }
659 else if (0 == strcasecmp (topology, "CLIQUE")) 682 else if (0 == strcasecmp (topology, "CLIQUE"))
660 { 683 {
@@ -682,7 +705,8 @@ GNUNET_TESTBED_run (const char *host_filename,
682 GNUNET_free (topology); 705 GNUNET_free (topology);
683 } 706 }
684 if ( (GNUNET_TESTBED_TOPOLOGY_ERDOS_RENYI == rc->topology) 707 if ( (GNUNET_TESTBED_TOPOLOGY_ERDOS_RENYI == rc->topology)
685 || (GNUNET_TESTBED_TOPOLOGY_SMALL_WORLD_RING == rc->topology)) 708 || (GNUNET_TESTBED_TOPOLOGY_SMALL_WORLD_RING == rc->topology)
709 || (GNUNET_TESTBED_TOPOLOGY_SMALL_WORLD == rc->topology))
686 { 710 {
687 if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_number (cfg, "testbed", 711 if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_number (cfg, "testbed",
688 "OVERLAY_RANDOM_LINKS", 712 "OVERLAY_RANDOM_LINKS",
@@ -700,9 +724,7 @@ GNUNET_TESTBED_run (const char *host_filename,
700 GNUNET_free (rc); 724 GNUNET_free (rc);
701 return; 725 return;
702 } 726 }
703 rc->num_oc = (unsigned int) random_links; 727 rc->num_oc += (unsigned int) random_links;
704 if (GNUNET_TESTBED_TOPOLOGY_SMALL_WORLD_RING == rc->topology)
705 rc->num_oc += num_peers;
706 } 728 }
707 GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL, 729 GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL,
708 &shutdown_run_task, rc); 730 &shutdown_run_task, rc);