Huge thanks to our Platinum Members Endace and LiveAction,
and our Silver Member Veeam, for supporting the Wireshark Foundation and project.

Ethereal-dev: [Ethereal-dev] Submission of a dissector for the IBM WebSphere MQ protocol v1.11

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: metatech <metatech@xxxxxxxxxxxxx>
Date: Wed, 24 Mar 2004 20:54:50 +0100

It compiled with only one warning on my FreeBSD 3.4 machine:

        ../packet-mq.c:731: warning: unused variable `iVersionUID'

Guy,
I am afraid the compiler is correct. The UID structure does not have a version field, only the ID structure has. I removed the variable. I also took another way to compute the length of this structure (same of the MQCONN struture), which avoids maintaining a state between packets.

If it's not to difficult to determine the length of an MQ message by
looking at the first few bytes of the message, it wouldn't be too hard
to make it use "tcp_dissect_pdus()" to handle those issues.

I adapted my dissector quite easily (there is indeed a length field at the beginning of the MQ message), but I do not see the difference with the non desegmented mode. I tried with a long MQ message that spans on two Ethernet frames. The dissector is called twice, once for each Ethernet frame. I tried with two messages in the same Ethernet frame. The dissector is called once with a tvbuffer containing the whole packet.
I am not sure that I understand what should happen in desegment mode.

In the mean time I have made a few enhancements to my dissector, namely the heuristic detection now fully works. In the previous version, a PDU that was spun amongst two Ethernet frames was not recognised at all.

I hope I can integrate the desegmentation mode for the next version,

Attachement : version 1.11 of the dissector

Best regards,

metatech

Attachment: packet-mq111.zip
Description: Zip archive