From robionekenobi via https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9173 :
authorJeff Morriss <jeff.morriss.ws@gmail.com>
Tue, 24 Sep 2013 01:04:10 +0000 (01:04 -0000)
committerJeff Morriss <jeff.morriss.ws@gmail.com>
Tue, 24 Sep 2013 01:04:10 +0000 (01:04 -0000)
This enhancement add the missing structure CAUT, some missing integer
converted to Strings and some field that were unknown to a better explanation.

Sorted alphabetically the MQCFINT_Parse VALS structure to better find what is
missing in this VALS structure

svn path=/trunk/; revision=52198

epan/dissectors/packet-mq-base.c
epan/dissectors/packet-mq.c

index 0e1d944d6a719a918e1f5a4bd912cbfb4f29acbe..ef40e2b745f5c7550b015136ef431709582edafe 100644 (file)
@@ -4748,44 +4748,20 @@ DEF_VALSB(SecurityCase)
 DEF_VALSE;
 
 DEF_VALSB(MQCFINT_Parse)
-       DEF_VALS2(MQIA_SECURITY_CASE           ,GET_VALSP(SecurityCase)),
-       DEF_VALS2(MQIA_PUBSUB_CLUSTER          ,GET_VALSP(PubSubCluster)),
-       DEF_VALS2(MQIA_PUBSUB_NP_MSG           ,GET_VALSP(PubSubNP)),
-       DEF_VALS2(MQIA_PUBSUB_NP_RESP          ,GET_VALSP(PubSubNP)),
-       DEF_VALS2(MQIA_PUBSUB_SYNC_PT          ,GET_VALSP(PubSubSync)),
-       DEF_VALS2(MQIA_PUBSUB_MODE             ,GET_VALSP(PubSubMode)),
-       DEF_VALS2(MQIA_HARDEN_GET_BACKOUT      ,GET_VALSP(BackOutHardening)),
-       DEF_VALS2(MQIA_DEF_PERSISTENCE         ,GET_VALSP(Persistence)),
-       DEF_VALS2(MQIA_DEF_INPUT_OPEN_OPTION   ,GET_VALSP(InputOpenOption)),
-       DEF_VALS2(MQIA_DEFINITION_TYPE         ,GET_VALSP(DefinitionType)),
-       DEF_VALS2(MQIA_CLWL_USEQ               ,GET_VALSP(CLWLUseQ)),
-       DEF_VALS2(MQIA_DEF_BIND                ,GET_VALSP(Bindings)),
-       DEF_VALS2(MQIACF_Q_MGR_ATTRS           ,GET_VALSP(PrmId)),
-       DEF_VALS2(MQIACF_EVENT_ORIGIN          ,GET_VALSP(EvtOrig)),
+       DEF_VALS2(MQIACF_COMMAND               ,GET_VALSP(Command)),
+       DEF_VALS2(MQIACF_CONN_INFO_TYPE        ,GET_VALSP(ConnInfoType)),
        DEF_VALS2(MQIACF_EVENT_APPL_TYPE       ,GET_VALSP(ApplType)),
-       DEF_VALS2(MQIA_APPL_TYPE               ,GET_VALSP(ApplType)),
-       DEF_VALS2(MQIA_PLATFORM                ,GET_VALSP(Platform)),
+       DEF_VALS2(MQIACF_EVENT_ORIGIN          ,GET_VALSP(EvtOrig)),
        DEF_VALS2(MQIACF_OBJECT_TYPE           ,GET_VALSP(ObjType)),
-       DEF_VALS2(MQIACF_CONN_INFO_TYPE        ,GET_VALSP(ConnInfoType)),
-       DEF_VALS2(MQIA_QSG_DISP                ,GET_VALSP(QShrGrpDisp)),
-       DEF_VALS2(MQIA_BASE_TYPE               ,GET_VALSP(BaseType)),
-       DEF_VALS2(MQIA_INHIBIT_GET             ,GET_VALSP(InhibitGetVal)),
-       DEF_VALS2(MQIA_INHIBIT_PUT             ,GET_VALSP(InhibitPutVal)),
-       DEF_VALS2(MQIA_MSG_DELIVERY_SEQUENCE   ,GET_VALSP(MsgDelivSeq)),
-       DEF_VALS2(MQIA_QMGR_CFCONLOS           ,GET_VALSP(CFConLoss)),
-       DEF_VALS2(MQIA_Q_DEPTH_MAX_EVENT       ,GET_VALSP(EventRule)),
-       DEF_VALS2(MQIA_Q_DEPTH_HIGH_EVENT      ,GET_VALSP(EventRule)),
-       DEF_VALS2(MQIA_Q_DEPTH_LOW_EVENT       ,GET_VALSP(EventRule)),
-       DEF_VALS2(MQIA_Q_TYPE                  ,GET_VALSP(QueueType)),
+       DEF_VALS2(MQIACF_OPEN_TYPE             ,GET_VALSP(QueueStatusOpenTypes)),
+       DEF_VALS2(MQIACF_PARAMETER_ID          ,GET_VALSP(PrmId)),
+       DEF_VALS2(MQIACF_Q_ATTRS               ,GET_VALSP(PrmId)),
+       DEF_VALS2(MQIACF_Q_MGR_ATTRS           ,GET_VALSP(PrmId)),
+       DEF_VALS2(MQIACF_Q_STATUS_ATTRS        ,GET_VALSP(PrmId)),
+       DEF_VALS2(MQIACF_Q_STATUS_TYPE         ,GET_VALSP(PrmId)),
        DEF_VALS2(MQIACF_Q_TYPES               ,GET_VALSP(QueueType)),
-       DEF_VALS2(MQIA_MONITORING_Q            ,GET_VALSP(Monitoring)),
-       DEF_VALS2(MQIA_ACCOUNTING_Q            ,GET_VALSP(Monitoring)),
-       DEF_VALS2(MQIA_Q_SERVICE_INTERVAL_EVENT,GET_VALSP(ServiceIntervalEvent)),
-       DEF_VALS2(MQIA_SHAREABILITY            ,GET_VALSP(Shareability)),
-       DEF_VALS2(MQIA_TRIGGER_CONTROL         ,GET_VALSP(TriggerControl)),
-       DEF_VALS2(MQIA_TRIGGER_TYPE            ,GET_VALSP(TriggerType)),
-       DEF_VALS2(MQIA_USAGE                   ,GET_VALSP(Usage)),
-       DEF_VALS2(MQIA_MONITORING_CHANNEL      ,GET_VALSP(Monitoring)),
+       DEF_VALS2(MQIACH_CHANNEL_STATUS            ,GET_VALSP(ChannelStatus)),
+       DEF_VALS2(MQIACH_CHANNEL_SUBSTATE      ,GET_VALSP(ChannelSubStates)),
        DEF_VALS2(MQIACH_CHANNEL_TYPE          ,GET_VALSP(ChannelType)),
        DEF_VALS2(MQIACH_DATA_CONVERSION       ,GET_VALSP(DataConversion)),
        DEF_VALS2(MQIACH_HDR_COMPRESSION       ,GET_VALSP(HeaderCompression)),
