/*
This file is part of GNUnet.
- (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009 Christian Grothoff (and other contributing authors)
+ (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009, 2010 Christian Grothoff (and other contributing authors)
GNUnet is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published
*/
#define GNUNET_MESSAGE_TYPE_TEST 0
-/**
- * Request service shutdown.
- */
-#define GNUNET_MESSAGE_TYPE_SHUTDOWN 1
-
/**
* Request DNS resolution.
*/
#define GNUNET_MESSAGE_TYPE_ARM_IS_UNKNOWN 12
+/**
+ * Request ARM service shutdown.
+ */
+#define GNUNET_MESSAGE_TYPE_ARM_SHUTDOWN 13
+
+/**
+ * Acknowledge service shutting down, disconnect
+ * indicates service stopped.
+ */
+#define GNUNET_MESSAGE_TYPE_ARM_SHUTDOWN_ACK 14
/**
* HELLO message used for communicating peer addresses.
#define GNUNET_MESSAGE_TYPE_TRANSPORT_SET_QUOTA 26
/**
- * Message telling transport to try to connect to the
- * given peer.
+ * Request to look addresses of peers in server.
*/
-#define GNUNET_MESSAGE_TYPE_TRANSPORT_TRY_CONNECT 27
+#define GNUNET_MESSAGE_TYPE_TRANSPORT_ADDRESS_LOOKUP 27
/**
- * Response to another peer confirming that communication was
- * established.
+ * Response to the address lookup request.
*/
-#define GNUNET_MESSAGE_TYPE_TRANSPORT_ACK 28
+#define GNUNET_MESSAGE_TYPE_TRANSPORT_ADDRESS_REPLY 28
/**
- * Request to look addresses of peers in server.
+ * Register a client that wants to do blacklisting.
+ */
+#define GNUNET_MESSAGE_TYPE_TRANSPORT_BLACKLIST_INIT 29
+
+/**
+ * Query to a blacklisting client (is this peer blacklisted)?
*/
-#define GNUNET_MESSAGE_TYPE_TRANSPORT_ADDRESS_LOOKUP 29
+#define GNUNET_MESSAGE_TYPE_TRANSPORT_BLACKLIST_QUERY 30
+
/**
- * Response to the address lookup request.
+ * Reply from blacklisting client (answer to blacklist query).
*/
-#define GNUNET_MESSAGE_TYPE_TRANSPORT_ADDRESS_REPLY 30
+#define GNUNET_MESSAGE_TYPE_TRANSPORT_BLACKLIST_REPLY 31
+/**
+ * Transport PING message
+ */
+#define GNUNET_MESSAGE_TYPE_TRANSPORT_PING 32
/**
- * Request addition of a HELLO
+ * Transport PONG message
*/
-#define GNUNET_MESSAGE_TYPE_PEERINFO_ADD 32
+#define GNUNET_MESSAGE_TYPE_TRANSPORT_PONG 33
/**
* Request update and listing of a peer.
*/
-#define GNUNET_MESSAGE_TYPE_PEERINFO_GET 33
+#define GNUNET_MESSAGE_TYPE_PEERINFO_GET 37
/**
* Request update and listing of all peers.
*/
-#define GNUNET_MESSAGE_TYPE_PEERINFO_GET_ALL 34
+#define GNUNET_MESSAGE_TYPE_PEERINFO_GET_ALL 38
/**
* Information about one of the peers.
*/
-#define GNUNET_MESSAGE_TYPE_PEERINFO_INFO 35
+#define GNUNET_MESSAGE_TYPE_PEERINFO_INFO 39
/**
* End of information about other peers.
*/
-#define GNUNET_MESSAGE_TYPE_PEERINFO_INFO_END 36
+#define GNUNET_MESSAGE_TYPE_PEERINFO_INFO_END 40
/**
* Start notifying this client about all changes to
* the known peers until it disconnects.
*/
-#define GNUNET_MESSAGE_TYPE_PEERINFO_NOTIFY 37
+#define GNUNET_MESSAGE_TYPE_PEERINFO_NOTIFY 41
+/**
+ * DV service to DV Plugin message, when a message is
+ * unwrapped by the DV service and handed to the plugin
+ * for processing
+ */
+#define GNUNET_MESSAGE_TYPE_TRANSPORT_DV_RECEIVE 44
/**
- * Message by which a TCP transport notifies
- * the other that it wants to check an address
- * (and not initiate a persistent connection).
+ * DV Plugin to DV service message, indicating a message
+ * should be sent out.
*/
-#define GNUNET_MESSAGE_TYPE_TRANSPORT_TCP_PING 40
+#define GNUNET_MESSAGE_TYPE_TRANSPORT_DV_SEND 45
/**
- * Message by which a TCP transport confirms
- * the other that the address used worked.
+ * DV service to DV api message, containing a confirmation
+ * or failure of a DV_SEND message.
*/
-#define GNUNET_MESSAGE_TYPE_TRANSPORT_TCP_PONG 41
+#define GNUNET_MESSAGE_TYPE_TRANSPORT_DV_SEND_RESULT 46
/**
- * Welcome message between TCP transports
- * (for a persistent connection).
+ * P2P DV message encapsulating some real message
*/
-#define GNUNET_MESSAGE_TYPE_TRANSPORT_TCP_WELCOME 42
+#define GNUNET_MESSAGE_TYPE_DV_DATA 47
/**
- * Data message between TCP transports.
+ * P2P DV message gossipping peer information
*/
-#define GNUNET_MESSAGE_TYPE_TRANSPORT_TCP_DATA 43
+#define GNUNET_MESSAGE_TYPE_DV_GOSSIP 48
-/*
- * UDP Ping message
+/**
+ * DV Plugin to DV service message, indicating
+ * startup.
*/
-#define GNUNET_MESSAGE_TYPE_TRANSPORT_UDP_PING 51
+#define GNUNET_MESSAGE_TYPE_DV_START 49
-/*
- * UDP Pong message
+/**
+ * P2P DV message notifying connected peers of a disconnect
*/
-#define GNUNET_MESSAGE_TYPE_TRANSPORT_UDP_PONG 52
+#define GNUNET_MESSAGE_TYPE_DV_DISCONNECT 50
+
+/**
+ * TCP NAT probe message, send from NAT'd peer to
+ * other peer to establish bi-directional communication
+ */
+#define GNUNET_MESSAGE_TYPE_TRANSPORT_TCP_NAT_PROBE 51
+
+/**
+ * Normal UDP message type.
+ */
+#define GNUNET_MESSAGE_TYPE_TRANSPORT_UDP_MESSAGE 52
+
+/**
+ * Fragmented part of a UDP message.
+ */
+#define GNUNET_MESSAGE_TYPE_TRANSPORT_UDP_MESSAGE_PART 53
+
+/**
+ * UDP NAT probe message, send from NAT'd peer to
+ * other peer to negotiate punched address/port
+ */
+#define GNUNET_MESSAGE_TYPE_TRANSPORT_UDP_NAT_PROBE 55
+
+/**
+ * UDP NAT probe reply, sent from a non-NAT'd peer to
+ * a NAT'd one to inform it we got the probe and of the
+ * address/port seen
+ */
+#define GNUNET_MESSAGE_TYPE_TRANSPORT_UDP_NAT_PROBE_REPLY 56
+
+/**
+ * UDP NAT probe confirmation, sent from a NAT'd peer to
+ * a non-NAT'd one to inform it which port to send to us
+ * on
+ */
+#define GNUNET_MESSAGE_TYPE_TRANSPORT_UDP_NAT_PROBE_CONFIRM 57
+
+/**
+ * UDP NAT probe keepalive, once a hole is punched the NAT'd peer
+ * needs to keep the hole alive
+ */
+#define GNUNET_MESSAGE_TYPE_TRANSPORT_UDP_NAT_PROBE_KEEPALIVE 58
+
+/**
+ * Welcome message between TCP transports.
+ */
+#define GNUNET_MESSAGE_TYPE_TRANSPORT_TCP_WELCOME 60
/**
* Initial setup message from core client to core.
*/
#define GNUNET_MESSAGE_TYPE_CORE_REQUEST_CONNECT 74
-/**
- * Request from client asking to disconnect from a peer.
- */
-#define GNUNET_MESSAGE_TYPE_CORE_REQUEST_DISCONNECT 75
-
/**
* Session key exchange between peers.
#define GNUNET_MESSAGE_TYPE_CORE_ENCRYPTED_MESSAGE 81
/**
- * Check that other peer is alife (challenge).
+ * Check that other peer is alive (challenge).
*/
#define GNUNET_MESSAGE_TYPE_CORE_PING 82
/**
- * Confirmation that other peer is alife.
+ * Confirmation that other peer is alive.
*/
#define GNUNET_MESSAGE_TYPE_CORE_PONG 83
*/
#define GNUNET_MESSAGE_TYPE_CORE_HANGUP 84
-/**
- * Dummy message send by the topology service to create connections.
- */
-#define GNUNET_MESSAGE_TYPE_TOPOLOGY_DUMMY 91
-
/**
* Message sent by datastore client on join.
*/
#define GNUNET_MESSAGE_TYPE_FS_START_SEARCH 136
/**
- * FS service has found content matching this client's
- * request.
+ * P2P request for content (one FS to another).
+ */
+#define GNUNET_MESSAGE_TYPE_FS_GET 137
+
+/**
+ * P2P response with content or active migration of content. Also
+ * used between the service and clients (in response to START_SEARCH).
*/
-#define GNUNET_MESSAGE_TYPE_FS_CONTENT 137
+#define GNUNET_MESSAGE_TYPE_FS_PUT 138
+
/**
- * P2P request for content (one FS to another).
+ * DHT Message Types
+ */
+
+/**
+ * Local and P2P generic DHT message start type
+ */
+#define GNUNET_MESSAGE_TYPE_DHT_ROUTE 142
+
+/**
+ * Local and P2P generic DHT message start type
+ */
+#define GNUNET_MESSAGE_TYPE_DHT_ROUTE_RESULT 143
+
+/**
+ * Local and P2P generic DHT message stop type
+ */
+#define GNUNET_MESSAGE_TYPE_DHT_STOP 144
+
+/**
+ * Local and message acknowledgment
+ */
+#define GNUNET_MESSAGE_TYPE_DHT_ACK 145
+
+/**
+ * Local DHT Put message, from API to service
+ */
+#define GNUNET_MESSAGE_TYPE_DHT_PUT 146
+
+/**
+ * Local DHT Get message, from API to service
+ */
+#define GNUNET_MESSAGE_TYPE_DHT_GET 147
+
+/**
+ * Local DHT Get stop message, from API to service
+ */
+#define GNUNET_MESSAGE_TYPE_DHT_GET_STOP 148
+
+/**
+ * Local DHT Get result message, from service to API
+ */
+#define GNUNET_MESSAGE_TYPE_DHT_GET_RESULT 149
+
+/**
+ * Local DHT Get message, from API to service
+ */
+#define GNUNET_MESSAGE_TYPE_DHT_FIND_PEER 150
+
+/**
+ * Local DHT Get stop message, from API to service
+ */
+#define GNUNET_MESSAGE_TYPE_DHT_FIND_PEER_STOP 151
+
+/**
+ * Local DHT find peer result message, from service to API
+ */
+#define GNUNET_MESSAGE_TYPE_DHT_FIND_PEER_RESULT 152
+
+/**
+ * Hostlist advertisement message
*/
-#define GNUNET_MESSAGE_TYPE_FS_GET 138
+#define GNUNET_MESSAGE_TYPE_HOSTLIST_ADVERTISEMENT 160
/**
- * P2P response with content or active
- * migration of content.
+ * Type used to match 'all' message types.
*/
-#define GNUNET_MESSAGE_TYPE_FS_PUT 139
+#define GNUNET_MESSAGE_TYPE_ALL 65535
/*
TODO: