Wireshark-dev: [Wireshark-dev] [USB Audio 1.0] Undissected packet

From: Antti Keskinen <antti.keskinen@xxxxxxxxxxxxx>
Date: Wed, 24 Sep 2025 21:42:05 +0300
Hi,

When developing a new USB Audio 1.0 -based device on Windows, I came across the following packet that Wireshark 4.4.9 (v4.4.9-0-g57bf67214076) fails to dissect. The raw data is provided in the attachment.

This specific request is the SAMPLING_FREQ_CONTROL, directed at an endpoint entity which previously reported supporting the 0x01 "Sampling Frequency Control" in the bmAttributes field as described in chapter 4.6.1.2 on page 62 of the USB Audio 1.0 specification.

The content of this request is described in chapter 5.2.3.2.3.1 on page 96 of the specification.

Regards,
Antti Keskinen
No.     Time           Source                Destination           Protocol Length Info
    601 2.215214       host                  2.4.0                 USBAUDIO 39     SET request

Frame 601: 39 bytes on wire (312 bits), 39 bytes captured (312 bits) on interface \\.\USBPcap2, id 0
    Section number: 1
    Interface id: 0 (\\.\USBPcap2)
        Interface name: \\.\USBPcap2
        Interface description: USBPcap2
    Encapsulation type: USB packets with USBPcap header (152)
    Arrival Time: Sep 24, 2025 20:41:19.824289000 FLE Daylight Time
    UTC Arrival Time: Sep 24, 2025 17:41:19.824289000 UTC
    Epoch Arrival Time: 1758735679.824289000
    [Time shift for this packet: 0.000000000 seconds]
    [Time delta from previous captured frame: 0.000020000 seconds]
    [Time delta from previous displayed frame: 0.000020000 seconds]
    [Time since reference or first frame: 2.215214000 seconds]
    Frame Number: 601
    Frame Length: 39 bytes (312 bits)
    Capture Length: 39 bytes (312 bits)
    [Frame is marked: False]
    [Frame is ignored: False]
    [Protocols in frame: usb:usbaudio]
USB URB
    [Source: host]
    [Destination: 2.4.0]
    USBPcap pseudoheader length: 28
    IRP ID: 0xffff808688306850
    IRP USBD_STATUS: USBD_STATUS_SUCCESS (0x00000000)
    URB Function: URB_FUNCTION_CLASS_ENDPOINT (0x001c)
    IRP information: 0x00, Direction: FDO -> PDO
        0000 000. = Reserved: 0x00
        .... ...0 = Direction: FDO -> PDO (0x0)
    URB bus id: 2
    Device address: 4
    Endpoint: 0x00, Direction: OUT
        0... .... = Direction: OUT (0)
        .... 0000 = Endpoint number: 0
    URB transfer type: URB_CONTROL (0x02)
    Packet Data Length: 11
    [Response in: 602]
    Control transfer stage: Setup (0)
    [bInterfaceClass: Audio (0x01)]
Setup Data
    bmRequestType: 0x22
        0... .... = Direction: Host-to-device
        .01. .... = Type: Class (0x1)
        ...0 0010 = Recipient: Endpoint (0x02)
    Not dissected yet (report to wireshark.org)
        [Expert Info (Warning/Undecoded): Not dissected yet (report to wireshark.org)]
            [Not dissected yet (report to wireshark.org)]
            [Severity level: Warning]
            [Group: Undecoded]
    Data Fragment: 44ac00

Frame (39 bytes):
0000  1c 00 50 68 30 88 86 80 ff ff 00 00 00 00 1c 00   ..Ph0...........
0010  00 02 00 04 00 00 02 0b 00 00 00 00 22 01 00 01   ............"...
0020  81 00 03 00 44 ac 00                              ....D..
USB Control (10 bytes):
0000  01 00 01 81 00 03 00 44 ac 00                     .......D..

No.     Time           Source                Destination           Protocol Length Info
    602 2.218169       2.4.0                 host                  USBAUDIO 28     SET status

Frame 602: 28 bytes on wire (224 bits), 28 bytes captured (224 bits) on interface \\.\USBPcap2, id 0
    Section number: 1
    Interface id: 0 (\\.\USBPcap2)
        Interface name: \\.\USBPcap2
        Interface description: USBPcap2
    Encapsulation type: USB packets with USBPcap header (152)
    Arrival Time: Sep 24, 2025 20:41:19.827244000 FLE Daylight Time
    UTC Arrival Time: Sep 24, 2025 17:41:19.827244000 UTC
    Epoch Arrival Time: 1758735679.827244000
    [Time shift for this packet: 0.000000000 seconds]
    [Time delta from previous captured frame: 0.002955000 seconds]
    [Time delta from previous displayed frame: 0.002955000 seconds]
    [Time since reference or first frame: 2.218169000 seconds]
    Frame Number: 602
    Frame Length: 28 bytes (224 bits)
    Capture Length: 28 bytes (224 bits)
    [Frame is marked: False]
    [Frame is ignored: False]
    [Protocols in frame: usb]
USB URB
    [Source: 2.4.0]
    [Destination: host]
    USBPcap pseudoheader length: 28
    IRP ID: 0xffff808688306850
    IRP USBD_STATUS: USBD_STATUS_SUCCESS (0x00000000)
    URB Function: URB_FUNCTION_CONTROL_TRANSFER (0x0008)
    IRP information: 0x01, Direction: PDO -> FDO
        0000 000. = Reserved: 0x00
        .... ...1 = Direction: PDO -> FDO (0x1)
    URB bus id: 2
    Device address: 4
    Endpoint: 0x00, Direction: OUT
        0... .... = Direction: OUT (0)
        .... 0000 = Endpoint number: 0
    URB transfer type: URB_CONTROL (0x02)
    Packet Data Length: 0
    [Request in: 601]
    [Time from request: 0.002955000 seconds]
    Control transfer stage: Complete (3)
    [bInterfaceClass: Audio (0x01)]

0000  1c 00 50 68 30 88 86 80 ff ff 00 00 00 00 08 00   ..Ph0...........
0010  01 02 00 04 00 00 02 00 00 00 00 03               ............