The ChorusOS IPC feature is an optional component of the ChorusOS kernel which can be added in three different configurations:
local IPC. This configuration provides only local IPC communications.
local IPC + remote IPC. This configuration enables local and remote IPC communications to take place over a network data-link such as Ethernet or ATM (Asynchronous Transfer Method). This data-link is also called an external data-link, which means that the data-link driver is implemented within an independent driver outside of the kernel. It is also unreliable.
local IPC + remote IPC over the VME bus. This configuration allows local and remote IPC communications to take place over the VME bus.
The comand-line configuration tool configurator(1CC) is used to set up each configuration.
To configure the local IPC feature:
% configurator -set IPC=true
To configure the local IPC + remote IPC feature:
% configurator -set IPC_REMOTE=true % configurator -set IPC_REMOTE_COMM=EXT
To configure the local IPC + remote IPC feature over the VME bus:
% configurator -set IPC_REMOTE=true % configurator -set IPC_REMOTE_COMM=VME
The IPC feature has the concept of a site number, a 32-bit unsigned integer which uniquely identifies a target board. Applications exchange messages through IPC ports, which are designated by a global identifier which includes the site number of the target board where the port is located.
The site number of a target is sent to the kernel at boot time in one of two ways:
dynamically, by the boot program, which sets the siteNumber field of the bootConf structure before invoking the kernel start entry
statically, by setting the
chorusSiteId kernel tunable in the ChorusOS system image built on the host:
% configurator -set chorusSiteId=n
n is the site number assigned to the target board. This number can be specified in hexadecimal, by prefixing the number with 0x, or decimal.
When the site number is set dynamically, it is the responsibility of the boot program to determine the site number of the target. The method by which the site number is found by the boot program is fully boot dependent, and specific to the target board. It may, for example, be stored in NVRAM, dynamically generated from a unique board identifier. When the target is booted with the standard ChorusOS network boot monitor, the whole IP address used by the boot monitor is provided as the site number of the target.
When the site number is set statically, the site number is fixed within the system image. This approach is less flexible than the dynamic method because the same system image cannot be booted on similar target boards. A system image with a unique site number must be built for each target. For this reason, it should only be used when there is no way for the boot program to determine the site number of the target board.
The value of the site number set with the
tunable takes precedence over the value of the site number provided by the
The site number is set to zero by default. If the
IPC_REMOTE feature has been enabled, and the site number remains at zero,
the following message is displayed on the system console:
WARNING - LOCAL SITE ID. NOT SET => REMOTE IPC disabled
Only local IPC communications are enabled if the site number has not been set.