LTTCOMM_CONSUMERD_ENOMEM, /* Consumer is out of memory */
LTTCOMM_CONSUMERD_ERROR_METADATA, /* Error with metadata. */
LTTCOMM_CONSUMERD_FATAL, /* Fatal error. */
+ LTTCOMM_CONSUMERD_RELAYD_FAIL, /* Error on remote relayd */
/* MUST be last element */
LTTCOMM_NR, /* Last element */
* per PID registry indexed by session id ignoring the other values.
*/
struct lttcomm_metadata_request_msg {
- unsigned int session_id; /* Tracing session id */
+ uint64_t session_id; /* Tracing session id */
+ uint64_t session_id_per_pid; /* Tracing session id for per-pid */
uint32_t bits_per_long; /* Consumer ABI */
uint32_t uid;
uint64_t key; /* Metadata channel key. */
const struct lttcomm_proto_ops *ops;
} LTTNG_PACKED;
+/*
+ * Relayd sock. Adds the protocol version to use for the communications with
+ * the relayd.
+ */
+struct lttcomm_relayd_sock {
+ struct lttcomm_sock sock;
+ uint32_t major;
+ uint32_t minor;
+} LTTNG_PACKED;
+
struct lttcomm_net_family {
int family;
int (*create) (struct lttcomm_sock *sock, int type, int proto);
/* Use splice or mmap to consume this fd */
enum lttng_event_output output;
int type; /* Per cpu or metadata. */
+ uint64_t tracefile_size; /* bytes */
+ uint32_t tracefile_count; /* number of tracefiles */
} LTTNG_PACKED channel; /* Only used by Kernel. */
struct {
uint64_t stream_key;
uint64_t net_index;
enum lttng_stream_type type;
/* Open socket to the relayd */
- struct lttcomm_sock sock;
+ struct lttcomm_relayd_sock sock;
/* Tracing session id associated to the relayd. */
uint64_t session_id;
} LTTNG_PACKED relayd_sock;
uint32_t gid; /* Group ID ot the session */
uint64_t relayd_id; /* Relayd id if apply. */
uint64_t key; /* Unique channel key. */
- unsigned char uuid[UUID_STR_LEN]; /* uuid for ust tracer. */
+ unsigned char uuid[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 */
+ uint64_t session_id_per_pid; /* Per-pid session ID. */
} LTTNG_PACKED ask_channel;
struct {
uint64_t key;
extern void lttcomm_copy_sock(struct lttcomm_sock *dst,
struct lttcomm_sock *src);
+/* Relayd socket object. */
+extern struct lttcomm_relayd_sock *lttcomm_alloc_relayd_sock(
+ struct lttng_uri *uri, uint32_t major, uint32_t minor);
+
#endif /* _LTTNG_SESSIOND_COMM_H */