diff options
author | Matthias Wachs <wachs@net.in.tum.de> | 2011-04-20 14:46:11 +0000 |
---|---|---|
committer | Matthias Wachs <wachs@net.in.tum.de> | 2011-04-20 14:46:11 +0000 |
commit | 12abe853da931de806a37d042ce811a09da2ef48 (patch) | |
tree | 36ebde1af54e1063938f2a717e8939ab2cc89b9a /src/transport | |
parent | d4122addcac90ff99e98b5f3029090b7f97dddad (diff) | |
download | gnunet-12abe853da931de806a37d042ce811a09da2ef48.tar.gz gnunet-12abe853da931de806a37d042ce811a09da2ef48.zip |
improvements
Diffstat (limited to 'src/transport')
-rw-r--r-- | src/transport/gnunet-service-transport.c | 78 | ||||
-rw-r--r-- | src/transport/test_transport_ats_4addr.conf | 3 |
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 | ||
6974 | static void | 7005 | static 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 |
22 | ATS_MIN_INTERVAL = 100 | 25 | ATS_MIN_INTERVAL = 100 |
23 | ATS_EXEC_INTERVAL = 250 | 26 | ATS_EXEC_INTERVAL = 250 |