npm-tcpip-v6.so

Full TCP/IP stack for IPv6 packets (QNX Neutrino)

Syntax:

io-net ... -p tcpip tcpip_options ...

Runs on:

Neutrino

Options:

The tcpip_options are one or more of the following, separated by commas without whitespace:

cache=0
Disable caching of packet buffers. This should only be needed as a debugging facility and should be used in conjunction with the -c0 option to io-net.
external_arp
Use the external ip_en converter module (default is builtin).
fastforward=num
Enable/disable fastforwarding path. This is useful for gateways. Enabled by forward. If you specify forward option, fastforward is enabled.

The value of num can assume the following values with the associated meanings:

0
Disables.
Nonzero
Enables.

The fastforward=1 alone implicitly enables forward.

forward
Enable forwarding of IPv4 packets between interfaces (Default is off). The forward option alone implicitly enables fastforward.
forward6
Enable forwarding of IPv6 packets between interfaces. Default is off.
ipsec
Enable IPSec support. Default is off.
pfil_ipsec
Run packet filters on packets before encryption. Default is after. See the description when you use this option.
prefix=/path
Path to prepend to the traditional /dev/socket. This option is useful when running multiple stacks. Clients can use the SOCK environment variable to target a particular stack. For example:
io-net -i1 -ptcpip prefix=/alt
SOCK=/alt ifconfig -a
random
Use /dev/random as source of random data. The default is to use the builtin pseudo-random generator.
recv_ctxt=num
Size of the receive context buffer, in bytes (default is 65536, minimum is 2048).
reuseport_unicast
If using the SO_REUSEPORT socket option, deliver received unicast UDP packets to all sockets bound to the port. Default is to deliver only multicast and broadcast to all sockets.
rx_pulse_prio=priority
The value of priority to run pure input packet processing at. Default is 21.
somaxconn=num
Maximum number of connections that can queue on a socket waiting for an accept(), as specified by SOMAXCONN, which is defined in <sys/socket.h>.
stacksize=num
Size of each thread's stack, in bytes (default is 4096).
strict_rfc
Disable (the more secure) extra validation of incoming RST segments on TCP connections.
threads_incr=num
If threads are exhausted, increment by this number up to threads_max (default is 25).
threads_max=num
Maximum number of threads (default is 200).
threads_min=num
Minimum number of threads (default is 15, minimum is 4).
timer_pulse_prio
Priority to run pure timeout operations at. Default is 20.

Description:

By default, npm-tcpip.so is a symbolic link to the npm-tcpip-v4.so module. If you want to use the full TCP/IP for IPv6 packets, change npm-tcpip.so into a symbolic link to npm-tcpip-v6.so.

This npm-tcpip-v6.so module includes all the features in the standard stack, plus the functionality targeted at the new generation of mobile and secure communications. This stack provides full IPv6 and IPSec (both IPv4 and IPv6) support through KAME extensions, as well as support for VPNs over IPsec tunnels. This dual-mode stack supports IPv4 and IPv6< simultaneously and includes IPv6 support for autoconfiguration, which allows device configuration in plug-and-play network environments. IPv6 support includes IPv6-aware utilities and RIP/RIPng to support dynamic routing.

An Advanced Socket API is also provided to supplement the standard socket API to take advantage of IPv6 extended-development capabilities. IPsec support allows secure communication between hosts or networks, providing data confidentiality via strong encryption algorithms and data authentication features. IPsec support also includes the IKE (ISAKMP/Oakley) key management protocol for establishing secure host associations.

You'll likely enable the pfil_ipsec option (with no arguments) with this utility when your network configuration

The pfil_ipsec option affects the processing order of IPSec and IP filtering in the TCP/IP stack for outgoing packets -- by applying IP filtering and NAT to the outgoing traffic before it's sent on the IPsec tunnel.


Note: You can't umount Qnet and the full TCP/IP. You may, however, create an io-net producer module that supports unmounting.

Examples:

The following io-net command uses the NE-2000 driver (devn-ne2000.so), and the networking stack with IPSec and forwarding enabled. The ifconfig command configures the ethernet interface to an IP address of 10.0.0.163 and the route command set the default gateway to 10.0.0.25:

io-net -dne2000 -ptcpip ipsec,forward
ifconfig en0 10.163
route add default 10.25

If running multiple stacks, a particular instance is targeted by clients with the SOCK environment variable, as follows:

io-net -i1 -ptcpip prefix=/alt
SOCK=/alt ifconfig -a

You can enable only forward by the following:

io-net -ptcpip forward,fastforward=0

Files:

/dev/io-net
The directory where, by default, drivers and protocol modules add entries. For more information, the documentation for io-net.

See also:

/etc/autoconnect, dd, /etc/hosts, ifconfig, io-net, netstat, npm-tcpip.so, npm-tcpip-v4.so, ping, ping, pppd, /etc/resolv.conf, route, sysctl

"Network drivers (devn-*)" and "Network protocol modules (npm-*)" in the Utilities Summary

getsockopt(), ioctl(), setsockopt(), and ROUTE in the Library Reference TCP/IP Networking in the Neutrino User's Guide