#define DEBUG_TRANSPORT GNUNET_EXTRA_LOGGING
-#define DEBUG_TRANSPORT_TIMEOUT GNUNET_EXTRA_LOGGING
-
-#define DEBUG_TRANSPORT_DISCONNECT GNUNET_EXTRA_LOGGING
-
-#define DEBUG_TRANSPORT_API GNUNET_EXTRA_LOGGING
/**
* For how long do we allow unused bandwidth
*/
#define MIN_QUOTA_REFRESH_TIME 2000
+/**
+ * What's the maximum number of sockets transport uses for validation and
+ * neighbors
+ */
+#define DEFAULT_MAX_FDS 256
+
/**
* Maximum frequency for re-evaluating latencies for all transport addresses.
*/
*/
#define CONNECTED_LATENCY_EVALUATION_MAX_DELAY GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MINUTES, 1)
+/**
+ * Similiar to GNUNET_TRANSPORT_NotifyDisconnect but in and out quotas are
+ * included here. These values are not required outside transport_api
+ *
+ * @param cls closure
+ * @param peer the peer that connected
+ * @param bandwidth_in inbound bandwidth in NBO
+ * @param bandwidth_out outbound bandwidth in NBO
+ *
+ */
+
+typedef void (*NotifyConnect) (void *cls,
+ const struct GNUNET_PeerIdentity *peer,
+ struct GNUNET_BANDWIDTH_Value32NBO bandwidth_in,
+ struct GNUNET_BANDWIDTH_Value32NBO bandwidth_out);
+
+GNUNET_NETWORK_STRUCT_BEGIN
+
/**
* Message from the transport service to the library
* asking to check if both processes agree about this
struct GNUNET_MessageHeader header;
/**
- * Number of ATS key-value pairs that follow this struct
- * (excluding the 0-terminator).
+ * Identity of the new neighbour.
*/
- uint32_t ats_count GNUNET_PACKED;
+ struct GNUNET_PeerIdentity id;
/**
- * Identity of the new neighbour.
+ * Current inbound quota for this peer
*/
- struct GNUNET_PeerIdentity id;
+ struct GNUNET_BANDWIDTH_Value32NBO quota_in;
+
+ /**
+ * Current outbound quota for this peer
+ */
+ struct GNUNET_BANDWIDTH_Value32NBO quota_out;
};
*/
struct GNUNET_MessageHeader header;
- /**
- * Number of ATS key-value pairs that follow this struct
- * (excluding the 0-terminator).
- */
- uint32_t ats_count GNUNET_PACKED;
-
/**
* Which peer sent the message?
*/
*/
uint32_t success GNUNET_PACKED;
+
+ /**
+ * Size of message sent
+ */
+ uint32_t bytes_msg GNUNET_PACKED;
+
+ /**
+ * Size of message sent over wire
+ * Includes plugin and protocol specific overhead
+ */
+ uint32_t bytes_physical GNUNET_PACKED;
+
/**
* Latency estimate.
*/
{
/**
- * Type will be GNUNET_MESSAGE_TYPE_TRANSPORT_ADDRESS_LOOKUP
+ * Type will be GNUNET_MESSAGE_TYPE_TRANSPORT_ADDRESS_TO_STRING
*/
struct GNUNET_MessageHeader header;
};
+/**
+ * Message from the library to the transport service
+ * asking for binary addresses known for a peer.
+ */
+struct TrafficMetricMessage
+{
+ /**
+ * Type will be GNUNET_MESSAGE_TYPE_TRANSPORT_TRAFFIC_METRIC
+ */
+ struct GNUNET_MessageHeader header;
+
+ /**
+ * SEND, RECEIVE or BOTH?
+ */
+ uint16_t direction;
+
+ /**
+ * Traffic metrics count
+ */
+ uint16_t ats_count;
+
+ /**
+ * The identity of the peer to look up.
+ */
+ struct GNUNET_PeerIdentity peer;
+};
+
+
/**
* Message from the transport service to the library
* containing binary addresses known for a peer.
* length of the plugin name
*/
uint32_t pluginlen GNUNET_PACKED;
-
+
};
struct GNUNET_PeerIdentity peer;
};
-
+GNUNET_NETWORK_STRUCT_END
/* end of transport.h */
#endif