Bug Summary

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

Annotated Source Code

Press '?' to see keyboard shortcuts

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