+ struct GNUNET_PeerIdentity peer;
+
+ /**
+ * Local info about the address
+ */
+ uint32_t local_address_info GNUNET_PACKED;
+
+ /**
+ * Address length
+ */
+ uint32_t addrlen GNUNET_PACKED;
+
+ /**
+ * Length of the plugin name
+ */
+ uint32_t pluginlen GNUNET_PACKED;
+
+ /**
+ * State
+ */
+ uint32_t state GNUNET_PACKED;
+
+ /**
+ * At what time did we successfully validate the address last.
+ * Will be NEVER if the address failed validation.
+ */
+ struct GNUNET_TIME_AbsoluteNBO last_validation;
+
+ /**
+ * Until when is the address believed to be valid.
+ * Will be ZERO if the address is not belived to be valid.
+ */
+ struct GNUNET_TIME_AbsoluteNBO valid_until;
+
+ /**
+ * When will we next try to validate the address (typically
+ * done before @e valid_until happens).
+ */
+ struct GNUNET_TIME_AbsoluteNBO next_validation;
+};
+
+/**
+ * Message from the library to the transport service
+ * asking for binary addresses known for a peer.
+ */
+struct ValidationMonitorMessage
+{
+ /**
+ * Type will be #GNUNET_MESSAGE_TYPE_TRANSPORT_MONITOR_VALIDATION_REQUEST
+ */
+ struct GNUNET_MessageHeader header;
+
+ /**
+ * One shot call or continous replies?
+ */
+ uint32_t one_shot GNUNET_PACKED;
+
+ /**
+ * The identity of the peer to look up.
+ */
+ struct GNUNET_PeerIdentity peer;
+
+};
+
+
+/**
+ * Message from the library to the transport service
+ * asking for binary addresses known for a peer.
+ */
+struct PeerMonitorMessage
+{
+ /**
+ * Type will be #GNUNET_MESSAGE_TYPE_TRANSPORT_MONITOR_PEER_REQUEST
+ */
+ struct GNUNET_MessageHeader header;
+
+ /**
+ * One shot call or continous replies?
+ */
+ uint32_t one_shot GNUNET_PACKED;