1 /* conv_id.h
2  * conv_id   2011 Robert Bullen
3  *
4  * Wireshark - Network traffic analyzer
5  * By Gerald Combs <gerald@wireshark.org>
6  * Copyright 1998 Gerald Combs
7  *
8  * SPDX-License-Identifier: GPL-2.0-or-later
9  */
10 
11 #ifndef __CONV_ID_H__
12 #define __CONV_ID_H__
13 
14 /** conv_id_t is a type that can aid in conversation identification. When
15  *  included in a "conversation key", whatever that may be, in addition to the
16  *  typical { address, port, address, port } quadruple, it helps differentiate
17  *  in case the quadruple is not sufficiently unique. For example, it is not
18  *  uncommon to see a TCP quadruple reused these days, and employing a
19  *  conv_id_t field ensures that each instance of a reused TCP conversation is
20  *  tracked independently. Currently this type is used in both Wireshark's and
21  *  tshark's conversation tables implementations (they are different, hence
22  *  the need for a whole header file for this one silly type alias).
23  *
24  *  The "protocol" or "statistic" code responsible for instantiating the
25  *  "conversation key" is also responsible for assigning its conv_id_t, and
26  *  therefore its interpretation is specific to its assignor. For example, the
27  *  TCP conversations tables in Wireshark and tshark assign the value of
28  *  tcp.stream. If a conv_id_t field is not used, it should be assigned the
29  *  value CONV_ID_UNSET.
30  */
31 typedef guint32 conv_id_t;
32 #define CONV_ID_UNSET G_MAXUINT32
33 
34 #endif /* __CONV_ID_H__ */
35