npm-tcpip-v4.so

Original full TCP/IP stack (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. The value of num can assume the following values with the associated meanings:
0
Disables.
Nonzero
Enables.

The fastforward=1 option alone implicitly enables forwarding.

forward
Enable forwarding of IPv4 packets between interfaces (default is off). The forward option alone implicitly enables fastforwarding.
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 the 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 to run pure input packet processing at. Default is 21.
somaxconn=num
Maximum length 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:

This version of the TCP/IP stack is the default when you install QNX Momentics; npm-tcpip.so is a symbolic link to npm-tcpip-v4.so. If you want to use the full stack for IPv6 packets, change npm-tcpip.so into a link to the npm-tcpip-v6.so module.

This npm-tcpip-v4.so module supports the latest RFCs, including UDP, IP, TCP, and SCTP. It also supports forwarding, broadcast and multicast, hardware checksum support, routing sockets, Unix domain sockets, multilink PPP, PPPoE, supernetting (CIDR), NAT/IP filtering, ARP, ICMP, and IGMP, as well as CIFS, DHCP, AutoIP, DNS, NFS (v2 and v3 server/client), NTP, RIP, RIPv2, and an embedded web server. To create applications for this stack, you use the industry-standard BSD socket API. This version of the TCP/IP stack Also includes optimized forwarding code for additional performance and efficient packet routing when the stack is functioning as a network gateway.


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 you're running multiple stacks, clients can target a particular instance by using the SOCK environment variable, as follows:

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

You can enable only forwarding 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-v6.so, 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