iterate topoogy header related stuff
[oweals/gnunet.git] / src / include / gnunet_protocols.h
index 85553bff009bd1e03a1a13a7acde19f80c76db8a..e3f266e2542137ed914e87e4cbd05fd108c98176 100644 (file)
@@ -40,11 +40,6 @@ extern "C"
  */
 #define GNUNET_MESSAGE_TYPE_TEST 0
 
-/**
- * Request service shutdown.
- */
-#define GNUNET_MESSAGE_TYPE_SHUTDOWN 1
-
 
 /**
  * Request DNS resolution.
@@ -57,26 +52,6 @@ extern "C"
 #define GNUNET_MESSAGE_TYPE_RESOLVER_RESPONSE 3
 
 
-/**
- * Set a statistical value.
- */
-#define GNUNET_MESSAGE_TYPE_STATISTICS_SET 4
-
-/**
- * Get a statistical value(s).
- */
-#define GNUNET_MESSAGE_TYPE_STATISTICS_GET 5
-
-/**
- * Response to a STATISTICS_GET message (with value).
- */
-#define GNUNET_MESSAGE_TYPE_STATISTICS_VALUE 6
-
-/**
- * Response to a STATISTICS_GET message (end of value stream).
- */
-#define GNUNET_MESSAGE_TYPE_STATISTICS_END 7
-
 
 /**
  * Request to ARM to start a service.
@@ -104,6 +79,16 @@ extern "C"
  */
 #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.
@@ -164,53 +149,40 @@ extern "C"
 #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_ADDRESS_LOOKUP 29
+#define GNUNET_MESSAGE_TYPE_TRANSPORT_BLACKLIST_INIT 29
 
 /**
- * Response to the address lookup request. 
+ * Query to a blacklisting client (is this peer blacklisted)?
  */
-#define GNUNET_MESSAGE_TYPE_TRANSPORT_ADDRESS_REPLY 30
+#define GNUNET_MESSAGE_TYPE_TRANSPORT_BLACKLIST_QUERY 30
 
-/**
- * Change in blacklisting status of a peer.
- */
-#define GNUNET_MESSAGE_TYPE_TRANSPORT_BLACKLIST 31
 
 /**
- * Request to transport to notify us about any blacklisting status
- * changes on this connection (and to immediately send all
- * active blacklist entries).
+ * Reply from blacklisting client (answer to blacklist query).
  */
-#define GNUNET_MESSAGE_TYPE_TRANSPORT_BLACKLIST_NOTIFY 32
+#define GNUNET_MESSAGE_TYPE_TRANSPORT_BLACKLIST_REPLY 31
 
 /**
  * Transport PING message
  */
-#define GNUNET_MESSAGE_TYPE_TRANSPORT_PING 33
+#define GNUNET_MESSAGE_TYPE_TRANSPORT_PING 32
 
 /**
  * Transport PONG message
  */
-#define GNUNET_MESSAGE_TYPE_TRANSPORT_PONG 34
-
-/**
- * Request addition of a HELLO
- */
-#define GNUNET_MESSAGE_TYPE_PEERINFO_ADD 36
+#define GNUNET_MESSAGE_TYPE_TRANSPORT_PONG 33
 
 /**
  * Request update and listing of a peer.
@@ -238,16 +210,92 @@ extern "C"
  */
 #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
 
 /**
- * Welcome message between TCP transports.
+ * DV Plugin to DV service message, indicating a message
+ * should be sent out.
  */
