/*
This file is part of GNUnet.
- Copyright (C) 2011-2014 Christian Grothoff (and other contributing authors)
+ Copyright (C) 2011-2014 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.
*/
/**
#include "gnunet-service-ats_performance.h"
#include "gnunet-service-ats_preferences.h"
#include "gnunet-service-ats_plugins.h"
+#include "gnunet-service-ats_reservations.h"
#include "gnunet-service-ats_scheduling.h"
#include "gnunet-service-ats_normalization.h"
/**
- * The relative value for a property changed
+ * The relative value for a property changed.
*
- * @param address the peer
- * @param type the ATS type
- * @param prop_rel the new relative preference value
+ * @param address the peer for which a property changed
*/
void
-GAS_plugin_notify_property_changed (struct ATS_Address *address,
- enum GNUNET_ATS_Property type,
- double prop_rel)
+GAS_plugin_notify_property_changed (struct ATS_Address *address)
{
sf->s_address_update_property (sf->cls,
- address,
- type,
- 0,
- prop_rel);
+ address);
}
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Solver notifies `%s' with result `%s'\n",
"GAS_OP_SOLVE_STOP",
- (GAS_STAT_SUCCESS == status) ? "SUCCESS" : "FAIL",
- add_info);
+ (GAS_STAT_SUCCESS == status) ? "SUCCESS" : "FAIL");
return;
case GAS_OP_SOLVE_SETUP_START:
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
(GAS_STAT_SUCCESS == status) ? "SUCCESS" : "FAIL");
return;
default:
+ GNUNET_break (0);
break;
}
}
bandwidth_changed_cb (void *cls,
struct ATS_Address *address)
{
- uint32_t diff_out;
- uint32_t diff_in;
+ long long diff_out;
+ long long diff_in;
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
- "Bandwidth assignment changed for peer %s \n",
- GNUNET_i2s (&address->peer));
-
+ "Bandwidth assignment changed for peer %s to %u/%u\n",
+ GNUNET_i2s (&address->peer),
+ (unsigned int) address->assigned_bw_in,
+ (unsigned int) address->assigned_bw_out);
+ GAS_reservations_set_bandwidth (&address->peer,
+ GNUNET_BANDWIDTH_value_init (address->assigned_bw_in));
/* Notify performance clients about changes to address */
GAS_performance_notify_all_clients (&address->peer,
address->plugin,
address->addr,
address->addr_len,
address->active,
- address->atsi,
- address->atsi_count,
+ &address->properties,
+ address->local_address_info,
GNUNET_BANDWIDTH_value_init (address->assigned_bw_out),
GNUNET_BANDWIDTH_value_init (address->assigned_bw_in));
if ( (0 == address->assigned_bw_in) &&
(0 == address->assigned_bw_out) )
{
- GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Telling transport to disconnect peer `%s'\n",
GNUNET_i2s (&address->peer));
}
/* Do bandwidth stability check */
- diff_out = abs (address->assigned_bw_out - address->last_notified_bw_out);
- diff_in = abs (address->assigned_bw_in - address->last_notified_bw_in);
-
- if ( (diff_out < htonl(GNUNET_CONSTANTS_DEFAULT_BW_IN_OUT.value__)) &&
- (diff_in < htonl(GNUNET_CONSTANTS_DEFAULT_BW_IN_OUT.value__)) )
+ diff_out = llabs ((long long) address->assigned_bw_out -
+ (long long) address->last_notified_bw_out);
+ diff_in = llabs ((long long) address->assigned_bw_in -
+ (long long) address->last_notified_bw_in);
+ if ( (diff_out < htonl (GNUNET_CONSTANTS_DEFAULT_BW_IN_OUT.value__)) &&
+ (diff_in < htonl (GNUNET_CONSTANTS_DEFAULT_BW_IN_OUT.value__)) )
+ {
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ "Bandwidth change too small, not notifying client\n");
return;
+ }
- GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Sending bandwidth update for peer `%s': %u/%u\n",
GNUNET_i2s (&address->peer),
address->assigned_bw_out,
direction,
GNUNET_ATS_print_network_type (network),
quota_str,
- GNUNET_ATS_DefaultBandwidth);
+ (unsigned long long) GNUNET_ATS_DefaultBandwidth);
ret = GNUNET_ATS_DefaultBandwidth;
}
else
_("No %s-quota configured for network `%s', assigning default bandwidth %llu\n"),
direction,
GNUNET_ATS_print_network_type (type),
- GNUNET_ATS_DefaultBandwidth);
+ (unsigned long long) GNUNET_ATS_DefaultBandwidth);
ret = GNUNET_ATS_DefaultBandwidth;
}
GNUNET_free (entry);
* for talking to the respective peer.
*
* @param new_address the new address
- * @param addr_net network scope the address is in
*/
void
-GAS_plugin_new_address (struct ATS_Address *new_address,
- enum GNUNET_ATS_Network_Type addr_net)
+GAS_plugin_new_address (struct ATS_Address *new_address)
{
sf->s_add (sf->cls,
new_address,
- addr_net);
+ new_address->properties.scope); /* FIXME: remove 3rd arg here! */
}
void
GAS_plugin_solver_unlock ()
{
- sf->s_bulk_start (sf->cls);
+ sf->s_bulk_stop (sf->cls);
}
void
GAS_plugin_request_connect_start (const struct GNUNET_PeerIdentity *pid)
{
- sf->s_get (sf->cls, pid);
+ sf->s_get (sf->cls,
+ pid);
}