X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fbin%2Flttng-relayd%2Fstream.h;h=8b03a997df518ad7253b5c15e2d5d1b41e0815a1;hp=b8d14ecfb8cb0d07b40553456bc0fae86a7d5f4e;hb=3a5328d20432d9782b24ddeaaa093ac6219d6e29;hpb=c35f9726a22f1d93e14589688d830efccda196f3 diff --git a/src/bin/lttng-relayd/stream.h b/src/bin/lttng-relayd/stream.h index b8d14ecfb..8b03a997d 100644 --- a/src/bin/lttng-relayd/stream.h +++ b/src/bin/lttng-relayd/stream.h @@ -2,22 +2,12 @@ #define _STREAM_H /* - * Copyright (C) 2013 - Julien Desfossez - * David Goulet - * 2015 - Mathieu Desnoyers + * Copyright (C) 2013 Julien Desfossez + * Copyright (C) 2013 David Goulet + * Copyright (C) 2015 Mathieu Desnoyers * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License, version 2 only, as - * published by the Free Software Foundation. + * SPDX-License-Identifier: GPL-2.0-only * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 51 - * Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include @@ -31,7 +21,6 @@ #include #include "session.h" -#include "stream-fd.h" #include "tracefile-array.h" struct lttcomm_relayd_index; @@ -44,10 +33,15 @@ struct relay_stream_rotation { bool data_rotated; bool index_rotated; /* - * Sequence number of the first packet of the new trace chunk to which - * the stream is rotating. + * Packet sequence number of the first packet of the new trace chunk to + * which the stream is rotating. + */ + uint64_t packet_seq_num; + /* + * Monotonically increasing previous network sequence number of first + * data packet of the new trace chunk to which the stream is rotating. */ - uint64_t seq_num; + uint64_t prev_data_net_seq; struct lttng_trace_chunk *next_trace_chunk; }; @@ -74,8 +68,7 @@ struct relay_stream { /* seq num to encounter before closing. */ uint64_t last_net_seq_num; - /* FD on which to write the stream data. */ - struct stream_fd *stream_fd; + struct fs_handle *file; /* index file on which to write the index data. */ struct lttng_index_file *index_file; @@ -111,6 +104,12 @@ struct relay_stream { */ uint64_t index_received_seqcount; + /* + * Packet sequence number of the last received packet index. + * Only populated when interacting with CTF_INDEX 1.1+. + */ + LTTNG_OPTIONAL(uint64_t) received_packet_seq_num; + /* * Tracefile array is an index of the stream trace files, * indexed by position. It allows keeping track of the oldest @@ -164,6 +163,8 @@ struct relay_stream { struct cds_list_head recv_node; /* Protected by session lock. */ bool published; + /* Notified viewer that no new metadata is available. */ + bool no_new_metadata_notified; /* * Node of stream within global stream hash table. */