Skip to content

Commit

Permalink
Release 1.8.0 documentation (#33)
Browse files Browse the repository at this point in the history
* Refs #5335 Homogenization of Fast-RTPS and Fast-RTPS-docs README files

* Refs #5335 Fixing link to release notes

* Refs #5335 Updating release notes

* Refs #5335 Fixing documentation errors

* Refs #5335 Fixing spelling checker

* Refs #5335 Forgot 'whitelists'

* Refs #5335 Adding known issues section to release notes

* Refs #5335 Fixing spelling checker

* Refs #5335 Adding doc for UDP non-blocking send

* Refs #5335 Fixing cpp code tester

* Refs #5335 Fixing XML tester

* Refs #5335 Removing non_blocking_send parameter from XML code using TCP transport
  • Loading branch information
raquelalvarezbanos authored and MiguelCompany committed May 14, 2019
1 parent f91e754 commit e98b662
Show file tree
Hide file tree
Showing 8 changed files with 122 additions and 15 deletions.
24 changes: 16 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,46 +24,54 @@ system input/output channel combination for each deployment.
* Two API Layers: a high-level Publisher-Subscriber one focused on usability and a lower-level Writer-Reader one that provides finer access to the inner workings of the RTPS protocol.

*eProsima Fast RTPS* has been adopted by multiple organizations in many sectors including these important cases:

* Robotics: ROS (Robotic Operating System) as their default middleware for ROS2.
* EU R&D: FIWARE Incubated GE.

## Supported platforms

* Linux [![Linux Build Status](http://jenkins.eprosima.com:8080/job/FastRTPS%20Nightly%20Master%20Security%20Linux/badge/icon)](http://jenkins.eprosima.com:8080/job/FastRTPS%20Nightly%20Master%20Security%20Linux)
* Windows [![Windows Build Status](http://jenkins.eprosima.com:8080/job/FastRTPS%20Nightly%20Master%20Security%20Windows/badge/icon)](http://jenkins.eprosima.com:8080/job/FastRTPS%20Nightly%20Master%20Security%20Windows)
* Mac [![Mac Build Status](http://jenkins.eprosima.com:8080/job/FastRTPS%20Nightly%20Master%20Security%20Mac/badge/icon)](http://jenkins.eprosima.com:8080/job/FastRTPS%20Nightly%20Master%20Security%20Mac)

## Installation Guide
You can get either a binary distribution of *eprosima Fast RTPS* or compile the library yourself from source.

### Installation from binaries
The latest, up to date binary release of *eprosima Fast RTPS* can be obtained from the <a href='http://www.eprosima.com'>company website</a>.

### Installation from Source
To compile *eprosima Fast RTPS* from source, at least Cmake version 2.8.12 and Boost 1.61 are needed.
To compile *eprosima Fast RTPS* from source, at least Cmake version 2.8.12 is needed.
Clone the project from GitHub:

$ git clone https://github.com/eProsima/Fast-RTPS
$ cd Fast-RTPS
$ mkdir build
$ cd build

If you are on Linux, execute:

$ cmake ../ -DEPROSIMA_BUILD=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=install
$ cmake ../ -DTHIRDPARTY=ON
$ make
$ make install
$ make install

If you are on Windows, choose your version of Visual Studio:

> cmake ../ -G"Visual Studio 14 2015 Win64" -DEPROSIMA_BUILD=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=installationpath
> cmake ../ -G "Visual Studio 14 2015 Win64" -DTHIRDPARTY=ON
> cmake --build . --target install

If you want to compile the performance tests, you will need to add the argument `-DPERFORMANCE_TESTS=ON` when calling Cmake.

## Documentation
## Documentation

You can access the documentation online, which is hosted on [Read the Docs](http://eprosima-fast-rtps.readthedocs.io).

* [Start Page](http://eprosima-fast-rtps.readthedocs.io)
* [Installation manual](http://eprosima-fast-rtps.readthedocs.io/en/latest/requirements.html)
* [User manual](http://eprosima-fast-rtps.readthedocs.io/en/latest/introduction.html)
* [FastRTPSGen manual](http://eprosima-fast-rtps.readthedocs.io/en/latest/geninfo.html)
* [Release notes](http://eprosima-fast-rtps.readthedocs.io/notes.html)
* [Release notes](http://eprosima-fast-rtps.readthedocs.io/en/latest/notes.html)

## Getting Help

If you need support you can reach us by mail at `[email protected]` or by phone at `+34 91 804 34 48`.


2 changes: 1 addition & 1 deletion code/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ set(PRODUCT_CMAKELIST_CONTENT "
GIT_REPOSITORY https://github.com/eProsima/Fast-RTPS.git
GIT_TAG origin/${REPO_TAG}
GIT_SHALLOW TRUE
CMAKE_ARGS -DBUILD_SHARED_LIBS=OFF -DEPROSIMA_BUILD=ON -DSECURITY=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo \"-DCMAKE_INSTALL_PREFIX=${PROJECT_BINARY_DIR}/install\"
CMAKE_ARGS -DBUILD_SHARED_LIBS=OFF -DTHIRDPARTY=ON -DSECURITY=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo \"-DCMAKE_INSTALL_PREFIX=${PROJECT_BINARY_DIR}/install\"
UPDATE_COMMAND \"\"
)
")
Expand Down
12 changes: 12 additions & 0 deletions code/CodeTester.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -273,6 +273,18 @@ IPLocator::setIPv4(initial_peer, 192, 168, 0, 1);
participant_attr.rtps.builtin.initialPeersList.push_back(initial_peer);
//!--

//CONF-NON-BLOCKING-WRITE
//Create a descriptor for the new transport.
auto non_blocking_UDP_transport = std::make_shared<UDPv4TransportDescriptor>();
non_blocking_UDP_transport->non_blocking_send = false;

//Disable the built-in Transport Layer.
participant_attr.rtps.useBuiltinTransports = false;

//Link the Transport Layer to the Participant.
participant_attr.rtps.userTransports.push_back(non_blocking_UDP_transport);
//!--

//CONF-QOS-FLOWCONTROLLER
// Limit to 300kb per second.
ThroughputControllerDescriptor slowPublisherThroughputController{300000, 1000};
Expand Down
20 changes: 20 additions & 0 deletions code/XMLTester.xml
Original file line number Diff line number Diff line change
Expand Up @@ -389,6 +389,25 @@
</participant>
<!--><-->

<!-->CONF-NON-BLOCKING-WRITE<-->
<transport_descriptors>
<transport_descriptor>
<transport_id>non_blocking_transport</transport_id>
<type>UDPv4</type>
<non_blocking_send>false</non_blocking_send>
</transport_descriptor>
</transport_descriptors>

<participant profile_name="non_blocking_transport">
<rtps>
<userTransports>
<transport_id>non_blocking_transport</transport_id>
</userTransports>
<useBuiltinTransports>false</useBuiltinTransports>
</rtps>
</participant>
<!--><-->

<!-->CONF-QOS-FLOWCONTROLLER<-->
<publisher profile_name="publisher_profile_qos_flowcontroller">
<throughputController>
Expand Down Expand Up @@ -576,6 +595,7 @@
<sendBufferSize>8192</sendBufferSize> <!-- uint32 -->
<receiveBufferSize>8192</receiveBufferSize> <!-- uint32 -->
<TTL>250</TTL> <!-- uint8 -->
<non_blocking_send>false</non_blocking_send> <!-- boolean -->
<maxMessageSize>16384</maxMessageSize> <!-- uint32 -->
<maxInitialPeersRange>100</maxInitialPeersRange> <!-- uint32 -->
<interfaceWhiteList>
Expand Down
26 changes: 24 additions & 2 deletions docs/advanced.rst
Original file line number Diff line number Diff line change
Expand Up @@ -230,11 +230,13 @@ example.

TCP doesn't support multicast scenarios, so you must plan carefully your network architecture.

.. _TLS:

Using TLS (Transport Layer Security) over TCP
TLS over TCP
---------------------------------------------

Fast-RTPS allows configuring a TCP Transport to use TLS by setting up **TCP Server** and **TCP Client** properly.
Fast-RTPS allows configuring a TCP Transport to use TLS (Transport Layer Security)
by setting up **TCP Server** and **TCP Client** properly.

**TCP Server**

Expand Down Expand Up @@ -411,6 +413,26 @@ Tips
| :end-before: <!--><--> |
+----------------------------------------------+

**Non-blocking write on sockets**

For UDP transport, it is possible to configure whether to use non-blocking write calls on the sockets.

+----------------------------------------------+
| **C++** |
+----------------------------------------------+
| .. literalinclude:: ../code/CodeTester.cpp |
| :language: c++ |
| :start-after: //CONF-NON-BLOCKING-WRITE |
| :end-before: //!-- |
+----------------------------------------------+
| **XML** |
+----------------------------------------------+
| .. literalinclude:: ../code/XMLTester.xml |
| :language: xml |
| :start-after: <!-->CONF-NON-BLOCKING-WRITE|
| :end-before: <!--><--> |
+----------------------------------------------+

**XML Configuration**

The :ref:`xml-profiles` section contains the full information about how to setup *Fast RTPS* through an
Expand Down
44 changes: 40 additions & 4 deletions docs/notes.rst
Original file line number Diff line number Diff line change
@@ -1,12 +1,51 @@
Version 1.7.2
Version 1.8.0
=============

This release includes the following features:

* Implementation of IDL 4.2
* Implementation of :ref:`deadline-qos` QoS
* Implementation of :ref:`lifespan-qos` QoS
* Implementation of :ref:`disable-positive-acks-qos` QoS
* Secure sockets on TCP transport (:ref:`TLS`)

It also adds the following improvements and bug fixes:

* Real-time improvements: non-blocking write calls for best-effort writers, addition of fixed size strings,
fixed size bitmaps, resource limited vectors, etc
* Duration parameters now use nanoseconds
* Configuration of participant mutation tries (see :ref:`participantconfiguration`)
* Automatic calculation of the port when a value of 0 is received on the endpoint custom locators
* Non-local addresses are now filtered from whitelists
* Optimization of check for acked status for stateful writers
* Linked libs are now not exposed when the target is a shared lib
* Limitation on the domain ID has been added
* UDP non-blocking send is now optional and configurable via XML
* Fix for non-deterministic tests
* Fix for ReaderProxy history being reloaded incorrectly in some cases
* Fix for RTPS domain hostid being potentially not unique
* Fix for participants with different lease expiration times failing to reconnect

**Known issues**

* When using TPC transport, sometimes callbacks are not invoked when removing a participant due to a bug in ASIO.

**Note:** If you are upgrading from a version older than 1.7.0, it is **required** to regenerate generated source
from IDL files using *fastrtpsgen*

Previous versions
-----------------

Version 1.7.2
^^^^^^^^^^^^^

This release fixes an important bug:

* Allocation limits on subscribers with a KEEP_LAST QoS was taken from resource limits configuration
and didn't take history depth into account.

It also has the following improvements:

* Vendor FindThreads.cmake from CMake 3.14 release candidate to help with sanitizers.
* Fixed format of gradle file.

Expand All @@ -15,9 +54,6 @@ Some other minor bugs and performance improvements.
**Note:** If you are upgrading from a version older than 1.7.0, it is **required** to regenerate generated source
from IDL files using *fastrtpsgen*

Previous versions
-----------------

Version 1.7.1
^^^^^^^^^^^^^

Expand Down
6 changes: 6 additions & 0 deletions docs/spelling_wordlist.txt
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
acceptor
acceptors
ack
acked
acks
AES
ASIO
auth
benchmarking
bitset
Expand Down Expand Up @@ -31,9 +33,11 @@ Github
GMAC
gradle
gtest
hostid
IDL
interoperability
IPv
libs
middleware
metatraffic
modularity
Expand All @@ -51,6 +55,7 @@ retransmission
rtps
scalability
sqlite
stateful
subfolder
submessages
typeobject
Expand All @@ -60,6 +65,7 @@ unicast
unidimensional
XTypes
whitelist
whitelists
WString
TCP
helloworld
Expand Down
3 changes: 3 additions & 0 deletions docs/xmlprofiles.rst
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,9 @@ The XML label ``<transport_descriptors>`` can hold any number of ``<transport_de
| ``<TTL>`` | *Time To Live*, **only** | ``uint8`` | 1 |
| | for UDP transports . | | |
+-------------------------------+-----------------------------------+---------------------------------+----------------+
| ``<non_blocking_send>`` | Whether to set the non-blocking | ``bool`` | false |
| | send mode on the socket | | |
+-------------------------------+-----------------------------------+---------------------------------+----------------+
| ``<maxMessageSize>`` | The maximum size in bytes | ``uint32`` | 65500 |
| | of the transport's message | | |
| | buffer. | | |
Expand Down

0 comments on commit e98b662

Please sign in to comment.