QNET over two interfaces

I am running QNX6.5.0 SP1 on three machines: my development system (self hosted) and two targets. All are x86.

Each of the targets have two NIC’s and show up as en0 and en1, as expected. io-pkt runs the RTL driver and it works very well. THer eis only one instance of io-pkt.

For TCP/IP I set en0 to an IP address within the 192.168.100.0/20 network (say 192.168.100.51). This NIC is physically connected via common cable to a wifi access point that has the IP address of 192.168.100.250.

en1 is primarily intended for non-TCP/IP use - in other words QNET - but I do set it up so that I can use Phindows through the wire if necessary. It will be on the common 192.168.0.0/24 (say 192.168.0.51). I use the QNET to communicate with the QNX6.5.0 development machine that is 192.168.0.19 - I can easily copy executables to the targets and run them using the Phindows terminal.

Each target does have a wireless USB kbd/mouse arrangement along with a touchscreen so in an emergency I can get in.

All machines have the same domain set using setconf _CS_DOMAIN ozscore.
Each machine has a different hostname, also set using setconf _CF_HOSTNAME [hostname]

The hostname, domain, and IP network interfaces are set up in /etc/rc.d/rc.local

The default QNET setup is:

mount -T io-pkt /lib/dll/lsm-qnet.so

and works fine.

Operationally the targets will be disconnected from the development system and communicate only via the wifi. This means I want/need to use IP. Therefore, to retain QNET capability, I have tried mounting lsm-qnet.so as follows: (in the rc.local file - only io-pkt -d rtl is in the boot image)

setconf _CS_RESOLVE lookup_file_bind

mount -T io-pkt -o “bind=ip,resolve=dns” /lib/dll/lsm-qnet.so

Each of the hosts are listed in /etc/hosts. For example:

192.168.100.204 mc_mdu50.ozscore
192.168.100.51 mdu51.ozscore

When the targets start up this way /net appears on both and I can see both entries (minus the domain). This is with the ethernet cables removed, showing that they are in fact talking via the wifi system.

The first problem I have though is that even with the ethernet cables attached I have lost my ethernet (non-TCP/IP) QNET connection to the development system. It seems that it’s not possible to specify binding of say en1 as well as a bind=ip. It seems I can’t say use ethernet on en1 and IP on en0. Is this correct. If not, how do I do it?

Notet that I also tried mounting as follows:

mount -T io-pkt -o “mount=:,resolve=dns” … but to no avail.

The docs state that you can’t use the dns resolver with a non-IP binding.

So I decided that I would bind to IP on the devlopment system, adding its hostname and addresses to all the /etc/hosts files. The intention was to use IP on both networks. Sadly this doesn’t work. I have interrupted my efforts to write this posting…

So, again, is it possible to have non-IP QNET on one interface (en1) and IP QNET on the other? If so, how? This is my preferred configuration.

If it can’t be done, I will have to persevere with getting all my machines (including the 6.3.2 development system) talking QNET over IP in order to retain my development environment in my office.

Thanks for any help.

Geoff Roberts
Canberra, Australia