Warning: main(/www/www/htdocs/style/globals.php) [function.main]: failed to open stream: No such file or directory in /www/www/docs/6.4.1/neutrino/utilities/i/io-pkt.html on line 1
Warning: main() [function.include]: Failed opening '/www/www/htdocs/style/globals.php' for inclusion (include_path='.:/www/www/common:/www/www/php/lib/php') in /www/www/docs/6.4.1/neutrino/utilities/i/io-pkt.html on line 1
Warning: main(/www/www/htdocs/style/header.php) [function.main]: failed to open stream: No such file or directory in /www/www/docs/6.4.1/neutrino/utilities/i/io-pkt.html on line 8
Warning: main() [function.include]: Failed opening '/www/www/htdocs/style/header.php' for inclusion (include_path='.:/www/www/common:/www/www/php/lib/php') in /www/www/docs/6.4.1/neutrino/utilities/i/io-pkt.html on line 8
Networking manager
io-pkt-variant [-d driver [driver_options]] [-i instance]
[-p protocol [protocol_options]] [-t threads] [-v]
where variant is one of v4, v4-hc, or
v6-hc.
Neutrino
- -d driver [driver_options]
- Start the specified
devn-*
or
devnp-*
driver:
- 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.
|
Use commas, not spaces, to separate the options.
The stack processes various driver options; for more information, see
“Generic driver options,”
below.
|
- -i instance
- The stack instance number, which is useful if you're running multiple
instances of io-pkt.
The io-pkt manager will service mount requests of type
io-pktX, where X is the instance number.
For example:
io-pkt-v4 -i1 -ptcpip prefix=/alt
mount -Tio-pkt1 /lib/dll/devnp-i82544.so
- -p protocol [protocol_options]
- The protocol to start, followed by a list of protocol-specific options.
|
Use commas, not spaces, to separate the options.
|
The available protocols include:
Protocol
|
Module
|
autoip
|
lsm-autoip.so
|
qnet
|
lsm-qnet.so
|
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.
|
- -S
- 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.
- -t threads
- 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.
- -v
- 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 you specify the -p tcpip protocol, the
protocol_options list can consist of one or more of the
following, separated by commas without whitespace:
- bigpage_strict
- 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.
- cache=0
- Disable the caching of packet buffers.
This should be needed only as a debugging facility.
- confstr_monitor
- Monitor changes to configuration strings, in particular
CS_HOSTNAME.
By default, io-pkt gets the hostname once at startup.
- enmap
- 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.
- fastforward=X
- 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.
- forward
- Enable forwarding of IPv4 packets between interfaces;
this enables fastforward by default.
The default is off.
- forward6
- (io-pkt-v6-hc only)
Enable forwarding of IPv6 packets between interfaces; off by default.
- ipsec
- (io-pkt-v4-hc and io-pkt-v6-hc only)
Enable IPsec support; off by default.
- mbuf_cache=X
- 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.
- mclbytes=size
- 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.
- pagesize=X
- 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.
- pkt_cache=X
- 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.
- prefix=/path
- The path to prepend to the traditional /dev/socket.
The is useful when running multiple stacks.
Clients can target a particular stack by using the SOCK
environmental variable.
For example:
# io-pkt -ptcpip prefix=/alt
# SOCK=/alt ifconfig -a
- random
- Use /dev/random as the source of random data.
By default, io-pkt uses a builtin pseudo-random number generator.
- recv_ctxt=X
- Specify the size of the receive context buffer, in bytes.
The default is 65536; the minimum is 2048.
- reuseport_unicast
- 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.
- rx_prio=X
rx_pulse_prio=X
- 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.
- somaxconn=X
- 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>.
- stacksize=X
- Specify the size of each thread's stack, in bytes.
The default is 4096.
- threads_incr=X
- If the supply of threads is exhausted, increment their number by this
amount, up to the value of threads_max.
The default is 25.
- threads_max=X
- Specify the maximum number of threads.
The default is 200.
- threads_min=X
- Specify the minimum number of threads.
The default is 15, and the minimum is 4.
The io-pkt manager provides support for
Internet domain sockets, Unix domain sockets, and dynamically loaded
networking modules.
It comes in several stack variants:
- io-pkt-v4
- An IPv4 memory-reduced variant which doesn't support:
- IPv6
- Crypto / IPSec
- 802.11 a/b/g WiFi
- Bridging
- GRE / GRF
- Multicast routing
- Multipoint PPP
- io-pkt-v4-hc
- IPv4 version of the stack that has full encryption and Wi-Fi capability
built in and includes hardware accelerated cryptography capability
(Fast IPsec).
- io-pkt-v6-hc
- 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 the
mount
command to start drivers after you've launched io-pkt*.
If you want to pass options to the driver, use the -o option
before the name of the shared object.
For example:
mount -T io-pkt -o mac=12345678 devnp-bge.so
|
- 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.
|
The stack processes a generic name= option that lets you
override the default interface prefix used for network drivers.
For example:
io-pkt-v4 -di82544 name=en
starts the devnp-i82544.so driver with the
io-net-style interface naming convention
(enXX).
You can also use this option to assign interface names based on
(for example) functionality:
io-pkt-v4 -di82544 pci=0,name=wan
|
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. |
The stack also processes the following driver options for all USB drivers using
the NetBSD-to-QNX conversion library to let you identify a
particular USB device using information obtained from running
usb -v:
- did=ID
- Device product ID.
- vid=ID
- Device vendor ID.
- devno=addr
- Device address, as reported by the usb utility.
- busno=num
- Host controller, as reported by the usb utility
For example:
io-pkt-v4-hc -drum did=0x0020,vid=0x13b1,devno=1,busno=1
Start the v4 TCP/IP variant of io-pkt using the
devnp-bcm1250.so driver on BCM91480A eth0:
io-pkt-v4 -d /lib/dll/devnp-bcm1250.so \
memrange=0x10064000,irq=0x80050024,mac=001122334455
ifconfig bcm0 10.184
devn-*,
devnp-*,
ifconfig,
lsm-autoip.so,
lsm-qnet.so,
mount,
umount
QNX Neutrino Core Networking User's Guide
Warning: main(/www/www/htdocs/style/footer.php) [function.main]: failed to open stream: No such file or directory in /www/www/docs/6.4.1/neutrino/utilities/i/io-pkt.html on line 550
Warning: main() [function.include]: Failed opening '/www/www/htdocs/style/footer.php' for inclusion (include_path='.:/www/www/common:/www/www/php/lib/php') in /www/www/docs/6.4.1/neutrino/utilities/i/io-pkt.html on line 550