I2C SPI USB CAN eSPI Cable Testing View All Quick Start Guides User Manuals Software Downloads Knowledge Base Videos Case Studies App Notes White Papers Sales Support About Us
Products Blog Sales Support Contact Search
Why is Captured USB Traffic Showing Orphaned Data Transactions and How Do I Get Around That?
Rena Ayeras

Question from the Customer:

I am using the Beagle USB 5000 v2 SuperSpeed Protocol Analyzer - Standard Edition, and I am having some issues with seeing orphaned packets and empty packets. Some IN (incoming) packets are displayed as orphans, and some IN packets are displayed with no data. What are the potential causes of these orphaned packets? How can these problems be addressed? Here are two examples of what I have seen:

  • Packets labeled “ORPHANED” contain no data (as well as “IN-NAK” packets).

    Orphaned Packet without Data displayed by the Data Center Software Orphaned Packet without Data
  • Looking at “IN” packets, most packets contain data, but other “IN” packets do not contain data.

    Details of captured packets that contain and do not contain data IN Packets with and without Data
Response from Technical Support:

Thanks for your questions! Orphaned transactions indicate that not all data was visible to the Beagle USB analyzer; only a portion of the data within the packet was captured. There are two common reasons for this to occur: multiple devices with one controller or data from different branches of the USB tree, which we will cover in the following sections.

Orphaned Data – One Controller and Multiple Devices

It is common to observe orphaned packets when multiple devices are plugged into the same host controller or if a USB hub is present on the bus. In such cases, the target device (Device A) has an internal USB host controller. The target device may also have multiple internal USB host controllers and devices, as well as an internal USB hub.

We will refer to the target’s internal device as Device B, and that internal device is connected to the same USB host controller as the Beagle USB analyzer. This internal USB device in the system, Device B, can be connected with or without an internal USB hub. In this scenario, the Beagle sees all the traffic between the host and Device A, but only the downstream traffic from the host to Device B. Here are two common reasons why orphaned packets can occur in this setup:

  • The USB host controller inside the target host may send an IN to Device B. The Device B may NAK the IN, but the Beagle USB analyzer may see only the IN.
  • 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.

We have two approaches for this problem, both of which use filtering.

Select Devices on the USB Host

To observe only the packets of the selected device:

  1. Expand USB 2.0 from the Navigator column in the left side of the Data Center Software You will see the list of all the devices that are connected to the USB host.
  2. One by one, right-click each device, then select the desired options to filter in or filter out the packets of each device.

Filter Captured Data

LiveFilter is another option, which is accessed via Data Center Software. LiveFilter allows you to focus on the data you need by using many filtering options. Here is a video that shows how this feature works:

For more information about filtering a bus capture, please refer to the Data Center Software User Manual.

Orphaned Data – Different Branches of USB Tree

Orphaned transactions can also occur when the target device is on a different branch of the USB tree. In this case, the Beagle USB analyzer may only see a portion of the data packet.

For an Orphaned transaction, there are two traces to look at: Endpoint 2 and the default endpoint, Endpoint 0. For this scenario, we recommend filtering the Endpoint 2 transactions. The easiest way to achieve this is with Quick Filters. To do this:

  1. In the Data Center Software window, right-click any transaction from Device 1 Endpoint 2.
  2. To filter the captured date, choose Quick Filters->Show Except Endpoint.

    Using Filtering to hide orphaned packets from the data viewed Filtering Endpoint Transactions

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.