X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Fats%2Fgnunet-service-ats_scheduling.h;h=1603437b87efdbbd599027dd5b1fa3f0f8c45fbd;hb=f1ca38573f22205e28ac482efebe463696c9c2c7;hp=d2506de6a35965f705b58b1f34d64d1bf0c07acb;hpb=70f9bcf894b28799df078330d204860e7ea7bae8;p=oweals%2Fgnunet.git diff --git a/src/ats/gnunet-service-ats_scheduling.h b/src/ats/gnunet-service-ats_scheduling.h index d2506de6a..1603437b8 100644 --- a/src/ats/gnunet-service-ats_scheduling.h +++ b/src/ats/gnunet-service-ats_scheduling.h @@ -34,8 +34,9 @@ * Register a new scheduling client. * * @param client handle of the new client + * @return GNUNET_OK on success, GNUNET_SYSERR on error */ -void +int GAS_scheduling_add_client (struct GNUNET_SERVER_Client *client); @@ -49,6 +50,19 @@ void GAS_scheduling_remove_client (struct GNUNET_SERVER_Client *client); +/** + * Handle 'reset backoff' messages from clients. + * + * @param cls unused, NULL + * @param client client that sent the request + * @param message the request message + */ +void +GAS_handle_reset_backoff (void *cls, + struct GNUNET_SERVER_Client *client, + const struct GNUNET_MessageHeader *message); + + /** * Transmit the given address suggestion and bandwidth update to all scheduling * clients. @@ -57,23 +71,25 @@ GAS_scheduling_remove_client (struct GNUNET_SERVER_Client *client); * @param plugin_name 0-termintated string specifying the transport plugin * @param plugin_addr binary address for the plugin to use * @param plugin_addr_len number of bytes in plugin_addr - * @param session_client which client gave us this session_id? - * @param session_id session ID to use for the given client (other clients will see 0) + * @param session_id session ID to use + * @param local_address_info the local address for the address * @param atsi performance data for the address * @param atsi_count number of performance records in 'ats' * @param bandwidth_out assigned outbound bandwidth * @param bandwidth_in assigned inbound bandwidth */ void -GAS_scheduling_transmit_address_update (const struct GNUNET_PeerIdentity *peer, - const char *plugin_name, - const void *plugin_addr, size_t plugin_addr_len, - struct GNUNET_SERVER_Client *session_client, - uint32_t session_id, - const struct GNUNET_TRANSPORT_ATS_Information *atsi, - uint32_t atsi_count, - struct GNUNET_BANDWIDTH_Value32NBO bandwidth_out, - struct GNUNET_BANDWIDTH_Value32NBO bandwidth_in); +GAS_scheduling_transmit_address_suggestion (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_Information *atsi, + uint32_t atsi_count, + struct GNUNET_BANDWIDTH_Value32NBO bandwidth_out, + struct GNUNET_BANDWIDTH_Value32NBO bandwidth_in); /** @@ -85,10 +101,33 @@ GAS_scheduling_transmit_address_update (const struct GNUNET_PeerIdentity *peer, */ void GAS_handle_request_address (void *cls, struct GNUNET_SERVER_Client *client, - const struct GNUNET_MessageHeader *message); + const struct GNUNET_MessageHeader *message); + +/** + * Cancel 'request address' messages from clients. + * + * @param cls unused, NULL + * @param client client that sent the request + * @param message the request message + */ +void +GAS_handle_request_address_cancel (void *cls, + struct GNUNET_SERVER_Client *client, + const struct GNUNET_MessageHeader *message); +/** + * Handle 'address add' messages from clients. + * + * @param cls unused, NULL + * @param client client that sent the request + * @param message the request message + */ +void +GAS_handle_address_add (void *cls, struct GNUNET_SERVER_Client *client, + const struct GNUNET_MessageHeader *message); + /** * Handle 'address update' messages from clients. * @@ -98,7 +137,19 @@ GAS_handle_request_address (void *cls, struct GNUNET_SERVER_Client *client, */ void GAS_handle_address_update (void *cls, struct GNUNET_SERVER_Client *client, - const struct GNUNET_MessageHeader *message); + const struct GNUNET_MessageHeader *message); + + +/** + * Handle 'address in use' messages from clients. + * + * @param cls unused, NULL + * @param client client that sent the request + * @param message the request message + */ +void +GAS_handle_address_in_use (void *cls, struct GNUNET_SERVER_Client *client, + const struct GNUNET_MessageHeader *message); /** @@ -109,17 +160,19 @@ GAS_handle_address_update (void *cls, struct GNUNET_SERVER_Client *client, * @param message the request message */ void -GAS_handle_address_destroyed (void *cls, struct GNUNET_SERVER_Client *client, - const struct GNUNET_MessageHeader *message); +GAS_handle_address_destroyed (void *cls, + struct GNUNET_SERVER_Client *client, + const struct GNUNET_MessageHeader *message); /** * Initialize scheduling subsystem. * * @param server handle to our server + * @param ah the address handle to use */ void -GAS_scheduling_init (struct GNUNET_SERVER_Handle *server); +GAS_scheduling_init (struct GNUNET_SERVER_Handle *server, struct GAS_Addresses_Handle *ah); /**