Commit | Line | Data |
---|---|---|
00e2e675 | 1 | /* |
ab5be9fa | 2 | * Copyright (C) 2012 David Goulet <dgoulet@efficios.com> |
00e2e675 | 3 | * |
ab5be9fa | 4 | * SPDX-License-Identifier: GPL-2.0-only |
00e2e675 | 5 | * |
00e2e675 DG |
6 | */ |
7 | ||
8 | #ifndef _RELAYD_H | |
9 | #define _RELAYD_H | |
10 | ||
c35f9726 | 11 | #include <stdbool.h> |
8476ce3a | 12 | #include <unistd.h> |
00e2e675 | 13 | |
8476ce3a | 14 | #include <common/dynamic-array.hpp> |
c9e313bc SM |
15 | #include <common/sessiond-comm/relayd.hpp> |
16 | #include <common/sessiond-comm/sessiond-comm.hpp> | |
17 | #include <common/trace-chunk.hpp> | |
8476ce3a | 18 | #include <lttng/trace-format-descriptor-internal.hpp> |
c35f9726 JG |
19 | |
20 | struct relayd_stream_rotation_position { | |
21 | uint64_t stream_id; | |
22 | /* | |
0f83d1cc | 23 | * Packet sequence number of the first packet belonging to the new |
c35f9726 JG |
24 | * "destination" trace chunk to which the stream is rotating. |
25 | * | |
26 | * Ignored for metadata streams. | |
27 | */ | |
28 | uint64_t rotate_at_seq_num; | |
29 | }; | |
00e2e675 | 30 | |
6151a90f JD |
31 | int relayd_connect(struct lttcomm_relayd_sock *sock); |
32 | int relayd_close(struct lttcomm_relayd_sock *sock); | |
1e791a74 JG |
33 | int relayd_create_session(struct lttcomm_relayd_sock *rsock, |
34 | uint64_t *relayd_session_id, | |
8476ce3a JR |
35 | const char *session_name, |
36 | const char *hostname, | |
37 | const char *base_path, | |
38 | int session_live_timer, | |
39 | unsigned int snapshot, | |
40 | uint64_t sessiond_session_id, | |
328c2fe7 | 41 | const lttng_uuid& sessiond_uuid, |
db1da059 | 42 | const uint64_t *current_chunk_id, |
8476ce3a JR |
43 | time_t creation_time, |
44 | bool session_name_contains_creation_time, | |
45 | char *output_path, | |
46 | lttng::trace_format_descriptor& trace_format); | |
47 | int relayd_add_stream(struct lttcomm_relayd_sock *sock, | |
48 | const char *channel_name, | |
49 | const char *domain_name, | |
50 | const char *pathname, | |
51 | uint64_t *stream_id, | |
52 | uint64_t tracefile_size, | |
53 | uint64_t tracefile_count, | |
d2956687 | 54 | struct lttng_trace_chunk *trace_chunk); |
a4baae1b | 55 | int relayd_streams_sent(struct lttcomm_relayd_sock *rsock); |
6151a90f | 56 | int relayd_send_close_stream(struct lttcomm_relayd_sock *sock, uint64_t stream_id, |
173af62f | 57 | uint64_t last_net_seq_num); |
6151a90f JD |
58 | int relayd_version_check(struct lttcomm_relayd_sock *sock); |
59 | int relayd_start_data(struct lttcomm_relayd_sock *sock); | |
60 | int relayd_send_metadata(struct lttcomm_relayd_sock *sock, size_t len); | |
61 | int relayd_send_data_hdr(struct lttcomm_relayd_sock *sock, | |
00e2e675 | 62 | struct lttcomm_relayd_data_hdr *hdr, size_t size); |
6151a90f | 63 | int relayd_data_pending(struct lttcomm_relayd_sock *sock, uint64_t stream_id, |
c8f59ee5 | 64 | uint64_t last_net_seq_num); |
6151a90f | 65 | int relayd_quiescent_control(struct lttcomm_relayd_sock *sock, |
ad7051c0 | 66 | uint64_t metadata_stream_id); |
6151a90f JD |
67 | int relayd_begin_data_pending(struct lttcomm_relayd_sock *sock, uint64_t id); |
68 | int relayd_end_data_pending(struct lttcomm_relayd_sock *sock, uint64_t id, | |
f7079f67 | 69 | unsigned int *is_data_inflight); |
1c20f0e2 | 70 | int relayd_send_index(struct lttcomm_relayd_sock *rsock, |
50adc264 | 71 | struct ctf_packet_index *index, uint64_t relay_stream_id, |
1c20f0e2 | 72 | uint64_t net_seq_num); |
93ec662e JD |
73 | int relayd_reset_metadata(struct lttcomm_relayd_sock *rsock, |
74 | uint64_t stream_id, uint64_t version); | |
c35f9726 JG |
75 | /* `positions` is an array of `stream_count` relayd_stream_rotation_position. */ |
76 | int relayd_rotate_streams(struct lttcomm_relayd_sock *sock, | |
ebb29c10 | 77 | unsigned int stream_count, const uint64_t *new_chunk_id, |
c35f9726 | 78 | const struct relayd_stream_rotation_position *positions); |
e5add6d0 JG |
79 | int relayd_create_trace_chunk(struct lttcomm_relayd_sock *sock, |
80 | struct lttng_trace_chunk *chunk); | |
f4c5b127 JR |
81 | int relayd_close_trace_chunk( |
82 | struct lttcomm_relayd_sock *sock, struct lttng_trace_chunk *chunk, char *path); | |
83 | int relayd_trace_chunk_exists( | |
84 | struct lttcomm_relayd_sock *sock, uint64_t chunk_id, bool *chunk_exists); | |
85 | enum lttng_error_code relayd_get_configuration(struct lttcomm_relayd_sock *sock, | |
8614e600 | 86 | uint64_t query_flags, |
f4c5b127 JR |
87 | uint64_t& result_flags, |
88 | uint64_t *supported_trace_format); | |
00e2e675 DG |
89 | |
90 | #endif /* _RELAYD_H */ |