QMI dissector for Wireshark supporting QMI-over-MBIM decoding in Windows

The Wireshark QMI dissector has a new commit for supporting QMI-over-MBIM feature in Windows.

QMI dissector

QMI dissector and the MBIM protocol

Qualcomm modems that presents a composition with an MBIM device (e.g. 0x1051 for Telit FN980) can also be managed through the QMI protocol, since Qualcomm added a custom MBIM service with UUID {D1A30BC2-F97A-6E43-BF65-C7E24FB0F0D3} that allows talking to the modem using QMI.

The MBIM command ID to use is 1 and the payload of the MBIM packet is the QMUX buffer: this is the only things that are needed to know, since the rest is the usual QMI stuff.

Commit “Add support for QMI-over-MBIM“, checks first if the interface class is compatible with an MBIM device and then looks for the QMI over MBIM service UUID. If found, the starting offset is changed accordingly so that the remaining dissector code can decode the qmi request.

This is not completely yet working in Linux (only responses are properly decoded), but it’s on my TODO list…

EDIT: the dissector issue for set messages has been fixed with commit “Fix qmi-over-mbim set messages decoding in Linux“. Basically it was related to the different structure of USBpcap pseudo-header and Linux URB.