Ethereal-dev: Re: [Ethereal-dev] MQ PCF dissector

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

From: metatech <metatech@xxxxxxxxxxxxx>
Date: Sun, 02 May 2004 12:14:19 +0200

> packet-mq-pcf is a MQ subdissector for the "MQ Programmable Command Formats > protocol" (it allows remote configuration of the MQ server (queue manager)).

Checked in, with some compiler warnings cleaned up.

The "heuristic" dissector doesn't appear to look at the packet itself;
it appears to look at a string field from the MQ packet, supplied to the
subdissector through the private_data pointer.

If it's always the case that a format property value of "MQADMIN ",
"MQEVENT ", or "MQPCF " always means it's a PCF packet, that should
probably be done, instead, with a string dissector table in the MQ
dissector, with the PCF dissector registering itself in that dissector
with values of MQ_FMT_ADMIN, MQ_FMT_EVENT, and MQ_FMT_PCF.

Guy,

Here is the rationale behind that decision.

MQ has a series of about 20 pre-defined message formats.
One important feature of MQ is the character set conversion, which allows EBCDIC mainframes to talk to ASCII workstations.
Conversion only works with one of the pre-defined message formats.
An application can define its own message format but it will considered as binary by MQ (no conversion).

http://www.developer.ibm.com/tech/faq/individual?oid=2:13624
http://www.developer.ibm.com/tech/faq/individual?oid=2:26099

In the end, nearly all applications use the MQFMT_STRING and the MQFMT_NONE message formats. Even IBM applications like WBIFN (WebSphere Business Integration for Financial Networks) use MQFMT_STRING.

The PCF format is an exception because it has its own pre-defined message format. So a "normal" MQ subdissector can only rely on a heuristic method to recognise the packet or not.

See you,

metatech