guix-env: some update.
[oweals/gnunet.git] / src / testbed / testbed.h
index 64f52ad97e0037f6f3393a29f09878faa29c7c06..b6119e98f4374cf5d50b7ec43e304f7b3120cb61 100644 (file)
@@ -1,6 +1,6 @@
 /*
       This file is part of GNUnet
-      (C) 2008--2013 Christian Grothoff (and other contributing authors)
+      Copyright (C) 2008--2013 GNUnet e.V.
 
       GNUnet is free software; you can redistribute it and/or modify
       it under the terms of the GNU General Public License as published
@@ -14,8 +14,8 @@
 
       You should have received a copy of the GNU General Public License
       along with GNUnet; see the file COPYING.  If not, write to the
-      Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-      Boston, MA 02111-1307, USA.
+      Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+      Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -37,7 +37,7 @@ struct GNUNET_TESTBED_InitMessage
 {
 
   /**
-   * Type is GNUNET_MESSAGE_TYPE_TESTBED_INIT
+   * Type is #GNUNET_MESSAGE_TYPE_TESTBED_INIT
    */
   struct GNUNET_MessageHeader header;
 
@@ -66,7 +66,7 @@ struct GNUNET_TESTBED_AddHostMessage
 {
 
   /**
-   * Type is GNUNET_MESSAGE_TYPE_TESTBED_ADD_HOST
+   * Type is #GNUNET_MESSAGE_TYPE_TESTBED_ADD_HOST
    */
   struct GNUNET_MessageHeader header;
 
@@ -142,7 +142,7 @@ struct GNUNET_TESTBED_ControllerLinkRequest
 {
 
   /**
-   * Type is GNUNET_MESSAGE_TYPE_TESTBED_LINK_CONTROLLERS
+   * Type is #GNUNET_MESSAGE_TYPE_TESTBED_LINK_CONTROLLERS
    */
   struct GNUNET_MessageHeader header;
 
@@ -175,9 +175,9 @@ struct GNUNET_TESTBED_ControllerLinkRequest
  */
 struct GNUNET_TESTBED_ControllerLinkResponse
 {
-  
+
   /**
-   * Type is GNUNET_MESSAGE_TYPE_TESTBED_LINK_CONTROLLERS_RESULT
+   * Type is #GNUNET_MESSAGE_TYPE_TESTBED_LINK_CONTROLLERS_RESULT
    */
   struct GNUNET_MessageHeader header;
 
@@ -188,7 +188,7 @@ struct GNUNET_TESTBED_ControllerLinkResponse
   uint16_t config_size GNUNET_PACKED;
 
   /**
-   * Set to GNUNET_YES to signify SUCCESS; GNUNET_NO to signify failure
+   * Set to #GNUNET_YES to signify SUCCESS; #GNUNET_NO to signify failure
    */
   uint16_t success GNUNET_PACKED;
 
@@ -214,7 +214,7 @@ struct GNUNET_TESTBED_PeerCreateMessage
 {
 
   /**
-   * Type is GNUNET_MESSAGE_TYPE_TESTBED_CREATE_PEER
+   * Type is #GNUNET_MESSAGE_TYPE_TESTBED_CREATE_PEER
    */
   struct GNUNET_MessageHeader header;
 
@@ -453,7 +453,7 @@ struct GNUNET_TESTBED_RemoteOverlayConnectMessage
   /**
    * To be followed by the HELLO message of A
    */
-  struct GNUNET_MessageHeader hello[0]; 
+  struct GNUNET_MessageHeader hello[0];
   // FIXME: we usually do not use this gcc-hack as some
   // compilers / tools really get messed up by it...
 
@@ -502,13 +502,13 @@ struct GNUNET_TESTBED_ConnectionEventMessage
 {
 
   /**
-   * Type is GNUNET_MESSAGE_TYPE_TESTBED_PEER_CONNECT_EVENT
+   * Type is #GNUNET_MESSAGE_TYPE_TESTBED_PEER_CONNECT_EVENT
    */
   struct GNUNET_MessageHeader header;
 
   /**
    * 'enum GNUNET_TESTBED_EventType' (in NBO);
-   * either GNUNET_TESTBED_ET_CONNECT or GNUNET_TESTBED_ET_DISCONNECT.
+   * either #GNUNET_TESTBED_ET_CONNECT or #GNUNET_TESTBED_ET_DISCONNECT.
    */
   int32_t event_type GNUNET_PACKED;
 
@@ -537,13 +537,13 @@ struct GNUNET_TESTBED_OperationFailureEventMessage
 {
 
   /**
-   * Type is GNUNET_MESSAGE_TYPE_TESTBED_OPERATION_FAIL_EVENT
+   * Type is #GNUNET_MESSAGE_TYPE_TESTBED_OPERATION_FAIL_EVENT
    */
   struct GNUNET_MessageHeader header;
 
   /**
    * 'enum GNUNET_TESTBED_EventType' (in NBO);
-   * GNUNET_TESTBED_ET_OPERATION_FINISHED.
+   * #GNUNET_TESTBED_ET_OPERATION_FINISHED.
    */
   int32_t event_type GNUNET_PACKED;
 
@@ -564,7 +564,7 @@ struct GNUNET_TESTBED_PeerCreateSuccessEventMessage
 {
 
   /**
-   * Type is GNUNET_MESSAGE_TYPE_TESTBED_CREATE_PEER_SUCCESS
+   * Type is #GNUNET_MESSAGE_TYPE_TESTBED_CREATE_PEER_SUCCESS
    */
   struct GNUNET_MessageHeader header;
 
@@ -590,13 +590,13 @@ struct GNUNET_TESTBED_GenericOperationSuccessEventMessage
 {
 
   /**
-   * Type is GNUNET_MESSAGE_TYPE_TESTBED_GENERIC_OPERATION_SUCCESS
+   * Type is #GNUNET_MESSAGE_TYPE_TESTBED_GENERIC_OPERATION_SUCCESS
    */
   struct GNUNET_MessageHeader header;
 
   /**
    * 'enum GNUNET_TESTBED_EventType' (in NBO);
-   * GNUNET_TESTBED_ET_OPERATION_FINISHED.
+   * #GNUNET_TESTBED_ET_OPERATION_FINISHED.
    */
   int32_t event_type GNUNET_PACKED;
 
@@ -616,7 +616,7 @@ struct GNUNET_TESTBED_PeerGetConfigurationMessage
 {
 
   /**
-   * Type is GNUNET_MESSAGE_TYPE_TESTBED_GET_PEER_INFORMATION
+   * Type is #GNUNET_MESSAGE_TYPE_TESTBED_GET_PEER_INFORMATION
    */
   struct GNUNET_MessageHeader header;
 
@@ -640,7 +640,7 @@ struct GNUNET_TESTBED_PeerConfigurationInformationMessage
 {
 
   /**
-   * Type is GNUNET_MESSAGE_TYPE_TESTBED_PEER_INFORMATION
+   * Type is #GNUNET_MESSAGE_TYPE_TESTBED_PEER_INFORMATION
    */
   struct GNUNET_MessageHeader header;
 
@@ -675,7 +675,7 @@ struct GNUNET_TESTBED_PeerConfigurationInformationMessage
 struct GNUNET_TESTBED_SlaveGetConfigurationMessage
 {
   /**
-   * Type is GNUNET_MESSAGE_TYPE_TESTBED_GET_SLAVE_CONFIGURATION
+   * Type is #GNUNET_MESSAGE_TYPE_TESTBED_GET_SLAVE_CONFIGURATION
    */
   struct GNUNET_MessageHeader header;
 
@@ -693,12 +693,12 @@ struct GNUNET_TESTBED_SlaveGetConfigurationMessage
 
 
 /**
- * Reply to GNUNET_MESSAGE_TYPE_TESTBED_GET_SLAVE_CONFIG message
+ * Reply to #GNUNET_MESSAGE_TYPE_TESTBED_GET_SLAVE_CONFIGURATION message
  */
 struct GNUNET_TESTBED_SlaveConfiguration
 {
   /**
-   * Type is GNUNET_MESSAGE_TYPE_TESTBED_SLAVE_CONFIGURATION
+   * Type is #GNUNET_MESSAGE_TYPE_TESTBED_SLAVE_CONFIGURATION
    */
   struct GNUNET_MessageHeader header;
 
@@ -728,7 +728,7 @@ struct GNUNET_TESTBED_SlaveConfiguration
 struct GNUNET_TESTBED_ShutdownPeersMessage
 {
   /**
-   * Type is GNUNET_MESSAGE_TYPE_TESTBED_SHUTDOWN_PEERS
+   * Type is #GNUNET_MESSAGE_TYPE_TESTBED_SHUTDOWN_PEERS
    */
   struct GNUNET_MessageHeader header;
 
@@ -745,7 +745,7 @@ struct GNUNET_TESTBED_ShutdownPeersMessage
 struct GNUNET_TESTBED_ManagePeerServiceMessage
 {
   /**
-   * Type is GNUNET_MESSAGE_TYPE_TESTBED_SHUTDOWN_PEERS
+   * Type is #GNUNET_MESSAGE_TYPE_TESTBED_SHUTDOWN_PEERS
    */
   struct GNUNET_MessageHeader header;
 
@@ -763,13 +763,48 @@ struct GNUNET_TESTBED_ManagePeerServiceMessage
    * set this to 1 to start the service; 0 to stop the service
    */
   uint8_t start;
-  
+
   /**
    * The NULL-terminated name of the service to start/stop follows here
    */
 };
 
 
+/**
+ * Message to send underlay link model of a peer.  This message will be
+ * forwarded to the controller running the peer.
+ */
+struct GNUNET_TESTBED_UnderlayLinkModelMsg
+{
+  /**
+   * Type is #GNUNET_MESSAGE_TYPE_UNDERLAYLINKMODELMSG
+   */
+  struct GNUNET_MessageHeader header;
+
+  /**
+   * The number of peer entries contained in this message
+   */
+  uint32_t nentries GNUNET_PACKED;
+
+  /**
+   * The number of link properties contained in this message
+   */
+  uint32_t nprops GNUNET_PACKED;
+
+  /**
+   * Array of ids of peers to be in the blacklist/whitelist.  Each id is of type
+   * uint32_t.  Number of ids should be equal to nentries.
+   */
+
+  /**
+   * Array of link properties.  Each link property is to be arraged in a
+   * sequence of four integers of type uint32_t: peer_id, latency, loss and
+   * bandwidth.
+   */
+
+};
+
+
 /**************************************/
 /* Barriers IPC messages and protocol */
 /**************************************/
@@ -788,7 +823,7 @@ struct GNUNET_TESTBED_ManagePeerServiceMessage
 struct GNUNET_TESTBED_BarrierInit
 {
   /**
-   * Type is GNUNET_MESSAGE_TYPE_TESTBED_BARRIER_INIT
+   * Type is #GNUNET_MESSAGE_TYPE_TESTBED_BARRIER_INIT
    */
   struct GNUNET_MessageHeader header;
 
@@ -810,7 +845,7 @@ struct GNUNET_TESTBED_BarrierInit
 struct GNUNET_TESTBED_BarrierCancel
 {
   /**
-   * Type is GNUNET_MESSAGE_TYPE_TESTBED_BARRIER_CANCEL
+   * Type is #GNUNET_MESSAGE_TYPE_TESTBED_BARRIER_CANCEL
    */
   struct GNUNET_MessageHeader header;
 
@@ -827,10 +862,10 @@ struct GNUNET_TESTBED_BarrierCancel
 struct GNUNET_TESTBED_BarrierStatusMsg
 {
   /**
-   * Type is GNUNET_MESSAGE_TYPE_TESTBED_BARRIER_STATUS
+   * Type is #GNUNET_MESSAGE_TYPE_TESTBED_BARRIER_STATUS
    */
   struct GNUNET_MessageHeader header;
-  
+
   /**
    * status.  Use enumerated values of enum BarrierStatus
    */
@@ -840,10 +875,10 @@ struct GNUNET_TESTBED_BarrierStatusMsg
    * strlen of the barrier name
    */
   uint16_t name_len GNUNET_PACKED;
-  
+
   /**
-   * the barrier name (NULL terminated) concatenated with an error message (NULL
-   * terminated) if the status were to indicate an error
+   * the barrier name (0-terminated) concatenated with an error message
+   * (0-terminated) if the status were to indicate an error
    */
   char data[0];
 };
@@ -856,7 +891,7 @@ struct GNUNET_TESTBED_BarrierStatusMsg
 struct GNUNET_TESTBED_BarrierWait
 {
   /**
-   * Type is GNUNET_MESSAGE_TYPE_TESTBED_BARRIER_WAIT
+   * Type is #GNUNET_MESSAGE_TYPE_TESTBED_BARRIER_WAIT
    */
   struct GNUNET_MessageHeader header;