PRELIMINARY DRAFT, MAY CONTAIN MISTAKES!
28 Jun 2011

The USB/IP protocol follows a server/client architecture. The server exports the
USB devices and the clients imports them. The device driver for the exported
USB device runs on the client machine.

The client may ask for the list of the exported USB devices. To get the list the
client opens a TCP/IP connection towards the server, and sends an OP_REQ_DEVLIST
packet on top of the TCP/IP connection (so the actual OP_REQ_DEVLIST may be sent
in one or more pieces at the low level transport layer). The server sends back
the OP_REP_DEVLIST packet which lists the exported USB devices. Finally the
TCP/IP connection is closed.

 virtual host controller                                 usb host
      "client"                                           "server"
  (imports USB devices)                             (exports USB devices)
          |                                                 |
          |                  OP_REQ_DEVLIST                 |
          | ----------------------------------------------> |
          |                                                 |
          |                  OP_REP_DEVLIST                 |
          | <---------------------------------------------- |
          |                                                 |

Once the client knows the list of exported USB devices it may decide to use one
of them. First the client opens a TCP/IP connection towards the server and
sends an OP_REQ_IMPORT packet. The server replies with OP_REP_IMPORT. If the
import was successful the TCP/IP connection remains open and will be used
to trasfer the URB traffic between the client and the server. The client may
send two types of packets: the USBIP_CMD_SUBMIT to submit an URB, and
USBIP_CMD_UNLINK to unlink a previously submitted URB. The answers of the
server may be USBIP_RET_SUBMIT and USBIP_RET_UNLINK respectively.

 virtual host controller                                 usb host
      "client"                                           "server"
  (imports USB devices)                             (exports USB devices)
          |                                                 |
          |                  OP_REQ_IMPORT                  |
          | ----------------------------------------------> |
          |                                                 |
          |                  OP_REP_IMPORT                  |
          | <---------------------------------------------- |
          |                                                 |
          |                                                 |
          |            USBIP_CMD_SUBMIT(seqnum = n)         |
          | ----------------------------------------------> |
          |                                                 |
          |            USBIP_RET_SUBMIT(seqnum = n)         |
          | <---------------------------------------------- |
          |                        .                        |
          |                        :                        |
          |                                                 |
          |            USBIP_CMD_SUBMIT(seqnum = m)         |
          | ----------------------------------------------> |
          |                                                 |
          |            USBIP_CMD_SUBMIT(seqnum = m+1)       |
          | ----------------------------------------------> |
          |                                                 |
          |            USBIP_CMD_SUBMIT(seqnum = m+2)       |
          | ----------------------------------------------> |
          |                                                 |
          |            USBIP_RET_SUBMIT(seqnum = m)         |
          | <---------------------------------------------- |
          |                                                 |
          |            USBIP_CMD_SUBMIT(seqnum = m+3)       |
          | ----------------------------------------------> |
          |                                                 |
          |            USBIP_RET_SUBMIT(seqnum = m+1)       |
          | <---------------------------------------------- |
          |                                                 |
          |            USBIP_CMD_SUBMIT(seqnum = m+4)       |
          | ----------------------------------------------> |
          |                                                 |
          |            USBIP_RET_SUBMIT(seqnum = m+2)       |
          | <---------------------------------------------- |
          |                        .                        |
          |                        :                        |
          |                                                 |
          |               USBIP_CMD_UNLINK                  |
          | ----------------------------------------------> |
          |                                                 |
          |               USBIP_RET_UNLINK                  |
          | <---------------------------------------------- |
          |                                                 |

The fields are in network (big endian) byte order meaning that the most significant
byte (MSB) is stored at the lowest address.


OP_REQ_DEVLIST: Retrieve the list of exported USB devices.

 Offset    | Length | Value      | Description
-----------+--------+------------+---------------------------------------------------
 0         | 2      | 0x0100     | Binary-coded decimal USBIP version number: v1.0.0
-----------+--------+------------+---------------------------------------------------
 2         | 2      | 0x8005     | Command code: Retrieve the list of exported USB
           |        |            |   devices.
-----------+--------+------------+---------------------------------------------------
 4         | 4      | 0x00000000 | Status: unused, shall be set to 0

OP_REP_DEVLIST: Reply with the list of exported USB devices.

 Offset    | Length | Value      | Description
-----------+--------+------------+---------------------------------------------------
 0         | 2      | 0x0100     | Binary-coded decimal USBIP version number: v1.0.0.
