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: Sun, 8 May 2022 14:15:38 -0700

--- Begin Message --- From: Guy Harris <gharris () sonic net>
Date: Sun, 8 May 2022 14:15:38 -0700
On May 8, 2022, at 1:30 PM, Michael Richardson <mcr () sandelman ca> wrote:

I guess I would have thought that a physical bus could have a mix of
different devices which operate at different speeds.  As such, I wondered if
you really needed pcapng to be able to mix LINKTYPES in the same file, or
a different bit of meta-data to indicate bus speed for each frame captured.

But, maybe I'm wrong and that actually requires there to be a USB hub out there.

"Bus" is a bit weird here.

To quote section 4.1.1 "Bus Topology" of the USB 2.0 pec:

        The USB connects USB devices with the USB host. The USB physical interconnect is a tiered star topology. A hub 
is at the center of each star. Each wire segment is a point-to-point connection between the host and a hub or function, 
or a hub connected to another hub or function. Figure 4-1 illustrates the topology of the USB.

and Figure 5-6 "Multiple Full-speed Buses in a High-speed System" seems to use the term "bus" to refer to wire segments.

I think a point-to-point connection between the host and another entity may always run at a single speed, as well as a 
connection between a hub and a function.

It might also be the case that a hub-to-hub connection also runs at a single speed.  Section 11.14 "Transaction 
Translator" says:

        A hub has a special responsibility when it is operating in high-speed and has full-/low-speed devices connected 
on downstream facing ports. In this case, the hub must isolate the high-speed signaling environment from the 
full-/low-speed signaling environment. This function is performed by the Transaction Translator (TT) portion of the hub.

so if you have a full-speed or low-speed device plugged into a USB 2.0 hub, and that hub is connected to a host, the 
host-to-hub link is high-speed, and the hub-to-device link is full-speed or low-speed, and the hub does the 
translation.  That way, you can plug a high-speed device and a full-speed or low-speed device into the hub, and the 
host will be able to talk at high speed to the high-speed device.

USB isn't a shared bus like non-switched Ethernet; it's more like switched Ethernet or point-to-point Ethernet, with 
links being point-to-point, either a direct connection between end nodes or connections to a switching device that 
handles speed translation if two end nodes of different speed capabilities are communicating.

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

Current thread: