X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fcommon%2Fsessiond-comm%2Frelayd.h;h=47f1d5cd738327290e91b27a91ee8b765522cde3;hp=74d5b1176be637601edac2e342d08a0fd56ae11f;hb=7fd975c523ee6e0bb45dcb13b7308b8d9d6406ba;hpb=a1ae2ea59428174575b7328b1062a6248d636b72 diff --git a/src/common/sessiond-comm/relayd.h b/src/common/sessiond-comm/relayd.h index 74d5b1176..47f1d5cd7 100644 --- a/src/common/sessiond-comm/relayd.h +++ b/src/common/sessiond-comm/relayd.h @@ -25,10 +25,18 @@ #include #include #include +#include +#include +#include #define RELAYD_VERSION_COMM_MAJOR VERSION_MAJOR #define RELAYD_VERSION_COMM_MINOR VERSION_MINOR +#define RELAYD_COMM_LTTNG_HOST_NAME_MAX_2_4 64 +#define RELAYD_COMM_LTTNG_NAME_MAX_2_4 255 +#define RELAYD_COMM_LTTNG_PATH_MAX 4096 +#define RELAYD_COMM_DEFAULT_STREAM_NAME_LEN 264 /* 256 + 8 */ + /* * lttng-relayd communication header. */ @@ -64,8 +72,8 @@ struct lttcomm_relayd_status_session { * Used to add a stream on the relay daemon. */ struct lttcomm_relayd_add_stream { - char channel_name[DEFAULT_STREAM_NAME_LEN]; - char pathname[LTTNG_PATH_MAX]; + char channel_name[RELAYD_COMM_DEFAULT_STREAM_NAME_LEN]; + char pathname[RELAYD_COMM_LTTNG_PATH_MAX]; } LTTNG_PACKED; /* @@ -73,12 +81,21 @@ struct lttcomm_relayd_add_stream { * Protocol version 2.2 */ struct lttcomm_relayd_add_stream_2_2 { - char channel_name[DEFAULT_STREAM_NAME_LEN]; - char pathname[LTTNG_PATH_MAX]; + char channel_name[RELAYD_COMM_DEFAULT_STREAM_NAME_LEN]; + char pathname[RELAYD_COMM_LTTNG_PATH_MAX]; uint64_t tracefile_size; 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. */ @@ -180,12 +197,28 @@ static inline size_t lttcomm_relayd_index_len(uint32_t major, uint32_t minor) * Create session in 2.4 adds additionnal parameters for live reading. */ struct lttcomm_relayd_create_session_2_4 { - char session_name[LTTNG_NAME_MAX]; - char hostname[LTTNG_HOST_NAME_MAX]; + char session_name[RELAYD_COMM_LTTNG_NAME_MAX_2_4]; + char hostname[RELAYD_COMM_LTTNG_HOST_NAME_MAX_2_4]; uint32_t live_timer; uint32_t snapshot; } LTTNG_PACKED; +struct lttcomm_relayd_create_session_2_11 { + uint32_t session_name_len; + uint32_t hostname_len; + uint32_t live_timer; + uint8_t snapshot; + /* 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 and hostname */ + char names[]; +} LTTNG_PACKED; + /* * Used to ask the relay to reset the metadata trace file (regeneration). * Send the new version of the metadata (starts at 0). @@ -195,10 +228,32 @@ struct lttcomm_relayd_reset_metadata { uint64_t version; } LTTNG_PACKED; -struct lttcomm_relayd_mkdir { - /* Includes trailing NULL */ - uint32_t length; - char path[]; +struct lttcomm_relayd_rotate_stream { + uint64_t stream_id; + /* Ignored for metadata streams. */ + uint64_t rotate_at_seq_num; + uint64_t new_chunk_id; + /* Includes trailing NULL. */ + uint32_t pathname_length; + /* Must be the last member of this structure. */ + char new_pathname[]; +} LTTNG_PACKED; + +struct lttcomm_relayd_create_trace_chunk { + uint64_t chunk_id; + /* Seconds since EPOCH. */ + uint64_t creation_timestamp; + /* Includes trailing NULL. */ + 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; #endif /* _RELAYD_COMM */