X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fcommon%2Fsessiond-comm%2Fsessiond-comm.h;h=cf50f0e44515573c81ce2d13b58ffd3711b6f579;hb=b01b201a053f492b09bde7e970d950ad636eb75c;hp=d673c6e19c2a0dc7ad591c18b8e3be851a088d72;hpb=d295668767ac8234e83984e1812d342d03293d88;p=lttng-tools.git diff --git a/src/common/sessiond-comm/sessiond-comm.h b/src/common/sessiond-comm/sessiond-comm.h index d673c6e19..cf50f0e44 100644 --- a/src/common/sessiond-comm/sessiond-comm.h +++ b/src/common/sessiond-comm/sessiond-comm.h @@ -35,7 +35,7 @@ #include #include #include -#include +#include #include #include @@ -107,7 +107,8 @@ enum lttcomm_sessiond_command { LTTNG_ROTATION_GET_INFO = 46, LTTNG_ROTATION_SET_SCHEDULE = 47, LTTNG_SESSION_LIST_ROTATION_SCHEDULES = 48, - LTTNG_CREATE_SESSION_EXT = 49 + LTTNG_CREATE_SESSION_EXT = 49, + LTTNG_CLEAR_SESSION = 50, }; enum lttcomm_relayd_command { @@ -131,14 +132,16 @@ enum lttcomm_relayd_command { RELAYD_STREAMS_SENT = 16, /* Ask the relay to reset the metadata trace file (2.8+) */ RELAYD_RESET_METADATA = 17, - /* Ask the relay to rotate a stream file (2.11+) */ - RELAYD_ROTATE_STREAM = 18, - /* Rename a chunk after the rotation is completed (2.11+) */ - RELAYD_ROTATE_RENAME = 19, - /* Check if a chunk has data pending (2.11+) */ - RELAYD_ROTATE_PENDING = 20, - /* Create a folder on the relayd FS (2.11+) */ - RELAYD_MKDIR = 21, + /* Ask the relay to rotate a set of stream files (2.11+) */ + RELAYD_ROTATE_STREAMS = 18, + /* Ask the relay to create a trace chunk (2.11+) */ + RELAYD_CREATE_TRACE_CHUNK = 19, + /* Ask the relay to close a trace chunk (2.11+) */ + RELAYD_CLOSE_TRACE_CHUNK = 20, + /* Ask the relay whether a trace chunk exists (2.11+) */ + RELAYD_TRACE_CHUNK_EXISTS = 21, + + /* Feature branch specific commands start at 10000. */ }; /* @@ -181,6 +184,7 @@ enum lttcomm_return_code { LTTCOMM_CONSUMERD_TRACE_CHUNK_EXISTS_LOCAL, /* Trace chunk exists on consumer daemon. */ LTTCOMM_CONSUMERD_TRACE_CHUNK_EXISTS_REMOTE,/* Trace chunk exists on relay daemon. */ LTTCOMM_CONSUMERD_UNKNOWN_TRACE_CHUNK, /* Unknown trace chunk. */ + LTTCOMM_CONSUMERD_RELAYD_CLEAR_DISALLOWED, /* Relayd does not accept clear command. */ /* MUST be last element */ LTTCOMM_NR, /* Last element */ @@ -445,6 +449,14 @@ struct lttcomm_event_extended_header { uint32_t userspace_probe_location_len; } LTTNG_PACKED; +/* + * Command header of the reply to an LTTNG_DESTROY_SESSION command. + */ +struct lttcomm_session_destroy_command_header { + /* enum lttng_session */ + int32_t rotation_state; +}; + /* * Data structure for the response from sessiond to the lttng client. */ @@ -472,7 +484,7 @@ struct lttcomm_consumer_msg { uint64_t channel_key; uint64_t session_id; /* ID of the session's current trace chunk. */ - LTTNG_OPTIONAL(uint64_t) LTTNG_PACKED chunk_id; + LTTNG_OPTIONAL_COMM(uint64_t) LTTNG_PACKED chunk_id; char pathname[PATH_MAX]; uint64_t relayd_id; /* nb_init_streams is the number of streams open initially. */ @@ -534,8 +546,8 @@ struct lttcomm_consumer_msg { uint64_t relayd_id; /* Relayd id if apply. */ uint64_t key; /* Unique channel key. */ /* ID of the session's current trace chunk. */ - LTTNG_OPTIONAL(uint64_t) LTTNG_PACKED chunk_id; - unsigned char uuid[UUID_LEN]; /* uuid for ust tracer. */ + LTTNG_OPTIONAL_COMM(uint64_t) LTTNG_PACKED chunk_id; + unsigned char uuid[LTTNG_UUID_LEN]; /* uuid for ust tracer. */ uint32_t chan_id; /* Channel ID on the tracer side. */ uint64_t tracefile_size; /* bytes */ uint32_t tracefile_count; /* number of tracefiles */ @@ -624,32 +636,37 @@ struct lttcomm_consumer_msg { * (relayd_id unset). * * `override_name` is left NULL (all-zeroes) if the - * chunk's name is not overriden. + * chunk's name is not overridden. */ - LTTNG_OPTIONAL(uint64_t) LTTNG_PACKED relayd_id; + LTTNG_OPTIONAL_COMM(uint64_t) LTTNG_PACKED relayd_id; char override_name[LTTNG_NAME_MAX]; uint64_t session_id; uint64_t chunk_id; uint64_t creation_timestamp; - struct { + LTTNG_OPTIONAL_COMM(struct { uint32_t uid; uint32_t gid; - } LTTNG_PACKED credentials; + } LTTNG_PACKED ) LTTNG_PACKED credentials; } LTTNG_PACKED create_trace_chunk; struct { - LTTNG_OPTIONAL(uint64_t) LTTNG_PACKED relayd_id; + LTTNG_OPTIONAL_COMM(uint64_t) LTTNG_PACKED relayd_id; uint64_t session_id; uint64_t chunk_id; uint64_t close_timestamp; + /* enum lttng_trace_chunk_command_type */ + LTTNG_OPTIONAL_COMM(uint32_t) LTTNG_PACKED close_command; } LTTNG_PACKED close_trace_chunk; struct { - LTTNG_OPTIONAL(uint64_t) LTTNG_PACKED relayd_id; + LTTNG_OPTIONAL_COMM(uint64_t) LTTNG_PACKED relayd_id; uint64_t session_id; uint64_t chunk_id; } LTTNG_PACKED trace_chunk_exists; struct { lttng_uuid sessiond_uuid; } LTTNG_PACKED init; + struct { + uint64_t key; + } LTTNG_PACKED clear_channel; } u; } LTTNG_PACKED; @@ -683,6 +700,12 @@ struct lttcomm_consumer_status_channel { unsigned int stream_count; } LTTNG_PACKED; +struct lttcomm_consumer_close_trace_chunk_reply { + enum lttcomm_return_code ret_code; + uint32_t path_length; + char path[]; +}; + #ifdef HAVE_LIBLTTNG_UST_CTL #include