*
* API CALL (GNUNET_MESH_*) MESSAGE USED
* ------------------------ ------------
- * connect GNUNET_MESH_Connect
+ * connect GNUNET_MESH_ClientConnect
* disconnect None (network level disconnect)
*
* tunnel_create GNUNET_MESH_TunnelMessage
* EVENT MESSAGE USED
* ----- ------------
* notify_transmit_ready reply GNUNET_MESH_TransmitReady
- * notify_transmit_ready data GNUNET_MESH_Data or
+ * notify_transmit_ready data GNUNET_MESH_Data OR
* GNUNET_MESH_DataBroadcast
* new incoming tunnel GNUNET_MESH_PeerControl
* peer connects to a tunnel GNUNET_MESH_PeerControl
* peer disconnects from a tunnel GNUNET_MESH_PeerControl
*/
-/**
- * Type for tunnel numbering.
- * - Local tunnel numbers are >= 0x80000000
- * - Global tunnel numbers are < 0x80000000
- */
-typedef uint32_t MESH_TunnelID;
+/******************************************************************************/
+/************************** CONSTANTS ******************************/
+/******************************************************************************/
+
+#define GNUNET_MESH_LOCAL_TUNNEL_ID_MARK 0x80000000
+
+/******************************************************************************/
+/************************** MESSAGES ******************************/
+/******************************************************************************/
/**
- * Message for connecting to the msh service. Specifies the messages the client
- * is interested in.
+ * Message for a client to register to the service
*/
-struct GNUNET_MESH_Connect {
+struct GNUNET_MESH_ClientConnect {
/**
* Type: GNUNET_MESSAGE_TYPE_MESH_LOCAL_CONNECT
- * Size: sizeof(struct GNUNET_MESH_Connect) +
- * messages_subscribed * sizeof (message_type)
+ *
+ * Size: sizeof(struct GNUNET_MESH_ClientConnect) +
+ * sizeof(uint16_t) * types +
+ * sizeof(MESH_ApplicationType) * applications
*/
struct GNUNET_MessageHeader header;
-
- /* GNUNET_MESH_ApplicationType messages_subscribed[] */
+ uint16_t types GNUNET_PACKED;
+ uint16_t applications GNUNET_PACKED;
+ /* uint16_t list_types[types] */
+ /* uint16_t list_apps[applications] */
};
+/**
+ * Type for tunnel numbering.
+ * - Local tunnel numbers are >= 0x80000000
+ * - Global tunnel numbers are < 0x80000000
+ */
+typedef uint32_t MESH_TunnelNumber;
+
/**
* Message for a client to create and destroy tunnels.
*/
struct GNUNET_MESH_TunnelMessage {
/**
* Type: GNUNET_MESSAGE_TYPE_MESH_LOCAL_TUNNEL_[CREATE|DESTROY]
+ *
+ * Size: sizeof(struct GNUNET_MESH_TunnelMessage)
*/
struct GNUNET_MessageHeader header;
/**
* ID of a tunnel controlled by this client.
*/
- MESH_TunnelID tunnel_id GNUNET_PACKED;
+ MESH_TunnelNumber tunnel_id GNUNET_PACKED;
};
/**
/**
* Type: GNUNET_MESSAGE_TYPE_MESH_LOCAL_CONNECT_PEER_[ADD|DEL]
* (client to service, client created tunnel)
- * GNUNET_MESSAGE_TYPE_MESH_LOCAL_TUNNEL_NOTIFY[CONNECT|DISCONNECT]
+ * GNUNET_MESSAGE_TYPE_MESH_LOCAL_PEER_[CONNECTED|DISCONNECTED]
* (service to client)
*
* Size: sizeof(struct GNUNET_MESH_PeerControl)
/**
* ID of a tunnel controlled by this client.
*/
- MESH_TunnelID tunnel_id GNUNET_PACKED;
+ MESH_TunnelNumber tunnel_id GNUNET_PACKED;
/**
* Peer to connect/disconnect.
/**
* ID of a tunnel controlled by this client.
*/
- MESH_TunnelID tunnel_id GNUNET_PACKED;
+ MESH_TunnelNumber tunnel_id GNUNET_PACKED;
/**
* Type specification
/**
* ID of a tunnel controlled by this client.
*/
- MESH_TunnelID tunnel_id GNUNET_PACKED;
+ MESH_TunnelNumber tunnel_id GNUNET_PACKED;
/**
* Size of message we would like to transmit to this tunnel
/**
* ID of a tunnel controlled by this client.
*/
- MESH_TunnelID tunnel_id GNUNET_PACKED;
+ MESH_TunnelNumber tunnel_id GNUNET_PACKED;
/**
* Source or destination of the message (depending on direction).
/**
* ID of a tunnel controlled by this client.
*/
- MESH_TunnelID tunnel_id GNUNET_PACKED;
+ MESH_TunnelNumber tunnel_id GNUNET_PACKED;
/* uint8_t data[] */
};