@@ -4794,41 +4770,69 @@ DEF_VALSB(MQCFINT_Parse)
        DEF_VALS2(MQIACH_NPM_SPEED             ,GET_VALSP(NonPersistentMsgSpeed)),
        DEF_VALS2(MQIACH_PUT_AUTHORITY         ,GET_VALSP(PutAuthority)),
        DEF_VALS2(MQIACH_SSL_CLIENT_AUTH       ,GET_VALSP(SSLClientAuthentication)),
+       DEF_VALS2(MQIACH_STOP_REQUESTED        ,GET_VALSP(ChannelStopOptions)),
        DEF_VALS2(MQIACH_XMIT_PROTOCOL_TYPE    ,GET_VALSP(TransportType)),
+       DEF_VALS2(MQIA_ACCOUNTING_Q            ,GET_VALSP(Monitoring)),
        DEF_VALS2(MQIA_ACTIVITY_RECORDING      ,GET_VALSP(ActivityRecording)),
        DEF_VALS2(MQIA_ADOPTNEWMCA_CHECK       ,GET_VALSP(AdoptNewMCACheck)),
        DEF_VALS2(MQIA_ADOPTNEWMCA_TYPE        ,GET_VALSP(AdoptNewMCAType)),
+       DEF_VALS2(MQIA_APPL_TYPE               ,GET_VALSP(ApplType)),
        DEF_VALS2(MQIA_AUTHORITY_EVENT         ,GET_VALSP(EventRule)),
+       DEF_VALS2(MQIA_BASE_TYPE               ,GET_VALSP(BaseType)),
        DEF_VALS2(MQIA_BRIDGE_EVENT            ,GET_VALSP(EventRule)),
        DEF_VALS2(MQIA_CHANNEL_EVENT           ,GET_VALSP(EventRule)),
-       DEF_VALS2(MQIA_MONITORING_CHANNEL      ,GET_VALSP(Monitoring)),
-       DEF_VALS2(MQIA_MONITORING_AUTO_CLUSSDR ,GET_VALSP(Monitoring)),
        DEF_VALS2(MQIA_CHINIT_TRACE_AUTO_START ,GET_VALSP(ChinitTraceAutoStart)),
+       DEF_VALS2(MQIA_CLWL_USEQ               ,GET_VALSP(CLWLUseQ)),
        DEF_VALS2(MQIA_COMMAND_EVENT           ,GET_VALSP(EventRule)),
        DEF_VALS2(MQIA_CONFIGURATION_EVENT     ,GET_VALSP(EventRule)),
+       DEF_VALS2(MQIA_DEFINITION_TYPE         ,GET_VALSP(DefinitionType)),
+       DEF_VALS2(MQIA_DEF_BIND                ,GET_VALSP(Bindings)),
+       DEF_VALS2(MQIA_DEF_INPUT_OPEN_OPTION   ,GET_VALSP(InputOpenOption)),
+       DEF_VALS2(MQIA_DEF_PERSISTENCE         ,GET_VALSP(Persistence)),
+       DEF_VALS2(MQIA_DEF_PUT_RESPONSE_TYPE   ,GET_VALSP(PutResponse)),
        DEF_VALS2(MQIA_DNS_WLM                 ,GET_VALSP(DNSWLM)),
        DEF_VALS2(MQIA_GROUP_UR                ,GET_VALSP(GroupUR)),
+       DEF_VALS2(MQIA_HARDEN_GET_BACKOUT      ,GET_VALSP(BackOutHardening)),
+       DEF_VALS2(MQIA_IGQ_PUT_AUTHORITY       ,GET_VALSP(IGQPutAuthority)),
        DEF_VALS2(MQIA_INHIBIT_EVENT           ,GET_VALSP(EventRule)),
+       DEF_VALS2(MQIA_INHIBIT_GET             ,GET_VALSP(InhibitGetVal)),
+       DEF_VALS2(MQIA_INHIBIT_PUT             ,GET_VALSP(InhibitPutVal)),
+       DEF_VALS2(MQIA_INTRA_GROUP_QUEUING     ,GET_VALSP(IntraGroupQueuing)),
        DEF_VALS2(MQIA_IP_ADDRESS_VERSION      ,GET_VALSP(IPAddressVersion)),
        DEF_VALS2(MQIA_LOCAL_EVENT             ,GET_VALSP(EventRule)),
+       DEF_VALS2(MQIA_MONITORING_AUTO_CLUSSDR ,GET_VALSP(Monitoring)),
+       DEF_VALS2(MQIA_MONITORING_CHANNEL      ,GET_VALSP(Monitoring)),
+       DEF_VALS2(MQIA_MONITORING_CHANNEL      ,GET_VALSP(Monitoring)),
+       DEF_VALS2(MQIA_MONITORING_Q            ,GET_VALSP(Monitoring)),
+       DEF_VALS2(MQIA_MSG_DELIVERY_SEQUENCE   ,GET_VALSP(MsgDelivSeq)),
        DEF_VALS2(MQIA_PERFORMANCE_EVENT       ,GET_VALSP(EventRule)),
+       DEF_VALS2(MQIA_PLATFORM                ,GET_VALSP(Platform)),
+       DEF_VALS2(MQIA_PUBSUB_CLUSTER          ,GET_VALSP(PubSubCluster)),
+       DEF_VALS2(MQIA_PUBSUB_MODE             ,GET_VALSP(PubSubMode)),
+       DEF_VALS2(MQIA_PUBSUB_NP_MSG           ,GET_VALSP(PubSubNP)),
+       DEF_VALS2(MQIA_PUBSUB_NP_RESP          ,GET_VALSP(PubSubNP)),
+       DEF_VALS2(MQIA_PUBSUB_SYNC_PT          ,GET_VALSP(PubSubSync)),
+       DEF_VALS2(MQIA_QMGR_CFCONLOS           ,GET_VALSP(CFConLoss)),
+       DEF_VALS2(MQIA_QSG_DISP                ,GET_VALSP(QShrGrpDisp)),
+       DEF_VALS2(MQIA_Q_DEPTH_HIGH_EVENT      ,GET_VALSP(EventRule)),
+       DEF_VALS2(MQIA_Q_DEPTH_LOW_EVENT       ,GET_VALSP(EventRule)),
+       DEF_VALS2(MQIA_Q_DEPTH_MAX_EVENT       ,GET_VALSP(EventRule)),
+       DEF_VALS2(MQIA_Q_SERVICE_INTERVAL_EVENT,GET_VALSP(ServiceIntervalEvent)),
+       DEF_VALS2(MQIA_Q_TYPE                  ,GET_VALSP(QueueType)),
        DEF_VALS2(MQIA_RECEIVE_TIMEOUT_TYPE    ,GET_VALSP(ReceiveTimeoutType)),
        DEF_VALS2(MQIA_REMOTE_EVENT            ,GET_VALSP(EventRule)),
