/*
This file is part of GNUnet.
- (C) 2010,2011 Christian Grothoff (and other contributing authors)
+ Copyright (C) 2010-2015 Christian Grothoff (and other contributing authors)
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 "transport.h"
#include "gnunet_util_lib.h"
-// TODO:
-// - ATS and similar info is a bit lacking in the API right now...
-
-
/**
* Initialize the neighbours subsystem.
*
- * @param cls closure for callbacks
- * @param connect_cb function to call if we connect to a peer
- * @param disconnect_cb function to call if we disconnect from a peer
- * @param peer_address_cb function to call if a neighbour's active address changes
* @param max_fds maximum number of fds to use
*/
void
-GST_neighbours_start (void *cls,
- NotifyConnect connect_cb,
- GNUNET_TRANSPORT_NotifyDisconnect disconnect_cb,
- GNUNET_TRANSPORT_NeighbourChangeCallback peer_address_cb,
- unsigned int max_fds);
+GST_neighbours_start (unsigned int max_fds);
/**
GST_NeighbourSendContinuation cont, void *cont_cls);
-
-/**
- * FIXME
- */
-void
-GST_neighbours_register_quota_notification (void *cls,
- const struct GNUNET_PeerIdentity *peer,
- const char *plugin,
- struct Session *session);
-
-
-/**
- * FIXME
- */
-void
-GST_neighbours_unregister_quota_notification (void *cls,
- const struct GNUNET_PeerIdentity *peer,
- const char *plugin,
- struct Session *session);
-
-
/**
* We have received a message from the given sender.
* How long should we delay before receiving more?
const struct GNUNET_MessageHeader *m);
-/**
- * Change the incoming quota for the given peer.
- *
- * @param neighbour identity of peer to change qutoa for
- * @param quota new quota
- */
-void
-GST_neighbours_set_incoming_quota (const struct GNUNET_PeerIdentity *neighbour,
- struct GNUNET_BANDWIDTH_Value32NBO quota);
-
-
/**
* If we have an active connection to the given target, it must be shutdown.
*
/**
- * FIXME
+ * Track information about data we received from the
+ * given address (used to notify ATS about our utilization
+ * of allocated resources).
+ *
+ * @param address the address we got data from
+ * @param message the message we received (really only the size is used)
*/
void
GST_neighbours_notify_data_recv (const struct GNUNET_HELLO_Address *address,
- struct Session *session,
const struct GNUNET_MessageHeader *message);
/**
- * FIXME
- */
-void
-GST_neighbours_notify_payload_recv (const struct GNUNET_HELLO_Address *address,
- struct Session *session,
- const struct GNUNET_MessageHeader *message);
-
-
-/**
- * FIXME
- */
-void
-GST_neighbours_notify_payload_sent (const struct GNUNET_PeerIdentity *peer,
- size_t size);
-
-
-/**
- * FIXME
+ * Track information about data we transmitted using the given @a
+ * address and @a session (used to notify ATS about our utilization of
+ * allocated resources).
+ *
+ * @param address the address we transmitted data to
+ * @param session session we used to transmit data
+ * @param message the message we sent (really only the size is used)
*/
void
GST_neighbours_notify_data_sent (const struct GNUNET_HELLO_Address *address,
/**
- * Obtain current latency information for the given neighbour.
+ * Obtain current address information for the given neighbour.
*
* @param peer
- * @return observed latency of the address, FOREVER if the address was
- * never successfully validated
+ * @return address currently used
*/
-struct GNUNET_TIME_Relative
-GST_neighbour_get_latency (const struct GNUNET_PeerIdentity *peer);
+struct GNUNET_HELLO_Address *
+GST_neighbour_get_current_address (const struct GNUNET_PeerIdentity *peer);
/**
- * Obtain current address information for the given neighbour.
+ * We received a quoat message from the given peer,
+ * validate and process.
*
- * @param peer
- * @return address currently used
+ * @param peer sender of the message
+ * @param msg the quota message
*/
-struct GNUNET_HELLO_Address *
-GST_neighbour_get_current_address (const struct GNUNET_PeerIdentity *peer);
+void
+GST_neighbours_handle_quota_message (const struct GNUNET_PeerIdentity *peer,
+ const struct GNUNET_MessageHeader *msg);
/**