#include <stdint.h>
#include <lttng/lttng.h>
+#include <common/defaults.h>
+
+#define RELAYD_VERSION_COMM_MAJOR 2
+#define RELAYD_VERSION_COMM_MINOR 1
/*
* lttng-relayd communication header.
/* Circuit ID not used for now so always ignored */
uint64_t circuit_id;
uint64_t stream_id; /* Stream ID known by the relayd */
- uint64_t net_seq_num; /* Network seq. number for UDP. */
+ uint64_t net_seq_num; /* Network sequence number, per stream. */
uint32_t data_size; /* data size following this header */
+ uint32_t padding_size; /* Size of 0 padding the data */
} __attribute__ ((__packed__));
-#if 0
-/*
- * Used to create a session between the relay and the sessiond.
- */
-struct lttcomm_relayd_create_session {
- char hostname[LTTNG_MAX_DNNAME];
- char session_name[NAME_MAX];
-};
-#endif
-
/*
* Used to add a stream on the relay daemon.
*/
struct lttcomm_relayd_add_stream {
- char channel_name[LTTNG_SYMBOL_NAME_LEN];
+ char channel_name[DEFAULT_STREAM_NAME_LEN];
char pathname[PATH_MAX];
} __attribute__ ((__packed__));
* Used to update synchronization information.
*/
struct lttcomm_relayd_update_sync_info {
- /* TODO: fill the structure */
+ /* TODO: fill the structure. Feature not implemented yet */
} __attribute__ ((__packed__));
/*
*/
struct lttcomm_relayd_metadata_payload {
uint64_t stream_id;
+ uint32_t padding_size;
char payload[];
} __attribute__ ((__packed__));
+/*
+ * Used to indicate that a specific stream id can now be closed.
+ */
+struct lttcomm_relayd_close_stream {
+ uint64_t stream_id;
+ uint64_t last_net_seq_num; /* sequence number of last packet */
+} __attribute__ ((__packed__));
+
+/*
+ * Used to test if for a given stream id the data is pending on the relayd side
+ * for reading.
+ */
+struct lttcomm_relayd_data_pending {
+ uint64_t stream_id;
+ uint64_t last_net_seq_num; /* Sequence number of the last packet */
+} __attribute__ ((__packed__));
+
#endif /* _RELAYD_COMM */