Wireshark  2.9.0-477-g68ec514b
The Wireshark network protocol analyzer
tap-rlc-graph.h
1 /* tap-rlc-stream.h
2  * LTE RLC stream statistics
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 __TAP_RLC_GRAPH_H__
12 #define __TAP_RLC_GRAPH_H__
13 
14 #ifdef __cplusplus
15 extern "C" {
16 #endif /* __cplusplus */
17 
18 #include <epan/epan.h>
19 #include <epan/packet.h>
20 #include <cfile.h>
21 #include <epan/dissectors/packet-rlc-lte.h>
22 
23 struct rlc_segment {
24  struct rlc_segment *next;
25  guint32 num; /* framenum */
26  guint32 rel_secs;
27  guint32 rel_usecs;
28 
29  gboolean isControlPDU;
30  guint16 SN;
31  guint16 isResegmented;
32  guint16 ACKNo;
33  #define MAX_NACKs 128
34  guint16 noOfNACKs;
35  guint16 NACKs[MAX_NACKs];
36  guint16 pduLength;
37 
38  guint16 ueid;
39  guint16 channelType;
40  guint16 channelId;
41  guint8 rlcMode;
42  guint8 direction;
43 };
44 
45 /* A collection of channels that may be found in one frame. Used when working out
46  which channel(s) are present in a frame. */
47 typedef struct _th_t {
48  int num_hdrs;
49  #define MAX_SUPPORTED_CHANNELS 8
50  rlc_lte_tap_info *rlchdrs[MAX_SUPPORTED_CHANNELS];
51 } th_t;
52 
53 struct rlc_graph {
54  /* List of segments to show */
55  struct rlc_segment *segments;
56  struct rlc_segment *last_segment;
57 
58  /* These are filled in with the channel/direction this graph is showing */
59  gboolean channelSet;
60  guint16 ueid;
61  guint16 channelType;
62  guint16 channelId;
63  guint8 rlcMode;
64  guint8 direction;
65 };
66 
67 gboolean rlc_graph_segment_list_get(capture_file *cf, struct rlc_graph *tg, gboolean stream_known,
68  char **err_string);
69 void rlc_graph_segment_list_free(struct rlc_graph * );
70 
71 
72 
73 gboolean compare_rlc_headers(guint16 ueid1, guint16 channelType1, guint16 channelId1, guint8 rlcMode1, guint8 direction1,
74  guint16 ueid2, guint16 channelType2, guint16 channelId2, guint8 rlcMode2, guint8 direction2,
75  gboolean isControlFrame);
76 rlc_lte_tap_info *select_rlc_lte_session(capture_file *cf, struct rlc_segment *hdrs,
77  gchar **err_msg);
78 
79 
80 #ifdef __cplusplus
81 }
82 #endif /* __cplusplus */
83 
84 
85 #endif
Definition: tap-rlc-graph.h:47
Definition: packet-rlc-lte.h:65
Definition: tap-rlc-graph.h:53
Definition: packet-rlc-lte.c:385
Definition: cfile.h:58