devnp-usbnet.so

Class driver for USB host network devices (CDC network modules and RNDIS)

Syntax:

io-pkt-variant -d usbnet [option[,option...]] ... 

where variant is v4-hc or v6-hc.

Runs on:

QNX Neutrino

Options:

busnum=0xXX
Attach to a specific device on the given USB bus number.
cache=num
Use a cacheable buffer for the bulk endpoint point: 1 for Rx, 2 for Tx, 3 for both.
cfg=num
Attach to a specific configuration that the USB device supports (see the output from usb -v). You must also specify the busnum and devnum options.
control_timeout=ms
The timeout interval, in milliseconds, for control messages.
devnum=0xXX
Attach to the USB device with the given number.
disable_set_packet_filter
Disable the SET_ETHERNET_PACKET_FILTER USB request.
ext_name
Add the USB bus and device numbers to the network interface name.
iface=num
Attach to a specific interface. You must also specify the busnum and devnum options.
ign_remove
Ignore the USB removal callback; the user should handle device removal.
keepalive_timeout=ms
The timeout interval, in milliseconds, for the keepalive message.
path=name
Connect to the specified USB stack. The default is /dev/usb/io-usb-otg.
pnp
Keep the driver loaded across device insertion and removal.
Note: When you use the pnp option, the DLL remains loaded and connected to the USB stack. Ethernet interfaces are created as devices are inserted. If you use ifconfig interface destroy to remove the last interface, the DLL is unloaded. This means that the driver currently doesn't support being removed and inserted again.
prio=priority
The priority of the USB callback thread. The default is the priority of io-pkt's receive threads; see io-pkt's rx_prio or rx_pulse_prio option.
receive=N
The number of receive URBs; the default is 64.
transmit=N
The number of transmit URBs; the default is 64.
verbose
Be verbose. The output goes to slogger2; invoke slog2info to view it.
wait=num
Wait num seconds for the USB stack (default 60 seconds).

Description:

The devnp-usbnet.so driver is the class driver for USB host network devices (CDC network modules and RNDIS). Its interface names are in the form interfaceX, where X is an integer, and interface depends on the device:

Device interface
ECM, ECM SDIP, ECM QMI, ECM RMNET ecm
NCM ncm
MBIM mbim
RNDIS rndis
iPhone Ethernet (IPHETH) iph

For iPhone Ethernet, the driver interface can be created, but can't be activated unless the iPhone filesystem is mounted.

Some devices support hardware checksums, although some might do so in only one direction; to determine if your device does, type:

ifconfig interfaceX

and look for the following in the list of supported options:

You can then use ifconfig to enable or disable whichever of these options your device supports.

Note: The network drivers don't put entries into the /dev namespace, so a waitfor command for such an entry won't work properly in buildfiles or scripts. Use if_up -p instead; for example, if_up -p ecm0.

Examples:

Start the v4 TCP/IP variant of io-pkt using the devnp-usbnet.so driver:

io-pkt-v4-hc -d usbnet 
ifconfig cm 10.1