Real-time hierarchical protocol decoding
AssigneeTotal Phase, Inc.
InventorsKumaran Santhanam, Leonid Vaynberg
Life of this patent
Estimating the term…
Abstract
Real-time USB class level decoding is disclosed. In some embodiments, a first packet associated with a USB class level operation associated with a target USB device that is being monitored is received. A second packet generated by a USB hardware analyzer configured to observe USB traffic associated with the target USB device is received. It is determined based at least in part on a time associated with one or both of the first packet and the second packet that the class level operation has timed out.
Claims18
A method of analyzing USB data, comprising:
- copying an enumeration record from a first storage location in a buffer configured to store USB data associated with a target USB device to a second storage location not in the buffer, based at least in part on an indication that the enumeration record as stored in the buffer may be overwritten;
- using the enumeration record as stored in the second location to perform USB class level decoding of a set of USB data associated with the target device;
- and
- indexing the copied enumeration record to facilitate retrieval of the copied enumeration record from the second storage location.
An analysis system, comprising:
- a memory configured to store a buffer configured to store USB data associated with a target USB device;
- and
- a processor coupled to the memory and configured to:
- copy an enumeration record from a first storage location in the buffer to a second storage location not in the buffer, based at least in part on an indication that the enumeration record as stored in the buffer may be overwritten;
- use the enumeration record as stored in the second location to perform USB class level decoding of a set of USB data associated with the target device;
- and
- index the copied enumeration record to facilitate retrieval of the copied enumeration record from the second storage location.
A method of displaying USB data, comprising:
- grouping packets of a first type for visual display in a group entry displayed in a display location that allows a set of one or more class level records associated with a USB class level operation to be displayed contiguously without an intervening representation of one or more packets of the first type intervening, even if one or more packets of the first type were interspersed chronologically on a monitored bus with packets comprising the class level operation, when in a first display mode;
- grouping said packets of the first type for display, differently than in the first display mode if required, in one or more group entries displayed in one or more display locations that allow a set of one or more transaction level records to be displayed without an intervening representation of one or more packets of the first type intervening between two or more records comprising a transaction, even if one or more packets of the first type were interspersed chronologically on a monitored bus with packets comprising the transaction, when in a second display mode;
- and
- accumulating packets of the first type as received in real-time pending completion of the USB class level operation, when in the first display mode, and displaying the group entry once the USB class level operation is completed.
An analysis system, comprising:
- a display device;
- and
- a processor coupled to the display device and configured to:
- group packets of a first type for visual display in a group entry displayed on the display device in a display location that allows a set of one or more class level records associated with a USB class level operation to be displayed contiguously on the display device without an intervening representation of one or more packets of the first type intervening, even if one or more packets of the first type were interspersed chronologically on a monitored bus with packets comprising the class level operation, when in a first display mode;
- group said packets of the first type for display on the display device, differently than in the first display mode if required, in one or more group entries displayed in one or more display locations that allow a set of one or more transaction level records to be displayed on the display device without an intervening representation of one or more packets of the first type intervening between two or more records comprising a transaction, even if one or more packets of the first type were interspersed chronologically on a monitored bus with packets comprising the transaction, when in a second display mode;
- and
- accumulate packets of the first type as received in real-time pending completion of the USB class level operation, when in the first display mode, and display the group entry once the USB class level operation is completed.
A method of analyzing USB data, comprising:
- copying an enumeration record from a first storage location in a buffer configured to store USB data associated with a target USB device to a second storage location not in the buffer, based at least in part on an indication that the enumeration record as stored in the buffer may be overwritten;
- using the enumeration record as stored in the second location to perform USB class level decoding of a set of USB data associated with the target device;
- and
- tagging the enumeration record as stored in the first location with a data value indicating that the enumeration record is an enumeration record.
An analysis system, comprising:
- a memory configured to store a buffer configured to store USB data associated with a target USB device;
- and
- a processor coupled to the memory and configured to:
- copy an enumeration record from a first storage location in the buffer to a second storage location not in the buffer, based at least in part on an indication that the enumeration record as stored in the buffer may be overwritten;
- use the enumeration record as stored in the second location to perform USB class level decoding of a set of USB data associated with the target device;
- and
- tag the enumeration record as stored in the first location with a data value indicating that the enumeration record is an enumeration record.
Dependencies are inferred from the claim text.