projects
/
oweals
/
gnunet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
- add separate encryption enabled mesh to avoid breakage during developement
[oweals/gnunet.git]
/
src
/
mesh
/
mesh_protocol.h
diff --git
a/src/mesh/mesh_protocol.h
b/src/mesh/mesh_protocol.h
index 21f64d3eb75069b22ae8c68c9bcfe61b6fb867a0..2d708eb6220b11144c963eac1b525937a790b92e 100644
(file)
--- a/
src/mesh/mesh_protocol.h
+++ b/
src/mesh/mesh_protocol.h
@@
-42,12
+42,12
@@
extern "C"
GNUNET_NETWORK_STRUCT_BEGIN
/**
GNUNET_NETWORK_STRUCT_BEGIN
/**
- * Message for mesh path
management
+ * Message for mesh path
creation.
*/
*/
-struct GNUNET_MESH_
ManipulatePath
+struct GNUNET_MESH_
CreateTunnel
{
/**
{
/**
- * Type: GNUNET_MESSAGE_TYPE_MESH_PATH_
[CREATE|CHANGE|ADD|DEL]
+ * Type: GNUNET_MESSAGE_TYPE_MESH_PATH_
CREATE
*
* Size: sizeof(struct GNUNET_MESH_ManipulatePath) +
* path_length * sizeof (struct GNUNET_PeerIdentity)
*
* Size: sizeof(struct GNUNET_MESH_ManipulatePath) +
* path_length * sizeof (struct GNUNET_PeerIdentity)
@@
-61,19
+61,32
@@
struct GNUNET_MESH_ManipulatePath
uint32_t tid GNUNET_PACKED;
/**
uint32_t tid GNUNET_PACKED;
/**
+ * Tunnel options (GNUNET_MESH_OPTION_*).
+ */
+ uint32_t opt GNUNET_PACKED;
+
+ /**
+ * Destination port.
+ */
+ uint32_t port GNUNET_PACKED;
+
+ /**
+ * FIXME do not add the first hop
* path_length structs defining the *whole* path from the origin [0] to the
* final destination [path_length-1].
*/
/* struct GNUNET_PeerIdentity peers[path_length]; */
};
* path_length structs defining the *whole* path from the origin [0] to the
* final destination [path_length-1].
*/
/* struct GNUNET_PeerIdentity peers[path_length]; */
};
+
/**
/**
- * Message for mesh data traffic
to all tunnel targets
.
+ * Message for mesh data traffic.
*/
*/
-struct GNUNET_MESH_
Multicast
+struct GNUNET_MESH_
Data
{
/**
{
/**
- * Type: GNUNET_MESSAGE_TYPE_MESH_MULTICAST
+ * Type: GNUNET_MESSAGE_TYPE_MESH_UNICAST,
+ * GNUNET_MESSAGE_TYPE_MESH_TO_ORIGIN
*/
struct GNUNET_MessageHeader header;
*/
struct GNUNET_MessageHeader header;
@@
-88,7
+101,7
@@
struct GNUNET_MESH_Multicast
uint32_t ttl GNUNET_PACKED;
/**
uint32_t ttl GNUNET_PACKED;
/**
- *
Unique
ID of the packet
+ * ID of the packet
*/
uint32_t pid GNUNET_PACKED;
*/
uint32_t pid GNUNET_PACKED;
@@
-97,6
+110,11
@@
struct GNUNET_MESH_Multicast
*/
struct GNUNET_PeerIdentity oid;
*/
struct GNUNET_PeerIdentity oid;
+ /**
+ * Unique ID of the payload message
+ */
+ uint32_t mid GNUNET_PACKED;
+
/**
* Payload follows
*/
/**
* Payload follows
*/
@@
-104,53
+122,46
@@
struct GNUNET_MESH_Multicast
/**
/**
- * Message
for mesh data traffic to a particular destination from origin
.
+ * Message
to acknowledge end-to-end data
.
*/
*/
-struct GNUNET_MESH_
Unicast
+struct GNUNET_MESH_
DataACK
{
{
-
/**
- * Type: GNUNET_MESSAGE_TYPE_MESH_UNICAST
-
*/
+ /**
+ * Type: GNUNET_MESSAGE_TYPE_MESH_DATA_ACK
+ */
struct GNUNET_MessageHeader header;
struct GNUNET_MessageHeader header;
-
/**
-
* TID of the tunnel
-
*/
+ /**
+ * TID of the tunnel
+ */
uint32_t tid GNUNET_PACKED;
uint32_t tid GNUNET_PACKED;
- /**
- * Number of hops to live
- */
- uint32_t ttl GNUNET_PACKED;
-
- /**
- * Unique ID of the packet
- */
- uint32_t pid GNUNET_PACKED;
-
- /**
- * OID of the tunnel
- */
+ /**
+ * OID of the tunnel
+ */
struct GNUNET_PeerIdentity oid;
struct GNUNET_PeerIdentity oid;
- /**
- * Destination.
- */
- struct GNUNET_PeerIdentity destination;
-
- /**
- * Payload follows
- */
+ /**
+ * Bitfield of already-received newer messages
+ * pid + 1 @ LSB
+ * pid + 64 @ MSB
+ */
+ uint64_t futures GNUNET_PACKED;
+
+ /**
+ * Last message ID received.
+ */
+ uint32_t mid GNUNET_PACKED;
};
/**
};
/**
- * Message
for mesh data traffic from a tunnel participant to origin
.
+ * Message
to acknowledge mesh data traffic
.
*/
*/
-struct GNUNET_MESH_
ToOrigin
+struct GNUNET_MESH_
ACK
{
/**
{
/**
- * Type: GNUNET_MESSAGE_TYPE_MESH_
TO_ORIGIN
+ * Type: GNUNET_MESSAGE_TYPE_MESH_
ACK
*/
struct GNUNET_MessageHeader header;
*/
struct GNUNET_MessageHeader header;
@@
-165,44
+176,36
@@
struct GNUNET_MESH_ToOrigin
struct GNUNET_PeerIdentity oid;
/**
struct GNUNET_PeerIdentity oid;
/**
- * Sender of the message.
- */
- struct GNUNET_PeerIdentity sender;
-
- /**
- * Payload follows
+ * Maximum packet ID authorized.
*/
*/
+ uint32_t pid GNUNET_PACKED;
};
/**
};
/**
- * Message to
acknowledte mesh data traffic
.
+ * Message to
query a peer about its Flow Control status regarding a tunnel
.
*/
*/
-struct GNUNET_MESH_
ACK
+struct GNUNET_MESH_
Poll
{
{
-
/**
- * Type: GNUNET_MESSAGE_TYPE_MESH_ACK
-
*/
+ /**
+ * Type: GNUNET_MESSAGE_TYPE_MESH_POLL
+ */
struct GNUNET_MessageHeader header;
struct GNUNET_MessageHeader header;
-
/**
-
* TID of the tunnel
-
*/
+ /**
+ * TID of the tunnel
+ */
uint32_t tid GNUNET_PACKED;
uint32_t tid GNUNET_PACKED;
-
/**
-
* OID of the tunnel
-
*/
+ /**
+ * OID of the tunnel
+ */
struct GNUNET_PeerIdentity oid;
struct GNUNET_PeerIdentity oid;
- /**
- * Sender of the message.
- */
- struct GNUNET_PeerIdentity sender;
-
- /**
- * Payload follows
- */
+ /**
+ * Last packet sent.
+ */
+ uint32_t pid GNUNET_PACKED;
};
/**
};
/**
@@
-230,6
+233,11
@@
struct GNUNET_MESH_PathACK
*/
struct GNUNET_PeerIdentity peer_id;
*/
struct GNUNET_PeerIdentity peer_id;
+ /**
+ * Initial ACK value for payload.
+ */
+ uint32_t ack GNUNET_PACKED;
+
/* TODO: signature */
};
/* TODO: signature */
};
@@
-293,36
+301,27
@@
struct GNUNET_MESH_TunnelDestroy
/**
/**
- * Message
for mesh flow contro
l
+ * Message
to destroy a tunne
l
*/
*/
-struct GNUNET_MESH_
SpeedNotify
+struct GNUNET_MESH_
TunnelKeepAlive
{
{
-
/**
- * Type: GNUNET_MESSAGE_TYPE_DATA_SPEED_NOTIFY
-
*/
+ /**
+ * Type: GNUNET_MESSAGE_TYPE_MESH_PATH_(FWD|BCK)_KEEPALIVE
+ */
struct GNUNET_MessageHeader header;
struct GNUNET_MessageHeader header;
-
/**
-
* TID of the tunnel
-
*/
+ /**
+ * TID of the tunnel
+ */
uint32_t tid GNUNET_PACKED;
uint32_t tid GNUNET_PACKED;
-
/**
-
* OID of the tunnel
-
*/
+ /**
+ * OID of the tunnel
+ */
struct GNUNET_PeerIdentity oid;
struct GNUNET_PeerIdentity oid;
+};
- /**
- * Is the speed limited by the slowest peer?.
- */
- int16_t speed_min;
-
- /**
- * Is the buffering allowed?.
- */
- int16_t buffering;
-};
GNUNET_NETWORK_STRUCT_END
GNUNET_NETWORK_STRUCT_END