The QNX Neutrino networking stack is called io-pkt.
It replaces the previous generation of the stack, io-net,
and provides the following benefits:
- performance improvements.
Since io-pkt removes the
npkt-to-mbuf
translation and mandatory
queuing, and also reduces context switching on the packet receive path,
the IP receive performance is greatly improved.
- simplified locking of shared resources, resulting in simpler SMP support
- it closely follows the NetBSD code base and architecture, meaning:
- easier maintenance / upgrade capability of IP stack source
- existing applications that use BSD standard APIs will port more
easily (e.g.
tcpdump
)
- enhanced features included with NetBSD stack are also included with
io-pkt
- NetBSD drivers will port in a straightforward manner
- far richer stack feature set, drawing on the latest in improvements
from the NetBSD code base
- 802.11 Wi-Fi client and access point capability
The io-pkt manager is intended to be a drop-in replacement for
io-net for those people who are dealing with the stack from
an outside application point of view.
It includes stack variants, associated
utilities, protocols, libraries and drivers.
The stack variants are:
-
io-pkt-v4
- IPv4 version of the stack with no encryption or Wi-Fi capability built in.
This is a "reduced footprint" version of the stack that
doesn't support the following:
- IPv6
- Crypto / IPSec
- 802.11 a/b/g Wi-Fi
- 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.
Note:
In this guide, we use "
io-pkt
" to refer to
all the stack variants.
When you start the stack, use the appropriate variant (io-pkt
isn't a symbolic link to any of them).
We've designed io-pkt to follow as
closely as possible the NetBSD networking stack code base and architecture.
This provides an optimal path between the IP protocol and drivers,
tightly integrating the IP layer with the rest of the stack.
Note:
The
io-pkt stack isn't backward-compatible with
io-net.
However, both can exist on the same system.
For more information, see the
Migrating from io-net
appendix in this guide.
The io-pkt implementation makes significant changes to the
QNX Neutrino stack architecture, including the following: