diff options
author | Fabian Oehlmann <oehlmann@in.tum.de> | 2013-10-08 20:56:51 +0000 |
---|---|---|
committer | Fabian Oehlmann <oehlmann@in.tum.de> | 2013-10-08 20:56:51 +0000 |
commit | 9a2788bae8470a70e6a307b3f56849435ed76f1b (patch) | |
tree | a96351446e9f0bf2edf3c454e16320204377f800 | |
parent | 44185ad408c3a1197ff7468b23e116e0bc70a876 (diff) | |
download | gnunet-9a2788bae8470a70e6a307b3f56849435ed76f1b.tar.gz gnunet-9a2788bae8470a70e6a307b3f56849435ed76f1b.zip |
ats_ril: made compatible to plugin change
-rw-r--r-- | src/ats/Makefile.am | 15 | ||||
-rwxr-xr-x | src/ats/libgnunet_plugin_ats_ril.c (renamed from src/ats/gnunet-service-ats-solver_ril.c) | 153 | ||||
-rwxr-xr-x | src/ats/libgnunet_plugin_ats_ril.h (renamed from src/ats/gnunet-service-ats-solver_ril.h) | 59 |
3 files changed, 70 insertions, 157 deletions
diff --git a/src/ats/Makefile.am b/src/ats/Makefile.am index fd2156213..1cd5e7f34 100644 --- a/src/ats/Makefile.am +++ b/src/ats/Makefile.am | |||
@@ -35,7 +35,8 @@ lib_LTLIBRARIES = libgnunetats.la | |||
35 | 35 | ||
36 | plugin_LTLIBRARIES = \ | 36 | plugin_LTLIBRARIES = \ |
37 | libgnunet_plugin_ats_proportional.la \ | 37 | libgnunet_plugin_ats_proportional.la \ |
38 | $(GN_MLP_LIB) | 38 | $(GN_MLP_LIB) \ |
39 | libgnunet_plugin_ats_ril.la | ||
39 | 40 | ||
40 | libgnunetats_la_SOURCES = \ | 41 | libgnunetats_la_SOURCES = \ |
41 | ats_api_scheduling.c \ | 42 | ats_api_scheduling.c \ |
@@ -96,12 +97,12 @@ TESTING_TESTS = \ | |||
96 | $(GN_MLP_ADD_REQUEST_ADDRESS) \ | 97 | $(GN_MLP_ADD_REQUEST_ADDRESS) \ |
97 | $(GN_MLP_REQUEST_ADD_ADDRESS) \ | 98 | $(GN_MLP_REQUEST_ADD_ADDRESS) \ |
98 | $(GN_MLP_REQUEST_DELETE_ADDRESS) \ | 99 | $(GN_MLP_REQUEST_DELETE_ADDRESS) \ |
99 | $(GN_MLP_ALTERNATIVE_DELETE_ADDRESS) | 100 | $(GN_MLP_ALTERNATIVE_DELETE_ADDRESS) \ |
100 | # test_ats_solver_add_address_ril | 101 | test_ats_solver_add_address_ril \ |
101 | # test_ats_solver_add_address_and_request_ril | 102 | test_ats_solver_add_address_and_request_ril \ |
102 | # test_ats_solver_request_and_add_address_ril | 103 | test_ats_solver_request_and_add_address_ril \ |
103 | # test_ats_solver_request_and_delete_address_ril | 104 | test_ats_solver_request_and_delete_address_ril \ |
104 | # test_ats_solver_alternative_after_delete_address_ril | 105 | test_ats_solver_alternative_after_delete_address_ril |
105 | 106 | ||
106 | # test_ats_api_scheduling_min_bw | 107 | # test_ats_api_scheduling_min_bw |
107 | # test_ats_api_scheduling_check_min_bw_alt | 108 | # test_ats_api_scheduling_check_min_bw_alt |
diff --git a/src/ats/gnunet-service-ats-solver_ril.c b/src/ats/libgnunet_plugin_ats_ril.c index e0ba317bb..b829f3357 100755 --- a/src/ats/gnunet-service-ats-solver_ril.c +++ b/src/ats/libgnunet_plugin_ats_ril.c | |||
@@ -19,16 +19,12 @@ | |||
19 | */ | 19 | */ |
20 | 20 | ||
21 | /** | 21 | /** |
22 | * @file ats/gnunet-service-ats-solver_ril.c | 22 | * @file ats/libgnunet_plugin_ats_ril.c |
23 | * @brief ATS reinforcement learning solver | 23 | * @brief ATS reinforcement learning solver |
24 | * @author Fabian Oehlmann | 24 | * @author Fabian Oehlmann |
25 | * @author Matthias Wachs | 25 | * @author Matthias Wachs |
26 | */ | 26 | */ |
27 | #include "platform.h" | 27 | #include "libgnunet_plugin_ats_ril.h" |
28 | #include "float.h" | ||
29 | #include "gnunet_util_lib.h" | ||
30 | #include "gnunet-service-ats_addresses.h" | ||
31 | #include "gnunet_statistics_service.h" | ||
32 | 28 | ||
33 | #define LOG(kind,...) GNUNET_log_from (kind, "ats-ril",__VA_ARGS__) | 29 | #define LOG(kind,...) GNUNET_log_from (kind, "ats-ril",__VA_ARGS__) |
34 | 30 | ||
@@ -285,6 +281,11 @@ struct RIL_Callbacks | |||
285 | struct GAS_RIL_Handle | 281 | struct GAS_RIL_Handle |
286 | { | 282 | { |
287 | /** | 283 | /** |
284 | * | ||
285 | */ | ||
286 | struct GNUNET_ATS_PluginEnvironment *plugin_envi; | ||
287 | |||
288 | /** | ||
288 | * Statistics handle | 289 | * Statistics handle |
289 | */ | 290 | */ |
290 | struct GNUNET_STATISTICS_Handle *stats; | 291 | struct GNUNET_STATISTICS_Handle *stats; |
@@ -300,16 +301,6 @@ struct GAS_RIL_Handle | |||
300 | struct RIL_Callbacks *callbacks; | 301 | struct RIL_Callbacks *callbacks; |
301 | 302 | ||
302 | /** | 303 | /** |
303 | * Bulk lock | ||
304 | */ | ||
305 | int bulk_lock; | ||
306 | |||
307 | /** | ||
308 | * Number of changes while solver was locked | ||
309 | */ | ||
310 | int bulk_requests; | ||
311 | |||
312 | /** | ||
313 | * Number of performed time-steps | 304 | * Number of performed time-steps |
314 | */ | 305 | */ |
315 | unsigned long long step_count; | 306 | unsigned long long step_count; |
@@ -1253,71 +1244,32 @@ GAS_ril_address_change_preference (void *s, | |||
1253 | */ | 1244 | */ |
1254 | } | 1245 | } |
1255 | 1246 | ||
1256 | /** | 1247 | //TODO doxygen |
1257 | * Init the reinforcement learning problem solver | ||
1258 | * | ||
1259 | * Quotas: | ||
1260 | * network[i] contains the network type as type GNUNET_ATS_NetworkType[i] | ||
1261 | * out_quota[i] contains outbound quota for network type i | ||
1262 | * in_quota[i] contains inbound quota for network type i | ||
1263 | * | ||
1264 | * Example | ||
1265 | * network = {GNUNET_ATS_NET_UNSPECIFIED, GNUNET_ATS_NET_LOOPBACK, GNUNET_ATS_NET_LAN, GNUNET_ATS_NET_WAN, GNUNET_ATS_NET_WLAN} | ||
1266 | * network[2] == GNUNET_ATS_NET_LAN | ||
1267 | * out_quota[2] == 65353 | ||
1268 | * in_quota[2] == 65353 | ||
1269 | * | ||
1270 | * @param cfg configuration handle | ||
1271 | * @param stats the GNUNET_STATISTICS handle | ||
1272 | * @param network array of GNUNET_ATS_NetworkType with length dest_length | ||
1273 | * @param addresses hashmap containing all addresses | ||
1274 | * @param out_quota array of outbound quotas | ||
1275 | * @param in_quota array of outbound quota | ||
1276 | * @param dest_length array length for quota arrays | ||
1277 | * @param bw_changed_cb callback for changed bandwidth amounts | ||
1278 | * @param bw_changed_cb_cls cls for callback | ||
1279 | * @param get_preference callback to get relative preferences for a peer | ||
1280 | * @param get_preference_cls cls for callback to get relative preferences | ||
1281 | * @param get_properties_cls for callback to get relative properties | ||
1282 | * @param get_properties_cls cls for callback to get relative properties | ||
1283 | * @return handle for the solver on success, NULL on fail | ||
1284 | */ | ||
1285 | void * | 1248 | void * |
1286 | GAS_ril_init (const struct GNUNET_CONFIGURATION_Handle *cfg, | 1249 | libgnunet_plugin_ats_ril_init (void *cls) |
1287 | const struct GNUNET_STATISTICS_Handle *stats, | ||
1288 | const struct GNUNET_CONTAINER_MultiPeerMap *addresses, | ||
1289 | int *network, | ||
1290 | unsigned long long *out_quota, | ||
1291 | unsigned long long *in_quota, | ||
1292 | int dest_length, | ||
1293 | GAS_bandwidth_changed_cb bw_changed_cb, | ||
1294 | void *bw_changed_cb_cls, | ||
1295 | GAS_get_preferences get_preference, | ||
1296 | void *get_preference_cls, | ||
1297 | GAS_get_properties get_properties, | ||
1298 | void *get_properties_cls) | ||
1299 | { | 1250 | { |
1251 | struct GNUNET_ATS_PluginEnvironment *env = cls; | ||
1252 | struct GAS_RIL_Handle *solver = GNUNET_new (struct GAS_RIL_Handle);; | ||
1253 | struct RIL_Network * cur; | ||
1300 | int c; | 1254 | int c; |
1301 | unsigned long long tmp; | 1255 | unsigned long long tmp; |
1302 | char *string; | 1256 | char *string; |
1303 | struct RIL_Network * cur; | ||
1304 | struct GAS_RIL_Handle *solver = GNUNET_new (struct GAS_RIL_Handle); | ||
1305 | 1257 | ||
1306 | LOG(GNUNET_ERROR_TYPE_DEBUG, "API_init() Initializing RIL solver\n"); | 1258 | LOG(GNUNET_ERROR_TYPE_DEBUG, "API_init() Initializing RIL solver\n"); |
1307 | 1259 | ||
1308 | GNUNET_assert(NULL != cfg); | 1260 | GNUNET_assert(NULL != env); |
1309 | GNUNET_assert(NULL != stats); | 1261 | GNUNET_assert(NULL != env->cfg); |
1310 | GNUNET_assert(NULL != network); | 1262 | GNUNET_assert(NULL != env->stats); |
1311 | GNUNET_assert(NULL != bw_changed_cb); | 1263 | GNUNET_assert(NULL != env->bandwidth_changed_cb); |
1312 | GNUNET_assert(NULL != get_preference); | 1264 | GNUNET_assert(NULL != env->get_preferences_cb); |
1313 | GNUNET_assert(NULL != get_properties); | 1265 | GNUNET_assert(NULL != env->get_property_cb); |
1314 | 1266 | ||
1315 | if (GNUNET_OK | 1267 | if (GNUNET_OK |
1316 | != GNUNET_CONFIGURATION_get_value_time (cfg, "ats", "RIL_STEP_TIME", &solver->step_time)) | 1268 | != GNUNET_CONFIGURATION_get_value_time (env->cfg, "ats", "RIL_STEP_TIME", &solver->step_time)) |
1317 | { | 1269 | { |
1318 | solver->step_time = RIL_DEFAULT_STEP_TIME; | 1270 | solver->step_time = RIL_DEFAULT_STEP_TIME; |
1319 | } | 1271 | } |
1320 | if (GNUNET_OK == GNUNET_CONFIGURATION_get_value_string (cfg, "ats", "RIL_ALGORITHM", &string) | 1272 | if (GNUNET_OK == GNUNET_CONFIGURATION_get_value_string (env->cfg, "ats", "RIL_ALGORITHM", &string) |
1321 | && NULL != string && 0 == strcmp (string, "SARSA")) | 1273 | && NULL != string && 0 == strcmp (string, "SARSA")) |
1322 | { | 1274 | { |
1323 | solver->parameters.algorithm = RIL_ALGO_SARSA; | 1275 | solver->parameters.algorithm = RIL_ALGO_SARSA; |
@@ -1326,7 +1278,7 @@ GAS_ril_init (const struct GNUNET_CONFIGURATION_Handle *cfg, | |||
1326 | { | 1278 | { |
1327 | solver->parameters.algorithm = RIL_DEFAULT_ALGORITHM; | 1279 | solver->parameters.algorithm = RIL_DEFAULT_ALGORITHM; |
1328 | } | 1280 | } |
1329 | if (GNUNET_OK == GNUNET_CONFIGURATION_get_value_size (cfg, "ats", "RIL_DISCOUNT_FACTOR", &tmp)) | 1281 | if (GNUNET_OK == GNUNET_CONFIGURATION_get_value_size (env->cfg, "ats", "RIL_DISCOUNT_FACTOR", &tmp)) |
1330 | { | 1282 | { |
1331 | solver->parameters.gamma = (double) tmp / 100; | 1283 | solver->parameters.gamma = (double) tmp / 100; |
1332 | } | 1284 | } |
@@ -1334,7 +1286,7 @@ GAS_ril_init (const struct GNUNET_CONFIGURATION_Handle *cfg, | |||
1334 | { | 1286 | { |
1335 | solver->parameters.gamma = RIL_DEFAULT_DISCOUNT_FACTOR; | 1287 | solver->parameters.gamma = RIL_DEFAULT_DISCOUNT_FACTOR; |
1336 | } | 1288 | } |
1337 | if (GNUNET_OK == GNUNET_CONFIGURATION_get_value_size (cfg, "ats", "RIL_GRADIENT_STEP_SIZE", &tmp)) | 1289 | if (GNUNET_OK == GNUNET_CONFIGURATION_get_value_size (env->cfg, "ats", "RIL_GRADIENT_STEP_SIZE", &tmp)) |
1338 | { | 1290 | { |
1339 | solver->parameters.alpha = (double) tmp / 100; | 1291 | solver->parameters.alpha = (double) tmp / 100; |
1340 | } | 1292 | } |
@@ -1342,7 +1294,7 @@ GAS_ril_init (const struct GNUNET_CONFIGURATION_Handle *cfg, | |||
1342 | { | 1294 | { |
1343 | solver->parameters.alpha = RIL_DEFAULT_GRADIENT_STEP_SIZE; | 1295 | solver->parameters.alpha = RIL_DEFAULT_GRADIENT_STEP_SIZE; |
1344 | } | 1296 | } |
1345 | if (GNUNET_OK == GNUNET_CONFIGURATION_get_value_size (cfg, "ats", "RIL_TRACE_DECAY", &tmp)) | 1297 | if (GNUNET_OK == GNUNET_CONFIGURATION_get_value_size (env->cfg, "ats", "RIL_TRACE_DECAY", &tmp)) |
1346 | { | 1298 | { |
1347 | solver->parameters.lambda = (double) tmp / 100; | 1299 | solver->parameters.lambda = (double) tmp / 100; |
1348 | } | 1300 | } |
@@ -1351,27 +1303,40 @@ GAS_ril_init (const struct GNUNET_CONFIGURATION_Handle *cfg, | |||
1351 | solver->parameters.lambda = RIL_DEFAULT_TRACE_DECAY; | 1303 | solver->parameters.lambda = RIL_DEFAULT_TRACE_DECAY; |
1352 | } | 1304 | } |
1353 | 1305 | ||
1354 | solver->stats = (struct GNUNET_STATISTICS_Handle *) stats; | 1306 | env->sf.s_add = &GAS_ril_address_add; |
1307 | env->sf.s_address_update_property = &GAS_ril_address_property_changed; | ||
1308 | env->sf.s_address_update_session = &GAS_ril_address_session_changed; | ||
1309 | env->sf.s_address_update_inuse = &GAS_ril_address_inuse_changed; | ||
1310 | env->sf.s_address_update_network = &GAS_ril_address_change_network; | ||
1311 | env->sf.s_get = &GAS_ril_get_preferred_address; | ||
1312 | env->sf.s_get_stop = &GAS_ril_stop_get_preferred_address; | ||
1313 | env->sf.s_pref = &GAS_ril_address_change_preference; | ||
1314 | env->sf.s_feedback = &GAS_ril_address_preference_feedback; | ||
1315 | env->sf.s_del = &GAS_ril_address_delete; | ||
1316 | env->sf.s_bulk_start = &GAS_ril_bulk_start; | ||
1317 | env->sf.s_bulk_stop = &GAS_ril_bulk_stop; | ||
1318 | |||
1319 | solver->plugin_envi = env; | ||
1320 | solver->stats = (struct GNUNET_STATISTICS_Handle *) env->stats; | ||
1355 | solver->callbacks = GNUNET_malloc (sizeof (struct RIL_Callbacks)); | 1321 | solver->callbacks = GNUNET_malloc (sizeof (struct RIL_Callbacks)); |
1356 | solver->callbacks->bw_changed = bw_changed_cb; | 1322 | solver->callbacks->bw_changed = env->bandwidth_changed_cb; |
1357 | solver->callbacks->bw_changed_cls = bw_changed_cb_cls; | 1323 | solver->callbacks->bw_changed_cls = env->bw_changed_cb_cls; |
1358 | solver->callbacks->get_preferences = get_preference; | 1324 | solver->callbacks->get_preferences = env->get_preferences_cb; |
1359 | solver->callbacks->get_preferences_cls = get_preference_cls; | 1325 | solver->callbacks->get_preferences_cls = env->get_preference_cls; |
1360 | solver->callbacks->get_properties = get_properties; | 1326 | solver->callbacks->get_properties = env->get_property_cb; |
1361 | solver->callbacks->get_properties_cls = get_properties_cls; | 1327 | solver->callbacks->get_properties_cls = env->get_property_cls; |
1362 | solver->networks_count = dest_length; | 1328 | solver->networks_count = env->network_count; |
1363 | solver->network_entries = GNUNET_malloc (dest_length * sizeof (struct RIL_Network)); | 1329 | solver->network_entries = GNUNET_malloc (env->network_count * sizeof (struct RIL_Network)); |
1364 | solver->bulk_lock = GNUNET_NO; | 1330 | solver->addresses = env->addresses; |
1365 | solver->addresses = addresses; | ||
1366 | solver->step_count = 0; | 1331 | solver->step_count = 0; |
1367 | 1332 | ||
1368 | for (c = 0; c < dest_length; c++) | 1333 | for (c = 0; c < env->network_count; c++) |
1369 | { | 1334 | { |
1370 | cur = &solver->network_entries[c]; | 1335 | cur = &solver->network_entries[c]; |
1371 | cur->type = network[c]; | 1336 | cur->type = env->networks[c]; |
1372 | cur->bw_in_available = in_quota[c]; | 1337 | cur->bw_in_available = env->in_quota[c]; |
1373 | cur->bw_in_assigned = 0; | 1338 | cur->bw_in_assigned = 0; |
1374 | cur->bw_out_available = out_quota[c]; | 1339 | cur->bw_out_available = env->out_quota[c]; |
1375 | cur->bw_out_assigned = 0; | 1340 | cur->bw_out_assigned = 0; |
1376 | } | 1341 | } |
1377 | 1342 | ||
@@ -1382,15 +1347,11 @@ GAS_ril_init (const struct GNUNET_CONFIGURATION_Handle *cfg, | |||
1382 | return solver; | 1347 | return solver; |
1383 | } | 1348 | } |
1384 | 1349 | ||
1385 | /** | 1350 | //TODO doxygen |
1386 | * Shutdown the reinforcement learning problem solver | 1351 | void * |
1387 | * | 1352 | libgnunet_plugin_ats_ril_done (void *cls) |
1388 | * @param solver the respective handle to shutdown | ||
1389 | */ | ||
1390 | void | ||
1391 | GAS_ril_done (void * solver) | ||
1392 | { | 1353 | { |
1393 | struct GAS_RIL_Handle *s = solver; | 1354 | struct GAS_RIL_Handle *s = cls; |
1394 | struct RIL_Peer_Agent *cur_agent; | 1355 | struct RIL_Peer_Agent *cur_agent; |
1395 | struct RIL_Peer_Agent *next_agent; | 1356 | struct RIL_Peer_Agent *next_agent; |
1396 | 1357 | ||
@@ -1409,6 +1370,8 @@ GAS_ril_done (void * solver) | |||
1409 | GNUNET_free(s->callbacks); | 1370 | GNUNET_free(s->callbacks); |
1410 | GNUNET_free(s->network_entries); | 1371 | GNUNET_free(s->network_entries); |
1411 | GNUNET_free(s); | 1372 | GNUNET_free(s); |
1373 | |||
1374 | return NULL; | ||
1412 | } | 1375 | } |
1413 | 1376 | ||
1414 | /** | 1377 | /** |
@@ -1834,4 +1797,4 @@ GAS_ril_stop_get_preferred_address (void *solver, const struct GNUNET_PeerIdenti | |||
1834 | GNUNET_i2s (peer), agent->address_inuse->plugin); | 1797 | GNUNET_i2s (peer), agent->address_inuse->plugin); |
1835 | } | 1798 | } |
1836 | 1799 | ||
1837 | /* end of gnunet-service-ats-solver_ril.c */ | 1800 | /* end of libgnunet_plugin_ats_ril.c */ |
diff --git a/src/ats/gnunet-service-ats-solver_ril.h b/src/ats/libgnunet_plugin_ats_ril.h index 16f1fee5f..6f60af52b 100755 --- a/src/ats/gnunet-service-ats-solver_ril.h +++ b/src/ats/libgnunet_plugin_ats_ril.h | |||
@@ -19,13 +19,14 @@ | |||
19 | */ | 19 | */ |
20 | 20 | ||
21 | /** | 21 | /** |
22 | * @file ats/gnunet-service-ats-solver_ril.h | 22 | * @file ats/libgnunet_plugin_ats_ril.h |
23 | * @brief ATS reinforcement learning solver | 23 | * @brief ATS reinforcement learning solver |
24 | * @author Fabian Oehlmann | 24 | * @author Fabian Oehlmann |
25 | * @author Matthias Wachs | 25 | * @author Matthias Wachs |
26 | */ | 26 | */ |
27 | #include "platform.h" | 27 | #include "platform.h" |
28 | #include "gnunet_statistics_service.h" | 28 | #include "float.h" |
29 | #include "gnunet_ats_plugin.h" | ||
29 | #include "gnunet-service-ats_addresses.h" | 30 | #include "gnunet-service-ats_addresses.h" |
30 | 31 | ||
31 | /** | 32 | /** |
@@ -49,58 +50,6 @@ GAS_ril_address_change_preference (void *solver, | |||
49 | double pref_rel); | 50 | double pref_rel); |
50 | 51 | ||
51 | /** | 52 | /** |
52 | * Init the reinforcement learning problem solver | ||
53 | * | ||
54 | * Quotas: | ||
55 | * network[i] contains the network type as type GNUNET_ATS_NetworkType[i] | ||
56 | * out_quota[i] contains outbound quota for network type i | ||
57 | * in_quota[i] contains inbound quota for network type i | ||
58 | * | ||
59 | * Example | ||
60 | * network = {GNUNET_ATS_NET_UNSPECIFIED, GNUNET_ATS_NET_LOOPBACK, GNUNET_ATS_NET_LAN, GNUNET_ATS_NET_WAN, GNUNET_ATS_NET_WLAN} | ||
61 | * network[2] == GNUNET_ATS_NET_LAN | ||
62 | * out_quota[2] == 65353 | ||
63 | * in_quota[2] == 65353 | ||
64 | * | ||
65 | * @param cfg configuration handle | ||
66 | * @param stats the GNUNET_STATISTICS handle | ||
67 | * @param network array of GNUNET_ATS_NetworkType with length dest_length | ||
68 | * @param addresses hashmap containing all addresses | ||
69 | * @param out_quota array of outbound quotas | ||
70 | * @param in_quota array of outbound quota | ||
71 | * @param dest_length array length for quota arrays | ||
72 | * @param bw_changed_cb callback for changed bandwidth amounts | ||
73 | * @param bw_changed_cb_cls cls for callback | ||
74 | * @param get_preference callback to get relative preferences for a peer | ||
75 | * @param get_preference_cls cls for callback to get relative preferences | ||
76 | * @param get_properties_cls for callback to get relative properties | ||
77 | * @param get_properties_cls cls for callback to get relative properties | ||
78 | * @return handle for the solver on success, NULL on fail | ||
79 | */ | ||
80 | void * | ||
81 | GAS_ril_init (const struct GNUNET_CONFIGURATION_Handle *cfg, | ||
82 | const struct GNUNET_STATISTICS_Handle *stats, | ||
83 | const struct GNUNET_CONTAINER_MultiPeerMap *addresses, | ||
84 | int *network, | ||
85 | unsigned long long *out_quota, | ||
86 | unsigned long long *in_quota, | ||
87 | int dest_length, | ||
88 | GAS_bandwidth_changed_cb bw_changed_cb, | ||
89 | void *bw_changed_cb_cls, | ||
90 | GAS_get_preferences get_preference, | ||
91 | void *get_preference_cls, | ||
92 | GAS_get_properties get_properties, | ||
93 | void *get_properties_cls); | ||
94 | |||
95 | /** | ||
96 | * Shutdown the reinforcement learning problem solver | ||
97 | * | ||
98 | * @param solver the respective handle to shutdown | ||
99 | */ | ||
100 | void | ||
101 | GAS_ril_done (void * solver); | ||
102 | |||
103 | /** | ||
104 | * Add a single address within a network to the solver | 53 | * Add a single address within a network to the solver |
105 | * | 54 | * |
106 | * @param solver the solver Handle | 55 | * @param solver the solver Handle |
@@ -238,4 +187,4 @@ const struct ATS_Address * | |||
238 | GAS_ril_get_preferred_address (void *solver, | 187 | GAS_ril_get_preferred_address (void *solver, |
239 | const struct GNUNET_PeerIdentity *peer); | 188 | const struct GNUNET_PeerIdentity *peer); |
240 | 189 | ||
241 | /* end of gnunet-service-ats-solver_ril.h */ | 190 | /* end of libgnunet_plugin_ats_ril.h */ |