nexmon – Blame information for rev 1
?pathlinks?
Rev | Author | Line No. | Line |
---|---|---|---|
1 | office | 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 | * This program is free software; you can redistribute it and/or |
||
9 | * modify it under the terms of the GNU General Public License |
||
10 | * as published by the Free Software Foundation; either version 2 |
||
11 | * of the License, or (at your option) any later version. |
||
12 | * |
||
13 | * This program is distributed in the hope that it will be useful, |
||
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
||
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||
16 | * GNU General Public License for more details. |
||
17 | * |
||
18 | * You should have received a copy of the GNU General Public License |
||
19 | * along with this program; if not, write to the Free Software |
||
20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
||
21 | */ |
||
22 | |||
23 | #ifndef __TAP_RLC_GRAPH_H__ |
||
24 | #define __TAP_RLC_GRAPH_H__ |
||
25 | |||
26 | #ifdef __cplusplus |
||
27 | extern "C" { |
||
28 | #endif /* __cplusplus */ |
||
29 | |||
30 | #include <epan/epan.h> |
||
31 | #include <epan/packet.h> |
||
32 | #include <wiretap/wtap.h> |
||
33 | #include <cfile.h> |
||
34 | #include <epan/dissectors/packet-rlc-lte.h> |
||
35 | |||
36 | struct rlc_segment { |
||
37 | struct rlc_segment *next; |
||
38 | guint32 num; /* framenum */ |
||
39 | guint32 rel_secs; |
||
40 | guint32 rel_usecs; |
||
41 | guint32 abs_secs; |
||
42 | guint32 abs_usecs; |
||
43 | |||
44 | gboolean isControlPDU; |
||
45 | guint16 SN; |
||
46 | guint16 isResegmented; |
||
47 | guint16 ACKNo; |
||
48 | #define MAX_NACKs 128 |
||
49 | guint16 noOfNACKs; |
||
50 | guint16 NACKs[MAX_NACKs]; |
||
51 | guint16 pduLength; |
||
52 | |||
53 | guint16 ueid; |
||
54 | guint16 channelType; |
||
55 | guint16 channelId; |
||
56 | guint8 rlcMode; |
||
57 | guint8 direction; |
||
58 | }; |
||
59 | |||
60 | /* A collection of channels that may be found in one frame. Used when working out |
||
61 | which channel(s) are present in a frame. */ |
||
62 | typedef struct _th_t { |
||
63 | int num_hdrs; |
||
64 | #define MAX_SUPPORTED_CHANNELS 8 |
||
65 | rlc_lte_tap_info *rlchdrs[MAX_SUPPORTED_CHANNELS]; |
||
66 | } th_t; |
||
67 | |||
68 | struct rlc_graph { |
||
69 | /* List of segments to show */ |
||
70 | struct rlc_segment *segments; |
||
71 | struct rlc_segment *last_segment; |
||
72 | |||
73 | /* These are filled in with the channel/direction this graph is showing */ |
||
74 | gboolean channelSet; |
||
75 | guint16 ueid; |
||
76 | guint16 channelType; |
||
77 | guint16 channelId; |
||
78 | guint8 rlcMode; |
||
79 | guint8 direction; |
||
80 | |||
81 | /* Lists of elements to draw. N.B. GTK version only. */ |
||
82 | struct element_list *elists; |
||
83 | }; |
||
84 | |||
85 | gboolean rlc_graph_segment_list_get(capture_file *cf, struct rlc_graph *tg, gboolean stream_known, |
||
86 | char **err_string); |
||
87 | void rlc_graph_segment_list_free(struct rlc_graph * ); |
||
88 | |||
89 | |||
90 | |||
91 | int compare_rlc_headers(guint16 ueid1, guint16 channelType1, guint16 channelId1, guint8 rlcMode1, guint8 direction1, |
||
92 | guint16 ueid2, guint16 channelType2, guint16 channelId2, guint8 rlcMode2, guint8 direction2, |
||
93 | gboolean isControlFrame); |
||
94 | rlc_lte_tap_info *select_rlc_lte_session(capture_file *cf, struct rlc_segment *hdrs, |
||
95 | gchar **err_msg); |
||
96 | int rlc_lte_tap_for_graph_data(void *pct, packet_info *pinfo _U_, epan_dissect_t *edt _U_, const void *vip); |
||
97 | |||
98 | |||
99 | #ifdef __cplusplus |
||
100 | } |
||
101 | #endif /* __cplusplus */ |
||
102 | |||
103 | |||
104 | #endif |