diff options
author | Sree Harsha Totakura <totakura@in.tum.de> | 2013-01-06 00:13:33 +0000 |
---|---|---|
committer | Sree Harsha Totakura <totakura@in.tum.de> | 2013-01-06 00:13:33 +0000 |
commit | a10310cb68f656f8c0ae63cccfe192749e32b2ab (patch) | |
tree | 1c3e129f07ff3ad1ac7049517300ed5ef626c791 /src | |
parent | 8129c09f5a1479a5d460f88dccae3c78e4893545 (diff) | |
download | gnunet-a10310cb68f656f8c0ae63cccfe192749e32b2ab.tar.gz gnunet-a10310cb68f656f8c0ae63cccfe192749e32b2ab.zip |
cache HELLO's of peers
Diffstat (limited to 'src')
12 files changed, 209 insertions, 40 deletions
diff --git a/src/testbed/gnunet-service-testbed.c b/src/testbed/gnunet-service-testbed.c index dd7bed699..d01cb3559 100644 --- a/src/testbed/gnunet-service-testbed.c +++ b/src/testbed/gnunet-service-testbed.c | |||
@@ -816,6 +816,32 @@ struct ForwardedOverlayConnectContext | |||
816 | }; | 816 | }; |
817 | 817 | ||
818 | 818 | ||
819 | /** | ||
820 | * Hello cache entry | ||
821 | */ | ||
822 | struct HelloCacheEntry | ||
823 | { | ||
824 | /** | ||
825 | * DLL next ptr for least recently used hello cache entries | ||
826 | */ | ||
827 | struct HelloCacheEntry *next; | ||
828 | |||
829 | /** | ||
830 | * DLL prev ptr for least recently used hello cache entries | ||
831 | */ | ||
832 | struct HelloCacheEntry *prev; | ||
833 | |||
834 | /** | ||
835 | * The key for this entry | ||
836 | */ | ||
837 | struct GNUNET_HashCode key; | ||
838 | |||
839 | /** | ||
840 | * The HELLO message | ||
841 | */ | ||
842 | struct GNUNET_MessageHeader *hello; | ||
843 | }; | ||
844 | |||
819 | 845 | ||
820 | /** | 846 | /** |
821 | * The master context; generated with the first INIT message | 847 | * The master context; generated with the first INIT message |
@@ -898,6 +924,18 @@ static struct ForwardedOperationContext *fopcq_head; | |||
898 | static struct ForwardedOperationContext *fopcq_tail; | 924 | static struct ForwardedOperationContext *fopcq_tail; |
899 | 925 | ||
900 | /** | 926 | /** |
927 | * DLL head for least recently used hello cache entries; least recently used | ||
928 | * cache items are at the head | ||
929 | */ | ||
930 | static struct HelloCacheEntry *lru_hcache_head; | ||
931 | |||
932 | /** | ||
933 | * DLL tail for least recently used hello cache entries; recently used cache | ||
934 | * items are at the tail | ||
935 | */ | ||
936 | static struct HelloCacheEntry *lru_hcache_tail; | ||
937 | |||
938 | /** | ||
901 | * Array of hosts | 939 | * Array of hosts |
902 | */ | 940 | */ |
903 | static struct GNUNET_TESTBED_Host **host_list; | 941 | static struct GNUNET_TESTBED_Host **host_list; |
@@ -923,6 +961,11 @@ static struct Peer **peer_list; | |||
923 | static struct GNUNET_CONTAINER_MultiHashMap *ss_map; | 961 | static struct GNUNET_CONTAINER_MultiHashMap *ss_map; |
924 | 962 | ||
925 | /** | 963 | /** |
964 | * Hashmap to maintain HELLO cache | ||
965 | */ | ||
966 | static struct GNUNET_CONTAINER_MultiHashMap *hello_cache; | ||
967 | |||
968 | /** | ||
926 | * The event mask for the events we listen from sub-controllers | 969 | * The event mask for the events we listen from sub-controllers |
927 | */ | 970 | */ |
928 | static uint64_t event_mask; | 971 | static uint64_t event_mask; |
@@ -947,6 +990,11 @@ static unsigned int slave_list_size; | |||
947 | */ | 990 | */ |
948 | static unsigned int peer_list_size; | 991 | static unsigned int peer_list_size; |
949 | 992 | ||
993 | /** | ||
994 | * The size of hello cache | ||
995 | */ | ||
996 | static unsigned int hello_cache_size; | ||
997 | |||
950 | /*********/ | 998 | /*********/ |
951 | /* Tasks */ | 999 | /* Tasks */ |
952 | /*********/ | 1000 | /*********/ |
@@ -963,6 +1011,87 @@ static GNUNET_SCHEDULER_TaskIdentifier shutdown_task_id; | |||
963 | 1011 | ||
964 | 1012 | ||
965 | /** | 1013 | /** |
1014 | * Looks up in the hello cache and returns the HELLO of the given peer | ||
1015 | * | ||
1016 | * @param id the peer identity of the peer whose HELLO has to be looked up | ||
1017 | * @return the HELLO message; NULL if not found | ||
1018 | */ | ||
1019 | static const struct GNUNET_MessageHeader * | ||
1020 | hello_cache_lookup (const struct GNUNET_PeerIdentity *id) | ||
1021 | { | ||
1022 | struct HelloCacheEntry *entry; | ||
1023 | |||
1024 | if (NULL == hello_cache) | ||
1025 | return NULL; | ||
1026 | entry = GNUNET_CONTAINER_multihashmap_get (hello_cache, &id->hashPubKey); | ||
1027 | if (NULL == entry) | ||
1028 | return NULL; | ||
1029 | GNUNET_CONTAINER_DLL_remove (lru_hcache_head, lru_hcache_tail, entry); | ||
1030 | GNUNET_CONTAINER_DLL_insert_tail (lru_hcache_head, lru_hcache_tail, entry); | ||
1031 | return entry->hello; | ||
1032 | } | ||
1033 | |||
1034 | |||
1035 | /** | ||
1036 | * Removes the given hello cache centry from hello cache and frees its resources | ||
1037 | * | ||
1038 | * @param entry the entry to remove | ||
1039 | */ | ||
1040 | static void | ||
1041 | hello_cache_remove (struct HelloCacheEntry *entry) | ||
1042 | { | ||
1043 | GNUNET_CONTAINER_DLL_remove (lru_hcache_head, lru_hcache_tail, entry); | ||
1044 | GNUNET_assert (GNUNET_YES == | ||
1045 | GNUNET_CONTAINER_multihashmap_remove (hello_cache, | ||
1046 | &entry->key, | ||
1047 | entry)); | ||
1048 | GNUNET_free (entry->hello); | ||
1049 | GNUNET_free (entry); | ||
1050 | } | ||
1051 | |||
1052 | |||
1053 | /** | ||
1054 | * Caches the HELLO of the given peer. Updates the HELLO if it was already | ||
1055 | * cached before | ||
1056 | * | ||
1057 | * @param id the peer identity of the peer whose HELLO has to be cached | ||
1058 | * @param hello the HELLO message | ||
1059 | */ | ||
1060 | static void | ||
1061 | hello_cache_add (const struct GNUNET_PeerIdentity *id, | ||
1062 | const struct GNUNET_MessageHeader *hello) | ||
1063 | { | ||
1064 | struct HelloCacheEntry *entry; | ||
1065 | |||
1066 | if (NULL == hello_cache) | ||
1067 | return; | ||
1068 | entry = GNUNET_CONTAINER_multihashmap_get (hello_cache, &id->hashPubKey); | ||
1069 | if (NULL == entry) | ||
1070 | { | ||
1071 | entry = GNUNET_malloc (sizeof (struct HelloCacheEntry)); | ||
1072 | memcpy (&entry->key, &id->hashPubKey, sizeof (struct GNUNET_HashCode)); | ||
1073 | if (GNUNET_CONTAINER_multihashmap_size (hello_cache) == hello_cache_size) | ||
1074 | { | ||
1075 | GNUNET_assert (NULL != lru_hcache_head); | ||
1076 | hello_cache_remove (lru_hcache_head); | ||
1077 | } | ||
1078 | GNUNET_assert (GNUNET_OK == GNUNET_CONTAINER_multihashmap_put | ||
1079 | (hello_cache, | ||
1080 | &entry->key, | ||
1081 | entry, | ||
1082 | GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_FAST)); | ||
1083 | } | ||
1084 | else | ||
1085 | { | ||
1086 | GNUNET_CONTAINER_DLL_remove (lru_hcache_head, lru_hcache_tail, entry); | ||
1087 | GNUNET_free (entry->hello); | ||
1088 | } | ||
1089 | entry->hello = GNUNET_copy_message (hello); | ||
1090 | GNUNET_CONTAINER_DLL_insert_tail (lru_hcache_head, lru_hcache_tail, entry); | ||
1091 | } | ||
1092 | |||
1093 | |||
1094 | /** | ||
966 | * Function called to notify a client about the connection begin ready to queue | 1095 | * Function called to notify a client about the connection begin ready to queue |
967 | * more data. "buf" will be NULL and "size" zero if the connection was closed | 1096 | * more data. "buf" will be NULL and "size" zero if the connection was closed |
968 | * for writing in the meantime. | 1097 | * for writing in the meantime. |
@@ -3069,6 +3198,42 @@ send_hello (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | |||
3069 | GNUNET_free (other_peer_str); | 3198 | GNUNET_free (other_peer_str); |
3070 | } | 3199 | } |
3071 | 3200 | ||
3201 | |||
3202 | /** | ||
3203 | * Connects to the transport of the other peer if it is a local peer and | ||
3204 | * schedules the send hello task | ||
3205 | * | ||
3206 | * @param occ the overlay connect context | ||
3207 | */ | ||
3208 | static void | ||
3209 | p2_transport_connect (struct OverlayConnectContext *occ) | ||
3210 | { | ||
3211 | GNUNET_assert (NULL == occ->emsg); | ||
3212 | GNUNET_assert (NULL != occ->hello); | ||
3213 | GNUNET_assert (NULL == occ->ghh); | ||
3214 | GNUNET_assert (NULL == occ->p1th); | ||
3215 | if (NULL == occ->peer2_controller) | ||
3216 | { | ||
3217 | peer_list[occ->other_peer_id]->reference_cnt++; | ||
3218 | occ->tcc.th = | ||
3219 | GNUNET_TRANSPORT_connect (peer_list[occ->other_peer_id]->details.local.cfg, | ||
3220 | &occ->other_peer_identity, NULL, NULL, NULL, | ||
3221 | NULL); | ||
3222 | if (NULL == occ->tcc.th) | ||
3223 | { | ||
3224 | GNUNET_asprintf (&occ->emsg, "0x%llx: Cannot connect to TRANSPORT of %s", | ||
3225 | occ->op_id, GNUNET_i2s (&occ->other_peer_identity)); | ||
3226 | GNUNET_SCHEDULER_cancel (occ->timeout_task); | ||
3227 | occ->timeout_task = GNUNET_SCHEDULER_add_now (&timeout_overlay_connect, occ); | ||
3228 | return; | ||
3229 | } | ||
3230 | } | ||
3231 | GNUNET_asprintf (&occ->emsg, "0x%llx: Timeout while offering HELLO to %s", | ||
3232 | occ->op_id, GNUNET_i2s (&occ->other_peer_identity)); | ||
3233 | occ->send_hello_task = GNUNET_SCHEDULER_add_now (&send_hello, occ); | ||
3234 | } | ||
3235 | |||
3236 | |||
3072 | /** | 3237 | /** |
3073 | * Test for checking whether HELLO message is empty | 3238 | * Test for checking whether HELLO message is empty |
3074 | * | 3239 | * |
@@ -3117,6 +3282,7 @@ hello_update_cb (void *cls, const struct GNUNET_MessageHeader *hello) | |||
3117 | LOG_DEBUG ("0x%llx: Received HELLO of %s\n", | 3282 | LOG_DEBUG ("0x%llx: Received HELLO of %s\n", |
3118 | occ->op_id, GNUNET_i2s (&occ->peer_identity)); | 3283 | occ->op_id, GNUNET_i2s (&occ->peer_identity)); |
3119 | occ->hello = GNUNET_malloc (msize); | 3284 | occ->hello = GNUNET_malloc (msize); |
3285 | hello_cache_add (&occ->peer_identity, hello); | ||
3120 | memcpy (occ->hello, hello, msize); | 3286 | memcpy (occ->hello, hello, msize); |
3121 | GNUNET_TRANSPORT_get_hello_cancel (occ->ghh); | 3287 | GNUNET_TRANSPORT_get_hello_cancel (occ->ghh); |
3122 | occ->ghh = NULL; | 3288 | occ->ghh = NULL; |
@@ -3124,25 +3290,8 @@ hello_update_cb (void *cls, const struct GNUNET_MessageHeader *hello) | |||
3124 | occ->p1th = NULL; | 3290 | occ->p1th = NULL; |
3125 | occ->peer->reference_cnt--; | 3291 | occ->peer->reference_cnt--; |
3126 | GNUNET_free_non_null (occ->emsg); | 3292 | GNUNET_free_non_null (occ->emsg); |
3127 | if (NULL == occ->peer2_controller) | 3293 | occ->emsg = NULL; |
3128 | { | 3294 | p2_transport_connect (occ); |
3129 | peer_list[occ->other_peer_id]->reference_cnt++; | ||
3130 | occ->tcc.th = | ||
3131 | GNUNET_TRANSPORT_connect (peer_list[occ->other_peer_id]->details.local.cfg, | ||
3132 | &occ->other_peer_identity, NULL, NULL, NULL, | ||
3133 | NULL); | ||
3134 | if (NULL == occ->tcc.th) | ||
3135 | { | ||
3136 | GNUNET_asprintf (&occ->emsg, "0x%llx: Cannot connect to TRANSPORT of %s", | ||
3137 | occ->op_id, GNUNET_i2s (&occ->other_peer_identity)); | ||
3138 | GNUNET_SCHEDULER_cancel (occ->timeout_task); | ||
3139 | occ->timeout_task = GNUNET_SCHEDULER_add_now (&timeout_overlay_connect, occ); | ||
3140 | return; | ||
3141 | } | ||
3142 | } | ||
3143 | GNUNET_asprintf (&occ->emsg, "0x%llx: Timeout while offering HELLO to %s", | ||
3144 | occ->op_id, GNUNET_i2s (&occ->other_peer_identity)); | ||
3145 | occ->send_hello_task = GNUNET_SCHEDULER_add_now (&send_hello, occ); | ||
3146 | } | 3295 | } |
3147 | 3296 | ||
3148 | 3297 | ||
@@ -3162,6 +3311,7 @@ core_startup_cb (void *cls, struct GNUNET_CORE_Handle *server, | |||
3162 | const struct GNUNET_PeerIdentity *my_identity) | 3311 | const struct GNUNET_PeerIdentity *my_identity) |
3163 | { | 3312 | { |
3164 | struct OverlayConnectContext *occ = cls; | 3313 | struct OverlayConnectContext *occ = cls; |
3314 | const struct GNUNET_MessageHeader *hello; | ||
3165 | 3315 | ||
3166 | GNUNET_free_non_null (occ->emsg); | 3316 | GNUNET_free_non_null (occ->emsg); |
3167 | (void) GNUNET_asprintf (&occ->emsg, | 3317 | (void) GNUNET_asprintf (&occ->emsg, |
@@ -3174,6 +3324,17 @@ core_startup_cb (void *cls, struct GNUNET_CORE_Handle *server, | |||
3174 | occ->emsg = NULL; | 3324 | occ->emsg = NULL; |
3175 | memcpy (&occ->peer_identity, my_identity, | 3325 | memcpy (&occ->peer_identity, my_identity, |
3176 | sizeof (struct GNUNET_PeerIdentity)); | 3326 | sizeof (struct GNUNET_PeerIdentity)); |
3327 | LOG_DEBUG ("0x%llx: Acquiring HELLO of peer %s\n", | ||
3328 | occ->op_id, GNUNET_i2s (&occ->peer_identity)); | ||
3329 | /* Lookup for HELLO in hello cache */ | ||
3330 | if (NULL != (hello = hello_cache_lookup (&occ->peer_identity))) | ||
3331 | { | ||
3332 | LOG_DEBUG ("0x%llx: HELLO of peer %s found in cache\n", | ||
3333 | occ->op_id, GNUNET_i2s (&occ->peer_identity)); | ||
3334 | occ->hello = GNUNET_copy_message (hello); | ||
3335 | p2_transport_connect (occ); | ||
3336 | return; | ||
3337 | } | ||
3177 | occ->peer->reference_cnt++; | 3338 | occ->peer->reference_cnt++; |
3178 | occ->p1th = | 3339 | occ->p1th = |
3179 | GNUNET_TRANSPORT_connect (occ->peer->details.local.cfg, | 3340 | GNUNET_TRANSPORT_connect (occ->peer->details.local.cfg, |
@@ -3184,9 +3345,7 @@ core_startup_cb (void *cls, struct GNUNET_CORE_Handle *server, | |||
3184 | "0x%llx: Cannot connect to TRANSPORT of peer %4s", | 3345 | "0x%llx: Cannot connect to TRANSPORT of peer %4s", |
3185 | occ->op_id, GNUNET_i2s (&occ->peer_identity)); | 3346 | occ->op_id, GNUNET_i2s (&occ->peer_identity)); |
3186 | goto error_return; | 3347 | goto error_return; |
3187 | } | 3348 | } |
3188 | LOG_DEBUG ("0x%llx: Acquiring HELLO of peer %s\n", | ||
3189 | occ->op_id, GNUNET_i2s (&occ->peer_identity)); | ||
3190 | GNUNET_asprintf (&occ->emsg, | 3349 | GNUNET_asprintf (&occ->emsg, |
3191 | "0x%llx: Timeout while acquiring HELLO of peer %4s", | 3350 | "0x%llx: Timeout while acquiring HELLO of peer %4s", |
3192 | occ->op_id, GNUNET_i2s (&occ->peer_identity)); | 3351 | occ->op_id, GNUNET_i2s (&occ->peer_identity)); |
@@ -4052,9 +4211,20 @@ shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | |||
4052 | GNUNET_SERVER_client_drop (mq_entry->client); | 4211 | GNUNET_SERVER_client_drop (mq_entry->client); |
4053 | GNUNET_CONTAINER_DLL_remove (mq_head, mq_tail, mq_entry); | 4212 | GNUNET_CONTAINER_DLL_remove (mq_head, mq_tail, mq_entry); |
4054 | GNUNET_free (mq_entry); | 4213 | GNUNET_free (mq_entry); |
4055 | } | 4214 | } |
4056 | GNUNET_free_non_null (hostname); | 4215 | GNUNET_free_non_null (hostname); |
4057 | GNUNET_CONFIGURATION_destroy (our_config); | 4216 | GNUNET_CONFIGURATION_destroy (our_config); |
4217 | /* Free hello cache */ | ||
4218 | if (NULL != hello_cache) | ||
4219 | GNUNET_assert | ||
4220 | (GNUNET_CONTAINER_multihashmap_size (hello_cache) <= hello_cache_size); | ||
4221 | while (NULL != lru_hcache_head) | ||
4222 | hello_cache_remove (lru_hcache_head); | ||
4223 | if (NULL != hello_cache) | ||
4224 | { | ||
4225 | GNUNET_assert (0 == GNUNET_CONTAINER_multihashmap_size (hello_cache)); | ||
4226 | GNUNET_CONTAINER_multihashmap_destroy (hello_cache); | ||
4227 | } | ||
4058 | } | 4228 | } |
4059 | 4229 | ||
4060 | 4230 | ||
@@ -4118,6 +4288,7 @@ testbed_run (void *cls, struct GNUNET_SERVER_Handle *server, | |||
4118 | {NULL} | 4288 | {NULL} |
4119 | }; | 4289 | }; |
4120 | char *logfile; | 4290 | char *logfile; |
4291 | unsigned long long num; | ||
4121 | 4292 | ||
4122 | if (GNUNET_OK == GNUNET_CONFIGURATION_get_value_filename (cfg, | 4293 | if (GNUNET_OK == GNUNET_CONFIGURATION_get_value_filename (cfg, |
4123 | "TESTBED", | 4294 | "TESTBED", |
@@ -4127,12 +4298,20 @@ testbed_run (void *cls, struct GNUNET_SERVER_Handle *server, | |||
4127 | GNUNET_break (GNUNET_OK == GNUNET_log_setup ("testbed", "DEBUG", logfile)); | 4298 | GNUNET_break (GNUNET_OK == GNUNET_log_setup ("testbed", "DEBUG", logfile)); |
4128 | GNUNET_free (logfile); | 4299 | GNUNET_free (logfile); |
4129 | } | 4300 | } |
4301 | GNUNET_assert (GNUNET_OK == | ||
4302 | GNUNET_CONFIGURATION_get_value_number (cfg, "TESTBED", | ||
4303 | "HELLO_CACHE_SIZE", | ||
4304 | &num)); | ||
4305 | hello_cache_size = (unsigned int) num; | ||
4130 | GNUNET_assert (GNUNET_OK == GNUNET_CONFIGURATION_get_value_string | 4306 | GNUNET_assert (GNUNET_OK == GNUNET_CONFIGURATION_get_value_string |
4131 | (cfg, "testbed", "HOSTNAME", &hostname)); | 4307 | (cfg, "testbed", "HOSTNAME", &hostname)); |
4132 | our_config = GNUNET_CONFIGURATION_dup (cfg); | 4308 | our_config = GNUNET_CONFIGURATION_dup (cfg); |
4133 | GNUNET_SERVER_add_handlers (server, message_handlers); | 4309 | GNUNET_SERVER_add_handlers (server, message_handlers); |
4134 | GNUNET_SERVER_disconnect_notify (server, &client_disconnect_cb, NULL); | 4310 | GNUNET_SERVER_disconnect_notify (server, &client_disconnect_cb, NULL); |
4135 | ss_map = GNUNET_CONTAINER_multihashmap_create (5, GNUNET_NO); | 4311 | ss_map = GNUNET_CONTAINER_multihashmap_create (5, GNUNET_NO); |
4312 | if (1 < hello_cache_size) | ||
4313 | hello_cache = GNUNET_CONTAINER_multihashmap_create (hello_cache_size / 2, | ||
4314 | GNUNET_YES); | ||
4136 | shutdown_task_id = | 4315 | shutdown_task_id = |
4137 | GNUNET_SCHEDULER_add_delayed_with_priority (GNUNET_TIME_UNIT_FOREVER_REL, | 4316 | GNUNET_SCHEDULER_add_delayed_with_priority (GNUNET_TIME_UNIT_FOREVER_REL, |
4138 | GNUNET_SCHEDULER_PRIORITY_IDLE, | 4317 | GNUNET_SCHEDULER_PRIORITY_IDLE, |
diff --git a/src/testbed/test_testbed_api.conf b/src/testbed/test_testbed_api.conf index 9da3bba6b..dc06d05b9 100644 --- a/src/testbed/test_testbed_api.conf +++ b/src/testbed/test_testbed_api.conf | |||
@@ -4,7 +4,6 @@ PORT = 12113 | |||
4 | ACCEPT_FROM = 127.0.0.1; | 4 | ACCEPT_FROM = 127.0.0.1; |
5 | HOSTNAME = localhost | 5 | HOSTNAME = localhost |
6 | NEIGHBOUR_LIMIT = 100 | 6 | NEIGHBOUR_LIMIT = 100 |
7 | PARALLEL_OVERLAY_CONNECT_THRESHOLD = 2 | ||
8 | TOPOLOGY = RANDOM | 7 | TOPOLOGY = RANDOM |
9 | #PREFIX = xterm -geometry 100x85 -T peer1 -e libtool --mode=execute gdb --args | 8 | #PREFIX = xterm -geometry 100x85 -T peer1 -e libtool --mode=execute gdb --args |
10 | 9 | ||
diff --git a/src/testbed/test_testbed_api_testbed_run_topology2dtorus.conf b/src/testbed/test_testbed_api_testbed_run_topology2dtorus.conf index f3f966cfb..ee0480ed9 100644 --- a/src/testbed/test_testbed_api_testbed_run_topology2dtorus.conf +++ b/src/testbed/test_testbed_api_testbed_run_topology2dtorus.conf | |||
@@ -4,7 +4,6 @@ PORT = 12113 | |||
4 | ACCEPT_FROM = 127.0.0.1; | 4 | ACCEPT_FROM = 127.0.0.1; |
5 | HOSTNAME = localhost | 5 | HOSTNAME = localhost |
6 | NEIGHBOUR_LIMIT = 100 | 6 | NEIGHBOUR_LIMIT = 100 |
7 | PARALLEL_OVERLAY_CONNECT_THRESHOLD = 2 | ||
8 | OVERLAY_TOPOLOGY = 2D_TORUS | 7 | OVERLAY_TOPOLOGY = 2D_TORUS |
9 | #PREFIX = xterm -geometry 100x85 -T peer1 -e libtool --mode=execute gdb --args | 8 | #PREFIX = xterm -geometry 100x85 -T peer1 -e libtool --mode=execute gdb --args |
10 | 9 | ||
@@ -77,4 +76,4 @@ AUTOSTART = NO | |||
77 | RETURN_LOCAL_ADDRESSES = YES | 76 | RETURN_LOCAL_ADDRESSES = YES |
78 | 77 | ||
79 | [gns-helper-service-w32] | 78 | [gns-helper-service-w32] |
80 | AUTOSTART = NO \ No newline at end of file | 79 | AUTOSTART = NO |
diff --git a/src/testbed/test_testbed_api_testbed_run_topologyclique.conf b/src/testbed/test_testbed_api_testbed_run_topologyclique.conf index 514cd42c1..4ac926648 100644 --- a/src/testbed/test_testbed_api_testbed_run_topologyclique.conf +++ b/src/testbed/test_testbed_api_testbed_run_topologyclique.conf | |||
@@ -4,7 +4,6 @@ PORT = 12113 | |||
4 | ACCEPT_FROM = 127.0.0.1; | 4 | ACCEPT_FROM = 127.0.0.1; |
5 | HOSTNAME = localhost | 5 | HOSTNAME = localhost |
6 | NEIGHBOUR_LIMIT = 100 | 6 | NEIGHBOUR_LIMIT = 100 |
7 | PARALLEL_OVERLAY_CONNECT_THRESHOLD = 2 | ||
8 | OVERLAY_TOPOLOGY = CLIQUE | 7 | OVERLAY_TOPOLOGY = CLIQUE |
9 | #PREFIX = xterm -geometry 100x85 -T peer1 -e libtool --mode=execute gdb --args | 8 | #PREFIX = xterm -geometry 100x85 -T peer1 -e libtool --mode=execute gdb --args |
10 | 9 | ||
@@ -77,4 +76,4 @@ AUTOSTART = NO | |||
77 | RETURN_LOCAL_ADDRESSES = YES | 76 | RETURN_LOCAL_ADDRESSES = YES |
78 | 77 | ||
79 | [gns-helper-service-w32] | 78 | [gns-helper-service-w32] |
80 | AUTOSTART = NO \ No newline at end of file | 79 | AUTOSTART = NO |
diff --git a/src/testbed/test_testbed_api_testbed_run_topologyfromfile.conf b/src/testbed/test_testbed_api_testbed_run_topologyfromfile.conf index b96df09b9..b66724fb2 100644 --- a/src/testbed/test_testbed_api_testbed_run_topologyfromfile.conf +++ b/src/testbed/test_testbed_api_testbed_run_topologyfromfile.conf | |||
@@ -6,7 +6,6 @@ HOSTNAME = localhost | |||
6 | NEIGHBOUR_LIMIT = 100 | 6 | NEIGHBOUR_LIMIT = 100 |
7 | OVERLAY_TOPOLOGY = FROM_FILE | 7 | OVERLAY_TOPOLOGY = FROM_FILE |
8 | OVERLAY_TOPOLOGY_FILE = overlay_topology.txt | 8 | OVERLAY_TOPOLOGY_FILE = overlay_topology.txt |
9 | PARALLEL_OVERLAY_CONNECT_THRESHOLD = 2 | ||
10 | #PREFIX = xterm -geometry 100x85 -T peer1 -e libtool --mode=execute gdb --args | 9 | #PREFIX = xterm -geometry 100x85 -T peer1 -e libtool --mode=execute gdb --args |
11 | 10 | ||
12 | [fs] | 11 | [fs] |
diff --git a/src/testbed/test_testbed_api_testbed_run_topologyline.conf b/src/testbed/test_testbed_api_testbed_run_topologyline.conf index c07f023e0..289ccba92 100644 --- a/src/testbed/test_testbed_api_testbed_run_topologyline.conf +++ b/src/testbed/test_testbed_api_testbed_run_topologyline.conf | |||
@@ -5,7 +5,6 @@ ACCEPT_FROM = 127.0.0.1; | |||
5 | HOSTNAME = localhost | 5 | HOSTNAME = localhost |
6 | NEIGHBOUR_LIMIT = 100 | 6 | NEIGHBOUR_LIMIT = 100 |
7 | OVERLAY_TOPOLOGY = LINE | 7 | OVERLAY_TOPOLOGY = LINE |
8 | PARALLEL_OVERLAY_CONNECT_THRESHOLD = 2 | ||
9 | #PREFIX = xterm -geometry 100x85 -T peer1 -e libtool --mode=execute gdb --args | 8 | #PREFIX = xterm -geometry 100x85 -T peer1 -e libtool --mode=execute gdb --args |
10 | 9 | ||
11 | [fs] | 10 | [fs] |
diff --git a/src/testbed/test_testbed_api_testbed_run_topologyrandom.conf b/src/testbed/test_testbed_api_testbed_run_topologyrandom.conf index 7156df3b2..027602ea0 100644 --- a/src/testbed/test_testbed_api_testbed_run_topologyrandom.conf +++ b/src/testbed/test_testbed_api_testbed_run_topologyrandom.conf | |||
@@ -3,7 +3,6 @@ AUTOSTART = NO | |||
3 | PORT = 12113 | 3 | PORT = 12113 |
4 | ACCEPT_FROM = 127.0.0.1; | 4 | ACCEPT_FROM = 127.0.0.1; |
5 | HOSTNAME = localhost | 5 | HOSTNAME = localhost |
6 | PARALLEL_OVERLAY_CONNECT_THRESHOLD = 2 | ||
7 | OVERLAY_TOPOLOGY = RANDOM | 6 | OVERLAY_TOPOLOGY = RANDOM |
8 | OVERLAY_RANDOM_LINKS = 5 | 7 | OVERLAY_RANDOM_LINKS = 5 |
9 | #PREFIX = xterm -geometry 100x85 -T peer1 -e libtool --mode=execute gdb --args | 8 | #PREFIX = xterm -geometry 100x85 -T peer1 -e libtool --mode=execute gdb --args |
@@ -77,4 +76,4 @@ AUTOSTART = NO | |||
77 | RETURN_LOCAL_ADDRESSES = YES | 76 | RETURN_LOCAL_ADDRESSES = YES |
78 | 77 | ||
79 | [gns-helper-service-w32] | 78 | [gns-helper-service-w32] |
80 | AUTOSTART = NO \ No newline at end of file | 79 | AUTOSTART = NO |
diff --git a/src/testbed/test_testbed_api_testbed_run_topologyring.conf b/src/testbed/test_testbed_api_testbed_run_topologyring.conf index de83ab201..22d934db8 100644 --- a/src/testbed/test_testbed_api_testbed_run_topologyring.conf +++ b/src/testbed/test_testbed_api_testbed_run_topologyring.conf | |||
@@ -4,7 +4,6 @@ PORT = 12113 | |||
4 | ACCEPT_FROM = 127.0.0.1; | 4 | ACCEPT_FROM = 127.0.0.1; |
5 | HOSTNAME = localhost | 5 | HOSTNAME = localhost |
6 | NEIGHBOUR_LIMIT = 100 | 6 | NEIGHBOUR_LIMIT = 100 |
7 | PARALLEL_OVERLAY_CONNECT_THRESHOLD = 2 | ||
8 | OVERLAY_TOPOLOGY = RING | 7 | OVERLAY_TOPOLOGY = RING |
9 | #PREFIX = xterm -geometry 100x85 -T peer1 -e libtool --mode=execute gdb --args | 8 | #PREFIX = xterm -geometry 100x85 -T peer1 -e libtool --mode=execute gdb --args |
10 | 9 | ||
@@ -77,4 +76,4 @@ AUTOSTART = NO | |||
77 | RETURN_LOCAL_ADDRESSES = YES | 76 | RETURN_LOCAL_ADDRESSES = YES |
78 | 77 | ||
79 | [gns-helper-service-w32] | 78 | [gns-helper-service-w32] |
80 | AUTOSTART = NO \ No newline at end of file | 79 | AUTOSTART = NO |
diff --git a/src/testbed/test_testbed_api_testbed_run_topologyscalefree.conf b/src/testbed/test_testbed_api_testbed_run_topologyscalefree.conf index de83ab201..22d934db8 100644 --- a/src/testbed/test_testbed_api_testbed_run_topologyscalefree.conf +++ b/src/testbed/test_testbed_api_testbed_run_topologyscalefree.conf | |||
@@ -4,7 +4,6 @@ PORT = 12113 | |||
4 | ACCEPT_FROM = 127.0.0.1; | 4 | ACCEPT_FROM = 127.0.0.1; |
5 | HOSTNAME = localhost | 5 | HOSTNAME = localhost |
6 | NEIGHBOUR_LIMIT = 100 | 6 | NEIGHBOUR_LIMIT = 100 |
7 | PARALLEL_OVERLAY_CONNECT_THRESHOLD = 2 | ||
8 | OVERLAY_TOPOLOGY = RING | 7 | OVERLAY_TOPOLOGY = RING |
9 | #PREFIX = xterm -geometry 100x85 -T peer1 -e libtool --mode=execute gdb --args | 8 | #PREFIX = xterm -geometry 100x85 -T peer1 -e libtool --mode=execute gdb --args |
10 | 9 | ||
@@ -77,4 +76,4 @@ AUTOSTART = NO | |||
77 | RETURN_LOCAL_ADDRESSES = YES | 76 | RETURN_LOCAL_ADDRESSES = YES |
78 | 77 | ||
79 | [gns-helper-service-w32] | 78 | [gns-helper-service-w32] |
80 | AUTOSTART = NO \ No newline at end of file | 79 | AUTOSTART = NO |
diff --git a/src/testbed/test_testbed_api_testbed_run_topologysmallworld.conf b/src/testbed/test_testbed_api_testbed_run_topologysmallworld.conf index c54f0bfaa..fabc74f37 100644 --- a/src/testbed/test_testbed_api_testbed_run_topologysmallworld.conf +++ b/src/testbed/test_testbed_api_testbed_run_topologysmallworld.conf | |||
@@ -3,7 +3,6 @@ AUTOSTART = NO | |||
3 | PORT = 12113 | 3 | PORT = 12113 |
4 | ACCEPT_FROM = 127.0.0.1; | 4 | ACCEPT_FROM = 127.0.0.1; |
5 | HOSTNAME = localhost | 5 | HOSTNAME = localhost |
6 | PARALLEL_OVERLAY_CONNECT_THRESHOLD = 2 | ||
7 | OVERLAY_TOPOLOGY = SMALL_WORLD | 6 | OVERLAY_TOPOLOGY = SMALL_WORLD |
8 | OVERLAY_RANDOM_LINKS = 3 | 7 | OVERLAY_RANDOM_LINKS = 3 |
9 | #PREFIX = xterm -geometry 100x85 -T peer1 -e libtool --mode=execute gdb --args | 8 | #PREFIX = xterm -geometry 100x85 -T peer1 -e libtool --mode=execute gdb --args |
diff --git a/src/testbed/test_testbed_api_testbed_run_topologysmallworldring.conf b/src/testbed/test_testbed_api_testbed_run_topologysmallworldring.conf index cb7e5e3a8..7b26f4f27 100644 --- a/src/testbed/test_testbed_api_testbed_run_topologysmallworldring.conf +++ b/src/testbed/test_testbed_api_testbed_run_topologysmallworldring.conf | |||
@@ -3,7 +3,6 @@ AUTOSTART = NO | |||
3 | PORT = 12113 | 3 | PORT = 12113 |
4 | ACCEPT_FROM = 127.0.0.1; | 4 | ACCEPT_FROM = 127.0.0.1; |
5 | HOSTNAME = localhost | 5 | HOSTNAME = localhost |
6 | PARALLEL_OVERLAY_CONNECT_THRESHOLD = 2 | ||
7 | OVERLAY_TOPOLOGY = SMALL_WORLD_RING | 6 | OVERLAY_TOPOLOGY = SMALL_WORLD_RING |
8 | OVERLAY_RANDOM_LINKS = 3 | 7 | OVERLAY_RANDOM_LINKS = 3 |
9 | #PREFIX = xterm -geometry 100x85 -T peer1 -e libtool --mode=execute gdb --args | 8 | #PREFIX = xterm -geometry 100x85 -T peer1 -e libtool --mode=execute gdb --args |
diff --git a/src/testbed/testbed.conf.in b/src/testbed/testbed.conf.in index 47b798830..1634cf95d 100644 --- a/src/testbed/testbed.conf.in +++ b/src/testbed/testbed.conf.in | |||
@@ -13,5 +13,5 @@ UNIX_MATCH_UID = YES | |||
13 | UNIX_MATCH_GID = YES | 13 | UNIX_MATCH_GID = YES |
14 | MAX_PARALLEL_OPERATIONS = 1000 | 14 | MAX_PARALLEL_OPERATIONS = 1000 |
15 | MAX_PARALLEL_SERVICE_CONNECTIONS = 1000 | 15 | MAX_PARALLEL_SERVICE_CONNECTIONS = 1000 |
16 | MAX_PARALLEL_TOPOLOGY_CONFIG_OPERATIONS = 5 | 16 | MAX_PARALLEL_TOPOLOGY_CONFIG_OPERATIONS = 1 |
17 | PARALLEL_OVERLAY_CONNECT_THRESHOLD = 16 | 17 | HELLO_CACHE_SIZE = 30 |