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.
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:
- ip4csum, ip4csum-rx, ip4csum-tx
- tcp4csum, tcp4csum-rx, tcp4csum-tx
- tcp6csum, tcp6csum-rx, tcp6csum-tx
- udp4csum, udp4csum-rx, udp4csum-tx
- udp6csum, udp6csum-rx, udp6csum-tx
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