tipc_1.5.12_vxWorks.tar (1218560, 2006-10-25)
Project name: Wind River TIPC
Date: October 27, 2006
Authors: Mike.Zeidler@windriver.com, Elmer.Horvath@windriver.com,
Allan.Stephens@windriver.com,Grant.Zadoyan@windriver.com
Description
-----------
The Transparent Inter Process Communication protocol (TIPC) is a network
protocol that allows socket-based applications to communicate easily and
efficiently in both single node environments and environments containing
clusters of nodes. It provides a unique combination of features,
including: functional addressing, address/topology subscriptions,
reactive lightweight connections, signalling links with load sharing,
redundancy and disturbance free failover, high performance, etc. TIPC
was originally developed at Ericsson Research, Montreal, in the 1990s.
It is based on an earlier version used in an Ericsson proprietary OS,
which has been deployed and is running at hundreds of sites all over the
world.
Wind River TIPC 1.5.12 implements the TIPC protocol for systems using the
VxWorks operating system. It is based on publicly available source code
that is also used for the Open Source implementation on Linux. This
allows Wind River TIPC and Linux TIPC to interoperate within a network.
Demo files for TIPC 1.5.12 can also be downloaded from http://tipc.sourceforge.net
Documentation for the VxWorks implementation of TIPC 1.5.12 is available on the
Wind River OLS site (use the WR TIPC 1.5 documentation).
Note: Several Wind River components were designed to work over the version
of Wind River TIPC that shipped with that version of VxWorks.
These components may be incompatible with this TIPC distribution.
- WDB running over TIPC will not work with VxWorks 6.0/6.1/6.2
- DSAL will not work with VxWorks 6.0/6.1/6.2. DSAL (Distributed
Socket Application Layer) is part of the message channel technology.
Both of these components should work with VxWorks 6.3/*** and this
distribution.
Licensing
---------
Wind River TIPC is issued under a BSD license.
Downloading
-----------
Wind River TIPC can be downloaded from http://tipc.sourceforge.net
Supported operating system versions
-----------------------------------
Wind River TIPC 1.5.12 requires a VxWorks 6.x-based operating system.
Note: Information on porting Wind River TIPC 1.5.12 to pre-6.0 versions of
VxWorks is provided at the end of this document.
Compatability with Open-Source Linux TIPC
-----------------------------------------
Wind River TIPC 1.5.12 can interoperate with Open Source Linux TIPC 1.5.x.
Wind River TIPC 1.5.12 supports the following capabilities which are not
available with Open Source Linux TIPC 1.5.x:
- Communication between nodes using shared memory.
- Prioritization of interfaces that use hEND drivers.
Wind River TIPC 1.5.12 supports the following capability in a different
manner than Open Source Linux TIPC 1.5.x:
- The TIPC socket address structure (struct sockaddr_tipc) in Wind
River TIPC uses the BSD convention of an 8 bit length field and an
8 bit address family, rather than the 16 bit address family used
with Linux TIPC.
Change history
--------------
1.5.12:
- included version with VxWorks ***
- updated tipcConfig() to allow pattern matching for some commands
- some minor bug fixes
- addition of System Viewer events for TIPC (requires a host built with
VxWorks *** or later) when compiled in
1.5.11 (rel 2):
- added compatibility for vxWorks 6.0/6.1/6.2
1.5.11:
- included version with VxWorks 6.3
- updated to Open Source TIPC 1.5.11 code base, resulting in changes to
socket and ioctl() APIs
- addition of multicast support
- addition of SOCK_STREAM support
- addition of the tipcConfig utility
1.2:
- included version with VxWorks 6.2, some minor bug fixes, addition
of HEND interface support, separation from the networking code with
a separate BSD based socket backend.
1.1:
- included version with VxWorks 6.1, similar to 1.0.2
1.0.2:
- added support for VxWorks 6.0, including RTP and simulator support
1.0.1:
- bug fixes
1.0:
- initial release; support for Wind River Platforms only
========================================================================
Installing Wind River TIPC
--------------------------
The following steps describe how to install Wind River TIPC onto your
host system.
1. Place the "tipc_1.5.12_vxWorks.tar" file in your VxWorks home directory.
This directory -- denoted as
from now on -- is the
directory that contains the "host" & "target" directories.
2. If you have never compiled TIPC from the source code since you
installed your VxWorks CDs, you may safely skip to the next step.
Delete the following directories:
/target/config/comps/src/tipc
/target/h/make/h/config/comps/tipc
/target/h/tipc
/target/src/tipc
/target/usr/h/tipc
All directories matching the description:
/target/lib///common/objtipc
All files matching the description:
/target/lib///common/libtipc.a
3. Delete the following files (if they exist):
/target/config/comps/vxWorks/CxrCat.txt
This file will be automatically recreated when required. Note
it might be necessary to restart workbench before this file is
recreated.
/target/config/comps/vxWorks/20comp_tipcsm.cdf
/target/config/comps/vxWorks/20comp_tipc_hend.cdf
/target/h/smPktLib.h
/target/h/smUtilLib.h
4. Extract the TIPC 1.5.12 source code from the tar file:
tar xvf tipc_1.5.12_vxWorks.tar .
This operation creates and populates the following directories:
/target/config/comps/src/tipc
/target/h/make/h/config/comps/tipc
/target/h
/target/h/tipc
/target/src/tipc
/target/usr/h/tipc
and adds new files to the following directories:
/target/config/comps/src
/target/config/comps/vxWorks
/target/config/linux
/target/config/mv2700
/target/config/mv5100
/target/config/simpc
/target/config/solaris
/target/config/wrSbc8560
Compiling Wind River TIPC
-------------------------
Wind River TIPC is provided as source code. Before you can include it
in a development project, you need to create object code binaries.
1. Set up the command shell environment for running the Wind River TIPC
make file by opening up a VxWorks development shell.
2. Change to the directory containing the TIPC source code:
cd /target/src/tipc
3. Enter the following two "make" commands:
make CPU= TOOL= [] rclean
make CPU= TOOL= []
The values you specify for and depend on the
board support packages (BSPs) you have installed. If you are unsure
of the values to use, check the Makefile for your target BSP; this
file is located at /target/config//Makefile.
The argument is used to represent any optional compile
flags that may be required by your environment. These flags may
be omitted if not required.
4. If the new System Viewer events are required in TIPC (note that a host
from VxWorks 6.3 or later is required to view the events and the events
themselves may not be functional in pre-VxWorks *** installations), then
the TIPC code must be recompiled following these steps:
make CPU= TOOL= [] rclean
make CPU= TOOL= [] ADDED_CFLAGS+="-DWV_TIPC"
Before deploying TIPC for use in a production environment, you can
reduce the size of the kernel and possibly improve performance by recompiling
TIPC without System Viewer instrumentation. To do this, you need to use make
with rclean and the -DWV_TIPC compile flag, before recompiling, as follows:
make CPU= TOOL= [] ADDED_CFLAGS+="-DWV_TIPC" rclean
make CPU= TOOL= []
With the networking stack:
Within the Workbench configuration, you would have to include the TIPC
instrumentation:
- development tool components
- System Viewer components
- TIPC instrumentation
Without the networking stack:
To use System Viewer with TIPC, you need to include WDB support in
your image. When you build VxWorks without the network stack, you need
to adhere to the following sequence of steps in Workbench:
1. Exclude all networking build components from your VxWorks Image
Project.
For most BSPs, a number of networking components are included in a
build by default . You need to select the Network Components folder
in the Workbench Configurator and explicitly exclude the entire
folder.
2. Include the TIPC network stack build component. The location of the
TIPC network stack build component in the Configurator is:
- Network Components
- Network Protocol Components
- TIPC Components
- TIPC network stack
3. Add WDB support to the image by including the WDB TIPC connection
build component in your build. The location of the WDB TIPC
connection build component in the Configurator is:
- development tool components
- WDB agent components
- WDB connection
- WDB TIPC connection
4. Include the TIPC instrumentation build component in your build:
- development tool components
- System Viewer components
- TIPC instrumentation
5. Build your image project.
Building VxWorks to include Wind River TIPC
-------------------------------------------
You can include Wind River TIPC in a VxWorks image by building a project
using WorkBench, by building a project using a command line project tool
(either "prj" or "vxprj"), or by using a command line target BSP build.
If you build using an IDE or project tool the build process ensures that
no dependencies are missed; if you build using a target BSP build you are
responsible for ensuring all of the necessary elements required by the image
are included.
For a WorkBench build, create a new project and configure it as follows:
The following TIPC-related components are available in the component
tree hierarchy:
- Network Components
- Network Protocol Components
- TIPC Components
- TIPC initialization
- TIPC dynamic configuration
- Bootline configuration
- User configuration
- TIPC static configuration
- TIPC media types
- Ethernet
- Shared Memory
- TIPC stack support
- TIPC and IP network stacks present
- TIPC network stack only
- TIPC
- TIPC configuration and display routines
- TIPC memory pool
- TIPC prioritized interfaces
- TIPC socket API
Include these components in your project using these rules:
- Include the folder "TIPC Components" to get a default setup that
should suite most people to get TIPC with Ethernet support, bootline
configuration, and both TIPC and the IP network stacks together.
Most people may include the TIPC configuration and display routines.
- Include "TIPC" for any image requiring TIPC.
- Include "TIPC static configuration" if you want to use a fixed
TIPC configuration string. You must then change the
TIPC_CONFIG_STR parameter of this component to the value of the
configuration string. The values given for a particular parameter
may be overwritten using a dynamic configuration method.
- Include "Bootline configuration" if you want TIPC to use
the "other" field of the target boot parameters as a TIPC
configuration string. You must then modify the target's boot
parameters to the value of the configuration string.
- Include "User configuration" if you want TIPC to call the
routine tipcConfigInfoGet() to obtain a TIPC configuration string.
You must then add this routine to your image.
- Include the Ethernet media type to allow TIPC to communicate
over this interface after enabling this bearer type in the
TIPC configuration.
- Include the Shared Memory media type to allow TIPC to communicate
over this interface after enabling this bearer type in the
TIPC configuration. This support is only available on targets
that support Shared Memory.
- The TIPC memory pool and TIPC socket API are automatically
selected when TIPC is included in this release.
- Select the TIPC network stack only after excluding the Network
folder. This will allow TIPC to exist on a system that is
built without including the standard IP stack. A minimal
footprint image can be created.
- Include "TIPC configuration and display routines" if you want
the TIPC show routines ("tipcConfig") to be included in your image.
For a command line project tool build, create a new project and
configure it as follows:
- Add the component INCLUDE_TIPC for any image requiring TIPC.
- Add the component INCLUDE_TIPC_CONFIG_STR if you want to use a
fixed TIPC configuration string. You must then change the
parameter TIPC_CONFIG_STR to the value of the configuration string.
- Add the component INCLUDE_TIPC_CONFIG_HOOK_BOOT if you want TIPC
to use the "other" field of the target boot parameters as a TIPC
configuration string. You must then modify the target's boot
parameters to the value of the configuration string.
- Add the component INCLUDE_TIPC_CONFIG_HOOK_USER if you want TIPC
to call the routine tipcConfigInfoGet() to obtain a TIPC con-
figuration string. You must then add this routine to your image.
- Add the components INCLUDE_TIPC_MEMPOOL and INCLUDE_TIPC_SOCKET
to your project. Note, that these will be included automatically
in this release when INCLUDE_TIPC is added.
- Add the required media types (INCLUDE_TIPC_MEDIA_ETH and/or
INCLUDE_TIPC_MEDIA_SM) as appropriate for your hardware.
- Add the component INCLUDE_TIPC_SHOW if you want the TIPC show
routines to be included in your image.
Note: command line target BSP builds are not supported with this
distribution.
Once you have completed the configuration of your image using any of
these methods, build the image normally.
Configuring Wind River TIPC
---------------------------
The default configuration settings used by Wind River TIPC allow it to
operate as a standalone node. This means that an application can only
use TIPC to communicate with other applications residing on the same
node.
To enable communication with other nodes it is necessary to alter the
default configuration settings used by Wind River TIPC when VxWorks is
initialized. This is done using optional configuration strings, which
can be built into VxWorks (static configuration) or obtained from a
routine called when TIPC is started (dynamic configuration), or both.
Static configuration is most useful for parameters that apply to all
nodes running a specific VxWorks image, such as the maximum number of
nodes in a cluster. Dynamic configuration is most useful for parameters
that vary from one node to another, such as the node address.
It is also possible to configure TIPC after it starts using the
tipcConfig utility if the TIPC configuration and management commands
are included (INCLUDE_TIPC_SHOW). Issuing "tipcConfig" alone will
generate a help screen describing all commands possible (reproduced below).
If you use static configuration, the configuration string is specified
as a C language string literal enclosed in double quotes.
eg. "a=1.1.5;be=eth:cpm0"
If you use dynamic configuration, the configuration string is obtained
from one of the following sources:
- A built-in routine that fetches the configuration string from the
"other" parameter of the VxWorks boot ROM.
Note: The string must *not* be enclosed in double quotes!
- A user-supplied routine tipcConfigInfoGet() that fetches the
configuration string from a location of your choice and copies it
into a buffer supplied by TIPC. This routine has the following
syntax:
STATUS tipcConfigInfoGet
(
char * buffer, /* buffer for null-terminated config string */
UINT bufferlen /* length of the buffer */
)
The routine should return OK on success, or ERROR if it is unable
to place the configuration string in the designated buffer.
The file with the source code for tipcConfigInfoGet( ) must contain
the following include:
#include "vxWorks.h"
A configuration string is composed of a semi-colon-separated series of
parameters and their values. Configuration strings are case sensitive
and cannot contain spaces.
eg. a=1.1.27;be=eth:cpm0;log=2000
The following configuration parameters are available at startup (note that
the tipcConfig utility has more options available and will display a help
screen with instructions if executed with no parameters - see below):
netid=
- The network ID used by the node's network.
- Range: 1 to 9999
- Default: 4711
a=Z.C.N
- The network address of the node.
- Range: Z.1.N (where N is the node number, Z is the zone of interest)
or 0.0.0 (for a standalone node)
- Default: 0.0.0
be=eth:
- Enable an Ethernet interface as a TIPC bearer.
- Range: specifies both device type and device number for
the interface (eg. be=eth:fei0)
- Default: no interfaces are enabled
NOTE: This parameter can be specified twice to allow two interfaces
to be enabled.
max_ports=
- The maximum number of ports on a node.
- Range: 127 to 65535
- Default: 8191
max_nodes=
- The maximum number of nodes in the cluster.
- Range: 8 to 2047
- Default: 255
max_clusters=
- The maximum number of clusters in the zone.
- Range: 1 to 2047 (fixed at 1 in this release)
- Default: 1
max_zones=
- The maximum number of zones in the network.
- Note that only a single zone is supported in this release
- Range: 1 to 255 (only 1 supported in this release)
- Default: 3
max_publ=
- The maximum number of port names or port names sequences the node
can publish.
- Range: 1 to 65535
- Default: 10000
max_subscr=
- The maximum number of subscriptions allowed on the node.
- Range: 1 to 65535
- Default: 2000
log=
- The size of the circular log file
- Range: 0 up to available memory (min non-zero size is 512,
adjusted automatically)
- Default: 0
tipcConfig
----------
When the TIPC configuratio ... ...