+       DEF_VALS2(MQIA_SECURITY_CASE           ,GET_VALSP(SecurityCase)),
+       DEF_VALS2(MQIA_SHAREABILITY            ,GET_VALSP(Shareability)),
        DEF_VALS2(MQIA_SHARED_Q_Q_MGR_NAME     ,GET_VALSP(SharedQueueQueueManagerName)),
        DEF_VALS2(MQIA_SSL_EVENT               ,GET_VALSP(EventRule)),
        DEF_VALS2(MQIA_START_STOP_EVENT        ,GET_VALSP(EventRule)),
        DEF_VALS2(MQIA_TCP_KEEP_ALIVE          ,GET_VALSP(TCPKeepAlive)),
        DEF_VALS2(MQIA_TCP_STACK_TYPE          ,GET_VALSP(TCPStackType)),
-       DEF_VALS2(MQIA_TRACE_ROUTE_RECORDING   ,GET_VALSP(TraceRouteRecording)),
-       DEF_VALS2(MQIA_IGQ_PUT_AUTHORITY       ,GET_VALSP(IGQPutAuthority)),
-       DEF_VALS2(MQIA_INTRA_GROUP_QUEUING     ,GET_VALSP(IntraGroupQueuing)),
        DEF_VALS2(MQIA_TOPIC_DEF_PERSISTENCE   ,GET_VALSP(Persistence)),
-       DEF_VALS2(MQIA_DEF_PUT_RESPONSE_TYPE   ,GET_VALSP(PutResponse)),
-       DEF_VALS2(MQIACH_CHANNEL_SUBSTATE      ,GET_VALSP(ChannelSubStates)),
-       DEF_VALS2(MQIACH_CHANNEL_STATUS            ,GET_VALSP(ChannelStatus)),
-       DEF_VALS2(MQIACH_STOP_REQUESTED        ,GET_VALSP(ChannelStopOptions)),
-       DEF_VALS2(MQIACF_PARAMETER_ID          ,GET_VALSP(PrmId)),
-       DEF_VALS2(MQIACF_COMMAND               ,GET_VALSP(Command)),
+       DEF_VALS2(MQIA_TRACE_ROUTE_RECORDING   ,GET_VALSP(TraceRouteRecording)),
+       DEF_VALS2(MQIA_TRIGGER_CONTROL         ,GET_VALSP(TriggerControl)),
+       DEF_VALS2(MQIA_TRIGGER_TYPE            ,GET_VALSP(TriggerType)),
+       DEF_VALS2(MQIA_USAGE                   ,GET_VALSP(Usage)),
 DEF_VALSE;
 
 /*
index f92075cce3d67d0f8fb8caa6d2483f66e2b4fa43..33f7022fc452ff8656b5347e4ce4e794f10fada7 100644 (file)
@@ -271,6 +271,14 @@ static int hf_mq_reset_seqnum = -1;
 static int hf_mq_status_length = -1;
 static int hf_mq_status_code = -1;
 static int hf_mq_status_value = -1;
+
+static int hf_mq_caut_structid = -1;
+static int hf_mq_caut_unknown1 = -1;
+static int hf_mq_caut_unknown2 = -1;
+static int hf_mq_caut_unknown3 = -1;
+static int hf_mq_caut_unknown4 = -1;
+static int hf_mq_caut_unknown5 = -1;
+
 static int hf_mq_od_structid = -1;
 static int hf_mq_od_version = -1;
 static int hf_mq_od_objecttype = -1;
@@ -497,7 +505,7 @@ static int hf_mq_msgreq_ccsid = -1;
 static int hf_mq_msgreq_encoding = -1;
 static int hf_mq_msgreq_unknown6 = -1;
 static int hf_mq_msgreq_unknown7 = -1;
-static int hf_mq_msgreq_unknown8 = -1;
+static int hf_mq_msgreq_xfldflag = -1;
 static int hf_mq_msgreq_msgid = -1;
 static int hf_mq_msgreq_mqmid = -1;
 
@@ -522,14 +530,15 @@ static int hf_mq_msgasy_strPad = -1;
 
 static int hf_mq_notif_vers = -1;
 static int hf_mq_notif_handle = -1;
-static int hf_mq_notif_unknown3 = -1;
-static int hf_mq_notif_unknown4 = -1;
+static int hf_mq_notif_code = -1;
+static int hf_mq_notif_mqrc = -1;
 
 static gint ett_mq = -1;
 static gint ett_mq_tsh = -1;
 static gint ett_mq_tsh_tcf = -1;
 static gint ett_mq_api = -1;
 static gint ett_mq_socket = -1;
+static gint ett_mq_caut = -1;
 static gint ett_mq_msh = -1;
 static gint ett_mq_xqh = -1;
 static gint ett_mq_id = -1;
@@ -619,6 +628,7 @@ static reassembly_table mq_reassembly_table;
 #define MQ_STRUCTID_RMH           0x524D4820
 #define MQ_STRUCTID_TM            0x544D2020
 #define MQ_STRUCTID_TMC2          0x544D4332
+#define MQ_STRUCTID_CAUT          0x43415554
 
 #define MQ_STRUCTID_TSH           0x54534820
 #define MQ_STRUCTID_TSHC          0x54534843
@@ -648,6 +658,7 @@ static reassembly_table mq_reassembly_table;
 #define MQ_STRUCTID_RMH_EBCDIC    0xD9D4C840
 #define MQ_STRUCTID_TM_EBCDIC     0xE3D44040
 #define MQ_STRUCTID_TMC2_EBCDIC   0xE3D4C3F2
+#define MQ_STRUCTID_CAUT_EBCDIC   0xC3C1E4E3
 
 #define MQ_STRUCTID_TSH_EBCDIC    0xE3E2C840
 #define MQ_STRUCTID_TSHC_EBCDIC   0xE3E2C843
@@ -906,6 +917,7 @@ static reassembly_table mq_reassembly_table;
 #define MQ_TEXT_ID    "Initial Data"
 #define MQ_TEXT_UID   "User Id Data"
 #define MQ_TEXT_MSH   "Message Segment Header"
+#define MQ_TEXT_CAUT  "Connection Authority"
 #define MQ_TEXT_CONN  "MQCONN"
 #define MQ_TEXT_INQ   "MQINQ/MQSET"
 #define MQ_TEXT_PUT   "MQPUT/MQGET"
@@ -966,6 +978,21 @@ static reassembly_table mq_reassembly_table;
 #define MQ_TEXT_PMR  "Put Message Record"
 #define MQ_TEXT_RR   "Response Record"
 
+/* Notification Code */
+#define MQ_NOTIF_COMPLETED   12 /* 0x0c */
+#define MQ_NOTIF_FAILED      14 /* 0x0e */
+#define MQ_NOTIF_NODATA      11 /* 0x0b */
+
+/* Msg Request Extended Field present */
+#define MQ_MSGREQ_MSGID_PRESENT 0x00000001
+#define MQ_MSGREQ_MQMID_PRESENT 0x00000002
+
+DEF_VALSB(notifcode)
+       DEF_VALS2(NOTIF_COMPLETED, "Completed"),
+       DEF_VALS2(NOTIF_FAILED, "Failed"),
+       DEF_VALS2(NOTIF_NODATA, "No Data"),
+DEF_VALSE;
+
 DEF_VALSB(opcode)
        DEF_VALS2(TST_INITIAL, "INITIAL_DATA"),
        DEF_VALS2(TST_RESYNC, "RESYNC_DATA"),
