2 This file is part of GNUnet.
3 (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009 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 2, 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 * @file include/gnunet_protocols.h
23 * @brief constants for network protocols
24 * @author Christian Grothoff
27 #ifndef GNUNET_PROTOCOLS_H
28 #define GNUNET_PROTOCOLS_H
33 #if 0 /* keep Emacsens' auto-indent happy */
39 * Test if service is online.
41 #define GNUNET_MESSAGE_TYPE_TEST 0
44 * Request service shutdown.
46 #define GNUNET_MESSAGE_TYPE_SHUTDOWN 1
50 * Request DNS resolution.
52 #define GNUNET_MESSAGE_TYPE_RESOLVER_REQUEST 2
55 * Response to a DNS resolution request.
57 #define GNUNET_MESSAGE_TYPE_RESOLVER_RESPONSE 3
61 * Set a statistical value.
63 #define GNUNET_MESSAGE_TYPE_STATISTICS_SET 4
66 * Get a statistical value(s).
68 #define GNUNET_MESSAGE_TYPE_STATISTICS_GET 5
71 * Response to a STATISTICS_GET message (with value).
73 #define GNUNET_MESSAGE_TYPE_STATISTICS_VALUE 6
76 * Response to a STATISTICS_GET message (end of value stream).
78 #define GNUNET_MESSAGE_TYPE_STATISTICS_END 7
82 * Request to ARM to start a service.
84 #define GNUNET_MESSAGE_TYPE_ARM_START 8
87 * Request to ARM to stop a service.
89 #define GNUNET_MESSAGE_TYPE_ARM_STOP 9
92 * Response from ARM: service is now up.
94 #define GNUNET_MESSAGE_TYPE_ARM_IS_UP 10
97 * Response from ARM: service is now down.
98 * (failed to start it).
100 #define GNUNET_MESSAGE_TYPE_ARM_IS_DOWN 11
104 * HELLO message used for communicating peer addresses.
105 * Managed by libgnunethello.
107 #define GNUNET_MESSAGE_TYPE_HELLO 16
110 * FRAGMENT of a larger message.
111 * Managed by libgnunetfragment.
113 #define GNUNET_MESSAGE_TYPE_FRAGMENT 18
117 * Message from the core saying that the transport
118 * server should start giving it messages. This
119 * should automatically trigger the transmission of
122 #define GNUNET_MESSAGE_TYPE_TRANSPORT_START 20
125 * Message from TRANSPORT notifying about a
126 * client that connected to us.
128 #define GNUNET_MESSAGE_TYPE_TRANSPORT_CONNECT 21
131 * Message from TRANSPORT notifying about a
132 * client that disconnected from us.
134 #define GNUNET_MESSAGE_TYPE_TRANSPORT_DISCONNECT 22
137 * Request to TRANSPORT to transmit a message.
139 #define GNUNET_MESSAGE_TYPE_TRANSPORT_SEND 23
142 * Confirmation from TRANSPORT that message for
143 * transmission has been queued (and that the next
144 * message to this peer can now be passed to the
145 * service). Note that this confirmation does NOT
146 * imply that the message was fully transmitted.
148 #define GNUNET_MESSAGE_TYPE_TRANSPORT_SEND_OK 24
151 * Message from TRANSPORT notifying about a
152 * message that was received.
154 #define GNUNET_MESSAGE_TYPE_TRANSPORT_RECV 25
157 * Message telling transport to limit its receive rate.
159 #define GNUNET_MESSAGE_TYPE_TRANSPORT_SET_QUOTA 26
162 * Message telling transport to try to connect to the
165 #define GNUNET_MESSAGE_TYPE_TRANSPORT_TRY_CONNECT 27
168 * Request to other peer to confirm receipt.
170 #define GNUNET_MESSAGE_TYPE_TRANSPORT_PING 28
173 * Message from other peer confirming receipt.
175 #define GNUNET_MESSAGE_TYPE_TRANSPORT_PONG 29
178 * Response to another peer confirming that communication was
181 #define GNUNET_MESSAGE_TYPE_TRANSPORT_ACK 30
185 * Request addition of a HELLO
187 #define GNUNET_MESSAGE_TYPE_PEERINFO_ADD 32
190 * Request update and listing of a peer.
192 #define GNUNET_MESSAGE_TYPE_PEERINFO_GET 33
195 * Request update and listing of all peers.
197 #define GNUNET_MESSAGE_TYPE_PEERINFO_GET_ALL 34
200 * Information about one of the peers.
202 #define GNUNET_MESSAGE_TYPE_PEERINFO_INFO 35
205 * End of information about other peers.
207 #define GNUNET_MESSAGE_TYPE_PEERINFO_INFO_END 36
211 * Welcome message between TCP transports.
213 #define GNUNET_MESSAGE_TYPE_TRANSPORT_TCP_WELCOME 40
216 * Data message between TCP transports.
218 #define GNUNET_MESSAGE_TYPE_TRANSPORT_TCP_DATA 41
222 * Initial setup message from core client to core.
224 #define GNUNET_MESSAGE_TYPE_CORE_INIT 64
227 * Response from core to core client to INIT message.
229 #define GNUNET_MESSAGE_TYPE_CORE_INIT_REPLY 65
232 * Notify clients about new peer-to-peer connections.
234 #define GNUNET_MESSAGE_TYPE_CORE_NOTIFY_CONNECT 66
237 * Notify clients about peer disconnecting.
239 #define GNUNET_MESSAGE_TYPE_CORE_NOTIFY_DISCONNECT 67
242 * Notify clients about incoming P2P messages.
244 #define GNUNET_MESSAGE_TYPE_CORE_NOTIFY_INBOUND 68
247 * Notify clients about outgoing P2P transmissions.
249 #define GNUNET_MESSAGE_TYPE_CORE_NOTIFY_OUTBOUND 69
252 * Request from client to "configure" P2P connection.
254 #define GNUNET_MESSAGE_TYPE_CORE_REQUEST_CONFIGURE 70
257 * Response from server about (possibly updated) P2P
258 * connection configuration.
260 #define GNUNET_MESSAGE_TYPE_CORE_CONFIGURATION_INFO 71
263 * Solicitation from server for transmission (may have
264 * been requested or also be transmitted without
267 #define GNUNET_MESSAGE_TYPE_CORE_SOLICIT_TRAFFIC 72
270 * Response from client with message to transmit.
272 #define GNUNET_MESSAGE_TYPE_CORE_SEND 73
276 * Session key exchange between peers.
278 #define GNUNET_MESSAGE_TYPE_CORE_SET_KEY 80
281 * Encapsulation for an encrypted message between peers.
283 #define GNUNET_MESSAGE_TYPE_CORE_ENCRYPTED_MESSAGE 81
286 * Check that other peer is alife (challenge).
288 #define GNUNET_MESSAGE_TYPE_CORE_PING 82
291 * Confirmation that other peer is alife.
293 #define GNUNET_MESSAGE_TYPE_CORE_PONG 83
296 * Request by the other peer to terminate the connection.
298 #define GNUNET_MESSAGE_TYPE_CORE_HANGUP 84
306 - applications (FS, VPN, CHAT, TRACEKIT, TBENCH)
310 #if 0 /* keep Emacsens' auto-indent happy */
317 /* ifndef GNUNET_PROTOCOLS_H */
319 /* end of gnunet_protocols.h */