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.
6 * Wireshark - Network traffic analyzer
7 * By Gerald Combs <gerald@wireshark.org>
8 * Copyright 1998 Gerald Combs
10 * SPDX-License-Identifier: GPL-2.0-or-later
13 #include <epan/packet.h>
14 #include <epan/prefs.h>
15 #include <epan/expert.h>
16 #include <wsutil/wmem/wmem.h>
18 #include "packet-sapsnc.h"
20 /* Define default ports. It right range shold be 32NN, but as prot 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.
25 #define SAPDIAG_PORT_RANGE "3200"
27 /* SAP Diag Header Communication Flag values */
28 #define SAPDIAG_COM_FLAG_TERM_EOS 0x01
29 #define SAPDIAG_COM_FLAG_TERM_EOC 0x02
30 #define SAPDIAG_COM_FLAG_TERM_NOP 0x04
31 #define SAPDIAG_COM_FLAG_TERM_EOP 0x08
32 #define SAPDIAG_COM_FLAG_TERM_INI 0x10
33 #define SAPDIAG_COM_FLAG_TERM_CAS 0x20
34 #define SAPDIAG_COM_FLAG_TERM_NNM 0x40
35 #define SAPDIAG_COM_FLAG_TERM_GRA 0x80
38 /* SAP Diag Header Compression field values */
39 static 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" },
48 /* SAP Diag Header Algorithm field values */
49 static const value_string sapdiag_algorithm_vals
[] = {
56 /* SAP Diag DP Header Request ID values */
57 static 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" },
69 /* SAP Diag DP Header Sender ID values */
70 static 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" },
77 { 0xC9, "IC_MONITOR" },
83 /* SAP Diag DP Header Action Type values */
84 static 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" },
107 /* SAP Diag DP Header Request Info Flag constants */
108 #define SAPDIAG_DP_REQ_INFO_UNDEFINED 0x00
109 #define SAPDIAG_DP_REQ_INFO_LOGIN 0x01
110 #define SAPDIAG_DP_REQ_INFO_LOGOFF 0x02
111 #define SAPDIAG_DP_REQ_INFO_SHUTDOWN 0x04
112 #define SAPDIAG_DP_REQ_INFO_GRAPHIC_TM 0x08
113 #define SAPDIAG_DP_REQ_INFO_ALPHA_TM 0x10
114 #define SAPDIAG_DP_REQ_INFO_ERROR_FROM_APPC 0x20
115 #define SAPDIAG_DP_REQ_INFO_CANCELMODE 0x40
116 #define SAPDIAG_DP_REQ_INFO_MSG_WITH_REQ_BUF 0x80
118 #define SAPDIAG_DP_REQ_INFO_MSG_WITH_OH 0x01
119 #define SAPDIAG_DP_REQ_INFO_BUFFER_REFRESH 0x02
120 #define SAPDIAG_DP_REQ_INFO_BTC_SCHEDULER 0x04
121 #define SAPDIAG_DP_REQ_INFO_APPC_SERVER_DOWN 0x08
122 #define SAPDIAG_DP_REQ_INFO_MS_ERROR 0x10
123 #define SAPDIAG_DP_REQ_INFO_SET_SYSTEM_USER 0x20
124 #define SAPDIAG_DP_REQ_INFO_DP_CANT_HANDLE_REQ 0x40
125 #define SAPDIAG_DP_REQ_INFO_DP_AUTO_ABAP 0x80
127 #define SAPDIAG_DP_REQ_INFO_DP_APPL_SERV_INFO 0x01
128 #define SAPDIAG_DP_REQ_INFO_DP_ADMIN 0x02
129 #define SAPDIAG_DP_REQ_INFO_DP_SPOOL_ALRM 0x04
130 #define SAPDIAG_DP_REQ_INFO_DP_HAND_SHAKE 0x08
131 #define SAPDIAG_DP_REQ_INFO_DP_CANCEL_PRIV 0x10
132 #define SAPDIAG_DP_REQ_INFO_DP_RAISE_TIMEOUT 0x20
133 #define SAPDIAG_DP_REQ_INFO_DP_NEW_MODE 0x40
134 #define SAPDIAG_DP_REQ_INFO_DP_SOFT_CANCEL 0x80
136 #define SAPDIAG_DP_REQ_INFO_DP_TM_INPUT 0x01
137 #define SAPDIAG_DP_REQ_INFO_DP_TM_OUTPUT 0x02
138 #define SAPDIAG_DP_REQ_INFO_DP_ASYNC_RFC 0x04
139 #define SAPDIAG_DP_REQ_INFO_DP_ICM_EVENT 0x08
140 #define SAPDIAG_DP_REQ_INFO_DP_AUTO_TH 0x10
141 #define SAPDIAG_DP_REQ_INFO_DP_RFC_CANCEL 0x20
142 #define SAPDIAG_DP_REQ_INFO_DP_MS_ADM 0x40
144 /* SAP Diag Support Bits */
145 #define SAPDIAG_SUPPORT_BIT_PROGRESS_INDICATOR 0x01 /* 0 */
146 #define SAPDIAG_SUPPORT_BIT_SAPGUI_LABELS 0x02 /* 1 */
147 #define SAPDIAG_SUPPORT_BIT_SAPGUI_DIAGVERSION 0x04 /* 2 */
148 #define SAPDIAG_SUPPORT_BIT_SAPGUI_SELECT_RECT 0x08 /* 3 */
149 #define SAPDIAG_SUPPORT_BIT_SAPGUI_SYMBOL_RIGHT 0x10 /* 4 */
150 #define SAPDIAG_SUPPORT_BIT_SAPGUI_FONT_METRIC 0x20 /* 5 */
151 #define SAPDIAG_SUPPORT_BIT_SAPGUI_COMPR_ENHANCED 0x40 /* 6 */
152 #define SAPDIAG_SUPPORT_BIT_SAPGUI_IMODE 0x80 /* 7 */
154 #define SAPDIAG_SUPPORT_BIT_SAPGUI_LONG_MESSAGE 0x01 /* 8 */
155 #define SAPDIAG_SUPPORT_BIT_SAPGUI_TABLE 0x02 /* 9 */
156 #define SAPDIAG_SUPPORT_BIT_SAPGUI_FOCUS_1 0x04 /* 10 */
157 #define SAPDIAG_SUPPORT_BIT_SAPGUI_PUSHBUTTON_1 0x08 /* 11 */
158 #define SAPDIAG_SUPPORT_BIT_UPPERCASE 0x10 /* 12 */
159 #define SAPDIAG_SUPPORT_BIT_SAPGUI_TABPROPERTY 0x20 /* 13 */
160 #define SAPDIAG_SUPPORT_BIT_INPUT_UPPERCASE 0x40 /* 14 */
161 #define SAPDIAG_SUPPORT_BIT_RFC_DIALOG 0x80 /* 15 */
163 #define SAPDIAG_SUPPORT_BIT_LIST_HOTSPOT 0x01 /* 16 */
164 #define SAPDIAG_SUPPORT_BIT_FKEY_TABLE 0x02 /* 17 */
165 #define SAPDIAG_SUPPORT_BIT_MENU_SHORTCUT 0x04 /* 18 */
166 #define SAPDIAG_SUPPORT_BIT_STOP_TRANS 0x08 /* 19 */
167 #define SAPDIAG_SUPPORT_BIT_FULL_MENU 0x10 /* 20 */
168 #define SAPDIAG_SUPPORT_BIT_OBJECT_NAMES 0x20 /* 21 */
169 #define SAPDIAG_SUPPORT_BIT_CONTAINER_TYPE 0x40 /* 22 */
170 #define SAPDIAG_SUPPORT_BIT_DLGH_FLAGS 0x80 /* 23 */
172 #define SAPDIAG_SUPPORT_BIT_APPL_MNU 0x01 /* 24 */
173 #define SAPDIAG_SUPPORT_BIT_MESSAGE_INFO 0x02 /* 25 */
174 #define SAPDIAG_SUPPORT_BIT_MESDUM_FLAG1 0x04 /* 26 */
175 #define SAPDIAG_SUPPORT_BIT_TABSEL_ATTRIB 0x08 /* 27 */
176 #define SAPDIAG_SUPPORT_BIT_GUIAPI 0x10 /* 28 */
177 #define SAPDIAG_SUPPORT_BIT_NOGRAPH 0x20 /* 29 */
178 #define SAPDIAG_SUPPORT_BIT_NOMESSAGES 0x40 /* 30 */
179 #define SAPDIAG_SUPPORT_BIT_NORABAX 0x80 /* 31 */
181 #define SAPDIAG_SUPPORT_BIT_NOSYSMSG 0x01 /* 32 */
182 #define SAPDIAG_SUPPORT_BIT_NOSAPSCRIPT 0x02 /* 33 */
183 #define SAPDIAG_SUPPORT_BIT_NORFC 0x04 /* 34 */
184 #define SAPDIAG_SUPPORT_BIT_NEW_BSD_JUSTRIGHT 0x08 /* 35 */
185 #define SAPDIAG_SUPPORT_BIT_MESSAGE_VARS 0x10 /* 36 */
186 #define SAPDIAG_SUPPORT_BIT_OCX_SUPPORT 0x20 /* 37 */
187 #define SAPDIAG_SUPPORT_BIT_SCROLL_INFOS 0x40 /* 38 */
188 #define SAPDIAG_SUPPORT_BIT_TABLE_SIZE_OK 0x80 /* 39 */
190 #define SAPDIAG_SUPPORT_BIT_MESSAGE_INFO2 0x01 /* 40 */
191 #define SAPDIAG_SUPPORT_BIT_VARINFO_OKCODE 0x02 /* 41 */
192 #define SAPDIAG_SUPPORT_BIT_CURR_TCODE 0x04 /* 42 */
193 #define SAPDIAG_SUPPORT_BIT_CONN_WSIZE 0x08 /* 43 */
194 #define SAPDIAG_SUPPORT_BIT_PUSHBUTTON_2 0x10 /* 44 */
195 #define SAPDIAG_SUPPORT_BIT_TABSTRIP 0x20 /* 45 */
196 #define SAPDIAG_SUPPORT_BIT_UNKNOWN_1 0x40 /* 46 (Unknown support bit) */
197 #define SAPDIAG_SUPPORT_BIT_TABSCROLL_INFOS 0x80 /* 47 */
199 #define SAPDIAG_SUPPORT_BIT_TABLE_FIELD_NAMES 0x01 /* 48 */
200 #define SAPDIAG_SUPPORT_BIT_NEW_MODE_REQUEST 0x02 /* 49 */
201 #define SAPDIAG_SUPPORT_BIT_RFCBLOB_DIAG_PARSER 0x04 /* 50 */
202 #define SAPDIAG_SUPPORT_BIT_MULTI_LOGIN_USER 0x08 /* 51 */
203 #define SAPDIAG_SUPPORT_BIT_CONTROL_CONTAINER 0x10 /* 52 */
204 #define SAPDIAG_SUPPORT_BIT_APPTOOLBAR_FIXED 0x20 /* 53 */
205 #define SAPDIAG_SUPPORT_BIT_R3INFO_USER_CHECKED 0x40 /* 54 */
206 #define SAPDIAG_SUPPORT_BIT_NEED_STDDYNPRO 0x80 /* 55 */
208 #define SAPDIAG_SUPPORT_BIT_TYPE_SERVER 0x01 /* 56 */
209 #define SAPDIAG_SUPPORT_BIT_COMBOBOX 0x02 /* 57 */
210 #define SAPDIAG_SUPPORT_BIT_INPUT_REQUIRED 0x04 /* 58 */
211 #define SAPDIAG_SUPPORT_BIT_ISO_LANGUAGE 0x08 /* 59 */
212 #define SAPDIAG_SUPPORT_BIT_COMBOBOX_TABLE 0x10 /* 60 */
213 #define SAPDIAG_SUPPORT_BIT_R3INFO_FLAGS 0x20 /* 61 */
214 #define SAPDIAG_SUPPORT_BIT_CHECKRADIO_EVENTS 0x40 /* 62 */
215 #define SAPDIAG_SUPPORT_BIT_R3INFO_USERID 0x80 /* 63 */
217 #define SAPDIAG_SUPPORT_BIT_R3INFO_ROLLCOUNT 0x01 /* 64 */
218 #define SAPDIAG_SUPPORT_BIT_USER_TURNTIME2 0x02 /* 65 */
219 #define SAPDIAG_SUPPORT_BIT_NUM_FIELD 0x04 /* 66 */
220 #define SAPDIAG_SUPPORT_BIT_WIN16 0x08 /* 67 */
221 #define SAPDIAG_SUPPORT_BIT_CONTEXT_MENU 0x10 /* 68 */
222 #define SAPDIAG_SUPPORT_BIT_SCROLLABLE_TABSTRIP_PAGE 0x20 /* 69 */
223 #define SAPDIAG_SUPPORT_BIT_EVENT_DESCRIPTION 0x40 /* 70 */
224 #define SAPDIAG_SUPPORT_BIT_LABEL_OWNER 0x80 /* 71 */
226 #define SAPDIAG_SUPPORT_BIT_CLICKABLE_FIELD 0x01 /* 72 */
227 #define SAPDIAG_SUPPORT_BIT_PROPERTY_BAG 0x02 /* 73 */
228 #define SAPDIAG_SUPPORT_BIT_UNUSED_1 0x04 /* 74 */
229 #define SAPDIAG_SUPPORT_BIT_TABLE_ROW_REFERENCES_2 0x08 /* 75 */
230 #define SAPDIAG_SUPPORT_BIT_PROPFONT_VALID 0x10 /* 76 */
231 #define SAPDIAG_SUPPORT_BIT_VARINFO_CONTAINER 0x20 /* 77 */
232 #define SAPDIAG_SUPPORT_BIT_R3INFO_IMODEUUID 0x40 /* 78 */
233 #define SAPDIAG_SUPPORT_BIT_NOTGUI 0x80 /* 79 */
235 #define SAPDIAG_SUPPORT_BIT_WAN 0x01 /* 80 */
236 #define SAPDIAG_SUPPORT_BIT_XML_BLOBS 0x02 /* 81 */
237 #define SAPDIAG_SUPPORT_BIT_RFC_QUEUE 0x04 /* 82 */
238 #define SAPDIAG_SUPPORT_BIT_RFC_COMPRESS 0x08 /* 83 */
239 #define SAPDIAG_SUPPORT_BIT_JAVA_BEANS 0x10 /* 84 */
240 #define SAPDIAG_SUPPORT_BIT_DPLOADONDEMAND 0x20 /* 85 */
241 #define SAPDIAG_SUPPORT_BIT_CTL_PROPCACHE 0x40 /* 86 */
242 #define SAPDIAG_SUPPORT_BIT_ENJOY_IMODEUUID 0x80 /* 87 */
244 #define SAPDIAG_SUPPORT_BIT_RFC_ASYNC_BLOB 0x01 /* 88 */
245 #define SAPDIAG_SUPPORT_BIT_KEEP_SCROLLPOS 0x02 /* 89 */
246 #define SAPDIAG_SUPPORT_BIT_UNUSED_2 0x04 /* 90 */
247 #define SAPDIAG_SUPPORT_BIT_UNUSED_3 0x08 /* 91 */
248 #define SAPDIAG_SUPPORT_BIT_XML_PROPERTIES 0x10 /* 92 */
249 #define SAPDIAG_SUPPORT_BIT_UNUSED_4 0x20 /* 93 */
250 #define SAPDIAG_SUPPORT_BIT_HEX_FIELD 0x40 /* 94 */
251 #define SAPDIAG_SUPPORT_BIT_HAS_CACHE 0x80 /* 95 */
253 #define SAPDIAG_SUPPORT_BIT_XML_PROP_TABLE 0x01 /* 96 */
254 #define SAPDIAG_SUPPORT_BIT_UNUSED_5 0x02 /* 97 */
255 #define SAPDIAG_SUPPORT_BIT_ENJOY_IMODEUUID2 0x04 /* 98 */
256 #define SAPDIAG_SUPPORT_BIT_ITS 0x08 /* 99 */
257 #define SAPDIAG_SUPPORT_BIT_NO_EASYACCESS 0x10 /* 100 */
258 #define SAPDIAG_SUPPORT_BIT_PROPERTYPUMP 0x20 /* 101 */
259 #define SAPDIAG_SUPPORT_BIT_COOKIE 0x40 /* 102 */
260 #define SAPDIAG_SUPPORT_BIT_UNUSED_6 0x80 /* 103 */
262 #define SAPDIAG_SUPPORT_BIT_SUPPBIT_AREA_SIZE 0x01 /* 104 */
263 #define SAPDIAG_SUPPORT_BIT_DPLOADONDEMAND_WRITE 0x02 /* 105 */
264 #define SAPDIAG_SUPPORT_BIT_CONTROL_FOCUS 0x04 /* 106 */
265 #define SAPDIAG_SUPPORT_BIT_ENTRY_HISTORY 0x08 /* 107 */
266 #define SAPDIAG_SUPPORT_BIT_AUTO_CODEPAGE 0x10 /* 108 */
267 #define SAPDIAG_SUPPORT_BIT_CACHED_VSETS 0x20 /* 109 */
268 #define SAPDIAG_SUPPORT_BIT_EMERGENCY_REPAIR 0x40 /* 110 */
269 #define SAPDIAG_SUPPORT_BIT_AREA2FRONT 0x80 /* 111 */
271 #define SAPDIAG_SUPPORT_BIT_SCROLLBAR_WIDTH 0x01 /* 112 */
272 #define SAPDIAG_SUPPORT_BIT_AUTORESIZE 0x02 /* 113 */
273 #define SAPDIAG_SUPPORT_BIT_EDIT_VARLEN 0x04 /* 114 */
274 #define SAPDIAG_SUPPORT_BIT_WORKPLACE 0x08 /* 115 */
275 #define SAPDIAG_SUPPORT_BIT_PRINTDATA 0x10 /* 116 */
276 #define SAPDIAG_SUPPORT_BIT_UNKNOWN_2 0x20 /* 117 (Unknown support bit) */
277 #define SAPDIAG_SUPPORT_BIT_SINGLE_SESSION 0x40 /* 118 */
278 #define SAPDIAG_SUPPORT_BIT_NOTIFY_NEWMODE 0x80 /* 119 */
280 #define SAPDIAG_SUPPORT_BIT_TOOLBAR_HEIGHT 0x01 /* 120 */
281 #define SAPDIAG_SUPPORT_BIT_XMLPROP_CONTAINER 0x02 /* 121 */
282 #define SAPDIAG_SUPPORT_BIT_XMLPROP_DYNPRO 0x04 /* 122 */
283 #define SAPDIAG_SUPPORT_BIT_DP_HTTP_PUT 0x08 /* 123 */
284 #define SAPDIAG_SUPPORT_BIT_DYNAMIC_PASSPORT 0x10 /* 124 */
285 #define SAPDIAG_SUPPORT_BIT_WEBGUI 0x20 /* 125 */
286 #define SAPDIAG_SUPPORT_BIT_WEBGUI_HELPMODE 0x40 /* 126 */
287 #define SAPDIAG_SUPPORT_BIT_CONTROL_FOCUS_ON_LIST 0x80 /* 127 */
289 #define SAPDIAG_SUPPORT_BIT_CBU_RBUDUMMY_2 0x01 /* 128 */
290 #define SAPDIAG_SUPPORT_BIT_EOKDUMMY_1 0x02 /* 129 */
291 #define SAPDIAG_SUPPORT_BIT_GUI_USER_SCRIPTING 0x04 /* 130 */
292 #define SAPDIAG_SUPPORT_BIT_SLC 0x08 /* 131 */
293 #define SAPDIAG_SUPPORT_BIT_ACCESSIBILITY 0x10 /* 132 */
294 #define SAPDIAG_SUPPORT_BIT_ECATT 0x20 /* 133 */
295 #define SAPDIAG_SUPPORT_BIT_ENJOY_IMODEUUID3 0x40 /* 134 */
296 #define SAPDIAG_SUPPORT_BIT_ENABLE_UTF8 0x80 /* 135 */
298 #define SAPDIAG_SUPPORT_BIT_R3INFO_AUTOLOGOUT_TIME 0x01 /* 136 */
299 #define SAPDIAG_SUPPORT_BIT_VARINFO_ICON_TITLE_LIST 0x02 /* 137 */
300 #define SAPDIAG_SUPPORT_BIT_ENABLE_UTF16BE 0x04 /* 138 */
301 #define SAPDIAG_SUPPORT_BIT_ENABLE_UTF16LE 0x08 /* 139 */
302 #define SAPDIAG_SUPPORT_BIT_R3INFO_CODEPAGE_APP 0x10 /* 140 */
303 #define SAPDIAG_SUPPORT_BIT_ENABLE_APPL4 0x20 /* 141 */
304 #define SAPDIAG_SUPPORT_BIT_GUIPATCHLEVEL 0x40 /* 142 */
305 #define SAPDIAG_SUPPORT_BIT_CBURBU_NEW_STATE 0x80 /* 143 */
307 #define SAPDIAG_SUPPORT_BIT_BINARY_EVENTID 0x01 /* 144 */
308 #define SAPDIAG_SUPPORT_BIT_GUI_THEME 0x02 /* 145 */
309 #define SAPDIAG_SUPPORT_BIT_TOP_WINDOW 0x04 /* 146 */
310 #define SAPDIAG_SUPPORT_BIT_EVENT_DESCRIPTION_1 0x08 /* 147 */
311 #define SAPDIAG_SUPPORT_BIT_SPLITTER 0x10 /* 148 */
312 #define SAPDIAG_SUPPORT_BIT_VALUE_4_HISTORY 0x20 /* 149 */
313 #define SAPDIAG_SUPPORT_BIT_ACC_LIST 0x40 /* 150 */
314 #define SAPDIAG_SUPPORT_BIT_GUI_USER_SCRIPTING_INFO 0x80 /* 151 */
316 #define SAPDIAG_SUPPORT_BIT_TEXTEDIT_STREAM 0x01 /* 152 */
317 #define SAPDIAG_SUPPORT_BIT_DYNT_NOFOCUS 0x02 /* 153 */
318 #define SAPDIAG_SUPPORT_BIT_R3INFO_CODEPAGE_APP_1 0x04 /* 154 */
319 #define SAPDIAG_SUPPORT_BIT_FRAME_1 0x08 /* 155 */
320 #define SAPDIAG_SUPPORT_BIT_TICKET4GUI 0x10 /* 156 */
321 #define SAPDIAG_SUPPORT_BIT_ACC_LIST_PROPS 0x20 /* 157 */
322 #define SAPDIAG_SUPPORT_BIT_TABSEL_ATTRIB_INPUT 0x40 /* 158 */
323 #define SAPDIAG_SUPPORT_BIT_DEFAULT_TOOLTIP 0x80 /* 159 */
325 #define SAPDIAG_SUPPORT_BIT_XML_PROP_TABLE_2 0x01 /* 160 */
326 #define SAPDIAG_SUPPORT_BIT_CBU_RBUDUMMY_3 0x02 /* 161 */
327 #define SAPDIAG_SUPPORT_BIT_CELLINFO 0x04 /* 162 */
328 #define SAPDIAG_SUPPORT_BIT_CONTROL_FOCUS_ON_LIST_2 0x08 /* 163 */
329 #define SAPDIAG_SUPPORT_BIT_TABLE_COLUMNWIDTH_INPUT 0x10 /* 164 */
330 #define SAPDIAG_SUPPORT_BIT_ITS_PLUGIN 0x20 /* 165 */
331 #define SAPDIAG_SUPPORT_BIT_OBJECT_NAMES_4_LOGIN_PROCESS 0x40 /* 166 */
332 #define SAPDIAG_SUPPORT_BIT_RFC_SERVER_4_GUI 0x80 /* 167 */
334 #define SAPDIAG_SUPPORT_BIT_R3INFO_FLAGS_2 0x01 /* 168 */
335 #define SAPDIAG_SUPPORT_BIT_RCUI 0x02 /* 169 */
336 #define SAPDIAG_SUPPORT_BIT_MENUENTRY_WITH_FCODE 0x04 /* 170 */
337 #define SAPDIAG_SUPPORT_BIT_WEBSAPCONSOLE 0x08 /* 171 */
338 #define SAPDIAG_SUPPORT_BIT_R3INFO_KERNEL_VERSION 0x10 /* 172 */
339 #define SAPDIAG_SUPPORT_BIT_VARINFO_CONTAINER_LOOP 0x20 /* 173 */
340 #define SAPDIAG_SUPPORT_BIT_EOKDUMMY_2 0x40 /* 174 */
341 #define SAPDIAG_SUPPORT_BIT_MESSAGE_INFO3 0x80 /* 175 */
343 #define SAPDIAG_SUPPORT_BIT_SBA2 0x01 /* 176 */
344 #define SAPDIAG_SUPPORT_BIT_MAINAREA_SIZE 0x02 /* 177 */
345 #define SAPDIAG_SUPPORT_BIT_GUIPATCHLEVEL_2 0x04 /* 178 */
346 #define SAPDIAG_SUPPORT_BIT_DISPLAY_SIZE 0x08 /* 179 */
347 #define SAPDIAG_SUPPORT_BIT_GUI_PACKET 0x10 /* 180 */
348 #define SAPDIAG_SUPPORT_BIT_DIALOG_STEP_NUMBER 0x20 /* 181 */
349 #define SAPDIAG_SUPPORT_BIT_TC_KEEP_SCROLL_POSITION 0x40 /* 182 */
350 #define SAPDIAG_SUPPORT_BIT_MESSAGE_SERVICE_REQUEST 0x80 /* 183 */
352 #define SAPDIAG_SUPPORT_BIT_DYNT_FOCUS_FRAME 0x01 /* 184 */
353 #define SAPDIAG_SUPPORT_BIT_MAX_STRING_LEN 0x02 /* 185 */
354 #define SAPDIAG_SUPPORT_BIT_VARINFO_CONTAINER_1 0x04 /* 186 */
355 #define SAPDIAG_SUPPORT_BIT_STD_TOOLBAR_ITEMS 0x08 /* 187 */
356 #define SAPDIAG_SUPPORT_BIT_XMLPROP_LIST_DYNPRO 0x10 /* 188 */
357 #define SAPDIAG_SUPPORT_BIT_TRACE_GUI_CONNECT 0x20 /* 189 */
358 #define SAPDIAG_SUPPORT_BIT_LIST_FULLWIDTH 0x40 /* 190 */
359 #define SAPDIAG_SUPPORT_BIT_ALLWAYS_SEND_CLIENT 0x80 /* 191 */
361 #define SAPDIAG_SUPPORT_BIT_UNKNOWN_3 0x01 /* 192 (Unknown support bit) */
362 #define SAPDIAG_SUPPORT_BIT_GUI_SIGNATURE_COLOR 0x02 /* 193 */
363 #define SAPDIAG_SUPPORT_BIT_MAX_WSIZE 0x04 /* 194 */
364 #define SAPDIAG_SUPPORT_BIT_SAP_PERSONAS 0x08 /* 195 */
365 #define SAPDIAG_SUPPORT_BIT_IDA_ALV 0x10 /* 196 */
366 #define SAPDIAG_SUPPORT_BIT_IDA_ALV_FRAGMENTS 0x20 /* 197 */
367 #define SAPDIAG_SUPPORT_BIT_AMC 0x40 /* 198 */
368 #define SAPDIAG_SUPPORT_BIT_EXTMODE_FONT_METRIC 0x80 /* 199 */
370 #define SAPDIAG_SUPPORT_BIT_GROUPBOX 0x01 /* 200 */
371 #define SAPDIAG_SUPPORT_BIT_AGI_ID_TS_BUTTON 0x02 /* 201 */
372 #define SAPDIAG_SUPPORT_BIT_NO_FOCUS_ON_LIST 0x04 /* 202 */
373 #define SAPDIAG_SUPPORT_BIT_FIORI_MODE 0x08 /* 203 */
374 #define SAPDIAG_SUPPORT_BIT_CONNECT_CHECK_DONE 0x10 /* 204 */
375 #define SAPDIAG_SUPPORT_BIT_MSGINFO_WITH_CODEPAGE 0x20 /* 205 */
376 #define SAPDIAG_SUPPORT_BIT_AGI_ID 0x40 /* 206 */
377 #define SAPDIAG_SUPPORT_BIT_AGI_ID_TC 0x80 /* 207 */
379 #define SAPDIAG_SUPPORT_BIT_FIORI_TOOLBARS 0x01 /* 208 */
380 #define SAPDIAG_SUPPORT_BIT_OBJECT_NAMES_ENFORCE 0x02 /* 209 */
381 #define SAPDIAG_SUPPORT_BIT_MESDUMMY_FLAGS_2_3 0x04 /* 210 */
382 #define SAPDIAG_SUPPORT_BIT_NWBC 0x08 /* 211 */
383 #define SAPDIAG_SUPPORT_BIT_CONTAINER_LIST 0x10 /* 212 */
384 #define SAPDIAG_SUPPORT_BIT_GUI_SYSTEM_COLOR 0x20 /* 213 */
385 #define SAPDIAG_SUPPORT_BIT_GROUPBOX_WITHOUT_BOTTOMLINE 0x40 /* 214 */
388 /* SAP Diag DP Header New Status values */
389 static const value_string sapdiag_dp_new_stat_vals
[] = {
390 { 0x00, "NO_CHANGE" },
391 { 0x01, "WP_SLOT_FREE" },
395 { 0x10, "WP_KILLED" },
396 { 0x20, "WP_SHUTDOWN" },
397 { 0x40, "WP_RESTRICTED" },
403 /* SAP Diag Item Type values */
404 static const value_string sapdiag_item_type_vals
[] = {
408 { 0x07, "DiagMessage (old format)" },
415 { 0x11, "DIAG_XMLBLOB" },
423 /* SAP Diag Item APPL/APPL4 ID values */
424 static const value_string sapdiag_item_id_vals
[] = {
430 { 0x06, "ST_R3INFO" },
434 { 0x0a, "CONTAINER" },
435 { 0x0b, "MNUENTRY" },
438 { 0x0f, "UI_EVENT" },
439 { 0x12, "ACC_LIST" },
441 { 0x14, "GUI_PACKET" },
446 /* SAP Diag Item APPL/APPL4 SCRIPT SID values */
447 static const value_string sapdiag_item_appl_script_vals
[] = {
449 { 0x01, "SCRIPT_OTF" },
450 { 0x02, "SCRIPT_SCREEN" },
451 { 0x03, "SCRIPT_POSTSCRIPT" },
452 { 0x04, "SCRIPT_ITF" },
457 /* SAP Diag Item APPL/APPL4 GRAPH SID values */
458 static const value_string sapdiag_item_appl_graph_vals
[] = {
460 { 0x03, "GRAPH RELEASE 3" },
461 { 0x05, "GRAPH RELEASE 5" },
466 /* SAP Diag Item APPL/APPL4 IXOS SID values */
467 static const value_string sapdiag_item_appl_ixos_vals
[] = {
471 { 0x03, "IXOS_COMMAND" },
475 /* SAP Diag Item APPL/APPL4 ST_USER SID values */
476 static const value_string sapdiag_item_appl_st_user_vals
[] = {
480 { 0x03, "SELECTEDRECT" },
481 { 0x04, "FONTMETRIC" },
482 { 0x05, "TABLEMETRIC" },
484 { 0x07, "GUITIMEZONE" },
485 { 0x08, "TURNTIME" },
486 { 0x09, "GUIVERSION" },
487 /* No entry for 0xa... */
488 { 0x0b, "SUPPORTDATA" },
489 { 0x0c, "RFC_CONNECT" },
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" },
520 /* SAP Diag Item APPL/APPL4 DYNN SID values */
521 static const value_string sapdiag_item_appl_dynn_vals
[] = {
524 { 0x03, "XMLPROP DYNPRO" },
529 /* SAP Diag Item APPL/APPL4 ST_R3INFO SID values */
530 static const value_string sapdiag_item_appl_st_r3info_vals
[] = {
532 { 0x01, "MODENUMBER" },
535 { 0x04, "RFC_TRIGGER" },
536 { 0x05, "GUI_LABEL" },
537 { 0x06, "DIAGVERSION" },
539 { 0x08, "RFC_WAITING" },
540 { 0x09, "RFC_REFRESH" },
541 { 0x0a, "IMODENUMBER" },
544 { 0x0d, "DYNPRONAME" },
545 { 0x0e, "DYNPRONUMBER" },
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" },
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" },
578 /* SAP Diag Item APPL/APPL4 POPU SID values */
579 static const value_string sapdiag_item_appl_popu_vals
[] = {
586 /* SAP Diag Item APPL/APPL4 RFC_TR SID values */
587 static const value_string sapdiag_item_appl_rfc_tr_vals
[] = {
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" },
605 /* SAP Diag Item APPL/APPL4 DYNT SID values */
606 static const value_string sapdiag_item_appl_dynt_vals
[] = {
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" },
635 /* SAP Diag Item APPL/APPL4 CONTAINER SID values */
636 static const value_string sapdiag_item_appl_container_vals
[] = {
640 { 0x03, "SUBSCREEN" },
644 { 0x08, "TABSTRIP" },
645 { 0x09, "TABSTRIP_PAGE" },
648 { 0x0d, "SPLITTER" },
649 { 0x0e, "SPLITTER_CELL" },
654 /* SAP Diag Item APPL/APPL4 MNUENTRY SID values */
655 static const value_string sapdiag_item_appl_mnuentry_vals
[] = {
657 { 0x01, "MENU_ACT" },
658 { 0x02, "MENU_MNU" },
659 { 0x03, "MENU_PFK" },
660 { 0x04, "MENU_KYB" },
665 /* SAP Diag Item APPL/APPL4 VARINFO SID values */
666 static const value_string sapdiag_item_appl_varinfo_vals
[] = {
669 { 0x02, "SCROLL_INFOS" },
670 { 0x03, "MESTYPE2" },
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" },
687 /* SAP Diag Item APPL/APPL4 CONTROl SID values */
688 static const value_string sapdiag_item_appl_control_vals
[] = {
690 { 0x01, "CONTROL_PROPERTIES" },
695 /* SAP Diag Item APPL/APPL4 UI_EVENT SID values */
696 static const value_string sapdiag_item_appl_ui_event_vals
[] = {
698 { 0x01, "UI_EVENT_SOURCE" },
703 /* SAP Diag Item APPL/APPL4 ACC_LIST SID values */
704 static const value_string sapdiag_item_appl_acc_list_vals
[] = {
706 { 0x01, "ACC_LIST_INFO4FIELD" },
707 { 0x02, "ACC_LIST_CONTAINER" },
712 /* SAP Diag Item APPL/APPL4 RCUI SID values */
713 static const value_string sapdiag_item_appl_rcui_vals
[] = {
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" },
728 /* SAP Diag Item APPL/APPL4 GUI_PACKET SID values */
729 static const value_string sapdiag_item_appl_gui_packet_vals
[] = {
731 { 0x01, "GUI_PACKET_STATE" },
732 { 0x02, "GUI_PACKET_DATA" },
737 /* SAP Diag Dynt Atom Etype values */
738 static 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" },
775 /* SAP Diag UI Event Source Event Type Values */
776 static const value_string sapdiag_item_ui_event_event_type_vals
[] = {
779 { 0x03, "VALUEHELP" },
781 { 0x07, "FUNCTIONKEY" },
783 { 0x09, "BUTTONPRESSED" },
784 { 0x0a, "VALUECHANGED" },
785 { 0x0b, "STATECHANGED" },
786 { 0x0c, "NAVIGATION" },
791 static const value_string sapdiag_item_ui_event_control_type_vals
[] = {
794 { 0x02, "RADIOBUTTON" },
795 { 0x03, "CHECKBUTTON" },
796 { 0x04, "MENUBUTTON" },
797 { 0x05, "TOOLBARBUTTON" },
798 { 0x06, "STANDARDTOOLBARBUTTON" },
799 { 0x07, "PUSHBUTTON" },
800 { 0x08, "TABLEVIEW" },
801 { 0x09, "TABSTRIP" },
803 { 0x0b, "CUSTOM_CONTROL" },
805 { 0x0e, "TABLEVIEW_COLSEL_BUTTON" },
806 { 0x0f, "TABLEVIEW_ROWSEL_BUTTON" },
807 { 0x10, "TABLEVIEW_CELL" },
808 { 0x11, "CONTEXTMENU" },
809 { 0x12, "SPLITTER" },
812 { 0x15, "ACC_CONTAINER" },
817 static const value_string sapdiag_item_ui_event_navigation_data_vals
[] = {
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" },
832 static 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" },
844 /* SAP Diag Dynt Atom Attr flags */
845 #define SAPDIAG_ATOM_ATTR_DIAG_BSD_PROTECTED 0x01
846 #define SAPDIAG_ATOM_ATTR_DIAG_BSD_INVISIBLE 0x02
847 #define SAPDIAG_ATOM_ATTR_DIAG_BSD_INTENSIFY 0x04
848 #define SAPDIAG_ATOM_ATTR_DIAG_BSD_JUSTRIGHT 0x08
849 #define SAPDIAG_ATOM_ATTR_DIAG_BSD_MATCHCODE 0x10
850 #define SAPDIAG_ATOM_ATTR_DIAG_BSD_PROPFONT 0x20
851 #define SAPDIAG_ATOM_ATTR_DIAG_BSD_YES3D 0x40
852 #define SAPDIAG_ATOM_ATTR_DIAG_BSD_COMBOSTYLE 0x80
854 /* SAP Diag UI Event Source flags */
855 #define SAPDIAG_UI_EVENT_VALID_FLAG_MENU_POS 0x01
856 #define SAPDIAG_UI_EVENT_VALID_FLAG_CONTROL_POS 0x02
857 #define SAPDIAG_UI_EVENT_VALID_FLAG_NAVIGATION_DATA 0x04
858 #define SAPDIAG_UI_EVENT_VALID_FLAG_FUNCTIONKEY_DATA 0x08
860 static int proto_sapdiag
;
862 static int hf_sapdiag_dp
;
863 static int hf_sapdiag_header
;
864 static int hf_sapdiag_payload
;
867 static int hf_sapdiag_mode
;
868 static int hf_sapdiag_com_flag
;
869 static int hf_sapdiag_com_flag_TERM_EOS
;
870 static int hf_sapdiag_com_flag_TERM_EOC
;
871 static int hf_sapdiag_com_flag_TERM_NOP
;
872 static int hf_sapdiag_com_flag_TERM_EOP
;
873 static int hf_sapdiag_com_flag_TERM_INI
;
874 static int hf_sapdiag_com_flag_TERM_CAS
;
875 static int hf_sapdiag_com_flag_TERM_NNM
;
876 static int hf_sapdiag_com_flag_TERM_GRA
;
878 static int hf_sapdiag_mode_stat
;
879 static int hf_sapdiag_err_no
;
880 static int hf_sapdiag_msg_type
;
881 static int hf_sapdiag_msg_info
;
882 static int hf_sapdiag_msg_rc
;
883 static int hf_sapdiag_compress
;
886 static int hf_sapdiag_error_message
;
888 /* Compression header */
889 static int hf_sapdiag_compress_header
;
890 static int hf_sapdiag_uncomplength
;
891 static int hf_sapdiag_algorithm
;
892 static int hf_sapdiag_magic
;
893 static int hf_sapdiag_special
;
896 static int hf_sapdiag_item
;
897 static int hf_sapdiag_item_type
;
898 static int hf_sapdiag_item_id
;
899 static int hf_sapdiag_item_sid
;
900 static int hf_sapdiag_item_length_short
;
901 static int hf_sapdiag_item_length_long
;
902 static int hf_sapdiag_item_value
;
904 /* Message DP Header */
905 static int hf_sapdiag_dp_request_id
;
906 static int hf_sapdiag_dp_retcode
;
907 static int hf_sapdiag_dp_sender_id
;
908 static int hf_sapdiag_dp_action_type
;
909 static int hf_sapdiag_dp_req_info
;
911 static int hf_sapdiag_dp_req_info_LOGIN
;
912 static int hf_sapdiag_dp_req_info_LOGOFF
;
913 static int hf_sapdiag_dp_req_info_SHUTDOWN
;
914 static int hf_sapdiag_dp_req_info_GRAPHIC_TM
;
915 static int hf_sapdiag_dp_req_info_ALPHA_TM
;
916 static int hf_sapdiag_dp_req_info_ERROR_FROM_APPC
;
917 static int hf_sapdiag_dp_req_info_CANCELMODE
;
918 static int hf_sapdiag_dp_req_info_MSG_WITH_REQ_BUF
;
919 static int hf_sapdiag_dp_req_info_MSG_WITH_OH
;
920 static int hf_sapdiag_dp_req_info_BUFFER_REFRESH
;
921 static int hf_sapdiag_dp_req_info_BTC_SCHEDULER
;
922 static int hf_sapdiag_dp_req_info_APPC_SERVER_DOWN
;
923 static int hf_sapdiag_dp_req_info_MS_ERROR
;
924 static int hf_sapdiag_dp_req_info_SET_SYSTEM_USER
;
925 static int hf_sapdiag_dp_req_info_DP_CANT_HANDLE_REQ
;
926 static int hf_sapdiag_dp_req_info_DP_AUTO_ABAP
;
927 static int hf_sapdiag_dp_req_info_DP_APPL_SERV_INFO
;
928 static int hf_sapdiag_dp_req_info_DP_ADMIN
;
929 static int hf_sapdiag_dp_req_info_DP_SPOOL_ALRM
;
930 static int hf_sapdiag_dp_req_info_DP_HAND_SHAKE
;
931 static int hf_sapdiag_dp_req_info_DP_CANCEL_PRIV
;
932 static int hf_sapdiag_dp_req_info_DP_RAISE_TIMEOUT
;
933 static int hf_sapdiag_dp_req_info_DP_NEW_MODE
;
934 static int hf_sapdiag_dp_req_info_DP_SOFT_CANCEL
;
935 static int hf_sapdiag_dp_req_info_DP_TM_INPUT
;
936 static int hf_sapdiag_dp_req_info_DP_TM_OUTPUT
;
937 static int hf_sapdiag_dp_req_info_DP_ASYNC_RFC
;
938 static int hf_sapdiag_dp_req_info_DP_ICM_EVENT
;
939 static int hf_sapdiag_dp_req_info_DP_AUTO_TH
;
940 static int hf_sapdiag_dp_req_info_DP_RFC_CANCEL
;
941 static int hf_sapdiag_dp_req_info_DP_MS_ADM
;
943 static int hf_sapdiag_dp_tid
;
944 static int hf_sapdiag_dp_uid
;
945 static int hf_sapdiag_dp_mode
;
946 static int hf_sapdiag_dp_wp_id
;
947 static int hf_sapdiag_dp_wp_ca_blk
;
948 static int hf_sapdiag_dp_appc_ca_blk
;
949 static int hf_sapdiag_dp_len
; /* Length of the SAP Diag Items in the login */
950 static int hf_sapdiag_dp_new_stat
;
951 static int hf_sapdiag_dp_rq_id
;
952 static int hf_sapdiag_dp_terminal
;
955 static int hf_sapdiag_item_dynt_atom
;
956 static int hf_sapdiag_item_dynt_atom_item
;
957 static int hf_sapdiag_item_dynt_atom_item_etype
;
958 static int hf_sapdiag_item_dynt_atom_item_attr
;
959 static int hf_sapdiag_item_dynt_atom_item_attr_DIAG_BSD_COMBOSTYLE
;
960 static int hf_sapdiag_item_dynt_atom_item_attr_DIAG_BSD_YES3D
;
961 static int hf_sapdiag_item_dynt_atom_item_attr_DIAG_BSD_PROPFONT
;
962 static int hf_sapdiag_item_dynt_atom_item_attr_DIAG_BSD_MATCHCODE
;
963 static int hf_sapdiag_item_dynt_atom_item_attr_DIAG_BSD_JUSTRIGHT
;
964 static int hf_sapdiag_item_dynt_atom_item_attr_DIAG_BSD_INTENSIFY
;
965 static int hf_sapdiag_item_dynt_atom_item_attr_DIAG_BSD_INVISIBLE
;
966 static int hf_sapdiag_item_dynt_atom_item_attr_DIAG_BSD_PROTECTED
;
968 /* Control properties */
969 static int hf_sapdiag_item_control_properties_id
;
970 static int hf_sapdiag_item_control_properties_value
;
972 /* UI Event Source */
973 static int hf_sapdiag_item_ui_event_event_type
;
974 static int hf_sapdiag_item_ui_event_control_type
;
975 static int hf_sapdiag_item_ui_event_valid
;
976 static int hf_sapdiag_item_ui_event_valid_MENU_POS
;
977 static int hf_sapdiag_item_ui_event_valid_CONTROL_POS
;
978 static int hf_sapdiag_item_ui_event_valid_NAVIGATION_DATA
;
979 static int hf_sapdiag_item_ui_event_valid_FUNCTIONKEY_DATA
;
980 static int hf_sapdiag_item_ui_event_control_row
;
981 static int hf_sapdiag_item_ui_event_control_col
;
982 static int hf_sapdiag_item_ui_event_data
;
983 static int hf_sapdiag_item_ui_event_navigation_data
;
984 static int hf_sapdiag_item_ui_event_container_nrs
;
985 static int hf_sapdiag_item_ui_event_container
;
988 static int hf_sapdiag_item_menu_entry
;
990 /* Diag Support Bits */
991 static int hf_SAPDIAG_SUPPORT_BIT_PROGRESS_INDICATOR
;
992 static int hf_SAPDIAG_SUPPORT_BIT_SAPGUI_LABELS
;
993 static int hf_SAPDIAG_SUPPORT_BIT_SAPGUI_DIAGVERSION
;
994 static int hf_SAPDIAG_SUPPORT_BIT_SAPGUI_SELECT_RECT
;
995 static int hf_SAPDIAG_SUPPORT_BIT_SAPGUI_SYMBOL_RIGHT
;
996 static int hf_SAPDIAG_SUPPORT_BIT_SAPGUI_FONT_METRIC
;
997 static int hf_SAPDIAG_SUPPORT_BIT_SAPGUI_COMPR_ENHANCED
;
998 static int hf_SAPDIAG_SUPPORT_BIT_SAPGUI_IMODE
;
999 static int hf_SAPDIAG_SUPPORT_BIT_SAPGUI_LONG_MESSAGE
;
1000 static int hf_SAPDIAG_SUPPORT_BIT_SAPGUI_TABLE
;
1001 static int hf_SAPDIAG_SUPPORT_BIT_SAPGUI_FOCUS_1
;
1002 static int hf_SAPDIAG_SUPPORT_BIT_SAPGUI_PUSHBUTTON_1
;
1003 static int hf_SAPDIAG_SUPPORT_BIT_UPPERCASE
;
1004 static int hf_SAPDIAG_SUPPORT_BIT_SAPGUI_TABPROPERTY
;
1005 static int hf_SAPDIAG_SUPPORT_BIT_INPUT_UPPERCASE
;
1006 static int hf_SAPDIAG_SUPPORT_BIT_RFC_DIALOG
;
1007 static int hf_SAPDIAG_SUPPORT_BIT_LIST_HOTSPOT
;
1008 static int hf_SAPDIAG_SUPPORT_BIT_FKEY_TABLE
;
1009 static int hf_SAPDIAG_SUPPORT_BIT_MENU_SHORTCUT
;
1010 static int hf_SAPDIAG_SUPPORT_BIT_STOP_TRANS
;
1011 static int hf_SAPDIAG_SUPPORT_BIT_FULL_MENU
;
1012 static int hf_SAPDIAG_SUPPORT_BIT_OBJECT_NAMES
;
1013 static int hf_SAPDIAG_SUPPORT_BIT_CONTAINER_TYPE
;
1014 static int hf_SAPDIAG_SUPPORT_BIT_DLGH_FLAGS
;
1015 static int hf_SAPDIAG_SUPPORT_BIT_APPL_MNU
;
1016 static int hf_SAPDIAG_SUPPORT_BIT_MESSAGE_INFO
;
1017 static int hf_SAPDIAG_SUPPORT_BIT_MESDUM_FLAG1
;
1018 static int hf_SAPDIAG_SUPPORT_BIT_TABSEL_ATTRIB
;
1019 static int hf_SAPDIAG_SUPPORT_BIT_GUIAPI
;
1020 static int hf_SAPDIAG_SUPPORT_BIT_NOGRAPH
;
1021 static int hf_SAPDIAG_SUPPORT_BIT_NOMESSAGES
;
1022 static int hf_SAPDIAG_SUPPORT_BIT_NORABAX
;
1023 static int hf_SAPDIAG_SUPPORT_BIT_NOSYSMSG
;
1024 static int hf_SAPDIAG_SUPPORT_BIT_NOSAPSCRIPT
;
1025 static int hf_SAPDIAG_SUPPORT_BIT_NORFC
;
1026 static int hf_SAPDIAG_SUPPORT_BIT_NEW_BSD_JUSTRIGHT
;
1027 static int hf_SAPDIAG_SUPPORT_BIT_MESSAGE_VARS
;
1028 static int hf_SAPDIAG_SUPPORT_BIT_OCX_SUPPORT
;
1029 static int hf_SAPDIAG_SUPPORT_BIT_SCROLL_INFOS
;
1030 static int hf_SAPDIAG_SUPPORT_BIT_TABLE_SIZE_OK
;
1031 static int hf_SAPDIAG_SUPPORT_BIT_MESSAGE_INFO2
;
1032 static int hf_SAPDIAG_SUPPORT_BIT_VARINFO_OKCODE
;
1033 static int hf_SAPDIAG_SUPPORT_BIT_CURR_TCODE
;
1034 static int hf_SAPDIAG_SUPPORT_BIT_CONN_WSIZE
;
1035 static int hf_SAPDIAG_SUPPORT_BIT_PUSHBUTTON_2
;
1036 static int hf_SAPDIAG_SUPPORT_BIT_TABSTRIP
;
1037 static int hf_SAPDIAG_SUPPORT_BIT_UNKNOWN_1
;
1038 static int hf_SAPDIAG_SUPPORT_BIT_TABSCROLL_INFOS
;
1039 static int hf_SAPDIAG_SUPPORT_BIT_TABLE_FIELD_NAMES
;
1040 static int hf_SAPDIAG_SUPPORT_BIT_NEW_MODE_REQUEST
;
1041 static int hf_SAPDIAG_SUPPORT_BIT_RFCBLOB_DIAG_PARSER
;
1042 static int hf_SAPDIAG_SUPPORT_BIT_MULTI_LOGIN_USER
;
1043 static int hf_SAPDIAG_SUPPORT_BIT_CONTROL_CONTAINER
;
1044 static int hf_SAPDIAG_SUPPORT_BIT_APPTOOLBAR_FIXED
;
1045 static int hf_SAPDIAG_SUPPORT_BIT_R3INFO_USER_CHECKED
;
1046 static int hf_SAPDIAG_SUPPORT_BIT_NEED_STDDYNPRO
;
1047 static int hf_SAPDIAG_SUPPORT_BIT_TYPE_SERVER
;
1048 static int hf_SAPDIAG_SUPPORT_BIT_COMBOBOX
;
1049 static int hf_SAPDIAG_SUPPORT_BIT_INPUT_REQUIRED
;
1050 static int hf_SAPDIAG_SUPPORT_BIT_ISO_LANGUAGE
;
1051 static int hf_SAPDIAG_SUPPORT_BIT_COMBOBOX_TABLE
;
1052 static int hf_SAPDIAG_SUPPORT_BIT_R3INFO_FLAGS
;
1053 static int hf_SAPDIAG_SUPPORT_BIT_CHECKRADIO_EVENTS
;
1054 static int hf_SAPDIAG_SUPPORT_BIT_R3INFO_USERID
;
1055 static int hf_SAPDIAG_SUPPORT_BIT_R3INFO_ROLLCOUNT
;
1056 static int hf_SAPDIAG_SUPPORT_BIT_USER_TURNTIME2
;
1057 static int hf_SAPDIAG_SUPPORT_BIT_NUM_FIELD
;
1058 static int hf_SAPDIAG_SUPPORT_BIT_WIN16
;
1059 static int hf_SAPDIAG_SUPPORT_BIT_CONTEXT_MENU
;
1060 static int hf_SAPDIAG_SUPPORT_BIT_SCROLLABLE_TABSTRIP_PAGE
;
1061 static int hf_SAPDIAG_SUPPORT_BIT_EVENT_DESCRIPTION
;
1062 static int hf_SAPDIAG_SUPPORT_BIT_LABEL_OWNER
;
1063 static int hf_SAPDIAG_SUPPORT_BIT_CLICKABLE_FIELD
;
1064 static int hf_SAPDIAG_SUPPORT_BIT_PROPERTY_BAG
;
1065 static int hf_SAPDIAG_SUPPORT_BIT_UNUSED_1
;
1066 static int hf_SAPDIAG_SUPPORT_BIT_TABLE_ROW_REFERENCES_2
;
1067 static int hf_SAPDIAG_SUPPORT_BIT_PROPFONT_VALID
;
1068 static int hf_SAPDIAG_SUPPORT_BIT_VARINFO_CONTAINER
;
1069 static int hf_SAPDIAG_SUPPORT_BIT_R3INFO_IMODEUUID
;
1070 static int hf_SAPDIAG_SUPPORT_BIT_NOTGUI
;
1071 static int hf_SAPDIAG_SUPPORT_BIT_WAN
;
1072 static int hf_SAPDIAG_SUPPORT_BIT_XML_BLOBS
;
1073 static int hf_SAPDIAG_SUPPORT_BIT_RFC_QUEUE
;
1074 static int hf_SAPDIAG_SUPPORT_BIT_RFC_COMPRESS
;
1075 static int hf_SAPDIAG_SUPPORT_BIT_JAVA_BEANS
;
1076 static int hf_SAPDIAG_SUPPORT_BIT_DPLOADONDEMAND
;
1077 static int hf_SAPDIAG_SUPPORT_BIT_CTL_PROPCACHE
;
1078 static int hf_SAPDIAG_SUPPORT_BIT_ENJOY_IMODEUUID
;
1079 static int hf_SAPDIAG_SUPPORT_BIT_RFC_ASYNC_BLOB
;
1080 static int hf_SAPDIAG_SUPPORT_BIT_KEEP_SCROLLPOS
;
1081 static int hf_SAPDIAG_SUPPORT_BIT_UNUSED_2
;
1082 static int hf_SAPDIAG_SUPPORT_BIT_UNUSED_3
;
1083 static int hf_SAPDIAG_SUPPORT_BIT_XML_PROPERTIES
;
1084 static int hf_SAPDIAG_SUPPORT_BIT_UNUSED_4
;
1085 static int hf_SAPDIAG_SUPPORT_BIT_HEX_FIELD
;
1086 static int hf_SAPDIAG_SUPPORT_BIT_HAS_CACHE
;
1087 static int hf_SAPDIAG_SUPPORT_BIT_XML_PROP_TABLE
;
1088 static int hf_SAPDIAG_SUPPORT_BIT_UNUSED_5
;
1089 static int hf_SAPDIAG_SUPPORT_BIT_ENJOY_IMODEUUID2
;
1090 static int hf_SAPDIAG_SUPPORT_BIT_ITS
;
1091 static int hf_SAPDIAG_SUPPORT_BIT_NO_EASYACCESS
;
1092 static int hf_SAPDIAG_SUPPORT_BIT_PROPERTYPUMP
;
1093 static int hf_SAPDIAG_SUPPORT_BIT_COOKIE
;
1094 static int hf_SAPDIAG_SUPPORT_BIT_UNUSED_6
;
1095 static int hf_SAPDIAG_SUPPORT_BIT_SUPPBIT_AREA_SIZE
;
1096 static int hf_SAPDIAG_SUPPORT_BIT_DPLOADONDEMAND_WRITE
;
1097 static int hf_SAPDIAG_SUPPORT_BIT_CONTROL_FOCUS
;
1098 static int hf_SAPDIAG_SUPPORT_BIT_ENTRY_HISTORY
;
1099 static int hf_SAPDIAG_SUPPORT_BIT_AUTO_CODEPAGE
;
1100 static int hf_SAPDIAG_SUPPORT_BIT_CACHED_VSETS
;
1101 static int hf_SAPDIAG_SUPPORT_BIT_EMERGENCY_REPAIR
;
1102 static int hf_SAPDIAG_SUPPORT_BIT_AREA2FRONT
;
1103 static int hf_SAPDIAG_SUPPORT_BIT_SCROLLBAR_WIDTH
;
1104 static int hf_SAPDIAG_SUPPORT_BIT_AUTORESIZE
;
1105 static int hf_SAPDIAG_SUPPORT_BIT_EDIT_VARLEN
;
1106 static int hf_SAPDIAG_SUPPORT_BIT_WORKPLACE
;
1107 static int hf_SAPDIAG_SUPPORT_BIT_PRINTDATA
;
1108 static int hf_SAPDIAG_SUPPORT_BIT_UNKNOWN_2
;
1109 static int hf_SAPDIAG_SUPPORT_BIT_SINGLE_SESSION
;
1110 static int hf_SAPDIAG_SUPPORT_BIT_NOTIFY_NEWMODE
;
1111 static int hf_SAPDIAG_SUPPORT_BIT_TOOLBAR_HEIGHT
;
1112 static int hf_SAPDIAG_SUPPORT_BIT_XMLPROP_CONTAINER
;
1113 static int hf_SAPDIAG_SUPPORT_BIT_XMLPROP_DYNPRO
;
1114 static int hf_SAPDIAG_SUPPORT_BIT_DP_HTTP_PUT
;
1115 static int hf_SAPDIAG_SUPPORT_BIT_DYNAMIC_PASSPORT
;
1116 static int hf_SAPDIAG_SUPPORT_BIT_WEBGUI
;
1117 static int hf_SAPDIAG_SUPPORT_BIT_WEBGUI_HELPMODE
;
1118 static int hf_SAPDIAG_SUPPORT_BIT_CONTROL_FOCUS_ON_LIST
;
1119 static int hf_SAPDIAG_SUPPORT_BIT_CBU_RBUDUMMY_2
;
1120 static int hf_SAPDIAG_SUPPORT_BIT_EOKDUMMY_1
;
1121 static int hf_SAPDIAG_SUPPORT_BIT_GUI_USER_SCRIPTING
;
1122 static int hf_SAPDIAG_SUPPORT_BIT_SLC
;
1123 static int hf_SAPDIAG_SUPPORT_BIT_ACCESSIBILITY
;
1124 static int hf_SAPDIAG_SUPPORT_BIT_ECATT
;
1125 static int hf_SAPDIAG_SUPPORT_BIT_ENJOY_IMODEUUID3
;
1126 static int hf_SAPDIAG_SUPPORT_BIT_ENABLE_UTF8
;
1127 static int hf_SAPDIAG_SUPPORT_BIT_R3INFO_AUTOLOGOUT_TIME
;
1128 static int hf_SAPDIAG_SUPPORT_BIT_VARINFO_ICON_TITLE_LIST
;
1129 static int hf_SAPDIAG_SUPPORT_BIT_ENABLE_UTF16BE
;
1130 static int hf_SAPDIAG_SUPPORT_BIT_ENABLE_UTF16LE
;
1131 static int hf_SAPDIAG_SUPPORT_BIT_R3INFO_CODEPAGE_APP
;
1132 static int hf_SAPDIAG_SUPPORT_BIT_ENABLE_APPL4
;
1133 static int hf_SAPDIAG_SUPPORT_BIT_GUIPATCHLEVEL
;
1134 static int hf_SAPDIAG_SUPPORT_BIT_CBURBU_NEW_STATE
;
1135 static int hf_SAPDIAG_SUPPORT_BIT_BINARY_EVENTID
;
1136 static int hf_SAPDIAG_SUPPORT_BIT_GUI_THEME
;
1137 static int hf_SAPDIAG_SUPPORT_BIT_TOP_WINDOW
;
1138 static int hf_SAPDIAG_SUPPORT_BIT_EVENT_DESCRIPTION_1
;
1139 static int hf_SAPDIAG_SUPPORT_BIT_SPLITTER
;
1140 static int hf_SAPDIAG_SUPPORT_BIT_VALUE_4_HISTORY
;
1141 static int hf_SAPDIAG_SUPPORT_BIT_ACC_LIST
;
1142 static int hf_SAPDIAG_SUPPORT_BIT_GUI_USER_SCRIPTING_INFO
;
1143 static int hf_SAPDIAG_SUPPORT_BIT_TEXTEDIT_STREAM
;
1144 static int hf_SAPDIAG_SUPPORT_BIT_DYNT_NOFOCUS
;
1145 static int hf_SAPDIAG_SUPPORT_BIT_R3INFO_CODEPAGE_APP_1
;
1146 static int hf_SAPDIAG_SUPPORT_BIT_FRAME_1
;
1147 static int hf_SAPDIAG_SUPPORT_BIT_TICKET4GUI
;
1148 static int hf_SAPDIAG_SUPPORT_BIT_ACC_LIST_PROPS
;
1149 static int hf_SAPDIAG_SUPPORT_BIT_TABSEL_ATTRIB_INPUT
;
1150 static int hf_SAPDIAG_SUPPORT_BIT_DEFAULT_TOOLTIP
;
1151 static int hf_SAPDIAG_SUPPORT_BIT_XML_PROP_TABLE_2
;
1152 static int hf_SAPDIAG_SUPPORT_BIT_CBU_RBUDUMMY_3
;
1153 static int hf_SAPDIAG_SUPPORT_BIT_CELLINFO
;
1154 static int hf_SAPDIAG_SUPPORT_BIT_CONTROL_FOCUS_ON_LIST_2
;
1155 static int hf_SAPDIAG_SUPPORT_BIT_TABLE_COLUMNWIDTH_INPUT
;
1156 static int hf_SAPDIAG_SUPPORT_BIT_ITS_PLUGIN
;
1157 static int hf_SAPDIAG_SUPPORT_BIT_OBJECT_NAMES_4_LOGIN_PROCESS
;
1158 static int hf_SAPDIAG_SUPPORT_BIT_RFC_SERVER_4_GUI
;
1159 static int hf_SAPDIAG_SUPPORT_BIT_R3INFO_FLAGS_2
;
1160 static int hf_SAPDIAG_SUPPORT_BIT_RCUI
;
1161 static int hf_SAPDIAG_SUPPORT_BIT_MENUENTRY_WITH_FCODE
;
1162 static int hf_SAPDIAG_SUPPORT_BIT_WEBSAPCONSOLE
;
1163 static int hf_SAPDIAG_SUPPORT_BIT_R3INFO_KERNEL_VERSION
;
1164 static int hf_SAPDIAG_SUPPORT_BIT_VARINFO_CONTAINER_LOOP
;
1165 static int hf_SAPDIAG_SUPPORT_BIT_EOKDUMMY_2
;
1166 static int hf_SAPDIAG_SUPPORT_BIT_MESSAGE_INFO3
;
1167 static int hf_SAPDIAG_SUPPORT_BIT_SBA2
;
1168 static int hf_SAPDIAG_SUPPORT_BIT_MAINAREA_SIZE
;
1169 static int hf_SAPDIAG_SUPPORT_BIT_GUIPATCHLEVEL_2
;
1170 static int hf_SAPDIAG_SUPPORT_BIT_DISPLAY_SIZE
;
1171 static int hf_SAPDIAG_SUPPORT_BIT_GUI_PACKET
;
1172 static int hf_SAPDIAG_SUPPORT_BIT_DIALOG_STEP_NUMBER
;
1173 static int hf_SAPDIAG_SUPPORT_BIT_TC_KEEP_SCROLL_POSITION
;
1174 static int hf_SAPDIAG_SUPPORT_BIT_MESSAGE_SERVICE_REQUEST
;
1175 static int hf_SAPDIAG_SUPPORT_BIT_DYNT_FOCUS_FRAME
;
1176 static int hf_SAPDIAG_SUPPORT_BIT_MAX_STRING_LEN
;
1177 static int hf_SAPDIAG_SUPPORT_BIT_VARINFO_CONTAINER_1
;
1178 static int hf_SAPDIAG_SUPPORT_BIT_STD_TOOLBAR_ITEMS
;
1179 static int hf_SAPDIAG_SUPPORT_BIT_XMLPROP_LIST_DYNPRO
;
1180 static int hf_SAPDIAG_SUPPORT_BIT_TRACE_GUI_CONNECT
;
1181 static int hf_SAPDIAG_SUPPORT_BIT_LIST_FULLWIDTH
;
1182 static int hf_SAPDIAG_SUPPORT_BIT_ALLWAYS_SEND_CLIENT
;
1183 static int hf_SAPDIAG_SUPPORT_BIT_UNKNOWN_3
;
1184 static int hf_SAPDIAG_SUPPORT_BIT_GUI_SIGNATURE_COLOR
;
1185 static int hf_SAPDIAG_SUPPORT_BIT_MAX_WSIZE
;
1186 static int hf_SAPDIAG_SUPPORT_BIT_SAP_PERSONAS
;
1187 static int hf_SAPDIAG_SUPPORT_BIT_IDA_ALV
;
1188 static int hf_SAPDIAG_SUPPORT_BIT_IDA_ALV_FRAGMENTS
;
1189 static int hf_SAPDIAG_SUPPORT_BIT_AMC
;
1190 static int hf_SAPDIAG_SUPPORT_BIT_EXTMODE_FONT_METRIC
;
1191 static int hf_SAPDIAG_SUPPORT_BIT_GROUPBOX
;
1192 static int hf_SAPDIAG_SUPPORT_BIT_AGI_ID_TS_BUTTON
;
1193 static int hf_SAPDIAG_SUPPORT_BIT_NO_FOCUS_ON_LIST
;
1194 static int hf_SAPDIAG_SUPPORT_BIT_FIORI_MODE
;
1195 static int hf_SAPDIAG_SUPPORT_BIT_CONNECT_CHECK_DONE
;
1196 static int hf_SAPDIAG_SUPPORT_BIT_MSGINFO_WITH_CODEPAGE
;
1197 static int hf_SAPDIAG_SUPPORT_BIT_AGI_ID
;
1198 static int hf_SAPDIAG_SUPPORT_BIT_AGI_ID_TC
;
1199 static int hf_SAPDIAG_SUPPORT_BIT_FIORI_TOOLBARS
;
1200 static int hf_SAPDIAG_SUPPORT_BIT_OBJECT_NAMES_ENFORCE
;
1201 static int hf_SAPDIAG_SUPPORT_BIT_MESDUMMY_FLAGS_2_3
;
1202 static int hf_SAPDIAG_SUPPORT_BIT_NWBC
;
1203 static int hf_SAPDIAG_SUPPORT_BIT_CONTAINER_LIST
;
1204 static int hf_SAPDIAG_SUPPORT_BIT_GUI_SYSTEM_COLOR
;
1205 static int hf_SAPDIAG_SUPPORT_BIT_GROUPBOX_WITHOUT_BOTTOMLINE
;
1207 static int ett_sapdiag
;
1210 static expert_field ei_sapdiag_item_unknown
;
1211 static expert_field ei_sapdiag_item_partial
;
1212 static expert_field ei_sapdiag_item_unknown_length
;
1213 static expert_field ei_sapdiag_item_offset_invalid
;
1214 static expert_field ei_sapdiag_item_length_invalid
;
1215 static expert_field ei_sapdiag_atom_item_unknown
;
1216 static expert_field ei_sapdiag_atom_item_partial
;
1217 static expert_field ei_sapdiag_atom_item_malformed
;
1218 static expert_field ei_sapdiag_dynt_focus_more_cont_ids
;
1219 static expert_field ei_sapdiag_password_field
;
1221 /* Global RFC dissection preference */
1222 static bool global_sapdiag_rfc_dissection
= true;
1224 /* Global SNC dissection preference */
1225 static bool global_sapdiag_snc_dissection
= true;
1227 /* Global port preference */
1228 static range_t
*global_sapdiag_port_range
;
1230 /* Global highlight preference */
1231 static bool global_sapdiag_highlight_items
= true;
1233 /* Protocol handle */
1234 static dissector_handle_t sapdiag_handle
;
1236 void proto_register_sapdiag(void);
1237 void proto_reg_handoff_sapdiag(void);
1241 dissect_sapdiag_dp_req_info(tvbuff_t
*tvb
, proto_tree
*tree
, uint32_t offset
){
1242 proto_item
*ri
= NULL
;
1243 proto_tree
*req_info_tree
;
1245 ri
= proto_tree_add_item(tree
, hf_sapdiag_dp_req_info
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1246 req_info_tree
= proto_item_add_subtree(ri
, ett_sapdiag
);
1248 proto_tree_add_item(req_info_tree
, hf_sapdiag_dp_req_info_LOGIN
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 0x08 */
1249 proto_tree_add_item(req_info_tree
, hf_sapdiag_dp_req_info_LOGOFF
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1250 proto_tree_add_item(req_info_tree
, hf_sapdiag_dp_req_info_SHUTDOWN
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1251 proto_tree_add_item(req_info_tree
, hf_sapdiag_dp_req_info_GRAPHIC_TM
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1252 proto_tree_add_item(req_info_tree
, hf_sapdiag_dp_req_info_ALPHA_TM
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1253 proto_tree_add_item(req_info_tree
, hf_sapdiag_dp_req_info_ERROR_FROM_APPC
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1254 proto_tree_add_item(req_info_tree
, hf_sapdiag_dp_req_info_CANCELMODE
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1255 proto_tree_add_item(req_info_tree
, hf_sapdiag_dp_req_info_MSG_WITH_REQ_BUF
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1258 proto_tree_add_item(req_info_tree
, hf_sapdiag_dp_req_info_MSG_WITH_OH
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 0x09 */
1259 proto_tree_add_item(req_info_tree
, hf_sapdiag_dp_req_info_BUFFER_REFRESH
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1260 proto_tree_add_item(req_info_tree
, hf_sapdiag_dp_req_info_BTC_SCHEDULER
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1261 proto_tree_add_item(req_info_tree
, hf_sapdiag_dp_req_info_APPC_SERVER_DOWN
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1262 proto_tree_add_item(req_info_tree
, hf_sapdiag_dp_req_info_MS_ERROR
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1263 proto_tree_add_item(req_info_tree
, hf_sapdiag_dp_req_info_SET_SYSTEM_USER
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1264 proto_tree_add_item(req_info_tree
, hf_sapdiag_dp_req_info_DP_CANT_HANDLE_REQ
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1265 proto_tree_add_item(req_info_tree
, hf_sapdiag_dp_req_info_DP_AUTO_ABAP
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1268 proto_tree_add_item(req_info_tree
, hf_sapdiag_dp_req_info_DP_APPL_SERV_INFO
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 0x0a */
1269 proto_tree_add_item(req_info_tree
, hf_sapdiag_dp_req_info_DP_ADMIN
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1270 proto_tree_add_item(req_info_tree
, hf_sapdiag_dp_req_info_DP_SPOOL_ALRM
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1271 proto_tree_add_item(req_info_tree
, hf_sapdiag_dp_req_info_DP_HAND_SHAKE
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1272 proto_tree_add_item(req_info_tree
, hf_sapdiag_dp_req_info_DP_CANCEL_PRIV
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1273 proto_tree_add_item(req_info_tree
, hf_sapdiag_dp_req_info_DP_RAISE_TIMEOUT
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1274 proto_tree_add_item(req_info_tree
, hf_sapdiag_dp_req_info_DP_NEW_MODE
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1275 proto_tree_add_item(req_info_tree
, hf_sapdiag_dp_req_info_DP_SOFT_CANCEL
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1278 proto_tree_add_item(req_info_tree
, hf_sapdiag_dp_req_info_DP_TM_INPUT
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 0x0b */
1279 proto_tree_add_item(req_info_tree
, hf_sapdiag_dp_req_info_DP_TM_OUTPUT
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1280 proto_tree_add_item(req_info_tree
, hf_sapdiag_dp_req_info_DP_ASYNC_RFC
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1281 proto_tree_add_item(req_info_tree
, hf_sapdiag_dp_req_info_DP_ICM_EVENT
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1282 proto_tree_add_item(req_info_tree
, hf_sapdiag_dp_req_info_DP_AUTO_TH
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1283 proto_tree_add_item(req_info_tree
, hf_sapdiag_dp_req_info_DP_RFC_CANCEL
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1284 proto_tree_add_item(req_info_tree
, hf_sapdiag_dp_req_info_DP_MS_ADM
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1288 dissect_sapdiag_dp(tvbuff_t
*tvb
, proto_tree
*tree
, uint32_t offset
){
1289 proto_item
*dp
= NULL
;
1290 proto_tree
*dp_tree
;
1292 dp
= proto_tree_add_item(tree
, hf_sapdiag_dp
, tvb
, offset
, 200, ENC_NA
);
1293 dp_tree
= proto_item_add_subtree(dp
, ett_sapdiag
);
1295 proto_tree_add_item(dp_tree
, hf_sapdiag_dp_request_id
, tvb
, offset
, 4, ENC_BIG_ENDIAN
); /* 0x00 */
1297 proto_tree_add_item(dp_tree
, hf_sapdiag_dp_retcode
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 0x04 */
1299 proto_tree_add_item(dp_tree
, hf_sapdiag_dp_sender_id
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 0x05 */
1301 proto_tree_add_item(dp_tree
, hf_sapdiag_dp_action_type
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 0x06 */
1303 dissect_sapdiag_dp_req_info(tvb
, dp_tree
, offset
); /* Request info flags */ /* 0x07 */
1305 proto_tree_add_item(dp_tree
, hf_sapdiag_dp_tid
, tvb
, offset
, 4, ENC_BIG_ENDIAN
); /* 0x0b */
1307 proto_tree_add_item(dp_tree
, hf_sapdiag_dp_uid
, tvb
, offset
, 2, ENC_BIG_ENDIAN
); /* 0x0f */
1309 proto_tree_add_item(dp_tree
, hf_sapdiag_dp_mode
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 0x11 */
1311 proto_tree_add_item(dp_tree
, hf_sapdiag_dp_wp_id
, tvb
, offset
, 4, ENC_BIG_ENDIAN
); /* 0x12 */
1313 proto_tree_add_item(dp_tree
, hf_sapdiag_dp_wp_ca_blk
, tvb
, offset
, 4, ENC_BIG_ENDIAN
); /* 0x16 */
1315 proto_tree_add_item(dp_tree
, hf_sapdiag_dp_appc_ca_blk
, tvb
, offset
, 4, ENC_BIG_ENDIAN
); /* 0x1a */
1317 proto_tree_add_item(dp_tree
, hf_sapdiag_dp_len
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
); /* 0x1e */
1319 proto_tree_add_item(dp_tree
, hf_sapdiag_dp_new_stat
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 0x22 */
1321 offset
+=4; /* Unknown 4 bytes */ /* 0x23 */
1322 proto_tree_add_item(dp_tree
, hf_sapdiag_dp_rq_id
, tvb
, offset
, 2, ENC_BIG_ENDIAN
); /* 0x27 */
1324 offset
+=40; /* Unknown 40 bytes (0x20 * 40) */ /* 0x29 */
1325 proto_tree_add_item(dp_tree
, hf_sapdiag_dp_terminal
, tvb
, offset
, 15, ENC_ASCII
|ENC_NA
); /* 0x51 */
1329 dissect_sapdiag_support_bits(tvbuff_t
*tvb
, proto_tree
*tree
, uint32_t offset
){
1331 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_PROGRESS_INDICATOR
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 0 */
1332 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_SAPGUI_LABELS
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 1 */
1333 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_SAPGUI_DIAGVERSION
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 2 */
1334 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_SAPGUI_SELECT_RECT
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 3 */
1335 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_SAPGUI_SYMBOL_RIGHT
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 4 */
1336 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_SAPGUI_FONT_METRIC
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 5 */
1337 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_SAPGUI_COMPR_ENHANCED
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 6 */
1338 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_SAPGUI_IMODE
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 7 */
1340 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_SAPGUI_LONG_MESSAGE
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 8 */
1341 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_SAPGUI_TABLE
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 9 */
1342 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_SAPGUI_FOCUS_1
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 10 */
1343 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_SAPGUI_PUSHBUTTON_1
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 11 */
1344 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_UPPERCASE
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 12 */
1345 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_SAPGUI_TABPROPERTY
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 13 */
1346 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_INPUT_UPPERCASE
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 14 */
1347 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_RFC_DIALOG
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 15 */
1349 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_LIST_HOTSPOT
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 16 */
1350 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_FKEY_TABLE
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 17 */
1351 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_MENU_SHORTCUT
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 18 */
1352 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_STOP_TRANS
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 19 */
1353 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_FULL_MENU
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 20 */
1354 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_OBJECT_NAMES
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 21 */
1355 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_CONTAINER_TYPE
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 22 */
1356 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_DLGH_FLAGS
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 23 */
1358 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_APPL_MNU
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 24 */
1359 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_MESSAGE_INFO
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 25 */
1360 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_MESDUM_FLAG1
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 26 */
1361 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_TABSEL_ATTRIB
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 27 */
1362 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_GUIAPI
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 28 */
1363 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_NOGRAPH
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 29 */
1364 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_NOMESSAGES
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 30 */
1365 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_NORABAX
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 31 */
1367 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_NOSYSMSG
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 32 */
1368 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_NOSAPSCRIPT
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 33 */
1369 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_NORFC
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 34 */
1370 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_NEW_BSD_JUSTRIGHT
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 35 */
1371 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_MESSAGE_VARS
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 36 */
1372 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_OCX_SUPPORT
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 37 */
1373 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_SCROLL_INFOS
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 38 */
1374 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_TABLE_SIZE_OK
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 39 */
1376 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_MESSAGE_INFO2
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 40 */
1377 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_VARINFO_OKCODE
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 41 */
1378 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_CURR_TCODE
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 42 */
1379 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_CONN_WSIZE
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 43 */
1380 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_PUSHBUTTON_2
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 44 */
1381 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_TABSTRIP
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 45 */
1382 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_UNKNOWN_1
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 46 (Unknown support bit) */
1383 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_TABSCROLL_INFOS
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 47 */
1385 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_TABLE_FIELD_NAMES
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 48 */
1386 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_NEW_MODE_REQUEST
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 49 */
1387 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_RFCBLOB_DIAG_PARSER
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 50 */
1388 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_MULTI_LOGIN_USER
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 51 */
1389 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_CONTROL_CONTAINER
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 52 */
1390 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_APPTOOLBAR_FIXED
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 53 */
1391 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_R3INFO_USER_CHECKED
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 54 */
1392 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_NEED_STDDYNPRO
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 55 */
1394 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_TYPE_SERVER
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 56 */
1395 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_COMBOBOX
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 57 */
1396 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_INPUT_REQUIRED
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 58 */
1397 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_ISO_LANGUAGE
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 59 */
1398 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_COMBOBOX_TABLE
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 60 */
1399 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_R3INFO_FLAGS
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 61 */
1400 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_CHECKRADIO_EVENTS
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 62 */
1401 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_R3INFO_USERID
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 63 */
1403 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_R3INFO_ROLLCOUNT
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 64 */
1404 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_USER_TURNTIME2
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 65 */
1405 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_NUM_FIELD
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 66 */
1406 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_WIN16
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 67 */
1407 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_CONTEXT_MENU
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 68 */
1408 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_SCROLLABLE_TABSTRIP_PAGE
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 69 */
1409 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_EVENT_DESCRIPTION
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 70 */
1410 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_LABEL_OWNER
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 71 */
1412 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_CLICKABLE_FIELD
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 72 */
1413 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_PROPERTY_BAG
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 73 */
1414 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_UNUSED_1
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 74 */
1415 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_TABLE_ROW_REFERENCES_2
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 75 */
1416 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_PROPFONT_VALID
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 76 */
1417 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_VARINFO_CONTAINER
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 77 */
1418 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_R3INFO_IMODEUUID
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 78 */
1419 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_NOTGUI
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 79 */
1421 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_WAN
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 80 */
1422 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_XML_BLOBS
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 81 */
1423 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_RFC_QUEUE
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 82 */
1424 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_RFC_COMPRESS
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 83 */
1425 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_JAVA_BEANS
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 84 */
1426 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_DPLOADONDEMAND
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 85 */
1427 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_CTL_PROPCACHE
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 86 */
1428 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_ENJOY_IMODEUUID
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 87 */
1430 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_RFC_ASYNC_BLOB
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 88 */
1431 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_KEEP_SCROLLPOS
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 89 */
1432 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_UNUSED_2
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 90 */
1433 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_UNUSED_3
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 91 */
1434 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_XML_PROPERTIES
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 92 */
1435 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_UNUSED_4
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 93 */
1436 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_HEX_FIELD
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 94 */
1437 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_HAS_CACHE
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 95 */
1439 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_XML_PROP_TABLE
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 96 */
1440 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_UNUSED_5
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 97 */
1441 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_ENJOY_IMODEUUID2
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 98 */
1442 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_ITS
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 99 */
1443 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_NO_EASYACCESS
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 100 */
1444 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_PROPERTYPUMP
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 101 */
1445 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_COOKIE
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 102 */
1446 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_UNUSED_6
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 103 */
1448 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_SUPPBIT_AREA_SIZE
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 104 */
1449 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_DPLOADONDEMAND_WRITE
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 105 */
1450 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_CONTROL_FOCUS
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 106 */
1451 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_ENTRY_HISTORY
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 107 */
1452 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_AUTO_CODEPAGE
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 108 */
1453 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_CACHED_VSETS
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 109 */
1454 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_EMERGENCY_REPAIR
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 110 */
1455 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_AREA2FRONT
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 111 */
1457 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_SCROLLBAR_WIDTH
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 112 */
1458 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_AUTORESIZE
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 113 */
1459 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_EDIT_VARLEN
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 114 */
1460 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_WORKPLACE
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 115 */
1461 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_PRINTDATA
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 116 */
1462 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_UNKNOWN_2
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 117 (Unknown support bit) */
1463 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_SINGLE_SESSION
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 118 */
1464 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_NOTIFY_NEWMODE
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 119 */
1466 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_TOOLBAR_HEIGHT
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 120 */
1467 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_XMLPROP_CONTAINER
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 121 */
1468 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_XMLPROP_DYNPRO
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 122 */
1469 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_DP_HTTP_PUT
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 123 */
1470 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_DYNAMIC_PASSPORT
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 124 */
1471 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_WEBGUI
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 125 */
1472 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_WEBGUI_HELPMODE
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 126 */
1473 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_CONTROL_FOCUS_ON_LIST
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 127 */
1475 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_CBU_RBUDUMMY_2
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 128 */
1476 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_EOKDUMMY_1
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 129 */
1477 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_GUI_USER_SCRIPTING
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 130 */
1478 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_SLC
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 131 */
1479 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_ACCESSIBILITY
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 132 */
1480 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_ECATT
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 133 */
1481 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_ENJOY_IMODEUUID3
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 134 */
1482 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_ENABLE_UTF8
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 135 */
1484 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_R3INFO_AUTOLOGOUT_TIME
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 136 */
1485 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_VARINFO_ICON_TITLE_LIST
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 137 */
1486 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_ENABLE_UTF16BE
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 138 */
1487 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_ENABLE_UTF16LE
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 139 */
1488 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_R3INFO_CODEPAGE_APP
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 140 */
1489 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_ENABLE_APPL4
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 141 */
1490 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_GUIPATCHLEVEL
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 142 */
1491 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_CBURBU_NEW_STATE
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 143 */
1493 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_BINARY_EVENTID
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 144 */
1494 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_GUI_THEME
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 145 */
1495 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_TOP_WINDOW
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 146 */
1496 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_EVENT_DESCRIPTION_1
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 147 */
1497 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_SPLITTER
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 148 */
1498 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_VALUE_4_HISTORY
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 149 */
1499 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_ACC_LIST
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 150 */
1500 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_GUI_USER_SCRIPTING_INFO
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 151 */
1502 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_TEXTEDIT_STREAM
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 152 */
1503 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_DYNT_NOFOCUS
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 153 */
1504 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_R3INFO_CODEPAGE_APP_1
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 154 */
1505 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_FRAME_1
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 155 */
1506 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_TICKET4GUI
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 156 */
1507 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_ACC_LIST_PROPS
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 157 */
1508 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_TABSEL_ATTRIB_INPUT
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 158 */
1509 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_DEFAULT_TOOLTIP
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 159 */
1511 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_XML_PROP_TABLE_2
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 160 */
1512 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_CBU_RBUDUMMY_3
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 161 */
1513 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_CELLINFO
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 162 */
1514 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_CONTROL_FOCUS_ON_LIST_2
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 163 */
1515 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_TABLE_COLUMNWIDTH_INPUT
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 164 */
1516 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_ITS_PLUGIN
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 165 */
1517 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_OBJECT_NAMES_4_LOGIN_PROCESS
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 166 */
1518 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_RFC_SERVER_4_GUI
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 167 */
1520 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_R3INFO_FLAGS_2
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 168 */
1521 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_RCUI
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 169 */
1522 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_MENUENTRY_WITH_FCODE
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 170 */
1523 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_WEBSAPCONSOLE
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 171 */
1524 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_R3INFO_KERNEL_VERSION
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 172 */
1525 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_VARINFO_CONTAINER_LOOP
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 173 */
1526 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_EOKDUMMY_2
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 174 */
1527 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_MESSAGE_INFO3
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 175 */
1529 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_SBA2
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 176 */
1530 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_MAINAREA_SIZE
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 177 */
1531 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_GUIPATCHLEVEL_2
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 178 */
1532 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_DISPLAY_SIZE
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 179 */
1533 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_GUI_PACKET
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 180 */
1534 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_DIALOG_STEP_NUMBER
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 181 */
1535 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_TC_KEEP_SCROLL_POSITION
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 182 */
1536 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_MESSAGE_SERVICE_REQUEST
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 183 */
1538 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_DYNT_FOCUS_FRAME
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 184 */
1539 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_MAX_STRING_LEN
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 185 */
1540 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_VARINFO_CONTAINER_1
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 186 */
1541 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_STD_TOOLBAR_ITEMS
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 187 */
1542 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_XMLPROP_LIST_DYNPRO
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 188 */
1543 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_TRACE_GUI_CONNECT
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 189 */
1544 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_LIST_FULLWIDTH
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 190 */
1545 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_ALLWAYS_SEND_CLIENT
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 191 */
1547 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_UNKNOWN_3
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 192 (Unknown support bit) */
1548 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_GUI_SIGNATURE_COLOR
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 193 */
1549 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_MAX_WSIZE
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 194 */
1550 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_SAP_PERSONAS
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 195 */
1551 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_IDA_ALV
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 196 */
1552 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_IDA_ALV_FRAGMENTS
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 197 */
1553 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_AMC
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 198 */
1554 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_EXTMODE_FONT_METRIC
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 199 */
1556 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_GROUPBOX
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 200 */
1557 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_AGI_ID_TS_BUTTON
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 201 */
1558 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_NO_FOCUS_ON_LIST
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 202 */
1559 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_FIORI_MODE
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 203 */
1560 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_CONNECT_CHECK_DONE
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 204 */
1561 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_MSGINFO_WITH_CODEPAGE
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 205 */
1562 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_AGI_ID
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 206 */
1563 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_AGI_ID_TC
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 207 */
1565 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_FIORI_TOOLBARS
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 208 */
1566 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_OBJECT_NAMES_ENFORCE
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 209 */
1567 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_MESDUMMY_FLAGS_2_3
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 210 */
1568 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_NWBC
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 211 */
1569 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_CONTAINER_LIST
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 212 */
1570 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_GUI_SYSTEM_COLOR
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 213 */
1571 proto_tree_add_item(tree
, hf_SAPDIAG_SUPPORT_BIT_GROUPBOX_WITHOUT_BOTTOMLINE
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); /* 214 */
1575 dissect_sapdiag_rfc_call(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, uint32_t offset
, uint32_t item_length
){
1577 tvbuff_t
*next_tvb
= NULL
;
1578 dissector_handle_t rfc_handle
;
1580 /* Call the RFC internal dissector.
1581 * TODO: This should be enabled when the RFC dissector is merged as they depend on each other.
1583 if (global_sapdiag_rfc_dissection
&& false){
1584 rfc_handle
= find_dissector("saprfcinternal");
1586 /* Set the column to not writable so the RFC dissector doesn't override the Diag info */
1587 col_set_writable(pinfo
->cinfo
, -1, false);
1588 /* Create a new tvb buffer and call the dissector */
1589 next_tvb
= tvb_new_subset_length(tvb
, offset
, item_length
);
1590 call_dissector(rfc_handle
, next_tvb
, pinfo
, tree
);
1598 check_length(packet_info
*pinfo
, proto_tree
*tree
, uint32_t expected
, uint32_t real
, const char *name_string
){
1599 if (expected
!= real
){
1600 expert_add_info_format(pinfo
, tree
, &ei_sapdiag_item_length_invalid
, "Item %s length is invalid", name_string
);
1607 add_item_value_uint8(tvbuff_t
*tvb
, proto_item
*item
, proto_tree
*tree
, int hf
, uint32_t offset
, const char *text
){
1608 proto_tree_add_none_format(tree
, hf
, tvb
, offset
, 1, "%s: %d", text
, tvb_get_uint8(tvb
, offset
));
1609 proto_item_append_text(item
, ", %s=%d", text
, tvb_get_uint8(tvb
, offset
));
1610 return (tvb_get_uint8(tvb
, offset
));
1615 add_item_value_uint16(tvbuff_t
*tvb
, proto_item
*item
, proto_tree
*tree
, int hf
, uint32_t offset
, const char *text
){
1616 proto_tree_add_none_format(tree
, hf
, tvb
, offset
, 2, "%s: %d", text
, tvb_get_ntohs(tvb
, offset
));
1617 proto_item_append_text(item
, ", %s=%d", text
, tvb_get_ntohs(tvb
, offset
));
1618 return (tvb_get_ntohs(tvb
, offset
));
1623 add_item_value_uint32(tvbuff_t
*tvb
, proto_item
*item
, proto_tree
*tree
, int hf
, uint32_t offset
, const char *text
){
1624 proto_tree_add_none_format(tree
, hf
, tvb
, offset
, 4, "%s: %d", text
, tvb_get_ntohl(tvb
, offset
));
1625 proto_item_append_text(item
, ", %s=%d", text
, tvb_get_ntohl(tvb
, offset
));
1626 return (tvb_get_ntohl(tvb
, offset
));
1631 add_item_value_string(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_item
*item
, proto_tree
*tree
, int hf
, uint32_t offset
, uint32_t length
, const char *text
, int show_in_tree
){
1632 uint8_t *string
= tvb_get_string_enc(pinfo
->pool
, tvb
, offset
, length
, ENC_ASCII
);
1633 proto_tree_add_none_format(tree
, hf
, tvb
, offset
, length
, "%s: %s", text
, string
);
1634 if (show_in_tree
) proto_item_append_text(item
, ", %s=%s", text
, string
);
1639 add_item_value_stringz(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_item
*item
, proto_tree
*tree
, int hf
, uint32_t offset
, const char *text
, int show_in_tree
){
1640 uint32_t length
= tvb_strsize(tvb
, offset
);
1641 uint8_t *string
= tvb_get_string_enc(pinfo
->pool
, tvb
, offset
, length
- 1, ENC_ASCII
);
1642 proto_tree_add_none_format(tree
, hf
, tvb
, offset
, length
, "%s: %s", text
, string
);
1643 if (show_in_tree
) proto_item_append_text(item
, ", %s=%s", text
, string
);
1649 add_item_value_hexstring(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_item
*item
, proto_tree
*tree
, int hf
, uint32_t offset
, uint32_t length
, const char *text
){
1650 proto_tree_add_none_format(tree
, hf
, tvb
, offset
, length
, "%s: %s", text
, tvb_bytes_to_str(pinfo
->pool
, tvb
, offset
, length
));
1651 proto_item_append_text(item
, ", %s=%s", text
, tvb_bytes_to_str(pinfo
->pool
, tvb
, offset
, length
));
1656 dissect_sapdiag_dyntatom(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, uint32_t offset
, uint32_t length
){
1657 uint32_t final
= offset
+ length
;
1658 uint16_t atom_length
= 0, atom_item_length
= 0;
1659 uint8_t etype
= 0, attr
= 0;
1661 proto_item
*atom
= NULL
, *atom_item
= NULL
, *atom_item_attr
= NULL
;
1662 proto_tree
*atom_tree
= NULL
, *atom_item_tree
= NULL
, *atom_item_attr_tree
= NULL
;
1664 while (offset
< final
){
1666 etype
= tvb_get_uint8(tvb
, offset
+4);
1667 if ((etype
!= 114) && (etype
!= 120)) {
1668 /* Add a new atom subtree */
1670 atom
= proto_tree_add_item(tree
, hf_sapdiag_item_dynt_atom
, tvb
, offset
, atom_length
, ENC_NA
);
1671 atom_tree
= proto_item_add_subtree(atom
, ett_sapdiag
);
1672 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 */
1675 /* Check the atom_tree for NULL values. If the atom_tree wasn't created at this point, the atom
1676 * starts with an item different to 114 or 120. */
1677 if (atom_tree
== NULL
){
1678 expert_add_info(pinfo
, tree
, &ei_sapdiag_atom_item_malformed
);
1682 /* Add the item atom subtree */
1683 atom_item
= proto_tree_add_item(atom_tree
, hf_sapdiag_item_dynt_atom_item
, tvb
, offset
, tvb_get_ntohs(tvb
, offset
), ENC_NA
);
1684 atom_item_tree
= proto_item_add_subtree(atom_item
, ett_sapdiag
);
1686 /* Get the atom item length */
1687 atom_item_length
= add_item_value_uint16(tvb
, atom_item
, atom_item_tree
, hf_sapdiag_item_value
, offset
, "Atom Length");
1689 /* Adjust the length of the atom tree, adding the new item's length and the length field */
1690 atom_length
+= atom_item_length
;
1691 proto_item_set_len(atom_tree
, atom_length
);
1693 /* Continue with the dissection */
1695 atom_item_length
-=2;
1696 add_item_value_uint8(tvb
, atom_item
, atom_item_tree
, hf_sapdiag_item_value
, offset
, "Dlg Flag 1");
1698 atom_item_length
-=1;
1699 add_item_value_uint8(tvb
, atom_item
, atom_item_tree
, hf_sapdiag_item_value
, offset
, "Dlg Flag 2");
1701 atom_item_length
-=1;
1703 proto_tree_add_item(atom_item_tree
, hf_sapdiag_item_dynt_atom_item_etype
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1704 proto_item_append_text(atom_item
, ", EType=%d", tvb_get_uint8(tvb
, offset
));
1706 atom_item_length
-=1;
1708 add_item_value_uint8(tvb
, atom_item
, atom_item_tree
, hf_sapdiag_item_value
, offset
, "Area");
1710 atom_item_length
-=1;
1711 add_item_value_uint8(tvb
, atom_item
, atom_item_tree
, hf_sapdiag_item_value
, offset
, "Block");
1713 atom_item_length
-=1;
1714 add_item_value_uint8(tvb
, atom_item
, atom_item_tree
, hf_sapdiag_item_value
, offset
, "Group");
1716 atom_item_length
-=1;
1717 add_item_value_uint16(tvb
, atom_item
, atom_item_tree
, hf_sapdiag_item_value
, offset
, "Row");
1719 atom_item_length
-=2;
1720 add_item_value_uint16(tvb
, atom_item
, atom_item_tree
, hf_sapdiag_item_value
, offset
, "Col");
1722 atom_item_length
-=2;
1724 atom_item_attr
= proto_tree_add_item(atom_item_tree
, hf_sapdiag_item_dynt_atom_item_attr
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1725 atom_item_attr_tree
= proto_item_add_subtree(atom_item_attr
, ett_sapdiag
);
1727 attr
= tvb_get_uint8(tvb
, offset
);
1728 proto_item_append_text(atom_item
, ", Attr=%d", attr
);
1729 proto_tree_add_item(atom_item_attr_tree
, hf_sapdiag_item_dynt_atom_item_attr_DIAG_BSD_PROTECTED
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1730 proto_tree_add_item(atom_item_attr_tree
, hf_sapdiag_item_dynt_atom_item_attr_DIAG_BSD_INVISIBLE
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1731 proto_tree_add_item(atom_item_attr_tree
, hf_sapdiag_item_dynt_atom_item_attr_DIAG_BSD_INTENSIFY
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1732 proto_tree_add_item(atom_item_attr_tree
, hf_sapdiag_item_dynt_atom_item_attr_DIAG_BSD_JUSTRIGHT
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1733 proto_tree_add_item(atom_item_attr_tree
, hf_sapdiag_item_dynt_atom_item_attr_DIAG_BSD_MATCHCODE
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1734 proto_tree_add_item(atom_item_attr_tree
, hf_sapdiag_item_dynt_atom_item_attr_DIAG_BSD_PROPFONT
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1735 proto_tree_add_item(atom_item_attr_tree
, hf_sapdiag_item_dynt_atom_item_attr_DIAG_BSD_YES3D
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1736 proto_tree_add_item(atom_item_attr_tree
, hf_sapdiag_item_dynt_atom_item_attr_DIAG_BSD_COMBOSTYLE
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1738 atom_item_length
-=1;
1740 /* If the attribute is set to invisible we're dealing probably with a password field */
1741 if (attr
& SAPDIAG_ATOM_ATTR_DIAG_BSD_INVISIBLE
){
1742 expert_add_info(pinfo
, atom_item
, &ei_sapdiag_password_field
);
1746 case 114:{ /* DIAG_DGOTYP_FNAME */
1747 add_item_value_string(tvb
, pinfo
, atom_item
, atom_item_tree
, hf_sapdiag_item_value
, offset
, atom_item_length
, "Text", 1);
1748 proto_item_append_text(atom
, ", Text=%s", tvb_get_string_enc(pinfo
->pool
, tvb
, offset
, atom_item_length
, ENC_ASCII
));
1751 } case 115:{ /* DIAG_DGOTYP_PUSHBUTTON_2 */
1752 add_item_value_uint8(tvb
, atom_item
, atom_item_tree
, hf_sapdiag_item_value
, offset
, "V Length");
1754 add_item_value_uint8(tvb
, atom_item
, atom_item_tree
, hf_sapdiag_item_value
, offset
, "V Height");
1756 add_item_value_uint16(tvb
, atom_item
, atom_item_tree
, hf_sapdiag_item_value
, offset
, "Function Code Offset");
1758 add_item_value_uint16(tvb
, atom_item
, atom_item_tree
, hf_sapdiag_item_value
, offset
, "Text Offset");
1760 offset
+=add_item_value_stringz(tvb
, pinfo
, atom_item
, atom_item_tree
, hf_sapdiag_item_value
, offset
, "Text", 1);
1761 add_item_value_stringz(tvb
, pinfo
, atom_item
, atom_item_tree
, hf_sapdiag_item_value
, offset
, "Function Code", 1);
1764 } case 116:{ /* DIAG_DGOTYP_TABSTRIP_BUTTON */
1765 add_item_value_uint8(tvb
, atom_item
, atom_item_tree
, hf_sapdiag_item_value
, offset
, "V Length");
1767 add_item_value_uint8(tvb
, atom_item
, atom_item_tree
, hf_sapdiag_item_value
, offset
, "V Height");
1769 add_item_value_uint8(tvb
, atom_item
, atom_item_tree
, hf_sapdiag_item_value
, offset
, "Page Id");
1771 add_item_value_uint16(tvb
, atom_item
, atom_item_tree
, hf_sapdiag_item_value
, offset
, "Function Code Offset");
1773 add_item_value_uint16(tvb
, atom_item
, atom_item_tree
, hf_sapdiag_item_value
, offset
, "Text Offset");
1775 add_item_value_uint16(tvb
, atom_item
, atom_item_tree
, hf_sapdiag_item_value
, offset
, "Id Offset");
1777 offset
+=add_item_value_stringz(tvb
, pinfo
, atom_item
, atom_item_tree
, hf_sapdiag_item_value
, offset
, "Text", 1);
1778 offset
+=add_item_value_stringz(tvb
, pinfo
, atom_item
, atom_item_tree
, hf_sapdiag_item_value
, offset
, "Function Code", 1);
1779 add_item_value_stringz(tvb
, pinfo
, atom_item
, atom_item_tree
, hf_sapdiag_item_value
, offset
, "ID", 1);
1782 } case 118: /* DIAG_DGOTYP_CHECKBUTTON_1" */
1783 case 119:{ /* DIAG_DGOTYP_RADIOBUTTON_1 */
1784 /* If the preference is set, report the item as partially dissected in the expert info */
1785 if (global_sapdiag_highlight_items
){
1786 expert_add_info_format(pinfo
, atom_item
, &ei_sapdiag_atom_item_partial
, "The Diag Atom is dissected partially (0x%.2x)", etype
);
1790 } case 120:{ /* DIAG_DGOTYP_XMLPROP */
1791 add_item_value_string(tvb
, pinfo
, atom_item
, atom_item_tree
, hf_sapdiag_item_value
, offset
, atom_item_length
, "XMLProp", 1);
1792 proto_item_append_text(atom
, ", XMLProp=%s", tvb_get_string_enc(pinfo
->pool
, tvb
, offset
, atom_item_length
, ENC_ASCII
));
1795 } case 121: /* DIAG_DGOTYP_EFIELD_1 */
1796 case 122: /* DIAG_DGOTYP_OFIELD_1 */
1797 case 123:{ /* DIAG_DGOTYP_KEYWORD_1_1 */
1798 /* Found in NW 7.00 and 7.01 versions */
1799 add_item_value_uint8(tvb
, atom_item
, atom_item_tree
, hf_sapdiag_item_value
, offset
, "Flag1");
1801 atom_item_length
-=1;
1802 add_item_value_uint8(tvb
, atom_item
, atom_item_tree
, hf_sapdiag_item_value
, offset
, "DLen");
1804 atom_item_length
-=1;
1805 add_item_value_uint8(tvb
, atom_item
, atom_item_tree
, hf_sapdiag_item_value
, offset
, "MLen");
1807 atom_item_length
-=1;
1808 add_item_value_uint16(tvb
, atom_item
, atom_item_tree
, hf_sapdiag_item_value
, offset
, "MaxNrChars");
1810 atom_item_length
-=2;
1811 add_item_value_string(tvb
, pinfo
, atom_item
, atom_item_tree
, hf_sapdiag_item_value
, offset
, atom_item_length
, "Text", 0);
1815 } case 127:{ /* DIAG_DGOTYP_FRAME_1 */
1816 add_item_value_uint16(tvb
, atom_item
, atom_item_tree
, hf_sapdiag_item_value
, offset
, "DRows");
1818 atom_item_length
-=2;
1819 add_item_value_uint16(tvb
, atom_item
, atom_item_tree
, hf_sapdiag_item_value
, offset
, "DCols");
1821 atom_item_length
-=2;
1822 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
;
1825 } case 129:{ /* DIAG_DGOTYP_RADIOBUTTON_3 */
1826 add_item_value_uint8(tvb
, atom_item
, atom_item_tree
, hf_sapdiag_item_value
, offset
, "Button");
1828 atom_item_length
-=1;
1829 add_item_value_uint16(tvb
, atom_item
, atom_item_tree
, hf_sapdiag_item_value
, offset
, "Visible Label Length");
1831 atom_item_length
-=2;
1832 add_item_value_uint16(tvb
, atom_item
, atom_item_tree
, hf_sapdiag_item_value
, offset
, "EventID Off");
1834 atom_item_length
-=2;
1835 add_item_value_uint8(tvb
, atom_item
, atom_item_tree
, hf_sapdiag_item_value
, offset
, "EventID Len");
1837 atom_item_length
-=1;
1838 add_item_value_uint16(tvb
, atom_item
, atom_item_tree
, hf_sapdiag_item_value
, offset
, "Text Off");
1840 atom_item_length
-=2;
1841 add_item_value_uint16(tvb
, atom_item
, atom_item_tree
, hf_sapdiag_item_value
, offset
, "Text Length");
1843 atom_item_length
-=2;
1844 add_item_value_string(tvb
, pinfo
, atom_item
, atom_item_tree
, hf_sapdiag_item_value
, offset
, atom_item_length
, "Text", 1);
1847 } case 130: /* DIAG_DGOTYP_EFIELD_2 */
1848 case 131: /* DIAG_DGOTYP_OFIELD_2 */
1849 case 132:{ /* DIAG_DGOTYP_KEYWORD_2 */
1850 add_item_value_uint16(tvb
, atom_item
, atom_item_tree
, hf_sapdiag_item_value
, offset
, "Flag1");
1852 atom_item_length
-=2;
1853 add_item_value_uint8(tvb
, atom_item
, atom_item_tree
, hf_sapdiag_item_value
, offset
, "DLen");
1855 atom_item_length
-=1;
1856 add_item_value_uint8(tvb
, atom_item
, atom_item_tree
, hf_sapdiag_item_value
, offset
, "MLen");
1858 atom_item_length
-=1;
1859 add_item_value_uint16(tvb
, atom_item
, atom_item_tree
, hf_sapdiag_item_value
, offset
, "MaxNrChars");
1861 atom_item_length
-=2;
1862 add_item_value_string(tvb
, pinfo
, atom_item
, atom_item_tree
, hf_sapdiag_item_value
, offset
, atom_item_length
, "Text", 0);
1866 /* If the preference is set, report the item as unknown in the expert info */
1867 if (global_sapdiag_highlight_items
){
1868 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
);
1877 dissect_sapdiag_menu(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, uint32_t offset
, uint32_t length
){
1879 uint32_t final
= offset
+ length
;
1881 proto_item
*menu
= NULL
;
1882 proto_tree
*menu_tree
= NULL
;
1884 while (offset
< final
){
1886 /* Add the menu entry subtree */
1887 menu
= proto_tree_add_item(tree
, hf_sapdiag_item_menu_entry
, tvb
, offset
, tvb_get_ntohs(tvb
, offset
), ENC_NA
);
1888 menu_tree
= proto_item_add_subtree(menu
, ett_sapdiag
);
1890 add_item_value_uint16(tvb
, menu
, menu_tree
, hf_sapdiag_item_value
, offset
, "Length");
1893 add_item_value_uint8(tvb
, menu
, menu_tree
, hf_sapdiag_item_value
, offset
, "Position 1");
1895 add_item_value_uint8(tvb
, menu
, menu_tree
, hf_sapdiag_item_value
, offset
, "Position 2");
1897 add_item_value_uint8(tvb
, menu
, menu_tree
, hf_sapdiag_item_value
, offset
, "Position 3");
1899 add_item_value_uint8(tvb
, menu
, menu_tree
, hf_sapdiag_item_value
, offset
, "Position 4");
1902 add_item_value_uint8(tvb
, menu
, menu_tree
, hf_sapdiag_item_value
, offset
, "Flag"); /* XXX: Add flag values */
1904 add_item_value_uint8(tvb
, menu
, menu_tree
, hf_sapdiag_item_value
, offset
, "Virtual Key");
1907 add_item_value_uint8(tvb
, menu
, menu_tree
, hf_sapdiag_item_value
, offset
, "Return Code 1");
1909 add_item_value_uint8(tvb
, menu
, menu_tree
, hf_sapdiag_item_value
, offset
, "Return Code 2");
1911 add_item_value_uint8(tvb
, menu
, menu_tree
, hf_sapdiag_item_value
, offset
, "Return Code 3");
1913 add_item_value_uint8(tvb
, menu
, menu_tree
, hf_sapdiag_item_value
, offset
, "Return Code 4");
1915 add_item_value_uint8(tvb
, menu
, menu_tree
, hf_sapdiag_item_value
, offset
, "Return Code 5");
1917 add_item_value_uint8(tvb
, menu
, menu_tree
, hf_sapdiag_item_value
, offset
, "Return Code 6");
1920 add_item_value_uint8(tvb
, menu
, menu_tree
, hf_sapdiag_item_value
, offset
, "Function Code 1");
1922 add_item_value_uint8(tvb
, menu
, menu_tree
, hf_sapdiag_item_value
, offset
, "Function Code 2");
1924 add_item_value_uint8(tvb
, menu
, menu_tree
, hf_sapdiag_item_value
, offset
, "Function Code 3");
1926 add_item_value_uint8(tvb
, menu
, menu_tree
, hf_sapdiag_item_value
, offset
, "Function Code 4");
1928 add_item_value_uint8(tvb
, menu
, menu_tree
, hf_sapdiag_item_value
, offset
, "Function Code 5");
1930 add_item_value_uint8(tvb
, menu
, menu_tree
, hf_sapdiag_item_value
, offset
, "Function Code 6");
1933 offset
+=add_item_value_stringz(tvb
, pinfo
, menu
, menu_tree
, hf_sapdiag_item_value
, offset
, "Text", 1);
1934 offset
+=add_item_value_stringz(tvb
, pinfo
, menu
, menu_tree
, hf_sapdiag_item_value
, offset
, "Accelerator", 1);
1935 add_item_value_stringz(tvb
, pinfo
, menu
, menu_tree
, hf_sapdiag_item_value
, offset
, "Info", 1);
1941 dissect_sapdiag_uievent(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, uint32_t offset
, uint32_t length
){
1943 proto_item
*event_valid_item
= NULL
;
1944 proto_tree
*event_valid_tree
= NULL
;
1945 uint8_t event_valid
= 0;
1946 uint16_t container_nrs
= 0, i
= 0;
1948 event_valid
= tvb_get_uint8(tvb
, offset
);
1949 event_valid_item
= proto_tree_add_item(tree
, hf_sapdiag_item_ui_event_valid
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1950 event_valid_tree
= proto_item_add_subtree(event_valid_item
, ett_sapdiag
);
1952 proto_tree_add_item(event_valid_tree
, hf_sapdiag_item_ui_event_valid_MENU_POS
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1953 proto_tree_add_item(event_valid_tree
, hf_sapdiag_item_ui_event_valid_CONTROL_POS
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1954 proto_tree_add_item(event_valid_tree
, hf_sapdiag_item_ui_event_valid_NAVIGATION_DATA
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1955 proto_tree_add_item(event_valid_tree
, hf_sapdiag_item_ui_event_valid_FUNCTIONKEY_DATA
, tvb
, offset
, 1, ENC_BIG_ENDIAN
); offset
+=1;length
-=1;
1957 proto_tree_add_item(tree
, hf_sapdiag_item_ui_event_event_type
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
1958 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;
1960 proto_tree_add_item(tree
, hf_sapdiag_item_ui_event_control_type
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
1961 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;
1963 /* The semantic of the event data changes depending of the event valid flag and are ignored if the
1964 SAPDIAG_UI_EVENT_VALID_FLAG_NAVIGATION_DATA flag or the SAPDIAG_UI_EVENT_VALID_FLAG_FUNCTIONKEY_DATA
1965 flags are not set. We dissect them always. */
1966 if (event_valid
& SAPDIAG_UI_EVENT_VALID_FLAG_NAVIGATION_DATA
){
1967 proto_tree_add_item(tree
, hf_sapdiag_item_ui_event_navigation_data
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1970 } else { /* SAPDIAG_UI_EVENT_VALID_FLAG_FUNCTIONKEY_DATA */
1971 proto_tree_add_item(tree
, hf_sapdiag_item_ui_event_data
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1974 proto_tree_add_item(tree
, hf_sapdiag_item_ui_event_data
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1977 proto_tree_add_item(tree
, hf_sapdiag_item_ui_event_data
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1980 proto_tree_add_item(tree
, hf_sapdiag_item_ui_event_data
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
1985 /* These items are ignored if the flag SAPDIAG_UI_EVENT_VALID_FLAG_CONTROL_POS is not set. We dissect them always. */
1986 proto_tree_add_item(tree
, hf_sapdiag_item_ui_event_control_row
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
1989 proto_tree_add_item(tree
, hf_sapdiag_item_ui_event_control_col
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
1993 i
= container_nrs
= tvb_get_ntohs(tvb
, offset
);
1994 proto_tree_add_item(tree
, hf_sapdiag_item_ui_event_container_nrs
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
1998 while (i
>0 && length
>0){
1999 proto_tree_add_item(tree
, hf_sapdiag_item_ui_event_container
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2006 expert_add_info_format(pinfo
, tree
, &ei_sapdiag_dynt_focus_more_cont_ids
, "Number of Container IDs (%d) is invalid", container_nrs
);
2011 dissect_sapdiag_item(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_item
*item
, proto_tree
*item_value_tree
, proto_tree
*parent_tree
, uint32_t offset
, uint8_t item_type
, uint8_t item_id
, uint8_t item_sid
, uint32_t item_length
){
2014 if (item_type
==0x01){
2015 uint8_t event_array
= 0;
2016 check_length(pinfo
, item_value_tree
, 16, item_length
, "SES");
2018 event_array
= tvb_get_uint8(tvb
, offset
);
2019 add_item_value_uint8(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Event Array");
2021 add_item_value_uint8(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Event ID 1");
2023 add_item_value_uint8(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Event ID 2");
2025 add_item_value_uint8(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Event ID 3");
2027 add_item_value_uint8(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Event ID 4");
2029 add_item_value_uint8(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Event ID 5");
2031 add_item_value_uint8(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Screen Flag"); /* XXX: Add flag values */
2033 add_item_value_uint8(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Modal No");
2035 add_item_value_uint8(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "X Pos");
2037 add_item_value_uint8(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Y Pos");
2039 add_item_value_uint8(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "IMode");
2041 add_item_value_uint8(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Flag 1"); /* XXX: Add flag values */
2043 add_item_value_uint8(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Dim Row");
2045 add_item_value_uint8(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Dim Col");
2047 /* TODO: Incomplete dissection of this item */
2048 /* If the preference is set, report the item as partially dissected in the expert info */
2049 if (global_sapdiag_highlight_items
){
2050 expert_add_info_format(pinfo
, item
, &ei_sapdiag_item_partial
, "The SES item is dissected partially (event array = 0x%.2x)", event_array
);
2053 } else if (item_type
==0x0a) { /* SFE */
2054 check_length(pinfo
, item_value_tree
, 3, item_length
, "SFE");
2055 add_item_value_uint8(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Control format");
2057 add_item_value_uint8(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Control color");
2059 add_item_value_uint8(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Control extended");
2061 } else if (item_type
==0x0b) { /* SBA */
2062 check_length(pinfo
, item_value_tree
, 2, item_length
, "SBA");
2063 add_item_value_uint8(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Control y-position");
2065 add_item_value_uint8(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Control x-position");
2067 } else if (item_type
==0x10 && item_id
==0x04 && item_sid
==0x26){ /* Dialog Step Number */
2068 check_length(pinfo
, item_value_tree
, 4, item_length
, "Dialog Step Number");
2069 add_item_value_uint32(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Dialog Step Number");
2071 } else if (item_type
==0x10 && item_id
==0x04 && item_sid
==0x02){ /* Connect */
2072 check_length(pinfo
, item_value_tree
, 12, item_length
, "Connect");
2073 add_item_value_uint32(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Protocol Version");
2075 add_item_value_uint32(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Code Page");
2077 add_item_value_uint32(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "WS Type");
2079 } else if (item_type
==0x10 && item_id
==0x04 && item_sid
==0x04){ /* Font Metric */
2080 check_length(pinfo
, item_value_tree
, 8, item_length
, "Font Metric");
2081 add_item_value_uint16(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Variable font size (y)");
2083 add_item_value_uint16(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Variable font size (x)");
2085 add_item_value_uint16(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Fixed font size (y)");
2087 add_item_value_uint16(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Fixed font size (x)");
2089 } else if ((item_type
==0x10 && item_id
==0x04 && item_sid
==0x0b) || /* Support Data */
2090 (item_type
==0x10 && item_id
==0x06 && item_sid
==0x11)){
2091 check_length(pinfo
, item_value_tree
, 32, item_length
, "Support Data");
2092 dissect_sapdiag_support_bits(tvb
, item_value_tree
, offset
);
2094 } else if (item_type
==0x10 && item_id
==0x04 && item_sid
==0x0d){ /* Window Size */
2095 check_length(pinfo
, item_value_tree
, 16, item_length
, "Window Size");
2096 add_item_value_uint32(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Window Height");
2098 add_item_value_uint32(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Window Width");
2100 add_item_value_uint32(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Area Height");
2102 add_item_value_uint32(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Area Width");
2104 } else if (item_type
==0x10 && item_id
==0x04 && item_sid
==0x0f){ /* Turn Time 2 (Response time) */
2105 check_length(pinfo
, item_value_tree
, 4, item_length
, "Response time");
2106 add_item_value_uint32(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Response time");
2108 } else if (item_type
==0x10 && item_id
==0x04 && item_sid
==0x16){ /* Scrollbar Width */
2109 check_length(pinfo
, item_value_tree
, 2, item_length
, "Scrollbar Width");
2110 add_item_value_uint16(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Scrolllbar Width");
2112 } else if (item_type
==0x10 && item_id
==0x04 && item_sid
==0x17){ /* Scrollbar Height */
2113 check_length(pinfo
, item_value_tree
, 2, item_length
, "Scrollbar Height");
2114 add_item_value_uint16(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Scrollbar Height");
2116 } else if (item_type
==0x10 && item_id
==0x04 && item_sid
==0x19){ /* Gui State */
2117 check_length(pinfo
, item_value_tree
, 2, item_length
, "Gui State");
2118 add_item_value_uint8(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Flag 1");
2120 add_item_value_uint8(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Flag 2");
2122 } else if (item_type
==0x10 && item_id
==0x04 && item_sid
==0x1d){ /* GUI patch level */
2124 /* GUI Patch level could be a string in old versions, or a single byte integer in newer ones */
2125 if (item_length
== 2){
2126 add_item_value_string(tvb
, pinfo
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, 2, "GUI patch level", 1);
2128 check_length(pinfo
, item_value_tree
, 1, item_length
, "GUI patch level");
2129 add_item_value_uint8(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "GUI patch level");
2132 } else if (item_type
==0x10 && item_id
==0x04 && item_sid
==0x24){ /* Display Size */
2133 check_length(pinfo
, item_value_tree
, 8, item_length
, "Display Size");
2134 add_item_value_uint32(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Height");
2136 add_item_value_uint32(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Height");
2138 } else if (item_type
==0x10 && item_id
==0x04 && item_sid
==0x25){ /* GUI Type */
2139 check_length(pinfo
, item_value_tree
, 2, item_length
, "GUI Type");
2140 add_item_value_uint16(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "GUI Type");
2142 } else if (item_type
==0x10 && item_id
==0x06 && item_sid
==0x01){ /* Mode Number */
2143 check_length(pinfo
, item_value_tree
, 2, item_length
, "Mode Number");
2144 add_item_value_uint16(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Mode Number");
2146 } else if (item_type
==0x10 && item_id
==0x06 && item_sid
==0x06){ /* Diag version */
2147 check_length(pinfo
, item_value_tree
, 2, item_length
, "Diag version");
2148 add_item_value_uint16(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Diag version");
2150 } else if (item_type
==0x10 && item_id
==0x06 && item_sid
==0x0a){ /* Internal Mode Number */
2151 check_length(pinfo
, item_value_tree
, 2, item_length
, "Internal Mode Number");
2152 add_item_value_uint16(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Internal Mode Number");
2154 } else if (item_type
==0x10 && item_id
==0x06 && item_sid
==0x13){ /* GUI_FKEY */
2155 uint32_t length
= offset
+item_length
;
2156 offset
++; /* TODO: Skip one byte here */
2157 offset
+=add_item_value_stringz(tvb
, pinfo
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Virtual key number", 1);
2158 while ((offset
< length
) && tvb_offset_exists(tvb
, offset
)){
2159 offset
+=add_item_value_stringz(tvb
, pinfo
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "String number", 1);
2161 /* If the preference is set, report the item as partially dissected in the expert info */
2162 if (global_sapdiag_highlight_items
){
2163 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
);
2166 } else if (item_type
==0x10 && item_id
==0x06 && item_sid
==0x14){ /* GUI_FKEYT */
2167 offset
++; /* TODO: Skip one byte here */
2168 add_item_value_uint8(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Virtual key number");
2169 offset
+=2; /* TODO: Skip one byte here */
2170 add_item_value_stringz(tvb
, pinfo
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Virtual key text", 1);
2171 /* If the preference is set, report the item as partially dissected in the expert info */
2172 if (global_sapdiag_highlight_items
){
2173 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
);
2176 } else if (item_type
==0x10 && item_id
==0x06 && item_sid
==0x16){ /* RFC Diag Block Size */
2177 check_length(pinfo
, item_value_tree
, 4, item_length
, "RFC Diag Block Size");
2178 add_item_value_uint32(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "RFC Diag Block Size");
2180 } else if (item_type
==0x10 && item_id
==0x06 && item_sid
==0x18){ /* Info flags */
2181 check_length(pinfo
, item_value_tree
, 2, item_length
, "Info flags");
2182 add_item_value_uint16(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Info flags");
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 Diag Item is dissected partially (0x%.2x, 0x%.2x, 0x%.2x)", item_type
, item_id
, item_sid
);
2188 } else if (item_type
==0x10 && item_id
==0x06 && item_sid
==0x19){ /* User ID */
2189 check_length(pinfo
, item_value_tree
, 2, item_length
, "User ID");
2190 add_item_value_uint16(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "User ID");
2192 } else if (item_type
==0x10 && item_id
==0x06 && item_sid
==0x1f){ /* IMode uuids 2 */
2193 uint8_t uuids
= tvb_get_uint8(tvb
, offset
);
2194 if (!check_length(pinfo
, item_value_tree
, 1 + 17 * uuids
, item_length
, "IMode uuids") ) return;
2195 add_item_value_uint8(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Number of uuids");
2197 while ((uuids
> 0) && (tvb_offset_exists(tvb
, offset
+ 16 + 1))){
2198 add_item_value_hexstring(tvb
, pinfo
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, 16, "UUID");
2200 add_item_value_uint8(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Active context");
2205 } else if (item_type
==0x10 && item_id
==0x06 && item_sid
==0x22){ /* Auto logout time */
2206 check_length(pinfo
, item_value_tree
, 4, item_length
, "Auto logout time");
2207 add_item_value_uint32(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Auto logout time");
2209 } else if (item_type
==0x10 && item_id
==0x06 && item_sid
==0x23){ /* Codepage Diag GUI */
2210 add_item_value_uint32(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Codepage number (numeric representation)");
2212 add_item_value_uint8(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Minimum number of bytes per character");
2214 offset
+=add_item_value_stringz(tvb
, pinfo
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Codepage number (string representation)", 1);
2215 add_item_value_stringz(tvb
, pinfo
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Codepage description", 1);
2217 } else if (item_type
==0x10 && item_id
==0x06 && item_sid
==0x27){ /* Codepage App Server */
2218 add_item_value_uint32(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Codepage number (numeric representation)");
2220 add_item_value_uint8(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Minimum number of bytes per character");
2222 offset
+=add_item_value_stringz(tvb
, pinfo
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Codepage number (string representation)", 1);
2223 add_item_value_stringz(tvb
, pinfo
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Codepage description", 1);
2225 } else if (item_type
==0x10 && item_id
==0x06 && item_sid
==0x29){ /* Kernel Version */
2226 offset
+=add_item_value_stringz(tvb
, pinfo
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Database version", 1);
2227 offset
+=add_item_value_stringz(tvb
, pinfo
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Kernel version", 1);
2228 add_item_value_stringz(tvb
, pinfo
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Kernel patch level", 1);
2230 } else if (item_type
==0x10 && item_id
==0x09 && item_sid
==0x0b){ /* Dynt Focus */
2231 uint32_t length
= offset
+ item_length
;
2232 add_item_value_uint8(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Focus Num of Area ID");
2234 add_item_value_uint16(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Focus Row");
2236 add_item_value_uint16(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Focus Col");
2238 add_item_value_uint16(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Focus Row Offset");
2240 add_item_value_uint16(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Focus Col Offset");
2242 /* Container IDs up to 30 */
2243 if (length
-offset
> 30){
2244 expert_add_info_format(pinfo
, item
, &ei_sapdiag_dynt_focus_more_cont_ids
, "The Dynt Focus contains more than 30 Container IDs (%d)", offset
);
2246 /* Dissect all the remaining container IDs */
2247 while((offset
< length
) && tvb_offset_exists(tvb
, offset
)){
2248 add_item_value_uint8(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Focus Container ID");
2252 } else if (item_type
==0x10 && item_id
==0x0a && item_sid
==0x01){ /* Container Reset */
2253 check_length(pinfo
, item_value_tree
, 9, item_length
, "Container Reset");
2254 add_item_value_uint8(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Container Id");
2256 add_item_value_uint16(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Container Row");
2258 add_item_value_uint16(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Container Col");
2260 add_item_value_uint16(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Container Width");
2262 add_item_value_uint16(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Container Height");
2264 } else if (item_type
==0x10 && item_id
==0x0a && item_sid
==0x04){ /* Container Loop */
2265 check_length(pinfo
, item_value_tree
, 9, item_length
, "Container Loop");
2266 add_item_value_uint8(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Container Id");
2268 add_item_value_uint16(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Container Row");
2270 add_item_value_uint16(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Container Col");
2272 add_item_value_uint16(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Container Width");
2274 add_item_value_uint16(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Container Height");
2276 } else if (item_type
==0x10 && item_id
==0x0a && item_sid
==0x05){ /* Container Table */
2277 check_length(pinfo
, item_value_tree
, 9, item_length
, "Container Table");
2278 add_item_value_uint8(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Container Id");
2280 add_item_value_uint16(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Container Row");
2282 add_item_value_uint16(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Container Col");
2284 add_item_value_uint16(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Container Width");
2286 add_item_value_uint16(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Container Height");
2288 } else if (item_type
==0x10 && item_id
==0x0a && item_sid
==0x06){ /* Container Name */
2289 offset
+=add_item_value_stringz(tvb
, pinfo
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Subscreen name", 1);
2290 offset
+=add_item_value_stringz(tvb
, pinfo
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Container name", 1);
2291 add_item_value_stringz(tvb
, pinfo
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Subdynpro name", 1);
2293 } else if (item_type
==0x10 && item_id
==0x0a && item_sid
==0x08){ /* Container TabStrip */
2294 check_length(pinfo
, item_value_tree
, 9, item_length
, "Container TabStrip");
2295 add_item_value_uint8(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Container Id");
2297 add_item_value_uint16(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Container Row");
2299 add_item_value_uint16(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Container Col");
2301 add_item_value_uint16(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Container Width");
2303 add_item_value_uint16(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Container Height");
2305 } else if (item_type
==0x10 && item_id
==0x0a && item_sid
==0x09){ /* Container TabStrip Page */
2306 check_length(pinfo
, item_value_tree
, 9, item_length
, "Container TabStrip Page");
2307 add_item_value_uint8(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Container Id");
2309 add_item_value_uint16(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Container Row");
2311 add_item_value_uint16(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Container Col");
2313 add_item_value_uint16(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Container Width");
2315 add_item_value_uint16(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Container Height");
2317 } else if (item_type
==0x10 && item_id
==0x0a && item_sid
==0x0a){ /* Container Control */
2318 check_length(pinfo
, item_value_tree
, 9, item_length
, "Container Control");
2319 add_item_value_uint8(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Container Id");
2321 add_item_value_uint16(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Container Row");
2323 add_item_value_uint16(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Container Col");
2325 add_item_value_uint16(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Container Width");
2327 add_item_value_uint16(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Container Height");
2329 } else if (item_type
==0x10 && item_id
==0x0c && item_sid
==0x03){ /* Message type */
2330 offset
+=add_item_value_stringz(tvb
, pinfo
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "T", 1);
2331 offset
+=add_item_value_stringz(tvb
, pinfo
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "T", 1);
2332 offset
+=add_item_value_stringz(tvb
, pinfo
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "T", 1);
2333 add_item_value_stringz(tvb
, pinfo
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "T", 1);
2335 } else if (item_type
==0x10 && item_id
==0x0c && item_sid
==0x02){ /* Scroll Infos */
2336 check_length(pinfo
, item_value_tree
, 24, item_length
, "Scroll Infos");
2337 add_item_value_uint32(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Total Height");
2339 add_item_value_uint32(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Total Width");
2341 add_item_value_uint32(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Data Height");
2343 add_item_value_uint32(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Data Width");
2345 add_item_value_uint32(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Height Offset");
2347 add_item_value_uint32(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Width Offset");
2349 } else if (item_type
==0x10 && item_id
==0x0c && item_sid
==0x06){ /* Scroll Infos 2 */
2350 check_length(pinfo
, item_value_tree
, 33, item_length
, "Scroll Infos 2");
2351 add_item_value_uint32(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Total Height");
2353 add_item_value_uint32(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Total Width");
2355 add_item_value_uint32(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Data Height");
2357 add_item_value_uint32(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Data Width");
2359 add_item_value_uint32(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Height Offset");
2361 add_item_value_uint32(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Width Offset");
2363 add_item_value_uint32(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Visible Height");
2365 add_item_value_uint32(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Visible Width");
2367 add_item_value_uint8(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Scroll Flag");
2369 } else if (item_type
==0x10 && item_id
==0x0c && item_sid
==0x07){ /* Area Size */
2370 check_length(pinfo
, item_value_tree
, 16, item_length
, "Area Size");
2371 add_item_value_uint32(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Window Height");
2373 add_item_value_uint32(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Window Width");
2375 add_item_value_uint32(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Area Height");
2377 add_item_value_uint32(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Area Width");
2379 } else if (item_type
==0x10 && item_id
==0x0c && item_sid
==0x08){ /* Pixel Size */
2380 check_length(pinfo
, item_value_tree
, 16, item_length
, "Pixel Size");
2381 add_item_value_uint32(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Window Height");
2383 add_item_value_uint32(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Window Width");
2385 add_item_value_uint32(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Area Height");
2387 add_item_value_uint32(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Area Width");
2389 } else if (item_type
==0x10 && item_id
==0x0c && item_sid
==0x0c){ /* Container Loop */
2390 check_length(pinfo
, item_value_tree
, 2, item_length
, "Container Loop");
2391 add_item_value_uint16(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Lines Per Loop Row");
2393 } else if (item_type
==0x10 && item_id
==0x0c && item_sid
==0x0d){ /* List focus */
2394 check_length(pinfo
, item_value_tree
, 5, item_length
, "List focus");
2395 add_item_value_uint8(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "List focus version");
2397 add_item_value_uint16(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "List focus Row");
2399 add_item_value_uint16(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "List focus Column");
2401 } else if (item_type
==0x10 && item_id
==0x0c && item_sid
==0x0e){ /* Main Area Pixel Size */
2402 check_length(pinfo
, item_value_tree
, 16, item_length
, "Main Area Pixel Size");
2403 add_item_value_uint32(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Window Height");
2405 add_item_value_uint32(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Window Width");
2408 } else if ((item_type
==0x09) || /* CHL */
2409 (item_type
==0x10 && item_id
==0x05 && item_sid
==0x01)){ /* Dynn Chln */
2410 add_item_value_uint16(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "scrflg");
2412 add_item_value_uint16(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "chlflag");
2414 add_item_value_uint8(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "current row");
2416 add_item_value_uint8(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "current column");
2418 add_item_value_uint8(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "V Slider Size");
2420 add_item_value_uint8(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "dimlistrow");
2422 add_item_value_uint8(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "dimlistcol");
2424 add_item_value_uint8(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "H Slider Size");
2426 add_item_value_uint8(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "dimrow");
2428 add_item_value_uint8(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "dimcol");
2430 add_item_value_uint16(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "maxlistrow");
2432 add_item_value_uint16(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "listrowoffset");
2434 add_item_value_uint8(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "maxlistcol");
2436 add_item_value_uint8(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "listcoloffset");
2438 /* If the preference is set, report the item as partially dissected in the expert info */
2439 if (global_sapdiag_highlight_items
){
2440 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
);
2443 /* Control Properties */
2444 } else if (item_type
==0x10 && item_id
==0x0e && item_sid
==0x01){ /* Control Properties */
2445 uint32_t length
= offset
+ item_length
;
2447 while((offset
< length
) && (tvb_offset_exists(tvb
, offset
+ 3))){ /* Check against at least three bytes (2 for ID, 1 for null-terminated value) */
2448 proto_tree_add_item(item_value_tree
, hf_sapdiag_item_control_properties_id
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2449 proto_item_append_text(item
, ", Control Property ID=%d", tvb_get_ntohs(tvb
, offset
));
2451 offset
+=add_item_value_stringz(tvb
, pinfo
, item
, item_value_tree
, hf_sapdiag_item_control_properties_value
, offset
, "Control Property Value", 1);
2454 /* UI event source */
2455 } else if (item_type
==0x10 && item_id
==0x0f && item_sid
==0x01){ /* UI Event Source */
2456 dissect_sapdiag_uievent(tvb
, pinfo
, item_value_tree
, offset
, item_length
);
2458 /* GUI Packet state */
2459 } else if (item_type
==0x10 && item_id
==0x14 && item_sid
==0x01){ /* GUI Packet state */
2460 add_item_value_uint8(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Flags"); /* TODO: Add flag values */
2462 add_item_value_uint32(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Bytes Total");
2464 add_item_value_uint32(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Bytes Send");
2466 add_item_value_uint32(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Bytes Received");
2469 } else if ((item_type
==0x12 && item_id
==0x09 && item_sid
==0x02) || /* Dynt Atom */
2470 (item_type
==0x10 && item_id
==0x09 && item_sid
==0x02)) {
2471 dissect_sapdiag_dyntatom(tvb
, pinfo
, item_value_tree
, offset
, item_length
);
2474 } else if ((item_type
==0x10 && item_id
==0x04 && item_sid
==0x09) || /* Gui Version */
2475 (item_type
==0x10 && item_id
==0x04 && item_sid
==0x1a) || /* Decimal character */
2476 (item_type
==0x10 && item_id
==0x04 && item_sid
==0x1b) || /* Language */
2477 (item_type
==0x10 && item_id
==0x04 && item_sid
==0x1c) || /* Username */
2478 (item_type
==0x10 && item_id
==0x04 && item_sid
==0x1f) || /* Gui OS Version */
2479 (item_type
==0x10 && item_id
==0x04 && item_sid
==0x20) || /* Browser Version */
2480 (item_type
==0x10 && item_id
==0x04 && item_sid
==0x21) || /* Office Version */
2481 (item_type
==0x10 && item_id
==0x06 && item_sid
==0x02) || /* Database name */
2482 (item_type
==0x10 && item_id
==0x06 && item_sid
==0x03) || /* CPU name */
2483 (item_type
==0x10 && item_id
==0x06 && item_sid
==0x07) || /* Transaction code */
2484 (item_type
==0x10 && item_id
==0x06 && item_sid
==0x0b) || /* Message */
2485 (item_type
==0x10 && item_id
==0x06 && item_sid
==0x0c) || /* Client */
2486 (item_type
==0x10 && item_id
==0x06 && item_sid
==0x0d) || /* Dynpro name */
2487 (item_type
==0x10 && item_id
==0x06 && item_sid
==0x0e) || /* Dynpro number */
2488 (item_type
==0x10 && item_id
==0x06 && item_sid
==0x0f) || /* Cuaname */
2489 (item_type
==0x10 && item_id
==0x06 && item_sid
==0x10) || /* Cuastatus */
2490 (item_type
==0x10 && item_id
==0x06 && item_sid
==0x21) || /* Context ID */
2491 (item_type
==0x10 && item_id
==0x06 && item_sid
==0x24) || /* Codepage application server */
2492 (item_type
==0x10 && item_id
==0x06 && item_sid
==0x25) || /* GUI Theme */
2493 (item_type
==0x10 && item_id
==0x09 && item_sid
==0x12) || /* Control Focus */
2494 (item_type
==0x10 && item_id
==0x0c && item_sid
==0x04) || /* OK Code */
2495 (item_type
==0x10 && item_id
==0x0c && item_sid
==0x09) || /* Session title */
2496 (item_type
==0x10 && item_id
==0x0c && item_sid
==0x0a) || /* Session icon */
2497 (item_type
==0x10 && item_id
==0x0c && item_sid
==0x0b)) /* List Cell text */
2499 add_item_value_string(tvb
, pinfo
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, item_length
, "Value", 1);
2501 /* RFC Embedded calls */
2502 } else if (item_type
==0x10 && item_id
==0x08){ /* RFC_TR */
2503 dissect_sapdiag_rfc_call(tvb
, pinfo
, parent_tree
, offset
, item_length
);
2505 /* String items (long text) */
2506 } else if (item_type
==0x11){ /* Data Stream */
2507 add_item_value_string(tvb
, pinfo
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, item_length
, "Value", 0);
2509 /* Tab Strip Controls */
2510 } else if ((item_type
==0x12 && item_id
==0x09 && item_sid
==0x10)) {
2511 dissect_sapdiag_dyntatom(tvb
, pinfo
, item_value_tree
, offset
, item_length
);
2513 /* Menu Entries items */
2514 } else if ((item_type
==0x12 && item_id
==0x0b)) {
2515 dissect_sapdiag_menu(tvb
, pinfo
, item_value_tree
, offset
, item_length
);
2517 } else if (item_type
==0x13) { /* SLC */
2518 check_length(pinfo
, item_value_tree
, 2, item_length
, "SLC");
2519 add_item_value_uint16(tvb
, item
, item_value_tree
, hf_sapdiag_item_value
, offset
, "Field length in characters");
2521 /* Another unknown item */
2523 /* If the preference is set, report the item as unknown in the expert info */
2524 if (global_sapdiag_highlight_items
){
2525 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
);
2531 get_appl_string(uint8_t item_id
, uint8_t item_sid
){
2532 const char *item_name_string
= NULL
;
2535 case 0x01:{ /* SCRIPT */
2536 item_name_string
= val_to_str_const(item_sid
, sapdiag_item_appl_script_vals
, "Unknown");
2538 } case 0x02:{ /* GRAPH */
2539 item_name_string
= val_to_str_const(item_sid
, sapdiag_item_appl_graph_vals
, "Unknown");
2541 } case 0x03:{ /* IXOS */
2542 item_name_string
= val_to_str_const(item_sid
, sapdiag_item_appl_ixos_vals
, "Unknown");
2544 } case 0x04:{ /* ST_USER */
2545 item_name_string
= val_to_str_const(item_sid
, sapdiag_item_appl_st_user_vals
, "Unknown");
2547 } case 0x05:{ /* DYNN */
2548 item_name_string
= val_to_str_const(item_sid
, sapdiag_item_appl_dynn_vals
, "Unknown");
2550 } case 0x06:{ /* ST_R3INFO */
2551 item_name_string
= val_to_str_const(item_sid
, sapdiag_item_appl_st_r3info_vals
, "Unknown");
2553 } case 0x07:{ /* POPU */
2554 item_name_string
= val_to_str_const(item_sid
, sapdiag_item_appl_popu_vals
, "Unknown");
2556 } case 0x08:{ /* RFC_TR */
2557 item_name_string
= val_to_str_const(item_sid
, sapdiag_item_appl_rfc_tr_vals
, "Unknown");
2559 } case 0x09:{ /* DYNT */
2560 item_name_string
= val_to_str_const(item_sid
, sapdiag_item_appl_dynt_vals
, "Unknown");
2562 } case 0x0a:{ /* CONTAINER */
2563 item_name_string
= val_to_str_const(item_sid
, sapdiag_item_appl_container_vals
, "Unknown");
2565 } case 0x0b:{ /* MNUENTRY */
2566 item_name_string
= val_to_str_const(item_sid
, sapdiag_item_appl_mnuentry_vals
, "Unknown");
2568 } case 0x0c:{ /* VARINFO */
2569 item_name_string
= val_to_str_const(item_sid
, sapdiag_item_appl_varinfo_vals
, "Unknown");
2571 } case 0x0e:{ /* CONTROL */
2572 item_name_string
= val_to_str_const(item_sid
, sapdiag_item_appl_control_vals
, "Unknown");
2574 } case 0x0f:{ /* UI_EVENT */
2575 item_name_string
= val_to_str_const(item_sid
, sapdiag_item_appl_ui_event_vals
, "Unknown");
2577 } case 0x12:{ /* ACC_LIST */
2578 item_name_string
= val_to_str_const(item_sid
, sapdiag_item_appl_acc_list_vals
, "Unknown");
2580 } case 0x13:{ /* RCUI */
2581 item_name_string
= val_to_str_const(item_sid
, sapdiag_item_appl_rcui_vals
, "Unknown");
2583 } case 0x14:{ /* GUI_PACKET */
2584 item_name_string
= val_to_str_const(item_sid
, sapdiag_item_appl_gui_packet_vals
, "Unknown");
2588 return (item_name_string
);
2592 dissect_sapdiag_payload(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, proto_tree
*parent_tree
, uint32_t offset
){
2593 int item_value_remaining_length
;
2594 uint8_t item_type
, item_long
, item_id
, item_sid
;
2595 uint32_t item_length
, item_value_length
;
2596 const char *item_name_string
= NULL
;
2598 proto_item
*item
= NULL
, *il
= NULL
, *item_value
= NULL
;
2599 proto_tree
*item_tree
, *item_value_tree
;
2601 while (tvb_offset_exists(tvb
, offset
)){
2602 item_id
= item_sid
= item_length
= item_value_length
= item_long
= 0;
2604 /* 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 */
2605 item
= proto_tree_add_item(tree
, hf_sapdiag_item
, tvb
, offset
, 1, ENC_NA
);
2606 item_tree
= proto_item_add_subtree(item
, ett_sapdiag
);
2608 /* Get the item type */
2609 item_type
= tvb_get_uint8(tvb
, offset
);
2610 proto_tree_add_item(item_tree
, hf_sapdiag_item_type
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2613 proto_item_append_text(item
, ": %s", val_to_str_const(item_type
, sapdiag_item_type_vals
, "Unknown"));
2616 case 0x01:{ /* SES */
2617 item_value_length
= 16;
2620 case 0x02:{ /* ICO */
2621 item_value_length
= 20;
2624 case 0x03:{ /* TIT */
2625 item_value_length
= 3;
2628 case 0x07:{ /* DiagMessage (old format) */
2629 item_value_length
= 76;
2632 case 0x08:{ /* OCK */
2633 /* If the preference is set, report the item as partially dissected in the expert info */
2634 if (global_sapdiag_highlight_items
){
2635 expert_add_info_format(pinfo
, item
, &ei_sapdiag_item_unknown_length
, "Diag Type of unknown length (0x%.2x)", item_type
);
2639 case 0x09:{ /* CHL */
2640 item_value_length
= 22;
2643 case 0x0a:{ /* SFE */
2644 item_value_length
= 3;
2647 case 0x0b:{ /* SBA */
2648 item_value_length
= 2;
2651 case 0x0C:{ /* EOM End of message */
2654 case 0x11:{ /* Data Stream */
2658 case 0x13:{ /* SLC */
2659 item_value_length
= 2;
2662 case 0x15:{ /* SBA2 XXX: Find the actual length */
2663 item_value_length
= 36;
2666 case 0x10: /* APPL */
2667 case 0x12:{ /* APPL4 */
2668 /* Get the APPL(4) ID */
2669 item_id
= tvb_get_uint8(tvb
, offset
);
2670 proto_item_append_text(item
, ", %s", val_to_str_const(item_id
, sapdiag_item_id_vals
, "Unknown"));
2671 proto_tree_add_item(item_tree
, hf_sapdiag_item_id
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2675 /* Get the APPL item sid value and set the respective name string according to them XXX: Change this for a multi array */
2676 item_sid
= tvb_get_uint8(tvb
, offset
);
2677 item_name_string
= get_appl_string(item_id
, item_sid
);
2679 proto_item_append_text(item
, ", %s", item_name_string
);
2680 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
);
2684 if (item_type
==0x10) {
2686 } else if (item_type
==0x12) {
2694 /* Get the item length (word o dword) */
2695 if (item_long
== 2){
2696 item_value_length
= tvb_get_ntohs(tvb
, offset
);
2697 il
= proto_tree_add_item(item_tree
, hf_sapdiag_item_length_short
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2700 } else if (item_long
== 4){
2701 item_value_length
= tvb_get_ntohl(tvb
, offset
);
2702 il
= proto_tree_add_item(item_tree
, hf_sapdiag_item_length_long
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
2707 /* Add the item length */
2708 proto_item_append_text(item
, ", Len=%d", item_value_length
);
2710 /* Now we have the real length of the item, set the proper size */
2711 item_length
+= item_value_length
;
2712 proto_item_set_len(item
, item_length
);
2714 /* Add the item value */
2715 if (item_value_length
> 0){
2716 /* Check if the item length is valid */
2717 item_value_remaining_length
= tvb_reported_length_remaining(tvb
, offset
);
2718 if (item_value_remaining_length
< 0){
2719 expert_add_info(pinfo
, il
, &ei_sapdiag_item_offset_invalid
);
2722 if ((uint32_t)item_value_remaining_length
< item_value_length
){
2723 expert_add_info(pinfo
, il
, &ei_sapdiag_item_length_invalid
);
2724 item_value_length
= (uint32_t)item_value_remaining_length
;
2726 item_value
= proto_tree_add_item(item_tree
, hf_sapdiag_item_value
, tvb
, offset
, item_value_length
, ENC_NA
);
2727 item_value_tree
= proto_item_add_subtree(item_value
, ett_sapdiag
);
2728 dissect_sapdiag_item(tvb
, pinfo
, item
, item_value_tree
, parent_tree
, offset
, item_type
, item_id
, item_sid
, item_value_length
);
2729 offset
+= item_value_length
;
2735 check_sapdiag_dp(tvbuff_t
*tvb
, uint32_t offset
)
2737 /* Since there's no SAP Diag mode 0xff, if the first byte is a 0xFF the
2738 * packet probably holds an initialization DP Header */
2739 if ((tvb_reported_length_remaining(tvb
, offset
) >= 200 + 8) && tvb_get_uint8(tvb
, offset
) == 0xFF){
2746 check_sapdiag_compression(tvbuff_t
*tvb
, uint32_t offset
)
2748 /* We check for the length, the algorithm value and the presence of magic bytes */
2749 if ((tvb_reported_length_remaining(tvb
, offset
) >= 8) &&
2750 ((tvb_get_uint8(tvb
, offset
+4) == 0x11) || (tvb_get_uint8(tvb
, offset
+4) == 0x12)) &&
2751 (tvb_get_uint16(tvb
, offset
+5, ENC_LITTLE_ENDIAN
) == 0x9d1f)){
2758 dissect_sapdiag_compressed_payload(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, proto_item
*sapdiag
, uint32_t offset
)
2760 uint32_t reported_length
= 0;
2761 proto_item
*compression_header
= NULL
;
2762 proto_tree
*compression_header_tree
= NULL
;
2764 /* Add the compression header subtree */
2765 compression_header
= proto_tree_add_item(tree
, hf_sapdiag_compress_header
, tvb
, offset
, 8, ENC_NA
);
2766 compression_header_tree
= proto_item_add_subtree(compression_header
, ett_sapdiag
);
2768 /* Add the uncompressed length */
2769 reported_length
= tvb_get_letohl(tvb
, offset
);
2770 proto_tree_add_uint(compression_header_tree
, hf_sapdiag_uncomplength
, tvb
, offset
, 4, reported_length
);
2772 proto_item_append_text(sapdiag
, ", Uncompressed Len: %u", reported_length
);
2773 col_append_fstr(pinfo
->cinfo
, COL_INFO
, " Uncompressed Length=%u ", reported_length
);
2775 /* Add the algorithm */
2776 proto_tree_add_item(compression_header_tree
, hf_sapdiag_algorithm
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2778 /* Add the magic bytes */
2779 proto_tree_add_item(compression_header_tree
, hf_sapdiag_magic
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
2781 /* Add the max bits */
2782 proto_tree_add_item(compression_header_tree
, hf_sapdiag_special
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2785 /* TODO: Decompression is not yet enabled until the LZC/LZH library is added
2786 * Here we just add the payload subtree
2788 proto_tree_add_item(tree
, hf_sapdiag_payload
, tvb
, offset
, -1, ENC_NA
);
2793 dissect_sapdiag_snc_frame(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*sapdiag_tree
, proto_tree
*tree
, uint32_t offset
){
2795 tvbuff_t
*next_tvb
= NULL
;
2796 proto_item
*payload
= NULL
;
2797 proto_tree
*payload_tree
= NULL
;
2799 /* Call the SNC dissector */
2800 if (global_sapdiag_snc_dissection
== true){
2801 next_tvb
= dissect_sapsnc_frame(tvb
, pinfo
, tree
, offset
);
2803 /* If the SNC dissection returned a new tvb, we've a payload to dissect */
2804 if (next_tvb
!= NULL
) {
2806 /* Add a new data source for the unwrapped data. From now on, the offset is relative
2807 to the new tvb so its zero. */
2808 add_new_data_source(pinfo
, next_tvb
, "SNC unwrapped Data");
2810 /* Add the payload subtree using the new tvb*/
2811 payload
= proto_tree_add_item(sapdiag_tree
, hf_sapdiag_payload
, next_tvb
, 0, -1, ENC_NA
);
2812 payload_tree
= proto_item_add_subtree(payload
, ett_sapdiag
);
2814 if (check_sapdiag_compression(next_tvb
, 0)) {
2815 dissect_sapdiag_compressed_payload(next_tvb
, pinfo
, payload_tree
, payload
, 0);
2817 dissect_sapdiag_payload(next_tvb
, pinfo
, payload_tree
, payload
, 0);
2824 dissect_sapdiag(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *data _U_
)
2826 uint8_t compress
= 0, error_no
= 0;
2827 uint32_t offset
= 0;
2828 proto_item
*sapdiag
= NULL
, *header
= NULL
, *com_flag
= NULL
, *payload
= NULL
;
2829 proto_tree
*sapdiag_tree
= NULL
, *header_tree
= NULL
, *com_flag_tree
= NULL
, *payload_tree
= NULL
;
2831 /* Add the protocol to the column */
2832 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "SAPDIAG");
2833 /* Clear out stuff in the info column */
2834 col_clear(pinfo
->cinfo
,COL_INFO
);
2836 /* Add the main SAPDiag subtree */
2837 sapdiag
= proto_tree_add_item(tree
, proto_sapdiag
, tvb
, 0, -1, ENC_NA
);
2838 sapdiag_tree
= proto_item_add_subtree(sapdiag
, ett_sapdiag
);
2840 /* Check if the packet holds a DP Header */
2841 if (check_sapdiag_dp(tvb
, offset
)){
2842 dissect_sapdiag_dp(tvb
, sapdiag_tree
, offset
); offset
+= 200;
2845 /* Check for fixed error messages */
2846 if (tvb_strneql(tvb
, 0, "**DPTMMSG**\x00", 12) == 0){
2847 proto_tree_add_item(sapdiag_tree
, hf_sapdiag_payload
, tvb
, offset
, -1, ENC_NA
);
2849 } else if (tvb_strneql(tvb
, 0, "**DPTMOPC**\x00", 12) == 0){
2850 proto_tree_add_item(sapdiag_tree
, hf_sapdiag_payload
, tvb
, offset
, -1, ENC_NA
);
2854 /* Add the header subtree */
2855 header
= proto_tree_add_item(sapdiag_tree
, hf_sapdiag_header
, tvb
, offset
, 8, ENC_NA
);
2856 header_tree
= proto_item_add_subtree(header
, ett_sapdiag
);
2858 /* Add the fields */
2859 proto_tree_add_item(header_tree
, hf_sapdiag_mode
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2862 com_flag
= proto_tree_add_item(header_tree
, hf_sapdiag_com_flag
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2863 com_flag_tree
= proto_item_add_subtree(com_flag
, ett_sapdiag
);
2864 proto_tree_add_item(com_flag_tree
, hf_sapdiag_com_flag_TERM_EOS
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2865 proto_tree_add_item(com_flag_tree
, hf_sapdiag_com_flag_TERM_EOC
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2866 proto_tree_add_item(com_flag_tree
, hf_sapdiag_com_flag_TERM_NOP
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2867 proto_tree_add_item(com_flag_tree
, hf_sapdiag_com_flag_TERM_EOP
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2868 proto_tree_add_item(com_flag_tree
, hf_sapdiag_com_flag_TERM_INI
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2869 proto_tree_add_item(com_flag_tree
, hf_sapdiag_com_flag_TERM_CAS
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2870 proto_tree_add_item(com_flag_tree
, hf_sapdiag_com_flag_TERM_NNM
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2871 proto_tree_add_item(com_flag_tree
, hf_sapdiag_com_flag_TERM_GRA
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2874 proto_tree_add_item(header_tree
, hf_sapdiag_mode_stat
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2877 error_no
= tvb_get_uint8(tvb
, offset
);
2878 proto_tree_add_item(header_tree
, hf_sapdiag_err_no
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2880 proto_tree_add_item(header_tree
, hf_sapdiag_msg_type
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2882 proto_tree_add_item(header_tree
, hf_sapdiag_msg_info
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2884 proto_tree_add_item(header_tree
, hf_sapdiag_msg_rc
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2887 compress
= tvb_get_uint8(tvb
, offset
);
2888 proto_tree_add_item(header_tree
, hf_sapdiag_compress
, tvb
, offset
, 1, ENC_BIG_ENDIAN
);
2891 /* Check for error messages */
2892 if ((error_no
!= 0x00) && (tvb_reported_length_remaining(tvb
, offset
) > 0)){
2893 char *error_message
= NULL
;
2894 uint32_t error_message_length
= 0;
2896 error_message_length
= (uint32_t)tvb_reported_length_remaining(tvb
, offset
) - 1;
2897 error_message
= (char *)tvb_get_string_enc(pinfo
->pool
, tvb
, offset
, error_message_length
, ENC_LITTLE_ENDIAN
|ENC_UTF_16
);
2898 proto_tree_add_string(sapdiag_tree
, hf_sapdiag_error_message
, tvb
, offset
, error_message_length
, error_message
);
2900 /* If the message is compressed */
2901 } else if ((compress
== 0x01) && (tvb_reported_length_remaining(tvb
, offset
) >= 8)){
2903 /* Dissect the compressed payload */
2904 dissect_sapdiag_compressed_payload(tvb
, pinfo
, sapdiag_tree
, sapdiag
, offset
);
2906 /* Message wrapped with SNC */
2907 } else if (((compress
== 0x02) || (compress
== 0x03)) && (tvb_reported_length_remaining(tvb
, offset
) > 0)){
2909 /* Call the SNC dissector */
2910 dissect_sapdiag_snc_frame(tvb
, pinfo
, sapdiag_tree
, tree
, offset
);
2912 /* Uncompressed payload */
2914 /* Check the payload length */
2915 if (tvb_reported_length_remaining(tvb
, offset
) > 0){
2916 /* Add the payload subtree */
2917 payload
= proto_tree_add_item(sapdiag_tree
, hf_sapdiag_payload
, tvb
, offset
, -1, ENC_NA
);
2918 payload_tree
= proto_item_add_subtree(payload
, ett_sapdiag
);
2920 /* Dissect the payload */
2921 dissect_sapdiag_payload(tvb
, pinfo
, payload_tree
, tree
, offset
);
2929 proto_register_sapdiag(void)
2931 static hf_register_info hf
[] = {
2933 { "DP Header", "sapdiag.dp", FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}},
2934 { &hf_sapdiag_header
,
2935 { "Header", "sapdiag.header", FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}},
2936 { &hf_sapdiag_payload
,
2937 { "Message", "sapdiag.message", FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}},
2939 { "Mode", "sapdiag.header.mode", FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
2940 { &hf_sapdiag_com_flag
,
2941 { "Com Flag", "sapdiag.header.comflag", FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}},
2942 { &hf_sapdiag_com_flag_TERM_EOS
,
2943 { "Com Flag TERM_EOS", "sapdiag.header.comflag.TERM_EOS", FT_BOOLEAN
, 8, NULL
, SAPDIAG_COM_FLAG_TERM_EOS
, NULL
, HFILL
}},
2944 { &hf_sapdiag_com_flag_TERM_EOC
,
2945 { "Com Flag TERM_EOC", "sapdiag.header.comflag.TERM_EOC", FT_BOOLEAN
, 8, NULL
, SAPDIAG_COM_FLAG_TERM_EOC
, NULL
, HFILL
}},
2946 { &hf_sapdiag_com_flag_TERM_NOP
,
2947 { "Com Flag TERM_NOP", "sapdiag.header.comflag.TERM_NOP", FT_BOOLEAN
, 8, NULL
, SAPDIAG_COM_FLAG_TERM_NOP
, NULL
, HFILL
}},
2948 { &hf_sapdiag_com_flag_TERM_EOP
,
2949 { "Com Flag TERM_EOP", "sapdiag.header.comflag.TERM_EOP", FT_BOOLEAN
, 8, NULL
, SAPDIAG_COM_FLAG_TERM_EOP
, NULL
, HFILL
}},
2950 { &hf_sapdiag_com_flag_TERM_INI
,
2951 { "Com Flag TERM_INI", "sapdiag.header.comflag.TERM_INI", FT_BOOLEAN
, 8, NULL
, SAPDIAG_COM_FLAG_TERM_INI
, NULL
, HFILL
}},
2952 { &hf_sapdiag_com_flag_TERM_CAS
,
2953 { "Com Flag TERM_CAS", "sapdiag.header.comflag.TERM_CAS", FT_BOOLEAN
, 8, NULL
, SAPDIAG_COM_FLAG_TERM_CAS
, NULL
, HFILL
}},
2954 { &hf_sapdiag_com_flag_TERM_NNM
,
2955 { "Com Flag TERM_NNM", "sapdiag.header.comflag.TERM_NNM", FT_BOOLEAN
, 8, NULL
, SAPDIAG_COM_FLAG_TERM_NNM
, NULL
, HFILL
}},
2956 { &hf_sapdiag_com_flag_TERM_GRA
,
2957 { "Com Flag TERM_GRA", "sapdiag.header.comflag.TERM_GRA", FT_BOOLEAN
, 8, NULL
, SAPDIAG_COM_FLAG_TERM_GRA
, NULL
, HFILL
}},
2959 { &hf_sapdiag_mode_stat
,
2960 { "Mode Stat", "sapdiag.header.modestat", FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
2961 { &hf_sapdiag_err_no
,
2962 { "Error Number", "sapdiag.header.errorno", FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
2963 { &hf_sapdiag_msg_type
,
2964 { "Message Type", "sapdiag.header.msgtype", FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
2965 { &hf_sapdiag_msg_info
,
2966 { "Message Info", "sapdiag.header.msginfo", FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
2967 { &hf_sapdiag_msg_rc
,
2968 { "Message Rc", "sapdiag.header.msgrc", FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
2969 { &hf_sapdiag_compress
,
2970 { "Compress", "sapdiag.header.compress", FT_UINT8
, BASE_HEX
, VALS(sapdiag_compress_vals
), 0x0, NULL
, HFILL
}},
2972 /* Error Messages */
2973 { &hf_sapdiag_error_message
,
2974 { "Error Message", "sapdiag.error_message", FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}},
2976 /* Compression header */
2977 { &hf_sapdiag_compress_header
,
2978 { "Compression Header", "sapdiag.header.compression", FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}},
2979 { &hf_sapdiag_uncomplength
,
2980 { "Uncompressed Length", "sapdiag.header.compression.uncomplength", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
2981 { &hf_sapdiag_algorithm
,
2982 { "Compression Algorithm", "sapdiag.header.compression.algorithm", FT_UINT8
, BASE_HEX
, VALS(sapdiag_algorithm_vals
), 0x0, NULL
, HFILL
}},
2983 { &hf_sapdiag_magic
,
2984 { "Magic Bytes", "sapdiag.header.compression.magic", FT_UINT16
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}},
2985 { &hf_sapdiag_special
,
2986 { "Special", "sapdiag.header.compression.special", FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}},
2988 /* SAPDiag Messages */
2990 { "Item", "sapdiag.item", FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}},
2991 { &hf_sapdiag_item_type
,
2992 { "Type", "sapdiag.item.type", FT_UINT8
, BASE_HEX
, VALS(sapdiag_item_type_vals
), 0x0, NULL
, HFILL
}},
2993 { &hf_sapdiag_item_id
,
2994 { "ID", "sapdiag.item.id", FT_UINT8
, BASE_HEX
, VALS(sapdiag_item_id_vals
), 0x0, NULL
, HFILL
}},
2995 { &hf_sapdiag_item_sid
,
2996 { "SID", "sapdiag.item.sid", FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}},
2997 { &hf_sapdiag_item_length_short
,
2998 { "Length", "sapdiag.item.length_short", FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
2999 { &hf_sapdiag_item_length_long
,
3000 { "Length", "sapdiag.item.length_long", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
3001 { &hf_sapdiag_item_value
,
3002 { "Value", "sapdiag.item.value", FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}},
3003 /* SAPDiag DP Header */
3004 { &hf_sapdiag_dp_request_id
,
3005 { "Request ID", "sapdiag.dp.reqid", FT_INT32
, BASE_DEC
, VALS(sapdiag_dp_request_id_vals
), 0x0, NULL
, HFILL
}},
3006 { &hf_sapdiag_dp_retcode
,
3007 { "Retcode", "sapdiag.dp.retcode", FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}},
3008 { &hf_sapdiag_dp_sender_id
,
3009 { "Sender ID", "sapdiag.dp.senderid", FT_UINT8
, BASE_HEX
, VALS(sapdiag_dp_sender_id_vals
), 0x0, NULL
, HFILL
}},
3010 { &hf_sapdiag_dp_action_type
,
3011 { "Action type", "sapdiag.dp.actiontype", FT_UINT8
, BASE_HEX
, VALS(sapdiag_dp_action_type_vals
), 0x0, NULL
, HFILL
}},
3012 { &hf_sapdiag_dp_req_info
,
3013 { "Request Info", "sapdiag.dp.reqinfo", FT_UINT32
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}},
3014 /* Request Info Flag */
3015 { &hf_sapdiag_dp_req_info_LOGIN
,
3016 { "Login Flag", "sapdiag.dp.reqinfo.login", FT_BOOLEAN
, 8, NULL
, SAPDIAG_DP_REQ_INFO_LOGIN
, NULL
, HFILL
}},
3017 { &hf_sapdiag_dp_req_info_LOGOFF
,
3018 { "Logoff Flag", "sapdiag.dp.reqinfo.logoff", FT_BOOLEAN
, 8, NULL
, SAPDIAG_DP_REQ_INFO_LOGOFF
, NULL
, HFILL
}},
3019 { &hf_sapdiag_dp_req_info_SHUTDOWN
,
3020 { "Shutdown Flag", "sapdiag.dp.reqinfo.shutdown", FT_BOOLEAN
, 8, NULL
, SAPDIAG_DP_REQ_INFO_SHUTDOWN
, NULL
, HFILL
}},
3021 { &hf_sapdiag_dp_req_info_GRAPHIC_TM
,
3022 { "Graphic TM Flag", "sapdiag.dp.reqinfo.graphictm", FT_BOOLEAN
, 8, NULL
, SAPDIAG_DP_REQ_INFO_GRAPHIC_TM
, NULL
, HFILL
}},
3023 { &hf_sapdiag_dp_req_info_ALPHA_TM
,
3024 { "Alpha TM Flag", "sapdiag.dp.reqinfo.alphatm", FT_BOOLEAN
, 8, NULL
, SAPDIAG_DP_REQ_INFO_ALPHA_TM
, NULL
, HFILL
}},
3025 { &hf_sapdiag_dp_req_info_ERROR_FROM_APPC
,
3026 { "Error from APPC Flag", "sapdiag.dp.reqinfo.errorfromappc", FT_BOOLEAN
, 8, NULL
, SAPDIAG_DP_REQ_INFO_ERROR_FROM_APPC
, NULL
, HFILL
}},
3027 { &hf_sapdiag_dp_req_info_CANCELMODE
,
3028 { "Cancel Mode Flag", "sapdiag.dp.reqinfo.cancelmode", FT_BOOLEAN
, 8, NULL
, SAPDIAG_DP_REQ_INFO_CANCELMODE
, NULL
, HFILL
}},
3029 { &hf_sapdiag_dp_req_info_MSG_WITH_REQ_BUF
,
3030 { "Msg with Req Buf Flag", "sapdiag.dp.reqinfo.msg_with_req_buf", FT_BOOLEAN
, 8, NULL
, SAPDIAG_DP_REQ_INFO_MSG_WITH_REQ_BUF
, NULL
, HFILL
}},
3031 { &hf_sapdiag_dp_req_info_MSG_WITH_OH
,
3032 { "Msg with OH Flag", "sapdiag.dp.reqinfo.msg_with_oh", FT_BOOLEAN
, 8, NULL
, SAPDIAG_DP_REQ_INFO_MSG_WITH_OH
, NULL
, HFILL
}},
3033 { &hf_sapdiag_dp_req_info_BUFFER_REFRESH
,
3034 { "Buffer Refresh Flag", "sapdiag.dp.reqinfo.buffer_refresh", FT_BOOLEAN
, 8, NULL
, SAPDIAG_DP_REQ_INFO_BUFFER_REFRESH
, NULL
, HFILL
}},
3035 { &hf_sapdiag_dp_req_info_BTC_SCHEDULER
,
3036 { "BTC Scheduler Flag", "sapdiag.dp.reqinfo.btc_scheduler", FT_BOOLEAN
, 8, NULL
, SAPDIAG_DP_REQ_INFO_BTC_SCHEDULER
, NULL
, HFILL
}},
3037 { &hf_sapdiag_dp_req_info_APPC_SERVER_DOWN
,
3038 { "APPC Server Down Flag", "sapdiag.dp.reqinfo.appc_server_down", FT_BOOLEAN
, 8, NULL
, SAPDIAG_DP_REQ_INFO_APPC_SERVER_DOWN
, NULL
, HFILL
}},
3039 { &hf_sapdiag_dp_req_info_MS_ERROR
,
3040 { "MS Error Flag", "sapdiag.dp.reqinfo.ms_error", FT_BOOLEAN
, 8, NULL
, SAPDIAG_DP_REQ_INFO_MS_ERROR
, NULL
, HFILL
}},
3041 { &hf_sapdiag_dp_req_info_SET_SYSTEM_USER
,
3042 { "Set System User Flag", "sapdiag.dp.reqinfo.set_system_user", FT_BOOLEAN
, 8, NULL
, SAPDIAG_DP_REQ_INFO_SET_SYSTEM_USER
, NULL
, HFILL
}},
3043 { &hf_sapdiag_dp_req_info_DP_CANT_HANDLE_REQ
,
3044 { "DP Can't handle req Flag", "sapdiag.dp.reqinfo.dp_cant_handle_req", FT_BOOLEAN
, 8, NULL
, SAPDIAG_DP_REQ_INFO_DP_CANT_HANDLE_REQ
, NULL
, HFILL
}},
3045 { &hf_sapdiag_dp_req_info_DP_AUTO_ABAP
,
3046 { "DP Auto ABAP Flag", "sapdiag.dp.reqinfo.dp_auto_abap", FT_BOOLEAN
, 8, NULL
, SAPDIAG_DP_REQ_INFO_DP_AUTO_ABAP
, NULL
, HFILL
}},
3047 { &hf_sapdiag_dp_req_info_DP_APPL_SERV_INFO
,
3048 { "DP Appl Serv Info Flag", "sapdiag.dp.reqinfo.dp_appl_serv_info", FT_BOOLEAN
, 8, NULL
, SAPDIAG_DP_REQ_INFO_DP_APPL_SERV_INFO
, NULL
, HFILL
}},
3049 { &hf_sapdiag_dp_req_info_DP_ADMIN
,
3050 { "DP Admin Flag", "sapdiag.dp.reqinfo.dp_admin", FT_BOOLEAN
, 8, NULL
, SAPDIAG_DP_REQ_INFO_DP_ADMIN
, NULL
, HFILL
}},
3051 { &hf_sapdiag_dp_req_info_DP_SPOOL_ALRM
,
3052 { "DP Spool Alrm Flag", "sapdiag.dp.reqinfo.dp_spool_alrm", FT_BOOLEAN
, 8, NULL
, SAPDIAG_DP_REQ_INFO_DP_SPOOL_ALRM
, NULL
, HFILL
}},
3053 { &hf_sapdiag_dp_req_info_DP_HAND_SHAKE
,
3054 { "DP Hand Shake Flag", "sapdiag.dp.reqinfo.dp_hand_shake", FT_BOOLEAN
, 8, NULL
, SAPDIAG_DP_REQ_INFO_DP_HAND_SHAKE
, NULL
, HFILL
}},
3055 { &hf_sapdiag_dp_req_info_DP_CANCEL_PRIV
,
3056 { "DP Cancel Privileges Flag", "sapdiag.dp.reqinfo.dp_cancel_priv", FT_BOOLEAN
, 8, NULL
, SAPDIAG_DP_REQ_INFO_DP_CANCEL_PRIV
, NULL
, HFILL
}},
3057 { &hf_sapdiag_dp_req_info_DP_RAISE_TIMEOUT
,
3058 { "DP Raise Timeout Flag", "sapdiag.dp.reqinfo.dp_raise_timeout", FT_BOOLEAN
, 8, NULL
, SAPDIAG_DP_REQ_INFO_DP_RAISE_TIMEOUT
, NULL
, HFILL
}},
3059 { &hf_sapdiag_dp_req_info_DP_NEW_MODE
,
3060 { "DP New Mode Flag", "sapdiag.dp.reqinfo.dp_new_mode", FT_BOOLEAN
, 8, NULL
, SAPDIAG_DP_REQ_INFO_DP_NEW_MODE
, NULL
, HFILL
}},
3061 { &hf_sapdiag_dp_req_info_DP_SOFT_CANCEL
,
3062 { "DP Soft Cancel Flag", "sapdiag.dp.reqinfo.dp_soft_cancel", FT_BOOLEAN
, 8, NULL
, SAPDIAG_DP_REQ_INFO_DP_SOFT_CANCEL
, NULL
, HFILL
}},
3063 { &hf_sapdiag_dp_req_info_DP_TM_INPUT
,
3064 { "DP TM Input Flag", "sapdiag.dp.reqinfo.dp_tm_input", FT_BOOLEAN
, 8, NULL
, SAPDIAG_DP_REQ_INFO_DP_TM_INPUT
, NULL
, HFILL
}},
3065 { &hf_sapdiag_dp_req_info_DP_TM_OUTPUT
,
3066 { "DP TM Output Flag", "sapdiag.dp.reqinfo.dp_tm_output", FT_BOOLEAN
, 8, NULL
, SAPDIAG_DP_REQ_INFO_DP_TM_OUTPUT
, NULL
, HFILL
}},
3067 { &hf_sapdiag_dp_req_info_DP_ASYNC_RFC
,
3068 { "DP Async RFC Flag", "sapdiag.dp.reqinfo.dp_async_rfc", FT_BOOLEAN
, 8, NULL
, SAPDIAG_DP_REQ_INFO_DP_ASYNC_RFC
, NULL
, HFILL
}},
3069 { &hf_sapdiag_dp_req_info_DP_ICM_EVENT
,
3070 { "DP ICM Event Flag", "sapdiag.dp.reqinfo.dp_icm_event", FT_BOOLEAN
, 8, NULL
, SAPDIAG_DP_REQ_INFO_DP_ICM_EVENT
, NULL
, HFILL
}},
3071 { &hf_sapdiag_dp_req_info_DP_AUTO_TH
,
3072 { "DP Auto TH Flag", "sapdiag.dp.reqinfo.dp_auto_th", FT_BOOLEAN
, 8, NULL
, SAPDIAG_DP_REQ_INFO_DP_AUTO_TH
, NULL
, HFILL
}},
3073 { &hf_sapdiag_dp_req_info_DP_RFC_CANCEL
,
3074 { "DP RFC Cancel Flag", "sapdiag.dp.reqinfo.dp_rfc_cancel", FT_BOOLEAN
, 8, NULL
, SAPDIAG_DP_REQ_INFO_DP_RFC_CANCEL
, NULL
, HFILL
}},
3075 { &hf_sapdiag_dp_req_info_DP_MS_ADM
,
3076 { "DP MS Adm Flag", "sapdiag.dp.reqinfo.dp_ms_adm", FT_BOOLEAN
, 8, NULL
, SAPDIAG_DP_REQ_INFO_DP_MS_ADM
, NULL
, HFILL
}},
3077 { &hf_sapdiag_dp_tid
,
3078 { "TID", "sapdiag.dp.tid", FT_INT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
3079 { &hf_sapdiag_dp_uid
,
3080 { "UID", "sapdiag.dp.uid", FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
3081 { &hf_sapdiag_dp_mode
,
3082 { "Mode", "sapdiag.dp.mode", FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}},
3083 { &hf_sapdiag_dp_wp_id
,
3084 { "WP Id", "sapdiag.dp.wpid", FT_INT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
3085 { &hf_sapdiag_dp_wp_ca_blk
,
3086 { "WP Ca Blk", "sapdiag.dp.wpcablk", FT_INT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
3087 { &hf_sapdiag_dp_appc_ca_blk
,
3088 { "APPC Ca Blk", "sapdiag.dp.appccablk", FT_INT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
3089 { &hf_sapdiag_dp_len
,
3090 { "Len", "sapdiag.dp.len", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
3091 { &hf_sapdiag_dp_new_stat
,
3092 { "New Stat", "sapdiag.dp.newstat", FT_UINT8
, BASE_HEX
, VALS(sapdiag_dp_new_stat_vals
), 0x0, NULL
, HFILL
}},
3093 { &hf_sapdiag_dp_rq_id
,
3094 { "Request ID", "sapdiag.dp.rqid", FT_INT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
3095 { &hf_sapdiag_dp_terminal
,
3096 { "Terminal", "sapdiag.dp.terminal", FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}},
3098 /* SAP Diag Support Bits */
3099 { &hf_SAPDIAG_SUPPORT_BIT_PROGRESS_INDICATOR
,
3100 { "Support Bit PROGRESS_INDICATOR", "sapdiag.diag.supportbits.PROGRESS_INDICATOR", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_PROGRESS_INDICATOR
, NULL
, HFILL
}},
3101 { &hf_SAPDIAG_SUPPORT_BIT_SAPGUI_LABELS
,
3102 { "Support Bit SAPGUI_LABELS", "sapdiag.diag.supportbits.SAPGUI_LABELS", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_SAPGUI_LABELS
, NULL
, HFILL
}},
3103 { &hf_SAPDIAG_SUPPORT_BIT_SAPGUI_DIAGVERSION
,
3104 { "Support Bit SAPGUI_DIAGVERSION", "sapdiag.diag.supportbits.SAPGUI_DIAGVERSION", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_SAPGUI_DIAGVERSION
, NULL
, HFILL
}},
3105 { &hf_SAPDIAG_SUPPORT_BIT_SAPGUI_SELECT_RECT
,
3106 { "Support Bit SAPGUI_SELECT_RECT", "sapdiag.diag.supportbits.SAPGUI_SELECT_RECT", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_SAPGUI_SELECT_RECT
, NULL
, HFILL
}},
3107 { &hf_SAPDIAG_SUPPORT_BIT_SAPGUI_SYMBOL_RIGHT
,
3108 { "Support Bit SAPGUI_SYMBOL_RIGHT", "sapdiag.diag.supportbits.SAPGUI_SYMBOL_RIGHT", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_SAPGUI_SYMBOL_RIGHT
, NULL
, HFILL
}},
3109 { &hf_SAPDIAG_SUPPORT_BIT_SAPGUI_FONT_METRIC
,
3110 { "Support Bit SAPGUI_FONT_METRIC", "sapdiag.diag.supportbits.SAPGUI_FONT_METRIC", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_SAPGUI_FONT_METRIC
, NULL
, HFILL
}},
3111 { &hf_SAPDIAG_SUPPORT_BIT_SAPGUI_COMPR_ENHANCED
,
3112 { "Support Bit SAPGUI_COMPR_ENHANCED", "sapdiag.diag.supportbits.SAPGUI_COMPR_ENHANCED", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_SAPGUI_COMPR_ENHANCED
, NULL
, HFILL
}},
3113 { &hf_SAPDIAG_SUPPORT_BIT_SAPGUI_IMODE
,
3114 { "Support Bit SAPGUI_IMODE", "sapdiag.diag.supportbits.SAPGUI_IMODE", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_SAPGUI_IMODE
, NULL
, HFILL
}},
3116 { &hf_SAPDIAG_SUPPORT_BIT_SAPGUI_LONG_MESSAGE
,
3117 { "Support Bit SAPGUI_LONG_MESSAGE", "sapdiag.diag.supportbits.SAPGUI_LONG_MESSAGE", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_SAPGUI_LONG_MESSAGE
, NULL
, HFILL
}},
3118 { &hf_SAPDIAG_SUPPORT_BIT_SAPGUI_TABLE
,
3119 { "Support Bit SAPGUI_TABLE", "sapdiag.diag.supportbits.SAPGUI_TABLE", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_SAPGUI_TABLE
, NULL
, HFILL
}},
3120 { &hf_SAPDIAG_SUPPORT_BIT_SAPGUI_FOCUS_1
,
3121 { "Support Bit SAPGUI_FOCUS_1", "sapdiag.diag.supportbits.SAPGUI_FOCUS_1", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_SAPGUI_FOCUS_1
, NULL
, HFILL
}},
3122 { &hf_SAPDIAG_SUPPORT_BIT_SAPGUI_PUSHBUTTON_1
,
3123 { "Support Bit SAPGUI_PUSHBUTTON_1", "sapdiag.diag.supportbits.SAPGUI_PUSHBUTTON_1", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_SAPGUI_PUSHBUTTON_1
, NULL
, HFILL
}},
3124 { &hf_SAPDIAG_SUPPORT_BIT_UPPERCASE
,
3125 { "Support Bit UPPERCASE", "sapdiag.diag.supportbits.UPPERCASE", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_UPPERCASE
, NULL
, HFILL
}},
3126 { &hf_SAPDIAG_SUPPORT_BIT_SAPGUI_TABPROPERTY
,
3127 { "Support Bit SAPGUI_TABPROPERTY", "sapdiag.diag.supportbits.SAPGUI_TABPROPERTY", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_SAPGUI_TABPROPERTY
, NULL
, HFILL
}},
3128 { &hf_SAPDIAG_SUPPORT_BIT_INPUT_UPPERCASE
,
3129 { "Support Bit INPUT_UPPERCASE", "sapdiag.diag.supportbits.INPUT_UPPERCASE", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_INPUT_UPPERCASE
, NULL
, HFILL
}},
3130 { &hf_SAPDIAG_SUPPORT_BIT_RFC_DIALOG
,
3131 { "Support Bit RFC_DIALOG", "sapdiag.diag.supportbits.RFC_DIALOG", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_RFC_DIALOG
, NULL
, HFILL
}},
3133 { &hf_SAPDIAG_SUPPORT_BIT_LIST_HOTSPOT
,
3134 { "Support Bit LIST_HOTSPOT", "sapdiag.diag.supportbits.LIST_HOTSPOT", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_LIST_HOTSPOT
, NULL
, HFILL
}},
3135 { &hf_SAPDIAG_SUPPORT_BIT_FKEY_TABLE
,
3136 { "Support Bit FKEY_TABLE", "sapdiag.diag.supportbits.FKEY_TABLE", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_FKEY_TABLE
, NULL
, HFILL
}},
3137 { &hf_SAPDIAG_SUPPORT_BIT_MENU_SHORTCUT
,
3138 { "Support Bit MENU_SHORTCUT", "sapdiag.diag.supportbits.MENU_SHORTCUT", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_MENU_SHORTCUT
, NULL
, HFILL
}},
3139 { &hf_SAPDIAG_SUPPORT_BIT_STOP_TRANS
,
3140 { "Support Bit STOP_TRANS", "sapdiag.diag.supportbits.STOP_TRANS", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_STOP_TRANS
, NULL
, HFILL
}},
3141 { &hf_SAPDIAG_SUPPORT_BIT_FULL_MENU
,
3142 { "Support Bit FULL_MENU", "sapdiag.diag.supportbits.FULL_MENU", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_FULL_MENU
, NULL
, HFILL
}},
3143 { &hf_SAPDIAG_SUPPORT_BIT_OBJECT_NAMES
,
3144 { "Support Bit OBJECT_NAMES", "sapdiag.diag.supportbits.OBJECT_NAMES", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_OBJECT_NAMES
, NULL
, HFILL
}},
3145 { &hf_SAPDIAG_SUPPORT_BIT_CONTAINER_TYPE
,
3146 { "Support Bit CONTAINER_TYPE", "sapdiag.diag.supportbits.CONTAINER_TYPE", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_CONTAINER_TYPE
, NULL
, HFILL
}},
3147 { &hf_SAPDIAG_SUPPORT_BIT_DLGH_FLAGS
,
3148 { "Support Bit DLGH_FLAGS", "sapdiag.diag.supportbits.DLGH_FLAGS", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_DLGH_FLAGS
, NULL
, HFILL
}},
3150 { &hf_SAPDIAG_SUPPORT_BIT_APPL_MNU
,
3151 { "Support Bit APPL_MNU", "sapdiag.diag.supportbits.APPL_MNU", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_APPL_MNU
, NULL
, HFILL
}},
3152 { &hf_SAPDIAG_SUPPORT_BIT_MESSAGE_INFO
,
3153 { "Support Bit MESSAGE_INFO", "sapdiag.diag.supportbits.MESSAGE_INFO", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_MESSAGE_INFO
, NULL
, HFILL
}},
3154 { &hf_SAPDIAG_SUPPORT_BIT_MESDUM_FLAG1
,
3155 { "Support Bit MESDUM_FLAG1", "sapdiag.diag.supportbits.MESDUM_FLAG1", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_MESDUM_FLAG1
, NULL
, HFILL
}},
3156 { &hf_SAPDIAG_SUPPORT_BIT_TABSEL_ATTRIB
,
3157 { "Support Bit TABSEL_ATTRIB", "sapdiag.diag.supportbits.TABSEL_ATTRIB", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_TABSEL_ATTRIB
, NULL
, HFILL
}},
3158 { &hf_SAPDIAG_SUPPORT_BIT_GUIAPI
,
3159 { "Support Bit GUIAPI", "sapdiag.diag.supportbits.GUIAPI", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_GUIAPI
, NULL
, HFILL
}},
3160 { &hf_SAPDIAG_SUPPORT_BIT_NOGRAPH
,
3161 { "Support Bit NOGRAPH", "sapdiag.diag.supportbits.NOGRAPH", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_NOGRAPH
, NULL
, HFILL
}},
3162 { &hf_SAPDIAG_SUPPORT_BIT_NOMESSAGES
,
3163 { "Support Bit NOMESSAGES", "sapdiag.diag.supportbits.NOMESSAGES", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_NOMESSAGES
, NULL
, HFILL
}},
3164 { &hf_SAPDIAG_SUPPORT_BIT_NORABAX
,
3165 { "Support Bit NORABAX", "sapdiag.diag.supportbits.NORABAX", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_NORABAX
, NULL
, HFILL
}},
3167 { &hf_SAPDIAG_SUPPORT_BIT_NOSYSMSG
,
3168 { "Support Bit NOSYSMSG", "sapdiag.diag.supportbits.NOSYSMSG", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_NOSYSMSG
, NULL
, HFILL
}},
3169 { &hf_SAPDIAG_SUPPORT_BIT_NOSAPSCRIPT
,
3170 { "Support Bit NOSAPSCRIPT", "sapdiag.diag.supportbits.NOSAPSCRIPT", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_NOSAPSCRIPT
, NULL
, HFILL
}},
3171 { &hf_SAPDIAG_SUPPORT_BIT_NORFC
,
3172 { "Support Bit NORFC", "sapdiag.diag.supportbits.NORFC", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_NORFC
, NULL
, HFILL
}},
3173 { &hf_SAPDIAG_SUPPORT_BIT_NEW_BSD_JUSTRIGHT
,
3174 { "Support Bit NEW_BSD_JUSTRIGHT", "sapdiag.diag.supportbits.NEW_BSD_JUSTRIGHT", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_NEW_BSD_JUSTRIGHT
, NULL
, HFILL
}},
3175 { &hf_SAPDIAG_SUPPORT_BIT_MESSAGE_VARS
,
3176 { "Support Bit MESSAGE_VARS", "sapdiag.diag.supportbits.MESSAGE_VARS", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_MESSAGE_VARS
, NULL
, HFILL
}},
3177 { &hf_SAPDIAG_SUPPORT_BIT_OCX_SUPPORT
,
3178 { "Support Bit OCX_SUPPORT", "sapdiag.diag.supportbits.OCX_SUPPORT", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_OCX_SUPPORT
, NULL
, HFILL
}},
3179 { &hf_SAPDIAG_SUPPORT_BIT_SCROLL_INFOS
,
3180 { "Support Bit SCROLL_INFOS", "sapdiag.diag.supportbits.SCROLL_INFOS", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_SCROLL_INFOS
, NULL
, HFILL
}},
3181 { &hf_SAPDIAG_SUPPORT_BIT_TABLE_SIZE_OK
,
3182 { "Support Bit TABLE_SIZE_OK", "sapdiag.diag.supportbits.TABLE_SIZE_OK", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_TABLE_SIZE_OK
, NULL
, HFILL
}},
3184 { &hf_SAPDIAG_SUPPORT_BIT_MESSAGE_INFO2
,
3185 { "Support Bit MESSAGE_INFO2", "sapdiag.diag.supportbits.MESSAGE_INFO2", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_MESSAGE_INFO2
, NULL
, HFILL
}},
3186 { &hf_SAPDIAG_SUPPORT_BIT_VARINFO_OKCODE
,
3187 { "Support Bit VARINFO_OKCODE", "sapdiag.diag.supportbits.VARINFO_OKCODE", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_VARINFO_OKCODE
, NULL
, HFILL
}},
3188 { &hf_SAPDIAG_SUPPORT_BIT_CURR_TCODE
,
3189 { "Support Bit CURR_TCODE", "sapdiag.diag.supportbits.CURR_TCODE", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_CURR_TCODE
, NULL
, HFILL
}},
3190 { &hf_SAPDIAG_SUPPORT_BIT_CONN_WSIZE
,
3191 { "Support Bit CONN_WSIZE", "sapdiag.diag.supportbits.CONN_WSIZE", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_CONN_WSIZE
, NULL
, HFILL
}},
3192 { &hf_SAPDIAG_SUPPORT_BIT_PUSHBUTTON_2
,
3193 { "Support Bit PUSHBUTTON_2", "sapdiag.diag.supportbits.PUSHBUTTON_2", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_PUSHBUTTON_2
, NULL
, HFILL
}},
3194 { &hf_SAPDIAG_SUPPORT_BIT_TABSTRIP
,
3195 { "Support Bit TABSTRIP", "sapdiag.diag.supportbits.TABSTRIP", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_TABSTRIP
, NULL
, HFILL
}},
3196 { &hf_SAPDIAG_SUPPORT_BIT_UNKNOWN_1
,
3197 { "Support Bit UNKNOWN_1", "sapdiag.diag.supportbits.UNKNOWN_1", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_UNKNOWN_1
, NULL
, HFILL
}},
3198 { &hf_SAPDIAG_SUPPORT_BIT_TABSCROLL_INFOS
,
3199 { "Support Bit TABSCROLL_INFOS", "sapdiag.diag.supportbits.TABSCROLL_INFOS", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_TABSCROLL_INFOS
, NULL
, HFILL
}},
3201 { &hf_SAPDIAG_SUPPORT_BIT_TABLE_FIELD_NAMES
,
3202 { "Support Bit TABLE_FIELD_NAMES", "sapdiag.diag.supportbits.TABLE_FIELD_NAMES", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_TABLE_FIELD_NAMES
, NULL
, HFILL
}},
3203 { &hf_SAPDIAG_SUPPORT_BIT_NEW_MODE_REQUEST
,
3204 { "Support Bit NEW_MODE_REQUEST", "sapdiag.diag.supportbits.NEW_MODE_REQUEST", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_NEW_MODE_REQUEST
, NULL
, HFILL
}},
3205 { &hf_SAPDIAG_SUPPORT_BIT_RFCBLOB_DIAG_PARSER
,
3206 { "Support Bit RFCBLOB_DIAG_PARSER", "sapdiag.diag.supportbits.RFCBLOB_DIAG_PARSER", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_RFCBLOB_DIAG_PARSER
, NULL
, HFILL
}},
3207 { &hf_SAPDIAG_SUPPORT_BIT_MULTI_LOGIN_USER
,
3208 { "Support Bit MULTI_LOGIN_USER", "sapdiag.diag.supportbits.MULTI_LOGIN_USER", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_MULTI_LOGIN_USER
, NULL
, HFILL
}},
3209 { &hf_SAPDIAG_SUPPORT_BIT_CONTROL_CONTAINER
,
3210 { "Support Bit CONTROL_CONTAINER", "sapdiag.diag.supportbits.CONTROL_CONTAINER", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_CONTROL_CONTAINER
, NULL
, HFILL
}},
3211 { &hf_SAPDIAG_SUPPORT_BIT_APPTOOLBAR_FIXED
,
3212 { "Support Bit APPTOOLBAR_FIXED", "sapdiag.diag.supportbits.APPTOOLBAR_FIXED", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_APPTOOLBAR_FIXED
, NULL
, HFILL
}},
3213 { &hf_SAPDIAG_SUPPORT_BIT_R3INFO_USER_CHECKED
,
3214 { "Support Bit R3INFO_USER_CHECKED", "sapdiag.diag.supportbits.R3INFO_USER_CHECKED", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_R3INFO_USER_CHECKED
, NULL
, HFILL
}},
3215 { &hf_SAPDIAG_SUPPORT_BIT_NEED_STDDYNPRO
,
3216 { "Support Bit NEED_STDDYNPRO", "sapdiag.diag.supportbits.NEED_STDDYNPRO", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_NEED_STDDYNPRO
, NULL
, HFILL
}},
3218 { &hf_SAPDIAG_SUPPORT_BIT_TYPE_SERVER
,
3219 { "Support Bit TYPE_SERVER", "sapdiag.diag.supportbits.TYPE_SERVER", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_TYPE_SERVER
, NULL
, HFILL
}},
3220 { &hf_SAPDIAG_SUPPORT_BIT_COMBOBOX
,
3221 { "Support Bit COMBOBOX", "sapdiag.diag.supportbits.COMBOBOX", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_COMBOBOX
, NULL
, HFILL
}},
3222 { &hf_SAPDIAG_SUPPORT_BIT_INPUT_REQUIRED
,
3223 { "Support Bit INPUT_REQUIRED", "sapdiag.diag.supportbits.INPUT_REQUIRED", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_INPUT_REQUIRED
, NULL
, HFILL
}},
3224 { &hf_SAPDIAG_SUPPORT_BIT_ISO_LANGUAGE
,
3225 { "Support Bit ISO_LANGUAGE", "sapdiag.diag.supportbits.ISO_LANGUAGE", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_ISO_LANGUAGE
, NULL
, HFILL
}},
3226 { &hf_SAPDIAG_SUPPORT_BIT_COMBOBOX_TABLE
,
3227 { "Support Bit COMBOBOX_TABLE", "sapdiag.diag.supportbits.COMBOBOX_TABLE", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_COMBOBOX_TABLE
, NULL
, HFILL
}},
3228 { &hf_SAPDIAG_SUPPORT_BIT_R3INFO_FLAGS
,
3229 { "Support Bit R3INFO_FLAGS", "sapdiag.diag.supportbits.R3INFO_FLAGS", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_R3INFO_FLAGS
, NULL
, HFILL
}},
3230 { &hf_SAPDIAG_SUPPORT_BIT_CHECKRADIO_EVENTS
,
3231 { "Support Bit CHECKRADIO_EVENTS", "sapdiag.diag.supportbits.CHECKRADIO_EVENTS", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_CHECKRADIO_EVENTS
, NULL
, HFILL
}},
3232 { &hf_SAPDIAG_SUPPORT_BIT_R3INFO_USERID
,
3233 { "Support Bit R3INFO_USERID", "sapdiag.diag.supportbits.R3INFO_USERID", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_R3INFO_USERID
, NULL
, HFILL
}},
3235 { &hf_SAPDIAG_SUPPORT_BIT_R3INFO_ROLLCOUNT
,
3236 { "Support Bit R3INFO_ROLLCOUNT", "sapdiag.diag.supportbits.R3INFO_ROLLCOUNT", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_R3INFO_ROLLCOUNT
, NULL
, HFILL
}},
3237 { &hf_SAPDIAG_SUPPORT_BIT_USER_TURNTIME2
,
3238 { "Support Bit USER_TURNTIME2", "sapdiag.diag.supportbits.USER_TURNTIME2", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_USER_TURNTIME2
, NULL
, HFILL
}},
3239 { &hf_SAPDIAG_SUPPORT_BIT_NUM_FIELD
,
3240 { "Support Bit NUM_FIELD", "sapdiag.diag.supportbits.NUM_FIELD", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_NUM_FIELD
, NULL
, HFILL
}},
3241 { &hf_SAPDIAG_SUPPORT_BIT_WIN16
,
3242 { "Support Bit WIN16", "sapdiag.diag.supportbits.WIN16", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_WIN16
, NULL
, HFILL
}},
3243 { &hf_SAPDIAG_SUPPORT_BIT_CONTEXT_MENU
,
3244 { "Support Bit CONTEXT_MENU", "sapdiag.diag.supportbits.CONTEXT_MENU", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_CONTEXT_MENU
, NULL
, HFILL
}},
3245 { &hf_SAPDIAG_SUPPORT_BIT_SCROLLABLE_TABSTRIP_PAGE
,
3246 { "Support Bit SCROLLABLE_TABSTRIP_PAGE", "sapdiag.diag.supportbits.SCROLLABLE_TABSTRIP_PAGE", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_SCROLLABLE_TABSTRIP_PAGE
, NULL
, HFILL
}},
3247 { &hf_SAPDIAG_SUPPORT_BIT_EVENT_DESCRIPTION
,
3248 { "Support Bit EVENT_DESCRIPTION", "sapdiag.diag.supportbits.EVENT_DESCRIPTION", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_EVENT_DESCRIPTION
, NULL
, HFILL
}},
3249 { &hf_SAPDIAG_SUPPORT_BIT_LABEL_OWNER
,
3250 { "Support Bit LABEL_OWNER", "sapdiag.diag.supportbits.LABEL_OWNER", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_LABEL_OWNER
, NULL
, HFILL
}},
3252 { &hf_SAPDIAG_SUPPORT_BIT_CLICKABLE_FIELD
,
3253 { "Support Bit CLICKABLE_FIELD", "sapdiag.diag.supportbits.CLICKABLE_FIELD", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_CLICKABLE_FIELD
, NULL
, HFILL
}},
3254 { &hf_SAPDIAG_SUPPORT_BIT_PROPERTY_BAG
,
3255 { "Support Bit PROPERTY_BAG", "sapdiag.diag.supportbits.PROPERTY_BAG", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_PROPERTY_BAG
, NULL
, HFILL
}},
3256 { &hf_SAPDIAG_SUPPORT_BIT_UNUSED_1
,
3257 { "Support Bit UNUSED_1", "sapdiag.diag.supportbits.UNUSED_1", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_UNUSED_1
, NULL
, HFILL
}},
3258 { &hf_SAPDIAG_SUPPORT_BIT_TABLE_ROW_REFERENCES_2
,
3259 { "Support Bit TABLE_ROW_REFERENCES_2", "sapdiag.diag.supportbits.TABLE_ROW_REFERENCES_2", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_TABLE_ROW_REFERENCES_2
, NULL
, HFILL
}},
3260 { &hf_SAPDIAG_SUPPORT_BIT_PROPFONT_VALID
,
3261 { "Support Bit PROPFONT_VALID", "sapdiag.diag.supportbits.PROPFONT_VALID", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_PROPFONT_VALID
, NULL
, HFILL
}},
3262 { &hf_SAPDIAG_SUPPORT_BIT_VARINFO_CONTAINER
,
3263 { "Support Bit VARINFO_CONTAINER", "sapdiag.diag.supportbits.VARINFO_CONTAINER", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_VARINFO_CONTAINER
, NULL
, HFILL
}},
3264 { &hf_SAPDIAG_SUPPORT_BIT_R3INFO_IMODEUUID
,
3265 { "Support Bit R3INFO_IMODEUUID", "sapdiag.diag.supportbits.R3INFO_IMODEUUID", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_R3INFO_IMODEUUID
, NULL
, HFILL
}},
3266 { &hf_SAPDIAG_SUPPORT_BIT_NOTGUI
,
3267 { "Support Bit NOTGUI", "sapdiag.diag.supportbits.NOTGUI", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_NOTGUI
, NULL
, HFILL
}},
3269 { &hf_SAPDIAG_SUPPORT_BIT_WAN
,
3270 { "Support Bit WAN", "sapdiag.diag.supportbits.WAN", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_WAN
, NULL
, HFILL
}},
3271 { &hf_SAPDIAG_SUPPORT_BIT_XML_BLOBS
,
3272 { "Support Bit XML_BLOBS", "sapdiag.diag.supportbits.XML_BLOBS", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_XML_BLOBS
, NULL
, HFILL
}},
3273 { &hf_SAPDIAG_SUPPORT_BIT_RFC_QUEUE
,
3274 { "Support Bit RFC_QUEUE", "sapdiag.diag.supportbits.RFC_QUEUE", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_RFC_QUEUE
, NULL
, HFILL
}},
3275 { &hf_SAPDIAG_SUPPORT_BIT_RFC_COMPRESS
,
3276 { "Support Bit RFC_COMPRESS", "sapdiag.diag.supportbits.RFC_COMPRESS", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_RFC_COMPRESS
, NULL
, HFILL
}},
3277 { &hf_SAPDIAG_SUPPORT_BIT_JAVA_BEANS
,
3278 { "Support Bit JAVA_BEANS", "sapdiag.diag.supportbits.JAVA_BEANS", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_JAVA_BEANS
, NULL
, HFILL
}},
3279 { &hf_SAPDIAG_SUPPORT_BIT_DPLOADONDEMAND
,
3280 { "Support Bit DPLOADONDEMAND", "sapdiag.diag.supportbits.DPLOADONDEMAND", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_DPLOADONDEMAND
, NULL
, HFILL
}},
3281 { &hf_SAPDIAG_SUPPORT_BIT_CTL_PROPCACHE
,
3282 { "Support Bit CTL_PROPCACHE", "sapdiag.diag.supportbits.CTL_PROPCACHE", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_CTL_PROPCACHE
, NULL
, HFILL
}},
3283 { &hf_SAPDIAG_SUPPORT_BIT_ENJOY_IMODEUUID
,
3284 { "Support Bit ENJOY_IMODEUUID", "sapdiag.diag.supportbits.ENJOY_IMODEUUID", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_ENJOY_IMODEUUID
, NULL
, HFILL
}},
3286 { &hf_SAPDIAG_SUPPORT_BIT_RFC_ASYNC_BLOB
,
3287 { "Support Bit RFC_ASYNC_BLOB", "sapdiag.diag.supportbits.RFC_ASYNC_BLOB", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_RFC_ASYNC_BLOB
, NULL
, HFILL
}},
3288 { &hf_SAPDIAG_SUPPORT_BIT_KEEP_SCROLLPOS
,
3289 { "Support Bit KEEP_SCROLLPOS", "sapdiag.diag.supportbits.KEEP_SCROLLPOS", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_KEEP_SCROLLPOS
, NULL
, HFILL
}},
3290 { &hf_SAPDIAG_SUPPORT_BIT_UNUSED_2
,
3291 { "Support Bit UNUSED_2", "sapdiag.diag.supportbits.UNUSED_2", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_UNUSED_2
, NULL
, HFILL
}},
3292 { &hf_SAPDIAG_SUPPORT_BIT_UNUSED_3
,
3293 { "Support Bit UNUSED_3", "sapdiag.diag.supportbits.UNUSED_3", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_UNUSED_3
, NULL
, HFILL
}},
3294 { &hf_SAPDIAG_SUPPORT_BIT_XML_PROPERTIES
,
3295 { "Support Bit XML_PROPERTIES", "sapdiag.diag.supportbits.XML_PROPERTIES", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_XML_PROPERTIES
, NULL
, HFILL
}},
3296 { &hf_SAPDIAG_SUPPORT_BIT_UNUSED_4
,
3297 { "Support Bit UNUSED_4", "sapdiag.diag.supportbits.UNUSED_4", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_UNUSED_4
, NULL
, HFILL
}},
3298 { &hf_SAPDIAG_SUPPORT_BIT_HEX_FIELD
,
3299 { "Support Bit HEX_FIELD", "sapdiag.diag.supportbits.HEX_FIELD", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_HEX_FIELD
, NULL
, HFILL
}},
3300 { &hf_SAPDIAG_SUPPORT_BIT_HAS_CACHE
,
3301 { "Support Bit HAS_CACHE", "sapdiag.diag.supportbits.HAS_CACHE", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_HAS_CACHE
, NULL
, HFILL
}},
3303 { &hf_SAPDIAG_SUPPORT_BIT_XML_PROP_TABLE
,
3304 { "Support Bit XML_PROP_TABLE", "sapdiag.diag.supportbits.XML_PROP_TABLE", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_XML_PROP_TABLE
, NULL
, HFILL
}},
3305 { &hf_SAPDIAG_SUPPORT_BIT_UNUSED_5
,
3306 { "Support Bit UNUSED_5", "sapdiag.diag.supportbits.UNUSED_5", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_UNUSED_5
, NULL
, HFILL
}},
3307 { &hf_SAPDIAG_SUPPORT_BIT_ENJOY_IMODEUUID2
,
3308 { "Support Bit ENJOY_IMODEUUID2", "sapdiag.diag.supportbits.ENJOY_IMODEUUID2", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_ENJOY_IMODEUUID2
, NULL
, HFILL
}},
3309 { &hf_SAPDIAG_SUPPORT_BIT_ITS
,
3310 { "Support Bit ITS", "sapdiag.diag.supportbits.ITS", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_ITS
, NULL
, HFILL
}},
3311 { &hf_SAPDIAG_SUPPORT_BIT_NO_EASYACCESS
,
3312 { "Support Bit NO_EASYACCESS", "sapdiag.diag.supportbits.NO_EASYACCESS", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_NO_EASYACCESS
, NULL
, HFILL
}},
3313 { &hf_SAPDIAG_SUPPORT_BIT_PROPERTYPUMP
,
3314 { "Support Bit PROPERTYPUMP", "sapdiag.diag.supportbits.PROPERTYPUMP", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_PROPERTYPUMP
, NULL
, HFILL
}},
3315 { &hf_SAPDIAG_SUPPORT_BIT_COOKIE
,
3316 { "Support Bit COOKIE", "sapdiag.diag.supportbits.COOKIE", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_COOKIE
, NULL
, HFILL
}},
3317 { &hf_SAPDIAG_SUPPORT_BIT_UNUSED_6
,
3318 { "Support Bit UNUSED_6", "sapdiag.diag.supportbits.UNUSED_6", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_UNUSED_6
, NULL
, HFILL
}},
3320 { &hf_SAPDIAG_SUPPORT_BIT_SUPPBIT_AREA_SIZE
,
3321 { "Support Bit SUPPBIT_AREA_SIZE", "sapdiag.diag.supportbits.SUPPBIT_AREA_SIZE", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_SUPPBIT_AREA_SIZE
, NULL
, HFILL
}},
3322 { &hf_SAPDIAG_SUPPORT_BIT_DPLOADONDEMAND_WRITE
,
3323 { "Support Bit DPLOADONDEMAND_WRITE", "sapdiag.diag.supportbits.DPLOADONDEMAND_WRITE", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_DPLOADONDEMAND_WRITE
, NULL
, HFILL
}},
3324 { &hf_SAPDIAG_SUPPORT_BIT_CONTROL_FOCUS
,
3325 { "Support Bit CONTROL_FOCUS", "sapdiag.diag.supportbits.CONTROL_FOCUS", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_CONTROL_FOCUS
, NULL
, HFILL
}},
3326 { &hf_SAPDIAG_SUPPORT_BIT_ENTRY_HISTORY
,
3327 { "Support Bit ENTRY_HISTORY", "sapdiag.diag.supportbits.ENTRY_HISTORY", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_ENTRY_HISTORY
, NULL
, HFILL
}},
3328 { &hf_SAPDIAG_SUPPORT_BIT_AUTO_CODEPAGE
,
3329 { "Support Bit AUTO_CODEPAGE", "sapdiag.diag.supportbits.AUTO_CODEPAGE", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_AUTO_CODEPAGE
, NULL
, HFILL
}},
3330 { &hf_SAPDIAG_SUPPORT_BIT_CACHED_VSETS
,
3331 { "Support Bit CACHED_VSETS", "sapdiag.diag.supportbits.CACHED_VSETS", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_CACHED_VSETS
, NULL
, HFILL
}},
3332 { &hf_SAPDIAG_SUPPORT_BIT_EMERGENCY_REPAIR
,
3333 { "Support Bit EMERGENCY_REPAIR", "sapdiag.diag.supportbits.EMERGENCY_REPAIR", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_EMERGENCY_REPAIR
, NULL
, HFILL
}},
3334 { &hf_SAPDIAG_SUPPORT_BIT_AREA2FRONT
,
3335 { "Support Bit AREA2FRONT", "sapdiag.diag.supportbits.AREA2FRONT", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_AREA2FRONT
, NULL
, HFILL
}},
3337 { &hf_SAPDIAG_SUPPORT_BIT_SCROLLBAR_WIDTH
,
3338 { "Support Bit SCROLLBAR_WIDTH", "sapdiag.diag.supportbits.SCROLLBAR_WIDTH", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_SCROLLBAR_WIDTH
, NULL
, HFILL
}},
3339 { &hf_SAPDIAG_SUPPORT_BIT_AUTORESIZE
,
3340 { "Support Bit AUTORESIZE", "sapdiag.diag.supportbits.AUTORESIZE", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_AUTORESIZE
, NULL
, HFILL
}},
3341 { &hf_SAPDIAG_SUPPORT_BIT_EDIT_VARLEN
,
3342 { "Support Bit EDIT_VARLEN", "sapdiag.diag.supportbits.EDIT_VARLEN", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_EDIT_VARLEN
, NULL
, HFILL
}},
3343 { &hf_SAPDIAG_SUPPORT_BIT_WORKPLACE
,
3344 { "Support Bit WORKPLACE", "sapdiag.diag.supportbits.WORKPLACE", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_WORKPLACE
, NULL
, HFILL
}},
3345 { &hf_SAPDIAG_SUPPORT_BIT_PRINTDATA
,
3346 { "Support Bit PRINTDATA", "sapdiag.diag.supportbits.PRINTDATA", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_PRINTDATA
, NULL
, HFILL
}},
3347 { &hf_SAPDIAG_SUPPORT_BIT_UNKNOWN_2
,
3348 { "Support Bit UNKNOWN_2", "sapdiag.diag.supportbits.UNKNOWN_2", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_UNKNOWN_2
, NULL
, HFILL
}},
3349 { &hf_SAPDIAG_SUPPORT_BIT_SINGLE_SESSION
,
3350 { "Support Bit SINGLE_SESSION", "sapdiag.diag.supportbits.SINGLE_SESSION", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_SINGLE_SESSION
, NULL
, HFILL
}},
3351 { &hf_SAPDIAG_SUPPORT_BIT_NOTIFY_NEWMODE
,
3352 { "Support Bit NOTIFY_NEWMODE", "sapdiag.diag.supportbits.NOTIFY_NEWMODE", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_NOTIFY_NEWMODE
, NULL
, HFILL
}},
3354 { &hf_SAPDIAG_SUPPORT_BIT_TOOLBAR_HEIGHT
,
3355 { "Support Bit TOOLBAR_HEIGHT", "sapdiag.diag.supportbits.TOOLBAR_HEIGHT", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_TOOLBAR_HEIGHT
, NULL
, HFILL
}},
3356 { &hf_SAPDIAG_SUPPORT_BIT_XMLPROP_CONTAINER
,
3357 { "Support Bit XMLPROP_CONTAINER", "sapdiag.diag.supportbits.XMLPROP_CONTAINER", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_XMLPROP_CONTAINER
, NULL
, HFILL
}},
3358 { &hf_SAPDIAG_SUPPORT_BIT_XMLPROP_DYNPRO
,
3359 { "Support Bit XMLPROP_DYNPRO", "sapdiag.diag.supportbits.XMLPROP_DYNPRO", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_XMLPROP_DYNPRO
, NULL
, HFILL
}},
3360 { &hf_SAPDIAG_SUPPORT_BIT_DP_HTTP_PUT
,
3361 { "Support Bit DP_HTTP_PUT", "sapdiag.diag.supportbits.DP_HTTP_PUT", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_DP_HTTP_PUT
, NULL
, HFILL
}},
3362 { &hf_SAPDIAG_SUPPORT_BIT_DYNAMIC_PASSPORT
,
3363 { "Support Bit DYNAMIC_PASSPORT", "sapdiag.diag.supportbits.DYNAMIC_PASSPORT", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_DYNAMIC_PASSPORT
, NULL
, HFILL
}},
3364 { &hf_SAPDIAG_SUPPORT_BIT_WEBGUI
,
3365 { "Support Bit WEBGUI", "sapdiag.diag.supportbits.WEBGUI", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_WEBGUI
, NULL
, HFILL
}},
3366 { &hf_SAPDIAG_SUPPORT_BIT_WEBGUI_HELPMODE
,
3367 { "Support Bit WEBGUI_HELPMODE", "sapdiag.diag.supportbits.WEBGUI_HELPMODE", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_WEBGUI_HELPMODE
, NULL
, HFILL
}},
3368 { &hf_SAPDIAG_SUPPORT_BIT_CONTROL_FOCUS_ON_LIST
,
3369 { "Support Bit CONTROL_FOCUS_ON_LIST", "sapdiag.diag.supportbits.CONTROL_FOCUS_ON_LIST", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_CONTROL_FOCUS_ON_LIST
, NULL
, HFILL
}},
3371 { &hf_SAPDIAG_SUPPORT_BIT_CBU_RBUDUMMY_2
,
3372 { "Support Bit CBU_RBUDUMMY_2", "sapdiag.diag.supportbits.CBU_RBUDUMMY_2", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_CBU_RBUDUMMY_2
, NULL
, HFILL
}},
3373 { &hf_SAPDIAG_SUPPORT_BIT_EOKDUMMY_1
,
3374 { "Support Bit EOKDUMMY_1", "sapdiag.diag.supportbits.EOKDUMMY_1", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_EOKDUMMY_1
, NULL
, HFILL
}},
3375 { &hf_SAPDIAG_SUPPORT_BIT_GUI_USER_SCRIPTING
,
3376 { "Support Bit GUI_USER_SCRIPTING", "sapdiag.diag.supportbits.GUI_USER_SCRIPTING", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_GUI_USER_SCRIPTING
, NULL
, HFILL
}},
3377 { &hf_SAPDIAG_SUPPORT_BIT_SLC
,
3378 { "Support Bit SLC", "sapdiag.diag.supportbits.SLC", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_SLC
, NULL
, HFILL
}},
3379 { &hf_SAPDIAG_SUPPORT_BIT_ACCESSIBILITY
,
3380 { "Support Bit ACCESSIBILITY", "sapdiag.diag.supportbits.ACCESSIBILITY", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_ACCESSIBILITY
, NULL
, HFILL
}},
3381 { &hf_SAPDIAG_SUPPORT_BIT_ECATT
,
3382 { "Support Bit ECATT", "sapdiag.diag.supportbits.ECATT", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_ECATT
, NULL
, HFILL
}},
3383 { &hf_SAPDIAG_SUPPORT_BIT_ENJOY_IMODEUUID3
,
3384 { "Support Bit ENJOY_IMODEUUID3", "sapdiag.diag.supportbits.ENJOY_IMODEUUID3", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_ENJOY_IMODEUUID3
, NULL
, HFILL
}},
3385 { &hf_SAPDIAG_SUPPORT_BIT_ENABLE_UTF8
,
3386 { "Support Bit ENABLE_UTF8", "sapdiag.diag.supportbits.ENABLE_UTF8", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_ENABLE_UTF8
, NULL
, HFILL
}},
3388 { &hf_SAPDIAG_SUPPORT_BIT_R3INFO_AUTOLOGOUT_TIME
,
3389 { "Support Bit R3INFO_AUTOLOGOUT_TIME", "sapdiag.diag.supportbits.R3INFO_AUTOLOGOUT_TIME", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_R3INFO_AUTOLOGOUT_TIME
, NULL
, HFILL
}},
3390 { &hf_SAPDIAG_SUPPORT_BIT_VARINFO_ICON_TITLE_LIST
,
3391 { "Support Bit VARINFO_ICON_TITLE_LIST", "sapdiag.diag.supportbits.VARINFO_ICON_TITLE_LIST", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_VARINFO_ICON_TITLE_LIST
, NULL
, HFILL
}},
3392 { &hf_SAPDIAG_SUPPORT_BIT_ENABLE_UTF16BE
,
3393 { "Support Bit ENABLE_UTF16BE", "sapdiag.diag.supportbits.ENABLE_UTF16BE", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_ENABLE_UTF16BE
, NULL
, HFILL
}},
3394 { &hf_SAPDIAG_SUPPORT_BIT_ENABLE_UTF16LE
,
3395 { "Support Bit ENABLE_UTF16LE", "sapdiag.diag.supportbits.ENABLE_UTF16LE", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_ENABLE_UTF16LE
, NULL
, HFILL
}},
3396 { &hf_SAPDIAG_SUPPORT_BIT_R3INFO_CODEPAGE_APP
,
3397 { "Support Bit R3INFO_CODEPAGE_APP", "sapdiag.diag.supportbits.R3INFO_CODEPAGE_APP", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_R3INFO_CODEPAGE_APP
, NULL
, HFILL
}},
3398 { &hf_SAPDIAG_SUPPORT_BIT_ENABLE_APPL4
,
3399 { "Support Bit ENABLE_APPL4", "sapdiag.diag.supportbits.ENABLE_APPL4", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_ENABLE_APPL4
, NULL
, HFILL
}},
3400 { &hf_SAPDIAG_SUPPORT_BIT_GUIPATCHLEVEL
,
3401 { "Support Bit GUIPATCHLEVEL", "sapdiag.diag.supportbits.GUIPATCHLEVEL", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_GUIPATCHLEVEL
, NULL
, HFILL
}},
3402 { &hf_SAPDIAG_SUPPORT_BIT_CBURBU_NEW_STATE
,
3403 { "Support Bit CBURBU_NEW_STATE", "sapdiag.diag.supportbits.CBURBU_NEW_STATE", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_CBURBU_NEW_STATE
, NULL
, HFILL
}},
3405 { &hf_SAPDIAG_SUPPORT_BIT_BINARY_EVENTID
,
3406 { "Support Bit BINARY_EVENTID", "sapdiag.diag.supportbits.BINARY_EVENTID", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_BINARY_EVENTID
, NULL
, HFILL
}},
3407 { &hf_SAPDIAG_SUPPORT_BIT_GUI_THEME
,
3408 { "Support Bit GUI_THEME", "sapdiag.diag.supportbits.GUI_THEME", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_GUI_THEME
, NULL
, HFILL
}},
3409 { &hf_SAPDIAG_SUPPORT_BIT_TOP_WINDOW
,
3410 { "Support Bit TOP_WINDOW", "sapdiag.diag.supportbits.TOP_WINDOW", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_TOP_WINDOW
, NULL
, HFILL
}},
3411 { &hf_SAPDIAG_SUPPORT_BIT_EVENT_DESCRIPTION_1
,
3412 { "Support Bit EVENT_DESCRIPTION_1", "sapdiag.diag.supportbits.EVENT_DESCRIPTION_1", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_EVENT_DESCRIPTION_1
, NULL
, HFILL
}},
3413 { &hf_SAPDIAG_SUPPORT_BIT_SPLITTER
,
3414 { "Support Bit SPLITTER", "sapdiag.diag.supportbits.SPLITTER", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_SPLITTER
, NULL
, HFILL
}},
3415 { &hf_SAPDIAG_SUPPORT_BIT_VALUE_4_HISTORY
,
3416 { "Support Bit VALUE_4_HISTORY", "sapdiag.diag.supportbits.VALUE_4_HISTORY", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_VALUE_4_HISTORY
, NULL
, HFILL
}},
3417 { &hf_SAPDIAG_SUPPORT_BIT_ACC_LIST
,
3418 { "Support Bit ACC_LIST", "sapdiag.diag.supportbits.ACC_LIST", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_ACC_LIST
, NULL
, HFILL
}},
3419 { &hf_SAPDIAG_SUPPORT_BIT_GUI_USER_SCRIPTING_INFO
,
3420 { "Support Bit GUI_USER_SCRIPTING_INFO", "sapdiag.diag.supportbits.GUI_USER_SCRIPTING_INFO", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_GUI_USER_SCRIPTING_INFO
, NULL
, HFILL
}},
3422 { &hf_SAPDIAG_SUPPORT_BIT_TEXTEDIT_STREAM
,
3423 { "Support Bit TEXTEDIT_STREAM", "sapdiag.diag.supportbits.TEXTEDIT_STREAM", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_TEXTEDIT_STREAM
, NULL
, HFILL
}},
3424 { &hf_SAPDIAG_SUPPORT_BIT_DYNT_NOFOCUS
,
3425 { "Support Bit DYNT_NOFOCUS", "sapdiag.diag.supportbits.DYNT_NOFOCUS", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_DYNT_NOFOCUS
, NULL
, HFILL
}},
3426 { &hf_SAPDIAG_SUPPORT_BIT_R3INFO_CODEPAGE_APP_1
,
3427 { "Support Bit R3INFO_CODEPAGE_APP_1", "sapdiag.diag.supportbits.R3INFO_CODEPAGE_APP_1", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_R3INFO_CODEPAGE_APP_1
, NULL
, HFILL
}},
3428 { &hf_SAPDIAG_SUPPORT_BIT_FRAME_1
,
3429 { "Support Bit FRAME_1", "sapdiag.diag.supportbits.FRAME_1", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_FRAME_1
, NULL
, HFILL
}},
3430 { &hf_SAPDIAG_SUPPORT_BIT_TICKET4GUI
,
3431 { "Support Bit TICKET4GUI", "sapdiag.diag.supportbits.TICKET4GUI", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_TICKET4GUI
, NULL
, HFILL
}},
3432 { &hf_SAPDIAG_SUPPORT_BIT_ACC_LIST_PROPS
,
3433 { "Support Bit ACC_LIST_PROPS", "sapdiag.diag.supportbits.ACC_LIST_PROPS", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_ACC_LIST_PROPS
, NULL
, HFILL
}},
3434 { &hf_SAPDIAG_SUPPORT_BIT_TABSEL_ATTRIB_INPUT
,
3435 { "Support Bit TABSEL_ATTRIB_INPUT", "sapdiag.diag.supportbits.TABSEL_ATTRIB_INPUT", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_TABSEL_ATTRIB_INPUT
, NULL
, HFILL
}},
3436 { &hf_SAPDIAG_SUPPORT_BIT_DEFAULT_TOOLTIP
,
3437 { "Support Bit DEFAULT_TOOLTIP", "sapdiag.diag.supportbits.DEFAULT_TOOLTIP", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_DEFAULT_TOOLTIP
, NULL
, HFILL
}},
3439 { &hf_SAPDIAG_SUPPORT_BIT_XML_PROP_TABLE_2
,
3440 { "Support Bit XML_PROP_TABLE_2", "sapdiag.diag.supportbits.XML_PROP_TABLE_2", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_XML_PROP_TABLE_2
, NULL
, HFILL
}},
3441 { &hf_SAPDIAG_SUPPORT_BIT_CBU_RBUDUMMY_3
,
3442 { "Support Bit CBU_RBUDUMMY_3", "sapdiag.diag.supportbits.CBU_RBUDUMMY_3", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_CBU_RBUDUMMY_3
, NULL
, HFILL
}},
3443 { &hf_SAPDIAG_SUPPORT_BIT_CELLINFO
,
3444 { "Support Bit CELLINFO", "sapdiag.diag.supportbits.CELLINFO", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_CELLINFO
, NULL
, HFILL
}},
3445 { &hf_SAPDIAG_SUPPORT_BIT_CONTROL_FOCUS_ON_LIST_2
,
3446 { "Support Bit CONTROL_FOCUS_ON_LIST_2", "sapdiag.diag.supportbits.CONTROL_FOCUS_ON_LIST_2", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_CONTROL_FOCUS_ON_LIST_2
, NULL
, HFILL
}},
3447 { &hf_SAPDIAG_SUPPORT_BIT_TABLE_COLUMNWIDTH_INPUT
,
3448 { "Support Bit TABLE_COLUMNWIDTH_INPUT", "sapdiag.diag.supportbits.TABLE_COLUMNWIDTH_INPUT", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_TABLE_COLUMNWIDTH_INPUT
, NULL
, HFILL
}},
3449 { &hf_SAPDIAG_SUPPORT_BIT_ITS_PLUGIN
,
3450 { "Support Bit ITS_PLUGIN", "sapdiag.diag.supportbits.ITS_PLUGIN", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_ITS_PLUGIN
, NULL
, HFILL
}},
3451 { &hf_SAPDIAG_SUPPORT_BIT_OBJECT_NAMES_4_LOGIN_PROCESS
,
3452 { "Support Bit OBJECT_NAMES_4_LOGIN_PROCESS", "sapdiag.diag.supportbits.OBJECT_NAMES_4_LOGIN_PROCESS", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_OBJECT_NAMES_4_LOGIN_PROCESS
, NULL
, HFILL
}},
3453 { &hf_SAPDIAG_SUPPORT_BIT_RFC_SERVER_4_GUI
,
3454 { "Support Bit RFC_SERVER_4_GUI", "sapdiag.diag.supportbits.RFC_SERVER_4_GUI", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_RFC_SERVER_4_GUI
, NULL
, HFILL
}},
3456 { &hf_SAPDIAG_SUPPORT_BIT_R3INFO_FLAGS_2
,
3457 { "Support Bit R3INFO_FLAGS_2", "sapdiag.diag.supportbits.R3INFO_FLAGS_2", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_R3INFO_FLAGS_2
, NULL
, HFILL
}},
3458 { &hf_SAPDIAG_SUPPORT_BIT_RCUI
,
3459 { "Support Bit RCUI", "sapdiag.diag.supportbits.RCUI", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_RCUI
, NULL
, HFILL
}},
3460 { &hf_SAPDIAG_SUPPORT_BIT_MENUENTRY_WITH_FCODE
,
3461 { "Support Bit MENUENTRY_WITH_FCODE", "sapdiag.diag.supportbits.MENUENTRY_WITH_FCODE", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_MENUENTRY_WITH_FCODE
, NULL
, HFILL
}},
3462 { &hf_SAPDIAG_SUPPORT_BIT_WEBSAPCONSOLE
,
3463 { "Support Bit WEBSAPCONSOLE", "sapdiag.diag.supportbits.WEBSAPCONSOLE", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_WEBSAPCONSOLE
, NULL
, HFILL
}},
3464 { &hf_SAPDIAG_SUPPORT_BIT_R3INFO_KERNEL_VERSION
,
3465 { "Support Bit R3INFO_KERNEL_VERSION", "sapdiag.diag.supportbits.R3INFO_KERNEL_VERSION", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_R3INFO_KERNEL_VERSION
, NULL
, HFILL
}},
3466 { &hf_SAPDIAG_SUPPORT_BIT_VARINFO_CONTAINER_LOOP
,
3467 { "Support Bit VARINFO_CONTAINER_LOOP", "sapdiag.diag.supportbits.VARINFO_CONTAINER_LOOP", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_VARINFO_CONTAINER_LOOP
, NULL
, HFILL
}},
3468 { &hf_SAPDIAG_SUPPORT_BIT_EOKDUMMY_2
,
3469 { "Support Bit EOKDUMMY_2", "sapdiag.diag.supportbits.EOKDUMMY_2", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_EOKDUMMY_2
, NULL
, HFILL
}},
3470 { &hf_SAPDIAG_SUPPORT_BIT_MESSAGE_INFO3
,
3471 { "Support Bit MESSAGE_INFO3", "sapdiag.diag.supportbits.MESSAGE_INFO3", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_MESSAGE_INFO3
, NULL
, HFILL
}},
3473 { &hf_SAPDIAG_SUPPORT_BIT_SBA2
,
3474 { "Support Bit SBA2", "sapdiag.diag.supportbits.SBA2", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_SBA2
, NULL
, HFILL
}},
3475 { &hf_SAPDIAG_SUPPORT_BIT_MAINAREA_SIZE
,
3476 { "Support Bit MAINAREA_SIZE", "sapdiag.diag.supportbits.MAINAREA_SIZE", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_MAINAREA_SIZE
, NULL
, HFILL
}},
3477 { &hf_SAPDIAG_SUPPORT_BIT_GUIPATCHLEVEL_2
,
3478 { "Support Bit GUIPATCHLEVEL_2", "sapdiag.diag.supportbits.GUIPATCHLEVEL_2", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_GUIPATCHLEVEL_2
, NULL
, HFILL
}},
3479 { &hf_SAPDIAG_SUPPORT_BIT_DISPLAY_SIZE
,
3480 { "Support Bit DISPLAY_SIZE", "sapdiag.diag.supportbits.DISPLAY_SIZE", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_DISPLAY_SIZE
, NULL
, HFILL
}},
3481 { &hf_SAPDIAG_SUPPORT_BIT_GUI_PACKET
,
3482 { "Support Bit GUI_PACKET", "sapdiag.diag.supportbits.GUI_PACKET", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_GUI_PACKET
, NULL
, HFILL
}},
3483 { &hf_SAPDIAG_SUPPORT_BIT_DIALOG_STEP_NUMBER
,
3484 { "Support Bit DIALOG_STEP_NUMBER", "sapdiag.diag.supportbits.DIALOG_STEP_NUMBER", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_DIALOG_STEP_NUMBER
, NULL
, HFILL
}},
3485 { &hf_SAPDIAG_SUPPORT_BIT_TC_KEEP_SCROLL_POSITION
,
3486 { "Support Bit TC_KEEP_SCROLL_POSITION", "sapdiag.diag.supportbits.TC_KEEP_SCROLL_POSITION", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_TC_KEEP_SCROLL_POSITION
, NULL
, HFILL
}},
3487 { &hf_SAPDIAG_SUPPORT_BIT_MESSAGE_SERVICE_REQUEST
,
3488 { "Support Bit MESSAGE_SERVICE_REQUEST", "sapdiag.diag.supportbits.MESSAGE_SERVICE_REQUEST", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_MESSAGE_SERVICE_REQUEST
, NULL
, HFILL
}},
3490 { &hf_SAPDIAG_SUPPORT_BIT_DYNT_FOCUS_FRAME
,
3491 { "Support Bit DYNT_FOCUS_FRAME", "sapdiag.diag.supportbits.DYNT_FOCUS_FRAME", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_DYNT_FOCUS_FRAME
, NULL
, HFILL
}},
3492 { &hf_SAPDIAG_SUPPORT_BIT_MAX_STRING_LEN
,
3493 { "Support Bit MAX_STRING_LEN", "sapdiag.diag.supportbits.MAX_STRING_LEN", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_MAX_STRING_LEN
, NULL
, HFILL
}},
3494 { &hf_SAPDIAG_SUPPORT_BIT_VARINFO_CONTAINER_1
,
3495 { "Support Bit VARINFO_CONTAINER_1", "sapdiag.diag.supportbits.VARINFO_CONTAINER_1", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_VARINFO_CONTAINER_1
, NULL
, HFILL
}},
3496 { &hf_SAPDIAG_SUPPORT_BIT_STD_TOOLBAR_ITEMS
,
3497 { "Support Bit STD_TOOLBAR_ITEMS", "sapdiag.diag.supportbits.STD_TOOLBAR_ITEMS", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_STD_TOOLBAR_ITEMS
, NULL
, HFILL
}},
3498 { &hf_SAPDIAG_SUPPORT_BIT_XMLPROP_LIST_DYNPRO
,
3499 { "Support Bit XMLPROP_LIST_DYNPRO", "sapdiag.diag.supportbits.XMLPROP_LIST_DYNPRO", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_XMLPROP_LIST_DYNPRO
, NULL
, HFILL
}},
3500 { &hf_SAPDIAG_SUPPORT_BIT_TRACE_GUI_CONNECT
,
3501 { "Support Bit TRACE_GUI_CONNECT", "sapdiag.diag.supportbits.TRACE_GUI_CONNECT", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_TRACE_GUI_CONNECT
, NULL
, HFILL
}},
3502 { &hf_SAPDIAG_SUPPORT_BIT_LIST_FULLWIDTH
,
3503 { "Support Bit LIST_FULLWIDTH", "sapdiag.diag.supportbits.LIST_FULLWIDTH", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_LIST_FULLWIDTH
, NULL
, HFILL
}},
3504 { &hf_SAPDIAG_SUPPORT_BIT_ALLWAYS_SEND_CLIENT
,
3505 { "Support Bit ALLWAYS_SEND_CLIENT", "sapdiag.diag.supportbits.ALLWAYS_SEND_CLIENT", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_ALLWAYS_SEND_CLIENT
, NULL
, HFILL
}},
3507 { &hf_SAPDIAG_SUPPORT_BIT_UNKNOWN_3
,
3508 { "Support Bit UNKNOWN_3", "sapdiag.diag.supportbits.UNKNOWN_3", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_UNKNOWN_3
, NULL
, HFILL
}},
3509 { &hf_SAPDIAG_SUPPORT_BIT_GUI_SIGNATURE_COLOR
,
3510 { "Support Bit GUI_SIGNATURE_COLOR", "sapdiag.diag.supportbits.GUI_SIGNATURE_COLOR", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_GUI_SIGNATURE_COLOR
, NULL
, HFILL
}},
3511 { &hf_SAPDIAG_SUPPORT_BIT_MAX_WSIZE
,
3512 { "Support Bit MAX_WSIZE", "sapdiag.diag.supportbits.MAX_WSIZE", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_MAX_WSIZE
, NULL
, HFILL
}},
3513 { &hf_SAPDIAG_SUPPORT_BIT_SAP_PERSONAS
,
3514 { "Support Bit SAP_PERSONAS", "sapdiag.diag.supportbits.SAP_PERSONAS", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_SAP_PERSONAS
, NULL
, HFILL
}},
3515 { &hf_SAPDIAG_SUPPORT_BIT_IDA_ALV
,
3516 { "Support Bit IDA_ALV", "sapdiag.diag.supportbits.IDA_ALV", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_IDA_ALV
, NULL
, HFILL
}},
3517 { &hf_SAPDIAG_SUPPORT_BIT_IDA_ALV_FRAGMENTS
,
3518 { "Support Bit IDA_ALV_FRAGMENTS", "sapdiag.diag.supportbits.IDA_ALV_FRAGMENTS", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_IDA_ALV_FRAGMENTS
, NULL
, HFILL
}},
3519 { &hf_SAPDIAG_SUPPORT_BIT_AMC
,
3520 { "Support Bit AMC", "sapdiag.diag.supportbits.AMC", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_AMC
, NULL
, HFILL
}},
3521 { &hf_SAPDIAG_SUPPORT_BIT_EXTMODE_FONT_METRIC
,
3522 { "Support Bit EXTMODE_FONT_METRIC", "sapdiag.diag.supportbits.EXTMODE_FONT_METRIC", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_EXTMODE_FONT_METRIC
, NULL
, HFILL
}},
3524 { &hf_SAPDIAG_SUPPORT_BIT_GROUPBOX
,
3525 { "Support Bit GROUPBOX", "sapdiag.diag.supportbits.GROUPBOX", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_GROUPBOX
, NULL
, HFILL
}},
3526 { &hf_SAPDIAG_SUPPORT_BIT_AGI_ID_TS_BUTTON
,
3527 { "Support Bit AGI_ID_TS_BUTTON", "sapdiag.diag.supportbits.AGI_ID_TS_BUTTON", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_AGI_ID_TS_BUTTON
, NULL
, HFILL
}},
3528 { &hf_SAPDIAG_SUPPORT_BIT_NO_FOCUS_ON_LIST
,
3529 { "Support Bit NO_FOCUS_ON_LIST", "sapdiag.diag.supportbits.NO_FOCUS_ON_LIST", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_NO_FOCUS_ON_LIST
, NULL
, HFILL
}},
3530 { &hf_SAPDIAG_SUPPORT_BIT_FIORI_MODE
,
3531 { "Support Bit FIORI_MODE", "sapdiag.diag.supportbits.FIORI_MODE", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_FIORI_MODE
, NULL
, HFILL
}},
3532 { &hf_SAPDIAG_SUPPORT_BIT_CONNECT_CHECK_DONE
,
3533 { "Support Bit CONNECT_CHECK_DONE", "sapdiag.diag.supportbits.CONNECT_CHECK_DONE", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_CONNECT_CHECK_DONE
, NULL
, HFILL
}},
3534 { &hf_SAPDIAG_SUPPORT_BIT_MSGINFO_WITH_CODEPAGE
,
3535 { "Support Bit MSGINFO_WITH_CODEPAGE", "sapdiag.diag.supportbits.MSGINFO_WITH_CODEPAGE", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_MSGINFO_WITH_CODEPAGE
, NULL
, HFILL
}},
3536 { &hf_SAPDIAG_SUPPORT_BIT_AGI_ID
,
3537 { "Support Bit AGI_ID", "sapdiag.diag.supportbits.AGI_ID", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_AGI_ID
, NULL
, HFILL
}},
3538 { &hf_SAPDIAG_SUPPORT_BIT_AGI_ID_TC
,
3539 { "Support Bit AGI_ID_TC", "sapdiag.diag.supportbits.AGI_ID_TC", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_AGI_ID_TC
, NULL
, HFILL
}},
3541 { &hf_SAPDIAG_SUPPORT_BIT_FIORI_TOOLBARS
,
3542 { "Support Bit FIORI_TOOLBARS", "sapdiag.diag.supportbits.FIORI_TOOLBARS", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_FIORI_TOOLBARS
, NULL
, HFILL
}},
3543 { &hf_SAPDIAG_SUPPORT_BIT_OBJECT_NAMES_ENFORCE
,
3544 { "Support Bit OBJECT_NAMES_ENFORCE", "sapdiag.diag.supportbits.OBJECT_NAMES_ENFORCE", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_OBJECT_NAMES_ENFORCE
, NULL
, HFILL
}},
3545 { &hf_SAPDIAG_SUPPORT_BIT_MESDUMMY_FLAGS_2_3
,
3546 { "Support Bit MESDUMMY_FLAGS_2_3", "sapdiag.diag.supportbits.MESDUMMY_FLAGS_2_3", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_MESDUMMY_FLAGS_2_3
, NULL
, HFILL
}},
3547 { &hf_SAPDIAG_SUPPORT_BIT_NWBC
,
3548 { "Support Bit NWBC", "sapdiag.diag.supportbits.NWBC", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_NWBC
, NULL
, HFILL
}},
3549 { &hf_SAPDIAG_SUPPORT_BIT_CONTAINER_LIST
,
3550 { "Support Bit CONTAINER_LIST", "sapdiag.diag.supportbits.CONTAINER_LIST", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_CONTAINER_LIST
, NULL
, HFILL
}},
3551 { &hf_SAPDIAG_SUPPORT_BIT_GUI_SYSTEM_COLOR
,
3552 { "Support Bit GUI_SYSTEM_COLOR", "sapdiag.diag.supportbits.GUI_SYSTEM_COLOR", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_GUI_SYSTEM_COLOR
, NULL
, HFILL
}},
3553 { &hf_SAPDIAG_SUPPORT_BIT_GROUPBOX_WITHOUT_BOTTOMLINE
,
3554 { "Support Bit GROUPBOX_WITHOUT_BOTTOMLINE", "sapdiag.diag.supportbits.GROUPBOX_WITHOUT_BOTTOMLINE", FT_BOOLEAN
, 8, NULL
, SAPDIAG_SUPPORT_BIT_GROUPBOX_WITHOUT_BOTTOMLINE
, NULL
, HFILL
}},
3557 { &hf_sapdiag_item_dynt_atom
,
3558 { "Dynt Atom", "sapdiag.item.value.dyntatom", FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}},
3559 { &hf_sapdiag_item_dynt_atom_item
,
3560 { "Dynt Atom Item", "sapdiag.item.value.dyntatom.item", FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}},
3561 { &hf_sapdiag_item_dynt_atom_item_etype
,
3562 { "Dynt Atom Item Type", "sapdiag.item.value.dyntatom.item.type", FT_UINT8
, BASE_DEC
, VALS(sapdiag_item_dynt_atom_item_etype_vals
), 0x0, NULL
, HFILL
}},
3564 /* Dynt Atom Attribute Flags */
3565 { &hf_sapdiag_item_dynt_atom_item_attr
,
3566 { "Dynt Atom Item Attributes", "sapdiag.item.value.dyntatom.item.attr", FT_UINT8
, BASE_HEX
, NULL
, 0x0, NULL
, HFILL
}},
3567 { &hf_sapdiag_item_dynt_atom_item_attr_DIAG_BSD_COMBOSTYLE
,
3568 { "Dynt Atom Item Attribute Combo Style", "sapdiag.item.value.dyntatom.item.attr.COMBOSTYLE", FT_BOOLEAN
, 8, NULL
, SAPDIAG_ATOM_ATTR_DIAG_BSD_COMBOSTYLE
, NULL
, HFILL
}},
3569 { &hf_sapdiag_item_dynt_atom_item_attr_DIAG_BSD_YES3D
,
3570 { "Dynt Atom Item Attribute Yes3D", "sapdiag.item.value.dyntatom.item.attr.YES3D", FT_BOOLEAN
, 8, NULL
, SAPDIAG_ATOM_ATTR_DIAG_BSD_YES3D
, NULL
, HFILL
}},
3571 { &hf_sapdiag_item_dynt_atom_item_attr_DIAG_BSD_PROPFONT
,
3572 { "Dynt Atom Item Attribute Prop Font", "sapdiag.item.value.dyntatom.item.attr.PROPFONT", FT_BOOLEAN
, 8, NULL
, SAPDIAG_ATOM_ATTR_DIAG_BSD_PROPFONT
, NULL
, HFILL
}},
3573 { &hf_sapdiag_item_dynt_atom_item_attr_DIAG_BSD_MATCHCODE
,
3574 { "Dynt Atom Item Attribute Match Code", "sapdiag.item.value.dyntatom.item.attr.MATCHCODE", FT_BOOLEAN
, 8, NULL
, SAPDIAG_ATOM_ATTR_DIAG_BSD_MATCHCODE
, NULL
, HFILL
}},
3575 { &hf_sapdiag_item_dynt_atom_item_attr_DIAG_BSD_JUSTRIGHT
,
3576 { "Dynt Atom Item Attribute Just Right", "sapdiag.item.value.dyntatom.item.attr.JUSTRIGHT", FT_BOOLEAN
, 8, NULL
, SAPDIAG_ATOM_ATTR_DIAG_BSD_JUSTRIGHT
, NULL
, HFILL
}},
3577 { &hf_sapdiag_item_dynt_atom_item_attr_DIAG_BSD_INTENSIFY
,
3578 { "Dynt Atom Item Attribute Intensify", "sapdiag.item.value.dyntatom.item.attr.INTENSIFY", FT_BOOLEAN
, 8, NULL
, SAPDIAG_ATOM_ATTR_DIAG_BSD_INTENSIFY
, NULL
, HFILL
}},
3579 { &hf_sapdiag_item_dynt_atom_item_attr_DIAG_BSD_INVISIBLE
,
3580 { "Dynt Atom Item Attribute Invisible", "sapdiag.item.value.dyntatom.item.attr.INVISIBLE", FT_BOOLEAN
, 8, NULL
, SAPDIAG_ATOM_ATTR_DIAG_BSD_INVISIBLE
, NULL
, HFILL
}},
3581 { &hf_sapdiag_item_dynt_atom_item_attr_DIAG_BSD_PROTECTED
,
3582 { "Dynt Atom Item Attribute Protected", "sapdiag.item.value.dyntatom.item.attr.PROTECTED", FT_BOOLEAN
, 8, NULL
, SAPDIAG_ATOM_ATTR_DIAG_BSD_PROTECTED
, NULL
, HFILL
}},
3584 /* Control Properties fields */
3585 { &hf_sapdiag_item_control_properties_id
,
3586 { "Control Properties ID", "sapdiag.item.value.controlproperties.id", FT_UINT16
, BASE_HEX
, VALS(sapdiag_item_control_properties_id_vals
), 0x0, NULL
, HFILL
}},
3587 { &hf_sapdiag_item_control_properties_value
,
3588 { "Control Properties Value", "sapdiag.item.value.controlproperties.value", FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}},
3590 /* UI Event Source fields */
3591 { &hf_sapdiag_item_ui_event_event_type
,
3592 { "UI Event Source Type", "sapdiag.item.value.uievent.type", FT_UINT16
, BASE_DEC
, VALS(sapdiag_item_ui_event_event_type_vals
), 0x0, NULL
, HFILL
}},
3593 { &hf_sapdiag_item_ui_event_control_type
,
3594 { "UI Event Control Type", "sapdiag.item.value.uievent.control", FT_UINT16
, BASE_DEC
, VALS(sapdiag_item_ui_event_control_type_vals
), 0x0, NULL
, HFILL
}},
3596 { &hf_sapdiag_item_ui_event_valid
,
3597 { "UI Event Valid", "sapdiag.item.value.uievent.valid", FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
3598 { &hf_sapdiag_item_ui_event_valid_MENU_POS
,
3599 { "UI Event Valid Menu Pos", "sapdiag.item.value.uievent.valid.MENU_POS", FT_BOOLEAN
, 8, NULL
, SAPDIAG_UI_EVENT_VALID_FLAG_MENU_POS
, NULL
, HFILL
}},
3600 { &hf_sapdiag_item_ui_event_valid_CONTROL_POS
,
3601 { "UI Event Valid Control Pos", "sapdiag.item.value.uievent.valid.CONTROL_POS", FT_BOOLEAN
, 8, NULL
, SAPDIAG_UI_EVENT_VALID_FLAG_CONTROL_POS
, NULL
, HFILL
}},
3602 { &hf_sapdiag_item_ui_event_valid_NAVIGATION_DATA
,
3603 { "UI Event Valid Navigation Data", "sapdiag.item.value.uievent.valid.NAVIGATION_DATA", FT_BOOLEAN
, 8, NULL
, SAPDIAG_UI_EVENT_VALID_FLAG_NAVIGATION_DATA
, NULL
, HFILL
}},
3604 { &hf_sapdiag_item_ui_event_valid_FUNCTIONKEY_DATA
,
3605 { "UI Event Valid Function Key Data", "sapdiag.item.value.uievent.valid.FUNCTIONKEY_DATA", FT_BOOLEAN
, 8, NULL
, SAPDIAG_UI_EVENT_VALID_FLAG_FUNCTIONKEY_DATA
, NULL
, HFILL
}},
3607 { &hf_sapdiag_item_ui_event_control_row
,
3608 { "UI Event Source Control Row", "sapdiag.item.value.uievent.controlrow", FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
3609 { &hf_sapdiag_item_ui_event_control_col
,
3610 { "UI Event Source Control Column", "sapdiag.item.value.uievent.controlcol", FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
3611 { &hf_sapdiag_item_ui_event_navigation_data
,
3612 { "UI Event Source Navigation Data", "sapdiag.item.value.uievent.navigationdata", FT_UINT32
, BASE_DEC
, VALS(sapdiag_item_ui_event_navigation_data_vals
), 0x0, NULL
, HFILL
}},
3613 { &hf_sapdiag_item_ui_event_data
,
3614 { "UI Event Source Data", "sapdiag.item.value.uievent.data", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
3615 { &hf_sapdiag_item_ui_event_container_nrs
,
3616 { "UI Event Source Container IDs Numbers", "sapdiag.item.value.uievent.containernrs", FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
3617 { &hf_sapdiag_item_ui_event_container
,
3618 { "UI Event Source Container ID", "sapdiag.item.value.uievent.container", FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
3621 { &hf_sapdiag_item_menu_entry
,
3622 { "Menu Entry", "sapdiag.item.value.menu", FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
,
3627 /* Setup protocol subtree array */
3628 static int *ett
[] = {
3632 /* Register the expert info */
3633 static ei_register_info ei
[] = {
3634 { &ei_sapdiag_item_unknown
, { "sapdiag.item.unknown", PI_UNDECODED
, PI_WARN
, "The Diag Item has a unknown type that is not dissected", EXPFILL
}},
3635 { &ei_sapdiag_item_partial
, { "sapdiag.item.unknown", PI_UNDECODED
, PI_WARN
, "The Diag Item is dissected partially", EXPFILL
}},
3636 { &ei_sapdiag_item_unknown_length
, { "sapdiag.item.length.unknown", PI_UNDECODED
, PI_WARN
, "Diag Type of unknown length", EXPFILL
}},
3637 { &ei_sapdiag_item_offset_invalid
, { "sapdiag.item.offset.invalid", PI_MALFORMED
, PI_ERROR
, "Invalid offset", EXPFILL
}},
3638 { &ei_sapdiag_item_length_invalid
, { "sapdiag.item.length.invalid", PI_MALFORMED
, PI_WARN
, "Item length is invalid", EXPFILL
}},
3639 { &ei_sapdiag_atom_item_unknown
, { "sapdiag.item.value.dyntatom.item.unknown", PI_UNDECODED
, PI_WARN
, "The Diag Atom has a unknown type that is not dissected", EXPFILL
}},
3640 { &ei_sapdiag_atom_item_partial
, { "sapdiag.item.value.dyntatom.item.unknown", PI_UNDECODED
, PI_WARN
, "The Diag Atom is dissected partially", EXPFILL
}},
3641 { &ei_sapdiag_atom_item_malformed
, { "sapdiag.item.value.dyntatom.invalid", PI_MALFORMED
, PI_WARN
, "The Diag Atom is malformed", EXPFILL
}},
3642 { &ei_sapdiag_dynt_focus_more_cont_ids
, { "sapdiag.item.value.uievent.containernrs.invalid", PI_MALFORMED
, PI_WARN
, "Number of Container IDs is invalid", EXPFILL
}},
3643 { &ei_sapdiag_password_field
, { "sapdiag.item.value.dyntatom.item.password", PI_SECURITY
, PI_WARN
, "Password field?", EXPFILL
}},
3646 module_t
*sapdiag_module
;
3647 expert_module_t
* sapdiag_expert
;
3649 /* Register the protocol */
3650 proto_sapdiag
= proto_register_protocol("SAP Diag Protocol", "SAPDIAG", "sapdiag");
3652 proto_register_field_array(proto_sapdiag
, hf
, array_length(hf
));
3653 proto_register_subtree_array(ett
, array_length(ett
));
3655 sapdiag_expert
= expert_register_protocol(proto_sapdiag
);
3656 expert_register_field_array(sapdiag_expert
, ei
, array_length(ei
));
3658 register_dissector("sapdiag", dissect_sapdiag
, proto_sapdiag
);
3660 /* Register the preferences */
3661 sapdiag_module
= prefs_register_protocol(proto_sapdiag
, proto_reg_handoff_sapdiag
);
3663 range_convert_str(wmem_epan_scope(), &global_sapdiag_port_range
, SAPDIAG_PORT_RANGE
, MAX_TCP_PORT
);
3664 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
")", &global_sapdiag_port_range
, MAX_TCP_PORT
);
3666 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
);
3668 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
);
3670 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
);
3675 * Helpers for dealing with the port range
3677 static void range_delete_callback (uint32_t port
, void *ptr _U_
)
3679 dissector_delete_uint("sapni.port", port
, sapdiag_handle
);
3682 static void range_add_callback (uint32_t port
, void *ptr _U_
)
3684 dissector_add_uint("sapni.port", port
, sapdiag_handle
);
3688 * Register Hand off for the SAP Diag Protocol
3691 proto_reg_handoff_sapdiag(void)
3693 static range_t
*sapdiag_port_range
;
3694 static bool initialized
= false;
3697 sapdiag_handle
= create_dissector_handle(dissect_sapdiag
, proto_sapdiag
);
3700 range_foreach(sapdiag_port_range
, range_delete_callback
, NULL
);
3701 wmem_free(wmem_epan_scope(), sapdiag_port_range
);
3704 sapdiag_port_range
= range_copy(wmem_epan_scope(), global_sapdiag_port_range
);
3705 range_foreach(sapdiag_port_range
, range_add_callback
, NULL
);
3709 * Editor modelines - https://www.wireshark.org/tools/modelines.html
3714 * indent-tabs-mode: t
3717 * vi: set shiftwidth=8 tabstop=8 noexpandtab:
3718 * :indentSize=8:tabSize=8:noTabs=false: