aboutsummaryrefslogtreecommitdiff
path: root/src/transport
diff options
context:
space:
mode:
authorMatthias Wachs <wachs@net.in.tum.de>2011-04-20 14:46:11 +0000
committerMatthias Wachs <wachs@net.in.tum.de>2011-04-20 14:46:11 +0000
commit12abe853da931de806a37d042ce811a09da2ef48 (patch)
tree36ebde1af54e1063938f2a717e8939ab2cc89b9a /src/transport
parentd4122addcac90ff99e98b5f3029090b7f97dddad (diff)
downloadgnunet-12abe853da931de806a37d042ce811a09da2ef48.tar.gz
gnunet-12abe853da931de806a37d042ce811a09da2ef48.zip
improvements
Diffstat (limited to 'src/transport')
-rw-r--r--src/transport/gnunet-service-transport.c78
-rw-r--r--src/transport/test_transport_ats_4addr.conf3
2 files changed, 71 insertions, 10 deletions
diff --git a/src/transport/gnunet-service-transport.c b/src/transport/gnunet-service-transport.c
index 00e26d26a..b68e90fb3 100644
--- a/src/transport/gnunet-service-transport.c
+++ b/src/transport/gnunet-service-transport.c
@@ -1047,6 +1047,21 @@ struct ATS_info
1047 int save_solution; 1047 int save_solution;
1048 1048
1049 /** 1049 /**
1050 * Dump solution when minimum peers:
1051 */
1052 int dump_min_peers;
1053
1054 /**
1055 * Dump solution when minimum addresses:
1056 */
1057 int dump_min_addr;
1058
1059 /**
1060 * Dump solution overwrite file:
1061 */
1062 int dump_overwrite;
1063
1064 /**
1050 * Ressource costs or quality metrics changed 1065 * Ressource costs or quality metrics changed
1051 * update problem before solving 1066 * update problem before solving
1052 */ 1067 */
@@ -6945,30 +6960,46 @@ ats_calculate_bandwidth_distribution ()
6945 else if (ats->simplex_rerun_required == GNUNET_NO) 6960 else if (ats->simplex_rerun_required == GNUNET_NO)
6946 GNUNET_STATISTICS_set (stats, "ATS state", ATS_UNMODIFIED, GNUNET_NO); 6961 GNUNET_STATISTICS_set (stats, "ATS state", ATS_UNMODIFIED, GNUNET_NO);
6947 } 6962 }
6948 6963#endif
6949 if (ats->save_mlp == GNUNET_YES) 6964 if ((ats->save_mlp == GNUNET_YES) && (ats->stat.c_mechs >= ats->dump_min_peers) && (ats->stat.c_mechs >= ats->dump_min_addr))
6950 { 6965 {
6951 char * filename; 6966 char * filename;
6952 GNUNET_asprintf (&filename, "ats_mlp_p%i_m%i_%llu.mlp", 6967 if (ats->dump_overwrite == GNUNET_NO)
6953 ats->stat.c_peers, ats->stat.c_mechs, GNUNET_TIME_absolute_get().abs_value); 6968 {
6954 //if (GNUNET_NO == GNUNET_DISK_file_test(filename)) 6969 GNUNET_asprintf (&filename, "ats_mlp_p%i_m%i_%llu.mlp",
6970 ats->stat.c_peers, ats->stat.c_mechs, GNUNET_TIME_absolute_get().abs_value);
6971 glp_write_lp (ats->prob, NULL, filename);
6972 }
6973 else
6974 {
6975 GNUNET_asprintf (&filename, "ats_mlp_p%i_m%i.mlp",
6976 ats->stat.c_peers, ats->stat.c_mechs );
6955 glp_write_lp (ats->prob, NULL, filename); 6977 glp_write_lp (ats->prob, NULL, filename);
6978 }
6956 GNUNET_free (filename); 6979 GNUNET_free (filename);
6957 } 6980 }
6958 if (ats->save_solution == GNUNET_YES) 6981 if ((ats->save_solution == GNUNET_YES) && (ats->stat.c_mechs >= ats->dump_min_peers) && (ats->stat.c_mechs >= ats->dump_min_addr))
6959 { 6982 {
6960 char * filename; 6983 char * filename;
6961 GNUNET_asprintf (&filename, "ats_mlp_p%i_m%i_%llu.sol", 6984 if (ats->dump_overwrite == GNUNET_NO)
6962 ats->stat.c_peers, ats->stat.c_mechs, GNUNET_TIME_absolute_get().abs_value); 6985 {
6963 //if (GNUNET_NO == GNUNET_DISK_file_test(filename)) 6986 GNUNET_asprintf (&filename, "ats_mlp_p%i_m%i_%llu.sol",
6987 ats->stat.c_peers, ats->stat.c_mechs, GNUNET_TIME_absolute_get().abs_value);
6964 glp_print_sol (ats->prob, filename); 6988 glp_print_sol (ats->prob, filename);
6989 }
6990 else
6991 {
6992 GNUNET_asprintf (&filename, "ats_mlp_p%i_m%i.sol",
6993 ats->stat.c_peers, ats->stat.c_mechs);
6994 glp_print_sol (ats->prob, filename);
6995 }
6965 GNUNET_free (filename); 6996 GNUNET_free (filename);
6966 } 6997 }
6967 ats->last = GNUNET_TIME_absolute_get(); 6998 ats->last = GNUNET_TIME_absolute_get();
6968 ats->modified_addr = GNUNET_NO; 6999 ats->modified_addr = GNUNET_NO;
6969 ats->modified_resources = GNUNET_NO; 7000 ats->modified_resources = GNUNET_NO;
6970 ats->modified_quality = GNUNET_NO; 7001 ats->modified_quality = GNUNET_NO;
6971#endif 7002
6972} 7003}
6973 7004
6974static void 7005static void
@@ -7016,6 +7047,10 @@ void ats_init ()
7016 ats->R = 1.0; 7047 ats->R = 1.0;
7017 ats->v_b_min = 64000; 7048 ats->v_b_min = 64000;
7018 ats->v_n_min = 10; 7049 ats->v_n_min = 10;
7050 ats->dump_min_peers = 1;
7051 ats->dump_min_addr = 1;
7052 ats->dump_overwrite = GNUNET_NO;
7053
7019#if HAVE_LIBGLPK 7054#if HAVE_LIBGLPK
7020 ats->prob = NULL; 7055 ats->prob = NULL;
7021#endif 7056#endif
@@ -7054,6 +7089,29 @@ void ats_init ()
7054 7089
7055 if (GNUNET_CONFIGURATION_have_value(cfg, "transport", "DUMP_SOLUTION")) 7090 if (GNUNET_CONFIGURATION_have_value(cfg, "transport", "DUMP_SOLUTION"))
7056 ats->save_solution = GNUNET_CONFIGURATION_get_value_yesno (cfg, "transport","DUMP_SOLUTION"); 7091 ats->save_solution = GNUNET_CONFIGURATION_get_value_yesno (cfg, "transport","DUMP_SOLUTION");
7092 if (GNUNET_CONFIGURATION_have_value(cfg, "transport", "DUMP_OVERWRITE"))
7093 ats->dump_overwrite = GNUNET_CONFIGURATION_get_value_yesno (cfg, "transport","DUMP_OVERWRITE");
7094 if (GNUNET_CONFIGURATION_have_value(cfg, "transport", "DUMP_MIN_PEERS"))
7095 {
7096 GNUNET_CONFIGURATION_get_value_number(cfg, "transport","DUMP_MIN_PEERS", &value);
7097 ats->dump_min_peers= value;
7098 }
7099 if (GNUNET_CONFIGURATION_have_value(cfg, "transport", "DUMP_MIN_ADDRS"))
7100 {
7101 GNUNET_CONFIGURATION_get_value_number(cfg, "transport","DUMP_MIN_ADDRS", &value);
7102 ats->dump_min_addr= value;
7103 }
7104 if (GNUNET_CONFIGURATION_have_value(cfg, "transport", "DUMP_OVERWRITE"))
7105 {
7106 GNUNET_CONFIGURATION_get_value_number(cfg, "transport","DUMP_OVERWRITE", &value);
7107 ats->min_delta.rel_value = value;
7108 }
7109
7110 if (GNUNET_CONFIGURATION_have_value(cfg, "transport", "ATS_MIN_INTERVAL"))
7111 {
7112 GNUNET_CONFIGURATION_get_value_number(cfg, "transport","ATS_MIN_INTERVAL", &value);
7113 ats->min_delta.rel_value = value;
7114 }
7057 7115
7058 if (GNUNET_CONFIGURATION_have_value(cfg, "transport", "ATS_EXEC_INTERVAL")) 7116 if (GNUNET_CONFIGURATION_have_value(cfg, "transport", "ATS_EXEC_INTERVAL"))
7059 { 7117 {
diff --git a/src/transport/test_transport_ats_4addr.conf b/src/transport/test_transport_ats_4addr.conf
index 954b9e842..e82b85bc9 100644
--- a/src/transport/test_transport_ats_4addr.conf
+++ b/src/transport/test_transport_ats_4addr.conf
@@ -18,6 +18,9 @@ PLUGINS = tcp
18#WLAN_ENERGY_DOWN_LIMIT = 0 18#WLAN_ENERGY_DOWN_LIMIT = 0
19#WLAN_ENERGY_UP_LIMIT = 30 19#WLAN_ENERGY_UP_LIMIT = 30
20#DUMP_MLP = YES 20#DUMP_MLP = YES
21#DUMP_OVERWRITE = YES
22#DUMP_MIN_PEERS = 500
23#DUMP_MIN_ADDRS = 2000
21#DUMP_SOLUTION = YES 24#DUMP_SOLUTION = YES
22ATS_MIN_INTERVAL = 100 25ATS_MIN_INTERVAL = 100
23ATS_EXEC_INTERVAL = 250 26ATS_EXEC_INTERVAL = 250