tcpdump mailing list archives

Re: Speed specific Link-Layer Header Types for USB 2.0


From: Tomasz Moń via tcpdump-workers <tcpdump-workers () lists tcpdump org>
Date: Mon, 09 May 2022 16:21:36 +0200

--- Begin Message --- From: Tomasz Moń <desowin () gmail com>
Date: Mon, 09 May 2022 16:21:36 +0200
On Mon, 2022-05-09 at 07:47 +0200, Tomasz Moń wrote:
The problematic case (and the reason why full/low-speed bus is
mentioned) is the LINKTYPE_USB_2_0_FULL_SPEED. It is the case when
you capture at the connection between full speed hub and the host
(and possibly full speed device connected to a full speed hub if
there arelow speed devices connected to the full speed hub).

The low speed packets (after the PRE packet) intended for low-speed
device connected to full-speed hub downstream port, do appear on the
link between full-speed hub and full-speed device.

If there is low speed device connected to downstream hub port, then
when the host wants to send packets to the low speed device, these
will be sent at low speed to the hub. However, there will be PRE
packet (sent at full speed) before every low speed transaction.

Hopefully I have recently found full-speed only hub (thanks to Linux
kernel bug report [1]), so I have all the equipment necessary to
check how the OpenVizsla deals with the problematic case.

[1] https://bugzilla.kernel.org/show_bug.cgi?id=213839

OpenVizsla does not handle this case. While the PRE packet is correctly
captured, the low-speed data is just exported by gateware as invalid
packet. Similarly, the LambdaConcept USB2 sniffer does not handle this.
LCSniff displays the "ERR/PRE Packet" colored in red (with no
indication of the low-speed data).

When OpenVizsla is configured to capture low-speed connection with the
capture cable connected between host and full-speed hub, the data is
just garbled. The only way to capture the low-speed data (with
OpenVizsla configured to capture low-speed) is to capture it between
the full-speed hub downstream port and low-speed device.

I am not really surprised that both OpenVizsla and LambdaConcept USB2
sniffer fail at this problematic case. This is a corner case really,
and it is not that much relevant nowadays where majority of hubs are
high-speed capable. When the high-speed hub is connected to high-speed
host, there is no problem with full/low speed packets as each
downstream port receives data at target device speed.

I am not sure if the capture problem can be solved with current
OpenVizsla and LambdaConcept USB2 sniffer design. If possible, then the
necessary changes would require gateware modifications.

--- End Message ---
_______________________________________________
tcpdump-workers mailing list
tcpdump-workers () lists tcpdump org
https://lists.sandelman.ca/mailman/listinfo/tcpdump-workers

Current thread: