Bug Summary

File:builds/wireshark/wireshark/epan/dissectors/packet-mq.c
Warning:line 2702, column 17
Value stored to 'nofs' is never read

Annotated Source Code

Press '?' to see keyboard shortcuts

clang -cc1 -cc1 -triple x86_64-pc-linux-gnu -analyze -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name packet-mq.c -analyzer-checker=core -analyzer-checker=apiModeling -analyzer-checker=unix -analyzer-checker=deadcode -analyzer-checker=security.insecureAPI.UncheckedReturn -analyzer-checker=security.insecureAPI.getpw -analyzer-checker=security.insecureAPI.gets -analyzer-checker=security.insecureAPI.mktemp -analyzer-checker=security.insecureAPI.mkstemp -analyzer-checker=security.insecureAPI.vfork -analyzer-checker=nullability.NullPassedToNonnull -analyzer-checker=nullability.NullReturnedFromNonnull -analyzer-output plist -w -setup-static-analyzer -mrelocation-model pic -pic-level 2 -fhalf-no-semantic-interposition -fno-delete-null-pointer-checks -mframe-pointer=all -relaxed-aliasing -fmath-errno -ffp-contract=on -fno-rounding-math -ffloat16-excess-precision=fast -fbfloat16-excess-precision=fast -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fdebug-compilation-dir=/builds/wireshark/wireshark/build -fcoverage-compilation-dir=/builds/wireshark/wireshark/build -resource-dir /usr/lib/llvm-18/lib/clang/18 -isystem /usr/include/glib-2.0 -isystem /usr/lib/x86_64-linux-gnu/glib-2.0/include -isystem /usr/include/mit-krb5 -isystem /usr/include/libxml2 -isystem /builds/wireshark/wireshark/build/epan/dissectors -isystem /builds/wireshark/wireshark/epan/dissectors -isystem /builds/wireshark/wireshark/epan -D G_DISABLE_DEPRECATED -D G_DISABLE_SINGLE_INCLUDES -D WS_BUILD_DLL -D WS_DEBUG -D WS_DEBUG_UTF_8 -I /builds/wireshark/wireshark/build -I /builds/wireshark/wireshark -I /builds/wireshark/wireshark/include -D _GLIBCXX_ASSERTIONS -internal-isystem /usr/lib/llvm-18/lib/clang/18/include -internal-isystem /usr/local/include -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/14/../../../../x86_64-linux-gnu/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -fmacro-prefix-map=/builds/wireshark/wireshark/= -fmacro-prefix-map=/builds/wireshark/wireshark/build/= -fmacro-prefix-map=../= -Wno-format-truncation -Wno-format-nonliteral -Wno-pointer-sign -std=gnu11 -ferror-limit 19 -fvisibility=hidden -fwrapv -fstrict-flex-arrays=3 -stack-protector 2 -fstack-clash-protection -fcf-protection=full -fgnuc-version=4.2.1 -fskip-odr-check-in-gmf -fexceptions -fcolor-diagnostics -analyzer-output=html -dwarf-debug-flags /usr/lib/llvm-18/bin/clang -### --analyze -x c -D G_DISABLE_DEPRECATED -D G_DISABLE_SINGLE_INCLUDES -D WS_BUILD_DLL -D WS_DEBUG -D WS_DEBUG_UTF_8 -I /builds/wireshark/wireshark/build -I /builds/wireshark/wireshark -I /builds/wireshark/wireshark/include -isystem /usr/include/glib-2.0 -isystem /usr/lib/x86_64-linux-gnu/glib-2.0/include -isystem /usr/include/mit-krb5 -isystem /usr/include/libxml2 -isystem /builds/wireshark/wireshark/build/epan/dissectors -isystem /builds/wireshark/wireshark/epan/dissectors -isystem /builds/wireshark/wireshark/epan -fvisibility=hidden -fexcess-precision=fast -fstrict-flex-arrays=3 -fstack-clash-protection -fcf-protection=full -D _GLIBCXX_ASSERTIONS -fstack-protector-strong -fno-delete-null-pointer-checks -fno-strict-overflow -fno-strict-aliasing -fexceptions -Wno-format-truncation -Wno-format-nonliteral -fdiagnostics-color=always -Wno-pointer-sign -fmacro-prefix-map=/builds/wireshark/wireshark/= -fmacro-prefix-map=/builds/wireshark/wireshark/build/= -fmacro-prefix-map=../= -std=gnu11 -fPIC /builds/wireshark/wireshark/epan/dissectors/packet-mq.c -o /builds/wireshark/wireshark/sbout/2025-06-28-100251-3847-1 -Xclang -analyzer-output=html -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /builds/wireshark/wireshark/sbout/2025-06-28-100251-3847-1 -x c /builds/wireshark/wireshark/epan/dissectors/packet-mq.c
1/* packet-mq.c
2 * Routines for IBM WebSphere MQ packet dissection
3 *
4 * metatech <metatechbe@gmail.com>
5 * Robert Grange <robionekenobi@bluewin.ch>
6 *
7 * Wireshark - Network traffic analyzer
8 * By Gerald Combs <gerald@wireshark.org>
9 * Copyright 1998 Gerald Combs
10 *
11 * SPDX-License-Identifier: GPL-2.0-or-later
12 */
13
14 /* WebSphere MQ in a nutshell
15 *
16 * IBM WebSphere MQ (formerly IBM MQSeries) is an asynchronous proprietary messaging middleware that is
17 * based on message queues.
18 * MQ can run on more than 35 platforms, amongst which UNIX, Windows and mainframes.
19 * MQ can be transported on top of TCP, UDP, HTTP, NetBIOS, SPX, SNA LU 6.2, DECnet.
20 * MQ has language bindings for C, C++, Java, .NET, COBOL, PL/I, OS/390 assembler, TAL, Visual Basic.
21 *
22 * The basic MQ topology is on one side the queue manager which hosts the queues. On the other side the
23 * applications connect to the queue manager, open a queue, and put or get messages to/from that queue.
24 *
25 * The MQ middleware allows very generic operations (send, receive) and can be compared to the
26 * socket API in terms of genericity, but it is more abstract and offers higher-level functionalities
27 * (eg transactions, ...)
28 *
29 * The MQ middleware is not really intended to be run over public networks between parties
30 * that do not know each other in advance, but is rather used on private corporate networks
31 * between business applications (it can be compared to a database server for that aspect).
32 *
33 * The wire format of an MQ segment is a sequence of structures.
34 * Most structures start with a 4-letter struct identifier.
35 * MQ is a fixed-sized format, most fields have maximum lengths defined in the MQ API.
36 * MQ is popular on mainframes because it was available before TCP/IP.
37 * MQ supports both ASCII-based and EBCDIC-based character sets.
38 *
39 * MQ API documentation is called "WebSphere MQ Application Programming
40 * Reference"
41 *
42 * See:
43 *
44 * https://www.ibm.com/docs/en/ibm-mq/7.5?topic=structure-application-programming-reference
45 *
46 * Possible structures combinations :
47 * TSH [ ID ^ UID ^ CONN ^ INQ ^ OD ]
48 * TSH MSH XQH MD [ PAYLOAD ]
49 * TSH [OD] MD [ GMO ^ PMO ] [ [XQH MD] PAYLOAD ]
50 * TSH [ SPQU ^ SPPU ^ SPGU ^ SPAU [ SPQI ^ SPQO ^ SPPI ^ SPPO ^ SPGI ^ SPGO ^ SPAI ^ SPAO]]
51 * TSH [ XA ] [ XINFO | XID ]
52 * where PAYLOAD = [ DH ] [ DLH ] [ MDE ] BUFF
53 *
54 * This dissector is a beta version. To be improved
55 * - Translate the integers/flags into their descriptions
56 * - Find the semantics of the unknown fields
57 * - Display EBCDIC strings as ASCII
58 * - Packets which structures built on different platforms
59 */
60
61#include "config.h"
62
63#include <epan/packet.h>
64#include <epan/ptvcursor.h>
65#include <epan/reassemble.h>
66#include <epan/expert.h>
67#include <epan/prefs.h>
68#include <epan/strutil.h>
69#include <epan/tfs.h>
70#include <wsutil/array.h>
71
72#include <wsutil/ws_roundup.h>
73
74#include "packet-windows-common.h"
75#include "packet-tcp.h"
76#include "packet-tls.h"
77
78#include "packet-mq.h"
79
80void proto_register_mq(void);
81void proto_reg_handoff_mq(void);
82
83static int proto_mq;
84static int hf_mq_tsh_StructID;
85static int hf_mq_tsh_mqseglen;
86static int hf_mq_tsh_convid;
87static int hf_mq_tsh_requestid;
88static int hf_mq_tsh_byteorder;
89static int hf_mq_tsh_opcode;
90static int hf_mq_tsh_ctlflgs1;
91
92static int hf_mq_tsh_ctlflgs2;
93static int hf_mq_tsh_luwid;
94static int hf_mq_tsh_encoding;
95
96static int hf_mq_tsh_ccsid;
97static int hf_mq_tsh_reserved;
98
99/* Transmission Segment Control Flags 1 */
100static int hf_mq_tsh_tcf_confirmreq;
101static int hf_mq_tsh_tcf_error;
102static int hf_mq_tsh_tcf_reqclose;
103static int hf_mq_tsh_tcf_closechann;
104static int hf_mq_tsh_tcf_first;
105static int hf_mq_tsh_tcf_last;
106static int hf_mq_tsh_tcf_reqacc;
107static int hf_mq_tsh_tcf_dlq;
108static int* const pf_flds_tcf[] =
109{
110 &hf_mq_tsh_tcf_dlq,
111 &hf_mq_tsh_tcf_reqacc,
112 &hf_mq_tsh_tcf_last,
113 &hf_mq_tsh_tcf_first,
114 &hf_mq_tsh_tcf_closechann,
115 &hf_mq_tsh_tcf_reqclose,
116 &hf_mq_tsh_tcf_error,
117 &hf_mq_tsh_tcf_confirmreq,
118 NULL((void*)0)
119};
120
121/* Transmission Segment Control Flags 2 */
122static int hf_mq_tsh_tcf2_HdrComp;
123static int hf_mq_tsh_tcf2_MsgComp;
124static int hf_mq_tsh_tcf2_CSH;
125static int hf_mq_tsh_tcf2_CmitIntv;
126static int* const pf_flds_tcf2[] =
127{
128 &hf_mq_tsh_tcf2_CmitIntv,
129 &hf_mq_tsh_tcf2_CSH,
130 &hf_mq_tsh_tcf2_MsgComp,
131 &hf_mq_tsh_tcf2_HdrComp,
132 NULL((void*)0)
133};
134
135static int hf_mq_api_replylen;
136static int hf_mq_api_compcode;
137static int hf_mq_api_reascode;
138static int hf_mq_api_objecthdl;
139static int hf_mq_socket_conversid;
140static int hf_mq_socket_requestid;
141static int hf_mq_socket_type;
142static int hf_mq_socket_parm1;
143static int hf_mq_socket_parm2;
144static int hf_mq_msh_StructID;
145static int hf_mq_msh_seqnum;
146static int hf_mq_msh_datalength;
147static int hf_mq_msh_unknown1;
148static int hf_mq_msh_msglength;
149static int hf_mq_xqh_StructID;
150static int hf_mq_xqh_version;
151static int hf_mq_xqh_remoteq;
152static int hf_mq_xqh_remoteqmgr;
153
154static int hf_mq_id_StructID;
155static int hf_mq_id_FapLevel;
156static int hf_mq_id_cf1;
157static int hf_mq_id_ecf1;
158static int hf_mq_id_ief1;
159static int hf_mq_id_Reserved;
160static int hf_mq_id_MaxMsgBatch;
161static int hf_mq_id_MaxTrSize;
162static int hf_mq_id_MaxMsgSize;
163static int hf_mq_id_SeqWrapVal;
164static int hf_mq_id_channel;
165static int hf_mq_id_cf2;
166static int hf_mq_id_ecf2;
167static int hf_mq_id_ccsid;
168static int hf_mq_id_qmgrname;
169static int hf_mq_id_HBInterval;
170static int hf_mq_id_EFLLength;
171static int hf_mq_id_ief2;
172static int hf_mq_id_Reserved1;
173static int hf_mq_id_HdrCprsLst;
174static int hf_mq_id_MsgCprsLst;
175static int hf_mq_id_Reserved2;
176static int hf_mq_id_SSLKeyRst;
177static int hf_mq_id_ConvBySkt;
178static int hf_mq_id_cf3;
179static int hf_mq_id_ecf3;
180static int hf_mq_id_Reserved3;
181static int hf_mq_id_ProcessId;
182static int hf_mq_id_ThreadId;
183static int hf_mq_id_TraceId;
184static int hf_mq_id_ProdId;
185static int hf_mq_id_mqmid;
186static int hf_mq_id_pal;
187static int hf_mq_id_r;
188
189/* Initial Data - Capability Flag 1 */
190static int hf_mq_id_cf1_msgseq;
191static int hf_mq_id_cf1_convcap;
192static int hf_mq_id_cf1_splitmsg;
193static int hf_mq_id_cf1_RqstInit;
194static int hf_mq_id_cf1_RqstSecu;
195static int hf_mq_id_cf1_mqreq;
196static int hf_mq_id_cf1_svrsec;
197static int hf_mq_id_cf1_runtime;
198static int* const pf_flds_cf1[] =
199{
200 &hf_mq_id_cf1_runtime,
201 &hf_mq_id_cf1_svrsec,
202 &hf_mq_id_cf1_mqreq,
203 &hf_mq_id_cf1_RqstSecu,
204 &hf_mq_id_cf1_RqstInit,
205 &hf_mq_id_cf1_splitmsg,
206 &hf_mq_id_cf1_convcap,
207 &hf_mq_id_cf1_msgseq,
208 NULL((void*)0)
209};
210
211/* Initial Data - Init Error Flag 1 */
212static int hf_mq_id_ief1_ccsid;
213static int hf_mq_id_ief1_enc;
214static int hf_mq_id_ief1_mxtrsz;
215static int hf_mq_id_ief1_fap;
216static int hf_mq_id_ief1_mxmsgsz;
217static int hf_mq_id_ief1_mxmsgpb;
218static int hf_mq_id_ief1_seqwrap;
219static int hf_mq_id_ief1_hbint;
220static int* const pf_flds_ef1[] =
221{
222 &hf_mq_id_ief1_hbint,
223 &hf_mq_id_ief1_seqwrap,
224 &hf_mq_id_ief1_mxmsgpb,
225 &hf_mq_id_ief1_mxmsgsz,
226 &hf_mq_id_ief1_fap,
227 &hf_mq_id_ief1_mxtrsz,
228 &hf_mq_id_ief1_enc,
229 &hf_mq_id_ief1_ccsid,
230 NULL((void*)0)
231};
232
233/* Initial Data - Capability Flag 2 */
234static int hf_mq_id_cf2_CanDstLst;
235static int hf_mq_id_cf2_FstMsgReq;
236static int hf_mq_id_cf2_RespConv;
237static int hf_mq_id_cf2_XARequest;
238static int hf_mq_id_cf2_XARunTApp;
239static int hf_mq_id_cf2_SPIRqst;
240static int hf_mq_id_cf2_DualUOW;
241static int hf_mq_id_cf2_CanTrcRte;
242static int* const pf_flds_cf2[] =
243{
244 &hf_mq_id_cf2_CanTrcRte,
245 &hf_mq_id_cf2_SPIRqst,
246 &hf_mq_id_cf2_XARunTApp,
247 &hf_mq_id_cf2_XARequest,
248 &hf_mq_id_cf2_DualUOW,
249 &hf_mq_id_cf2_RespConv,
250 &hf_mq_id_cf2_FstMsgReq,
251 &hf_mq_id_cf2_CanDstLst,
252 NULL((void*)0)
253};
254
255/* Initial Data - Init Error Flag 2 */
256static int hf_mq_id_ief2_HdrCmpLst;
257static int hf_mq_id_ief2_MsgCmpLst;
258static int hf_mq_id_ief2_SSLReset;
259static int* const pf_flds_ef2[] =
260{
261 &hf_mq_id_ief2_SSLReset,
262 &hf_mq_id_ief2_MsgCmpLst,
263 &hf_mq_id_ief2_HdrCmpLst,
264 NULL((void*)0)
265};
266
267/* Initial Data - Capability Flag 3 */
268static int hf_mq_id_cf3_CanMsgPrp;
269static int hf_mq_id_cf3_CanMulticast;
270static int hf_mq_id_cf3_PropIntSep;
271static int hf_mq_id_cf3_MPlxSyGet;
272static int hf_mq_id_cf3_ProtAlgorit;
273static int hf_mq_id_cf3_CanGenConnTag;
274
275static int* const pf_flds_cf3[] =
276{
277 &hf_mq_id_cf3_CanGenConnTag,
278 &hf_mq_id_cf3_ProtAlgorit,
279 &hf_mq_id_cf3_MPlxSyGet,
280 &hf_mq_id_cf3_PropIntSep,
281 &hf_mq_id_cf3_CanMulticast,
282 &hf_mq_id_cf3_CanMsgPrp,
283 NULL((void*)0)
284};
285
286static int hf_mq_uid_StructID;
287static int hf_mq_uid_userid;
288static int hf_mq_uid_password;
289static int hf_mq_uid_longuserid;
290static int hf_mq_sidlen;
291static int hf_mq_sidtyp;
292static int hf_mq_securityid;
293
294static int hf_mq_conn_QMgr;
295static int hf_mq_conn_appname;
296static int hf_mq_conn_apptype;
297static int hf_mq_conn_acttoken;
298static int hf_mq_conn_Xoptions;
299static int hf_mq_conn_options;
300
301/* Version 1 */
302static int hf_mq_fapmqcno_structid;
303static int hf_mq_fapmqcno_version;
304static int hf_mq_fapmqcno_capflags;
305static int hf_mq_fapmqcno_conntag;
306/* Version 2 */
307static int hf_mq_fapmqcno_retconntag;
308/* Version 3 */
309static int hf_mq_fapmqcno_type;
310static int hf_mq_fapmqcno_timeout;
311static int hf_mq_fapmqcno_balopts;
312/* Version 4 */
313
314/* Version 1 */
315static int hf_mq_fcno_StructID;
316static int hf_mq_fcno_version;
317static int hf_mq_fcno_options;
318
319
320/* FCNO connect options */
321
322static int hf_mq_fcno_opt_FASTPATH_BINDING;
323static int hf_mq_fcno_opt_SERIALIZE_CONNTAG_QMGR;
324static int hf_mq_fcno_opt_SERIALIZE_CONNTAG_QSG;
325static int hf_mq_fcno_opt_RESTRICT_CONNTAG_QMGR;
326static int hf_mq_fcno_opt_RESTRICT_CONNTAG_QSG;
327static int hf_mq_fcno_opt_HANDLE_SHARE_NONE;
328static int hf_mq_fcno_opt_HANDLE_SHARE_BLOCK;
329static int hf_mq_fcno_opt_HANDLE_SHARE_NOBLOCK;
330static int hf_mq_fcno_opt_SHARED_BINDING;
331static int hf_mq_fcno_opt_ISOLATE_BINDING;
332static int hf_mq_fcno_opt_LOCAL_BINDING;
333static int hf_mq_fcno_opt_CLIENT_BINDING;
334static int hf_mq_fcno_opt_ACCNT_MQI_ENABLED;
335static int hf_mq_fcno_opt_ACCNT_MQI_DISABLED;
336static int hf_mq_fcno_opt_ACCNT_Q_ENABLED;
337static int hf_mq_fcno_opt_ACCNT_Q_DISABLED;
338static int hf_mq_fcno_opt_NO_CONV_SHARING;
339static int hf_mq_fcno_opt_ALL_CONVS_SHARE;
340static int hf_mq_fcno_opt_CD_FOR_OUTPUT_ONLY;
341static int hf_mq_fcno_opt_USE_CD_SELECTION;
342static int hf_mq_fcno_opt_GENERATE_CONN_TAG;
343static int hf_mq_fcno_opt_RECONNECT;
344static int hf_mq_fcno_opt_RECONNECT_DISABLED;
345static int hf_mq_fcno_opt_RECONNECT_Q_MGR;
346static int hf_mq_fcno_opt_ACTIVITY_TRACE_ENABLED;
347static int hf_mq_fcno_opt_ACTIVITY_TRACE_DISABLED;
348
349static int* const pf_flds_fcno_opt[] =
350{
351 &hf_mq_fcno_opt_ACTIVITY_TRACE_DISABLED,
352 &hf_mq_fcno_opt_ACTIVITY_TRACE_ENABLED,
353 &hf_mq_fcno_opt_RECONNECT_Q_MGR,
354 &hf_mq_fcno_opt_RECONNECT_DISABLED,
355 &hf_mq_fcno_opt_RECONNECT,
356 &hf_mq_fcno_opt_GENERATE_CONN_TAG,
357 &hf_mq_fcno_opt_USE_CD_SELECTION,
358 &hf_mq_fcno_opt_CD_FOR_OUTPUT_ONLY,
359 &hf_mq_fcno_opt_ALL_CONVS_SHARE,
360 &hf_mq_fcno_opt_NO_CONV_SHARING,
361 &hf_mq_fcno_opt_ACCNT_Q_DISABLED,
362 &hf_mq_fcno_opt_ACCNT_Q_ENABLED,
363 &hf_mq_fcno_opt_ACCNT_MQI_DISABLED,
364 &hf_mq_fcno_opt_ACCNT_MQI_ENABLED,
365 &hf_mq_fcno_opt_CLIENT_BINDING,
366 &hf_mq_fcno_opt_LOCAL_BINDING,
367 &hf_mq_fcno_opt_ISOLATE_BINDING,
368 &hf_mq_fcno_opt_SHARED_BINDING,
369 &hf_mq_fcno_opt_HANDLE_SHARE_NOBLOCK,
370 &hf_mq_fcno_opt_HANDLE_SHARE_BLOCK,
371 &hf_mq_fcno_opt_HANDLE_SHARE_NONE,
372 &hf_mq_fcno_opt_RESTRICT_CONNTAG_QSG,
373 &hf_mq_fcno_opt_RESTRICT_CONNTAG_QMGR,
374 &hf_mq_fcno_opt_SERIALIZE_CONNTAG_QSG,
375 &hf_mq_fcno_opt_SERIALIZE_CONNTAG_QMGR,
376 &hf_mq_fcno_opt_FASTPATH_BINDING,
377 NULL((void*)0)
378};
379
380/* ConTag_xxx */
381static int hf_mq_fcno_contagsr;
382
383/* Version 2 */
384static int hf_mq_fcno_mqcdofs;
385static int hf_mq_fcno_mqcdptr;
386static int hf_mq_fcno_mqcdptr64;
387
388/* Version 3 */
389static int hf_mq_fcno_conn_tag;
390
391/* Version 4 */
392static int hf_mq_fcno_sslcfgofs;
393static int hf_mq_fcno_sslcfgptr;
394static int hf_mq_fcno_sslcfgptr64;
395
396/* Version 5 */
397static int hf_mq_fcno_connid;
398static int hf_mq_fcno_secprmofs;
399static int hf_mq_fcno_secprmptr;
400static int hf_mq_fcno_secprmptr64;
401
402/* Version 6 */
403static int hf_mq_fcno_ccdturlofs;
404static int hf_mq_fcno_ccdturlptr;
405static int hf_mq_fcno_ccdturlptr64;
406static int hf_mq_fcno_ccdturllen;
407static int hf_mq_fcno_reserved;
408
409/* Version 7 */
410static int hf_mq_fcno_applname;
411static int hf_mq_fcno_reserved2;
412
413/* Version 8 */
414static int hf_mq_fcno_balprmofs;
415static int hf_mq_fcno_balprmptr;
416static int hf_mq_fcno_balprmptr64;
417static int hf_mq_fcno_reserved3;
418
419/* After FCNO structure */
420static int hf_mq_conn_prodid;
421static int hf_mq_conn_retconn_tag;
422static int hf_mq_conn_unknowbyt;
423static int hf_mq_conn_unknowstr;
424static int hf_mq_conn_mqmid;
425
426static int hf_mq_inq_nbsel;
427static int hf_mq_inq_nbint;
428static int hf_mq_inq_charlen;
429static int hf_mq_inq_sel;
430static int hf_mq_inq_intvalue;
431static int hf_mq_inq_charvalues;
432
433static int hf_mq_spi_verb;
434static int hf_mq_spi_version;
435static int hf_mq_spi_length;
436static int hf_mq_spi_base_StructID;
437static int hf_mq_spi_base_version;
438static int hf_mq_spi_base_length;
439static int hf_mq_spi_spqo_nbverb;
440static int hf_mq_spi_spqo_verbid;
441static int hf_mq_spi_spqo_maxiover;
442static int hf_mq_spi_spqo_maxinver;
443static int hf_mq_spi_spqo_maxouver;
444static int hf_mq_spi_spqo_flags;
445static int hf_mq_spi_spai_mode;
446static int hf_mq_spi_spai_unknown1;
447static int hf_mq_spi_spai_unknown2;
448static int hf_mq_spi_spai_msgid;
449static int hf_mq_spi_spgi_batchsz;
450static int hf_mq_spi_spgi_batchint;
451static int hf_mq_spi_spgi_maxmsgsz;
452static int hf_mq_spi_spgo_options;
453static int hf_mq_spi_spgo_size;
454
455static int hf_mq_spi_opt_blank;
456static int hf_mq_spi_opt_syncp;
457static int hf_mq_spi_opt_deferred;
458static int* const pf_flds_spiopt[] =
459{
460 &hf_mq_spi_opt_deferred,
461 &hf_mq_spi_opt_syncp,
462 &hf_mq_spi_opt_blank,
463 NULL((void*)0)
464};
465
466static int hf_mq_put_length;
467
468static int hf_mq_close_options;
469static int hf_mq_close_options_DELETE;
470static int hf_mq_close_options_DELETE_PURGE;
471static int hf_mq_close_options_KEEP_SUB;
472static int hf_mq_close_options_REMOVE_SUB;
473static int hf_mq_close_options_QUIESCE;
474static int* const pf_flds_clsopt[] =
475{
476 &hf_mq_close_options_QUIESCE,
477 &hf_mq_close_options_REMOVE_SUB,
478 &hf_mq_close_options_KEEP_SUB,
479 &hf_mq_close_options_DELETE_PURGE,
480 &hf_mq_close_options_DELETE,
481 NULL((void*)0)
482};
483
484static int hf_mq_open_options;
485static int hf_mq_open_options_INPUT_SHARED;
486static int hf_mq_open_options_INPUT_AS_Q_DEF;
487static int hf_mq_open_options_INPUT_EXCLUSIVE;
488static int hf_mq_open_options_BROWSE;
489static int hf_mq_open_options_OUTPUT;
490static int hf_mq_open_options_INQUIRE;
491static int hf_mq_open_options_SET;
492static int hf_mq_open_options_SAVE_ALL_CTX;
493static int hf_mq_open_options_PASS_IDENT_CTX;
494static int hf_mq_open_options_PASS_ALL_CTX;
495static int hf_mq_open_options_SET_IDENT_CTX;
496static int hf_mq_open_options_SET_ALL_CONTEXT;
497static int hf_mq_open_options_ALT_USER_AUTH;
498static int hf_mq_open_options_FAIL_IF_QUIESC;
499static int hf_mq_open_options_BIND_ON_OPEN;
500static int hf_mq_open_options_BIND_NOT_FIXED;
501static int hf_mq_open_options_RESOLVE_NAMES;
502static int hf_mq_open_options_CO_OP;
503static int hf_mq_open_options_RESOLVE_LOCAL_Q;
504static int hf_mq_open_options_NO_READ_AHEAD;
505static int hf_mq_open_options_READ_AHEAD;
506static int hf_mq_open_options_NO_MULTICAST;
507static int hf_mq_open_options_BIND_ON_GROUP;
508static int* const pf_flds_opnopt[] =
509{
510 &hf_mq_open_options_BIND_ON_GROUP,
511 &hf_mq_open_options_NO_MULTICAST,
512 &hf_mq_open_options_READ_AHEAD,
513 &hf_mq_open_options_NO_READ_AHEAD,
514 &hf_mq_open_options_RESOLVE_LOCAL_Q,
515 &hf_mq_open_options_CO_OP,
516 &hf_mq_open_options_RESOLVE_NAMES,
517 &hf_mq_open_options_BIND_NOT_FIXED,
518 &hf_mq_open_options_BIND_ON_OPEN,
519 &hf_mq_open_options_FAIL_IF_QUIESC,
520 &hf_mq_open_options_ALT_USER_AUTH,
521 &hf_mq_open_options_SET_ALL_CONTEXT,
522 &hf_mq_open_options_SET_IDENT_CTX,
523 &hf_mq_open_options_PASS_ALL_CTX,
524 &hf_mq_open_options_PASS_IDENT_CTX,
525 &hf_mq_open_options_SAVE_ALL_CTX,
526 &hf_mq_open_options_SET,
527 &hf_mq_open_options_INQUIRE,
528 &hf_mq_open_options_OUTPUT,
529 &hf_mq_open_options_BROWSE,
530 &hf_mq_open_options_INPUT_EXCLUSIVE,
531 &hf_mq_open_options_INPUT_SHARED,
532 &hf_mq_open_options_INPUT_AS_Q_DEF,
533 NULL((void*)0)
534};
535
536static int hf_mq_fopa_StructID;
537static int hf_mq_fopa_version;
538static int hf_mq_fopa_length;
539static int hf_mq_fopa_DefPersistence;
540static int hf_mq_fopa_DefPutRespType;
541static int hf_mq_fopa_DefReadAhead;
542static int hf_mq_fopa_PropertyControl;
543static int hf_mq_fopa_Unknown;
544
545static int hf_mq_fcmi_StructID;
546static int hf_mq_fcmi_unknown;
547
548static int hf_mq_ping_length;
549static int hf_mq_ping_buffer;
550static int hf_mq_reset_length;
551static int hf_mq_reset_seqnum;
552static int hf_mq_status_length;
553static int hf_mq_status_code;
554static int hf_mq_status_value;
555
556static int hf_mq_caut_StructID;
557static int hf_mq_caut_AuthType;
558static int hf_mq_caut_UsrMaxLen;
559static int hf_mq_caut_PwdMaxLen;
560static int hf_mq_caut_UsrLength;
561static int hf_mq_caut_PwdLength;
562static int hf_mq_caut_usr;
563static int hf_mq_caut_psw;
564
565static int hf_mq_od_StructID;
566static int hf_mq_od_version;
567static int hf_mq_od_objecttype;
568static int hf_mq_od_objectname;
569static int hf_mq_od_objqmgrname;
570static int hf_mq_od_dynqname;
571static int hf_mq_od_altuserid;
572static int hf_mq_od_recspresent;
573static int hf_mq_od_knowndstcnt;
574static int hf_mq_od_unknowdstcnt;
575static int hf_mq_od_invaldstcnt;
576static int hf_mq_od_objrecofs;
577static int hf_mq_od_resprecofs;
578static int hf_mq_od_objrecptr;
579static int hf_mq_od_resprecptr;
580static int hf_mq_od_altsecurid;
581static int hf_mq_od_resolvqname;
582static int hf_mq_od_resolvqmgrnm;
583static int hf_mq_od_resolvobjtyp;
584
585static int hf_mq_or_objname;
586static int hf_mq_or_objqmgrname;
587static int hf_mq_rr_compcode;
588static int hf_mq_rr_reascode;
589static int hf_mq_pmr_msgid;
590static int hf_mq_pmr_correlid;
591static int hf_mq_pmr_groupid;
592static int hf_mq_pmr_feedback;
593static int hf_mq_pmr_acttoken;
594static int hf_mq_md_StructID;
595static int hf_mq_md_version;
596static int hf_mq_md_report;
597static int hf_mq_md_msgtype;
598static int hf_mq_md_expiry;
599static int hf_mq_md_feedback;
600static int hf_mq_md_encoding;
601static int hf_mq_md_ccsid;
602static int hf_mq_md_format;
603static int hf_mq_md_priority;
604static int hf_mq_md_persistence;
605static int hf_mq_md_msgid;
606static int hf_mq_md_correlid;
607static int hf_mq_md_backoutcnt;
608static int hf_mq_md_replytoq;
609static int hf_mq_md_replytoqmgr;
610static int hf_mq_md_userid;
611static int hf_mq_md_acttoken;
612static int hf_mq_md_appliddata;
613static int hf_mq_md_putappltype;
614static int hf_mq_md_putapplname;
615static int hf_mq_md_putdate;
616static int hf_mq_md_puttime;
617static int hf_mq_md_apporigdata;
618static int hf_mq_md_groupid;
619static int hf_mq_md_msgseqnumber;
620static int hf_mq_md_offset;
621static int hf_mq_md_msgflags;
622static int hf_mq_md_origlen;
623static int hf_mq_dlh_StructID;
624static int hf_mq_dlh_version;
625static int hf_mq_dlh_reason;
626static int hf_mq_dlh_destq;
627static int hf_mq_dlh_destqmgr;
628static int hf_mq_dlh_encoding;
629static int hf_mq_dlh_ccsid;
630static int hf_mq_dlh_format;
631static int hf_mq_dlh_putappltype;
632static int hf_mq_dlh_putapplname;
633static int hf_mq_dlh_putdate;
634static int hf_mq_dlh_puttime;
635
636static int hf_mq_gmo_StructID;
637static int hf_mq_gmo_version;
638static int hf_mq_gmo_options;
639static int hf_mq_gmo_waitinterval;
640static int hf_mq_gmo_signal1;
641static int hf_mq_gmo_signal2;
642static int hf_mq_gmo_resolvqname;
643static int hf_mq_gmo_matchoptions;
644static int hf_mq_gmo_groupstatus;
645static int hf_mq_gmo_segmstatus;
646static int hf_mq_gmo_segmentation;
647static int hf_mq_gmo_reserved;
648static int hf_mq_gmo_msgtoken;
649static int hf_mq_gmo_returnedlen;
650static int hf_mq_gmo_reserved2;
651static int hf_mq_gmo_msghandle;
652
653static int hf_mq_gmo_options_PROPERTIES_COMPATIBILITY;
654static int hf_mq_gmo_options_PROPERTIES_IN_HANDLE;
655static int hf_mq_gmo_options_NO_PROPERTIES;
656static int hf_mq_gmo_options_PROPERTIES_FORCE_MQRFH2;
657static int hf_mq_gmo_options_UNMARKED_BROWSE_MSG;
658static int hf_mq_gmo_options_UNMARK_BROWSE_HANDLE;
659static int hf_mq_gmo_options_UNMARK_BROWSE_CO_OP;
660static int hf_mq_gmo_options_MARK_BROWSE_CO_OP;
661static int hf_mq_gmo_options_MARK_BROWSE_HANDLE;
662static int hf_mq_gmo_options_ALL_SEGMENTS_AVAILABLE;
663static int hf_mq_gmo_options_ALL_MSGS_AVAILABLE;
664static int hf_mq_gmo_options_COMPLETE_MSG;
665static int hf_mq_gmo_options_LOGICAL_ORDER;
666static int hf_mq_gmo_options_CONVERT;
667static int hf_mq_gmo_options_FAIL_IF_QUIESCING;
668static int hf_mq_gmo_options_SYNCPOINT_IF_PERSISTENT;
669static int hf_mq_gmo_options_BROWSE_MSG_UNDER_CURSOR;
670static int hf_mq_gmo_options_UNLOCK;
671static int hf_mq_gmo_options_LOCK;
672static int hf_mq_gmo_options_MSG_UNDER_CURSOR;
673static int hf_mq_gmo_options_MARK_SKIP_BACKOUT;
674static int hf_mq_gmo_options_ACCEPT_TRUNCATED_MSG;
675static int hf_mq_gmo_options_BROWSE_NEXT;
676static int hf_mq_gmo_options_BROWSE_FIRST;
677static int hf_mq_gmo_options_SET_SIGNAL;
678static int hf_mq_gmo_options_NO_SYNCPOINT;
679static int hf_mq_gmo_options_SYNCPOINT;
680static int hf_mq_gmo_options_WAIT;
681static int* const pf_flds_gmoopt[] =
682{
683 &hf_mq_gmo_options_PROPERTIES_COMPATIBILITY,
684 &hf_mq_gmo_options_PROPERTIES_IN_HANDLE,
685 &hf_mq_gmo_options_NO_PROPERTIES,
686 &hf_mq_gmo_options_PROPERTIES_FORCE_MQRFH2,
687 &hf_mq_gmo_options_UNMARKED_BROWSE_MSG,
688 &hf_mq_gmo_options_UNMARK_BROWSE_HANDLE,
689 &hf_mq_gmo_options_UNMARK_BROWSE_CO_OP,
690 &hf_mq_gmo_options_MARK_BROWSE_CO_OP,
691 &hf_mq_gmo_options_MARK_BROWSE_HANDLE,
692 &hf_mq_gmo_options_ALL_SEGMENTS_AVAILABLE,
693 &hf_mq_gmo_options_ALL_MSGS_AVAILABLE,
694 &hf_mq_gmo_options_COMPLETE_MSG,
695 &hf_mq_gmo_options_LOGICAL_ORDER,
696 &hf_mq_gmo_options_CONVERT,
697 &hf_mq_gmo_options_FAIL_IF_QUIESCING,
698 &hf_mq_gmo_options_SYNCPOINT_IF_PERSISTENT,
699 &hf_mq_gmo_options_BROWSE_MSG_UNDER_CURSOR,
700 &hf_mq_gmo_options_UNLOCK,
701 &hf_mq_gmo_options_LOCK,
702 &hf_mq_gmo_options_MSG_UNDER_CURSOR,
703 &hf_mq_gmo_options_MARK_SKIP_BACKOUT,
704 &hf_mq_gmo_options_ACCEPT_TRUNCATED_MSG,
705 &hf_mq_gmo_options_BROWSE_NEXT,
706 &hf_mq_gmo_options_BROWSE_FIRST,
707 &hf_mq_gmo_options_SET_SIGNAL,
708 &hf_mq_gmo_options_NO_SYNCPOINT,
709 &hf_mq_gmo_options_SYNCPOINT,
710 &hf_mq_gmo_options_WAIT,
711 NULL((void*)0)
712};
713
714static int hf_mq_gmo_matchoptions_MATCH_MSG_TOKEN;
715static int hf_mq_gmo_matchoptions_MATCH_OFFSET;
716static int hf_mq_gmo_matchoptions_MATCH_MSG_SEQ_NUMBER;
717static int hf_mq_gmo_matchoptions_MATCH_GROUP_ID;
718static int hf_mq_gmo_matchoptions_MATCH_CORREL_ID;
719static int hf_mq_gmo_matchoptions_MATCH_MSG_ID;
720static int* const pf_flds_mtchopt[] =
721{
722 &hf_mq_gmo_matchoptions_MATCH_MSG_TOKEN,
723 &hf_mq_gmo_matchoptions_MATCH_OFFSET,
724 &hf_mq_gmo_matchoptions_MATCH_MSG_SEQ_NUMBER,
725 &hf_mq_gmo_matchoptions_MATCH_GROUP_ID,
726 &hf_mq_gmo_matchoptions_MATCH_CORREL_ID,
727 &hf_mq_gmo_matchoptions_MATCH_MSG_ID,
728 NULL((void*)0)
729};
730
731static int hf_mq_lpoo_StructID;
732static int hf_mq_lpoo_version;
733static int hf_mq_lpoo_lpiopts;
734static int hf_mq_lpoo_defpersist;
735static int hf_mq_lpoo_defputresptype;
736static int hf_mq_lpoo_defreadahead;
737static int hf_mq_lpoo_propertyctl;
738static int hf_mq_lpoo_qprotect;
739static int hf_mq_lpoo_qprotect_val1;
740static int hf_mq_lpoo_qprotect_val2;
741
742static int hf_mq_lpoo_lpiopts_SAVE_IDENTITY_CTXT;
743static int hf_mq_lpoo_lpiopts_SAVE_ORIGIN_CTXT;
744static int hf_mq_lpoo_lpiopts_SAVE_USER_CTXT;
745static int* const pf_flds_lpooopt[] =
746{
747 &hf_mq_lpoo_lpiopts_SAVE_USER_CTXT,
748 &hf_mq_lpoo_lpiopts_SAVE_ORIGIN_CTXT,
749 &hf_mq_lpoo_lpiopts_SAVE_IDENTITY_CTXT,
750 NULL((void*)0)
751};
752
753
754static int hf_mq_charv_vsptr;
755static int hf_mq_charv_vsoffset;
756static int hf_mq_charv_vsbufsize;
757static int hf_mq_charv_vslength;
758static int hf_mq_charv_vsccsid;
759static int hf_mq_charv_vsvalue;
760
761static int hf_mq_pmo_StructID;
762static int hf_mq_pmo_version;
763static int hf_mq_pmo_options;
764static int hf_mq_pmo_timeout;
765static int hf_mq_pmo_context;
766static int hf_mq_pmo_knowndstcnt;
767static int hf_mq_pmo_unkndstcnt;
768static int hf_mq_pmo_invaldstcnt;
769static int hf_mq_pmo_resolvqname;
770static int hf_mq_pmo_resolvqmgr;
771static int hf_mq_pmo_recspresent;
772static int hf_mq_pmo_putmsgrecfld;
773static int hf_mq_pmo_putmsgrecofs;
774static int hf_mq_pmo_resprecofs;
775static int hf_mq_pmo_putmsgrecptr;
776static int hf_mq_pmo_resprecptr;
777static int hf_mq_pmo_originalmsghandle;
778static int hf_mq_pmo_newmsghandle;
779static int hf_mq_pmo_action;
780static int hf_mq_pmo_publevel;
781
782static int hf_mq_xa_length;
783static int hf_mq_xa_returnvalue;
784static int hf_mq_xa_tmflags;
785static int hf_mq_xa_rmid;
786static int hf_mq_xa_count;
787static int hf_mq_xa_xid_formatid;
788static int hf_mq_xa_xid_glbxid_len;
789static int hf_mq_xa_xid_brq_length;
790static int hf_mq_xa_xid_globalxid;
791static int hf_mq_xa_xid_brq;
792static int hf_mq_xa_xainfo_length;
793static int hf_mq_xa_xainfo_value;
794
795static int hf_mq_pmo_options_NOT_OWN_SUBS;
796static int hf_mq_pmo_options_SUPPRESS_REPLYTO;
797static int hf_mq_pmo_options_SCOPE_QMGR;
798static int hf_mq_pmo_options_MD_FOR_OUTPUT_ONLY;
799static int hf_mq_pmo_options_RETAIN;
800static int hf_mq_pmo_options_WARN_IF_NO_SUBS_MATCHED;
801static int hf_mq_pmo_options_RESOLVE_LOCAL_Q;
802static int hf_mq_pmo_options_SYNC_RESPONSE;
803static int hf_mq_pmo_options_ASYNC_RESPONSE;
804static int hf_mq_pmo_options_LOGICAL_ORDER;
805static int hf_mq_pmo_options_NO_CONTEXT;
806static int hf_mq_pmo_options_FAIL_IF_QUIESCING;
807static int hf_mq_pmo_options_ALTERNATE_USER_AUTHORITY;
808static int hf_mq_pmo_options_SET_ALL_CONTEXT;
809static int hf_mq_pmo_options_SET_IDENTITY_CONTEXT;
810static int hf_mq_pmo_options_PASS_ALL_CONTEXT;
811static int hf_mq_pmo_options_PASS_IDENTITY_CONTEXT;
812static int hf_mq_pmo_options_NEW_CORREL_ID;
813static int hf_mq_pmo_options_NEW_MSG_ID;
814static int hf_mq_pmo_options_DEFAULT_CONTEXT;
815static int hf_mq_pmo_options_NO_SYNCPOINT;
816static int hf_mq_pmo_options_SYNCPOINT;
817static int* const pf_flds_pmoopt[] =
818{
819 &hf_mq_pmo_options_NOT_OWN_SUBS,
820 &hf_mq_pmo_options_SUPPRESS_REPLYTO,
821 &hf_mq_pmo_options_SCOPE_QMGR,
822 &hf_mq_pmo_options_MD_FOR_OUTPUT_ONLY,
823 &hf_mq_pmo_options_RETAIN,
824 &hf_mq_pmo_options_WARN_IF_NO_SUBS_MATCHED,
825 &hf_mq_pmo_options_RESOLVE_LOCAL_Q,
826 &hf_mq_pmo_options_SYNC_RESPONSE,
827 &hf_mq_pmo_options_ASYNC_RESPONSE,
828 &hf_mq_pmo_options_LOGICAL_ORDER,
829 &hf_mq_pmo_options_NO_CONTEXT,
830 &hf_mq_pmo_options_FAIL_IF_QUIESCING,
831 &hf_mq_pmo_options_ALTERNATE_USER_AUTHORITY,
832 &hf_mq_pmo_options_SET_ALL_CONTEXT,
833 &hf_mq_pmo_options_SET_IDENTITY_CONTEXT,
834 &hf_mq_pmo_options_PASS_ALL_CONTEXT,
835 &hf_mq_pmo_options_PASS_IDENTITY_CONTEXT,
836 &hf_mq_pmo_options_NEW_CORREL_ID,
837 &hf_mq_pmo_options_NEW_MSG_ID,
838 &hf_mq_pmo_options_DEFAULT_CONTEXT,
839 &hf_mq_pmo_options_NO_SYNCPOINT,
840 &hf_mq_pmo_options_SYNCPOINT,
841 NULL((void*)0)
842};
843
844static int hf_mq_xa_tmflags_join;
845static int hf_mq_xa_tmflags_endrscan;
846static int hf_mq_xa_tmflags_startrscan;
847static int hf_mq_xa_tmflags_suspend;
848static int hf_mq_xa_tmflags_success;
849static int hf_mq_xa_tmflags_resume;
850static int hf_mq_xa_tmflags_fail;
851static int hf_mq_xa_tmflags_onephase;
852static int* const pf_flds_tmflags[] =
853{
854 &hf_mq_xa_tmflags_onephase,
855 &hf_mq_xa_tmflags_fail,
856 &hf_mq_xa_tmflags_resume,
857 &hf_mq_xa_tmflags_success,
858 &hf_mq_xa_tmflags_suspend,
859 &hf_mq_xa_tmflags_startrscan,
860 &hf_mq_xa_tmflags_endrscan,
861 &hf_mq_xa_tmflags_join,
862 NULL((void*)0)
863};
864
865static int hf_mq_msgreq_version;
866static int hf_mq_msgreq_handle;
867static int hf_mq_msgreq_RecvBytes;
868static int hf_mq_msgreq_RqstBytes;
869static int hf_mq_msgreq_MaxMsgLen;
870static int hf_mq_msgreq_WaitIntrv;
871static int hf_mq_msgreq_QueStatus;
872static int hf_mq_msgreq_RqstFlags;
873static int hf_mq_msgreq_GlbMsgIdx;
874static int hf_mq_msgreq_SelectIdx;
875static int hf_mq_msgreq_MQMDVers;
876static int hf_mq_msgreq_ccsid;
877static int hf_mq_msgreq_encoding;
878static int hf_mq_msgreq_MsgSeqNum;
879static int hf_mq_msgreq_offset;
880static int hf_mq_msgreq_mtchMsgId;
881static int hf_mq_msgreq_mtchCorId;
882static int hf_mq_msgreq_mtchGrpid;
883static int hf_mq_msgreq_mtchMsgTk;
884
885static int hf_mq_msgreq_flags_selection;
886static int hf_mq_msgreq_flags_F00000008;
887static int hf_mq_msgreq_flags_F00000004;
888static int hf_mq_msgreq_flags_F00000002;
889static int* const pf_flds_msgreq_flags[] =
890{
891 &hf_mq_msgreq_flags_selection,
892 &hf_mq_msgreq_flags_F00000008,
893 &hf_mq_msgreq_flags_F00000004,
894 &hf_mq_msgreq_flags_F00000002,
895 NULL((void*)0)
896};
897
898static int hf_mq_msgasy_version;
899static int hf_mq_msgasy_handle;
900static int hf_mq_msgasy_MsgIndex;
901static int hf_mq_msgasy_GlbMsgIdx;
902static int hf_mq_msgasy_SegLength;
903static int hf_mq_msgasy_SeleIndex;
904static int hf_mq_msgasy_SegmIndex;
905static int hf_mq_msgasy_ReasonCod;
906static int hf_mq_msgasy_ActMsgLen;
907static int hf_mq_msgasy_TotMsgLen;
908static int hf_mq_msgasy_MsgToken;
909static int hf_mq_msgasy_Status;
910static int hf_mq_msgasy_resolQNLn;
911static int hf_mq_msgasy_resolQNme;
912static int hf_mq_msgasy_padding;
913
914static int hf_mq_notif_vers;
915static int hf_mq_notif_handle;
916static int hf_mq_notif_code;
917static int hf_mq_notif_value;
918
919static int hf_mq_head_StructID;
920static int hf_mq_head_version;
921static int hf_mq_head_length;
922static int hf_mq_head_encoding;
923static int hf_mq_head_ccsid;
924static int hf_mq_head_format;
925static int hf_mq_head_flags;
926static int hf_mq_head_struct;
927
928static int hf_mq_dh_flags_newmsgid;
929static int* const pf_flds_dh_flags[] =
930{
931 &hf_mq_dh_flags_newmsgid,
932 NULL((void*)0)
933};
934static int hf_mq_dh_putmsgrecfld;
935static int hf_mq_dh_recspresent;
936static int hf_mq_dh_objrecofs;
937static int hf_mq_dh_putmsgrecofs;
938
939static int hf_mq_iih_flags_passexpir;
940static int hf_mq_iih_flags_replyfmtnone;
941static int hf_mq_iih_flags_ignorepurg;
942static int hf_mq_iih_flags_cmqrqstresp;
943static int* const pf_flds_iih_flags[] =
944{
945 &hf_mq_iih_flags_cmqrqstresp,
946 &hf_mq_iih_flags_ignorepurg,
947 &hf_mq_iih_flags_replyfmtnone,
948 &hf_mq_iih_flags_passexpir,
949 NULL((void*)0)
950};
951static int hf_mq_iih_ltermoverride;
952static int hf_mq_iih_mfsmapname;
953static int hf_mq_iih_replytofmt;
954static int hf_mq_iih_authenticator;
955static int hf_mq_iih_transinstid;
956static int hf_mq_iih_transstate;
957static int hf_mq_iih_commimode;
958static int hf_mq_iih_securityscope;
959static int hf_mq_iih_reserved;
960
961static int hf_mq_ims_ll;
962static int hf_mq_ims_zz;
963static int hf_mq_ims_trx;
964static int hf_mq_ims_data;
965
966static int hf_mq_tm_StructID;
967static int hf_mq_tm_version;
968static int hf_mq_tm_QName;
969static int hf_mq_tm_ProcessNme;
970static int hf_mq_tm_TriggerData;
971static int hf_mq_tm_ApplType;
972static int hf_mq_tm_ApplId;
973static int hf_mq_tm_EnvData;
974static int hf_mq_tm_UserData;
975
976static int hf_mq_tmc2_StructID;
977static int hf_mq_tmc2_version;
978static int hf_mq_tmc2_QName;
979static int hf_mq_tmc2_ProcessNme;
980static int hf_mq_tmc2_TriggerData;
981static int hf_mq_tmc2_ApplType;
982static int hf_mq_tmc2_ApplId;
983static int hf_mq_tmc2_EnvData;
984static int hf_mq_tmc2_UserData;
985static int hf_mq_tmc2_QMgrName;
986
987static int hf_mq_cih_flags_synconret;
988static int hf_mq_cih_flags_replywonulls;
989static int hf_mq_cih_flags_passexpir;
990static int* const pf_flds_cih_flags[] =
991{
992 &hf_mq_cih_flags_synconret,
993 &hf_mq_cih_flags_replywonulls,
994 &hf_mq_cih_flags_passexpir,
995 NULL((void*)0)
996};
997static int hf_mq_cih_returncode;
998static int hf_mq_cih_compcode;
999static int hf_mq_cih_reasoncode;
1000static int hf_mq_cih_uowcontrols;
1001static int hf_mq_cih_getwaitintv;
1002static int hf_mq_cih_linktype;
1003static int hf_mq_cih_outdatalen;
1004static int hf_mq_cih_facilkeeptime;
1005static int hf_mq_cih_adsdescriptor;
1006static int hf_mq_cih_converstask;
1007static int hf_mq_cih_taskendstatus;
1008static int hf_mq_cih_bridgefactokn;
1009static int hf_mq_cih_function;
1010static int hf_mq_cih_abendcode;
1011static int hf_mq_cih_authenticator;
1012static int hf_mq_cih_reserved;
1013static int hf_mq_cih_replytofmt;
1014static int hf_mq_cih_remotesysid;
1015static int hf_mq_cih_remotetransid;
1016static int hf_mq_cih_transactionid;
1017static int hf_mq_cih_facilitylike;
1018static int hf_mq_cih_attentionid;
1019static int hf_mq_cih_startcode;
1020static int hf_mq_cih_cancelcode;
1021static int hf_mq_cih_nexttransid;
1022static int hf_mq_cih_reserved2;
1023static int hf_mq_cih_reserved3;
1024static int hf_mq_cih_cursorpos;
1025static int hf_mq_cih_erroroffset;
1026static int hf_mq_cih_inputitem;
1027static int hf_mq_cih_reserved4;
1028
1029static int hf_mq_rfh_ccsid;
1030static int hf_mq_rfh_length;
1031static int hf_mq_rfh_string;
1032
1033static int hf_mq_rmh_flags_last;
1034static int* const pf_flds_rmh_flags[] =
1035{
1036 &hf_mq_rmh_flags_last,
1037 NULL((void*)0)
1038};
1039static int hf_mq_rmh_objecttype;
1040static int hf_mq_rmh_objectinstid;
1041static int hf_mq_rmh_srcenvlen;
1042static int hf_mq_rmh_srcenvofs;
1043static int hf_mq_rmh_srcnamelen;
1044static int hf_mq_rmh_srcnameofs;
1045static int hf_mq_rmh_dstenvlen;
1046static int hf_mq_rmh_dstenvofs;
1047static int hf_mq_rmh_dstnamelen;
1048static int hf_mq_rmh_dstnameofs;
1049static int hf_mq_rmh_datalogiclen;
1050static int hf_mq_rmh_datalogicofsl;
1051static int hf_mq_rmh_datalogicofsh;
1052
1053static int hf_mq_wih_servicename;
1054static int hf_mq_wih_servicestep;
1055static int hf_mq_wih_msgtoken;
1056static int hf_mq_wih_reserved;
1057
1058static int ett_mq;
1059static int ett_mq_tsh;
1060static int ett_mq_tsh_tcf;
1061static int ett_mq_tsh_tcf2;
1062static int ett_mq_api;
1063static int ett_mq_socket;
1064static int ett_mq_caut;
1065static int ett_mq_msh;
1066static int ett_mq_xqh;
1067static int ett_mq_id;
1068static int ett_mq_id_cf1;
1069static int ett_mq_id_cf2;
1070static int ett_mq_id_cf3;
1071static int ett_mq_id_ecf1;
1072static int ett_mq_id_ecf2;
1073static int ett_mq_id_ecf3;
1074static int ett_mq_id_ief1;
1075static int ett_mq_id_ief2;
1076static int ett_mq_uid;
1077static int ett_mq_conn;
1078static int ett_mq_fcno;
1079static int ett_mq_fcno_option;
1080static int ett_mq_msg;
1081static int ett_mq_inq;
1082static int ett_mq_spi;
1083static int ett_mq_spi_base; /* Factorisation of common SPI items */
1084static int ett_mq_spi_options;
1085static int ett_mq_put;
1086static int ett_mq_open;
1087static int ett_mq_open_option;
1088static int ett_mq_close_option;
1089static int ett_mq_fopa;
1090static int ett_mq_fcmi;
1091static int ett_mq_ping;
1092static int ett_mq_reset;
1093static int ett_mq_status;
1094static int ett_mq_od;
1095static int ett_mq_od_objstr;
1096static int ett_mq_od_selstr;
1097static int ett_mq_od_resobjstr;
1098static int ett_mq_or;
1099static int ett_mq_rr;
1100static int ett_mq_pmr;
1101static int ett_mq_md;
1102static int ett_mq_dlh;
1103static int ett_mq_dh;
1104static int ett_mq_gmo;
1105static int ett_mq_gmo_option;
1106static int ett_mq_gmo_matchoption;
1107static int ett_mq_pmo;
1108static int ett_mq_pmo_option;
1109static int ett_mq_rfh_ValueName;
1110static int ett_mq_msgreq_RqstFlags;
1111
1112static int ett_mq_lpoo;
1113static int ett_mq_lpoo_lpiopts;
1114
1115static int ett_mq_head; /* Factorisation of common Header structure items (DH, MDE, CIH, IIH, RFH, RMH, WIH, TM, TMC2 */
1116static int ett_mq_head_flags;
1117static int ett_mq_ims;
1118
1119static int ett_mq_xa;
1120static int ett_mq_xa_tmflags;
1121static int ett_mq_xa_xid;
1122static int ett_mq_xa_info;
1123static int ett_mq_charv;
1124static int ett_mq_reassemb;
1125static int ett_mq_notif;
1126
1127static int ett_mq_structid;
1128
1129static expert_field ei_mq_reassembly_error;
1130
1131static dissector_handle_t mq_handle;
1132static dissector_handle_t mq_spx_handle;
1133static dissector_handle_t mqpcf_handle;
1134
1135static heur_dissector_list_t mq_heur_subdissector_list;
1136
1137static bool_Bool mq_desegment = true1;
1138static bool_Bool mq_reassembly = true1;
1139
1140static bool_Bool mq_in_reassembly;
1141
1142static reassembly_table mq_reassembly_table;
1143
1144static const value_string mq_notifcode_vals[] =
1145{
1146/* 1*/ { MQ_NC_GET_INHIBITED1, "GET_INHIBITED" },
1147/* 2*/ { MQ_NC_GET_ALLOWED2, "GET_ALLOWED" },
1148/* 3*/ { MQ_NC_CONN_STATE3, "CONN_STATE" },
1149/* 4*/ { MQ_NC_CONN_STATE_REPLY4, "CONN_STATE_REPLY" },
1150/* 5*/ { MQ_NC_Q_STATE5, "Q_STATE" },
1151/* 6*/ { MQ_NC_Q_STATE_REPLY6, "Q_STATE_REPLY" },
1152/* 7*/ { MQ_NC_QM_QUIESCING7, "QM_QUIESCING" },
1153/* 8*/ { MQ_NC_TXN_ALLOWED8, "TXN_ALLOWED" },
1154/* 9*/ { MQ_NC_TXN_REVOKE9, "TXN_REVOKE" },
1155/* 10*/ { MQ_NC_TXN_REVOKE_REPLY10, "TXN_REVOKE_REPLY" },
1156/* 11*/ { MQ_NC_CHECK_MSG11, "CHECK_MSG" },
1157/* 12*/ { MQ_NC_BROWSE_FIRST12, "BROWSE_FIRST" },
1158/* 13*/ { MQ_NC_MESSAGE_TOO_LARGE13, "MESSAGE_TOO_LARGE" },
1159/* 14*/ { MQ_NC_STREAMING_FAILURE14, "STREAMING_FAILURE" },
1160/* 15*/ { MQ_NC_CLIENT_ASYNC_EMPTY15, "CLIENT_ASYNC_EMPTY" },
1161/* 16*/ { MQ_NC_STREAMING_TXN_PAUSED16, "STREAMING_TXN_PAUSED" },
1162/* 17*/ { MQ_NC_RECONNECTION_COMPLETE17, "RECONNECTION_COMPLETE" },
1163 { 0, NULL((void*)0) }
1164};
1165
1166static const value_string mq_spi_verbs_vals[] =
1167{
1168/* 1*/ { MQ_SPI_QUERY0x01, "QUERY" },
1169/* 2*/ { MQ_SPI_PUT0x02, "PUT" },
1170/* 3*/ { MQ_SPI_GET0x03, "GET" },
1171/* 4*/ { MQ_SPI_ACTIVATE0x04, "ACTIVATE" },
1172/* 5*/ { MQ_SPI_SYNCHPOINT0x05, "SYNCHPOINT" },
1173/* 6*/ { MQ_SPI_RESERVE0x06, "RESERVE" },
1174/* 7*/ { MQ_SPI_SUBSCRIBE0x07, "SUBSCRIBE" },
1175/* 11*/ { MQ_SPI_NOTIFY0x0B, "NOTIFY" },
1176/* 12*/ { MQ_SPI_OPEN0x0C, "OPEN" },
1177 { 0, NULL((void*)0) }
1178};
1179
1180static const value_string mq_spi_activate_vals[] =
1181{
1182/* 1*/ { MQ_SPI_ACTIVATE_ENABLE0x01, "ENABLE" },
1183/* 2*/ { MQ_SPI_ACTIVATE_DISABLE0x02, "DISABLE" },
1184 { 0, NULL((void*)0) }
1185};
1186
1187static const value_string mq_status_vals[] =
1188{
1189/* 1*/ { MQ_STATUS_ERR_NO_CHANNEL0x01, "NO_CHANNEL" },
1190/* 2*/ { MQ_STATUS_ERR_CHANNEL_WRONG_TYPE0x02, "CHANNEL_WRONG_TYPE" },
1191/* 3*/ { MQ_STATUS_ERR_QM_UNAVAILABLE0x03, "QM_UNAVAILABLE" },
1192/* 4*/ { MQ_STATUS_ERR_MSG_SEQUENCE_ERROR0x04, "MSG_SEQUENCE_ERROR" },
1193/* 5*/ { MQ_STATUS_ERR_QM_TERMINATING0x05, "QM_TERMINATING" },
1194/* 6*/ { MQ_STATUS_ERR_CAN_NOT_STORE0x06, "CAN_NOT_STORE" },
1195/* 7*/ { MQ_STATUS_ERR_USER_CLOSED0x07, "USER_CLOSED" },
1196/* 10*/ { MQ_STATUS_ERR_PROTOCOL_SEGMENT_TYPE0x0A, "REMOTE_PROTOCOL_ERROR" },
1197/* 11*/ { MQ_STATUS_ERR_PROTOCOL_LENGTH_ERROR0x0B, "BIND_FAILED" },
1198/* 12*/ { MQ_STATUS_ERR_PROTOCOL_INVALID_DATA0x0C, "MSGWRAP_DIFFERENT" },
1199/* 14*/ { MQ_STATUS_ERR_PROTOCOL_ID_ERROR0x0E, "REMOTE_CHANNEL_UNAVAILABLE" },
1200/* 15*/ { MQ_STATUS_ERR_PROTOCOL_MSH_ERROR0x0F, "TERMINATED_BY_REMOTE_EXIT" },
1201/* 16*/ { MQ_STATUS_ERR_PROTOCOL_GENERAL0x10, "PROTOCOL_GENERAL" },
1202/* 17*/ { MQ_STATUS_ERR_BATCH_FAILURE0x11, "BATCH_FAILURE" },
1203/* 18*/ { MQ_STATUS_ERR_MESSAGE_LENGTH_ERROR0x12, "MESSAGE_LENGTH_ERROR" },
1204/* 19*/ { MQ_STATUS_ERR_SEGMENT_NUMBER_ERROR0x13, "SEGMENT_NUMBER_ERROR" },
1205/* 20*/ { MQ_STATUS_ERR_SECURITY_FAILURE0x14, "SECURITY_FAILURE" },
1206/* 21*/ { MQ_STATUS_ERR_WRAP_VALUE_ERROR0x15, "WRAP_VALUE_ERROR" },
1207/* 22*/ { MQ_STATUS_ERR_CHANNEL_UNAVAILABLE0x16, "CHANNEL_UNAVAILABLE" },
1208/* 23*/ { MQ_STATUS_ERR_CLOSED_BY_EXIT0x17, "CLOSED_BY_EXIT" },
1209/* 24*/ { MQ_STATUS_ERR_CIPHER_SPEC0x18, "CIPHER_SPEC" },
1210/* 25*/ { MQ_STATUS_ERR_PEER_NAME0x19, "PEER_NAME" },
1211/* 26*/ { MQ_STATUS_ERR_SSL_CLIENT_CERTIFICATE0x1A, "SSL_CLIENT_CERTIFICATE" },
1212/* 27*/ { MQ_STATUS_ERR_RMT_RSRCS_IN_RECOVERY0x1B, "RMT_RSRCS_IN_RECOVERY" },
1213/* 28*/ { MQ_STATUS_ERR_SSL_REFRESHING0x1C, "SSL_REFRESHING" },
1214/* 29*/ { MQ_STATUS_ERR_INVALID_HOBJ0x1D, "INVALID_HOBJ" },
1215/* 30*/ { MQ_STATUS_ERR_CONV_ID_ERROR0x1E, "CONV_ID_ERROR" },
1216/* 31*/ { MQ_STATUS_ERR_SOCKET_ACTION_TYPE0x1F, "SOCKET_ACTION_TYPE" },
1217/* 32*/ { MQ_STATUS_ERR_STANDBY_Q_MGR0x20, "STANDBY_Q_MGR" },
1218/* 240*/ { MQ_STATUS_ERR_CCSID_NOT_SUPPORTED0xF0, "CCSID_NOT_SUPPORTED" },
1219/* 241*/ { MQ_STATUS_ERR_ENCODING_INVALID0xF1, "ENCODING_INVALID" },
1220/* 242*/ { MQ_STATUS_ERR_FAP_LEVEL0xF2, "FAP_LEVEL" },
1221/* 243*/ { MQ_STATUS_ERR_NEGOTIATION_FAILED0xF3, "NEGOTIATION_FAILED" },
1222 { 0, NULL((void*)0) }
1223};
1224static value_string_ext mq_status_xvals = VALUE_STRING_EXT_INIT(mq_status_vals){ _try_val_to_str_ext_init, 0, (sizeof (mq_status_vals) / sizeof
((mq_status_vals)[0]))-1, mq_status_vals, "mq_status_vals" }
;
1225
1226static const value_string mq_opcode_vals[] =
1227{
1228/* 1*/ { MQ_TST_INITIAL0x01, "INITIAL_DATA" },
1229/* 2*/ { MQ_TST_RESYNC0x02, "RESYNC_DATA" },
1230/* 3*/ { MQ_TST_RESET0x03, "RESET_DATA" },
1231/* 4*/ { MQ_TST_MESSAGE0x04, "MESSAGE_DATA" },
1232/* 5*/ { MQ_TST_STATUS0x05, "STATUS_DATA" },
1233/* 6*/ { MQ_TST_SECURITY0x06, "SECURITY_DATA" },
1234/* 7*/ { MQ_TST_PING0x07, "PING_DATA" },
1235/* 8*/ { MQ_TST_USERID0x08, "USERID_DATA" },
1236/* 9*/ { MQ_TST_HEARTBEAT0x09, "HEARTBEAT" },
1237/* 10*/ { MQ_TST_CONAUTH_INFO0x0A, "CONAUTH_INFO" },
1238/* 11*/ { MQ_TST_RENEGOTIATE_DATA0x0B, "RENEGOTIATE_DATA" },
1239/* 12*/ { MQ_TST_SOCKET_ACTION0x0C, "SOCKET_ACTION" },
1240/* 13*/ { MQ_TST_ASYNC_MESSAGE0x0D, "ASYNC_MESSAGE" },
1241/* 14*/ { MQ_TST_REQUEST_MSGS0x0E, "REQUEST_MSGS" },
1242/* 15*/ { MQ_TST_NOTIFICATION0x0F, "NOTIFICATION" },
1243/* 129*/ { MQ_TST_MQCONN0x81, "MQCONN" },
1244/* 130*/ { MQ_TST_MQDISC0x82, "MQDISC" },
1245/* 131*/ { MQ_TST_MQOPEN0x83, "MQOPEN" },
1246/* 132*/ { MQ_TST_MQCLOSE0x84, "MQCLOSE" },
1247/* 133*/ { MQ_TST_MQGET0x85, "MQGET" },
1248/* 134*/ { MQ_TST_MQPUT0x86, "MQPUT" },
1249/* 135*/ { MQ_TST_MQPUT10x87, "MQPUT1" },
1250/* 136*/ { MQ_TST_MQSET0x88, "MQSET" },
1251/* 137*/ { MQ_TST_MQINQ0x89, "MQINQ" },
1252/* 138*/ { MQ_TST_MQCMIT0x8A, "MQCMIT" },
1253/* 139*/ { MQ_TST_MQBACK0x8B, "MQBACK" },
1254/* 140*/ { MQ_TST_SPI0x8C, "SPI" },
1255/* 141*/ { MQ_TST_MQSTAT0x8D, "MQSTAT" },
1256/* 142*/ { MQ_TST_MQSUB0x8E, "MQSUB" },
1257/* 143*/ { MQ_TST_MQSUBRQ0x8F, "MQSUBRQ" },
1258/* 145*/ { MQ_TST_MQCONN_REPLY0x91, "MQCONN_REPLY" },
1259/* 146*/ { MQ_TST_MQDISC_REPLY0x92, "MQDISC_REPLY" },
1260/* 147*/ { MQ_TST_MQOPEN_REPLY0x93, "MQOPEN_REPLY" },
1261/* 148*/ { MQ_TST_MQCLOSE_REPLY0x94, "MQCLOSE_REPLY" },
1262/* 149*/ { MQ_TST_MQGET_REPLY0x95, "MQGET_REPLY" },
1263/* 150*/ { MQ_TST_MQPUT_REPLY0x96, "MQPUT_REPLY" },
1264/* 151*/ { MQ_TST_MQPUT1_REPLY0x97, "MQPUT1_REPLY" },
1265/* 152*/ { MQ_TST_MQSET_REPLY0x98, "MQSET_REPLY" },
1266/* 153*/ { MQ_TST_MQINQ_REPLY0x99, "MQINQ_REPLY" },
1267/* 154*/ { MQ_TST_MQCMIT_REPLY0x9A, "MQCMIT_REPLY" },
1268/* 155*/ { MQ_TST_MQBACK_REPLY0x9B, "MQBACK_REPLY" },
1269/* 156*/ { MQ_TST_SPI_REPLY0x9C, "SPI_REPLY" },
1270/* 157*/ { MQ_TST_MQSTAT_REPLY0x9D, "MQSTAT_REPLY" },
1271/* 158*/ { MQ_TST_MQSUB_REPLY0x9E, "MQSUB_REPLY" },
1272/* 159*/ { MQ_TST_MQSUBRQ_REPLY0x9F, "MQSUBRQ_REPLY" },
1273/* 161*/ { MQ_TST_XA_START0xA1, "XA_START" },
1274/* 162*/ { MQ_TST_XA_END0xA2, "XA_END" },
1275/* 163*/ { MQ_TST_XA_OPEN0xA3, "XA_OPEN" },
1276/* 164*/ { MQ_TST_XA_CLOSE0xA4, "XA_CLOSE" },
1277/* 165*/ { MQ_TST_XA_PREPARE0xA5, "XA_PREPARE" },
1278/* 166*/ { MQ_TST_XA_COMMIT0xA6, "XA_COMMIT" },
1279/* 167*/ { MQ_TST_XA_ROLLBACK0xA7, "XA_ROLLBACK" },
1280/* 168*/ { MQ_TST_XA_FORGET0xA8, "XA_FORGET" },
1281/* 169*/ { MQ_TST_XA_RECOVER0xA9, "XA_RECOVER" },
1282/* 170*/ { MQ_TST_XA_COMPLETE0xAA, "XA_COMPLETE" },
1283/* 177*/ { MQ_TST_XA_START_REPLY0xB1, "XA_START_REPLY" },
1284/* 178*/ { MQ_TST_XA_END_REPLY0xB2, "XA_END_REPLY" },
1285/* 179*/ { MQ_TST_XA_OPEN_REPLY0xB3, "XA_OPEN_REPLY" },
1286/* 180*/ { MQ_TST_XA_CLOSE_REPLY0xB4, "XA_CLOSE_REPLY" },
1287/* 181*/ { MQ_TST_XA_PREPARE_REPLY0xB5, "XA_PREPARE_REPLY" },
1288/* 182*/ { MQ_TST_XA_COMMIT_REPLY0xB6, "XA_COMMIT_REPLY" },
1289/* 183*/ { MQ_TST_XA_ROLLBACK_REPLY0xB7, "XA_ROLLBACK_REPLY" },
1290/* 184*/ { MQ_TST_XA_FORGET_REPLY0xB8, "XA_FORGET_REPLY" },
1291/* 185*/ { MQ_TST_XA_RECOVER_REPLY0xB9, "XA_RECOVER_REPLY" },
1292/* 186*/ { MQ_TST_XA_COMPLETE_REPLY0xBA, "XA_COMPLETE_REPLY" },
1293 { 0, NULL((void*)0) }
1294};
1295static value_string_ext mq_opcode_xvals = VALUE_STRING_EXT_INIT(mq_opcode_vals){ _try_val_to_str_ext_init, 0, (sizeof (mq_opcode_vals) / sizeof
((mq_opcode_vals)[0]))-1, mq_opcode_vals, "mq_opcode_vals" }
;
1296
1297static const value_string mq_xaer_vals[] =
1298{
1299/* 0*/ { MQ_XA_OK0, "XA_OK" },
1300/* 3*/ { MQ_XA_RDONLY3, "XA_RDONLY" },
1301/* 4*/ { MQ_XA_RETRY4, "XA_RETRY" },
1302/* 5*/ { MQ_XA_HEURMIX5, "XA_HEURMIX" },
1303/* 6*/ { MQ_XA_HEURRB6, "XA_HEURRB" },
1304/* 7*/ { MQ_XA_HEURCOM7, "XA_HEURCOM" },
1305/* 8*/ { MQ_XA_HEURHAZ8, "XA_HEURHAZ" },
1306/* 9*/ { MQ_XA_NOMIGRATE9, "XA_NOMIGRATE" },
1307/* 100*/ { MQ_XA_RBROLLBACK100, "XA_RBROLLBACK" },
1308/* 101*/ { MQ_XA_RBCOMMFAIL101, "XA_RBCOMMFAIL" },
1309/* 102*/ { MQ_XA_RBDEADLOCK102, "XA_RBDEADLOCK" },
1310/* 103*/ { MQ_XA_RBINTEGRITY103, "XA_RBINTEGRITY" },
1311/* 104*/ { MQ_XA_RBOTHER104, "XA_RBOTHER" },
1312/* 105*/ { MQ_XA_RBPROTO105, "XA_RBPROTO" },
1313/* 106*/ { MQ_XA_RBTIMEOUT106, "XA_RBTIMEOUT" },
1314/* 107*/ { MQ_XA_RBTRANSIENT107, "XA_RBTRANSIENT" },
1315/* -9*/ { MQ_XAER_OUTSIDE-9, "XAER_OUTSIDE" },
1316/* -8*/ { MQ_XAER_DUPID-8, "XAER_DUPID" },
1317/* -7*/ { MQ_XAER_RMFAIL-7, "XAER_RMFAIL" },
1318/* -6*/ { MQ_XAER_PROTO-6, "XAER_PROTO" },
1319/* -5*/ { MQ_XAER_INVAL-5, "XAER_INVAL" },
1320/* -4*/ { MQ_XAER_NOTA-4, "XAER_NOTA" },
1321/* -3*/ { MQ_XAER_RMERR-3, "XAER_RMERR" },
1322/* -2*/ { MQ_XAER_ASYNC-2, "XAER_ASYNC" },
1323 { 0, NULL((void*)0) }
1324};
1325
1326static const value_string mq_StructID_vals[] =
1327{
1328/* CAUT*/ { MQ_STRUCTID_CAUT0x43415554, MQ_TEXT_CAUT"Connection Authority" },
1329/* CIH */ { MQ_STRUCTID_CIH0x43494820, MQ_TEXT_CIH"CICS bridge Header" },
1330/* DH */ { MQ_STRUCTID_DH0x44482020, MQ_TEXT_DH"Distribution Header" },
1331/* DLH */ { MQ_STRUCTID_DLH0x444C4820, MQ_TEXT_DLH"Dead-Letter Header" },
1332/* FCNO*/ { MQ_STRUCTID_FCNO0x46434E4F, MQ_TEXT_FCNO"F Connect Option" },
1333/* FOPA*/ { MQ_STRUCTID_FOPA0x464F5041, MQ_TEXT_FOPA"FOPA" },
1334/* GMO */ { MQ_STRUCTID_GMO0x474D4F20, MQ_TEXT_GMO"Get Message Options" },
1335/* ID */ { MQ_STRUCTID_ID0x49442020, MQ_TEXT_ID"Initial Data" },
1336/* IIH */ { MQ_STRUCTID_IIH0x49494820, MQ_TEXT_IIH"IMS Information Header" },
1337/* LPOO*/ { MQ_STRUCTID_LPOO0x4C504F4F, MQ_TEXT_LPOO"LPOO" },
1338/* MD */ { MQ_STRUCTID_MD0x4D442020, MQ_TEXT_MD"Message Descriptor" },
1339/* MDE */ { MQ_STRUCTID_MDE0x4D444520, MQ_TEXT_MDE"Message Descriptor Extension" },
1340/* MSH */ { MQ_STRUCTID_MSH0x4D534820, MQ_TEXT_MSH"Message Segment Header" },
1341/* OD */ { MQ_STRUCTID_OD0x4F442020, MQ_TEXT_OD"Object Descriptor" },
1342/* PMO */ { MQ_STRUCTID_PMO0x504D4F20, MQ_TEXT_PMO"Put Message Options" },
1343/* RFH */ { MQ_STRUCTID_RFH0x52464820, MQ_TEXT_RFH"Rules and Formatting Header" },
1344/* RMH */ { MQ_STRUCTID_RMH0x524D4820, MQ_TEXT_RMH"Reference Message Header" },
1345/* SPAI*/ { MQ_STRUCTID_SPAI0x53504149, MQ_TEXT_SPAI"SPI Activate In" },
1346/* SPAO*/ { MQ_STRUCTID_SPAO0x5350414F, MQ_TEXT_SPAO"SPI Activate Out" },
1347/* SPAU*/ { MQ_STRUCTID_SPAU0x53504155, MQ_TEXT_SPAU"SPI Activate InOut" },
1348/* SPGI*/ { MQ_STRUCTID_SPGI0x53504749, MQ_TEXT_SPGI"SPI Get In" },
1349/* SPGO*/ { MQ_STRUCTID_SPGO0x5350474F, MQ_TEXT_SPGO"SPI Get Out" },
1350/* SPGU*/ { MQ_STRUCTID_SPGU0x53504755, MQ_TEXT_SPGU"SPI Get InOut" },
1351/* SPOI*/ { MQ_STRUCTID_SPOI0x53504F49, MQ_TEXT_SPOI"SPI In" },
1352/* SPOO*/ { MQ_STRUCTID_SPOO0x53504F4F, MQ_TEXT_SPOO"SPI Out" },
1353/* SPOU*/ { MQ_STRUCTID_SPOU0x53504F55, MQ_TEXT_SPOU"SPI InOut" },
1354/* SPPI*/ { MQ_STRUCTID_SPPI0x53505049, MQ_TEXT_SPPI"SPI Put In" },
1355/* SPPO*/ { MQ_STRUCTID_SPPO0x5350504F, MQ_TEXT_SPPO"SPI Put Out" },
1356/* SPPU*/ { MQ_STRUCTID_SPPU0x53505055, MQ_TEXT_SPPU"SPI Put InOut" },
1357/* SPQI*/ { MQ_STRUCTID_SPQI0x53505149, MQ_TEXT_SPQI"SPI Query In" },
1358/* SPQO*/ { MQ_STRUCTID_SPQO0x5350514F, MQ_TEXT_SPQO"SPI Query Out" },
1359/* SPQU*/ { MQ_STRUCTID_SPQU0x53505155, MQ_TEXT_SPQU"SPI Query InOut" },
1360/* TM */ { MQ_STRUCTID_TM0x544D2020, MQ_TEXT_TM"Trigger Message" },
1361/* TMC2*/ { MQ_STRUCTID_TMC20x544D4332, MQ_TEXT_TMC2"Trigger Message 2 (character format)" },
1362/* TSH */ { MQ_STRUCTID_TSH0x54534820, MQ_TEXT_TSH"Transmission Segment Header" },
1363/* TSHC*/ { MQ_STRUCTID_TSHC0x54534843, MQ_TEXT_TSHC"Transmission Segment Header Common" },
1364/* TSHM*/ { MQ_STRUCTID_TSHM0x5453484D, MQ_TEXT_TSHM"Transmission Segment Header Multiplexed" },
1365/* UID */ { MQ_STRUCTID_UID0x55494420, MQ_TEXT_UID"User Id Data" },
1366/* WIH */ { MQ_STRUCTID_WIH0x57494820, MQ_TEXT_WIH"Work Information Header" },
1367/* XQH */ { MQ_STRUCTID_XQH0x58514820, MQ_TEXT_XQH"Transmission Queue Header" },
1368
1369/* CAUT*/ { MQ_STRUCTID_CAUT_EBCDIC0xC3C1E4E3, MQ_TEXT_CAUT"Connection Authority" },
1370/* CIH */ { MQ_STRUCTID_CIH_EBCDIC0xC3C9C840, MQ_TEXT_CIH"CICS bridge Header" },
1371/* DH */ { MQ_STRUCTID_DH_EBCDIC0xC4C84040, MQ_TEXT_DH"Distribution Header" },
1372/* DLH */ { MQ_STRUCTID_DLH_EBCDIC0xC4D3C840, MQ_TEXT_DLH"Dead-Letter Header" },
1373/* FCNO*/ { MQ_STRUCTID_FCNO_EBCDIC0xC6C3D5D6, MQ_TEXT_FCNO"F Connect Option" },
1374/* FOPA*/ { MQ_STRUCTID_FOPA_EBCDIC0xC6D6D7C1, MQ_TEXT_FOPA"FOPA" },
1375/* GMO */ { MQ_STRUCTID_GMO_EBCDIC0xC7D4D640, MQ_TEXT_GMO"Get Message Options" },
1376/* ID */ { MQ_STRUCTID_ID_EBCDIC0xC9C44040, MQ_TEXT_ID"Initial Data" },
1377/* IIH */ { MQ_STRUCTID_IIH_EBCDIC0xC9C9C840, MQ_TEXT_IIH"IMS Information Header" },
1378/* LPOO*/ { MQ_STRUCTID_LPOO_EBCDIC0xD3D7D6D6, MQ_TEXT_LPOO"LPOO" },
1379/* MD */ { MQ_STRUCTID_MD_EBCDIC0xD4C44040, MQ_TEXT_MD"Message Descriptor" },
1380/* MDE */ { MQ_STRUCTID_MDE_EBCDIC0xD4C4C540, MQ_TEXT_MDE"Message Descriptor Extension" },
1381/* OD */ { MQ_STRUCTID_OD_EBCDIC0xD6C44040, MQ_TEXT_OD"Object Descriptor" },
1382/* PMO */ { MQ_STRUCTID_PMO_EBCDIC0xD7D4D640, MQ_TEXT_PMO"Put Message Options" },
1383/* RFH */ { MQ_STRUCTID_RFH_EBCDIC0xD9C6C840, MQ_TEXT_RFH"Rules and Formatting Header" },
1384/* RMH */ { MQ_STRUCTID_RMH_EBCDIC0xD9D4C840, MQ_TEXT_RMH"Reference Message Header" },
1385/* SPAI*/ { MQ_STRUCTID_SPAI_EBCDIC0xE2D7C1C9, MQ_TEXT_SPAI"SPI Activate In" },
1386/* SPAO*/ { MQ_STRUCTID_SPAO_EBCDIC0xE2D7C1D6, MQ_TEXT_SPAO"SPI Activate Out" },
1387/* SPAU*/ { MQ_STRUCTID_SPAU_EBCDIC0xE2D7C1E4, MQ_TEXT_SPAU"SPI Activate InOut" },
1388/* SPGI*/ { MQ_STRUCTID_SPGI_EBCDIC0xE2D7C7C9, MQ_TEXT_SPGI"SPI Get In" },
1389/* SPGO*/ { MQ_STRUCTID_SPGO_EBCDIC0xE2D7C7D6, MQ_TEXT_SPGO"SPI Get Out" },
1390/* SPGU*/ { MQ_STRUCTID_SPGU_EBCDIC0xE2D7C7E4, MQ_TEXT_SPGU"SPI Get InOut" },
1391/* SPOI*/ { MQ_STRUCTID_SPOI_EBCDIC0xE2D7D6C9, MQ_TEXT_SPOI"SPI In" },
1392/* SPOO*/ { MQ_STRUCTID_SPOO_EBCDIC0xE2D7D6D6, MQ_TEXT_SPOO"SPI Out" },
1393/* SPOU*/ { MQ_STRUCTID_SPOU_EBCDIC0xE2D7D6E4, MQ_TEXT_SPOU"SPI InOut" },
1394/* SPPI*/ { MQ_STRUCTID_SPPI_EBCDIC0xE2D7D7C9, MQ_TEXT_SPPI"SPI Put In" },
1395/* SPPO*/ { MQ_STRUCTID_SPPO_EBCDIC0xE2D7D7D6, MQ_TEXT_SPPO"SPI Put Out" },
1396/* SPPU*/ { MQ_STRUCTID_SPPU_EBCDIC0xE2D7D7E4, MQ_TEXT_SPPU"SPI Put InOut" },
1397/* SPQI*/ { MQ_STRUCTID_SPQI_EBCDIC0xE2D7D8C9, MQ_TEXT_SPQI"SPI Query In" },
1398/* SPQO*/ { MQ_STRUCTID_SPQO_EBCDIC0xE2D7D8D6, MQ_TEXT_SPQO"SPI Query Out" },
1399/* SPQU*/ { MQ_STRUCTID_SPQU_EBCDIC0xE2D7D8E4, MQ_TEXT_SPQU"SPI Query InOut" },
1400/* TM */ { MQ_STRUCTID_TM_EBCDIC0xE3D44040, MQ_TEXT_TM"Trigger Message" },
1401/* TMC2*/ { MQ_STRUCTID_TMC2_EBCDIC0xE3D4C3F2, MQ_TEXT_TMC2"Trigger Message 2 (character format)" },
1402/* TSH */ { MQ_STRUCTID_TSH_EBCDIC0xE3E2C840, MQ_TEXT_TSH"Transmission Segment Header" },
1403/* TSHC*/ { MQ_STRUCTID_TSHC_EBCDIC0xE3E2C8C3, MQ_TEXT_TSHC"Transmission Segment Header Common" },
1404/* TSHM*/ { MQ_STRUCTID_TSHM_EBCDIC0xE3E2C8D4, MQ_TEXT_TSHM"Transmission Segment Header Multiplexed" },
1405/* UID */ { MQ_STRUCTID_UID_EBCDIC0xE4C9C440, MQ_TEXT_UID"User Id Data" },
1406/* WIH */ { MQ_STRUCTID_WIH_EBCDIC0xE6C9C840, MQ_TEXT_WIH"Work Information Header" },
1407/* XQH */ { MQ_STRUCTID_XQH_EBCDIC0xE7D8C840, MQ_TEXT_XQH"Transmission Queue Header" },
1408 { 0, NULL((void*)0) }
1409};
1410static value_string_ext mq_StructID_xvals = VALUE_STRING_EXT_INIT(mq_StructID_vals){ _try_val_to_str_ext_init, 0, (sizeof (mq_StructID_vals) / sizeof
((mq_StructID_vals)[0]))-1, mq_StructID_vals, "mq_StructID_vals"
}
;
1411
1412static const value_string mq_byteorder_vals[] =
1413{
1414/* 1*/ { MQ_BIG_ENDIAN0x01, "Big endian" },
1415/* 2*/ { MQ_LITTLE_ENDIAN0x02, "Little endian" },
1416 { 0, NULL((void*)0) }
1417};
1418
1419static const value_string mq_conn_options_vals[] =
1420{
1421/* 1*/ { MQ_CONN_OPTION0x01, "MQCONN" },
1422/* 3*/ { MQ_CONNX_OPTION0x03, "MQCONNX" },
1423 { 0, NULL((void*)0) }
1424};
1425
1426static const value_string mq_sidtype_vals[] =
1427{
1428/* 0*/ { MQ_MQSIDT_NONE'\x00', "MQSIDT_NONE" },
1429/* 1*/ { MQ_MQSIDT_NT_SECURITY_ID'\x01', "MQSIDT_NT_SECURITY_ID" },
1430/* 2*/ { MQ_MQSIDT_WAS_SECURITY_ID'\x02', "MQSIDT_WAS_SECURITY_ID" },
1431 { 0, NULL((void*)0) }
1432};
1433
1434static bool_Bool is_mq_struc_TSH(uint32_t ID)
1435{
1436 switch (ID & MQ_MASK_TSHx0xffffff00)
1437 {
1438 case MQ_STRUCTID_TSHx0x54534800:
1439 case MQ_STRUCTID_TSHx_EBCDIC0xE3E2C800:
1440 return true1;
1441 default:
1442 return false0;
1443 }
1444}
1445
1446static int dissect_mq_encoding(proto_tree* tree, int hfindex, tvbuff_t* tvb, const int start, int length, const unsigned encoding)
1447{
1448 unsigned uEnc;
1449
1450 if (length == 2)
1451 {
1452 uEnc = tvb_get_uint16(tvb, start, encoding);
1453 }
1454 else
1455 {
1456 uEnc = tvb_get_uint32(tvb, start, encoding);
1457 }
1458
1459 proto_tree_add_uint_format_value(tree, hfindex, tvb, start, length, uEnc,
1460 "%8x-%d (%s)", uEnc, uEnc, mqpcf_get_encoding(uEnc)->str);
1461
1462 return length;
1463}
1464
1465static int dissect_mq_MQMO(tvbuff_t* tvb, proto_tree* mq_tree, int offset, int ett_subtree, mq_parm_t* p_mq_parm)
1466{
1467 unsigned uMoOpt;
1468
1469 uMoOpt = tvb_get_uint32(tvb, offset, p_mq_parm->mq_int_enc);
1470
1471 if (uMoOpt == 0)
1472 {
1473 proto_item* ti;
1474 proto_tree* mq_tree_sub;
1475 ti = proto_tree_add_item(mq_tree, hf_mq_gmo_matchoptions, tvb, offset, 4, p_mq_parm->mq_int_enc); /* ENC_BIG_ENDIAN); */
1476 mq_tree_sub = proto_item_add_subtree(ti, ett_subtree);
1477 proto_tree_add_subtree_format(mq_tree_sub, tvb, offset, 4, ett_subtree, NULL((void*)0), MQ_TEXT_MQMO_NONE"None");
1478 }
1479 else
1480 {
1481 proto_tree_add_bitmask(mq_tree, tvb, offset, hf_mq_gmo_matchoptions, ett_subtree, pf_flds_mtchopt, p_mq_parm->mq_int_enc);
1482 }
1483 return 4;
1484}
1485static int dissect_mq_LPOO_LPIOPTS(tvbuff_t* tvb, proto_tree* mq_tree, int offset, int ett_subtree, mq_parm_t* p_mq_parm)
1486{
1487 unsigned uLpiOpts;
1488
1489 uLpiOpts = tvb_get_uint32(tvb, offset, p_mq_parm->mq_int_enc);
1490
1491 if (uLpiOpts == 0)
1492 {
1493 proto_item* ti;
1494 proto_tree* mq_tree_sub;
1495 ti = proto_tree_add_item(mq_tree, hf_mq_lpoo_lpiopts, tvb, offset, 4, p_mq_parm->mq_int_enc);
1496 mq_tree_sub = proto_item_add_subtree(ti, ett_subtree);
1497 proto_tree_add_subtree_format(mq_tree_sub, tvb, offset, 4, ett_subtree, NULL((void*)0), MQ_TEXT_LPOOOPT_NONE"None");
1498 }
1499 else
1500 {
1501 proto_tree_add_bitmask(mq_tree, tvb, offset, hf_mq_lpoo_lpiopts, ett_subtree, pf_flds_lpooopt, p_mq_parm->mq_int_enc);
1502 }
1503 return 4;
1504}
1505static int dissect_mq_MQGMO(tvbuff_t* tvb, proto_tree* mq_tree, int offset, int ett_subtree, mq_parm_t* p_mq_parm)
1506{
1507 unsigned uGmoOpt;
1508
1509 uGmoOpt = tvb_get_uint32(tvb, offset, p_mq_parm->mq_int_enc);
1510
1511 if (uGmoOpt == 0)
1512 {
1513 proto_item* ti;
1514 proto_tree* mq_tree_sub;
1515 ti = proto_tree_add_item(mq_tree, hf_mq_gmo_options, tvb, offset, 4, p_mq_parm->mq_int_enc); /* ENC_BIG_ENDIAN); */
1516 mq_tree_sub = proto_item_add_subtree(ti, ett_subtree);
1517 proto_tree_add_subtree_format(mq_tree_sub, tvb, offset, 4, ett_subtree, NULL((void*)0), MQ_TEXT_MQGMO_NONE"No Wait/Prop as Q Def/None");
1518 }
1519 else
1520 {
1521 proto_tree_add_bitmask(mq_tree, tvb, offset, hf_mq_gmo_options, ett_subtree, pf_flds_gmoopt, p_mq_parm->mq_int_enc);
1522 }
1523 return 4;
1524}
1525
1526static int dissect_mq_MQPMO(tvbuff_t* tvb, proto_tree* mq_tree, int offset, int ett_subtree, mq_parm_t* p_mq_parm)
1527{
1528 unsigned uPmoOpt;
1529
1530 uPmoOpt = tvb_get_uint32(tvb, offset, p_mq_parm->mq_int_enc);
1531
1532 if (uPmoOpt == 0)
1533 {
1534 proto_item* ti;
1535 proto_tree* mq_tree_sub;
1536 ti = proto_tree_add_item(mq_tree, hf_mq_pmo_options, tvb, offset, 4, p_mq_parm->mq_int_enc); /* ENC_BIG_ENDIAN); */
1537 mq_tree_sub = proto_item_add_subtree(ti, ett_subtree);
1538 proto_tree_add_subtree_format(mq_tree_sub, tvb, offset, 4, ett_subtree, NULL((void*)0), MQ_TEXT_MQPMO_NONE"Resp as Q Def/Resp as Topic Def/None");
1539 }
1540 else
1541 {
1542 proto_tree_add_bitmask(mq_tree, tvb, offset, hf_mq_pmo_options, ett_subtree, pf_flds_pmoopt, p_mq_parm->mq_int_enc);
1543 }
1544 return 4;
1545}
1546
1547static int dissect_mq_MQOO(tvbuff_t* tvb, proto_tree* mq_tree, int offset, int ett_subtree, int hfindex, mq_parm_t* p_mq_parm)
1548{
1549 unsigned uOpenOpt;
1550
1551 uOpenOpt = tvb_get_uint32(tvb, offset, p_mq_parm->mq_int_enc);
1552
1553 if (uOpenOpt == 0)
1554 {
1555 proto_item* ti;
1556 proto_tree* mq_tree_sub;
1557 ti = proto_tree_add_item(mq_tree, hfindex, tvb, offset, 4, p_mq_parm->mq_int_enc);
1558 mq_tree_sub = proto_item_add_subtree(ti, ett_subtree);
1559 proto_tree_add_subtree_format(mq_tree_sub, tvb, offset, 4, ett_subtree, NULL((void*)0), MQ_TEXT_BIND_READAHEAD_AS_Q_DEF"Bind/Read Ahead As Q Def");
1560 }
1561 else
1562 {
1563 proto_tree_add_bitmask(mq_tree, tvb, offset, hfindex, ett_subtree, pf_flds_opnopt, p_mq_parm->mq_int_enc);
1564 }
1565 return 4;
1566}
1567static int dissect_mq_MQCO(tvbuff_t* tvb, proto_tree* mq_tree, int offset, mq_parm_t* p_mq_parm)
1568{
1569 unsigned iCloseOpt;
1570
1571 iCloseOpt = tvb_get_uint32(tvb, offset, p_mq_parm->mq_int_enc);
1572
1573 if (iCloseOpt == 0)
1574 {
1575 proto_item* ti;
1576 proto_tree* mq_tree_sub;
1577 ti = proto_tree_add_item(mq_tree, hf_mq_close_options, tvb, offset, 4, p_mq_parm->mq_int_enc);
1578 mq_tree_sub = proto_item_add_subtree(ti, ett_mq_close_option);
1579 proto_tree_add_subtree_format(mq_tree_sub, tvb, offset, 4, ett_mq_close_option, NULL((void*)0), MQ_TEXT_IMMEDIATE_NONE"Close Immediate/No option");
1580 }
1581 else
1582 {
1583 proto_tree_add_bitmask(mq_tree, tvb, offset, hf_mq_close_options, ett_mq_close_option, pf_flds_clsopt, p_mq_parm->mq_int_enc);
1584 }
1585 return 4;
1586}
1587static int dissect_mq_charv(tvbuff_t* tvb, proto_tree* tree, int offset, int iSize, int idx, const char* pStr, mq_parm_t* p_mq_parm)
1588{
1589 proto_tree* mq_tree_sub;
1590 uint32_t lStr;
1591 uint32_t oStr;
1592 int32_t eStr;
1593 const char* sStr;
1594
1595 lStr = tvb_get_uint32(tvb, offset + 12, p_mq_parm->mq_int_enc);
1596 oStr = tvb_get_uint32(tvb, offset + 4, p_mq_parm->mq_int_enc);
1597 eStr = tvb_get_uint32(tvb, offset + 16, p_mq_parm->mq_int_enc);
1598 if (lStr && oStr)
1599 {
1600 sStr = (const char*)tvb_get_string_enc(wmem_packet_scope(), tvb, oStr, lStr, p_mq_parm->mq_str_enc);
1601 }
1602 else
1603 sStr = NULL((void*)0);
1604
1605 mq_tree_sub = proto_tree_add_subtree_format(tree, tvb, offset, iSize, idx, NULL((void*)0), "%s - %s", pStr, (sStr) ? sStr : "[Empty]");
1606
1607 proto_tree_add_item(mq_tree_sub, hf_mq_charv_vsptr, tvb, offset, 4, p_mq_parm->mq_int_enc);
1608 proto_tree_add_item(mq_tree_sub, hf_mq_charv_vsoffset, tvb, offset + 4, 4, p_mq_parm->mq_int_enc);
1609 proto_tree_add_item(mq_tree_sub, hf_mq_charv_vsbufsize, tvb, offset + 8, 4, p_mq_parm->mq_int_enc);
1610 proto_tree_add_item(mq_tree_sub, hf_mq_charv_vslength, tvb, offset + 12, 4, p_mq_parm->mq_int_enc);
1611 proto_tree_add_item(mq_tree_sub, hf_mq_charv_vsccsid, tvb, offset + 16, 4, p_mq_parm->mq_int_enc);
1612 proto_tree_add_item(mq_tree_sub, hf_mq_charv_vsvalue, tvb, oStr, lStr, IS_EBCDIC(eStr)((eStr == 500) || (eStr == 1047)) ? ENC_EBCDIC0x0000002E : ENC_ASCII0x00000000);
1613
1614 return 20;
1615}
1616static int dissect_mq_pmr(tvbuff_t* tvb, proto_tree* tree, int offset, int iNbrRecords, int offsetPMR, uint32_t recFlags, mq_parm_t* p_mq_parm)
1617{
1618 int iSizePMR1 = 0;
1619 int iSizePMR = 0;
1620
1621 iSizePMR1 = ((((recFlags & MQ_PMRF_MSG_ID0x01) != 0) * 24)
1622 + (((recFlags & MQ_PMRF_CORREL_ID0x02) != 0) * 24)
1623 + (((recFlags & MQ_PMRF_GROUP_ID0x04) != 0) * 24)
1624 + (((recFlags & MQ_PMRF_FEEDBACK0x08) != 0) * 4)
1625 + (((recFlags & MQ_PMRF_ACCOUNTING_TOKEN0x10) != 0) * 32));
1626
1627 if (offsetPMR != 0 && iSizePMR1 != 0)
1628 {
1629 iSizePMR = iNbrRecords * iSizePMR1;
1630 if (tvb_reported_length_remaining(tvb, offset) >= iSizePMR)
1631 {
1632 int iOffsetPMR = 0;
1633 int iRecord = 0;
1634 for (iRecord = 0; iRecord < iNbrRecords; iRecord++)
1635 {
1636 proto_tree* mq_tree = proto_tree_add_subtree(tree, tvb, offset + iOffsetPMR, iSizePMR1, ett_mq_pmr, NULL((void*)0), MQ_TEXT_PMR"Put Message Record");
1637 if ((recFlags & MQ_PMRF_MSG_ID0x01) != 0)
1638 {
1639 proto_tree_add_item(mq_tree, hf_mq_pmr_msgid, tvb, offset + iOffsetPMR, 24, ENC_NA0x00000000);
1640 iOffsetPMR += 24;
1641 }
1642 if ((recFlags & MQ_PMRF_CORREL_ID0x02) != 0)
1643 {
1644 proto_tree_add_item(mq_tree, hf_mq_pmr_correlid, tvb, offset + iOffsetPMR, 24, ENC_NA0x00000000);
1645 iOffsetPMR += 24;
1646 }
1647 if ((recFlags & MQ_PMRF_GROUP_ID0x04) != 0)
1648 {
1649 proto_tree_add_item(mq_tree, hf_mq_pmr_groupid, tvb, offset + iOffsetPMR, 24, ENC_NA0x00000000);
1650 iOffsetPMR += 24;
1651 }
1652 if ((recFlags & MQ_PMRF_FEEDBACK0x08) != 0)
1653 {
1654 proto_tree_add_item(mq_tree, hf_mq_pmr_feedback, tvb, offset + iOffsetPMR, 4, p_mq_parm->mq_int_enc);
1655 iOffsetPMR += 4;
1656 }
1657 if ((recFlags & MQ_PMRF_ACCOUNTING_TOKEN0x10) != 0)
1658 {
1659 proto_tree_add_item(mq_tree, hf_mq_pmr_acttoken, tvb, offset + iOffsetPMR, 32, ENC_NA0x00000000);
1660 iOffsetPMR += 32;
1661 }
1662 }
1663 }
1664 else iSizePMR = 0;
1665 }
1666 return iSizePMR;
1667}
1668static int dissect_mq_or(tvbuff_t* tvb, proto_tree* tree, int offset, int iNbrRecords, int offsetOR, mq_parm_t* p_mq_parm)
1669{
1670 int iSizeOR = 0;
1671 if (offsetOR != 0)
1672 {
1673 iSizeOR = iNbrRecords * 96;
1674 if (tvb_reported_length_remaining(tvb, offset) >= iSizeOR)
1675 {
1676 int iOffsetOR = 0;
1677 int iRecord = 0;
1678 for (iRecord = 0; iRecord < iNbrRecords; iRecord++)
1679 {
1680 proto_tree* mq_tree = proto_tree_add_subtree(tree, tvb, offset + iOffsetOR, 96, ett_mq_or, NULL((void*)0), MQ_TEXT_OR"Object Record");
1681 proto_tree_add_item(mq_tree, hf_mq_or_objname, tvb, offset + iOffsetOR, 48, p_mq_parm->mq_str_enc);
1682 proto_tree_add_item(mq_tree, hf_mq_or_objqmgrname, tvb, offset + iOffsetOR + 48, 48, p_mq_parm->mq_str_enc);
1683 iOffsetOR += 96;
1684 }
1685 }
1686 else iSizeOR = 0;
1687 }
1688 return iSizeOR;
1689}
1690static int dissect_mq_rr(tvbuff_t* tvb, proto_tree* tree, int offset, int iNbrRecords, int offsetRR, mq_parm_t* p_mq_parm)
1691{
1692 int iSizeRR = 0;
1693 if (offsetRR != 0)
1694 {
1695 iSizeRR = iNbrRecords * 8;
1696 if (tvb_reported_length_remaining(tvb, offset) >= iSizeRR)
1697 {
1698 int iOffsetRR = 0;
1699 int iRecord = 0;
1700 for (iRecord = 0; iRecord < iNbrRecords; iRecord++)
1701 {
1702 proto_tree* mq_tree = proto_tree_add_subtree(tree, tvb, offset + iOffsetRR, 8, ett_mq_rr, NULL((void*)0), MQ_TEXT_RR"Response Record");
1703 proto_tree_add_item(mq_tree, hf_mq_rr_compcode, tvb, offset + iOffsetRR, 4, p_mq_parm->mq_int_enc);
1704 proto_tree_add_item(mq_tree, hf_mq_rr_reascode, tvb, offset + iOffsetRR + 4, 4, p_mq_parm->mq_int_enc);
1705 iOffsetRR += 8;
1706 }
1707 }
1708 else iSizeRR = 0;
1709 }
1710 return iSizeRR;
1711}
1712static int dissect_mq_gmo(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, int offset, mq_parm_t* p_mq_parm)
1713{
1714 int iSize = 0;
1715
1716 p_mq_parm->mq_strucID = (tvb_reported_length_remaining(tvb, offset) >= 4) ? tvb_get_ntohl(tvb, offset) : MQ_STRUCTID_NULL0x00000000;
1717 if (p_mq_parm->mq_strucID == MQ_STRUCTID_GMO0x474D4F20 || p_mq_parm->mq_strucID == MQ_STRUCTID_GMO_EBCDIC0xC7D4D640)
1718 {
1719 uint32_t iVersion = 0;
1720 iVersion = tvb_get_uint32(tvb, offset + 4, p_mq_parm->mq_int_enc);
1721 /* Compute length according to version */
1722 switch (iVersion)
1723 {
1724 case 1: iSize = 72; break;
1725 case 2: iSize = 80; break;
1726 case 3: iSize = 100; break;
1727 case 4: iSize = 112; break;
1728 }
1729
1730 if (iSize != 0 && tvb_reported_length_remaining(tvb, offset) >= iSize)
1731 {
1732 if (pinfo)
1733 {
1734 uint8_t* sQueue;
1735 sQueue = tvb_get_string_enc(pinfo->pool, tvb, offset + 24, 48, p_mq_parm->mq_str_enc);
1736 if (strip_trailing_blanks(sQueue, 48) > 0)
1737 {
1738 col_append_fstr(pinfo->cinfo, COL_INFO, " Q=%s", sQueue);
1739 }
1740 }
1741
1742 if (tree)
1743 {
1744 proto_tree* mq_tree;
1745
1746 mq_tree = proto_tree_add_subtree(tree, tvb, offset, iSize, ett_mq_gmo, NULL((void*)0), MQ_TEXT_GMO"Get Message Options");
1747
1748 proto_tree_add_item(mq_tree, hf_mq_gmo_StructID, tvb, offset, 4, p_mq_parm->mq_str_enc);
1749 proto_tree_add_item(mq_tree, hf_mq_gmo_version, tvb, offset + 4, 4, p_mq_parm->mq_int_enc);
1750
1751 dissect_mq_MQGMO(tvb, mq_tree, offset + 8, ett_mq_gmo_option, p_mq_parm);
1752
1753 proto_tree_add_item(mq_tree, hf_mq_gmo_waitinterval, tvb, offset + 12, 4, p_mq_parm->mq_int_enc);
1754 proto_tree_add_item(mq_tree, hf_mq_gmo_signal1, tvb, offset + 16, 4, p_mq_parm->mq_int_enc);
1755 proto_tree_add_item(mq_tree, hf_mq_gmo_signal2, tvb, offset + 20, 4, p_mq_parm->mq_int_enc);
1756 proto_tree_add_item(mq_tree, hf_mq_gmo_resolvqname, tvb, offset + 24, 48, p_mq_parm->mq_str_enc);
1757
1758 if (iVersion >= 2)
1759 {
1760 dissect_mq_MQMO(tvb, mq_tree, offset + 72, ett_mq_gmo_matchoption, p_mq_parm);
1761
1762 proto_tree_add_item(mq_tree, hf_mq_gmo_groupstatus, tvb, offset + 76, 1, ENC_BIG_ENDIAN0x00000000);
1763 proto_tree_add_item(mq_tree, hf_mq_gmo_segmstatus, tvb, offset + 77, 1, ENC_BIG_ENDIAN0x00000000);
1764 proto_tree_add_item(mq_tree, hf_mq_gmo_segmentation, tvb, offset + 78, 1, ENC_BIG_ENDIAN0x00000000);
1765 proto_tree_add_item(mq_tree, hf_mq_gmo_reserved, tvb, offset + 79, 1, ENC_BIG_ENDIAN0x00000000);
1766 }
1767
1768 if (iVersion >= 3)
1769 {
1770 proto_tree_add_item(mq_tree, hf_mq_gmo_msgtoken, tvb, offset + 80, 16, ENC_NA0x00000000);
1771 proto_tree_add_item(mq_tree, hf_mq_gmo_returnedlen, tvb, offset + 96, 4, p_mq_parm->mq_int_enc);
1772 }
1773 if (iVersion >= 4)
1774 {
1775 proto_tree_add_item(mq_tree, hf_mq_gmo_reserved2, tvb, offset + 100, 4, p_mq_parm->mq_int_enc);
1776 proto_tree_add_item(mq_tree, hf_mq_gmo_msghandle, tvb, offset + 104, 8, p_mq_parm->mq_int_enc);
1777 }
1778 }
1779 }
1780 }
1781 return iSize;
1782}
1783
1784static int dissect_mq_pmo(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, int offset, mq_parm_t* p_mq_parm, int* iDistributionListSize)
1785{
1786 int iSize = 0;
1787 int iPosV2 = offset + 128;
1788 int offsetb = offset;
1789
1790 p_mq_parm->mq_strucID = (tvb_reported_length_remaining(tvb, offset) >= 4) ? tvb_get_ntohl(tvb, offset) : MQ_STRUCTID_NULL0x00000000;
1791 if (p_mq_parm->mq_strucID == MQ_STRUCTID_PMO0x504D4F20 || p_mq_parm->mq_strucID == MQ_STRUCTID_PMO_EBCDIC0xD7D4D640)
1792 {
1793 uint32_t iVersion = 0;
1794 iVersion = tvb_get_uint32(tvb, offset + 4, p_mq_parm->mq_int_enc);
1795 /* Compute length according to version */
1796 switch (iVersion)
1797 {
1798 case 1: iSize = 128; break;
1799 case 2: iSize = 152; break;
1800 case 3: iSize = 176; break;
1801 }
1802
1803 if (iSize != 0 && tvb_reported_length_remaining(tvb, offset) >= iSize)
1804 {
1805 if (pinfo)
1806 {
1807 uint8_t* sQueue;
1808 uint8_t* sQueueA;
1809
1810 sQueueA = tvb_get_string_enc(pinfo->pool, tvb, offset + 32, 48, 0);
1811 sQueue = tvb_get_string_enc(pinfo->pool, tvb, offset + 32, 48, p_mq_parm->mq_str_enc);
1812 if (strip_trailing_blanks(sQueue, 48) > 0 && strip_trailing_blanks(sQueueA, 48) > 0)
1813 {
1814 col_append_fstr(pinfo->cinfo, COL_INFO, " Q=%s", sQueue);
1815 }
1816 }
1817
1818 if (tree)
1819 {
1820 proto_tree* mq_tree;
1821
1822 mq_tree = proto_tree_add_subtree(tree, tvb, offset, iSize, ett_mq_pmo, NULL((void*)0), MQ_TEXT_PMO"Put Message Options");
1823 proto_tree_add_item(mq_tree, hf_mq_pmo_StructID, tvb, offset, 4, p_mq_parm->mq_str_enc);
1824 proto_tree_add_item(mq_tree, hf_mq_pmo_version, tvb, offset + 4, 4, p_mq_parm->mq_int_enc);
1825
1826 dissect_mq_MQPMO(tvb, mq_tree, offset + 8, ett_mq_pmo_option, p_mq_parm);
1827
1828 proto_tree_add_item(mq_tree, hf_mq_pmo_timeout, tvb, offset + 12, 4, p_mq_parm->mq_int_enc);
1829 proto_tree_add_item(mq_tree, hf_mq_pmo_context, tvb, offset + 16, 4, p_mq_parm->mq_int_enc);
1830 proto_tree_add_item(mq_tree, hf_mq_pmo_knowndstcnt, tvb, offset + 20, 4, p_mq_parm->mq_int_enc);
1831 proto_tree_add_item(mq_tree, hf_mq_pmo_unkndstcnt, tvb, offset + 24, 4, p_mq_parm->mq_int_enc);
1832 proto_tree_add_item(mq_tree, hf_mq_pmo_invaldstcnt, tvb, offset + 28, 4, p_mq_parm->mq_int_enc);
1833 proto_tree_add_item(mq_tree, hf_mq_pmo_resolvqname, tvb, offset + 32, 48, p_mq_parm->mq_str_enc);
1834 proto_tree_add_item(mq_tree, hf_mq_pmo_resolvqmgr, tvb, offset + 80, 48, p_mq_parm->mq_str_enc);
1835 offset += 128;
1836 if (iVersion >= 2)
1837 {
1838 proto_tree_add_item(mq_tree, hf_mq_pmo_recspresent, tvb, offset, 4, p_mq_parm->mq_int_enc);
1839 proto_tree_add_item(mq_tree, hf_mq_pmo_putmsgrecfld, tvb, offset + 4, 4, p_mq_parm->mq_int_enc);
1840 proto_tree_add_item(mq_tree, hf_mq_pmo_putmsgrecofs, tvb, offset + 8, 4, p_mq_parm->mq_int_enc);
1841 proto_tree_add_item(mq_tree, hf_mq_pmo_resprecofs, tvb, offset + 12, 4, p_mq_parm->mq_int_enc);
1842 proto_tree_add_item(mq_tree, hf_mq_pmo_putmsgrecptr, tvb, offset + 16, 4, p_mq_parm->mq_int_enc);
1843 proto_tree_add_item(mq_tree, hf_mq_pmo_resprecptr, tvb, offset + 20, 4, p_mq_parm->mq_int_enc);
1844 offset += 24;
1845 }
1846 if (iVersion >= 3)
1847 {
1848 proto_tree_add_item(mq_tree, hf_mq_pmo_originalmsghandle, tvb, offset, 8, p_mq_parm->mq_int_enc);
1849 proto_tree_add_item(mq_tree, hf_mq_pmo_newmsghandle, tvb, offset + 8, 8, p_mq_parm->mq_int_enc);
1850 proto_tree_add_item(mq_tree, hf_mq_pmo_action, tvb, offset + 16, 4, p_mq_parm->mq_int_enc);
1851 proto_tree_add_item(mq_tree, hf_mq_pmo_publevel, tvb, offset + 20, 4, p_mq_parm->mq_int_enc);
1852 }
1853 }
1854 if (iVersion >= 2)
1855 {
1856 int iNbrRecords = 0;
1857 uint32_t iRecFlags = 0;
1858
1859 iNbrRecords = tvb_get_uint32(tvb, iPosV2, p_mq_parm->mq_int_enc);
1860 iRecFlags = tvb_get_uint32(tvb, iPosV2 + 4, p_mq_parm->mq_int_enc);
1861
1862 if (iNbrRecords > 0)
1863 {
1864 int iOffsetPMR = 0;
1865 int iOffsetRR = 0;
1866
1867 if (iDistributionListSize)
1868 *iDistributionListSize = iNbrRecords;
1869 iOffsetPMR = tvb_get_uint32(tvb, iPosV2 + 8, p_mq_parm->mq_int_enc);
1870 iOffsetRR = tvb_get_uint32(tvb, iPosV2 + 12, p_mq_parm->mq_int_enc);
1871 iSize += dissect_mq_pmr(tvb, tree, offsetb + iSize, iNbrRecords, iOffsetPMR, iRecFlags, p_mq_parm);
1872 iSize += dissect_mq_rr(tvb, tree, offsetb + iSize, iNbrRecords, iOffsetRR, p_mq_parm);
1873 }
1874 }
1875 }
1876 }
1877 return iSize;
1878}
1879
1880static int dissect_mq_od(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, int offset, mq_parm_t* p_mq_parm, int* iDistributionListSize)
1881{
1882 int iSize = 0;
1883
1884 p_mq_parm->mq_strucID = (tvb_reported_length_remaining(tvb, offset) >= 4) ? tvb_get_ntohl(tvb, offset) : MQ_STRUCTID_NULL0x00000000;
1885 if (p_mq_parm->mq_strucID == MQ_STRUCTID_OD0x4F442020 || p_mq_parm->mq_strucID == MQ_STRUCTID_OD_EBCDIC0xD6C44040)
1886 {
1887 /* The OD struct can be present in several messages at different levels */
1888 uint32_t iVersion = 0;
1889 iVersion = tvb_get_uint32(tvb, offset + 4, p_mq_parm->mq_int_enc);
1890 /* Compute length according to version */
1891 switch (iVersion)
1892 {
1893 case 1: iSize = 168; break;
1894 case 2: iSize = 200; break;
1895 case 3: iSize = 336; break;
1896 case 4: iSize = 336 + 3 * 20 + 4; break;
1897 }
1898
1899 if (iSize != 0 && tvb_reported_length_remaining(tvb, offset) >= iSize)
1900 {
1901 int iNbrRecords = 0;
1902
1903 if (iVersion >= 2)
1904 iNbrRecords = tvb_get_uint32(tvb, offset + 168, p_mq_parm->mq_int_enc);
1905
1906 if (pinfo)
1907 {
1908 uint8_t* sObj;
1909 uint32_t uTyp;
1910
1911 uTyp = tvb_get_uint32(tvb, offset + 8, p_mq_parm->mq_int_enc);
1912 sObj = tvb_get_string_enc(pinfo->pool, tvb, offset + 12, 48, p_mq_parm->mq_str_enc);
1913 col_append_fstr(pinfo->cinfo, COL_INFO, " Typ=%s", try_val_to_str_ext(uTyp, &mq_MQOT_xvals));
1914 if (strip_trailing_blanks(sObj, 48) > 0)
1915 {
1916 col_append_fstr(pinfo->cinfo, COL_INFO, " Obj=%s", sObj);
1917 }
1918 }
1919
1920 if (tree)
1921 {
1922 proto_tree* mq_tree;
1923
1924 mq_tree = proto_tree_add_subtree(tree, tvb, offset, iSize, ett_mq_od, NULL((void*)0), MQ_TEXT_OD"Object Descriptor");
1925
1926 proto_tree_add_item(mq_tree, hf_mq_od_StructID, tvb, offset, 4, p_mq_parm->mq_str_enc);
1927 proto_tree_add_item(mq_tree, hf_mq_od_version, tvb, offset + 4, 4, p_mq_parm->mq_int_enc);
1928 proto_tree_add_item(mq_tree, hf_mq_od_objecttype, tvb, offset + 8, 4, p_mq_parm->mq_int_enc);
1929 proto_tree_add_item(mq_tree, hf_mq_od_objectname, tvb, offset + 12, 48, p_mq_parm->mq_str_enc);
1930 proto_tree_add_item(mq_tree, hf_mq_od_objqmgrname, tvb, offset + 60, 48, p_mq_parm->mq_str_enc);
1931 proto_tree_add_item(mq_tree, hf_mq_od_dynqname, tvb, offset + 108, 48, p_mq_parm->mq_str_enc);
1932 proto_tree_add_item(mq_tree, hf_mq_od_altuserid, tvb, offset + 156, 12, p_mq_parm->mq_str_enc);
1933
1934 if (iVersion >= 2)
1935 {
1936 proto_tree_add_item(mq_tree, hf_mq_od_recspresent, tvb, offset + 168, 4, p_mq_parm->mq_int_enc);
1937 proto_tree_add_item(mq_tree, hf_mq_od_knowndstcnt, tvb, offset + 172, 4, p_mq_parm->mq_int_enc);
1938 proto_tree_add_item(mq_tree, hf_mq_od_unknowdstcnt, tvb, offset + 176, 4, p_mq_parm->mq_int_enc);
1939 proto_tree_add_item(mq_tree, hf_mq_od_invaldstcnt, tvb, offset + 180, 4, p_mq_parm->mq_int_enc);
1940 proto_tree_add_item(mq_tree, hf_mq_od_objrecofs, tvb, offset + 184, 4, p_mq_parm->mq_int_enc);
1941 proto_tree_add_item(mq_tree, hf_mq_od_resprecofs, tvb, offset + 188, 4, p_mq_parm->mq_int_enc);
1942 proto_tree_add_item(mq_tree, hf_mq_od_objrecptr, tvb, offset + 192, 4, p_mq_parm->mq_int_enc);
1943 proto_tree_add_item(mq_tree, hf_mq_od_resprecptr, tvb, offset + 196, 4, p_mq_parm->mq_int_enc);
1944 }
1945 if (iVersion >= 3)
1946 {
1947 proto_tree_add_item(mq_tree, hf_mq_od_altsecurid, tvb, offset + 200, 40, p_mq_parm->mq_str_enc);
1948 proto_tree_add_item(mq_tree, hf_mq_od_resolvqname, tvb, offset + 240, 48, p_mq_parm->mq_str_enc);
1949 proto_tree_add_item(mq_tree, hf_mq_od_resolvqmgrnm, tvb, offset + 288, 48, p_mq_parm->mq_str_enc);
1950 }
1951 if (iVersion >= 4)
1952 {
1953 dissect_mq_charv(tvb, mq_tree, offset + 336, 20, ett_mq_od_objstr, "Object string", p_mq_parm);
1954 dissect_mq_charv(tvb, mq_tree, offset + 356, 20, ett_mq_od_selstr, "Selection string", p_mq_parm);
1955 dissect_mq_charv(tvb, mq_tree, offset + 376, 20, ett_mq_od_resobjstr, "Resolved object string", p_mq_parm);
1956 proto_tree_add_item(mq_tree, hf_mq_od_resolvobjtyp, tvb, offset + 396, 4, p_mq_parm->mq_int_enc);
1957 }
1958 }
1959 if (iNbrRecords > 0)
1960 {
1961 int iOffsetOR = 0;
1962 int iOffsetRR = 0;
1963
1964 *iDistributionListSize = iNbrRecords;
1965 iOffsetOR = tvb_get_uint32(tvb, offset + 184, p_mq_parm->mq_int_enc);
1966 iOffsetRR = tvb_get_uint32(tvb, offset + 188, p_mq_parm->mq_int_enc);
1967
1968 iSize += dissect_mq_or(tvb, tree, offset, iNbrRecords, iOffsetOR, p_mq_parm);
1969 iSize += dissect_mq_rr(tvb, tree, offset, iNbrRecords, iOffsetRR, p_mq_parm);
1970 }
1971 }
1972 }
1973 return iSize;
1974}
1975
1976static int dissect_mq_xid(tvbuff_t* tvb, proto_tree* tree, mq_parm_t* p_mq_parm, int offset)
1977{
1978 int iSizeXid = 0;
1979 if (tvb_reported_length_remaining(tvb, offset) >= 6)
1980 {
1981 uint8_t iXidLength = 0;
1982 uint8_t iBqLength = 0;
1983
1984 iXidLength = tvb_get_uint8(tvb, offset + 4);
1985 iBqLength = tvb_get_uint8(tvb, offset + 5);
1986 iSizeXid = 6 + iXidLength + iBqLength;
1987
1988 if (tvb_reported_length_remaining(tvb, offset) >= iSizeXid)
1989 {
1990 proto_tree* mq_tree;
1991
1992 mq_tree = proto_tree_add_subtree(tree, tvb, offset, iSizeXid, ett_mq_xa_xid, NULL((void*)0), MQ_TEXT_XID"Xid");
1993
1994 proto_tree_add_item(mq_tree, hf_mq_xa_xid_formatid, tvb, offset, 4, p_mq_parm->mq_int_enc);
1995 proto_tree_add_item(mq_tree, hf_mq_xa_xid_glbxid_len, tvb, offset + 4, 1, p_mq_parm->mq_int_enc);
1996 proto_tree_add_item(mq_tree, hf_mq_xa_xid_brq_length, tvb, offset + 5, 1, p_mq_parm->mq_int_enc);
1997 proto_tree_add_item(mq_tree, hf_mq_xa_xid_globalxid, tvb, offset + 6, iXidLength, ENC_NA0x00000000);
1998 proto_tree_add_item(mq_tree, hf_mq_xa_xid_brq, tvb, offset + 6 + iXidLength, iBqLength, ENC_NA0x00000000);
1999
2000 iSizeXid = WS_ROUNDUP_4(iSizeXid)(((iSizeXid) + ((unsigned)(4U-1U))) & (~((unsigned)(4U-1U
))))
; /* Alignment to 4 byte word boundary */
2001 if (tvb_reported_length_remaining(tvb, offset) < iSizeXid)
2002 iSizeXid = 0;
2003 }
2004 else iSizeXid = 0;
2005 }
2006 return iSizeXid;
2007}
2008
2009static int dissect_mq_sid(tvbuff_t* tvb, proto_tree* tree, mq_parm_t* p_mq_parm, int offset)
2010{
2011 uint8_t iSIDL;
2012 uint8_t iSID;
2013 char* sid_str;
2014 int bOffset = offset;
2015
2016 iSIDL = tvb_get_uint8(tvb, offset);
2017 proto_tree_add_item(tree, hf_mq_sidlen, tvb, offset, 1, p_mq_parm->mq_int_enc);
2018 offset++;
2019 if (iSIDL > 0)
2020 {
2021 iSID = tvb_get_uint8(tvb, offset);
2022 proto_tree_add_item(tree, hf_mq_sidtyp, tvb, offset, 1, p_mq_parm->mq_int_enc);
2023 offset++;
2024 if (iSID == MQ_MQSIDT_NT_SECURITY_ID'\x01')
2025 {
2026 offset = dissect_nt_sid(tvb, offset, tree, "SID", &sid_str, -1);
2027 }
2028 else
2029 {
2030 proto_tree_add_item(tree, hf_mq_securityid, tvb, offset, 40, ENC_NA0x00000000);
2031 offset += 40;
2032 }
2033 }
2034 return offset - bOffset;
2035}
2036static void dissect_mq_addCR_colinfo(packet_info* pinfo, mq_parm_t* p_mq_parm)
2037{
2038 if (p_mq_parm->mq_convID)
2039 col_append_fstr(pinfo->cinfo, COL_INFO, " C.R=%d.%d", p_mq_parm->mq_convID, p_mq_parm->mq_rqstID);
2040}
2041static int dissect_mq_id(tvbuff_t* tvb, packet_info* pinfo, proto_tree* mqroot_tree, int offset, mq_parm_t* p_mq_parm)
2042{
2043 uint8_t iFAPLvl;
2044 int iSize;
2045 int iPktSz;
2046
2047 iPktSz = tvb_reported_length_remaining(tvb, offset);
2048 iFAPLvl = tvb_get_uint8(tvb, offset + 4);
2049
2050 if (iFAPLvl < 4)
2051 iSize = 44;
2052 else if (iFAPLvl < 9)
2053 iSize = 102;
2054 else if (iFAPLvl < 11)
2055 iSize = 208;
2056 else
2057 iSize = 240;
2058 iSize = MIN(iSize, iPktSz)(((iSize) < (iPktSz)) ? (iSize) : (iPktSz));
2059
2060 if (iSize != 0 && tvb_reported_length_remaining(tvb, offset) >= iSize)
2061 {
2062 uint8_t* sChannel;
2063 sChannel = tvb_get_string_enc(pinfo->pool, tvb, offset + 24, 20, p_mq_parm->mq_str_enc);
2064 dissect_mq_addCR_colinfo(pinfo, p_mq_parm);
2065 col_append_fstr(pinfo->cinfo, COL_INFO, " FAPLvl=%d", iFAPLvl);
2066 if (strip_trailing_blanks(sChannel, 20) > 0)
2067 {
2068 col_append_fstr(pinfo->cinfo, COL_INFO, ", CHL=%s", sChannel);
2069 }
2070 if (iSize > 48)
2071 {
2072 uint8_t* sQMgr;
2073 sQMgr = tvb_get_string_enc(pinfo->pool, tvb, offset + 48, 48, p_mq_parm->mq_str_enc);
2074 if (strip_trailing_blanks(sQMgr, 48) > 0)
2075 {
2076 col_append_fstr(pinfo->cinfo, COL_INFO, ", QM=%s", sQMgr);
2077 }
2078 p_mq_parm->mq_id_ccsid.ccsid = (uint32_t)tvb_get_uint16(tvb, offset + 46, p_mq_parm->mq_int_enc);
2079 }
2080 if (mqroot_tree)
2081 {
2082 proto_tree* mq_tree = proto_tree_add_subtree(mqroot_tree, tvb, offset, iSize, ett_mq_id, NULL((void*)0), MQ_TEXT_ID"Initial Data");
2083
2084 proto_tree_add_item(mq_tree, hf_mq_id_StructID, tvb, offset, 4, p_mq_parm->mq_str_enc);
2085 proto_tree_add_item(mq_tree, hf_mq_id_FapLevel, tvb, offset + 4, 1, ENC_BIG_ENDIAN0x00000000);
2086
2087 /* ID Capability flags 1 */
2088 proto_tree_add_bitmask(mq_tree, tvb, offset + 5, hf_mq_id_cf1, ett_mq_id_cf1, pf_flds_cf1, ENC_BIG_ENDIAN0x00000000);
2089 proto_tree_add_bitmask(mq_tree, tvb, offset + 6, hf_mq_id_ecf1, ett_mq_id_ecf1, pf_flds_cf1, ENC_BIG_ENDIAN0x00000000);
2090
2091 /* Error flags 1*/
2092 proto_tree_add_bitmask(mq_tree, tvb, offset + 7, hf_mq_id_ief1, ett_mq_id_ief1, pf_flds_ef1, ENC_BIG_ENDIAN0x00000000);
2093
2094 proto_tree_add_item(mq_tree, hf_mq_id_Reserved, tvb, offset + 8, 2, p_mq_parm->mq_int_enc);
2095 proto_tree_add_item(mq_tree, hf_mq_id_MaxMsgBatch, tvb, offset + 10, 2, p_mq_parm->mq_int_enc);
2096 proto_tree_add_item(mq_tree, hf_mq_id_MaxTrSize, tvb, offset + 12, 4, p_mq_parm->mq_int_enc);
2097 proto_tree_add_item(mq_tree, hf_mq_id_MaxMsgSize, tvb, offset + 16, 4, p_mq_parm->mq_int_enc);
2098 proto_tree_add_item(mq_tree, hf_mq_id_SeqWrapVal, tvb, offset + 20, 4, p_mq_parm->mq_int_enc);
2099 proto_tree_add_item(mq_tree, hf_mq_id_channel, tvb, offset + 24, 20, p_mq_parm->mq_str_enc);
2100
2101 if (iSize > 44 || (iPktSz > iSize && iPktSz > 44))
2102 {
2103 /* ID Capability flags 2 */
2104 proto_tree_add_bitmask(mq_tree, tvb, offset + 44, hf_mq_id_cf2, ett_mq_id_cf2, pf_flds_cf2, ENC_BIG_ENDIAN0x00000000);
2105 proto_tree_add_bitmask(mq_tree, tvb, offset + 45, hf_mq_id_ecf2, ett_mq_id_ecf2, pf_flds_cf2, ENC_BIG_ENDIAN0x00000000);
2106
2107 proto_tree_add_item(mq_tree, hf_mq_id_ccsid, tvb, offset + 46, 2, p_mq_parm->mq_int_enc);
2108 proto_tree_add_item(mq_tree, hf_mq_id_qmgrname, tvb, offset + 48, 48, p_mq_parm->mq_str_enc);
2109 proto_tree_add_item(mq_tree, hf_mq_id_HBInterval, tvb, offset + 96, 4, p_mq_parm->mq_int_enc);
2110 proto_tree_add_item(mq_tree, hf_mq_id_EFLLength, tvb, offset + 100, 2, p_mq_parm->mq_int_enc);
2111 if (iSize > 102 || (iPktSz > iSize && iPktSz > 102))
2112 {
2113 /* Error flags 2*/
2114 proto_tree_add_bitmask(mq_tree, tvb, offset + 102, hf_mq_id_ief2, ett_mq_id_ief2, pf_flds_ef2, ENC_BIG_ENDIAN0x00000000);
2115 proto_tree_add_item(mq_tree, hf_mq_id_Reserved1, tvb, offset + 103, 1, ENC_BIG_ENDIAN0x00000000);
2116
2117 if (iSize > 104 || (iPktSz > iSize && iPktSz > 104))
2118 {
2119 proto_tree_add_item(mq_tree, hf_mq_id_HdrCprsLst, tvb, offset + 104, 2, p_mq_parm->mq_int_enc);
2120 proto_tree_add_item(mq_tree, hf_mq_id_MsgCprsLst, tvb, offset + 106, 16, p_mq_parm->mq_int_enc);
2121 proto_tree_add_item(mq_tree, hf_mq_id_Reserved2, tvb, offset + 122, 2, p_mq_parm->mq_int_enc);
2122 proto_tree_add_item(mq_tree, hf_mq_id_SSLKeyRst, tvb, offset + 124, 4, p_mq_parm->mq_int_enc);
2123 if (iSize > 128 || (iPktSz > iSize && iPktSz > 128))
2124 {
2125 proto_tree_add_item(mq_tree, hf_mq_id_ConvBySkt, tvb, offset + 128, 4, p_mq_parm->mq_int_enc);
2126
2127 /* ID Capability flags 3 */
2128 proto_tree_add_bitmask(mq_tree, tvb, offset + 132, hf_mq_id_cf3, ett_mq_id_cf3, pf_flds_cf3, ENC_BIG_ENDIAN0x00000000);
2129 proto_tree_add_bitmask(mq_tree, tvb, offset + 133, hf_mq_id_ecf3, ett_mq_id_ecf3, pf_flds_cf3, ENC_BIG_ENDIAN0x00000000);
2130
2131 proto_tree_add_item(mq_tree, hf_mq_id_Reserved3, tvb, offset + 134, 2, p_mq_parm->mq_int_enc);
2132 proto_tree_add_item(mq_tree, hf_mq_id_ProcessId, tvb, offset + 136, 4, p_mq_parm->mq_int_enc);
2133 proto_tree_add_item(mq_tree, hf_mq_id_ThreadId, tvb, offset + 140, 4, p_mq_parm->mq_int_enc);
2134 proto_tree_add_item(mq_tree, hf_mq_id_TraceId, tvb, offset + 144, 4, p_mq_parm->mq_int_enc);
2135 proto_tree_add_item(mq_tree, hf_mq_id_ProdId, tvb, offset + 148, 12, p_mq_parm->mq_str_enc);
2136 }
2137 }
2138 }
2139 if (iSize > 160 || (iPktSz > iSize && iPktSz > 160))
2140 {
2141 proto_tree_add_item(mq_tree, hf_mq_id_mqmid, tvb, offset + 160, 48, p_mq_parm->mq_str_enc);
2142 }
2143 if (iSize > 208 || (iPktSz > iSize && iPktSz > 208))
2144 {
2145 proto_tree_add_item(mq_tree, hf_mq_id_pal, tvb, offset + 208, 20, p_mq_parm->mq_str_enc);
2146 proto_tree_add_item(mq_tree, hf_mq_id_r, tvb, offset + 228, 12, p_mq_parm->mq_str_enc);
2147 }
2148 }
2149 }
2150 }
2151 return iPktSz;
2152}
2153static int dissect_mq_md(tvbuff_t* tvb, proto_tree* tree, int offset, mq_parm_t* p_mq_parm, bool_Bool bDecode)
2154{
2155 int iSize = 0;
2156
2157 p_mq_parm->mq_strucID = (tvb_reported_length_remaining(tvb, offset) >= 4) ? tvb_get_ntohl(tvb, offset) : MQ_STRUCTID_NULL0x00000000;
2158 if (p_mq_parm->mq_strucID == MQ_STRUCTID_MD0x4D442020 || p_mq_parm->mq_strucID == MQ_STRUCTID_MD_EBCDIC0xD4C44040)
2159 {
2160 uint32_t iVersion = 0;
2161 iVersion = tvb_get_uint32(tvb, offset + 4, p_mq_parm->mq_int_enc);
2162 /* Compute length according to version */
2163 switch (iVersion)
2164 {
2165 case 1: iSize = 324; break;
2166 case 2: iSize = 364; break;
2167 }
2168
2169 if (bDecode && iSize != 0 && tvb_reported_length_remaining(tvb, offset) >= iSize)
2170 {
2171 p_mq_parm->iOfsEnc = offset + 24;
2172 p_mq_parm->iOfsCcs = offset + 28;
2173 p_mq_parm->iOfsFmt = offset + 32;
2174
2175 p_mq_parm->mq_md_ccsid.encod = tvb_get_uint32(tvb, offset + 24, p_mq_parm->mq_int_enc);
2176 p_mq_parm->mq_md_ccsid.ccsid = tvb_get_uint32(tvb, offset + 28, p_mq_parm->mq_int_enc);
2177 if (tree)
2178 {
2179 proto_tree* mq_tree = proto_tree_add_subtree(tree, tvb, offset, iSize, ett_mq_md, NULL((void*)0), MQ_TEXT_MD"Message Descriptor");
2180
2181 proto_tree_add_item(mq_tree, hf_mq_md_StructID, tvb, offset, 4, p_mq_parm->mq_str_enc);
2182 proto_tree_add_item(mq_tree, hf_mq_md_version, tvb, offset + 4, 4, p_mq_parm->mq_int_enc);
2183 proto_tree_add_item(mq_tree, hf_mq_md_report, tvb, offset + 8, 4, p_mq_parm->mq_int_enc);
2184 proto_tree_add_item(mq_tree, hf_mq_md_msgtype, tvb, offset + 12, 4, p_mq_parm->mq_int_enc);
2185 proto_tree_add_item(mq_tree, hf_mq_md_expiry, tvb, offset + 16, 4, p_mq_parm->mq_int_enc);
2186 proto_tree_add_item(mq_tree, hf_mq_md_feedback, tvb, offset + 20, 4, p_mq_parm->mq_int_enc);
2187 dissect_mq_encoding(mq_tree, hf_mq_md_encoding, tvb, offset + 24, 4, p_mq_parm->mq_int_enc);
2188 proto_tree_add_item(mq_tree, hf_mq_md_ccsid, tvb, offset + 28, 4, p_mq_parm->mq_int_enc);
2189 proto_tree_add_item(mq_tree, hf_mq_md_format, tvb, offset + 32, 8, p_mq_parm->mq_str_enc);
2190 proto_tree_add_item(mq_tree, hf_mq_md_priority, tvb, offset + 40, 4, p_mq_parm->mq_int_enc);
2191 proto_tree_add_item(mq_tree, hf_mq_md_persistence, tvb, offset + 44, 4, p_mq_parm->mq_int_enc);
2192 proto_tree_add_item(mq_tree, hf_mq_md_msgid, tvb, offset + 48, 24, ENC_NA0x00000000);
2193 proto_tree_add_item(mq_tree, hf_mq_md_correlid, tvb, offset + 72, 24, ENC_NA0x00000000);
2194 proto_tree_add_item(mq_tree, hf_mq_md_backoutcnt, tvb, offset + 96, 4, p_mq_parm->mq_int_enc);
2195 proto_tree_add_item(mq_tree, hf_mq_md_replytoq, tvb, offset + 100, 48, p_mq_parm->mq_str_enc);
2196 proto_tree_add_item(mq_tree, hf_mq_md_replytoqmgr, tvb, offset + 148, 48, p_mq_parm->mq_str_enc);
2197 proto_tree_add_item(mq_tree, hf_mq_md_userid, tvb, offset + 196, 12, p_mq_parm->mq_str_enc);
2198 proto_tree_add_item(mq_tree, hf_mq_md_acttoken, tvb, offset + 208, 32, ENC_NA0x00000000);
2199 proto_tree_add_item(mq_tree, hf_mq_md_appliddata, tvb, offset + 240, 32, p_mq_parm->mq_str_enc);
2200 proto_tree_add_item(mq_tree, hf_mq_md_putappltype, tvb, offset + 272, 4, p_mq_parm->mq_int_enc);
2201 proto_tree_add_item(mq_tree, hf_mq_md_putapplname, tvb, offset + 276, 28, p_mq_parm->mq_str_enc);
2202 proto_tree_add_item(mq_tree, hf_mq_md_putdate, tvb, offset + 304, 8, p_mq_parm->mq_str_enc);
2203 proto_tree_add_item(mq_tree, hf_mq_md_puttime, tvb, offset + 312, 8, p_mq_parm->mq_str_enc);
2204 proto_tree_add_item(mq_tree, hf_mq_md_apporigdata, tvb, offset + 320, 4, p_mq_parm->mq_str_enc);
2205
2206 if (iVersion >= 2)
2207 {
2208 proto_tree_add_item(mq_tree, hf_mq_md_groupid, tvb, offset + 324, 24, ENC_NA0x00000000);
2209 proto_tree_add_item(mq_tree, hf_mq_md_msgseqnumber, tvb, offset + 348, 4, p_mq_parm->mq_int_enc);
2210 proto_tree_add_item(mq_tree, hf_mq_md_offset, tvb, offset + 352, 4, p_mq_parm->mq_int_enc);
2211 proto_tree_add_item(mq_tree, hf_mq_md_msgflags, tvb, offset + 356, 4, p_mq_parm->mq_int_enc);
2212 proto_tree_add_item(mq_tree, hf_mq_md_origlen, tvb, offset + 360, 4, p_mq_parm->mq_int_enc);
2213 }
2214 }
2215 }
2216 }
2217 return iSize;
2218}
2219static int dissect_mq_fopa(tvbuff_t* tvb, proto_tree* tree, int offset, mq_parm_t* p_mq_parm)
2220{
2221 int iSize = 0;
2222 int iVers = 0;
2223
2224 p_mq_parm->mq_strucID = (tvb_reported_length_remaining(tvb, offset) >= 4) ? tvb_get_ntohl(tvb, offset) : MQ_STRUCTID_NULL0x00000000;
2225 if (p_mq_parm->mq_strucID == MQ_STRUCTID_FOPA0x464F5041 || p_mq_parm->mq_strucID == MQ_STRUCTID_FOPA_EBCDIC0xC6D6D7C1)
2226 {
2227 iVers = tvb_get_uint32(tvb, offset + 4, p_mq_parm->mq_int_enc);
2228 iSize = tvb_get_uint32(tvb, offset + 8, p_mq_parm->mq_int_enc);
2229 if (iSize != 0 && tvb_reported_length_remaining(tvb, offset) >= iSize)
2230 {
2231 proto_tree* mq_tree = proto_tree_add_subtree(tree, tvb, offset, iSize, ett_mq_fopa, NULL((void*)0), MQ_TEXT_FOPA"FOPA");
2232
2233 proto_tree_add_item(mq_tree, hf_mq_fopa_StructID, tvb, offset, 4, p_mq_parm->mq_str_enc);
2234 proto_tree_add_item(mq_tree, hf_mq_fopa_version, tvb, offset + 4, 4, p_mq_parm->mq_int_enc);
2235 proto_tree_add_item(mq_tree, hf_mq_fopa_length, tvb, offset + 8, 4, p_mq_parm->mq_int_enc);
2236
2237 proto_tree_add_item(mq_tree, hf_mq_fopa_DefPersistence, tvb, offset + 12, 4, p_mq_parm->mq_int_enc);
2238 proto_tree_add_item(mq_tree, hf_mq_fopa_DefPutRespType, tvb, offset + 16, 4, p_mq_parm->mq_int_enc);
2239 proto_tree_add_item(mq_tree, hf_mq_fopa_DefReadAhead, tvb, offset + 20, 4, p_mq_parm->mq_int_enc);
2240 proto_tree_add_item(mq_tree, hf_mq_fopa_PropertyControl, tvb, offset + 24, 4, p_mq_parm->mq_int_enc);
2241
2242 if ((iVers > 1) && (iSize > 28))
2243 proto_tree_add_item(mq_tree, hf_mq_fopa_Unknown, tvb, offset + 28, iSize - 28, p_mq_parm->mq_int_enc);
2244 }
2245 }
2246 return iSize;
2247}
2248static int dissect_mq_fcmi(tvbuff_t* tvb, proto_tree* tree, int offset, mq_parm_t* p_mq_parm)
2249{
2250 int iSize = 0;
2251
2252 p_mq_parm->mq_strucID = (tvb_reported_length_remaining(tvb, offset) >= 4) ? tvb_get_ntohl(tvb, offset) : MQ_STRUCTID_NULL0x00000000;
2253 if (p_mq_parm->mq_strucID == MQ_STRUCTID_FCMI0x46434D49 || p_mq_parm->mq_strucID == MQ_STRUCTID_FCMI_EBCDIC0xC6C3D4C9)
2254 {
2255 iSize = 8;
2256 if (iSize != 0 && tvb_reported_length_remaining(tvb, offset) >= iSize)
2257 {
2258 proto_tree* mq_tree = proto_tree_add_subtree(tree, tvb, offset, iSize, ett_mq_fcmi, NULL((void*)0), MQ_TEXT_FCMI"FCMI");
2259
2260 proto_tree_add_item(mq_tree, hf_mq_fcmi_StructID, tvb, offset, 4, p_mq_parm->mq_str_enc);
2261 proto_tree_add_item(mq_tree, hf_mq_fcmi_unknown, tvb, offset + 4, 4, p_mq_parm->mq_int_enc);
2262 }
2263 }
2264 return iSize;
2265}
2266static void dissect_mq_pdu(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree)
2267{
2268 int offset = 0;
2269 uint32_t iSegmentLength = 0;
2270 uint32_t iSizePayload = 0;
2271 int iSizeMD = 0;
2272 bool_Bool bPayload = false0;
2273 bool_Bool bEBCDIC = false0;
2274 unsigned strid_enc;
2275 int iDistributionListSize = 0;
2276 int capLen;
2277 mq_parm_t* p_mq_parm;
2278 heur_dtbl_entry_t* hdtbl_entry;
2279
2280 p_mq_parm = wmem_new0(pinfo->pool, mq_parm_t)((mq_parm_t*)wmem_alloc0((pinfo->pool), sizeof(mq_parm_t))
)
;
2281
2282 p_mq_parm->mq_strucID = MQ_STRUCTID_NULL0x00000000;
2283 p_mq_parm->mq_int_enc = ENC_BIG_ENDIAN0x00000000;
2284 p_mq_parm->mq_str_enc = ENC_UTF_80x00000002 | ENC_NA0x00000000;
2285 p_mq_parm->iOfsEnc = 0;
2286 p_mq_parm->iOfsFmt = 0;
2287 p_mq_parm->iOfsCcs = 0;
2288
2289 col_set_str(pinfo->cinfo, COL_PROTOCOL, "MQ");
2290
2291 if (tvb_reported_length(tvb) < 4)
2292 return;
2293
2294 p_mq_parm->mq_strucID = tvb_get_ntohl(tvb, offset);
2295
2296 if (!is_mq_struc_TSH(p_mq_parm->mq_strucID) ||
2297 (tvb_reported_length_remaining(tvb, offset) < 28))
2298 {
2299 /* This packet is a TCP continuation of a segment (if desegmentation is not enabled) */
2300 col_append_str(pinfo->cinfo, COL_INFO, " [Undesegmented]");
2301
2302 proto_tree_add_item(tree, proto_mq, tvb, offset, -1, ENC_NA0x00000000);
2303 call_data_dissector(tvb_new_subset_remaining(tvb, offset), pinfo, tree);
2304 return;
2305 }
2306
2307 proto_tree* mq_tree = NULL((void*)0);
2308 proto_tree* mqroot_tree = NULL((void*)0);
2309 proto_item* ti = NULL((void*)0);
2310
2311 /* An MQ packet always starts with this structure*/
2312 int iSizeTSH = 28;
2313 int iSizeMPF = 0; /* Size Of Multiplexed Field */
2314
2315 strid_enc = ENC_ASCII0x00000000 | ENC_NA0x00000000;
2316 if ((p_mq_parm->mq_strucID & MQ_MASK_TSHx0xffffff00) == MQ_STRUCTID_TSHx_EBCDIC0xE3E2C800)
2317 {
2318 bEBCDIC = true1;
2319 strid_enc = ENC_EBCDIC0x0000002E | ENC_NA0x00000000;
2320 p_mq_parm->mq_str_enc = ENC_EBCDIC0x0000002E | ENC_NA0x00000000;
2321 }
2322
2323 iSegmentLength = tvb_get_ntohl(tvb, offset + 4);
2324
2325 if (p_mq_parm->mq_strucID == MQ_STRUCTID_TSHM0x5453484D || p_mq_parm->mq_strucID == MQ_STRUCTID_TSHM_EBCDIC0xE3E2C8D4)
2326 {
2327 if (tvb_reported_length_remaining(tvb, offset) < 36)
2328 return;
2329 iSizeMPF += 8;
2330 iSizeTSH += iSizeMPF;
2331 p_mq_parm->mq_convID = tvb_get_ntohl(tvb, offset + 8);
2332 p_mq_parm->mq_rqstID = tvb_get_ntohl(tvb, offset + 12);
2333 }
2334 p_mq_parm->mq_opcode = tvb_get_uint8(tvb, offset + iSizeMPF + 9);
2335
2336 if (p_mq_parm->mq_opcode == MQ_TST_REQUEST_MSGS0x0E || p_mq_parm->mq_opcode == MQ_TST_ASYNC_MESSAGE0x0D)
2337 {
2338 p_mq_parm->iOfsEnc = offset + iSizeMPF + 20;
2339 p_mq_parm->iOfsCcs = offset + iSizeMPF + 24;
2340 p_mq_parm->iOfsFmt = offset;
2341 }
2342 p_mq_parm->mq_int_enc = (tvb_get_uint8(tvb, offset + iSizeMPF + 8) == MQ_LITTLE_ENDIAN0x02 ? ENC_LITTLE_ENDIAN0x80000000 : ENC_BIG_ENDIAN0x00000000);
2343 p_mq_parm->mq_ctlf1 = tvb_get_uint8(tvb, offset + iSizeMPF + 10);
2344 p_mq_parm->mq_ctlf2 = tvb_get_uint8(tvb, offset + iSizeMPF + 11);
2345
2346 p_mq_parm->mq_tsh_ccsid.encod = tvb_get_uint32(tvb, offset + iSizeMPF + 20, p_mq_parm->mq_int_enc);
2347 p_mq_parm->mq_tsh_ccsid.ccsid = tvb_get_uint16(tvb, offset + iSizeMPF + 24, p_mq_parm->mq_int_enc);
2348
2349 if (IS_EBCDIC(p_mq_parm->mq_tsh_ccsid.ccsid)((p_mq_parm->mq_tsh_ccsid.ccsid == 500) || (p_mq_parm->
mq_tsh_ccsid.ccsid == 1047))
&& !bEBCDIC)
2350 {
2351 bEBCDIC = true1;
2352 p_mq_parm->mq_str_enc = ENC_EBCDIC0x0000002E | ENC_NA0x00000000;
2353 }
2354
2355 if (!mq_in_reassembly)
2356 {
2357 col_clear_fence(pinfo->cinfo, COL_INFO);
2358 col_clear(pinfo->cinfo, COL_INFO);
2359 col_add_fstr(pinfo->cinfo, COL_INFO, "%-17s", val_to_str_ext(p_mq_parm->mq_opcode, &mq_opcode_xvals, "Unknown (0x%02x)"));
2360 }
2361
2362 if (tree)
2363 {
2364 if (p_mq_parm->mq_opcode != MQ_TST_ASYNC_MESSAGE0x0D)
2365 {
2366 ti = proto_tree_add_item(tree, proto_mq, tvb, offset, -1, ENC_NA0x00000000);
2367 proto_item_append_text(ti, " (%s)", val_to_str_ext(p_mq_parm->mq_opcode, &mq_opcode_xvals, "Unknown (0x%02x)"));
2368 if (bEBCDIC == true1)
2369 proto_item_append_text(ti, " (EBCDIC)");
2370 mqroot_tree = proto_item_add_subtree(ti, ett_mq);
2371 }
2372 else
2373 {
2374 mqroot_tree = tree;
2375 }
2376
2377 mq_tree = proto_tree_add_subtree(mqroot_tree, tvb, offset, iSizeTSH, ett_mq_tsh, NULL((void*)0), MQ_TEXT_TSH"Transmission Segment Header");
2378
2379 proto_tree_add_item(mq_tree, hf_mq_tsh_StructID, tvb, offset + 0, 4, strid_enc);
2380 proto_tree_add_item(mq_tree, hf_mq_tsh_mqseglen, tvb, offset + 4, 4, ENC_BIG_ENDIAN0x00000000);
2381
2382 if (iSizeTSH == 36)
2383 {
2384 proto_tree_add_item(mq_tree, hf_mq_tsh_convid, tvb, offset + 8, 4, ENC_BIG_ENDIAN0x00000000);
2385 proto_tree_add_item(mq_tree, hf_mq_tsh_requestid, tvb, offset + 12, 4, ENC_BIG_ENDIAN0x00000000);
2386 }
2387
2388 proto_tree_add_item(mq_tree, hf_mq_tsh_byteorder, tvb, offset + iSizeMPF + 8, 1, ENC_BIG_ENDIAN0x00000000);
2389 proto_tree_add_item(mq_tree, hf_mq_tsh_opcode, tvb, offset + iSizeMPF + 9, 1, ENC_BIG_ENDIAN0x00000000);
2390
2391 proto_tree_add_bitmask(mq_tree, tvb, offset + iSizeMPF + 10, hf_mq_tsh_ctlflgs1, ett_mq_tsh_tcf, pf_flds_tcf, ENC_BIG_ENDIAN0x00000000);
2392 proto_tree_add_bitmask(mq_tree, tvb, offset + iSizeMPF + 11, hf_mq_tsh_ctlflgs2, ett_mq_tsh_tcf2, pf_flds_tcf2, ENC_BIG_ENDIAN0x00000000);
2393
2394 proto_tree_add_item(mq_tree, hf_mq_tsh_luwid, tvb, offset + iSizeMPF + 12, 8, ENC_NA0x00000000);
2395 dissect_mq_encoding(mq_tree, hf_mq_tsh_encoding, tvb, offset + iSizeMPF + 20, 4, p_mq_parm->mq_int_enc);
2396 proto_tree_add_item(mq_tree, hf_mq_tsh_ccsid, tvb, offset + iSizeMPF + 24, 2, p_mq_parm->mq_int_enc);
2397 proto_tree_add_item(mq_tree, hf_mq_tsh_reserved, tvb, offset + iSizeMPF + 26, 2, p_mq_parm->mq_int_enc);
2398 }
2399 offset += iSizeTSH;
2400
2401 if (tvb_reported_length_remaining(tvb, offset) < 4)
2402 return;
2403
2404 /* Now dissect the embedded structures */
2405 p_mq_parm->mq_strucID = tvb_get_ntohl(tvb, offset);
2406 if (((p_mq_parm->mq_ctlf1 & MQ_TCF_FIRST0x10) == 0) && p_mq_parm->mq_opcode >= 0x80)
2407 {
2408 /* This is a MQ segment continuation (if MQ reassembly is not enabled) */
2409 if (!mq_in_reassembly)
2410 col_append_str(pinfo->cinfo, COL_INFO, " [Unreassembled MQ]");
2411 call_data_dissector(tvb_new_subset_remaining(tvb, offset), pinfo, (mqroot_tree) ? mqroot_tree : tree);
2412 return;
2413 }
2414
2415 /* First MQ segment (opcodes below 0x80 never span several TSH) */
2416 int iSizeAPI = 16;
2417 if (p_mq_parm->mq_opcode >= 0x80 && p_mq_parm->mq_opcode <= 0x9F && tvb_reported_length_remaining(tvb, offset) >= 16)
2418 {
2419 uint32_t iReturnCode = 0;
2420 uint32_t iHdl = 0;
2421 iReturnCode = tvb_get_uint32(tvb, offset + 8, p_mq_parm->mq_int_enc);
2422 iHdl = tvb_get_uint32(tvb, offset + 12, p_mq_parm->mq_int_enc);
2423 if (!mq_in_reassembly)
2424 dissect_mq_addCR_colinfo(pinfo, p_mq_parm);
2425 if (iHdl != 0 && iHdl != 0xffffffff && !mq_in_reassembly)
2426 col_append_fstr(pinfo->cinfo, COL_INFO, " Hdl=0x%04x", iHdl);
2427 if (iReturnCode != 0)
2428 col_append_fstr(pinfo->cinfo, COL_INFO, " [RC=%d]", iReturnCode);
2429
2430 mq_tree = proto_tree_add_subtree(mqroot_tree, tvb, offset, iSizeAPI, ett_mq_api, NULL((void*)0), MQ_TEXT_API"API Header");
2431
2432 proto_tree_add_item(mq_tree, hf_mq_api_replylen, tvb, offset, 4, ENC_BIG_ENDIAN0x00000000);
2433 proto_tree_add_item(mq_tree, hf_mq_api_compcode, tvb, offset + 4, 4, p_mq_parm->mq_int_enc);
2434 proto_tree_add_item(mq_tree, hf_mq_api_reascode, tvb, offset + 8, 4, p_mq_parm->mq_int_enc);
2435 proto_tree_add_item(mq_tree, hf_mq_api_objecthdl, tvb, offset + 12, 4, p_mq_parm->mq_int_enc);
2436
2437 offset += iSizeAPI;
2438 p_mq_parm->mq_strucID = (tvb_reported_length_remaining(tvb, offset) >= 4) ? tvb_get_ntohl(tvb, offset) : MQ_STRUCTID_NULL0x00000000;
2439 }
2440 capLen = tvb_reported_length_remaining(tvb, offset);
2441 if ((p_mq_parm->mq_strucID == MQ_STRUCTID_MSH0x4D534820 || p_mq_parm->mq_strucID == MQ_STRUCTID_MSH_EBCDIC0xD4E2C840) && capLen >= 20)
2442 {
2443 int iSize = 20;
2444 iSizePayload = tvb_get_uint32(tvb, offset + 16, p_mq_parm->mq_int_enc);
2445 bPayload = true1;
2446
2447 mq_tree = proto_tree_add_subtree(mqroot_tree, tvb, offset, iSize, ett_mq_msh, NULL((void*)0), MQ_TEXT_MSH"Message Segment Header");
2448
2449 proto_tree_add_item(mq_tree, hf_mq_msh_StructID, tvb, offset + 0, 4, p_mq_parm->mq_str_enc);
2450 proto_tree_add_item(mq_tree, hf_mq_msh_seqnum, tvb, offset + 4, 4, p_mq_parm->mq_int_enc);
2451 proto_tree_add_item(mq_tree, hf_mq_msh_datalength, tvb, offset + 8, 4, p_mq_parm->mq_int_enc);
2452 proto_tree_add_item(mq_tree, hf_mq_msh_unknown1, tvb, offset + 12, 4, p_mq_parm->mq_int_enc);
2453 proto_tree_add_item(mq_tree, hf_mq_msh_msglength, tvb, offset + 16, 4, p_mq_parm->mq_int_enc);
2454
2455 offset += iSize;
2456 }
2457 else if (p_mq_parm->mq_opcode == MQ_TST_CONAUTH_INFO0x0A && capLen >= 20)
2458 {
2459 int iSize = 24;
2460 int iUsr = 0;
2461 int iPsw = 0;
2462
2463 iUsr = tvb_get_uint32(tvb, offset + 16, p_mq_parm->mq_int_enc);
2464 iPsw = tvb_get_uint32(tvb, offset + 20, p_mq_parm->mq_int_enc);
2465
2466 mq_tree = proto_tree_add_subtree(mqroot_tree, tvb, offset, iSize, ett_mq_caut, NULL((void*)0), MQ_TEXT_CAUT"Connection Authority");
2467
2468 proto_tree_add_item(mq_tree, hf_mq_caut_StructID, tvb, offset, 4, p_mq_parm->mq_str_enc);
2469 proto_tree_add_item(mq_tree, hf_mq_caut_AuthType, tvb, offset + 4, 4, p_mq_parm->mq_int_enc);
2470 proto_tree_add_item(mq_tree, hf_mq_caut_UsrMaxLen, tvb, offset + 8, 4, p_mq_parm->mq_int_enc);
2471 proto_tree_add_item(mq_tree, hf_mq_caut_PwdMaxLen, tvb, offset + 12, 4, p_mq_parm->mq_int_enc);
2472 proto_tree_add_item(mq_tree, hf_mq_caut_UsrLength, tvb, offset + 16, 4, p_mq_parm->mq_int_enc);
2473 proto_tree_add_item(mq_tree, hf_mq_caut_PwdLength, tvb, offset + 20, 4, p_mq_parm->mq_int_enc);
2474
2475 if (iUsr)
2476 proto_tree_add_item(mq_tree, hf_mq_caut_usr, tvb, offset + 24, iUsr, p_mq_parm->mq_str_enc);
2477 if (iPsw)
2478 proto_tree_add_item(mq_tree, hf_mq_caut_psw, tvb, offset + 24 + iUsr, iPsw, p_mq_parm->mq_str_enc);
2479
2480 offset += iSize + iUsr + iPsw;
2481 p_mq_parm->mq_strucID = (tvb_reported_length_remaining(tvb, offset) >= 4) ? tvb_get_ntohl(tvb, offset) : MQ_STRUCTID_NULL0x00000000;
2482 }
2483 else if (p_mq_parm->mq_opcode == MQ_TST_SOCKET_ACTION0x0C && capLen >= 20)
2484 {
2485 int iSize = 20;
2486 int iTy;
2487 int iP1;
2488 int iP2;
2489
2490 p_mq_parm->mq_convID = tvb_get_uint32(tvb, offset, p_mq_parm->mq_int_enc);
2491 p_mq_parm->mq_rqstID = tvb_get_uint32(tvb, offset + 4, p_mq_parm->mq_int_enc);
2492 dissect_mq_addCR_colinfo(pinfo, p_mq_parm);
2493 iTy = tvb_get_uint32(tvb, offset + 8, p_mq_parm->mq_int_enc);
2494 iP1 = tvb_get_uint32(tvb, offset + 12, p_mq_parm->mq_int_enc);
2495 iP2 = tvb_get_uint32(tvb, offset + 16, p_mq_parm->mq_int_enc);
2496 col_append_fstr(pinfo->cinfo, COL_INFO, " Type=%d, P1=%d, P2=%d", iTy, iP1, iP2);
2497
2498 mq_tree = proto_tree_add_subtree(mqroot_tree, tvb, offset, iSizeAPI, ett_mq_socket, NULL((void*)0), MQ_TEXT_SOCKET"Socket Action");
2499
2500 proto_tree_add_item(mq_tree, hf_mq_socket_conversid, tvb, offset, 4, p_mq_parm->mq_int_enc);
2501 proto_tree_add_item(mq_tree, hf_mq_socket_requestid, tvb, offset + 4, 4, p_mq_parm->mq_int_enc);
2502 proto_tree_add_item(mq_tree, hf_mq_socket_type, tvb, offset + 8, 4, p_mq_parm->mq_int_enc);
2503 proto_tree_add_item(mq_tree, hf_mq_socket_parm1, tvb, offset + 12, 4, p_mq_parm->mq_int_enc);
2504 proto_tree_add_item(mq_tree, hf_mq_socket_parm2, tvb, offset + 16, 4, p_mq_parm->mq_int_enc);
2505
2506 offset += iSize;
2507 p_mq_parm->mq_strucID = (tvb_reported_length_remaining(tvb, offset) >= 4) ? tvb_get_ntohl(tvb, offset) : MQ_STRUCTID_NULL0x00000000;
2508 }
2509 else if (p_mq_parm->mq_opcode == MQ_TST_STATUS0x05 && capLen >= 8)
2510 {
2511 /* Some status are 28 bytes long and some are 36 bytes long */
2512 int iStatus = 0;
2513 int iStatusLength = 0;
2514
2515 iStatus = tvb_get_uint32(tvb, offset + 4, p_mq_parm->mq_int_enc);
2516 iStatusLength = tvb_get_uint32(tvb, offset, p_mq_parm->mq_int_enc);
2517
2518 if (tvb_reported_length_remaining(tvb, offset) >= iStatusLength)
2519 {
2520 if (iStatus != 0)
2521 col_append_fstr(pinfo->cinfo, COL_INFO, " Code=%s", val_to_str_ext(iStatus, &mq_status_xvals, "Unknown (0x%08x)"));
2522
2523 mq_tree = proto_tree_add_subtree(mqroot_tree, tvb, offset, 8, ett_mq_status, NULL((void*)0), MQ_TEXT_STAT"STATUS");
2524
2525 proto_tree_add_item(mq_tree, hf_mq_status_length, tvb, offset, 4, p_mq_parm->mq_int_enc);
2526 proto_tree_add_item(mq_tree, hf_mq_status_code, tvb, offset + 4, 4, p_mq_parm->mq_int_enc);
2527
2528 if (iStatusLength >= 12)
2529 proto_tree_add_item(mq_tree, hf_mq_status_value, tvb, offset + 8, 4, p_mq_parm->mq_int_enc);
2530
2531 offset += iStatusLength;
2532 }
2533 }
2534 else if (p_mq_parm->mq_opcode == MQ_TST_PING0x07 && capLen > 4)
2535 {
2536 mq_tree = proto_tree_add_subtree(mqroot_tree, tvb, offset, -1, ett_mq_ping, NULL((void*)0), MQ_TEXT_PING"PING");
2537
2538 proto_tree_add_item(mq_tree, hf_mq_ping_length, tvb, offset, 4, p_mq_parm->mq_int_enc);
2539 proto_tree_add_item(mq_tree, hf_mq_ping_buffer, tvb, offset + 4, -1, ENC_NA0x00000000);
2540
2541 offset = tvb_reported_length(tvb);
2542 }
2543 else if (p_mq_parm->mq_opcode == MQ_TST_RESET0x03 && capLen >= 8)
2544 {
2545 mq_tree = proto_tree_add_subtree(mqroot_tree, tvb, offset, -1, ett_mq_reset, NULL((void*)0), MQ_TEXT_RESET"RESET");
2546
2547 proto_tree_add_item(mq_tree, hf_mq_reset_length, tvb, offset, 4, p_mq_parm->mq_int_enc);
2548 proto_tree_add_item(mq_tree, hf_mq_reset_seqnum, tvb, offset + 4, 4, p_mq_parm->mq_int_enc);
2549
2550 offset = tvb_reported_length(tvb);
2551 }
2552 else if ((p_mq_parm->mq_opcode == MQ_TST_MQOPEN0x83 || p_mq_parm->mq_opcode == MQ_TST_MQCLOSE0x84 ||
2553 p_mq_parm->mq_opcode == MQ_TST_MQOPEN_REPLY0x93 || p_mq_parm->mq_opcode == MQ_TST_MQCLOSE_REPLY0x94) && capLen >= 4)
2554 {
2555 offset += dissect_mq_od(tvb, pinfo, mqroot_tree, offset, p_mq_parm, &iDistributionListSize);
2556 if (tree)
2557 {
2558 mq_tree = proto_tree_add_subtree(mqroot_tree, tvb, offset, 4, ett_mq_open, NULL((void*)0), MQ_TEXT_OPEN"MQOPEN/MQCLOSE");
2559 if (p_mq_parm->mq_opcode == MQ_TST_MQOPEN0x83 || p_mq_parm->mq_opcode == MQ_TST_MQOPEN_REPLY0x93)
2560 {
2561 dissect_mq_MQOO(tvb, mq_tree, offset, ett_mq_open_option, hf_mq_open_options, p_mq_parm);
2562 }
2563 if (p_mq_parm->mq_opcode == MQ_TST_MQCLOSE0x84 || p_mq_parm->mq_opcode == MQ_TST_MQCLOSE_REPLY0x94)
2564 {
2565 dissect_mq_MQCO(tvb, mq_tree, offset, p_mq_parm);
2566 }
2567 }
2568 offset += 4;
2569 offset += dissect_mq_fopa(tvb, mqroot_tree, offset, p_mq_parm);
2570 offset += dissect_mq_fcmi(tvb, mqroot_tree, offset, p_mq_parm);
2571 }
2572 else if ((p_mq_parm->mq_opcode == MQ_TST_MQCONN0x81 || p_mq_parm->mq_opcode == MQ_TST_MQCONN_REPLY0x91) && capLen > 0)
2573 {
2574 int iSizeCONN = 0;
2575
2576 /*iSizeCONN = ((iVersionID == 4 || iVersionID == 6) ? 120 : 112);*/ /* guess */
2577 /* The iVersionID is available in the previous ID segment, we should keep a state
2578 * Instead we rely on the segment length announced in the TSH */
2579 /* The MQCONN structure is special because it does not start with a structid */
2580 iSizeCONN = iSegmentLength - iSizeTSH - iSizeAPI;
2581 //if (iSizeCONN != 120 && /*FAPLvl <= 5 - 6 Version 1 */
2582 // iSizeCONN != 260 && /*FAPLvl == 7 - 11 Version 1 */
2583 // iSizeCONN != 332 && /*FAPLvl == 12 -13 Version 2 */
2584 // iSizeCONN != 460 && /*FAPLvl == 14 -16 Version 3 */
2585 // iSizeCONN != 472) /*FAPLvl == 17 Version 4 */
2586 // iSizeCONN = 0;
2587
2588 if (iSizeCONN != 0 && tvb_reported_length_remaining(tvb, offset) >= iSizeCONN)
2589 {
2590 char* sApplicationName;
2591 char* sQMgr;
2592 uint32_t iEnc;
2593 uint32_t iCod;
2594 uint32_t iApp;
2595 char cChr;
2596
2597 /*
2598 We have to handle the ccsid/coding of the MQCONN REPLY
2599 on z/OS it is always EBCDIC
2600 integer are always BIG_ENDIAN
2601 */
2602 if (p_mq_parm->mq_opcode == MQ_TST_MQCONN_REPLY0x91)
2603 {
2604 iApp = tvb_get_letohl(tvb, offset + 48 + 28);
2605 if (iApp <= 65536)
2606 iCod = ENC_LITTLE_ENDIAN0x80000000;
2607 else
2608 iCod = ENC_BIG_ENDIAN0x00000000;
2609 cChr = tvb_get_uint8(tvb, offset + 48);
2610 if ((cChr >= 'A' && cChr <= 'Z') ||
2611 (cChr >= 'a' && cChr <= 'z') ||
2612 (cChr >= '0' && cChr <= '9') ||
2613 (cChr == '\\'))
2614 {
2615 iEnc = p_mq_parm->mq_str_enc;
2616 }
2617 else
2618 {
2619 iEnc = ENC_EBCDIC0x0000002E;
2620 }
2621 }
2622 else
2623 {
2624 iCod = p_mq_parm->mq_int_enc;
2625 iEnc = p_mq_parm->mq_str_enc;
2626 }
2627 iApp = tvb_get_uint32(tvb, offset + 48 + 28, iCod);
2628
2629 sApplicationName = tvb_get_string_enc(pinfo->pool, tvb, offset + 48, 28, iEnc);
2630 sApplicationName = format_text_chr(pinfo->pool, sApplicationName, strlen(sApplicationName), '.');
2631 if (strip_trailing_blanks((uint8_t*)sApplicationName, (uint32_t)strlen(sApplicationName)) > 0)
2632 {
2633 col_append_fstr(pinfo->cinfo, COL_INFO, " App=%s", sApplicationName);
2634 }
2635 sQMgr = tvb_get_string_enc(pinfo->pool, tvb, offset, 48, iEnc);
2636 sQMgr = format_text_chr(pinfo->pool, sQMgr, strlen(sQMgr), '.');
2637 if (strip_trailing_blanks((uint8_t*)sQMgr, (uint32_t)strlen(sQMgr)) > 0)
2638 {
2639 col_append_fstr(pinfo->cinfo, COL_INFO, " QM=%s", sQMgr);
2640 }
2641
2642 if (tree)
2643 {
2644 ptvcursor_t* cursor;
2645 int tRemain;
2646 proto_tree* mq_tree_sub;
2647 int iOption;
2648 int iVersion;
2649 int nofs;
2650
2651 mq_tree = proto_tree_add_subtree(mqroot_tree, tvb, offset, iSizeCONN, ett_mq_conn, NULL((void*)0), MQ_TEXT_CONN"MQCONN");
2652
2653 cursor = ptvcursor_new(pinfo->pool, mq_tree, tvb, offset);
2654
2655 ptvcursor_add(cursor, hf_mq_conn_QMgr, 48, iEnc);
2656 ptvcursor_add(cursor, hf_mq_conn_appname, 28, iEnc);
2657 ptvcursor_add(cursor, hf_mq_conn_apptype, 4, iCod);
2658 ptvcursor_add(cursor, hf_mq_conn_acttoken, 32, ENC_NA0x00000000);
2659
2660 ptvcursor_add(cursor, hf_mq_conn_options, 4, iCod);
2661 ptvcursor_add(cursor, hf_mq_conn_Xoptions, 4, iCod);
2662
2663 /* starting here we must have the MQCNO structure */
2664
2665 nofs = ptvcursor_current_offset(cursor);
2666 tRemain = tvb_reported_length_remaining(tvb, nofs);
2667
2668 iVersion = tvb_get_uint32(tvb, nofs + 4, iCod);
2669 iOption = tvb_get_uint32(tvb, nofs + 8, iCod);
2670
2671 mq_tree_sub = proto_tree_add_subtree(mq_tree, tvb, nofs, tRemain, ett_mq_fcno, NULL((void*)0), MQ_TEXT_FCNO"F Connect Option");
2672 ptvcursor_set_tree(cursor, mq_tree_sub);
2673 if (iVersion >= 1)
2674 {
2675 ptvcursor_add(cursor, hf_mq_fapmqcno_structid, 4, iEnc);
2676 ptvcursor_add(cursor, hf_mq_fapmqcno_version, 4, iCod);
2677 nofs = ptvcursor_current_offset(cursor);
2678 if (iOption == 0)
2679 {
2680 proto_tree_add_item(mq_tree, hf_mq_fapmqcno_capflags, ptvcursor_tvbuff(cursor), nofs, 4, p_mq_parm->mq_int_enc);
2681 proto_tree_add_subtree_format(mq_tree_sub, ptvcursor_tvbuff(cursor), nofs, 4, ett_mq_fcno_option, NULL((void*)0), MQ_TEXT_FCNO_OPT_NONE"STANDARD_BINDING/RECONNECT_AS_DEF/NONE");
2682 ptvcursor_advance(cursor, 4);
2683 }
2684 else
2685 {
2686 proto_tree_add_bitmask(mq_tree_sub, ptvcursor_tvbuff(cursor), nofs, hf_mq_fapmqcno_capflags, ett_mq_fcno_option, pf_flds_fcno_opt, p_mq_parm->mq_int_enc);
2687 ptvcursor_advance(cursor, 4);
2688 }
2689 ptvcursor_add(cursor, hf_mq_fapmqcno_conntag, 128, ENC_NA0x00000000);
2690 }
2691 if (iVersion >= 2 && tvb_reported_length_remaining(tvb, ptvcursor_current_offset(cursor)) > 128)
2692 {
2693 ptvcursor_add(cursor, hf_mq_fapmqcno_retconntag, 128, ENC_NA0x00000000);
2694 }
2695 if (iVersion >= 3 && tvb_reported_length_remaining(tvb, ptvcursor_current_offset(cursor)) > 12)
2696 {
2697 ptvcursor_add(cursor, hf_mq_fapmqcno_type, 4, ENC_NA0x00000000);
2698 ptvcursor_add(cursor, hf_mq_fapmqcno_timeout, 4, ENC_NA0x00000000);
2699 ptvcursor_add(cursor, hf_mq_fapmqcno_balopts, 4, ENC_NA0x00000000);
2700 }
2701 ptvcursor_set_tree(cursor, mq_tree);
2702 nofs = ptvcursor_current_offset(cursor);
Value stored to 'nofs' is never read
2703 tRemain = tvb_reported_length_remaining(tvb, ptvcursor_current_offset(cursor));
2704 if (tRemain > 0)
2705 {
2706 if (tRemain - 48 > 0)
2707 {
2708 ptvcursor_add(cursor, hf_mq_conn_unknowbyt, tRemain - 48, iEnc);
2709 tRemain -= (tRemain - 48);
2710 }
2711 if (tRemain >= 48)
2712 {
2713 ptvcursor_add(cursor, hf_mq_conn_mqmid, 48, iEnc);
2714 tRemain -= 48;
2715 }
2716 if (tRemain > 0)
2717 {
2718 ptvcursor_add(cursor, hf_mq_conn_unknowbyt, tRemain, iEnc);
2719 }
2720 }
2721 iSizeCONN = ptvcursor_current_offset(cursor) - offset;
2722 ptvcursor_free(cursor);
2723 }
2724 offset += iSizeCONN;
2725 }
2726 }
2727 else if ((p_mq_parm->mq_opcode == MQ_TST_MQINQ0x89 || p_mq_parm->mq_opcode == MQ_TST_MQINQ_REPLY0x99 || p_mq_parm->mq_opcode == MQ_TST_MQSET0x88) && capLen >= 12)
2728 {
2729 /* The MQINQ/MQSET structure is special because it does not start with a structid */
2730 int iNbSelectors;
2731 int iNbIntegers;
2732 int iCharLen;
2733 int iOffsetINQ;
2734 int iSelector;
2735
2736 iNbSelectors = tvb_get_uint32(tvb, offset, p_mq_parm->mq_int_enc);
2737 iNbIntegers = tvb_get_uint32(tvb, offset + 4, p_mq_parm->mq_int_enc);
2738 iCharLen = tvb_get_uint32(tvb, offset + 8, p_mq_parm->mq_int_enc);
2739
2740 mq_tree = proto_tree_add_subtree(mqroot_tree, tvb, offset, -1, ett_mq_inq, NULL((void*)0), MQ_TEXT_INQ"MQINQ/MQSET");
2741
2742 proto_tree_add_item(mq_tree, hf_mq_inq_nbsel, tvb, offset, 4, p_mq_parm->mq_int_enc);
2743 proto_tree_add_item(mq_tree, hf_mq_inq_nbint, tvb, offset + 4, 4, p_mq_parm->mq_int_enc);
2744 proto_tree_add_item(mq_tree, hf_mq_inq_charlen, tvb, offset + 8, 4, p_mq_parm->mq_int_enc);
2745
2746 iOffsetINQ = 12;
2747 if (tvb_reported_length_remaining(tvb, offset + iOffsetINQ) >= iNbSelectors * 4)
2748 {
2749 unsigned _posSel = offset + iOffsetINQ;
2750 unsigned _posSelE = _posSel + iNbSelectors * 4 + 4;
2751 const uint8_t* _pVal = NULL((void*)0);
2752 for (iSelector = 0; iSelector < iNbSelectors; iSelector++)
2753 {
2754 proto_tree_add_item(mq_tree, hf_mq_inq_sel, tvb, offset + iOffsetINQ + iSelector * 4, 4, p_mq_parm->mq_int_enc);
2755 }
2756 iOffsetINQ += iNbSelectors * 4;
2757 if (p_mq_parm->mq_opcode == MQ_TST_MQINQ_REPLY0x99 || p_mq_parm->mq_opcode == MQ_TST_MQSET0x88)
2758 {
2759 int iSizeINQValues;
2760 iSizeINQValues = iNbIntegers * 4 + iCharLen;
2761 if (tvb_reported_length_remaining(tvb, offset + iOffsetINQ) >= iSizeINQValues)
2762 {
2763 int iInteger;
2764 unsigned _lVal;
2765 unsigned _lSel;
2766 for (iInteger = 0; iInteger < iNbIntegers; iInteger++)
2767 {
2768 _lSel = tvb_get_uint32(tvb, _posSel, p_mq_parm->mq_int_enc);
2769 while (_posSel < _posSelE && (_lSel < MQ_MQIA_FIRST1 || _lSel > MQ_MQIA_LAST2000))
2770 {
2771 _posSel += 4;
2772 _lSel = tvb_get_uint32(tvb, _posSel, p_mq_parm->mq_int_enc);
2773 }
2774 _lVal = tvb_get_uint32(tvb, offset + iOffsetINQ + iInteger * 4, p_mq_parm->mq_int_enc);
2775 _pVal = dissect_mqpcf_parm_getintval(_lSel, _lVal);
2776 _posSel += 4;
2777 if (_pVal)
2778 proto_tree_add_uint_format(mq_tree, hf_mq_inq_intvalue, tvb, offset + iOffsetINQ + iInteger * 4, 4, 0,
2779 "Integer value...: %s (%d)", _pVal, _lVal);
2780 else
2781 proto_tree_add_item(mq_tree, hf_mq_inq_intvalue, tvb, offset + iOffsetINQ + iInteger * 4, 4, p_mq_parm->mq_int_enc);
2782 }
2783 iOffsetINQ += iNbIntegers * 4;
2784 if (iCharLen != 0)
2785 {
2786 proto_tree_add_item(mq_tree, hf_mq_inq_charvalues, tvb, offset + iOffsetINQ, iCharLen, p_mq_parm->mq_str_enc);
2787 }
2788 }
2789 }
2790 }
2791 offset += tvb_reported_length(tvb);
2792 }
2793 else if (p_mq_parm->mq_opcode == MQ_TST_NOTIFICATION0x0F)
2794 {
2795 unsigned uHdl;
2796 unsigned uCod;
2797
2798 uHdl = tvb_get_uint32(tvb, offset + 4, p_mq_parm->mq_int_enc);
2799 uCod = tvb_get_uint32(tvb, offset + 8, p_mq_parm->mq_int_enc);
2800
2801 dissect_mq_addCR_colinfo(pinfo, p_mq_parm);
2802 col_append_fstr(pinfo->cinfo, COL_INFO, " Hdl=0x%04x Cod=%s(0x%x)",
2803 uHdl, try_val_to_str(uCod, mq_notifcode_vals), uCod);
2804
2805 mq_tree = proto_tree_add_subtree(mqroot_tree, tvb, offset, -1, ett_mq_notif, NULL((void*)0), MQ_TEXT_NOTIFICATION"NOTIFICATION");
2806
2807 proto_tree_add_item(mq_tree, hf_mq_notif_vers, tvb, offset, 4, p_mq_parm->mq_int_enc);
2808 proto_tree_add_item(mq_tree, hf_mq_notif_handle, tvb, offset + 4, 4, p_mq_parm->mq_int_enc);
2809 proto_tree_add_item(mq_tree, hf_mq_notif_code, tvb, offset + 8, 4, p_mq_parm->mq_int_enc);
2810 proto_tree_add_item(mq_tree, hf_mq_notif_value, tvb, offset + 12, 4, p_mq_parm->mq_int_enc);
2811
2812 offset += 16;
2813 p_mq_parm->mq_strucID = (tvb_reported_length_remaining(tvb, offset) >= 4) ? tvb_get_ntohl(tvb, offset) : MQ_STRUCTID_NULL0x00000000;
2814 }
2815 else if (p_mq_parm->mq_opcode == MQ_TST_REQUEST_MSGS0x0E)
2816 {
2817 int iHdl;
2818 int iFlags;
2819 int iGlbMsgIdx;
2820 int iMaxMsgLen;
2821 int iOpt;
2822
2823 iHdl = tvb_get_uint32(tvb, offset + 4, p_mq_parm->mq_int_enc);
2824 iMaxMsgLen = tvb_get_uint32(tvb, offset + 16, p_mq_parm->mq_int_enc);
2825 iFlags = tvb_get_uint32(tvb, offset + 32, p_mq_parm->mq_int_enc);
2826 iGlbMsgIdx = tvb_get_uint32(tvb, offset + 36, p_mq_parm->mq_int_enc);
2827 if (iFlags & MQ_REQUEST_MSG_SELECTION0x00000010)
2828 {
2829 p_mq_parm->mq_msgreq_ccsid.encod = tvb_get_uint32(tvb, offset + 44, p_mq_parm->mq_int_enc);
2830 p_mq_parm->mq_msgreq_ccsid.ccsid = tvb_get_uint32(tvb, offset + 48, p_mq_parm->mq_int_enc);
2831 }
2832 dissect_mq_addCR_colinfo(pinfo, p_mq_parm);
2833 col_append_fstr(pinfo->cinfo, COL_INFO, " Hdl=0x%04x RqstFlags=%08x GlbMsgIdx=%d MaxLen=%d ",
2834 iHdl, iFlags, iGlbMsgIdx, iMaxMsgLen);
2835
2836 if (tree)
2837 {
2838 mq_tree = proto_tree_add_subtree(mqroot_tree, tvb, offset, -1, ett_mq_msg, NULL((void*)0), MQ_TEXT_REQMSG"REQUEST MESSAGE");
2839
2840 proto_tree_add_item(mq_tree, hf_mq_msgreq_version, tvb, offset, 4, p_mq_parm->mq_int_enc);
2841 proto_tree_add_item(mq_tree, hf_mq_msgreq_handle, tvb, offset + 4, 4, p_mq_parm->mq_int_enc);
2842 proto_tree_add_item(mq_tree, hf_mq_msgreq_RecvBytes, tvb, offset + 8, 4, p_mq_parm->mq_int_enc);
2843 proto_tree_add_item(mq_tree, hf_mq_msgreq_RqstBytes, tvb, offset + 12, 4, p_mq_parm->mq_int_enc);
2844 proto_tree_add_item(mq_tree, hf_mq_msgreq_MaxMsgLen, tvb, offset + 16, 4, p_mq_parm->mq_int_enc);
2845 dissect_mq_MQGMO(tvb, mq_tree, offset + 20, ett_mq_gmo_option, p_mq_parm);
2846
2847 proto_tree_add_item(mq_tree, hf_mq_msgreq_WaitIntrv, tvb, offset + 24, 4, p_mq_parm->mq_int_enc);
2848 proto_tree_add_item(mq_tree, hf_mq_msgreq_QueStatus, tvb, offset + 28, 4, p_mq_parm->mq_int_enc);
2849 proto_tree_add_bitmask(mq_tree, tvb, offset + 32, hf_mq_msgreq_RqstFlags, ett_mq_msgreq_RqstFlags, pf_flds_msgreq_flags, p_mq_parm->mq_int_enc);
2850
2851 proto_tree_add_item(mq_tree, hf_mq_msgreq_GlbMsgIdx, tvb, offset + 36, 4, p_mq_parm->mq_int_enc);
2852
2853 if (iFlags & MQ_REQUEST_MSG_SELECTION0x00000010)
2854 {
2855 proto_tree_add_item(mq_tree, hf_mq_msgreq_SelectIdx, tvb, offset + 40, 2, p_mq_parm->mq_int_enc);
2856 proto_tree_add_item(mq_tree, hf_mq_msgreq_MQMDVers, tvb, offset + 42, 2, p_mq_parm->mq_int_enc);
2857 proto_tree_add_item(mq_tree, hf_mq_msgreq_ccsid, tvb, offset + 44, 4, p_mq_parm->mq_int_enc);
2858 dissect_mq_encoding(mq_tree, hf_mq_msgreq_encoding, tvb, offset + 48, 4, p_mq_parm->mq_int_enc);
2859 proto_tree_add_item(mq_tree, hf_mq_msgreq_MsgSeqNum, tvb, offset + 52, 4, p_mq_parm->mq_int_enc);
2860 proto_tree_add_item(mq_tree, hf_mq_msgreq_offset, tvb, offset + 56, 4, p_mq_parm->mq_int_enc);
2861 dissect_mq_MQMO(tvb, mq_tree, offset + 60, ett_mq_gmo_matchoption, p_mq_parm);
2862 iOpt = tvb_get_uint32(tvb, offset + 60, p_mq_parm->mq_int_enc);
2863
2864 offset += MQ_REQUEST_MSG_SIZE_V1_SELECTION_FIXED_PART64;
2865 if (iOpt & MQ_MQMO_MATCH_MSG_ID0x00000001)
2866 {
2867 proto_tree_add_item(mq_tree, hf_mq_msgreq_mtchMsgId, tvb, offset, 24, p_mq_parm->mq_str_enc);
2868 offset += 24;
2869 }
2870 if (iOpt & MQ_MQMO_MATCH_CORREL_ID0x00000002)
2871 {
2872 proto_tree_add_item(mq_tree, hf_mq_msgreq_mtchCorId, tvb, offset, 24, p_mq_parm->mq_str_enc);
2873 offset += 24;
2874 }
2875 if (iOpt & MQ_MQMO_MATCH_GROUP_ID0x00000004)
2876 {
2877 proto_tree_add_item(mq_tree, hf_mq_msgreq_mtchGrpid, tvb, offset, 24, p_mq_parm->mq_str_enc);
2878 offset += 24;
2879 }
2880 if (iOpt & MQ_MQMO_MATCH_MSG_TOKEN0x00000020)
2881 {
2882 proto_tree_add_item(mq_tree, hf_mq_msgreq_mtchMsgTk, tvb, offset, 16, p_mq_parm->mq_str_enc);
2883 offset += 16;
2884 }
2885 }
2886 else
2887 {
2888 offset += MQ_REQUEST_MSG_SIZE_V1_NO_SELECTION40;
2889 }
2890 }
2891 p_mq_parm->mq_strucID = (tvb_reported_length_remaining(tvb, offset) >= 4) ? tvb_get_ntohl(tvb, offset) : MQ_STRUCTID_NULL0x00000000;
2892 }
2893 else if (p_mq_parm->mq_opcode == MQ_TST_ASYNC_MESSAGE0x0D)
2894 {
2895 int iReasnCode = 0;
2896 int iSegmIndex;
2897 int iGlbMsgIdx;
2898 int iPadLen;
2899
2900 int8_t iStrLen;
2901 int iHdl;
2902 int iHdrL;
2903
2904 iHdl = tvb_get_uint32(tvb, offset + 4, p_mq_parm->mq_int_enc);
2905 iGlbMsgIdx = tvb_get_uint32(tvb, offset + 12, p_mq_parm->mq_int_enc);
2906 iSegmIndex = tvb_get_uint16(tvb, offset + 20, p_mq_parm->mq_int_enc);
2907
2908 if (p_mq_parm->mq_ctlf1 & MQ_TCF_FIRST0x10)
2909 {
2910 iReasnCode = tvb_get_uint32(tvb, offset + 24, p_mq_parm->mq_int_enc);
2911 }
2912
2913 if (iSegmIndex == 0)
2914 {
2915 iStrLen = tvb_get_uint8(tvb, offset + 54);
2916 iPadLen = (2 + 1 + iStrLen) % 4;
2917 iPadLen = (iPadLen) ? 4 - iPadLen : 0;
2918 }
2919 else
2920 {
2921 iPadLen = 0;
2922 iStrLen = 0;
2923 }
2924
2925 iHdrL = (iSegmIndex == 0) ? (54 + 1 + iStrLen + iPadLen) : 24;
2926
2927 if (!mq_in_reassembly)
2928 {
2929 dissect_mq_addCR_colinfo(pinfo, p_mq_parm);
2930 col_append_fstr(pinfo->cinfo, COL_INFO,
2931 " Hdl=0x%04x GlbMsgIdx=%d, Full Message",
2932 iHdl, iGlbMsgIdx);
2933 if (iReasnCode != MQ_MQRC_NONE0)
2934 col_append_fstr(pinfo->cinfo, COL_INFO,
2935 ", RC=%d(0x%x) - %s",
2936 iReasnCode, iReasnCode,
2937 val_to_str_ext(iReasnCode, &mq_MQRC_xvals, "Unknown (0x%02x)"));
2938 }
2939
2940 mq_tree = proto_tree_add_subtree(mqroot_tree, tvb, offset, iHdrL, ett_mq_msg, NULL((void*)0), MQ_TEXT_ASYMSG"ASYNC MESSAGE");
2941
2942 proto_tree_add_item(mq_tree, hf_mq_msgasy_version, tvb, offset, 4, p_mq_parm->mq_int_enc);
2943 proto_tree_add_item(mq_tree, hf_mq_msgasy_handle, tvb, offset + 4, 4, p_mq_parm->mq_int_enc);
2944 proto_tree_add_item(mq_tree, hf_mq_msgasy_MsgIndex, tvb, offset + 8, 4, p_mq_parm->mq_int_enc);
2945 proto_tree_add_item(mq_tree, hf_mq_msgasy_GlbMsgIdx, tvb, offset + 12, 4, p_mq_parm->mq_int_enc);
2946 proto_tree_add_item(mq_tree, hf_mq_msgasy_SegLength, tvb, offset + 16, 4, p_mq_parm->mq_int_enc);
2947 proto_tree_add_item(mq_tree, hf_mq_msgasy_SegmIndex, tvb, offset + 20, 2, p_mq_parm->mq_int_enc);
2948 proto_tree_add_item(mq_tree, hf_mq_msgasy_SeleIndex, tvb, offset + 22, 2, p_mq_parm->mq_int_enc);
2949 if (p_mq_parm->mq_ctlf1 & MQ_TCF_FIRST0x10)
2950 {
2951 proto_tree_add_item(mq_tree, hf_mq_msgasy_ReasonCod, tvb, offset + 24, 4, p_mq_parm->mq_int_enc);
2952 proto_tree_add_item(mq_tree, hf_mq_msgasy_TotMsgLen, tvb, offset + 28, 4, p_mq_parm->mq_int_enc);
2953 proto_tree_add_item(mq_tree, hf_mq_msgasy_ActMsgLen, tvb, offset + 32, 4, p_mq_parm->mq_int_enc);
2954 proto_tree_add_item(mq_tree, hf_mq_msgasy_MsgToken, tvb, offset + 36, 16, p_mq_parm->mq_int_enc);
2955 proto_tree_add_item(mq_tree, hf_mq_msgasy_Status, tvb, offset + 52, 2, p_mq_parm->mq_int_enc);
2956 proto_tree_add_item(mq_tree, hf_mq_msgasy_resolQNLn, tvb, offset + 54, 1, ENC_NA0x00000000);
2957 proto_tree_add_item(mq_tree, hf_mq_msgasy_resolQNme, tvb, offset + 55, iStrLen, p_mq_parm->mq_str_enc);
2958 if (iPadLen)
2959 proto_tree_add_item(mq_tree, hf_mq_msgasy_padding, tvb, offset + 55 + iStrLen, iPadLen, p_mq_parm->mq_str_enc);
2960 }
2961 offset += iHdrL;
2962 p_mq_parm->mq_strucID = (tvb_reported_length_remaining(tvb, offset) >= 4) ? tvb_get_ntohl(tvb, offset) : MQ_STRUCTID_NULL0x00000000;
2963
2964 iSizePayload = tvb_reported_length_remaining(tvb, offset);
2965 bPayload = (iSizePayload > 0);
2966 }
2967 else if ((p_mq_parm->mq_opcode == MQ_TST_SPI0x8C || p_mq_parm->mq_opcode == MQ_TST_SPI_REPLY0x9C) && capLen >= 12)
2968 {
2969 int iOffsetSPI = 0;
2970 uint32_t iSpiVerb = 0;
2971
2972 p_mq_parm->iOfsEnc = offset + 12;
2973 p_mq_parm->iOfsCcs = offset + 16;
2974 p_mq_parm->iOfsFmt = offset + 20;
2975
2976 iSpiVerb = tvb_get_uint32(tvb, offset, p_mq_parm->mq_int_enc);
2977 col_append_fstr(pinfo->cinfo, COL_INFO, " (%s)", val_to_str(iSpiVerb, mq_spi_verbs_vals, "Unknown (0x%08x)"));
2978
2979 mq_tree = proto_tree_add_subtree(mqroot_tree, tvb, offset, 12, ett_mq_spi, NULL((void*)0), MQ_TEXT_SPI"SPI");
2980
2981 proto_tree_add_item(mq_tree, hf_mq_spi_verb, tvb, offset, 4, p_mq_parm->mq_int_enc);
2982 proto_tree_add_item(mq_tree, hf_mq_spi_version, tvb, offset + 4, 4, p_mq_parm->mq_int_enc);
2983 proto_tree_add_item(mq_tree, hf_mq_spi_length, tvb, offset + 8, 4, p_mq_parm->mq_int_enc);
2984
2985 offset += 12;
2986 p_mq_parm->mq_strucID = (tvb_reported_length_remaining(tvb, offset) >= 4) ? tvb_get_ntohl(tvb, offset) : MQ_STRUCTID_NULL0x00000000;
2987 if (((p_mq_parm->mq_strucID & MQ_MASK_SPxZ0xffff00ff) == MQ_STRUCTID_SPxU0x53500055 ||
2988 (p_mq_parm->mq_strucID & MQ_MASK_SPxZ0xffff00ff) == MQ_STRUCTID_SPxU_EBCDIC0xE2D700E4)
2989 && tvb_reported_length_remaining(tvb, offset) >= 12)
2990 {
2991 int iSizeSPIMD = 0;
2992 uint8_t* sStructId;
2993
2994 if ((p_mq_parm->mq_strucID & MQ_MASK_SPxx0xffff0000) == MQ_STRUCTID_SPxx0x53500000)
2995 {
2996 strid_enc = ENC_ASCII0x00000000 | ENC_NA0x00000000;
2997 }
2998 else
2999 {
3000 strid_enc = ENC_EBCDIC0x0000002E | ENC_NA0x00000000;
3001 }
3002 sStructId = tvb_get_string_enc(pinfo->pool, tvb, offset, 4, strid_enc);
3003 mq_tree = proto_tree_add_subtree(mqroot_tree, tvb, offset, 12, ett_mq_spi_base, NULL((void*)0), (const char*)sStructId);
3004
3005 proto_tree_add_item(mq_tree, hf_mq_spi_base_StructID, tvb, offset, 4, strid_enc);
3006 proto_tree_add_item(mq_tree, hf_mq_spi_base_version, tvb, offset + 4, 4, p_mq_parm->mq_int_enc);
3007 proto_tree_add_item(mq_tree, hf_mq_spi_base_length, tvb, offset + 8, 4, p_mq_parm->mq_int_enc);
3008
3009 offset += 12;
3010 p_mq_parm->mq_strucID = (tvb_reported_length_remaining(tvb, offset) >= 4) ? tvb_get_ntohl(tvb, offset) : MQ_STRUCTID_NULL0x00000000;
3011
3012 if ((iSizeSPIMD = dissect_mq_md(tvb, mqroot_tree, offset, p_mq_parm, true1)) != 0)
3013 {
3014 offset += iSizeSPIMD;
3015 offset += dissect_mq_gmo(tvb, pinfo, mqroot_tree, offset, p_mq_parm);
3016 offset += dissect_mq_pmo(tvb, pinfo, mqroot_tree, offset, p_mq_parm, &iDistributionListSize);
3017 p_mq_parm->mq_strucID = (tvb_reported_length_remaining(tvb, offset) >= 4) ? tvb_get_ntohl(tvb, offset) : MQ_STRUCTID_NULL0x00000000;
3018 }
3019
3020 offset += dissect_mq_od(tvb, pinfo, mqroot_tree, offset, p_mq_parm, &iDistributionListSize);
3021
3022 if (((p_mq_parm->mq_strucID & MQ_MASK_SPxZ0xffff00ff) == MQ_STRUCTID_SPxO0x5350004F ||
3023 (p_mq_parm->mq_strucID & MQ_MASK_SPxZ0xffff00ff) == MQ_STRUCTID_SPxO_EBCDIC0xE2D700D6 ||
3024 (p_mq_parm->mq_strucID & MQ_MASK_SPxZ0xffff00ff) == MQ_STRUCTID_SPxI0x53500049 ||
3025 (p_mq_parm->mq_strucID & MQ_MASK_SPxZ0xffff00ff) == MQ_STRUCTID_SPxI_EBCDIC0xE2D700C9)
3026 && tvb_reported_length_remaining(tvb, offset) >= 12)
3027 {
3028 /* Dissect the common part of these structures */
3029 if ((p_mq_parm->mq_strucID & MQ_MASK_SPxx0xffff0000) == MQ_STRUCTID_SPxx0x53500000)
3030 {
3031 strid_enc = ENC_ASCII0x00000000 | ENC_NA0x00000000;
3032 }
3033 else
3034 {
3035 strid_enc = ENC_EBCDIC0x0000002E | ENC_NA0x00000000;
3036 }
3037 sStructId = tvb_get_string_enc(pinfo->pool, tvb, offset, 4, strid_enc);
3038 mq_tree = proto_tree_add_subtree(mqroot_tree, tvb, offset, -1, ett_mq_spi_base, NULL((void*)0), (const char*)sStructId);
3039
3040 proto_tree_add_item(mq_tree, hf_mq_spi_base_StructID, tvb, offset, 4, strid_enc);
3041 proto_tree_add_item(mq_tree, hf_mq_spi_base_version, tvb, offset + 4, 4, p_mq_parm->mq_int_enc);
3042 proto_tree_add_item(mq_tree, hf_mq_spi_base_length, tvb, offset + 8, 4, p_mq_parm->mq_int_enc);
3043
3044 if ((p_mq_parm->mq_strucID == MQ_STRUCTID_SPQO0x5350514F || p_mq_parm->mq_strucID == MQ_STRUCTID_SPQO_EBCDIC0xE2D7D8D6)
3045 && tvb_reported_length_remaining(tvb, offset) >= 16)
3046 {
3047 if (tree)
3048 {
3049 int iVerbNumber = 0;
3050 proto_tree_add_item(mq_tree, hf_mq_spi_spqo_nbverb, tvb, offset + 12, 4, p_mq_parm->mq_int_enc);
3051 iVerbNumber = tvb_get_uint32(tvb, offset + 12, p_mq_parm->mq_int_enc);
3052
3053 if (tvb_reported_length_remaining(tvb, offset) >= iVerbNumber * 20 + 16)
3054 {
3055 int iVerb = 0;
3056 iOffsetSPI = offset + 16;
3057 for (iVerb = 0; iVerb < iVerbNumber; iVerb++)
3058 {
3059 proto_tree_add_item(mq_tree, hf_mq_spi_spqo_verbid, tvb, iOffsetSPI, 4, p_mq_parm->mq_int_enc);
3060 proto_tree_add_item(mq_tree, hf_mq_spi_spqo_maxiover, tvb, iOffsetSPI + 4, 4, p_mq_parm->mq_int_enc);
3061 proto_tree_add_item(mq_tree, hf_mq_spi_spqo_maxinver, tvb, iOffsetSPI + 8, 4, p_mq_parm->mq_int_enc);
3062 proto_tree_add_item(mq_tree, hf_mq_spi_spqo_maxouver, tvb, iOffsetSPI + 12, 4, p_mq_parm->mq_int_enc);
3063 proto_tree_add_item(mq_tree, hf_mq_spi_spqo_flags, tvb, iOffsetSPI + 16, 4, p_mq_parm->mq_int_enc);
3064 iOffsetSPI += 20;
3065 }
3066 offset += iVerbNumber * 20 + 16;
3067 }
3068 }
3069 }
3070 else if ((p_mq_parm->mq_strucID == MQ_STRUCTID_SPAI0x53504149 || p_mq_parm->mq_strucID == MQ_STRUCTID_SPAI_EBCDIC0xE2D7C1C9)
3071 && tvb_reported_length_remaining(tvb, offset) >= 136)
3072 {
3073 proto_tree_add_item(mq_tree, hf_mq_spi_spai_mode, tvb, offset + 12, 4, p_mq_parm->mq_int_enc);
3074 proto_tree_add_item(mq_tree, hf_mq_spi_spai_unknown1, tvb, offset + 16, 48, p_mq_parm->mq_str_enc);
3075 proto_tree_add_item(mq_tree, hf_mq_spi_spai_unknown2, tvb, offset + 64, 48, p_mq_parm->mq_str_enc);
3076 proto_tree_add_item(mq_tree, hf_mq_spi_spai_msgid, tvb, offset + 112, 24, p_mq_parm->mq_str_enc);
3077 offset += 136;
3078 }
3079 else if ((p_mq_parm->mq_strucID == MQ_STRUCTID_SPGI0x53504749 || p_mq_parm->mq_strucID == MQ_STRUCTID_SPGI_EBCDIC0xE2D7C7C9)
3080 && tvb_reported_length_remaining(tvb, offset) >= 24)
3081 {
3082 proto_tree_add_item(mq_tree, hf_mq_spi_spgi_batchsz, tvb, offset + 12, 4, p_mq_parm->mq_int_enc);
3083 proto_tree_add_item(mq_tree, hf_mq_spi_spgi_batchint, tvb, offset + 16, 4, p_mq_parm->mq_int_enc);
3084 proto_tree_add_item(mq_tree, hf_mq_spi_spgi_maxmsgsz, tvb, offset + 20, 4, p_mq_parm->mq_int_enc);
3085 offset += 24;
3086 }
3087 else if ((p_mq_parm->mq_strucID == MQ_STRUCTID_SPGO0x5350474F || p_mq_parm->mq_strucID == MQ_STRUCTID_SPPI0x53505049 ||
3088 p_mq_parm->mq_strucID == MQ_STRUCTID_SPGO_EBCDIC0xE2D7C7D6 || p_mq_parm->mq_strucID == MQ_STRUCTID_SPPI_EBCDIC0xE2D7D7C9)
3089 && tvb_reported_length_remaining(tvb, offset) >= 20)
3090 {
3091 proto_tree_add_bitmask(mq_tree, tvb, offset + 12, hf_mq_spi_spgo_options, ett_mq_spi_options, pf_flds_spiopt, ENC_BIG_ENDIAN0x00000000);
3092 proto_tree_add_item(mq_tree, hf_mq_spi_spgo_size, tvb, offset + 16, 4, p_mq_parm->mq_int_enc);
3093 iSizePayload = tvb_get_uint32(tvb, offset + 16, p_mq_parm->mq_int_enc);
3094 offset += 20;
3095 bPayload = true1;
3096 }
3097 else
3098 {
3099 offset += 12;
3100 }
3101 p_mq_parm->mq_strucID = (tvb_reported_length_remaining(tvb, offset) >= 4) ? tvb_get_ntohl(tvb, offset) : MQ_STRUCTID_NULL0x00000000;
3102 }
3103 }
3104 }
3105 else if ((p_mq_parm->mq_opcode >= 0xA0 && p_mq_parm->mq_opcode <= 0xB9) && capLen >= 16)
3106 {
3107 /* The XA structures are special because they do not start with a structid */
3108 mq_tree = proto_tree_add_subtree_format(mqroot_tree, tvb, offset, 16, ett_mq_xa, NULL((void*)0),
3109 "%s (%s)", MQ_TEXT_XA"XA", val_to_str_ext(p_mq_parm->mq_opcode, &mq_opcode_xvals, "Unknown (0x%02x)"));
3110
3111 proto_tree_add_item(mq_tree, hf_mq_xa_length, tvb, offset, 4, ENC_BIG_ENDIAN0x00000000);
3112 proto_tree_add_item(mq_tree, hf_mq_xa_returnvalue, tvb, offset + 4, 4, p_mq_parm->mq_int_enc);
3113
3114 proto_tree_add_bitmask(mq_tree, tvb, offset + 8, hf_mq_xa_tmflags, ett_mq_xa_tmflags, pf_flds_tmflags, ENC_BIG_ENDIAN0x00000000);
3115
3116 proto_tree_add_item(mq_tree, hf_mq_xa_rmid, tvb, offset + 12, 4, p_mq_parm->mq_int_enc);
3117 offset += 16;
3118 if (p_mq_parm->mq_opcode == MQ_TST_XA_START0xA1 || p_mq_parm->mq_opcode == MQ_TST_XA_END0xA2 || p_mq_parm->mq_opcode == MQ_TST_XA_PREPARE0xA5
3119 || p_mq_parm->mq_opcode == MQ_TST_XA_COMMIT0xA6 || p_mq_parm->mq_opcode == MQ_TST_XA_ROLLBACK0xA7 || p_mq_parm->mq_opcode == MQ_TST_XA_FORGET0xA8
3120 || p_mq_parm->mq_opcode == MQ_TST_XA_COMPLETE0xAA)
3121 {
3122 int iSizeXid = 0;
3123 if ((iSizeXid = dissect_mq_xid(tvb, mqroot_tree, p_mq_parm, offset)) != 0)
3124 offset += iSizeXid;
3125 }
3126 else if ((p_mq_parm->mq_opcode == MQ_TST_XA_OPEN0xA3 || p_mq_parm->mq_opcode == MQ_TST_XA_CLOSE0xA4)
3127 && tvb_reported_length_remaining(tvb, offset) >= 1)
3128 {
3129 uint8_t iXAInfoLength = 0;
3130 iXAInfoLength = tvb_get_uint8(tvb, offset);
3131 if (tvb_reported_length_remaining(tvb, offset) >= iXAInfoLength + 1)
3132 {
3133 mq_tree = proto_tree_add_subtree(mqroot_tree, tvb, offset, iXAInfoLength + 1, ett_mq_xa_info, NULL((void*)0), MQ_TEXT_XINF"XA_info");
3134
3135 proto_tree_add_item(mq_tree, hf_mq_xa_xainfo_length, tvb, offset, 1, ENC_BIG_ENDIAN0x00000000);
3136 proto_tree_add_item(mq_tree, hf_mq_xa_xainfo_value, tvb, offset + 1, iXAInfoLength, p_mq_parm->mq_str_enc);
3137 }
3138 offset += 1 + iXAInfoLength;
3139 }
3140 else if ((p_mq_parm->mq_opcode == MQ_TST_XA_RECOVER0xA9 || p_mq_parm->mq_opcode == MQ_TST_XA_RECOVER_REPLY0xB9)
3141 && tvb_reported_length_remaining(tvb, offset) >= 4)
3142 {
3143 int iNbXid = 0;
3144 iNbXid = tvb_get_uint32(tvb, offset, p_mq_parm->mq_int_enc);
3145 proto_tree_add_item(mq_tree, hf_mq_xa_count, tvb, offset, 4, p_mq_parm->mq_int_enc);
3146 offset += 4;
3147 if (p_mq_parm->mq_opcode == MQ_TST_XA_RECOVER_REPLY0xB9)
3148 {
3149 int iXid = 0;
3150 for (iXid = 0; iXid < iNbXid; iXid++)
3151 {
3152 int iSizeXid = 0;
3153 if ((iSizeXid = dissect_mq_xid(tvb, mqroot_tree, p_mq_parm, offset)) != 0)
3154 offset += iSizeXid;
3155 else
3156 break;
3157 }
3158 }
3159 }
3160 }
3161 /* LPOO seems to be a bug for SPOO */
3162 if ((p_mq_parm->mq_strucID == MQ_STRUCTID_LPOO0x4C504F4F || p_mq_parm->mq_strucID == MQ_STRUCTID_LPOO_EBCDIC0xD3D7D6D6) && tvb_reported_length_remaining(tvb, offset) >= 32)
3163 {
3164 unsigned iVersion;
3165 unsigned iXtraData = 0;
3166 int iSize = 32;
3167 int iPos = 0;
3168 int iSegSize = tvb_reported_length_remaining(tvb, offset);
3169 iVersion = tvb_get_uint32(tvb, offset + 4, p_mq_parm->mq_int_enc);
3170 if (iSegSize >= 488)
3171 {
3172 iSize += 56;
3173 iXtraData = tvb_get_uint32(tvb, offset + 84, p_mq_parm->mq_int_enc);
3174 }
3175
3176 if (iSize != 0 && iSegSize >= iSize)
3177 {
3178 mq_tree = proto_tree_add_subtree(mqroot_tree, tvb, offset, iSize, ett_mq_lpoo, NULL((void*)0), MQ_TEXT_LPOO"LPOO");
3179
3180 proto_tree_add_item(mq_tree, hf_mq_lpoo_StructID, tvb, offset, 4, p_mq_parm->mq_str_enc);
3181 proto_tree_add_item(mq_tree, hf_mq_lpoo_version, tvb, offset + 4, 4, p_mq_parm->mq_int_enc);
3182 dissect_mq_MQOO(tvb, mq_tree, offset + 8, ett_mq_open_option, hf_mq_open_options, p_mq_parm);
3183 dissect_mq_LPOO_LPIOPTS(tvb, mq_tree, offset + 12, ett_mq_lpoo_lpiopts, p_mq_parm);
3184
3185 proto_tree_add_item(mq_tree, hf_mq_lpoo_defpersist, tvb, offset + 16, 4, p_mq_parm->mq_int_enc);
3186 proto_tree_add_item(mq_tree, hf_mq_lpoo_defputresptype, tvb, offset + 20, 4, p_mq_parm->mq_int_enc);
3187 proto_tree_add_item(mq_tree, hf_mq_lpoo_defreadahead, tvb, offset + 24, 4, p_mq_parm->mq_int_enc);
3188 proto_tree_add_item(mq_tree, hf_mq_lpoo_propertyctl, tvb, offset + 28, 4, p_mq_parm->mq_int_enc);
3189 iPos += 32;
3190 if (iSize == 88)
3191 {
3192 proto_tree_add_item(mq_tree, hf_mq_lpoo_qprotect, tvb, offset + iPos, 48, p_mq_parm->mq_str_enc);
3193 proto_tree_add_item(mq_tree, hf_mq_lpoo_qprotect_val1, tvb, offset + iPos + 48, 4, p_mq_parm->mq_str_enc);
3194 proto_tree_add_item(mq_tree, hf_mq_lpoo_qprotect_val2, tvb, offset + iPos + 52, 4, p_mq_parm->mq_str_enc);
3195 iPos += 56;
3196 }
3197 if (iVersion >= 1)
3198 {
3199 unsigned iDistributionListSize2;
3200 iSize = dissect_mq_od(tvb, pinfo, mqroot_tree, offset + iPos, p_mq_parm, &iDistributionListSize2);
3201 }
3202 offset += iPos + iSize;
3203 p_mq_parm->mq_strucID = (tvb_reported_length_remaining(tvb, offset) >= 4) ? tvb_get_ntohl(tvb, offset) : MQ_STRUCTID_NULL0x00000000;
3204 if (iXtraData > 0)
3205 {
3206 if (p_mq_parm->mq_opcode == MQ_TST_SPI_REPLY0x9C)
3207 {
3208 bPayload = true1;
3209 iSizePayload = iXtraData;
3210 p_mq_parm->iOfsFmt = (offset - iSize);
3211 }
3212 }
3213 }
3214 }
3215 if ((p_mq_parm->mq_strucID == MQ_STRUCTID_ID0x49442020 || p_mq_parm->mq_strucID == MQ_STRUCTID_ID_EBCDIC0xC9C44040) && tvb_reported_length_remaining(tvb, offset) >= 5)
3216 {
3217 offset += dissect_mq_id(tvb, pinfo, mqroot_tree, offset, p_mq_parm);
3218 p_mq_parm->mq_strucID = (tvb_reported_length_remaining(tvb, offset) >= 4) ? tvb_get_ntohl(tvb, offset) : MQ_STRUCTID_NULL0x00000000;
3219 }
3220 if ((p_mq_parm->mq_strucID == MQ_STRUCTID_UID0x55494420 || p_mq_parm->mq_strucID == MQ_STRUCTID_UID_EBCDIC0xE4C9C440) && tvb_reported_length_remaining(tvb, offset) > 0)
3221 {
3222 int iSizeUID;
3223 /* iSizeUID = (iVersionID < 5 ? 28 : 132); guess */
3224 /* The iVersionID is available in the previous ID segment, we should keep a state *
3225 * Instead we rely on the segment length announced in the TSH */
3226 iSizeUID = iSegmentLength - iSizeTSH;
3227 if (iSizeUID != 28 && iSizeUID != 132)
3228 iSizeUID = 0;
3229
3230 if (iSizeUID != 0 && tvb_reported_length_remaining(tvb, offset) >= iSizeUID)
3231 {
3232 uint8_t* sUserId;
3233 sUserId = tvb_get_string_enc(pinfo->pool, tvb, offset + 4, 12, p_mq_parm->mq_str_enc);
3234 dissect_mq_addCR_colinfo(pinfo, p_mq_parm);
3235 if (strip_trailing_blanks(sUserId, 12) > 0)
3236 {
3237 col_append_fstr(pinfo->cinfo, COL_INFO, " User=%s", sUserId);
3238 }
3239
3240 mq_tree = proto_tree_add_subtree(mqroot_tree, tvb, offset, iSizeUID, ett_mq_uid, NULL((void*)0), MQ_TEXT_UID"User Id Data");
3241
3242 proto_tree_add_item(mq_tree, hf_mq_uid_StructID, tvb, offset, 4, p_mq_parm->mq_str_enc);
3243 proto_tree_add_item(mq_tree, hf_mq_uid_userid, tvb, offset + 4, 12, p_mq_parm->mq_str_enc);
3244 proto_tree_add_item(mq_tree, hf_mq_uid_password, tvb, offset + 16, 12, p_mq_parm->mq_str_enc);
3245
3246 if (iSizeUID == 132)
3247 {
3248 proto_tree_add_item(mq_tree, hf_mq_uid_longuserid, tvb, offset + 28, 64, p_mq_parm->mq_str_enc);
3249 dissect_mq_sid(tvb, mq_tree, p_mq_parm, offset + 92);
3250 }
3251 }
3252 offset += iSizeUID;
3253 p_mq_parm->mq_strucID = (tvb_reported_length_remaining(tvb, offset) >= 4) ? tvb_get_ntohl(tvb, offset) : MQ_STRUCTID_NULL0x00000000;
3254 }
3255
3256 offset += dissect_mq_od(tvb, pinfo, mqroot_tree, offset, p_mq_parm, &iDistributionListSize);
3257
3258 if ((iSizeMD = dissect_mq_md(tvb, mqroot_tree, offset, p_mq_parm, true1)) != 0)
3259 {
3260 int iSizeGMO = 0;
3261 int iSizePMO = 0;
3262 offset += iSizeMD;
3263
3264 if ((iSizeGMO = dissect_mq_gmo(tvb, pinfo, mqroot_tree, offset, p_mq_parm)) != 0)
3265 {
3266 offset += iSizeGMO;
3267 bPayload = true1;
3268 }
3269 else if ((iSizePMO = dissect_mq_pmo(tvb, pinfo, mqroot_tree, offset, p_mq_parm, &iDistributionListSize)) != 0)
3270 {
3271 offset += iSizePMO;
3272 bPayload = true1;
3273 }
3274 if (tvb_reported_length_remaining(tvb, offset) >= 4)
3275 {
3276 if (bPayload == true1 && (p_mq_parm->mq_opcode != MQ_TST_ASYNC_MESSAGE0x0D))
3277 {
3278 iSizePayload = tvb_get_uint32(tvb, offset, p_mq_parm->mq_int_enc);
3279 if (tree)
3280 {
3281 mq_tree = proto_tree_add_subtree(mqroot_tree, tvb, offset, 4, ett_mq_put, NULL((void*)0), MQ_TEXT_PUT"MQPUT/MQGET");
3282 proto_tree_add_item(mq_tree, hf_mq_put_length, tvb, offset, 4, p_mq_parm->mq_int_enc);
3283 }
3284 offset += 4;
3285 }
3286 }
3287 }
3288 if (iDistributionListSize > 0)
3289 {
3290 col_append_fstr(pinfo->cinfo, COL_INFO, " (Distribution List, Size=%d)", iDistributionListSize);
3291 }
3292 if (bPayload == true1)
3293 {
3294 if (iSizePayload != 0 && tvb_reported_length_remaining(tvb, offset) > 0)
3295 {
3296 /* For the following header structures, each structure has a "format" field
3297 which announces the type of the following structure. For dissection we
3298 do not use it and rely on the structid instead. */
3299 uint32_t iHeadersLength = 0;
3300 if (tvb_reported_length_remaining(tvb, offset) >= 4)
3301 {
3302 int iSizeMD2 = 0;
3303 p_mq_parm->mq_strucID = tvb_get_ntohl(tvb, offset);
3304
3305 if ((p_mq_parm->mq_strucID == MQ_STRUCTID_XQH0x58514820 || p_mq_parm->mq_strucID == MQ_STRUCTID_XQH_EBCDIC0xE7D8C840) && tvb_reported_length_remaining(tvb, offset) >= 104)
3306 {
3307 /* if MD.format == MQXMIT */
3308 int iSizeXQH = 104;
3309 if (tree)
3310 {
3311 mq_tree = proto_tree_add_subtree(mqroot_tree, tvb, offset, iSizeXQH, ett_mq_xqh, NULL((void*)0), MQ_TEXT_XQH"Transmission Queue Header");
3312
3313 proto_tree_add_item(mq_tree, hf_mq_xqh_StructID, tvb, offset, 4, p_mq_parm->mq_str_enc);
3314 proto_tree_add_item(mq_tree, hf_mq_xqh_version, tvb, offset + 4, 4, p_mq_parm->mq_int_enc);
3315 proto_tree_add_item(mq_tree, hf_mq_xqh_remoteq, tvb, offset + 8, 48, p_mq_parm->mq_str_enc);
3316 proto_tree_add_item(mq_tree, hf_mq_xqh_remoteqmgr, tvb, offset + 56, 48, p_mq_parm->mq_str_enc);
3317 }
3318 offset += iSizeXQH;
3319 iHeadersLength += iSizeXQH;
3320
3321 if ((iSizeMD2 = dissect_mq_md(tvb, mqroot_tree, offset, p_mq_parm, true1)) != 0)
3322 {
3323 offset += iSizeMD2;
3324 iHeadersLength += iSizeMD2;
3325 }
3326
3327 p_mq_parm->mq_strucID = (tvb_reported_length_remaining(tvb, offset) >= 4) ? tvb_get_ntohl(tvb, offset) : MQ_STRUCTID_NULL0x00000000;
3328 }
3329 if ((p_mq_parm->mq_strucID == MQ_STRUCTID_DLH0x444C4820 || p_mq_parm->mq_strucID == MQ_STRUCTID_DLH_EBCDIC0xC4D3C840) && tvb_reported_length_remaining(tvb, offset) >= 172)
3330 {
3331 /* if MD.format == MQDEAD */
3332 int iSizeDLH = 172;
3333 p_mq_parm->iOfsEnc = offset + 108;
3334 p_mq_parm->iOfsCcs = offset + 112;
3335 p_mq_parm->iOfsFmt = offset + 116;
3336
3337 p_mq_parm->mq_dlh_ccsid.encod = tvb_get_uint32(tvb, offset + 108, p_mq_parm->mq_int_enc);
3338 p_mq_parm->mq_dlh_ccsid.ccsid = tvb_get_uint32(tvb, offset + 112, p_mq_parm->mq_int_enc);
3339
3340 if (tree)
3341 {
3342 mq_tree = proto_tree_add_subtree(mqroot_tree, tvb, offset, iSizeDLH, ett_mq_dlh, NULL((void*)0), MQ_TEXT_DLH"Dead-Letter Header");
3343
3344 proto_tree_add_item(mq_tree, hf_mq_dlh_StructID, tvb, offset, 4, p_mq_parm->mq_str_enc);
3345 proto_tree_add_item(mq_tree, hf_mq_dlh_version, tvb, offset + 4, 4, p_mq_parm->mq_int_enc);
3346 proto_tree_add_item(mq_tree, hf_mq_dlh_reason, tvb, offset + 8, 4, p_mq_parm->mq_int_enc);
3347 proto_tree_add_item(mq_tree, hf_mq_dlh_destq, tvb, offset + 12, 48, p_mq_parm->mq_str_enc);
3348 proto_tree_add_item(mq_tree, hf_mq_dlh_destqmgr, tvb, offset + 60, 48, p_mq_parm->mq_str_enc);
3349 dissect_mq_encoding(mq_tree, hf_mq_dlh_encoding, tvb, offset + 108, 4, p_mq_parm->mq_int_enc);
3350 proto_tree_add_item(mq_tree, hf_mq_dlh_ccsid, tvb, offset + 112, 4, p_mq_parm->mq_int_enc);
3351 proto_tree_add_item(mq_tree, hf_mq_dlh_format, tvb, offset + 116, 8, p_mq_parm->mq_str_enc);
3352 proto_tree_add_item(mq_tree, hf_mq_dlh_putappltype, tvb, offset + 124, 4, p_mq_parm->mq_int_enc);
3353 proto_tree_add_item(mq_tree, hf_mq_dlh_putapplname, tvb, offset + 128, 28, p_mq_parm->mq_str_enc);
3354 proto_tree_add_item(mq_tree, hf_mq_dlh_putdate, tvb, offset + 156, 8, p_mq_parm->mq_str_enc);
3355 proto_tree_add_item(mq_tree, hf_mq_dlh_puttime, tvb, offset + 164, 8, p_mq_parm->mq_str_enc);
3356 }
3357 offset += iSizeDLH;
3358 iHeadersLength += iSizeDLH;
3359 p_mq_parm->mq_strucID = (tvb_reported_length_remaining(tvb, offset) >= 4) ? tvb_get_ntohl(tvb, offset) : MQ_STRUCTID_NULL0x00000000;
3360 }
3361 if ((p_mq_parm->mq_strucID == MQ_STRUCTID_TM0x544D2020 || p_mq_parm->mq_strucID == MQ_STRUCTID_TM_EBCDIC0xE3D44040)
3362 && tvb_reported_length_remaining(tvb, offset) >= 8)
3363 {
3364
3365 if (tree)
3366 {
3367 mq_tree = proto_tree_add_subtree(mqroot_tree, tvb, offset, tvb_reported_length_remaining(tvb, offset), ett_mq_head, NULL((void*)0),
3368 val_to_str_ext(p_mq_parm->mq_strucID, &mq_StructID_xvals, "Unknown (0x%08x)"));
3369 }
3370 proto_tree_add_item(mq_tree, hf_mq_tm_StructID, tvb, offset + 0, 4, p_mq_parm->mq_str_enc);
3371 proto_tree_add_item(mq_tree, hf_mq_tm_version, tvb, offset + 4, 4, p_mq_parm->mq_int_enc);
3372 proto_tree_add_item(mq_tree, hf_mq_tm_QName, tvb, offset + 8, 48, p_mq_parm->mq_str_enc);
3373 proto_tree_add_item(mq_tree, hf_mq_tm_ProcessNme, tvb, offset + 56, 48, p_mq_parm->mq_str_enc);
3374 proto_tree_add_item(mq_tree, hf_mq_tm_TriggerData, tvb, offset + 104, 64, p_mq_parm->mq_str_enc);
3375 proto_tree_add_item(mq_tree, hf_mq_tm_ApplType, tvb, offset + 168, 4, p_mq_parm->mq_int_enc);
3376 proto_tree_add_item(mq_tree, hf_mq_tm_ApplId, tvb, offset + 172, 256, p_mq_parm->mq_str_enc);
3377 proto_tree_add_item(mq_tree, hf_mq_tm_EnvData, tvb, offset + 428, 128, p_mq_parm->mq_str_enc);
3378 proto_tree_add_item(mq_tree, hf_mq_tm_UserData, tvb, offset + 556, 128, p_mq_parm->mq_str_enc);
3379 offset += 684;
3380 }
3381 if ((p_mq_parm->mq_strucID == MQ_STRUCTID_TMC20x544D4332 || p_mq_parm->mq_strucID == MQ_STRUCTID_TMC2_EBCDIC0xE3D4C3F2)
3382 && tvb_reported_length_remaining(tvb, offset) >= 8)
3383 {
3384 if (tree)
3385 {
3386 mq_tree = proto_tree_add_subtree(mqroot_tree, tvb, offset, tvb_reported_length_remaining(tvb, offset), ett_mq_head, NULL((void*)0),
3387 val_to_str_ext(p_mq_parm->mq_strucID, &mq_StructID_xvals, "Unknown (0x%08x)"));
3388 }
3389 proto_tree_add_item(mq_tree, hf_mq_tmc2_StructID, tvb, offset + 0, 4, p_mq_parm->mq_str_enc);
3390 proto_tree_add_item(mq_tree, hf_mq_tmc2_version, tvb, offset + 4, 4, p_mq_parm->mq_str_enc);
3391 proto_tree_add_item(mq_tree, hf_mq_tmc2_QName, tvb, offset + 8, 48, p_mq_parm->mq_str_enc);
3392 proto_tree_add_item(mq_tree, hf_mq_tmc2_ProcessNme, tvb, offset + 56, 48, p_mq_parm->mq_str_enc);
3393 proto_tree_add_item(mq_tree, hf_mq_tmc2_TriggerData, tvb, offset + 104, 64, p_mq_parm->mq_str_enc);
3394 proto_tree_add_item(mq_tree, hf_mq_tmc2_ApplType, tvb, offset + 168, 4, p_mq_parm->mq_str_enc);
3395 proto_tree_add_item(mq_tree, hf_mq_tmc2_ApplId, tvb, offset + 172, 256, p_mq_parm->mq_str_enc);
3396 proto_tree_add_item(mq_tree, hf_mq_tmc2_EnvData, tvb, offset + 428, 128, p_mq_parm->mq_str_enc);
3397 proto_tree_add_item(mq_tree, hf_mq_tmc2_UserData, tvb, offset + 556, 128, p_mq_parm->mq_str_enc);
3398 proto_tree_add_item(mq_tree, hf_mq_tmc2_QMgrName, tvb, offset + 684, 48, p_mq_parm->mq_str_enc);
3399 offset += 732;
3400 }
3401 if ((p_mq_parm->mq_strucID == MQ_STRUCTID_MDE0x4D444520 || p_mq_parm->mq_strucID == MQ_STRUCTID_MDE_EBCDIC0xD4C4C540
3402 || p_mq_parm->mq_strucID == MQ_STRUCTID_CIH0x43494820 || p_mq_parm->mq_strucID == MQ_STRUCTID_CIH_EBCDIC0xC3C9C840
3403 || p_mq_parm->mq_strucID == MQ_STRUCTID_IIH0x49494820 || p_mq_parm->mq_strucID == MQ_STRUCTID_IIH_EBCDIC0xC9C9C840
3404 || p_mq_parm->mq_strucID == MQ_STRUCTID_RFH0x52464820 || p_mq_parm->mq_strucID == MQ_STRUCTID_RFH_EBCDIC0xD9C6C840
3405 || p_mq_parm->mq_strucID == MQ_STRUCTID_RMH0x524D4820 || p_mq_parm->mq_strucID == MQ_STRUCTID_RMH_EBCDIC0xD9D4C840
3406 || p_mq_parm->mq_strucID == MQ_STRUCTID_WIH0x57494820 || p_mq_parm->mq_strucID == MQ_STRUCTID_WIH_EBCDIC0xE6C9C840
3407 )
3408 && tvb_reported_length_remaining(tvb, offset) >= 12)
3409 {
3410 /* Dissect the generic part of the other pre-defined headers */
3411 /* We assume that only one such header is present */
3412 int iSizeHeader;
3413 int oIntEnc = p_mq_parm->mq_int_enc;
3414 /* Use MD encoding */
3415 p_mq_parm->mq_int_enc = ((p_mq_parm->mq_md_ccsid.encod & MQ_MQENC_INTEGER_MASK0x0000000F) == MQ_MQENC_INTEGER_NORMAL0x00000001) ? ENC_BIG_ENDIAN0x00000000 : ENC_LITTLE_ENDIAN0x80000000;
3416 iSizeHeader = (int)tvb_get_uint32(tvb, offset + 8, p_mq_parm->mq_int_enc);
3417 /* XXX - 32 is inferred from the code below. What's the
3418 * correct minimum? */
3419 if (iSizeHeader <= 32)
3420 return;
3421
3422 p_mq_parm->mq_head_ccsid.encod = tvb_get_uint32(tvb, offset + 12, p_mq_parm->mq_int_enc);
3423 p_mq_parm->mq_head_ccsid.ccsid = tvb_get_uint32(tvb, offset + 16, p_mq_parm->mq_int_enc);
3424
3425 if (tvb_reported_length_remaining(tvb, offset) >= iSizeHeader)
3426 {
3427 int iTmp;
3428 int iVer;
3429 int iLen;
3430 int oStrEnc = p_mq_parm->mq_str_enc;
3431
3432 p_mq_parm->iOfsEnc = offset + 12;
3433 p_mq_parm->iOfsCcs = offset + 16;
3434 p_mq_parm->iOfsFmt = offset + 20;
3435
3436 iVer = (int)tvb_get_uint32(tvb, offset + 4, p_mq_parm->mq_int_enc);
3437 iLen = (int)tvb_get_uint32(tvb, offset + 8, p_mq_parm->mq_int_enc);
3438 iTmp = p_mq_parm->mq_head_ccsid.ccsid;
3439 if (iTmp == 0)
3440 iTmp = p_mq_parm->mq_md_ccsid.ccsid;
3441
3442 if (IS_EBCDIC(iTmp)((iTmp == 500) || (iTmp == 1047)))
3443 p_mq_parm->mq_str_enc = ENC_EBCDIC0x0000002E | ENC_NA0x00000000;
3444 else
3445 p_mq_parm->mq_str_enc = ENC_UTF_80x00000002 | ENC_NA0x00000000;
3446
3447 if (tree)
3448 {
3449 mq_tree = proto_tree_add_subtree(mqroot_tree, tvb, offset, iSizeHeader, ett_mq_head, NULL((void*)0),
3450 val_to_str_ext(p_mq_parm->mq_strucID, &mq_StructID_xvals, "Unknown (0x%08x)"));
3451
3452 proto_tree_add_item(mq_tree, hf_mq_head_StructID, tvb, offset, 4, p_mq_parm->mq_str_enc);
3453 proto_tree_add_item(mq_tree, hf_mq_head_version, tvb, offset + 4, 4, p_mq_parm->mq_int_enc);
3454 proto_tree_add_item(mq_tree, hf_mq_head_length, tvb, offset + 8, 4, p_mq_parm->mq_int_enc);
3455 dissect_mq_encoding(mq_tree, hf_mq_head_encoding, tvb, offset + 12, 4, p_mq_parm->mq_int_enc);
3456 proto_tree_add_item(mq_tree, hf_mq_head_ccsid, tvb, offset + 16, 4, p_mq_parm->mq_int_enc);
3457 proto_tree_add_item(mq_tree, hf_mq_head_format, tvb, offset + 20, 8, p_mq_parm->mq_str_enc);
3458
3459 if (p_mq_parm->mq_strucID == MQ_STRUCTID_DH0x44482020 || p_mq_parm->mq_strucID == MQ_STRUCTID_DH_EBCDIC0xC4C84040)
3460 {
3461 int iRec;
3462 iRec = tvb_get_uint32(tvb, offset + 36, p_mq_parm->mq_int_enc);
3463
3464 proto_tree_add_bitmask(mq_tree, tvb, offset + 28, hf_mq_head_flags, ett_mq_head_flags, pf_flds_dh_flags, ENC_BIG_ENDIAN0x00000000);
3465 proto_tree_add_item(mq_tree, hf_mq_dh_putmsgrecfld, tvb, offset + 32, 4, p_mq_parm->mq_int_enc);
3466 proto_tree_add_item(mq_tree, hf_mq_dh_recspresent, tvb, offset + 36, 4, p_mq_parm->mq_int_enc);
3467 proto_tree_add_item(mq_tree, hf_mq_dh_objrecofs, tvb, offset + 40, 4, p_mq_parm->mq_int_enc);
3468 proto_tree_add_item(mq_tree, hf_mq_dh_putmsgrecofs, tvb, offset + 44, 4, p_mq_parm->mq_int_enc);
3469
3470 if (iRec)
3471 {
3472 int iOfs1;
3473 int iOfs2;
3474 int iFlgs;
3475 int iSize;
3476
3477 iFlgs = (int)tvb_get_uint32(tvb, offset + 32, p_mq_parm->mq_int_enc);
3478 iOfs1 = (int)tvb_get_uint32(tvb, offset + 40, p_mq_parm->mq_int_enc);
3479 iOfs2 = (int)tvb_get_uint32(tvb, offset + 44, p_mq_parm->mq_int_enc);
3480
3481 iSize = dissect_mq_or(tvb, mq_tree, offset + 48, iRec, iOfs1, p_mq_parm);
3482 /*iSize = */dissect_mq_pmr(tvb, mqroot_tree, offset + 48 + iSize, iRec, iOfs2, iFlgs, p_mq_parm);
3483 }
3484 }
3485 else if (p_mq_parm->mq_strucID == MQ_STRUCTID_MDE0x4D444520 || p_mq_parm->mq_strucID == MQ_STRUCTID_MDE_EBCDIC0xD4C4C540)
3486 {
3487 proto_tree_add_item(mq_tree, hf_mq_head_flags, tvb, offset + 28, 4, p_mq_parm->mq_int_enc);
3488 proto_tree_add_item(mq_tree, hf_mq_md_groupid, tvb, offset + 32, 24, ENC_NA0x00000000);
3489 proto_tree_add_item(mq_tree, hf_mq_md_msgseqnumber, tvb, offset + 56, 4, p_mq_parm->mq_int_enc);
3490 proto_tree_add_item(mq_tree, hf_mq_md_offset, tvb, offset + 60, 4, p_mq_parm->mq_int_enc);
3491 proto_tree_add_item(mq_tree, hf_mq_md_msgflags, tvb, offset + 64, 4, p_mq_parm->mq_int_enc);
3492 proto_tree_add_item(mq_tree, hf_mq_md_origlen, tvb, offset + 68, 4, p_mq_parm->mq_int_enc);
3493 }
3494 else if (p_mq_parm->mq_strucID == MQ_STRUCTID_IIH0x49494820 || p_mq_parm->mq_strucID == MQ_STRUCTID_IIH_EBCDIC0xC9C9C840)
3495 {
3496 int16_t sLen;
3497 int32_t iPos;
3498 proto_tree* mq_ims;
3499
3500 proto_tree_add_bitmask(mq_tree, tvb, offset + 28, hf_mq_head_flags, ett_mq_head_flags, pf_flds_iih_flags, ENC_BIG_ENDIAN0x00000000);
3501 proto_tree_add_item(mq_tree, hf_mq_iih_ltermoverride, tvb, offset + 32, 8, p_mq_parm->mq_str_enc);
3502 proto_tree_add_item(mq_tree, hf_mq_iih_mfsmapname, tvb, offset + 40, 8, p_mq_parm->mq_str_enc);
3503 proto_tree_add_item(mq_tree, hf_mq_iih_replytofmt, tvb, offset + 48, 8, p_mq_parm->mq_str_enc);
3504 proto_tree_add_item(mq_tree, hf_mq_iih_authenticator, tvb, offset + 56, 8, p_mq_parm->mq_str_enc);
3505 proto_tree_add_item(mq_tree, hf_mq_iih_transinstid, tvb, offset + 64, 16, ENC_NA0x00000000);
3506 proto_tree_add_item(mq_tree, hf_mq_iih_transstate, tvb, offset + 80, 1, p_mq_parm->mq_str_enc);
3507 proto_tree_add_item(mq_tree, hf_mq_iih_commimode, tvb, offset + 81, 1, p_mq_parm->mq_str_enc);
3508 proto_tree_add_item(mq_tree, hf_mq_iih_securityscope, tvb, offset + 82, 1, p_mq_parm->mq_str_enc);
3509 proto_tree_add_item(mq_tree, hf_mq_iih_reserved, tvb, offset + 83, 1, p_mq_parm->mq_str_enc);
3510
3511 iPos = offset + iSizeHeader;
3512 sLen = tvb_get_uint16(tvb, iPos, p_mq_parm->mq_int_enc);
3513 mq_ims = proto_tree_add_subtree(mq_tree, tvb, iPos, sLen, ett_mq_ims, NULL((void*)0), "IMS Message");
3514 proto_tree_add_item(mq_ims, hf_mq_ims_ll, tvb, iPos + 0, 2, p_mq_parm->mq_int_enc);
3515 proto_tree_add_item(mq_ims, hf_mq_ims_zz, tvb, iPos + 2, 2, p_mq_parm->mq_int_enc);
3516 proto_tree_add_item(mq_ims, hf_mq_ims_trx, tvb, iPos + 4, 8, p_mq_parm->mq_str_enc);
3517 proto_tree_add_item(mq_ims, hf_mq_ims_data, tvb, iPos + 12, sLen - 12, ENC_NA0x00000000);
3518 offset += sLen;
3519 }
3520 else if (p_mq_parm->mq_strucID == MQ_STRUCTID_CIH0x43494820 || p_mq_parm->mq_strucID == MQ_STRUCTID_CIH_EBCDIC0xC3C9C840)
3521 {
3522 proto_tree_add_bitmask(mq_tree, tvb, offset + 28, hf_mq_head_flags, ett_mq_head_flags, pf_flds_cih_flags, ENC_BIG_ENDIAN0x00000000);
3523 proto_tree_add_item(mq_tree, hf_mq_cih_returncode, tvb, offset + 32, 4, p_mq_parm->mq_int_enc);
3524 proto_tree_add_item(mq_tree, hf_mq_cih_compcode, tvb, offset + 36, 4, p_mq_parm->mq_int_enc);
3525 proto_tree_add_item(mq_tree, hf_mq_cih_reasoncode, tvb, offset + 40, 4, p_mq_parm->mq_int_enc);
3526 proto_tree_add_item(mq_tree, hf_mq_cih_uowcontrols, tvb, offset + 44, 4, p_mq_parm->mq_int_enc);
3527 proto_tree_add_item(mq_tree, hf_mq_cih_getwaitintv, tvb, offset + 48, 4, p_mq_parm->mq_int_enc);
3528 proto_tree_add_item(mq_tree, hf_mq_cih_linktype, tvb, offset + 52, 4, p_mq_parm->mq_int_enc);
3529 proto_tree_add_item(mq_tree, hf_mq_cih_outdatalen, tvb, offset + 56, 4, p_mq_parm->mq_int_enc);
3530 proto_tree_add_item(mq_tree, hf_mq_cih_facilkeeptime, tvb, offset + 60, 4, p_mq_parm->mq_int_enc);
3531 proto_tree_add_item(mq_tree, hf_mq_cih_adsdescriptor, tvb, offset + 64, 4, p_mq_parm->mq_int_enc);
3532 proto_tree_add_item(mq_tree, hf_mq_cih_converstask, tvb, offset + 68, 4, p_mq_parm->mq_int_enc);
3533 proto_tree_add_item(mq_tree, hf_mq_cih_taskendstatus, tvb, offset + 72, 4, p_mq_parm->mq_int_enc);
3534 proto_tree_add_item(mq_tree, hf_mq_cih_bridgefactokn, tvb, offset + 76, 8, ENC_NA0x00000000);
3535 proto_tree_add_item(mq_tree, hf_mq_cih_function, tvb, offset + 84, 4, p_mq_parm->mq_str_enc);
3536 proto_tree_add_item(mq_tree, hf_mq_cih_abendcode, tvb, offset + 88, 4, p_mq_parm->mq_str_enc);
3537 proto_tree_add_item(mq_tree, hf_mq_cih_authenticator, tvb, offset + 92, 8, p_mq_parm->mq_str_enc);
3538 proto_tree_add_item(mq_tree, hf_mq_cih_reserved, tvb, offset + 100, 8, p_mq_parm->mq_str_enc);
3539 proto_tree_add_item(mq_tree, hf_mq_cih_replytofmt, tvb, offset + 108, 8, p_mq_parm->mq_str_enc);
3540 proto_tree_add_item(mq_tree, hf_mq_cih_remotesysid, tvb, offset + 116, 4, p_mq_parm->mq_str_enc);
3541 proto_tree_add_item(mq_tree, hf_mq_cih_remotetransid, tvb, offset + 120, 4, p_mq_parm->mq_str_enc);
3542 proto_tree_add_item(mq_tree, hf_mq_cih_transactionid, tvb, offset + 124, 4, p_mq_parm->mq_str_enc);
3543 proto_tree_add_item(mq_tree, hf_mq_cih_facilitylike, tvb, offset + 128, 4, p_mq_parm->mq_str_enc);
3544 proto_tree_add_item(mq_tree, hf_mq_cih_attentionid, tvb, offset + 132, 4, p_mq_parm->mq_str_enc);
3545 proto_tree_add_item(mq_tree, hf_mq_cih_startcode, tvb, offset + 136, 4, p_mq_parm->mq_str_enc);
3546 proto_tree_add_item(mq_tree, hf_mq_cih_cancelcode, tvb, offset + 140, 4, p_mq_parm->mq_str_enc);
3547 proto_tree_add_item(mq_tree, hf_mq_cih_nexttransid, tvb, offset + 144, 4, p_mq_parm->mq_str_enc);
3548 proto_tree_add_item(mq_tree, hf_mq_cih_reserved2, tvb, offset + 148, 8, p_mq_parm->mq_str_enc);
3549 proto_tree_add_item(mq_tree, hf_mq_cih_reserved3, tvb, offset + 156, 8, p_mq_parm->mq_str_enc);
3550 if (iVer == 2)
3551 {
3552 proto_tree_add_item(mq_tree, hf_mq_cih_cursorpos, tvb, offset + 164, 4, p_mq_parm->mq_int_enc);
3553 proto_tree_add_item(mq_tree, hf_mq_cih_erroroffset, tvb, offset + 168, 4, p_mq_parm->mq_int_enc);
3554 proto_tree_add_item(mq_tree, hf_mq_cih_inputitem, tvb, offset + 172, 4, p_mq_parm->mq_int_enc);
3555 proto_tree_add_item(mq_tree, hf_mq_cih_reserved4, tvb, offset + 176, 4, p_mq_parm->mq_int_enc);
3556 }
3557 }
3558 else if (p_mq_parm->mq_strucID == MQ_STRUCTID_RMH0x524D4820 || p_mq_parm->mq_strucID == MQ_STRUCTID_RMH_EBCDIC0xD9D4C840)
3559 {
3560 proto_tree_add_bitmask(mq_tree, tvb, offset + 28, hf_mq_head_flags, ett_mq_head_flags, pf_flds_rmh_flags, ENC_BIG_ENDIAN0x00000000);
3561 proto_tree_add_item(mq_tree, hf_mq_rmh_objecttype, tvb, offset + 32, 8, p_mq_parm->mq_str_enc);
3562 proto_tree_add_item(mq_tree, hf_mq_rmh_objectinstid, tvb, offset + 36, 24, ENC_NA0x00000000);
3563 proto_tree_add_item(mq_tree, hf_mq_rmh_srcenvlen, tvb, offset + 60, 4, p_mq_parm->mq_int_enc);
3564 proto_tree_add_item(mq_tree, hf_mq_rmh_srcenvofs, tvb, offset + 64, 4, p_mq_parm->mq_int_enc);
3565 proto_tree_add_item(mq_tree, hf_mq_rmh_srcnamelen, tvb, offset + 68, 4, p_mq_parm->mq_int_enc);
3566 proto_tree_add_item(mq_tree, hf_mq_rmh_srcnameofs, tvb, offset + 72, 4, p_mq_parm->mq_int_enc);
3567 proto_tree_add_item(mq_tree, hf_mq_rmh_dstenvlen, tvb, offset + 76, 4, p_mq_parm->mq_int_enc);
3568 proto_tree_add_item(mq_tree, hf_mq_rmh_dstenvofs, tvb, offset + 80, 4, p_mq_parm->mq_int_enc);
3569 proto_tree_add_item(mq_tree, hf_mq_rmh_dstnamelen, tvb, offset + 84, 4, p_mq_parm->mq_int_enc);
3570 proto_tree_add_item(mq_tree, hf_mq_rmh_dstnameofs, tvb, offset + 88, 4, p_mq_parm->mq_int_enc);
3571 proto_tree_add_item(mq_tree, hf_mq_rmh_datalogiclen, tvb, offset + 92, 4, p_mq_parm->mq_int_enc);
3572 proto_tree_add_item(mq_tree, hf_mq_rmh_datalogicofsl, tvb, offset + 96, 4, p_mq_parm->mq_int_enc);
3573 proto_tree_add_item(mq_tree, hf_mq_rmh_datalogicofsh, tvb, offset + 100, 4, p_mq_parm->mq_int_enc);
3574 }
3575 else if (p_mq_parm->mq_strucID == MQ_STRUCTID_WIH0x57494820 || p_mq_parm->mq_strucID == MQ_STRUCTID_WIH_EBCDIC0xE6C9C840)
3576 {
3577 proto_tree_add_item(mq_tree, hf_mq_head_flags, tvb, offset + 28, 4, p_mq_parm->mq_int_enc);
3578 proto_tree_add_item(mq_tree, hf_mq_wih_servicename, tvb, offset + 32, 32, p_mq_parm->mq_str_enc);
3579 proto_tree_add_item(mq_tree, hf_mq_wih_servicestep, tvb, offset + 64, 8, p_mq_parm->mq_str_enc);
3580 proto_tree_add_item(mq_tree, hf_mq_wih_msgtoken, tvb, offset + 72, 16, ENC_NA0x00000000);
3581 proto_tree_add_item(mq_tree, hf_mq_wih_reserved, tvb, offset + 88, 32, p_mq_parm->mq_str_enc);
3582 }
3583 else if (p_mq_parm->mq_strucID == MQ_STRUCTID_RFH0x52464820 || p_mq_parm->mq_strucID == MQ_STRUCTID_RFH_EBCDIC0xD9C6C840)
3584 {
3585 int iPos, iEnd, iCCSID;
3586 int iLenStr;
3587 uint8_t* sStr;
3588
3589 proto_tree* rfh_tree;
3590
3591 proto_tree_add_item(mq_tree, hf_mq_head_flags, tvb, offset + 28, 4, p_mq_parm->mq_int_enc);
3592 iPos = offset + 32;
3593 iEnd = offset + iLen;
3594 if (iVer > 1)
3595 {
3596 iCCSID = (int)tvb_get_uint32(tvb, iPos, p_mq_parm->mq_int_enc);
3597 proto_tree_add_item(mq_tree, hf_mq_rfh_ccsid, tvb, iPos, 4, p_mq_parm->mq_int_enc);
3598 iPos += 4;
3599 }
3600 else
3601 iCCSID = iTmp;
3602
3603 while (iPos < iEnd)
3604 {
3605 iLenStr = (int)tvb_get_uint32(tvb, iPos, p_mq_parm->mq_int_enc);
3606 sStr = tvb_get_string_enc(pinfo->pool, tvb, iPos + 4, iLenStr, IS_EBCDIC(iCCSID)((iCCSID == 500) || (iCCSID == 1047)) ? ENC_EBCDIC0x0000002E : ENC_ASCII0x00000000);
3607 if (*sStr)
3608 strip_trailing_blanks(sStr, iLenStr);
3609 if (*sStr)
3610 sStr = (uint8_t*)format_text_chr(pinfo->pool, sStr, strlen((const char*)sStr), '.');
3611
3612 rfh_tree = proto_tree_add_subtree_format(mq_tree, tvb, iPos, iLenStr + 4, ett_mq_rfh_ValueName, NULL((void*)0), "NameValue: %s", sStr);
3613
3614 proto_tree_add_item(rfh_tree, hf_mq_rfh_length, tvb, iPos, 4, p_mq_parm->mq_int_enc);
3615 proto_tree_add_item(rfh_tree, hf_mq_rfh_string, tvb, iPos + 4, iLenStr, p_mq_parm->mq_str_enc);
3616 iPos += (iLenStr + 4);
3617 }
3618 }
3619 else
3620 {
3621 proto_tree_add_item(mq_tree, hf_mq_head_flags, tvb, offset + 28, 4, p_mq_parm->mq_int_enc);
3622 proto_tree_add_item(mq_tree, hf_mq_head_struct, tvb, offset + 32, iSizeHeader - 32, ENC_NA0x00000000);
3623 }
3624 }
3625 offset += iSizeHeader;
3626 iHeadersLength += iSizeHeader;
3627 p_mq_parm->mq_strucID = (tvb_reported_length_remaining(tvb, offset) >= 4) ? tvb_get_ntohl(tvb, offset) : MQ_STRUCTID_NULL0x00000000;
3628 p_mq_parm->mq_str_enc = oStrEnc;
3629 }
3630 p_mq_parm->mq_int_enc = oIntEnc;
3631 }
3632 }
3633
3634 if (!mq_in_reassembly)
3635 {
3636 col_append_fstr(pinfo->cinfo, COL_INFO, " (Data %d bytes)", iSizePayload - iHeadersLength);
3637
3638 /* Call subdissector for the payload */
3639 tvbuff_t* next_tvb;
3640 p_mq_parm->mq_cur_ccsid.encod = tvb_get_uint32(tvb, p_mq_parm->iOfsEnc, p_mq_parm->mq_int_enc);
3641 p_mq_parm->mq_cur_ccsid.ccsid = tvb_get_uint32(tvb, p_mq_parm->iOfsCcs, p_mq_parm->mq_int_enc);
3642 memcpy(p_mq_parm->mq_format,
3643 tvb_get_string_enc(pinfo->pool, tvb, p_mq_parm->iOfsFmt, sizeof(p_mq_parm->mq_format), p_mq_parm->mq_str_enc),
3644 sizeof(p_mq_parm->mq_format));
3645
3646 next_tvb = tvb_new_subset_remaining(tvb, offset);
3647 if (!dissector_try_heuristic(mq_heur_subdissector_list, next_tvb, pinfo, mqroot_tree, &hdtbl_entry, p_mq_parm))
3648 call_data_dissector(next_tvb, pinfo, mqroot_tree);
3649 }
3650 else
3651 {
3652 tvbuff_t* next_tvb;
3653 next_tvb = tvb_new_subset_remaining(tvb, offset);
3654 call_data_dissector(next_tvb, pinfo, mqroot_tree);
3655 }
3656 }
3657 offset = tvb_reported_length(tvb);
3658 }
3659 /* After all recognised structures have been dissected, process remaining structure*/
3660 if (tvb_reported_length_remaining(tvb, offset) >= 4)
3661 {
3662 p_mq_parm->mq_strucID = tvb_get_ntohl(tvb, offset);
3663 proto_tree_add_subtree_format(mqroot_tree, tvb, offset, -1, ett_mq_structid, NULL((void*)0),
3664 "%s", val_to_str_ext(p_mq_parm->mq_strucID, &mq_StructID_xvals, "Unknown (0x%08x)"));
3665 }
3666}
3667
3668static int reassemble_mq(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, void* data _U___attribute__((unused)))
3669{
3670 mq_parm_t mq_parm;
3671
3672 /* Reassembly of the MQ messages that span several PDU (several TSH) */
3673 /* Typically a TCP PDU is 1460 bytes and a MQ PDU is 32766 bytes */
3674 if (tvb_reported_length(tvb) < 28)
3675 return 0;
3676
3677 memset(&mq_parm, 0, sizeof(mq_parm_t));
3678 mq_parm.mq_strucID = tvb_get_ntohl(tvb, 0);
3679
3680 if (!is_mq_struc_TSH(mq_parm.mq_strucID))
3681 return tvb_reported_length(tvb);
3682
3683 uint8_t iCtlF = 0;
3684 int32_t iSegL = 0;
3685 int32_t iBegL = 0;
3686 uint32_t iEnco = 0;
3687 int32_t iMulS = 0;
3688 int32_t iHdrL = 0;
3689 int32_t iNxtP = 0;
3690 uint8_t iOpcd = 0;
3691 bool_Bool bSeg1st = false0;
3692 bool_Bool bSegLst = false0;
3693 bool_Bool bMore = false0;
3694
3695 int32_t iHdl = 0;
3696 int32_t iGlbMsgIdx = 0;
3697 int32_t iSegLength = 0;
3698 int16_t iSegmIndex = 0;
3699
3700 uint32_t uStrL = 0;
3701 uint32_t uPadL = 0;
3702
3703 /* TSHM structure as 8 bytes more after the length (convid/requestid) */
3704 if (mq_parm.mq_strucID == MQ_STRUCTID_TSHM0x5453484D || mq_parm.mq_strucID == MQ_STRUCTID_TSHM_EBCDIC0xE3E2C8D4)
3705 iMulS = 8;
3706
3707 /* Get the Segment Length */
3708 iSegL = tvb_get_ntohl(tvb, 4);
3709 if (iMulS == 8)
3710 {
3711 mq_parm.mq_convID = tvb_get_ntohl(tvb, 8);
3712 mq_parm.mq_rqstID = tvb_get_ntohl(tvb, 12);
3713 }
3714 else
3715 {
3716 mq_parm.mq_convID = 0;
3717 mq_parm.mq_rqstID = 0;
3718 }
3719
3720 /* Get the Encoding scheme */
3721 iEnco = (tvb_get_uint8(tvb, 8 + iMulS) == MQ_LITTLE_ENDIAN0x02 ? ENC_LITTLE_ENDIAN0x80000000 : ENC_BIG_ENDIAN0x00000000);
3722 mq_parm.mq_int_enc = iEnco;
3723 /* Get the Operation Code */
3724 iOpcd = tvb_get_uint8(tvb, 9 + iMulS);
3725 mq_parm.mq_opcode = iOpcd;
3726 /* Get the Control Flag */
3727 iCtlF = tvb_get_uint8(tvb, 10 + iMulS);
3728 mq_parm.mq_ctlf1 = iCtlF;
3729 /* First Segment ? */
3730 bSeg1st = ((iCtlF & MQ_TCF_FIRST0x10) != 0);
3731 /* Last Segment */
3732 bSegLst = ((iCtlF & MQ_TCF_LAST0x20) != 0);
3733
3734 mq_in_reassembly = false0;
3735
3736 if ((iOpcd > 0x80 && !(bSeg1st && bSegLst)) || iOpcd == MQ_TST_ASYNC_MESSAGE0x0D)
3737 {
3738 proto_tree* mq_tree = NULL((void*)0);
3739
3740 /* Optimisation : only fragmented segments go through the reassembly process */
3741 /*
3742 It seems that after a PUT on a Queue, when doing a GET, MQ first get
3743 a small part of the response (4096 bytes)
3744 The response contain the number of bytes returned for this request (ActMsgLen)
3745 and the total number of bytes of this reply (TotMsgLen)
3746
3747 this mean the flow seems to be :
3748
3749 PUT
3750 REQUEST_MSG (MaxLen=4096)
3751 ASYNC_MSG (1st/Lst Segment, ActMsgLen=4096, TotMsgLen=279420)
3752 as ActMsgLen!=TotMsgLen, this mean the MSG is not complete, we only receive some of 279420 bytes
3753 REQUEST_MSG (MaxLen=279420)
3754 ASYNC_MSG (1st Segment, SegIndex=0 ActMsgLen=279420, TotMsgLen=279420)
3755 ASYNC_MSG (Mid Segment, SegIndex=1)
3756 ASYNC_MSG (Mid Segment, SegIndex=2)
3757 .
3758 ASYNC_MSG (Lst Segment, SegIndex=n)
3759 End of reassembling (we have 279420 bytes to decode)
3760
3761 PUT with Reassembly
3762 GET with Reassembly not using ASYNC_MSG
3763 */
3764
3765 if (!mq_reassembly)
3766 {
3767 dissect_mq_pdu(tvb, pinfo, tree);
3768 if (bSeg1st)
3769 {
3770 /* MQ segment is the first of a unreassembled series */
3771 col_append_str(pinfo->cinfo, COL_INFO, " [Unreassembled MQ]");
3772 }
3773 return tvb_reported_length(tvb);
3774 }
3775
3776 fragment_head* fd_head;
3777 uint32_t iConnectionId = ((pinfo->srcport << 16) + pinfo->destport);
3778 bool_Bool reassembly_error = false0;
3779 uint8_t* pTmp = "Full";
3780 if (bSeg1st && !bSegLst)
3781 pTmp = "First ";
3782 if (!bSeg1st && bSegLst)
3783 pTmp = "Last ";
3784 if (!bSeg1st && !bSegLst)
3785 pTmp = "Middle";
3786
3787 iHdrL = 28 + iMulS;
3788
3789 if (iOpcd == MQ_TST_ASYNC_MESSAGE0x0D)
3790 {
3791 /* Get the MQ Handle of the Object */
3792 iHdl = tvb_get_uint32(tvb, iHdrL + 4, iEnco);
3793 /* Get the Global Message Index */
3794 iGlbMsgIdx = tvb_get_uint32(tvb, iHdrL + 12, iEnco);
3795 /* Get the Segment Length */
3796 iSegLength = tvb_get_uint32(tvb, iHdrL + 16, iEnco);
3797 /* Get the Segment Index */
3798 iSegmIndex = tvb_get_uint16(tvb, iHdrL + 20, iEnco);
3799
3800 /*
3801 if SegmIndex == 0, it has 54 bytes + the length and padding
3802 of a variable string at the end of the Header
3803 */
3804
3805 if (iSegmIndex == 0)
3806 {
3807 mq_parm.mq_AsyMsgRsn = tvb_get_uint32(tvb, iHdrL + 24, iEnco);
3808 mq_parm.mq_MsgActLen = tvb_get_uint32(tvb, iHdrL + 28, iEnco);
3809 mq_parm.mq_MsgTotLen = tvb_get_uint32(tvb, iHdrL + 32, iEnco);
3810 uStrL = tvb_get_uint8(tvb, iHdrL + 54);
3811 uPadL = ((((2 + 1 + uStrL) / 4) + 1) * 4) - (2 + 1 + uStrL);
3812 mq_parm.mq_MsgActLen = iSegL - iHdrL;
3813 }
3814 /*
3815 First segment has a longer header
3816 */
3817 iNxtP = iHdrL + ((bSeg1st) ? (54 + 1 + uStrL + uPadL) : (24));
3818 mq_parm.mq_MsgActLen -= ((bSeg1st) ? (54 + 1 + uStrL + uPadL) : (24));
3819 }
3820 else
3821 {
3822 if (bSeg1st)
3823 {
3824 uStrL = mq_parm.mq_API_Len = tvb_get_uint32(tvb, iHdrL, ENC_BIG_ENDIAN0x00000000);
3825 mq_parm.mq_API_CC = tvb_get_uint32(tvb, iHdrL + 4, iEnco);
3826 mq_parm.mq_API_RC = tvb_get_uint32(tvb, iHdrL + 8, iEnco);
3827 iHdl = mq_parm.mq_API_Hdl = tvb_get_uint32(tvb, iHdrL + 12, iEnco);
3828 mq_parm.mq_MsgTotLen = uStrL;
3829 mq_parm.mq_MsgActLen = iSegL - iHdrL;
3830 mq_parm.mq_MsgActLen -= 16; /* API */
3831 }
3832 else
3833 {
3834 fragment_head* _head = fragment_get_reassembled_id(&mq_reassembly_table, pinfo, iConnectionId);
3835 if (_head)
3836 {
3837 uStrL = mq_parm.mq_API_Len = tvb_get_uint32(_head->tvb_data, iHdrL, ENC_BIG_ENDIAN0x00000000);
3838 mq_parm.mq_API_CC = tvb_get_uint32(_head->tvb_data, iHdrL + 4, iEnco);
3839 mq_parm.mq_API_RC = tvb_get_uint32(_head->tvb_data, iHdrL + 8, iEnco);
3840 iHdl = mq_parm.mq_API_Hdl = tvb_get_uint32(_head->tvb_data, iHdrL + 12, iEnco);
3841 mq_parm.mq_MsgTotLen = uStrL;
3842 }
3843 }
3844
3845 iNxtP = iHdrL + ((bSeg1st) ? 16 : 0);
3846 }
3847 bMore = !bSegLst;
3848 /*
3849 First segment has a longer header (API Header)
3850
3851 If it is a PUT1 Message Type TSHx + API + OD + MD + PMO
3852 If it is a PUT Message Type TSHx + API + MD + PMO
3853 If it is a GET Message Type TSHx + API + MD + GMO
3854 */
3855 if (bSeg1st)
3856 {
3857 uint32_t _iLen;
3858 if (iOpcd == MQ_TST_MQPUT10x87 || iOpcd == MQ_TST_MQPUT1_REPLY0x97)
3859 {
3860 unsigned iDistributionListSize2;
3861 _iLen = dissect_mq_od(tvb, NULL((void*)0), NULL((void*)0), iNxtP, &mq_parm, &iDistributionListSize2);
3862 iNxtP += _iLen;
3863 mq_parm.mq_MsgActLen -= _iLen;
3864 }
3865
3866 _iLen = dissect_mq_md(tvb, NULL((void*)0), iNxtP, &mq_parm, false0);
3867 iNxtP += _iLen;
3868 mq_parm.mq_MsgActLen -= _iLen;
3869
3870 if (iOpcd == MQ_TST_MQGET0x85 || iOpcd == MQ_TST_MQGET_REPLY0x95)
3871 _iLen = dissect_mq_gmo(tvb, NULL((void*)0), NULL((void*)0), iNxtP, &mq_parm);
3872 else
3873 _iLen = dissect_mq_pmo(tvb, NULL((void*)0), NULL((void*)0), iNxtP, &mq_parm, NULL((void*)0));
3874 iNxtP += _iLen;
3875 mq_parm.mq_MsgActLen -= _iLen;
3876 }
3877
3878 /*
3879 if it is the 1st Segment, it means we are
3880 of the beginning of a reassembling. We must take the whole segment (with TSHM, and headers)
3881 */
3882 iBegL = (bSeg1st) ? 0 : iNxtP;
3883
3884 if (iSegL <= iBegL)
3885 {
3886 /* negative or null fragment length - something is wrong; skip reassembly */
3887 fd_head = NULL((void*)0);
3888 reassembly_error = true1;
3889 }
3890 else
3891 {
3892 fd_head = fragment_add_seq_next(&mq_reassembly_table,
3893 tvb, iBegL,
3894 pinfo, iConnectionId, NULL((void*)0),
3895 iSegL - iBegL, bMore);
3896 }
3897
3898 if (tree)
3899 {
3900 proto_item* ti = proto_tree_add_item(tree, proto_mq, tvb, 0, -1, ENC_NA0x00000000);
3901
3902 if (fd_head && !fd_head->next && mq_parm.mq_MsgActLen == mq_parm.mq_MsgTotLen)
3903 {
3904 proto_item_append_text(ti, " %s %s Segment",
3905 val_to_str_ext(iOpcd, &mq_opcode_xvals, "Unknown (0x%02x)"),
3906 pTmp);
3907 if (mq_parm.mq_API_RC != MQ_MQRC_NONE0)
3908 proto_item_append_text(ti, ", Reason=%d(0x%x) - %s",
3909 mq_parm.mq_API_RC, mq_parm.mq_API_RC,
3910 val_to_str_ext(mq_parm.mq_API_RC, &mq_MQRC_xvals, "Unknown (0x%02x)"));
3911 }
3912 else
3913 {
3914 proto_item_append_text(ti, " [%s %s Segment]",
3915 val_to_str_ext(iOpcd, &mq_opcode_xvals, "Unknown (0x%02x)"),
3916 pTmp);
3917 }
3918 if (iOpcd == MQ_TST_ASYNC_MESSAGE0x0D)
3919 proto_item_append_text(ti, ", Hdl=0x%04x, GlbMsgIdx=%d, SegIdx=%d, SegLen=%d",
3920 iHdl, iGlbMsgIdx, iSegmIndex, iSegLength);
3921 else
3922 proto_item_append_text(ti, ", Hdl=0x%04x, Len=%d",
3923 mq_parm.mq_API_Hdl, mq_parm.mq_MsgTotLen);
3924 if (reassembly_error)
3925 {
3926 expert_add_info_format(pinfo, ti, &ei_mq_reassembly_error,
3927 "Wrong fragment length (%d) - skipping reassembly", iSegL - iBegL);
3928 }
3929 mq_tree = proto_item_add_subtree(ti, ett_mq_reassemb);
3930 }
3931 else
3932 {
3933 mq_tree = tree;
3934 }
3935
3936 if (fd_head != NULL((void*)0) && pinfo->num == fd_head->reassembled_in && !bMore)
3937 {
3938 tvbuff_t* next_tvb;
3939
3940 /* Reassembly finished */
3941 if (fd_head->next != NULL((void*)0))
3942 {
3943 proto_item* ti;
3944
3945 /* dissect the last(s) MQ segment received */
3946 /* Reassembly in progress, so no decode */
3947
3948 mq_in_reassembly = true1;
3949 dissect_mq_pdu(tvb, pinfo, mq_tree);
3950 mq_in_reassembly = false0;
3951
3952 /*
3953 2 or more fragments.
3954 Build Up the full pdu to be dissected correwctly
3955 */
3956 next_tvb = tvb_new_chain(tvb, fd_head->tvb_data);
3957 add_new_data_source(pinfo, next_tvb, "Reassembled MQ");
3958
3959 /* Create the tree element for the full reassembled MQ Msg */
3960 ti = proto_tree_add_item(tree, proto_mq, tvb, 0, -1, ENC_NA0x00000000);
3961 proto_item_append_text(ti, " %s Full Segment",
3962 val_to_str_ext(iOpcd, &mq_opcode_xvals, "Unknown (0x%02x)"));
3963 if (iOpcd == MQ_TST_ASYNC_MESSAGE0x0D)
3964 {
3965 proto_item_append_text(ti, ", Hdl=0x%04x, GlbMsgIdx=%d, Len=%d",
3966 iHdl, iGlbMsgIdx,
3967 tvb_reported_length_remaining(next_tvb, 0));
3968 if (mq_parm.mq_AsyMsgRsn != MQ_MQRC_NONE0)
3969 proto_item_append_text(ti, ", Reason=%d(0x%x) - %s",
3970 mq_parm.mq_AsyMsgRsn, mq_parm.mq_AsyMsgRsn,
3971 val_to_str_ext(mq_parm.mq_AsyMsgRsn, &mq_MQRC_xvals, "Unknown (0x%02x)"));
3972 }
3973 else
3974 {
3975 proto_item_append_text(ti, ", Hdl=0x%04x, Len=%d",
3976 mq_parm.mq_API_Hdl,
3977 tvb_reported_length_remaining(next_tvb, 0));
3978 if (mq_parm.mq_API_RC != MQ_MQRC_NONE0)
3979 proto_item_append_text(ti, ", RC=%d(0x%x) - %s",
3980 mq_parm.mq_API_RC, mq_parm.mq_API_RC,
3981 val_to_str_ext(mq_parm.mq_API_RC, &mq_MQRC_xvals, "Unknown (0x%02x)"));
3982 }
3983 mq_tree = proto_item_add_subtree(ti, ett_mq_reassemb);
3984 }
3985 else
3986 {
3987 /* Only 1 fragment */
3988 next_tvb = tvb;
3989 }
3990 dissect_mq_pdu(next_tvb, pinfo, mq_tree);
3991 return tvb_reported_length(tvb);
3992 }
3993 else
3994 {
3995 mq_in_reassembly = true1;
3996 /* Reassembly in progress */
3997
3998 col_add_fstr(pinfo->cinfo, COL_INFO, "[%s %s Segment]",
3999 val_to_str_ext(iOpcd, &mq_opcode_xvals, "Unknown (0x%02x)"),
4000 pTmp);
4001 dissect_mq_addCR_colinfo(pinfo, &mq_parm);
4002 if (iOpcd == MQ_TST_ASYNC_MESSAGE0x0D)
4003 col_append_fstr(pinfo->cinfo, COL_INFO, " Hdl=0x%04x, GlbMsgIdx=%d, SegIdx=%d, SegLen=%d",
4004 iHdl, iGlbMsgIdx, iSegmIndex, iSegLength);
4005 else
4006 col_append_fstr(pinfo->cinfo, COL_INFO, " Hdl=0x%04x, Len=%d",
4007 mq_parm.mq_API_Hdl, mq_parm.mq_MsgTotLen);
4008 dissect_mq_pdu(tvb, pinfo, mq_tree);
4009 return tvb_reported_length(tvb);
4010 }
4011 }
4012 /* Reassembly not enabled or non-fragmented message */
4013 dissect_mq_pdu(tvb, pinfo, tree);
4014
4015 return tvb_reported_length(tvb);
4016}
4017
4018static unsigned get_mq_pdu_len(packet_info* pinfo _U___attribute__((unused)), tvbuff_t* tvb,
4019 int offset, void* data _U___attribute__((unused)))
4020{
4021 unsigned uLen = tvb_reported_length_remaining(tvb, offset);
4022 if (uLen >= 8)
4023 {
4024 if (is_mq_struc_TSH(tvb_get_ntohl(tvb, offset)))
4025 {
4026 uLen = tvb_get_ntohl(tvb, offset + 4);
4027 }
4028 }
4029 return uLen;
4030}
4031
4032static int dissect_mq_tcp(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, void* data)
4033{
4034 tcp_dissect_pdus(tvb, pinfo, tree, mq_desegment, 28, get_mq_pdu_len, reassemble_mq, data);
4035 return tvb_captured_length(tvb);
4036}
4037
4038static int dissect_mq_spx(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, void* data _U___attribute__((unused)))
4039{
4040 /* Since SPX has no standard desegmentation, MQ cannot be performed as well */
4041 dissect_mq_pdu(tvb, pinfo, tree);
4042 return tvb_captured_length(tvb);
4043}
4044
4045static bool_Bool dissect_mq_heur(tvbuff_t* tvb, packet_info* pinfo,
4046 proto_tree* tree, bool_Bool is_tcp, dissector_handle_t* ssl_app_handle)
4047{
4048 if ((tvb_captured_length(tvb) >= 4) && (tvb_reported_length(tvb) >= 28))
4049 {
4050 if (is_mq_struc_TSH(tvb_get_ntohl(tvb, 0)))
4051 {
4052 /* Register this dissector for this conversation */
4053 conversation_t* conversation = find_or_create_conversation(pinfo);
4054 if (is_tcp)
4055 conversation_set_dissector(conversation, mq_handle);
4056 else if (ssl_app_handle)
4057 *ssl_app_handle = mq_handle;
4058
4059 /* Dissect the packet */
4060 reassemble_mq(tvb, pinfo, tree, NULL((void*)0));
4061 return true1;
4062 }
4063 }
4064 return false0;
4065}
4066
4067static bool_Bool dissect_mq_heur_tcp(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, void* data _U___attribute__((unused)))
4068{
4069 return dissect_mq_heur(tvb, pinfo, tree, true1, NULL((void*)0));
4070}
4071
4072static bool_Bool dissect_mq_heur_nontcp(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, void* data _U___attribute__((unused)))
4073{
4074 return dissect_mq_heur(tvb, pinfo, tree, false0, NULL((void*)0));
4075}
4076
4077static bool_Bool dissect_mq_heur_ssl(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, void* data)
4078{
4079 struct tlsinfo *tlsinfo = (struct tlsinfo*)data;
4080 return dissect_mq_heur(tvb, pinfo, tree, false0, tlsinfo->app_handle);
4081}
4082
4083void proto_register_mq(void)
4084{
4085 static hf_register_info hf[] =
4086 {
4087 {&hf_mq_tsh_StructID, {"StructID..", "mq.tsh.structid", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4088 {&hf_mq_tsh_mqseglen, {"MQSegmLen.", "mq.tsh.seglength", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "TSH MQ Segment length", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4089 {&hf_mq_tsh_convid, {"Convers ID", "mq.tsh.convid", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "TSH Conversation ID", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4090 {&hf_mq_tsh_requestid, {"Request ID", "mq.tsh.requestid", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "TSH Request ID", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4091 {&hf_mq_tsh_byteorder, {"Byte order", "mq.tsh.byteorder", FT_UINT8, BASE_HEX, VALS(mq_byteorder_vals)((0 ? (const struct _value_string*)0 : ((mq_byteorder_vals)))
)
, 0x0, "TSH Byte order", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4092 {&hf_mq_tsh_opcode, {"SegmType..", "mq.tsh.type", FT_UINT8, BASE_HEX | BASE_EXT_STRING0x00000200, &mq_opcode_xvals, 0x0, "TSH MQ segment type", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4093 {&hf_mq_tsh_ctlflgs1, {"Ctl Flag 1", "mq.tsh.cflags1", FT_UINT8, BASE_HEX, NULL((void*)0), 0x0, "TSH Control flags 1", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4094 {&hf_mq_tsh_ctlflgs2, {"Ctl Flag 2", "mq.tsh.cflags2", FT_UINT8, BASE_HEX, NULL((void*)0), 0x0, "TSH Control flags 2", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4095 {&hf_mq_tsh_luwid, {"LUW Ident.", "mq.tsh.luwid", FT_BYTES, BASE_NONE, NULL((void*)0), 0x0, "TSH logical unit of work identifier", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4096 {&hf_mq_tsh_encoding, {"Encoding..", "mq.tsh.encoding", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "TSH Encoding", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4097 {&hf_mq_tsh_ccsid, {"CCSID.....", "mq.tsh.ccsid", FT_INT16, BASE_DEC | BASE_RANGE_STRING0x00000100, RVALS(mq_MQCCSI_rvals)((0 ? (const struct _range_string*)0 : ((mq_MQCCSI_rvals)))), 0x0, "TSH CCSID", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4098 {&hf_mq_tsh_reserved, {"Reserved..", "mq.tsh.reserved", FT_UINT16, BASE_HEX, NULL((void*)0), 0x0, "TSH Reserved", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4099
4100 {&hf_mq_tsh_tcf_confirmreq, {"Confirm Req", "mq.tsh.tcf.confirmreq", FT_BOOLEAN, 8, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_TCF_CONFIRM_REQUEST0x01, "TSH TCF Confirm request", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4101 {&hf_mq_tsh_tcf_error, {"Error", "mq.tsh.tcf.error", FT_BOOLEAN, 8, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_TCF_ERROR0x02, "TSH TCF Error", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4102 {&hf_mq_tsh_tcf_reqclose, {"Req close", "mq.tsh.tcf.reqclose", FT_BOOLEAN, 8, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_TCF_REQUEST_CLOSE0x04, "TSH TCF Request close", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4103 {&hf_mq_tsh_tcf_closechann, {"Close Chnl", "mq.tsh.tcf.closechann", FT_BOOLEAN, 8, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_TCF_CLOSE_CHANNEL0x08, "TSH TCF Close channel", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4104 {&hf_mq_tsh_tcf_first, {"First Seg", "mq.tsh.tcf.first", FT_BOOLEAN, 8, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_TCF_FIRST0x10, "TSH TCF First", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4105 {&hf_mq_tsh_tcf_last, {"Last Seg", "mq.tsh.tcf.last", FT_BOOLEAN, 8, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_TCF_LAST0x20, "TSH TCF Last", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4106 {&hf_mq_tsh_tcf_reqacc, {"Req accept", "mq.tsh.tcf.reqacc", FT_BOOLEAN, 8, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_TCF_REQUEST_ACCEPTED0x40, "TSH TCF Request accepted", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4107 {&hf_mq_tsh_tcf_dlq, {"DLQ used", "mq.tsh.tcf.dlq", FT_BOOLEAN, 8, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_TCF_DLQ_USED0x80, "TSH TCF DLQ used", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4108
4109 {&hf_mq_tsh_tcf2_HdrComp, {"HDR Comp", "mq.tsh.tcf2.hdrcomp", FT_BOOLEAN, 8, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_TCF2_HDRCOMP0x01, "TSH TCF2 Header Compressed", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4110 {&hf_mq_tsh_tcf2_MsgComp, {"MSG Comp", "mq.tsh.tcf2.msgcomp", FT_BOOLEAN, 8, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_TCF2_MSGCOMP0x02, "TSH TCF2 Message Compressed", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4111 {&hf_mq_tsh_tcf2_CSH, {"CSH", "mq.tsh.tcf2.csh", FT_BOOLEAN, 8, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_TCF2_CSH0x04, "TSH TCF2 CSH", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4112 {&hf_mq_tsh_tcf2_CmitIntv, {"CommitIntvl", "mq.tsh.tcf.cmitintv", FT_BOOLEAN, 8, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_TCF2_CMIT_INTERVAL0x08, "TSH TCF2 Commit Interval", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4113
4114 {&hf_mq_api_replylen, {"Reply len..", "mq.api.replylength", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "API Reply length", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4115 {&hf_mq_api_compcode, {"Compl Code.", "mq.api.completioncode", FT_UINT32, BASE_DEC, VALS(mq_MQCC_vals)((0 ? (const struct _value_string*)0 : ((mq_MQCC_vals)))), 0x0, "API Completion code", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4116 {&hf_mq_api_reascode, {"Reason Code", "mq.api.reasoncode", FT_UINT32, BASE_DEC | BASE_EXT_STRING0x00000200, &mq_MQRC_xvals, 0x0, "API Reason code", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4117 {&hf_mq_api_objecthdl, {"Object Hdl.", "mq.api.hobj", FT_UINT32, BASE_HEX, NULL((void*)0), 0x0, "API Object handle", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4118
4119 {&hf_mq_socket_conversid, {"ConversId", "mq.socket.conversid", FT_UINT32, BASE_HEX_DEC, NULL((void*)0), 0x0, "Socket Conversation Id", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4120 {&hf_mq_socket_requestid, {"RequestId", "mq.socket.requestid", FT_UINT32, BASE_HEX_DEC, NULL((void*)0), 0x0, "Socket Request Id", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4121 {&hf_mq_socket_type, {"Type.....", "mq.socket.type", FT_UINT32, BASE_HEX_DEC, NULL((void*)0), 0x0, "Socket Type", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4122 {&hf_mq_socket_parm1, {"Parm1....", "mq.socket.parm1", FT_UINT32, BASE_HEX_DEC, NULL((void*)0), 0x0, "Socket Parameter 1", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4123 {&hf_mq_socket_parm2, {"Parm2....", "mq.socket.parm2", FT_UINT32, BASE_HEX_DEC, NULL((void*)0), 0x0, "Socket Parameter 2", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4124
4125 {&hf_mq_caut_StructID, {"StructID.", "mq.caut.structid", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4126 {&hf_mq_caut_AuthType, {"AuthType.", "mq.caut.authtype", FT_UINT32, BASE_HEX_DEC, NULL((void*)0), 0x0, "CAUT Authority Type", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4127 {&hf_mq_caut_UsrMaxLen, {"UsrMaxLen", "mq.caut.usrmaxlen", FT_UINT32, BASE_HEX_DEC, NULL((void*)0), 0x0, "CAUT userid Maximum length", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4128 {&hf_mq_caut_PwdMaxLen, {"PwdMaxLen", "mq.caut.pwdmaxlen", FT_UINT32, BASE_HEX_DEC, NULL((void*)0), 0x0, "CAUT password Maximum length", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4129 {&hf_mq_caut_UsrLength, {"UsrLength", "mq.caut.usrlength", FT_UINT32, BASE_HEX_DEC, NULL((void*)0), 0x0, "CAUT userid length", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4130 {&hf_mq_caut_PwdLength, {"PwdLength", "mq.caut.pswlength", FT_UINT32, BASE_HEX_DEC, NULL((void*)0), 0x0, "CAUT password length", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4131 {&hf_mq_caut_usr, {"userid...", "mq.msh.userid", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "CAUT UserId", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4132 {&hf_mq_caut_psw, {"password.", "mq.msh.password", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "CAUT Password", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4133
4134 {&hf_mq_msh_StructID, {"StructID", "mq.msh.structid", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4135 {&hf_mq_msh_seqnum, {"Seq Numb", "mq.msh.seqnum", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "MSH sequence number", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4136 {&hf_mq_msh_datalength, {"Buf len.", "mq.msh.buflength", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "MSH buffer length", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4137 {&hf_mq_msh_unknown1, {"Unknown1", "mq.msh.unknown1", FT_UINT32, BASE_HEX, NULL((void*)0), 0x0, "MSH unknown1", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4138 {&hf_mq_msh_msglength, {"Msg len.", "mq.msh.msglength", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "MSH message length", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4139
4140 {&hf_mq_xqh_StructID, {"StructID", "mq.xqh.structid", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4141 {&hf_mq_xqh_version, {"Version.", "mq.xqh.version", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "XQH version", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4142 {&hf_mq_xqh_remoteq, {"Remote Q", "mq.xqh.remoteq", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "XQH remote queue", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4143 {&hf_mq_xqh_remoteqmgr, {"Rmt QMgr", "mq.xqh.remoteqmgr", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "XQH remote queue manager", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4144
4145 {&hf_mq_id_StructID, {"Structid..", "mq.id.structid", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4146 {&hf_mq_id_FapLevel, {"FAP level.", "mq.id.faplevel", FT_UINT8, BASE_DEC, NULL((void*)0), 0x0, "ID Formats And Protocols level", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4147 {&hf_mq_id_cf1, {"CapFlag1..", "mq.id.cflags", FT_UINT8, BASE_HEX, NULL((void*)0), 0x0, "ID Capability Flags 1", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4148 {&hf_mq_id_ecf1, {"ECapFlag1.", "mq.id.ecflags", FT_UINT8, BASE_HEX, NULL((void*)0), 0x0, "ID E Capability Flags 1", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4149 {&hf_mq_id_ief1, {"IniErrFlg1", "mq.id.inierrflg1", FT_UINT8, BASE_HEX, NULL((void*)0), 0x0, "ID Initial Error Flags 1", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4150 {&hf_mq_id_Reserved, {"Reserved..", "mq.id.reserved", FT_UINT16, BASE_HEX, NULL((void*)0), 0x0, "ID Reserved", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4151 {&hf_mq_id_MaxMsgBatch, {"MaxMsgBtch", "mq.id.maxmsgbatch", FT_UINT16, BASE_DEC, NULL((void*)0), 0x0, "ID max msg per batch", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4152 {&hf_mq_id_MaxTrSize, {"MaxTrSize.", "mq.id.maxtrsize", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "ID max trans size", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4153 {&hf_mq_id_MaxMsgSize, {"MaxMsgSize", "mq.id.maxmsgsize", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "ID max msg size", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4154 {&hf_mq_id_SeqWrapVal, {"SeqWrapVal", "mq.id.seqwrap", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "ID seq wrap value", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4155 {&hf_mq_id_channel, {"ChannelNme", "mq.id.channelname", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "ID channel name", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4156 {&hf_mq_id_cf2, {"CapFlag2..", "mq.id.cflags2", FT_UINT8, BASE_HEX, NULL((void*)0), 0x0, "ID Capability flags 2", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4157 {&hf_mq_id_ecf2, {"ECapFlag2.", "mq.id.ecflags2", FT_UINT8, BASE_HEX, NULL((void*)0), 0x0, "ID E Capability flags 2", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4158 {&hf_mq_id_ccsid, {"ccsid.....", "mq.id.ccsid", FT_INT16, BASE_DEC | BASE_RANGE_STRING0x00000100, RVALS(mq_MQCCSI_rvals)((0 ? (const struct _range_string*)0 : ((mq_MQCCSI_rvals)))), 0x0, "ID Coded Character Set ID", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4159 {&hf_mq_id_qmgrname, {"QMgrName..", "mq.id.qm", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "ID Queue Manager Name", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4160 {&hf_mq_id_HBInterval, {"HBInterval", "mq.id.hbint", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "ID Heartbeat interval", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4161 {&hf_mq_id_EFLLength, {"EFLLength.", "mq.id.efllength", FT_UINT16, BASE_HEX_DEC, NULL((void*)0), 0x0, "ID EFL Length", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4162 {&hf_mq_id_ief2, {"IniErrFlg2", "mq.id.inierrflg2", FT_UINT8, BASE_HEX_DEC, NULL((void*)0), 0x0, "ID Initial Error Flags 2", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4163 {&hf_mq_id_Reserved1, {"Reserved1.", "mq.id.reserved1", FT_UINT8, BASE_HEX_DEC, NULL((void*)0), 0x0, "ID Reserved 1", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4164 {&hf_mq_id_HdrCprsLst, {"HdrCprsLst", "mq.id.hdrcprslst", FT_BYTES, BASE_NONE, NULL((void*)0), 0x0, "ID Hdr Cprs Lst", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4165 {&hf_mq_id_MsgCprsLst, {"MsgCprsLst", "mq.id.msgcprslst", FT_BYTES, BASE_NONE, NULL((void*)0), 0x0, "ID Msg Cprs Lst", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4166 {&hf_mq_id_Reserved2, {"Reserved2.", "mq.id.reserved2", FT_UINT16, BASE_HEX_DEC, NULL((void*)0), 0x0, "ID Reserved 2", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4167 {&hf_mq_id_SSLKeyRst, {"SSLKeyRst.", "mq.id.sslkeyrst", FT_UINT32, BASE_HEX_DEC, NULL((void*)0), 0x0, "ID SSL Key Reset", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4168 {&hf_mq_id_ConvBySkt, {"ConvBySkt.", "mq.id.convbyskt", FT_INT32, BASE_DEC, NULL((void*)0), 0x0, "ID Conv Per Socket", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4169 {&hf_mq_id_cf3, {"CapFlag3..", "mq.id.cflags3", FT_UINT8, BASE_HEX_DEC, NULL((void*)0), 0x0, "ID Capability flags 3", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4170 {&hf_mq_id_ecf3, {"ECapFlag3.", "mq.id.ecflags3", FT_UINT8, BASE_HEX_DEC, NULL((void*)0), 0x0, "ID E Capability flags 3", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4171 {&hf_mq_id_Reserved3, {"Reserved3.", "mq.id.reserved3", FT_UINT16, BASE_HEX_DEC, NULL((void*)0), 0x0, "ID Reserved 3", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4172 {&hf_mq_id_ProcessId, {"ProcessId.", "mq.id.processid", FT_UINT32, BASE_HEX_DEC, NULL((void*)0), 0x0, "ID Process Identifier", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4173 {&hf_mq_id_ThreadId, {"ThreadId..", "mq.id.threadid", FT_UINT32, BASE_HEX_DEC, NULL((void*)0), 0x0, "ID Thread Identifier", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4174 {&hf_mq_id_TraceId, {"TraceId...", "mq.id.traceid", FT_UINT32, BASE_HEX_DEC, NULL((void*)0), 0x0, "ID Trace Identifier", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4175 {&hf_mq_id_ProdId, {"ProdId....", "mq.id.prodid", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "ID Product Identifier", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4176 {&hf_mq_id_mqmid, {"MQM ID....", "mq.id.mqmid", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "ID MQM ID", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4177 {&hf_mq_id_pal, {"PAL.......", "mq.id.pal", FT_BYTES, BASE_NONE, NULL((void*)0), 0x0, "ID PAL", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4178 {&hf_mq_id_r, {"R.........", "mq.id.r", FT_BYTES, BASE_NONE, NULL((void*)0), 0x0, "ID R", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4179
4180 {&hf_mq_id_cf1_msgseq, {"Message sequence", "mq.id.icf.msgseq", FT_BOOLEAN, 8, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_CF1_MSG_SEQ0x01, "ID ICF Message sequence", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4181 {&hf_mq_id_cf1_convcap, {"Conversion capable", "mq.id.icf.convcap", FT_BOOLEAN, 8, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_CF1_CONVERSION_CAPABLE0x02, "ID ICF Conversion capable", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4182 {&hf_mq_id_cf1_splitmsg, {"Split messages", "mq.id.icf.splitmsg", FT_BOOLEAN, 8, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_CF1_SPLIT_MESSAGE0x04, "ID ICF Split message", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4183 {&hf_mq_id_cf1_RqstInit, {"Request Initiation", "mq.id.icf.rqstinit", FT_BOOLEAN, 8, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_CF1_REQUEST_INITIATION0x08, "ID ICF Request Initiation", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4184 {&hf_mq_id_cf1_RqstSecu, {"Request Security", "mq.id.icf.rqstsecu", FT_BOOLEAN, 8, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_CF1_REQUEST_SECURITY0x10, "ID ICF Request Security", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4185 {&hf_mq_id_cf1_mqreq, {"MQ request", "mq.id.icf.mqreq", FT_BOOLEAN, 8, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_CF1_MQREQUEST0x20, "ID ICF MQ request", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4186 {&hf_mq_id_cf1_svrsec, {"Srvr Con security", "mq.id.icf.svrsec", FT_BOOLEAN, 8, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_CF1_SVRCONN_SECURITY0x40, "ID ICF Server connection security", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4187 {&hf_mq_id_cf1_runtime, {"Runtime applic", "mq.id.icf.runtime", FT_BOOLEAN, 8, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_CF1_RUNTIME0x80, "ID ICF Runtime application", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4188
4189 {&hf_mq_id_cf2_CanDstLst, {"DistListCapable", "mq.id.icf2.distlistcap", FT_BOOLEAN, 8, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_CF2_DIST_LIST_CAPABLE0x01, "ID ICF2 Distribution List Capable", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4190 {&hf_mq_id_cf2_FstMsgReq, {"Fast Msg Reqrd", "mq.id.icf2.fastmsgrqrd", FT_BOOLEAN, 8, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_CF2_FAST_MESSAGES_REQUIRED0x02, "ID ICF2 Fast Message Required", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4191 {&hf_mq_id_cf2_RespConv, {"RspndrConversion", "mq.id.icf2.respndrconvers", FT_BOOLEAN, 8, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_CF2_RESPONDER_CONVERSION0x04, "ID ICF2 Responder Conversion", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4192 {&hf_mq_id_cf2_XARequest, {"XARequest", "mq.id.icf2.xarequest", FT_BOOLEAN, 8, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_CF2_XAREQUEST0x10, "ID ICF2 XA Request", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4193 {&hf_mq_id_cf2_XARunTApp, {"XARunTypApp", "mq.id.icf2.xaruntypapp", FT_BOOLEAN, 8, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_CF2_XARUNTIME_APP0x20, "ID ICF2 XA Runtime App", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4194 {&hf_mq_id_cf2_SPIRqst, {"SPIRequest", "mq.id.icf2.spirequest", FT_BOOLEAN, 8, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_CF2_SPIREQUEST0x40, "ID ICF2 SPI Request", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4195 {&hf_mq_id_cf2_DualUOW, {"DualUOW", "mq.id.icf2.dualuow", FT_BOOLEAN, 8, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_CF2_DUAL_UOW0x08, "ID ICF2 Dual UOW", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4196 {&hf_mq_id_cf2_CanTrcRte, {"Trace Rte Capab", "mq.id.icf2.cantraceroute", FT_BOOLEAN, 8, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_CF2_TRACE_ROUTE_CAPABLE0x80, "ID ICF2 Trace Route Capable", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4197
4198 {&hf_mq_id_cf3_CanMsgPrp, {"Msg Property Cap", "mq.id.ief3.msgpropertycap", FT_BOOLEAN, 8, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_CF3_MSG_PROP_CAPABLE0x01, "ID ICF3 Message PropertyCapable", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4199 {&hf_mq_id_cf3_CanMulticast, {"Multicast Cap", "mq.id.ief3.multicastcap", FT_BOOLEAN, 8, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_CF3_MULTICAST_CAPABLE0x02, "ID ICF3 Mutlicast Capabilities", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4200 {&hf_mq_id_cf3_PropIntSep, {"Prop Int Separate", "mq.id.ief3.propintseparate", FT_BOOLEAN, 8, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_CF3_MSG_PROP_INT_SEPARATE0x04, "ID ICF3 Property Int Separate", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4201 {&hf_mq_id_cf3_MPlxSyGet, {"Multiplex_synchget", "mq.id.ief3.multiplexsynchget", FT_BOOLEAN, 8, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_CF3_MULTIPLEX_SYNCGET0x08, "ID ICF3 MULTIPLEX_SYNCGET", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4202 {&hf_mq_id_cf3_ProtAlgorit, {"Prot Algorithms", "mq.id.ief3.protalgorithms", FT_BOOLEAN, 8, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_CF3_PROT_ALGORITHMS0x10, "ID ICF3 Prot Algorithms", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4203 {&hf_mq_id_cf3_CanGenConnTag, {"Gen ConnTag Cap", "mq.id.ief3.genconntagcap", FT_BOOLEAN, 8, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_CF3_GEN_CONNTAG_CAP0x20, "ID ICF3 Generate ConnTag Capable", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4204
4205 {&hf_mq_id_ief1_ccsid, {"Invalid CCSID", "mq.id.ief1.ccsid", FT_BOOLEAN, 8, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_IEF1_CCSID_NOT_SUPPORTED0x01, "ID invalid CCSID", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4206 {&hf_mq_id_ief1_enc, {"Invalid encoding", "mq.id.ief1.enc", FT_BOOLEAN, 8, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_IEF1_ENCODING_INVALID0x02, "ID invalid encoding", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4207 {&hf_mq_id_ief1_mxtrsz, {"Invalid Max Trans Size", "mq.id.ief1.mxtrsz", FT_BOOLEAN, 8, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_IEF1_MAX_TRANSMISSION_SIZE0x04, "ID invalid maximum transmission size", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4208 {&hf_mq_id_ief1_fap, {"Invalid FAP level", "mq.id.ief1.fap", FT_BOOLEAN, 8, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_IEF1_FAP_LEVEL0x08, "ID invalid FAP level", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4209 {&hf_mq_id_ief1_mxmsgsz, {"Invalid message size", "mq.id.ief1.mxmsgsz", FT_BOOLEAN, 8, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_IEF1_MAX_MSG_SIZE0x10, "ID invalid message size", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4210 {&hf_mq_id_ief1_mxmsgpb, {"Invalid Max Msg batch", "mq.id.ief1.mxmsgpb", FT_BOOLEAN, 8, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_IEF1_MAX_MSG_PER_BATCH0x20, "ID maximum message per batch", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4211 {&hf_mq_id_ief1_seqwrap, {"Invalid Seq Wrap Value", "mq.id.ief1.seqwrap", FT_BOOLEAN, 8, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_IEF1_SEQ_WRAP_VALUE0x40, "ID invalid sequence wrap value", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4212 {&hf_mq_id_ief1_hbint, {"Invalid HB interval", "mq.id.ief1.hbint", FT_BOOLEAN, 8, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_IEF1_HEARTBEAT_INTERVAL0x80, "ID invalid heartbeat interval", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4213
4214 {&hf_mq_id_ief2_HdrCmpLst, {"Invalid HDR CompLst", "mq.id.ief2.hdrcomplst", FT_BOOLEAN, 8, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_IEF2_HDRCOMPLIST0x01, "ID invalid Header Compression List", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4215 {&hf_mq_id_ief2_MsgCmpLst, {"Invalid Msg CompLst", "mq.id.ief2.msgcomplst", FT_BOOLEAN, 8, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_IEF2_MSGCOMPLIST0x02, "ID invalid Message Compression List", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4216 {&hf_mq_id_ief2_SSLReset, {"Invalid SSL Reset", "mq.id.ief2.sslreset", FT_BOOLEAN, 8, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_IEF2_SSL_RESET0x04, "ID invalid SSL Reset", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4217
4218 {&hf_mq_uid_StructID, {"Structid", "mq.uid.structid", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4219 {&hf_mq_uid_userid, {"User ID.", "mq.uid.userid", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "UID structid", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4220 {&hf_mq_uid_password, {"Password", "mq.uid.password", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "UID password", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4221 {&hf_mq_uid_longuserid, {"Long UID", "mq.uid.longuserid", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "UID long user id", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4222
4223 {&hf_mq_sidlen, {"SID Len.", "mq.uid.sidlen", FT_UINT8, BASE_DEC, NULL((void*)0), 0x0, "Sid Len", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4224 {&hf_mq_sidtyp, {"SIDType.", "mq.uid.sidtyp", FT_UINT8, BASE_DEC, VALS(mq_sidtype_vals)((0 ? (const struct _value_string*)0 : ((mq_sidtype_vals)))), 0x0, "Sid Typ", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4225 {&hf_mq_securityid, {"SecurID.", "mq.uid.securityid", FT_BYTES, BASE_NONE, NULL((void*)0), 0x0, "Security ID", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4226
4227 {&hf_mq_conn_QMgr, {"QMgr....", "mq.conn.qm", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "CONN queue manager", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4228 {&hf_mq_conn_appname, {"ApplName", "mq.conn.appname", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "CONN application name", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4229 {&hf_mq_conn_apptype, {"ApplType", "mq.conn.apptype", FT_INT32, BASE_DEC | BASE_EXT_STRING0x00000200, &mq_MQAT_xvals, 0x0, "CONN application type", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4230 {&hf_mq_conn_acttoken, {"AccntTok", "mq.conn.acttoken", FT_BYTES, BASE_NONE, NULL((void*)0), 0x0, "CONN accounting token", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4231 {&hf_mq_conn_options, {"Options.", "mq.conn.options", FT_UINT32, BASE_DEC, VALS(mq_conn_options_vals)((0 ? (const struct _value_string*)0 : ((mq_conn_options_vals
))))
, 0x0, "CONN options", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4232 {&hf_mq_conn_Xoptions, {"XOptions", "mq.conn.xoptions", FT_UINT32, BASE_HEX, NULL((void*)0), 0x0, "CONN Xoptions", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4233
4234 {&hf_mq_fapmqcno_structid, {"structid..", "mq.fapmqcno.structid", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "FAPMQCNO struct id", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4235 {&hf_mq_fapmqcno_version, {"version...", "mq.fapmqcno.version", FT_UINT32, BASE_HEX_DEC, NULL((void*)0), 0x0, "FAPMQCNO version", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4236 {&hf_mq_fapmqcno_capflags, {"capflags..", "mq.fapmqcno.options", FT_UINT32, BASE_HEX_DEC, NULL((void*)0), 0x0, "FAPMQCNO capability flags", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4237 {&hf_mq_fapmqcno_conntag, {"conntag..", "mq.fapmqcno.conntag", FT_BYTES, BASE_NONE, NULL((void*)0), 0x0, "FAPMQCNO connection tag", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4238 {&hf_mq_fapmqcno_retconntag, {"retcontag", "mq.fapmqcno.retcontag", FT_BYTES, BASE_NONE, NULL((void*)0), 0x0, "FAPMQCNO restry connection tag", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4239 {&hf_mq_fapmqcno_type, {"type.....", "mq.fapmqcno.type", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "FAPMQCNO Type", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4240 {&hf_mq_fapmqcno_timeout, {"timeout..", "mq.fapmqcno.timeout", FT_UINT32, BASE_HEX_DEC, NULL((void*)0), 0x0, "FAPMQCNO Timeout", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4241 {&hf_mq_fapmqcno_balopts, {"balopt...", "mq.fapmqcno.balopts", FT_UINT32, BASE_HEX_DEC, NULL((void*)0), 0x0, "FAPMQCNO balance oprtions", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4242
4243 {&hf_mq_fcno_StructID, {"structid..", "mq.fcno.structid", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "FCNO structure id", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4244 {&hf_mq_fcno_version, {"version...", "mq.fcno.version", FT_UINT32, BASE_HEX_DEC, NULL((void*)0), 0x0, "FCNO version", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4245 {&hf_mq_fcno_options, {"options...", "mq.fcno.options", FT_UINT32, BASE_HEX_DEC, NULL((void*)0), 0x0, "FCNO options flag", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4246
4247 {&hf_mq_fcno_opt_FASTPATH_BINDING, {"FASTPATH_BINDING","mq.fcno.options.fastpath_binding", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQCNO_FASTPATH_BINDING0x00000001 ,"FCNO options fastpath_binding", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4248 {&hf_mq_fcno_opt_SERIALIZE_CONNTAG_QMGR, {"SERIALIZE_CONNTAG_QMGR","mq.fcno.options.serialize_conntag_qmgr", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQCNO_SERIALIZE_CONN_TAG_Q_MGR0x00000002,"FCNO options serialize_conntag_qmgr", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4249 {&hf_mq_fcno_opt_SERIALIZE_CONNTAG_QSG, {"SERIALIZE_CONNTAG_QSG","mq.fcno.options.serialize_conntag_qsg", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQCNO_SERIALIZE_CONN_TAG_QSG0x00000004 ,"FCNO options serialize_conntag_qsg", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4250 {&hf_mq_fcno_opt_RESTRICT_CONNTAG_QMGR, {"RESTRICT_CONNTAG_QMGR","mq.fcno.options.restrict_conntag_qmgr", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQCNO_RESTRICT_CONN_TAG_Q_MGR0x00000008 ,"FCNO options restrict_conntag_qmgr", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4251 {&hf_mq_fcno_opt_RESTRICT_CONNTAG_QSG, {"RESTRICT_CONNTAG_QSG","mq.fcno.options.restrict_conntag_qsg", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQCNO_RESTRICT_CONN_TAG_QSG0x00000010 ,"FCNO options restrict_conntag_qsg", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4252 {&hf_mq_fcno_opt_HANDLE_SHARE_NONE, {"HANDLE_SHARE_NONE","mq.fcno.options.handle_share_none", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQCNO_HANDLE_SHARE_NONE0x00000020 ,"FCNO options handle_share_none", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4253 {&hf_mq_fcno_opt_HANDLE_SHARE_BLOCK, {"HANDLE_SHARE_BLOCK","mq.fcno.options.handle_share_block", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQCNO_HANDLE_SHARE_BLOCK0x00000040 ,"FCNO options handle_share_block", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4254 {&hf_mq_fcno_opt_HANDLE_SHARE_NOBLOCK, {"HANDLE_SHARE_NOBLOCK","mq.fcno.options.handle_share_noblock", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQCNO_HANDLE_SHARE_NO_BLOCK0x00000080 ,"FCNO options handle_share_noblock", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4255 {&hf_mq_fcno_opt_SHARED_BINDING, {"SHARED_BINDING","mq.fcno.optIONS.shared_binding", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQCNO_SHARED_BINDING0x00000100 ,"FCNO options shared_binding", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4256 {&hf_mq_fcno_opt_ISOLATE_BINDING, {"ISOLATE_BINDING","mq.fcno.optIOns.isolate_binding", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQCNO_ISOLATED_BINDING0x00000200 ,"FCNO options isolate_binding", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4257 {&hf_mq_fcno_opt_LOCAL_BINDING, {"LOCAL_BINDING","mq.fcno.optIONS.Local_binding", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQCNO_LOCAL_BINDING0x00000400 ,"FCNO options local_binding", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4258 {&hf_mq_fcno_opt_CLIENT_BINDING, {"CLIENT_BINDING","mq.fcno.optIONS.client_binding", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQCNO_CLIENT_BINDING0x00000800 ,"FCNO options client_binding", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4259 {&hf_mq_fcno_opt_ACCNT_MQI_ENABLED, {"ACCNT_MQI_ENABLED","mq.fcno.options.accnt_mqi_enabled", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQCNO_ACCOUNTING_MQI_ENABLED0x00001000 ,"FCNO options accnt_mqi_enabled", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4260 {&hf_mq_fcno_opt_ACCNT_MQI_DISABLED, {"ACCNT_MQI_DISABLED","mq.fcno.options.accnt_mqi_disabled", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQCNO_ACCOUNTING_MQI_DISABLED0x00002000 ,"FCNO options accnt_mqi_disabled", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4261 {&hf_mq_fcno_opt_ACCNT_Q_ENABLED, {"ACCNT_Q_ENABLED","mq.fcno.optIOns.accnt_q_enabled", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQCNO_ACCOUNTING_Q_ENABLED0x00004000 ,"FCNO options accnt_q_enabled", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4262 {&hf_mq_fcno_opt_ACCNT_Q_DISABLED, {"ACCNT_Q_DISABLED","mq.fcno.options.accnt_q_disabled", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQCNO_ACCOUNTING_Q_DISABLED0x00008000 ,"FCNO options accnt_q_disabled", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4263 {&hf_mq_fcno_opt_NO_CONV_SHARING, {"NO_CONV_SHARING","mq.fcno.optIOns.no_conv_sharing", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQCNO_NO_CONV_SHARING0x00010000 ,"FCNO options no_conv_sharing", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4264 {&hf_mq_fcno_opt_ALL_CONVS_SHARE, {"ALL_CONVS_SHARE","mq.fcno.optIOns.all_convs_share", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQCNO_ALL_CONVS_SHARE0x00040000 ,"FCNO options all_convs_share", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4265 {&hf_mq_fcno_opt_CD_FOR_OUTPUT_ONLY, {"CD_FOR_OUTPUT_ONLY","mq.fcno.options.cd_for_output_only", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQCNO_CD_FOR_OUTPUT_ONLY0x00080000 ,"FCNO options cd_for_output_only", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4266 {&hf_mq_fcno_opt_USE_CD_SELECTION, {"USE_CD_SELECTION","mq.fcno.options.use_cd_selection", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQCNO_USE_CD_SELECTION0x00100000 ,"FCNO options use_cd_selection", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4267 {&hf_mq_fcno_opt_GENERATE_CONN_TAG, {"GENERATE_CONN_TAG","mq.fcno.options.generate_conn_tag", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQCNO_GENERATE_CONN_TAG0x00200000 ,"FCNO options generate_conn_tag", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4268 {&hf_mq_fcno_opt_RECONNECT, {"RECONNECT","mq.fcno.options.reconnect", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQCNO_RECONNECT0x01000000 ,"FCNO options reconnect", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4269 {&hf_mq_fcno_opt_RECONNECT_DISABLED, {"RECONNECT_DISABLED","mq.fcno.options.reconnect_disabled", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQCNO_RECONNECT_DISABLED0x02000000 ,"FCNO options reconnect_disabled", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4270 {&hf_mq_fcno_opt_RECONNECT_Q_MGR, {"RECONNECT_Q_MGR","mq.fcno.optIOns.reconnect_q_mgr", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQCNO_RECONNECT_Q_MGR0x04000000 ,"FCNO options reconnect_q_mgr", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4271 {&hf_mq_fcno_opt_ACTIVITY_TRACE_ENABLED, {"ACTIVITY_TRACE_ENABLED","mq.fcno.options.activity_trace_enabled", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQCNO_ACTIVITY_TRACE_ENABLED0x08000000 ,"FCNO options activity_trace_enabled", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4272 {&hf_mq_fcno_opt_ACTIVITY_TRACE_DISABLED, {"ACTIVITY_TRACE_DISABLED","mq.fcno.options.activity_trace_disabled", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQCNO_ACTIVITY_TRACE_DISABLED0x10000000 ,"FCNO options activity_trace_disabled", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4273
4274 {&hf_mq_fcno_contagsr, {"contagqm..", "mq.fcno.conntagqmgr", FT_BYTES, BASE_NONE, NULL((void*)0), 0x0, "FCNO Connection Tag Q Manager", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4275
4276 {&hf_mq_fcno_mqcdofs, {"mqcdofs...", "mq.fcno.mqcdofs", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "FCNO offset of client conn", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4277 {&hf_mq_fcno_mqcdptr, {"mqcdptr...", "mq.fcno.mqcdptr", FT_UINT32, BASE_HEX, NULL((void*)0), 0x0, "FCNO address of client conn", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4278 {&hf_mq_fcno_mqcdptr64, {"mqcdptr64.", "mq.fcno.mqcdptr64", FT_UINT64, BASE_HEX, NULL((void*)0), 0x0, "FCNO address of client conn 64bit", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4279
4280 {&hf_mq_fcno_conn_tag, {"conntag", "mq.fcno.conntag", FT_BYTES, BASE_NONE, NULL((void*)0), 0x0, "CONN Connection Tag", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4281
4282 {&hf_mq_fcno_sslcfgofs, {"sslcfgofs.", "mq.fcno.sslcfgofs", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "FCNO offset of SSL configuration", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4283 {&hf_mq_fcno_sslcfgptr, {"sslcfgptr.", "mq.fcno.sslcfgptr", FT_UINT32, BASE_HEX, NULL((void*)0), 0x0, "FCNO address of SSL configuration", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4284 {&hf_mq_fcno_sslcfgptr64, {"sslcfgptr64", "mq.fcno.sslcfgptr64", FT_UINT64, BASE_HEX, NULL((void*)0), 0x0, "FCNO address of SSL configuration 64bit", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4285
4286 {&hf_mq_fcno_connid, {"connid....", "mq.fcno.connid", FT_BYTES, BASE_NONE, NULL((void*)0), 0x0, "FCNO Connection Id", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4287 {&hf_mq_fcno_secprmofs, {"secprmofs.", "mq.fcno.secprmofs", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "FCNO offset of security parms", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4288 {&hf_mq_fcno_secprmptr, {"secprmptr.", "mq.fcno.secprmptr", FT_UINT32, BASE_HEX, NULL((void*)0), 0x0, "FCNO address of security parms", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4289 {&hf_mq_fcno_secprmptr64, {"secprmptr64", "mq.fcno.secprmptr64", FT_UINT64, BASE_HEX, NULL((void*)0), 0x0, "FCNO address of security parms 64bit", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4290
4291 {&hf_mq_fcno_ccdturlofs, {"ccdturlofs", "mq.fcno.ccdturlofs", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "FCNO offset of CCDT URL string", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4292 {&hf_mq_fcno_ccdturlptr, {"ccdturlptr", "mq.fcno.ccdturlptr", FT_UINT32, BASE_HEX, NULL((void*)0), 0x0, "FCNO address of CCDT URL string", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4293 {&hf_mq_fcno_ccdturlptr64, {"ccdturlptr64", "mq.fcno.ccdturlptr64", FT_UINT64, BASE_HEX, NULL((void*)0), 0x0, "FCNO address of CCDT URL string 64bit", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4294 {&hf_mq_fcno_ccdturllen, {"ccdturllen", "mq.fcno.ccdturllen", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "FCNO length of CCDT URL string", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4295 {&hf_mq_fcno_reserved, {"reserved...", "mq.fcno.reserved", FT_UINT8, BASE_HEX, NULL((void*)0), 0x0, "FCNO reserved", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4296
4297 {&hf_mq_fcno_applname, {"applname...", "mq.fcno.applname", FT_STRINGZ, BASE_NONE, NULL((void*)0), 0x0, "FCNO Application name", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4298 {&hf_mq_fcno_reserved2, {"reserved2..", "mq.fcno.reserved2", FT_UINT8, BASE_HEX, NULL((void*)0), 0x0, "FCNO reserved2", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4299
4300 {&hf_mq_fcno_balprmofs, {"balprmofs.", "mq.fcno.balprmofs", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "FCNO offset of Balance parameter", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4301 {&hf_mq_fcno_balprmptr, {"balprmptr.", "mq.fcno.balprmptr", FT_UINT32, BASE_HEX, NULL((void*)0), 0x0, "FCNO address of Balance parameter", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4302 {&hf_mq_fcno_balprmptr64, {"balprmptr64", "mq.fcno.balprmptr64", FT_UINT64, BASE_HEX, NULL((void*)0), 0x0, "FCNO address of Balance parameter 64bit", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4303 {&hf_mq_fcno_reserved3, {"reserved3..", "mq.fcno.reserved3", FT_UINT8, BASE_HEX, NULL((void*)0), 0x0, "FCNO reserved3", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4304
4305 {&hf_mq_conn_prodid, {"prodid....", "mq.conn.prodid", FT_STRINGZ, BASE_NONE, NULL((void*)0), 0x0, "CONN Product Id", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4306 {&hf_mq_conn_retconn_tag, {"retconntag", "mq.fcno.retconntag", FT_BYTES, BASE_NONE, NULL((void*)0), 0x0, "CONN Retry Connection Tag", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4307 {&hf_mq_conn_unknowbyt, {"unknowbyt.", "mq.fcno.unknowbyt", FT_BYTES, BASE_NONE, NULL((void*)0), 0x0, "CONN unknown bytes", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4308 {&hf_mq_conn_unknowstr, {"unknowstr.", "mq.fcno.unknowstr", FT_STRINGZ, BASE_NONE, NULL((void*)0), 0x0, "CONN unknown string", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)} },
4309 {&hf_mq_conn_mqmid, {"MqmId.....", "mq.fcno.mqmid", FT_STRINGZ, BASE_NONE, NULL((void*)0), 0x0, "CONN Mqm ID", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4310
4311
4312 {&hf_mq_inq_nbsel, {"Selector count..", "mq.inq.nbsel", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "INQ Selector count", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4313 {&hf_mq_inq_nbint, {"Integer count...", "mq.inq.nbint", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "INQ Integer count", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4314 {&hf_mq_inq_charlen, {"Character length", "mq.inq.charlen", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "INQ Character length", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4315 {&hf_mq_inq_sel, {"Selector........", "mq.inq.sel", FT_UINT32, BASE_DEC | BASE_EXT_STRING0x00000200, &mq_selector_xvals, 0x0, "INQ Selector", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4316 {&hf_mq_inq_intvalue, {"Integer value...", "mq.inq.intvalue", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "INQ Integer value", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4317 {&hf_mq_inq_charvalues, {"Char values.....", "mq.inq.charvalues", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "INQ Character values", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4318
4319 {&hf_mq_spi_verb, {"SPI Verb", "mq.spi.verb", FT_UINT32, BASE_DEC, VALS(mq_spi_verbs_vals)((0 ? (const struct _value_string*)0 : ((mq_spi_verbs_vals)))
)
, 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4320 {&hf_mq_spi_version, {"Version", "mq.spi.version", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "SPI Version", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4321 {&hf_mq_spi_length, {"Max reply size", "mq.spi.replength", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "SPI Max reply size", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4322
4323 {&hf_mq_spi_base_StructID, {"SPI Structid", "mq.spib.structid", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4324 {&hf_mq_spi_base_version, {"Version", "mq.spib.version", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "SPI Base Version", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4325 {&hf_mq_spi_base_length, {"Length", "mq.spib.length", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "SPI Base Length", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4326
4327 {&hf_mq_spi_spqo_nbverb, {"Number of verbs", "mq.spqo.nbverb", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "SPI Query Output Number of verbs", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4328 {&hf_mq_spi_spqo_verbid, {"Verb", "mq.spqo.verb", FT_UINT32, BASE_DEC, VALS(mq_spi_verbs_vals)((0 ? (const struct _value_string*)0 : ((mq_spi_verbs_vals)))
)
, 0x0, "SPI Query Output VerbId", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4329 {&hf_mq_spi_spqo_maxiover, {"Max InOut Version", "mq.spqo.maxiov", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "SPI Query Output Max InOut Version", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4330 {&hf_mq_spi_spqo_maxinver, {"Max In Version", "mq.spqo.maxiv", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "SPI Query Output Max In Version", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4331 {&hf_mq_spi_spqo_maxouver, {"Max Out Version", "mq.spqo.maxov", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "SPI Query Output Max Out Version", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4332 {&hf_mq_spi_spqo_flags, {"Flags", "mq.spqo.flags", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "SPI Query Output flags", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4333
4334 {&hf_mq_spi_spai_mode, {"Mode", "mq.spai.mode", FT_UINT32, BASE_DEC, VALS(mq_spi_activate_vals)((0 ? (const struct _value_string*)0 : ((mq_spi_activate_vals
))))
, 0x0, "SPI Activate Input mode", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4335 {&hf_mq_spi_spai_unknown1, {"Unknown1", "mq.spai.unknown1", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "SPI Activate Input unknown1", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4336 {&hf_mq_spi_spai_unknown2, {"Unknown2", "mq.spai.unknown2", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "SPI Activate Input unknown2", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4337 {&hf_mq_spi_spai_msgid, {"Message Id", "mq.spai.msgid", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "SPI Activate Input message id", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4338 {&hf_mq_spi_spgi_batchsz, {"Batch size", "mq.spgi.batchsize", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "SPI Get Input batch size", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4339 {&hf_mq_spi_spgi_batchint, {"Batch interval", "mq.spgi.batchint", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "SPI Get Input batch interval", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4340 {&hf_mq_spi_spgi_maxmsgsz, {"Max message size", "mq.spgi.maxmsgsize", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "SPI Get Input max message size", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4341
4342 {&hf_mq_spi_spgo_options, {"Options", "mq.spgo.options", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "SPI Get Output options", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4343 {&hf_mq_spi_spgo_size, {"Size", "mq.spgo.size", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "SPI Get Output size", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4344 {&hf_mq_spi_opt_blank, {"Blank padded", "mq.spi.options.blank", FT_BOOLEAN, 8, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_SPI_OPTIONS_BLANK_PADDED0x01, "SPI Options blank padded", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4345 {&hf_mq_spi_opt_syncp, {"Syncpoint", "mq.spi.options.sync", FT_BOOLEAN, 8, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_SPI_OPTIONS_SYNCPOINT0x02, "SPI Options syncpoint", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4346 {&hf_mq_spi_opt_deferred, {"Deferred", "mq.spi.options.deferred", FT_BOOLEAN, 8, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_SPI_OPTIONS_DEFERRED0x04, "SPI Options deferred", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4347
4348 {&hf_mq_put_length, {"Data length", "mq.put.length", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "PUT Data length", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4349
4350 {&hf_mq_close_options, {"Options", "mq.close.options", FT_UINT32, BASE_HEX, NULL((void*)0), 0x0, "CLOSE options", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4351 {&hf_mq_close_options_DELETE, {"DELETE", "mq.close.options.Delete", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQCO_DELETE0x00000001, "CLOSE options DELETE", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4352 {&hf_mq_close_options_DELETE_PURGE, {"DELETE_PURGE", "mq.close.options.DeletePurge", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQCO_DELETE_PURGE0x00000002, "CLOSE options DELETE_PURGE", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4353 {&hf_mq_close_options_KEEP_SUB, {"KEEPSUB", "mq.close.options.KeepSub", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQCO_KEEP_SUB0x00000004, "CLOSE options KEEP_SUB", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4354 {&hf_mq_close_options_REMOVE_SUB, {"REMOVE_SUB", "mq.close.options.RemoveSub", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQCO_REMOVE_SUB0x00000008, "CLOSE options REMOVE_SUB", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4355 {&hf_mq_close_options_QUIESCE, {"QUIESCE", "mq.close.options.Quiesce", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQCO_QUIESCE0x00000020, "CLOSE options QUIESCE", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4356
4357 {&hf_mq_open_options, {"Options", "mq.open.options", FT_UINT32, BASE_HEX, NULL((void*)0), 0x0, "OPEN options", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4358 {&hf_mq_open_options_INPUT_AS_Q_DEF, {"INPUT_AS_Q_DEF", "mq.open.options.InputAsQDef", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQOO_INPUT_AS_Q_DEF0x00000001, "OPEN options INPUT_AS_Q_DEF", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4359 {&hf_mq_open_options_INPUT_SHARED, {"INPUT_SHARED", "mq.open.options.InputShared", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQOO_INPUT_SHARED0x00000002, "OPEN options INPUT_SHARED", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4360 {&hf_mq_open_options_INPUT_EXCLUSIVE, {"INPUT_EXCLUSIVE", "mq.open.options.InputExclusive", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQOO_INPUT_EXCLUSIVE0x00000004, "OPEN options INPUT_EXCLUSIVE", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4361 {&hf_mq_open_options_BROWSE, {"BROWSE", "mq.open.options.Browse", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQOO_BROWSE0x00000008, "OPEN options BROWSE", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4362 {&hf_mq_open_options_OUTPUT, {"OUTPUT", "mq.open.options.Output", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQOO_OUTPUT0x00000010, "OPEN options OUTPUT", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4363 {&hf_mq_open_options_INQUIRE, {"INQUIRE", "mq.open.options.Inquire", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQOO_INQUIRE0x00000020, "OPEN options INQUIRE", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4364 {&hf_mq_open_options_SET, {"SET", "mq.open.options.Set", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQOO_SET0x00000040, "OPEN options SET", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4365 {&hf_mq_open_options_SAVE_ALL_CTX, {"SAVE_ALL_CONTEXT", "mq.open.options.SaveAllContext", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQOO_SAVE_ALL_CONTEXT0x00000080, "OPEN options SAVE_ALL_CONTEXT", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4366 {&hf_mq_open_options_PASS_IDENT_CTX, {"PASS_IDENTITY_CONTEXT", "mq.open.options.PassIdentityContext", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQOO_PASS_IDENTITY_CONTEXT0x00000100, "OPEN options PASS_IDENTITY_CONTEXT", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4367 {&hf_mq_open_options_PASS_ALL_CTX, {"PASS_ALL_CONTEXT", "mq.open.options.PassAllContext", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQOO_PASS_ALL_CONTEXT0x00000200, "OPEN options PASS_ALL_CONTEXT", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4368 {&hf_mq_open_options_SET_IDENT_CTX, {"SET_IDENTITY_CONTEXT", "mq.open.options.SetIdentityContext", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQOO_SET_IDENTITY_CONTEXT0x00000400, "OPEN options SET_IDENTITY_CONTEXT", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4369 {&hf_mq_open_options_SET_ALL_CONTEXT, {"SET_ALL_CONTEXT", "mq.open.options.SetAllContext", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQOO_SET_ALL_CONTEXT0x00000800, "OPEN options SET_ALL_CONTEXT", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4370 {&hf_mq_open_options_ALT_USER_AUTH, {"ALTERNATE_USER_AUTHORITY", "mq.open.options.AlternateUserAuthority", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQOO_ALTERNATE_USER_AUTHORITY0x00001000, "OPEN options ALTERNATE_USER_AUTHORITY", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4371 {&hf_mq_open_options_FAIL_IF_QUIESC, {"FAIL_IF_QUIESCING", "mq.open.options.FailIfQuiescing", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQOO_FAIL_IF_QUIESCING0x00002000, "OPEN options FAIL_IF_QUIESCING", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4372 {&hf_mq_open_options_BIND_ON_OPEN, {"BIND_ON_OPEN", "mq.open.options.BindOnOpen", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQOO_BIND_ON_OPEN0x00004000, "OPEN options BIND_ON_OPEN", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4373 {&hf_mq_open_options_BIND_NOT_FIXED, {"BIND_NOT_FIXED", "mq.open.options.BindNotFixed", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQOO_BIND_NOT_FIXED0x00008000, "OPEN options BIND_NOT_FIXED", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4374 {&hf_mq_open_options_RESOLVE_NAMES, {"RESOLVE_NAMES", "mq.open.options.ResolveNames", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQOO_RESOLVE_NAMES0x00010000, "OPEN options RESOLVE_NAMES", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4375 {&hf_mq_open_options_CO_OP, {"CO_OP", "mq.open.options.CoOp", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQOO_CO_OP0x00020000, "OPEN options CO_OP", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4376 {&hf_mq_open_options_RESOLVE_LOCAL_Q, {"RESOLVE_LOCAL_Q", "mq.open.options.ResolveLocalQueueOrTopic", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQOO_RESOLVE_LOCAL_Q0x00040000, "OPEN options RESOLVE_LOCAL_Q", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4377 {&hf_mq_open_options_NO_READ_AHEAD, {"NO_READ_AHEAD", "mq.open.options.NoReadAhead", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQOO_NO_READ_AHEAD0x00080000, "OPEN options NO_READ_AHEAD", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4378 {&hf_mq_open_options_READ_AHEAD, {"READ_AHEAD", "mq.open.options.ReadAhead", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQOO_READ_AHEAD0x00100000, "OPEN options READ_AHEAD", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4379 {&hf_mq_open_options_NO_MULTICAST, {"NO_MULTICAST", "mq.open.options.NoMulticast", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQOO_NO_MULTICAST0x00200000, "OPEN options NO_MULTICAST", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4380 {&hf_mq_open_options_BIND_ON_GROUP, {"BIND_ON_GROUP", "mq.open.options.BindOnGroup", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQOO_BIND_ON_GROUP0x00400000, "OPEN options BIND_ON_GROUP", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4381
4382 {&hf_mq_fopa_StructID, {"StructId.......", "mq.fopa.structid", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4383 {&hf_mq_fopa_version, {"Version........", "mq.fopa.version", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "FOPA Version", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4384 {&hf_mq_fopa_length, {"Length.........", "mq.fopa.length", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "FOPA Length", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4385 {&hf_mq_fopa_DefPersistence, {"DefPersistence.", "mq.fopa.defpersistence", FT_INT32, BASE_DEC, VALS(mq_MQPER_vals)((0 ? (const struct _value_string*)0 : ((mq_MQPER_vals)))), 0x0, "FOPA DefPersistence", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4386 {&hf_mq_fopa_DefPutRespType, {"DefPutRespType.", "mq.fopa.defputresponsetype", FT_INT32, BASE_DEC, VALS(mq_MQPRT_vals)((0 ? (const struct _value_string*)0 : ((mq_MQPRT_vals)))), 0x0, "FOPA DefPutRespType", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4387 {&hf_mq_fopa_DefReadAhead, {"DefReadAhead...", "mq.fopa.defreadahaed", FT_INT32, BASE_DEC, VALS(mq_MQREADA_vals)((0 ? (const struct _value_string*)0 : ((mq_MQREADA_vals)))), 0x0, "FOPA DefReadAhead", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4388 {&hf_mq_fopa_PropertyControl, {"PropertyControl", "mq.fopa.propertycontrol", FT_INT32, BASE_DEC, VALS(mq_MQPROP_vals)((0 ? (const struct _value_string*)0 : ((mq_MQPROP_vals)))), 0x0, "FOPA PropertyControl", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4389 {&hf_mq_fopa_Unknown, {"Unknown........", "mq.fopa.unknown", FT_BYTES, BASE_NONE, NULL((void*)0), 0x0, "FOPA Unknown", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4390
4391 {&hf_mq_fcmi_StructID, {"StructId.......", "mq.fcmi.structid", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4392 {&hf_mq_fcmi_unknown, {"Unknown........", "mq.fcmi.unknown", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "FCMI Unknown", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4393
4394 {&hf_mq_msgreq_version, {"version..", "mq.msgreq.version", FT_UINT32, BASE_HEX_DEC, NULL((void*)0), 0x0, "MSGREQ version", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4395 {&hf_mq_msgreq_handle, {"handle...", "mq.msgreq.handle", FT_UINT32, BASE_HEX, NULL((void*)0), 0x0, "MSGREQ handle", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4396 {&hf_mq_msgreq_RecvBytes, {"RecvBytes", "mq.msgreq.unknown1", FT_UINT32, BASE_HEX_DEC, NULL((void*)0), 0x0, "MSGREQ Received Bytes", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4397 {&hf_mq_msgreq_RqstBytes, {"RqstBytes", "mq.msgreq.rqstbytes", FT_UINT32, BASE_HEX_DEC, NULL((void*)0), 0x0, "MSGREQ Requested Bytes", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4398 {&hf_mq_msgreq_MaxMsgLen, {"MaxMsgLen", "mq.msgreq.maxmsglen", FT_UINT32, BASE_HEX_DEC, NULL((void*)0), 0x0, "MSGREQ Maximum Msg Length", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4399 {&hf_mq_msgreq_WaitIntrv, {"WaitIntrv", "mq.msgreq.waitintrv", FT_UINT32, BASE_HEX_DEC, NULL((void*)0), 0x0, "MSGREQ Wait Interval", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4400 {&hf_mq_msgreq_QueStatus, {"QueStatus", "mq.msgreq.questatus", FT_UINT32, BASE_HEX, NULL((void*)0), 0x0, "MSGREQ Queue Status", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4401 {&hf_mq_msgreq_RqstFlags, {"RqstFlags", "mq.msgreq.rqstflags", FT_UINT32, BASE_HEX_DEC, NULL((void*)0), 0x0, "MSGREQ Request Flags", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4402 {&hf_mq_msgreq_flags_selection, {"REQ_MSG_SELECTION", "mq.msgreq.rqstflags.SELECTION", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_REQUEST_MSG_SELECTION0x00000010, "Request Message flag SELECTION", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4403 {&hf_mq_msgreq_flags_F00000008, {"REQ_MSG_F00000008", "mq.msgreq.rqstflags.F00000008", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_REQUEST_MSG_F000000080x00000008, "Request Message flag F00000008", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4404 {&hf_mq_msgreq_flags_F00000004, {"REQ_MSG_F00000004", "mq.msgreq.rqstflags.F00000004", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_REQUEST_MSG_F000000040x00000004, "Request Message flag F00000004", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4405 {&hf_mq_msgreq_flags_F00000002, {"REQ_MSG_F00000002", "mq.msgreq.rqstflags.F00000002", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_REQUEST_MSG_F000000020x00000002, "Request Message flag F00000002", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4406
4407 {&hf_mq_msgreq_GlbMsgIdx, {"GlbMsgIdx", "mq.msgreq.glbmsgidx", FT_UINT32, BASE_HEX_DEC, NULL((void*)0), 0x0, "MSGREQ Global Message Index", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4408 {&hf_mq_msgreq_SelectIdx, {"SelectIdx", "mq.msgreq.selectIdx", FT_UINT16, BASE_HEX_DEC, NULL((void*)0), 0x0, "MSGREQ Selection Index", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4409 {&hf_mq_msgreq_MQMDVers, {"MQMDVers.", "mq.msgreq.mqmdvers", FT_UINT16, BASE_HEX_DEC, NULL((void*)0), 0x0, "MSGREQ MQMD Version", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4410 {&hf_mq_msgreq_ccsid, {"CCSID....", "mq.msgreq.ccsid", FT_INT32, BASE_DEC | BASE_RANGE_STRING0x00000100, RVALS(mq_MQCCSI_rvals)((0 ? (const struct _range_string*)0 : ((mq_MQCCSI_rvals)))), 0x0, "MSGREQ ccsid", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4411 {&hf_mq_msgreq_encoding, {"Encoding.", "mq.msgreq.encoding", FT_UINT32, BASE_HEX_DEC, NULL((void*)0), 0x0, "MSGREQ encoding", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4412 {&hf_mq_msgreq_MsgSeqNum, {"MsgSeqNum", "mq.msgreq.msgseqnum", FT_UINT32, BASE_HEX_DEC, NULL((void*)0), 0x0, "MSGREQ Message Sequence Number", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4413 {&hf_mq_msgreq_offset, {"Offset...", "mq.msgreq.offset", FT_UINT32, BASE_HEX_DEC, NULL((void*)0), 0x0, "MSGREQ Offset", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4414 {&hf_mq_msgreq_mtchMsgId, {"mtchMsgId", "mq.msgreq.mtchMsgId", FT_BYTES, BASE_NONE, NULL((void*)0), 0x0, "MSGREQ match MsgID", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4415 {&hf_mq_msgreq_mtchCorId, {"mtchCorID", "mq.msgreq.mtchcorid", FT_BYTES, BASE_NONE, NULL((void*)0), 0x0, "MSGREQ match Correlation Id", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4416 {&hf_mq_msgreq_mtchGrpid, {"mtchGrpID", "mq.msgreq.mtchgrpid", FT_BYTES, BASE_NONE, NULL((void*)0), 0x0, "MSGREQ match Group ID", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4417 {&hf_mq_msgreq_mtchMsgTk, {"mtchMsgTk", "mq.msgreq.mtchmsgtk", FT_BYTES, BASE_NONE, NULL((void*)0), 0x0, "MSGREQ match Message Token", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4418
4419 {&hf_mq_msgasy_version, {"version..", "mq.msgasy.version", FT_UINT32, BASE_HEX_DEC, NULL((void*)0), 0x0, "MSGASYNC version", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4420 {&hf_mq_msgasy_handle, {"handle...", "mq.msgasy.handle", FT_UINT32, BASE_HEX, NULL((void*)0), 0x0, "MSGASYNC handle", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4421 {&hf_mq_msgasy_MsgIndex, {"MsgIndex.", "mq.msgasy.msgindex", FT_UINT32, BASE_HEX_DEC, NULL((void*)0), 0x0, "MSGASYNC Message Index", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4422 {&hf_mq_msgasy_GlbMsgIdx, {"GlbMsgIdx", "mq.msgasy.glbmsgidx", FT_UINT32, BASE_HEX_DEC, NULL((void*)0), 0x0, "MSGASYNC Global Message Index", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4423 {&hf_mq_msgasy_SegLength, {"SegLength", "mq.msgasy.seglength", FT_UINT32, BASE_HEX_DEC, NULL((void*)0), 0x0, "MSGASYNC Segment Length", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4424 {&hf_mq_msgasy_SegmIndex, {"SegmIndex", "mq.msgasy.segmindex", FT_UINT16, BASE_HEX_DEC, NULL((void*)0), 0x0, "MSGASYNC Segment Index", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4425 {&hf_mq_msgasy_SeleIndex, {"SeleIndex", "mq.msgasy.seleindex", FT_UINT16, BASE_HEX_DEC, NULL((void*)0), 0x0, "MSGASYNC Selection Index", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4426 {&hf_mq_msgasy_ReasonCod, {"ReasonCod", "mq.msgasy.reasoncod", FT_UINT32, BASE_DEC | BASE_EXT_STRING0x00000200, &mq_MQRC_xvals, 0x0, "MSGASYNC Reason Code", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4427 {&hf_mq_msgasy_ActMsgLen, {"ActMsgLen", "mq.msgasy.actmsglen", FT_UINT32, BASE_HEX_DEC, NULL((void*)0), 0x0, "MSGASYNC Actual Message Length", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4428 {&hf_mq_msgasy_TotMsgLen, {"TotMsgLen", "mq.msgasy.totmsglen", FT_UINT32, BASE_HEX_DEC, NULL((void*)0), 0x0, "MSGASYNC Total Message Length", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4429 {&hf_mq_msgasy_MsgToken, {"MsgToken.", "mq.msgasy.msgtoken", FT_BYTES, BASE_NONE, NULL((void*)0), 0x0, "MSGASYNC Mesasage Token", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4430 {&hf_mq_msgasy_Status, {"status...", "mq.msgasy.status", FT_UINT16, BASE_HEX, NULL((void*)0), 0x0, "MSGASYNC Status", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4431 {&hf_mq_msgasy_resolQNLn, {"resolQNLn", "mq.msgasy.resolqnln", FT_UINT8, BASE_DEC, NULL((void*)0), 0x0, "MSGASYNC Resolved Queue Name Length", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4432 {&hf_mq_msgasy_resolQNme, {"resolQNme", "mq.msgasy.resolqnme", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "MSGASYNC Resolved Queue Name", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4433 {&hf_mq_msgasy_padding, {"Padding..", "mq.msgasy.padding", FT_BYTES, BASE_NONE, NULL((void*)0), 0x0, "MSGASYNC Padding", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4434
4435 {&hf_mq_notif_vers, {"version.", "mq.notif.vers", FT_UINT32, BASE_HEX_DEC, NULL((void*)0), 0x0, "NOTIFICATION version", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4436 {&hf_mq_notif_handle, {"handle..", "mq.notif.handle", FT_UINT32, BASE_HEX, NULL((void*)0), 0x0, "NOTIFICATION handle", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4437 {&hf_mq_notif_code, {"code....", "mq.notif.code", FT_UINT32, BASE_HEX_DEC, VALS(mq_notifcode_vals)((0 ? (const struct _value_string*)0 : ((mq_notifcode_vals)))
)
, 0x0, "NOTIFICATION code", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4438 {&hf_mq_notif_value, {"value...", "mq.notif.value", FT_UINT32, BASE_HEX_DEC, NULL((void*)0), 0x0, "NOTIFICATION MQRC", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4439
4440 {&hf_mq_ping_length, {"Length", "mq.ping.length", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "PING length", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4441 {&hf_mq_ping_buffer, {"Buffer", "mq.ping.buffer", FT_BYTES, BASE_NONE, NULL((void*)0), 0x0, "PING buffer", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4442
4443 {&hf_mq_reset_length, {"Length", "mq.reset.length", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "RESET length", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4444 {&hf_mq_reset_seqnum, {"SeqNum", "mq.reset.seqnum", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "RESET sequence number", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4445
4446 {&hf_mq_status_length, {"Length", "mq.status.length", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "STATUS length", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4447 {&hf_mq_status_code, {"Code..", "mq.status.code", FT_UINT32, BASE_DEC | BASE_EXT_STRING0x00000200, &mq_status_xvals, 0x0, "STATUS code", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4448 {&hf_mq_status_value, {"Value.", "mq.status.value", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "STATUS value", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4449
4450 {&hf_mq_od_StructID, {"StructID.........", "mq.od.structid", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4451 {&hf_mq_od_version, {"version..........", "mq.od.version", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "OD version", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4452 {&hf_mq_od_objecttype, {"ObjType..........", "mq.od.objtype", FT_UINT32, BASE_DEC | BASE_EXT_STRING0x00000200, &mq_MQOT_xvals, 0x0, "OD object type", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4453 {&hf_mq_od_objectname, {"ObjName..........", "mq.od.objname", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "OD object name", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4454 {&hf_mq_od_objqmgrname, {"ObjQMgr..........", "mq.od.objqmgrname", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "OD object queue manager name", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4455 {&hf_mq_od_dynqname, {"DynQName.........", "mq.od.dynqname", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "OD dynamic queue name", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4456 {&hf_mq_od_altuserid, {"AltUserID........", "mq.od.altuserid", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "OD alternate userid", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4457 {&hf_mq_od_recspresent, {"NbrRecord........", "mq.od.nbrrec", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "OD number of records", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4458 {&hf_mq_od_knowndstcnt, {"Known Dest Count.", "mq.od.kdestcount", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "OD known destination count", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4459 {&hf_mq_od_unknowdstcnt, {"Unknown Dest Cnt.", "mq.od.udestcount", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "OD unknown destination count", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4460 {&hf_mq_od_invaldstcnt, {"Invalid Dest Cnt.", "mq.od.idestcount", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "OD invalid destination count", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4461 {&hf_mq_od_objrecofs, {"Offset of 1st OR.", "mq.od.offsetor", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "OD offset of first OR", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4462 {&hf_mq_od_resprecofs, {"Offset of 1st RR.", "mq.od.offsetrr", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "OD offset of first RR", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4463 {&hf_mq_od_objrecptr, {"Addr of 1st OR.", "mq.od.addror", FT_UINT32, BASE_HEX, NULL((void*)0), 0x0, "OD address of first OR", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4464 {&hf_mq_od_resprecptr, {"Addr of 1st RR.", "mq.od.addrrr", FT_UINT32, BASE_HEX, NULL((void*)0), 0x0, "OD address of first RR", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4465 {&hf_mq_od_altsecurid, {"Alt security id..", "mq.od.altsecid", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "OD alternate security id", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4466 {&hf_mq_od_resolvqname, {"Resolved Q Name..", "mq.od.resolvq", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "OD resolved queue name", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4467 {&hf_mq_od_resolvqmgrnm, {"Resolved QMgrName", "mq.od.resolvqmgr", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "OD resolved queue manager name", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4468 {&hf_mq_od_resolvobjtyp, {"Resolv Obj Type..", "mq.od.resolvedobjtype", FT_UINT32, BASE_DEC | BASE_EXT_STRING0x00000200, &mq_MQOT_xvals, 0x0, "OD resolved object type", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4469
4470 {&hf_mq_or_objname, {"Object name...", "mq.or.objname", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "OR object name", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4471 {&hf_mq_or_objqmgrname, {"Object QMgr Nm", "mq.or.objqmgrname", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "OR object queue manager name", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4472
4473 {&hf_mq_rr_compcode, {"Comp Code", "mq.rr.completioncode", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "OR completion code", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4474 {&hf_mq_rr_reascode, {"Reas Code", "mq.rr.reasoncode", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "OR reason code", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4475
4476 {&hf_mq_pmr_msgid, {"Message Id", "mq.pmr.msgid", FT_BYTES, BASE_NONE, NULL((void*)0), 0x0, "PMR Message Id", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4477 {&hf_mq_pmr_correlid, {"Correlation Id", "mq.pmr.correlid", FT_BYTES, BASE_NONE, NULL((void*)0), 0x0, "PMR Correlation Id", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4478 {&hf_mq_pmr_groupid, {"GroupId", "mq.pmr.groupid", FT_BYTES, BASE_NONE, NULL((void*)0), 0x0, "PMR GroupId", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4479 {&hf_mq_pmr_feedback, {"Feedback", "mq.pmr.feedback", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "PMR Feedback", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4480 {&hf_mq_pmr_acttoken, {"Accounting token", "mq.pmr.acttoken", FT_BYTES, BASE_NONE, NULL((void*)0), 0x0, "PMR accounting token", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4481
4482 {&hf_mq_md_StructID, {"StructID.", "mq.md.structid", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4483 {&hf_mq_md_version, {"Version..", "mq.md.version", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "MD version", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4484 {&hf_mq_md_report, {"Report...", "mq.md.report", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "MD report", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4485 {&hf_mq_md_msgtype, {"Msg Type.", "mq.md.msgtype", FT_UINT32, BASE_DEC, VALS(mq_MQMT_vals)((0 ? (const struct _value_string*)0 : ((mq_MQMT_vals)))), 0x0, "MD message type", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4486 {&hf_mq_md_expiry, {"Expiry .", "mq.md.expiry", FT_INT32, BASE_DEC, NULL((void*)0), 0x0, "MD expiry", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4487 {&hf_mq_md_feedback, {"Feedback.", "mq.md.feedback", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "MD feedback", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4488 {&hf_mq_md_encoding, {"Encoding.", "mq.md.encoding", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "MD encoding", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4489 {&hf_mq_md_ccsid, {"CCSID....", "mq.md.ccsid", FT_INT32, BASE_DEC | BASE_RANGE_STRING0x00000100, RVALS(mq_MQCCSI_rvals)((0 ? (const struct _range_string*)0 : ((mq_MQCCSI_rvals)))), 0x0, "MD character set", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4490 {&hf_mq_md_format, {"Format...", "mq.md.format", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "MD format", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4491 {&hf_mq_md_priority, {"Priority.", "mq.md.priority", FT_INT32, BASE_DEC, NULL((void*)0), 0x0, "MD priority", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4492 {&hf_mq_md_persistence, {"Persist..", "mq.md.persistence", FT_UINT32, BASE_DEC, VALS(mq_MQPER_vals)((0 ? (const struct _value_string*)0 : ((mq_MQPER_vals)))), 0x0, "MD persistence", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4493 {&hf_mq_md_msgid, {"Msg ID...", "mq.md.msgid", FT_BYTES, BASE_NONE, NULL((void*)0), 0x0, "MD Message Id", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4494 {&hf_mq_md_correlid, {"CorrelID.", "mq.md.correlid", FT_BYTES, BASE_NONE, NULL((void*)0), 0x0, "MD Correlation Id", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4495 {&hf_mq_md_backoutcnt, {"BackoCnt.", "mq.md.backoutcnt", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "MD Backout count", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4496 {&hf_mq_md_replytoq, {"ReplyToQ.", "mq.md.replytoq", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "MD ReplyTo queue", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4497 {&hf_mq_md_replytoqmgr, {"RepToQMgr", "mq.md.replytoqmgr", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "MD ReplyTo queue manager", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4498 {&hf_mq_md_userid, {"UserId...", "mq.md.userid", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "MD UserId", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4499 {&hf_mq_md_acttoken, {"AccntTok.", "mq.md.acttoken", FT_BYTES, BASE_NONE, NULL((void*)0), 0x0, "MD accounting token", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4500 {&hf_mq_md_appliddata, {"AppIdData", "mq.md.appldata", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "MD Put applicationId data", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4501 {&hf_mq_md_putappltype, {"PutAppTyp", "mq.md.appltype", FT_INT32, BASE_DEC | BASE_EXT_STRING0x00000200, &mq_MQAT_xvals, 0x0, "MD Put application type", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4502 {&hf_mq_md_putapplname, {"PutAppNme", "mq.md.applname", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "MD Put application name", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4503 {&hf_mq_md_putdate, {"PutDatGMT", "mq.md.date", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "MD Put date", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4504 {&hf_mq_md_puttime, {"PutTimGMT", "mq.md.time", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "MD Put time", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4505 {&hf_mq_md_apporigdata, {"AppOriDat", "mq.md.origdata", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "MD Application original data", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4506 {&hf_mq_md_groupid, {"GroupId..", "mq.md.groupid", FT_BYTES, BASE_NONE, NULL((void*)0), 0x0, "MD GroupId", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4507 {&hf_mq_md_msgseqnumber, {"MsgSeqNum", "mq.md.msgseqnumber", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "MD Message sequence number", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4508 {&hf_mq_md_offset, {"Offset...", "mq.md.offset", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "MD Offset", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4509 {&hf_mq_md_msgflags, {"Msg flags", "mq.md.msgflags", FT_UINT32, BASE_HEX, NULL((void*)0), 0x0, "MD Message flags", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4510 {&hf_mq_md_origlen, {"Orig len.", "mq.md.origlength", FT_INT32, BASE_DEC, NULL((void*)0), 0x0, "MD Original length", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4511
4512 {&hf_mq_dlh_StructID, {"StructID.", "mq.dlh.structid", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4513 {&hf_mq_dlh_version, {"Version..", "mq.dlh.version", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "DLH version", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4514 {&hf_mq_dlh_reason, {"Reason...", "mq.dlh.reason", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "DLH reason", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4515 {&hf_mq_dlh_destq, {"Dest Q...", "mq.dlh.destq", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "DLH destination queue", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4516 {&hf_mq_dlh_destqmgr, {"DestQMgr.", "mq.dlh.destqmgr", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "DLH destination queue manager", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4517 {&hf_mq_dlh_encoding, {"Encoding.", "mq.dlh.encoding", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "DLH encoding", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4518 {&hf_mq_dlh_ccsid, {"CCSID....", "mq.dlh.ccsid", FT_INT32, BASE_DEC | BASE_RANGE_STRING0x00000100, RVALS(mq_MQCCSI_rvals)((0 ? (const struct _range_string*)0 : ((mq_MQCCSI_rvals)))), 0x0, "DLH character set", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4519 {&hf_mq_dlh_format, {"Format...", "mq.dlh.format", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "DLH format", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4520 {&hf_mq_dlh_putappltype, {"PutAppTyp", "mq.dlh.putappltype", FT_INT32, BASE_DEC | BASE_EXT_STRING0x00000200, &mq_MQAT_xvals, 0x0, "DLH put application type", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4521 {&hf_mq_dlh_putapplname, {"PutAppNme", "mq.dlh.putapplname", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "DLH put application name", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4522 {&hf_mq_dlh_putdate, {"PutDatGMT", "mq.dlh.putdate", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "DLH put date", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4523 {&hf_mq_dlh_puttime, {"PutTimGMT", "mq.dlh.puttime", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "DLH put time", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4524
4525 {&hf_mq_gmo_StructID, {"StructID.", "mq.gmo.structid", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4526 {&hf_mq_gmo_version, {"Version..", "mq.gmo.version", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "GMO version", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4527 {&hf_mq_gmo_options, {"GetMsgOpt", "mq.gmo.getmsgopt", FT_UINT32, BASE_HEX, NULL((void*)0), 0x0, "GMO Get Message Options", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4528
4529 {&hf_mq_gmo_options_PROPERTIES_COMPATIBILITY, {"PROPERTIES_COMPATIBILITY", "mq.gmo.options.PROPERTIES_COMPATIBILITY", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQGMO_PROPERTIES_COMPATIBILITY0x10000000, "GMO options PROPERTIES_COMPATIBILITY", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4530 {&hf_mq_gmo_options_PROPERTIES_IN_HANDLE, {"PROPERTIES_IN_HANDLE", "mq.gmo.options.PROPERTIES_IN_HANDLE", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQGMO_PROPERTIES_IN_HANDLE0x08000000, "GMO options PROPERTIES_IN_HANDLE", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4531 {&hf_mq_gmo_options_NO_PROPERTIES, {"NO_PROPERTIES", "mq.gmo.options.NO_PROPERTIES", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQGMO_NO_PROPERTIES0x04000000, "GMO options NO_PROPERTIES", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4532 {&hf_mq_gmo_options_PROPERTIES_FORCE_MQRFH2, {"PROPERTIES_FORCE_MQRFH2", "mq.gmo.options.PROPERTIES_FORCE_MQRFH2", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQGMO_PROPERTIES_FORCE_MQRFH20x02000000, "GMO options PROPERTIES_FORCE_MQRFH2", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4533 {&hf_mq_gmo_options_UNMARKED_BROWSE_MSG, {"UNMARKED_BROWSE_MSG", "mq.gmo.options.UNMARKED_BROWSE_MSG", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQGMO_UNMARKED_BROWSE_MSG0x01000000, "GMO options UNMARKED_BROWSE_MSG", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4534 {&hf_mq_gmo_options_UNMARK_BROWSE_HANDLE, {"UNMARK_BROWSE_HANDLE", "mq.gmo.options.UNMARK_BROWSE_HANDLE", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQGMO_UNMARK_BROWSE_HANDLE0x00800000, "GMO options UNMARK_BROWSE_HANDLE", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4535 {&hf_mq_gmo_options_UNMARK_BROWSE_CO_OP, {"UNMARK_BROWSE_CO_OP", "mq.gmo.options.UNMARK_BROWSE_CO_OP", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQGMO_UNMARK_BROWSE_CO_OP0x00400000, "GMO options UNMARK_BROWSE_CO_OP", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4536 {&hf_mq_gmo_options_MARK_BROWSE_CO_OP, {"MARK_BROWSE_CO_OP", "mq.gmo.options.MARK_BROWSE_CO_OP", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQGMO_MARK_BROWSE_CO_OP0x00200000, "GMO options MARK_BROWSE_CO_OP", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4537 {&hf_mq_gmo_options_MARK_BROWSE_HANDLE, {"MARK_BROWSE_HANDLE", "mq.gmo.options.MARK_BROWSE_HANDLE", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQGMO_MARK_BROWSE_HANDLE0x00100000, "GMO options MARK_BROWSE_HANDLE", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4538 {&hf_mq_gmo_options_ALL_SEGMENTS_AVAILABLE, {"ALL_SEGMENTS_AVAILABLE", "mq.gmo.options.ALL_SEGMENTS_AVAILABLE", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQGMO_ALL_SEGMENTS_AVAILABLE0x00040000, "GMO options ALL_SEGMENTS_AVAILABLE", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4539 {&hf_mq_gmo_options_ALL_MSGS_AVAILABLE, {"ALL_MSGS_AVAILABLE", "mq.gmo.options.ALL_MSGS_AVAILABLE", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQGMO_ALL_MSGS_AVAILABLE0x00020000, "GMO options ALL_MSGS_AVAILABLE", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4540 {&hf_mq_gmo_options_COMPLETE_MSG, {"COMPLETE_MSG", "mq.gmo.options.COMPLETE_MSG", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQGMO_COMPLETE_MSG0x00010000, "GMO options COMPLETE_MSG", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4541 {&hf_mq_gmo_options_LOGICAL_ORDER, {"LOGICAL_ORDER", "mq.gmo.options.LOGICAL_ORDER", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQGMO_LOGICAL_ORDER0x00008000, "GMO options LOGICAL_ORDER", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4542 {&hf_mq_gmo_options_CONVERT, {"CONVERT", "mq.gmo.options.CONVERT", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQGMO_CONVERT0x00004000, "GMO options CONVERT", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4543 {&hf_mq_gmo_options_FAIL_IF_QUIESCING, {"FAIL_IF_QUIESCING", "mq.gmo.options.FAIL_IF_QUIESCING", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQGMO_FAIL_IF_QUIESCING0x00002000, "GMO options FAIL_IF_QUIESCING", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4544 {&hf_mq_gmo_options_SYNCPOINT_IF_PERSISTENT, {"SYNCPOINT_IF_PERSISTENT", "mq.gmo.options.SYNCPOINT_IF_PERSISTENT", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQGMO_SYNCPOINT_IF_PERSISTENT0x00001000, "GMO options SYNCPOINT_IF_PERSISTENT", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4545 {&hf_mq_gmo_options_BROWSE_MSG_UNDER_CURSOR, {"BROWSE_MSG_UNDER_CURSOR", "mq.gmo.options.BROWSE_MSG_UNDER_CURSOR", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQGMO_BROWSE_MSG_UNDER_CURSOR0x00000800, "GMO options BROWSE_MSG_UNDER_CURSOR", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4546 {&hf_mq_gmo_options_UNLOCK, {"UNLOCK", "mq.gmo.options.UNLOCK", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQGMO_UNLOCK0x00000400, "GMO options UNLOCK", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4547 {&hf_mq_gmo_options_LOCK, {"LOCK", "mq.gmo.options.LOCK", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQGMO_LOCK0x00000200, "GMO options LOCK", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4548 {&hf_mq_gmo_options_MSG_UNDER_CURSOR, {"MSG_UNDER_CURSOR", "mq.gmo.options.MSG_UNDER_CURSOR", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQGMO_MSG_UNDER_CURSOR0x00000100, "GMO options MSG_UNDER_CURSOR", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4549 {&hf_mq_gmo_options_MARK_SKIP_BACKOUT, {"MARK_SKIP_BACKOUT", "mq.gmo.options.MARK_SKIP_BACKOUT", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQGMO_MARK_SKIP_BACKOUT0x00000080, "GMO options MARK_SKIP_BACKOUT", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4550 {&hf_mq_gmo_options_ACCEPT_TRUNCATED_MSG, {"ACCEPT_TRUNCATED_MSG", "mq.gmo.options.ACCEPT_TRUNCATED_MSG", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQGMO_ACCEPT_TRUNCATED_MSG0x00000040, "GMO options ACCEPT_TRUNCATED_MSG", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4551 {&hf_mq_gmo_options_BROWSE_NEXT, {"BROWSE_NEXT", "mq.gmo.options.BROWSE_NEXT", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQGMO_BROWSE_NEXT0x00000020, "GMO options BROWSE_NEXT", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4552 {&hf_mq_gmo_options_BROWSE_FIRST, {"BROWSE_FIRST", "mq.gmo.options.BROWSE_FIRST", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQGMO_BROWSE_FIRST0x00000010, "GMO options BROWSE_FIRST", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4553 {&hf_mq_gmo_options_SET_SIGNAL, {"SET_SIGNAL", "mq.gmo.options.SET_SIGNAL", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQGMO_SET_SIGNAL0x00000008, "GMO options SET_SIGNAL", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4554 {&hf_mq_gmo_options_NO_SYNCPOINT, {"NO_SYNCPOINT", "mq.gmo.options.NO_SYNCPOINT", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQGMO_NO_SYNCPOINT0x00000004, "GMO options NO_SYNCPOINT", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4555 {&hf_mq_gmo_options_SYNCPOINT, {"SYNCPOINT", "mq.gmo.options.SYNCPOINT", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQGMO_SYNCPOINT0x00000002, "GMO options SYNCPOINT", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4556 {&hf_mq_gmo_options_WAIT, {"WAIT", "mq.gmo.options.WAIT", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQGMO_WAIT0x00000001, "GMO options WAIT", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4557
4558 {&hf_mq_gmo_waitinterval, {"WaitIntv.", "mq.gmo.waitint", FT_INT32, BASE_DEC, NULL((void*)0), 0x0, "GMO wait interval", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4559 {&hf_mq_gmo_signal1, {"Signal 1.", "mq.gmo.signal1", FT_UINT32, BASE_HEX, NULL((void*)0), 0x0, "GMO signal 1", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4560 {&hf_mq_gmo_signal2, {"Signal 2.", "mq.gmo.signal2", FT_UINT32, BASE_HEX, NULL((void*)0), 0x0, "GMO signal 2", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4561 {&hf_mq_gmo_resolvqname, {"ResQName.", "mq.gmo.resolvq", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "GMO resolved queue name", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4562 {&hf_mq_gmo_matchoptions, {"MatchOpt.", "mq.gmo.matchopt", FT_UINT32, BASE_HEX, NULL((void*)0), 0x0, "GMO match options", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4563
4564 {&hf_mq_gmo_matchoptions_MATCH_MSG_TOKEN, {"MATCH_MSG_TOKEN", "mq.gmo.matchoptions.MATCH_MSG_TOKEN", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQMO_MATCH_MSG_TOKEN0x00000020, "GMO matchoptions MATCH_MSG_TOKEN", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4565 {&hf_mq_gmo_matchoptions_MATCH_OFFSET, {"MATCH_OFFSET", "mq.gmo.matchoptions.MATCH_OFFSET", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQMO_MATCH_OFFSET0x00000010, "GMO matchoptions MATCH_OFFSET", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4566 {&hf_mq_gmo_matchoptions_MATCH_MSG_SEQ_NUMBER, {"MATCH_MSG_SEQ_NUMBER", "mq.gmo.matchoptions.MATCH_MSG_SEQ_NUMBER", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQMO_MATCH_MSG_SEQ_NUMBER0x00000008, "GMO matchoptions MATCH_MSG_SEQ_NUMBER", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4567 {&hf_mq_gmo_matchoptions_MATCH_GROUP_ID, {"MATCH_GROUP_ID", "mq.gmo.matchoptions.MATCH_GROUP_ID", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQMO_MATCH_GROUP_ID0x00000004, "GMO matchoptions MATCH_GROUP_ID", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4568 {&hf_mq_gmo_matchoptions_MATCH_CORREL_ID, {"MATCH_CORREL_ID", "mq.gmo.matchoptions.MATCH_CORREL_ID", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQMO_MATCH_CORREL_ID0x00000002, "GMO matchoptions MATCH_CORREL_ID", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4569 {&hf_mq_gmo_matchoptions_MATCH_MSG_ID, {"MATCH_MSG_ID", "mq.gmo.matchoptions.MATCH_MSG_ID", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQMO_MATCH_MSG_ID0x00000001, "GMO matchoptions MATCH_MSG_ID", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4570
4571 {&hf_mq_gmo_groupstatus, {"GrpStatus", "mq.gmo.grpstat", FT_UINT8, BASE_HEX, NULL((void*)0), 0x0, "GMO group status", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4572 {&hf_mq_gmo_segmstatus, {"SegStatus", "mq.gmo.sgmtstat", FT_UINT8, BASE_HEX, NULL((void*)0), 0x0, "GMO segment status", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4573 {&hf_mq_gmo_segmentation, {"Segmentat", "mq.gmo.segmentation", FT_UINT8, BASE_HEX, NULL((void*)0), 0x0, "GMO segmentation", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4574 {&hf_mq_gmo_reserved, {"Reserved.", "mq.gmo.reserved", FT_UINT8, BASE_HEX, NULL((void*)0), 0x0, "GMO reserved", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4575 {&hf_mq_gmo_msgtoken, {"MsgToken.", "mq.gmo.msgtoken", FT_BYTES, BASE_NONE, NULL((void*)0), 0x0, "GMO message token", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4576 {&hf_mq_gmo_returnedlen, {"RtnLength", "mq.gmo.retlen", FT_INT32, BASE_DEC, NULL((void*)0), 0x0, "GMO returned length", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4577 {&hf_mq_gmo_reserved2, {"Reserved2", "mq.gmo.reserved2", FT_INT32, BASE_DEC, NULL((void*)0), 0x0, "GMO reserved2", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4578 {&hf_mq_gmo_msghandle, {"MsgHandle", "mq.gmo.msghandle", FT_UINT64, BASE_DEC | BASE_HEX, NULL((void*)0), 0x0, "GMO Message Handle", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4579
4580 {&hf_mq_lpoo_StructID, {"StructID......", "mq.lpoo.structid", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4581 {&hf_mq_lpoo_version, {"version.......", "mq.lpoo.version", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "LPOO version", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4582 {&hf_mq_lpoo_lpiopts, {"lpiopts.......", "mq.lpoo.lpioopts", FT_UINT32, BASE_HEX, NULL((void*)0), 0x0, "LPOO Lpi Options", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4583
4584 {&hf_mq_lpoo_lpiopts_SAVE_USER_CTXT, {"SAVE_USER_CTXT", "mq.lpoo.opts.SAVE_USER_CTXT", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_LPOO_SAVE_USER_CTXT0x00000004, "LPOO options SAVE_USER_CTXT", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4585 {&hf_mq_lpoo_lpiopts_SAVE_ORIGIN_CTXT, {"SAVE_ORIGIN_CTXT", "mq.lpoo.opts.SAVE_ORIGIN_CTXT", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_LPOO_SAVE_ORIGIN_CTXT0x00000002, "LPOO options SAVE_ORIGIN_CTXT", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4586 {&hf_mq_lpoo_lpiopts_SAVE_IDENTITY_CTXT, {"SAVE_IDENTITY_CTXT", "mq.lpoo.opts.SAVE_IDENTITY_CTXT", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_LPOO_SAVE_IDENTITY_CTXT0x00000001, "LPOO options SAVE_IDENTITY_CTXT", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4587
4588 {&hf_mq_lpoo_defpersist, {"DefPersistence", "mq.lpoo.defpersist", FT_INT32, BASE_DEC, VALS(mq_MQPER_vals)((0 ? (const struct _value_string*)0 : ((mq_MQPER_vals)))), 0x0, "LPOO Default Persistence", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4589 {&hf_mq_lpoo_defputresptype, {"DefPutRespType", "mq.lpoo.defputresptype", FT_INT32, BASE_DEC, VALS(mq_MQPRT_vals)((0 ? (const struct _value_string*)0 : ((mq_MQPRT_vals)))), 0x0, "LPOO Default Put Response Type", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4590 {&hf_mq_lpoo_defreadahead, {"DefReadAHead..", "mq.lpoo.defreadahead", FT_INT32, BASE_DEC, VALS(mq_MQREADA_vals)((0 ? (const struct _value_string*)0 : ((mq_MQREADA_vals)))), 0x0, "LPOO Default Read AHead", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4591 {&hf_mq_lpoo_propertyctl, {"PropertyCtl...", "mq.lpoo.propertyctl", FT_INT32, BASE_DEC, NULL((void*)0), 0x0, "LPOO Property Control", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4592 {&hf_mq_lpoo_qprotect, {"qprotect......", "mq.lpoo.qprotect", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "LPOO queue protection", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4593 {&hf_mq_lpoo_qprotect_val1, {"qprotect_val1.", "mq.lpoo.qprotect.val1", FT_INT32, BASE_DEC, NULL((void*)0), 0x0, "LPOO queue protection val1", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4594 {&hf_mq_lpoo_qprotect_val2, {"qprotect_val2.", "mq.lpoo.qprotect.val2", FT_INT32, BASE_DEC, NULL((void*)0), 0x0, "LPOO queue protection val2", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4595
4596 {&hf_mq_pmo_StructID, {"StructID...", "mq.pmo.structid", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, NULL((void*)0), HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4597 {&hf_mq_pmo_version, {"Version....", "mq.pmo.version", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "PMO version", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4598 {&hf_mq_pmo_options, {"Options....", "mq.pmo.options", FT_UINT32, BASE_HEX, NULL((void*)0), 0x0, "PMO options", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4599 {&hf_mq_pmo_options_NOT_OWN_SUBS, {"NOT_OWN_SUBS", "mq.pmo.options.NOT_OWN_SUBS", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQPMO_NOT_OWN_SUBS0x10000000, "PMO options NOT_OWN_SUBS", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4600 {&hf_mq_pmo_options_SUPPRESS_REPLYTO, {"SUPPRESS_REPLYTO", "mq.pmo.options.SUPPRESS_REPLYTO", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQPMO_SUPPRESS_REPLYTO0x08000000, "PMO options SUPPRESS_REPLYTO", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4601 {&hf_mq_pmo_options_SCOPE_QMGR, {"SCOPE_QMGR", "mq.pmo.options.SCOPE_QMGR", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQPMO_SCOPE_QMGR0x04000000, "PMO options SCOPE_QMGR", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4602 {&hf_mq_pmo_options_MD_FOR_OUTPUT_ONLY, {"MD_FOR_OUTPUT_ONLY", "mq.pmo.options.MD_FOR_OUTPUT_ONLY", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQPMO_MD_FOR_OUTPUT_ONLY0x00800000, "PMO options MD_FOR_OUTPUT_ONLY", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4603 {&hf_mq_pmo_options_RETAIN, {"RETAIN", "mq.pmo.options.RETAIN", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQPMO_RETAIN0x00200000, "PMO options RETAIN", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4604 {&hf_mq_pmo_options_WARN_IF_NO_SUBS_MATCHED, {"WARN_IF_NO_SUBS_MATCHED", "mq.pmo.options.WARN_IF_NO_SUBS_MATCHED", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQPMO_WARN_IF_NO_SUBS_MATCHED0x00080000, "PMO options WARN_IF_NO_SUBS_MATCHED", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4605 {&hf_mq_pmo_options_RESOLVE_LOCAL_Q, {"RESOLVE_LOCAL_Q", "mq.pmo.options.RESOLVE_LOCAL_Q", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQPMO_RESOLVE_LOCAL_Q0x00040000, "PMO options RESOLVE_LOCAL_Q", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4606 {&hf_mq_pmo_options_SYNC_RESPONSE, {"SYNC_RESPONSE", "mq.pmo.options.SYNC_RESPONSE", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQPMO_SYNC_RESPONSE0x00020000, "PMO options SYNC_RESPONSE", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4607 {&hf_mq_pmo_options_ASYNC_RESPONSE, {"ASYNC_RESPONSE", "mq.pmo.options.ASYNC_RESPONSE", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQPMO_ASYNC_RESPONSE0x00010000, "PMO options ASYNC_RESPONSE", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4608 {&hf_mq_pmo_options_LOGICAL_ORDER, {"LOGICAL_ORDER", "mq.pmo.options.LOGICAL_ORDER", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQPMO_LOGICAL_ORDER0x00008000, "PMO options LOGICAL_ORDER", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4609 {&hf_mq_pmo_options_NO_CONTEXT, {"NO_CONTEXT", "mq.pmo.options.NO_CONTEXT", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQPMO_NO_CONTEXT0x00004000, "PMO options NO_CONTEXT", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4610 {&hf_mq_pmo_options_FAIL_IF_QUIESCING, {"FAIL_IF_QUIESCING", "mq.pmo.options.FAIL_IF_QUIESCING", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQPMO_FAIL_IF_QUIESCING0x00002000, "PMO options FAIL_IF_QUIESCING", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4611 {&hf_mq_pmo_options_ALTERNATE_USER_AUTHORITY, {"ALTERNATE_USER_AUTHORITY", "mq.pmo.options.ALTERNATE_USER_AUTHORITY", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQPMO_ALTERNATE_USER_AUTHORITY0x00001000, "PMO options ALTERNATE_USER_AUTHORITY", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4612 {&hf_mq_pmo_options_SET_ALL_CONTEXT, {"SET_ALL_CONTEXT", "mq.pmo.options.SET_ALL_CONTEXT", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQPMO_SET_ALL_CONTEXT0x00000800, "PMO options SET_ALL_CONTEXT", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4613 {&hf_mq_pmo_options_SET_IDENTITY_CONTEXT, {"SET_IDENTITY_CONTEXT", "mq.pmo.options.SET_IDENTITY_CONTEXT", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQPMO_SET_IDENTITY_CONTEXT0x00000400, "PMO options SET_IDENTITY_CONTEXT", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4614 {&hf_mq_pmo_options_PASS_ALL_CONTEXT, {"PASS_ALL_CONTEXT", "mq.pmo.options.PASS_ALL_CONTEXT", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQPMO_PASS_ALL_CONTEXT0x00000200, "PMO options PASS_ALL_CONTEXT", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4615 {&hf_mq_pmo_options_PASS_IDENTITY_CONTEXT, {"PASS_IDENTITY_CONTEXT", "mq.pmo.options.PASS_IDENTITY_CONTEXT", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQPMO_PASS_IDENTITY_CONTEXT0x00000100, "PMO options PASS_IDENTITY_CONTEXT", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4616 {&hf_mq_pmo_options_NEW_CORREL_ID, {"NEW_CORREL_ID", "mq.pmo.options.NEW_CORREL_ID", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQPMO_NEW_CORREL_ID0x00000080, "PMO options NEW_CORREL_ID", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4617 {&hf_mq_pmo_options_NEW_MSG_ID, {"NEW_MSG_ID", "mq.pmo.options.NEW_MSG_ID", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQPMO_NEW_MSG_ID0x00000040, "PMO options NEW_MSG_ID", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4618 {&hf_mq_pmo_options_DEFAULT_CONTEXT, {"DEFAULT_CONTEXT", "mq.pmo.options.DEFAULT_CONTEXT", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQPMO_DEFAULT_CONTEXT0x00000020, "PMO options DEFAULT_CONTEXT", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4619 {&hf_mq_pmo_options_NO_SYNCPOINT, {"NO_SYNCPOINT", "mq.pmo.options.NO_SYNCPOINT", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQPMO_NO_SYNCPOINT0x00000004, "PMO options NO_SYNCPOINT", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4620 {&hf_mq_pmo_options_SYNCPOINT, {"SYNCPOINT", "mq.pmo.options.SYNCPOINT", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQPMO_SYNCPOINT0x00000002, "PMO options SYNCPOINT", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4621
4622 {&hf_mq_pmo_timeout, {"Timeout....", "mq.pmo.timeout", FT_INT32, BASE_DEC, NULL((void*)0), 0x0, "PMO time out", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4623 {&hf_mq_pmo_context, {"Context....", "mq.pmo.context", FT_UINT32, BASE_HEX, NULL((void*)0), 0x0, "PMO context", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4624 {&hf_mq_pmo_knowndstcnt, {"KnDstCnt...", "mq.pmo.kdstcount", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "PMO known destination count", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4625 {&hf_mq_pmo_unkndstcnt, {"UkDstCnt...", "mq.pmo.udestcount", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "PMO unknown destination count", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4626 {&hf_mq_pmo_invaldstcnt, {"InDstCnt...", "mq.pmo.idestcount", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "PMO invalid destination count", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4627 {&hf_mq_pmo_resolvqname, {"ResQName...", "mq.pmo.resolvq", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "PMO resolved queue name", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4628 {&hf_mq_pmo_resolvqmgr, {"ResQMgr....", "mq.pmo.resolvqmgr", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "PMO resolved queue manager name", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4629 {&hf_mq_pmo_recspresent, {"NumRecs....", "mq.pmo.nbrrec", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "PMO number of records", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4630 {&hf_mq_pmo_putmsgrecfld, {"PMR Flag...", "mq.pmo.flagspmr", FT_UINT32, BASE_HEX, NULL((void*)0), 0x0, "PMO flags PMR fields", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4631 {&hf_mq_pmo_putmsgrecofs, {"Ofs1stPMR..", "mq.pmo.offsetpmr", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "PMO offset of first PMR", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4632 {&hf_mq_pmo_resprecofs, {"Off1stRR...", "mq.pmo.offsetrr", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "PMO offset of first RR", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4633 {&hf_mq_pmo_putmsgrecptr, {"Adr1stPMR..", "mq.pmo.addrrec", FT_UINT32, BASE_HEX, NULL((void*)0), 0x0, "PMO address of first record", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4634 {&hf_mq_pmo_resprecptr, {"Adr1stRR...", "mq.pmo.addrres", FT_UINT32, BASE_HEX, NULL((void*)0), 0x0, "PMO address of first response record", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4635 {&hf_mq_pmo_originalmsghandle, {"OrigMsgHdl.", "mq.pmo.originalmsghandle", FT_UINT64, BASE_HEX, NULL((void*)0), 0x0, "PMO original message handle", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4636 {&hf_mq_pmo_newmsghandle, {"NewMsgHdl..", "mq.pmo.newmsghandle", FT_UINT64, BASE_HEX, NULL((void*)0), 0x0, "PMO new message handle", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4637 {&hf_mq_pmo_action, {"Action.....", "mq.pmo.action", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "PMO action", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4638 {&hf_mq_pmo_publevel, {"PubLevel...", "mq.pmo.publevel", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "PMO pub level", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4639
4640 {&hf_mq_xa_length, {"Length.......", "mq.xa.length", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "XA Length", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4641 {&hf_mq_xa_returnvalue, {"Return value.", "mq.xa.returnvalue", FT_INT32, BASE_DEC, VALS(mq_xaer_vals)((0 ? (const struct _value_string*)0 : ((mq_xaer_vals)))), 0x0, "XA Return Value", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4642 {&hf_mq_xa_tmflags, {"TransMgrFlags", "mq.xa.tmflags", FT_UINT32, BASE_HEX, NULL((void*)0), 0x0, "XA Transaction Manager Flags", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4643 {&hf_mq_xa_rmid, {"ResourceMgrID", "mq.xa.rmid", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "XA Resource Manager ID", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4644 {&hf_mq_xa_count, {"Number of Xid", "mq.xa.nbxid", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "XA Number of Xid", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4645 {&hf_mq_xa_tmflags_join, {"JOIN", "mq.xa.tmflags.join", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_XA_TMJOIN0x00200000, "XA TM Flags JOIN", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4646 {&hf_mq_xa_tmflags_endrscan, {"ENDRSCAN", "mq.xa.tmflags.endrscan", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_XA_TMENDRSCAN0x00800000, "XA TM Flags ENDRSCAN", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4647 {&hf_mq_xa_tmflags_startrscan, {"STARTRSCAN", "mq.xa.tmflags.startrscan", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_XA_TMSTARTRSCAN0x01000000, "XA TM Flags STARTRSCAN", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4648 {&hf_mq_xa_tmflags_suspend, {"SUSPEND", "mq.xa.tmflags.suspend", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_XA_TMSUSPEND0x02000000, "XA TM Flags SUSPEND", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4649 {&hf_mq_xa_tmflags_success, {"SUCCESS", "mq.xa.tmflags.success", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_XA_TMSUCCESS0x04000000, "XA TM Flags SUCCESS", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4650 {&hf_mq_xa_tmflags_resume, {"RESUME", "mq.xa.tmflags.resume", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_XA_TMRESUME0x08000000, "XA TM Flags RESUME", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4651 {&hf_mq_xa_tmflags_fail, {"FAIL", "mq.xa.tmflags.fail", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_XA_TMFAIL0x20000000, "XA TM Flags FAIL", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4652 {&hf_mq_xa_tmflags_onephase, {"ONEPHASE", "mq.xa.tmflags.onephase", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_XA_TMONEPHASE0x40000000, "XA TM Flags ONEPHASE", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4653
4654 {&hf_mq_xa_xid_formatid, {"Format ID....", "mq.xa.xid.formatid", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "XA Xid Format ID", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4655 {&hf_mq_xa_xid_glbxid_len, {"GlbTransIDLen", "mq.xa.xid.gxidl", FT_UINT8, BASE_DEC, NULL((void*)0), 0x0, "XA Xid Global TransactionId Length", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4656 {&hf_mq_xa_xid_brq_length, {"BranchQualLen", "mq.xa.xid.bql", FT_UINT8, BASE_DEC, NULL((void*)0), 0x0, "XA Xid Branch Qualifier Length", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4657 {&hf_mq_xa_xid_globalxid, {"GlbTransactID", "mq.xa.xid.gxid", FT_BYTES, BASE_NONE, NULL((void*)0), 0x0, "XA Xid Global TransactionId", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4658 {&hf_mq_xa_xid_brq, {"BranchQualif.", "mq.xa.xid.bq", FT_BYTES, BASE_NONE, NULL((void*)0), 0x0, "XA Xid Branch Qualifier", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4659 {&hf_mq_xa_xainfo_length, {"Length.......", "mq.xa.xainfo.length", FT_UINT8, BASE_DEC, NULL((void*)0), 0x0, "XA XA_info Length", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4660 {&hf_mq_xa_xainfo_value, {"Value........", "mq.xa.xainfo.value", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "XA XA_info Value", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4661
4662 {&hf_mq_charv_vsptr, {"VLStr Addr.", "mq.charv.vsptr", FT_UINT32, BASE_HEX, NULL((void*)0), 0x0, "VS Address", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4663 {&hf_mq_charv_vsoffset, {"VLStr Offs.", "mq.charv.vsoffset", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "VS Offset", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4664 {&hf_mq_charv_vsbufsize, {"VLStr BufSz", "mq.charv.vsbufsize", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "VS BufSize", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4665 {&hf_mq_charv_vslength, {"VLStr Len..", "mq.charv.vslength", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "VS Length", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4666 {&hf_mq_charv_vsccsid, {"VLStr Ccsid", "mq.charv.vsccsid", FT_INT32, BASE_DEC, NULL((void*)0), 0x0, "VS CCSID", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4667 {&hf_mq_charv_vsvalue, {"VLStr Value", "mq.charv.vsvalue", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "VS value", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4668
4669 {&hf_mq_head_StructID, {"Structid", "mq.head.structid", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "Header structid", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4670 {&hf_mq_head_version, {"version.", "mq.head.version", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "Header version", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4671 {&hf_mq_head_length, {"Length..", "mq.head.length", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "Header length", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4672 {&hf_mq_head_encoding, {"Encoding", "mq.head.encoding", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "Header encoding", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4673 {&hf_mq_head_ccsid, {"CCSID...", "mq.head.ccsid", FT_INT32, BASE_DEC | BASE_RANGE_STRING0x00000100, RVALS(mq_MQCCSI_rvals)((0 ? (const struct _range_string*)0 : ((mq_MQCCSI_rvals)))), 0x0, "Header character set", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4674 {&hf_mq_head_format, {"Format..", "mq.head.format", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "Header format", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4675
4676 {&hf_mq_head_flags, {"Flags...", "mq.head.flags", FT_UINT32, BASE_HEX, NULL((void*)0), 0x0, "Header flags", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4677 {&hf_mq_head_struct, {"Struct..", "mq.head.struct", FT_BYTES, BASE_NONE, NULL((void*)0), 0x0, "Header struct", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4678
4679 {&hf_mq_dh_flags_newmsgid, {"NEW_MSG_IDS", "mq.dh.flags.newmsgid", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQIIH_CM0_REQUEST_RESPONSE0x00000020, "MQ DH Flags MQDHF_NEW_MSG_IDS", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4680
4681 {&hf_mq_dh_putmsgrecfld, {"Flags PMR", "mq.dh.flagspmr", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "DH flags PMR", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4682 {&hf_mq_dh_recspresent, {"NumOfRecs", "mq.dh.nbrrec", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "DH number of records", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4683 {&hf_mq_dh_objrecofs, {"Ofs1stOR.", "mq.dh.offsetor", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "DH offset of first OR", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4684 {&hf_mq_dh_putmsgrecofs, {"Ofs1stPMR", "mq.dh.offsetpmr", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "DH offset of first PMR", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4685
4686 {&hf_mq_iih_flags_cmqrqstresp, {"CMO_RQST_RESP", "mq.iih.flags.cmqrqstresp", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQIIH_CM0_REQUEST_RESPONSE0x00000020, "MQ IIH Flags CM0_REQUEST_RESPONSE", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4687 {&hf_mq_iih_flags_ignorepurg, {"IGNORE_PURG..", "mq.iih.flags.ignorepurg", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQIIH_IGNORE_PURG0x00000010, "MQ IIH Flags IGNORE_PURG", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4688 {&hf_mq_iih_flags_replyfmtnone, {"REPL_FMT_NONE", "mq.iih.flags.replyfmtnone", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQIIH_REPLY_FORMAT_NONE0x00000008, "MQ IIH Flags REPLY_FORMAT_NONE", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4689 {&hf_mq_iih_flags_passexpir, {"PASS_EXPIR...", "mq.iih.flags.passexpir", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQIIH_PASS_EXPIRATION0x00000001, "MQ IIH Flags PASS_EXPIRATION", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4690
4691 {&hf_mq_iih_ltermoverride, {"LTerm Override", "mq.iih.ltermoverrid", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "Logical Terminal Override", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4692 {&hf_mq_iih_mfsmapname, {"MFS Map Name..", "mq.iih.mfsmapname", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "MFS Map Name", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4693 {&hf_mq_iih_replytofmt, {"ReplyToFormat.", "mq.iih.replytofmt", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "Reply To Format", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4694 {&hf_mq_iih_authenticator, {"Authenticator.", "mq.iih.authenticator", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "Password or Passcode", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4695 {&hf_mq_iih_transinstid, {"TransInstIdent", "mq.iih.transinstid", FT_BYTES, BASE_NONE, NULL((void*)0), 0x0, "Transaction Instance Identifier", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4696 {&hf_mq_iih_transstate, {"TransactState.", "mq.iih.transstate", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "Transaction State", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4697 {&hf_mq_iih_commimode, {"Commit Mode...", "mq.iih.commimode", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "Commit Mode", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4698 {&hf_mq_iih_securityscope, {"SecurityScope.", "mq.iih.securityscope", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "Security Scope", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4699 {&hf_mq_iih_reserved, {"Reserved......", "mq.iih.reserved", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "Reserved", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4700
4701 {&hf_mq_cih_flags_synconret, {"SYNC_ON_RETURN", "mq.iih.flags.synconret", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQCIH_SYNC_ON_RETURN0x00000004, "MQ CIH Flags IGNORE_PURG", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4702 {&hf_mq_cih_flags_replywonulls, {"REPLY_WO_NULLS", "mq.iih.flags.replywonulls", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQCIH_REPLY_WITHOUT_NULLS0x00000002, "MQ CIH Flags REPLY_WITHOUT_NULLS", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4703 {&hf_mq_cih_flags_passexpir, {"PASS_EXPIR....", "mq.iih.flags.passexpir", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQCIH_PASS_EXPIRATION0x00000001, "MQ CIH Flags PASS_EXPIRATION", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4704
4705 {&hf_mq_ims_ll, {"ll..", "mq.ims.ll", FT_UINT16, BASE_DEC, NULL((void*)0), 0x0, "IMS ll", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4706 {&hf_mq_ims_zz, {"zz..", "mq.ims.zz", FT_UINT16, BASE_DEC, NULL((void*)0), 0x0, "IMS zz", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4707 {&hf_mq_ims_trx, {"trx.", "mq.ims.trx", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "IMS Transaction", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4708 {&hf_mq_ims_data, {"data", "mq.ims.data", FT_BYTES, BASE_NONE, NULL((void*)0), 0x0, "Transaction Instance Identifier", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4709
4710 {&hf_mq_tm_StructID, {"Structid", "mq.tm.structid", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "TM structid", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4711 {&hf_mq_tm_version, {"version.", "mq.tm.version", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "TM version", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4712 {&hf_mq_tm_QName, {"QName...", "mq.tm.qname", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "TM Queue Name", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4713 {&hf_mq_tm_ProcessNme, {"ProcName", "mq.tm.procname", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "TM Process Name", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4714 {&hf_mq_tm_TriggerData, {"TrigData", "mq.tm.triggerdata", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "TM Trigger Data", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4715 {&hf_mq_tm_ApplType, {"ApplType", "mq.tm.appltype", FT_UINT32, BASE_DEC | BASE_EXT_STRING0x00000200, &mq_MQAT_xvals, 0x0, "TM Application Type", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4716 {&hf_mq_tm_ApplId, {"ApplId..", "mq.tm.applid", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "TM Application ID", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4717 {&hf_mq_tm_EnvData, {"EnvData.", "mq.tm.envdaqta", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "TM Environment Data", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4718 {&hf_mq_tm_UserData, {"UserData.", "mq.t2.userdata", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "TM User Data", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4719
4720 {&hf_mq_tmc2_StructID, {"Structid", "mq.tmc2.structid", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "TMC2 structid", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4721 {&hf_mq_tmc2_version, {"version.", "mq.tmc2.version", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "TMC2 version", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4722 {&hf_mq_tmc2_QName, {"QName...", "mq.tmc2.qname", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "TMC2 Queue Name", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4723 {&hf_mq_tmc2_ProcessNme, {"ProcName", "mq.tmc2.procname", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "TMC2 Process Name", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4724 {&hf_mq_tmc2_TriggerData, {"TrigData", "mq.tmc2.triggerdata", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "TMC2 Trigger Data", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4725 {&hf_mq_tmc2_ApplType, {"ApplType", "mq.tmc2.appltype", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "TMC2 Application Type", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4726 {&hf_mq_tmc2_ApplId, {"ApplId..", "mq.tmc2.applid", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "TMC2 Application ID", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4727 {&hf_mq_tmc2_EnvData, {"EnvData.", "mq.tmc2.envdaqta", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "TMC2 Environment Data", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4728 {&hf_mq_tmc2_UserData, {"UserData", "mq.tmc2.userdata", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "TMC2 User Data", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4729 {&hf_mq_tmc2_QMgrName, {"QMgrName", "mq.tmc2.qmgrname", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "TMC2 Queue Manager Name", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4730
4731 {&hf_mq_cih_returncode, {"ReturnCode...", "mq.cih.returncode", FT_UINT32, BASE_HEX_DEC, NULL((void*)0), 0x0, "Return Code", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4732 {&hf_mq_cih_compcode, {"ComplCode....", "mq.cih.compcode", FT_UINT32, BASE_HEX_DEC, NULL((void*)0), 0x0, "Completion Code", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4733 {&hf_mq_cih_reasoncode, {"ReasonCode...", "mq.cih.reasoncode", FT_UINT32, BASE_HEX_DEC, NULL((void*)0), 0x0, "Reason Code", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4734 {&hf_mq_cih_uowcontrols, {"UOWControls..", "mq.cih.uowcontrols", FT_UINT32, BASE_HEX_DEC, VALS(mq_MQCUOWC_vals)((0 ? (const struct _value_string*)0 : ((mq_MQCUOWC_vals)))), 0x0, "Unit Of Work Controls", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4735 {&hf_mq_cih_getwaitintv, {"GetWaitIntv..", "mq.cih.getwaitintv", FT_INT32, BASE_DEC | BASE_RANGE_STRING0x00000100, RVALS(mq_MQWI_rvals)((0 ? (const struct _range_string*)0 : ((mq_MQWI_rvals)))), 0x0, "Get Wait Interval", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4736 {&hf_mq_cih_linktype, {"LinkType.....", "mq.cih.linktype", FT_UINT32, BASE_DEC, VALS(mq_MQCLT_vals)((0 ? (const struct _value_string*)0 : ((mq_MQCLT_vals)))), 0x0, "LinkType", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4737 {&hf_mq_cih_outdatalen, {"OutDataLen...", "mq.cih.outdatalen", FT_INT32, BASE_DEC | BASE_RANGE_STRING0x00000100, RVALS(mq_MQCODL_rvals)((0 ? (const struct _range_string*)0 : ((mq_MQCODL_rvals)))), 0x0, "Output Data Len", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4738 {&hf_mq_cih_facilkeeptime, {"FacilKeepTime", "mq.cih.facilkeeptime", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "Facility Keep Time", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4739 {&hf_mq_cih_adsdescriptor, {"ADSDescriptor", "mq.cih.adsdescr", FT_UINT32, BASE_DEC, VALS(mq_MQCADSD_vals)((0 ? (const struct _value_string*)0 : ((mq_MQCADSD_vals)))), 0x0, "ADS Descriptor", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4740 {&hf_mq_cih_converstask, {"ConversTask..", "mq.cih.converstask", FT_UINT32, BASE_DEC, VALS(mq_MQCCT_vals)((0 ? (const struct _value_string*)0 : ((mq_MQCCT_vals)))), 0x0, "Conversational Task", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4741 {&hf_mq_cih_taskendstatus, {"TaskEndStatus", "mq.cih.taskendstatus", FT_UINT32, BASE_DEC, VALS(mq_MQCTES_vals)((0 ? (const struct _value_string*)0 : ((mq_MQCTES_vals)))), 0x0, "Status at End of Task", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4742 {&hf_mq_cih_bridgefactokn, {"BridgeFacTokn", "mq.cih.bridgefactokn", FT_BYTES, BASE_NONE, NULL((void*)0), 0x0, "Bridge facility token", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4743 {&hf_mq_cih_function, {"Function.....", "mq.cih.function", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "MQ call name or CICS EIBFN function", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4744 {&hf_mq_cih_abendcode, {"AbendCode....", "mq.cih.abendcode", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "Abend Code", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4745 {&hf_mq_cih_authenticator, {"Authenticator", "mq.cih.authenticator", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "Password or Passcode", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4746 {&hf_mq_cih_reserved, {"Reserved.....", "mq.cih.reserved", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "Reserved", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4747 {&hf_mq_cih_replytofmt, {"ReplyToFormat", "mq.cih.replytofmt", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "Reply To Format", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4748 {&hf_mq_cih_remotesysid, {"RemoteSysId..", "mq.cih.remotesysid", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "Remote System Id", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4749 {&hf_mq_cih_remotetransid, {"RemoteTransId", "mq.cih.remotetransid", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "Remote Transaction Id", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4750 {&hf_mq_cih_transactionid, {"TransactionId", "mq.cih.transactionid", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "Transaction to attach", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4751 {&hf_mq_cih_facilitylike, {"FacilityLike.", "mq.cih.facilitylike", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "Terminal emulated attributes", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4752 {&hf_mq_cih_attentionid, {"AttentionID..", "mq.cih.attentionid", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "Attention Id (AID) Key", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4753 {&hf_mq_cih_startcode, {"StartCode....", "mq.cih.startcode", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "Transaction Start Code", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4754 {&hf_mq_cih_cancelcode, {"CancelCode...", "mq.cih.cancelcode", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "Abend transaction code", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4755 {&hf_mq_cih_nexttransid, {"NextTransId..", "mq.cih.nexttransid", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "Next transaction to attach", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4756 {&hf_mq_cih_reserved2, {"Reserved2....", "mq.cih.reserved2", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "Reserved 2", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4757 {&hf_mq_cih_reserved3, {"Reserved3....", "mq.cih.reserved3", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "Reserved 3", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4758 {&hf_mq_cih_cursorpos, {"CursorPos....", "mq.cih.cursorpos", FT_UINT32, BASE_DEC_HEX, NULL((void*)0), 0x0, "Cursor Position", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4759 {&hf_mq_cih_erroroffset, {"ErrorOffset..", "mq.cih.erroroffset", FT_UINT32, BASE_DEC_HEX, NULL((void*)0), 0x0, "Offset of error in message", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4760 {&hf_mq_cih_inputitem, {"InputItem....", "mq.cih.inputitem", FT_UINT32, BASE_DEC_HEX, NULL((void*)0), 0x0, "Input Item", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4761 {&hf_mq_cih_reserved4, {"Reserved4....", "mq.cih.reserved4", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "Reserved 4", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4762
4763 {&hf_mq_rfh_ccsid, {"NmeValCCSID", "mq.rfh.ccsid", FT_INT32, BASE_DEC | BASE_RANGE_STRING0x00000100, RVALS(mq_MQCCSI_rvals)((0 ? (const struct _range_string*)0 : ((mq_MQCCSI_rvals)))), 0x0, "RFH NameValue CCSID", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4764 {&hf_mq_rfh_length, {"Len.", "mq.rfh.length", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "RFH NameValue Length", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4765 {&hf_mq_rfh_string, {"Val.", "mq.rfh.string", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "RFH NameValue", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4766
4767 {&hf_mq_rmh_flags_last, {"LAST", "mq.rmh.flags.last", FT_BOOLEAN, 32, TFS(&tfs_set_notset)((0 ? (const struct true_false_string*)0 : ((&tfs_set_notset
))))
, MQ_MQRMHF_LAST0x00000001, "MQ RMH LAST", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4768
4769 {&hf_mq_rmh_objecttype, {"ObjectType...", "mq.rmh.objecttype", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "Object Type", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4770 {&hf_mq_rmh_objectinstid, {"ObjectInstId.", "mq.rmh.objectinstid", FT_BYTES, BASE_NONE, NULL((void*)0), 0x0, "Object Instance Identifier", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4771 {&hf_mq_rmh_srcenvlen, {"SrcEnvLen....", "mq.rmh.srcenvlen", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "Length of source environment data", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4772 {&hf_mq_rmh_srcenvofs, {"SrcEnvOfs....", "mq.rmh.srcenvofs", FT_UINT32, BASE_DEC_HEX, NULL((void*)0), 0x0, "Offset of source environment data", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4773 {&hf_mq_rmh_srcnamelen, {"SrcNameLen...", "mq.rmh.srcnamelen", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "Length of source object name", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4774 {&hf_mq_rmh_srcnameofs, {"SrcNameOfs...", "mq.rmh.srcnameofs", FT_UINT32, BASE_DEC_HEX, NULL((void*)0), 0x0, "Offset of source object name", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4775 {&hf_mq_rmh_dstenvlen, {"DstEnvLen....", "mq.rmh.dstenvlen", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "Length of destination environment data", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4776 {&hf_mq_rmh_dstenvofs, {"DstEnvOfs....", "mq.rmh.dstenvofs", FT_UINT32, BASE_DEC_HEX, NULL((void*)0), 0x0, "Offset of destination environment data", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4777 {&hf_mq_rmh_dstnamelen, {"DstNameLen...", "mq.rmh.dstnamelen", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "Length of destination object name", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4778 {&hf_mq_rmh_dstnameofs, {"DstNameOfs...", "mq.rmh.dstnameofs", FT_UINT32, BASE_DEC | BASE_HEX, NULL((void*)0), 0x0, "Offset of destination object name", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4779 {&hf_mq_rmh_datalogiclen, {"DataLogicLen.", "mq.rmh.datalogiclen", FT_UINT32, BASE_DEC, NULL((void*)0), 0x0, "Length of bulk data", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4780 {&hf_mq_rmh_datalogicofsl, {"DataLogicOfsL", "mq.rmh.datalogicofsl", FT_UINT32, BASE_DEC_HEX, NULL((void*)0), 0x0, "Low offset of bulk data", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4781 {&hf_mq_rmh_datalogicofsh, {"DataLogicOfsH", "mq.rmh.datalogicofsh", FT_UINT32, BASE_DEC_HEX, NULL((void*)0), 0x0, "High offset of bulk data", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4782
4783 {&hf_mq_wih_servicename, {"ServiceName..", "mq.wih.servicename", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "Service Name", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4784 {&hf_mq_wih_servicestep, {"ServiceStep..", "mq.wih.servicestep", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "Service Step Name", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4785 {&hf_mq_wih_msgtoken, {"MsgToken.....", "mq.wih.msgtoken", FT_BYTES, BASE_NONE, NULL((void*)0), 0x0, "Message Token", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4786 {&hf_mq_wih_reserved, {"Reserved.....", "mq.wih.reserved", FT_STRING, BASE_NONE, NULL((void*)0), 0x0, "Reserved", HFILL-1, 0, HF_REF_TYPE_NONE, -1, ((void*)0)}},
4787 };
4788
4789 static int* ett[] =
4790 {
4791 &ett_mq,
4792 &ett_mq_tsh,
4793 &ett_mq_tsh_tcf,
4794 &ett_mq_tsh_tcf2,
4795 &ett_mq_api,
4796 &ett_mq_socket,
4797 &ett_mq_msh,
4798 &ett_mq_caut,
4799 &ett_mq_xqh,
4800 &ett_mq_id,
4801 &ett_mq_id_cf1,
4802 &ett_mq_id_cf2,
4803 &ett_mq_id_cf3,
4804 &ett_mq_id_ecf1,
4805 &ett_mq_id_ecf2,
4806 &ett_mq_id_ecf3,
4807 &ett_mq_id_ief1,
4808 &ett_mq_id_ief2,
4809 &ett_mq_uid,
4810 &ett_mq_conn,
4811 &ett_mq_fcno_option,
4812 &ett_mq_msg,
4813 &ett_mq_notif,
4814 &ett_mq_inq,
4815 &ett_mq_spi,
4816 &ett_mq_spi_base,
4817 &ett_mq_spi_options,
4818 &ett_mq_put,
4819 &ett_mq_open,
4820 &ett_mq_open_option,
4821 &ett_mq_close_option,
4822 &ett_mq_ping,
4823 &ett_mq_reset,
4824 &ett_mq_status,
4825 &ett_mq_od,
4826 &ett_mq_od_objstr,
4827 &ett_mq_od_selstr,
4828 &ett_mq_od_resobjstr,
4829 &ett_mq_or,
4830 &ett_mq_rr,
4831 &ett_mq_pmr,
4832 &ett_mq_md,
4833 &ett_mq_dlh,
4834 &ett_mq_dh,
4835 &ett_mq_gmo,
4836 &ett_mq_gmo_option,
4837 &ett_mq_gmo_matchoption,
4838 &ett_mq_msgreq_RqstFlags,
4839 &ett_mq_pmo,
4840 &ett_mq_pmo_option,
4841 &ett_mq_fcno,
4842 &ett_mq_fopa,
4843 &ett_mq_fcmi,
4844 &ett_mq_lpoo,
4845 &ett_mq_lpoo_lpiopts,
4846 &ett_mq_head,
4847 &ett_mq_head_flags,
4848 &ett_mq_ims,
4849 &ett_mq_xa,
4850 &ett_mq_xa_tmflags,
4851 &ett_mq_xa_xid,
4852 &ett_mq_xa_info,
4853 &ett_mq_charv,
4854 &ett_mq_rfh_ValueName,
4855 &ett_mq_reassemb,
4856 &ett_mq_structid
4857 };
4858
4859 module_t* mq_module;
4860 expert_module_t* expert_mq;
4861
4862 static ei_register_info ei[] = {
4863 {&ei_mq_reassembly_error, {"mq.reassembly_error",
4864 PI_REASSEMBLE0x06000000, PI_ERROR0x00800000, "Reassembly error", EXPFILL0, ((void*)0), 0, {0, {((void*)0), ((void*)0), FT_NONE, BASE_NONE
, ((void*)0), 0, ((void*)0), -1, 0, HF_REF_TYPE_NONE, -1, ((void
*)0)}}
}}
4865 };
4866
4867 proto_mq = proto_register_protocol("WebSphere MQ", "MQ", "mq");
4868 proto_register_field_array(proto_mq, hf, array_length(hf)(sizeof (hf) / sizeof (hf)[0]));
4869 proto_register_subtree_array(ett, array_length(ett)(sizeof (ett) / sizeof (ett)[0]));
4870
4871 expert_mq = expert_register_protocol(proto_mq);
4872 expert_register_field_array(expert_mq, ei, array_length(ei)(sizeof (ei) / sizeof (ei)[0]));
4873
4874 mq_heur_subdissector_list = register_heur_dissector_list_with_description("mq", "WebSphere MQ data", proto_mq);
4875
4876 reassembly_table_register(&mq_reassembly_table,
4877 &addresses_reassembly_table_functions);
4878
4879 mq_module = prefs_register_protocol(proto_mq, NULL((void*)0));
4880 mq_handle = register_dissector("mq", dissect_mq_tcp, proto_mq);
4881 mq_spx_handle = register_dissector("mq.spx", dissect_mq_spx, proto_mq);
4882
4883
4884 prefs_register_bool_preference(mq_module, "desegment",
4885 "Reassemble MQ messages spanning multiple TCP segments",
4886 "Whether the MQ dissector should reassemble messages spanning multiple TCP segments."
4887 " To use this option, you must also enable \"Allow subdissectors to reassemble TCP streams\" in the TCP protocol settings.",
4888 &mq_desegment);
4889 prefs_register_bool_preference(mq_module, "reassembly",
4890 "Reassemble segmented MQ messages",
4891 "Whether the MQ dissector should reassemble MQ messages spanning multiple TSH segments",
4892 &mq_reassembly);
4893}
4894
4895void proto_reg_handoff_mq(void)
4896{
4897 /* Unlike some protocol (HTTP, POP3, ...) that clearly map to a standard
4898 * class of applications (web browser, e-mail client, ...) and have a very well
4899 * known port number, the MQ applications are most often specific to a business application */
4900
4901 dissector_add_for_decode_as_with_preference("tcp.port", mq_handle);
4902 ssl_dissector_add(0, mq_handle);
4903 heur_dissector_add("tcp", dissect_mq_heur_tcp, "WebSphere MQ over TCP", "mq_tcp", proto_mq, HEURISTIC_ENABLE);
4904 heur_dissector_add("netbios", dissect_mq_heur_nontcp, "WebSphere MQ over Netbios", "mq_netbios", proto_mq, HEURISTIC_ENABLE);
4905 heur_dissector_add("http", dissect_mq_heur_nontcp, "WebSphere MQ over HTTP", "mq_http", proto_mq, HEURISTIC_ENABLE);
4906 heur_dissector_add("tls", dissect_mq_heur_ssl, "WebSphere MQ over TLS", "mq_tls", proto_mq, HEURISTIC_ENABLE);
4907 dissector_add_uint("spx.socket", MQ_SOCKET_SPX0x5E86, mq_spx_handle);
4908 mqpcf_handle = find_dissector("mqpcf");
4909}
4910
4911/*
4912 * Editor modelines - https://www.wireshark.org/tools/modelines.html
4913 *
4914 * Local variables:
4915 * c-basic-offset: 4
4916 * tab-width: 8
4917 * indent-tabs-mode: nil
4918 * End:
4919 *
4920 * vi: set shiftwidth=4 tabstop=8 expandtab:
4921 * :indentSize=4:tabSize=8:noTabs=true:
4922 */