Table of Contents
linxcfg - a configuration utility for LINX links to other nodes
[-t <cm>] [-v] <command> [COMMAND PARAMETERS and OPTIONS]
linxcfg [-t <cm>] [-v]
destroy <linkname> [<link 2>...]
linxcfg help <cm>
linxcfg -t <cm> [help]
linxcfg is the LINX configuration utility. Depending on the
command given, linxcfg can destroy or create links using the specified
Connection Manager (CM).
linxcfg has common options to all commands
which should be placed before the actual command
- -h, --help
- Display help and
- -t, --type <cm>
- Specifies cm as the Connection Manager to use. If this option
is not provided, eth will be used as the default CM.
You can use -h to list
all available CMs.
- -v, --verbose
- Verbose mode.
- -c, --cf, --conn-feature <feature[=value]>
a connection feature. This option can be specified several times.
- -l, --lf,
- Adds a link feature. This option can be specified
- create PARAMETERS
- Creates a connection link to
another node. The PARAMETERS depend on the CM specified, see below for more
A remote link cannot be used until also the remote node creates
the other end of the link (a link back to the originating node). The state
is "connecting" until both sides are ready and communication via the LINX
protocol can begin.
- destroy <linkname> [<link2>...]
- Destroy the connection link
with the name linkname.
- help [<cm>]
- Provides help about the given cm , either
specified in -t or after the help command.
If no cm was specified, it will
show a list of available CMs.
The Ethernet CM is specified with the eth keyword, which is
actually the default if no other CM was specified.
The create command
takes the following options:
- create <macaddr> <interface> <linkname> [OPTIONAL
- Specify the remote mac address of the node to connect
to, e.g. 0a:1b:2c:3d:4d:5e.
- Specify the Ethernet interface to
use. Ex.: eth0.
- Name of the connection link. This is the link part
of the path in a remote hunt name to LINX endpoints on the other node. It
will also be the name seen in /proc/net/linx/cm/eth/<linkname>
- This is the send/receive window_size, in number
of packets on the link, and may need to be modified to adapt LINX to really
slow or really fast Ethernet performance.
Both the local and remote side negotiate the window size, being the smallest
of the two sizes the selected one. The default 128 messages should be sufficient
in most configurations. The window size shall always be of a power of 2.
Size 0 means to use the default window size.
- The defer
queue size is in packages, with the size depending on the LINX link. The
defer queue is used on the sender side when the send queue is full. Every
message sent, when the send queue is full, is stored in the defer queue,
until the send queue has room for more messages. The defer queue size is
the maximum number of packages, with messages, that can be stored in the
defer queue before the link is disconnected, due to lack or resources.
The default value 2048 packages should be sufficient in most systems. Size
0 means to use the default defer queue size.
- The send acknowledge
timeout specifies the time (in msec) to wait until unacknowledged messages
are resent. The default 10 should be sufficient in most systems. Tmo 0 means
to use the default timeout.
- The retransmission timeout specifies
the time (in msec) to wait until nack messages are resent. The default 20
should be sufficient in most systems. Tmo 0 means to use the default timeout.
- The connect timeout specifies the time (in msec) to wait
until an attempt to establish a connection is considered failed. The default
200 should be sufficient in most systems. Tmo 0 means to use the default
- The connection supervision timeout specifies the
time (in msec) to wait until a connection is considered broken. Default
is 100 (when the system is not idle) and should be sufficient in most systems.
When the system is idle, the live timeout is ten times larger than the
configured live timeout value. Tmo 0 means to use the default timeout.
- The MTU (Maximum Transmission Unit) specifies the size in bytes of the
largets packet that the Ethernet protocol can pass onwards (this excludes
the size of the Ethernet header). If not set the MTU is fetched from the
interface. Typcially a MTU of 1500 bytes is used for Ethernet.
- NOTE: This feature is still experimental!
If this configuration is set, adaptive software-controlled Ethernet coalescing
is enabled. The default is off. The high send/receive thresholds his and
hir specify the number of sent/received messages/200msec that need to be
sent/received to enable coalescing in the specific direction. The low send/receive
thresholds los and lor specify when to disable coalescing in the specific
direction. Adaptive coalesting means to dynamically optimize the throughput
by collecting multiple small messages in each package, but still avoiding
delays due to long time periods between messages. The coalesce configuration
may require device specific tuning, e.g. by running a benchmark with different
- The attribute option gives the possibility
to assign an arbitrary string to the link when it is created. This string
is included in the new_link signal, which is sent to all link supervisors.
More information on link supervisors can be found in linx(7)
The TCP CM is specified using the tcp keyword.
The create command
takes the following parameters:
create <ip> <linkname> [OPTIONAL PARAMETERS]
will display more verbose information to standard out, if the -v option
linxcfg create 01:23:a4:4f:b3:ac eth0
- The IP address to connect to.
- Name of the connection link.
This is the LINX link part of the path in a remote hunt name to LINX endpoints
on the other node. It will also be the name seen in /proc/net/linx/cm/tcp/<linkname>
- Optional parameters
- The live_tmo parameter is the time in
milliseconds between every heartbeat that is used to detect if the connection
has gone down. The default value is 1000 ms.
- Set to 1 if nagle
algorithm shall be used on the socket for the connection. Default is off.
- The attribute option gives the possibility to assign an arbitrary
string to the link when it is created. This string is included in the new_link
signal, which is sent to all link supervisors.
linxcfg destroy link_A
linxcfg -t tcp create 192.168.1.1 link_A
t tcp destroy link_A
Copyright (c) 2006-2007, Enea Software AB All rights
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer. Redistributions in
binary form must reproduce the above copyright notice, this list of conditions
and the following disclaimer in the documentation and/or other materials
provided with the distribution. Neither the name of Enea Software AB nor
the names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Table of Contents