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 transfer 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.
