aboutsummaryrefslogtreecommitdiff
path: root/src/ats
diff options
context:
space:
mode:
authorMatthias Wachs <wachs@net.in.tum.de>2015-01-16 11:39:16 +0000
committerMatthias Wachs <wachs@net.in.tum.de>2015-01-16 11:39:16 +0000
commit8e234654d3dbcc594f29dcc6ccfbecb743e32246 (patch)
treec1af983d1c194d672a985e05d0f20b9c8198b032 /src/ats
parent33ca6599024c899501e455bf53153788180c12ac (diff)
downloadgnunet-8e234654d3dbcc594f29dcc6ccfbecb743e32246.tar.gz
gnunet-8e234654d3dbcc594f29dcc6ccfbecb743e32246.zip
test for solvers to support delayed start
Diffstat (limited to 'src/ats')
-rw-r--r--src/ats/Makefile.am40
-rw-r--r--src/ats/test_ats_solver_add_address_and_request.c24
-rw-r--r--src/ats/test_ats_solver_delayed_mlp.conf20
-rw-r--r--src/ats/test_ats_solver_delayed_proportional.conf20
-rw-r--r--src/ats/test_ats_solver_delayed_ril.conf31
5 files changed, 131 insertions, 4 deletions
diff --git a/src/ats/Makefile.am b/src/ats/Makefile.am
index e7396358f..2ed2f4694 100644
--- a/src/ats/Makefile.am
+++ b/src/ats/Makefile.am
@@ -26,6 +26,7 @@ if HAVE_LIBGLPK
26 GN_MLP_PERF = perf_ats_mlp 26 GN_MLP_PERF = perf_ats_mlp
27 GN_MLP_ADD_ADDRESS = test_ats_solver_add_address_mlp 27 GN_MLP_ADD_ADDRESS = test_ats_solver_add_address_mlp
28 GN_MLP_ADD_REQUEST_ADDRESS = test_ats_solver_add_address_and_request_mlp 28 GN_MLP_ADD_REQUEST_ADDRESS = test_ats_solver_add_address_and_request_mlp
29 GN_MLP_ADD_REQUEST_ADDRESS_DELAYED = test_ats_solver_add_address_and_request_delayed_mlp
29 GN_MLP_REQUEST_ADD_ADDRESS = test_ats_solver_request_and_add_address_mlp 30 GN_MLP_REQUEST_ADD_ADDRESS = test_ats_solver_request_and_add_address_mlp
30 GN_MLP_REQUEST_DELETE_ADDRESS = test_ats_solver_request_and_delete_address_mlp 31 GN_MLP_REQUEST_DELETE_ADDRESS = test_ats_solver_request_and_delete_address_mlp
31 GN_MLP_PREFERENCES_ADDRESS = test_ats_solver_preferences_mlp 32 GN_MLP_PREFERENCES_ADDRESS = test_ats_solver_preferences_mlp
@@ -123,10 +124,11 @@ TESTING_TESTS = \
123 test_ats_api_performance_list_peer_addresses \ 124 test_ats_api_performance_list_peer_addresses \
124 test_ats_api_performance_list_all_addresses_active \ 125 test_ats_api_performance_list_all_addresses_active \
125 test_ats_api_performance_monitor \ 126 test_ats_api_performance_monitor \
126 test_ats_api_delayed_service_performance_monitor\ 127 test_ats_api_delayed_service_performance_monitor \
127 test_ats_api_performance_monitor_initial_callback \ 128 test_ats_api_performance_monitor_initial_callback \
128 test_ats_solver_add_address_proportional \ 129 test_ats_solver_add_address_proportional \
129 test_ats_solver_add_address_and_request_proportional \ 130 test_ats_solver_add_address_and_request_proportional \
131 test_ats_solver_add_address_and_request_delayed_proportional\
130 test_ats_solver_request_and_add_address_proportional \ 132 test_ats_solver_request_and_add_address_proportional \
131 test_ats_solver_request_and_delete_address_proportional \ 133 test_ats_solver_request_and_delete_address_proportional \
132 test_ats_solver_alternative_after_delete_address_proportional \ 134 test_ats_solver_alternative_after_delete_address_proportional \
@@ -134,12 +136,14 @@ TESTING_TESTS = \
134 test_ats_solver_preferences_ril \ 136 test_ats_solver_preferences_ril \
135 $(GN_MLP_ADD_ADDRESS) \ 137 $(GN_MLP_ADD_ADDRESS) \
136 $(GN_MLP_ADD_REQUEST_ADDRESS) \ 138 $(GN_MLP_ADD_REQUEST_ADDRESS) \
139 $(GN_MLP_ADD_REQUEST_ADDRESS_DELAYED) \
137 $(GN_MLP_REQUEST_ADD_ADDRESS) \ 140 $(GN_MLP_REQUEST_ADD_ADDRESS) \
138 $(GN_MLP_REQUEST_DELETE_ADDRESS) \ 141 $(GN_MLP_REQUEST_DELETE_ADDRESS) \
139 $(GN_MLP_ALTERNATIVE_DELETE_ADDRESS) \ 142 $(GN_MLP_ALTERNATIVE_DELETE_ADDRESS) \
140 $(GN_MLP_PREFERENCES_ADDRESS) \ 143 $(GN_MLP_PREFERENCES_ADDRESS) \
141 test_ats_solver_add_address_ril \ 144 test_ats_solver_add_address_ril \
142 test_ats_solver_add_address_and_request_ril \ 145 test_ats_solver_add_address_and_request_ril \
146 test_ats_solver_add_address_and_request_delayed_ril \
143 test_ats_solver_request_and_add_address_ril \ 147 test_ats_solver_request_and_add_address_ril \
144 test_ats_solver_request_and_delete_address_ril \ 148 test_ats_solver_request_and_delete_address_ril \
145 test_ats_solver_alternative_after_delete_address_ril \ 149 test_ats_solver_alternative_after_delete_address_ril \
@@ -347,6 +351,26 @@ test_ats_solver_add_address_and_request_proportional_LDADD = \
347 libgnunetats.la \ 351 libgnunetats.la \
348 $(top_builddir)/src/statistics/libgnunetstatistics.la 352 $(top_builddir)/src/statistics/libgnunetstatistics.la
349 353
354test_ats_solver_add_address_and_request_delayed_proportional_SOURCES = \
355 test_ats_solver_add_address_and_request.c \
356 test_ats_api_common.c test_ats_api_common.h
357test_ats_solver_add_address_and_request_delayed_proportional_LDADD = \
358 $(top_builddir)/src/util/libgnunetutil.la \
359 $(top_builddir)/src/testing/libgnunettesting.la \
360 $(top_builddir)/src/hello/libgnunethello.la \
361 libgnunetats.la \
362 $(top_builddir)/src/statistics/libgnunetstatistics.la
363
364test_ats_solver_add_address_and_request_delayed_ril_SOURCES = \
365 test_ats_solver_add_address_and_request.c \
366 test_ats_api_common.c test_ats_api_common.h
367test_ats_solver_add_address_and_request_delayed_ril_LDADD = \
368 $(top_builddir)/src/util/libgnunetutil.la \
369 $(top_builddir)/src/testing/libgnunettesting.la \
370 $(top_builddir)/src/hello/libgnunethello.la \
371 libgnunetats.la \
372 $(top_builddir)/src/statistics/libgnunetstatistics.la
373
350if HAVE_LIBGLPK 374if HAVE_LIBGLPK
351test_ats_solver_add_address_and_request_mlp_SOURCES = \ 375test_ats_solver_add_address_and_request_mlp_SOURCES = \
352 test_ats_solver_add_address_and_request.c \ 376 test_ats_solver_add_address_and_request.c \
@@ -359,6 +383,16 @@ test_ats_solver_add_address_and_request_mlp_LDADD = \
359 $(top_builddir)/src/statistics/libgnunetstatistics.la 383 $(top_builddir)/src/statistics/libgnunetstatistics.la
360endif 384endif
361 385
386test_ats_solver_add_address_and_request_delayed_mlp_SOURCES = \
387 test_ats_solver_add_address_and_request.c \
388 test_ats_api_common.c test_ats_api_common.h
389test_ats_solver_add_address_and_request_delayed_mlp_LDADD = \
390 $(top_builddir)/src/util/libgnunetutil.la \
391 $(top_builddir)/src/testing/libgnunettesting.la \
392 $(top_builddir)/src/hello/libgnunethello.la \
393 libgnunetats.la \
394 $(top_builddir)/src/statistics/libgnunetstatistics.la
395
362test_ats_solver_add_address_and_request_ril_SOURCES = \ 396test_ats_solver_add_address_and_request_ril_SOURCES = \
363 test_ats_solver_add_address_and_request.c \ 397 test_ats_solver_add_address_and_request.c \
364 test_ats_api_common.c test_ats_api_common.h 398 test_ats_api_common.c test_ats_api_common.h
@@ -538,9 +572,13 @@ EXTRA_DIST = \
538 test_ats_mlp.conf \ 572 test_ats_mlp.conf \
539 test_ats_solver_default.conf \ 573 test_ats_solver_default.conf \
540 test_ats_solver_proportional.conf \ 574 test_ats_solver_proportional.conf \
575 test_ats_solver_proportional.conf \
541 test_ats_solver_mlp.conf \ 576 test_ats_solver_mlp.conf \
577 test_ats_solver_delayed_mlp.conf \
542 test_ats_solver_ril.conf \ 578 test_ats_solver_ril.conf \
579 test_ats_solver_delayed_ril.conf \
543 perf_ats_solver_mlp.conf \ 580 perf_ats_solver_mlp.conf \
581 test_ats_solver_delayed_mlp.conf \
544 perf_ats_solver_proportional.conf \ 582 perf_ats_solver_proportional.conf \
545 perf_ats_solver_ril.conf \ 583 perf_ats_solver_ril.conf \
546 perf_ats_solver.conf 584 perf_ats_solver.conf
diff --git a/src/ats/test_ats_solver_add_address_and_request.c b/src/ats/test_ats_solver_add_address_and_request.c
index 1f07f46af..cca1e4692 100644
--- a/src/ats/test_ats_solver_add_address_and_request.c
+++ b/src/ats/test_ats_solver_add_address_and_request.c
@@ -214,6 +214,7 @@ main (int argc, char *argv[])
214 char *test_filename = GNUNET_strdup (argv[0]); 214 char *test_filename = GNUNET_strdup (argv[0]);
215 char *config_file; 215 char *config_file;
216 char *solver; 216 char *solver;
217 int delayed = GNUNET_NO;
217 218
218 ret = 0; 219 ret = 0;
219 220
@@ -232,25 +233,42 @@ main (int argc, char *argv[])
232 GNUNET_break (0); 233 GNUNET_break (0);
233 return -1; 234 return -1;
234 } 235 }
236
235 solver += strlen (src_filename) +1; 237 solver += strlen (src_filename) +1;
236 238
239 if (NULL != strstr (solver, "delayed_"))
240 {
241 delayed = GNUNET_YES;
242 solver += strlen ("delayed_");
243 }
244
237 if (0 == strcmp(solver, "proportional")) 245 if (0 == strcmp(solver, "proportional"))
238 { 246 {
239 config_file = "test_ats_solver_proportional.conf"; 247 if (delayed)
248 config_file = "test_ats_solver_delayed_proportional.conf";
249 else
250 config_file = "test_ats_solver_proportional.conf";
240 } 251 }
241 else if (0 == strcmp(solver, "mlp")) 252 else if (0 == strcmp(solver, "mlp"))
242 { 253 {
243 config_file = "test_ats_solver_mlp.conf"; 254 if (delayed)
255 config_file = "test_ats_solver_delayed_mlp.conf";
256 else
257 config_file = "test_ats_solver_mlp.conf";
244 } 258 }
245 else if ((0 == strcmp(solver, "ril"))) 259 else if ((0 == strcmp(solver, "ril")))
246 { 260 {
247 config_file = "test_ats_solver_ril.conf"; 261 if (delayed)
262 config_file = "test_ats_solver_delayed_ril.conf";
263 else
264 config_file = "test_ats_solver_ril.conf";
248 } 265 }
249 else 266 else
250 { 267 {
251 GNUNET_break (0); 268 GNUNET_break (0);
252 GNUNET_free (src_filename); 269 GNUNET_free (src_filename);
253 GNUNET_free (test_filename); 270 GNUNET_free (test_filename);
271 FPRINTF (stderr, "Invalid test name or configuration not found `%s'\n",src_filename);
254 return 1; 272 return 1;
255 } 273 }
256 274
diff --git a/src/ats/test_ats_solver_delayed_mlp.conf b/src/ats/test_ats_solver_delayed_mlp.conf
new file mode 100644
index 000000000..65142bc84
--- /dev/null
+++ b/src/ats/test_ats_solver_delayed_mlp.conf
@@ -0,0 +1,20 @@
1@INLINE@ test_ats_solver_default.conf
2
3[ats]
4PREFIX = ./test_delay -t 10 --
5MODE = MLP
6# UNSPECIFIED
7UNSPECIFIED_QUOTA_IN = 64 KiB
8UNSPECIFIED_QUOTA_OUT = 64 KiB
9# LOOPBACK
10LOOPBACK_QUOTA_IN = unlimited
11LOOPBACK_QUOTA_OUT = unlimited
12# LAN
13LAN_QUOTA_IN = unlimited
14LAN_QUOTA_OUT = unlimited
15# WAN
16WAN_QUOTA_IN = 64 KiB
17WAN_QUOTA_OUT = 64 KiB
18# WLAN
19WLAN_QUOTA_IN = 512
20WLAN_QUOTA_OUT = 512
diff --git a/src/ats/test_ats_solver_delayed_proportional.conf b/src/ats/test_ats_solver_delayed_proportional.conf
new file mode 100644
index 000000000..260b069f5
--- /dev/null
+++ b/src/ats/test_ats_solver_delayed_proportional.conf
@@ -0,0 +1,20 @@
1@INLINE@ test_ats_solver_default.conf
2
3[ats]
4PREFIX = ./test_delay -t 10 --
5MODE = PROPORTIONAL
6# UNSPECIFIED
7UNSPECIFIED_QUOTA_IN = 64 KiB
8UNSPECIFIED_QUOTA_OUT = 64 KiB
9# LOOPBACK
10LOOPBACK_QUOTA_IN = unlimited
11LOOPBACK_QUOTA_OUT = unlimited
12# LAN
13LAN_QUOTA_IN = unlimited
14LAN_QUOTA_OUT = unlimited
15# WAN
16WAN_QUOTA_IN = 64 KiB
17WAN_QUOTA_OUT = 64 KiB
18# WLAN
19WLAN_QUOTA_IN = 512
20WLAN_QUOTA_OUT = 512
diff --git a/src/ats/test_ats_solver_delayed_ril.conf b/src/ats/test_ats_solver_delayed_ril.conf
new file mode 100644
index 000000000..e802f351b
--- /dev/null
+++ b/src/ats/test_ats_solver_delayed_ril.conf
@@ -0,0 +1,31 @@
1@INLINE@ test_ats_solver_default.conf
2
3[ats]
4PREFIX = ./test_delay -t 10 --
5MODE = RIL
6# UNSPECIFIED
7UNSPECIFIED_QUOTA_IN = 64 KiB
8UNSPECIFIED_QUOTA_OUT = 64 KiB
9# LOOPBACK
10LOOPBACK_QUOTA_IN = unlimited
11LOOPBACK_QUOTA_OUT = unlimited
12# LAN
13LAN_QUOTA_IN = unlimited
14LAN_QUOTA_OUT = unlimited
15# WAN
16WAN_QUOTA_IN = 64 KiB
17WAN_QUOTA_OUT = 64 KiB
18# WLAN
19WLAN_QUOTA_IN = 512
20WLAN_QUOTA_OUT = 512
21
22# Reinforcement Learning Parameters
23RIL_STEP_TIME_MIN = 500 ms
24RIL_STEP_TIME_MAX = 1000 ms
25
26RIL_ALGORITHM = Q
27RIL_DISCOUNT_BETA = 0.7
28RIL_GRADIENT_STEP_SIZE = 0.3
29RIL_TRACE_DECAY = 0.2
30RIL_EXPLORE_RATIO = 0.1
31RIL_GLOBAL_REWARD_SHARE = 1