Class Driver for USBDNET (USB Device Network Driver)


io-pkt-variant -d usbdnet [option[,option ...]] ... &

where variant is one of v4, v4-hc, or v6-hc.

Runs on:

QNX Neutrino


Note: Use commas, not spaces, to separate the options.
An interface delimiter that marks the start of a new set of interface parameters when you're configuring multiple interfaces.
The MAC address on the QNX Neutrino side; a 12-character hexadecimal string (e.g., 0123456789cd).
The maximum transmission unit (default 1500).
Don't modify the USB descriptors; let a USB manager do that.
The maximum number of Ethernet frames to bundle (for RNDIS and NCM only).
Connect to the specified USB stack. The default is /dev/io-usb-dcd/io-usb.
The protocol to use; one of the following:
  • ecm — Ethernet Control Model
  • rndis — Remote Network Driver Interface Specification
  • ncm — Network Control Model

The default is ecm. The interface name matches the protocol selected.

The number of receive URBs to use; the default is 32.
The number of transmit URBs to use; the default is 32.
The MAC address on the host side; a 12-character hexadecimal string (e.g., 0123456789ab).
verbose or verbose=num
Be verbose. Specify num for more verbosity (num can be 1-4; the higher the number, the more detailed the output). The output goes to slogger; invoke sloginfo to view it.
Wait num seconds for the USB stack (default 60 seconds).


The driver is the class driver for USBDNET (USB Device Network Driver). This is a native io-pkt driver; its interface names are in the form ecmX, ncmX, or rndisX, depending on the protocol, where X is an integer.

  • You can set the MTU only on the command line (e.g., mtu=8100), and not using ifconfig. This is because some protocols (such as ECM) require that you advertise the MTU in the device descriptor. Changing the MTU using ifconfig would require the driver to force the host to reenumerate the device.
  • You can destroy the interface only when the USB cable is disconnected; otherwise the ifconfig if ifaceX destroy command will fail.
Note: Native io-pkt and ported NetBSD drivers don't put entries into the /dev/io-net namespace, so a waitfor command for such an entry won't work properly in buildfiles or scripts. Use if_up -p instead; for example, instead of waitfor /dev/io-net/ecm0, use if_up -p ecm0.


Start io-pkt using the driver and the default ECM protocol:

io-pkt-v4-hc -d usbdnet -ptcpip &
ifconfig ecm0