/*
This file is part of GNUnet.
- (C) 2010-2013 Christian Grothoff (and other contributing authors)
+ Copyright (C) 2010-2013 GNUnet e.V.
GNUnet is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published
You should have received a copy of the GNU General Public License
along with GNUnet; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
*/
/**
* @file ats-tests/ats-testing-experiment.c
/**
* Solver handle
*/
- void *solver;
+ struct GNUNET_ATS_SolverFunctions *sf;
/**
* Address hashmap
struct LoggingFileHandle *prev;
/* peer id */
- int pid;
+ long long unsigned int pid;
/* address id */
- int aid;
+ long long unsigned int aid;
struct GNUNET_DISK_FileHandle *f_hd;
struct LoggingPeer *prev;
struct LoggingPeer *next;
- int id;
+ long long unsigned int id;
struct GNUNET_PeerIdentity peer_id;
- double pref_abs[GNUNET_ATS_PreferenceCount];
- double pref_norm[GNUNET_ATS_PreferenceCount];
+ double pref_abs[GNUNET_ATS_PREFERENCE_END];
+ double pref_norm[GNUNET_ATS_PREFERENCE_END];
+ int is_requested;
struct LoggingAddress *addr_head;
struct LoggingAddress *addr_tail;
struct LoggingAddress *next;
struct LoggingAddress *prev;
- int aid;
+ long long unsigned int aid;
int active;
- int used;
- struct GNUNET_BANDWIDTH_Value32NBO assigned_bw_in;
- struct GNUNET_BANDWIDTH_Value32NBO assigned_bw_out;
+ uint32_t network;
+ uint32_t assigned_bw_in;
+ uint32_t assigned_bw_out;
double prop_abs[GNUNET_ATS_PropertyCount];
double prop_norm[GNUNET_ATS_PropertyCount];
struct TestPeer *prev;
struct TestPeer *next;
- int id;
+
+ long long unsigned int id;
+ int is_requested;
struct GNUNET_PeerIdentity peer_id;
double pref_abs[GNUNET_ATS_PreferenceCount];
double pref_norm[GNUNET_ATS_PreferenceCount];
+ uint32_t assigned_bw_in;
+ uint32_t assigned_bw_out;
+
struct TestAddress *addr_head;
struct TestAddress *addr_tail;
};
struct TestAddress *next;
struct TestAddress *prev;
- int aid;
+ long long unsigned int aid;
struct ATS_Address *ats_addr;
+ uint32_t network;
double prop_abs[GNUNET_ATS_PropertyCount];
double prop_norm[GNUNET_ATS_PropertyCount];
long long unsigned int address_id;
long long unsigned int peer_id;
long long unsigned int client_id;
+
long long unsigned int address_session;
- long long unsigned int address_network;
+ unsigned int address_network;
char*address;
char*plugin;
long long unsigned int max_rate;
struct GNUNET_TIME_Relative period;
struct GNUNET_TIME_Relative frequency;
+ struct GNUNET_TIME_Relative feedback_delay;
enum OperationType type;
enum GeneratorType gen_type;
enum GNUNET_ATS_PreferenceKind pref_type;
- enum GNUNET_ATS_Property prop_type;
+ // enum GNUNET_ATS_Property prop_type;
};
struct Episode
struct LoggingHandle
{
- GNUNET_SCHEDULER_TaskIdentifier logging_task;
+ struct GNUNET_SCHEDULER_Task * logging_task;
struct GNUNET_TIME_Relative log_freq;
/* DLL list for logging time steps */
char *name;
char *log_prefix;
char *cfg_file;
+ char *log_output_dir;
+ int log_append_time_stamp;
+
struct GNUNET_TIME_Relative log_freq;
struct GNUNET_TIME_Relative max_duration;
struct GNUNET_TIME_Relative total_duration;
struct GNUNET_CONFIGURATION_Handle *cfg;
- GNUNET_SCHEDULER_TaskIdentifier experiment_timeout_task;
- GNUNET_SCHEDULER_TaskIdentifier episode_timeout_task;
+ struct GNUNET_SCHEDULER_Task * experiment_timeout_task;
+ struct GNUNET_SCHEDULER_Task * episode_timeout_task;
struct Episode *cur;
GNUNET_ATS_TESTING_EpisodeDoneCallback ep_done_cb;
enum GeneratorType type;
- unsigned int peer;
+ long long unsigned int peer;
unsigned int client_id;
enum GNUNET_ATS_PreferenceKind kind;
long int max_value;
struct GNUNET_TIME_Relative duration_period;
struct GNUNET_TIME_Relative frequency;
+ struct GNUNET_TIME_Relative feedback_frequency;
- GNUNET_SCHEDULER_TaskIdentifier set_task;
+ struct GNUNET_SCHEDULER_Task * set_task;
+ struct GNUNET_SCHEDULER_Task * feedback_task;
struct GNUNET_TIME_Absolute next_ping_transmission;
struct GNUNET_TIME_Absolute time_start;
+
+
+ /* Feedback */
+ uint32_t feedback_bw_out_acc;
+ uint32_t feedback_bw_in_acc;
+ uint32_t feedback_delay_acc;
+
+ double pref_bw_old;
+ double pref_latency_old;
+
+ struct GNUNET_TIME_Absolute feedback_last;
+
+ struct GNUNET_TIME_Absolute feedback_last_bw_update;
+ struct GNUNET_TIME_Absolute feedback_last_delay_update;
+ uint32_t last_assigned_bw_in;
+ uint32_t last_assigned_bw_out;
+ double last_delay_value;
+
};
enum GeneratorType type;
- unsigned int peer;
- unsigned int address_id;
+ long long unsigned int peer;
+ long long unsigned int address_id;
struct TestPeer *test_peer;
struct TestAddress *test_address;
struct GNUNET_TIME_Relative duration_period;
struct GNUNET_TIME_Relative frequency;
- GNUNET_SCHEDULER_TaskIdentifier set_task;
+ struct GNUNET_SCHEDULER_Task * set_task;
struct GNUNET_TIME_Absolute next_ping_transmission;
struct GNUNET_TIME_Absolute time_start;
};