@@ -1122,6 +1149,7 @@ DEF_VALSB(structid)
        DEF_VALS2(STRUCTID_RMH, MQ_TEXT_RMH),
        DEF_VALS2(STRUCTID_TM, MQ_TEXT_TM),
        DEF_VALS2(STRUCTID_TMC2, MQ_TEXT_TMC2),
+       DEF_VALS2(STRUCTID_CAUT, MQ_TEXT_CAUT),
        DEF_VALS2(STRUCTID_TSH, MQ_TEXT_TSH),
        DEF_VALS2(STRUCTID_TSHC, MQ_TEXT_TSHC),
        DEF_VALS2(STRUCTID_TSHM, MQ_TEXT_TSHM),
@@ -1159,6 +1187,7 @@ DEF_VALSB(structid)
        DEF_VALS2(STRUCTID_RMH_EBCDIC, MQ_TEXT_RMH),
        DEF_VALS2(STRUCTID_TM_EBCDIC, MQ_TEXT_TM),
        DEF_VALS2(STRUCTID_TMC2_EBCDIC, MQ_TEXT_TMC2),
+       DEF_VALS2(STRUCTID_CAUT_EBCDIC, MQ_TEXT_CAUT),
        DEF_VALS2(STRUCTID_TSH_EBCDIC, MQ_TEXT_TSH),
        DEF_VALS2(STRUCTID_TSHC_EBCDIC, MQ_TEXT_TSHC),
        DEF_VALS2(STRUCTID_TSHM_EBCDIC, MQ_TEXT_TSHM),
@@ -2060,7 +2089,7 @@ static void dissect_mq_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
        guint8  p_mq_parm->mq_ctlf     = 0;
        guint8  p_mq_parm->mq_opcode   = 0;
        */
-       
+
        p_mq_parm = wmem_new0(wmem_packet_scope(), mq_parm_t);
 
        p_mq_parm->mq_strucID = MQ_STRUCTID_NULL;
@@ -2091,7 +2120,7 @@ static void dissect_mq_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
                        gint iSizeTSH = 28;
                        gint iSizeMultiplexFields = 0;
 
-                       if ((p_mq_parm->mq_strucID & MQ_MASK_TSHx)==MQ_STRUCTID_TSHx_EBCDIC) 
+                       if ((p_mq_parm->mq_strucID & MQ_MASK_TSHx)==MQ_STRUCTID_TSHx_EBCDIC)
                        {
                                bEBCDIC = TRUE;
                                p_mq_parm->mq_str_enc = ENC_EBCDIC|ENC_NA;
@@ -2220,12 +2249,12 @@ static void dissect_mq_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
                                        }
                                        if ((p_mq_parm->mq_strucID == MQ_STRUCTID_MSH || p_mq_parm->mq_strucID == MQ_STRUCTID_MSH_EBCDIC) && tvb_length_remaining(tvb, offset) >= 20)
                                        {
-                                               gint iSizeMSH = 20;
+                                               gint iSize = 20;
                                                iSizePayload = tvb_get_guint32_endian(tvb, offset + 16, p_mq_parm->mq_int_enc);
                                                bPayload = TRUE;
                                                if (tree)
                                                {
-                                                       ti = proto_tree_add_text(mqroot_tree, tvb, offset, iSizeMSH, MQ_TEXT_MSH);
+                                                       ti = proto_tree_add_text(mqroot_tree, tvb, offset, iSize, MQ_TEXT_MSH);
                                                        mq_tree = proto_item_add_subtree(ti, ett_mq_msh);
 
                                                        proto_tree_add_item(mq_tree, hf_mq_msh_structid, tvb, offset + 0, 4, p_mq_parm->mq_str_enc);
@@ -2234,7 +2263,25 @@ static void dissect_mq_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
                                                        proto_tree_add_item(mq_tree, hf_mq_msh_unknown1, tvb, offset + 12, 4, p_mq_parm->mq_int_enc);
                                                        proto_tree_add_item(mq_tree, hf_mq_msh_msglength, tvb, offset + 16, 4, p_mq_parm->mq_int_enc);
                                                }
-                                               offset += iSizeMSH;
+                                               offset += iSize;
+                                       }
+                                       else if (p_mq_parm->mq_opcode == MQ_TST_CONAUTH_INFO && tvb_length_remaining(tvb, offset) >= 20)
+                                       {
+                                               gint iSize = 24;
+                                               if (tree)
+                                               {
+                                                       ti = proto_tree_add_text(mqroot_tree, tvb, offset, iSize, MQ_TEXT_CAUT);
+                                                       mq_tree = proto_item_add_subtree(ti, ett_mq_caut);
+
+                                                       proto_tree_add_item(mq_tree, hf_mq_caut_structid, tvb, offset, 4, p_mq_parm->mq_str_enc);
+                                                       proto_tree_add_item(mq_tree, hf_mq_caut_unknown1, tvb, offset + 4, 4, p_mq_parm->mq_int_enc);
+                                                       proto_tree_add_item(mq_tree, hf_mq_caut_unknown2, tvb, offset + 8, 4, p_mq_parm->mq_int_enc);
+                                                       proto_tree_add_item(mq_tree, hf_mq_caut_unknown3, tvb, offset + 12, 4, p_mq_parm->mq_int_enc);
+                                                       proto_tree_add_item(mq_tree, hf_mq_caut_unknown4, tvb, offset + 16, 4, p_mq_parm->mq_int_enc);
+                                                       proto_tree_add_item(mq_tree, hf_mq_caut_unknown5, tvb, offset + 20, 4, p_mq_parm->mq_int_enc);
+                                               }
+                                               offset += iSize;
+                                               p_mq_parm->mq_strucID = (tvb_length_remaining(tvb, offset) >= 4) ? tvb_get_ntohl(tvb, offset) : MQ_STRUCTID_NULL;
                                        }
                                        else if (p_mq_parm->mq_opcode == MQ_TST_SOCKET_ACTION && tvb_length_remaining(tvb, offset) >= 20)
                                        {
@@ -2473,8 +2520,8 @@ static void dissect_mq_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
 
                                                        proto_tree_add_item(mq_tree, hf_mq_notif_vers, tvb, offset, 4, p_mq_parm->mq_int_enc);
                                                        proto_tree_add_item(mq_tree, hf_mq_notif_handle, tvb, offset + 4, 4, p_mq_parm->mq_int_enc);
-                                                       proto_tree_add_item(mq_tree, hf_mq_notif_unknown3, tvb, offset + 8, 4, p_mq_parm->mq_int_enc);
-                                                       proto_tree_add_item(mq_tree, hf_mq_notif_unknown4, tvb, offset + 12, 4, p_mq_parm->mq_int_enc);
+                                                       proto_tree_add_item(mq_tree, hf_mq_notif_code, tvb, offset + 8, 4, p_mq_parm->mq_int_enc);
+                                                       proto_tree_add_item(mq_tree, hf_mq_notif_mqrc, tvb, offset + 12, 4, p_mq_parm->mq_int_enc);
                                                }
                                                offset+=16;
                                                p_mq_parm->mq_strucID = (tvb_length_remaining(tvb, offset) >= 4) ? tvb_get_ntohl(tvb, offset) : MQ_STRUCTID_NULL;