-----------+--------+------------+---------------------------------------------------
 2         | 2      | 0x0005     | Reply code: The list of exported USB devices.
-----------+--------+------------+---------------------------------------------------
 4         | 4      | 0x00000000 | Status: 0 for OK
-----------+--------+------------+---------------------------------------------------
 8         | 4      | n          | Number of exported devices: 0 means no exported
           |        |            |   devices.
-----------+--------+------------+---------------------------------------------------
 0x0C      |        |            | From now on the exported n devices are described,
           |        |            |   if any. If no devices are exported the message
           |        |            |   ends with the previous "number of exported
           |        |            |   devices" field.
-----------+--------+------------+---------------------------------------------------
           | 256    |            | path: Path of the device on the host exporting the
           |        |            |   USB device, string closed with zero byte, e.g.
           |        |            |   "/sys/devices/pci0000:00/0000:00:1d.1/usb3/3-2"
           |        |            |   The unused bytes shall be filled with zero
           |        |            |   bytes.
-----------+--------+------------+---------------------------------------------------
 0x10C     | 32     |            | busid: Bus ID of the exported device, string
           |        |            |   closed with zero byte, e.g. "3-2". The unused
           |        |            |   bytes shall be filled with zero bytes.
-----------+--------+------------+---------------------------------------------------
 0x12C     | 4      |            | busnum
-----------+--------+------------+---------------------------------------------------
 0x130     | 4      |            | devnum
-----------+--------+------------+---------------------------------------------------
 0x134     | 4      |            | speed
-----------+--------+------------+---------------------------------------------------
 0x138     | 2      |            | idVendor
-----------+--------+------------+---------------------------------------------------
 0x13A     | 2      |            | idProduct
-----------+--------+------------+---------------------------------------------------
 0x13C     | 2      |            | bcdDevice
-----------+--------+------------+---------------------------------------------------
 0x13E     | 1      |            | bDeviceClass
-----------+--------+------------+---------------------------------------------------
 0x13F     | 1      |            | bDeviceSubClass
-----------+--------+------------+---------------------------------------------------
 0x140     | 1      |            | bDeviceProtocol
-----------+--------+------------+---------------------------------------------------
 0x141     | 1      |            | bConfigurationValue
-----------+--------+------------+---------------------------------------------------
 0x142     | 1      |            | bNumConfigurations
-----------+--------+------------+---------------------------------------------------
 0x143     | 1      |            | bNumInterfaces
-----------+--------+------------+---------------------------------------------------
 0x144     |        | m_0        | From now on each interface is described, all
           |        |            |   together bNumInterfaces times, with the
           |        |            |   the following 4 fields:
-----------+--------+------------+---------------------------------------------------
           | 1      |            | bInterfaceClass
-----------+--------+------------+---------------------------------------------------
 0x145     | 1      |            | bInterfaceSubClass
-----------+--------+------------+---------------------------------------------------
 0x146     | 1      |            | bInterfaceProtocol
-----------+--------+------------+---------------------------------------------------
 0x147     | 1      |            | padding byte for alignment, shall be set to zero
-----------+--------+------------+---------------------------------------------------
 0xC +     |        |            | The second exported USB device starts at i=1
 i*0x138 + |        |            | with the busid field.
 m_(i-1)*4 |        |            |

OP_REQ_IMPORT: Request to import (attach) a remote USB device.

 Offset    | Length | Value      | Description
-----------+--------+------------+---------------------------------------------------
 0         | 2      | 0x0100     | Binary-coded decimal USBIP version number: v1.0.0
-----------+--------+------------+---------------------------------------------------
 2         | 2      | 0x8003     | Command code: import a remote USB device.
-----------+--------+------------+---------------------------------------------------
 4         | 4      | 0x00000000 | Status: unused, shall be set to 0
-----------+--------+------------+---------------------------------------------------
 8         | 32     |            | busid: the busid of the exported device on the
           |        |            |   remote host. The possible values are taken
           |        |            |   from the message field OP_REP_DEVLIST.busid.
           |        |            |   A string closed with zero, the unused bytes
           |        |            |   shall be filled with zeros.
-----------+--------+------------+---------------------------------------------------

OP_REP_IMPORT: Reply to import (attach) a remote USB device.

 Offset    | Length | Value      | Description
-----------+--------+------------+---------------------------------------------------
 0         | 2      | 0x0100     | Binary-coded decimal USBIP version number: v1.0.0
