What Causes SPLIT and Orphaned Packets and How Do I Eliminate Them from a USB Capture?

Question from the Customer:

I’m using the Beagle USB 480 Protocol Analyzer, which is connected to a USB hub with both ports. A mass storage device is connected to the Beagle USB 480 analyzer’s device port. .

In the Data Center Software, the captured data includes a lot of SPLIT and ORPHANED packets. I can filter out the SPLIT packets in the Device Settings, but I still get the ORPHANED packets. What causes ORPHANED packets?  How can I avoid filter out these packets from the data trace?

Response from Technical Support:

Thanks for your questions!  ORPHANED packets often occur when multiple devices are plugged into the same host controller or if a USB hub is present on the bus. Your host system may have an internal USB host controller. Depending on the devices and the speed, this can cause SPLIT packets to occur, which may result in ORPHANED packets.  The setup described has both the Analysis and Host ports of the Beagle USB 480 analyzer connected to the same hub, which is the same as if they were connected to the same host controller.

What is an Orphaned Transaction?

ORPHANED transactions occur when the Beagle USB 480 analyzer only sees one side of a data transfer. . This will happen when the analyzer and target system are all connected to the same USB host controller but the another device is on a different branch of the USB tree. Since all messages from a USB host are broadcast throughout the entire bus, the Beagle USB 480 analyzer will see all messages sent from the USB host controller, however because a USB device will only send upstream messages along its path (not broadcast to the entire bus), the Beagle USB 480 analyzer will only see one half of the conversation. For more information, please see the Orphaned Packet section of the Data Center Software User Manual.

What Causes Orphaned Packets

Your target device may have an internal USB device that is connected to the same USB host controller to which the Beagle USB 480 analyzer is also connected. This potential internal USB devicein your system may be connected through an internal USB hub depending on how the system is designed.

The Beagle USB 480 analyzer detects all the traffic between the host and target device, but only detects the downstream traffic from the host to any other USB devices that are not downstream from the Beagle USB 480 analyzer. These orphaned packets can also occur if there is internal USB hub in the target host and the USB host controller sends transactions to the internal USB hub.

How SPLIT Transfers Are Used

Hosts use SPLIT transfers to communicate with full/low speed USB devices through a High-speed USB hub. These transfers have a Start SPLIT and may also include polling and handshaking.

Low/Full Speed USB

When a low/full speed USB device, such as a keyboard or mouse, is connected to the computer’s internal hub, the host sends High-speed SPLIT packets to the hub to provide control information about sending low/full speed packets to the appropriate low/full speed USB device.

Why the Beagle USB 480 Analyzer Sees Orphaned Packets

When the hub receives High-speed packets from the host, the hub retransmits the High-speed packets to the High-speed target device that is connected to the hub, such as a High-speed USB flash stick.  Although the low/full speed USB device is not present on the Beagle USB 480 analyzer’s data path, it will still see SPLIT/ORPHANED packets from the communication between the hub and the host.  To economically support multiple peripherals, such as keyboards, mice, printers, and more, computers usually have internal USB hubs.

Filtering USB Data

There are two ways to filter USB data. For basic filtering:

  1. Expand USB 2.0 in the Bus Tree located in the Navigator pane of the Data Center Software. This will list all the devices that are connected to the USB host.
  2. Right click the desired device(s) and select the desired filter option.
    Filter Option for Beagle USB Protocol Analzyer

You can also use the LiveFilter option to filter out individual packet types.  Example of the filtering  is  shown in the video below. For more information about LiveFilter, please refer to the Filtering a Capture section of the Data Center Software User Manual.

We hope this answers your questions. Additional resources that you may find helpful include the following:

If you want more information, feel free to contact us with your questions, or request a demo that applies to your application.