X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Fmesh%2Fmesh.h;h=bbfad3225f56c9e26fd5ca8885b45e5b7cd246d8;hb=89c9cb7c978a7a79776d940cadf13740c315b632;hp=c40f08325cded7c5009ac2eaa2c9bb412ec95f97;hpb=4fbd46e8d0553d74ec06e9c6275d17fa73b3714c;p=oweals%2Fgnunet.git diff --git a/src/mesh/mesh.h b/src/mesh/mesh.h index c40f08325..bbfad3225 100644 --- a/src/mesh/mesh.h +++ b/src/mesh/mesh.h @@ -39,7 +39,7 @@ * * API CALL (GNUNET_MESH_*) MESSAGE USED * ------------------------ ------------ - * connect None (Header + [types]) + * connect GNUNET_MESH_ClientConnect * disconnect None (network level disconnect) * * tunnel_create GNUNET_MESH_TunnelMessage @@ -57,19 +57,49 @@ * 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. @@ -85,7 +115,7 @@ struct GNUNET_MESH_TunnelMessage { /** * ID of a tunnel controlled by this client. */ - MESH_TunnelID tunnel_id GNUNET_PACKED; + MESH_TunnelNumber tunnel_id GNUNET_PACKED; }; /** @@ -111,7 +141,7 @@ 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. @@ -132,7 +162,7 @@ struct GNUNET_MESH_ConnectPeerByType { /** * ID of a tunnel controlled by this client. */ - MESH_TunnelID tunnel_id GNUNET_PACKED; + MESH_TunnelNumber tunnel_id GNUNET_PACKED; /** * Type specification @@ -155,7 +185,7 @@ struct GNUNET_MESH_TransmitReady { /** * 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 @@ -178,7 +208,7 @@ struct GNUNET_MESH_Data { /** * 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). @@ -202,7 +232,7 @@ struct GNUNET_MESH_DataBroadcast { /** * ID of a tunnel controlled by this client. */ - MESH_TunnelID tunnel_id GNUNET_PACKED; + MESH_TunnelNumber tunnel_id GNUNET_PACKED; /* uint8_t data[] */ };