aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2015-02-06 14:25:50 +0000
committerChristian Grothoff <christian@grothoff.org>2015-02-06 14:25:50 +0000
commit936db3ddce41de5f16e931d1a995c0be0135ac73 (patch)
tree3fd5cdf164b49a0fe5a567c60d982fc3d23257cf /src
parent34206679446e053b674a4fbdaabdd8c463ad70e2 (diff)
downloadgnunet-936db3ddce41de5f16e931d1a995c0be0135ac73.tar.gz
gnunet-936db3ddce41de5f16e931d1a995c0be0135ac73.zip
test ATS tests to pass again
Diffstat (limited to 'src')
-rw-r--r--src/ats/Makefile.am4
-rw-r--r--src/ats/gnunet-service-ats_connectivity.c15
-rw-r--r--src/ats/gnunet-service-ats_connectivity.h11
-rw-r--r--src/ats/gnunet-service-ats_plugins.c11
-rw-r--r--src/ats/plugin_ats_ril.c26
5 files changed, 45 insertions, 22 deletions
diff --git a/src/ats/Makefile.am b/src/ats/Makefile.am
index 59e8d178b..fcd71d37d 100644
--- a/src/ats/Makefile.am
+++ b/src/ats/Makefile.am
@@ -45,6 +45,7 @@ gnunet_ats_solver_eval_SOURCES = \
45 gnunet-ats-solver-eval.c gnunet-ats-solver-eval.h \ 45 gnunet-ats-solver-eval.c gnunet-ats-solver-eval.h \
46 gnunet-service-ats_addresses.c gnunet-service-ats_addresses.h \ 46 gnunet-service-ats_addresses.c gnunet-service-ats_addresses.h \
47 gnunet-service-ats_plugins.c gnunet-service-ats_plugins.h \ 47 gnunet-service-ats_plugins.c gnunet-service-ats_plugins.h \
48 gnunet-service-ats_connectivity.c gnunet-service-ats_connectivity.h \
48 gnunet-service-ats_feedback.c gnunet-service-ats_feedback.h \ 49 gnunet-service-ats_feedback.c gnunet-service-ats_feedback.h \
49 gnunet-service-ats_performance.c gnunet-service-ats_performance.h \ 50 gnunet-service-ats_performance.c gnunet-service-ats_performance.h \
50 gnunet-service-ats_preferences.c gnunet-service-ats_preferences.h \ 51 gnunet-service-ats_preferences.c gnunet-service-ats_preferences.h \
@@ -530,6 +531,7 @@ perf_ats_solver_mlp_SOURCES = \
530 test_ats_api_common.c \ 531 test_ats_api_common.c \
531 gnunet-service-ats_normalization.c \ 532 gnunet-service-ats_normalization.c \
532 gnunet-service-ats_addresses.c gnunet-service-ats_addresses.h \ 533 gnunet-service-ats_addresses.c gnunet-service-ats_addresses.h \
534 gnunet-service-ats_connectivity.c gnunet-service-ats_connectivity.h \
533 gnunet-service-ats_performance.c gnunet-service-ats_performance.h \ 535 gnunet-service-ats_performance.c gnunet-service-ats_performance.h \
534 gnunet-service-ats_preferences.c gnunet-service-ats_preferences.h \ 536 gnunet-service-ats_preferences.c gnunet-service-ats_preferences.h \
535 gnunet-service-ats_scheduling.c gnunet-service-ats_scheduling.h \ 537 gnunet-service-ats_scheduling.c gnunet-service-ats_scheduling.h \
@@ -547,6 +549,7 @@ perf_ats_solver_proportional_SOURCES = \
547 test_ats_api_common.c \ 549 test_ats_api_common.c \
548 gnunet-service-ats_normalization.c \ 550 gnunet-service-ats_normalization.c \
549 gnunet-service-ats_addresses.c gnunet-service-ats_addresses.h \ 551 gnunet-service-ats_addresses.c gnunet-service-ats_addresses.h \
552 gnunet-service-ats_connectivity.c gnunet-service-ats_connectivity.h \
550 gnunet-service-ats_preferences.c gnunet-service-ats_preferences.h \ 553 gnunet-service-ats_preferences.c gnunet-service-ats_preferences.h \
551 gnunet-service-ats_performance.c gnunet-service-ats_performance.h \ 554 gnunet-service-ats_performance.c gnunet-service-ats_performance.h \
552 gnunet-service-ats_scheduling.c gnunet-service-ats_scheduling.h \ 555 gnunet-service-ats_scheduling.c gnunet-service-ats_scheduling.h \
@@ -564,6 +567,7 @@ perf_ats_solver_ril_SOURCES = \
564 test_ats_api_common.c \ 567 test_ats_api_common.c \
565 gnunet-service-ats_normalization.c \ 568 gnunet-service-ats_normalization.c \
566 gnunet-service-ats_addresses.c gnunet-service-ats_addresses.h \ 569 gnunet-service-ats_addresses.c gnunet-service-ats_addresses.h \
570 gnunet-service-ats_connectivity.c gnunet-service-ats_connectivity.h \
567 gnunet-service-ats_preferences.c gnunet-service-ats_preferences.h \ 571 gnunet-service-ats_preferences.c gnunet-service-ats_preferences.h \
568 gnunet-service-ats_performance.c gnunet-service-ats_performance.h \ 572 gnunet-service-ats_performance.c gnunet-service-ats_performance.h \
569 gnunet-service-ats_scheduling.c gnunet-service-ats_scheduling.h \ 573 gnunet-service-ats_scheduling.c gnunet-service-ats_scheduling.h \
diff --git a/src/ats/gnunet-service-ats_connectivity.c b/src/ats/gnunet-service-ats_connectivity.c
index 56d7abbeb..f343557d1 100644
--- a/src/ats/gnunet-service-ats_connectivity.c
+++ b/src/ats/gnunet-service-ats_connectivity.c
@@ -51,6 +51,21 @@ static struct GNUNET_CONTAINER_MultiPeerMap *connection_requests;
51 51
52 52
53/** 53/**
54 * Is the given peer in the list of peers for which we
55 * have an address request?
56 *
57 * @param peer peer to query for
58 * @return #GNUNET_YES if so, #GNUNET_NO if not
59 */
60int
61GAS_connectivity_has_peer (const struct GNUNET_PeerIdentity *peer)
62{
63 return GNUNET_CONTAINER_multipeermap_contains (connection_requests,
64 peer);
65}
66
67
68/**
54 * Handle 'request address' messages from clients. 69 * Handle 'request address' messages from clients.
55 * 70 *
56 * @param cls unused, NULL 71 * @param cls unused, NULL
diff --git a/src/ats/gnunet-service-ats_connectivity.h b/src/ats/gnunet-service-ats_connectivity.h
index 61c1d0ce5..f94932a1b 100644
--- a/src/ats/gnunet-service-ats_connectivity.h
+++ b/src/ats/gnunet-service-ats_connectivity.h
@@ -30,6 +30,17 @@
30 30
31 31
32/** 32/**
33 * Is the given peer in the list of peers for which we
34 * have an address request?
35 *
36 * @param peer peer to query for
37 * @return #GNUNET_YES if so, #GNUNET_NO if not
38 */
39int
40GAS_connectivity_has_peer (const struct GNUNET_PeerIdentity *peer);
41
42
43/**
33 * Handle 'request address' messages from clients. 44 * Handle 'request address' messages from clients.
34 * 45 *
35 * @param cls unused, NULL 46 * @param cls unused, NULL
diff --git a/src/ats/gnunet-service-ats_plugins.c b/src/ats/gnunet-service-ats_plugins.c
index 6c15bc27c..5e3f9c8d4 100644
--- a/src/ats/gnunet-service-ats_plugins.c
+++ b/src/ats/gnunet-service-ats_plugins.c
@@ -26,6 +26,7 @@
26 */ 26 */
27#include "platform.h" 27#include "platform.h"
28#include "gnunet_ats_plugin.h" 28#include "gnunet_ats_plugin.h"
29#include "gnunet-service-ats_connectivity.h"
29#include "gnunet-service-ats_performance.h" 30#include "gnunet-service-ats_performance.h"
30#include "gnunet-service-ats_preferences.h" 31#include "gnunet-service-ats_preferences.h"
31#include "gnunet-service-ats_plugins.h" 32#include "gnunet-service-ats_plugins.h"
@@ -272,7 +273,9 @@ bandwidth_changed_cb (void *cls,
272 */ 273 */
273static unsigned int 274static unsigned int
274load_quotas (const struct GNUNET_CONFIGURATION_Handle *cfg, 275load_quotas (const struct GNUNET_CONFIGURATION_Handle *cfg,
275 unsigned long long *out_dest, unsigned long long *in_dest, int dest_length) 276 unsigned long long *out_dest,
277 unsigned long long *in_dest,
278 int dest_length)
276{ 279{
277 char * entry_in = NULL; 280 char * entry_in = NULL;
278 char * entry_out = NULL; 281 char * entry_out = NULL;
@@ -529,6 +532,7 @@ GAS_plugin_new_address (struct ATS_Address *new_address,
529 atsi, 532 atsi,
530 atsi_count); 533 atsi_count);
531 sf->s_bulk_stop (sf->cls); 534 sf->s_bulk_stop (sf->cls);
535 // if (GAS_connectivity_has_peer (&new_address->peer)) GAS_plugin_request_connect_start (&new_address->peer);
532} 536}
533 537
534 538
@@ -612,15 +616,10 @@ GAS_plugin_request_connect_start (const struct GNUNET_PeerIdentity *pid)
612 "Suggesting address %p for peer `%s'\n", 616 "Suggesting address %p for peer `%s'\n",
613 aa, 617 aa,
614 GNUNET_i2s (pid)); 618 GNUNET_i2s (pid));
615
616 GAS_scheduling_transmit_address_suggestion (pid, 619 GAS_scheduling_transmit_address_suggestion (pid,
617 aa->session_id, 620 aa->session_id,
618 GNUNET_BANDWIDTH_value_init (aa->assigned_bw_out), 621 GNUNET_BANDWIDTH_value_init (aa->assigned_bw_out),
619 GNUNET_BANDWIDTH_value_init (aa->assigned_bw_in)); 622 GNUNET_BANDWIDTH_value_init (aa->assigned_bw_in));
620
621 GNUNET_log(GNUNET_ERROR_TYPE_DEBUG,
622 "Address %p ready for suggestion\n",
623 aa);
624} 623}
625 624
626 625
diff --git a/src/ats/plugin_ats_ril.c b/src/ats/plugin_ats_ril.c
index 6be8ef4f6..3ab2335f8 100644
--- a/src/ats/plugin_ats_ril.c
+++ b/src/ats/plugin_ats_ril.c
@@ -807,7 +807,7 @@ ril_get_max_bw (struct RIL_Scope *net)
807 * @param new_address the address which is to be used 807 * @param new_address the address which is to be used
808 * @param new_bw_in the new amount of inbound bandwidth set for this address 808 * @param new_bw_in the new amount of inbound bandwidth set for this address
809 * @param new_bw_out the new amount of outbound bandwidth set for this address 809 * @param new_bw_out the new amount of outbound bandwidth set for this address
810 * @param silent disables invocation of the bw_changed callback, if GNUNET_YES 810 * @param silent disables invocation of the bw_changed callback, if #GNUNET_YES
811 */ 811 */
812static void 812static void
813envi_set_active_suggestion (struct GAS_RIL_Handle *solver, 813envi_set_active_suggestion (struct GAS_RIL_Handle *solver,
@@ -1930,7 +1930,7 @@ ril_step (struct GAS_RIL_Handle *solver)
1930 1930
1931 ril_networks_update_state (solver); 1931 ril_networks_update_state (solver);
1932 1932
1933 solver->step_count += 1; 1933 solver->step_count++;
1934 ril_step_schedule_next (solver); 1934 ril_step_schedule_next (solver);
1935 1935
1936 ril_inform (solver, GAS_OP_SOLVE_STOP, GAS_STAT_SUCCESS); 1936 ril_inform (solver, GAS_OP_SOLVE_STOP, GAS_STAT_SUCCESS);
@@ -2265,7 +2265,6 @@ GAS_ril_address_delete (void *solver,
2265 struct GAS_RIL_Handle *s = solver; 2265 struct GAS_RIL_Handle *s = solver;
2266 struct RIL_Peer_Agent *agent; 2266 struct RIL_Peer_Agent *agent;
2267 struct RIL_Address_Wrapped *address_wrapped; 2267 struct RIL_Address_Wrapped *address_wrapped;
2268 int address_was_used;
2269 int address_index; 2268 int address_index;
2270 unsigned int m_new; 2269 unsigned int m_new;
2271 unsigned int n_new; 2270 unsigned int n_new;
@@ -2305,17 +2304,6 @@ GAS_ril_address_delete (void *solver,
2305 agent->addresses_tail, 2304 agent->addresses_tail,
2306 address_wrapped); 2305 address_wrapped);
2307 GNUNET_free (address_wrapped); 2306 GNUNET_free (address_wrapped);
2308 address_was_used = GNUNET_NO;
2309 if (agent->suggestion_address == address)
2310 {
2311 agent->suggestion_issue = GNUNET_NO;
2312 agent->suggestion_address = NULL;
2313 }
2314 if (agent->address_inuse == address)
2315 {
2316 address_was_used = GNUNET_YES;
2317 }
2318
2319 2307
2320 //decrease W 2308 //decrease W
2321 m_new = agent->m - ((s->parameters.rbf_divisor+1) * (s->parameters.rbf_divisor+1)); 2309 m_new = agent->m - ((s->parameters.rbf_divisor+1) * (s->parameters.rbf_divisor+1));
@@ -2352,7 +2340,7 @@ GAS_ril_address_delete (void *solver,
2352 agent->m = m_new; 2340 agent->m = m_new;
2353 agent->n = n_new; 2341 agent->n = n_new;
2354 2342
2355 if (address_was_used) 2343 if (agent->address_inuse == address)
2356 { 2344 {
2357 if (NULL != agent->addresses_head) //if peer has an address left, use it 2345 if (NULL != agent->addresses_head) //if peer has an address left, use it
2358 { 2346 {
@@ -2372,10 +2360,16 @@ GAS_ril_address_delete (void *solver,
2372 envi_set_active_suggestion (s, agent, NULL, 0, 0, GNUNET_NO); 2360 envi_set_active_suggestion (s, agent, NULL, 0, 0, GNUNET_NO);
2373 } 2361 }
2374 } 2362 }
2375
2376 ril_step (solver); 2363 ril_step (solver);
2364 if (agent->suggestion_address == address)
2365 {
2366 agent->suggestion_issue = GNUNET_NO;
2367 agent->suggestion_address = NULL;
2368 }
2369 GNUNET_assert (agent->address_inuse != address);
2377} 2370}
2378 2371
2372
2379/** 2373/**
2380 * Update the properties of an address in the solver 2374 * Update the properties of an address in the solver
2381 * 2375 *