check
[oweals/gnunet.git] / src / include / gnunet_protocols.h
index e3f266e2542137ed914e87e4cbd05fd108c98176..38d9713a5beb1ff9f669340d328a64a917accbbd 100644 (file)
@@ -38,7 +38,7 @@ extern "C"
 /**
  * Test if service is online.
  */
-#define GNUNET_MESSAGE_TYPE_TEST 0
+#define GNUNET_MESSAGE_TYPE_TEST 1
 
 
 /**
@@ -184,6 +184,12 @@ extern "C"
  */
 #define GNUNET_MESSAGE_TYPE_TRANSPORT_PONG 33
 
+/**
+ * Message for TRANSPORT asking that a connection
+ * be initiated with a peer.
+ */
+#define GNUNET_MESSAGE_TYPE_TRANSPORT_REQUEST_CONNECT 34
+
 /**
  * Request update and listing of a peer.
  */
@@ -297,6 +303,11 @@ extern "C"
  */
 #define GNUNET_MESSAGE_TYPE_TRANSPORT_TCP_WELCOME 60
 
+/**
+ * Message to force transport to update bandwidth assignment
+ */
+#define GNUNET_MESSAGE_TYPE_TRANSPORT_ATS 61
+
 /**
  * Initial setup message from core client to core.
  */
@@ -351,44 +362,65 @@ extern "C"
 #define GNUNET_MESSAGE_TYPE_CORE_CONFIGURATION_INFO 73
 
 /**
- * Request from client with message to transmit.
+ * Request from client to transmit message.
  */
-#define GNUNET_MESSAGE_TYPE_CORE_SEND 74
+#define GNUNET_MESSAGE_TYPE_CORE_SEND_REQUEST 74
+
+/**
+ * Confirmation from core that message can now be sent
+ */
+#define GNUNET_MESSAGE_TYPE_CORE_SEND_READY 75
+
+/**
+ * Client with message to transmit (after SEND_READY confirmation
+ * was received).
+ */
+#define GNUNET_MESSAGE_TYPE_CORE_SEND 76
 
 /**
  * Request from client asking to connect to a peer.
  */
-#define GNUNET_MESSAGE_TYPE_CORE_REQUEST_CONNECT 75
+#define GNUNET_MESSAGE_TYPE_CORE_REQUEST_CONNECT 77
+
+/**
+ * Request for peer iteration from CORE service.
+ */
+#define GNUNET_MESSAGE_TYPE_CORE_ITERATE_PEERS 78
+
+/**
+ * Last reply from core to request for peer iteration from CORE service.
+ */
+#define GNUNET_MESSAGE_TYPE_CORE_ITERATE_PEERS_END 79
 
 /**
- * Request from client asking to call back with all connected peers.
+ * Check whether a given peer is currently connected to CORE.
  */
-#define GNUNET_MESSAGE_TYPE_CORE_ITERATE_PEERS 76
+#define GNUNET_MESSAGE_TYPE_CORE_PEER_CONNECTED 80
 
 /**
  * Session key exchange between peers.
  */
-#define GNUNET_MESSAGE_TYPE_CORE_SET_KEY 80
+#define GNUNET_MESSAGE_TYPE_CORE_SET_KEY 81
 
 /**
  * Encapsulation for an encrypted message between peers.
  */
-#define GNUNET_MESSAGE_TYPE_CORE_ENCRYPTED_MESSAGE 81
+#define GNUNET_MESSAGE_TYPE_CORE_ENCRYPTED_MESSAGE 82
 
 /**
  * Check that other peer is alive (challenge).
  */
-#define GNUNET_MESSAGE_TYPE_CORE_PING 82
+#define GNUNET_MESSAGE_TYPE_CORE_PING 83
 
 /**
  * Confirmation that other peer is alive.
  */
-#define GNUNET_MESSAGE_TYPE_CORE_PONG 83
+#define GNUNET_MESSAGE_TYPE_CORE_PONG 84
 
 /**
  * Request by the other peer to terminate the connection.
  */
