tcpdump mailing list archives

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


From: Guy Harris via tcpdump-workers <tcpdump-workers () lists tcpdump org>
Date: Mon, 9 May 2022 11:52:54 -0700

--- Begin Message --- From: Guy Harris <gharris () sonic net>
Date: Mon, 9 May 2022 11:52:54 -0700
On May 9, 2022, at 1:58 AM, Tomasz Moń <desowin () gmail com> wrote:

On Mon, May 9, 2022 at 9:17 AM Guy Harris <gharris () sonic net> wrote:
On May 8, 2022, at 10:47 PM, Tomasz Moń <desowin () gmail com> wrote:
On Sun, May 8, 2022 at 8:53 PM Guy Harris <gharris () sonic net> wrote:
At least from a quick look at section 5.2.3 "Physical Bus Topology" of the USB 2.0 spec, a given bus can either be 
a high-speed bus or a full/low-speed bus.

The full/low-speed bus applies only to upstream link from full speed hub.

So what happens if you plug a low-speed keyboard or mouse into a host that supports USB 2.0?  Does that link not run 
at low speed?

The link will run at low speed.

So what kind of bus is that link?  High-speed, full/low-speed, or low-speed?

"super-speed" is USB 3.0, right?  No LINKTYPE_/DLT_ has been proposed for the 3.0 link layer, as far as I know.

Yes, "super-speed" is USB 3.0. I don't know of any open source sniffer
nor any tools that would really want to export the packets to pcap
format.

And, if there ever *are* (I see no reason to rule it out), they can ask for another link-layer type when they need it.

But no full-speed or low-speed will go over that connection, either, so it's never the case that, in a capture on a 
USB cable, there will be both high-speed and full/low-speed traffic, right?

Yes. You either get solely high-speed traffic or full/low-speed traffic.

OK, so it makes sense to have a separate link-layer type for high-speed traffic, rather than a single link-layer type 
for "USB link-layer with metadata header, with the per-packet metadata header indicating the speed".

But, if, as you said earlier:

If you capture at the connection between low speed device and
host/hub, there will only ever be low speed packets. It would be a
LINKTYPE_USB_2_0_LOW_SPEED capture.

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 are
low speed devices connected to the full speed hub). 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.

can there be separate link-layer types for full-speed and low-speed traffic, or does there need to be a single type for 
full/low-speed traffic, with a per-packet metadata header indicating the speed"?

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

Current thread: