11. Release Notes
11.1. Release Notes 4.1
11.1.1. What's New in 4.1
11.1.1.1. Support for the LightWeight Security library
In this release we added support for the RTI Connext LightWeight Security Library.
If RTI Perftest is compiled dynamically (--dynamically
in the build scripts build.sh
/ .bat
),
then no new parameters are needed. However, when compiling statically, a new command line
option has been added to the build scripts (--lightWeightSecurity
) to force the linking
against that library instead of the regular (Full) RTI Connext Secure library.
11.1.1.2. Default value for openssl if none is provided
In previous releases, when compiling statically against RTI Connext with the Security Libraries,
a path to the ssl crypto libraries had to be provided (openSSL or WolfSSL).
Starting in this release, if no path is provided, RTI Perftest will try to search
in the RTI Connext Installation ($NDDSHOME
), in the default folder where the OpenSSL Libraries bundle is installed.
11.1.1.3. Provide ssl version
If more than one set of cryptography libraries or versions (openSSL or wolfSSL) are found in the RTI Connext DDS Middleware installation, by using the the --openssl-version parameter, you can select the desired one.
11.1.1.4. Secure parameters have been simplified
In previous releases, Perftest had the option of building the name of the security governance file based on several command-line options. These options would determine if the governance would be signed, the kind of RTPS protection, DATA protection, etc. These options required having a governance file for every combination of security options.
Perftest now uses a simpler option (also present in previous releases),
-secureGovernanceFile
, so that Perftest can be directly pointed to the file to
use.
11.1.1.5. Added Command-Line Option to enable AAD
Starting in this new release, Perftest has a new Command-Line Option: -secureEnableAAD
which sets the right property to enable the "Additional Authenticated Data".
11.1.1.6. New option to save all latency times into a .csv file
The RTI Perftest publisher side has a new command-line option: --latencyFile <file>
.
This option will, at the end of the test, save all the time values obtained for all the latency
samples (those samples for which Perftest calculates the Round-Trip Time) into a file.
You should use this option when all the latency time values are required and the final summary information is not enough.
Use this option in conjunction with --noPrint
when doing
a latency test (--lantecyTest
) or when latency samples are printed very often on the
publisher side, since the printing operation is more costly and may affect the result of the
test.
Find more information in the Test Parameters only for Publishing Applications section.
11.1.2. What's Fixed in 4.1
11.1.2.1. Issue when using multicast in rawTransport mode
In previous releases, when using multicast and raw transport in a multi-subscriber scenario, only the subscriber with ID 0 would receive the packets correctly since the receive port was incorrectly calculated. This issue has been fixed.
11.1.2.2. Error in C++11, C#, and Java when using security
The following error could appear when using the C++11, C#, or Java API implementations and enabling the Security Plugins:
`
[CREATE Participant] RTI_Security_Cryptography_register_participant:inconsistent configuration: protection_kind has WITH_ORIGIN_AUTHENTICATION, but cryptography.max_receiver_specific_macs < 2
[CREATE Participant] DDS_DomainParticipantTrustPlugins_getLocalParticipantSecurityState:!security function register_local_participant returned NULL
[CREATE Participant] DDS_DomainParticipant_createI:!get local participant security state
[CREATE Participant] DDS_DomainParticipantFactory_create_participant_disabledI:!create participant
`
This issue would not happen when using the Traditional C++ implementation. The issue has been resolved.
11.2. Release Notes 4.0
11.2.1. What's New in 4.0
11.2.1.1. Support for RTI Connext TSS 3.1.2
We have added support for RTI Connext TSS 3.1.2 compiled against RTI Connext Pro 6.1.1.4 or against RTI Connext Micro 2.4.13.4.
This support has been added for Linux, since RTI Connext TSS 3.1.2 does not support Windows as a host or target platform.
Examples of how to compile Perftest for RTI Connext TSS 3.1.2 can be found in section Examples Running Build Script.
Running Perftest against RTI Connext TSS 3.1.2 is the same as
running it when compiled against RTI Connext Pro or RTI Connext Micro,
except for some command-line arguments that are available for RTI Connext Pro
and/or RTI Connext Micro, but that aren't available for RTI Connext TSS.
(See Perftest parameters not available when using Connext TSS). The argument
-loaningSendReceive
has been added to make Perftest use
RTI Connext Pro/RTI Connext Micro loaning functions for receiving and
sending samples, instead of the pure TSS approach that's followed
by default. Find more information on this argument in section
Test Parameters for Publishing and Subscribing Applications.
11.2.1.2. Support for RTI Connext DDS 7.0.0
We modified RTI Perftest to add support for RTI Connext DDS 7.0.0, since we were using some internal APIs to retrieve certain information that have changed from the previous version.
11.2.1.3. Support for wolfSSL for Linux and QNX when using the Security Plugins
Perftest now adds support for wolfSSL in addition to OpenSSL when using RTI Connext DDS Secure 6.1.1. This support has only been added for Linux and QNX platforms, as these are the ones supported by RTI Connext DDS Secure 6.1.1.
A new parameter (--wolfSSL-home
) has been added to the compilation script in order
to be able to specify the location of the libraries when compiling statically.
11.2.1.4. New command-line option to output data to a file
Perftest has added a new command-line parameter, -outputFile
. This parameter
enables you to output the performance data to a file instead of printing it on the screen.
The output content is the same as when using the >
or >>
,
options in the command-line: the performance data is sent to the specified file,
while the summary information and errors are still printed on the screen.
11.2.1.5. Set default Encryption Algorithm to aes-128-gcm
In previous versions Perftest would use the default value for the Encryption
algorithm when using RTI Connext DDS Secure. However, starting in 7.0.0. The
default value has been upgraded to aes-256-gcm
. While this new value offers a
higher level of security, aes-128-gcm
remains being secure and slightly more
efficient CPU/Performance wise. For that reason as well as for comparison with
previous versions of RTI Connext DDS Secure, Perftest has adopted that new
value.
In addition, a new parameter (-secureEncryptionAlgorithm
) has been added to support
manually setting the desired value.
11.2.2. What's Fixed in 4.0
11.2.2.1. Unclear table output headers
The output headers displayed by Perftest during and after the test have been updated to show a clearer description of the content of the tables.
In addition, when the -noPrintIntervals
option is used, the header is a single line, which
simplifies parsing it later on.
11.2.2.2. Bug in C# API when testing with large data sizes and unbounded types
A bug in Perftest's C# API implementation made it impossible
to test using large data types (dataLen
larger than 65470
bytes) or when forcing
the use of unbounded sequences (-unbounded
). This problem has been fixed.
11.2.2.3. Compilation issue when enabling security in static mode
When trying to compile statically (default behavior), Perftest
would try to find and link against the Openssl libraries cryptoz
and
sslz
; however, these names are no longer used. The right names of the
libraries are crypto
and ssl
.
11.2.2.4. Fixed warning in Modern C++ implementation
The following warning may appear when compiling Perftest's Modern C++ API implementation:
RTIDDSImpl.cxx: In instantiation of 'void RTIPublisherBase<T>::wait_for_ack(long int, long unsigned int) [with T = rti::flat::Sample<TestDataLarge_ZeroCopy_w_FlatData_tOffset>]':
RTIDDSImpl.cxx:595:10: required from here
RTIDDSImpl.cxx:600:15: warning: catching polymorphic type 'const class dds::core::TimeoutError' by value [-Wcatch-value=]
600 | } catch (const dds::core::TimeoutError) {} // Expected exception
| ^~~~~
This warning has been fixed.
11.2.2.5. Fixed unhandled exception in Modern C++ API implementation
When using Perftest's Modern C++ API implementation with the -bestEffort
command-line option
an unhandled exception might be raised if a sample wasn't answered before a certain ammount of time
(which could happen if the sample was lost or coudn't be replied). This exception was caught at the main()
level, stopping the flow of the program, however it should simply be ignored (and treat the failure as a sample lost).
This issue has been corrected.
11.2.2.6. Issue compiling Connext DDS Micro on Windows
The build scripts for Windows (build.bat
) failed with the following error when trying to compile Perftest
against RTI Connext DDS Micro. The error displayed was:
CMake Error: Unknown argument --target
CMake Error: Run 'cmake --help' for all supported options.
This problem has been fixed.
11.2.2.7. Clock skews caused publisher side to hang
Clock skews caused the publisher side to hang. This problem was usually seen in operating systems (such as VxWorks) with low-resolution clocks.
This problem has been resolved.
11.2.3. Deprecations in 4.0
11.2.3.1. -scan
option will be removed in future versions of RTI Perftest
The -scan
command-line option is currently available in the Traditional C++,
Modern C++, and Java API implementations of RTI Perftest (not available in the
Modern C# API implementation), but in future versions it will be removed.