INTEGRITY Platforms
11
match in transport configuration between INTEGRITY and other platforms applies to Connext
5.1.0 and higher.
To address the compatibility issues, you can change the default transport settings of other plat-
forms to match those of the INTEGRITY platform. Alternatively, you can update the INTEG-
RITY kernel parameters as described below so that the INTEGRITY platform will support larger
transport settings.
The directive, GM_IP_FRAG_ENTRY_MAX_SIZE, limits the size of UDP packets that can be
sent and received by INTEGRITY platforms. For details on this directive, please see Section 5.4.2
in the networking.pdf manual provided with the INTEGRITY kernel. The default value of
GM_IP_FRAG_ENTRY_MAX_SIZE is 9216 bytes (not 16,000 bytes as is stated in the INTEG-
RITY documentation), which is why the default message_size_max for all transports supported
for INTEGRITY is 9216 bytes.
If you want to send UDP messages larger than 9k, you must increase the value of
GM_IP_FRAG_ENTRY_MAX_SIZE and rebuild the kernel. (You may also have to reconfigure
other kernel parameters such as the socket, stack, and heap sizes to accommodate the larger
value for GM_IP_FRAG_ENTRY_MAX_SIZE.) Failing to increase this value will cause failures
when sending large UDP packets, and in some cases (for example with the 5.0.11 kernel) the
sendto() call will fail silently.
3.8.1 Smaller Shared-Memory Receive-Resource Queue Size
INTEGRITY's shared-memory pluggable transport uses the shared-memory POSIX API. This
API is part of the standard INTEGRITY distribution and is shipped as a library. The current ver-
sion (5.0.4) of this library uses a hard-coded value for the total amount of memory that can be
shared with an address space. This limits the overall buffer space that can be used by the
DomainParticipants within the same address space to communicate over shared memory with
other DomainParticipants.
To allow more DomainParticipants to run within the same address space, we reduced the default
size of the queue for each receive resource of the shared memory transport. The queue size is
reduced to eight messages (the default for other platforms is 32). This change only applies to
INTEGRITY architectures and this default value can be overwritten through the shared memory
transport QoS.
3.8.2 Using Shared Memory on INTEGRITY Systems
Connext uses the single address-space POSIX library to implement the shared-memory transport
on INTEGRITY 10.0 operating systems.
To use shared-memory, you must configure your system to include the POSIX shared-memory
library. The posix_shm_manager must be running in an "AddressSpace" solely dedicated to it.
After building any Connext application that uses shared memory, you must use the intex utility
(provided with the INTEGRITY development environment) to pack the application with multi-
ple address-spaces: one (or more) to contain the Connext application(s), and another one to con-
tain the posix_shm_manager.
Connext will run on a target without the posix_shm_manager, but the POSIX functions will fail
and return ENOSYS, and the participants will fail to communicate through shared memory.
To include the POSIX Shared-Memory Manager in its own Address Space:
The project files generated by rtiddsgen for MULTI will create the shared-memory manager for
you. Please follow these steps:
1. Specify the path to your INTEGRITY distribution in the _default.gpj top-level project file
by adding the following line (modify it according to the path to your INTEGRITY distri-
bution):