aboutsummaryrefslogtreecommitdiff
path: root/src/ats
diff options
context:
space:
mode:
authorFabian Oehlmann <oehlmann@in.tum.de>2013-11-20 10:25:04 +0000
committerFabian Oehlmann <oehlmann@in.tum.de>2013-11-20 10:25:04 +0000
commitc87507bac73d736093ecf3af783945f33d53d751 (patch)
treea1f54027ff71f0e9d22ea725031de9057ffc2945 /src/ats
parentb8cbf427301f1b5d2c0cfaa2af790c08287cfb9e (diff)
downloadgnunet-c87507bac73d736093ecf3af783945f33d53d751.tar.gz
gnunet-c87507bac73d736093ecf3af783945f33d53d751.zip
added preferences to state vector
Diffstat (limited to 'src/ats')
-rwxr-xr-xsrc/ats/libgnunet_plugin_ats_ril.c20
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,
1992void 2000void
1993GAS_ril_address_inuse_changed (void *solver, struct ATS_Address *address, int in_use) 2001GAS_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",