2 This file is part of GNUnet.
3 (C) 2010,2011 Christian Grothoff (and other contributing authors)
5 GNUnet is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published
7 by the Free Software Foundation; either version 3, or (at your
8 option) any later version.
10 GNUnet is distributed in the hope that it will be useful, but
11 WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 General Public License for more details.
15 You should have received a copy of the GNU General Public License
16 along with GNUnet; see the file COPYING. If not, write to the
17 Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18 Boston, MA 02111-1307, USA.
22 * @brief automatic transport selection messages
23 * @author Christian Grothoff
24 * @author Matthias Wachs
29 #include "gnunet_util_lib.h"
35 START_FLAG_SCHEDULING = 0,
37 START_FLAG_PERFORMANCE_WITH_PIC = 1,
39 START_FLAG_PERFORMANCE_NO_PIC = 2
45 struct ClientStartMessage
47 struct GNUNET_MessageHeader header;
50 * NBO value of an 'enum StartFlag'.
57 struct RequestAddressMessage
59 struct GNUNET_MessageHeader header;
61 uint32_t reserved GNUNET_PACKED;
63 struct GNUNET_PeerIdentity peer;
66 struct AddressUpdateMessage
68 struct GNUNET_MessageHeader header;
70 uint32_t ats_count GNUNET_PACKED;
72 struct GNUNET_PeerIdentity peer;
74 uint16_t address_length GNUNET_PACKED;
76 uint16_t plugin_name_length GNUNET_PACKED;
78 uint32_t session_id GNUNET_PACKED;
81 - struct GNUNET_TRANSPORT_ATS_Information [ats_count];
82 - char address[address_length]
83 - char plugin_name[plugin_name_length] (including '\0'-termination).
88 struct AddressDestroyedMessage
90 struct GNUNET_MessageHeader header;
92 uint32_t reserved GNUNET_PACKED;
94 struct GNUNET_PeerIdentity peer;
96 uint16_t address_length GNUNET_PACKED;
98 uint16_t plugin_name_length GNUNET_PACKED;
100 uint32_t session_id GNUNET_PACKED;
103 - char address[address_length]
104 - char plugin_name[plugin_name_length] (including '\0'-termination).
110 struct AddressSuggestionMessage
112 struct GNUNET_MessageHeader header;
114 uint32_t ats_count GNUNET_PACKED;
116 struct GNUNET_PeerIdentity peer;
118 uint16_t address_length GNUNET_PACKED;
120 uint16_t plugin_name_length GNUNET_PACKED;
122 uint32_t session_id GNUNET_PACKED;
124 struct GNUNET_BANDWIDTH_Value32NBO bandwidth_out;
126 struct GNUNET_BANDWIDTH_Value32NBO bandwidth_in;
129 - struct GNUNET_TRANSPORT_ATS_Information [ats_count];
130 - char address[address_length]
131 - char plugin_name[plugin_name_length] (including '\0'-termination).
138 struct PeerInformationMessage
140 struct GNUNET_MessageHeader header;
142 uint32_t ats_count GNUNET_PACKED;
144 struct GNUNET_PeerIdentity peer;
146 uint16_t address_length GNUNET_PACKED;
148 uint16_t plugin_name_length GNUNET_PACKED;
150 struct GNUNET_BANDWIDTH_Value32NBO bandwidth_out;
152 struct GNUNET_BANDWIDTH_Value32NBO bandwidth_in;
155 - struct GNUNET_TRANSPORT_ATS_Information [ats_count];
156 - char address[address_length]
157 - char plugin_name[plugin_name_length] (including '\0'-termination).
165 struct ReservationRequestMessage
167 struct GNUNET_MessageHeader header;
169 int32_t amount GNUNET_PACKED;
171 struct GNUNET_PeerIdentity peer;
175 struct ReservationResultMessage
177 struct GNUNET_MessageHeader header;
179 int32_t amount GNUNET_PACKED;
181 struct GNUNET_PeerIdentity peer;
183 struct GNUNET_TIME_RelativeNBO res_delay;
187 struct PreferenceInformation
190 uint32_t preference_kind GNUNET_PACKED;
192 float preference_value GNUNET_PACKED;
197 struct ChangePreferenceMessage
199 struct GNUNET_MessageHeader header;
201 uint32_t num_preferences GNUNET_PACKED;
203 struct GNUNET_PeerIdentity peer;
205 /* followed by 'num_preferences'
206 struct PreferenceInformation values */