#include "platform.h"
#include "gnunet_util_lib.h"
#include "gnunet-ats-solver-eval.h"
#include "gnunet-service-ats_normalization.h"
#include "gnunet-service-ats_preferences.c"
Go to the source code of this file.
Macros | |
#define | BIG_M_STRING "unlimited" |
Variables | |
struct GNUNET_STATISTICS_Handle * | GSA_stats |
Handle for statistics. More... | |
static struct Experiment * | e |
static struct LoggingHandle * | l |
static struct SolverHandle * | sh |
static struct TestPeer * | peer_head |
static struct TestPeer * | peer_tail |
static double | default_properties [GNUNET_ATS_PropertyCount] |
static double | default_preferences [GNUNET_ATS_PreferenceCount] |
static char * | opt_exp_file |
cmd option -e: experiment file More... | |
static char * | opt_solver |
static int | opt_log |
cmd option -l: enable logging More... | |
static int | opt_save |
cmd option -p: enable plots More... | |
static int | opt_verbose |
cmd option -v: verbose logs More... | |
static int | opt_print |
cmd option -p: print logs More... | |
static int | opt_disable_normalization |
cmd option -d: disable normalization More... | |
static int | res |
static struct PropertyGenerator * | prop_gen_head |
Property Generators. More... | |
static struct PropertyGenerator * | prop_gen_tail |
static struct PreferenceGenerator * | pref_gen_head |
Preference Generators. More... | |
static struct PreferenceGenerator * | pref_gen_tail |
#define BIG_M_STRING "unlimited" |
Definition at line 32 of file gnunet-ats-solver-eval.c.
|
static |
Do shutdown.
Definition at line 3435 of file gnunet-ats-solver-eval.c.
References e, GNUNET_ATS_solvers_experimentation_stop(), GNUNET_ATS_solvers_solver_stop(), and sh.
Referenced by done(), GNUNET_ATS_solvers_solver_start(), and run().
|
static |
Definition at line 92 of file gnunet-ats-solver-eval.c.
References GNUNET_ATS_TEST_TG_CONSTANT, GNUNET_ATS_TEST_TG_LINEAR, GNUNET_ATS_TEST_TG_RANDOM, and GNUNET_ATS_TEST_TG_SINUS.
Referenced by GNUNET_ATS_solver_generate_preferences_start(), and GNUNET_ATS_solver_generate_property_start().
|
static |
Definition at line 116 of file gnunet-ats-solver-eval.c.
References TestPeer::id, TestPeer::next, and peer_head.
Referenced by enforce_add_address(), enforce_del_address(), enforce_start_preference(), enforce_start_property(), enforce_start_request(), enforce_stop_request(), GNUNET_ATS_solver_generate_preferences_start(), set_feedback_task(), set_pref_task(), and set_prop_task().
|
static |
Definition at line 128 of file gnunet-ats-solver-eval.c.
References GNUNET_memcmp, TestPeer::next, peer_head, TestPeer::peer_id, and pid.
Referenced by get_preferences_cb(), and solver_bandwidth_changed_cb().
|
static |
Definition at line 140 of file gnunet-ats-solver-eval.c.
References TestAddress::aid, TestAddress::next, and peer.
Referenced by enforce_add_address(), enforce_del_address(), enforce_start_property(), and set_prop_task().
void GNUNET_ATS_solver_logging_now | ( | struct LoggingHandle * | l | ) |
Logging.
Definition at line 155 of file gnunet-ats-solver-eval.c.
References GNUNET_TIME_Absolute::abs_value_us, LoggingAddress::active, ATS_Address::active, LoggingPeer::addr_head, TestPeer::addr_head, LoggingPeer::addr_tail, LoggingAddress::aid, TestAddress::aid, LoggingAddress::assigned_bw_in, ATS_Address::assigned_bw_in, LoggingAddress::assigned_bw_out, ATS_Address::assigned_bw_out, TestAddress::ats_addr, LoggingTimeStep::delta, GNUNET_ATS_print_preference_type(), GNUNET_CONTAINER_DLL_insert_tail, GNUNET_ERROR_TYPE_DEBUG, GNUNET_ERROR_TYPE_INFO, GNUNET_log, GNUNET_new, GNUNET_TIME_absolute_get(), GNUNET_TIME_absolute_get_duration(), GNUNET_TIME_UNIT_ZERO, LoggingTimeStep::head, LoggingHandle::head, LoggingPeer::id, TestPeer::id, LoggingPeer::is_requested, TestPeer::is_requested, l, LoggingAddress::network, TestAddress::network, TestPeer::next, TestAddress::next, peer_head, LoggingPeer::peer_id, TestPeer::peer_id, LoggingPeer::pref_abs, TestPeer::pref_abs, LoggingPeer::pref_norm, TestPeer::pref_norm, LoggingTimeStep::prev, LoggingAddress::prop_abs, TestAddress::prop_abs, LoggingAddress::prop_norm, TestAddress::prop_norm, GNUNET_TIME_Relative::rel_value_us, LoggingTimeStep::tail, LoggingHandle::tail, and LoggingTimeStep::timestamp.
Referenced by enforce_del_address(), enforce_stop_request(), logging_task(), and solver_bandwidth_changed_cb().
|
static |
Definition at line 232 of file gnunet-ats-solver-eval.c.
References GNUNET_ATS_solver_logging_now(), GNUNET_SCHEDULER_add_delayed(), l, LoggingHandle::log_freq, and LoggingHandle::logging_task.
Referenced by GNUNET_ATS_solver_logging_start().
struct LoggingHandle* GNUNET_ATS_solver_logging_start | ( | struct GNUNET_TIME_Relative | freq | ) |
Definition at line 245 of file gnunet-ats-solver-eval.c.
References GNUNET_ERROR_TYPE_INFO, GNUNET_log, GNUNET_new, GNUNET_NO, GNUNET_SCHEDULER_add_now(), GNUNET_STRINGS_relative_time_to_string(), l, LoggingHandle::log_freq, logging_task(), and LoggingHandle::logging_task.
Referenced by run().
void GNUNET_ATS_solver_logging_stop | ( | struct LoggingHandle * | l | ) |
Definition at line 260 of file gnunet-ats-solver-eval.c.
References GNUNET_ERROR_TYPE_INFO, GNUNET_log, GNUNET_SCHEDULER_cancel(), l, and LoggingHandle::logging_task.
Referenced by done().
|
static |
Definition at line 272 of file gnunet-ats-solver-eval.c.
Referenced by GNUNET_ATS_solver_logging_write_to_disk().
void GNUNET_ATS_solver_logging_write_to_disk | ( | struct LoggingHandle * | l, |
int | add_time_stamp, | ||
char * | output_dir | ||
) |
Definition at line 286 of file gnunet-ats-solver-eval.c.
References GNUNET_TIME_Absolute::abs_value_us, LoggingAddress::active, LoggingPeer::addr_head, LoggingFileHandle::aid, LoggingAddress::aid, LoggingAddress::assigned_bw_in, LoggingAddress::assigned_bw_out, cleanup(), LoggingTimeStep::delta, DIR_SEPARATOR_STR, e, LoggingFileHandle::f_hd, filename, find_logging_file_handle(), GNUNET_asprintf(), GNUNET_CONTAINER_DLL_insert, GNUNET_CONTAINER_DLL_remove, GNUNET_DISK_directory_create_for_file(), GNUNET_DISK_file_close(), GNUNET_DISK_file_open(), GNUNET_DISK_file_write(), GNUNET_DISK_OPEN_CREATE, GNUNET_DISK_OPEN_READWRITE, GNUNET_DISK_OPEN_TRUNCATE, GNUNET_DISK_PERM_GROUP_READ, GNUNET_DISK_PERM_OTHER_READ, GNUNET_DISK_PERM_USER_READ, GNUNET_DISK_PERM_USER_WRITE, GNUNET_ERROR_TYPE_DEBUG, GNUNET_free, GNUNET_log, GNUNET_new, GNUNET_NO, GNUNET_OK, GNUNET_strdup, GNUNET_TIME_absolute_get_difference(), GNUNET_YES, LoggingTimeStep::head, LoggingHandle::head, LoggingPeer::id, LoggingPeer::is_requested, l, Experiment::log_prefix, LoggingAddress::network, LoggingFileHandle::next, LoggingTimeStep::next, LoggingPeer::next, LoggingAddress::next, opt_solver, LoggingFileHandle::pid, LoggingPeer::pref_abs, LoggingPeer::pref_norm, LoggingAddress::prop_abs, LoggingAddress::prop_norm, and LoggingTimeStep::timestamp.
Referenced by done().
void GNUNET_ATS_solver_logging_eval | ( | struct LoggingHandle * | l | ) |
Definition at line 459 of file gnunet-ats-solver-eval.c.
References GNUNET_TIME_Absolute::abs_value_us, LoggingAddress::active, LoggingPeer::addr_head, LoggingAddress::aid, LoggingAddress::assigned_bw_in, LoggingAddress::assigned_bw_out, LoggingTimeStep::delta, GNUNET_ATS_print_preference_type(), LoggingTimeStep::head, LoggingHandle::head, LoggingPeer::id, l, LoggingTimeStep::next, LoggingPeer::next, LoggingAddress::next, LoggingPeer::pref_abs, LoggingPeer::pref_norm, LoggingAddress::prop_abs, LoggingAddress::prop_norm, GNUNET_TIME_Relative::rel_value_us, and LoggingTimeStep::timestamp.
Referenced by done().
void GNUNET_ATS_solver_logging_free | ( | struct LoggingHandle * | l | ) |
Definition at line 504 of file gnunet-ats-solver-eval.c.
References LoggingPeer::addr_head, LoggingPeer::addr_tail, GNUNET_CONTAINER_DLL_remove, GNUNET_free, GNUNET_SCHEDULER_cancel(), LoggingTimeStep::head, LoggingHandle::head, l, LoggingHandle::logging_task, LoggingTimeStep::next, LoggingPeer::next, LoggingAddress::next, LoggingTimeStep::tail, and LoggingHandle::tail.
Referenced by done().
|
static |
Definition at line 557 of file gnunet-ats-solver-eval.c.
References PropertyGenerator::base_value, PropertyGenerator::duration_period, GNUNET_ATS_TEST_TG_CONSTANT, GNUNET_ATS_TEST_TG_LINEAR, GNUNET_ATS_TEST_TG_RANDOM, GNUNET_ATS_TEST_TG_SINUS, GNUNET_break, GNUNET_CRYPTO_QUALITY_WEAK, GNUNET_CRYPTO_random_u32(), GNUNET_ERROR_TYPE_INFO, GNUNET_log, GNUNET_TIME_absolute_get_duration(), PropertyGenerator::max_value, GNUNET_TIME_Relative::rel_value_us, PropertyGenerator::time_start, and PropertyGenerator::type.
Referenced by set_prop_task().
|
static |
Definition at line 624 of file gnunet-ats-solver-eval.c.
References PropertyGenerator::address_id, SolverHandle::addresses, TestAddress::ats_addr, PropertyGenerator::ats_property, GNUNET_ATS_SolverFunctions::cls, find_address_by_id(), find_peer_by_id(), PropertyGenerator::frequency, GAS_normalization_update_property(), get_property(), GNUNET_break, GNUNET_CONTAINER_multipeermap_contains_value(), GNUNET_ERROR_TYPE_ERROR, GNUNET_ERROR_TYPE_INFO, GNUNET_log, GNUNET_NO, GNUNET_SCHEDULER_add_delayed(), GNUNET_YES, opt_disable_normalization, p, PropertyGenerator::peer, TestPeer::peer_id, TestAddress::prop_abs, TestAddress::prop_norm, GNUNET_ATS_SolverFunctions::s_address_update_property, GNUNET_ATS_SolverFunctions::s_bulk_start, GNUNET_ATS_SolverFunctions::s_bulk_stop, PropertyGenerator::set_task, SolverHandle::sf, sh, PropertyGenerator::test_address, test_address(), and PropertyGenerator::test_peer.
Referenced by GNUNET_ATS_solver_generate_property_start().
|
static |
Set ats_property to 0 to find all pgs.
Definition at line 698 of file gnunet-ats-solver-eval.c.
References address, PropertyGenerator::address_id, PropertyGenerator::ats_property, PropertyGenerator::next, PropertyGenerator::peer, peer, and prop_gen_head.
Referenced by enforce_del_address(), enforce_start_property(), and enforce_stop_property().
void GNUNET_ATS_solver_generate_property_stop | ( | struct PropertyGenerator * | pg | ) |
Definition at line 714 of file gnunet-ats-solver-eval.c.
References PropertyGenerator::address_id, PropertyGenerator::ats_property, GNUNET_CONTAINER_DLL_remove, GNUNET_ERROR_TYPE_INFO, GNUNET_free, GNUNET_log, GNUNET_SCHEDULER_cancel(), PropertyGenerator::peer, prop_gen_head, prop_gen_tail, and PropertyGenerator::set_task.
Referenced by enforce_del_address(), enforce_start_property(), enforce_stop_property(), and GNUNET_ATS_solver_generate_property_stop_all().
struct PropertyGenerator* GNUNET_ATS_solver_generate_property_start | ( | unsigned int | peer, |
unsigned int | address_id, | ||
struct TestPeer * | test_peer, | ||
struct TestAddress * | test_address, | ||
enum GeneratorType | type, | ||
long int | base_value, | ||
long int | value_rate, | ||
struct GNUNET_TIME_Relative | period, | ||
struct GNUNET_TIME_Relative | frequency, | ||
uint32_t | ats_property | ||
) |
Generate between the source master and the partner and set property with a value depending on the generator.
peer | source |
address_id | partner |
test_peer | the peer |
test_address | the address |
type | type of generator |
base_value | base value |
value_rate | maximum value |
period | duration of a period of generation (~ 1/frequency) |
frequency | how long to generate property |
ats_property | ATS property to generate |
Definition at line 749 of file gnunet-ats-solver-eval.c.
References PropertyGenerator::address_id, PropertyGenerator::ats_property, PropertyGenerator::base_value, PropertyGenerator::duration_period, PropertyGenerator::frequency, GNUNET_ATS_TEST_TG_CONSTANT, GNUNET_ATS_TEST_TG_LINEAR, GNUNET_ATS_TEST_TG_RANDOM, GNUNET_ATS_TEST_TG_SINUS, GNUNET_CONTAINER_DLL_insert, GNUNET_ERROR_TYPE_INFO, GNUNET_log, GNUNET_new, GNUNET_SCHEDULER_add_now(), GNUNET_TIME_absolute_get(), PropertyGenerator::max_value, PropertyGenerator::peer, peer, print_generator_type(), prop_gen_head, prop_gen_tail, set_prop_task(), PropertyGenerator::set_task, PropertyGenerator::test_address, test_address(), PropertyGenerator::test_peer, PropertyGenerator::time_start, PropertyGenerator::type, and type.
Referenced by enforce_start_property().
void GNUNET_ATS_solver_generate_property_stop_all | ( | ) |
Stop all preferences generators.
Definition at line 828 of file gnunet-ats-solver-eval.c.
References GNUNET_ATS_solver_generate_property_stop(), PropertyGenerator::next, and prop_gen_head.
Referenced by done().
|
static |
Definition at line 850 of file gnunet-ats-solver-eval.c.
References PreferenceGenerator::base_value, PreferenceGenerator::duration_period, GNUNET_ATS_TEST_TG_CONSTANT, GNUNET_ATS_TEST_TG_LINEAR, GNUNET_ATS_TEST_TG_RANDOM, GNUNET_ATS_TEST_TG_SINUS, GNUNET_break, GNUNET_CRYPTO_QUALITY_WEAK, GNUNET_CRYPTO_random_u32(), GNUNET_ERROR_TYPE_INFO, GNUNET_log, GNUNET_TIME_absolute_get_duration(), PreferenceGenerator::max_value, GNUNET_TIME_Relative::rel_value_us, PreferenceGenerator::time_start, and PreferenceGenerator::type.
Referenced by set_feedback_task(), and set_pref_task().
|
static |
Definition at line 917 of file gnunet-ats-solver-eval.c.
References PreferenceGenerator::client_id, GNUNET_ATS_SolverFunctions::cls, PreferenceGenerator::feedback_bw_in_acc, PreferenceGenerator::feedback_bw_out_acc, PreferenceGenerator::feedback_delay_acc, PreferenceGenerator::feedback_frequency, PreferenceGenerator::feedback_last, PreferenceGenerator::feedback_last_bw_update, PreferenceGenerator::feedback_last_delay_update, PreferenceGenerator::feedback_task, find_peer_by_id(), get_preference(), GNUNET_ATS_PREFERENCE_BANDWIDTH, GNUNET_ATS_PREFERENCE_LATENCY, GNUNET_ATS_print_preference_type(), GNUNET_break, GNUNET_ERROR_TYPE_ERROR, GNUNET_ERROR_TYPE_INFO, GNUNET_log, GNUNET_SCHEDULER_add_delayed(), GNUNET_TIME_absolute_get(), GNUNET_TIME_absolute_get_duration(), PreferenceGenerator::kind, PreferenceGenerator::last_assigned_bw_in, PreferenceGenerator::last_assigned_bw_out, PreferenceGenerator::last_delay_value, p, PreferenceGenerator::peer, PreferenceGenerator::pref_bw_old, PreferenceGenerator::pref_latency_old, GNUNET_TIME_Relative::rel_value_us, GNUNET_ATS_SolverFunctions::s_feedback, SolverHandle::sf, and sh.
Referenced by GNUNET_ATS_solver_generate_preferences_start().
|
static |
Definition at line 998 of file gnunet-ats-solver-eval.c.
References PreferenceGenerator::client_id, GNUNET_ATS_SolverFunctions::cls, find_peer_by_id(), PreferenceGenerator::frequency, get_preference(), GNUNET_ATS_PREFERENCE_BANDWIDTH, GNUNET_ATS_PREFERENCE_LATENCY, GNUNET_ATS_print_preference_type(), GNUNET_break, GNUNET_ERROR_TYPE_ERROR, GNUNET_ERROR_TYPE_INFO, GNUNET_log, GNUNET_SCHEDULER_add_delayed(), GNUNET_YES, PreferenceGenerator::kind, opt_disable_normalization, p, PreferenceGenerator::peer, PreferenceGenerator::pref_bw_old, PreferenceGenerator::pref_latency_old, GNUNET_ATS_SolverFunctions::s_pref, PreferenceGenerator::set_task, SolverHandle::sf, sh, and update_preference().
Referenced by GNUNET_ATS_solver_generate_preferences_start().
|
static |
Definition at line 1055 of file gnunet-ats-solver-eval.c.
References GNUNET_ATS_PREFERENCE_END, PreferenceGenerator::kind, PreferenceGenerator::next, PreferenceGenerator::peer, peer, and pref_gen_head.
Referenced by enforce_start_preference(), and enforce_stop_preference().
void GNUNET_ATS_solver_generate_preferences_stop | ( | struct PreferenceGenerator * | pg | ) |
Definition at line 1070 of file gnunet-ats-solver-eval.c.
References PreferenceGenerator::feedback_task, GNUNET_ATS_print_preference_type(), GNUNET_CONTAINER_DLL_remove, GNUNET_ERROR_TYPE_INFO, GNUNET_free, GNUNET_log, GNUNET_SCHEDULER_cancel(), PreferenceGenerator::kind, PreferenceGenerator::peer, pref_gen_head, pref_gen_tail, and PreferenceGenerator::set_task.
Referenced by enforce_start_preference(), enforce_stop_preference(), and GNUNET_ATS_solver_generate_preferences_stop_all().
|
static |
Definition at line 1094 of file gnunet-ats-solver-eval.c.
References ATS_Address::active, TestAddress::ats_addr, GNUNET_YES, TestAddress::next, and p.
Referenced by GNUNET_ATS_solver_generate_preferences_start().
struct PreferenceGenerator* GNUNET_ATS_solver_generate_preferences_start | ( | unsigned int | peer, |
unsigned int | address_id, | ||
unsigned int | client_id, | ||
enum GeneratorType | type, | ||
long int | base_value, | ||
long int | value_rate, | ||
struct GNUNET_TIME_Relative | period, | ||
struct GNUNET_TIME_Relative | frequency, | ||
enum GNUNET_ATS_PreferenceKind | kind, | ||
struct GNUNET_TIME_Relative | feedback_frequency | ||
) |
Generate between the source master and the partner and set property with a value depending on the generator.
peer | source |
address_id | partner |
client_id | the client |
type | type of generator |
base_value | base value |
value_rate | maximum value |
period | duration of a period of generation (~ 1/frequency) |
frequency | how long to generate property |
kind | ATS preference to generate |
feedback_frequency | how often to give feedback |
Definition at line 1122 of file gnunet-ats-solver-eval.c.
References PreferenceGenerator::base_value, PreferenceGenerator::client_id, PreferenceGenerator::duration_period, PreferenceGenerator::feedback_bw_in_acc, PreferenceGenerator::feedback_bw_out_acc, PreferenceGenerator::feedback_delay_acc, PreferenceGenerator::feedback_frequency, PreferenceGenerator::feedback_last, PreferenceGenerator::feedback_last_bw_update, PreferenceGenerator::feedback_last_delay_update, PreferenceGenerator::feedback_task, find_active_address(), find_peer_by_id(), PreferenceGenerator::frequency, GNUNET_ATS_print_preference_type(), GNUNET_ATS_TEST_TG_CONSTANT, GNUNET_ATS_TEST_TG_LINEAR, GNUNET_ATS_TEST_TG_RANDOM, GNUNET_ATS_TEST_TG_SINUS, GNUNET_break, GNUNET_CONTAINER_DLL_insert, GNUNET_ERROR_TYPE_ERROR, GNUNET_log, GNUNET_new, GNUNET_SCHEDULER_add_delayed(), GNUNET_SCHEDULER_add_now(), GNUNET_TIME_absolute_get(), GNUNET_TIME_UNIT_FOREVER_REL, PreferenceGenerator::kind, PreferenceGenerator::last_assigned_bw_in, PreferenceGenerator::last_assigned_bw_out, PreferenceGenerator::last_delay_value, PreferenceGenerator::max_value, p, PreferenceGenerator::peer, peer, pref_gen_head, pref_gen_tail, print_generator_type(), TestAddress::prop_norm, GNUNET_TIME_Relative::rel_value_us, set_feedback_task(), set_pref_task(), PreferenceGenerator::set_task, PreferenceGenerator::time_start, PreferenceGenerator::type, and type.
Referenced by enforce_start_preference().
void GNUNET_ATS_solver_generate_preferences_stop_all | ( | ) |
Stop all preferences generators.
Definition at line 1227 of file gnunet-ats-solver-eval.c.
References GNUNET_ATS_solver_generate_preferences_stop(), PreferenceGenerator::next, and pref_gen_head.
Referenced by done().
|
static |
Experiments.
Definition at line 1245 of file gnunet-ats-solver-eval.c.
References op, SOLVER_OP_ADD_ADDRESS, SOLVER_OP_DEL_ADDRESS, SOLVER_OP_START_REQUEST, SOLVER_OP_START_SET_PREFERENCE, SOLVER_OP_START_SET_PROPERTY, SOLVER_OP_STOP_REQUEST, SOLVER_OP_STOP_SET_PREFERENCE, and SOLVER_OP_STOP_SET_PROPERTY.
Referenced by enforce_episode().
|
static |
Definition at line 1281 of file gnunet-ats-solver-eval.c.
References e, GNUNET_new, GNUNET_TIME_UNIT_ZERO, Experiment::name, Experiment::start, and Experiment::total_duration.
Referenced by GNUNET_ATS_solvers_experimentation_load().
|
static |
Definition at line 1294 of file gnunet-ats-solver-eval.c.
References GNUNET_ATS_TEST_Operation::address, Experiment::cfg_file, e, GNUNET_free, Episode::head, Experiment::log_output_dir, Experiment::log_prefix, Experiment::name, GNUNET_ATS_TEST_Operation::next, Episode::next, GNUNET_ATS_TEST_Operation::plugin, and Experiment::start.
Referenced by GNUNET_ATS_solvers_experimentation_load(), and GNUNET_ATS_solvers_experimentation_stop().
|
static |
Definition at line 1326 of file gnunet-ats-solver-eval.c.
References GNUNET_ATS_TEST_Operation::address, GNUNET_ATS_TEST_Operation::address_id, GNUNET_ATS_TEST_Operation::address_network, GNUNET_ATS_TEST_Operation::address_session, cfg, GNUNET_asprintf(), GNUNET_break, GNUNET_CONFIGURATION_get_value_number(), GNUNET_CONFIGURATION_get_value_string(), GNUNET_ERROR_TYPE_INFO, GNUNET_free, GNUNET_log, GNUNET_NT_BT, GNUNET_NT_LAN, GNUNET_NT_LOOPBACK, GNUNET_NT_UNSPECIFIED, GNUNET_NT_WAN, GNUNET_NT_WLAN, GNUNET_OK, GNUNET_STRINGS_utf8_toupper(), GNUNET_SYSERR, GNUNET_ATS_TEST_Operation::peer_id, and GNUNET_ATS_TEST_Operation::plugin.
Referenced by load_episode().
|
static |
Definition at line 1465 of file gnunet-ats-solver-eval.c.
References GNUNET_ATS_TEST_Operation::address, GNUNET_ATS_TEST_Operation::address_id, GNUNET_ATS_TEST_Operation::address_session, cfg, GNUNET_asprintf(), GNUNET_CONFIGURATION_get_value_number(), GNUNET_CONFIGURATION_get_value_string(), GNUNET_ERROR_TYPE_INFO, GNUNET_free, GNUNET_log, GNUNET_OK, GNUNET_SYSERR, GNUNET_ATS_TEST_Operation::peer_id, and GNUNET_ATS_TEST_Operation::plugin.
Referenced by load_episode().
|
static |
Definition at line 1465 of file gnunet-ats-solver-eval.c.
Referenced by load_op_start_set_preference(), and load_op_stop_set_preference().
|
static |
Definition at line 1567 of file gnunet-ats-solver-eval.c.
References GNUNET_ATS_TEST_Operation::address_id, GNUNET_ATS_TEST_Operation::base_rate, cfg, GNUNET_ATS_TEST_Operation::client_id, e, GNUNET_ATS_TEST_Operation::feedback_delay, GNUNET_ATS_TEST_Operation::frequency, GNUNET_ATS_TEST_Operation::gen_type, GNUNET_asprintf(), GNUNET_ATS_print_preference_type(), GNUNET_ATS_TEST_TG_CONSTANT, GNUNET_ATS_TEST_TG_LINEAR, GNUNET_ATS_TEST_TG_RANDOM, GNUNET_ATS_TEST_TG_SINUS, GNUNET_CONFIGURATION_get_value_number(), GNUNET_CONFIGURATION_get_value_string(), GNUNET_CONFIGURATION_get_value_time(), GNUNET_ERROR_TYPE_INFO, GNUNET_free, GNUNET_log, GNUNET_OK, GNUNET_SYSERR, GNUNET_TIME_UNIT_FOREVER_REL, GNUNET_ATS_TEST_Operation::max_rate, parse_preference_string(), GNUNET_ATS_TEST_Operation::peer_id, GNUNET_ATS_TEST_Operation::period, GNUNET_ATS_TEST_Operation::pref_type, GNUNET_TIME_Relative::rel_value_us, and type.
Referenced by load_episode().
|
static |
Definition at line 1747 of file gnunet-ats-solver-eval.c.
References GNUNET_ATS_TEST_Operation::address_id, cfg, e, GNUNET_asprintf(), GNUNET_ATS_print_preference_type(), GNUNET_CONFIGURATION_get_value_number(), GNUNET_CONFIGURATION_get_value_string(), GNUNET_ERROR_TYPE_INFO, GNUNET_free, GNUNET_log, GNUNET_OK, GNUNET_SYSERR, parse_preference_string(), GNUNET_ATS_TEST_Operation::peer_id, and GNUNET_ATS_TEST_Operation::pref_type.
Referenced by load_episode().
|
static |
Definition at line 1747 of file gnunet-ats-solver-eval.c.
Referenced by load_op_start_set_property(), and load_op_stop_set_property().
|
static |
Definition at line 1829 of file gnunet-ats-solver-eval.c.
References GNUNET_ATS_TEST_Operation::address_id, GNUNET_ATS_TEST_Operation::base_rate, cfg, e, GNUNET_ATS_TEST_Operation::frequency, GNUNET_ATS_TEST_Operation::gen_type, GNUNET_asprintf(), GNUNET_ATS_TEST_TG_CONSTANT, GNUNET_ATS_TEST_TG_LINEAR, GNUNET_ATS_TEST_TG_RANDOM, GNUNET_ATS_TEST_TG_SINUS, GNUNET_CONFIGURATION_get_value_number(), GNUNET_CONFIGURATION_get_value_string(), GNUNET_CONFIGURATION_get_value_time(), GNUNET_ERROR_TYPE_INFO, GNUNET_free, GNUNET_log, GNUNET_OK, GNUNET_SYSERR, GNUNET_ATS_TEST_Operation::max_rate, parse_property_string(), GNUNET_ATS_TEST_Operation::peer_id, GNUNET_ATS_TEST_Operation::period, and type.
Referenced by load_episode().
|
static |
Definition at line 1997 of file gnunet-ats-solver-eval.c.
References GNUNET_ATS_TEST_Operation::address_id, cfg, e, GNUNET_asprintf(), GNUNET_CONFIGURATION_get_value_number(), GNUNET_CONFIGURATION_get_value_string(), GNUNET_ERROR_TYPE_INFO, GNUNET_free, GNUNET_log, GNUNET_OK, GNUNET_SYSERR, parse_property_string(), and GNUNET_ATS_TEST_Operation::peer_id.
Referenced by load_episode().
|
static |
Definition at line 2068 of file gnunet-ats-solver-eval.c.
References cfg, GNUNET_asprintf(), GNUNET_CONFIGURATION_get_value_number(), GNUNET_free, GNUNET_OK, GNUNET_SYSERR, and GNUNET_ATS_TEST_Operation::peer_id.
Referenced by load_episode().
|
static |
Definition at line 2093 of file gnunet-ats-solver-eval.c.
References cfg, GNUNET_asprintf(), GNUNET_CONFIGURATION_get_value_number(), GNUNET_free, GNUNET_OK, GNUNET_SYSERR, and GNUNET_ATS_TEST_Operation::peer_id.
Referenced by load_episode().
|
static |
Definition at line 2118 of file gnunet-ats-solver-eval.c.
References cfg, GNUNET_asprintf(), GNUNET_CONFIGURATION_get_value_string(), GNUNET_CONTAINER_DLL_insert_tail, GNUNET_ERROR_TYPE_INFO, GNUNET_free, GNUNET_log, GNUNET_new, GNUNET_OK, GNUNET_SYSERR, Episode::head, Episode::id, load_op_add_address(), load_op_del_address(), load_op_start_request(), load_op_start_set_preference(), load_op_start_set_property(), load_op_stop_request(), load_op_stop_set_preference(), load_op_stop_set_property(), op, res, SOLVER_OP_ADD_ADDRESS, SOLVER_OP_DEL_ADDRESS, SOLVER_OP_START_REQUEST, SOLVER_OP_START_SET_PREFERENCE, SOLVER_OP_START_SET_PROPERTY, SOLVER_OP_STOP_REQUEST, SOLVER_OP_STOP_SET_PREFERENCE, SOLVER_OP_STOP_SET_PROPERTY, Episode::tail, and GNUNET_ATS_TEST_Operation::type.
Referenced by load_episodes().
|
static |
Definition at line 2221 of file gnunet-ats-solver-eval.c.
References cfg, Episode::duration, e, GNUNET_asprintf(), GNUNET_CONFIGURATION_get_value_time(), GNUNET_ERROR_TYPE_INFO, GNUNET_free, GNUNET_log, GNUNET_new, GNUNET_OK, GNUNET_STRINGS_relative_time_to_string(), GNUNET_SYSERR, GNUNET_TIME_relative_add(), GNUNET_YES, Episode::id, load_episode(), Episode::next, Experiment::num_episodes, Experiment::start, and Experiment::total_duration.
Referenced by GNUNET_ATS_solvers_experimentation_load().
|
static |
Definition at line 2278 of file gnunet-ats-solver-eval.c.
References e, Experiment::e_done_cb, Experiment::episode_timeout_task, Experiment::experiment_timeout_task, GNUNET_SCHEDULER_cancel(), GNUNET_SYSERR, GNUNET_TIME_absolute_get_duration(), and Experiment::start_time.
Referenced by GNUNET_ATS_solvers_experimentation_run().
struct ATS_Address* create_ats_address | ( | const struct GNUNET_PeerIdentity * | peer, |
const char * | plugin_name, | ||
const void * | plugin_addr, | ||
size_t | plugin_addr_len, | ||
uint32_t | session_id, | ||
uint32_t | network | ||
) |
Definition at line 2297 of file gnunet-ats-solver-eval.c.
References ATS_Address::addr, ATS_Address::addr_len, ATS_Address::atsi_count, GNUNET_malloc, GNUNET_memcpy, GNUNET_new, ATS_Address::peer, peer, ATS_Address::plugin, plugin_name, ATS_Address::session_id, and session_id.
Referenced by enforce_add_address().
|
static |
Definition at line 2326 of file gnunet-ats-solver-eval.c.
References SolverHandle::addresses, TestAddress::aid, TestAddress::ats_addr, GNUNET_ATS_SolverFunctions::cls, create_ats_address(), DEFAULT_ABS_PREFERENCE, DEFAULT_REL_PREFERENCE, DEFAULT_REL_QUALITY, find_address_by_id(), find_peer_by_id(), GNUNET_CONTAINER_DLL_insert, GNUNET_CONTAINER_DLL_insert_tail, GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE, GNUNET_CONTAINER_multipeermap_put(), GNUNET_ERROR_TYPE_INFO, GNUNET_log, GNUNET_new, GNUNET_NT_to_string(), TestAddress::network, op, p, peer_head, peer_tail, TestAddress::prop_norm, GNUNET_ATS_SolverFunctions::s_add, SolverHandle::sf, and sh.
Referenced by enforce_episode().
|
static |
Definition at line 2379 of file gnunet-ats-solver-eval.c.
References SolverHandle::addresses, TestAddress::aid, TestAddress::ats_addr, GNUNET_ATS_SolverFunctions::cls, find_address_by_id(), find_peer_by_id(), find_prop_gen(), GNUNET_assert, GNUNET_ATS_solver_generate_property_stop(), GNUNET_ATS_solver_logging_now(), GNUNET_break, GNUNET_CONTAINER_DLL_remove, GNUNET_CONTAINER_multipeermap_remove(), GNUNET_ERROR_TYPE_ERROR, GNUNET_ERROR_TYPE_INFO, GNUNET_free, GNUNET_log, GNUNET_YES, l, op, p, GNUNET_ATS_SolverFunctions::s_del, SolverHandle::sf, and sh.
Referenced by enforce_episode().
|
static |
Definition at line 2430 of file gnunet-ats-solver-eval.c.
References find_address_by_id(), find_peer_by_id(), find_prop_gen(), GNUNET_ATS_solver_generate_property_start(), GNUNET_ATS_solver_generate_property_stop(), GNUNET_break, GNUNET_ERROR_TYPE_ERROR, GNUNET_free, GNUNET_log, op, and p.
Referenced by enforce_episode().
|
static |
Definition at line 2472 of file gnunet-ats-solver-eval.c.
References find_prop_gen(), GNUNET_ATS_solver_generate_property_stop(), GNUNET_break, GNUNET_ERROR_TYPE_ERROR, GNUNET_ERROR_TYPE_INFO, GNUNET_log, and op.
Referenced by enforce_episode().
|
static |
Definition at line 2496 of file gnunet-ats-solver-eval.c.
References find_peer_by_id(), find_pref_gen(), GNUNET_ATS_solver_generate_preferences_start(), GNUNET_ATS_solver_generate_preferences_stop(), GNUNET_break, GNUNET_ERROR_TYPE_ERROR, GNUNET_free, GNUNET_log, and op.
Referenced by enforce_episode().
|
static |
Definition at line 2529 of file gnunet-ats-solver-eval.c.
References find_pref_gen(), GNUNET_ATS_solver_generate_preferences_stop(), GNUNET_break, GNUNET_ERROR_TYPE_ERROR, GNUNET_ERROR_TYPE_INFO, GNUNET_log, and op.
Referenced by enforce_episode().
|
static |
Definition at line 2553 of file gnunet-ats-solver-eval.c.
References GNUNET_ATS_SolverFunctions::cls, find_peer_by_id(), GNUNET_break, GNUNET_ERROR_TYPE_ERROR, GNUNET_ERROR_TYPE_INFO, GNUNET_log, GNUNET_YES, op, p, GNUNET_ATS_SolverFunctions::s_get, SolverHandle::sf, and sh.
Referenced by enforce_episode().
|
static |
Definition at line 2574 of file gnunet-ats-solver-eval.c.
References GNUNET_ATS_SolverFunctions::cls, find_peer_by_id(), GNUNET_ATS_solver_logging_now(), GNUNET_break, GNUNET_ERROR_TYPE_ERROR, GNUNET_ERROR_TYPE_INFO, GNUNET_log, GNUNET_NO, l, op, p, GNUNET_ATS_SolverFunctions::s_get_stop, SolverHandle::sf, and sh.
Referenced by enforce_episode().
|
static |
Definition at line 2602 of file gnunet-ats-solver-eval.c.
References GNUNET_ATS_TEST_Operation::address_id, GNUNET_ATS_TEST_Operation::base_rate, enforce_add_address(), enforce_del_address(), enforce_start_preference(), enforce_start_property(), enforce_start_request(), enforce_stop_preference(), enforce_stop_property(), enforce_stop_request(), Episode::head, GNUNET_ATS_TEST_Operation::next, GNUNET_ATS_TEST_Operation::peer_id, print_op(), SOLVER_OP_ADD_ADDRESS, SOLVER_OP_DEL_ADDRESS, SOLVER_OP_START_REQUEST, SOLVER_OP_START_SET_PREFERENCE, SOLVER_OP_START_SET_PROPERTY, SOLVER_OP_STOP_REQUEST, SOLVER_OP_STOP_SET_PREFERENCE, SOLVER_OP_STOP_SET_PROPERTY, and GNUNET_ATS_TEST_Operation::type.
Referenced by GNUNET_ATS_solvers_experimentation_run(), and timeout_episode().
|
static |
Definition at line 2670 of file gnunet-ats-solver-eval.c.
References Experiment::cur, Episode::duration, e, Experiment::e_done_cb, enforce_episode(), Experiment::ep_done_cb, Experiment::episode_timeout_task, Experiment::experiment_timeout_task, GNUNET_OK, GNUNET_SCHEDULER_add_delayed(), GNUNET_SCHEDULER_cancel(), GNUNET_STRINGS_relative_time_to_string(), GNUNET_TIME_absolute_get_duration(), GNUNET_YES, Episode::id, Episode::next, and Experiment::start_time.
Referenced by GNUNET_ATS_solvers_experimentation_run().
void GNUNET_ATS_solvers_experimentation_run | ( | struct Experiment * | e, |
GNUNET_ATS_TESTING_EpisodeDoneCallback | ep_done_cb, | ||
GNUNET_ATS_TESTING_ExperimentDoneCallback | e_done_cb | ||
) |
Definition at line 2705 of file gnunet-ats-solver-eval.c.
References Experiment::cur, Episode::duration, e, Experiment::e_done_cb, enforce_episode(), Experiment::ep_done_cb, Experiment::episode_timeout_task, Experiment::experiment_timeout_task, GNUNET_break, GNUNET_SCHEDULER_add_delayed(), GNUNET_STRINGS_relative_time_to_string(), GNUNET_TIME_absolute_get(), GNUNET_YES, Episode::id, Experiment::max_duration, Experiment::name, Experiment::start, Experiment::start_time, timeout_episode(), and timeout_experiment().
Referenced by run().
void GNUNET_ATS_solvers_experimentation_stop | ( | struct Experiment * | e | ) |
Definition at line 2742 of file gnunet-ats-solver-eval.c.
References Experiment::cfg, e, Experiment::episode_timeout_task, Experiment::experiment_timeout_task, free_experiment(), GNUNET_CONFIGURATION_destroy(), and GNUNET_SCHEDULER_cancel().
Referenced by done(), end_now(), and GNUNET_ATS_solvers_experimentation_load().
struct Experiment* GNUNET_ATS_solvers_experimentation_load | ( | char * | filename | ) |
Definition at line 2764 of file gnunet-ats-solver-eval.c.
References cfg, Experiment::cfg, Experiment::cfg_file, create_experiment(), e, filename, free_experiment(), GNUNET_ATS_solvers_experimentation_stop(), GNUNET_CONFIGURATION_create(), GNUNET_CONFIGURATION_destroy(), GNUNET_CONFIGURATION_get_value_filename(), GNUNET_CONFIGURATION_get_value_string(), GNUNET_CONFIGURATION_get_value_time(), GNUNET_CONFIGURATION_get_value_yesno(), GNUNET_CONFIGURATION_load(), GNUNET_ERROR_TYPE_INFO, GNUNET_log, GNUNET_STRINGS_relative_time_to_string(), GNUNET_SYSERR, GNUNET_YES, load_episodes(), Experiment::log_append_time_stamp, Experiment::log_freq, Experiment::log_output_dir, Experiment::log_prefix, Experiment::max_duration, Experiment::name, Experiment::num_episodes, and Experiment::total_duration.
Referenced by run().
|
static |
Solver.
Definition at line 2899 of file gnunet-ats-solver-eval.c.
References address, GNUNET_ATS_PluginEnvironment::addresses, SolverHandle::env, GNUNET_break, GNUNET_CONTAINER_multipeermap_remove(), GNUNET_free, GNUNET_OK, key, sh, and value.
Referenced by GNUNET_ATS_solvers_solver_stop().
void GNUNET_ATS_solvers_solver_stop | ( | struct SolverHandle * | sh | ) |
Definition at line 2915 of file gnunet-ats-solver-eval.c.
References SolverHandle::addresses, SolverHandle::env, free_all_it(), GAS_normalization_stop(), GNUNET_CONTAINER_multipeermap_destroy(), GNUNET_CONTAINER_multipeermap_iterate(), GNUNET_free, GNUNET_NO, GNUNET_PLUGIN_unload(), GNUNET_STATISTICS_destroy(), SolverHandle::plugin, SolverHandle::sf, sh, and GNUNET_ATS_PluginEnvironment::stats.
Referenced by done(), and end_now().
unsigned int GNUNET_ATS_solvers_load_quotas | ( | const struct GNUNET_CONFIGURATION_Handle * | cfg, |
unsigned long long * | out_dest, | ||
unsigned long long * | in_dest, | ||
int | dest_length | ||
) |
Load quotas for networks from configuration.
cfg | configuration handle |
out_dest | where to write outbound quotas |
in_dest | where to write inbound quotas |
dest_length | length of inbound and outbound arrays |
Definition at line 2942 of file gnunet-ats-solver-eval.c.
References _, BIG_M_STRING, cfg, GNUNET_asprintf(), GNUNET_ATS_DefaultBandwidth, GNUNET_ATS_MaxBandwidth, GNUNET_CONFIGURATION_get_value_number(), GNUNET_CONFIGURATION_get_value_string(), GNUNET_ERROR_TYPE_DEBUG, GNUNET_ERROR_TYPE_ERROR, GNUNET_ERROR_TYPE_INFO, GNUNET_ERROR_TYPE_WARNING, GNUNET_free, GNUNET_log, GNUNET_NO, GNUNET_NT_COUNT, GNUNET_NT_to_string(), GNUNET_OK, GNUNET_STRINGS_fancy_size_to_bytes(), GNUNET_YES, and res.
Referenced by GNUNET_ATS_solvers_solver_start().
|
static |
Information callback for the solver.
cls | the closure |
op | the solver operation |
stat | status of the solver operation |
add | additional solver information |
Definition at line 3090 of file gnunet-ats-solver-eval.c.