### Bug Summary

File: | builds/wireshark/wireshark/epan/dissectors/packet-sapdiag.c
Warning: | line 1917, column 127 Value stored to 'offset' is never read

### Annotated Source Code

Press '?' to see keyboard shortcuts

Show analyzer invocation
clang -cc1 -cc1 -triple x86_64-pc-linux-gnu -analyze -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name packet-sapdiag.c -analyzer-checker=core -analyzer-checker=apiModeling -analyzer-checker=unix -analyzer-checker=deadcode -analyzer-checker=security.insecureAPI.UncheckedReturn -analyzer-checker=security.insecureAPI.getpw -analyzer-checker=security.insecureAPI.gets -analyzer-checker=security.insecureAPI.mktemp -analyzer-checker=security.insecureAPI.mkstemp -analyzer-checker=security.insecureAPI.vfork -analyzer-checker=nullability.NullPassedToNonnull -analyzer-checker=nullability.NullReturnedFromNonnull -analyzer-output plist -w -setup-static-analyzer -mrelocation-model pic -pic-level 2 -fhalf-no-semantic-interposition -fno-delete-null-pointer-checks -mframe-pointer=all -relaxed-aliasing -fmath-errno -ffp-contract=on -fno-rounding-math -ffloat16-excess-precision=fast -fbfloat16-excess-precision=fast -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fdebug-compilation-dir=/builds/wireshark/wireshark/build -fcoverage-compilation-dir=/builds/wireshark/wireshark/build -resource-dir /usr/lib/llvm-22/lib/clang/22 -isystem /usr/include/glib-2.0 -isystem /usr/lib/x86_64-linux-gnu/glib-2.0/include -isystem /builds/wireshark/wireshark/epan/dissectors -isystem /builds/wireshark/wireshark/build/epan/dissectors -isystem /usr/include/mit-krb5 -isystem /usr/include/libxml2 -isystem /builds/wireshark/wireshark/epan -D CARES_NO_DEPRECATED -D G_DISABLE_DEPRECATED -D G_DISABLE_SINGLE_INCLUDES -D WS_BUILD_DLL -D WS_DEBUG -D WS_DEBUG_UTF_8 -I /builds/wireshark/wireshark/build -I /builds/wireshark/wireshark -I /builds/wireshark/wireshark/include -D _GLIBCXX_ASSERTIONS -internal-isystem /usr/lib/llvm-22/lib/clang/22/include -internal-isystem /usr/local/include -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/16/../../../../x86_64-linux-gnu/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -fmacro-prefix-map=/builds/wireshark/wireshark/= -fmacro-prefix-map=/builds/wireshark/wireshark/build/= -fmacro-prefix-map=../= -Wno-format-nonliteral -std=gnu17 -ferror-limit 19 -fvisibility=hidden -fwrapv -fwrapv-pointer -fstrict-flex-arrays=3 -stack-protector 2 -fstack-clash-protection -fcf-protection=full -fgnuc-version=4.2.1 -fskip-odr-check-in-gmf -fexceptions -fcolor-diagnostics -analyzer-output=html -faddrsig -fdwarf2-cfi-asm -o /builds/wireshark/wireshark/sbout/2026-08-18-100328-3660-1 -x c /builds/wireshark/wireshark/epan/dissectors/packet-sapdiag.c

Keyboard shortcuts:

- Use 'j/k' keys for keyboard navigation
- Use 'Shift+S' to show/hide relevant lines
- Use '?' to toggle this window

Close
Show only relevant lines Show control flow arrows