-----------+--------+------------+---------------------------------------------------
 2         | 2      | 0x0003     | Reply code: Reply to import.
-----------+--------+------------+---------------------------------------------------
 4         | 4      | 0x00000000 | Status: 0 for OK
           |        |            |         1 for error
-----------+--------+------------+---------------------------------------------------
 8         |        |            | From now on comes the details of the imported
           |        |            |   device, if the previous status field was OK (0),
           |        |            |   otherwise the reply ends with the status field.
-----------+--------+------------+---------------------------------------------------
           | 256    |            | path: Path of the device on the host exporting the
           |        |            |   USB device, string closed with zero byte, e.g.
           |        |            |   "/sys/devices/pci0000:00/0000:00:1d.1/usb3/3-2"
           |        |            |   The unused bytes shall be filled with zero
           |        |            |   bytes.
-----------+--------+------------+---------------------------------------------------
 0x108     | 32     |            | busid: Bus ID of the exported device, string
           |        |            |   closed with zero byte, e.g. "3-2". The unused
           |        |            |   bytes shall be filled with zero bytes.
-----------+--------+------------+---------------------------------------------------
 0x128     | 4      |            | busnum
-----------+--------+------------+---------------------------------------------------
 0x12C     | 4      |            | devnum
-----------+--------+------------+---------------------------------------------------
 0x130     | 4      |            | speed
-----------+--------+------------+---------------------------------------------------
 0x134     | 2      |            | idVendor
-----------+--------+------------+---------------------------------------------------
 0x136     | 2      |            | idProduct
-----------+--------+------------+---------------------------------------------------
 0x138     | 2      |            | bcdDevice
-----------+--------+------------+---------------------------------------------------
 0x139     | 1      |            | bDeviceClass
-----------+--------+------------+---------------------------------------------------
 0x13A     | 1      |            | bDeviceSubClass
-----------+--------+------------+---------------------------------------------------
 0x13B     | 1      |            | bDeviceProtocol
-----------+--------+------------+---------------------------------------------------
 0x13C     | 1      |            | bConfigurationValue
-----------+--------+------------+---------------------------------------------------
 0x13D     | 1      |            | bNumConfigurations
-----------+--------+------------+---------------------------------------------------
 0x13E     | 1      |            | bNumInterfaces

USBIP_CMD_SUBMIT: Submit an URB

 Offset    | Length | Value      | Description
-----------+--------+------------+---------------------------------------------------
 0         | 4      | 0x00000001 | command: Submit an URB
-----------+--------+------------+---------------------------------------------------
 4         | 4      |            | seqnum: the sequence number of the URB to submit
-----------+--------+------------+---------------------------------------------------
 8         | 4      |            | devid
-----------+--------+------------+---------------------------------------------------
 0xC       | 4      |            | direction: 0: USBIP_DIR_OUT
           |        |            |            1: USBIP_DIR_IN
-----------+--------+------------+---------------------------------------------------
 0x10      | 4      |            | ep: endpoint number, possible values are: 0...15
-----------+--------+------------+---------------------------------------------------
 0x14      | 4      |            | transfer_flags: possible values depend on the
           |        |            |   URB transfer type, see below
-----------+--------+------------+---------------------------------------------------
 0x18      | 4      |            | transfer_buffer_length
-----------+--------+------------+---------------------------------------------------
 0x1C      | 4      |            | start_frame: specify the selected frame to
           |        |            |   transmit an ISO frame, ignored if URB_ISO_ASAP
           |        |            |   is specified at transfer_flags
-----------+--------+------------+---------------------------------------------------
 0x20      | 4      |            | number_of_packets: number of ISO packets
-----------+--------+------------+---------------------------------------------------
 0x24      | 4      |            | interval: maximum time for the request on the
           |        |            |   server-side host controller
-----------+--------+------------+---------------------------------------------------
 0x28      | 8      |            | setup: data bytes for USB setup, filled with
           |        |            |   zeros if not used