-#define GNUNET_MESSAGE_TYPE_CORE_HANGUP 84
+#define GNUNET_MESSAGE_TYPE_CORE_HANGUP 85
 
 /**
  * Message sent by datastore client on join.
@@ -425,30 +457,35 @@ extern "C"
 /**
  * Message sent by datastore client to get random data.
  */
-#define GNUNET_MESSAGE_TYPE_DATASTORE_GET_RANDOM 98
+#define GNUNET_MESSAGE_TYPE_DATASTORE_GET_REPLICATION 98
+
+/**
+ * Message sent by datastore client to get random data.
+ */
+#define GNUNET_MESSAGE_TYPE_DATASTORE_GET_ZERO_ANONYMITY 99
 
 /**
  * Message sent by datastore to client providing requested data
  * (in response to GET or GET_RANDOM request).
  */
-#define GNUNET_MESSAGE_TYPE_DATASTORE_DATA 99
+#define GNUNET_MESSAGE_TYPE_DATASTORE_DATA 100
 
 /**
  * Message sent by datastore to client signaling end of matching data.
  * This message will also be sent for "GET_RANDOM", even though
  * "GET_RANDOM" returns at most one data item.
  */
-#define GNUNET_MESSAGE_TYPE_DATASTORE_DATA_END 100
+#define GNUNET_MESSAGE_TYPE_DATASTORE_DATA_END 101
 
 /**
  * Message sent by datastore client to remove data.
  */
-#define GNUNET_MESSAGE_TYPE_DATASTORE_REMOVE 101
+#define GNUNET_MESSAGE_TYPE_DATASTORE_REMOVE 102
 
 /**
  * Message sent by datastore client to drop the database.
  */
-#define GNUNET_MESSAGE_TYPE_DATASTORE_DROP 102
+#define GNUNET_MESSAGE_TYPE_DATASTORE_DROP 103
 
 
 /**
@@ -508,6 +545,11 @@ extern "C"
  */
 #define GNUNET_MESSAGE_TYPE_FS_PUT 138
 
+/**
+ * Peer asks us to stop migrating content towards it for a while.
+ */
+#define GNUNET_MESSAGE_TYPE_FS_MIGRATION_STOP 139
+
 
 /**
  * DHT Message Types
@@ -565,6 +607,35 @@ extern "C"
  */
 #define GNUNET_MESSAGE_TYPE_DHT_FIND_PEER_RESULT 151
 
+/**
+ * P2P DHT PING request type
+ */
+#define GNUNET_MESSAGE_TYPE_DHT_P2P_PING 152
+
+/**
+ * DHT Control message type, for telling the
+ * DHT to alter its current operation somehow.
+ */
+#define GNUNET_MESSAGE_TYPE_DHT_CONTROL 153
+
+/**
+ * Local control message type, tells peer to start
+ * issuing malicious GET requests.
+ */
+#define GNUNET_MESSAGE_TYPE_DHT_MALICIOUS_GET 154
+
+/**
+ * Local control message type, tells peer to start
+ * issuing malicious PUT requests.
+ */
+#define GNUNET_MESSAGE_TYPE_DHT_MALICIOUS_PUT 155
+
+/**
+ * Local control message type, tells peer to start
+ * dropping all requests.
+ */
+#define GNUNET_MESSAGE_TYPE_DHT_MALICIOUS_DROP  156
+
 /**
  * Hostlist advertisement message
  */
@@ -608,6 +679,232 @@ extern "C"
  */
 #define GNUNET_MESSAGE_TYPE_VPN_HELPER 185
 
