aboutsummaryrefslogtreecommitdiff
path: root/src/testbed/testbed.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/testbed/testbed.h')
-rw-r--r--src/testbed/testbed.h272
1 files changed, 221 insertions, 51 deletions
diff --git a/src/testbed/testbed.h b/src/testbed/testbed.h
index b7b10ff..180464b 100644
--- a/src/testbed/testbed.h
+++ b/src/testbed/testbed.h
@@ -24,28 +24,28 @@
* @author Christian Grothoff
*/
-#ifndef NEW_TESTING_H
-#define NEW_TESTING_H
+#ifndef TESTBED_H
+#define TESTBED_H
#include "gnunet_util_lib.h"
-
+GNUNET_NETWORK_STRUCT_BEGIN
/**
* Initial message from a client to a testing control service.
*/
-struct GNUNET_TESTBED_Message
+ struct GNUNET_TESTBED_InitMessage
{
/**
- * Type is
+ * Type is GNUNET_MESSAGE_TYPE_TESTBED_INIT
*/
struct GNUNET_MessageHeader header;
/**
- * Host ID that the controller is either given
- * (if this is the dominating client communicating
- * via stdin) or assumed to have (for peer-connections
- * between controllers).
+ * Host ID that the controller is either given (if this is the
+ * dominating client) or assumed to have (for peer-connections
+ * between controllers). A controller must check that all
+ * connections make consistent claims...
*/
uint32_t host_id GNUNET_PACKED;
@@ -55,6 +55,7 @@ struct GNUNET_TESTBED_Message
*/
uint64_t event_mask GNUNET_PACKED;
+ /* Followed by 0-terminated hostname of the controller */
};
@@ -65,7 +66,7 @@ struct GNUNET_TESTBED_AddHostMessage
{
/**
- * Type is
+ * Type is GNUNET_MESSAGE_TYPE_TESTBED_ADD_HOST
*/
struct GNUNET_MessageHeader header;
@@ -96,12 +97,13 @@ struct GNUNET_TESTBED_AddHostMessage
/**
* Confirmation from the service that adding a host
* worked (or failed).
+ * FIXME: Where is this required?
*/
struct GNUNET_TESTBED_HostConfirmedMessage
{
/**
- * Type is
+ * Type is GNUNET_MESSAGE_TYPE_TESTBED_ADD_HOST_SUCCESS
*/
struct GNUNET_MessageHeader header;
@@ -110,9 +112,8 @@ struct GNUNET_TESTBED_HostConfirmedMessage
*/
uint32_t host_id GNUNET_PACKED;
- /* followed by the 0-terminated error message (on failure)
- (typical errors include failure to login and
- host-id already in use) */
+ /* followed by the 0-terminated error message (on failure)
+ * (typical errors include host-id already in use) */
};
@@ -125,7 +126,7 @@ struct GNUNET_TESTBED_ConfigureSharedServiceMessage
{
/**
- * Type is
+ * Type is GNUNET_MESSAGE_TYPE_TESTBED_SHARE_SERVICE
*/
struct GNUNET_MessageHeader header;
@@ -154,7 +155,7 @@ struct GNUNET_TESTBED_ControllerLinkMessage
{
/**
- * Type is
+ * Type is GNUNET_MESSAGE_TYPE_TESTBED_LINK_CONTROLLERS
*/
struct GNUNET_MessageHeader header;
@@ -164,35 +165,50 @@ struct GNUNET_TESTBED_ControllerLinkMessage
uint32_t delegated_host_id GNUNET_PACKED;
/**
+ * The id of the operation which created this message
+ */
+ uint64_t operation_id GNUNET_PACKED;
+
+ /**
* Which host is responsible for managing the delegation? NBO
*/
uint32_t slave_host_id GNUNET_PACKED;
/**
- * Is the receiving controller the master controller for
- * the slave host (and thus responsible for starting it?). NBO.
+ * The size of the uncompressed configuration
*/
- int32_t is_subordinate GNUNET_PACKED;
+ uint16_t config_size GNUNET_PACKED;
+
+ /**
+ * Set to 1 if the receiving controller is the master controller for
+ * the slave host (and thus responsible for starting it?). 0 if not
+ */
+ uint8_t is_subordinate;
/* followed by serialized slave configuration;
- gzip'ed configuration file in INI format */
+ * gzip'ed configuration file in INI format */
};
/**
- * Message sent from client to testing service to
+ * Message sent from client to testing service to
* create (configure, but not start) a peer.
*/
struct GNUNET_TESTBED_PeerCreateMessage
{
/**
- * Type is
+ * Type is GNUNET_MESSAGE_TYPE_TESTBED_CREATE_PEER
*/
struct GNUNET_MessageHeader header;
/**
+ * Unique operation id
+ */
+ uint64_t operation_id GNUNET_PACKED;
+
+ /**
* On which host should the peer be started?
*/
uint32_t host_id GNUNET_PACKED;
@@ -202,21 +218,26 @@ struct GNUNET_TESTBED_PeerCreateMessage
*/
uint32_t peer_id GNUNET_PACKED;
+ /**
+ * Size of the uncompressed configuration
+ */
+ uint32_t config_size GNUNET_PACKED;
+
/* followed by serialized peer configuration;
- gzip'ed configuration file in INI format */
-
+ * gzip'ed configuration file in INI format */
+
};
/**
- * Message sent from client to testing service to
+ * Message sent from client to testing service to
* reconfigure a (stopped) a peer.
*/
struct GNUNET_TESTBED_PeerReconfigureMessage
{
/**
- * Type is
+ * Type is GNUNET_MESSAGE_TYPDE_TESTBED_RECONFIGURE_PEER
*/
struct GNUNET_MessageHeader header;
@@ -231,8 +252,8 @@ struct GNUNET_TESTBED_PeerReconfigureMessage
uint64_t operation_id GNUNET_PACKED;
/* followed by serialized peer configuration;
- gzip'ed configuration file in INI format */
-
+ * gzip'ed configuration file in INI format */
+
};
@@ -244,7 +265,7 @@ struct GNUNET_TESTBED_PeerStartMessage
{
/**
- * Type is
+ * Type is GNUNET_MESSAGE_TYPE_TESTBED_START_PEER
*/
struct GNUNET_MessageHeader header;
@@ -269,7 +290,7 @@ struct GNUNET_TESTBED_PeerStopMessage
{
/**
- * Type is
+ * Type is GNUNET_MESSAGE_TYPE_TESTBED_STOP_PEER
*/
struct GNUNET_MessageHeader header;
@@ -294,7 +315,7 @@ struct GNUNET_TESTBED_PeerDestroyMessage
{
/**
- * Type is
+ * Type is GNUNET_MESSAGE_TYPE_TESTBED_DESTROY_PEER
*/
struct GNUNET_MessageHeader header;
@@ -319,7 +340,7 @@ struct GNUNET_TESTBED_ConfigureUnderlayLinkMessage
{
/**
- * Type is
+ * Type is GNUNET_MESSAGE_TYPE_TESTBED_CONFIGURE_UNDERLAY_LINK
*/
struct GNUNET_MessageHeader header;
@@ -356,7 +377,7 @@ struct GNUNET_TESTBED_OverlayConnectMessage
{
/**
- * Type is
+ * Type is GNUNET_MESSAGE_TYPE_TESTBED_OVERLAY_CONNECT
*/
struct GNUNET_MessageHeader header;
@@ -375,6 +396,45 @@ struct GNUNET_TESTBED_OverlayConnectMessage
*/
uint32_t peer2 GNUNET_PACKED;
+ /**
+ * The ID of the host which runs peer2
+ */
+ uint32_t peer2_host_id GNUNET_PACKED;
+
+};
+
+
+/**
+ * Message sent from host controller of a peer(A) to the host controller of
+ * another peer(B) to request B to connect to A
+ */
+struct GNUNET_TESTBED_RemoteOverlayConnectMessage
+{
+ /**
+ * Type is GNUNET_MESSAGE_TYPE_TESTBED_REMOTE_OVERLAY_CONNECT
+ */
+ struct GNUNET_MessageHeader header;
+
+ /**
+ * The Unique ID of B
+ */
+ uint32_t peer GNUNET_PACKED;
+
+ /**
+ * The Operation ID that is used to identify this operation
+ */
+ uint64_t operation_id GNUNET_PACKED;
+
+ /**
+ * Identity of A
+ */
+ struct GNUNET_PeerIdentity peer_identity;
+
+ /**
+ * To be followed by the HELLO message of A
+ */
+ struct GNUNET_MessageHeader hello[0];
+
};
@@ -385,7 +445,7 @@ struct GNUNET_TESTBED_PeerEventMessage
{
/**
- * Type is
+ * Type is GNUNET_MESSAGE_TYPE_TESTBED_PEER_EVENT
*/
struct GNUNET_MessageHeader header;
@@ -394,7 +454,7 @@ struct GNUNET_TESTBED_PeerEventMessage
* either GNUNET_TESTBED_ET_PEER_START or GNUNET_TESTBED_ET_PEER_STOP.
*/
int32_t event_type GNUNET_PACKED;
-
+
/**
* Host where the peer is running.
*/
@@ -420,16 +480,16 @@ struct GNUNET_TESTBED_ConnectionEventMessage
{
/**
- * Type is
+ * Type is GNUNET_MESSAGE_TYPE_TESTBED_PEER_CONNECT_EVENT
*/
struct GNUNET_MessageHeader header;
/**
* 'enum GNUNET_TESTBED_EventType' (in NBO);
- * either GNUNET_TESTBED_ET_PEER_CONNECT or GNUNET_TESTBED_ET_PEER_DISCONNECT.
+ * either GNUNET_TESTBED_ET_CONNECT or GNUNET_TESTBED_ET_DISCONNECT.
*/
int32_t event_type GNUNET_PACKED;
-
+
/**
* First peer.
*/
@@ -455,7 +515,7 @@ struct GNUNET_TESTBED_OperationFailureEventMessage
{
/**
- * Type is
+ * Type is GNUNET_MESSAGE_TYPE_TESTBED_OPERATION_FAIL_EVENT
*/
struct GNUNET_MessageHeader header;
@@ -464,7 +524,7 @@ struct GNUNET_TESTBED_OperationFailureEventMessage
* GNUNET_TESTBED_ET_OPERATION_FINISHED.
*/
int32_t event_type GNUNET_PACKED;
-
+
/**
* Operation ID of the operation that created this event.
*/
@@ -482,7 +542,7 @@ struct GNUNET_TESTBED_PeerCreateSuccessEventMessage
{
/**
- * Type is
+ * Type is GNUNET_MESSAGE_TYPE_TESTBED_CREATE_PEER_SUCCESS
*/
struct GNUNET_MessageHeader header;
@@ -490,19 +550,12 @@ struct GNUNET_TESTBED_PeerCreateSuccessEventMessage
* Peer identity of the peer that was created.
*/
uint32_t peer_id GNUNET_PACKED;
-
+
/**
* Operation ID of the operation that created this event.
*/
uint64_t operation_id GNUNET_PACKED;
- /**
- * Identity of the peer.
- */
- struct GNUNET_PeerIdentity peer_id;
-
- /* followed by gzip-compressed configuration of the peer */
-
};
@@ -515,7 +568,7 @@ struct GNUNET_TESTBED_GenericOperationSuccessEventMessage
{
/**
- * Type is
+ * Type is GNUNET_MESSAGE_TYPE_TESTBED_GENERIC_OPERATION_SUCCESS
*/
struct GNUNET_MessageHeader header;
@@ -524,7 +577,7 @@ struct GNUNET_TESTBED_GenericOperationSuccessEventMessage
* GNUNET_TESTBED_ET_OPERATION_FINISHED.
*/
int32_t event_type GNUNET_PACKED;
-
+
/**
* Operation ID of the operation that created this event.
*/
@@ -532,4 +585,121 @@ struct GNUNET_TESTBED_GenericOperationSuccessEventMessage
};
+
+/**
+ * Message sent from client to testing service to
+ * obtain the configuration of a peer.
+ */
+struct GNUNET_TESTBED_PeerGetConfigurationMessage
+{
+
+ /**
+ * Type is GNUNET_MESSAGE_TYPE_TESTBED_GET_PEER_CONFIGURATION
+ */
+ struct GNUNET_MessageHeader header;
+
+ /**
+ * Unique ID for the peer.
+ */
+ uint32_t peer_id GNUNET_PACKED;
+
+ /**
+ * Operation ID that is used to identify this operation.
+ */
+ uint64_t operation_id GNUNET_PACKED;
+
+};
+
+
+/**
+ * Peer configuration and identity reply from controller to a client.
+ */
+struct GNUNET_TESTBED_PeerConfigurationInformationMessage
+{
+
+ /**
+ * Type is GNUNET_MESSAGE_TYPE_TESTBED_PEER_CONFIGURATION
+ */
+ struct GNUNET_MessageHeader header;
+
+ /**
+ * The id of the peer relevant to this information
+ */
+ uint32_t peer_id GNUNET_PACKED;
+
+ /**
+ * Operation ID of the operation that created this event.
+ */
+ uint64_t operation_id GNUNET_PACKED;
+
+ /**
+ * Identity of the peer.
+ */
+ struct GNUNET_PeerIdentity peer_identity;
+
+ /**
+ * The size of configuration when uncompressed
+ */
+ uint16_t config_size GNUNET_PACKED;
+
+ /* followed by gzip-compressed configuration of the peer */
+
+};
+
+
+/**
+ * Message to request configuration of a slave controller
+ */
+struct GNUNET_TESTBED_SlaveGetConfigurationMessage
+{
+ /**
+ * Type is GNUNET_MESSAGE_TYPE_TESTBED_GET_SLAVE_CONFIGURATION
+ */
+ struct GNUNET_MessageHeader header;
+
+ /**
+ * The id of the slave host
+ */
+ uint32_t slave_id GNUNET_PACKED;
+
+ /**
+ * Operation ID
+ */
+ uint64_t operation_id GNUNET_PACKED;
+
+};
+
+
+/**
+ * Reply to GNUNET_MESSAGE_TYPE_TESTBED_GET_SLAVE_CONFIG message
+ */
+struct GNUNET_TESTBED_SlaveConfiguration
+{
+ /**
+ * Type is GNUNET_MESSAGE_TYPE_TESTBED_SLAVE_CONFIGURATION
+ */
+ struct GNUNET_MessageHeader header;
+
+ /**
+ * The id of the host where the slave is running
+ */
+ uint32_t slave_id GNUNET_PACKED;
+
+ /**
+ * Operation ID
+ */
+ uint64_t operation_id GNUNET_PACKED;
+
+ /**
+ * The size of the configuration when uncompressed
+ */
+ uint16_t config_size GNUNET_PACKED;
+
+ /* followed by gzip-compressed configuration of the peer */
+
+};
+
+
+GNUNET_NETWORK_STRUCT_END
#endif
+/* end of testbed.h */