Transparent Distributed Processing

This chapter includes:

TDP and io-pkt

Transparent Distributed Processing (also known as Qnet) functions the same under the old io-net and new io-pkt infrastructures, and the packet format and protocol remain the same. For both io-net and io-pkt, Qnet is just another protocol (like TCP/IP) that transmits and receives packets.

The Qnet module in Core Networking is now a loadable shared module, lsm-qnet.so. We support only the l4_lw_lite variant; we no longer support the qnet-compat variant that was compatible with Neutrino 6.2.1.

To start the stack with Qnet, type this command:

io-pkt-v4 -ddriver -pqnet

(assuming you have your PATH and LD_LIBRARY_PATH environment variables set up properly). You can also mount the protocol after the stack has started, like this:

mount -Tio-pkt full_path_to_dll/lsm-qnet.so

Note that mount still supports the io-net option, to provide backward compatibility with existing scripts.

The command-line options and general configuration information are the same as they were with io-net. For more information, see lsm-qnet.so in the Utilities Reference.

Using TDP over IP

TDP supports two modes of communications: one directly over Ethernet, and one over IP. The “straight to Ethernet” L4 layer is faster and more dynamic than the IP layer, but it isn't possible to route TDP packets out of a single layer-2 domain. By using TDP over IP, you can connect to any remote machine over the Internet as follows:

  1. TDP must use the DNS resolver to get an IP address from a hostname (i.e. use the resolve=dns option). Configure the local host name and domain, and then make sure that gethostbyname() can resolve all the host names that you want to talk to (including the local machine):
  2. Start (or mount) Qnet with the bind=ip,resolve=dns options. For example:
    io-pkt-v4-hc -di82544 -pqnet bind=ip,resolve=dns
      

    or:

    mount -Tio-pkt -o bind-ip,resolve=dns full_path_to_dll/lsm-qnet.so
      

With raw Ethernet transport, names automatically appear in the /net directory. This doesn't happen with TDP over IP; as you perform TDP operations (e.g. ls /net/host1), the entries are created as required.