-----------+--------+------------+---------------------------------------------------
 0x30      |        |            | URB data. For ISO transfers the padding between
           |        |            |   each ISO packets is not transmitted.


  Allowed transfer_flags  | value      | control | interrupt | bulk     | isochronous
 -------------------------+------------+---------+-----------+----------+-------------
  URB_SHORT_NOT_OK        | 0x00000001 | only in | only in   | only in  | no
  URB_ISO_ASAP            | 0x00000002 | no      | no        | no       | yes
  URB_NO_TRANSFER_DMA_MAP | 0x00000004 | yes     | yes       | yes      | yes
  URB_NO_FSBR             | 0x00000020 | yes     | no        | no       | no
  URB_ZERO_PACKET         | 0x00000040 | no      | no        | only out | no
  URB_NO_INTERRUPT        | 0x00000080 | yes     | yes       | yes      | yes
  URB_FREE_BUFFER         | 0x00000100 | yes     | yes       | yes      | yes
  URB_DIR_MASK            | 0x00000200 | yes     | yes       | yes      | yes


USBIP_RET_SUBMIT: Reply for submitting an URB

 Offset    | Length | Value      | Description
-----------+--------+------------+---------------------------------------------------
 0         | 4      | 0x00000003 | command
-----------+--------+------------+---------------------------------------------------
 4         | 4      |            | seqnum: URB sequence number
-----------+--------+------------+---------------------------------------------------
 8         | 4      |            | devid
-----------+--------+------------+---------------------------------------------------
 0xC       | 4      |            | direction: 0: USBIP_DIR_OUT
           |        |            |            1: USBIP_DIR_IN
-----------+--------+------------+---------------------------------------------------
 0x10      | 4      |            | ep: endpoint number
-----------+--------+------------+---------------------------------------------------
 0x14      | 4      |            | status: zero for successful URB transaction,
           |        |            |   otherwise some kind of error happened.
-----------+--------+------------+---------------------------------------------------
 0x18      | 4      | n          | actual_length: number of URB data bytes
-----------+--------+------------+---------------------------------------------------
 0x1C      | 4      |            | start_frame: for an ISO frame the actually
           |        |            |   selected frame for transmit.
-----------+--------+------------+---------------------------------------------------
 0x20      | 4      |            | number_of_packets
-----------+--------+------------+---------------------------------------------------
 0x24      | 4      |            | error_count
-----------+--------+------------+---------------------------------------------------
 0x28      | 8      |            | setup: data bytes for USB setup, filled with
           |        |            |   zeros if not used
-----------+--------+------------+---------------------------------------------------
 0x30      | n      |            | URB data bytes. For ISO transfers the padding
           |        |            |   between each ISO packets is not transmitted.

USBIP_CMD_UNLINK: Unlink an URB

 Offset    | Length | Value      | Description
-----------+--------+------------+---------------------------------------------------
 0         | 4      | 0x00000002 | command: URB unlink command
-----------+--------+------------+---------------------------------------------------
 4         | 4      |            | seqnum: URB sequence number to unlink: FIXME: is this so?
-----------+--------+------------+---------------------------------------------------
 8         | 4      |            | devid
-----------+--------+------------+---------------------------------------------------
 0xC       | 4      |            | direction: 0: USBIP_DIR_OUT
           |        |            |            1: USBIP_DIR_IN
-----------+--------+------------+---------------------------------------------------
 0x10      | 4      |            | ep: endpoint number: zero
-----------+--------+------------+---------------------------------------------------
 0x14      | 4      |            | seqnum: the URB sequence number given previously
           |        |            |   at USBIP_CMD_SUBMIT.seqnum field
-----------+--------+------------+---------------------------------------------------
 0x30      | n      |            | URB data bytes. For ISO transfers the padding
           |        |            |   between each ISO packets is not transmitted.

USBIP_RET_UNLINK: Reply for URB unlink

 Offset    | Length | Value      | Description
-----------+--------+------------+---------------------------------------------------
 0         | 4      | 0x00000004 | command: reply for the URB unlink command
-----------+--------+------------+---------------------------------------------------
 4         | 4      |            | seqnum: the unlinked URB sequence number
-----------+--------+------------+---------------------------------------------------
 8         | 4      |            | devid
-----------+--------+------------+---------------------------------------------------
 0xC       | 4      |            | direction: 0: USBIP_DIR_OUT
           |        |            |            1: USBIP_DIR_IN
-----------+--------+------------+---------------------------------------------------
 0x10      | 4      |            | ep: endpoint number
-----------+--------+------------+---------------------------------------------------
 0x14      | 4      |            | status: This is the value contained in the
           |        |            |   urb->status in the URB completition handler.
           |        |            |   FIXME: a better explanation needed.
-----------+--------+------------+---------------------------------------------------
 0x30      | n      |            | URB data bytes. For ISO transfers the padding
           |        |            |   between each ISO packets is not transmitted.
