*
* API CALL (GNUNET_MESH_*) MESSAGE USED
* ------------------------ ------------
- * connect None (Header + [types])
+ * 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
*/
+/******************************************************************************/
+/************************** CONSTANTS ******************************/
+/******************************************************************************/
+
+#define GNUNET_MESH_LOCAL_TUNNEL_ID_MARK 0x80000000
+
+
+/******************************************************************************/
+/************************** MESSAGES ******************************/
+/******************************************************************************/
+
+/**
+ * Message for a client to register to the service
+ */
+struct GNUNET_MESH_ClientConnect {
+ /**
+ * Type: GNUNET_MESSAGE_TYPE_MESH_LOCAL_CONNECT
+ *
+ * Size: sizeof(struct GNUNET_MESH_ClientConnect) +
+ * sizeof(uint16_t) * types +
+ * sizeof(MESH_ApplicationType) * applications
+ */
+ struct GNUNET_MessageHeader header;
+ 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_TunnelID;
+typedef uint32_t MESH_TunnelNumber;
/**
* Message for a client to create and destroy tunnels.
/**
* ID of a tunnel controlled by this client.
*/
- MESH_TunnelID tunnel_id GNUNET_PACKED;
+ MESH_TunnelNumber tunnel_id GNUNET_PACKED;
};
/**
/**
* 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[] */
};