Project Home
Project Home
Wiki
Wiki
Discussion Forums
Discussions
Project Information
Project Info
wiki1652: Qnet_wiki_page (Version 5)

Transparent Distributed Processing#

Source Code Layout#

Amazingly enough, the source code for all of Qnet is available at sys/lqm/qnet. Snowballs in Hell, I know. Thing to keep in mind here is that there are many different variants of Qnet, most of which you probably haven't heard of. The original Qnet variant (classic or "compat") specific source is found under l3_qnx and l4_qnx. This version of Qnet has been deprecated and was replaced some years ago by the "lightweight" or lwl4 qnet which keeps it's variant specific source under the l4_lite and qos directories. Generic Qnet source is found under the nr directory (node resolver), the ndb directory (node database) the kif directory (Kernel InterFace - get it?) directory, and the public directory. The arm, mips, ppc, sh and x86 directories are pretty obviously where you will find the compiled binaries. To avoid confusion, disregard the l4_ixp2800 and l4_rio and l4_tcp directories - think of them as science experiments that never saw the light of day.

The source tree also includes all of the source for io-net (although this source base has only been tested with io-pkt at this time) and will build the associated io-net npm-qnet shared libraries.

How do I use TDP with Core Networking 6.4.0?#

Qnet really hasn't changed a whole lot over the years. Heck, even QNX2 had Qnet, albeit only with ARCnet media. QNX4 had a more generic Qnet, which had support for loadable and unloadable drivers for various media, including ARCNet, ethernet, token ring, FDDI, etc. QNX6 Qnet functions the same under the old io-net and new io-pkt infrastructures - the packet format and protocol is the same, so if you're familiar with using Qnet with io-net, you hopefully won't see much of a change with io-pkt. For both io-net and io-pkt, Qnet is just another protocol (like TCP/IP) which transmits and receives packets.

The QNET module in Core Networking 6.4 is now a loadable shared module (lsm-qnet.so). We only support the "l4_lw_lite" variant. qnet-compat (compatible with neutrino 6.2.1) is no longer supported.

To start the stack with qnet,

io-pkt-v4 -ddriver -pqnet

will do the trick. The command line options and general configuration information is the same as it was with io-net (please see the online docs for more information). Our on-line docs are located here (replace "io-net" with "io-pkt" and "npm-qnet.so" with "lsm-qnet.so").