1 | /* packet-sapdiag.c
2 | * Routines for SAP Diag (SAP GUI Protocol) dissection
3 | * Copyright 2022, Martin Gallo <martin.gallo [AT] gmail.com>
4 | * Code contributed by SecureAuth Corp.
5 | *
6 | * Wireshark - Network traffic analyzer
7 | * By Gerald Combs <gerald@wireshark.org>
8 | * Copyright 1998 Gerald Combs
9 | *
10 | * SPDX-License-Identifier: GPL-2.0-or-later
11 | */
12 |
13 | #include <epan/packet.h>
14 | #include <epan/prefs.h>
15 | #include <epan/expert.h>
16 | #include <wsutil/wmem/wmem.h>
17 | #include <wsutil/saplzclzh.h>
18 |
19 | #include "packet-sapsnc.h"
20 |
21 | /* Define default ports. The right range should be 32NN, but as port numbers are
22 | * proprietary and not IANA assigned, we leave only the one corresponding to the
23 | * instance 00. In addition, 3298 it's generally used for the niping tool and 3299
24 | * is associated to SAP Router.
25 | */
26 | #define SAPDIAG_PORT_RANGE"3200" "3200"
27 | #define SAPDIAG_DEFAULT_MAX_UNCOMPRESSED_SIZE(16U * 1024U * 1024U) (16U * 1024U * 1024U)
28 |
29 | /* SAP Diag Header Communication Flag values */
30 | #define SAPDIAG_COM_FLAG_TERM_EOS0x01 0x01
31 | #define SAPDIAG_COM_FLAG_TERM_EOC0x02 0x02
32 | #define SAPDIAG_COM_FLAG_TERM_NOP0x04 0x04
33 | #define SAPDIAG_COM_FLAG_TERM_EOP0x08 0x08
34 | #define SAPDIAG_COM_FLAG_TERM_INI0x10 0x10
35 | #define SAPDIAG_COM_FLAG_TERM_CAS0x20 0x20
36 | #define SAPDIAG_COM_FLAG_TERM_NNM0x40 0x40
37 | #define SAPDIAG_COM_FLAG_TERM_GRA0x80 0x80
38 |
39 |
40 | /* SAP Diag Header Compression field values */
41 | static const value_string sapdiag_compress_vals[] = {
42 | { 0x0, "Compression switched off" },
43 | { 0x1, "Compression switched on" },
44 | { 0x2, "Data encrypted" },
45 | { 0x3, "Data encrypted wrap" },
46 | /* NULL */
47 | { 0x0, NULL((void*)0) }
48 | };
49 |
50 | /* SAP Diag Header Algorithm field values */
51 | static const value_string sapdiag_algorithm_vals[] = {
52 | { 0x10, "LZC" },
53 | { 0x12, "LZH" },
54 | /* NULL */
55 | { 0x00, NULL((void*)0) }
56 | };
57 |
58 | /* SAP Diag DP Header Request ID values */
59 | static const value_string sapdiag_dp_request_id_vals[] = {
60 | { 0x00000000, "NOWP" },
61 | { 0x00000001, "DIA" },
62 | { 0x00000002, "DUPD" },
63 | { 0x00000003, "DENQ" },
64 | { 0x00000004, "DBTC" },
65 | { 0x00000005, "DSPO" },
66 | { 0x00000006, "DUP2" },
67 | /* NULL */
68 | { 0x00000000, NULL((void*)0)}
69 | };
70 |
71 | /* SAP Diag DP Header Sender ID values */
72 | static const value_string sapdiag_dp_sender_id_vals[] = {
73 | { 0x01, "DISPATCHER" },
74 | { 0x02, "WORK_PROCESS" },
75 | { 0x04, "REMOTE_TERMINAL" },
76 | { 0x20, "APPC_TERMINAL" },
77 | { 0x40, "APPC_GATEWAY" },
78 | { 0xC8, "ICMAN" },
79 | { 0xC9, "IC_MONITOR" },
80 | { 0xCB, "LCOM" },
81 | /* NULL */
82 | { 0x00, NULL((void*)0)}
83 | };
84 |
85 | /* SAP Diag DP Header Action Type values */
86 | static const value_string sapdiag_dp_action_type_vals[] = {
87 | { 0x01, "SEND_TO_DP" },
88 | { 0x02, "SEND_TO_WP" },
89 | { 0x03, "SEND_TO_TM" },
90 | { 0x04, "SEND_TO_APPC" },
91 | { 0x05, "SEND_TO_APPCTM" },
92 | { 0x06, "SEND_MSG_TYPE" },
93 | { 0x07, "SEND_MSG_REQUES" },
94 | { 0x08, "SEND_MSG_REPLY" },
95 | { 0x09, "SEND_MSG_ONEWAY" },
96 | { 0x0A, "SEND_MSG_ADMIN" },
97 | { 0x0B, "WAKE_UP_WPS" },
98 | { 0x0C, "SET_TIMEOUT" },
99 | { 0x0D, "DEL_SCHEDULE" },
100 | { 0x0E, "ADD_SOFT_SERV" },
101 | { 0x0F, "SUB_SOFT_SERV" },
102 | { 0x10, "SHUTDOWN" },
103 | { 0x11, "SEND_TO_MSGSERV" },
104 | { 0x12, "SEND_TO_PLUGIN" },
105 | /* NULL */
106 | { 0x00, NULL((void*)0)}
107 | };
108 |
109 | /* SAP Diag DP Header Request Info Flag constants */
110 | #define SAPDIAG_DP_REQ_INFO_UNDEFINED0x00 0x00
111 | #define SAPDIAG_DP_REQ_INFO_LOGIN0x01 0x01
112 | #define SAPDIAG_DP_REQ_INFO_LOGOFF0x02 0x02
113 | #define SAPDIAG_DP_REQ_INFO_SHUTDOWN0x04 0x04
114 | #define SAPDIAG_DP_REQ_INFO_GRAPHIC_TM0x08 0x08
115 | #define SAPDIAG_DP_REQ_INFO_ALPHA_TM0x10 0x10
116 | #define SAPDIAG_DP_REQ_INFO_ERROR_FROM_APPC0x20 0x20
117 | #define SAPDIAG_DP_REQ_INFO_CANCELMODE0x40 0x40
118 | #define SAPDIAG_DP_REQ_INFO_MSG_WITH_REQ_BUF0x80 0x80
119 |
120 | #define SAPDIAG_DP_REQ_INFO_MSG_WITH_OH0x01 0x01
121 | #define SAPDIAG_DP_REQ_INFO_BUFFER_REFRESH0x02 0x02
122 | #define SAPDIAG_DP_REQ_INFO_BTC_SCHEDULER0x04 0x04
123 | #define SAPDIAG_DP_REQ_INFO_APPC_SERVER_DOWN0x08 0x08
124 | #define SAPDIAG_DP_REQ_INFO_MS_ERROR0x10 0x10
125 | #define SAPDIAG_DP_REQ_INFO_SET_SYSTEM_USER0x20 0x20
126 | #define SAPDIAG_DP_REQ_INFO_DP_CANT_HANDLE_REQ0x40 0x40
127 | #define SAPDIAG_DP_REQ_INFO_DP_AUTO_ABAP0x80 0x80
128 |
129 | #define SAPDIAG_DP_REQ_INFO_DP_APPL_SERV_INFO0x01 0x01
130 | #define SAPDIAG_DP_REQ_INFO_DP_ADMIN0x02 0x02
131 | #define SAPDIAG_DP_REQ_INFO_DP_SPOOL_ALRM0x04 0x04
132 | #define SAPDIAG_DP_REQ_INFO_DP_HAND_SHAKE0x08 0x08
133 | #define SAPDIAG_DP_REQ_INFO_DP_CANCEL_PRIV0x10 0x10
134 | #define SAPDIAG_DP_REQ_INFO_DP_RAISE_TIMEOUT0x20 0x20
135 | #define SAPDIAG_DP_REQ_INFO_DP_NEW_MODE0x40 0x40
136 | #define SAPDIAG_DP_REQ_INFO_DP_SOFT_CANCEL0x80 0x80
137 |
138 | #define SAPDIAG_DP_REQ_INFO_DP_TM_INPUT0x01 0x01
139 | #define SAPDIAG_DP_REQ_INFO_DP_TM_OUTPUT0x02 0x02
140 | #define SAPDIAG_DP_REQ_INFO_DP_ASYNC_RFC0x04 0x04
141 | #define SAPDIAG_DP_REQ_INFO_DP_ICM_EVENT0x08 0x08
142 | #define SAPDIAG_DP_REQ_INFO_DP_AUTO_TH0x10 0x10
143 | #define SAPDIAG_DP_REQ_INFO_DP_RFC_CANCEL0x20 0x20
144 | #define SAPDIAG_DP_REQ_INFO_DP_MS_ADM0x40 0x40
145 |
146 | /* SAP Diag Support Bits */
147 | #define SAPDIAG_SUPPORT_BIT_PROGRESS_INDICATOR0x01 0x01 /* 0 */
148 | #define SAPDIAG_SUPPORT_BIT_SAPGUI_LABELS0x02 0x02 /* 1 */
149 | #define SAPDIAG_SUPPORT_BIT_SAPGUI_DIAGVERSION0x04 0x04 /* 2 */
150 | #define SAPDIAG_SUPPORT_BIT_SAPGUI_SELECT_RECT0x08 0x08 /* 3 */
151 | #define SAPDIAG_SUPPORT_BIT_SAPGUI_SYMBOL_RIGHT0x10 0x10 /* 4 */
152 | #define SAPDIAG_SUPPORT_BIT_SAPGUI_FONT_METRIC0x20 0x20 /* 5 */
153 | #define SAPDIAG_SUPPORT_BIT_SAPGUI_COMPR_ENHANCED0x40 0x40 /* 6 */
154 | #define SAPDIAG_SUPPORT_BIT_SAPGUI_IMODE0x80 0x80 /* 7 */
155 |
156 | #define SAPDIAG_SUPPORT_BIT_SAPGUI_LONG_MESSAGE0x01 0x01 /* 8 */
157 | #define SAPDIAG_SUPPORT_BIT_SAPGUI_TABLE0x02 0x02 /* 9 */
158 | #define SAPDIAG_SUPPORT_BIT_SAPGUI_FOCUS_10x04 0x04 /* 10 */
159 | #define SAPDIAG_SUPPORT_BIT_SAPGUI_PUSHBUTTON_10x08 0x08 /* 11 */
160 | #define SAPDIAG_SUPPORT_BIT_UPPERCASE0x10 0x10 /* 12 */
161 | #define SAPDIAG_SUPPORT_BIT_SAPGUI_TABPROPERTY0x20 0x20 /* 13 */
162 | #define SAPDIAG_SUPPORT_BIT_INPUT_UPPERCASE0x40 0x40 /* 14 */
163 | #define SAPDIAG_SUPPORT_BIT_RFC_DIALOG0x80 0x80 /* 15 */
164 |
165 | #define SAPDIAG_SUPPORT_BIT_LIST_HOTSPOT0x01 0x01 /* 16 */
166 | #define SAPDIAG_SUPPORT_BIT_FKEY_TABLE0x02 0x02 /* 17 */
167 | #define SAPDIAG_SUPPORT_BIT_MENU_SHORTCUT0x04 0x04 /* 18 */
168 | #define SAPDIAG_SUPPORT_BIT_STOP_TRANS0x08 0x08 /* 19 */
169 | #define SAPDIAG_SUPPORT_BIT_FULL_MENU0x10 0x10 /* 20 */
170 | #define SAPDIAG_SUPPORT_BIT_OBJECT_NAMES0x20 0x20 /* 21 */
171 | #define SAPDIAG_SUPPORT_BIT_CONTAINER_TYPE0x40 0x40 /* 22 */
172 | #define SAPDIAG_SUPPORT_BIT_DLGH_FLAGS0x80 0x80 /* 23 */
173 |
174 | #define SAPDIAG_SUPPORT_BIT_APPL_MNU0x01 0x01 /* 24 */
175 | #define SAPDIAG_SUPPORT_BIT_MESSAGE_INFO0x02 0x02 /* 25 */
176 | #define SAPDIAG_SUPPORT_BIT_MESDUM_FLAG10x04 0x04 /* 26 */
177 | #define SAPDIAG_SUPPORT_BIT_TABSEL_ATTRIB0x08 0x08 /* 27 */
178 | #define SAPDIAG_SUPPORT_BIT_GUIAPI0x10 0x10 /* 28 */
179 | #define SAPDIAG_SUPPORT_BIT_NOGRAPH0x20 0x20 /* 29 */
180 | #define SAPDIAG_SUPPORT_BIT_NOMESSAGES0x40 0x40 /* 30 */
181 | #define SAPDIAG_SUPPORT_BIT_NORABAX0x80 0x80 /* 31 */
182 |
183 | #define SAPDIAG_SUPPORT_BIT_NOSYSMSG0x01 0x01 /* 32 */
184 | #define SAPDIAG_SUPPORT_BIT_NOSAPSCRIPT0x02 0x02 /* 33 */
185 | #define SAPDIAG_SUPPORT_BIT_NORFC0x04 0x04 /* 34 */
186 | #define SAPDIAG_SUPPORT_BIT_NEW_BSD_JUSTRIGHT0x08 0x08 /* 35 */
187 | #define SAPDIAG_SUPPORT_BIT_MESSAGE_VARS0x10 0x10 /* 36 */
188 | #define SAPDIAG_SUPPORT_BIT_OCX_SUPPORT0x20 0x20 /* 37 */
189 | #define SAPDIAG_SUPPORT_BIT_SCROLL_INFOS0x40 0x40 /* 38 */
190 | #define SAPDIAG_SUPPORT_BIT_TABLE_SIZE_OK0x80 0x80 /* 39 */
191 |
192 | #define SAPDIAG_SUPPORT_BIT_MESSAGE_INFO20x01 0x01 /* 40 */
193 | #define SAPDIAG_SUPPORT_BIT_VARINFO_OKCODE0x02 0x02 /* 41 */
194 | #define SAPDIAG_SUPPORT_BIT_CURR_TCODE0x04 0x04 /* 42 */
195 | #define SAPDIAG_SUPPORT_BIT_CONN_WSIZE0x08 0x08 /* 43 */
196 | #define SAPDIAG_SUPPORT_BIT_PUSHBUTTON_20x10 0x10 /* 44 */
197 | #define SAPDIAG_SUPPORT_BIT_TABSTRIP0x20 0x20 /* 45 */
198 | #define SAPDIAG_SUPPORT_BIT_UNKNOWN_10x40 0x40 /* 46 (Unknown support bit) */
199 | #define SAPDIAG_SUPPORT_BIT_TABSCROLL_INFOS0x80 0x80 /* 47 */
200 |
201 | #define SAPDIAG_SUPPORT_BIT_TABLE_FIELD_NAMES0x01 0x01 /* 48 */
202 | #define SAPDIAG_SUPPORT_BIT_NEW_MODE_REQUEST0x02 0x02 /* 49 */
203 | #define SAPDIAG_SUPPORT_BIT_RFCBLOB_DIAG_PARSER0x04 0x04 /* 50 */
204 | #define SAPDIAG_SUPPORT_BIT_MULTI_LOGIN_USER0x08 0x08 /* 51 */
205 | #define SAPDIAG_SUPPORT_BIT_CONTROL_CONTAINER0x10 0x10 /* 52 */
206 | #define SAPDIAG_SUPPORT_BIT_APPTOOLBAR_FIXED0x20 0x20 /* 53 */
207 | #define SAPDIAG_SUPPORT_BIT_R3INFO_USER_CHECKED0x40 0x40 /* 54 */
208 | #define SAPDIAG_SUPPORT_BIT_NEED_STDDYNPRO0x80 0x80 /* 55 */
209 |
210 | #define SAPDIAG_SUPPORT_BIT_TYPE_SERVER0x01 0x01 /* 56 */
211 | #define SAPDIAG_SUPPORT_BIT_COMBOBOX0x02 0x02 /* 57 */
212 | #define SAPDIAG_SUPPORT_BIT_INPUT_REQUIRED0x04 0x04 /* 58 */
213 | #define SAPDIAG_SUPPORT_BIT_ISO_LANGUAGE0x08 0x08 /* 59 */
214 | #define SAPDIAG_SUPPORT_BIT_COMBOBOX_TABLE0x10 0x10 /* 60 */
215 | #define SAPDIAG_SUPPORT_BIT_R3INFO_FLAGS0x20 0x20 /* 61 */
216 | #define SAPDIAG_SUPPORT_BIT_CHECKRADIO_EVENTS0x40 0x40 /* 62 */
217 | #define SAPDIAG_SUPPORT_BIT_R3INFO_USERID0x80 0x80 /* 63 */
218 |
219 | #define SAPDIAG_SUPPORT_BIT_R3INFO_ROLLCOUNT0x01 0x01 /* 64 */
220 | #define SAPDIAG_SUPPORT_BIT_USER_TURNTIME20x02 0x02 /* 65 */
221 | #define SAPDIAG_SUPPORT_BIT_NUM_FIELD0x04 0x04 /* 66 */
222 | #define SAPDIAG_SUPPORT_BIT_WIN160x08 0x08 /* 67 */
223 | #define SAPDIAG_SUPPORT_BIT_CONTEXT_MENU0x10 0x10 /* 68 */
224 | #define SAPDIAG_SUPPORT_BIT_SCROLLABLE_TABSTRIP_PAGE0x20 0x20 /* 69 */
225 | #define SAPDIAG_SUPPORT_BIT_EVENT_DESCRIPTION0x40 0x40 /* 70 */
226 | #define SAPDIAG_SUPPORT_BIT_LABEL_OWNER0x80 0x80 /* 71 */
227 |
228 | #define SAPDIAG_SUPPORT_BIT_CLICKABLE_FIELD0x01 0x01 /* 72 */
229 | #define SAPDIAG_SUPPORT_BIT_PROPERTY_BAG0x02 0x02 /* 73 */
230 | #define SAPDIAG_SUPPORT_BIT_UNUSED_10x04 0x04 /* 74 */
231 | #define SAPDIAG_SUPPORT_BIT_TABLE_ROW_REFERENCES_20x08 0x08 /* 75 */
232 | #define SAPDIAG_SUPPORT_BIT_PROPFONT_VALID0x10 0x10 /* 76 */
233 | #define SAPDIAG_SUPPORT_BIT_VARINFO_CONTAINER0x20 0x20 /* 77 */
234 | #define SAPDIAG_SUPPORT_BIT_R3INFO_IMODEUUID0x40 0x40 /* 78 */
235 | #define SAPDIAG_SUPPORT_BIT_NOTGUI0x80 0x80 /* 79 */
236 |
237 | #define SAPDIAG_SUPPORT_BIT_WAN0x01 0x01 /* 80 */
238 | #define SAPDIAG_SUPPORT_BIT_XML_BLOBS0x02 0x02 /* 81 */
239 | #define SAPDIAG_SUPPORT_BIT_RFC_QUEUE0x04 0x04 /* 82 */
240 | #define SAPDIAG_SUPPORT_BIT_RFC_COMPRESS0x08 0x08 /* 83 */
241 | #define SAPDIAG_SUPPORT_BIT_JAVA_BEANS0x10 0x10 /* 84 */
242 | #define SAPDIAG_SUPPORT_BIT_DPLOADONDEMAND0x20 0x20 /* 85 */
243 | #define SAPDIAG_SUPPORT_BIT_CTL_PROPCACHE0x40 0x40 /* 86 */
244 | #define SAPDIAG_SUPPORT_BIT_ENJOY_IMODEUUID0x80 0x80 /* 87 */
245 |
246 | #define SAPDIAG_SUPPORT_BIT_RFC_ASYNC_BLOB0x01 0x01 /* 88 */
247 | #define SAPDIAG_SUPPORT_BIT_KEEP_SCROLLPOS0x02 0x02 /* 89 */
248 | #define SAPDIAG_SUPPORT_BIT_UNUSED_20x04 0x04 /* 90 */
249 | #define SAPDIAG_SUPPORT_BIT_UNUSED_30x08 0x08 /* 91 */
250 | #define SAPDIAG_SUPPORT_BIT_XML_PROPERTIES0x10 0x10 /* 92 */
251 | #define SAPDIAG_SUPPORT_BIT_UNUSED_40x20 0x20 /* 93 */
252 | #define SAPDIAG_SUPPORT_BIT_HEX_FIELD0x40 0x40 /* 94 */
253 | #define SAPDIAG_SUPPORT_BIT_HAS_CACHE0x80 0x80 /* 95 */
254 |
255 | #define SAPDIAG_SUPPORT_BIT_XML_PROP_TABLE0x01 0x01 /* 96 */
256 | #define SAPDIAG_SUPPORT_BIT_UNUSED_50x02 0x02 /* 97 */
257 | #define SAPDIAG_SUPPORT_BIT_ENJOY_IMODEUUID20x04 0x04 /* 98 */
258 | #define SAPDIAG_SUPPORT_BIT_ITS0x08 0x08 /* 99 */
259 | #define SAPDIAG_SUPPORT_BIT_NO_EASYACCESS0x10 0x10 /* 100 */
260 | #define SAPDIAG_SUPPORT_BIT_PROPERTYPUMP0x20 0x20 /* 101 */
261 | #define SAPDIAG_SUPPORT_BIT_COOKIE0x40 0x40 /* 102 */
262 | #define SAPDIAG_SUPPORT_BIT_UNUSED_60x80 0x80 /* 103 */
263 |
264 | #define SAPDIAG_SUPPORT_BIT_SUPPBIT_AREA_SIZE0x01 0x01 /* 104 */
265 | #define SAPDIAG_SUPPORT_BIT_DPLOADONDEMAND_WRITE0x02 0x02 /* 105 */
266 | #define SAPDIAG_SUPPORT_BIT_CONTROL_FOCUS0x04 0x04 /* 106 */
267 | #define SAPDIAG_SUPPORT_BIT_ENTRY_HISTORY0x08 0x08 /* 107 */
268 | #define SAPDIAG_SUPPORT_BIT_AUTO_CODEPAGE0x10 0x10 /* 108 */
269 | #define SAPDIAG_SUPPORT_BIT_CACHED_VSETS0x20 0x20 /* 109 */
270 | #define SAPDIAG_SUPPORT_BIT_EMERGENCY_REPAIR0x40 0x40 /* 110 */
271 | #define SAPDIAG_SUPPORT_BIT_AREA2FRONT0x80 0x80 /* 111 */
272 |
273 | #define SAPDIAG_SUPPORT_BIT_SCROLLBAR_WIDTH0x01 0x01 /* 112 */
274 | #define SAPDIAG_SUPPORT_BIT_AUTORESIZE0x02 0x02 /* 113 */
275 | #define SAPDIAG_SUPPORT_BIT_EDIT_VARLEN0x04 0x04 /* 114 */
276 | #define SAPDIAG_SUPPORT_BIT_WORKPLACE0x08 0x08 /* 115 */
277 | #define SAPDIAG_SUPPORT_BIT_PRINTDATA0x10 0x10 /* 116 */
278 | #define SAPDIAG_SUPPORT_BIT_UNKNOWN_20x20 0x20 /* 117 (Unknown support bit) */
279 | #define SAPDIAG_SUPPORT_BIT_SINGLE_SESSION0x40 0x40 /* 118 */
280 | #define SAPDIAG_SUPPORT_BIT_NOTIFY_NEWMODE0x80 0x80 /* 119 */
281 |
282 | #define SAPDIAG_SUPPORT_BIT_TOOLBAR_HEIGHT0x01 0x01 /* 120 */
283 | #define SAPDIAG_SUPPORT_BIT_XMLPROP_CONTAINER0x02 0x02 /* 121 */
284 | #define SAPDIAG_SUPPORT_BIT_XMLPROP_DYNPRO0x04 0x04 /* 122 */
285 | #define SAPDIAG_SUPPORT_BIT_DP_HTTP_PUT0x08 0x08 /* 123 */
286 | #define SAPDIAG_SUPPORT_BIT_DYNAMIC_PASSPORT0x10 0x10 /* 124 */
287 | #define SAPDIAG_SUPPORT_BIT_WEBGUI0x20 0x20 /* 125 */
288 | #define SAPDIAG_SUPPORT_BIT_WEBGUI_HELPMODE0x40 0x40 /* 126 */
289 | #define SAPDIAG_SUPPORT_BIT_CONTROL_FOCUS_ON_LIST0x80 0x80 /* 127 */
290 |
291 | #define SAPDIAG_SUPPORT_BIT_CBU_RBUDUMMY_20x01 0x01 /* 128 */
292 | #define SAPDIAG_SUPPORT_BIT_EOKDUMMY_10x02 0x02 /* 129 */
293 | #define SAPDIAG_SUPPORT_BIT_GUI_USER_SCRIPTING0x04 0x04 /* 130 */
294 | #define SAPDIAG_SUPPORT_BIT_SLC0x08 0x08 /* 131 */
295 | #define SAPDIAG_SUPPORT_BIT_ACCESSIBILITY0x10 0x10 /* 132 */
296 | #define SAPDIAG_SUPPORT_BIT_ECATT0x20 0x20 /* 133 */
297 | #define SAPDIAG_SUPPORT_BIT_ENJOY_IMODEUUID30x40 0x40 /* 134 */
298 | #define SAPDIAG_SUPPORT_BIT_ENABLE_UTF80x80 0x80 /* 135 */
299 |
300 | #define SAPDIAG_SUPPORT_BIT_R3INFO_AUTOLOGOUT_TIME0x01 0x01 /* 136 */
301 | #define SAPDIAG_SUPPORT_BIT_VARINFO_ICON_TITLE_LIST0x02 0x02 /* 137 */
302 | #define SAPDIAG_SUPPORT_BIT_ENABLE_UTF16BE0x04 0x04 /* 138 */
303 | #define SAPDIAG_SUPPORT_BIT_ENABLE_UTF16LE0x08 0x08 /* 139 */
304 | #define SAPDIAG_SUPPORT_BIT_R3INFO_CODEPAGE_APP0x10 0x10 /* 140 */
305 | #define SAPDIAG_SUPPORT_BIT_ENABLE_APPL40x20 0x20 /* 141 */
306 | #define SAPDIAG_SUPPORT_BIT_GUIPATCHLEVEL0x40 0x40 /* 142 */
307 | #define SAPDIAG_SUPPORT_BIT_CBURBU_NEW_STATE0x80 0x80 /* 143 */
308 |
309 | #define SAPDIAG_SUPPORT_BIT_BINARY_EVENTID0x01 0x01 /* 144 */
310 | #define SAPDIAG_SUPPORT_BIT_GUI_THEME0x02 0x02 /* 145 */
311 | #define SAPDIAG_SUPPORT_BIT_TOP_WINDOW0x04 0x04 /* 146 */
312 | #define SAPDIAG_SUPPORT_BIT_EVENT_DESCRIPTION_10x08 0x08 /* 147 */
313 | #define SAPDIAG_SUPPORT_BIT_SPLITTER0x10 0x10 /* 148 */
314 | #define SAPDIAG_SUPPORT_BIT_VALUE_4_HISTORY0x20 0x20 /* 149 */
315 | #define SAPDIAG_SUPPORT_BIT_ACC_LIST0x40 0x40 /* 150 */
316 | #define SAPDIAG_SUPPORT_BIT_GUI_USER_SCRIPTING_INFO0x80 0x80 /* 151 */
317 |
318 | #define SAPDIAG_SUPPORT_BIT_TEXTEDIT_STREAM0x01 0x01 /* 152 */
319 | #define SAPDIAG_SUPPORT_BIT_DYNT_NOFOCUS0x02 0x02 /* 153 */
320 | #define SAPDIAG_SUPPORT_BIT_R3INFO_CODEPAGE_APP_10x04 0x04 /* 154 */
321 | #define SAPDIAG_SUPPORT_BIT_FRAME_10x08 0x08 /* 155 */
322 | #define SAPDIAG_SUPPORT_BIT_TICKET4GUI0x10 0x10 /* 156 */
323 | #define SAPDIAG_SUPPORT_BIT_ACC_LIST_PROPS0x20 0x20 /* 157 */
324 | #define SAPDIAG_SUPPORT_BIT_TABSEL_ATTRIB_INPUT0x40 0x40 /* 158 */
325 | #define SAPDIAG_SUPPORT_BIT_DEFAULT_TOOLTIP0x80 0x80 /* 159 */
326 |
327 | #define SAPDIAG_SUPPORT_BIT_XML_PROP_TABLE_20x01 0x01 /* 160 */
328 | #define SAPDIAG_SUPPORT_BIT_CBU_RBUDUMMY_30x02 0x02 /* 161 */
329 | #define SAPDIAG_SUPPORT_BIT_CELLINFO0x04 0x04 /* 162 */
330 | #define SAPDIAG_SUPPORT_BIT_CONTROL_FOCUS_ON_LIST_20x08 0x08 /* 163 */
331 | #define SAPDIAG_SUPPORT_BIT_TABLE_COLUMNWIDTH_INPUT0x10 0x10 /* 164 */
332 | #define SAPDIAG_SUPPORT_BIT_ITS_PLUGIN0x20 0x20 /* 165 */
333 | #define SAPDIAG_SUPPORT_BIT_OBJECT_NAMES_4_LOGIN_PROCESS0x40 0x40 /* 166 */
334 | #define SAPDIAG_SUPPORT_BIT_RFC_SERVER_4_GUI0x80 0x80 /* 167 */
335 |
336 | #define SAPDIAG_SUPPORT_BIT_R3INFO_FLAGS_20x01 0x01 /* 168 */
337 | #define SAPDIAG_SUPPORT_BIT_RCUI0x02 0x02 /* 169 */
338 | #define SAPDIAG_SUPPORT_BIT_MENUENTRY_WITH_FCODE0x04 0x04 /* 170 */
339 | #define SAPDIAG_SUPPORT_BIT_WEBSAPCONSOLE0x08 0x08 /* 171 */
340 | #define SAPDIAG_SUPPORT_BIT_R3INFO_KERNEL_VERSION0x10 0x10 /* 172 */
341 | #define SAPDIAG_SUPPORT_BIT_VARINFO_CONTAINER_LOOP0x20 0x20 /* 173 */
342 | #define SAPDIAG_SUPPORT_BIT_EOKDUMMY_20x40 0x40 /* 174 */
343 | #define SAPDIAG_SUPPORT_BIT_MESSAGE_INFO30x80 0x80 /* 175 */
344 |
345 | #define SAPDIAG_SUPPORT_BIT_SBA20x01 0x01 /* 176 */
346 | #define SAPDIAG_SUPPORT_BIT_MAINAREA_SIZE0x02 0x02 /* 177 */
347 | #define SAPDIAG_SUPPORT_BIT_GUIPATCHLEVEL_20x04 0x04 /* 178 */
348 | #define SAPDIAG_SUPPORT_BIT_DISPLAY_SIZE0x08 0x08 /* 179 */
349 | #define SAPDIAG_SUPPORT_BIT_GUI_PACKET0x10 0x10 /* 180 */
350 | #define SAPDIAG_SUPPORT_BIT_DIALOG_STEP_NUMBER0x20 0x20 /* 181 */
351 | #define SAPDIAG_SUPPORT_BIT_TC_KEEP_SCROLL_POSITION0x40 0x40 /* 182 */
352 | #define SAPDIAG_SUPPORT_BIT_MESSAGE_SERVICE_REQUEST0x80 0x80 /* 183 */
353 |
354 | #define SAPDIAG_SUPPORT_BIT_DYNT_FOCUS_FRAME0x01 0x01 /* 184 */
355 | #define SAPDIAG_SUPPORT_BIT_MAX_STRING_LEN0x02 0x02 /* 185 */
356 | #define SAPDIAG_SUPPORT_BIT_VARINFO_CONTAINER_10x04 0x04 /* 186 */
357 | #define SAPDIAG_SUPPORT_BIT_STD_TOOLBAR_ITEMS0x08 0x08 /* 187 */
358 | #define SAPDIAG_SUPPORT_BIT_XMLPROP_LIST_DYNPRO0x10 0x10 /* 188 */
359 | #define SAPDIAG_SUPPORT_BIT_TRACE_GUI_CONNECT0x20 0x20 /* 189 */
360 | #define SAPDIAG_SUPPORT_BIT_LIST_FULLWIDTH0x40 0x40 /* 190 */
361 | #define SAPDIAG_SUPPORT_BIT_ALLWAYS_SEND_CLIENT0x80 0x80 /* 191 */
362 |
363 | #define SAPDIAG_SUPPORT_BIT_UNKNOWN_30x01 0x01 /* 192 (Unknown support bit) */
364 | #define SAPDIAG_SUPPORT_BIT_GUI_SIGNATURE_COLOR0x02 0x02 /* 193 */
365 | #define SAPDIAG_SUPPORT_BIT_MAX_WSIZE0x04 0x04 /* 194 */
366 | #define SAPDIAG_SUPPORT_BIT_SAP_PERSONAS0x08 0x08 /* 195 */
367 | #define SAPDIAG_SUPPORT_BIT_IDA_ALV0x10 0x10 /* 196 */
368 | #define SAPDIAG_SUPPORT_BIT_IDA_ALV_FRAGMENTS0x20 0x20 /* 197 */
369 | #define SAPDIAG_SUPPORT_BIT_AMC0x40 0x40 /* 198 */
370 | #define SAPDIAG_SUPPORT_BIT_EXTMODE_FONT_METRIC0x80 0x80 /* 199 */
371 |
372 | #define SAPDIAG_SUPPORT_BIT_GROUPBOX0x01 0x01 /* 200 */
373 | #define SAPDIAG_SUPPORT_BIT_AGI_ID_TS_BUTTON0x02 0x02 /* 201 */
374 | #define SAPDIAG_SUPPORT_BIT_NO_FOCUS_ON_LIST0x04 0x04 /* 202 */
375 | #define SAPDIAG_SUPPORT_BIT_FIORI_MODE0x08 0x08 /* 203 */
376 | #define SAPDIAG_SUPPORT_BIT_CONNECT_CHECK_DONE0x10 0x10 /* 204 */
377 | #define SAPDIAG_SUPPORT_BIT_MSGINFO_WITH_CODEPAGE0x20 0x20 /* 205 */
378 | #define SAPDIAG_SUPPORT_BIT_AGI_ID0x40 0x40 /* 206 */
379 | #define SAPDIAG_SUPPORT_BIT_AGI_ID_TC0x80 0x80 /* 207 */
380 |
381 | #define SAPDIAG_SUPPORT_BIT_FIORI_TOOLBARS0x01 0x01 /* 208 */
382 | #define SAPDIAG_SUPPORT_BIT_OBJECT_NAMES_ENFORCE0x02 0x02 /* 209 */
383 | #define SAPDIAG_SUPPORT_BIT_MESDUMMY_FLAGS_2_30x04 0x04 /* 210 */
384 | #define SAPDIAG_SUPPORT_BIT_NWBC0x08 0x08 /* 211 */
385 | #define SAPDIAG_SUPPORT_BIT_CONTAINER_LIST0x10 0x10 /* 212 */
386 | #define SAPDIAG_SUPPORT_BIT_GUI_SYSTEM_COLOR0x20 0x20 /* 213 */
387 | #define SAPDIAG_SUPPORT_BIT_GROUPBOX_WITHOUT_BOTTOMLINE0x40 0x40 /* 214 */
388 |
389 |
390 | /* SAP Diag DP Header New Status values */
391 | static const value_string sapdiag_dp_new_stat_vals[] = {
392 | { 0x00, "NO_CHANGE" },
393 | { 0x01, "WP_SLOT_FREE" },
394 | { 0x02, "WP_WAIT" },
395 | { 0x04, "WP_RUN" },
396 | { 0x08, "WP_HOLD" },
397 | { 0x10, "WP_KILLED" },
398 | { 0x20, "WP_SHUTDOWN" },
399 | { 0x40, "WP_RESTRICTED" },
400 | { 0x80, "WP_NEW" },
401 | /* NULL */
402 | { 0x00, NULL((void*)0) }
403 | };
404 |
405 | /* SAP Diag Item Type values */
406 | static const value_string sapdiag_item_type_vals[] = {
407 | { 0x01, "SES" },
408 | { 0x02, "ICO" },
409 | { 0x03, "TIT" },
410 | { 0x07, "DiagMessage (old format)" },
411 | { 0x08, "OKC" },
412 | { 0x09, "CHL" },
413 | { 0x0a, "SFE" },
414 | { 0x0b, "SBA" },
415 | { 0x0c, "EOM" },
416 | { 0x10, "APPL" },
417 | { 0x11, "DIAG_XMLBLOB" },
418 | { 0x12, "APPL4" },
419 | { 0x13, "SLC" },
420 | { 0x15, "SBA2" },
421 | /* NULL */
422 | { 0x00, NULL((void*)0) }
423 | };
424 |
425 | /* SAP Diag Item APPL/APPL4 ID values */
426 | static const value_string sapdiag_item_id_vals[] = {
427 | { 0x01, "SCRIPT" },
428 | { 0x02, "GRAPH" },
429 | { 0x03, "IXOS" },
430 | { 0x04, "ST_USER" },
431 | { 0x05, "DYNN" },
432 | { 0x06, "ST_R3INFO" },
433 | { 0x07, "POPU" },
434 | { 0x08, "RFC_TR" },
435 | { 0x09, "DYNT" },
436 | { 0x0a, "CONTAINER" },
437 | { 0x0b, "MNUENTRY" },
438 | { 0x0c, "VARINFO" },
439 | { 0x0e, "CONTROL" },
440 | { 0x0f, "UI_EVENT" },
441 | { 0x12, "ACC_LIST" },
442 | { 0x13, "RCUI" },
443 | { 0x14, "GUI_PACKET" },
444 | /* NULL */
445 | { 0x00, NULL((void*)0) }
446 | };
447 |
448 | /* SAP Diag Item APPL/APPL4 SCRIPT SID values */
449 | static const value_string sapdiag_item_appl_script_vals[] = {
450 | /* SCRIPT */
451 | { 0x01, "SCRIPT_OTF" },
452 | { 0x02, "SCRIPT_SCREEN" },
453 | { 0x03, "SCRIPT_POSTSCRIPT" },
454 | { 0x04, "SCRIPT_ITF" },
455 | /* NULL */
456 | { 0x00, NULL((void*)0) }
457 | };
458 |
459 | /* SAP Diag Item APPL/APPL4 GRAPH SID values */
460 | static const value_string sapdiag_item_appl_graph_vals[] = {
461 | /* GRAPH */
462 | { 0x03, "GRAPH RELEASE 3" },
463 | { 0x05, "GRAPH RELEASE 5" },
464 | /* NULL */
465 | { 0x00, NULL((void*)0) }
466 | };
467 |
468 | /* SAP Diag Item APPL/APPL4 IXOS SID values */
469 | static const value_string sapdiag_item_appl_ixos_vals[] = {
470 | /* IXOS */
471 | { 0x01, "ABLAGE" },
472 | { 0x02, "ANZEIGE" },
473 | { 0x03, "IXOS_COMMAND" },
474 | { 0x00, NULL((void*)0) }
475 | };
476 |
477 | /* SAP Diag Item APPL/APPL4 ST_USER SID values */
478 | static const value_string sapdiag_item_appl_st_user_vals[] = {
479 | /* ST_USER */
480 | { 0x01, "V1" },
481 | { 0x02, "CONNECT" },
482 | { 0x03, "SELECTEDRECT" },
483 | { 0x04, "FONTMETRIC" },
484 | { 0x05, "TABLEMETRIC" },
485 | { 0x06, "GUITIME" },
486 | { 0x07, "GUITIMEZONE" },
487 | { 0x08, "TURNTIME" },
488 | { 0x09, "GUIVERSION" },
489 | /* No entry for 0xa... */
490 | { 0x0b, "SUPPORTDATA" },
491 | { 0x0c, "RFC_CONNECT" },
492 | { 0x0d, "WSIZE" },
493 | { 0x0e, "V2" },
494 | { 0x0f, "TURNTIME2" },
495 | { 0x10, "RFC_PARENT_UUID" },
496 | { 0x11, "RFC_NEW_UUID" },
497 | { 0x12, "RFC_UUIDS" },
498 | { 0x13, "RFC_UUIDS2" },
499 | { 0x14, "XML_LOGIN" },
500 | { 0x15, "XML_TRANSACTION" },
501 | { 0x16, "SCROLLBAR_WIDTH" },
502 | { 0x17, "TOOLBAR_HEIGHT" },
503 | { 0x18, "PASSPORT_DATA" },
504 | { 0x19, "GUI_STATE" },
505 | { 0x1a, "DECIMALPOINT" },
506 | { 0x1b, "LANGUAGE" },
507 | { 0x1c, "USERNAME" },
508 | { 0x1d, "GUIPATCHLEVEL" },
509 | { 0x1e, "WSIZE_PIXEL" },
510 | { 0x1f, "GUI_OS_VERSION" },
511 | { 0x20, "BROWSER_VERSION" },
512 | { 0x21, "OFFICE_VERSION" },
513 | { 0x22, "JDK_VERSION" },
514 | { 0x23, "GUIXT_VERSION" },
515 | { 0x24, "DISPLAY_SIZE" },
516 | { 0x25, "GUI_TYPE" },
517 | { 0x26, "DIALOG_STEP_NUMBER" },
518 | /* NULL */
519 | { 0x00, NULL((void*)0) }
520 | };
521 |
522 | /* SAP Diag Item APPL/APPL4 DYNN SID values */
523 | static const value_string sapdiag_item_appl_dynn_vals[] = {
524 | /* DYNN */
525 | { 0x01, "CHL" },
526 | { 0x03, "XMLPROP DYNPRO" },
527 | /* NULL */
528 | { 0x00, NULL((void*)0) }
529 | };
530 |
531 | /* SAP Diag Item APPL/APPL4 ST_R3INFO SID values */
532 | static const value_string sapdiag_item_appl_st_r3info_vals[] = {
533 | /* ST_R3INFO */
534 | { 0x01, "MODENUMBER" },
535 | { 0x02, "DBNAME" },
536 | { 0x03, "CPUNAME" },
537 | { 0x04, "RFC_TRIGGER" },
538 | { 0x05, "GUI_LABEL" },
539 | { 0x06, "DIAGVERSION" },
540 | { 0x07, "TCODE" },
541 | { 0x08, "RFC_WAITING" },
542 | { 0x09, "RFC_REFRESH" },
543 | { 0x0a, "IMODENUMBER" },
544 | { 0x0b, "MESSAGE" },
545 | { 0x0c, "CLIENT" },
546 | { 0x0d, "DYNPRONAME" },
547 | { 0x0e, "DYNPRONUMBER" },
548 | { 0x0f, "CUANAME" },
549 | { 0x10, "CUASTATUS" },
550 | { 0x11, "SUPPORTDATA" },
551 | { 0x12, "RFC_CONNECT_OK" },
552 | { 0x13, "GUI_FKEY" },
553 | { 0x14, "GUI_FKEYT" },
554 | { 0x15, "STOP_TRANS" },
555 | { 0x16, "RFC_DIAG_BLOCK_SIZE" },
556 | { 0x17, "USER_CHECKED" },
557 | { 0x18, "FLAGS" },
558 | { 0x19, "USERID" },
559 | { 0x1a, "ROLLCOUNT" },
560 | { 0x1b, "GUI_XT_VAR" },
561 | { 0x1c, "IMODEUUID" },
562 | { 0x1d, "IMODEUUID_INVALIDATE" },
563 | { 0x1e, "IMODEUUIDS" },
564 | { 0x1f, "IMODEUUIDS2" },
565 | { 0x20, "CODEPAGE" },
566 | { 0x21, "CONTEXTID" },
567 | { 0x22, "AUTOLOGOUT_TIME" },
568 | { 0x23, "CODEPAGE_DIAG_GUI" },
569 | { 0x24, "CODEPAGE_APP_SERVER" },
570 | { 0x25, "GUI_THEME" },
571 | { 0x26, "GUI_USER_SCRIPTING" },
572 | { 0x27, "CODEPAGE_APP_SERVER_1" },
573 | { 0x28, "TICKET4GUI" },
574 | { 0x29, "KERNEL_VERSION" },
575 | { 0x2a, "STD_TOOLBAR_ITEMS" },
576 | /* NULL */
577 | { 0x00, NULL((void*)0) }
578 | };
579 |
580 | /* SAP Diag Item APPL/APPL4 POPU SID values */
581 | static const value_string sapdiag_item_appl_popu_vals[] = {
582 | /* POPU */
583 | { 0x02, "DEST" },
584 | /* NULL */
585 | { 0x00, NULL((void*)0) }
586 | };
587 |
588 | /* SAP Diag Item APPL/APPL4 RFC_TR SID values */
589 | static const value_string sapdiag_item_appl_rfc_tr_vals[] = {
590 | /* RFC_TR */
591 | { 0x00, "RFC_TR_REQ" },
592 | { 0x01, "RFC_TR_RET" },
593 | { 0x02, "RFC_TR_ERR" },
594 | { 0x03, "RFC_TR_RQT" },
595 | { 0x04, "RFC_TR_MOR" },
596 | { 0x05, "RFC_TR_MOB" },
597 | { 0x06, "RFC_TR_RNB" },
598 | { 0x07, "RFC_TR_RNT" },
599 | { 0x08, "RFC_TR_DIS" },
600 | { 0x09, "RFC_TR_CALL" },
601 | { 0x0a, "RFC_TR_CALL_END" },
602 | { 0x0b, "RFC_TR_RES" },
603 | /* NULL */
604 | { 0x00, NULL((void*)0) }
605 | };
606 |
607 | /* SAP Diag Item APPL/APPL4 DYNT SID values */
608 | static const value_string sapdiag_item_appl_dynt_vals[] = {
609 | /* DYNT */
610 | { 0x01, "DYNT_FOCUS" },
611 | { 0x02, "DYNT_ATOM" },
612 | { 0x03, "DYNT_EVENT_UNUSED" },
613 | { 0x04, "TABLE_ROW_REFERENCE" },
614 | { 0x05, "TABLE_ROW_DAT_INPUT_DUMMY" },
615 | { 0x06, "TABLE_INPUT_HEADER" },
616 | { 0x07, "TABLE_OUTPUT_HEADER" },
617 | { 0x08, "TABLE_ROW_DATA_INPUT" },
618 | { 0x09, "TABLE_ROW_DATA_OUTPUT" },
619 | { 0x0a, "DYNT_NOFOCUS" },
620 | { 0x0b, "DYNT_FOCUS_1" },
621 | { 0x0c, "TABLE_ROW_REFERENCE_1" },
622 | { 0x0d, "TABLE_FIELD_NAMES" },
623 | { 0x0e, "TABLE_HEADER" },
624 | { 0x0f, "DYNT_TABSTRIP_HEADER" },
625 | { 0x10, "DYNT_TABSTRIP_BUTTONS" },
626 | { 0x11, "TABLE_ROW_REFERENCE_2" },
627 | { 0x12, "DYNT_CONTROL_FOCUS" },
628 | { 0x13, "TABLE_FIELD_XMLPROP" },
629 | { 0x14, "DYNT_SPLITTER_HEADER" },
630 | { 0x15, "DYNT_TC_COLUMN_TITLE_XMLP" },
631 | { 0x16, "DYNT_TC_ROW_SELECTOR_NAME" },
632 | { 0x17, "DYNT_FOCUS_FRAME" },
633 | /* NULL */
634 | { 0x00, NULL((void*)0) }
635 | };
636 |
637 | /* SAP Diag Item APPL/APPL4 CONTAINER SID values */
638 | static const value_string sapdiag_item_appl_container_vals[] = {
639 | /* CONTAINER */
640 | { 0x01, "RESET" },
641 | { 0x02, "DEFAULT" },
642 | { 0x03, "SUBSCREEN" },
643 | { 0x04, "LOOP" },
644 | { 0x05, "TABLE" },
645 | { 0x06, "NAME" },
646 | { 0x08, "TABSTRIP" },
647 | { 0x09, "TABSTRIP_PAGE" },
648 | { 0x0a, "CONTROL" },
649 | { 0x0c, "XMLPROP" },
650 | { 0x0d, "SPLITTER" },
651 | { 0x0e, "SPLITTER_CELL" },
652 | /* NULL */
653 | { 0x00, NULL((void*)0) }
654 | };
655 |
656 | /* SAP Diag Item APPL/APPL4 MNUENTRY SID values */
657 | static const value_string sapdiag_item_appl_mnuentry_vals[] = {
658 | /* MNUENTRY */
659 | { 0x01, "MENU_ACT" },
660 | { 0x02, "MENU_MNU" },
661 | { 0x03, "MENU_PFK" },
662 | { 0x04, "MENU_KYB" },
663 | /* NULL */
664 | { 0x00, NULL((void*)0) }
665 | };
666 |
667 | /* SAP Diag Item APPL/APPL4 VARINFO SID values */
668 | static const value_string sapdiag_item_appl_varinfo_vals[] = {
669 | /* VARINFO */
670 | { 0x01, "MESTYPE" },
671 | { 0x02, "SCROLL_INFOS" },
672 | { 0x03, "MESTYPE2" },
673 | { 0x04, "OKCODE" },
674 | { 0x05, "CONTAINER" },
675 | { 0x06, "SCROLL_INFOS2" },
676 | { 0x07, "AREASIZE" },
677 | { 0x08, "AREA_PIXELSIZE" },
678 | { 0x09, "SESSION_TITLE" },
679 | { 0x0a, "SESSION_ICON" },
680 | { 0x0b, "LIST_CELL_TEXT" },
681 | { 0x0c, "CONTAINER_LOOP" },
682 | { 0x0d, "LIST_FOCUS" },
683 | { 0x0e, "MAINAREA_PIXELSIZE" },
684 | { 0x0f, "SERVICE_REQUEST" },
685 | /* NULL */
686 | { 0x00, NULL((void*)0) }
687 | };
688 |
689 | /* SAP Diag Item APPL/APPL4 CONTROl SID values */
690 | static const value_string sapdiag_item_appl_control_vals[] = {
691 | /* CONTROL */
692 | { 0x01, "CONTROL_PROPERTIES" },
693 | /* NULL */
694 | { 0x00, NULL((void*)0) }
695 | };
696 |
697 | /* SAP Diag Item APPL/APPL4 UI_EVENT SID values */
698 | static const value_string sapdiag_item_appl_ui_event_vals[] = {
699 | /* UI_EVENT */
700 | { 0x01, "UI_EVENT_SOURCE" },
701 | /* NULL */
702 | { 0x00, NULL((void*)0) }
703 | };
704 |
705 | /* SAP Diag Item APPL/APPL4 ACC_LIST SID values */
706 | static const value_string sapdiag_item_appl_acc_list_vals[] = {
707 | /* ACC_LIST */
708 | { 0x01, "ACC_LIST_INFO4FIELD" },
709 | { 0x02, "ACC_LIST_CONTAINER" },
710 | /* NULL */
711 | { 0x00, NULL((void*)0) }
712 | };
713 |
714 | /* SAP Diag Item APPL/APPL4 RCUI SID values */
715 | static const value_string sapdiag_item_appl_rcui_vals[] = {
716 | /* RCUI */
717 | { 0x01, "RCUI_STREAM" },
718 | { 0x02, "RCUI_SYSTEM_ERROR" },
719 | { 0x03, "RCUI_SPAGPA" },
720 | { 0x04, "RCUI_MEMORYID" },
721 | { 0x05, "RCUI_TXOPTION" },
722 | { 0x06, "RCUI_VALUE" },
723 | { 0x07, "RCUI_COMMAND" },
724 | { 0x08, "RCUI_BDCMSG" },
725 | { 0x09, "RCUI_CONNECT_DATA" },
726 | /* NULL */
727 | { 0x00, NULL((void*)0) }
728 | };
729 |
730 | /* SAP Diag Item APPL/APPL4 GUI_PACKET SID values */
731 | static const value_string sapdiag_item_appl_gui_packet_vals[] = {
732 | /* GUI_PACKET */
733 | { 0x01, "GUI_PACKET_STATE" },
734 | { 0x02, "GUI_PACKET_DATA" },
735 | /* NULL */
736 | { 0x00, NULL((void*)0) }
737 | };
738 |
739 | /* SAP Diag Dynt Atom Etype values */
740 | static const value_string sapdiag_item_dynt_atom_item_etype_vals[] = {
741 | { 101, "DIAG_DGOTYP_EFIELD" },
742 | { 102, "DIAG_DGOTYP_OFIELD" },
743 | { 103, "DIAG_DGOTYP_KEYWORD" },
744 | { 104, "DIAG_DGOTYP_CHECKBUTTON_4" },
745 | { 105, "DIAG_DGOTYP_RADIOBUTTON_0" },
746 | { 106, "DIAG_DGOTYP_PUSHBUTTON_3" },
747 | { 107, "DIAG_DGOTYP_FRAME_3" },
748 | { 108, "DIAG_DGOTYP_LOOP_6" },
749 | { 109, "DIAG_DGOTYP_SUBSCREEN" },
750 | /* No value for 110? */
751 | { 111, "DIAG_DGOTYP_PROPERTY" },
752 | { 112, "DIAG_DGOTYP_ICON_0" },
753 | { 113, "DIAG_DGOTYP_PUSHBUTTON_1" },
754 | { 114, "DIAG_DGOTYP_FNAME" },
755 | { 115, "DIAG_DGOTYP_PUSHBUTTON_2" },
756 | { 116, "DIAG_DGOTYP_TABSTRIP_BUTTON" },
757 | { 117, "DIAG_DGOTYP_COMBOBOX" },
758 | { 118, "DIAG_DGOTYP_CHECKBUTTON_1" },
759 | { 119, "DIAG_DGOTYP_RADIOBUTTON_1" },
760 | { 120, "DIAG_DGOTYP_XMLPROP" },
761 | { 121, "DIAG_DGOTYP_EFIELD_1" },
762 | { 122, "DIAG_DGOTYP_OFIELD_1" },
763 | { 123, "DIAG_DGOTYP_KEYWORD_1_1" },
764 | { 124, "DIAG_DGOTYP_CHECKBUTTON_2" },
765 | { 125, "DIAG_DGOTYP_RADIOBUTTON__0" },
766 | { 126, "DIAG_DGOTYP_COMBOBOX_1" },
767 | { 127, "DIAG_DGOTYP_FRAME_1" },
768 | { 128, "DIAG_DGOTYP_CHECKBUTTON_3" },
769 | { 129, "DIAG_DGOTYP_RADIOBUTTON_3" },
770 | { 130, "DIAG_DGOTYP_EFIELD_2" },
771 | { 131, "DIAG_DGOTYP_OFIELD_2" },
772 | { 132, "DIAG_DGOTYP_KEYWORD_2" },
773 | /* NULL */
774 | { 0, NULL((void*)0) }
775 | };
776 |
777 | /* SAP Diag UI Event Source Event Type Values */
778 | static const value_string sapdiag_item_ui_event_event_type_vals[] = {
779 | { 0x01, "SELECT" },
780 | { 0x02, "HE" },
781 | { 0x03, "VALUEHELP" },
782 | { 0x06, "RESIZE" },
783 | { 0x07, "FUNCTIONKEY" },
784 | { 0x08, "SCROLL" },
785 | { 0x09, "BUTTONPRESSED" },
786 | { 0x0a, "VALUECHANGED" },
787 | { 0x0b, "STATECHANGED" },
788 | { 0x0c, "NAVIGATION" },
789 | /* NULL */
790 | { 0x00, NULL((void*)0) }
791 | };
792 |
793 | static const value_string sapdiag_item_ui_event_control_type_vals[] = {
794 | { 0x00, "NONE" },
795 | { 0x01, "FIELD" },
796 | { 0x02, "RADIOBUTTON" },
797 | { 0x03, "CHECKBUTTON" },
798 | { 0x04, "MENUBUTTON" },
799 | { 0x05, "TOOLBARBUTTON" },
800 | { 0x06, "STANDARDTOOLBARBUTTON" },
801 | { 0x07, "PUSHBUTTON" },
802 | { 0x08, "TABLEVIEW" },
803 | { 0x09, "TABSTRIP" },
804 | { 0x0a, "DYNPRO" },
805 | { 0x0b, "CUSTOM_CONTROL" },
806 | { 0x0d, "FRAME" },
807 | { 0x0e, "TABLEVIEW_COLSEL_BUTTON" },
808 | { 0x0f, "TABLEVIEW_ROWSEL_BUTTON" },
809 | { 0x10, "TABLEVIEW_CELL" },
810 | { 0x11, "CONTEXTMENU" },
811 | { 0x12, "SPLITTER" },
812 | { 0x13, "MESSAGE" },
813 | { 0x14, "OKCODE" },
814 | { 0x15, "ACC_CONTAINER" },
815 | /* NULL */
816 | { 0x00, NULL((void*)0) }
817 | };
818 |
819 | static const value_string sapdiag_item_ui_event_navigation_data_vals[] = {
820 | { 0x01, "TAB" },
821 | { 0x02, "TAB_BACK" },
822 | { 0x03, "JUMP_OVER" },
823 | { 0x04, "JUMP_OVER_BACK" },
824 | { 0x05, "JUMP_OUT" },
825 | { 0x06, "JUMP_OUT_BACK" },
826 | { 0x07, "JUMP_SECTION" },
827 | { 0x08, "JUMP_SECTION_BACK" },
828 | { 0x09, "FIRST_FIELD" },
829 | { 0x0a, "LAST_FIELD" },
830 | /* NULL */
831 | { 0x00, NULL((void*)0) }
832 | };
833 |
834 | static const value_string sapdiag_item_control_properties_id_vals[] = {
835 | { 0x01, "CONTROL_AREA" },
836 | { 0x02, "CONTROL_ID" },
837 | { 0x03, "CONTROL_VISIBLE" },
838 | { 0x04, "CONTROL_ROW" },
839 | { 0x05, "CONTROL_COLUMN" },
840 | { 0x06, "CONTROL_ROWS" },
841 | { 0x07, "CONTROL_COLUMNS" },
842 | /* NULL */
843 | { 0x00, NULL((void*)0) }
844 | };
845 |
846 | /* SAP Diag Dynt Atom Attr flags */
847 | #define SAPDIAG_ATOM_ATTR_DIAG_BSD_PROTECTED0x01 0x01
848 | #define SAPDIAG_ATOM_ATTR_DIAG_BSD_INVISIBLE0x02 0x02
849 | #define SAPDIAG_ATOM_ATTR_DIAG_BSD_INTENSIFY0x04 0x04
850 | #define SAPDIAG_ATOM_ATTR_DIAG_BSD_JUSTRIGHT0x08 0x08
851 | #define SAPDIAG_ATOM_ATTR_DIAG_BSD_MATCHCODE0x10 0x10
852 | #define SAPDIAG_ATOM_ATTR_DIAG_BSD_PROPFONT0x20 0x20
853 | #define SAPDIAG_ATOM_ATTR_DIAG_BSD_YES3D0x40 0x40
854 | #define SAPDIAG_ATOM_ATTR_DIAG_BSD_COMBOSTYLE0x80 0x80
855 | #define SAPDIAG_DYNT_ATOM_HEADER_LEN13 13
856 | #define SAPDIAG_MENU_ENTRY_HEADER_LEN20 20
857 |
858 | /* SAP Diag UI Event Source flags */
859 | #define SAPDIAG_UI_EVENT_VALID_FLAG_MENU_POS0x01 0x01
860 | #define SAPDIAG_UI_EVENT_VALID_FLAG_CONTROL_POS0x02 0x02
861 | #define SAPDIAG_UI_EVENT_VALID_FLAG_NAVIGATION_DATA0x04 0x04
862 | #define SAPDIAG_UI_EVENT_VALID_FLAG_FUNCTIONKEY_DATA0x08 0x08
863 |
864 | static int proto_sapdiag;
865 |
866 | static int hf_sapdiag_dp;
867 | static int hf_sapdiag_header;
868 | static int hf_sapdiag_payload;
869 |
870 | /* Diag Header */
871 | static int hf_sapdiag_mode;
872 | static int hf_sapdiag_com_flag;
873 | static int hf_sapdiag_com_flag_TERM_EOS;
874 | static int hf_sapdiag_com_flag_TERM_EOC;
875 | static int hf_sapdiag_com_flag_TERM_NOP;
876 | static int hf_sapdiag_com_flag_TERM_EOP;
877 | static int hf_sapdiag_com_flag_TERM_INI;
878 | static int hf_sapdiag_com_flag_TERM_CAS;
879 | static int hf_sapdiag_com_flag_TERM_NNM;
880 | static int hf_sapdiag_com_flag_TERM_GRA;
881 |
882 | static int hf_sapdiag_mode_stat;
883 | static int hf_sapdiag_err_no;
884 | static int hf_sapdiag_msg_type;
885 | static int hf_sapdiag_msg_info;
886 | static int hf_sapdiag_msg_rc;
887 | static int hf_sapdiag_compress;
888 |
889 | /* Error messages */
890 | static int hf_sapdiag_error_message;
891 |
892 | /* Compression header */
893 | static int hf_sapdiag_compress_header;
894 | static int hf_sapdiag_uncomplength;
895 | static int hf_sapdiag_algorithm;
896 | static int hf_sapdiag_magic;
897 | static int hf_sapdiag_special;
898 | static int hf_sapdiag_decompress_return_code;
899 |
900 | /* Message Data */
901 | static int hf_sapdiag_item;
902 | static int hf_sapdiag_item_type;
903 | static int hf_sapdiag_item_id;
904 | static int hf_sapdiag_item_sid;
905 | static int hf_sapdiag_item_length_short;
906 | static int hf_sapdiag_item_length_long;
907 | static int hf_sapdiag_item_value;
908 |
909 | /* Message DP Header */
910 | static int hf_sapdiag_dp_request_id;
911 | static int hf_sapdiag_dp_retcode;
912 | static int hf_sapdiag_dp_sender_id;
913 | static int hf_sapdiag_dp_action_type;
914 | static int hf_sapdiag_dp_req_info;
915 |
916 | static int hf_sapdiag_dp_req_info_LOGIN;
917 | static int hf_sapdiag_dp_req_info_LOGOFF;
918 | static int hf_sapdiag_dp_req_info_SHUTDOWN;
919 | static int hf_sapdiag_dp_req_info_GRAPHIC_TM;
920 | static int hf_sapdiag_dp_req_info_ALPHA_TM;
921 | static int hf_sapdiag_dp_req_info_ERROR_FROM_APPC;
922 | static int hf_sapdiag_dp_req_info_CANCELMODE;
923 | static int hf_sapdiag_dp_req_info_MSG_WITH_REQ_BUF;
924 | static int hf_sapdiag_dp_req_info_MSG_WITH_OH;
925 | static int hf_sapdiag_dp_req_info_BUFFER_REFRESH;
926 | static int hf_sapdiag_dp_req_info_BTC_SCHEDULER;
927 | static int hf_sapdiag_dp_req_info_APPC_SERVER_DOWN;
928 | static int hf_sapdiag_dp_req_info_MS_ERROR;
929 | static int hf_sapdiag_dp_req_info_SET_SYSTEM_USER;
930 | static int hf_sapdiag_dp_req_info_DP_CANT_HANDLE_REQ;
931 | static int hf_sapdiag_dp_req_info_DP_AUTO_ABAP;
932 | static int hf_sapdiag_dp_req_info_DP_APPL_SERV_INFO;
933 | static int hf_sapdiag_dp_req_info_DP_ADMIN;
934 | static int hf_sapdiag_dp_req_info_DP_SPOOL_ALRM;
935 | static int hf_sapdiag_dp_req_info_DP_HAND_SHAKE;
936 | static int hf_sapdiag_dp_req_info_DP_CANCEL_PRIV;
937 | static int hf_sapdiag_dp_req_info_DP_RAISE_TIMEOUT;
938 | static int hf_sapdiag_dp_req_info_DP_NEW_MODE;
939 | static int hf_sapdiag_dp_req_info_DP_SOFT_CANCEL;
940 | static int hf_sapdiag_dp_req_info_DP_TM_INPUT;
941 | static int hf_sapdiag_dp_req_info_DP_TM_OUTPUT;
942 | static int hf_sapdiag_dp_req_info_DP_ASYNC_RFC;
943 | static int hf_sapdiag_dp_req_info_DP_ICM_EVENT;
944 | static int hf_sapdiag_dp_req_info_DP_AUTO_TH;
945 | static int hf_sapdiag_dp_req_info_DP_RFC_CANCEL;
946 | static int hf_sapdiag_dp_req_info_DP_MS_ADM;
947 |
948 | static int hf_sapdiag_dp_tid;
949 | static int hf_sapdiag_dp_uid;
950 | static int hf_sapdiag_dp_mode;
951 | static int hf_sapdiag_dp_wp_id;
952 | static int hf_sapdiag_dp_wp_ca_blk;
953 | static int hf_sapdiag_dp_appc_ca_blk;
954 | static int hf_sapdiag_dp_len; /* Length of the SAP Diag Items in the login */
955 | static int hf_sapdiag_dp_new_stat;
956 | static int hf_sapdiag_dp_rq_id;
957 | static int hf_sapdiag_dp_terminal;
958 |
959 | /* Dynt Atom */
960 | static int hf_sapdiag_item_dynt_atom;
961 | static int hf_sapdiag_item_dynt_atom_item;
962 | static int hf_sapdiag_item_dynt_atom_item_etype;
963 | static int hf_sapdiag_item_dynt_atom_item_attr;
964 | static int hf_sapdiag_item_dynt_atom_item_attr_DIAG_BSD_COMBOSTYLE;
965 | static int hf_sapdiag_item_dynt_atom_item_attr_DIAG_BSD_YES3D;
966 | static int hf_sapdiag_item_dynt_atom_item_attr_DIAG_BSD_PROPFONT;
967 | static int hf_sapdiag_item_dynt_atom_item_attr_DIAG_BSD_MATCHCODE;
968 | static int hf_sapdiag_item_dynt_atom_item_attr_DIAG_BSD_JUSTRIGHT;
969 | static int hf_sapdiag_item_dynt_atom_item_attr_DIAG_BSD_INTENSIFY;
970 | static int hf_sapdiag_item_dynt_atom_item_attr_DIAG_BSD_INVISIBLE;
971 | static int hf_sapdiag_item_dynt_atom_item_attr_DIAG_BSD_PROTECTED;
972 |
973 | /* Control properties */
974 | static int hf_sapdiag_item_control_properties_id;
975 | static int hf_sapdiag_item_control_properties_value;
976 |
977 | /* UI Event Source */
978 | static int hf_sapdiag_item_ui_event_event_type;
979 | static int hf_sapdiag_item_ui_event_control_type;
980 | static int hf_sapdiag_item_ui_event_valid;
981 | static int hf_sapdiag_item_ui_event_valid_MENU_POS;
982 | static int hf_sapdiag_item_ui_event_valid_CONTROL_POS;
983 | static int hf_sapdiag_item_ui_event_valid_NAVIGATION_DATA;
984 | static int hf_sapdiag_item_ui_event_valid_FUNCTIONKEY_DATA;
985 | static int hf_sapdiag_item_ui_event_control_row;
986 | static int hf_sapdiag_item_ui_event_control_col;
987 | static int hf_sapdiag_item_ui_event_data;
988 | static int hf_sapdiag_item_ui_event_navigation_data;
989 | static int hf_sapdiag_item_ui_event_container_nrs;
990 | static int hf_sapdiag_item_ui_event_container;
991 |
992 | /* Menu Entries */
993 | static int hf_sapdiag_item_menu_entry;
994 |
995 | /* Diag Support Bits */
996 | static int hf_SAPDIAG_SUPPORT_BIT_PROGRESS_INDICATOR;
997 | static int hf_SAPDIAG_SUPPORT_BIT_SAPGUI_LABELS;
998 | static int hf_SAPDIAG_SUPPORT_BIT_SAPGUI_DIAGVERSION;
999 | static int hf_SAPDIAG_SUPPORT_BIT_SAPGUI_SELECT_RECT;
1000 | static int hf_SAPDIAG_SUPPORT_BIT_SAPGUI_SYMBOL_RIGHT;
1001 | static int hf_SAPDIAG_SUPPORT_BIT_SAPGUI_FONT_METRIC;
1002 | static int hf_SAPDIAG_SUPPORT_BIT_SAPGUI_COMPR_ENHANCED;
1003 | static int hf_SAPDIAG_SUPPORT_BIT_SAPGUI_IMODE;
1004 | static int hf_SAPDIAG_SUPPORT_BIT_SAPGUI_LONG_MESSAGE;
1005 | static int hf_SAPDIAG_SUPPORT_BIT_SAPGUI_TABLE;
1006 | static int hf_SAPDIAG_SUPPORT_BIT_SAPGUI_FOCUS_1;
1007 | static int hf_SAPDIAG_SUPPORT_BIT_SAPGUI_PUSHBUTTON_1;
1008 | static int hf_SAPDIAG_SUPPORT_BIT_UPPERCASE;
1009 | static int hf_SAPDIAG_SUPPORT_BIT_SAPGUI_TABPROPERTY;
1010 | static int hf_SAPDIAG_SUPPORT_BIT_INPUT_UPPERCASE;
1011 | static int hf_SAPDIAG_SUPPORT_BIT_RFC_DIALOG;
1012 | static int hf_SAPDIAG_SUPPORT_BIT_LIST_HOTSPOT;
1013 | static int hf_SAPDIAG_SUPPORT_BIT_FKEY_TABLE;
1014 | static int hf_SAPDIAG_SUPPORT_BIT_MENU_SHORTCUT;
1015 | static int hf_SAPDIAG_SUPPORT_BIT_STOP_TRANS;
1016 | static int hf_SAPDIAG_SUPPORT_BIT_FULL_MENU;
1017 | static int hf_SAPDIAG_SUPPORT_BIT_OBJECT_NAMES;
1018 | static int hf_SAPDIAG_SUPPORT_BIT_CONTAINER_TYPE;
1019 | static int hf_SAPDIAG_SUPPORT_BIT_DLGH_FLAGS;
1020 | static int hf_SAPDIAG_SUPPORT_BIT_APPL_MNU;
1021 | static int hf_SAPDIAG_SUPPORT_BIT_MESSAGE_INFO;
1022 | static int hf_SAPDIAG_SUPPORT_BIT_MESDUM_FLAG1;
1023 | static int hf_SAPDIAG_SUPPORT_BIT_TABSEL_ATTRIB;
1024 | static int hf_SAPDIAG_SUPPORT_BIT_GUIAPI;
1025 | static int hf_SAPDIAG_SUPPORT_BIT_NOGRAPH;
1026 | static int hf_SAPDIAG_SUPPORT_BIT_NOMESSAGES;
1027 | static int hf_SAPDIAG_SUPPORT_BIT_NORABAX;
1028 | static int hf_SAPDIAG_SUPPORT_BIT_NOSYSMSG;
1029 | static int hf_SAPDIAG_SUPPORT_BIT_NOSAPSCRIPT;
1030 | static int hf_SAPDIAG_SUPPORT_BIT_NORFC;
1031 | static int hf_SAPDIAG_SUPPORT_BIT_NEW_BSD_JUSTRIGHT;
1032 | static int hf_SAPDIAG_SUPPORT_BIT_MESSAGE_VARS;
1033 | static int hf_SAPDIAG_SUPPORT_BIT_OCX_SUPPORT;
1034 | static int hf_SAPDIAG_SUPPORT_BIT_SCROLL_INFOS;
1035 | static int hf_SAPDIAG_SUPPORT_BIT_TABLE_SIZE_OK;
1036 | static int hf_SAPDIAG_SUPPORT_BIT_MESSAGE_INFO2;
1037 | static int hf_SAPDIAG_SUPPORT_BIT_VARINFO_OKCODE;
1038 | static int hf_SAPDIAG_SUPPORT_BIT_CURR_TCODE;
1039 | static int hf_SAPDIAG_SUPPORT_BIT_CONN_WSIZE;
1040 | static int hf_SAPDIAG_SUPPORT_BIT_PUSHBUTTON_2;
1041 | static int hf_SAPDIAG_SUPPORT_BIT_TABSTRIP;
1042 | static int hf_SAPDIAG_SUPPORT_BIT_UNKNOWN_1;
1043 | static int hf_SAPDIAG_SUPPORT_BIT_TABSCROLL_INFOS;
1044 | static int hf_SAPDIAG_SUPPORT_BIT_TABLE_FIELD_NAMES;
1045 | static int hf_SAPDIAG_SUPPORT_BIT_NEW_MODE_REQUEST;
1046 | static int hf_SAPDIAG_SUPPORT_BIT_RFCBLOB_DIAG_PARSER;
1047 | static int hf_SAPDIAG_SUPPORT_BIT_MULTI_LOGIN_USER;
1048 | static int hf_SAPDIAG_SUPPORT_BIT_CONTROL_CONTAINER;
1049 | static int hf_SAPDIAG_SUPPORT_BIT_APPTOOLBAR_FIXED;
1050 | static int hf_SAPDIAG_SUPPORT_BIT_R3INFO_USER_CHECKED;
1051 | static int hf_SAPDIAG_SUPPORT_BIT_NEED_STDDYNPRO;
1052 | static int hf_SAPDIAG_SUPPORT_BIT_TYPE_SERVER;
1053 | static int hf_SAPDIAG_SUPPORT_BIT_COMBOBOX;
1054 | static int hf_SAPDIAG_SUPPORT_BIT_INPUT_REQUIRED;
1055 | static int hf_SAPDIAG_SUPPORT_BIT_ISO_LANGUAGE;
1056 | static int hf_SAPDIAG_SUPPORT_BIT_COMBOBOX_TABLE;
1057 | static int hf_SAPDIAG_SUPPORT_BIT_R3INFO_FLAGS;
1058 | static int hf_SAPDIAG_SUPPORT_BIT_CHECKRADIO_EVENTS;
1059 | static int hf_SAPDIAG_SUPPORT_BIT_R3INFO_USERID;
1060 | static int hf_SAPDIAG_SUPPORT_BIT_R3INFO_ROLLCOUNT;
1061 | static int hf_SAPDIAG_SUPPORT_BIT_USER_TURNTIME2;
1062 | static int hf_SAPDIAG_SUPPORT_BIT_NUM_FIELD;
1063 | static int hf_SAPDIAG_SUPPORT_BIT_WIN16;
1064 | static int hf_SAPDIAG_SUPPORT_BIT_CONTEXT_MENU;
1065 | static int hf_SAPDIAG_SUPPORT_BIT_SCROLLABLE_TABSTRIP_PAGE;
1066 | static int hf_SAPDIAG_SUPPORT_BIT_EVENT_DESCRIPTION;
1067 | static int hf_SAPDIAG_SUPPORT_BIT_LABEL_OWNER;
1068 | static int hf_SAPDIAG_SUPPORT_BIT_CLICKABLE_FIELD;
1069 | static int hf_SAPDIAG_SUPPORT_BIT_PROPERTY_BAG;
1070 | static int hf_SAPDIAG_SUPPORT_BIT_UNUSED_1;
1071 | static int hf_SAPDIAG_SUPPORT_BIT_TABLE_ROW_REFERENCES_2;
1072 | static int hf_SAPDIAG_SUPPORT_BIT_PROPFONT_VALID;
1073 | static int hf_SAPDIAG_SUPPORT_BIT_VARINFO_CONTAINER;
1074 | static int hf_SAPDIAG_SUPPORT_BIT_R3INFO_IMODEUUID;
1075 | static int hf_SAPDIAG_SUPPORT_BIT_NOTGUI;
1076 | static int hf_SAPDIAG_SUPPORT_BIT_WAN;
1077 | static int hf_SAPDIAG_SUPPORT_BIT_XML_BLOBS;
1078 | static int hf_SAPDIAG_SUPPORT_BIT_RFC_QUEUE;
1079 | static int hf_SAPDIAG_SUPPORT_BIT_RFC_COMPRESS;
1080 | static int hf_SAPDIAG_SUPPORT_BIT_JAVA_BEANS;
1081 | static int hf_SAPDIAG_SUPPORT_BIT_DPLOADONDEMAND;
1082 | static int hf_SAPDIAG_SUPPORT_BIT_CTL_PROPCACHE;
1083 | static int hf_SAPDIAG_SUPPORT_BIT_ENJOY_IMODEUUID;
1084 | static int hf_SAPDIAG_SUPPORT_BIT_RFC_ASYNC_BLOB;
1085 | static int hf_SAPDIAG_SUPPORT_BIT_KEEP_SCROLLPOS;
1086 | static int hf_SAPDIAG_SUPPORT_BIT_UNUSED_2;
1087 | static int hf_SAPDIAG_SUPPORT_BIT_UNUSED_3;
1088 | static int hf_SAPDIAG_SUPPORT_BIT_XML_PROPERTIES;
1089 | static int hf_SAPDIAG_SUPPORT_BIT_UNUSED_4;
1090 | static int hf_SAPDIAG_SUPPORT_BIT_HEX_FIELD;
1091 | static int hf_SAPDIAG_SUPPORT_BIT_HAS_CACHE;
1092 | static int hf_SAPDIAG_SUPPORT_BIT_XML_PROP_TABLE;
1093 | static int hf_SAPDIAG_SUPPORT_BIT_UNUSED_5;
1094 | static int hf_SAPDIAG_SUPPORT_BIT_ENJOY_IMODEUUID2;
1095 | static int hf_SAPDIAG_SUPPORT_BIT_ITS;
1096 | static int hf_SAPDIAG_SUPPORT_BIT_NO_EASYACCESS;
1097 | static int hf_SAPDIAG_SUPPORT_BIT_PROPERTYPUMP;
1098 | static int hf_SAPDIAG_SUPPORT_BIT_COOKIE;
1099 | static int hf_SAPDIAG_SUPPORT_BIT_UNUSED_6;
1100 | static int hf_SAPDIAG_SUPPORT_BIT_SUPPBIT_AREA_SIZE;
1101 | static int hf_SAPDIAG_SUPPORT_BIT_DPLOADONDEMAND_WRITE;
1102 | static int hf_SAPDIAG_SUPPORT_BIT_CONTROL_FOCUS;
1103 | static int hf_SAPDIAG_SUPPORT_BIT_ENTRY_HISTORY;
1104 | static int hf_SAPDIAG_SUPPORT_BIT_AUTO_CODEPAGE;
1105 | static int hf_SAPDIAG_SUPPORT_BIT_CACHED_VSETS;
1106 | static int hf_SAPDIAG_SUPPORT_BIT_EMERGENCY_REPAIR;
1107 | static int hf_SAPDIAG_SUPPORT_BIT_AREA2FRONT;
1108 | static int hf_SAPDIAG_SUPPORT_BIT_SCROLLBAR_WIDTH;
1109 | static int hf_SAPDIAG_SUPPORT_BIT_AUTORESIZE;
1110 | static int hf_SAPDIAG_SUPPORT_BIT_EDIT_VARLEN;
1111 | static int hf_SAPDIAG_SUPPORT_BIT_WORKPLACE;
1112 | static int hf_SAPDIAG_SUPPORT_BIT_PRINTDATA;
1113 | static int hf_SAPDIAG_SUPPORT_BIT_UNKNOWN_2;
1114 | static int hf_SAPDIAG_SUPPORT_BIT_SINGLE_SESSION;
1115 | static int hf_SAPDIAG_SUPPORT_BIT_NOTIFY_NEWMODE;
1116 | static int hf_SAPDIAG_SUPPORT_BIT_TOOLBAR_HEIGHT;
1117 | static int hf_SAPDIAG_SUPPORT_BIT_XMLPROP_CONTAINER;
1118 | static int hf_SAPDIAG_SUPPORT_BIT_XMLPROP_DYNPRO;
1119 | static int hf_SAPDIAG_SUPPORT_BIT_DP_HTTP_PUT;
1120 | static int hf_SAPDIAG_SUPPORT_BIT_DYNAMIC_PASSPORT;
1121 | static int hf_SAPDIAG_SUPPORT_BIT_WEBGUI;
1122 | static int hf_SAPDIAG_SUPPORT_BIT_WEBGUI_HELPMODE;
1123 | static int hf_SAPDIAG_SUPPORT_BIT_CONTROL_FOCUS_ON_LIST;
1124 | static int hf_SAPDIAG_SUPPORT_BIT_CBU_RBUDUMMY_2;
1125 | static int hf_SAPDIAG_SUPPORT_BIT_EOKDUMMY_1;
1126 | static int hf_SAPDIAG_SUPPORT_BIT_GUI_USER_SCRIPTING;
1127 | static int hf_SAPDIAG_SUPPORT_BIT_SLC;
1128 | static int hf_SAPDIAG_SUPPORT_BIT_ACCESSIBILITY;
1129 | static int hf_SAPDIAG_SUPPORT_BIT_ECATT;
1130 | static int hf_SAPDIAG_SUPPORT_BIT_ENJOY_IMODEUUID3;
1131 | static int hf_SAPDIAG_SUPPORT_BIT_ENABLE_UTF8;
1132 | static int hf_SAPDIAG_SUPPORT_BIT_R3INFO_AUTOLOGOUT_TIME;
1133 | static int hf_SAPDIAG_SUPPORT_BIT_VARINFO_ICON_TITLE_LIST;
1134 | static int hf_SAPDIAG_SUPPORT_BIT_ENABLE_UTF16BE;
1135 | static int hf_SAPDIAG_SUPPORT_BIT_ENABLE_UTF16LE;
1136 | static int hf_SAPDIAG_SUPPORT_BIT_R3INFO_CODEPAGE_APP;
1137 | static int hf_SAPDIAG_SUPPORT_BIT_ENABLE_APPL4;
1138 | static int hf_SAPDIAG_SUPPORT_BIT_GUIPATCHLEVEL;
1139 | static int hf_SAPDIAG_SUPPORT_BIT_CBURBU_NEW_STATE;
1140 | static int hf_SAPDIAG_SUPPORT_BIT_BINARY_EVENTID;
1141 | static int hf_SAPDIAG_SUPPORT_BIT_GUI_THEME;
1142 | static int hf_SAPDIAG_SUPPORT_BIT_TOP_WINDOW;
1143 | static int hf_SAPDIAG_SUPPORT_BIT_EVENT_DESCRIPTION_1;
1144 | static int hf_SAPDIAG_SUPPORT_BIT_SPLITTER;
1145 | static int hf_SAPDIAG_SUPPORT_BIT_VALUE_4_HISTORY;
1146 | static int hf_SAPDIAG_SUPPORT_BIT_ACC_LIST;
1147 | static int hf_SAPDIAG_SUPPORT_BIT_GUI_USER_SCRIPTING_INFO;
1148 | static int hf_SAPDIAG_SUPPORT_BIT_TEXTEDIT_STREAM;
1149 | static int hf_SAPDIAG_SUPPORT_BIT_DYNT_NOFOCUS;
1150 | static int hf_SAPDIAG_SUPPORT_BIT_R3INFO_CODEPAGE_APP_1;
1151 | static int hf_SAPDIAG_SUPPORT_BIT_FRAME_1;
1152 | static int hf_SAPDIAG_SUPPORT_BIT_TICKET4GUI;
1153 | static int hf_SAPDIAG_SUPPORT_BIT_ACC_LIST_PROPS;
1154 | static int hf_SAPDIAG_SUPPORT_BIT_TABSEL_ATTRIB_INPUT;
1155 | static int hf_SAPDIAG_SUPPORT_BIT_DEFAULT_TOOLTIP;
1156 | static int hf_SAPDIAG_SUPPORT_BIT_XML_PROP_TABLE_2;
1157 | static int hf_SAPDIAG_SUPPORT_BIT_CBU_RBUDUMMY_3;
1158 | static int hf_SAPDIAG_SUPPORT_BIT_CELLINFO;
1159 | static int hf_SAPDIAG_SUPPORT_BIT_CONTROL_FOCUS_ON_LIST_2;
1160 | static int hf_SAPDIAG_SUPPORT_BIT_TABLE_COLUMNWIDTH_INPUT;
1161 | static int hf_SAPDIAG_SUPPORT_BIT_ITS_PLUGIN;
1162 | static int hf_SAPDIAG_SUPPORT_BIT_OBJECT_NAMES_4_LOGIN_PROCESS;
1163 | static int hf_SAPDIAG_SUPPORT_BIT_RFC_SERVER_4_GUI;
1164 | static int hf_SAPDIAG_SUPPORT_BIT_R3INFO_FLAGS_2;
1165 | static int hf_SAPDIAG_SUPPORT_BIT_RCUI;
1166 | static int hf_SAPDIAG_SUPPORT_BIT_MENUENTRY_WITH_FCODE;
1167 | static int hf_SAPDIAG_SUPPORT_BIT_WEBSAPCONSOLE;
1168 | static int hf_SAPDIAG_SUPPORT_BIT_R3INFO_KERNEL_VERSION;
1169 | static int hf_SAPDIAG_SUPPORT_BIT_VARINFO_CONTAINER_LOOP;
1170 | static int hf_SAPDIAG_SUPPORT_BIT_EOKDUMMY_2;
1171 | static int hf_SAPDIAG_SUPPORT_BIT_MESSAGE_INFO3;
1172 | static int hf_SAPDIAG_SUPPORT_BIT_SBA2;
1173 | static int hf_SAPDIAG_SUPPORT_BIT_MAINAREA_SIZE;
1174 | static int hf_SAPDIAG_SUPPORT_BIT_GUIPATCHLEVEL_2;
1175 | static int hf_SAPDIAG_SUPPORT_BIT_DISPLAY_SIZE;
1176 | static int hf_SAPDIAG_SUPPORT_BIT_GUI_PACKET;
1177 | static int hf_SAPDIAG_SUPPORT_BIT_DIALOG_STEP_NUMBER;
1178 | static int hf_SAPDIAG_SUPPORT_BIT_TC_KEEP_SCROLL_POSITION;
1179 | static int hf_SAPDIAG_SUPPORT_BIT_MESSAGE_SERVICE_REQUEST;
1180 | static int hf_SAPDIAG_SUPPORT_BIT_DYNT_FOCUS_FRAME;
1181 | static int hf_SAPDIAG_SUPPORT_BIT_MAX_STRING_LEN;
1182 | static int hf_SAPDIAG_SUPPORT_BIT_VARINFO_CONTAINER_1;
1183 | static int hf_SAPDIAG_SUPPORT_BIT_STD_TOOLBAR_ITEMS;
1184 | static int hf_SAPDIAG_SUPPORT_BIT_XMLPROP_LIST_DYNPRO;
1185 | static int hf_SAPDIAG_SUPPORT_BIT_TRACE_GUI_CONNECT;
1186 | static int hf_SAPDIAG_SUPPORT_BIT_LIST_FULLWIDTH;
1187 | static int hf_SAPDIAG_SUPPORT_BIT_ALLWAYS_SEND_CLIENT;
1188 | static int hf_SAPDIAG_SUPPORT_BIT_UNKNOWN_3;
1189 | static int hf_SAPDIAG_SUPPORT_BIT_GUI_SIGNATURE_COLOR;
1190 | static int hf_SAPDIAG_SUPPORT_BIT_MAX_WSIZE;
1191 | static int hf_SAPDIAG_SUPPORT_BIT_SAP_PERSONAS;
1192 | static int hf_SAPDIAG_SUPPORT_BIT_IDA_ALV;
1193 | static int hf_SAPDIAG_SUPPORT_BIT_IDA_ALV_FRAGMENTS;
1194 | static int hf_SAPDIAG_SUPPORT_BIT_AMC;
1195 | static int hf_SAPDIAG_SUPPORT_BIT_EXTMODE_FONT_METRIC;
1196 | static int hf_SAPDIAG_SUPPORT_BIT_GROUPBOX;
1197 | static int hf_SAPDIAG_SUPPORT_BIT_AGI_ID_TS_BUTTON;
1198 | static int hf_SAPDIAG_SUPPORT_BIT_NO_FOCUS_ON_LIST;
1199 | static int hf_SAPDIAG_SUPPORT_BIT_FIORI_MODE;
1200 | static int hf_SAPDIAG_SUPPORT_BIT_CONNECT_CHECK_DONE;
1201 | static int hf_SAPDIAG_SUPPORT_BIT_MSGINFO_WITH_CODEPAGE;
1202 | static int hf_SAPDIAG_SUPPORT_BIT_AGI_ID;
1203 | static int hf_SAPDIAG_SUPPORT_BIT_AGI_ID_TC;
1204 | static int hf_SAPDIAG_SUPPORT_BIT_FIORI_TOOLBARS;
1205 | static int hf_SAPDIAG_SUPPORT_BIT_OBJECT_NAMES_ENFORCE;
1206 | static int hf_SAPDIAG_SUPPORT_BIT_MESDUMMY_FLAGS_2_3;
1207 | static int hf_SAPDIAG_SUPPORT_BIT_NWBC;
1208 | static int hf_SAPDIAG_SUPPORT_BIT_CONTAINER_LIST;
1209 | static int hf_SAPDIAG_SUPPORT_BIT_GUI_SYSTEM_COLOR;
1210 | static int hf_SAPDIAG_SUPPORT_BIT_GROUPBOX_WITHOUT_BOTTOMLINE;
1211 |
1212 | static int ett_sapdiag;
1213 |
1214 | /* Expert info */
1215 | static expert_field ei_sapdiag_item_unknown;
1216 | static expert_field ei_sapdiag_item_partial;
1217 | static expert_field ei_sapdiag_item_unknown_length;
1218 | static expert_field ei_sapdiag_item_offset_invalid;
1219 | static expert_field ei_sapdiag_item_length_invalid;
1220 | static expert_field ei_sapdiag_atom_item_unknown;
1221 | static expert_field ei_sapdiag_atom_item_partial;
1222 | static expert_field ei_sapdiag_atom_item_malformed;
1223 | static expert_field ei_sapdiag_dynt_focus_more_cont_ids;
1224 | static expert_field ei_sapdiag_password_field;
1225 | static expert_field ei_sapdiag_invalid_decompression;
1226 | static expert_field ei_sapdiag_invalid_decompress_length;
1227 |
1228 | /* Global decompress preference */
1229 | static bool_Bool global_sapdiag_decompress = true1;
1230 | static unsigned global_sapdiag_max_uncompressed_size = SAPDIAG_DEFAULT_MAX_UNCOMPRESSED_SIZE(16U * 1024U * 1024U);
1231 |
1232 | /* Global RFC dissection preference */
1233 | static bool_Bool global_sapdiag_rfc_dissection = true1;
1234 |
1235 | /* Global SNC dissection preference */
1236 | static bool_Bool global_sapdiag_snc_dissection = true1;
1237 |
1238 | /* Global port preference */
1239 | static range_t *global_sapdiag_port_range;
1240 |
1241 | /* Global highlight preference */
1242 | static bool_Bool global_sapdiag_highlight_items = true1;
1243 |
1244 | /* Protocol handle */
1245 | static dissector_handle_t sapdiag_handle;
1246 |
1247 | void proto_register_sapdiag(void);
1248 | void proto_reg_handoff_sapdiag(void);
1249 |
1250 |
1251 | static void
1252 | dissect_sapdiag_dp_req_info(tvbuff_t *tvb, proto_tree *tree, uint32_t offset){
1253 | proto_item *ri = NULL((void*)0);
1254 | proto_tree *req_info_tree;
1255 |
1256 | ri = proto_tree_add_item(tree, hf_sapdiag_dp_req_info, tvb, offset, 4, ENC_BIG_ENDIAN0x00000000);
1257 | req_info_tree = proto_item_add_subtree(ri, ett_sapdiag);
1258 |
1259 | proto_tree_add_item(req_info_tree, hf_sapdiag_dp_req_info_LOGIN, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 0x08 */
1260 | proto_tree_add_item(req_info_tree, hf_sapdiag_dp_req_info_LOGOFF, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
1261 | proto_tree_add_item(req_info_tree, hf_sapdiag_dp_req_info_SHUTDOWN, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
1262 | proto_tree_add_item(req_info_tree, hf_sapdiag_dp_req_info_GRAPHIC_TM, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
1263 | proto_tree_add_item(req_info_tree, hf_sapdiag_dp_req_info_ALPHA_TM, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
1264 | proto_tree_add_item(req_info_tree, hf_sapdiag_dp_req_info_ERROR_FROM_APPC, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
1265 | proto_tree_add_item(req_info_tree, hf_sapdiag_dp_req_info_CANCELMODE, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
1266 | proto_tree_add_item(req_info_tree, hf_sapdiag_dp_req_info_MSG_WITH_REQ_BUF, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
1267 | offset++;
1268 |
1269 | proto_tree_add_item(req_info_tree, hf_sapdiag_dp_req_info_MSG_WITH_OH, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 0x09 */
1270 | proto_tree_add_item(req_info_tree, hf_sapdiag_dp_req_info_BUFFER_REFRESH, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
1271 | proto_tree_add_item(req_info_tree, hf_sapdiag_dp_req_info_BTC_SCHEDULER, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
1272 | proto_tree_add_item(req_info_tree, hf_sapdiag_dp_req_info_APPC_SERVER_DOWN, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
1273 | proto_tree_add_item(req_info_tree, hf_sapdiag_dp_req_info_MS_ERROR, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
1274 | proto_tree_add_item(req_info_tree, hf_sapdiag_dp_req_info_SET_SYSTEM_USER, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
1275 | proto_tree_add_item(req_info_tree, hf_sapdiag_dp_req_info_DP_CANT_HANDLE_REQ, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
1276 | proto_tree_add_item(req_info_tree, hf_sapdiag_dp_req_info_DP_AUTO_ABAP, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
1277 | offset++;
1278 |
1279 | proto_tree_add_item(req_info_tree, hf_sapdiag_dp_req_info_DP_APPL_SERV_INFO, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 0x0a */
1280 | proto_tree_add_item(req_info_tree, hf_sapdiag_dp_req_info_DP_ADMIN, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
1281 | proto_tree_add_item(req_info_tree, hf_sapdiag_dp_req_info_DP_SPOOL_ALRM, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
1282 | proto_tree_add_item(req_info_tree, hf_sapdiag_dp_req_info_DP_HAND_SHAKE, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
1283 | proto_tree_add_item(req_info_tree, hf_sapdiag_dp_req_info_DP_CANCEL_PRIV, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
1284 | proto_tree_add_item(req_info_tree, hf_sapdiag_dp_req_info_DP_RAISE_TIMEOUT, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
1285 | proto_tree_add_item(req_info_tree, hf_sapdiag_dp_req_info_DP_NEW_MODE, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
1286 | proto_tree_add_item(req_info_tree, hf_sapdiag_dp_req_info_DP_SOFT_CANCEL, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
1287 | offset++;
1288 |
1289 | proto_tree_add_item(req_info_tree, hf_sapdiag_dp_req_info_DP_TM_INPUT, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 0x0b */
1290 | proto_tree_add_item(req_info_tree, hf_sapdiag_dp_req_info_DP_TM_OUTPUT, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
1291 | proto_tree_add_item(req_info_tree, hf_sapdiag_dp_req_info_DP_ASYNC_RFC, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
1292 | proto_tree_add_item(req_info_tree, hf_sapdiag_dp_req_info_DP_ICM_EVENT, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
1293 | proto_tree_add_item(req_info_tree, hf_sapdiag_dp_req_info_DP_AUTO_TH, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
1294 | proto_tree_add_item(req_info_tree, hf_sapdiag_dp_req_info_DP_RFC_CANCEL, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
1295 | proto_tree_add_item(req_info_tree, hf_sapdiag_dp_req_info_DP_MS_ADM, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
1296 | }
1297 |
1298 | static void
1299 | dissect_sapdiag_dp(tvbuff_t *tvb, proto_tree *tree, uint32_t offset){
1300 | proto_item *dp = NULL((void*)0);
1301 | proto_tree *dp_tree;
1302 |
1303 | dp = proto_tree_add_item(tree, hf_sapdiag_dp, tvb, offset, 200, ENC_NA0x00000000);
1304 | dp_tree = proto_item_add_subtree(dp, ett_sapdiag);
1305 |
1306 | proto_tree_add_item(dp_tree, hf_sapdiag_dp_request_id, tvb, offset, 4, ENC_BIG_ENDIAN0x00000000); /* 0x00 */
1307 | offset+=4;
1308 | proto_tree_add_item(dp_tree, hf_sapdiag_dp_retcode, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 0x04 */
1309 | offset++;
1310 | proto_tree_add_item(dp_tree, hf_sapdiag_dp_sender_id, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 0x05 */
1311 | offset++;
1312 | proto_tree_add_item(dp_tree, hf_sapdiag_dp_action_type, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 0x06 */
1313 | offset++;
1314 | dissect_sapdiag_dp_req_info(tvb, dp_tree, offset); /* Request info flags */ /* 0x07 */
1315 | offset+=4;
1316 | proto_tree_add_item(dp_tree, hf_sapdiag_dp_tid, tvb, offset, 4, ENC_BIG_ENDIAN0x00000000); /* 0x0b */
1317 | offset+=4;
1318 | proto_tree_add_item(dp_tree, hf_sapdiag_dp_uid, tvb, offset, 2, ENC_BIG_ENDIAN0x00000000); /* 0x0f */
1319 | offset+=2;
1320 | proto_tree_add_item(dp_tree, hf_sapdiag_dp_mode, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 0x11 */
1321 | offset++;
1322 | proto_tree_add_item(dp_tree, hf_sapdiag_dp_wp_id, tvb, offset, 4, ENC_BIG_ENDIAN0x00000000); /* 0x12 */
1323 | offset+=4;
1324 | proto_tree_add_item(dp_tree, hf_sapdiag_dp_wp_ca_blk, tvb, offset, 4, ENC_BIG_ENDIAN0x00000000); /* 0x16 */
1325 | offset+=4;
1326 | proto_tree_add_item(dp_tree, hf_sapdiag_dp_appc_ca_blk, tvb, offset, 4, ENC_BIG_ENDIAN0x00000000); /* 0x1a */
1327 | offset+=4;
1328 | proto_tree_add_item(dp_tree, hf_sapdiag_dp_len, tvb, offset, 4, ENC_LITTLE_ENDIAN0x80000000); /* 0x1e */
1329 | offset+=4;
1330 | proto_tree_add_item(dp_tree, hf_sapdiag_dp_new_stat, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 0x22 */
1331 | offset++;
1332 | offset+=4; /* Unknown 4 bytes */ /* 0x23 */
1333 | proto_tree_add_item(dp_tree, hf_sapdiag_dp_rq_id, tvb, offset, 2, ENC_BIG_ENDIAN0x00000000); /* 0x27 */
1334 | offset+=2;
1335 | offset+=40; /* Unknown 40 bytes (0x20 * 40) */ /* 0x29 */
1336 | proto_tree_add_item(dp_tree, hf_sapdiag_dp_terminal, tvb, offset, 15, ENC_ASCII0x00000000); /* 0x51 */
1337 | }
1338 |
1339 | static void
1340 | dissect_sapdiag_support_bits(tvbuff_t *tvb, proto_tree *tree, uint32_t offset){
1341 |
1342 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_PROGRESS_INDICATOR, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 0 */
1343 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_SAPGUI_LABELS, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 1 */
1344 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_SAPGUI_DIAGVERSION, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 2 */
1345 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_SAPGUI_SELECT_RECT, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 3 */
1346 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_SAPGUI_SYMBOL_RIGHT, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 4 */
1347 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_SAPGUI_FONT_METRIC, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 5 */
1348 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_SAPGUI_COMPR_ENHANCED, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 6 */
1349 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_SAPGUI_IMODE, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 7 */
1350 | offset+=1;
1351 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_SAPGUI_LONG_MESSAGE, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 8 */
1352 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_SAPGUI_TABLE, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 9 */
1353 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_SAPGUI_FOCUS_1, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 10 */
1354 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_SAPGUI_PUSHBUTTON_1, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 11 */
1355 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_UPPERCASE, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 12 */
1356 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_SAPGUI_TABPROPERTY, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 13 */
1357 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_INPUT_UPPERCASE, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 14 */
1358 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_RFC_DIALOG, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 15 */
1359 | offset+=1;
1360 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_LIST_HOTSPOT, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 16 */
1361 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_FKEY_TABLE, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 17 */
1362 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_MENU_SHORTCUT, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 18 */
1363 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_STOP_TRANS, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 19 */
1364 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_FULL_MENU, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 20 */
1365 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_OBJECT_NAMES, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 21 */
1366 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_CONTAINER_TYPE, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 22 */
1367 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_DLGH_FLAGS, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 23 */
1368 | offset+=1;
1369 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_APPL_MNU, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 24 */
1370 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_MESSAGE_INFO, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 25 */
1371 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_MESDUM_FLAG1, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 26 */
1372 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_TABSEL_ATTRIB, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 27 */
1373 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_GUIAPI, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 28 */
1374 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_NOGRAPH, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 29 */
1375 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_NOMESSAGES, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 30 */
1376 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_NORABAX, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 31 */
1377 | offset+=1;
1378 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_NOSYSMSG, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 32 */
1379 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_NOSAPSCRIPT, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 33 */
1380 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_NORFC, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 34 */
1381 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_NEW_BSD_JUSTRIGHT, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 35 */
1382 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_MESSAGE_VARS, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 36 */
1383 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_OCX_SUPPORT, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 37 */
1384 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_SCROLL_INFOS, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 38 */
1385 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_TABLE_SIZE_OK, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 39 */
1386 | offset+=1;
1387 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_MESSAGE_INFO2, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 40 */
1388 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_VARINFO_OKCODE, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 41 */
1389 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_CURR_TCODE, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 42 */
1390 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_CONN_WSIZE, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 43 */
1391 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_PUSHBUTTON_2, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 44 */
1392 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_TABSTRIP, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 45 */
1393 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_UNKNOWN_1, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 46 (Unknown support bit) */
1394 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_TABSCROLL_INFOS, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 47 */
1395 | offset+=1;
1396 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_TABLE_FIELD_NAMES, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 48 */
1397 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_NEW_MODE_REQUEST, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 49 */
1398 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_RFCBLOB_DIAG_PARSER, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 50 */
1399 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_MULTI_LOGIN_USER, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 51 */
1400 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_CONTROL_CONTAINER, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 52 */
1401 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_APPTOOLBAR_FIXED, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 53 */
1402 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_R3INFO_USER_CHECKED, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 54 */
1403 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_NEED_STDDYNPRO, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 55 */
1404 | offset+=1;
1405 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_TYPE_SERVER, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 56 */
1406 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_COMBOBOX, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 57 */
1407 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_INPUT_REQUIRED, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 58 */
1408 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_ISO_LANGUAGE, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 59 */
1409 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_COMBOBOX_TABLE, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 60 */
1410 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_R3INFO_FLAGS, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 61 */
1411 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_CHECKRADIO_EVENTS, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 62 */
1412 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_R3INFO_USERID, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 63 */
1413 | offset+=1;
1414 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_R3INFO_ROLLCOUNT, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 64 */
1415 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_USER_TURNTIME2, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 65 */
1416 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_NUM_FIELD, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 66 */
1417 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_WIN16, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 67 */
1418 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_CONTEXT_MENU, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 68 */
1419 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_SCROLLABLE_TABSTRIP_PAGE, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 69 */
1420 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_EVENT_DESCRIPTION, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 70 */
1421 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_LABEL_OWNER, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 71 */
1422 | offset+=1;
1423 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_CLICKABLE_FIELD, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 72 */
1424 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_PROPERTY_BAG, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 73 */
1425 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_UNUSED_1, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 74 */
1426 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_TABLE_ROW_REFERENCES_2, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 75 */
1427 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_PROPFONT_VALID, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 76 */
1428 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_VARINFO_CONTAINER, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 77 */
1429 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_R3INFO_IMODEUUID, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 78 */
1430 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_NOTGUI, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 79 */
1431 | offset+=1;
1432 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_WAN, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 80 */
1433 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_XML_BLOBS, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 81 */
1434 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_RFC_QUEUE, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 82 */
1435 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_RFC_COMPRESS, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 83 */
1436 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_JAVA_BEANS, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 84 */
1437 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_DPLOADONDEMAND, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 85 */
1438 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_CTL_PROPCACHE, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 86 */
1439 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_ENJOY_IMODEUUID, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 87 */
1440 | offset+=1;
1441 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_RFC_ASYNC_BLOB, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 88 */
1442 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_KEEP_SCROLLPOS, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 89 */
1443 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_UNUSED_2, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 90 */
1444 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_UNUSED_3, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 91 */
1445 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_XML_PROPERTIES, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 92 */
1446 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_UNUSED_4, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 93 */
1447 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_HEX_FIELD, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 94 */
1448 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_HAS_CACHE, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 95 */
1449 | offset+=1;
1450 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_XML_PROP_TABLE, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 96 */
1451 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_UNUSED_5, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 97 */
1452 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_ENJOY_IMODEUUID2, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 98 */
1453 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_ITS, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 99 */
1454 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_NO_EASYACCESS, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 100 */
1455 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_PROPERTYPUMP, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 101 */
1456 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_COOKIE, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 102 */
1457 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_UNUSED_6, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 103 */
1458 | offset+=1;
1459 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_SUPPBIT_AREA_SIZE, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 104 */
1460 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_DPLOADONDEMAND_WRITE, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 105 */
1461 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_CONTROL_FOCUS, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 106 */
1462 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_ENTRY_HISTORY, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 107 */
1463 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_AUTO_CODEPAGE, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 108 */
1464 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_CACHED_VSETS, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 109 */
1465 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_EMERGENCY_REPAIR, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 110 */
1466 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_AREA2FRONT, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 111 */
1467 | offset+=1;
1468 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_SCROLLBAR_WIDTH, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 112 */
1469 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_AUTORESIZE, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 113 */
1470 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_EDIT_VARLEN, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 114 */
1471 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_WORKPLACE, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 115 */
1472 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_PRINTDATA, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 116 */
1473 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_UNKNOWN_2, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 117 (Unknown support bit) */
1474 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_SINGLE_SESSION, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 118 */
1475 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_NOTIFY_NEWMODE, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 119 */
1476 | offset+=1;
1477 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_TOOLBAR_HEIGHT, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 120 */
1478 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_XMLPROP_CONTAINER, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 121 */
1479 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_XMLPROP_DYNPRO, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 122 */
1480 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_DP_HTTP_PUT, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 123 */
1481 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_DYNAMIC_PASSPORT, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 124 */
1482 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_WEBGUI, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 125 */
1483 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_WEBGUI_HELPMODE, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 126 */
1484 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_CONTROL_FOCUS_ON_LIST, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 127 */
1485 | offset+=1;
1486 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_CBU_RBUDUMMY_2, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 128 */
1487 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_EOKDUMMY_1, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 129 */
1488 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_GUI_USER_SCRIPTING, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 130 */
1489 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_SLC, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 131 */
1490 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_ACCESSIBILITY, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 132 */
1491 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_ECATT, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 133 */
1492 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_ENJOY_IMODEUUID3, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 134 */
1493 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_ENABLE_UTF8, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 135 */
1494 | offset+=1;
1495 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_R3INFO_AUTOLOGOUT_TIME, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 136 */
1496 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_VARINFO_ICON_TITLE_LIST, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 137 */
1497 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_ENABLE_UTF16BE, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 138 */
1498 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_ENABLE_UTF16LE, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 139 */
1499 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_R3INFO_CODEPAGE_APP, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 140 */
1500 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_ENABLE_APPL4, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 141 */
1501 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_GUIPATCHLEVEL, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 142 */
1502 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_CBURBU_NEW_STATE, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 143 */
1503 | offset+=1;
1504 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_BINARY_EVENTID, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 144 */
1505 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_GUI_THEME, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 145 */
1506 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_TOP_WINDOW, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 146 */
1507 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_EVENT_DESCRIPTION_1, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 147 */
1508 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_SPLITTER, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 148 */
1509 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_VALUE_4_HISTORY, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 149 */
1510 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_ACC_LIST, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 150 */
1511 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_GUI_USER_SCRIPTING_INFO, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 151 */
1512 | offset+=1;
1513 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_TEXTEDIT_STREAM, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 152 */
1514 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_DYNT_NOFOCUS, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 153 */
1515 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_R3INFO_CODEPAGE_APP_1, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 154 */
1516 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_FRAME_1, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 155 */
1517 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_TICKET4GUI, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 156 */
1518 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_ACC_LIST_PROPS, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 157 */
1519 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_TABSEL_ATTRIB_INPUT, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 158 */
1520 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_DEFAULT_TOOLTIP, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 159 */
1521 | offset+=1;
1522 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_XML_PROP_TABLE_2, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 160 */
1523 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_CBU_RBUDUMMY_3, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 161 */
1524 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_CELLINFO, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 162 */
1525 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_CONTROL_FOCUS_ON_LIST_2, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 163 */
1526 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_TABLE_COLUMNWIDTH_INPUT, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 164 */
1527 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_ITS_PLUGIN, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 165 */
1528 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_OBJECT_NAMES_4_LOGIN_PROCESS, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 166 */
1529 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_RFC_SERVER_4_GUI, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 167 */
1530 | offset+=1;
1531 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_R3INFO_FLAGS_2, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 168 */
1532 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_RCUI, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 169 */
1533 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_MENUENTRY_WITH_FCODE, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 170 */
1534 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_WEBSAPCONSOLE, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 171 */
1535 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_R3INFO_KERNEL_VERSION, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 172 */
1536 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_VARINFO_CONTAINER_LOOP, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 173 */
1537 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_EOKDUMMY_2, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 174 */
1538 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_MESSAGE_INFO3, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 175 */
1539 | offset+=1;
1540 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_SBA2, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 176 */
1541 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_MAINAREA_SIZE, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 177 */
1542 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_GUIPATCHLEVEL_2, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 178 */
1543 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_DISPLAY_SIZE, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 179 */
1544 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_GUI_PACKET, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 180 */
1545 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_DIALOG_STEP_NUMBER, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 181 */
1546 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_TC_KEEP_SCROLL_POSITION, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 182 */
1547 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_MESSAGE_SERVICE_REQUEST, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 183 */
1548 | offset+=1;
1549 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_DYNT_FOCUS_FRAME, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 184 */
1550 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_MAX_STRING_LEN, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 185 */
1551 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_VARINFO_CONTAINER_1, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 186 */
1552 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_STD_TOOLBAR_ITEMS, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 187 */
1553 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_XMLPROP_LIST_DYNPRO, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 188 */
1554 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_TRACE_GUI_CONNECT, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 189 */
1555 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_LIST_FULLWIDTH, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 190 */
1556 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_ALLWAYS_SEND_CLIENT, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 191 */
1557 | offset+=1;
1558 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_UNKNOWN_3, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 192 (Unknown support bit) */
1559 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_GUI_SIGNATURE_COLOR, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 193 */
1560 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_MAX_WSIZE, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 194 */
1561 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_SAP_PERSONAS, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 195 */
1562 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_IDA_ALV, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 196 */
1563 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_IDA_ALV_FRAGMENTS, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 197 */
1564 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_AMC, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 198 */
1565 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_EXTMODE_FONT_METRIC, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 199 */
1566 | offset+=1;
1567 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_GROUPBOX, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 200 */
1568 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_AGI_ID_TS_BUTTON, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 201 */
1569 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_NO_FOCUS_ON_LIST, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 202 */
1570 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_FIORI_MODE, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 203 */
1571 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_CONNECT_CHECK_DONE, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 204 */
1572 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_MSGINFO_WITH_CODEPAGE, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 205 */
1573 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_AGI_ID, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 206 */
1574 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_AGI_ID_TC, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 207 */
1575 | offset+=1;
1576 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_FIORI_TOOLBARS, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 208 */
1577 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_OBJECT_NAMES_ENFORCE, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 209 */
1578 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_MESDUMMY_FLAGS_2_3, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 210 */
1579 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_NWBC, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 211 */
1580 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_CONTAINER_LIST, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 212 */
1581 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_GUI_SYSTEM_COLOR, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 213 */
1582 | proto_tree_add_item(tree, hf_SAPDIAG_SUPPORT_BIT_GROUPBOX_WITHOUT_BOTTOMLINE, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); /* 214 */
1583 | }
1584 |
1585 | static void
1586 | dissect_sapdiag_rfc_call(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, uint32_t offset, uint32_t item_length){
1587 |
1588 | tvbuff_t *next_tvb = NULL((void*)0);
1589 | dissector_handle_t rfc_handle;
1590 |
1591 | /* Call the RFC internal dissector */
1592 | if (global_sapdiag_rfc_dissection){
1593 | rfc_handle = find_dissector("saprfcinternal");
1594 | if (rfc_handle){
1595 | /* Set the column to not writable so the RFC dissector doesn't override the Diag info */
1596 | col_set_writable(pinfo->cinfo, -1, false0);
1597 | /* Create a new tvb buffer and call the dissector */
1598 | next_tvb = tvb_new_subset_length(tvb, offset, item_length);
1599 | call_dissector(rfc_handle, next_tvb, pinfo, tree);
1600 | }
1601 | }
1602 |
1603 | }
1604 |
1605 |
1606 | static bool_Bool
1607 | check_length(packet_info *pinfo, proto_tree *tree, uint32_t expected, uint32_t real, const char *name_string){
1608 | if (expected != real){
1609 | expert_add_info_format(pinfo, tree, &ei_sapdiag_item_length_invalid, "Item %s length is invalid", name_string);
1610 | return false0;
1611 | } else return true1;
1612 | }
1613 |
1614 | static bool_Bool
1615 | check_min_length(packet_info *pinfo, proto_tree *tree, uint32_t minimum, uint32_t real, const char *name_string){
1616 | if (real < minimum){
1617 | expert_add_info_format(pinfo, tree, &ei_sapdiag_item_length_invalid, "Item %s length is invalid", name_string);
1618 | return false0;
1619 | } else return true1;
1620 | }
1621 |
1622 |
1623 | static uint8_t
1624 | add_item_value_uint8(tvbuff_t *tvb, proto_item *item, proto_tree *tree, int hf, uint32_t offset, const char *text){
1625 | proto_tree_add_none_format(tree, hf, tvb, offset, 1, "%s: %d", text, tvb_get_uint8(tvb, offset));
1626 | proto_item_append_text(item, ", %s=%d", text, tvb_get_uint8(tvb, offset));
1627 | return (tvb_get_uint8(tvb, offset));
1628 | }
1629 |
1630 |
1631 | static uint16_t
1632 | add_item_value_uint16(tvbuff_t *tvb, proto_item *item, proto_tree *tree, int hf, uint32_t offset, const char *text){
1633 | proto_tree_add_none_format(tree, hf, tvb, offset, 2, "%s: %d", text, tvb_get_ntohs(tvb, offset));
1634 | proto_item_append_text(item, ", %s=%d", text, tvb_get_ntohs(tvb, offset));
1635 | return (tvb_get_ntohs(tvb, offset));
1636 | }
1637 |
1638 |
1639 | static uint32_t
1640 | add_item_value_uint32(tvbuff_t *tvb, proto_item *item, proto_tree *tree, int hf, uint32_t offset, const char *text){
1641 | proto_tree_add_none_format(tree, hf, tvb, offset, 4, "%s: %d", text, tvb_get_ntohl(tvb, offset));
1642 | proto_item_append_text(item, ", %s=%d", text, tvb_get_ntohl(tvb, offset));
1643 | return (tvb_get_ntohl(tvb, offset));
1644 | }
1645 |
1646 |
1647 | static void
1648 | add_item_value_string(tvbuff_t *tvb, packet_info *pinfo, proto_item *item, proto_tree *tree, int hf, uint32_t offset, uint32_t length, const char *text, int show_in_tree){
1649 | uint8_t *string = tvb_get_string_enc(pinfo->pool, tvb, offset, length, ENC_ASCII0x00000000);
1650 | proto_tree_add_none_format(tree, hf, tvb, offset, length, "%s: %s", text, string);
1651 | if (show_in_tree) proto_item_append_text(item, ", %s=%s", text, string);
1652 | }
1653 |
1654 |
1655 | static uint32_t
1656 | add_item_value_stringz(tvbuff_t *tvb, packet_info *pinfo, proto_item *item, proto_tree *tree, int hf, uint32_t offset, const char *text, int show_in_tree){
1657 | unsigned int max_length = tvb_reported_length_remaining(tvb, offset);
1658 | int string_length;
1659 | uint32_t field_length;
1660 | uint8_t *string;
1661 |
1662 | if (max_length == 0) {
1663 | expert_add_info(pinfo, item, &ei_sapdiag_item_length_invalid);
1664 | return 0;
1665 | }
1666 |
1667 | string_length = tvb_strnlen(tvb, offset, max_length);
1668 | if (string_length < 0) {
1669 | string_length = field_length = max_length;
1670 | expert_add_info(pinfo, item, &ei_sapdiag_item_length_invalid);
1671 | } else {
1672 | field_length = (uint32_t)string_length + 1;
1673 | }
1674 |
1675 | string = tvb_get_string_enc(pinfo->pool, tvb, offset, string_length, ENC_ASCII0x00000000);
1676 | proto_tree_add_none_format(tree, hf, tvb, offset, field_length, "%s: %s", text, string);
1677 | if (show_in_tree) proto_item_append_text(item, ", %s=%s", text, string);
1678 | return field_length;
1679 | }
1680 |
1681 |
1682 | static uint32_t
1683 | add_item_value_stringz_bounded(tvbuff_t *tvb, packet_info *pinfo, proto_item *item, proto_tree *tree, int hf, uint32_t offset, uint32_t max_length, const char *text, int show_in_tree, bool_Bool *terminated){
1684 | int string_length;
1685 | uint32_t field_length;
1686 | uint8_t *string;
1687 |
1688 | if (max_length == 0) {
1689 | *terminated = false0;
1690 | return 0;
1691 | }
1692 |
1693 | string_length = tvb_strnlen(tvb, offset, max_length);
1694 | if (string_length < 0) {
1695 | string_length = (int)max_length;
1696 | field_length = max_length;
1697 | *terminated = false0;
1698 | } else {
1699 | field_length = (uint32_t)string_length + 1;
1700 | *terminated = true1;
1701 | }
1702 |
1703 | string = tvb_get_string_enc(pinfo->pool, tvb, offset, string_length, ENC_ASCII0x00000000);
1704 | proto_tree_add_none_format(tree, hf, tvb, offset, field_length, "%s: %s", text, string);
1705 | if (show_in_tree) proto_item_append_text(item, ", %s=%s", text, string);
1706 | return field_length;
1707 | }
1708 |
1709 |
1710 | static void
1711 | add_item_value_hexstring(tvbuff_t *tvb, packet_info *pinfo, proto_item *item, proto_tree *tree, int hf, uint32_t offset, uint32_t length, const char *text){
1712 | proto_tree_add_none_format(tree, hf, tvb, offset, length, "%s: %s", text, tvb_bytes_to_str(pinfo->pool, tvb, offset, length));
1713 | proto_item_append_text(item, ", %s=%s", text, tvb_bytes_to_str(pinfo->pool, tvb, offset, length));
1714 | }
1715 |
1716 |
1717 | static void
1718 | dissect_sapdiag_dyntatom(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, uint32_t offset, uint32_t length){
1719 | uint32_t final = offset + length;
1720 | uint32_t atom_length = 0, atom_item_length = 0, atom_item_end = 0;
1721 | uint8_t etype = 0, attr = 0;
1722 | bool_Bool terminated;
1723 |
1724 | proto_item *atom = NULL((void*)0), *atom_item = NULL((void*)0), *atom_item_attr = NULL((void*)0);
1725 | proto_tree *atom_tree = NULL((void*)0), *atom_item_tree = NULL((void*)0), *atom_item_attr_tree = NULL((void*)0);
1726 |
1727 | while (offset < final){
1728 | if (final - offset < SAPDIAG_DYNT_ATOM_HEADER_LEN13) {
1729 | expert_add_info(pinfo, tree, &ei_sapdiag_atom_item_malformed);
1730 | break;
1731 | }
1732 |
1733 | atom_item_length = tvb_get_ntohs(tvb, offset);
1734 | if (atom_item_length < SAPDIAG_DYNT_ATOM_HEADER_LEN13 || atom_item_length > final - offset) {
1735 | expert_add_info(pinfo, tree, &ei_sapdiag_atom_item_malformed);
1736 | break;
1737 | }
1738 | atom_item_end = offset + atom_item_length;
1739 |
1740 | etype = tvb_get_uint8(tvb, offset+4);
1741 | if ((etype != 114) && (etype != 120)) {
1742 | /* Add a new atom subtree */
1743 | atom_length = 0;
1744 | atom = proto_tree_add_item(tree, hf_sapdiag_item_dynt_atom, tvb, offset, atom_length, ENC_NA0x00000000);
1745 | atom_tree = proto_item_add_subtree(atom, ett_sapdiag);
1746 | proto_item_append_text(atom, ", Etype=%s", val_to_str_const(etype, sapdiag_item_dynt_atom_item_etype_vals, "Unknown")); /* Add the Etype to the Atom tree also */
1747 | }
1748 |
1749 | /* Check the atom_tree for NULL values. If the atom_tree wasn't created at this point, the atom
1750 | * starts with an item different to 114 or 120. */
1751 | if (atom_tree == NULL((void*)0)){
1752 | expert_add_info(pinfo, tree, &ei_sapdiag_atom_item_malformed);
1753 | break;
1754 | }
1755 |
1756 | /* Add the item atom subtree */
1757 | atom_item = proto_tree_add_item(atom_tree, hf_sapdiag_item_dynt_atom_item, tvb, offset, atom_item_length, ENC_NA0x00000000);
1758 | atom_item_tree = proto_item_add_subtree(atom_item, ett_sapdiag);
1759 |
1760 | /* Get the atom item length */
1761 | add_item_value_uint16(tvb, atom_item, atom_item_tree, hf_sapdiag_item_value, offset, "Atom Length");
1762 |
1763 | /* Adjust the length of the atom tree, adding the new item's length. */
1764 | atom_length+= atom_item_length;
1765 | proto_item_set_len(atom, atom_length);
1766 |
1767 | /* Continue with the dissection */
1768 | offset+=2;
1769 | add_item_value_uint8(tvb, atom_item, atom_item_tree, hf_sapdiag_item_value, offset, "Dlg Flag 1");
1770 | offset+=1;
1771 | add_item_value_uint8(tvb, atom_item, atom_item_tree, hf_sapdiag_item_value, offset, "Dlg Flag 2");
1772 | offset+=1;
1773 |
1774 | proto_tree_add_item(atom_item_tree, hf_sapdiag_item_dynt_atom_item_etype, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
1775 | proto_item_append_text(atom_item, ", EType=%d", tvb_get_uint8(tvb, offset));
1776 | offset+=1;
1777 |
1778 | add_item_value_uint8(tvb, atom_item, atom_item_tree, hf_sapdiag_item_value, offset, "Area");
1779 | offset+=1;
1780 | add_item_value_uint8(tvb, atom_item, atom_item_tree, hf_sapdiag_item_value, offset, "Block");
1781 | offset+=1;
1782 | add_item_value_uint8(tvb, atom_item, atom_item_tree, hf_sapdiag_item_value, offset, "Group");
1783 | offset+=1;
1784 | add_item_value_uint16(tvb, atom_item, atom_item_tree, hf_sapdiag_item_value, offset, "Row");
1785 | offset+=2;
1786 | add_item_value_uint16(tvb, atom_item, atom_item_tree, hf_sapdiag_item_value, offset, "Col");
1787 | offset+=2;
1788 |
1789 | atom_item_attr = proto_tree_add_item(atom_item_tree, hf_sapdiag_item_dynt_atom_item_attr, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
1790 | atom_item_attr_tree = proto_item_add_subtree(atom_item_attr, ett_sapdiag);
1791 |
1792 | attr = tvb_get_uint8(tvb, offset);
1793 | proto_item_append_text(atom_item, ", Attr=%d", attr);
1794 | proto_tree_add_item(atom_item_attr_tree, hf_sapdiag_item_dynt_atom_item_attr_DIAG_BSD_PROTECTED, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
1795 | proto_tree_add_item(atom_item_attr_tree, hf_sapdiag_item_dynt_atom_item_attr_DIAG_BSD_INVISIBLE, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
1796 | proto_tree_add_item(atom_item_attr_tree, hf_sapdiag_item_dynt_atom_item_attr_DIAG_BSD_INTENSIFY, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
1797 | proto_tree_add_item(atom_item_attr_tree, hf_sapdiag_item_dynt_atom_item_attr_DIAG_BSD_JUSTRIGHT, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
1798 | proto_tree_add_item(atom_item_attr_tree, hf_sapdiag_item_dynt_atom_item_attr_DIAG_BSD_MATCHCODE, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
1799 | proto_tree_add_item(atom_item_attr_tree, hf_sapdiag_item_dynt_atom_item_attr_DIAG_BSD_PROPFONT, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
1800 | proto_tree_add_item(atom_item_attr_tree, hf_sapdiag_item_dynt_atom_item_attr_DIAG_BSD_YES3D, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
1801 | proto_tree_add_item(atom_item_attr_tree, hf_sapdiag_item_dynt_atom_item_attr_DIAG_BSD_COMBOSTYLE, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
1802 | offset+=1;
1803 | atom_item_length = atom_item_end - offset;
1804 |
1805 | /* If the attribute is set to invisible we're dealing probably with a password field */
1806 | if (attr & SAPDIAG_ATOM_ATTR_DIAG_BSD_INVISIBLE0x02){
1807 | expert_add_info(pinfo, atom_item, &ei_sapdiag_password_field);
1808 | }
1809 |
1810 | switch (etype){
1811 | case 114:{ /* DIAG_DGOTYP_FNAME */
1812 | add_item_value_string(tvb, pinfo, atom_item, atom_item_tree, hf_sapdiag_item_value, offset, atom_item_length, "Text", 1);
1813 | proto_item_append_text(atom, ", Text=%s", tvb_get_string_enc(pinfo->pool, tvb, offset, atom_item_length, ENC_ASCII0x00000000));
1814 | break;
1815 |
1816 | } case 115:{ /* DIAG_DGOTYP_PUSHBUTTON_2 */
1817 | if (atom_item_length < 6) {
1818 | expert_add_info(pinfo, atom_item, &ei_sapdiag_atom_item_malformed);
1819 | break;
1820 | }
1821 | add_item_value_uint8(tvb, atom_item, atom_item_tree, hf_sapdiag_item_value, offset, "V Length");
1822 | offset+=1;
1823 | add_item_value_uint8(tvb, atom_item, atom_item_tree, hf_sapdiag_item_value, offset, "V Height");
1824 | offset+=1;
1825 | add_item_value_uint16(tvb, atom_item, atom_item_tree, hf_sapdiag_item_value, offset, "Function Code Offset");
1826 | offset+=2;
1827 | add_item_value_uint16(tvb, atom_item, atom_item_tree, hf_sapdiag_item_value, offset, "Text Offset");
1828 | offset+=2;
1829 | offset+=add_item_value_stringz_bounded(tvb, pinfo, atom_item, atom_item_tree, hf_sapdiag_item_value, offset, atom_item_end - offset, "Text", 1, &terminated);
1830 | if (!terminated || offset == atom_item_end) {
1831 | expert_add_info(pinfo, atom_item, &ei_sapdiag_atom_item_malformed);
1832 | break;
1833 | }
1834 | add_item_value_stringz_bounded(tvb, pinfo, atom_item, atom_item_tree, hf_sapdiag_item_value, offset, atom_item_end - offset, "Function Code", 1, &terminated);
1835 | if (!terminated) expert_add_info(pinfo, atom_item, &ei_sapdiag_atom_item_malformed);
1836 | break;
1837 |
1838 | } case 116:{ /* DIAG_DGOTYP_TABSTRIP_BUTTON */
1839 | if (atom_item_length < 9) {
1840 | expert_add_info(pinfo, atom_item, &ei_sapdiag_atom_item_malformed);
1841 | break;
1842 | }
1843 | add_item_value_uint8(tvb, atom_item, atom_item_tree, hf_sapdiag_item_value, offset, "V Length");
1844 | offset+=1;
1845 | add_item_value_uint8(tvb, atom_item, atom_item_tree, hf_sapdiag_item_value, offset, "V Height");
1846 | offset+=1;
1847 | add_item_value_uint8(tvb, atom_item, atom_item_tree, hf_sapdiag_item_value, offset, "Page Id");
1848 | offset+=1;
1849 | add_item_value_uint16(tvb, atom_item, atom_item_tree, hf_sapdiag_item_value, offset, "Function Code Offset");
1850 | offset+=2;
1851 | add_item_value_uint16(tvb, atom_item, atom_item_tree, hf_sapdiag_item_value, offset, "Text Offset");
1852 | offset+=2;
1853 | add_item_value_uint16(tvb, atom_item, atom_item_tree, hf_sapdiag_item_value, offset, "Id Offset");
1854 | offset+=2;
1855 | offset+=add_item_value_stringz_bounded(tvb, pinfo, atom_item, atom_item_tree, hf_sapdiag_item_value, offset, atom_item_end - offset, "Text", 1, &terminated);
1856 | if (!terminated || offset == atom_item_end) {
1857 | expert_add_info(pinfo, atom_item, &ei_sapdiag_atom_item_malformed);
1858 | break;
1859 | }
1860 | offset+=add_item_value_stringz_bounded(tvb, pinfo, atom_item, atom_item_tree, hf_sapdiag_item_value, offset, atom_item_end - offset, "Function Code", 1, &terminated);
1861 | if (!terminated || offset == atom_item_end) {
1862 | expert_add_info(pinfo, atom_item, &ei_sapdiag_atom_item_malformed);
1863 | break;
1864 | }
1865 | add_item_value_stringz_bounded(tvb, pinfo, atom_item, atom_item_tree, hf_sapdiag_item_value, offset, atom_item_end - offset, "ID", 1, &terminated);
1866 | if (!terminated) expert_add_info(pinfo, atom_item, &ei_sapdiag_atom_item_malformed);
1867 | break;
1868 |
1869 | } case 118: /* DIAG_DGOTYP_CHECKBUTTON_1" */
1870 | case 119:{ /* DIAG_DGOTYP_RADIOBUTTON_1 */
1871 | /* If the preference is set, report the item as partially dissected in the expert info */
1872 | if (global_sapdiag_highlight_items){
1873 | expert_add_info_format(pinfo, atom_item, &ei_sapdiag_atom_item_partial, "The Diag Atom is dissected partially (0x%.2x)", etype);
1874 | }
1875 | break;
1876 |
1877 | } case 120:{ /* DIAG_DGOTYP_XMLPROP */
1878 | add_item_value_string(tvb, pinfo, atom_item, atom_item_tree, hf_sapdiag_item_value, offset, atom_item_length, "XMLProp", 1);
1879 | proto_item_append_text(atom, ", XMLProp=%s", tvb_get_string_enc(pinfo->pool, tvb, offset, atom_item_length, ENC_ASCII0x00000000));
1880 | break;
1881 |
1882 | } case 121: /* DIAG_DGOTYP_EFIELD_1 */
1883 | case 122: /* DIAG_DGOTYP_OFIELD_1 */
1884 | case 123:{ /* DIAG_DGOTYP_KEYWORD_1_1 */
1885 | if (atom_item_length < 5) {
1886 | expert_add_info(pinfo, atom_item, &ei_sapdiag_atom_item_malformed);
1887 | break;
1888 | }
1889 | /* Found in NW 7.00 and 7.01 versions */
1890 | add_item_value_uint8(tvb, atom_item, atom_item_tree, hf_sapdiag_item_value, offset, "Flag1");
1891 | offset+=1;
1892 | atom_item_length-=1;
1893 | add_item_value_uint8(tvb, atom_item, atom_item_tree, hf_sapdiag_item_value, offset, "DLen");
1894 | offset+=1;
1895 | atom_item_length-=1;
1896 | add_item_value_uint8(tvb, atom_item, atom_item_tree, hf_sapdiag_item_value, offset, "MLen");
1897 | offset+=1;
1898 | atom_item_length-=1;
1899 | add_item_value_uint16(tvb, atom_item, atom_item_tree, hf_sapdiag_item_value, offset, "MaxNrChars");
1900 | offset+=2;
1901 | atom_item_length-=2;
1902 | add_item_value_string(tvb, pinfo, atom_item, atom_item_tree, hf_sapdiag_item_value, offset, atom_item_length, "Text", 0);
1903 |
1904 | break;
1905 |
1906 | } case 127:{ /* DIAG_DGOTYP_FRAME_1 */
1907 | if (atom_item_length < 4) {
1908 | expert_add_info(pinfo, atom_item, &ei_sapdiag_atom_item_malformed);
1909 | break;
1910 | }
1911 | add_item_value_uint16(tvb, atom_item, atom_item_tree, hf_sapdiag_item_value, offset, "DRows");
1912 | offset+=2;
1913 | atom_item_length-=2;
1914 | add_item_value_uint16(tvb, atom_item, atom_item_tree, hf_sapdiag_item_value, offset, "DCols");
1915 | offset+=2;
1916 | atom_item_length-=2;
1917 | add_item_value_string(tvb, pinfo, atom_item, atom_item_tree, hf_sapdiag_item_value, offset, atom_item_length, "Text", 1); offset+=atom_item_length;
| Value stored to 'offset' is never read
1918 | break;
1919 |
1920 | } case 129:{ /* DIAG_DGOTYP_RADIOBUTTON_3 */
1921 | if (atom_item_length < 10) {
1922 | expert_add_info(pinfo, atom_item, &ei_sapdiag_atom_item_malformed);
1923 | break;
1924 | }
1925 | add_item_value_uint8(tvb, atom_item, atom_item_tree, hf_sapdiag_item_value, offset, "Button");
1926 | offset+=1;
1927 | atom_item_length-=1;
1928 | add_item_value_uint16(tvb, atom_item, atom_item_tree, hf_sapdiag_item_value, offset, "Visible Label Length");
1929 | offset+=2;
1930 | atom_item_length-=2;
1931 | add_item_value_uint16(tvb, atom_item, atom_item_tree, hf_sapdiag_item_value, offset, "EventID Off");
1932 | offset+=2;
1933 | atom_item_length-=2;
1934 | add_item_value_uint8(tvb, atom_item, atom_item_tree, hf_sapdiag_item_value, offset, "EventID Len");
1935 | offset+=1;
1936 | atom_item_length-=1;
1937 | add_item_value_uint16(tvb, atom_item, atom_item_tree, hf_sapdiag_item_value, offset, "Text Off");
1938 | offset+=2;
1939 | atom_item_length-=2;
1940 | add_item_value_uint16(tvb, atom_item, atom_item_tree, hf_sapdiag_item_value, offset, "Text Length");
1941 | offset+=2;
1942 | atom_item_length-=2;
1943 | add_item_value_string(tvb, pinfo, atom_item, atom_item_tree, hf_sapdiag_item_value, offset, atom_item_length, "Text", 1);
1944 | break;
1945 |
1946 | } case 130: /* DIAG_DGOTYP_EFIELD_2 */
1947 | case 131: /* DIAG_DGOTYP_OFIELD_2 */
1948 | case 132:{ /* DIAG_DGOTYP_KEYWORD_2 */
1949 | if (atom_item_length < 6) {
1950 | expert_add_info(pinfo, atom_item, &ei_sapdiag_atom_item_malformed);
1951 | break;
1952 | }
1953 | add_item_value_uint16(tvb, atom_item, atom_item_tree, hf_sapdiag_item_value, offset, "Flag1");
1954 | offset+=2;
1955 | atom_item_length-=2;
1956 | add_item_value_uint8(tvb, atom_item, atom_item_tree, hf_sapdiag_item_value, offset, "DLen");
1957 | offset+=1;
1958 | atom_item_length-=1;
1959 | add_item_value_uint8(tvb, atom_item, atom_item_tree, hf_sapdiag_item_value, offset, "MLen");
1960 | offset+=1;
1961 | atom_item_length-=1;
1962 | add_item_value_uint16(tvb, atom_item, atom_item_tree, hf_sapdiag_item_value, offset, "MaxNrChars");
1963 | offset+=2;
1964 | atom_item_length-=2;
1965 | add_item_value_string(tvb, pinfo, atom_item, atom_item_tree, hf_sapdiag_item_value, offset, atom_item_length, "Text", 0);
1966 | break;
1967 |
1968 | } default:
1969 | /* If the preference is set, report the item as unknown in the expert info */
1970 | if (global_sapdiag_highlight_items){
1971 | expert_add_info_format(pinfo, atom_item, &ei_sapdiag_atom_item_unknown, "The Diag Atom has a unknown type that is not dissected (%d)", etype);
1972 | }
1973 | break;
1974 | }
1975 |
1976 | offset = atom_item_end;
1977 | }
1978 |
1979 | }
1980 |
1981 | static void
1982 | dissect_sapdiag_menu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, uint32_t offset, uint32_t length){
1983 |
1984 | uint32_t final = offset + length;
1985 | uint32_t menu_length, menu_end;
1986 | bool_Bool terminated;
1987 |
1988 | proto_item *menu = NULL((void*)0);
1989 | proto_tree *menu_tree = NULL((void*)0);
1990 |
1991 | while (offset < final){
1992 | if (final - offset < 2) {
1993 | expert_add_info(pinfo, tree, &ei_sapdiag_item_length_invalid);
1994 | break;
1995 | }
1996 |
1997 | menu_length = tvb_get_ntohs(tvb, offset);
1998 | if (menu_length < SAPDIAG_MENU_ENTRY_HEADER_LEN20 || menu_length > final - offset) {
1999 | expert_add_info(pinfo, tree, &ei_sapdiag_item_length_invalid);
2000 | break;
2001 | }
2002 | menu_end = offset + menu_length;
2003 |
2004 | /* Add the menu entry subtree */
2005 | menu = proto_tree_add_item(tree, hf_sapdiag_item_menu_entry, tvb, offset, menu_length, ENC_NA0x00000000);
2006 | menu_tree = proto_item_add_subtree(menu, ett_sapdiag);
2007 |
2008 | add_item_value_uint16(tvb, menu, menu_tree, hf_sapdiag_item_value, offset, "Length");
2009 | offset+=2;
2010 |
2011 | add_item_value_uint8(tvb, menu, menu_tree, hf_sapdiag_item_value, offset, "Position 1");
2012 | offset+=1;
2013 | add_item_value_uint8(tvb, menu, menu_tree, hf_sapdiag_item_value, offset, "Position 2");
2014 | offset+=1;
2015 | add_item_value_uint8(tvb, menu, menu_tree, hf_sapdiag_item_value, offset, "Position 3");
2016 | offset+=1;
2017 | add_item_value_uint8(tvb, menu, menu_tree, hf_sapdiag_item_value, offset, "Position 4");
2018 | offset+=1;
2019 |
2020 | add_item_value_uint8(tvb, menu, menu_tree, hf_sapdiag_item_value, offset, "Flag"); /* XXX: Add flag values */
2021 | offset+=1;
2022 | add_item_value_uint8(tvb, menu, menu_tree, hf_sapdiag_item_value, offset, "Virtual Key");
2023 | offset+=1;
2024 |
2025 | add_item_value_uint8(tvb, menu, menu_tree, hf_sapdiag_item_value, offset, "Return Code 1");
2026 | offset+=1;
2027 | add_item_value_uint8(tvb, menu, menu_tree, hf_sapdiag_item_value, offset, "Return Code 2");
2028 | offset+=1;
2029 | add_item_value_uint8(tvb, menu, menu_tree, hf_sapdiag_item_value, offset, "Return Code 3");
2030 | offset+=1;
2031 | add_item_value_uint8(tvb, menu, menu_tree, hf_sapdiag_item_value, offset, "Return Code 4");
2032 | offset+=1;
2033 | add_item_value_uint8(tvb, menu, menu_tree, hf_sapdiag_item_value, offset, "Return Code 5");
2034 | offset+=1;
2035 | add_item_value_uint8(tvb, menu, menu_tree, hf_sapdiag_item_value, offset, "Return Code 6");
2036 | offset+=1;
2037 |
2038 | add_item_value_uint8(tvb, menu, menu_tree, hf_sapdiag_item_value, offset, "Function Code 1");
2039 | offset+=1;
2040 | add_item_value_uint8(tvb, menu, menu_tree, hf_sapdiag_item_value, offset, "Function Code 2");
2041 | offset+=1;
2042 | add_item_value_uint8(tvb, menu, menu_tree, hf_sapdiag_item_value, offset, "Function Code 3");
2043 | offset+=1;
2044 | add_item_value_uint8(tvb, menu, menu_tree, hf_sapdiag_item_value, offset, "Function Code 4");
2045 | offset+=1;
2046 | add_item_value_uint8(tvb, menu, menu_tree, hf_sapdiag_item_value, offset, "Function Code 5");
2047 | offset+=1;
2048 | add_item_value_uint8(tvb, menu, menu_tree, hf_sapdiag_item_value, offset, "Function Code 6");
2049 | offset+=1;
2050 |
2051 | offset+=add_item_value_stringz_bounded(tvb, pinfo, menu, menu_tree, hf_sapdiag_item_value, offset, menu_end - offset, "Text", 1, &terminated);
2052 | if (!terminated || offset == menu_end) {
2053 | expert_add_info(pinfo, menu, &ei_sapdiag_item_length_invalid);
2054 | offset = menu_end;
2055 | continue;
2056 | }
2057 |
2058 | offset+=add_item_value_stringz_bounded(tvb, pinfo, menu, menu_tree, hf_sapdiag_item_value, offset, menu_end - offset, "Accelerator", 1, &terminated);
2059 | if (!terminated || offset == menu_end) {
2060 | expert_add_info(pinfo, menu, &ei_sapdiag_item_length_invalid);
2061 | offset = menu_end;
2062 | continue;
2063 | }
2064 |
2065 | add_item_value_stringz_bounded(tvb, pinfo, menu, menu_tree, hf_sapdiag_item_value, offset, menu_end - offset, "Info", 1, &terminated);
2066 | if (!terminated) expert_add_info(pinfo, menu, &ei_sapdiag_item_length_invalid);
2067 | offset = menu_end;
2068 | }
2069 |
2070 | }
2071 |
2072 | static void
2073 | dissect_sapdiag_uievent(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, uint32_t offset, uint32_t length){
2074 |
2075 | proto_item *event_valid_item = NULL((void*)0);
2076 | proto_tree *event_valid_tree = NULL((void*)0);
2077 | uint8_t event_valid = 0;
2078 | uint16_t container_nrs = 0, i = 0;
2079 |
2080 | if (length < 1) {
2081 | expert_add_info(pinfo, tree, &ei_sapdiag_item_length_invalid);
2082 | return;
2083 | }
2084 |
2085 | event_valid = tvb_get_uint8(tvb, offset);
2086 | if (length < ((event_valid & SAPDIAG_UI_EVENT_VALID_FLAG_NAVIGATION_DATA0x04) ? 12U : 15U)) {
2087 | expert_add_info(pinfo, tree, &ei_sapdiag_item_length_invalid);
2088 | return;
2089 | }
2090 |
2091 | event_valid_item = proto_tree_add_item(tree, hf_sapdiag_item_ui_event_valid, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
2092 | event_valid_tree = proto_item_add_subtree(event_valid_item, ett_sapdiag);
2093 |
2094 | proto_tree_add_item(event_valid_tree, hf_sapdiag_item_ui_event_valid_MENU_POS, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
2095 | proto_tree_add_item(event_valid_tree, hf_sapdiag_item_ui_event_valid_CONTROL_POS, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
2096 | proto_tree_add_item(event_valid_tree, hf_sapdiag_item_ui_event_valid_NAVIGATION_DATA, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
2097 | proto_tree_add_item(event_valid_tree, hf_sapdiag_item_ui_event_valid_FUNCTIONKEY_DATA, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000); offset+=1;length-=1;
2098 |
2099 | proto_tree_add_item(tree, hf_sapdiag_item_ui_event_event_type, tvb, offset, 2, ENC_BIG_ENDIAN0x00000000);
2100 | proto_item_append_text(tree, ", Event Type=%s", val_to_str_const(tvb_get_ntohs(tvb, offset), sapdiag_item_ui_event_event_type_vals, "Unknown")); offset+=2;length-=2;
2101 |
2102 | proto_tree_add_item(tree, hf_sapdiag_item_ui_event_control_type, tvb, offset, 2, ENC_BIG_ENDIAN0x00000000);
2103 | proto_item_append_text(tree, ", Control Type=%s", val_to_str_const(tvb_get_ntohs(tvb, offset), sapdiag_item_ui_event_control_type_vals, "Unknown")); offset+=2;length-=2;
2104 |
2105 | /* The semantic of the event data changes depending of the event valid flag and are ignored if the
2106 | SAPDIAG_UI_EVENT_VALID_FLAG_NAVIGATION_DATA flag or the SAPDIAG_UI_EVENT_VALID_FLAG_FUNCTIONKEY_DATA
2107 | flags are not set. We dissect them always. */
2108 | if (event_valid & SAPDIAG_UI_EVENT_VALID_FLAG_NAVIGATION_DATA0x04){
2109 | proto_tree_add_item(tree, hf_sapdiag_item_ui_event_navigation_data, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
2110 | offset+=1;
2111 | length-=1;
2112 | } else { /* SAPDIAG_UI_EVENT_VALID_FLAG_FUNCTIONKEY_DATA */
2113 | proto_tree_add_item(tree, hf_sapdiag_item_ui_event_data, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
2114 | offset+=1;
2115 | length-=1;
2116 | proto_tree_add_item(tree, hf_sapdiag_item_ui_event_data, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
2117 | offset+=1;
2118 | length-=1;
2119 | proto_tree_add_item(tree, hf_sapdiag_item_ui_event_data, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
2120 | offset+=1;
2121 | length-=1;
2122 | proto_tree_add_item(tree, hf_sapdiag_item_ui_event_data, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
2123 | offset+=1;
2124 | length-=1;
2125 | }
2126 |
2127 | /* These items are ignored if the flag SAPDIAG_UI_EVENT_VALID_FLAG_CONTROL_POS is not set. We dissect them always. */
2128 | proto_tree_add_item(tree, hf_sapdiag_item_ui_event_control_row, tvb, offset, 2, ENC_BIG_ENDIAN0x00000000);
2129 | offset+=2;
2130 | length-=2;
2131 | proto_tree_add_item(tree, hf_sapdiag_item_ui_event_control_col, tvb, offset, 2, ENC_BIG_ENDIAN0x00000000);
2132 | offset+=2;
2133 | length-=2;
2134 |
2135 | i = container_nrs = tvb_get_ntohs(tvb, offset);
2136 | proto_tree_add_item(tree, hf_sapdiag_item_ui_event_container_nrs, tvb, offset, 2, ENC_BIG_ENDIAN0x00000000);
2137 | offset+=2;
2138 | length-=2;
2139 |
2140 | while (i>0 && length>0){
2141 | proto_tree_add_item(tree, hf_sapdiag_item_ui_event_container, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
2142 | offset+=1;
2143 | length-=1;
2144 | i--;
2145 | }
2146 |
2147 | if (i>0){
2148 | expert_add_info_format(pinfo, tree, &ei_sapdiag_dynt_focus_more_cont_ids, "Number of Container IDs (%d) is invalid", container_nrs);
2149 | }
2150 | }
2151 |
2152 | static void
2153 | dissect_sapdiag_item(tvbuff_t *tvb, packet_info *pinfo, proto_item *item, proto_tree *item_value_tree, proto_tree *parent_tree, uint32_t offset, uint8_t item_type, uint8_t item_id, uint8_t item_sid, uint32_t item_length){
2154 |
2155 | /* SES item */
2156 | if (item_type==0x01){
2157 | uint8_t event_array = 0;
2158 | if (!check_length(pinfo, item_value_tree, 16, item_length, "SES")) return;
2159 |
2160 | event_array = tvb_get_uint8(tvb, offset);
2161 | add_item_value_uint8(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Event Array");
2162 | offset+=1;
2163 | add_item_value_uint8(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Event ID 1");
2164 | offset+=1;
2165 | add_item_value_uint8(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Event ID 2");
2166 | offset+=1;
2167 | add_item_value_uint8(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Event ID 3");
2168 | offset+=1;
2169 | add_item_value_uint8(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Event ID 4");
2170 | offset+=1;
2171 | add_item_value_uint8(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Event ID 5");
2172 | offset+=1;
2173 | add_item_value_uint8(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Screen Flag"); /* XXX: Add flag values */
2174 | offset+=1;
2175 | add_item_value_uint8(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Modal No");
2176 | offset+=1;
2177 | add_item_value_uint8(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "X Pos");
2178 | offset+=1;
2179 | add_item_value_uint8(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Y Pos");
2180 | offset+=1;
2181 | add_item_value_uint8(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "IMode");
2182 | offset+=1;
2183 | add_item_value_uint8(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Flag 1"); /* XXX: Add flag values */
2184 | offset+=3;
2185 | add_item_value_uint8(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Dim Row");
2186 | offset+=1;
2187 | add_item_value_uint8(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Dim Col");
2188 |
2189 | /* TODO: Incomplete dissection of this item */
2190 | /* If the preference is set, report the item as partially dissected in the expert info */
2191 | if (global_sapdiag_highlight_items){
2192 | expert_add_info_format(pinfo, item, &ei_sapdiag_item_partial, "The SES item is dissected partially (event array = 0x%.2x)", event_array);
2193 | }
2194 |
2195 | } else if (item_type==0x0a) { /* SFE */
2196 | if (!check_length(pinfo, item_value_tree, 3, item_length, "SFE")) return;
2197 | add_item_value_uint8(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Control format");
2198 | offset+=1;
2199 | add_item_value_uint8(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Control color");
2200 | offset+=1;
2201 | add_item_value_uint8(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Control extended");
2202 |
2203 | } else if (item_type==0x0b) { /* SBA */
2204 | if (!check_length(pinfo, item_value_tree, 2, item_length, "SBA")) return;
2205 | add_item_value_uint8(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Control y-position");
2206 | offset+=1;
2207 | add_item_value_uint8(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Control x-position");
2208 |
2209 | } else if (item_type==0x10 && item_id==0x04 && item_sid==0x26){ /* Dialog Step Number */
2210 | if (!check_length(pinfo, item_value_tree, 4, item_length, "Dialog Step Number")) return;
2211 | add_item_value_uint32(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Dialog Step Number");
2212 |
2213 | } else if (item_type==0x10 && item_id==0x04 && item_sid==0x02){ /* Connect */
2214 | if (!check_length(pinfo, item_value_tree, 12, item_length, "Connect")) return;
2215 | add_item_value_uint32(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Protocol Version");
2216 | offset+=4;
2217 | add_item_value_uint32(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Code Page");
2218 | offset+=4;
2219 | add_item_value_uint32(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "WS Type");
2220 |
2221 | } else if (item_type==0x10 && item_id==0x04 && item_sid==0x04){ /* Font Metric */
2222 | if (!check_length(pinfo, item_value_tree, 8, item_length, "Font Metric")) return;
2223 | add_item_value_uint16(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Variable font size (y)");
2224 | offset+=2;
2225 | add_item_value_uint16(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Variable font size (x)");
2226 | offset+=2;
2227 | add_item_value_uint16(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Fixed font size (y)");
2228 | offset+=2;
2229 | add_item_value_uint16(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Fixed font size (x)");
2230 |
2231 | } else if ((item_type==0x10 && item_id==0x04 && item_sid==0x0b) || /* Support Data */
2232 | (item_type==0x10 && item_id==0x06 && item_sid==0x11)){
2233 | if (!check_length(pinfo, item_value_tree, 32, item_length, "Support Data")) return;
2234 | dissect_sapdiag_support_bits(tvb, item_value_tree, offset);
2235 |
2236 | } else if (item_type==0x10 && item_id==0x04 && item_sid==0x0d){ /* Window Size */
2237 | if (!check_length(pinfo, item_value_tree, 16, item_length, "Window Size")) return;
2238 | add_item_value_uint32(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Window Height");
2239 | offset+=4;
2240 | add_item_value_uint32(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Window Width");
2241 | offset+=4;
2242 | add_item_value_uint32(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Area Height");
2243 | offset+=4;
2244 | add_item_value_uint32(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Area Width");
2245 |
2246 | } else if (item_type==0x10 && item_id==0x04 && item_sid==0x0f){ /* Turn Time 2 (Response time) */
2247 | if (!check_length(pinfo, item_value_tree, 4, item_length, "Response time")) return;
2248 | add_item_value_uint32(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Response time");
2249 |
2250 | } else if (item_type==0x10 && item_id==0x04 && item_sid==0x16){ /* Scrollbar Width */
2251 | if (!check_length(pinfo, item_value_tree, 2, item_length, "Scrollbar Width")) return;
2252 | add_item_value_uint16(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Scrolllbar Width");
2253 |
2254 | } else if (item_type==0x10 && item_id==0x04 && item_sid==0x17){ /* Scrollbar Height */
2255 | if (!check_length(pinfo, item_value_tree, 2, item_length, "Scrollbar Height")) return;
2256 | add_item_value_uint16(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Scrollbar Height");
2257 |
2258 | } else if (item_type==0x10 && item_id==0x04 && item_sid==0x19){ /* Gui State */
2259 | if (!check_length(pinfo, item_value_tree, 2, item_length, "Gui State")) return;
2260 | add_item_value_uint8(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Flag 1");
2261 | offset+=1;
2262 | add_item_value_uint8(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Flag 2");
2263 |
2264 | } else if (item_type==0x10 && item_id==0x04 && item_sid==0x1d){ /* GUI patch level */
2265 |
2266 | /* GUI Patch level could be a string in old versions, or a single byte integer in newer ones */
2267 | if (item_length == 2){
2268 | add_item_value_string(tvb, pinfo, item, item_value_tree, hf_sapdiag_item_value, offset, 2, "GUI patch level", 1);
2269 | } else {
2270 | if (!check_length(pinfo, item_value_tree, 1, item_length, "GUI patch level")) return;
2271 | add_item_value_uint8(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "GUI patch level");
2272 | }
2273 |
2274 | } else if (item_type==0x10 && item_id==0x04 && item_sid==0x24){ /* Display Size */
2275 | if (!check_length(pinfo, item_value_tree, 8, item_length, "Display Size")) return;
2276 | add_item_value_uint32(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Height");
2277 | offset+=4;
2278 | add_item_value_uint32(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Height");
2279 |
2280 | } else if (item_type==0x10 && item_id==0x04 && item_sid==0x25){ /* GUI Type */
2281 | if (!check_length(pinfo, item_value_tree, 2, item_length, "GUI Type")) return;
2282 | add_item_value_uint16(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "GUI Type");
2283 |
2284 | } else if (item_type==0x10 && item_id==0x06 && item_sid==0x01){ /* Mode Number */
2285 | if (!check_length(pinfo, item_value_tree, 2, item_length, "Mode Number")) return;
2286 | add_item_value_uint16(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Mode Number");
2287 |
2288 | } else if (item_type==0x10 && item_id==0x06 && item_sid==0x06){ /* Diag version */
2289 | if (!check_length(pinfo, item_value_tree, 2, item_length, "Diag version")) return;
2290 | add_item_value_uint16(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Diag version");
2291 |
2292 | } else if (item_type==0x10 && item_id==0x06 && item_sid==0x0a){ /* Internal Mode Number */
2293 | if (!check_length(pinfo, item_value_tree, 2, item_length, "Internal Mode Number")) return;
2294 | add_item_value_uint16(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Internal Mode Number");
2295 |
2296 | } else if (item_type==0x10 && item_id==0x06 && item_sid==0x13){ /* GUI_FKEY */
2297 | uint32_t length = offset+item_length;
2298 | if (!check_min_length(pinfo, item_value_tree, 2, item_length, "GUI_FKEY")) return;
2299 | offset++; /* TODO: Skip one byte here */
2300 | offset+=add_item_value_stringz(tvb, pinfo, item, item_value_tree, hf_sapdiag_item_value, offset, "Virtual key number", 1);
2301 | while ((offset < length) && tvb_offset_exists(tvb, offset)){
2302 | offset+=add_item_value_stringz(tvb, pinfo, item, item_value_tree, hf_sapdiag_item_value, offset, "String number", 1);
2303 | }
2304 | /* If the preference is set, report the item as partially dissected in the expert info */
2305 | if (global_sapdiag_highlight_items){
2306 | expert_add_info_format(pinfo, item, &ei_sapdiag_item_partial, "The Diag Item is dissected partially (0x%.2x, 0x%.2x, 0x%.2x)", item_type, item_id, item_sid);
2307 | }
2308 |
2309 | } else if (item_type==0x10 && item_id==0x06 && item_sid==0x14){ /* GUI_FKEYT */
2310 | if (!check_min_length(pinfo, item_value_tree, 4, item_length, "GUI_FKEYT")) return;
2311 | offset++; /* TODO: Skip one byte here */
2312 | add_item_value_uint8(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Virtual key number");
2313 | offset+=2; /* TODO: Skip one byte here */
2314 | add_item_value_stringz(tvb, pinfo, item, item_value_tree, hf_sapdiag_item_value, offset, "Virtual key text", 1);
2315 | /* If the preference is set, report the item as partially dissected in the expert info */
2316 | if (global_sapdiag_highlight_items){
2317 | expert_add_info_format(pinfo, item, &ei_sapdiag_item_partial, "The Diag Item is dissected partially (0x%.2x, 0x%.2x, 0x%.2x)", item_type, item_id, item_sid);
2318 | }
2319 |
2320 | } else if (item_type==0x10 && item_id==0x06 && item_sid==0x16){ /* RFC Diag Block Size */
2321 | if (!check_length(pinfo, item_value_tree, 4, item_length, "RFC Diag Block Size")) return;
2322 | add_item_value_uint32(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "RFC Diag Block Size");
2323 |
2324 | } else if (item_type==0x10 && item_id==0x06 && item_sid==0x18){ /* Info flags */
2325 | if (!check_length(pinfo, item_value_tree, 2, item_length, "Info flags")) return;
2326 | add_item_value_uint16(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Info flags");
2327 | /* If the preference is set, report the item as partially dissected in the expert info */
2328 | if (global_sapdiag_highlight_items){
2329 | expert_add_info_format(pinfo, item, &ei_sapdiag_item_partial, "The Diag Item is dissected partially (0x%.2x, 0x%.2x, 0x%.2x)", item_type, item_id, item_sid);
2330 | }
2331 |
2332 | } else if (item_type==0x10 && item_id==0x06 && item_sid==0x19){ /* User ID */
2333 | if (!check_length(pinfo, item_value_tree, 2, item_length, "User ID")) return;
2334 | add_item_value_uint16(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "User ID");
2335 |
2336 | } else if (item_type==0x10 && item_id==0x06 && item_sid==0x1f){ /* IMode uuids 2 */
2337 | uint8_t uuids;
2338 | if (!check_min_length(pinfo, item_value_tree, 1, item_length, "IMode uuids")) return;
2339 | uuids = tvb_get_uint8(tvb, offset);
2340 | if (!check_length(pinfo, item_value_tree, 1 + 17 * uuids, item_length, "IMode uuids") ) return;
2341 | add_item_value_uint8(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Number of uuids");
2342 | offset+=1;
2343 | while ((uuids > 0) && (tvb_offset_exists(tvb, offset + 16 + 1))){
2344 | add_item_value_hexstring(tvb, pinfo, item, item_value_tree, hf_sapdiag_item_value, offset, 16, "UUID");
2345 | offset+=16;
2346 | add_item_value_uint8(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Active context");
2347 | offset+=1;
2348 | uuids--;
2349 | }
2350 |
2351 | } else if (item_type==0x10 && item_id==0x06 && item_sid==0x22){ /* Auto logout time */
2352 | if (!check_length(pinfo, item_value_tree, 4, item_length, "Auto logout time")) return;
2353 | add_item_value_uint32(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Auto logout time");
2354 |
2355 | } else if (item_type==0x10 && item_id==0x06 && item_sid==0x23){ /* Codepage Diag GUI */
2356 | if (!check_min_length(pinfo, item_value_tree, 6, item_length, "Codepage Diag GUI")) return;
2357 | add_item_value_uint32(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Codepage number (numeric representation)");
2358 | offset+=4;
2359 | add_item_value_uint8(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Minimum number of bytes per character");
2360 | offset+=1;
2361 | offset+=add_item_value_stringz(tvb, pinfo, item, item_value_tree, hf_sapdiag_item_value, offset, "Codepage number (string representation)", 1);
2362 | add_item_value_stringz(tvb, pinfo, item, item_value_tree, hf_sapdiag_item_value, offset, "Codepage description", 1);
2363 |
2364 | } else if (item_type==0x10 && item_id==0x06 && item_sid==0x27){ /* Codepage App Server */
2365 | if (!check_min_length(pinfo, item_value_tree, 6, item_length, "Codepage App Server")) return;
2366 | add_item_value_uint32(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Codepage number (numeric representation)");
2367 | offset+=4;
2368 | add_item_value_uint8(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Minimum number of bytes per character");
2369 | offset+=1;
2370 | offset+=add_item_value_stringz(tvb, pinfo, item, item_value_tree, hf_sapdiag_item_value, offset, "Codepage number (string representation)", 1);
2371 | add_item_value_stringz(tvb, pinfo, item, item_value_tree, hf_sapdiag_item_value, offset, "Codepage description", 1);
2372 |
2373 | } else if (item_type==0x10 && item_id==0x06 && item_sid==0x29){ /* Kernel Version */
2374 | offset+=add_item_value_stringz(tvb, pinfo, item, item_value_tree, hf_sapdiag_item_value, offset, "Database version", 1);
2375 | offset+=add_item_value_stringz(tvb, pinfo, item, item_value_tree, hf_sapdiag_item_value, offset, "Kernel version", 1);
2376 | add_item_value_stringz(tvb, pinfo, item, item_value_tree, hf_sapdiag_item_value, offset, "Kernel patch level", 1);
2377 |
2378 | } else if (item_type==0x10 && item_id==0x09 && item_sid==0x0b){ /* Dynt Focus */
2379 | uint32_t length = offset + item_length;
2380 | if (!check_min_length(pinfo, item_value_tree, 9, item_length, "Dynt Focus")) return;
2381 | add_item_value_uint8(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Focus Num of Area ID");
2382 | offset+=1;
2383 | add_item_value_uint16(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Focus Row");
2384 | offset+=2;
2385 | add_item_value_uint16(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Focus Col");
2386 | offset+=2;
2387 | add_item_value_uint16(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Focus Row Offset");
2388 | offset+=2;
2389 | add_item_value_uint16(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Focus Col Offset");
2390 | offset+=2;
2391 | /* Container IDs up to 30 */
2392 | if (length-offset > 30){
2393 | expert_add_info_format(pinfo, item, &ei_sapdiag_dynt_focus_more_cont_ids, "The Dynt Focus contains more than 30 Container IDs (%d)", offset);
2394 | }
2395 | /* Dissect all the remaining container IDs */
2396 | while((offset < length) && tvb_offset_exists(tvb, offset)){
2397 | add_item_value_uint8(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Focus Container ID");
2398 | offset+=1;
2399 | }
2400 |
2401 | } else if (item_type==0x10 && item_id==0x0a && item_sid==0x01){ /* Container Reset */
2402 | if (!check_length(pinfo, item_value_tree, 9, item_length, "Container Reset")) return;
2403 | add_item_value_uint8(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Container Id");
2404 | offset+=1;
2405 | add_item_value_uint16(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Container Row");
2406 | offset+=2;
2407 | add_item_value_uint16(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Container Col");
2408 | offset+=2;
2409 | add_item_value_uint16(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Container Width");
2410 | offset+=2;
2411 | add_item_value_uint16(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Container Height");
2412 |
2413 | } else if (item_type==0x10 && item_id==0x0a && item_sid==0x04){ /* Container Loop */
2414 | if (!check_length(pinfo, item_value_tree, 9, item_length, "Container Loop")) return;
2415 | add_item_value_uint8(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Container Id");
2416 | offset+=1;
2417 | add_item_value_uint16(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Container Row");
2418 | offset+=2;
2419 | add_item_value_uint16(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Container Col");
2420 | offset+=2;
2421 | add_item_value_uint16(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Container Width");
2422 | offset+=2;
2423 | add_item_value_uint16(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Container Height");
2424 |
2425 | } else if (item_type==0x10 && item_id==0x0a && item_sid==0x05){ /* Container Table */
2426 | if (!check_length(pinfo, item_value_tree, 9, item_length, "Container Table")) return;
2427 | add_item_value_uint8(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Container Id");
2428 | offset+=1;
2429 | add_item_value_uint16(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Container Row");
2430 | offset+=2;
2431 | add_item_value_uint16(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Container Col");
2432 | offset+=2;
2433 | add_item_value_uint16(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Container Width");
2434 | offset+=2;
2435 | add_item_value_uint16(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Container Height");
2436 |
2437 | } else if (item_type==0x10 && item_id==0x0a && item_sid==0x06){ /* Container Name */
2438 | offset+=add_item_value_stringz(tvb, pinfo, item, item_value_tree, hf_sapdiag_item_value, offset, "Subscreen name", 1);
2439 | offset+=add_item_value_stringz(tvb, pinfo, item, item_value_tree, hf_sapdiag_item_value, offset, "Container name", 1);
2440 | add_item_value_stringz(tvb, pinfo, item, item_value_tree, hf_sapdiag_item_value, offset, "Subdynpro name", 1);
2441 |
2442 | } else if (item_type==0x10 && item_id==0x0a && item_sid==0x08){ /* Container TabStrip */
2443 | if (!check_length(pinfo, item_value_tree, 9, item_length, "Container TabStrip")) return;
2444 | add_item_value_uint8(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Container Id");
2445 | offset+=1;
2446 | add_item_value_uint16(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Container Row");
2447 | offset+=2;
2448 | add_item_value_uint16(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Container Col");
2449 | offset+=2;
2450 | add_item_value_uint16(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Container Width");
2451 | offset+=2;
2452 | add_item_value_uint16(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Container Height");
2453 |
2454 | } else if (item_type==0x10 && item_id==0x0a && item_sid==0x09){ /* Container TabStrip Page */
2455 | if (!check_length(pinfo, item_value_tree, 9, item_length, "Container TabStrip Page")) return;
2456 | add_item_value_uint8(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Container Id");
2457 | offset+=1;
2458 | add_item_value_uint16(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Container Row");
2459 | offset+=2;
2460 | add_item_value_uint16(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Container Col");
2461 | offset+=2;
2462 | add_item_value_uint16(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Container Width");
2463 | offset+=2;
2464 | add_item_value_uint16(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Container Height");
2465 |
2466 | } else if (item_type==0x10 && item_id==0x0a && item_sid==0x0a){ /* Container Control */
2467 | if (!check_length(pinfo, item_value_tree, 9, item_length, "Container Control")) return;
2468 | add_item_value_uint8(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Container Id");
2469 | offset+=1;
2470 | add_item_value_uint16(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Container Row");
2471 | offset+=2;
2472 | add_item_value_uint16(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Container Col");
2473 | offset+=2;
2474 | add_item_value_uint16(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Container Width");
2475 | offset+=2;
2476 | add_item_value_uint16(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Container Height");
2477 |
2478 | } else if (item_type==0x10 && item_id==0x0c && item_sid==0x03){ /* Message type */
2479 | offset+=add_item_value_stringz(tvb, pinfo, item, item_value_tree, hf_sapdiag_item_value, offset, "T", 1);
2480 | offset+=add_item_value_stringz(tvb, pinfo, item, item_value_tree, hf_sapdiag_item_value, offset, "T", 1);
2481 | offset+=add_item_value_stringz(tvb, pinfo, item, item_value_tree, hf_sapdiag_item_value, offset, "T", 1);
2482 | add_item_value_stringz(tvb, pinfo, item, item_value_tree, hf_sapdiag_item_value, offset, "T", 1);
2483 |
2484 | } else if (item_type==0x10 && item_id==0x0c && item_sid==0x02){ /* Scroll Infos */
2485 | if (!check_length(pinfo, item_value_tree, 24, item_length, "Scroll Infos")) return;
2486 | add_item_value_uint32(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Total Height");
2487 | offset+=4;
2488 | add_item_value_uint32(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Total Width");
2489 | offset+=4;
2490 | add_item_value_uint32(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Data Height");
2491 | offset+=4;
2492 | add_item_value_uint32(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Data Width");
2493 | offset+=4;
2494 | add_item_value_uint32(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Height Offset");
2495 | offset+=4;
2496 | add_item_value_uint32(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Width Offset");
2497 |
2498 | } else if (item_type==0x10 && item_id==0x0c && item_sid==0x06){ /* Scroll Infos 2 */
2499 | if (!check_length(pinfo, item_value_tree, 33, item_length, "Scroll Infos 2")) return;
2500 | add_item_value_uint32(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Total Height");
2501 | offset+=4;
2502 | add_item_value_uint32(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Total Width");
2503 | offset+=4;
2504 | add_item_value_uint32(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Data Height");
2505 | offset+=4;
2506 | add_item_value_uint32(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Data Width");
2507 | offset+=4;
2508 | add_item_value_uint32(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Height Offset");
2509 | offset+=4;
2510 | add_item_value_uint32(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Width Offset");
2511 | offset+=4;
2512 | add_item_value_uint32(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Visible Height");
2513 | offset+=4;
2514 | add_item_value_uint32(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Visible Width");
2515 | offset+=4;
2516 | add_item_value_uint8(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Scroll Flag");
2517 |
2518 | } else if (item_type==0x10 && item_id==0x0c && item_sid==0x07){ /* Area Size */
2519 | if (!check_length(pinfo, item_value_tree, 16, item_length, "Area Size")) return;
2520 | add_item_value_uint32(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Window Height");
2521 | offset+=4;
2522 | add_item_value_uint32(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Window Width");
2523 | offset+=4;
2524 | add_item_value_uint32(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Area Height");
2525 | offset+=4;
2526 | add_item_value_uint32(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Area Width");
2527 |
2528 | } else if (item_type==0x10 && item_id==0x0c && item_sid==0x08){ /* Pixel Size */
2529 | if (!check_length(pinfo, item_value_tree, 16, item_length, "Pixel Size")) return;
2530 | add_item_value_uint32(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Window Height");
2531 | offset+=4;
2532 | add_item_value_uint32(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Window Width");
2533 | offset+=4;
2534 | add_item_value_uint32(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Area Height");
2535 | offset+=4;
2536 | add_item_value_uint32(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Area Width");
2537 |
2538 | } else if (item_type==0x10 && item_id==0x0c && item_sid==0x0c){ /* Container Loop */
2539 | if (!check_length(pinfo, item_value_tree, 2, item_length, "Container Loop")) return;
2540 | add_item_value_uint16(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Lines Per Loop Row");
2541 |
2542 | } else if (item_type==0x10 && item_id==0x0c && item_sid==0x0d){ /* List focus */
2543 | if (!check_length(pinfo, item_value_tree, 5, item_length, "List focus")) return;
2544 | add_item_value_uint8(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "List focus version");
2545 | offset+=1;
2546 | add_item_value_uint16(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "List focus Row");
2547 | offset+=2;
2548 | add_item_value_uint16(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "List focus Column");
2549 |
2550 | } else if (item_type==0x10 && item_id==0x0c && item_sid==0x0e){ /* Main Area Pixel Size */
2551 | if (!check_length(pinfo, item_value_tree, 16, item_length, "Main Area Pixel Size")) return;
2552 | add_item_value_uint32(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Window Height");
2553 | offset+=4;
2554 | add_item_value_uint32(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Window Width");
2555 |
2556 | /* Dynn items */
2557 | } else if ((item_type==0x09) || /* CHL */
2558 | (item_type==0x10 && item_id==0x05 && item_sid==0x01)){ /* Dynn Chln */
2559 | if (!check_min_length(pinfo, item_value_tree, 18, item_length, "CHL")) return;
2560 | add_item_value_uint16(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "scrflg");
2561 | offset+=2;
2562 | add_item_value_uint16(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "chlflag");
2563 | offset+=2;
2564 | add_item_value_uint8(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "current row");
2565 | offset+=1;
2566 | add_item_value_uint8(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "current column");
2567 | offset+=1;
2568 | add_item_value_uint8(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "V Slider Size");
2569 | offset+=1;
2570 | add_item_value_uint8(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "dimlistrow");
2571 | offset+=1;
2572 | add_item_value_uint8(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "dimlistcol");
2573 | offset+=1;
2574 | add_item_value_uint8(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "H Slider Size");
2575 | offset+=1;
2576 | add_item_value_uint8(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "dimrow");
2577 | offset+=1;
2578 | add_item_value_uint8(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "dimcol");
2579 | offset+=1;
2580 | add_item_value_uint16(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "maxlistrow");
2581 | offset+=2;
2582 | add_item_value_uint16(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "listrowoffset");
2583 | offset+=2;
2584 | add_item_value_uint8(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "maxlistcol");
2585 | offset+=1;
2586 | add_item_value_uint8(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "listcoloffset");
2587 |
2588 | /* If the preference is set, report the item as partially dissected in the expert info */
2589 | if (global_sapdiag_highlight_items){
2590 | expert_add_info_format(pinfo, item, &ei_sapdiag_item_partial, "The Diag Item is dissected partially (0x%.2x, 0x%.2x, 0x%.2x)", item_type, item_id, item_sid);
2591 | }
2592 |
2593 | /* Control Properties */
2594 | } else if (item_type==0x10 && item_id==0x0e && item_sid==0x01){ /* Control Properties */
2595 | uint32_t length = offset + item_length;
2596 |
2597 | while (length - offset >= 3){ /* Two bytes for ID and at least a null value. */
2598 | proto_tree_add_item(item_value_tree, hf_sapdiag_item_control_properties_id, tvb, offset, 2, ENC_BIG_ENDIAN0x00000000);
2599 | proto_item_append_text(item, ", Control Property ID=%d", tvb_get_ntohs(tvb, offset));
2600 | offset+=2;
2601 | offset+=add_item_value_stringz(tvb, pinfo, item, item_value_tree, hf_sapdiag_item_control_properties_value, offset, "Control Property Value", 1);
2602 | }
2603 | if (offset < length) expert_add_info(pinfo, item, &ei_sapdiag_item_length_invalid);
2604 |
2605 | /* UI event source */
2606 | } else if (item_type==0x10 && item_id==0x0f && item_sid==0x01){ /* UI Event Source */
2607 | dissect_sapdiag_uievent(tvb, pinfo, item_value_tree, offset, item_length);
2608 |
2609 | /* GUI Packet state */
2610 | } else if (item_type==0x10 && item_id==0x14 && item_sid==0x01){ /* GUI Packet state */
2611 | if (!check_length(pinfo, item_value_tree, 13, item_length, "GUI Packet state")) return;
2612 | add_item_value_uint8(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Flags"); /* TODO: Add flag values */
2613 | offset+=1;
2614 | add_item_value_uint32(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Bytes Total");
2615 | offset+=4;
2616 | add_item_value_uint32(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Bytes Send");
2617 | offset+=4;
2618 | add_item_value_uint32(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Bytes Received");
2619 |
2620 | /* Dynt items */
2621 | } else if ((item_type==0x12 && item_id==0x09 && item_sid==0x02) || /* Dynt Atom */
2622 | (item_type==0x10 && item_id==0x09 && item_sid==0x02)) {
2623 | dissect_sapdiag_dyntatom(tvb, pinfo, item_value_tree, offset, item_length);
2624 |
2625 | /* String items */
2626 | } else if ((item_type==0x10 && item_id==0x04 && item_sid==0x09) || /* Gui Version */
2627 | (item_type==0x10 && item_id==0x04 && item_sid==0x1a) || /* Decimal character */
2628 | (item_type==0x10 && item_id==0x04 && item_sid==0x1b) || /* Language */
2629 | (item_type==0x10 && item_id==0x04 && item_sid==0x1c) || /* Username */
2630 | (item_type==0x10 && item_id==0x04 && item_sid==0x1f) || /* Gui OS Version */
2631 | (item_type==0x10 && item_id==0x04 && item_sid==0x20) || /* Browser Version */
2632 | (item_type==0x10 && item_id==0x04 && item_sid==0x21) || /* Office Version */
2633 | (item_type==0x10 && item_id==0x06 && item_sid==0x02) || /* Database name */
2634 | (item_type==0x10 && item_id==0x06 && item_sid==0x03) || /* CPU name */
2635 | (item_type==0x10 && item_id==0x06 && item_sid==0x07) || /* Transaction code */
2636 | (item_type==0x10 && item_id==0x06 && item_sid==0x0b) || /* Message */
2637 | (item_type==0x10 && item_id==0x06 && item_sid==0x0c) || /* Client */
2638 | (item_type==0x10 && item_id==0x06 && item_sid==0x0d) || /* Dynpro name */
2639 | (item_type==0x10 && item_id==0x06 && item_sid==0x0e) || /* Dynpro number */
2640 | (item_type==0x10 && item_id==0x06 && item_sid==0x0f) || /* Cuaname */
2641 | (item_type==0x10 && item_id==0x06 && item_sid==0x10) || /* Cuastatus */
2642 | (item_type==0x10 && item_id==0x06 && item_sid==0x21) || /* Context ID */
2643 | (item_type==0x10 && item_id==0x06 && item_sid==0x24) || /* Codepage application server */
2644 | (item_type==0x10 && item_id==0x06 && item_sid==0x25) || /* GUI Theme */
2645 | (item_type==0x10 && item_id==0x09 && item_sid==0x12) || /* Control Focus */
2646 | (item_type==0x10 && item_id==0x0c && item_sid==0x04) || /* OK Code */
2647 | (item_type==0x10 && item_id==0x0c && item_sid==0x09) || /* Session title */
2648 | (item_type==0x10 && item_id==0x0c && item_sid==0x0a) || /* Session icon */
2649 | (item_type==0x10 && item_id==0x0c && item_sid==0x0b)) /* List Cell text */
2650 | {
2651 | add_item_value_string(tvb, pinfo, item, item_value_tree, hf_sapdiag_item_value, offset, item_length, "Value", 1);
2652 |
2653 | /* RFC Embedded calls */
2654 | } else if (item_type==0x10 && item_id==0x08){ /* RFC_TR */
2655 | dissect_sapdiag_rfc_call(tvb, pinfo, parent_tree, offset, item_length);
2656 |
2657 | /* String items (long text) */
2658 | } else if (item_type==0x11){ /* Data Stream */
2659 | add_item_value_string(tvb, pinfo, item, item_value_tree, hf_sapdiag_item_value, offset, item_length, "Value", 0);
2660 |
2661 | /* Tab Strip Controls */
2662 | } else if ((item_type==0x12 && item_id==0x09 && item_sid==0x10)) {
2663 | dissect_sapdiag_dyntatom(tvb, pinfo, item_value_tree, offset, item_length);
2664 |
2665 | /* Menu Entries items */
2666 | } else if ((item_type==0x12 && item_id==0x0b)) {
2667 | dissect_sapdiag_menu(tvb, pinfo, item_value_tree, offset, item_length);
2668 |
2669 | } else if (item_type==0x13) { /* SLC */
2670 | if (!check_length(pinfo, item_value_tree, 2, item_length, "SLC")) return;
2671 | add_item_value_uint16(tvb, item, item_value_tree, hf_sapdiag_item_value, offset, "Field length in characters");
2672 |
2673 | /* Another unknown item */
2674 | } else {
2675 | /* If the preference is set, report the item as unknown in the expert info */
2676 | if (global_sapdiag_highlight_items){
2677 | expert_add_info_format(pinfo, item, &ei_sapdiag_item_unknown, "The Diag Item has a unknown type that is not dissected (0x%.2x, 0x%.2x, 0x%.2x)", item_type, item_id, item_sid);
2678 | }
2679 | }
2680 | }
2681 |
2682 | static const char *
2683 | get_appl_string(uint8_t item_id, uint8_t item_sid){
2684 | const char *item_name_string = NULL((void*)0);
2685 |
2686 | switch (item_id){
2687 | case 0x01:{ /* SCRIPT */
2688 | item_name_string = val_to_str_const(item_sid, sapdiag_item_appl_script_vals, "Unknown");
2689 | break;
2690 | } case 0x02:{ /* GRAPH */
2691 | item_name_string = val_to_str_const(item_sid, sapdiag_item_appl_graph_vals, "Unknown");
2692 | break;
2693 | } case 0x03:{ /* IXOS */
2694 | item_name_string = val_to_str_const(item_sid, sapdiag_item_appl_ixos_vals, "Unknown");
2695 | break;
2696 | } case 0x04:{ /* ST_USER */
2697 | item_name_string = val_to_str_const(item_sid, sapdiag_item_appl_st_user_vals, "Unknown");
2698 | break;
2699 | } case 0x05:{ /* DYNN */
2700 | item_name_string = val_to_str_const(item_sid, sapdiag_item_appl_dynn_vals, "Unknown");
2701 | break;
2702 | } case 0x06:{ /* ST_R3INFO */
2703 | item_name_string = val_to_str_const(item_sid, sapdiag_item_appl_st_r3info_vals, "Unknown");
2704 | break;
2705 | } case 0x07:{ /* POPU */
2706 | item_name_string = val_to_str_const(item_sid, sapdiag_item_appl_popu_vals, "Unknown");
2707 | break;
2708 | } case 0x08:{ /* RFC_TR */
2709 | item_name_string = val_to_str_const(item_sid, sapdiag_item_appl_rfc_tr_vals, "Unknown");
2710 | break;
2711 | } case 0x09:{ /* DYNT */
2712 | item_name_string = val_to_str_const(item_sid, sapdiag_item_appl_dynt_vals, "Unknown");
2713 | break;
2714 | } case 0x0a:{ /* CONTAINER */
2715 | item_name_string = val_to_str_const(item_sid, sapdiag_item_appl_container_vals, "Unknown");
2716 | break;
2717 | } case 0x0b:{ /* MNUENTRY */
2718 | item_name_string = val_to_str_const(item_sid, sapdiag_item_appl_mnuentry_vals, "Unknown");
2719 | break;
2720 | } case 0x0c:{ /* VARINFO */
2721 | item_name_string = val_to_str_const(item_sid, sapdiag_item_appl_varinfo_vals, "Unknown");
2722 | break;
2723 | } case 0x0e:{ /* CONTROL */
2724 | item_name_string = val_to_str_const(item_sid, sapdiag_item_appl_control_vals, "Unknown");
2725 | break;
2726 | } case 0x0f:{ /* UI_EVENT */
2727 | item_name_string = val_to_str_const(item_sid, sapdiag_item_appl_ui_event_vals, "Unknown");
2728 | break;
2729 | } case 0x12:{ /* ACC_LIST */
2730 | item_name_string = val_to_str_const(item_sid, sapdiag_item_appl_acc_list_vals, "Unknown");
2731 | break;
2732 | } case 0x13:{ /* RCUI */
2733 | item_name_string = val_to_str_const(item_sid, sapdiag_item_appl_rcui_vals, "Unknown");
2734 | break;
2735 | } case 0x14:{ /* GUI_PACKET */
2736 | item_name_string = val_to_str_const(item_sid, sapdiag_item_appl_gui_packet_vals, "Unknown");
2737 | break;
2738 | }
2739 | }
2740 | return (item_name_string);
2741 | }
2742 |
2743 | static void
2744 | dissect_sapdiag_payload(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, proto_tree *parent_tree, uint32_t offset){
2745 | int item_value_remaining_length;
2746 | uint8_t item_type, item_long, item_id, item_sid;
2747 | uint32_t item_length, item_value_length;
2748 | const char *item_name_string = NULL((void*)0);
2749 | tvbuff_t *item_value_tvb;
2750 |
2751 | proto_item *item = NULL((void*)0), *il = NULL((void*)0), *item_value = NULL((void*)0);
2752 | proto_tree *item_tree, *item_value_tree;
2753 |
2754 | while (tvb_offset_exists(tvb, offset)){
2755 | item_id = item_sid = item_length = item_value_length = item_long = 0;
2756 |
2757 | /* Add the item subtree. We start with a item's length of 1, as we don't have yet the real size of the item */
2758 | item = proto_tree_add_item(tree, hf_sapdiag_item, tvb, offset, 1, ENC_NA0x00000000);
2759 | item_tree = proto_item_add_subtree(item, ett_sapdiag);
2760 |
2761 | /* Get the item type */
2762 | proto_tree_add_item_ret_uint8(item_tree, hf_sapdiag_item_type, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000, &item_type);
2763 | offset++;
2764 | item_length++;
2765 | proto_item_append_text(item, ": %s", val_to_str_const(item_type, sapdiag_item_type_vals, "Unknown"));
2766 |
2767 | switch (item_type){
2768 | case 0x01:{ /* SES */
2769 | item_value_length = 16;
2770 | break;
2771 | }
2772 | case 0x02:{ /* ICO */
2773 | item_value_length = 20;
2774 | break;
2775 | }
2776 | case 0x03:{ /* TIT */
2777 | item_value_length = 3;
2778 | break;
2779 | }
2780 | case 0x07:{ /* DiagMessage (old format) */
2781 | item_value_length = 76;
2782 | break;
2783 | }
2784 | case 0x08:{ /* OCK */
2785 | /* If the preference is set, report the item as partially dissected in the expert info */
2786 | if (global_sapdiag_highlight_items){
2787 | expert_add_info_format(pinfo, item, &ei_sapdiag_item_unknown_length, "Diag Type of unknown length (0x%.2x)", item_type);
2788 | }
2789 | break;
2790 | }
2791 | case 0x09:{ /* CHL */
2792 | item_value_length = 22;
2793 | break;
2794 | }
2795 | case 0x0a:{ /* SFE */
2796 | item_value_length = 3;
2797 | break;
2798 | }
2799 | case 0x0b:{ /* SBA */
2800 | item_value_length = 2;
2801 | break;
2802 | }
2803 | case 0x0C:{ /* EOM End of message */
2804 | break;
2805 | }
2806 | case 0x11:{ /* Data Stream */
2807 | item_long = 4;
2808 | break;
2809 | }
2810 | case 0x13:{ /* SLC */
2811 | item_value_length = 2;
2812 | break;
2813 | }
2814 | case 0x15:{ /* SBA2 XXX: Find the actual length */
2815 | item_value_length = 36;
2816 | break;
2817 | }
2818 | case 0x10: /* APPL */
2819 | case 0x12:{ /* APPL4 */
2820 | if (tvb_reported_length_remaining(tvb, offset) < 2) {
2821 | expert_add_info(pinfo, item, &ei_sapdiag_item_offset_invalid);
2822 | return;
2823 | }
2824 |
2825 | /* Get the APPL(4) ID */
2826 | proto_tree_add_item_ret_uint8(item_tree, hf_sapdiag_item_id, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000, &item_id);
2827 | proto_item_append_text(item, ", %s", val_to_str_const(item_id, sapdiag_item_id_vals, "Unknown"));
2828 | proto_tree_add_item(item_tree, hf_sapdiag_item_id, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
2829 | offset++;
2830 | item_length++;
2831 |
2832 | /* Get the APPL item sid value and set the respective name string according to them XXX: Change this for a multi array */
2833 | item_sid = tvb_get_uint8(tvb, offset);
2834 | item_name_string = get_appl_string(item_id, item_sid);
2835 |
2836 | proto_item_append_text(item, ", %s", item_name_string);
2837 | proto_tree_add_uint_format_value(item_tree, hf_sapdiag_item_sid, tvb, offset, 1, item_sid, "%s (0x%.2x)", item_name_string, item_sid);
2838 | offset++;
2839 | item_length++;
2840 |
2841 | if (item_type==0x10) {
2842 | item_long = 2;
2843 | } else if (item_type==0x12) {
2844 | item_long = 4;
2845 | }
2846 |
2847 | break;
2848 | }
2849 | }
2850 |
2851 | /* Get the item length (word o dword) */
2852 | if (item_long != 0 && tvb_reported_length_remaining(tvb, offset) < item_long) {
2853 | expert_add_info(pinfo, item, &ei_sapdiag_item_offset_invalid);
2854 | return;
2855 | }
2856 |
2857 | if (item_long == 2){
2858 | item_value_length = tvb_get_ntohs(tvb, offset);
2859 | il = proto_tree_add_item(item_tree, hf_sapdiag_item_length_short, tvb, offset, 2, ENC_BIG_ENDIAN0x00000000);
2860 | offset += 2;
2861 | item_length += 2;
2862 | } else if (item_long == 4){
2863 | item_value_length = tvb_get_ntohl(tvb, offset);
2864 | il = proto_tree_add_item(item_tree, hf_sapdiag_item_length_long, tvb, offset, 4, ENC_BIG_ENDIAN0x00000000);
2865 | offset += 4;
2866 | item_length += 4;
2867 | }
2868 |
2869 | /* Add the item length */
2870 | proto_item_append_text(item, ", Len=%d", item_value_length);
2871 |
2872 | /* Validate the value length before sizing or dissecting the item. */
2873 | if (item_value_length > 0){
2874 | item_value_remaining_length = tvb_reported_length_remaining(tvb, offset);
2875 | if (item_value_remaining_length < 0){
2876 | expert_add_info(pinfo, il != NULL((void*)0) ? il : item, &ei_sapdiag_item_offset_invalid);
2877 | return;
2878 | }
2879 | if ((uint32_t)item_value_remaining_length < item_value_length){
2880 | expert_add_info(pinfo, il != NULL((void*)0) ? il : item, &ei_sapdiag_item_length_invalid);
2881 | item_value_length = (uint32_t)item_value_remaining_length;
2882 | item_length += item_value_length;
2883 | proto_item_set_len(item, item_length);
2884 | if (item_value_length > 0) {
2885 | proto_tree_add_item(item_tree, hf_sapdiag_item_value, tvb, offset, item_value_length, ENC_NA0x00000000);
2886 | }
2887 | return;
2888 | }
2889 | }
2890 |
2891 | /* Now we have the validated length of the item, set the proper size. */
2892 | item_length += item_value_length;
2893 | proto_item_set_len(item, item_length);
2894 |
2895 | /* Add the item value */
2896 | if (item_value_length > 0){
2897 | item_value = proto_tree_add_item(item_tree, hf_sapdiag_item_value, tvb, offset, item_value_length, ENC_NA0x00000000);
2898 | item_value_tree = proto_item_add_subtree(item_value, ett_sapdiag);
2899 | item_value_tvb = tvb_new_subset_length(tvb, offset, item_value_length);
2900 | dissect_sapdiag_item(item_value_tvb, pinfo, item, item_value_tree, parent_tree, 0, item_type, item_id, item_sid, item_value_length);
2901 | offset+= item_value_length;
2902 | }
2903 | }
2904 | }
2905 |
2906 | static int
2907 | check_sapdiag_dp(tvbuff_t *tvb, uint32_t offset)
2908 | {
2909 | /* Since there's no SAP Diag mode 0xff, if the first byte is a 0xFF the
2910 | * packet probably holds an initialization DP Header */
2911 | if ((tvb_reported_length_remaining(tvb, offset) >= 200 + 8) && tvb_get_uint8(tvb, offset) == 0xFF){
2912 | return true1;
2913 | }
2914 | return false0;
2915 | }
2916 |
2917 | static int
2918 | check_sapdiag_compression(tvbuff_t *tvb, uint32_t offset)
2919 | {
2920 | /* We check for the length, the algorithm value and the presence of magic bytes */
2921 | if ((tvb_reported_length_remaining(tvb, offset) >= 8) &&
2922 | ((tvb_get_uint8(tvb, offset+4) == 0x11) || (tvb_get_uint8(tvb, offset+4) == 0x12)) &&
2923 | (tvb_get_uint16(tvb, offset+5, ENC_LITTLE_ENDIAN0x80000000) == 0x9d1f)){
2924 | return true1;
2925 | }
2926 | return false0;
2927 | }
2928 |
2929 | static void
2930 | dissect_sapdiag_compressed_payload(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, proto_item *sapdiag, uint32_t offset)
2931 | {
2932 | int rt = 0;
2933 | int compressed_length;
2934 | tvbuff_t *next_tvb = NULL((void*)0);
2935 | const uint8_t *compressed_buffer = NULL((void*)0);
2936 | uint8_t *decompressed_buffer = NULL((void*)0);
2937 | uint32_t reported_length = 0;
2938 | uint32_t uncompress_length = 0;
2939 | uint32_t payload_offset = 0;
2940 | proto_item *compression_header = NULL((void*)0);
2941 | proto_item *decompress_return_code = NULL((void*)0);
2942 | proto_item *rl = NULL((void*)0);
2943 | proto_item *payload = NULL((void*)0);
2944 | proto_tree *compression_header_tree = NULL((void*)0);
2945 | proto_tree *payload_tree = NULL((void*)0);
2946 |
2947 | /* Add the compression header subtree */
2948 | compression_header = proto_tree_add_item(tree, hf_sapdiag_compress_header, tvb, offset, 8, ENC_NA0x00000000);
2949 | compression_header_tree = proto_item_add_subtree(compression_header, ett_sapdiag);
2950 |
2951 | payload_offset = offset;
2952 |
2953 | /* Add the uncompressed length */
2954 | reported_length = tvb_get_letohl(tvb, offset);
2955 | rl = proto_tree_add_uint(compression_header_tree, hf_sapdiag_uncomplength, tvb, offset, 4, reported_length);
2956 | offset+=4;
2957 | proto_item_append_text(sapdiag, ", Uncompressed Len: %u", reported_length);
2958 | col_append_fstr(pinfo->cinfo, COL_INFO, " Uncompressed Length=%u ", reported_length);
2959 |
2960 | /* Add the algorithm */
2961 | proto_tree_add_item(compression_header_tree, hf_sapdiag_algorithm, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
2962 | offset++;
2963 | /* Add the magic bytes */
2964 | proto_tree_add_item(compression_header_tree, hf_sapdiag_magic, tvb, offset, 2, ENC_BIG_ENDIAN0x00000000);
2965 | offset+=2;
2966 | /* Add the max bits */
2967 | proto_tree_add_item(compression_header_tree, hf_sapdiag_special, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
2968 | offset++;
2969 |
2970 | if (global_sapdiag_decompress) {
2971 | if (reported_length == 0 || reported_length > global_sapdiag_max_uncompressed_size) {
2972 | expert_add_info_format(pinfo, rl, &ei_sapdiag_invalid_decompress_length,
2973 | "Reported uncompressed payload length %u is invalid or exceeds the configured maximum of %u bytes",
2974 | reported_length, global_sapdiag_max_uncompressed_size);
2975 | } else {
2976 | compressed_length = tvb_captured_length_remaining(tvb, payload_offset);
2977 | compressed_buffer = tvb_get_ptr(tvb, payload_offset, compressed_length);
2978 | decompressed_buffer = (uint8_t *)wmem_alloc0(pinfo->pool, reported_length);
2979 | uncompress_length = reported_length;
2980 |
2981 | rt = sap_lzclzh_decompress(pinfo->pool, compressed_buffer,
2982 | compressed_length, decompressed_buffer, &uncompress_length);
2983 |
2984 | decompress_return_code = proto_tree_add_int_format_value(compression_header_tree,
2985 | hf_sapdiag_decompress_return_code, tvb, payload_offset, 0, rt,
2986 | "%d (%s)", rt, sap_lzclzh_decompress_error_string(rt));
2987 | proto_item_set_generated(decompress_return_code);
2988 |
2989 | if (rt != CS_END_OF_STREAM1) {
2990 | expert_add_info_format(pinfo, compression_header, &ei_sapdiag_invalid_decompression,
2991 | "Decompression of payload failed with return code %d (%s)",
2992 | rt, sap_lzclzh_decompress_error_string(rt));
2993 | } else {
2994 | if (uncompress_length != reported_length) {
2995 | expert_add_info_format(pinfo, rl, &ei_sapdiag_invalid_decompress_length,
2996 | "The uncompressed payload length (%u) differs from the reported length (%u)",
2997 | uncompress_length, reported_length);
2998 | }
2999 |
3000 | next_tvb = tvb_new_child_real_data(tvb, decompressed_buffer,
3001 | uncompress_length, uncompress_length);
3002 | add_new_data_source(pinfo, next_tvb, "Uncompressed Data");
3003 |
3004 | payload = proto_tree_add_item(tree, hf_sapdiag_payload, next_tvb, 0, -1, ENC_NA0x00000000);
3005 | payload_tree = proto_item_add_subtree(payload, ett_sapdiag);
3006 | dissect_sapdiag_payload(next_tvb, pinfo, payload_tree, tree, 0);
3007 | return;
3008 | }
3009 | }
3010 | }
3011 |
3012 | /* Preserve the original compressed payload if decompression is disabled or fails. */
3013 | proto_tree_add_item(tree, hf_sapdiag_payload, tvb, offset, -1, ENC_NA0x00000000);
3014 | }
3015 |
3016 |
3017 | static void
3018 | dissect_sapdiag_snc_frame(tvbuff_t *tvb, packet_info *pinfo, proto_tree *sapdiag_tree, proto_tree *tree, uint32_t offset){
3019 |
3020 | tvbuff_t *next_tvb = NULL((void*)0);
3021 | proto_item *payload = NULL((void*)0);
3022 | proto_tree *payload_tree = NULL((void*)0);
3023 |
3024 | /* Call the SNC dissector */
3025 | if (global_sapdiag_snc_dissection == true1){
3026 | next_tvb = dissect_sapsnc_frame(tvb, pinfo, tree, offset);
3027 |
3028 | /* If the SNC dissection returned a new tvb, we've a payload to dissect */
3029 | if (next_tvb != NULL((void*)0)) {
3030 |
3031 | /* Add a new data source for the unwrapped data. From now on, the offset is relative
3032 | to the new tvb so its zero. */
3033 | add_new_data_source(pinfo, next_tvb, "SNC unwrapped Data");
3034 |
3035 | /* Add the payload subtree using the new tvb*/
3036 | payload = proto_tree_add_item(sapdiag_tree, hf_sapdiag_payload, next_tvb, 0, -1, ENC_NA0x00000000);
3037 | payload_tree = proto_item_add_subtree(payload, ett_sapdiag);
3038 |
3039 | if (check_sapdiag_compression(next_tvb, 0)) {
3040 | dissect_sapdiag_compressed_payload(next_tvb, pinfo, payload_tree, payload, 0);
3041 | } else {
3042 | dissect_sapdiag_payload(next_tvb, pinfo, payload_tree, payload, 0);
3043 | }
3044 | }
3045 | }
3046 | }
3047 |
3048 | static int
3049 | dissect_sapdiag(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U___attribute__((unused)))
3050 | {
3051 | uint8_t compress = 0, error_no = 0;
3052 | uint32_t offset = 0;
3053 | proto_item *sapdiag = NULL((void*)0), *header = NULL((void*)0), *com_flag = NULL((void*)0), *payload = NULL((void*)0);
3054 | proto_tree *sapdiag_tree = NULL((void*)0), *header_tree = NULL((void*)0), *com_flag_tree = NULL((void*)0), *payload_tree = NULL((void*)0);
3055 |
3056 | /* Add the protocol to the column */
3057 | col_set_str(pinfo->cinfo, COL_PROTOCOL, "SAPDIAG");
3058 | /* Clear out stuff in the info column */
3059 | col_clear(pinfo->cinfo,COL_INFO);
3060 |
3061 | /* Add the main SAPDiag subtree */
3062 | sapdiag = proto_tree_add_item(tree, proto_sapdiag, tvb, 0, -1, ENC_NA0x00000000);
3063 | sapdiag_tree = proto_item_add_subtree(sapdiag, ett_sapdiag);
3064 |
3065 | /* Check if the packet holds a DP Header */
3066 | if (check_sapdiag_dp(tvb, offset)){
3067 | dissect_sapdiag_dp(tvb, sapdiag_tree, offset); offset+= 200;
3068 | }
3069 |
3070 | /* Check for fixed error messages */
3071 | if (tvb_strneql(tvb, 0, "**DPTMMSG**\x00", 12) == 0){
3072 | proto_tree_add_item(sapdiag_tree, hf_sapdiag_payload, tvb, offset, -1, ENC_NA0x00000000);
3073 | return tvb_captured_length(tvb);
3074 | } else if (tvb_strneql(tvb, 0, "**DPTMOPC**\x00", 12) == 0){
3075 | proto_tree_add_item(sapdiag_tree, hf_sapdiag_payload, tvb, offset, -1, ENC_NA0x00000000);
3076 | return tvb_captured_length(tvb);
3077 | }
3078 |
3079 | /* Add the header subtree */
3080 | header = proto_tree_add_item(sapdiag_tree, hf_sapdiag_header, tvb, offset, 8, ENC_NA0x00000000);
3081 | header_tree = proto_item_add_subtree(header, ett_sapdiag);
3082 |
3083 | /* Add the fields */
3084 | proto_tree_add_item(header_tree, hf_sapdiag_mode, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
3085 | offset++;
3086 |
3087 | com_flag = proto_tree_add_item(header_tree, hf_sapdiag_com_flag, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
3088 | com_flag_tree = proto_item_add_subtree(com_flag, ett_sapdiag);
3089 | proto_tree_add_item(com_flag_tree, hf_sapdiag_com_flag_TERM_EOS, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
3090 | proto_tree_add_item(com_flag_tree, hf_sapdiag_com_flag_TERM_EOC, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
3091 | proto_tree_add_item(com_flag_tree, hf_sapdiag_com_flag_TERM_NOP, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
3092 | proto_tree_add_item(com_flag_tree, hf_sapdiag_com_flag_TERM_EOP, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
3093 | proto_tree_add_item(com_flag_tree, hf_sapdiag_com_flag_TERM_INI, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
3094 | proto_tree_add_item(com_flag_tree, hf_sapdiag_com_flag_TERM_CAS, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
3095 | proto_tree_add_item(com_flag_tree, hf_sapdiag_com_flag_TERM_NNM, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
3096 | proto_tree_add_item(com_flag_tree, hf_sapdiag_com_flag_TERM_GRA, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
3097 | offset++;
3098 |
3099 | proto_tree_add_item(header_tree, hf_sapdiag_mode_stat, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
3100 | offset++;
3101 |
3102 | proto_tree_add_item_ret_uint8(header_tree, hf_sapdiag_err_no, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000, &error_no);
3103 | offset++;
3104 | proto_tree_add_item(header_tree, hf_sapdiag_msg_type, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
3105 | offset++;
3106 | proto_tree_add_item(header_tree, hf_sapdiag_msg_info, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
3107 | offset++;
3108 | proto_tree_add_item(header_tree, hf_sapdiag_msg_rc, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
3109 | offset++;
3110 |
3111 | proto_tree_add_item_ret_uint8(header_tree, hf_sapdiag_compress, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000, &compress);
3112 | offset++;
3113 |
3114 | /* Check for error messages */
3115 | if ((error_no != 0x00) && (tvb_reported_length_remaining(tvb, offset) > 0)){
3116 | char *error_message = NULL((void*)0);
3117 | uint32_t error_message_length = 0;
3118 |
3119 | error_message_length = (uint32_t)tvb_reported_length_remaining(tvb, offset) - 1;
3120 | error_message = (char *)tvb_get_string_enc(pinfo->pool, tvb, offset, error_message_length, ENC_LITTLE_ENDIAN0x80000000|ENC_UTF_160x00000004);
3121 | proto_tree_add_string(sapdiag_tree, hf_sapdiag_error_message, tvb, offset, error_message_length, error_message);
3122 |
3123 | /* If the message is compressed */
3124 | } else if ((compress == 0x01) && (tvb_reported_length_remaining(tvb, offset) >= 8)){
3125 |
3126 | /* Dissect the compressed payload */
3127 | dissect_sapdiag_compressed_payload(tvb, pinfo, sapdiag_tree, sapdiag, offset);
3128 |
3129 | /* Message wrapped with SNC */
3130 | } else if (((compress == 0x02) || (compress == 0x03)) && (tvb_reported_length_remaining(tvb, offset) > 0)){
3131 |
3132 | /* Call the SNC dissector */
3133 | dissect_sapdiag_snc_frame(tvb, pinfo, sapdiag_tree, tree, offset);
3134 |
3135 | /* Uncompressed payload */
3136 | } else {
3137 | /* Check the payload length */
3138 | if (tvb_reported_length_remaining(tvb, offset) > 0){
3139 | /* Add the payload subtree */
3140 | payload = proto_tree_add_item(sapdiag_tree, hf_sapdiag_payload, tvb, offset, -1, ENC_NA0x00000000);
3141 | payload_tree = proto_item_add_subtree(payload, ett_sapdiag);
3142 |
3143 | /* Dissect the payload */
3144 | dissect_sapdiag_payload(tvb, pinfo, payload_tree, tree, offset);
3145 | }
3146 | }
3147 |
3148 | return tvb_captured_length(tvb);
3149 | }
3150 |
3151 | void
3152 | proto_register_sapdiag(void)
3153 | {
3154 | static hf_register_info hf[] = {
3155 | { &hf_sapdiag_dp,
3156 | { "DP Header", "sapdiag.dp", FT_NONE, BASE_NONE, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3157 | { &hf_sapdiag_header,
3158 | { "Header", "sapdiag.header", FT_NONE, BASE_NONE, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3159 | { &hf_sapdiag_payload,
3160 | { "Message", "sapdiag.message", FT_NONE, BASE_NONE, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3161 | { &hf_sapdiag_mode,
3162 | { "Mode", "sapdiag.header.mode", FT_UINT8, BASE_DEC, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3163 | { &hf_sapdiag_com_flag,
3164 | { "Com Flag", "sapdiag.header.comflag", FT_UINT8, BASE_HEX, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3165 | { &hf_sapdiag_com_flag_TERM_EOS,
3166 | { "Com Flag TERM_EOS", "sapdiag.header.comflag.TERM_EOS", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_COM_FLAG_TERM_EOS0x01, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3167 | { &hf_sapdiag_com_flag_TERM_EOC,
3168 | { "Com Flag TERM_EOC", "sapdiag.header.comflag.TERM_EOC", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_COM_FLAG_TERM_EOC0x02, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3169 | { &hf_sapdiag_com_flag_TERM_NOP,
3170 | { "Com Flag TERM_NOP", "sapdiag.header.comflag.TERM_NOP", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_COM_FLAG_TERM_NOP0x04, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3171 | { &hf_sapdiag_com_flag_TERM_EOP,
3172 | { "Com Flag TERM_EOP", "sapdiag.header.comflag.TERM_EOP", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_COM_FLAG_TERM_EOP0x08, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3173 | { &hf_sapdiag_com_flag_TERM_INI,
3174 | { "Com Flag TERM_INI", "sapdiag.header.comflag.TERM_INI", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_COM_FLAG_TERM_INI0x10, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3175 | { &hf_sapdiag_com_flag_TERM_CAS,
3176 | { "Com Flag TERM_CAS", "sapdiag.header.comflag.TERM_CAS", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_COM_FLAG_TERM_CAS0x20, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3177 | { &hf_sapdiag_com_flag_TERM_NNM,
3178 | { "Com Flag TERM_NNM", "sapdiag.header.comflag.TERM_NNM", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_COM_FLAG_TERM_NNM0x40, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3179 | { &hf_sapdiag_com_flag_TERM_GRA,
3180 | { "Com Flag TERM_GRA", "sapdiag.header.comflag.TERM_GRA", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_COM_FLAG_TERM_GRA0x80, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3181 |
3182 | { &hf_sapdiag_mode_stat,
3183 | { "Mode Stat", "sapdiag.header.modestat", FT_UINT8, BASE_DEC, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3184 | { &hf_sapdiag_err_no,
3185 | { "Error Number", "sapdiag.header.errorno", FT_UINT8, BASE_DEC, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3186 | { &hf_sapdiag_msg_type,
3187 | { "Message Type", "sapdiag.header.msgtype", FT_UINT8, BASE_DEC, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3188 | { &hf_sapdiag_msg_info,
3189 | { "Message Info", "sapdiag.header.msginfo", FT_UINT8, BASE_DEC, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3190 | { &hf_sapdiag_msg_rc,
3191 | { "Message Rc", "sapdiag.header.msgrc", FT_UINT8, BASE_DEC, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3192 | { &hf_sapdiag_compress,
3193 | { "Compress", "sapdiag.header.compress", FT_UINT8, BASE_HEX, VALS(sapdiag_compress_vals)((0 ? (const struct _value_string*)0 : ((sapdiag_compress_vals )))), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3194 |
3195 | /* Error Messages */
3196 | { &hf_sapdiag_error_message,
3197 | { "Error Message", "sapdiag.error_message", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3198 |
3199 | /* Compression header */
3200 | { &hf_sapdiag_compress_header,
3201 | { "Compression Header", "sapdiag.header.compression", FT_NONE, BASE_NONE, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3202 | { &hf_sapdiag_uncomplength,
3203 | { "Uncompressed Length", "sapdiag.header.compression.uncomplength", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3204 | { &hf_sapdiag_algorithm,
3205 | { "Compression Algorithm", "sapdiag.header.compression.algorithm", FT_UINT8, BASE_HEX, VALS(sapdiag_algorithm_vals)((0 ? (const struct _value_string*)0 : ((sapdiag_algorithm_vals )))), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3206 | { &hf_sapdiag_magic,
3207 | { "Magic Bytes", "sapdiag.header.compression.magic", FT_UINT16, BASE_HEX, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3208 | { &hf_sapdiag_special,
3209 | { "Special", "sapdiag.header.compression.special", FT_UINT8, BASE_HEX, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3210 | { &hf_sapdiag_decompress_return_code,
3211 | { "Decompress Return Code", "sapdiag.header.compression.returncode", FT_INT8, BASE_DEC, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3212 |
3213 | /* SAPDiag Messages */
3214 | { &hf_sapdiag_item,
3215 | { "Item", "sapdiag.item", FT_NONE, BASE_NONE, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3216 | { &hf_sapdiag_item_type,
3217 | { "Type", "sapdiag.item.type", FT_UINT8, BASE_HEX, VALS(sapdiag_item_type_vals)((0 ? (const struct _value_string*)0 : ((sapdiag_item_type_vals )))), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3218 | { &hf_sapdiag_item_id,
3219 | { "ID", "sapdiag.item.id", FT_UINT8, BASE_HEX, VALS(sapdiag_item_id_vals)((0 ? (const struct _value_string*)0 : ((sapdiag_item_id_vals )))), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3220 | { &hf_sapdiag_item_sid,
3221 | { "SID", "sapdiag.item.sid", FT_UINT8, BASE_HEX, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3222 | { &hf_sapdiag_item_length_short,
3223 | { "Length", "sapdiag.item.length_short", FT_UINT16, BASE_DEC, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3224 | { &hf_sapdiag_item_length_long,
3225 | { "Length", "sapdiag.item.length_long", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3226 | { &hf_sapdiag_item_value,
3227 | { "Value", "sapdiag.item.value", FT_NONE, BASE_NONE, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3228 | /* SAPDiag DP Header */
3229 | { &hf_sapdiag_dp_request_id,
3230 | { "Request ID", "sapdiag.dp.reqid", FT_INT32, BASE_DEC, VALS(sapdiag_dp_request_id_vals)((0 ? (const struct _value_string*)0 : ((sapdiag_dp_request_id_vals )))), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3231 | { &hf_sapdiag_dp_retcode,
3232 | { "Retcode", "sapdiag.dp.retcode", FT_UINT8, BASE_HEX, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3233 | { &hf_sapdiag_dp_sender_id,
3234 | { "Sender ID", "sapdiag.dp.senderid", FT_UINT8, BASE_HEX, VALS(sapdiag_dp_sender_id_vals)((0 ? (const struct _value_string*)0 : ((sapdiag_dp_sender_id_vals )))), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3235 | { &hf_sapdiag_dp_action_type,
3236 | { "Action type", "sapdiag.dp.actiontype", FT_UINT8, BASE_HEX, VALS(sapdiag_dp_action_type_vals)((0 ? (const struct _value_string*)0 : ((sapdiag_dp_action_type_vals )))), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3237 | { &hf_sapdiag_dp_req_info,
3238 | { "Request Info", "sapdiag.dp.reqinfo", FT_UINT32, BASE_HEX, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3239 | /* Request Info Flag */
3240 | { &hf_sapdiag_dp_req_info_LOGIN,
3241 | { "Login Flag", "sapdiag.dp.reqinfo.login", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_DP_REQ_INFO_LOGIN0x01, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3242 | { &hf_sapdiag_dp_req_info_LOGOFF,
3243 | { "Logoff Flag", "sapdiag.dp.reqinfo.logoff", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_DP_REQ_INFO_LOGOFF0x02, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3244 | { &hf_sapdiag_dp_req_info_SHUTDOWN,
3245 | { "Shutdown Flag", "sapdiag.dp.reqinfo.shutdown", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_DP_REQ_INFO_SHUTDOWN0x04, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3246 | { &hf_sapdiag_dp_req_info_GRAPHIC_TM,
3247 | { "Graphic TM Flag", "sapdiag.dp.reqinfo.graphictm", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_DP_REQ_INFO_GRAPHIC_TM0x08, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3248 | { &hf_sapdiag_dp_req_info_ALPHA_TM,
3249 | { "Alpha TM Flag", "sapdiag.dp.reqinfo.alphatm", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_DP_REQ_INFO_ALPHA_TM0x10, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3250 | { &hf_sapdiag_dp_req_info_ERROR_FROM_APPC,
3251 | { "Error from APPC Flag", "sapdiag.dp.reqinfo.errorfromappc", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_DP_REQ_INFO_ERROR_FROM_APPC0x20, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3252 | { &hf_sapdiag_dp_req_info_CANCELMODE,
3253 | { "Cancel Mode Flag", "sapdiag.dp.reqinfo.cancelmode", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_DP_REQ_INFO_CANCELMODE0x40, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3254 | { &hf_sapdiag_dp_req_info_MSG_WITH_REQ_BUF,
3255 | { "Msg with Req Buf Flag", "sapdiag.dp.reqinfo.msg_with_req_buf", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_DP_REQ_INFO_MSG_WITH_REQ_BUF0x80, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3256 | { &hf_sapdiag_dp_req_info_MSG_WITH_OH,
3257 | { "Msg with OH Flag", "sapdiag.dp.reqinfo.msg_with_oh", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_DP_REQ_INFO_MSG_WITH_OH0x01, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3258 | { &hf_sapdiag_dp_req_info_BUFFER_REFRESH,
3259 | { "Buffer Refresh Flag", "sapdiag.dp.reqinfo.buffer_refresh", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_DP_REQ_INFO_BUFFER_REFRESH0x02, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3260 | { &hf_sapdiag_dp_req_info_BTC_SCHEDULER,
3261 | { "BTC Scheduler Flag", "sapdiag.dp.reqinfo.btc_scheduler", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_DP_REQ_INFO_BTC_SCHEDULER0x04, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3262 | { &hf_sapdiag_dp_req_info_APPC_SERVER_DOWN,
3263 | { "APPC Server Down Flag", "sapdiag.dp.reqinfo.appc_server_down", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_DP_REQ_INFO_APPC_SERVER_DOWN0x08, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3264 | { &hf_sapdiag_dp_req_info_MS_ERROR,
3265 | { "MS Error Flag", "sapdiag.dp.reqinfo.ms_error", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_DP_REQ_INFO_MS_ERROR0x10, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3266 | { &hf_sapdiag_dp_req_info_SET_SYSTEM_USER,
3267 | { "Set System User Flag", "sapdiag.dp.reqinfo.set_system_user", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_DP_REQ_INFO_SET_SYSTEM_USER0x20, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3268 | { &hf_sapdiag_dp_req_info_DP_CANT_HANDLE_REQ,
3269 | { "DP Can't handle req Flag", "sapdiag.dp.reqinfo.dp_cant_handle_req", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_DP_REQ_INFO_DP_CANT_HANDLE_REQ0x40, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3270 | { &hf_sapdiag_dp_req_info_DP_AUTO_ABAP,
3271 | { "DP Auto ABAP Flag", "sapdiag.dp.reqinfo.dp_auto_abap", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_DP_REQ_INFO_DP_AUTO_ABAP0x80, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3272 | { &hf_sapdiag_dp_req_info_DP_APPL_SERV_INFO,
3273 | { "DP Appl Serv Info Flag", "sapdiag.dp.reqinfo.dp_appl_serv_info", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_DP_REQ_INFO_DP_APPL_SERV_INFO0x01, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3274 | { &hf_sapdiag_dp_req_info_DP_ADMIN,
3275 | { "DP Admin Flag", "sapdiag.dp.reqinfo.dp_admin", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_DP_REQ_INFO_DP_ADMIN0x02, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3276 | { &hf_sapdiag_dp_req_info_DP_SPOOL_ALRM,
3277 | { "DP Spool Alrm Flag", "sapdiag.dp.reqinfo.dp_spool_alrm", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_DP_REQ_INFO_DP_SPOOL_ALRM0x04, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3278 | { &hf_sapdiag_dp_req_info_DP_HAND_SHAKE,
3279 | { "DP Hand Shake Flag", "sapdiag.dp.reqinfo.dp_hand_shake", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_DP_REQ_INFO_DP_HAND_SHAKE0x08, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3280 | { &hf_sapdiag_dp_req_info_DP_CANCEL_PRIV,
3281 | { "DP Cancel Privileges Flag", "sapdiag.dp.reqinfo.dp_cancel_priv", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_DP_REQ_INFO_DP_CANCEL_PRIV0x10, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3282 | { &hf_sapdiag_dp_req_info_DP_RAISE_TIMEOUT,
3283 | { "DP Raise Timeout Flag", "sapdiag.dp.reqinfo.dp_raise_timeout", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_DP_REQ_INFO_DP_RAISE_TIMEOUT0x20, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3284 | { &hf_sapdiag_dp_req_info_DP_NEW_MODE,
3285 | { "DP New Mode Flag", "sapdiag.dp.reqinfo.dp_new_mode", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_DP_REQ_INFO_DP_NEW_MODE0x40, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3286 | { &hf_sapdiag_dp_req_info_DP_SOFT_CANCEL,
3287 | { "DP Soft Cancel Flag", "sapdiag.dp.reqinfo.dp_soft_cancel", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_DP_REQ_INFO_DP_SOFT_CANCEL0x80, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3288 | { &hf_sapdiag_dp_req_info_DP_TM_INPUT,
3289 | { "DP TM Input Flag", "sapdiag.dp.reqinfo.dp_tm_input", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_DP_REQ_INFO_DP_TM_INPUT0x01, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3290 | { &hf_sapdiag_dp_req_info_DP_TM_OUTPUT,
3291 | { "DP TM Output Flag", "sapdiag.dp.reqinfo.dp_tm_output", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_DP_REQ_INFO_DP_TM_OUTPUT0x02, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3292 | { &hf_sapdiag_dp_req_info_DP_ASYNC_RFC,
3293 | { "DP Async RFC Flag", "sapdiag.dp.reqinfo.dp_async_rfc", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_DP_REQ_INFO_DP_ASYNC_RFC0x04, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3294 | { &hf_sapdiag_dp_req_info_DP_ICM_EVENT,
3295 | { "DP ICM Event Flag", "sapdiag.dp.reqinfo.dp_icm_event", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_DP_REQ_INFO_DP_ICM_EVENT0x08, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3296 | { &hf_sapdiag_dp_req_info_DP_AUTO_TH,
3297 | { "DP Auto TH Flag", "sapdiag.dp.reqinfo.dp_auto_th", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_DP_REQ_INFO_DP_AUTO_TH0x10, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3298 | { &hf_sapdiag_dp_req_info_DP_RFC_CANCEL,
3299 | { "DP RFC Cancel Flag", "sapdiag.dp.reqinfo.dp_rfc_cancel", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_DP_REQ_INFO_DP_RFC_CANCEL0x20, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3300 | { &hf_sapdiag_dp_req_info_DP_MS_ADM,
3301 | { "DP MS Adm Flag", "sapdiag.dp.reqinfo.dp_ms_adm", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_DP_REQ_INFO_DP_MS_ADM0x40, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3302 | { &hf_sapdiag_dp_tid,
3303 | { "TID", "sapdiag.dp.tid", FT_INT32, BASE_DEC, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3304 | { &hf_sapdiag_dp_uid,
3305 | { "UID", "sapdiag.dp.uid", FT_INT16, BASE_DEC, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3306 | { &hf_sapdiag_dp_mode,
3307 | { "Mode", "sapdiag.dp.mode", FT_UINT8, BASE_HEX, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3308 | { &hf_sapdiag_dp_wp_id,
3309 | { "WP Id", "sapdiag.dp.wpid", FT_INT32, BASE_DEC, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3310 | { &hf_sapdiag_dp_wp_ca_blk,
3311 | { "WP Ca Blk", "sapdiag.dp.wpcablk", FT_INT32, BASE_DEC, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3312 | { &hf_sapdiag_dp_appc_ca_blk,
3313 | { "APPC Ca Blk", "sapdiag.dp.appccablk", FT_INT32, BASE_DEC, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3314 | { &hf_sapdiag_dp_len,
3315 | { "Len", "sapdiag.dp.len", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3316 | { &hf_sapdiag_dp_new_stat,
3317 | { "New Stat", "sapdiag.dp.newstat", FT_UINT8, BASE_HEX, VALS(sapdiag_dp_new_stat_vals)((0 ? (const struct _value_string*)0 : ((sapdiag_dp_new_stat_vals )))), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3318 | { &hf_sapdiag_dp_rq_id,
3319 | { "Request ID", "sapdiag.dp.rqid", FT_INT16, BASE_DEC, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3320 | { &hf_sapdiag_dp_terminal,
3321 | { "Terminal", "sapdiag.dp.terminal", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3322 |
3323 | /* SAP Diag Support Bits */
3324 | { &hf_SAPDIAG_SUPPORT_BIT_PROGRESS_INDICATOR,
3325 | { "Support Bit PROGRESS_INDICATOR", "sapdiag.diag.supportbits.PROGRESS_INDICATOR", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_PROGRESS_INDICATOR0x01, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3326 | { &hf_SAPDIAG_SUPPORT_BIT_SAPGUI_LABELS,
3327 | { "Support Bit SAPGUI_LABELS", "sapdiag.diag.supportbits.SAPGUI_LABELS", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_SAPGUI_LABELS0x02, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3328 | { &hf_SAPDIAG_SUPPORT_BIT_SAPGUI_DIAGVERSION,
3329 | { "Support Bit SAPGUI_DIAGVERSION", "sapdiag.diag.supportbits.SAPGUI_DIAGVERSION", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_SAPGUI_DIAGVERSION0x04, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3330 | { &hf_SAPDIAG_SUPPORT_BIT_SAPGUI_SELECT_RECT,
3331 | { "Support Bit SAPGUI_SELECT_RECT", "sapdiag.diag.supportbits.SAPGUI_SELECT_RECT", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_SAPGUI_SELECT_RECT0x08, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3332 | { &hf_SAPDIAG_SUPPORT_BIT_SAPGUI_SYMBOL_RIGHT,
3333 | { "Support Bit SAPGUI_SYMBOL_RIGHT", "sapdiag.diag.supportbits.SAPGUI_SYMBOL_RIGHT", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_SAPGUI_SYMBOL_RIGHT0x10, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3334 | { &hf_SAPDIAG_SUPPORT_BIT_SAPGUI_FONT_METRIC,
3335 | { "Support Bit SAPGUI_FONT_METRIC", "sapdiag.diag.supportbits.SAPGUI_FONT_METRIC", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_SAPGUI_FONT_METRIC0x20, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3336 | { &hf_SAPDIAG_SUPPORT_BIT_SAPGUI_COMPR_ENHANCED,
3337 | { "Support Bit SAPGUI_COMPR_ENHANCED", "sapdiag.diag.supportbits.SAPGUI_COMPR_ENHANCED", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_SAPGUI_COMPR_ENHANCED0x40, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3338 | { &hf_SAPDIAG_SUPPORT_BIT_SAPGUI_IMODE,
3339 | { "Support Bit SAPGUI_IMODE", "sapdiag.diag.supportbits.SAPGUI_IMODE", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_SAPGUI_IMODE0x80, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3340 |
3341 | { &hf_SAPDIAG_SUPPORT_BIT_SAPGUI_LONG_MESSAGE,
3342 | { "Support Bit SAPGUI_LONG_MESSAGE", "sapdiag.diag.supportbits.SAPGUI_LONG_MESSAGE", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_SAPGUI_LONG_MESSAGE0x01, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3343 | { &hf_SAPDIAG_SUPPORT_BIT_SAPGUI_TABLE,
3344 | { "Support Bit SAPGUI_TABLE", "sapdiag.diag.supportbits.SAPGUI_TABLE", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_SAPGUI_TABLE0x02, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3345 | { &hf_SAPDIAG_SUPPORT_BIT_SAPGUI_FOCUS_1,
3346 | { "Support Bit SAPGUI_FOCUS_1", "sapdiag.diag.supportbits.SAPGUI_FOCUS_1", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_SAPGUI_FOCUS_10x04, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3347 | { &hf_SAPDIAG_SUPPORT_BIT_SAPGUI_PUSHBUTTON_1,
3348 | { "Support Bit SAPGUI_PUSHBUTTON_1", "sapdiag.diag.supportbits.SAPGUI_PUSHBUTTON_1", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_SAPGUI_PUSHBUTTON_10x08, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3349 | { &hf_SAPDIAG_SUPPORT_BIT_UPPERCASE,
3350 | { "Support Bit UPPERCASE", "sapdiag.diag.supportbits.UPPERCASE", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_UPPERCASE0x10, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3351 | { &hf_SAPDIAG_SUPPORT_BIT_SAPGUI_TABPROPERTY,
3352 | { "Support Bit SAPGUI_TABPROPERTY", "sapdiag.diag.supportbits.SAPGUI_TABPROPERTY", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_SAPGUI_TABPROPERTY0x20, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3353 | { &hf_SAPDIAG_SUPPORT_BIT_INPUT_UPPERCASE,
3354 | { "Support Bit INPUT_UPPERCASE", "sapdiag.diag.supportbits.INPUT_UPPERCASE", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_INPUT_UPPERCASE0x40, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3355 | { &hf_SAPDIAG_SUPPORT_BIT_RFC_DIALOG,
3356 | { "Support Bit RFC_DIALOG", "sapdiag.diag.supportbits.RFC_DIALOG", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_RFC_DIALOG0x80, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3357 |
3358 | { &hf_SAPDIAG_SUPPORT_BIT_LIST_HOTSPOT,
3359 | { "Support Bit LIST_HOTSPOT", "sapdiag.diag.supportbits.LIST_HOTSPOT", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_LIST_HOTSPOT0x01, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3360 | { &hf_SAPDIAG_SUPPORT_BIT_FKEY_TABLE,
3361 | { "Support Bit FKEY_TABLE", "sapdiag.diag.supportbits.FKEY_TABLE", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_FKEY_TABLE0x02, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3362 | { &hf_SAPDIAG_SUPPORT_BIT_MENU_SHORTCUT,
3363 | { "Support Bit MENU_SHORTCUT", "sapdiag.diag.supportbits.MENU_SHORTCUT", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_MENU_SHORTCUT0x04, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3364 | { &hf_SAPDIAG_SUPPORT_BIT_STOP_TRANS,
3365 | { "Support Bit STOP_TRANS", "sapdiag.diag.supportbits.STOP_TRANS", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_STOP_TRANS0x08, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3366 | { &hf_SAPDIAG_SUPPORT_BIT_FULL_MENU,
3367 | { "Support Bit FULL_MENU", "sapdiag.diag.supportbits.FULL_MENU", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_FULL_MENU0x10, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3368 | { &hf_SAPDIAG_SUPPORT_BIT_OBJECT_NAMES,
3369 | { "Support Bit OBJECT_NAMES", "sapdiag.diag.supportbits.OBJECT_NAMES", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_OBJECT_NAMES0x20, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3370 | { &hf_SAPDIAG_SUPPORT_BIT_CONTAINER_TYPE,
3371 | { "Support Bit CONTAINER_TYPE", "sapdiag.diag.supportbits.CONTAINER_TYPE", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_CONTAINER_TYPE0x40, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3372 | { &hf_SAPDIAG_SUPPORT_BIT_DLGH_FLAGS,
3373 | { "Support Bit DLGH_FLAGS", "sapdiag.diag.supportbits.DLGH_FLAGS", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_DLGH_FLAGS0x80, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3374 |
3375 | { &hf_SAPDIAG_SUPPORT_BIT_APPL_MNU,
3376 | { "Support Bit APPL_MNU", "sapdiag.diag.supportbits.APPL_MNU", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_APPL_MNU0x01, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3377 | { &hf_SAPDIAG_SUPPORT_BIT_MESSAGE_INFO,
3378 | { "Support Bit MESSAGE_INFO", "sapdiag.diag.supportbits.MESSAGE_INFO", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_MESSAGE_INFO0x02, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3379 | { &hf_SAPDIAG_SUPPORT_BIT_MESDUM_FLAG1,
3380 | { "Support Bit MESDUM_FLAG1", "sapdiag.diag.supportbits.MESDUM_FLAG1", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_MESDUM_FLAG10x04, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3381 | { &hf_SAPDIAG_SUPPORT_BIT_TABSEL_ATTRIB,
3382 | { "Support Bit TABSEL_ATTRIB", "sapdiag.diag.supportbits.TABSEL_ATTRIB", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_TABSEL_ATTRIB0x08, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3383 | { &hf_SAPDIAG_SUPPORT_BIT_GUIAPI,
3384 | { "Support Bit GUIAPI", "sapdiag.diag.supportbits.GUIAPI", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_GUIAPI0x10, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3385 | { &hf_SAPDIAG_SUPPORT_BIT_NOGRAPH,
3386 | { "Support Bit NOGRAPH", "sapdiag.diag.supportbits.NOGRAPH", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_NOGRAPH0x20, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3387 | { &hf_SAPDIAG_SUPPORT_BIT_NOMESSAGES,
3388 | { "Support Bit NOMESSAGES", "sapdiag.diag.supportbits.NOMESSAGES", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_NOMESSAGES0x40, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3389 | { &hf_SAPDIAG_SUPPORT_BIT_NORABAX,
3390 | { "Support Bit NORABAX", "sapdiag.diag.supportbits.NORABAX", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_NORABAX0x80, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3391 |
3392 | { &hf_SAPDIAG_SUPPORT_BIT_NOSYSMSG,
3393 | { "Support Bit NOSYSMSG", "sapdiag.diag.supportbits.NOSYSMSG", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_NOSYSMSG0x01, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3394 | { &hf_SAPDIAG_SUPPORT_BIT_NOSAPSCRIPT,
3395 | { "Support Bit NOSAPSCRIPT", "sapdiag.diag.supportbits.NOSAPSCRIPT", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_NOSAPSCRIPT0x02, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3396 | { &hf_SAPDIAG_SUPPORT_BIT_NORFC,
3397 | { "Support Bit NORFC", "sapdiag.diag.supportbits.NORFC", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_NORFC0x04, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3398 | { &hf_SAPDIAG_SUPPORT_BIT_NEW_BSD_JUSTRIGHT,
3399 | { "Support Bit NEW_BSD_JUSTRIGHT", "sapdiag.diag.supportbits.NEW_BSD_JUSTRIGHT", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_NEW_BSD_JUSTRIGHT0x08, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3400 | { &hf_SAPDIAG_SUPPORT_BIT_MESSAGE_VARS,
3401 | { "Support Bit MESSAGE_VARS", "sapdiag.diag.supportbits.MESSAGE_VARS", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_MESSAGE_VARS0x10, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3402 | { &hf_SAPDIAG_SUPPORT_BIT_OCX_SUPPORT,
3403 | { "Support Bit OCX_SUPPORT", "sapdiag.diag.supportbits.OCX_SUPPORT", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_OCX_SUPPORT0x20, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3404 | { &hf_SAPDIAG_SUPPORT_BIT_SCROLL_INFOS,
3405 | { "Support Bit SCROLL_INFOS", "sapdiag.diag.supportbits.SCROLL_INFOS", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_SCROLL_INFOS0x40, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3406 | { &hf_SAPDIAG_SUPPORT_BIT_TABLE_SIZE_OK,
3407 | { "Support Bit TABLE_SIZE_OK", "sapdiag.diag.supportbits.TABLE_SIZE_OK", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_TABLE_SIZE_OK0x80, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3408 |
3409 | { &hf_SAPDIAG_SUPPORT_BIT_MESSAGE_INFO2,
3410 | { "Support Bit MESSAGE_INFO2", "sapdiag.diag.supportbits.MESSAGE_INFO2", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_MESSAGE_INFO20x01, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3411 | { &hf_SAPDIAG_SUPPORT_BIT_VARINFO_OKCODE,
3412 | { "Support Bit VARINFO_OKCODE", "sapdiag.diag.supportbits.VARINFO_OKCODE", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_VARINFO_OKCODE0x02, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3413 | { &hf_SAPDIAG_SUPPORT_BIT_CURR_TCODE,
3414 | { "Support Bit CURR_TCODE", "sapdiag.diag.supportbits.CURR_TCODE", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_CURR_TCODE0x04, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3415 | { &hf_SAPDIAG_SUPPORT_BIT_CONN_WSIZE,
3416 | { "Support Bit CONN_WSIZE", "sapdiag.diag.supportbits.CONN_WSIZE", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_CONN_WSIZE0x08, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3417 | { &hf_SAPDIAG_SUPPORT_BIT_PUSHBUTTON_2,
3418 | { "Support Bit PUSHBUTTON_2", "sapdiag.diag.supportbits.PUSHBUTTON_2", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_PUSHBUTTON_20x10, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3419 | { &hf_SAPDIAG_SUPPORT_BIT_TABSTRIP,
3420 | { "Support Bit TABSTRIP", "sapdiag.diag.supportbits.TABSTRIP", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_TABSTRIP0x20, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3421 | { &hf_SAPDIAG_SUPPORT_BIT_UNKNOWN_1,
3422 | { "Support Bit UNKNOWN_1", "sapdiag.diag.supportbits.UNKNOWN_1", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_UNKNOWN_10x40, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3423 | { &hf_SAPDIAG_SUPPORT_BIT_TABSCROLL_INFOS,
3424 | { "Support Bit TABSCROLL_INFOS", "sapdiag.diag.supportbits.TABSCROLL_INFOS", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_TABSCROLL_INFOS0x80, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3425 |
3426 | { &hf_SAPDIAG_SUPPORT_BIT_TABLE_FIELD_NAMES,
3427 | { "Support Bit TABLE_FIELD_NAMES", "sapdiag.diag.supportbits.TABLE_FIELD_NAMES", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_TABLE_FIELD_NAMES0x01, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3428 | { &hf_SAPDIAG_SUPPORT_BIT_NEW_MODE_REQUEST,
3429 | { "Support Bit NEW_MODE_REQUEST", "sapdiag.diag.supportbits.NEW_MODE_REQUEST", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_NEW_MODE_REQUEST0x02, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3430 | { &hf_SAPDIAG_SUPPORT_BIT_RFCBLOB_DIAG_PARSER,
3431 | { "Support Bit RFCBLOB_DIAG_PARSER", "sapdiag.diag.supportbits.RFCBLOB_DIAG_PARSER", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_RFCBLOB_DIAG_PARSER0x04, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3432 | { &hf_SAPDIAG_SUPPORT_BIT_MULTI_LOGIN_USER,
3433 | { "Support Bit MULTI_LOGIN_USER", "sapdiag.diag.supportbits.MULTI_LOGIN_USER", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_MULTI_LOGIN_USER0x08, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3434 | { &hf_SAPDIAG_SUPPORT_BIT_CONTROL_CONTAINER,
3435 | { "Support Bit CONTROL_CONTAINER", "sapdiag.diag.supportbits.CONTROL_CONTAINER", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_CONTROL_CONTAINER0x10, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3436 | { &hf_SAPDIAG_SUPPORT_BIT_APPTOOLBAR_FIXED,
3437 | { "Support Bit APPTOOLBAR_FIXED", "sapdiag.diag.supportbits.APPTOOLBAR_FIXED", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_APPTOOLBAR_FIXED0x20, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3438 | { &hf_SAPDIAG_SUPPORT_BIT_R3INFO_USER_CHECKED,
3439 | { "Support Bit R3INFO_USER_CHECKED", "sapdiag.diag.supportbits.R3INFO_USER_CHECKED", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_R3INFO_USER_CHECKED0x40, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3440 | { &hf_SAPDIAG_SUPPORT_BIT_NEED_STDDYNPRO,
3441 | { "Support Bit NEED_STDDYNPRO", "sapdiag.diag.supportbits.NEED_STDDYNPRO", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_NEED_STDDYNPRO0x80, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3442 |
3443 | { &hf_SAPDIAG_SUPPORT_BIT_TYPE_SERVER,
3444 | { "Support Bit TYPE_SERVER", "sapdiag.diag.supportbits.TYPE_SERVER", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_TYPE_SERVER0x01, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3445 | { &hf_SAPDIAG_SUPPORT_BIT_COMBOBOX,
3446 | { "Support Bit COMBOBOX", "sapdiag.diag.supportbits.COMBOBOX", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_COMBOBOX0x02, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3447 | { &hf_SAPDIAG_SUPPORT_BIT_INPUT_REQUIRED,
3448 | { "Support Bit INPUT_REQUIRED", "sapdiag.diag.supportbits.INPUT_REQUIRED", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_INPUT_REQUIRED0x04, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3449 | { &hf_SAPDIAG_SUPPORT_BIT_ISO_LANGUAGE,
3450 | { "Support Bit ISO_LANGUAGE", "sapdiag.diag.supportbits.ISO_LANGUAGE", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_ISO_LANGUAGE0x08, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3451 | { &hf_SAPDIAG_SUPPORT_BIT_COMBOBOX_TABLE,
3452 | { "Support Bit COMBOBOX_TABLE", "sapdiag.diag.supportbits.COMBOBOX_TABLE", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_COMBOBOX_TABLE0x10, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3453 | { &hf_SAPDIAG_SUPPORT_BIT_R3INFO_FLAGS,
3454 | { "Support Bit R3INFO_FLAGS", "sapdiag.diag.supportbits.R3INFO_FLAGS", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_R3INFO_FLAGS0x20, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3455 | { &hf_SAPDIAG_SUPPORT_BIT_CHECKRADIO_EVENTS,
3456 | { "Support Bit CHECKRADIO_EVENTS", "sapdiag.diag.supportbits.CHECKRADIO_EVENTS", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_CHECKRADIO_EVENTS0x40, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3457 | { &hf_SAPDIAG_SUPPORT_BIT_R3INFO_USERID,
3458 | { "Support Bit R3INFO_USERID", "sapdiag.diag.supportbits.R3INFO_USERID", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_R3INFO_USERID0x80, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3459 |
3460 | { &hf_SAPDIAG_SUPPORT_BIT_R3INFO_ROLLCOUNT,
3461 | { "Support Bit R3INFO_ROLLCOUNT", "sapdiag.diag.supportbits.R3INFO_ROLLCOUNT", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_R3INFO_ROLLCOUNT0x01, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3462 | { &hf_SAPDIAG_SUPPORT_BIT_USER_TURNTIME2,
3463 | { "Support Bit USER_TURNTIME2", "sapdiag.diag.supportbits.USER_TURNTIME2", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_USER_TURNTIME20x02, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3464 | { &hf_SAPDIAG_SUPPORT_BIT_NUM_FIELD,
3465 | { "Support Bit NUM_FIELD", "sapdiag.diag.supportbits.NUM_FIELD", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_NUM_FIELD0x04, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3466 | { &hf_SAPDIAG_SUPPORT_BIT_WIN16,
3467 | { "Support Bit WIN16", "sapdiag.diag.supportbits.WIN16", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_WIN160x08, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3468 | { &hf_SAPDIAG_SUPPORT_BIT_CONTEXT_MENU,
3469 | { "Support Bit CONTEXT_MENU", "sapdiag.diag.supportbits.CONTEXT_MENU", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_CONTEXT_MENU0x10, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3470 | { &hf_SAPDIAG_SUPPORT_BIT_SCROLLABLE_TABSTRIP_PAGE,
3471 | { "Support Bit SCROLLABLE_TABSTRIP_PAGE", "sapdiag.diag.supportbits.SCROLLABLE_TABSTRIP_PAGE", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_SCROLLABLE_TABSTRIP_PAGE0x20, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3472 | { &hf_SAPDIAG_SUPPORT_BIT_EVENT_DESCRIPTION,
3473 | { "Support Bit EVENT_DESCRIPTION", "sapdiag.diag.supportbits.EVENT_DESCRIPTION", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_EVENT_DESCRIPTION0x40, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3474 | { &hf_SAPDIAG_SUPPORT_BIT_LABEL_OWNER,
3475 | { "Support Bit LABEL_OWNER", "sapdiag.diag.supportbits.LABEL_OWNER", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_LABEL_OWNER0x80, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3476 |
3477 | { &hf_SAPDIAG_SUPPORT_BIT_CLICKABLE_FIELD,
3478 | { "Support Bit CLICKABLE_FIELD", "sapdiag.diag.supportbits.CLICKABLE_FIELD", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_CLICKABLE_FIELD0x01, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3479 | { &hf_SAPDIAG_SUPPORT_BIT_PROPERTY_BAG,
3480 | { "Support Bit PROPERTY_BAG", "sapdiag.diag.supportbits.PROPERTY_BAG", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_PROPERTY_BAG0x02, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3481 | { &hf_SAPDIAG_SUPPORT_BIT_UNUSED_1,
3482 | { "Support Bit UNUSED_1", "sapdiag.diag.supportbits.UNUSED_1", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_UNUSED_10x04, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3483 | { &hf_SAPDIAG_SUPPORT_BIT_TABLE_ROW_REFERENCES_2,
3484 | { "Support Bit TABLE_ROW_REFERENCES_2", "sapdiag.diag.supportbits.TABLE_ROW_REFERENCES_2", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_TABLE_ROW_REFERENCES_20x08, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3485 | { &hf_SAPDIAG_SUPPORT_BIT_PROPFONT_VALID,
3486 | { "Support Bit PROPFONT_VALID", "sapdiag.diag.supportbits.PROPFONT_VALID", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_PROPFONT_VALID0x10, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3487 | { &hf_SAPDIAG_SUPPORT_BIT_VARINFO_CONTAINER,
3488 | { "Support Bit VARINFO_CONTAINER", "sapdiag.diag.supportbits.VARINFO_CONTAINER", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_VARINFO_CONTAINER0x20, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3489 | { &hf_SAPDIAG_SUPPORT_BIT_R3INFO_IMODEUUID,
3490 | { "Support Bit R3INFO_IMODEUUID", "sapdiag.diag.supportbits.R3INFO_IMODEUUID", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_R3INFO_IMODEUUID0x40, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3491 | { &hf_SAPDIAG_SUPPORT_BIT_NOTGUI,
3492 | { "Support Bit NOTGUI", "sapdiag.diag.supportbits.NOTGUI", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_NOTGUI0x80, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3493 |
3494 | { &hf_SAPDIAG_SUPPORT_BIT_WAN,
3495 | { "Support Bit WAN", "sapdiag.diag.supportbits.WAN", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_WAN0x01, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3496 | { &hf_SAPDIAG_SUPPORT_BIT_XML_BLOBS,
3497 | { "Support Bit XML_BLOBS", "sapdiag.diag.supportbits.XML_BLOBS", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_XML_BLOBS0x02, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3498 | { &hf_SAPDIAG_SUPPORT_BIT_RFC_QUEUE,
3499 | { "Support Bit RFC_QUEUE", "sapdiag.diag.supportbits.RFC_QUEUE", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_RFC_QUEUE0x04, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3500 | { &hf_SAPDIAG_SUPPORT_BIT_RFC_COMPRESS,
3501 | { "Support Bit RFC_COMPRESS", "sapdiag.diag.supportbits.RFC_COMPRESS", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_RFC_COMPRESS0x08, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3502 | { &hf_SAPDIAG_SUPPORT_BIT_JAVA_BEANS,
3503 | { "Support Bit JAVA_BEANS", "sapdiag.diag.supportbits.JAVA_BEANS", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_JAVA_BEANS0x10, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3504 | { &hf_SAPDIAG_SUPPORT_BIT_DPLOADONDEMAND,
3505 | { "Support Bit DPLOADONDEMAND", "sapdiag.diag.supportbits.DPLOADONDEMAND", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_DPLOADONDEMAND0x20, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3506 | { &hf_SAPDIAG_SUPPORT_BIT_CTL_PROPCACHE,
3507 | { "Support Bit CTL_PROPCACHE", "sapdiag.diag.supportbits.CTL_PROPCACHE", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_CTL_PROPCACHE0x40, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3508 | { &hf_SAPDIAG_SUPPORT_BIT_ENJOY_IMODEUUID,
3509 | { "Support Bit ENJOY_IMODEUUID", "sapdiag.diag.supportbits.ENJOY_IMODEUUID", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_ENJOY_IMODEUUID0x80, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3510 |
3511 | { &hf_SAPDIAG_SUPPORT_BIT_RFC_ASYNC_BLOB,
3512 | { "Support Bit RFC_ASYNC_BLOB", "sapdiag.diag.supportbits.RFC_ASYNC_BLOB", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_RFC_ASYNC_BLOB0x01, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3513 | { &hf_SAPDIAG_SUPPORT_BIT_KEEP_SCROLLPOS,
3514 | { "Support Bit KEEP_SCROLLPOS", "sapdiag.diag.supportbits.KEEP_SCROLLPOS", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_KEEP_SCROLLPOS0x02, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3515 | { &hf_SAPDIAG_SUPPORT_BIT_UNUSED_2,
3516 | { "Support Bit UNUSED_2", "sapdiag.diag.supportbits.UNUSED_2", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_UNUSED_20x04, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3517 | { &hf_SAPDIAG_SUPPORT_BIT_UNUSED_3,
3518 | { "Support Bit UNUSED_3", "sapdiag.diag.supportbits.UNUSED_3", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_UNUSED_30x08, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3519 | { &hf_SAPDIAG_SUPPORT_BIT_XML_PROPERTIES,
3520 | { "Support Bit XML_PROPERTIES", "sapdiag.diag.supportbits.XML_PROPERTIES", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_XML_PROPERTIES0x10, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3521 | { &hf_SAPDIAG_SUPPORT_BIT_UNUSED_4,
3522 | { "Support Bit UNUSED_4", "sapdiag.diag.supportbits.UNUSED_4", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_UNUSED_40x20, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3523 | { &hf_SAPDIAG_SUPPORT_BIT_HEX_FIELD,
3524 | { "Support Bit HEX_FIELD", "sapdiag.diag.supportbits.HEX_FIELD", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_HEX_FIELD0x40, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3525 | { &hf_SAPDIAG_SUPPORT_BIT_HAS_CACHE,
3526 | { "Support Bit HAS_CACHE", "sapdiag.diag.supportbits.HAS_CACHE", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_HAS_CACHE0x80, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3527 |
3528 | { &hf_SAPDIAG_SUPPORT_BIT_XML_PROP_TABLE,
3529 | { "Support Bit XML_PROP_TABLE", "sapdiag.diag.supportbits.XML_PROP_TABLE", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_XML_PROP_TABLE0x01, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3530 | { &hf_SAPDIAG_SUPPORT_BIT_UNUSED_5,
3531 | { "Support Bit UNUSED_5", "sapdiag.diag.supportbits.UNUSED_5", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_UNUSED_50x02, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3532 | { &hf_SAPDIAG_SUPPORT_BIT_ENJOY_IMODEUUID2,
3533 | { "Support Bit ENJOY_IMODEUUID2", "sapdiag.diag.supportbits.ENJOY_IMODEUUID2", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_ENJOY_IMODEUUID20x04, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3534 | { &hf_SAPDIAG_SUPPORT_BIT_ITS,
3535 | { "Support Bit ITS", "sapdiag.diag.supportbits.ITS", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_ITS0x08, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3536 | { &hf_SAPDIAG_SUPPORT_BIT_NO_EASYACCESS,
3537 | { "Support Bit NO_EASYACCESS", "sapdiag.diag.supportbits.NO_EASYACCESS", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_NO_EASYACCESS0x10, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3538 | { &hf_SAPDIAG_SUPPORT_BIT_PROPERTYPUMP,
3539 | { "Support Bit PROPERTYPUMP", "sapdiag.diag.supportbits.PROPERTYPUMP", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_PROPERTYPUMP0x20, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3540 | { &hf_SAPDIAG_SUPPORT_BIT_COOKIE,
3541 | { "Support Bit COOKIE", "sapdiag.diag.supportbits.COOKIE", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_COOKIE0x40, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3542 | { &hf_SAPDIAG_SUPPORT_BIT_UNUSED_6,
3543 | { "Support Bit UNUSED_6", "sapdiag.diag.supportbits.UNUSED_6", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_UNUSED_60x80, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3544 |
3545 | { &hf_SAPDIAG_SUPPORT_BIT_SUPPBIT_AREA_SIZE,
3546 | { "Support Bit SUPPBIT_AREA_SIZE", "sapdiag.diag.supportbits.SUPPBIT_AREA_SIZE", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_SUPPBIT_AREA_SIZE0x01, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3547 | { &hf_SAPDIAG_SUPPORT_BIT_DPLOADONDEMAND_WRITE,
3548 | { "Support Bit DPLOADONDEMAND_WRITE", "sapdiag.diag.supportbits.DPLOADONDEMAND_WRITE", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_DPLOADONDEMAND_WRITE0x02, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3549 | { &hf_SAPDIAG_SUPPORT_BIT_CONTROL_FOCUS,
3550 | { "Support Bit CONTROL_FOCUS", "sapdiag.diag.supportbits.CONTROL_FOCUS", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_CONTROL_FOCUS0x04, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3551 | { &hf_SAPDIAG_SUPPORT_BIT_ENTRY_HISTORY,
3552 | { "Support Bit ENTRY_HISTORY", "sapdiag.diag.supportbits.ENTRY_HISTORY", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_ENTRY_HISTORY0x08, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3553 | { &hf_SAPDIAG_SUPPORT_BIT_AUTO_CODEPAGE,
3554 | { "Support Bit AUTO_CODEPAGE", "sapdiag.diag.supportbits.AUTO_CODEPAGE", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_AUTO_CODEPAGE0x10, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3555 | { &hf_SAPDIAG_SUPPORT_BIT_CACHED_VSETS,
3556 | { "Support Bit CACHED_VSETS", "sapdiag.diag.supportbits.CACHED_VSETS", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_CACHED_VSETS0x20, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3557 | { &hf_SAPDIAG_SUPPORT_BIT_EMERGENCY_REPAIR,
3558 | { "Support Bit EMERGENCY_REPAIR", "sapdiag.diag.supportbits.EMERGENCY_REPAIR", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_EMERGENCY_REPAIR0x40, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3559 | { &hf_SAPDIAG_SUPPORT_BIT_AREA2FRONT,
3560 | { "Support Bit AREA2FRONT", "sapdiag.diag.supportbits.AREA2FRONT", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_AREA2FRONT0x80, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3561 |
3562 | { &hf_SAPDIAG_SUPPORT_BIT_SCROLLBAR_WIDTH,
3563 | { "Support Bit SCROLLBAR_WIDTH", "sapdiag.diag.supportbits.SCROLLBAR_WIDTH", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_SCROLLBAR_WIDTH0x01, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3564 | { &hf_SAPDIAG_SUPPORT_BIT_AUTORESIZE,
3565 | { "Support Bit AUTORESIZE", "sapdiag.diag.supportbits.AUTORESIZE", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_AUTORESIZE0x02, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3566 | { &hf_SAPDIAG_SUPPORT_BIT_EDIT_VARLEN,
3567 | { "Support Bit EDIT_VARLEN", "sapdiag.diag.supportbits.EDIT_VARLEN", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_EDIT_VARLEN0x04, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3568 | { &hf_SAPDIAG_SUPPORT_BIT_WORKPLACE,
3569 | { "Support Bit WORKPLACE", "sapdiag.diag.supportbits.WORKPLACE", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_WORKPLACE0x08, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3570 | { &hf_SAPDIAG_SUPPORT_BIT_PRINTDATA,
3571 | { "Support Bit PRINTDATA", "sapdiag.diag.supportbits.PRINTDATA", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_PRINTDATA0x10, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3572 | { &hf_SAPDIAG_SUPPORT_BIT_UNKNOWN_2,
3573 | { "Support Bit UNKNOWN_2", "sapdiag.diag.supportbits.UNKNOWN_2", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_UNKNOWN_20x20, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3574 | { &hf_SAPDIAG_SUPPORT_BIT_SINGLE_SESSION,
3575 | { "Support Bit SINGLE_SESSION", "sapdiag.diag.supportbits.SINGLE_SESSION", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_SINGLE_SESSION0x40, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3576 | { &hf_SAPDIAG_SUPPORT_BIT_NOTIFY_NEWMODE,
3577 | { "Support Bit NOTIFY_NEWMODE", "sapdiag.diag.supportbits.NOTIFY_NEWMODE", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_NOTIFY_NEWMODE0x80, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3578 |
3579 | { &hf_SAPDIAG_SUPPORT_BIT_TOOLBAR_HEIGHT,
3580 | { "Support Bit TOOLBAR_HEIGHT", "sapdiag.diag.supportbits.TOOLBAR_HEIGHT", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_TOOLBAR_HEIGHT0x01, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3581 | { &hf_SAPDIAG_SUPPORT_BIT_XMLPROP_CONTAINER,
3582 | { "Support Bit XMLPROP_CONTAINER", "sapdiag.diag.supportbits.XMLPROP_CONTAINER", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_XMLPROP_CONTAINER0x02, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3583 | { &hf_SAPDIAG_SUPPORT_BIT_XMLPROP_DYNPRO,
3584 | { "Support Bit XMLPROP_DYNPRO", "sapdiag.diag.supportbits.XMLPROP_DYNPRO", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_XMLPROP_DYNPRO0x04, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3585 | { &hf_SAPDIAG_SUPPORT_BIT_DP_HTTP_PUT,
3586 | { "Support Bit DP_HTTP_PUT", "sapdiag.diag.supportbits.DP_HTTP_PUT", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_DP_HTTP_PUT0x08, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3587 | { &hf_SAPDIAG_SUPPORT_BIT_DYNAMIC_PASSPORT,
3588 | { "Support Bit DYNAMIC_PASSPORT", "sapdiag.diag.supportbits.DYNAMIC_PASSPORT", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_DYNAMIC_PASSPORT0x10, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3589 | { &hf_SAPDIAG_SUPPORT_BIT_WEBGUI,
3590 | { "Support Bit WEBGUI", "sapdiag.diag.supportbits.WEBGUI", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_WEBGUI0x20, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3591 | { &hf_SAPDIAG_SUPPORT_BIT_WEBGUI_HELPMODE,
3592 | { "Support Bit WEBGUI_HELPMODE", "sapdiag.diag.supportbits.WEBGUI_HELPMODE", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_WEBGUI_HELPMODE0x40, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3593 | { &hf_SAPDIAG_SUPPORT_BIT_CONTROL_FOCUS_ON_LIST,
3594 | { "Support Bit CONTROL_FOCUS_ON_LIST", "sapdiag.diag.supportbits.CONTROL_FOCUS_ON_LIST", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_CONTROL_FOCUS_ON_LIST0x80, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3595 |
3596 | { &hf_SAPDIAG_SUPPORT_BIT_CBU_RBUDUMMY_2,
3597 | { "Support Bit CBU_RBUDUMMY_2", "sapdiag.diag.supportbits.CBU_RBUDUMMY_2", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_CBU_RBUDUMMY_20x01, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3598 | { &hf_SAPDIAG_SUPPORT_BIT_EOKDUMMY_1,
3599 | { "Support Bit EOKDUMMY_1", "sapdiag.diag.supportbits.EOKDUMMY_1", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_EOKDUMMY_10x02, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3600 | { &hf_SAPDIAG_SUPPORT_BIT_GUI_USER_SCRIPTING,
3601 | { "Support Bit GUI_USER_SCRIPTING", "sapdiag.diag.supportbits.GUI_USER_SCRIPTING", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_GUI_USER_SCRIPTING0x04, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3602 | { &hf_SAPDIAG_SUPPORT_BIT_SLC,
3603 | { "Support Bit SLC", "sapdiag.diag.supportbits.SLC", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_SLC0x08, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3604 | { &hf_SAPDIAG_SUPPORT_BIT_ACCESSIBILITY,
3605 | { "Support Bit ACCESSIBILITY", "sapdiag.diag.supportbits.ACCESSIBILITY", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_ACCESSIBILITY0x10, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3606 | { &hf_SAPDIAG_SUPPORT_BIT_ECATT,
3607 | { "Support Bit ECATT", "sapdiag.diag.supportbits.ECATT", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_ECATT0x20, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3608 | { &hf_SAPDIAG_SUPPORT_BIT_ENJOY_IMODEUUID3,
3609 | { "Support Bit ENJOY_IMODEUUID3", "sapdiag.diag.supportbits.ENJOY_IMODEUUID3", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_ENJOY_IMODEUUID30x40, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3610 | { &hf_SAPDIAG_SUPPORT_BIT_ENABLE_UTF8,
3611 | { "Support Bit ENABLE_UTF8", "sapdiag.diag.supportbits.ENABLE_UTF8", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_ENABLE_UTF80x80, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3612 |
3613 | { &hf_SAPDIAG_SUPPORT_BIT_R3INFO_AUTOLOGOUT_TIME,
3614 | { "Support Bit R3INFO_AUTOLOGOUT_TIME", "sapdiag.diag.supportbits.R3INFO_AUTOLOGOUT_TIME", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_R3INFO_AUTOLOGOUT_TIME0x01, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3615 | { &hf_SAPDIAG_SUPPORT_BIT_VARINFO_ICON_TITLE_LIST,
3616 | { "Support Bit VARINFO_ICON_TITLE_LIST", "sapdiag.diag.supportbits.VARINFO_ICON_TITLE_LIST", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_VARINFO_ICON_TITLE_LIST0x02, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3617 | { &hf_SAPDIAG_SUPPORT_BIT_ENABLE_UTF16BE,
3618 | { "Support Bit ENABLE_UTF16BE", "sapdiag.diag.supportbits.ENABLE_UTF16BE", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_ENABLE_UTF16BE0x04, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3619 | { &hf_SAPDIAG_SUPPORT_BIT_ENABLE_UTF16LE,
3620 | { "Support Bit ENABLE_UTF16LE", "sapdiag.diag.supportbits.ENABLE_UTF16LE", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_ENABLE_UTF16LE0x08, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3621 | { &hf_SAPDIAG_SUPPORT_BIT_R3INFO_CODEPAGE_APP,
3622 | { "Support Bit R3INFO_CODEPAGE_APP", "sapdiag.diag.supportbits.R3INFO_CODEPAGE_APP", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_R3INFO_CODEPAGE_APP0x10, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3623 | { &hf_SAPDIAG_SUPPORT_BIT_ENABLE_APPL4,
3624 | { "Support Bit ENABLE_APPL4", "sapdiag.diag.supportbits.ENABLE_APPL4", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_ENABLE_APPL40x20, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3625 | { &hf_SAPDIAG_SUPPORT_BIT_GUIPATCHLEVEL,
3626 | { "Support Bit GUIPATCHLEVEL", "sapdiag.diag.supportbits.GUIPATCHLEVEL", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_GUIPATCHLEVEL0x40, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3627 | { &hf_SAPDIAG_SUPPORT_BIT_CBURBU_NEW_STATE,
3628 | { "Support Bit CBURBU_NEW_STATE", "sapdiag.diag.supportbits.CBURBU_NEW_STATE", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_CBURBU_NEW_STATE0x80, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3629 |
3630 | { &hf_SAPDIAG_SUPPORT_BIT_BINARY_EVENTID,
3631 | { "Support Bit BINARY_EVENTID", "sapdiag.diag.supportbits.BINARY_EVENTID", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_BINARY_EVENTID0x01, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3632 | { &hf_SAPDIAG_SUPPORT_BIT_GUI_THEME,
3633 | { "Support Bit GUI_THEME", "sapdiag.diag.supportbits.GUI_THEME", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_GUI_THEME0x02, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3634 | { &hf_SAPDIAG_SUPPORT_BIT_TOP_WINDOW,
3635 | { "Support Bit TOP_WINDOW", "sapdiag.diag.supportbits.TOP_WINDOW", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_TOP_WINDOW0x04, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3636 | { &hf_SAPDIAG_SUPPORT_BIT_EVENT_DESCRIPTION_1,
3637 | { "Support Bit EVENT_DESCRIPTION_1", "sapdiag.diag.supportbits.EVENT_DESCRIPTION_1", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_EVENT_DESCRIPTION_10x08, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3638 | { &hf_SAPDIAG_SUPPORT_BIT_SPLITTER,
3639 | { "Support Bit SPLITTER", "sapdiag.diag.supportbits.SPLITTER", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_SPLITTER0x10, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3640 | { &hf_SAPDIAG_SUPPORT_BIT_VALUE_4_HISTORY,
3641 | { "Support Bit VALUE_4_HISTORY", "sapdiag.diag.supportbits.VALUE_4_HISTORY", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_VALUE_4_HISTORY0x20, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3642 | { &hf_SAPDIAG_SUPPORT_BIT_ACC_LIST,
3643 | { "Support Bit ACC_LIST", "sapdiag.diag.supportbits.ACC_LIST", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_ACC_LIST0x40, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3644 | { &hf_SAPDIAG_SUPPORT_BIT_GUI_USER_SCRIPTING_INFO,
3645 | { "Support Bit GUI_USER_SCRIPTING_INFO", "sapdiag.diag.supportbits.GUI_USER_SCRIPTING_INFO", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_GUI_USER_SCRIPTING_INFO0x80, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3646 |
3647 | { &hf_SAPDIAG_SUPPORT_BIT_TEXTEDIT_STREAM,
3648 | { "Support Bit TEXTEDIT_STREAM", "sapdiag.diag.supportbits.TEXTEDIT_STREAM", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_TEXTEDIT_STREAM0x01, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3649 | { &hf_SAPDIAG_SUPPORT_BIT_DYNT_NOFOCUS,
3650 | { "Support Bit DYNT_NOFOCUS", "sapdiag.diag.supportbits.DYNT_NOFOCUS", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_DYNT_NOFOCUS0x02, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3651 | { &hf_SAPDIAG_SUPPORT_BIT_R3INFO_CODEPAGE_APP_1,
3652 | { "Support Bit R3INFO_CODEPAGE_APP_1", "sapdiag.diag.supportbits.R3INFO_CODEPAGE_APP_1", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_R3INFO_CODEPAGE_APP_10x04, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3653 | { &hf_SAPDIAG_SUPPORT_BIT_FRAME_1,
3654 | { "Support Bit FRAME_1", "sapdiag.diag.supportbits.FRAME_1", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_FRAME_10x08, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3655 | { &hf_SAPDIAG_SUPPORT_BIT_TICKET4GUI,
3656 | { "Support Bit TICKET4GUI", "sapdiag.diag.supportbits.TICKET4GUI", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_TICKET4GUI0x10, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3657 | { &hf_SAPDIAG_SUPPORT_BIT_ACC_LIST_PROPS,
3658 | { "Support Bit ACC_LIST_PROPS", "sapdiag.diag.supportbits.ACC_LIST_PROPS", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_ACC_LIST_PROPS0x20, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3659 | { &hf_SAPDIAG_SUPPORT_BIT_TABSEL_ATTRIB_INPUT,
3660 | { "Support Bit TABSEL_ATTRIB_INPUT", "sapdiag.diag.supportbits.TABSEL_ATTRIB_INPUT", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_TABSEL_ATTRIB_INPUT0x40, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3661 | { &hf_SAPDIAG_SUPPORT_BIT_DEFAULT_TOOLTIP,
3662 | { "Support Bit DEFAULT_TOOLTIP", "sapdiag.diag.supportbits.DEFAULT_TOOLTIP", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_DEFAULT_TOOLTIP0x80, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3663 |
3664 | { &hf_SAPDIAG_SUPPORT_BIT_XML_PROP_TABLE_2,
3665 | { "Support Bit XML_PROP_TABLE_2", "sapdiag.diag.supportbits.XML_PROP_TABLE_2", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_XML_PROP_TABLE_20x01, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3666 | { &hf_SAPDIAG_SUPPORT_BIT_CBU_RBUDUMMY_3,
3667 | { "Support Bit CBU_RBUDUMMY_3", "sapdiag.diag.supportbits.CBU_RBUDUMMY_3", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_CBU_RBUDUMMY_30x02, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3668 | { &hf_SAPDIAG_SUPPORT_BIT_CELLINFO,
3669 | { "Support Bit CELLINFO", "sapdiag.diag.supportbits.CELLINFO", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_CELLINFO0x04, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3670 | { &hf_SAPDIAG_SUPPORT_BIT_CONTROL_FOCUS_ON_LIST_2,
3671 | { "Support Bit CONTROL_FOCUS_ON_LIST_2", "sapdiag.diag.supportbits.CONTROL_FOCUS_ON_LIST_2", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_CONTROL_FOCUS_ON_LIST_20x08, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3672 | { &hf_SAPDIAG_SUPPORT_BIT_TABLE_COLUMNWIDTH_INPUT,
3673 | { "Support Bit TABLE_COLUMNWIDTH_INPUT", "sapdiag.diag.supportbits.TABLE_COLUMNWIDTH_INPUT", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_TABLE_COLUMNWIDTH_INPUT0x10, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3674 | { &hf_SAPDIAG_SUPPORT_BIT_ITS_PLUGIN,
3675 | { "Support Bit ITS_PLUGIN", "sapdiag.diag.supportbits.ITS_PLUGIN", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_ITS_PLUGIN0x20, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3676 | { &hf_SAPDIAG_SUPPORT_BIT_OBJECT_NAMES_4_LOGIN_PROCESS,
3677 | { "Support Bit OBJECT_NAMES_4_LOGIN_PROCESS", "sapdiag.diag.supportbits.OBJECT_NAMES_4_LOGIN_PROCESS", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_OBJECT_NAMES_4_LOGIN_PROCESS0x40, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3678 | { &hf_SAPDIAG_SUPPORT_BIT_RFC_SERVER_4_GUI,
3679 | { "Support Bit RFC_SERVER_4_GUI", "sapdiag.diag.supportbits.RFC_SERVER_4_GUI", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_RFC_SERVER_4_GUI0x80, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3680 |
3681 | { &hf_SAPDIAG_SUPPORT_BIT_R3INFO_FLAGS_2,
3682 | { "Support Bit R3INFO_FLAGS_2", "sapdiag.diag.supportbits.R3INFO_FLAGS_2", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_R3INFO_FLAGS_20x01, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3683 | { &hf_SAPDIAG_SUPPORT_BIT_RCUI,
3684 | { "Support Bit RCUI", "sapdiag.diag.supportbits.RCUI", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_RCUI0x02, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3685 | { &hf_SAPDIAG_SUPPORT_BIT_MENUENTRY_WITH_FCODE,
3686 | { "Support Bit MENUENTRY_WITH_FCODE", "sapdiag.diag.supportbits.MENUENTRY_WITH_FCODE", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_MENUENTRY_WITH_FCODE0x04, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3687 | { &hf_SAPDIAG_SUPPORT_BIT_WEBSAPCONSOLE,
3688 | { "Support Bit WEBSAPCONSOLE", "sapdiag.diag.supportbits.WEBSAPCONSOLE", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_WEBSAPCONSOLE0x08, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3689 | { &hf_SAPDIAG_SUPPORT_BIT_R3INFO_KERNEL_VERSION,
3690 | { "Support Bit R3INFO_KERNEL_VERSION", "sapdiag.diag.supportbits.R3INFO_KERNEL_VERSION", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_R3INFO_KERNEL_VERSION0x10, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3691 | { &hf_SAPDIAG_SUPPORT_BIT_VARINFO_CONTAINER_LOOP,
3692 | { "Support Bit VARINFO_CONTAINER_LOOP", "sapdiag.diag.supportbits.VARINFO_CONTAINER_LOOP", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_VARINFO_CONTAINER_LOOP0x20, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3693 | { &hf_SAPDIAG_SUPPORT_BIT_EOKDUMMY_2,
3694 | { "Support Bit EOKDUMMY_2", "sapdiag.diag.supportbits.EOKDUMMY_2", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_EOKDUMMY_20x40, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3695 | { &hf_SAPDIAG_SUPPORT_BIT_MESSAGE_INFO3,
3696 | { "Support Bit MESSAGE_INFO3", "sapdiag.diag.supportbits.MESSAGE_INFO3", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_MESSAGE_INFO30x80, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3697 |
3698 | { &hf_SAPDIAG_SUPPORT_BIT_SBA2,
3699 | { "Support Bit SBA2", "sapdiag.diag.supportbits.SBA2", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_SBA20x01, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3700 | { &hf_SAPDIAG_SUPPORT_BIT_MAINAREA_SIZE,
3701 | { "Support Bit MAINAREA_SIZE", "sapdiag.diag.supportbits.MAINAREA_SIZE", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_MAINAREA_SIZE0x02, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3702 | { &hf_SAPDIAG_SUPPORT_BIT_GUIPATCHLEVEL_2,
3703 | { "Support Bit GUIPATCHLEVEL_2", "sapdiag.diag.supportbits.GUIPATCHLEVEL_2", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_GUIPATCHLEVEL_20x04, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3704 | { &hf_SAPDIAG_SUPPORT_BIT_DISPLAY_SIZE,
3705 | { "Support Bit DISPLAY_SIZE", "sapdiag.diag.supportbits.DISPLAY_SIZE", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_DISPLAY_SIZE0x08, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3706 | { &hf_SAPDIAG_SUPPORT_BIT_GUI_PACKET,
3707 | { "Support Bit GUI_PACKET", "sapdiag.diag.supportbits.GUI_PACKET", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_GUI_PACKET0x10, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3708 | { &hf_SAPDIAG_SUPPORT_BIT_DIALOG_STEP_NUMBER,
3709 | { "Support Bit DIALOG_STEP_NUMBER", "sapdiag.diag.supportbits.DIALOG_STEP_NUMBER", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_DIALOG_STEP_NUMBER0x20, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3710 | { &hf_SAPDIAG_SUPPORT_BIT_TC_KEEP_SCROLL_POSITION,
3711 | { "Support Bit TC_KEEP_SCROLL_POSITION", "sapdiag.diag.supportbits.TC_KEEP_SCROLL_POSITION", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_TC_KEEP_SCROLL_POSITION0x40, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3712 | { &hf_SAPDIAG_SUPPORT_BIT_MESSAGE_SERVICE_REQUEST,
3713 | { "Support Bit MESSAGE_SERVICE_REQUEST", "sapdiag.diag.supportbits.MESSAGE_SERVICE_REQUEST", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_MESSAGE_SERVICE_REQUEST0x80, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3714 |
3715 | { &hf_SAPDIAG_SUPPORT_BIT_DYNT_FOCUS_FRAME,
3716 | { "Support Bit DYNT_FOCUS_FRAME", "sapdiag.diag.supportbits.DYNT_FOCUS_FRAME", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_DYNT_FOCUS_FRAME0x01, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3717 | { &hf_SAPDIAG_SUPPORT_BIT_MAX_STRING_LEN,
3718 | { "Support Bit MAX_STRING_LEN", "sapdiag.diag.supportbits.MAX_STRING_LEN", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_MAX_STRING_LEN0x02, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3719 | { &hf_SAPDIAG_SUPPORT_BIT_VARINFO_CONTAINER_1,
3720 | { "Support Bit VARINFO_CONTAINER_1", "sapdiag.diag.supportbits.VARINFO_CONTAINER_1", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_VARINFO_CONTAINER_10x04, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3721 | { &hf_SAPDIAG_SUPPORT_BIT_STD_TOOLBAR_ITEMS,
3722 | { "Support Bit STD_TOOLBAR_ITEMS", "sapdiag.diag.supportbits.STD_TOOLBAR_ITEMS", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_STD_TOOLBAR_ITEMS0x08, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3723 | { &hf_SAPDIAG_SUPPORT_BIT_XMLPROP_LIST_DYNPRO,
3724 | { "Support Bit XMLPROP_LIST_DYNPRO", "sapdiag.diag.supportbits.XMLPROP_LIST_DYNPRO", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_XMLPROP_LIST_DYNPRO0x10, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3725 | { &hf_SAPDIAG_SUPPORT_BIT_TRACE_GUI_CONNECT,
3726 | { "Support Bit TRACE_GUI_CONNECT", "sapdiag.diag.supportbits.TRACE_GUI_CONNECT", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_TRACE_GUI_CONNECT0x20, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3727 | { &hf_SAPDIAG_SUPPORT_BIT_LIST_FULLWIDTH,
3728 | { "Support Bit LIST_FULLWIDTH", "sapdiag.diag.supportbits.LIST_FULLWIDTH", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_LIST_FULLWIDTH0x40, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3729 | { &hf_SAPDIAG_SUPPORT_BIT_ALLWAYS_SEND_CLIENT,
3730 | { "Support Bit ALLWAYS_SEND_CLIENT", "sapdiag.diag.supportbits.ALLWAYS_SEND_CLIENT", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_ALLWAYS_SEND_CLIENT0x80, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3731 |
3732 | { &hf_SAPDIAG_SUPPORT_BIT_UNKNOWN_3,
3733 | { "Support Bit UNKNOWN_3", "sapdiag.diag.supportbits.UNKNOWN_3", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_UNKNOWN_30x01, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3734 | { &hf_SAPDIAG_SUPPORT_BIT_GUI_SIGNATURE_COLOR,
3735 | { "Support Bit GUI_SIGNATURE_COLOR", "sapdiag.diag.supportbits.GUI_SIGNATURE_COLOR", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_GUI_SIGNATURE_COLOR0x02, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3736 | { &hf_SAPDIAG_SUPPORT_BIT_MAX_WSIZE,
3737 | { "Support Bit MAX_WSIZE", "sapdiag.diag.supportbits.MAX_WSIZE", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_MAX_WSIZE0x04, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3738 | { &hf_SAPDIAG_SUPPORT_BIT_SAP_PERSONAS,
3739 | { "Support Bit SAP_PERSONAS", "sapdiag.diag.supportbits.SAP_PERSONAS", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_SAP_PERSONAS0x08, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3740 | { &hf_SAPDIAG_SUPPORT_BIT_IDA_ALV,
3741 | { "Support Bit IDA_ALV", "sapdiag.diag.supportbits.IDA_ALV", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_IDA_ALV0x10, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3742 | { &hf_SAPDIAG_SUPPORT_BIT_IDA_ALV_FRAGMENTS,
3743 | { "Support Bit IDA_ALV_FRAGMENTS", "sapdiag.diag.supportbits.IDA_ALV_FRAGMENTS", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_IDA_ALV_FRAGMENTS0x20, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3744 | { &hf_SAPDIAG_SUPPORT_BIT_AMC,
3745 | { "Support Bit AMC", "sapdiag.diag.supportbits.AMC", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_AMC0x40, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3746 | { &hf_SAPDIAG_SUPPORT_BIT_EXTMODE_FONT_METRIC,
3747 | { "Support Bit EXTMODE_FONT_METRIC", "sapdiag.diag.supportbits.EXTMODE_FONT_METRIC", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_EXTMODE_FONT_METRIC0x80, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3748 |
3749 | { &hf_SAPDIAG_SUPPORT_BIT_GROUPBOX,
3750 | { "Support Bit GROUPBOX", "sapdiag.diag.supportbits.GROUPBOX", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_GROUPBOX0x01, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3751 | { &hf_SAPDIAG_SUPPORT_BIT_AGI_ID_TS_BUTTON,
3752 | { "Support Bit AGI_ID_TS_BUTTON", "sapdiag.diag.supportbits.AGI_ID_TS_BUTTON", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_AGI_ID_TS_BUTTON0x02, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3753 | { &hf_SAPDIAG_SUPPORT_BIT_NO_FOCUS_ON_LIST,
3754 | { "Support Bit NO_FOCUS_ON_LIST", "sapdiag.diag.supportbits.NO_FOCUS_ON_LIST", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_NO_FOCUS_ON_LIST0x04, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3755 | { &hf_SAPDIAG_SUPPORT_BIT_FIORI_MODE,
3756 | { "Support Bit FIORI_MODE", "sapdiag.diag.supportbits.FIORI_MODE", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_FIORI_MODE0x08, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3757 | { &hf_SAPDIAG_SUPPORT_BIT_CONNECT_CHECK_DONE,
3758 | { "Support Bit CONNECT_CHECK_DONE", "sapdiag.diag.supportbits.CONNECT_CHECK_DONE", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_CONNECT_CHECK_DONE0x10, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3759 | { &hf_SAPDIAG_SUPPORT_BIT_MSGINFO_WITH_CODEPAGE,
3760 | { "Support Bit MSGINFO_WITH_CODEPAGE", "sapdiag.diag.supportbits.MSGINFO_WITH_CODEPAGE", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_MSGINFO_WITH_CODEPAGE0x20, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3761 | { &hf_SAPDIAG_SUPPORT_BIT_AGI_ID,
3762 | { "Support Bit AGI_ID", "sapdiag.diag.supportbits.AGI_ID", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_AGI_ID0x40, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3763 | { &hf_SAPDIAG_SUPPORT_BIT_AGI_ID_TC,
3764 | { "Support Bit AGI_ID_TC", "sapdiag.diag.supportbits.AGI_ID_TC", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_AGI_ID_TC0x80, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3765 |
3766 | { &hf_SAPDIAG_SUPPORT_BIT_FIORI_TOOLBARS,
3767 | { "Support Bit FIORI_TOOLBARS", "sapdiag.diag.supportbits.FIORI_TOOLBARS", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_FIORI_TOOLBARS0x01, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3768 | { &hf_SAPDIAG_SUPPORT_BIT_OBJECT_NAMES_ENFORCE,
3769 | { "Support Bit OBJECT_NAMES_ENFORCE", "sapdiag.diag.supportbits.OBJECT_NAMES_ENFORCE", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_OBJECT_NAMES_ENFORCE0x02, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3770 | { &hf_SAPDIAG_SUPPORT_BIT_MESDUMMY_FLAGS_2_3,
3771 | { "Support Bit MESDUMMY_FLAGS_2_3", "sapdiag.diag.supportbits.MESDUMMY_FLAGS_2_3", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_MESDUMMY_FLAGS_2_30x04, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3772 | { &hf_SAPDIAG_SUPPORT_BIT_NWBC,
3773 | { "Support Bit NWBC", "sapdiag.diag.supportbits.NWBC", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_NWBC0x08, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3774 | { &hf_SAPDIAG_SUPPORT_BIT_CONTAINER_LIST,
3775 | { "Support Bit CONTAINER_LIST", "sapdiag.diag.supportbits.CONTAINER_LIST", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_CONTAINER_LIST0x10, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3776 | { &hf_SAPDIAG_SUPPORT_BIT_GUI_SYSTEM_COLOR,
3777 | { "Support Bit GUI_SYSTEM_COLOR", "sapdiag.diag.supportbits.GUI_SYSTEM_COLOR", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_GUI_SYSTEM_COLOR0x20, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3778 | { &hf_SAPDIAG_SUPPORT_BIT_GROUPBOX_WITHOUT_BOTTOMLINE,
3779 | { "Support Bit GROUPBOX_WITHOUT_BOTTOMLINE", "sapdiag.diag.supportbits.GROUPBOX_WITHOUT_BOTTOMLINE", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_SUPPORT_BIT_GROUPBOX_WITHOUT_BOTTOMLINE0x40, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3780 |
3781 | /* Dynt Atom */
3782 | { &hf_sapdiag_item_dynt_atom,
3783 | { "Dynt Atom", "sapdiag.item.value.dyntatom", FT_NONE, BASE_NONE, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3784 | { &hf_sapdiag_item_dynt_atom_item,
3785 | { "Dynt Atom Item", "sapdiag.item.value.dyntatom.item", FT_NONE, BASE_NONE, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3786 | { &hf_sapdiag_item_dynt_atom_item_etype,
3787 | { "Dynt Atom Item Type", "sapdiag.item.value.dyntatom.item.type", FT_UINT8, BASE_DEC, VALS(sapdiag_item_dynt_atom_item_etype_vals)((0 ? (const struct _value_string*)0 : ((sapdiag_item_dynt_atom_item_etype_vals )))), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3788 |
3789 | /* Dynt Atom Attribute Flags */
3790 | { &hf_sapdiag_item_dynt_atom_item_attr,
3791 | { "Dynt Atom Item Attributes", "sapdiag.item.value.dyntatom.item.attr", FT_UINT8, BASE_HEX, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3792 | { &hf_sapdiag_item_dynt_atom_item_attr_DIAG_BSD_COMBOSTYLE,
3793 | { "Dynt Atom Item Attribute Combo Style", "sapdiag.item.value.dyntatom.item.attr.COMBOSTYLE", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_ATOM_ATTR_DIAG_BSD_COMBOSTYLE0x80, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3794 | { &hf_sapdiag_item_dynt_atom_item_attr_DIAG_BSD_YES3D,
3795 | { "Dynt Atom Item Attribute Yes3D", "sapdiag.item.value.dyntatom.item.attr.YES3D", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_ATOM_ATTR_DIAG_BSD_YES3D0x40, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3796 | { &hf_sapdiag_item_dynt_atom_item_attr_DIAG_BSD_PROPFONT,
3797 | { "Dynt Atom Item Attribute Prop Font", "sapdiag.item.value.dyntatom.item.attr.PROPFONT", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_ATOM_ATTR_DIAG_BSD_PROPFONT0x20, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3798 | { &hf_sapdiag_item_dynt_atom_item_attr_DIAG_BSD_MATCHCODE,
3799 | { "Dynt Atom Item Attribute Match Code", "sapdiag.item.value.dyntatom.item.attr.MATCHCODE", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_ATOM_ATTR_DIAG_BSD_MATCHCODE0x10, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3800 | { &hf_sapdiag_item_dynt_atom_item_attr_DIAG_BSD_JUSTRIGHT,
3801 | { "Dynt Atom Item Attribute Just Right", "sapdiag.item.value.dyntatom.item.attr.JUSTRIGHT", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_ATOM_ATTR_DIAG_BSD_JUSTRIGHT0x08, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3802 | { &hf_sapdiag_item_dynt_atom_item_attr_DIAG_BSD_INTENSIFY,
3803 | { "Dynt Atom Item Attribute Intensify", "sapdiag.item.value.dyntatom.item.attr.INTENSIFY", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_ATOM_ATTR_DIAG_BSD_INTENSIFY0x04, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3804 | { &hf_sapdiag_item_dynt_atom_item_attr_DIAG_BSD_INVISIBLE,
3805 | { "Dynt Atom Item Attribute Invisible", "sapdiag.item.value.dyntatom.item.attr.INVISIBLE", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_ATOM_ATTR_DIAG_BSD_INVISIBLE0x02, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3806 | { &hf_sapdiag_item_dynt_atom_item_attr_DIAG_BSD_PROTECTED,
3807 | { "Dynt Atom Item Attribute Protected", "sapdiag.item.value.dyntatom.item.attr.PROTECTED", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_ATOM_ATTR_DIAG_BSD_PROTECTED0x01, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3808 |
3809 | /* Control Properties fields */
3810 | { &hf_sapdiag_item_control_properties_id,
3811 | { "Control Properties ID", "sapdiag.item.value.controlproperties.id", FT_UINT16, BASE_HEX, VALS(sapdiag_item_control_properties_id_vals)((0 ? (const struct _value_string*)0 : ((sapdiag_item_control_properties_id_vals )))), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3812 | { &hf_sapdiag_item_control_properties_value,
3813 | { "Control Properties Value", "sapdiag.item.value.controlproperties.value", FT_NONE, BASE_NONE, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3814 |
3815 | /* UI Event Source fields */
3816 | { &hf_sapdiag_item_ui_event_event_type,
3817 | { "UI Event Source Type", "sapdiag.item.value.uievent.type", FT_UINT16, BASE_DEC, VALS(sapdiag_item_ui_event_event_type_vals)((0 ? (const struct _value_string*)0 : ((sapdiag_item_ui_event_event_type_vals )))), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3818 | { &hf_sapdiag_item_ui_event_control_type,
3819 | { "UI Event Control Type", "sapdiag.item.value.uievent.control", FT_UINT16, BASE_DEC, VALS(sapdiag_item_ui_event_control_type_vals)((0 ? (const struct _value_string*)0 : ((sapdiag_item_ui_event_control_type_vals )))), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3820 |
3821 | { &hf_sapdiag_item_ui_event_valid,
3822 | { "UI Event Valid", "sapdiag.item.value.uievent.valid", FT_UINT8, BASE_DEC, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3823 | { &hf_sapdiag_item_ui_event_valid_MENU_POS,
3824 | { "UI Event Valid Menu Pos", "sapdiag.item.value.uievent.valid.MENU_POS", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_UI_EVENT_VALID_FLAG_MENU_POS0x01, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3825 | { &hf_sapdiag_item_ui_event_valid_CONTROL_POS,
3826 | { "UI Event Valid Control Pos", "sapdiag.item.value.uievent.valid.CONTROL_POS", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_UI_EVENT_VALID_FLAG_CONTROL_POS0x02, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3827 | { &hf_sapdiag_item_ui_event_valid_NAVIGATION_DATA,
3828 | { "UI Event Valid Navigation Data", "sapdiag.item.value.uievent.valid.NAVIGATION_DATA", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_UI_EVENT_VALID_FLAG_NAVIGATION_DATA0x04, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3829 | { &hf_sapdiag_item_ui_event_valid_FUNCTIONKEY_DATA,
3830 | { "UI Event Valid Function Key Data", "sapdiag.item.value.uievent.valid.FUNCTIONKEY_DATA", FT_BOOLEAN, 8, NULL((void*)0), SAPDIAG_UI_EVENT_VALID_FLAG_FUNCTIONKEY_DATA0x08, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3831 |
3832 | { &hf_sapdiag_item_ui_event_control_row,
3833 | { "UI Event Source Control Row", "sapdiag.item.value.uievent.controlrow", FT_UINT16, BASE_DEC, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3834 | { &hf_sapdiag_item_ui_event_control_col,
3835 | { "UI Event Source Control Column", "sapdiag.item.value.uievent.controlcol", FT_UINT16, BASE_DEC, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3836 | { &hf_sapdiag_item_ui_event_navigation_data,
3837 | { "UI Event Source Navigation Data", "sapdiag.item.value.uievent.navigationdata", FT_UINT32, BASE_DEC, VALS(sapdiag_item_ui_event_navigation_data_vals)((0 ? (const struct _value_string*)0 : ((sapdiag_item_ui_event_navigation_data_vals )))), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3838 | { &hf_sapdiag_item_ui_event_data,
3839 | { "UI Event Source Data", "sapdiag.item.value.uievent.data", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3840 | { &hf_sapdiag_item_ui_event_container_nrs,
3841 | { "UI Event Source Container IDs Numbers", "sapdiag.item.value.uievent.containernrs", FT_UINT16, BASE_DEC, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3842 | { &hf_sapdiag_item_ui_event_container,
3843 | { "UI Event Source Container ID", "sapdiag.item.value.uievent.container", FT_UINT8, BASE_DEC, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3844 |
3845 | /* Menu Entries */
3846 | { &hf_sapdiag_item_menu_entry,
3847 | { "Menu Entry", "sapdiag.item.value.menu", FT_NONE, BASE_NONE, NULL((void*)0), 0x0, NULL((void*)0),
3848 | HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0) }},
3849 |
3850 | };
3851 |
3852 | /* Setup protocol subtree array */
3853 | static int *ett[] = {
3854 | &ett_sapdiag
3855 | };
3856 |
3857 | /* Register the expert info */
3858 | static ei_register_info ei[] = {
3859 | { &ei_sapdiag_item_unknown, { "sapdiag.item.unknown", PI_UNDECODED0x05000000, PI_WARN0x00600000, "The Diag Item has a unknown type that is not dissected", EXPFILL0, ((void*)0), 0, ((void*)0), {0, {((void*)0), ((void*)0), FT_NONE , BASE_NONE, ((void*)0), 0, ((void*)0), -1, 0, HF_REF_TYPE_NONE , -1, ((void*)0)}} }},
3860 | { &ei_sapdiag_item_partial, { "sapdiag.item.unknown_partial", PI_UNDECODED0x05000000, PI_WARN0x00600000, "The Diag Item is dissected partially", EXPFILL0, ((void*)0), 0, ((void*)0), {0, {((void*)0), ((void*)0), FT_NONE , BASE_NONE, ((void*)0), 0, ((void*)0), -1, 0, HF_REF_TYPE_NONE , -1, ((void*)0)}} }},
3861 | { &ei_sapdiag_item_unknown_length, { "sapdiag.item.length.unknown", PI_UNDECODED0x05000000, PI_WARN0x00600000, "Diag Type of unknown length", EXPFILL0, ((void*)0), 0, ((void*)0), {0, {((void*)0), ((void*)0), FT_NONE , BASE_NONE, ((void*)0), 0, ((void*)0), -1, 0, HF_REF_TYPE_NONE , -1, ((void*)0)}} }},
3862 | { &ei_sapdiag_item_offset_invalid, { "sapdiag.item.offset.invalid", PI_MALFORMED0x07000000, PI_ERROR0x00800000, "Invalid offset", EXPFILL0, ((void*)0), 0, ((void*)0), {0, {((void*)0), ((void*)0), FT_NONE , BASE_NONE, ((void*)0), 0, ((void*)0), -1, 0, HF_REF_TYPE_NONE , -1, ((void*)0)}} }},
3863 | { &ei_sapdiag_item_length_invalid, { "sapdiag.item.length.invalid", PI_MALFORMED0x07000000, PI_WARN0x00600000, "Item length is invalid", EXPFILL0, ((void*)0), 0, ((void*)0), {0, {((void*)0), ((void*)0), FT_NONE , BASE_NONE, ((void*)0), 0, ((void*)0), -1, 0, HF_REF_TYPE_NONE , -1, ((void*)0)}} }},
3864 | { &ei_sapdiag_atom_item_unknown, { "sapdiag.item.value.dyntatom.item.unknown", PI_UNDECODED0x05000000, PI_WARN0x00600000, "The Diag Atom has a unknown type that is not dissected", EXPFILL0, ((void*)0), 0, ((void*)0), {0, {((void*)0), ((void*)0), FT_NONE , BASE_NONE, ((void*)0), 0, ((void*)0), -1, 0, HF_REF_TYPE_NONE , -1, ((void*)0)}} }},
3865 | { &ei_sapdiag_atom_item_partial, { "sapdiag.item.value.dyntatom.item.unknown_part", PI_UNDECODED0x05000000, PI_WARN0x00600000, "The Diag Atom is dissected partially", EXPFILL0, ((void*)0), 0, ((void*)0), {0, {((void*)0), ((void*)0), FT_NONE , BASE_NONE, ((void*)0), 0, ((void*)0), -1, 0, HF_REF_TYPE_NONE , -1, ((void*)0)}} }},
3866 | { &ei_sapdiag_atom_item_malformed, { "sapdiag.item.value.dyntatom.invalid", PI_MALFORMED0x07000000, PI_WARN0x00600000, "The Diag Atom is malformed", EXPFILL0, ((void*)0), 0, ((void*)0), {0, {((void*)0), ((void*)0), FT_NONE , BASE_NONE, ((void*)0), 0, ((void*)0), -1, 0, HF_REF_TYPE_NONE , -1, ((void*)0)}} }},
3867 | { &ei_sapdiag_dynt_focus_more_cont_ids, { "sapdiag.item.value.uievent.containernrs.invalid", PI_MALFORMED0x07000000, PI_WARN0x00600000, "Number of Container IDs is invalid", EXPFILL0, ((void*)0), 0, ((void*)0), {0, {((void*)0), ((void*)0), FT_NONE , BASE_NONE, ((void*)0), 0, ((void*)0), -1, 0, HF_REF_TYPE_NONE , -1, ((void*)0)}} }},
3868 | { &ei_sapdiag_password_field, { "sapdiag.item.value.dyntatom.item.password", PI_SECURITY0x0a000000, PI_WARN0x00600000, "Password field?", EXPFILL0, ((void*)0), 0, ((void*)0), {0, {((void*)0), ((void*)0), FT_NONE , BASE_NONE, ((void*)0), 0, ((void*)0), -1, 0, HF_REF_TYPE_NONE , -1, ((void*)0)}} }},
3869 | { &ei_sapdiag_invalid_decompression, { "sapdiag.header.compression.invalid", PI_MALFORMED0x07000000, PI_WARN0x00600000, "Decompression of payload failed", EXPFILL0, ((void*)0), 0, ((void*)0), {0, {((void*)0), ((void*)0), FT_NONE , BASE_NONE, ((void*)0), 0, ((void*)0), -1, 0, HF_REF_TYPE_NONE , -1, ((void*)0)}} }},
3870 | { &ei_sapdiag_invalid_decompress_length, { "sapdiag.header.compression.uncomplength.invalid", PI_MALFORMED0x07000000, PI_WARN0x00600000, "The uncompressed payload length differs from the reported length", EXPFILL0, ((void*)0), 0, ((void*)0), {0, {((void*)0), ((void*)0), FT_NONE , BASE_NONE, ((void*)0), 0, ((void*)0), -1, 0, HF_REF_TYPE_NONE , -1, ((void*)0)}} }},
3871 | };
3872 |
3873 | module_t *sapdiag_module;
3874 | expert_module_t* sapdiag_expert;
3875 |
3876 | /* Register the protocol */
3877 | proto_sapdiag = proto_register_protocol("SAP Diag Protocol", "SAPDIAG", "sapdiag");
3878 |
3879 | proto_register_field_array(proto_sapdiag, hf, array_length(hf)(sizeof (hf) / sizeof (hf)[0]));
3880 | proto_register_subtree_array(ett, array_length(ett)(sizeof (ett) / sizeof (ett)[0]));
3881 |
3882 | sapdiag_expert = expert_register_protocol(proto_sapdiag);
3883 | expert_register_field_array(sapdiag_expert, ei, array_length(ei)(sizeof (ei) / sizeof (ei)[0]));
3884 |
3885 | register_dissector("sapdiag", dissect_sapdiag, proto_sapdiag);
3886 |
3887 | /* Register the preferences */
3888 | sapdiag_module = prefs_register_protocol(proto_sapdiag, proto_reg_handoff_sapdiag);
3889 |
3890 | range_convert_str(wmem_epan_scope(), &global_sapdiag_port_range, SAPDIAG_PORT_RANGE"3200", MAX_TCP_PORT65535);
3891 | prefs_register_range_preference(sapdiag_module, "tcp_ports", "SAP Diag Protocol TCP port numbers",
3892 | "Port numbers used for SAP Diag Protocol (default " SAPDIAG_PORT_RANGE"3200" ")",
3893 | &global_sapdiag_port_range, MAX_TCP_PORT65535);
3894 |
3895 | prefs_register_bool_preference(sapdiag_module, "decompress", "Decompress SAP Diag Protocol message payloads",
3896 | "Whether the SAP Diag Protocol dissector should decompress message payloads.",
3897 | &global_sapdiag_decompress);
3898 | prefs_register_uint_preference(sapdiag_module, "max_uncompressed_size", "Maximum uncompressed message size",
3899 | "Maximum number of bytes to allocate for an uncompressed SAP Diag message.",
3900 | 10, &global_sapdiag_max_uncompressed_size);
3901 |
3902 | prefs_register_bool_preference(sapdiag_module, "rfc_dissection", "Dissect embedded SAP RFC calls",
3903 | "Whether the SAP Diag Protocol dissector should call the SAP RFC dissector for embedded RFC calls",
3904 | &global_sapdiag_rfc_dissection);
3905 |
3906 | prefs_register_bool_preference(sapdiag_module, "snc_dissection", "Dissect SAP SNC frames",
3907 | "Whether the SAP Diag Protocol dissector should call the SAP SNC dissector for SNC frames",
3908 | &global_sapdiag_snc_dissection);
3909 |
3910 | prefs_register_bool_preference(sapdiag_module, "highlight_unknown_items", "Highlight unknown SAP Diag Items",
3911 | "Whether the SAP Diag Protocol dissector should highlight unknown SAP Diag item (might be noise and generate a lot of expert warnings)",
3912 | &global_sapdiag_highlight_items);
3913 |
3914 | }
3915 |
3916 | /**
3917 | * Helpers for dealing with the port range
3918 | */
3919 | static void range_delete_callback (uint32_t port, void *ptr _U___attribute__((unused)))
3920 | {
3921 | dissector_delete_uint("sapni.port", port, sapdiag_handle);
3922 | }
3923 |
3924 | static void range_add_callback (uint32_t port, void *ptr _U___attribute__((unused)))
3925 | {
3926 | dissector_add_uint("sapni.port", port, sapdiag_handle);
3927 | }
3928 |
3929 | /**
3930 | * Register Hand off for the SAP Diag Protocol
3931 | */
3932 | void
3933 | proto_reg_handoff_sapdiag(void)
3934 | {
3935 | static range_t *sapdiag_port_range;
3936 | static bool_Bool initialized = false0;
3937 |
3938 | if (!initialized) {
3939 | sapdiag_handle = create_dissector_handle(dissect_sapdiag, proto_sapdiag);
3940 | initialized = true1;
3941 | } else {
3942 | range_foreach(sapdiag_port_range, range_delete_callback, NULL((void*)0));
3943 | wmem_free(wmem_epan_scope(), sapdiag_port_range);
3944 | }
3945 |
3946 | sapdiag_port_range = range_copy(wmem_epan_scope(), global_sapdiag_port_range);
3947 | range_foreach(sapdiag_port_range, range_add_callback, NULL((void*)0));
3948 | }
3949 |
3950 | /*
3951 | * Editor modelines - https://www.wireshark.org/tools/modelines.html
3952 | *
3953 | * Local variables:
3954 | * c-basic-offset: 8
3955 | * tab-width: 8
3956 | * indent-tabs-mode: t
3957 | * End:
3958 | *
3959 | * vi: set shiftwidth=8 tabstop=8 noexpandtab:
3960 | * :indentSize=8:tabSize=8:noTabs=false:
3961 | */