You can specify driver without the devn- or devnp- prefix or the .so extension. For example, to start the devnp-i82544.so driver, specify -d i82544. If you specify the driver this way, io-pkt* looks for a devnp- version first. If there isn't one, io-pkt* loads the legacy io-net (devn-) version, using a special “shim” layer, devnp-shim.so.
If you want to load a specific version of a driver, specify the full path of the module (e.g. /lib/dll/devn-i82544.so).
The driver_options argument is a list of driver-specific options that the stack passes to the driver.
The stack processes various driver options; for more information, see “Generic driver options,” below.
The protocol to start, followed by a list of protocol-specific options.
tcpip The stack includes TCP/IP; you need to specify this protocol only if you want to pass additional parameters (e.g. prefix=) to it. For more information about the options, see below.
Don't register a SIGSEGV handler to quiesce the hardware if a segmentation violation occurs. This can help with debugging if it isn't possible to get a backtrace to the original code that generated the SIGSEGV through the signal handler.
The number of processing threads to create. By default, one thread is created per CPU. These threads are the packet-processing threads that operate at Layer2 and may become the stack thread. For more information, see the Overview chapter of the QNX Neutrino Core Networking User's Guide .
If any errors occur while loading drivers and protocols, io-pkt sends messages to slogger. If you specify this option, io-pkt also displays them on the console.
If the value of the pagesize option is bigger than sysconf(_SC_PAGESIZE), it's used only for the mbuf and cluster pools unless you also specify this option, in which case the page size is used for all pools.
Disable the caching of packet buffers. This should be needed only as a debugging facility.
Monitor changes to configuration strings, in particular CS_HOSTNAME. By default, io-pkt gets the hostname once at startup.
Prevent automatic stack mapping of enXX interface names to the actual interface names. By default, the stack automatically maps the first registered interface to en0 (if a real en0 isn't present), the second interface to en1, and so on, in order to preserve backwards compatibility with io-net-style command lines.
Enable (1) or disable (0) fastforwarding path. This is useful for gateways. This option enables, and is enabled by, forward; to enable only forward, specify forward,fastforward=0.
Enable forwarding of IPv4 packets between interfaces; this enables fastforward by default. The default is off.
(io-pkt-v6-hc only) Enable forwarding of IPv6 packets between interfaces; off by default.
(io-pkt-v4-hc and io-pkt-v6-hc only) Enable IPsec support; off by default.
As mbufs are freed after use, rather than returning them to the internal pool for general consumption, up to X mbufs are cached per thread to allow quicker retrieval on the next allocation.
The mbuf cluster size. A cluster is the largest amount of contiguous memory used by an mbuf. If the MTU is larger than a cluster, multiple clusters are used to hold the packet. The default cluster size is 2 KB (to fit a standard 1500-byte Ethernet packet).
Specifying the cluster size can improve performance; for more information, see “Jumbo packets and hardware checksumming” in the Network Drivers chapter of the QNX Neutrino Core Networking User's Guide .
The smallest amount of data allocated each time for the internal memory pools. This quantum is then carved into chunks of varying size, depending on the pool.
As mbuf and cluster combinations are freed after use, rather than return them to the internal pool for general consumption, up to X mbufs and clusters are cached per thread to allow quicker retrieval on the next allocation.
Use /dev/random as the source of random data. By default, io-pkt uses a builtin pseudo-random number generator.
Specify the size of the receive context buffer, in bytes. The default is 65536; the minimum is 2048.
If using the SO_REUSEPORT socket option, received unicast UDP packets are delivered to all sockets bound to the port. The default is to deliver only multicast and broadcast to all sockets.
The priority for receive threads to use (the default is 21). A driver-specific priority option (if supported by the driver) can override this priority.
Specify the value of SOMAXCONN, the maximum length of the listen queue used to accept new TCP connections. The minimum is the value in <sys/socket.h>.
Specify the size of each thread's stack, in bytes. The default is 4096.
If the supply of threads is exhausted, increment their number by this amount, up to the value of threads_max. The default is 25.
Specify the maximum number of threads. The default is 200.
Specify the minimum number of threads. The default is 15, and the minimum is 4.
IPv4 version of the stack that has full encryption and Wi-Fi capability built in and includes hardware accelerated cryptography capability (Fast IPsec).
IPv6 version of the stack (includes IPv4 as part of v6) that has full encryption and Wi-Fi capability, also with hardware accelerated cryptography.
You can use umount to unmount legacy io-net drivers, but not io-pkt* drivers. Other drivers may allow you to detach the driver from the stack, by using ifconfig's destroy command (if the driver supports it).
If io-pkt runs out of threads, it sends a message to slogger, and anything that requires a thread blocks until one becomes available.
This option doesn't work with legacy io-net legacy drivers. If you attempt to use this option with a devn- driver, the driver won't be loaded, and the log will include an “unknown option” error.
Device address, as reported by the usb utility.