diff options
author | Fabian Oehlmann <oehlmann@in.tum.de> | 2013-11-21 09:31:40 +0000 |
---|---|---|
committer | Fabian Oehlmann <oehlmann@in.tum.de> | 2013-11-21 09:31:40 +0000 |
commit | 9f566927d59bed4bfa0604012cbc28220405efb2 (patch) | |
tree | c114a0fa802b102c97420aeaf603d4686629f502 /src/ats | |
parent | 723421b403a31639c17de11a8a2b0d922a7750b4 (diff) | |
download | gnunet-9f566927d59bed4bfa0604012cbc28220405efb2.tar.gz gnunet-9f566927d59bed4bfa0604012cbc28220405efb2.zip |
extended state feature vector
Diffstat (limited to 'src/ats')
-rwxr-xr-x | src/ats/libgnunet_plugin_ats_ril.c | 28 |
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++) |