Allowed to destroy NULL paths
[oweals/gnunet.git] / src / mesh / mesh_protocol.h
index 0259210d1823f5210202ea25b59eb61c1de9285d..e16f32093a7735b3c6b5f1c114b77540b748deb1 100644 (file)
@@ -29,7 +29,8 @@
 #ifdef __cplusplus
 extern "C"
 {
-#if 0                           /* keep Emacsens' auto-indent happy */
+#if 0
+  /* keep Emacsens' auto-indent happy */
 }
 #endif
 #endif
@@ -49,19 +50,19 @@ struct GNUNET_MESH_ManipulatePath
      * Size: sizeof(struct GNUNET_MESH_ManipulatePath) +
      *       path_length * sizeof (struct GNUNET_PeerIdentity)
      */
-    struct GNUNET_MessageHeader header;
+  struct GNUNET_MessageHeader header;
 
     /**
      * Global id of the tunnel this path belongs to,
      * unique in conjunction with the origin.
      */
-    uint32_t                    tid GNUNET_PACKED;
+  uint32_t tid GNUNET_PACKED;
 
     /**
      * path_length structs defining the *whole* path from the origin [0] to the
      * final destination [path_length-1].
      */
-    /* struct GNUNET_PeerIdentity peers[path_length]; */
+  /* struct GNUNET_PeerIdentity peers[path_length]; */
 };
 
 /**
@@ -72,17 +73,17 @@ struct GNUNET_MESH_Multicast
     /**
      * Type: GNUNET_MESSAGE_TYPE_MESH_MULTICAST
      */
-    struct GNUNET_MessageHeader header;
+  struct GNUNET_MessageHeader header;
 
     /**
      * TID of the tunnel
      */
-    uint32_t                    tid GNUNET_PACKED;
+  uint32_t tid GNUNET_PACKED;
 
     /**
      * OID of the tunnel
      */
-    struct GNUNET_PeerIdentity  oid;
+  struct GNUNET_PeerIdentity oid;
 
     /**
      * Payload follows
@@ -98,22 +99,22 @@ struct GNUNET_MESH_Unicast
     /**
      * Type: GNUNET_MESSAGE_TYPE_MESH_UNICAST
      */
-    struct GNUNET_MessageHeader header;
+  struct GNUNET_MessageHeader header;
 
     /**
      * TID of the tunnel
      */
-    uint32_t                    tid GNUNET_PACKED;
+  uint32_t tid GNUNET_PACKED;
 
     /**
      * OID of the tunnel
      */
-    struct GNUNET_PeerIdentity  oid;
+  struct GNUNET_PeerIdentity oid;
 
     /**
      * Destination.
      */
-    struct GNUNET_PeerIdentity  destination;
+  struct GNUNET_PeerIdentity destination;
 
     /**
      * Payload follows
@@ -129,22 +130,22 @@ struct GNUNET_MESH_ToOrigin
     /**
      * Type: GNUNET_MESSAGE_TYPE_MESH_TO_ORIGIN
      */
-    struct GNUNET_MessageHeader header;
+  struct GNUNET_MessageHeader header;
 
     /**
      * TID of the tunnel
      */
-    uint32_t                    tid GNUNET_PACKED;
+  uint32_t tid GNUNET_PACKED;
 
     /**
      * OID of the tunnel
      */
-    struct GNUNET_PeerIdentity  oid;
+  struct GNUNET_PeerIdentity oid;
 
     /**
      * Sender of the message.
      */
-    struct GNUNET_PeerIdentity  sender;
+  struct GNUNET_PeerIdentity sender;
 
     /**
      * Payload follows
@@ -158,26 +159,84 @@ struct GNUNET_MESH_ToOrigin
 struct GNUNET_MESH_PathACK
 {
     /**
-     * Type: GNUNET_MESSAGE_TYPE_PATH_ACK
+     * Type: GNUNET_MESSAGE_TYPE_MESH_PATH_ACK
+     */
+  struct GNUNET_MessageHeader header;
+
+    /**
+     * TID of the tunnel
+     */
+  uint32_t tid GNUNET_PACKED;
+
+    /**
+     * OID of the tunnel
+     */
+  struct GNUNET_PeerIdentity oid;
+
+    /**
+     * ID of the endpoint
+     */
+  struct GNUNET_PeerIdentity peer_id;
+
+  /* TODO: signature */
+};
+
+
+/**
+ * Message for notifying a disconnection in a path
+ */
+struct GNUNET_MESH_PathBroken
+{
+    /**
+     * Type: GNUNET_MESSAGE_TYPE_MESH_PATH_BROKEN
      */
-    struct GNUNET_MessageHeader header;
+  struct GNUNET_MessageHeader header;
 
     /**
      * TID of the tunnel
      */
-    uint32_t                    tid GNUNET_PACKED;
+  uint32_t tid GNUNET_PACKED;
 
     /**
      * OID of the tunnel
      */
-    struct GNUNET_PeerIdentity  oid;
+  struct GNUNET_PeerIdentity oid;
 
     /**
      * ID of the endpoint
      */
-    struct GNUNET_PeerIdentity  peer_id;
+  struct GNUNET_PeerIdentity peer1;
+  
+    /**
+     * ID of the endpoint
+     */
+  struct GNUNET_PeerIdentity peer2;
+
+  /* TODO: signature */
+};
+
+
+/**
+ * Message to destroy a tunnel
+ */
+struct GNUNET_MESH_TunnelDestroy
+{
+    /**
+     * Type: GNUNET_MESSAGE_TYPE_MESH_TUNNEL_DESTROY
+     */
+  struct GNUNET_MessageHeader header;
+
+    /**
+     * TID of the tunnel
+     */
+  uint32_t tid GNUNET_PACKED;
+
+    /**
+     * OID of the tunnel
+     */
+  struct GNUNET_PeerIdentity oid;
 
-    /* TODO: signature */
+  /* TODO: signature */
 };
 
 
@@ -189,22 +248,22 @@ struct GNUNET_MESH_SpeedNotify
     /**
      * Type: GNUNET_MESSAGE_TYPE_DATA_SPEED_NOTIFY
      */
-    struct GNUNET_MessageHeader header;
+  struct GNUNET_MessageHeader header;
 
     /**
      * TID of the tunnel
      */
-    uint32_t                    tid GNUNET_PACKED;
+  uint32_t tid GNUNET_PACKED;
 
     /**
      * OID of the tunnel
      */
-    struct GNUNET_PeerIdentity  oid;
+  struct GNUNET_PeerIdentity oid;
 
     /**
      * Slowest link down the path (above minimum speed requirement).
      */
-    uint32_t                    speed_min;
+  uint32_t speed_min;
 
 };