diff options
author | Fabian Oehlmann <oehlmann@in.tum.de> | 2013-11-20 10:25:04 +0000 |
---|---|---|
committer | Fabian Oehlmann <oehlmann@in.tum.de> | 2013-11-20 10:25:04 +0000 |
commit | c87507bac73d736093ecf3af783945f33d53d751 (patch) | |
tree | a1f54027ff71f0e9d22ea725031de9057ffc2945 /src/ats | |
parent | b8cbf427301f1b5d2c0cfaa2af790c08287cfb9e (diff) | |
download | gnunet-c87507bac73d736093ecf3af783945f33d53d751.tar.gz gnunet-c87507bac73d736093ecf3af783945f33d53d751.zip |
added preferences to state vector
Diffstat (limited to 'src/ats')
-rwxr-xr-x | src/ats/libgnunet_plugin_ats_ril.c | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/src/ats/libgnunet_plugin_ats_ril.c b/src/ats/libgnunet_plugin_ats_ril.c index cf8bb0ade..376d7e0c3 100755 --- a/src/ats/libgnunet_plugin_ats_ril.c +++ b/src/ats/libgnunet_plugin_ats_ril.c | |||
@@ -695,6 +695,7 @@ envi_get_state (struct GAS_RIL_Handle *solver, struct RIL_Peer_Agent *agent) | |||
695 | int k; | 695 | int k; |
696 | double *state = GNUNET_malloc (sizeof (double) * agent->m); | 696 | double *state = GNUNET_malloc (sizeof (double) * agent->m); |
697 | struct RIL_Address_Wrapped *cur_address; | 697 | struct RIL_Address_Wrapped *cur_address; |
698 | const double *preferences; | ||
698 | const double *properties; | 699 | const double *properties; |
699 | 700 | ||
700 | //copy global networks state | 701 | //copy global networks state |
@@ -706,10 +707,19 @@ envi_get_state (struct GAS_RIL_Handle *solver, struct RIL_Peer_Agent *agent) | |||
706 | state[i * RIL_FEATURES_NETWORK_COUNT + 3] = solver->state_networks[i * RIL_FEATURES_NETWORK_COUNT + 3]; | 707 | state[i * RIL_FEATURES_NETWORK_COUNT + 3] = solver->state_networks[i * RIL_FEATURES_NETWORK_COUNT + 3]; |
707 | } | 708 | } |
708 | 709 | ||
709 | i = i * RIL_FEATURES_NETWORK_COUNT; //first address feature | 710 | //get peer features |
711 | i = i * RIL_FEATURES_NETWORK_COUNT; | ||
712 | preferences = solver->plugin_envi->get_preferences (solver->plugin_envi->get_preference_cls, | ||
713 | &agent->peer); | ||
714 | for (k = 0; k < GNUNET_ATS_PreferenceCount; k++) | ||
715 | { | ||
716 | state[i++] = preferences[k]; | ||
717 | } | ||
710 | 718 | ||
719 | //get address specific features | ||
711 | for (cur_address = agent->addresses_head; NULL != cur_address; cur_address = cur_address->next) | 720 | for (cur_address = agent->addresses_head; NULL != cur_address; cur_address = cur_address->next) |
712 | { | 721 | { |
722 | //when changing the number of address specific state features, change RIL_FEATURES_ADDRESS_COUNT macro | ||
713 | state[i++] = cur_address->address_naked->active; | 723 | state[i++] = cur_address->address_naked->active; |
714 | state[i++] = cur_address->address_naked->active ? agent->bw_in : 0; | 724 | state[i++] = cur_address->address_naked->active ? agent->bw_in : 0; |
715 | state[i++] = cur_address->address_naked->active ? agent->bw_out : 0; | 725 | state[i++] = cur_address->address_naked->active ? agent->bw_out : 0; |
@@ -1334,8 +1344,6 @@ ril_step (struct GAS_RIL_Handle *solver) | |||
1334 | { | 1344 | { |
1335 | if (cur->suggestion_issue) { | 1345 | if (cur->suggestion_issue) { |
1336 | solver->plugin_envi->bandwidth_changed_cb(solver->plugin_envi->bw_changed_cb_cls, cur->suggestion_address); | 1346 | solver->plugin_envi->bandwidth_changed_cb(solver->plugin_envi->bw_changed_cb_cls, cur->suggestion_address); |
1337 | LOG(GNUNET_ERROR_TYPE_DEBUG, "\n Suggest address: %s\n\n", | ||
1338 | cur->suggestion_address->addr); | ||
1339 | cur->suggestion_issue = GNUNET_NO; | 1347 | cur->suggestion_issue = GNUNET_NO; |
1340 | } | 1348 | } |
1341 | } | 1349 | } |
@@ -1404,7 +1412,7 @@ agent_init (void *s, const struct GNUNET_PeerIdentity *peer) | |||
1404 | agent->bw_out = 0; | 1412 | agent->bw_out = 0; |
1405 | agent->suggestion_issue = GNUNET_NO; | 1413 | agent->suggestion_issue = GNUNET_NO; |
1406 | agent->n = RIL_ACTION_TYPE_NUM; | 1414 | agent->n = RIL_ACTION_TYPE_NUM; |
1407 | agent->m = solver->networks_count * RIL_FEATURES_NETWORK_COUNT; | 1415 | agent->m = (solver->networks_count * RIL_FEATURES_NETWORK_COUNT) + GNUNET_ATS_PreferenceCount; |
1408 | agent->W = (double **) GNUNET_malloc (sizeof (double *) * agent->n); | 1416 | agent->W = (double **) GNUNET_malloc (sizeof (double *) * agent->n); |
1409 | for (i = 0; i < agent->n; i++) | 1417 | for (i = 0; i < agent->n; i++) |
1410 | { | 1418 | { |
@@ -1992,8 +2000,8 @@ GAS_ril_address_session_changed (void *solver, | |||
1992 | void | 2000 | void |
1993 | GAS_ril_address_inuse_changed (void *solver, struct ATS_Address *address, int in_use) | 2001 | GAS_ril_address_inuse_changed (void *solver, struct ATS_Address *address, int in_use) |
1994 | { | 2002 | { |
1995 | /* Nothing to do here. | 2003 | /* |
1996 | * Possible TODO? Future Work: Potentially add usage variable to state vector | 2004 | * TODO? Future Work: Potentially add usage variable to state vector |
1997 | */ | 2005 | */ |
1998 | LOG(GNUNET_ERROR_TYPE_DEBUG, | 2006 | LOG(GNUNET_ERROR_TYPE_DEBUG, |
1999 | "API_address_inuse_changed() Usage for %s address of peer '%s' changed to %s\n", | 2007 | "API_address_inuse_changed() Usage for %s address of peer '%s' changed to %s\n", |