extend API to enalbe exclusive port ranges to be specified for testing-system objects
[oweals/gnunet.git] / src / include / gnunet_ats_service.h
index 0db277597582c873ba5819b5856770b14aff3f85..e8e7abb5b116f7d32149b023ea6d14d510aa5c5d 100644 (file)
@@ -412,6 +412,15 @@ enum GNUNET_ATS_Property
  */
 #define GNUNET_ATS_QualityProperties {GNUNET_ATS_QUALITY_NET_DELAY, GNUNET_ATS_QUALITY_NET_DISTANCE}
 
+/**
+ * Number of ATS quality properties
+ */
+#define GNUNET_ATS_NetworkTypeCount 5
+
+/**
+ * ATS quality properties as array initializer
+ */
+#define GNUNET_ATS_NetworkType {GNUNET_ATS_NET_UNSPECIFIED, GNUNET_ATS_NET_LOOPBACK, GNUNET_ATS_NET_LAN, GNUNET_ATS_NET_WAN, GNUNET_ATS_NET_WLAN}
 
 GNUNET_NETWORK_STRUCT_BEGIN
 
@@ -513,6 +522,17 @@ void
 GNUNET_ATS_scheduling_done (struct GNUNET_ATS_SchedulingHandle *sh);
 
 
+/**
+ * We would like to reset the address suggestion block time for this
+ * peer
+ *
+ * @param sh handle
+ * @param peer identity of the peer we want to reset
+ */
+void
+GNUNET_ATS_reset_backoff (struct GNUNET_ATS_SchedulingHandle *sh,
+                          const struct GNUNET_PeerIdentity *peer);
+
 /**
  * We would like to establish a new connection with a peer.  ATS
  * should suggest a good address to begin with.
@@ -538,6 +558,7 @@ GNUNET_ATS_suggest_address_cancel (struct GNUNET_ATS_SchedulingHandle *sh,
 
 /**
  * Returns where the address is located: LAN or WAN or ...
+ * @param sh the GNUNET_ATS_SchedulingHandle handle
  * @param addr address
  * @param addrlen address length
  * @return location as GNUNET_ATS_Information
@@ -547,6 +568,23 @@ GNUNET_ATS_address_get_type (struct GNUNET_ATS_SchedulingHandle *sh,
                              const struct sockaddr * addr,
                              socklen_t addrlen);
 
+/**
+ * We have a new address ATS should know. Addresses have to be added with this
+ * function before they can be: updated, set in use and destroyed
+ *
+ * @param sh handle
+ * @param address the address
+ * @param session session handle (if available)
+ * @param ats performance data for the address
+ * @param ats_count number of performance records in 'ats'
+ */
+int
+GNUNET_ATS_address_add (struct GNUNET_ATS_SchedulingHandle *sh,
+                        const struct GNUNET_HELLO_Address *address,
+                        struct Session *session,
+                        const struct GNUNET_ATS_Information *ats,
+                        uint32_t ats_count);
+
 
 /**
  * We have updated performance statistics for a given address.  Note
@@ -584,6 +622,7 @@ GNUNET_ATS_address_in_use (struct GNUNET_ATS_SchedulingHandle *sh,
                            const struct GNUNET_HELLO_Address *address,
                            struct Session *session, int in_use);
 
+
 /**
  * A session got destroyed, stop including it as a valid address.
  *