@@ -2521,16 +2568,17 @@ static void dissect_mq_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
                                                                proto_tree_add_item(mq_tree, hf_mq_msgreq_encoding, tvb, offset + 48,  4, p_mq_parm->mq_int_enc);
                                                                proto_tree_add_item(mq_tree, hf_mq_msgreq_unknown6, tvb, offset + 52,  4, p_mq_parm->mq_int_enc);
                                                                proto_tree_add_item(mq_tree, hf_mq_msgreq_unknown7, tvb, offset + 56,  4, p_mq_parm->mq_int_enc);
-                                                               proto_tree_add_item(mq_tree, hf_mq_msgreq_unknown8, tvb, offset + 60,  4, p_mq_parm->mq_int_enc);
+                                                               proto_tree_add_item(mq_tree, hf_mq_msgreq_xfldflag, tvb, offset + 60,  4, p_mq_parm->mq_int_enc);
                                                                iExt=tvb_get_guint32_endian(tvb, offset + 60, p_mq_parm->mq_int_enc);
-                                                               if (iExt>=2)
+
+                                                               if (iExt & MQ_MSGREQ_MSGID_PRESENT)
                                                                {
-                                                                       proto_tree_add_item(mq_tree, hf_mq_msgreq_msgid   , tvb, offset + 64, 24, p_mq_parm->mq_str_enc);
+                                                                       proto_tree_add_item(mq_tree, hf_mq_msgreq_msgid   , tvb, offset + 64 + xOfs, 24, p_mq_parm->mq_str_enc);
                                                                        xOfs+=24;
                                                                }
-                                                               if (iExt>=3)
+                                                               if (iExt & MQ_MSGREQ_MQMID_PRESENT)
                                                                {
-                                                                       proto_tree_add_item(mq_tree, hf_mq_msgreq_mqmid   , tvb, offset + 88, 24, p_mq_parm->mq_str_enc);
+                                                                       proto_tree_add_item(mq_tree, hf_mq_msgreq_mqmid   , tvb, offset + 64 + xOfs, 24, p_mq_parm->mq_str_enc);
                                                                        xOfs+=24;
                                                                }
                                                        }
