27 #ifndef GNUNET_SERVICE_ATS_ADDRESSES_H
28 #define GNUNET_SERVICE_ATS_ADDRESSES_H
224 #define ATS_BLOCKING_DELTA GNUNET_TIME_relative_multiply ( \
225 GNUNET_TIME_UNIT_MILLISECONDS, 100)
396 const void *plugin_addr,
397 size_t plugin_addr_len,
398 uint32_t local_address_info,
452 const void *plugin_addr,
453 size_t plugin_addr_len,
454 const int address_active,
automatic transport selection messages
static struct GNUNET_HashCode session_id
static struct GNUNET_IDENTITY_Handle * id
Handle to identity service.
#define GAS_normalization_queue_length
void GAS_addresses_init(void)
Initialize address subsystem.
void GAS_addresses_destroy(const struct GNUNET_PeerIdentity *peer, uint32_t session_id)
Remove an address for a peer.
void GAS_addresses_done(void)
Shutdown address subsystem.
void GAS_addresses_get_peer_info(const struct GNUNET_PeerIdentity *peer, GNUNET_ATS_PeerInfo_Iterator pi_it, void *pi_it_cls)
Return information all peers currently known to ATS.
struct GNUNET_CONTAINER_MultiPeerMap * GSA_addresses
A multipeermap mapping peer identities to struct ATS_Address.
void GAS_addresses_update(const struct GNUNET_PeerIdentity *peer, uint32_t session_id, const struct GNUNET_ATS_Properties *prop)
Update an address with new performance information for a peer.
void(* GNUNET_ATS_PeerInfo_Iterator)(void *cls, const struct GNUNET_PeerIdentity *id, const char *plugin_name, const void *plugin_addr, size_t plugin_addr_len, const int address_active, const struct GNUNET_ATS_Properties *prop, enum GNUNET_HELLO_AddressInfo local_address_info, struct GNUNET_BANDWIDTH_Value32NBO bandwidth_out, struct GNUNET_BANDWIDTH_Value32NBO bandwidth_in)
Iterator for GAS_addresses_get_peer_info()
void GAS_addresses_add(const struct GNUNET_PeerIdentity *peer, const char *plugin_name, const void *plugin_addr, size_t plugin_addr_len, uint32_t local_address_info, uint32_t session_id, const struct GNUNET_ATS_Properties *prop)
Add a new address for a peer.
void GAS_handle_request_address_list(struct GNUNET_SERVICE_Client *client, const struct AddressListRequestMessage *alrm)
Handle 'address list request' messages from clients.
void GAS_addresses_destroy_all(void)
Remove all addresses.
static char * plugin_name
Name of our plugin.
Automatic transport selection and outbound bandwidth determination.
GNUNET_HELLO_AddressInfo
Additional local information about an address.
Address with additional information.
struct GAS_NormalizationInfo norm_delay
Normalized delay information for this address.
uint32_t assigned_bw_in
Inbound bandwidth assigned by solver.
char * plugin
Plugin name.
uint32_t last_notified_bw_in
Inbound bandwidth assigned by solver in NBO.
struct GNUNET_PeerIdentity peer
Peer ID this address is for.
int active
Is this the active address for this peer?
enum GNUNET_HELLO_AddressInfo local_address_info
Field to store local flags.
void * solver_information
Solver-specific information for this address.
struct GNUNET_TIME_Absolute t_last_activity
Time when address had last activity (update, in uses)
uint32_t last_notified_bw_out
Outbound bandwidth assigned by solver in NBO.
uint32_t assigned_bw_out
Outbound bandwidth assigned by solver.
struct GAS_NormalizationInfo norm_distance
Normalized distance information for this address.
struct GAS_NormalizationInfo norm_utilization_out
Normalized utilization outbound for this address.
uint32_t session_id
Session ID, can never be 0.
size_t addr_len
Address length, number of bytes in addr.
uint32_t atsi_count
ATS performance information for this address, size of the atsi array.
struct GAS_NormalizationInfo norm_utilization_in
Normalized utilization inbound for this address.
struct GNUNET_ATS_Properties properties
ATS performance information for this address.
const void * addr
Address (in plugin-specific binary format).
struct GNUNET_TIME_Absolute t_added
Time when address was added.
Client to service: please give us an overview of the addresses.
Information provided by ATS normalization.
uint64_t atsi_abs[3]
Averaging queue.
double norm
Normalized values from queue to a range of values [1.0...2.0].
unsigned int avg_queue_index
Next index to use in averaging queue.
uint64_t avg
Averaged ATSI values from queue.
ATS performance characteristics for an address.
32-bit bandwidth used for network exchange by GNUnet, in bytes per second.
Internal representation of the hash map.
The identity of the host (wraps the signing key of the peer).
Handle to a client that is connected to a service.
Time for absolute times used by GNUnet, in microseconds.
struct GNUNET_TESTBED_Peer * peer
The peer associated with this model.