-#define GNUNET_MESSAGE_TYPE_TRANSPORT_TCP_WELCOME 60
+#define GNUNET_MESSAGE_TYPE_TRANSPORT_DV_SEND 45
+
+/**
+ * DV service to DV api message, containing a confirmation
+ * or failure of a DV_SEND message.
+ */
+#define GNUNET_MESSAGE_TYPE_TRANSPORT_DV_SEND_RESULT 46
+
+/**
+ * P2P DV message encapsulating some real message
+ */
+#define GNUNET_MESSAGE_TYPE_DV_DATA 47
+
+/**
+ * P2P DV message gossipping peer information
+ */
+#define GNUNET_MESSAGE_TYPE_DV_GOSSIP 48
+
+/**
+ * DV Plugin to DV service message, indicating
+ * startup.
+ */
+#define GNUNET_MESSAGE_TYPE_DV_START 49
+
+/**
+ * P2P DV message notifying connected peers of a disconnect
+ */
+#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_DATA 41
+#define GNUNET_MESSAGE_TYPE_TRANSPORT_TCP_WELCOME 60
 
 /**
  * Initial setup message from core client to core.
@@ -276,42 +324,46 @@ extern "C"
  */
 #define GNUNET_MESSAGE_TYPE_CORE_NOTIFY_DISCONNECT 68
 
+/**
+ * Notify clients about peer status change.
+ */
+#define GNUNET_MESSAGE_TYPE_CORE_NOTIFY_STATUS_CHANGE 69
+
 /**
  * Notify clients about incoming P2P messages.
  */
-#define GNUNET_MESSAGE_TYPE_CORE_NOTIFY_INBOUND 69
+#define GNUNET_MESSAGE_TYPE_CORE_NOTIFY_INBOUND 70
 
 /**
  * Notify clients about outgoing P2P transmissions.
  */
-#define GNUNET_MESSAGE_TYPE_CORE_NOTIFY_OUTBOUND 70
+#define GNUNET_MESSAGE_TYPE_CORE_NOTIFY_OUTBOUND 71
 
 /**
  * Request from client to "configure" P2P connection.
  */
-#define GNUNET_MESSAGE_TYPE_CORE_REQUEST_INFO 71
+#define GNUNET_MESSAGE_TYPE_CORE_REQUEST_INFO 72
 
 /**
  * Response from server about (possibly updated) P2P
  * connection configuration.
  */
-#define GNUNET_MESSAGE_TYPE_CORE_CONFIGURATION_INFO 72
+#define GNUNET_MESSAGE_TYPE_CORE_CONFIGURATION_INFO 73
 
 /**
  * Request from client with message to transmit.
  */
-#define GNUNET_MESSAGE_TYPE_CORE_SEND 73
+#define GNUNET_MESSAGE_TYPE_CORE_SEND 74
 
 /**
  * Request from client asking to connect to a peer.
  */
-#define GNUNET_MESSAGE_TYPE_CORE_REQUEST_CONNECT 74
+#define GNUNET_MESSAGE_TYPE_CORE_REQUEST_CONNECT 75
 
 /**
- * Request from client asking to disconnect from a peer.
+ * Request from client asking to call back with all connected peers.
  */
-#define GNUNET_MESSAGE_TYPE_CORE_REQUEST_DISCONNECT 75
-
+#define GNUNET_MESSAGE_TYPE_CORE_ITERATE_PEERS 76
 
 /**
  * Session key exchange between peers.
@@ -324,12 +376,12 @@ extern "C"
 #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
 
@@ -338,11 +390,6 @@ extern "C"
  */
 #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.
  */
@@ -451,30 +498,158 @@ extern "C"
 #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_CONTENT 137
