aboutsummaryrefslogtreecommitdiff
path: root/src/ats
diff options
context:
space:
mode:
authorFabian Oehlmann <oehlmann@in.tum.de>2013-11-21 09:31:40 +0000
committerFabian Oehlmann <oehlmann@in.tum.de>2013-11-21 09:31:40 +0000
commit9f566927d59bed4bfa0604012cbc28220405efb2 (patch)
treec114a0fa802b102c97420aeaf603d4686629f502 /src/ats
parent723421b403a31639c17de11a8a2b0d922a7750b4 (diff)
downloadgnunet-9f566927d59bed4bfa0604012cbc28220405efb2.tar.gz
gnunet-9f566927d59bed4bfa0604012cbc28220405efb2.zip
extended state feature vector
Diffstat (limited to 'src/ats')
-rwxr-xr-xsrc/ats/libgnunet_plugin_ats_ril.c28
1 files changed, 18 insertions, 10 deletions
diff --git a/src/ats/libgnunet_plugin_ats_ril.c b/src/ats/libgnunet_plugin_ats_ril.c
index 6e7ef45e9..8a7bd5771 100755
--- a/src/ats/libgnunet_plugin_ats_ril.c
+++ b/src/ats/libgnunet_plugin_ats_ril.c
@@ -30,7 +30,7 @@
30 30
31#define RIL_ACTION_INVALID -1 31#define RIL_ACTION_INVALID -1
32#define RIL_FEATURES_ADDRESS_COUNT (3 + GNUNET_ATS_QualityPropertiesCount) 32#define RIL_FEATURES_ADDRESS_COUNT (3 + GNUNET_ATS_QualityPropertiesCount)
33#define RIL_FEATURES_NETWORK_COUNT 4 33#define RIL_FEATURES_NETWORK_COUNT 6
34#define RIL_INTERVAL_EXPONENT 10 34#define RIL_INTERVAL_EXPONENT 10
35 35
36#define RIL_DEFAULT_STEP_TIME_MIN GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MILLISECONDS, 500) 36#define RIL_DEFAULT_STEP_TIME_MIN GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MILLISECONDS, 500)
@@ -677,14 +677,26 @@ envi_state_networks (struct GAS_RIL_Handle *solver)
677{ 677{
678 int i; 678 int i;
679 struct RIL_Network net; 679 struct RIL_Network net;
680 unsigned long long assigned_in;
681 unsigned long long assigned_out;
682 int overutilized_in;
683 int overutilized_out;
680 684
681 for (i = 0; i < solver->networks_count; i++) 685 for (i = 0; i < solver->networks_count; i++)
682 { 686 {
683 net = solver->network_entries[i]; 687 net = solver->network_entries[i];
684 solver->global_state_networks[i * RIL_FEATURES_NETWORK_COUNT + 0] = (double) ril_network_get_assigned(solver, net.type, GNUNET_YES); 688
689 assigned_in = ril_network_get_assigned(solver, net.type, GNUNET_YES);
690 assigned_out = ril_network_get_assigned(solver, net.type, GNUNET_NO);
691 overutilized_in = assigned_in > net.bw_in_available;
692 overutilized_out = assigned_out > net.bw_out_available;
693
694 solver->global_state_networks[i * RIL_FEATURES_NETWORK_COUNT + 0] = (double) assigned_in;
685 solver->global_state_networks[i * RIL_FEATURES_NETWORK_COUNT + 1] = (double) net.bw_in_available; 695 solver->global_state_networks[i * RIL_FEATURES_NETWORK_COUNT + 1] = (double) net.bw_in_available;
686 solver->global_state_networks[i * RIL_FEATURES_NETWORK_COUNT + 2] = (double) ril_network_get_assigned(solver, net.type, GNUNET_NO); 696 solver->global_state_networks[i * RIL_FEATURES_NETWORK_COUNT + 2] = (double) overutilized_in;
687 solver->global_state_networks[i * RIL_FEATURES_NETWORK_COUNT + 3] = (double) net.bw_out_available; 697 solver->global_state_networks[i * RIL_FEATURES_NETWORK_COUNT + 3] = (double) assigned_out;
698 solver->global_state_networks[i * RIL_FEATURES_NETWORK_COUNT + 4] = (double) net.bw_out_available;
699 solver->global_state_networks[i * RIL_FEATURES_NETWORK_COUNT + 5] = (double) overutilized_out;
688 } 700 }
689} 701}
690 702
@@ -705,16 +717,12 @@ envi_get_state (struct GAS_RIL_Handle *solver, struct RIL_Peer_Agent *agent)
705 const double *properties; 717 const double *properties;
706 718
707 //copy global networks state 719 //copy global networks state
708 for (i = 0; i < solver->networks_count; i++) 720 for (i = 0; i < solver->networks_count * RIL_FEATURES_NETWORK_COUNT; i++)
709 { 721 {
710 state[i * RIL_FEATURES_NETWORK_COUNT + 0] = solver->global_state_networks[i * RIL_FEATURES_NETWORK_COUNT + 0]; 722 state[i] = solver->global_state_networks[i];
711 state[i * RIL_FEATURES_NETWORK_COUNT + 1] = solver->global_state_networks[i * RIL_FEATURES_NETWORK_COUNT + 1];
712 state[i * RIL_FEATURES_NETWORK_COUNT + 2] = solver->global_state_networks[i * RIL_FEATURES_NETWORK_COUNT + 2];
713 state[i * RIL_FEATURES_NETWORK_COUNT + 3] = solver->global_state_networks[i * RIL_FEATURES_NETWORK_COUNT + 3];
714 } 723 }
715 724
716 //get peer features 725 //get peer features
717 i = i * RIL_FEATURES_NETWORK_COUNT;
718 preferences = solver->plugin_envi->get_preferences (solver->plugin_envi->get_preference_cls, 726 preferences = solver->plugin_envi->get_preferences (solver->plugin_envi->get_preference_cls,
719 &agent->peer); 727 &agent->peer);
720 for (k = 0; k < GNUNET_ATS_PreferenceCount; k++) 728 for (k = 0; k < GNUNET_ATS_PreferenceCount; k++)