33#define DEBUG_TRANSPORT GNUNET_EXTRA_LOGGING
94#if (defined(GNUNET_TRANSPORT_COMMUNICATION_VERSION) || \
95 defined(GNUNET_TRANSPORT_CORE_VERSION))
167#if (defined(GNUNET_TRANSPORT_COMMUNICATION_VERSION) || \
168 defined(GNUNET_TRANSPORT_CORE_VERSION))
240#if ! (defined(GNUNET_TRANSPORT_COMMUNICATION_VERSION) || \
241 defined(GNUNET_TRANSPORT_CORE_VERSION))
static unsigned long long reserved
How much space have we currently reserved?
Functions related to time.
#define GNUNET_NETWORK_STRUCT_BEGIN
Define as empty, GNUNET_PACKED should suffice, but this won't work on W32.
#define GNUNET_NETWORK_STRUCT_END
Define as empty, GNUNET_PACKED should suffice, but this won't work on W32;.
#define GNUNET_PACKED
gcc-ism to get packed structs.
Message from the transport service to the library informing about neighbors.
struct GNUNET_MessageHeader header
Type will be GNUNET_MESSAGE_TYPE_TRANSPORT_CONNECT.
struct GNUNET_PeerIdentity id
Identity of the new neighbour.
struct GNUNET_BANDWIDTH_Value32NBO quota_out
Current outbound quota for this peer.
Message from the transport service to the library informing about disconnects.
struct GNUNET_MessageHeader header
Type will be GNUNET_MESSAGE_TYPE_TRANSPORT_DISCONNECT.
uint32_t reserved
Reserved, always zero.
struct GNUNET_PeerIdentity peer
Who got disconnected?
Application client to TRANSPORT service: we would like to have address suggestions for this peer.
struct GNUNET_BANDWIDTH_Value32NBO bw
How much bandwidth in bytes/second does the application expect?
struct GNUNET_PeerIdentity peer
Peer to get address suggestions for.
uint32_t pk
What type of performance preference does the client have? A enum GNUNET_MQ_PreferenceKind in NBO.
struct GNUNET_MessageHeader header
Type is GNUNET_MESSAGE_TYPE_TRANSPORT_SUGGEST or GNUNET_MESSAGE_TYPE_TRANSPORT_SUGGEST_CANCEL to stop...
32-bit bandwidth used for network exchange by GNUnet, in bytes per second.
The identity of the host (wraps the signing key of the peer).
Time for absolute time used by GNUnet, in microseconds and in network byte order.
Time for relative time used by GNUnet, in microseconds and in network byte order.
struct GNUNET_MessageHeader header
Type will be GNUNET_MESSAGE_TYPE_TRANSPORT_ADD_ADDRESS.
struct GNUNET_TIME_RelativeNBO expiration
When does the address expire?
uint32_t nt
An enum GNUNET_NetworkType in NBO.
uint32_t aid
Address identifier (used during deletion).
Add queue to the transport.
uint32_t nt
An enum GNUNET_NetworkType in NBO.
uint32_t mtu
Maximum transmission unit, in NBO.
uint64_t q_len
Queue length, in NBO.
uint32_t priority
Priority of the queue in relation to other queues.
uint32_t qid
Queue identifier (used to identify the queue).
struct GNUNET_PeerIdentity receiver
Receiver that can be addressed via the queue.
struct GNUNET_MessageHeader header
Type will be GNUNET_MESSAGE_TYPE_TRANSPORT_QUEUE_SETUP.
uint32_t cs
An enum GNUNET_TRANSPORT_ConnectionStatus in NBO.
Request to verify address.
uint32_t reserved
Reserved.
struct GNUNET_MessageHeader header
Type will be #GNUNET_MESSAGE_TYPE_TRANSPORT_ADDRESS_CONSIDER_VERIFY.
struct GNUNET_PeerIdentity peer
Peer the address is from.
struct GNUNET_MessageHeader header
Type will be GNUNET_MESSAGE_TYPE_TRANSPORT_BURST_FINISHED.
Communicator goes online.
struct GNUNET_MessageHeader header
Type will be GNUNET_MESSAGE_TYPE_TRANSPORT_NEW_COMMUNICATOR.
uint32_t cc
NBO encoding of enum GNUNET_TRANSPORT_CommunicatorCharacteristics
uint32_t can_burst
The communicator can do burst msgs.
Message from transport to communicator passing along a backchannel message from the given peer pid.
struct GNUNET_PeerIdentity pid
Origin peer.
struct GNUNET_MessageHeader header
Type will be GNUNET_MESSAGE_TYPE_TRANSPORT_COMMUNICATOR_BACKCHANNEL_INCOMING.
uint32_t reserved
Always zero, for alignment.
Message from communicator to transport service asking for transmission of a backchannel message with ...
struct GNUNET_MessageHeader header
Type will be GNUNET_MESSAGE_TYPE_TRANSPORT_COMMUNICATOR_BACKCHANNEL.
uint32_t reserved
Always zero, for alignment.
struct GNUNET_PeerIdentity pid
Target peer.
Communicator tells transport how queue creation went down.
struct GNUNET_MessageHeader header
Type will be GNUNET_MESSAGE_TYPE_TRANSPORT_QUEUE_CREATE_OK or GNUNET_MESSAGE_TYPE_TRANSPORT_QUEUE_CRE...
uint32_t request_id
Unique ID for the request.
Transport tells communicator that it wants a new queue.
uint32_t request_id
Unique ID for the request.
struct GNUNET_MessageHeader header
Type will be GNUNET_MESSAGE_TYPE_TRANSPORT_QUEUE_CREATE.
struct GNUNET_PeerIdentity receiver
Receiver that can be addressed via the queue.
Remove address from the list.
uint32_t aid
Address identifier.
struct GNUNET_MessageHeader header
Type will be GNUNET_MESSAGE_TYPE_TRANSPORT_DEL_ADDRESS.
Remove queue, it is no longer available.
struct GNUNET_MessageHeader header
Type will be GNUNET_MESSAGE_TYPE_TRANSPORT_QUEUE_TEARDOWN.
struct GNUNET_PeerIdentity receiver
Receiver that can be addressed via the queue.
uint32_t qid
Address identifier.
Transport informs us about being done with an incoming message.
struct GNUNET_MessageHeader header
Type will be GNUNET_MESSAGE_TYPE_TRANSPORT_INCOMING_MSG_ACK.
struct GNUNET_PeerIdentity sender
Sender identifier of the original message.
uint64_t fc_id
Which message is being ACKed?
uint32_t reserved
Reserved (0)
Inform transport about an incoming message.
struct GNUNET_PeerIdentity neighbour_sender
Direct neighbour sender identifier.
struct GNUNET_TIME_RelativeNBO expected_address_validity
How long does the communicator believe the address on which the message was received to remain valid?
struct GNUNET_PeerIdentity sender
Sender identifier.
struct GNUNET_MessageHeader header
Type will be GNUNET_MESSAGE_TYPE_TRANSPORT_INCOMING_MSG.
uint32_t fc_on
Do we use flow control or not?
uint64_t fc_id
64-bit number to identify the matching ACK.
uint32_t num_msg_pending
Messages pending (in NBO).
struct GNUNET_PeerIdentity peer
Target identifier.
struct GNUNET_MessageHeader header
Type will be GNUNET_MESSAGE_TYPE_TRANSPORT_MONITOR_DATA.
struct GNUNET_TIME_AbsoluteNBO valid_until
struct GNUNET_TIME_AbsoluteNBO last_validation
uint32_t num_bytes_pending
Bytes pending (in NBO).
struct GNUNET_TIME_AbsoluteNBO next_validation
uint32_t nt
Network type (an enum GNUNET_NetworkType in NBO).
struct GNUNET_TIME_RelativeNBO rtt
Current round-trip time estimate.
uint32_t cs
Connection status (in NBO).
Request to start monitoring.
struct GNUNET_MessageHeader header
Type will be GNUNET_MESSAGE_TYPE_TRANSPORT_MONITOR_START.
uint32_t one_shot
GNUNET_YES for one-shot montoring, GNUNET_NO for continuous monitoring.
struct GNUNET_PeerIdentity peer
Target identifier to monitor, all zeros for "all peers".
Inform transport that message was sent.
uint32_t status
Success (GNUNET_OK), failure (GNUNET_SYSERR).
uint64_t mid
Message ID of the original message.
uint32_t qid
Queue ID for the queue which was used to send the message.
struct GNUNET_PeerIdentity receiver
Receiver identifier.
struct GNUNET_MessageHeader header
Type will be GNUNET_MESSAGE_TYPE_TRANSPORT_SEND_MSG_ACK.
Inform communicator about transport's desire to send a message.
uint32_t qid
Which queue should we use?
uint64_t mid
Message ID, used for flow control.
struct GNUNET_MessageHeader header
Type will be GNUNET_MESSAGE_TYPE_TRANSPORT_SEND_MSG.
struct GNUNET_PeerIdentity receiver
Receiver identifier.
Message from transport to communicator to start a burst.
struct GNUNET_MessageHeader header
Type will be GNUNET_MESSAGE_TYPE_TRANSPORT_START_BURST.
struct GNUNET_TIME_RelativeNBO rtt
struct GNUNET_PeerIdentity pid
Target peer.
struct GNUNET_PeerIdentity receiver
Receiver that can be addressed via the queue.
uint32_t cs
An enum GNUNET_TRANSPORT_ConnectionStatus in NBO.
uint32_t nt
An enum GNUNET_NetworkType in NBO.
uint32_t priority
Priority of the queue in relation to other queues.
uint32_t mtu
Maximum transmission unit, in NBO.
struct GNUNET_MessageHeader header
Type will be GNUNET_MESSAGE_TYPE_TRANSPORT_QUEUE_SETUP.
uint64_t q_len
Queue length, in NBO.
uint32_t qid
Queue identifier (used to identify the queue).
Message used to notify the transport API about a message received from the network.
struct GNUNET_MessageHeader header
Type will be GNUNET_MESSAGE_TYPE_TRANSPORT_RECV.
struct GNUNET_PeerIdentity peer
Which peer sent the message?
Message used to notify the transport service about a message to be transmitted to another peer.
uint32_t priority
An enum GNUNET_MQ_PriorityPreferences in NBO.
struct GNUNET_MessageHeader header
Type will be GNUNET_MESSAGE_TYPE_TRANSPORT_SEND.
struct GNUNET_PeerIdentity peer
Which peer should receive the message?
struct GNUNET_TIME_RelativeNBO timeout
Allowed delay.
Message used to notify the transport API that it can send another message to the transport service.
struct GNUNET_PeerIdentity peer
Which peer can CORE handle more from now?
struct GNUNET_MessageHeader header
Type will be GNUNET_MESSAGE_TYPE_TRANSPORT_RECV_OK.
uint32_t increase_window_delta
Number of messages by which to increase the window, greater or equal to one.
We got an address of another peer, TRANSPORT service should validate it.
struct GNUNET_MessageHeader header
Type is GNUNET_MESSAGE_TYPE_TRANSPORT_REQUEST_HELLO_VALIDATION.
struct GNUNET_PeerIdentity peer
Peer to the address is presumably for.
uint32_t nt
What type of network does the other peer claim this is? A enum GNUNET_NetworkType in NBO.
Message used to notify the transport API that it can send another message to the transport service.
uint16_t success
GNUNET_OK if the transmission succeeded, GNUNET_SYSERR if it failed (i.e.
uint16_t bytes_msg
Size of message sent.
uint32_t bytes_physical
Size of message sent over wire.
struct GNUNET_PeerIdentity peer
Which peer can send more now?
struct GNUNET_MessageHeader header
Type will be GNUNET_MESSAGE_TYPE_TRANSPORT_SEND_OK.
Message from the transport service to the library asking to check if both processes agree about this ...
struct GNUNET_MessageHeader header
Type will be GNUNET_MESSAGE_TYPE_TRANSPORT_START.
uint32_t options
0: no options 1: The self field should be checked 2: this client is interested in payload traffic
struct GNUNET_PeerIdentity self
Identity we think we have.
void(* NotifyConnect)(void *cls, const struct GNUNET_PeerIdentity *peer, struct GNUNET_BANDWIDTH_Value32NBO bandwidth_in, struct GNUNET_BANDWIDTH_Value32NBO bandwidth_out)
Similar to GNUNET_TRANSPORT_NotifyDisconnect but in and out quotas are included here.