X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fcommon%2Fsessiond-comm%2Frelayd.h;h=3bdff8705f88b4a6b0aafeaa13be64b7b16fe102;hp=fd456a3a1502311423c18f1b27d887b9d107072d;hb=6fa5fe7cc78bea0b0bba154a0f911d3df530e18f;hpb=f39bd140151b845f44abd6a7079eaaf5cfed1c89 diff --git a/src/common/sessiond-comm/relayd.h b/src/common/sessiond-comm/relayd.h index fd456a3a1..3bdff8705 100644 --- a/src/common/sessiond-comm/relayd.h +++ b/src/common/sessiond-comm/relayd.h @@ -92,7 +92,7 @@ struct lttcomm_relayd_add_stream_2_11 { uint32_t pathname_len; uint64_t tracefile_size; uint64_t tracefile_count; - uint64_t trace_archive_id; + uint64_t trace_chunk_id; char names[]; } LTTNG_PACKED; @@ -206,14 +206,18 @@ struct lttcomm_relayd_create_session_2_4 { 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; /* Sessiond instance UUID */ lttng_uuid sessiond_uuid; /* Sessiond session id */ uint64_t session_id; - LTTNG_OPTIONAL_COMM(uint64_t) current_chunk_id; - /* Contains the session_name and hostname */ + /* 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; @@ -226,15 +230,52 @@ 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_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_trace_chunk_exists { + uint64_t chunk_id; +} LTTNG_PACKED; + +struct lttcomm_relayd_trace_chunk_exists_reply { + struct lttcomm_relayd_generic_reply generic; + uint8_t trace_chunk_exists; } LTTNG_PACKED; #endif /* _RELAYD_COMM */