X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fcommon%2Fsessiond-comm%2Fsessiond-comm.h;h=ed982486bac0a8f2bfdbf988020bd8930608a4fb;hp=2450e79ec5bd78379941e9765de694a02df76ed8;hb=a551668883cde8249bb6431adace2bfbb9ada0cb;hpb=554831e798d0646f5d8c261b6207527c5f839222 diff --git a/src/common/sessiond-comm/sessiond-comm.h b/src/common/sessiond-comm/sessiond-comm.h index 2450e79ec..ed982486b 100644 --- a/src/common/sessiond-comm/sessiond-comm.h +++ b/src/common/sessiond-comm/sessiond-comm.h @@ -81,13 +81,14 @@ enum lttcomm_sessiond_command { LTTNG_ENABLE_CONSUMER = 20, LTTNG_SET_CONSUMER_URI = 21, LTTNG_ENABLE_EVENT_WITH_FILTER = 22, - LTTNG_HEALTH_CHECK = 23, + LTTNG_ENABLE_EVENT_WITH_EXCLUSION = 23, LTTNG_DATA_PENDING = 24, LTTNG_SNAPSHOT_ADD_OUTPUT = 25, LTTNG_SNAPSHOT_DEL_OUTPUT = 26, LTTNG_SNAPSHOT_LIST_OUTPUT = 27, LTTNG_SNAPSHOT_RECORD = 28, LTTNG_CREATE_SESSION_SNAPSHOT = 29, + LTTNG_CREATE_SESSION_LIVE = 30, }; enum lttcomm_relayd_command { @@ -102,6 +103,11 @@ enum lttcomm_relayd_command { RELAYD_QUIESCENT_CONTROL = 9, RELAYD_BEGIN_DATA_PENDING = 10, RELAYD_END_DATA_PENDING = 11, + RELAYD_ADD_INDEX = 12, + RELAYD_SEND_INDEX = 13, + RELAYD_CLOSE_INDEX = 14, + /* Live-reading commands. */ + RELAYD_LIST_SESSIONS = 15, }; /* @@ -224,6 +230,14 @@ struct lttcomm_session_msg { struct lttng_event event; /* Length of following bytecode for filter. */ uint32_t bytecode_len; + /* exclusion data */ + uint32_t exclusion_count; + /* + * After this structure, the following variable-length + * items are transmitted: + * - char exclusion_names[LTTNG_SYMBOL_NAME_LEN][exclusion_count] + * - unsigned char filter_bytecode[bytecode_len] + */ } LTTNG_PACKED enable; /* Create channel */ struct { @@ -255,6 +269,10 @@ struct lttcomm_session_msg { uint32_t wait; struct lttng_snapshot_output output; } LTTNG_PACKED snapshot_record; + struct { + uint32_t nb_uri; + unsigned int timer_interval; /* usec */ + } LTTNG_PACKED session_live; } u; } LTTNG_PACKED; @@ -290,15 +308,6 @@ struct lttcomm_lttng_output_id { uint32_t id; } LTTNG_PACKED; -struct lttcomm_health_msg { - uint32_t component; - uint32_t cmd; -} LTTNG_PACKED; - -struct lttcomm_health_data { - uint32_t ret_code; -} LTTNG_PACKED; - /* * lttcomm_consumer_msg is the message sent from sessiond to consumerd * to either add a channel, add a stream, update a stream, or stop @@ -324,6 +333,8 @@ struct lttcomm_consumer_msg { uint32_t tracefile_count; /* number of tracefiles */ /* If the channel's streams have to be monitored or not. */ uint32_t monitor; + /* timer to check the streams usage in live mode (usec). */ + unsigned int live_timer_interval; } LTTNG_PACKED channel; /* Only used by Kernel. */ struct { uint64_t stream_key; @@ -339,6 +350,8 @@ struct lttcomm_consumer_msg { struct lttcomm_relayd_sock sock; /* Tracing session id associated to the relayd. */ uint64_t session_id; + /* Relayd session id, only used with control socket. */ + uint64_t relayd_session_id; } LTTNG_PACKED relayd_sock; struct { uint64_t net_seq_idx; @@ -352,6 +365,7 @@ struct lttcomm_consumer_msg { int32_t overwrite; /* 1: overwrite, 0: discard */ uint32_t switch_timer_interval; /* usec */ uint32_t read_timer_interval; /* usec */ + unsigned int live_timer_interval; /* usec */ int32_t output; /* splice, mmap */ int32_t type; /* metadata or per_cpu */ uint64_t session_id; /* Tracing session id */ @@ -368,6 +382,13 @@ struct lttcomm_consumer_msg { uint64_t session_id_per_pid; /* Per-pid session ID. */ /* Tells the consumer if the stream should be or not monitored. */ uint32_t monitor; + /* + * For UST per UID buffers, this is the application UID of the + * channel. This can be different from the user UID requesting the + * channel creation and used for the rights on the stream file + * because the application can be in the tracing for instance. + */ + uint32_t ust_app_uid; } LTTNG_PACKED ask_channel; struct { uint64_t key; @@ -474,6 +495,9 @@ extern void lttcomm_copy_sock(struct lttcomm_sock *dst, extern struct lttcomm_relayd_sock *lttcomm_alloc_relayd_sock( struct lttng_uri *uri, uint32_t major, uint32_t minor); +extern int lttcomm_setsockopt_rcv_timeout(int sock, unsigned int msec); +extern int lttcomm_setsockopt_snd_timeout(int sock, unsigned int msec); + extern void lttcomm_init(void); /* Get network timeout, in milliseconds */ extern unsigned long lttcomm_get_network_timeout(void);