+/**
+ * Type of messages containing an UDP packet for a service
+ */
+#define GNUNET_MESSAGE_TYPE_SERVICE_UDP 186
+
+/**
+ * Type of messages containing an UDP packet from a service
+ */
+#define GNUNET_MESSAGE_TYPE_SERVICE_UDP_BACK 187
+
+/**
+ * Type of messages containing an TCP packet for a service
+ */
+#define GNUNET_MESSAGE_TYPE_SERVICE_TCP 188
+
+/**
+ * Type of messages containing an TCP packet from a service
+ */
+#define GNUNET_MESSAGE_TYPE_SERVICE_TCP_BACK 189
+
+
+/**
+ * Type of messages between the gnunet-wlan-helper and the daemon
+ *
+ */
+
+#define GNUNET_MESSAGE_TYPE_WLAN_HELPER_DATA 195
+
+/**
+ * Control messages between the gnunet-wlan-helper and the daemon
+ */
+
+#define GNUNET_MESSAGE_TYPE_WLAN_HELPER_CONTROL 196
+
+/**
+ * Type of messages for advertisement over wlan
+ */
+#define GNUNET_MESSAGE_TYPE_WLAN_ADVERTISEMENT 197
+
+/**
+ * Type of messages for data over the wlan
+ */
+
+#define GNUNET_MESSAGE_TYPE_WLAN_DATA 198
+
+/**
+ * Fragment of a message
+ */
+
+#define GNUNET_MESSAGE_TYPE_WLAN_FRAGMENT 199
+
+/**
+ * Fragment ack of a message
+ */
+
+#define GNUNET_MESSAGE_TYPE_WLAN_FRAGMENT_ACK 200
+
+
+/**
+ * Type of messages to query the local service-dns
+ */
+#define GNUNET_MESSAGE_TYPE_LOCAL_QUERY_DNS 205
+/**
+ * Type of messages the local service-dns responds with
+ */
+#define GNUNET_MESSAGE_TYPE_LOCAL_RESPONSE_DNS 206
+/**
+ * Type of messages to instruct the local service-dns to rehijack the dns
+ */
+#define GNUNET_MESSAGE_TYPE_REHIJACK 207
+/**
+ * Type of messages to send a DNS-query to another peer
+ */
+#define GNUNET_MESSAGE_TYPE_REMOTE_QUERY_DNS 208
+/**
+ * Type of messages to send a DNS-answer to another peer
+ */
+#define GNUNET_MESSAGE_TYPE_REMOTE_ANSWER_DNS 209
+
+
+/**
+ * Type of message used to transport messages throug a MESH-tunnel
+ */
+#define GNUNET_MESSAGE_TYPE_MESH 215
+
+/**
+ * Type of message used to send another peer which messages we want to receive
+ * through a mesh-tunnel.
+ */
+#define GNUNET_MESSAGE_TYPE_MESH_HELLO 216
+
+
+/**
+ * MESH message types (WiP)
+ */
+
+/**
+ * Request the creation of a path
+ */
+#define GNUNET_MESSAGE_TYPE_MESH_PATH_CREATE   256
+
+/**
+ * Request the modification of an existing path
+ */
+#define GNUNET_MESSAGE_TYPE_MESH_PATH_CHANGE   257
+
+/**
+ * Request the addition to a new branch to a path
+ */
+#define GNUNET_MESSAGE_TYPE_MESH_PATH_ADD      258
+
+/**
+ * At some point, the route will spontaneously change
+ */
+#define GNUNET_MESSAGE_TYPE_MESH_PATH_CHANGED  259
+
+/**
+ * Transport data in the mesh (origin->end)
+ */
+#define GNUNET_MESSAGE_TYPE_MESH_DATA_GO       260
+
+/**
+ * Transport data back in the mesh (end->origin)
+ * (not sure if this is the right way, should be some other solution)
+ */
+#define GNUNET_MESSAGE_TYPE_MESH_DATA_BACK     261
+
+/**
+ * We need flow control
+ */
+#define GNUNET_MESSAGE_TYPE_MESH_SPEED_NOTIFY  262
+
+/* FIXME: Document */
+#define GNUNET_MESSAGE_TYPE_MESH_LOCAL_CONNECT                  272
+#define GNUNET_MESSAGE_TYPE_MESH_LOCAL_TUNNEL_CREATE            273
+#define GNUNET_MESSAGE_TYPE_MESH_LOCAL_TUNNEL_DESTROY           274
+
+#define GNUNET_MESSAGE_TYPE_MESH_LOCAL_CONNECT_PEER_ADD         275
+#define GNUNET_MESSAGE_TYPE_MESH_LOCAL_CONNECT_PEER_DEL         276
+#define GNUNET_MESSAGE_TYPE_MESH_LOCAL_CONNECT_PEER_BY_TYPE     277
+#define GNUNET_MESSAGE_TYPE_MESH_LOCAL_CONNECT_PEER_CANCEL      278
+#define GNUNET_MESSAGE_TYPE_MESH_LOCAL_PEER_CONNECTED           279
+#define GNUNET_MESSAGE_TYPE_MESH_LOCAL_PEER_DISCONNECTED        280
+
+#define GNUNET_MESSAGE_TYPE_MESH_LOCAL_REQUEST_TRANSMIT_READY   281
+#define GNUNET_MESSAGE_TYPE_MESH_LOCAL_NOTIFY_TRANSMIT_READY    282
+#define GNUNET_MESSAGE_TYPE_MESH_LOCAL_DATA                     283
+#define GNUNET_MESSAGE_TYPE_MESH_LOCAL_DATA_BROADCAST           284
+
+/**
+ * 640kb should be enough for everybody
+ */
+#define GNUNET_MESSAGE_TYPE_MESH_RESERVE_END   288
+
+/**
+ * MESH message types END
+ */
+
+
+
+/**
+ * Message sent from client to join a chat room.
+ */
+#define GNUNET_MESSAGE_TYPE_CHAT_JOIN_REQUEST 300
+
+/**
+ * Message sent to client to indicate joining of another room member.
+ */
+#define GNUNET_MESSAGE_TYPE_CHAT_JOIN_NOTIFICATION 301
+
+/**
+ * Message sent to client to indicate leaving of another room member.
+ */
+#define GNUNET_MESSAGE_TYPE_CHAT_LEAVE_NOTIFICATION 302
+
+/**
+ * Notification sent by service to client indicating that we've received a chat
+ * message.
+ */
+#define GNUNET_MESSAGE_TYPE_CHAT_MESSAGE_NOTIFICATION 303
+
+/**
+ * Request sent by client to transmit a chat message to another room members.
+ */
+#define GNUNET_MESSAGE_TYPE_CHAT_TRANSMIT_REQUEST 304
+
+/**
+ * Receipt sent from a message receiver to the service to confirm delivery of
+ * a chat message.
+ */
+#define GNUNET_MESSAGE_TYPE_CHAT_CONFIRMATION_RECEIPT 305
+
+/**
+ * Notification sent from the service to the original sender
+ * to acknowledge delivery of a chat message.
+ */
+#define GNUNET_MESSAGE_TYPE_CHAT_CONFIRMATION_NOTIFICATION 306
+
+/**
+ * P2P message sent to indicate joining of another room member.
+ */
+#define GNUNET_MESSAGE_TYPE_CHAT_P2P_JOIN_NOTIFICATION 307
+
+/**
+ * P2P message sent to indicate leaving of another room member.
+ */
+#define GNUNET_MESSAGE_TYPE_CHAT_P2P_LEAVE_NOTIFICATION 308
+
+/**
+ * P2P message sent to a newly connected peer to request its known clients in
+ * order to synchronize room members.
+ */
+#define GNUNET_MESSAGE_TYPE_CHAT_P2P_SYNC_REQUEST 309
+
+/**
+ * Notification sent from one peer to another to indicate that we have received
+ * a chat message.
+ */
+#define GNUNET_MESSAGE_TYPE_CHAT_P2P_MESSAGE_NOTIFICATION 310
+
+/**
+ * P2P receipt confirming delivery of a chat message.
+ */
+#define GNUNET_MESSAGE_TYPE_CHAT_P2P_CONFIRMATION_RECEIPT 311
+
+
 /**
  * Type used to match 'all' message types.
  */
@@ -615,7 +912,7 @@ extern "C"
 
 /*
   TODO:
-  - applications (FS, VPN, CHAT, TRACEKIT, TBENCH)
+  - applications (FS, VPN, TRACEKIT, TBENCH)
 */