GPL (GNU General Public License)    
2.7/5 16
LINX is a distributed communication protocol stack for transparent inter node and interprocess communication.





LINX software is a distributed communication protocol stack for transparent inter node and interprocess communication for a heterogeneous mix of systems.

LINX is an open technology for distributed system inter process communication which is platform and interconnect independent, scales well to large systems with any topology, but that still has the performance needed for high traffic bearing components of the system. It is based on a well known transparent message passing method that have been used for many years in OSE family of real time operating systems.

LINX for Linux is the Linux implementation of the Enea LINX, and includes the LINX kernel module, the user-space LINX API library and tools for configuring and supervising inter-node communication using LINX.

The LINX kernel module implements the LINX protocol which has two layers - the RLNH protocol and the Connection Manager protocol. The RLNH protocol corresponds to the session layer in the OSI model and implements IPC functions including methods to look up endpoints by name and to supervise them to get asynchronous notifications if they disappear. The Connection Manager layer corresponds to the transport layer in the OSI model and implements reliable in order transmission of arbitrarily sized messages over any media. LINX is accessed from user land through a new address family AF_LINX and standard BSD sockets.

The LINX API library implements the Enea LINX message passing API. The API is based on Enea's well know OSE distributed messaging API and contains a full set of functions for sending and receiving messages, lookup endpoints, request notification when endpoints disappears. Although it is possible to write LINX application using only the socket interface published by the kernel module the powerful abstractions provided by the LINX API makes applications much easier to write and maintain.

LINX contains tools to create and destroy connections to other hosts and a daemon that can be used to automatically establish connections to a group of LINX hosts in a network. Linxcfg creates and destroys connections to other hosts. Linxstat displays information about LINX-connections and programs using LINX in a format similar to netstat. Linxdisc is a daemon which can discover other LINX nodes in a network and automatically establish LINX connections.

The LINX release contains two example programs, a benchmark
application that can be used to test performance of LINX and a simple application demonstrating many features of LINX messaging API.

What's New in This Release:

Improved garbage collection of sockets in the tcp_cm.
Removed some wrong warning/error printouts.
Fixed bug in where linx_info_signal_payload failed for 32-bit binaries on 64-bit kernels.
Fixed bug where __copy_from_user_atomic failed.
Fixed bug that lead to the LINX kernel module couldn't be unloaded.
Added optimized linx_do_sendmsg call for attach/hunt/tmo/newlink signals.
Support for Linux kernel 2.6.25
A new token based interface was added for new link notifications.
Hunt/attach/tmo signals are stored in skb buffers and not kernel memory.
Fixed bug where max spids per link was one less than user configured.
LINX_ETHCM_WORKAROUND, this is a temporary fix that should solve a design flaw in the Ethernet CM. Currently the function recv_pkt() must not run simultaneous with itself (for the same connection). This may happend if 'Linx Ethernet interrupts' are serviced by different CPUs. As long as all 'Linx Ethernet interrupts' are serviced by the same CPU, this fix is not required. The LINX_ETHCM_WORKAROUND is off by default and must be enabled with the build option LINX_ETHCM_WORKAROUND=yes. Messages like 'RLNH unexpected msg_no: ...' or 'unknown msg ...' in the kernel ring buffer indicates that you may have run into this problem and needs to rebuild Linx with LINX_ETHCM_WORKAROUND=yes.
Bugfix in LINX message trace. If a fragmeneted message was received, only the first fragment was traced.
Fixed bug that lead to the LINX kernel module couldn't be unloaded.
Last updated on May 16th, 2011

0 User reviews so far.