Reference

NetPacket::USBMon(3pm)

Assemble and disassemble USB packets captured via Linux USBMon interface.

NAME

NetPacket::USBMon - Assemble and disassemble USB packets captured via Linux USBMon interface.

VERSION

version 1.7.2

SYNOPSIS

  use NetPacket::USBMon;
  $usb = NetPacket::USBMon->decode($raw_pkt);

DESCRIPTION

"NetPacket::USBMon" is a NetPacket decoder of USB packets captured via Linux USBMon interface.

Methods

"NetPacket::USBMon->decode([RAW PACKET])"

Decode a USB packet.

Instance data

The instance data for the "NetPacket::UDP" object consists of the following fields.

id

An in-kernel address of the USB Request Block (URB). Stays the same for the transaction submission and completion.

Might be truncatted when reading a 64-bit capture with 32-bit file.

type

URB type. Character 'S', 'C' or 'E', for constants USB_TYPE_SUBMISSION, USB_TYPE_CALLBACK or USB_TYPE_ERROR.

xfer_type

Transfer type. USB_XFER_TYPE_ISO, USB_XFER_TYPE_INTR, USB_XFER_TYPE_CONTROL or USB_XFER_TYPE_BULK.

ep

Endpoint identification.

num

Endpoint number.

dir

Transfer direction. "IN" or "OUT".

devnum

Device address.

busnum

Bus number.

flag_setup

Indicates whether setup is present and makes sense.

flag_data

Indicates whether data is present and makes sense.

ts_sec

Timestamp seconds since epoch. Subject to truncation with 32-bit Perl, which should be fine until 2038.

ts_usec

Timestamp microseconds.

status

URB status. Negative errno.

length

Length of data (submitted or actual).

len_cap

Delivered length

setup

Only present for packets with setup_flag turned on. Some contents are dependent on actual request type.

bmRequestType
bRequest
wValue
wIndex
wLength
iso

Only present for isochronous transfers.

error_count
numdesc
interval

Isochronous packet response rate.

start_frame

Only applicable to isochronous transfers.

xfer_flags

A copy of URB's transfer_flags.

ndesc

Actual number of isochronous descriptors.

data

Packet payload.

Exports

default

none

exportable

USB_TYPE_SUBMISSION, USB_TYPE_CALLBACK, USB_TYPE_ERROR, USB_XFER_TYPE_ISO, USB_XFER_TYPE_INTR, USB_XFER_TYPE_CONTROL, USB_XFER_TYPE_BULK, USB_FLAG_SETUP_IRRELEVANT, USB_FLAG_SETUP_RELEVANT, USB_FLAG_DATA_ERROR, USB_FLAG_DATA_INCOMING, USB_FLAG_DATA_OUTGOING, USB_FLAG_DATA_PRESENT, USB_TYPE_VENDOR

tags

The following tags group together related exportable items.

":types"

USB_TYPE_SUBMISSION, USB_TYPE_CALLBACK, USB_TYPE_ERROR

":xfer_types"

USB_XFER_TYPE_ISO, USB_XFER_TYPE_INTR, USB_XFER_TYPE_CONTROL, USB_XFER_TYPE_BULK

":setup_flags"

USB_FLAG_SETUP_IRRELEVANT, USB_FLAG_SETUP_RELEVANT

":data_flags"

USB_FLAG_DATA_ERROR, USB_FLAG_DATA_INCOMING, USB_FLAG_DATA_OUTGOING, USB_FLAG_DATA_PRESENT

":setup_types"

USB_TYPE_VENDOR

":ALL"

All the above exportable items.

COPYRIGHT

Copyright (c) 2013 Lubomir Rintel.

This module is free software. You can redistribute it and/or modify it under the same terms as Perl itself.

AUTHOR

Lubomir Rintel <[email protected]>

History