+#define GNUNET_MESSAGE_TYPE_FS_GET 137
 
 /**
- * P2P request for content (one FS to another).
+ * 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_PUT 138
+
+
+/**
+ * DHT Message Types
+ */
+
+/**
+ * Local DHT route request type
+ */
+#define GNUNET_MESSAGE_TYPE_DHT_LOCAL_ROUTE 142
+
+/**
+ * Local generic DHT route result type
+ */
+#define GNUNET_MESSAGE_TYPE_DHT_LOCAL_ROUTE_RESULT 143
+
+/**
+ * P2P DHT route request type
+ */
+#define GNUNET_MESSAGE_TYPE_DHT_P2P_ROUTE 144
+
+/**
+ * P2P DHT route result type
+ */
+#define GNUNET_MESSAGE_TYPE_DHT_P2P_ROUTE_RESULT 145
+
+/**
+ * Local generic DHT message stop type
+ */
+#define GNUNET_MESSAGE_TYPE_DHT_LOCAL_ROUTE_STOP 146
+
+/**
+ * Local and P2P DHT PUT message
+ * (encapsulated in DHT_ROUTE message)
+ */
+#define GNUNET_MESSAGE_TYPE_DHT_PUT 147
+
+/**
+ * Local and P2P DHT GET message
+ * (encapsulated in DHT_ROUTE message)
+ */
+#define GNUNET_MESSAGE_TYPE_DHT_GET 148
+
+/**
+ * Local and P2P DHT Get result message
+ */
+#define GNUNET_MESSAGE_TYPE_DHT_GET_RESULT 149
+
+/**
+ * Local and P2P DHT find peer message
+ */
+#define GNUNET_MESSAGE_TYPE_DHT_FIND_PEER 150
+
+/**
+ * Local and P2P DHT find peer result message
+ */
+#define GNUNET_MESSAGE_TYPE_DHT_FIND_PEER_RESULT 151
+
+/**
+ * Hostlist advertisement message
+ */
+#define GNUNET_MESSAGE_TYPE_HOSTLIST_ADVERTISEMENT 160
+
+
+/**
+ * Set a statistical value.
  */
-#define GNUNET_MESSAGE_TYPE_FS_GET 138
+#define GNUNET_MESSAGE_TYPE_STATISTICS_SET 168
 
 /**
- * P2P response with content or active
- * migration of content.
+ * Get a statistical value(s).
+ */
+#define GNUNET_MESSAGE_TYPE_STATISTICS_GET 169
+
+/**
+ * Response to a STATISTICS_GET message (with value).
  */
-#define GNUNET_MESSAGE_TYPE_FS_PUT 139
+#define GNUNET_MESSAGE_TYPE_STATISTICS_VALUE 170
+
+/**
+ * Response to a STATISTICS_GET message (end of value stream).
+ */
+#define GNUNET_MESSAGE_TYPE_STATISTICS_END 171
+
+/**
+ * Watch changes to a statistical value.  Message format is the same
+ * as for GET, except that the subsystem and entry name must be given.
+ */
+#define GNUNET_MESSAGE_TYPE_STATISTICS_WATCH 172
+
+/**
+ * Changes to a watched value.
+ */
+#define GNUNET_MESSAGE_TYPE_STATISTICS_WATCH_VALUE 173
+
+
+/**
+ * Type of messages between the gnunet-vpn-helper and the daemon
+ */
+#define GNUNET_MESSAGE_TYPE_VPN_HELPER 185
+
+/**
+ * Type used to match 'all' message types.
+ */
+#define GNUNET_MESSAGE_TYPE_ALL 65535
 
 /*
   TODO:
-  - DV
-  - DHT
   - applications (FS, VPN, CHAT, TRACEKIT, TBENCH)
 */
 
 
+
+
+/* BELOW: experimental student-DHT protocol codes */
+
+/**
+ * Request to join a CAN DHT
+ */
+#define GNUNET_MESSAGE_TYPE_DHT_CAN_JOIN_REQUEST 1174
+
+/**
+ * Response to join request of a CAN DHT
+ */
+#define GNUNET_MESSAGE_TYPE_DHT_CAN_JOIN_REPLY 1175
+
+/**
+ * Messages for swapping locations
+ */
+#define GNUNET_MESSAGE_TYPE_DHT_GET_NEIGHBOURLIST_REQUEST 1180
+
+#define GNUNET_MESSAGE_TYPE_DHT_GET_NEIGHBOURLIST_RESULT 1181
+
+#define GNUNET_MESSAGE_TYPE_DHT_SWAP_LOCATION_REQUEST 1182
+
+#define GNUNET_MESSAGE_TYPE_DHT_SWAP_LOCATION_ACK 1183
+
+/**
+ * Freenet hello message
+ */
+#define GNUNET_MESSAGE_TYPE_DHT_FREENET_HELLO 1184
+
+
 #if 0                           /* keep Emacsens' auto-indent happy */
 {
 #endif