diff options
Diffstat (limited to 'src/testbed/testbed.h')
-rw-r--r-- | src/testbed/testbed.h | 272 |
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 */ |