@@ -3159,7 +3207,7 @@ static void dissect_mq_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
 
                                                        /*
                                                        Removed as steted in macro PROTO_ITEM_SET_HIDDEN
-                                                        *HIDING PROTOCOL FIELDS IS DEPRECATED, IT'S CONSIDERED TO BE BAD GUI DESIGN! 
+                                                        *HIDING PROTOCOL FIELDS IS DEPRECATED, IT'S CONSIDERED TO BE BAD GUI DESIGN!
                                                        if (tMsgProps.iOffsetFormat != 0)
                                                        {
                                                                guint8* sFormat = NULL;
@@ -3245,7 +3293,7 @@ static void reassemble_mq(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
        if (tvb_length(tvb) >= 28)
        {
                mq_parm_t mq_parm;
-               
+
                mq_parm.mq_strucID = tvb_get_ntohl(tvb, 0);
                mq_parm.mq_ccsid   = 0;
                mq_parm.mq_ctlf    = 0;
@@ -3499,8 +3547,8 @@ void proto_register_mq(void)
                { &hf_mq_tsh_mqseglen ,{"MQSegmLen.", "mq.tsh.seglength", FT_UINT32, BASE_DEC, NULL, 0x0, "TSH MQ Segment length", HFILL }},
                { &hf_mq_tsh_convid   ,{"Convers ID", "mq.tsh.convid", FT_UINT32, BASE_DEC, NULL, 0x0, "TSH Conversation ID", HFILL }},
                { &hf_mq_tsh_requestid,{"Request ID", "mq.tsh.requestid", FT_UINT32, BASE_DEC, NULL, 0x0, "TSH Request ID", HFILL }},
-               { &hf_mq_tsh_byteorder,{"Byte order", "mq.tsh.byteorder", FT_UINT8, BASE_HEX, VALS(mq_byteorder_vals), 0x0, "TSH Byte order", HFILL }},
-               { &hf_mq_tsh_opcode   ,{"SegmType..", "mq.tsh.type", FT_UINT8, BASE_HEX, VALS(mq_opcode_vals), 0x0, "TSH MQ segment type", HFILL }},
+               { &hf_mq_tsh_byteorder,{"Byte order", "mq.tsh.byteorder", FT_UINT8, BASE_HEX, VALS(GET_VALSV(byteorder)), 0x0, "TSH Byte order", HFILL }},
+               { &hf_mq_tsh_opcode   ,{"SegmType..", "mq.tsh.type", FT_UINT8, BASE_HEX, VALS(GET_VALSV(opcode)), 0x0, "TSH MQ segment type", HFILL }},
                { &hf_mq_tsh_ctlflgs1 ,{"Ctl Flag 1", "mq.tsh.cflags1", FT_UINT8, BASE_HEX, NULL, 0x0, "TSH Control flags 1", HFILL }},
                { &hf_mq_tsh_ctlflgs2 ,{"Ctl Flag 2", "mq.tsh.cflags2", FT_UINT8, BASE_HEX, NULL, 0x0, "TSH Control flags 2", HFILL }},
                { &hf_mq_tsh_luwid    ,{"LUW Ident.", "mq.tsh.luwid", FT_BYTES, BASE_NONE, NULL, 0x0, "TSH logical unit of work identifier", HFILL }},
@@ -3518,8 +3566,8 @@ void proto_register_mq(void)
                { &hf_mq_tsh_tcf_dlq       ,{"DLQ used...", "mq.tsh.tcf.dlq", FT_BOOLEAN, 8, TFS(&tfs_set_notset), MQ_TCF_DLQ_USED, "TSH TCF DLQ used", HFILL }},
 
                { &hf_mq_api_replylen ,{"Reply len..", "mq.api.replylength", FT_UINT32, BASE_DEC, NULL, 0x0, "API Reply length", HFILL }},
-               { &hf_mq_api_compcode ,{"Compl Code.", "mq.api.completioncode", FT_UINT32, BASE_DEC, VALS(mq_mqcc_vals), 0x0, "API Completion code", HFILL }},
-               { &hf_mq_api_reascode ,{"Reason Code", "mq.api.reasoncode", FT_UINT32, BASE_DEC, VALS(mq_mqrc_vals), 0x0, "API Reason code", HFILL }},
+               { &hf_mq_api_compcode ,{"Compl Code.", "mq.api.completioncode", FT_UINT32, BASE_DEC, VALS(GET_VALSV(mqcc)), 0x0, "API Completion code", HFILL }},
+               { &hf_mq_api_reascode ,{"Reason Code", "mq.api.reasoncode", FT_UINT32, BASE_DEC, VALS(GET_VALSV(mqrc)), 0x0, "API Reason code", HFILL }},
                { &hf_mq_api_objecthdl,{"Object Hdl.", "mq.api.hobj", FT_UINT32, BASE_HEX, NULL, 0x0, "API Object handle", HFILL }},
 
                { &hf_mq_socket_unknown1,{"unknown1", "mq.socket.unknown1", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, "Socket unknown1", HFILL }},
@@ -3528,6 +3576,13 @@ void proto_register_mq(void)
                { &hf_mq_socket_unknown4,{"unknown4", "mq.socket.unknown4", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, "Socket unknown4", HFILL }},
                { &hf_mq_socket_unknown5,{"unknown5", "mq.socket.unknown5", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, "Socket unknown5", HFILL }},
 
+               { &hf_mq_caut_structid ,{"structid", "mq.caut.structid", FT_STRINGZ, BASE_NONE, NULL, 0x0, NULL, HFILL }},
+               { &hf_mq_caut_unknown1 ,{"unknown1", "mq.caut.unknown1", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, "CAUT unknown1", HFILL }},
+               { &hf_mq_caut_unknown2 ,{"unknown2", "mq.caut.unknown2", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, "CAUT unknown2", HFILL }},
+               { &hf_mq_caut_unknown3 ,{"unknown3", "mq.caut.unknown3", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, "CAUT unknown3", HFILL }},
+               { &hf_mq_caut_unknown4 ,{"unknown4", "mq.caut.unknown4", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, "CAUT unknown4", HFILL }},
+               { &hf_mq_caut_unknown5 ,{"unknown5", "mq.caut.unknown5", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, "CAUT unknown5", HFILL }},
+
                { &hf_mq_id_icf_msgseq  ,{"Message sequence..", "mq.id.icf.msgseq", FT_BOOLEAN, 8, TFS(&tfs_set_notset), MQ_ICF_MSG_SEQ, "ID ICF Message sequence", HFILL }},
                { &hf_mq_id_icf_convcap ,{"Conversion capable", "mq.id.icf.convcap", FT_BOOLEAN, 8, TFS(&tfs_set_notset), MQ_ICF_CONVERSION_CAPABLE, "ID ICF Conversion capable", HFILL }},
                { &hf_mq_id_icf_splitmsg,{"Split messages....", "mq.id.icf.splitmsg", FT_BOOLEAN, 8, TFS(&tfs_set_notset), MQ_ICF_SPLIT_MESSAGE, "ID ICF Split message", HFILL }},
@@ -3593,12 +3648,12 @@ void proto_register_mq(void)
                { &hf_mq_uid_longuserid,{"Long UID", "mq.uid.longuserid", FT_STRINGZ, BASE_NONE, NULL, 0x0, "UID long user id", HFILL }},
 
                { &hf_mq_sidlen        ,{"SID Len.", "mq.uid.sidlen", FT_UINT8, BASE_DEC, NULL, 0x0, "Sid Len", HFILL }},
-               { &hf_mq_sidtyp        ,{"SIDType.", "mq.uid.sidtyp", FT_UINT8, BASE_DEC, VALS(&mq_sidtype_vals), 0x0, "Sid Typ", HFILL }},
+               { &hf_mq_sidtyp        ,{"SIDType.", "mq.uid.sidtyp", FT_UINT8, BASE_DEC, VALS(GET_VALSV(sidtype)), 0x0, "Sid Typ", HFILL }},
                { &hf_mq_securityid    ,{"SecurID.", "mq.uid.securityid", FT_BYTES, BASE_NONE, NULL, 0x0, "Security ID", HFILL }},
 
                { &hf_mq_conn_QMgr     ,{"QMgr....", "mq.conn.qm", FT_STRINGZ, BASE_NONE, NULL, 0x0, "CONN queue manager", HFILL }},
                { &hf_mq_conn_appname  ,{"ApplName", "mq.conn.appname", FT_STRINGZ, BASE_NONE, NULL, 0x0, "CONN application name", HFILL }},
-               { &hf_mq_conn_apptype  ,{"ApplType", "mq.conn.apptype", FT_INT32, BASE_DEC, VALS(mq_mqat_vals), 0x0, "CONN application type", HFILL }},
+               { &hf_mq_conn_apptype  ,{"ApplType", "mq.conn.apptype", FT_INT32, BASE_DEC, VALS(GET_VALSV(mqat)), 0x0, "CONN application type", HFILL }},
                { &hf_mq_conn_acttoken ,{"AccntTok", "mq.conn.acttoken", FT_BYTES, BASE_NONE, NULL, 0x0, "CONN accounting token", HFILL }},
                { &hf_mq_conn_version  ,{"Version.", "mq.conn.version", FT_UINT32, BASE_DEC, VALS(mq_conn_version_vals), 0x0, "CONN version", HFILL }},
                { &hf_mq_conn_options  ,{"Options.", "mq.conn.options", FT_UINT32, BASE_HEX, NULL, 0x0, "CONN options", HFILL }},
@@ -3613,11 +3668,11 @@ void proto_register_mq(void)
                { &hf_mq_inq_nbsel     ,{"Selector count..", "mq.inq.nbsel", FT_UINT32, BASE_DEC, NULL, 0x0, "INQ Selector count", HFILL }},
                { &hf_mq_inq_nbint     ,{"Integer count...", "mq.inq.nbint", FT_UINT32, BASE_DEC, NULL, 0x0, "INQ Integer count", HFILL }},
                { &hf_mq_inq_charlen   ,{"Character length", "mq.inq.charlen", FT_UINT32, BASE_DEC, NULL, 0x0, "INQ Character length", HFILL }},
-               { &hf_mq_inq_sel       ,{"Selector........", "mq.inq.sel", FT_UINT32, BASE_DEC, VALS(mq_selector_vals), 0x0, "INQ Selector", HFILL }},
+               { &hf_mq_inq_sel       ,{"Selector........", "mq.inq.sel", FT_UINT32, BASE_DEC, VALS(GET_VALSV(selector)), 0x0, "INQ Selector", HFILL }},
                { &hf_mq_inq_intvalue  ,{"Integer value...", "mq.inq.intvalue", FT_UINT32, BASE_DEC, NULL, 0x0, "INQ Integer value", HFILL }},
                { &hf_mq_inq_charvalues,{"Char values.....", "mq.inq.charvalues", FT_STRINGZ, BASE_NONE, NULL, 0x0, "INQ Character values", HFILL }},
 
-               { &hf_mq_spi_verb      ,{"SPI Verb", "mq.spi.verb", FT_UINT32, BASE_DEC, VALS(mq_spi_verbs_vals), 0x0, NULL, HFILL }},
+               { &hf_mq_spi_verb      ,{"SPI Verb", "mq.spi.verb", FT_UINT32, BASE_DEC, VALS(GET_VALSV(spi_verbs)), 0x0, NULL, HFILL }},
                { &hf_mq_spi_version   ,{"Version", "mq.spi.version", FT_UINT32, BASE_DEC, NULL, 0x0, "SPI Version", HFILL }},
                { &hf_mq_spi_length    ,{"Max reply size", "mq.spi.replength", FT_UINT32, BASE_DEC, NULL, 0x0, "SPI Max reply size", HFILL }},
 
@@ -3626,13 +3681,13 @@ void proto_register_mq(void)
                { &hf_mq_spi_base_length  ,{"Length", "mq.spib.length", FT_UINT32, BASE_DEC, NULL, 0x0, "SPI Base Length", HFILL }},
 
                { &hf_mq_spi_spqo_nbverb  ,{"Number of verbs", "mq.spqo.nbverb", FT_UINT32, BASE_DEC, NULL, 0x0, "SPI Query Output Number of verbs", HFILL }},
-               { &hf_mq_spi_spqo_verbid  ,{"Verb", "mq.spqo.verb", FT_UINT32, BASE_DEC, VALS(mq_spi_verbs_vals), 0x0, "SPI Query Output VerbId", HFILL }},
+               { &hf_mq_spi_spqo_verbid  ,{"Verb", "mq.spqo.verb", FT_UINT32, BASE_DEC, VALS(GET_VALSV(spi_verbs)), 0x0, "SPI Query Output VerbId", HFILL }},
                { &hf_mq_spi_spqo_maxiover,{"Max InOut Version", "mq.spqo.maxiov", FT_UINT32, BASE_DEC, NULL, 0x0, "SPI Query Output Max InOut Version", HFILL }},
                { &hf_mq_spi_spqo_maxinver,{"Max In Version", "mq.spqo.maxiv", FT_UINT32, BASE_DEC, NULL, 0x0, "SPI Query Output Max In Version", HFILL }},
                { &hf_mq_spi_spqo_maxouver,{"Max Out Version", "mq.spqo.maxov", FT_UINT32, BASE_DEC, NULL, 0x0, "SPI Query Output Max Out Version", HFILL }},
                { &hf_mq_spi_spqo_flags   ,{"Flags", "mq.spqo.flags", FT_UINT32, BASE_DEC, NULL, 0x0, "SPI Query Output flags", HFILL }},
 
-               { &hf_mq_spi_spai_mode    ,{"Mode", "mq.spai.mode", FT_UINT32, BASE_DEC, VALS(mq_spi_activate_vals), 0x0, "SPI Activate Input mode", HFILL }},
+               { &hf_mq_spi_spai_mode    ,{"Mode", "mq.spai.mode", FT_UINT32, BASE_DEC, VALS(GET_VALSV(spi_activate)), 0x0, "SPI Activate Input mode", HFILL }},
                { &hf_mq_spi_spai_unknown1,{"Unknown1", "mq.spai.unknown1", FT_STRINGZ, BASE_NONE, NULL, 0x0, "SPI Activate Input unknown1", HFILL }},
                { &hf_mq_spi_spai_unknown2,{"Unknown2", "mq.spai.unknown2", FT_STRINGZ, BASE_NONE, NULL, 0x0, "SPI Activate Input unknown2", HFILL }},
                { &hf_mq_spi_spai_msgid   ,{"Message Id", "mq.spai.msgid", FT_STRINGZ, BASE_NONE, NULL, 0x0, "SPI Activate Input message id", HFILL }},
@@ -3706,9 +3761,9 @@ void proto_register_mq(void)
                { &hf_mq_msgreq_encoding,{"encoding", "mq.msgreq.encoding", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, "MSGREQ encoding", HFILL }},
                { &hf_mq_msgreq_unknown6,{"unknown6", "mq.msgreq.unknown6", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, "MSGREQ unknown6", HFILL }},
                { &hf_mq_msgreq_unknown7,{"unknown7", "mq.msgreq.unknown7", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, "MSGREQ unknown7", HFILL }},
-               { &hf_mq_msgreq_unknown8,{"unknown8", "mq.msgreq.unknown8", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, "MSGREQ unknown8", HFILL }},
-               { &hf_mq_msgreq_msgid   ,{"msgid...", "mq.msgreq.msgid", FT_STRINGZ, BASE_NONE, NULL, 0x0, "MSGREQ msgid", HFILL }},
-               { &hf_mq_msgreq_mqmid   ,{"mqmid...", "mq.msgreq.mqmid", FT_STRINGZ, BASE_NONE, NULL, 0x0, "MSGREQ mqmid", HFILL }},
+               { &hf_mq_msgreq_xfldflag,{"xfldflag", "mq.msgreq.xfldflag", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, "MSGREQ Extended Field Flag", HFILL }},
+               { &hf_mq_msgreq_msgid   ,{"msgid...", "mq.msgreq.xfldmsgid", FT_STRINGZ, BASE_NONE, NULL, 0x0, "MSGREQ xfld msgid", HFILL }},
+               { &hf_mq_msgreq_mqmid   ,{"mqmid...", "mq.msgreq.xfldmqmid", FT_STRINGZ, BASE_NONE, NULL, 0x0, "MSGREQ xfld mqmid", HFILL }},
 
                { &hf_mq_msgasy_version ,{"version.", "mq.msgasy.version", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, "MSGASYNC version", HFILL }},
                { &hf_mq_msgasy_handle  ,{"handle..", "mq.msgasy.handle", FT_UINT32, BASE_HEX, NULL, 0x0, "MSGASYNC handle", HFILL }},
@@ -3731,8 +3786,8 @@ void proto_register_mq(void)
 
                { &hf_mq_notif_vers     ,{"version.", "mq.notif.vers", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, "NOTIFICATION version", HFILL }},
                { &hf_mq_notif_handle   ,{"handle..", "mq.notif.handle", FT_UINT32, BASE_HEX, NULL, 0x0, "NOTIFICATION handle", HFILL }},
-               { &hf_mq_notif_unknown3 ,{"unknown3", "mq.notif.unknown3", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, "NOTIFICATION unknown3", HFILL }},
-               { &hf_mq_notif_unknown4 ,{"unknown4", "mq.notif.unknown4", FT_UINT32, BASE_HEX_DEC, NULL, 0x0, "NOTIFICATION unknown4", HFILL }},
+               { &hf_mq_notif_code     ,{"code....", "mq.notif.code", FT_UINT32, BASE_HEX_DEC, VALS(GET_VALSV(notifcode)), 0x0, "NOTIFICATION code", HFILL }},
+               { &hf_mq_notif_mqrc     ,{"mqrc....", "mq.notif.mqrc", FT_UINT32, BASE_HEX_DEC, VALS(GET_VALSV(mqrc)), 0x0, "NOTIFICATION MQRC", HFILL }},
 
                { &hf_mq_ping_length    ,{"Length", "mq.ping.length", FT_UINT32, BASE_DEC, NULL, 0x0, "PING length", HFILL }},
                { &hf_mq_ping_buffer    ,{"Buffer", "mq.ping.buffer", FT_BYTES, BASE_NONE, NULL, 0x0, "PING buffer", HFILL }},
@@ -3746,7 +3801,7 @@ void proto_register_mq(void)
 
                { &hf_mq_od_structid    ,{"structid.........", "mq.od.structid", FT_STRINGZ, BASE_NONE, NULL, 0x0, NULL, HFILL }},
                { &hf_mq_od_version     ,{"version..........", "mq.od.version", FT_UINT32, BASE_DEC, NULL, 0x0, "OD version", HFILL }},
-               { &hf_mq_od_objecttype  ,{"ObjType..........", "mq.od.objtype", FT_UINT32, BASE_DEC, VALS(mq_objtype_vals), 0x0, "OD object type", HFILL }},
+               { &hf_mq_od_objecttype  ,{"ObjType..........", "mq.od.objtype", FT_UINT32, BASE_DEC, VALS(GET_VALSV(objtype)), 0x0, "OD object type", HFILL }},
                { &hf_mq_od_objectname  ,{"ObjName..........", "mq.od.objname", FT_STRINGZ, BASE_NONE, NULL, 0x0, "OD object name", HFILL }},
                { &hf_mq_od_objqmgrname ,{"ObjQMgr..........", "mq.od.objqmgrname", FT_STRINGZ, BASE_NONE, NULL, 0x0, "OD object queue manager name", HFILL }},
                { &hf_mq_od_dynqname    ,{"DynQName.........", "mq.od.dynqname", FT_STRINGZ, BASE_NONE, NULL, 0x0, "OD dynamic queue name", HFILL }},
@@ -3795,7 +3850,7 @@ void proto_register_mq(void)
                { &hf_mq_md_userid      ,{"UserId...", "mq.md.userid", FT_STRINGZ, BASE_NONE, NULL, 0x0, "MD UserId", HFILL }},
                { &hf_mq_md_acttoken    ,{"AccntTok.", "mq.md.acttoken", FT_BYTES, BASE_NONE, NULL, 0x0, "MD accounting token", HFILL }},
                { &hf_mq_md_appliddata  ,{"AppIdData", "mq.md.appldata", FT_STRINGZ, BASE_NONE, NULL, 0x0, "MD Put applicationId data", HFILL }},
-               { &hf_mq_md_putappltype ,{"PutAppTyp", "mq.md.appltype", FT_INT32, BASE_DEC, VALS(mq_mqat_vals), 0x0, "MD Put application type", HFILL }},
+               { &hf_mq_md_putappltype ,{"PutAppTyp", "mq.md.appltype", FT_INT32, BASE_DEC, VALS(GET_VALSV(mqat)), 0x0, "MD Put application type", HFILL }},
                { &hf_mq_md_putapplname ,{"PutAppNme", "mq.md.applname", FT_STRINGZ, BASE_NONE, NULL, 0x0, "MD Put application name", HFILL }},
                { &hf_mq_md_putdate     ,{"PutDatGMT", "mq.md.date", FT_STRINGZ, BASE_NONE, NULL, 0x0, "MD Put date", HFILL }},
                { &hf_mq_md_puttime     ,{"PutTimGMT", "mq.md.time", FT_STRINGZ, BASE_NONE, NULL, 0x0, "MD Put time", HFILL }},
@@ -3815,7 +3870,7 @@ void proto_register_mq(void)
                { &hf_mq_dlh_encoding   ,{"Encoding.", "mq.dlh.encoding", FT_UINT32, BASE_DEC, NULL, 0x0, "DLH encoding", HFILL }},
                { &hf_mq_dlh_ccsid      ,{"CCSID....", "mq.dlh.ccsid", FT_INT32, BASE_DEC, NULL, 0x0, "DLH character set", HFILL }},
                { &hf_mq_dlh_format     ,{"Format...", "mq.dlh.format", FT_STRINGZ, BASE_NONE, NULL, 0x0, "DLH format", HFILL }},
-               { &hf_mq_dlh_putappltype,{"PutAppTyp", "mq.dlh.putappltype", FT_INT32, BASE_DEC, VALS(mq_mqat_vals), 0x0, "DLH put application type", HFILL }},
+               { &hf_mq_dlh_putappltype,{"PutAppTyp", "mq.dlh.putappltype", FT_INT32, BASE_DEC, VALS(GET_VALSV(mqat)), 0x0, "DLH put application type", HFILL }},
                { &hf_mq_dlh_putapplname,{"PutAppNme", "mq.dlh.putapplname", FT_STRINGZ, BASE_NONE, NULL, 0x0, "DLH put application name", HFILL }},
                { &hf_mq_dlh_putdate    ,{"PutDatGMT", "mq.dlh.putdate", FT_STRINGZ, BASE_NONE, NULL, 0x0, "DLH put date", HFILL }},
                { &hf_mq_dlh_puttime    ,{"PutTimGMT", "mq.dlh.puttime", FT_STRINGZ, BASE_NONE, NULL, 0x0, "DLH put time", HFILL }},
@@ -3973,6 +4028,7 @@ void proto_register_mq(void)
                &ett_mq_api,
                &ett_mq_socket,
                &ett_mq_msh,
+               &ett_mq_caut,
                &ett_mq_xqh,
                &ett_mq_id,
                &ett_mq_id_icf,