X-Git-Url: http://git.efficios.com/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fcommon%2Fsessiond-comm%2Frelayd.h;h=492f3efae5ee722cc17bb3fb649028c1af06e136;hp=306e2e4dd7bcd8e25c6f4caf5b0440c07e952105;hb=8614e600d7a8dc653c473254fc302870d73f32ae;hpb=1c17e4246f09572fcf8a24413017d8b5574c6eba diff --git a/src/common/sessiond-comm/relayd.h b/src/common/sessiond-comm/relayd.h index 306e2e4dd..492f3efae 100644 --- a/src/common/sessiond-comm/relayd.h +++ b/src/common/sessiond-comm/relayd.h @@ -25,6 +25,9 @@ #include #include #include +#include +#include +#include #define RELAYD_VERSION_COMM_MAJOR VERSION_MAJOR #define RELAYD_VERSION_COMM_MINOR VERSION_MINOR @@ -84,6 +87,15 @@ struct lttcomm_relayd_add_stream_2_2 { uint64_t tracefile_count; } LTTNG_PACKED; +struct lttcomm_relayd_add_stream_2_11 { + uint32_t channel_name_len; + uint32_t pathname_len; + uint64_t tracefile_size; + uint64_t tracefile_count; + uint64_t trace_chunk_id; + char names[]; +} LTTNG_PACKED; + /* * Answer from an add stream command. */ @@ -191,6 +203,32 @@ struct lttcomm_relayd_create_session_2_4 { uint32_t snapshot; } LTTNG_PACKED; +struct lttcomm_relayd_create_session_2_11 { + uint32_t session_name_len; + uint32_t hostname_len; + /* Optional, set to 0 to indicate it is not user-specified. */ + uint32_t base_path_len; + uint32_t live_timer; + uint8_t snapshot; + uint8_t session_name_contains_creation_time; + /* Sessiond instance UUID */ + lttng_uuid sessiond_uuid; + /* Sessiond session id */ + uint64_t session_id; + /* Session creation time, in seconds since UNIX Epoch. */ + uint64_t creation_time; + LTTNG_OPTIONAL_COMM(uint64_t) LTTNG_PACKED current_chunk_id; + /* Contains the session_name, hostname, base_path. */ + char names[]; +} LTTNG_PACKED; + +struct lttcomm_relayd_create_session_reply_2_11 { + struct lttcomm_relayd_status_session generic; + /* Includes the '\0' terminator. */ + uint32_t output_path_length; + char output_path[]; +} LTTNG_PACKED; + /* * Used to ask the relay to reset the metadata trace file (regeneration). * Send the new version of the metadata (starts at 0). @@ -200,38 +238,80 @@ struct lttcomm_relayd_reset_metadata { uint64_t version; } LTTNG_PACKED; -struct lttcomm_relayd_rotate_stream { +struct lttcomm_relayd_stream_rotation_position { uint64_t stream_id; - /* Ignored for metadata streams. */ + /* + * Sequence number of the first packet belonging to the new + * "destination" trace chunk to which the stream is rotating. + * + * Ignored for metadata streams. + */ uint64_t rotate_at_seq_num; - uint64_t new_chunk_id; +} LTTNG_PACKED; + +struct lttcomm_relayd_rotate_streams { + uint32_t stream_count; + /* + * Streams can be rotated outside of a chunk but not be parented to + * a new chunk. + */ + LTTNG_OPTIONAL_COMM(uint64_t) new_chunk_id; + /* `stream_count` positions follow. */ + struct lttcomm_relayd_stream_rotation_position rotation_positions[]; +} LTTNG_PACKED; + +struct lttcomm_relayd_create_trace_chunk { + uint64_t chunk_id; + /* Seconds since EPOCH. */ + uint64_t creation_timestamp; /* Includes trailing NULL. */ - uint32_t pathname_length; - /* Must be the last member of this structure. */ - char new_pathname[]; + uint32_t override_name_length; + char override_name[]; } LTTNG_PACKED; -struct lttcomm_relayd_rotate_rename { - uint32_t old_path_length; - uint32_t new_path_length; - /* Concatenation of the old and new paths, separated by \0. */ - char paths[]; +struct lttcomm_relayd_close_trace_chunk { + uint64_t chunk_id; + /* Seconds since EPOCH. */ + uint64_t close_timestamp; + /* enum lttng_trace_chunk_command_type */ + LTTNG_OPTIONAL_COMM(uint32_t) LTTNG_PACKED close_command; } LTTNG_PACKED; -struct lttcomm_relayd_rotate_pending { +struct lttcomm_relayd_close_trace_chunk_reply { + struct lttcomm_relayd_generic_reply generic; + /* Includes trailing NULL. */ + uint32_t path_length; + char path[]; +} LTTNG_PACKED; + +struct lttcomm_relayd_trace_chunk_exists { uint64_t chunk_id; } LTTNG_PACKED; -struct lttcomm_relayd_rotate_pending_reply { +struct lttcomm_relayd_trace_chunk_exists_reply { struct lttcomm_relayd_generic_reply generic; - /* Valid values are [0, 1]. */ - uint8_t is_pending; + uint8_t trace_chunk_exists; } LTTNG_PACKED; -struct lttcomm_relayd_mkdir { - /* Includes trailing NULL */ - uint32_t length; - char path[]; +enum lttcomm_relayd_configuration_flag { + /* The relay daemon (2.12) is configured to allow clear operations. */ + LTTCOMM_RELAYD_CONFIGURATION_FLAG_CLEAR_ALLOWED = (1 << 0), +}; + +struct lttcomm_relayd_get_configuration { + uint64_t query_flags; +} LTTNG_PACKED; + +/* + * Used to return a relay daemon's configuration in reply to the + * RELAYD_GET_CONFIGURATION command. + */ +struct lttcomm_relayd_get_configuration_reply { + struct lttcomm_relayd_generic_reply generic; + /* Set of lttcomm_relayd_configuration_flag. */ + uint64_t relayd_configuration_flags; + /* Optional variable-length payload. */ + char payload[]; } LTTNG_PACKED; #endif /* _RELAYD_COMM */