Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add basic support for security logging plugin #362

Merged
merged 1 commit into from
Apr 30, 2020

Conversation

kyrofa
Copy link
Member

@kyrofa kyrofa commented Apr 7, 2020

Support setting the security logging properties in Fast RTPS by exposing three environment variables:

  • ROS_SECURITY_LOG_FILE: Log security events to the provided file path
  • ROS_SECURITY_LOG_PUBLISH: Publish security events to DDS topic
  • ROS_SECURITY_LOG_VERBOSITY: Control verbosity of logged events

This PR also makes sure this functionality is covered in tests, both with and without security enabled. Requires eProsima/Fast-DDS#1125 to be useful, although it doesn't break anything without it.

@sloretz sloretz self-assigned this Apr 21, 2020
@sloretz sloretz added this to In progress in Foxy via automation Apr 21, 2020
Copy link
Member

@mikaelarguedas mikaelarguedas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

code looks good to me, but I didnt actually comple and test it.

+1 with green CI and confirmation of it working from someone approving.
Otherwise I can give it a test tomorrow

@kyrofa kyrofa force-pushed the feature/dds-security-logging branch from a230658 to 7aa9721 Compare April 21, 2020 22:01
@kyrofa
Copy link
Member Author

kyrofa commented Apr 21, 2020

(rebased on API breakage that landed on master)

Copy link
Member

@ruffsl ruffsl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just ran the added tests locally (fresh build ros2 master on 18.04 though) and all rmw_fastrtps_shared_cpp test passed.

Foxy automation moved this from In progress to Reviewer approved Apr 21, 2020
@kyrofa
Copy link
Member Author

kyrofa commented Apr 21, 2020

CI for rmw_fastrtps_cpp and rmw_fastrtps_shared_cpp:

  • Linux Build Status
  • Linux-aarch64 Build Status
  • macOS Build Status
  • Windows Build Status

Notes:

  • Fast RTPS itself doesn't appear to be building on macOS.
  • That Windows msbuild warning does appear to be an related, but I have no idea why it's happening. Anyone?

@kyrofa
Copy link
Member Author

kyrofa commented Apr 21, 2020

Notes for folks wanting to test this end-to-end: You'll need Fast RTPS master, which currently only supports logging to file, so focus on testing that functionality. DDS will come soon.

Here is a repos file that should work.
repositories:
  ament/ament_cmake:
    type: git
    url: https://github.com/ament/ament_cmake.git
    version: master
  ament/ament_index:
    type: git
    url: https://github.com/ament/ament_index.git
    version: master
  ament/ament_lint:
    type: git
    url: https://github.com/ament/ament_lint.git
    version: master
  ament/ament_package:
    type: git
    url: https://github.com/ament/ament_package.git
    version: master
  ament/googletest:
    type: git
    url: https://github.com/ament/googletest.git
    version: ros2
  ament/uncrustify_vendor:
    type: git
    url: https://github.com/ament/uncrustify_vendor.git
    version: master
  eclipse-cyclonedds/cyclonedds:
    type: git
    url: https://github.com/eclipse-cyclonedds/cyclonedds.git
    version: releases/0.5.x
  eProsima/Fast-CDR:
    type: git
    url: https://github.com/eProsima/Fast-CDR.git
    version: v1.0.13
  eProsima/Fast-RTPS:
    type: git
    url: https://github.com/eProsima/Fast-RTPS.git
    version: master
  eProsima/foonathan_memory_vendor:
    type: git
    url: https://github.com/eProsima/foonathan_memory_vendor.git
    version: master
  micro-ROS/ros_tracing/ros2_tracing:
    type: git
    url: https://gitlab.com/micro-ROS/ros_tracing/ros2_tracing.git
    version: c3ea84b4b98a99d0a7ba3ed94846e1aaec8a8d13
  osrf/osrf_pycommon:
    type: git
    url: https://github.com/osrf/osrf_pycommon.git
    version: master
  osrf/osrf_testing_tools_cpp:
    type: git
    url: https://github.com/osrf/osrf_testing_tools_cpp.git
    version: master
  ros-perception/laser_geometry:
    type: git
    url: https://github.com/ros-perception/laser_geometry.git
    version: ros2
  ros-planning/navigation_msgs:
    type: git
    url: https://github.com/ros-planning/navigation_msgs.git
    version: ros2
  ros-tooling/libstatistics_collector:
    type: git
    url: https://github.com/ros-tooling/libstatistics_collector.git
    version: master
  ros-visualization/interactive_markers:
    type: git
    url: https://github.com/ros-visualization/interactive_markers.git
    version: ros2
  ros-visualization/python_qt_binding:
    type: git
    url: https://github.com/ros-visualization/python_qt_binding.git
    version: crystal-devel
  ros-visualization/qt_gui_core:
    type: git
    url: https://github.com/ros-visualization/qt_gui_core.git
    version: crystal-devel
  ros-visualization/rqt:
    type: git
    url: https://github.com/ros-visualization/rqt.git
    version: crystal-devel
  ros-visualization/rqt_action:
    type: git
    url: https://github.com/ros-visualization/rqt_action.git
    version: crystal-devel
  ros-visualization/rqt_console:
    type: git
    url: https://github.com/ros-visualization/rqt_console.git
    version: dashing-devel
  ros-visualization/rqt_graph:
    type: git
    url: https://github.com/ros-visualization/rqt_graph.git
    version: crystal-devel
  ros-visualization/rqt_msg:
    type: git
    url: https://github.com/ros-visualization/rqt_msg.git
    version: crystal-devel
  ros-visualization/rqt_plot:
    type: git
    url: https://github.com/ros-visualization/rqt_plot.git
    version: crystal-devel
  ros-visualization/rqt_publisher:
    type: git
    url: https://github.com/ros-visualization/rqt_publisher.git
    version: crystal-devel
  ros-visualization/rqt_py_console:
    type: git
    url: https://github.com/ros-visualization/rqt_py_console.git
    version: crystal-devel
  ros-visualization/rqt_reconfigure:
    type: git
    url: https://github.com/ros-visualization/rqt_reconfigure.git
    version: dashing
  ros-visualization/rqt_service_caller:
    type: git
    url: https://github.com/ros-visualization/rqt_service_caller.git
    version: crystal-devel
  ros-visualization/rqt_shell:
    type: git
    url: https://github.com/ros-visualization/rqt_shell.git
    version: crystal-devel
  ros-visualization/rqt_srv:
    type: git
    url: https://github.com/ros-visualization/rqt_srv.git
    version: crystal-devel
  ros-visualization/rqt_top:
    type: git
    url: https://github.com/ros-visualization/rqt_top.git
    version: crystal-devel
  ros-visualization/rqt_topic:
    type: git
    url: https://github.com/ros-visualization/rqt_topic.git
    version: dashing-devel
  ros/class_loader:
    type: git
    url: https://github.com/ros/class_loader.git
    version: ros2
  ros/pluginlib:
    type: git
    url: https://github.com/ros/pluginlib.git
    version: ros2
  ros/resource_retriever:
    type: git
    url: https://github.com/ros/resource_retriever.git
    version: ros2
  ros/robot_state_publisher:
    type: git
    url: https://github.com/ros/robot_state_publisher.git
    version: ros2
  ros/ros_environment:
    type: git
    url: https://github.com/ros/ros_environment.git
    version: foxy
  ros/ros_tutorials:
    type: git
    url: https://github.com/ros/ros_tutorials.git
    version: eloquent-devel
  ros/urdfdom_headers:
    type: git
    url: https://github.com/ros/urdfdom_headers.git
    version: master
  ros2/ament_cmake_ros:
    type: git
    url: https://github.com/ros2/ament_cmake_ros.git
    version: master
  ros2/common_interfaces:
    type: git
    url: https://github.com/ros2/common_interfaces.git
    version: master
  ros2/console_bridge_vendor:
    type: git
    url: https://github.com/ros2/console_bridge_vendor.git
    version: master
  ros2/demos:
    type: git
    url: https://github.com/ros2/demos.git
    version: master
  ros2/eigen3_cmake_module:
    type: git
    url: https://github.com/ros2/eigen3_cmake_module.git
    version: master
  ros2/example_interfaces:
    type: git
    url: https://github.com/ros2/example_interfaces.git
    version: master
  ros2/examples:
    type: git
    url: https://github.com/ros2/examples.git
    version: master
  ros2/geometry2:
    type: git
    url: https://github.com/ros2/geometry2.git
    version: ros2
  ros2/kdl_parser:
    type: git
    url: https://github.com/ros2/kdl_parser.git
    version: ros2
  ros2/launch:
    type: git
    url: https://github.com/ros2/launch.git
    version: master
  ros2/launch_ros:
    type: git
    url: https://github.com/ros2/launch_ros.git
    version: master
  ros2/libyaml_vendor:
    type: git
    url: https://github.com/ros2/libyaml_vendor.git
    version: master
  ros2/message_filters:
    type: git
    url: https://github.com/ros2/message_filters.git
    version: master
  ros2/orocos_kinematics_dynamics:
    type: git
    url: https://github.com/ros2/orocos_kinematics_dynamics.git
    version: ros2
  ros2/python_cmake_module:
    type: git
    url: https://github.com/ros2/python_cmake_module.git
    version: master
  ros2/rcl:
    type: git
    url: https://github.com/ros2/rcl.git
    version: master
  ros2/rcl_interfaces:
    type: git
    url: https://github.com/ros2/rcl_interfaces.git
    version: master
  ros2/rcl_logging:
    type: git
    url: https://github.com/ros2/rcl_logging.git
    version: master
  ros2/rclcpp:
    type: git
    url: https://github.com/ros2/rclcpp.git
    version: master
  ros2/rclpy:
    type: git
    url: https://github.com/ros2/rclpy.git
    version: master
  ros2/rcpputils:
    type: git
    url: https://github.com/ros2/rcpputils.git
    version: master
  ros2/rcutils:
    type: git
    url: https://github.com/ros2/rcutils.git
    version: master
  ros2/realtime_support:
    type: git
    url: https://github.com/ros2/realtime_support.git
    version: master
  ros2/rmw:
    type: git
    url: https://github.com/ros2/rmw.git
    version: master
  ros2/rmw_connext:
    type: git
    url: https://github.com/ros2/rmw_connext.git
    version: master
  ros2/rmw_cyclonedds:
    type: git
    url: https://github.com/ros2/rmw_cyclonedds.git
    version: master
  ros2/rmw_dds_common:
    type: git
    url: https://github.com/ros2/rmw_dds_common.git
    version: master
  ros2/rmw_fastrtps:
    type: git
    url: https://github.com/canonical/rmw_fastrtps.git
    version: feature/dds-security-logging
  ros2/rmw_implementation:
    type: git
    url: https://github.com/ros2/rmw_implementation.git
    version: master
  ros2/ros1_bridge:
    type: git
    url: https://github.com/ros2/ros1_bridge.git
    version: master
  ros2/ros2cli:
    type: git
    url: https://github.com/ros2/ros2cli.git
    version: master
  ros2/ros_testing:
    type: git
    url: https://github.com/ros2/ros_testing.git
    version: master
  ros2/rosbag2:
    type: git
    url: https://github.com/ros2/rosbag2.git
    version: master
  ros2/rosidl:
    type: git
    url: https://github.com/ros2/rosidl.git
    version: master
  ros2/rosidl_dds:
    type: git
    url: https://github.com/ros2/rosidl_dds.git
    version: master
  ros2/rosidl_defaults:
    type: git
    url: https://github.com/ros2/rosidl_defaults.git
    version: master
  ros2/rosidl_python:
    type: git
    url: https://github.com/ros2/rosidl_python.git
    version: master
  ros2/rosidl_runtime_py:
    type: git
    url: https://github.com/ros2/rosidl_runtime_py.git
    version: master
  ros2/rosidl_typesupport:
    type: git
    url: https://github.com/ros2/rosidl_typesupport.git
    version: master
  ros2/rosidl_typesupport_connext:
    type: git
    url: https://github.com/ros2/rosidl_typesupport_connext.git
    version: master
  ros2/rosidl_typesupport_fastrtps:
    type: git
    url: https://github.com/ros2/rosidl_typesupport_fastrtps.git
    version: master
  ros2/rviz:
    type: git
    url: https://github.com/ros2/rviz.git
    version: ros2
  ros2/spdlog_vendor:
    type: git
    url: https://github.com/ros2/spdlog_vendor.git
    version: master
  ros2/sros2:
    type: git
    url: https://github.com/ros2/sros2.git
    version: master
  ros2/system_tests:
    type: git
    url: https://github.com/ros2/system_tests.git
    version: master
  ros2/test_interface_files:
    type: git
    url: https://github.com/ros2/test_interface_files.git
    version: master
  ros2/tinyxml2_vendor:
    type: git
    url: https://github.com/ros2/tinyxml2_vendor.git
    version: master
  ros2/tinyxml_vendor:
    type: git
    url: https://github.com/ros2/tinyxml_vendor.git
    version: master
  ros2/tlsf:
    type: git
    url: https://github.com/ros2/tlsf.git
    version: master
  ros2/unique_identifier_msgs:
    type: git
    url: https://github.com/ros2/unique_identifier_msgs.git
    version: master
  ros2/urdf:
    type: git
    url: https://github.com/ros2/urdf.git
    version: ros2
  ros2/urdfdom:
    type: git
    url: https://github.com/ros2/urdfdom.git
    version: ros2
  ros2/yaml_cpp_vendor:
    type: git
    url: https://github.com/ros2/yaml_cpp_vendor.git
    version: master

@mikaelarguedas
Copy link
Member

mikaelarguedas commented Apr 22, 2020

My guess for this one:

That Windows msbuild warning does appear to be an related, but I have no idea why it's happening. Anyone?

It looks like you're adding a new public function to the API (apply_security_logging_configuration) that does not have visibility macros on windows.
If they are indeed public, it has to be declared as such using the macro RMW_FASTRTPS_SHARED_CPP_PUBLIC (that comes from rmw_fastrtps_shared_cpp/visibility_control.h). Similar to the other headers of this package:

#include "rmw_fastrtps_shared_cpp/visibility_control.h"

RMW_FASTRTPS_SHARED_CPP_PUBLIC
bool
is_valid_qos(const rmw_qos_profile_t & qos_policies);

@kyrofa
Copy link
Member Author

kyrofa commented Apr 22, 2020

If they are indeed public, it has to be declared as such using the macro

There is no reason for callers outside of this package to need that function. In other words, there is no need for it to be public API, it's extracted for modularity and ease of testing, which is why I left that macro off. I don't have a problem adding them if they're required of course, but that feels weird to me. I'm afraid I must plead ignorance. Does Windows actually require this? Does it need to be public if it's called by a test?

@sloretz
Copy link
Contributor

sloretz commented Apr 22, 2020

Does Windows actually require this? Does it need to be public if it's called by a test?

Yeah @mikaelarguedas is right. It needs to be decorated with __declspec( dllimport ) to tell the linker to look for the symbol in another dll when building the test executable. When building the library it needs the symbol to be decorated with __declspec( dllexport ) to make that symbol available from the built dll. This is what the *_PUBLIC macros do. There's one for each library, and on windows it evaluates to dllexport when the library is building and dllimport for everyone else that uses the library.

@kyrofa
Copy link
Member Author

kyrofa commented Apr 22, 2020

Excellent, thanks for the confirmation @sloretz, fixing now.

@kyrofa
Copy link
Member Author

kyrofa commented Apr 22, 2020

Alright trying again:

  • Linux Build Status
  • Linux-aarch64 Build Status
  • macOS Build Status
  • Windows Build Status

@kyrofa
Copy link
Member Author

kyrofa commented Apr 22, 2020

Hey, there's the green! Thanks again guys.

@kyrofa
Copy link
Member Author

kyrofa commented Apr 22, 2020

Is this good to merge, or are we waiting for more?

@sloretz
Copy link
Contributor

sloretz commented Apr 22, 2020

Is this good to merge, or are we waiting for more?

If I understand correctly I think this one is waiting on eProsima/Fast-DDS#1125 to be ready on the Fast-RTPS 1.10.x branch. I'm having a look at the rmw_conntext PR now.

Copy link
Contributor

@sloretz sloretz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM once CI is using a branch of Fast-RTPS with eProsima/Fast-DDS#1125

@kyrofa
Copy link
Member Author

kyrofa commented Apr 22, 2020

Thanks @sloretz. In case it matters, note that the properties set by this PR are only used from eProsima/Fast-DDS#1125 onward, but setting them shouldn't cause issues without it. They're just ignored based on my tests.

@sloretz
Copy link
Contributor

sloretz commented Apr 27, 2020

CI again now that ros2/ros2#906 has been merged (Testing just rmw_fastrtps_cpp rmw_fastrtps_shared_cpp)

  • Linux Build Status
  • Linux-aarch64 Build Status
  • macOS Build Status
  • Windows Build Status

@sloretz
Copy link
Contributor

sloretz commented Apr 28, 2020

@kyrofa Mind rebasing? I suspect the build failure is just this branch missing #373

14:48:03 /home/jenkins-agent/workspace/ci_linux/ws/src/ros2/rmw_fastrtps/rmw_fastrtps_cpp/src/rmw_request.cpp:36:1: error: conflicting declaration of C function ‘rmw_ret_t rmw_take_request(const rmw_service_t*, rmw_request_id_t*, void*, bool*)’
14:48:03    36 | rmw_take_request(
14:48:03       | ^~~~~~~~~~~~~~~~
14:48:03 In file included from /home/jenkins-agent/workspace/ci_linux/ws/src/ros2/rmw_fastrtps/rmw_fastrtps_cpp/src/rmw_request.cpp:16:
14:48:03 /home/jenkins-agent/workspace/ci_linux/ws/install/rmw/include/rmw/rmw.h:979:1: note: previous declaration ‘rmw_ret_t rmw_take_request(const rmw_service_t*, rmw_service_info_t*, void*, bool*)’
14:48:03   979 | rmw_take_request(
14:48:03       | ^~~~~~~~~~~~~~~~
14:48:03 make[2]: *** [CMakeFiles/rmw_fastrtps_cpp.dir/build.make:375: CMakeFiles/rmw_fastrtps_cpp.dir/src/rmw_request.cpp.o] Error 1
14:48:03 make[2]: *** Waiting for unfinished jobs....
14:48:03 /home/jenkins-agent/workspace/ci_linux/ws/src/ros2/rmw_fastrtps/rmw_fastrtps_cpp/src/rmw_publisher.cpp:38:9: error: ‘rosidl_message_bounds_t’ does not name a type
14:48:03    38 |   const rosidl_message_bounds_t * message_bounds,
14:48:03       |         ^~~~~~~~~~~~~~~~~~~~~~~
14:48:03 /home/jenkins-agent/workspace/ci_linux/ws/src/ros2/rmw_fastrtps/rmw_fastrtps_cpp/src/rmw_publisher.cpp:36:1: error: conflicting declaration of C function ‘rmw_ret_t rmw_init_publisher_allocation(const rosidl_message_type_support_t*, const int*, rmw_publisher_allocation_t*)’
14:48:03    36 | rmw_init_publisher_allocation(
14:48:03       | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
14:48:03 In file included from /home/jenkins-agent/workspace/ci_linux/ws/src/ros2/rmw_fastrtps/rmw_fastrtps_cpp/src/rmw_publisher.cpp:20:
14:48:03 /home/jenkins-agent/workspace/ci_linux/ws/install/rmw/include/rmw/rmw.h:277:1: note: previous declaration ‘rmw_ret_t rmw_init_publisher_allocation(const rosidl_message_type_support_t*, const rosidl_runtime_c__Sequence__bound*, rmw_publisher_allocation_t*)’
14:48:03   277 | rmw_init_publisher_allocation(
14:48:03       | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
14:48:03 make[2]: *** [CMakeFiles/rmw_fastrtps_cpp.dir/build.make:362: CMakeFiles/rmw_fastrtps_cpp.dir/src/rmw_publisher.cpp.o] Error 1
14:48:03 make[1]: *** [CMakeFiles/Makefile2:78: CMakeFiles/rmw_fastrtps_cpp.dir/all] Error 2

Support setting the security logging properties in Fast RTPS by exposing
three environment variables:

- `ROS_SECURITY_LOG_FILE`: Log security events to the provided file path
- `ROS_SECURITY_LOG_PUBLISH`: Publish security events to DDS topic
- `ROS_SECURITY_LOG_VERBOSITY`: Control verbosity of logged events

Signed-off-by: Kyle Fazzari <kyle@canonical.com>
@kyrofa kyrofa force-pushed the feature/dds-security-logging branch from b1c3f74 to b723654 Compare April 28, 2020 13:20
@kyrofa
Copy link
Member Author

kyrofa commented Apr 28, 2020

@sloretz done, tests appear to pass locally.

@kyrofa
Copy link
Member Author

kyrofa commented Apr 29, 2020

Running the tests in the build farm again (for rmw_fastrtps_cpp and rmw_fastrtps_shared_cpp):

  • Linux Build Status
  • Linux-aarch64 Build Status
  • macOS Build Status
  • Windows Build Status

@kyrofa
Copy link
Member Author

kyrofa commented Apr 29, 2020

@sloretz tests are green there now, although I'm not sure what's going on with Fpr__rmw_fastrtps__ubuntu_focal_amd64.

@sloretz
Copy link
Contributor

sloretz commented Apr 29, 2020

I'm not sure what's going on with Fpr__rmw_fastrtps__ubuntu_focal_amd64.

Looks unrelated to this PR. Packages required by this repo have not been built yet. First rmw_dds_common has not been built because rosidl_default_generators and rosidl_default_runtime have not been built because rosidl_generator_py failed to build.

@sloretz
Copy link
Contributor

sloretz commented Apr 29, 2020

@jacobperron I think this one is good to merge. It doesn't change API and was ready before the API freeze, but was on hold for ros2/ros2#906. Ok to merge?

@jacobperron
Copy link
Member

@sloretz I think it's okay to merge (you can disregard the PR job failure; working on it).

@sloretz sloretz merged commit 3b1ac77 into ros2:master Apr 30, 2020
Foxy automation moved this from Reviewer approved to Done Apr 30, 2020
timonegk pushed a commit to timonegk/ros-rolling-rmw-fastrtps-shared-cpp-release that referenced this pull request May 21, 2022
ros-rolling-rmw-fastrtps-shared-cpp (6.2.1-1jammy) jammy; urgency=high
.
  * Address linter waning for windows. (#592 <ros2/rmw_fastrtps#592>)
  * Add pub/sub init, publish and take instrumentation using tracetools (#591 <ros2/rmw_fastrtps#591>)
  * Add content filter topic feature (#513 <ros2/rmw_fastrtps#513>)
  * Add sequence numbers to message info structure (#587 <ros2/rmw_fastrtps#587>)
  * Contributors: Chen Lihui, Christophe Bedard, Ivan Santiago Paunovic, Tomoya Fujita
.
ros-rolling-rmw-fastrtps-shared-cpp (6.2.0-1jammy) jammy; urgency=high
.
  * Add EventsExecutor (#468 <ros2/rmw_fastrtps#468>)
  * Complete events support (#583 <ros2/rmw_fastrtps#583>)
  * Install headers to include/${PROJECT_NAME} (#578 <ros2/rmw_fastrtps#578>)
  * Change default to synchronous (#571 <ros2/rmw_fastrtps#571>)
  * Contributors: Audrow Nash, Miguel Company, Shane Loretz, iRobot ROS
.
ros-rolling-rmw-fastrtps-shared-cpp (6.1.2-1jammy) jammy; urgency=high
.
  * Fix cpplint error (#574 <ros2/rmw_fastrtps#574>)
  * Contributors: Jacob Perron
.
ros-rolling-rmw-fastrtps-shared-cpp (6.1.1-1jammy) jammy; urgency=high
.
  * Fixes for uncrustify 0.72 (#572 <ros2/rmw_fastrtps#572>)
  * Contributors: Chris Lalancette
.
ros-rolling-rmw-fastrtps-shared-cpp (6.1.0-1jammy) jammy; urgency=high
.
  * Add client/service QoS getters. (#560 <ros2/rmw_fastrtps#560>)
  * Fix QoS depth settings for clients/service being ignored. (#564 <ros2/rmw_fastrtps#564>)
  * Contributors: Chen Lihui, mauropasse
.
ros-rolling-rmw-fastrtps-shared-cpp (6.0.0-1jammy) jammy; urgency=high
.
  * Update rmw_context_impl_t definition. (#558 <ros2/rmw_fastrtps#558>)
  * Update the LoanManager to do internal locking. (#552 <ros2/rmw_fastrtps#552>)
  * Contributors: Chris Lalancette, Michel Hidalgo
.
ros-rolling-rmw-fastrtps-shared-cpp (5.2.2-1jammy) jammy; urgency=high
.
  * Pass the CRL down to Fast-DDS if available. (#546 <ros2/rmw_fastrtps#546>)
  * Contributors: Chris Lalancette
.
ros-rolling-rmw-fastrtps-shared-cpp (5.2.1-1jammy) jammy; urgency=high
.
  * Use the new rmw_dds_common::get_security_files (#544 <ros2/rmw_fastrtps#544>)
  * Support for SubscriptionOptions::ignore_local_publications (#536 <ros2/rmw_fastrtps#536>)
  * Change links from index.ros.org -> docs.ros.org (#539 <ros2/rmw_fastrtps#539>)
  * Contributors: Chris Lalancette, Jose Antonio Moral
.
ros-rolling-rmw-fastrtps-shared-cpp (5.2.0-1jammy) jammy; urgency=high
.
  * Add rmw_publisher_wait_for_all_acked support. (#519 <ros2/rmw_fastrtps#519>)
  * Contributors: Barry Xu
.
ros-rolling-rmw-fastrtps-shared-cpp (5.1.0-1jammy) jammy; urgency=high
.
  * Loan messages implementation (#523 <ros2/rmw_fastrtps#523>)
    * Added is_plain_ attribute to base TypeSupport.
    * Added new methods to base TypeSupport.
    * Implementation of rmw_borrow_loaned_message.
    * Implementation of rmw_return_loaned_message_from_publisher.
    * Enable loan messages on publishers of plain types.
    * Implementation for taking loaned messages.
    * Enable loan messages on subscriptions of plain types.
  * Export rmw_dds_common as an rmw_fastrtps_shared_cpp dependency (#530 <ros2/rmw_fastrtps#530>)
  * Update includes after rcutils/get_env.h deprecation (#529 <ros2/rmw_fastrtps#529>)
  * Contributors: Christophe Bedard, Michel Hidalgo, Miguel Company
.
ros-rolling-rmw-fastrtps-shared-cpp (5.0.0-1jammy) jammy; urgency=high
.
  * Refactor to use DDS standard API (#518 <ros2/rmw_fastrtps#518>)
  * Unique network flows (#502 <ros2/rmw_fastrtps#502>)
  * updating quality declaration links (re: ros2/docs.ros2.org#52 <ros2/docs.ros2.org#52>) (#520 <ros2/rmw_fastrtps#520>)
  * Contributors: Miguel Company, shonigmann
.
ros-rolling-rmw-fastrtps-shared-cpp (4.5.0-1jammy) jammy; urgency=high
.
  * Take and return new RMW_DURATION_INFINITE correctly (#515 <ros2/rmw_fastrtps#515>)
  * Contributors: Emerson Knapp
.
ros-rolling-rmw-fastrtps-shared-cpp (4.4.0-1jammy) jammy; urgency=high
.
  * Add RMW function to check QoS compatibility (#511 <ros2/rmw_fastrtps#511>)
  * Capture cdr exceptions (#505 <ros2/rmw_fastrtps#505>)
  * Contributors: Jacob Perron, Miguel Company
.
ros-rolling-rmw-fastrtps-shared-cpp (4.3.0-1jammy) jammy; urgency=high
.
.
.
ros-rolling-rmw-fastrtps-shared-cpp (4.2.0-1jammy) jammy; urgency=high
.
  * Make sure to lock the mutex protecting client_endpoints_. (#492 <ros2/rmw_fastrtps#492>)
  * Contributors: Chris Lalancette
.
ros-rolling-rmw-fastrtps-shared-cpp (4.1.0-1jammy) jammy; urgency=high
.
  * Use interface whitelist for localhost only (#476 <ros2/rmw_fastrtps#476>)
  * Make use of error return value in decrement_context_impl_ref_count (#488 <ros2/rmw_fastrtps#488>)
  * Remove unnecessary includes (#487 <ros2/rmw_fastrtps#487>)
  * Use new time_utils function to limit rmw_time_t values to 32-bits (#485 <ros2/rmw_fastrtps#485>)
  * New environment variable to change easily the publication mode (#470 <ros2/rmw_fastrtps#470>)
  * Remove unused headers MessageTypeSupport.hpp and ServiceTypeSupport.hpp (#481 <ros2/rmw_fastrtps#481>)
  * Contributors: Jacob Perron, José Luis Bueno López, Michael Jeronimo, Miguel Company, Stephen Brawner
.
ros-rolling-rmw-fastrtps-shared-cpp (4.0.0-1jammy) jammy; urgency=high
.
  * Discriminate when the Client has gone from when the Client has not completely matched (#467 <ros2/rmw_fastrtps#467>)
    * Workaround when the client is gone before server sends response
    * Change add to the map to listener callback
  * Update the package.xml files with the latest Open Robotics maintainers (#459 <ros2/rmw_fastrtps#459>)
  * Update Quality Declarations and READMEs (#455 <ros2/rmw_fastrtps#455>)
    * Add QD links for dependencies to rmw_fastrtps_shared_cpp QD.
    * Provide external dependencies QD links.
    * Update rmw_fastrtps_shared_cpp QD: Fast DDS
    * Update README rmw_fastrtps_shared_cpp to QL2
  * Contributors: JLBuenoLopez-eProsima, Jaime Martin Losa, José Luis Bueno López, Michael Jeronimo
.
ros-rolling-rmw-fastrtps-shared-cpp (3.1.4-1jammy) jammy; urgency=high
.
  * Perform fault injection in all creation/destruction APIs. (#453 <ros2/rmw_fastrtps#453>)
  * Ensure rmw_destroy_node() completes despite run-time errors. (#458 <ros2/rmw_fastrtps#458>)
  * Handle too large QoS queue depths.  (#457 <ros2/rmw_fastrtps#457>)
  * Update rmw_fastrtps_cpp and rmw_fastrtps_shared_cpp QDs to QL2. (#456 <ros2/rmw_fastrtps#456>)
  * Contributors: Michel Hidalgo
.
ros-rolling-rmw-fastrtps-shared-cpp (3.1.3-1jammy) jammy; urgency=high
.
  * checked client implementation and return RMW_RET_INCORRECT_RMW_IMPLEMENTATION (#451 <ros2/rmw_fastrtps#451>)
  * Update service/client request/response API error returns (#450 <ros2/rmw_fastrtps#450>)
  * Contributors: Alejandro Hernández Cordero, Jose Tomas Lorente
.
ros-rolling-rmw-fastrtps-shared-cpp (3.1.2-1jammy) jammy; urgency=high
.
  * Updated publisher/subscription allocation and wait set API return codes (#443 <ros2/rmw_fastrtps#443>)
  * Added rmw_logging tests (#442 <ros2/rmw_fastrtps#442>)
  * Contributors: Alejandro Hernández Cordero
.
ros-rolling-rmw-fastrtps-shared-cpp (3.1.1-1jammy) jammy; urgency=high
.
  * Add tests for RMW QoS to DDS attribute conversion. (#449 <ros2/rmw_fastrtps#449>)
  * Make service/client construction/destruction implementation compliant (#445 <ros2/rmw_fastrtps#445>)
  * Contributors: Michel Hidalgo
.
ros-rolling-rmw-fastrtps-shared-cpp (3.1.0-1jammy) jammy; urgency=high
.
  * Inject faults on __rmw_publish() and run_listener_thread() call. (#441 <ros2/rmw_fastrtps#441>)
  * Update gid API return codes. (#440 <ros2/rmw_fastrtps#440>)
  * Update graph API return codes. (#436 <ros2/rmw_fastrtps#436>)
  * Contributors: Michel Hidalgo
.
ros-rolling-rmw-fastrtps-shared-cpp (3.0.0-1jammy) jammy; urgency=high
.
  * Update rmw_take_serialized() and rmw_take_with_message_info() error returns  (#435 <ros2/rmw_fastrtps#435>)
  * Update rmw_take() error returns (#432 <ros2/rmw_fastrtps#432>)
  * Update rmw_publish() error returns (#430 <ros2/rmw_fastrtps#430>)
  * Update rmw_publish_serialized_message() error returns (#431 <ros2/rmw_fastrtps#431>)
  * Contributors: Jose Tomas Lorente, Lobotuerk
.
ros-rolling-rmw-fastrtps-shared-cpp (2.6.0-1jammy) jammy; urgency=high
.
  * Improve __rmw_create_wait_set() implementation. (#427 <ros2/rmw_fastrtps#427>)
  * Ensure compliant matched pub/sub count API. (#424 <ros2/rmw_fastrtps#424>)
  * Ensure compliant publisher QoS queries. (#425 <ros2/rmw_fastrtps#425>)
  * Fix memory leak that wait_set might be not destoryed in some case. (#423 <ros2/rmw_fastrtps#423>)
  * Contributors: Chen Lihui, Michel Hidalgo
.
ros-rolling-rmw-fastrtps-shared-cpp (2.5.0-1jammy) jammy; urgency=high
.
  * Avoid unused identifier variable warnings. (#422 <ros2/rmw_fastrtps#422>)
  * Fix trying to get topic data that was already removed. (#417 <ros2/rmw_fastrtps#417>)
  * Contributors: Chen Lihui, Michel Hidalgo
.
ros-rolling-rmw-fastrtps-shared-cpp (2.4.0-1jammy) jammy; urgency=high
.
  * Ensure compliant subscription API. (#419 <ros2/rmw_fastrtps#419>)
  * Use package path to TypeSupport.hpp headers in ServiceTypeSupport and MessageTypeSupport (#415 <ros2/rmw_fastrtps#415>)
    Use package in path to TypeSupport header for ServiceTypeSupport/MessageTypeSupport
  * Contributors: Jose Luis Rivero, Michel Hidalgo
.
ros-rolling-rmw-fastrtps-shared-cpp (2.3.0-1jammy) jammy; urgency=high
.
  * Ensure compliant publisher API. (#414 <ros2/rmw_fastrtps#414>)
  * Contributors: Michel Hidalgo
.
ros-rolling-rmw-fastrtps-shared-cpp (2.2.0-1jammy) jammy; urgency=high
.
  * Set context actual domain id (#410 <ros2/rmw_fastrtps#410>)
  * Contributors: Ivan Santiago Paunovic
.
ros-rolling-rmw-fastrtps-shared-cpp (2.1.0-1jammy) jammy; urgency=high
.
  * Add missing thread-safety annotation in ServicePubListener (#409 <ros2/rmw_fastrtps#409>)
  * Ensure compliant node construction/destruction API. (#408 <ros2/rmw_fastrtps#408>)
  * Contributors: Michel Hidalgo
.
ros-rolling-rmw-fastrtps-shared-cpp (2.0.0-1jammy) jammy; urgency=high
.
  * Update Quality Declarations to QL3. (#404 <ros2/rmw_fastrtps#404>)
  * Contributors: Michel Hidalgo
.
ros-rolling-rmw-fastrtps-shared-cpp (1.1.0-1jammy) jammy; urgency=high
.
  * Do not use string literals as implementation identifiers in tests. (#402 <ros2/rmw_fastrtps#402>)
  * Ensure compliant init options API implementations. (#399 <ros2/rmw_fastrtps#399>)
  * Finalize context iff shutdown. (#396 <ros2/rmw_fastrtps#396>)
  * Handle RMW_DEFAULT_DOMAIN_ID. (#394 <ros2/rmw_fastrtps#394>)
  * Make service wait for response reader (#390 <ros2/rmw_fastrtps#390>)
  * Contributors: Michel Hidalgo, Miguel Company
.
ros-rolling-rmw-fastrtps-shared-cpp (1.0.1-1jammy) jammy; urgency=high
.
  * Add Security Vulnerability Policy pointing to REP-2006 (#389 <ros2/rmw_fastrtps#389>)
  * Do not compile assert death tests in Release builds (#393 <ros2/rmw_fastrtps#393>)
  * Add test coverage for name mangling and namespacing-specific API (#388 <ros2/rmw_fastrtps#388>)
  * Add test coverage for GUID utilities (#387 <ros2/rmw_fastrtps#387>)
  * Drop unused TopicCache sources (#386 <ros2/rmw_fastrtps#386>)
  * Add test coverage for rmw_init_options API (#385 <ros2/rmw_fastrtps#385>)
  * Update QDs for 1.0 (#383 <ros2/rmw_fastrtps#383>)
  * Contributors: Chris Lalancette, Michel Hidalgo, Stephen Brawner
.
ros-rolling-rmw-fastrtps-shared-cpp (1.0.0-1jammy) jammy; urgency=high
.
  * Remove API related to manual by node liveliness. (#379 <ros2/rmw_fastrtps#379>)
  * Update quality declarations on feature testing. (#380 <ros2/rmw_fastrtps#380>)
  * Contributors: Ivan Santiago Paunovic, Michel Hidalgo
.
ros-rolling-rmw-fastrtps-shared-cpp (0.9.1-1jammy) jammy; urgency=high
.
  * Fill service_info timestamps from sample_info (#378 <ros2/rmw_fastrtps#378>)
  * Fix unused variabled warning (#377 <ros2/rmw_fastrtps#377>)
  * Add basic support for security logging plugin (#362 <ros2/rmw_fastrtps#362>)
  * Add package READMEs and QUALITY_DECLARATION files (#375 <ros2/rmw_fastrtps#375>)
  * Added doxyfiles (#372 <ros2/rmw_fastrtps#372>)
  * Contributors: Alejandro Hernández Cordero, Ingo Lütkebohle, Jacob Perron, Kyle Fazzari, brawner
.
ros-rolling-rmw-fastrtps-shared-cpp (0.9.0-1jammy) jammy; urgency=high
.
  * Feature/services timestamps. (#369 <ros2/rmw_fastrtps#369>)
  * Add support for taking a sequence of messages. (#366 <ros2/rmw_fastrtps#366>)
  * Fill message_info timestamp. (#368 <ros2/rmw_fastrtps#368>)
  * Export targets in a addition to include directories / libraries. (#371 <ros2/rmw_fastrtps#371>)
  * Support for API break on Fast RTPS 2.0. (#370 <ros2/rmw_fastrtps#370>)
  * security-context -> enclave. (#365 <ros2/rmw_fastrtps#365>)
  * Switch to one Participant per Context. (#312 <ros2/rmw_fastrtps#312>)
  * Correct error message when event is not supported. (#358 <ros2/rmw_fastrtps#358>)
  * Add rmw_*_event_init() functions. (#354 <ros2/rmw_fastrtps#354>)
  * Fixing type support C/CPP mix on rmw_fastrtps_dynamic_cpp. (#350 <ros2/rmw_fastrtps#350>)
  * Fix build warning in Ubuntu Focal. (#346 <ros2/rmw_fastrtps#346>)
  * Change rmw_topic_endpoint_info_array.count to .size. (#348 <ros2/rmw_fastrtps#348>)
  * Code style only: wrap after open parenthesis if not in one line. (#347 <ros2/rmw_fastrtps#347>)
  * Fix unprotected use of mutex-guarded variable. (#345 <ros2/rmw_fastrtps#345>)
  * Passing down type support information (#342 <ros2/rmw_fastrtps#342>)
  * Implement functions to get publisher and subcription informations like QoS policies from topic name. (#336 <ros2/rmw_fastrtps#336>)
  * Contributors: Dirk Thomas, Emerson Knapp, Ingo Lütkebohle, Ivan Santiago Paunovic, Jaison Titus, Miaofei Mei, Michael Carroll, Miguel Company, Mikael Arguedas
.
ros-rolling-rmw-fastrtps-shared-cpp (0.8.1-1jammy) jammy; urgency=high
.
  * Restrict traffic to localhost only if env var is provided (#331 <ros2/rmw_fastrtps#331>)
  * Added new functions which can be used to get rmw_qos_profile_t from WriterQos and ReaderQos (#328 <ros2/rmw_fastrtps#328>)
  * Renamed dds_qos_to_rmw_qos to dds_attributes_to_rmw_qos (#330 <ros2/rmw_fastrtps#330>)
  * Contributors: Brian Marchi, jaisontj
.
ros-rolling-rmw-fastrtps-shared-cpp (0.8.0-1jammy) jammy; urgency=high
.
  * Correct error message (#320 <ros2/rmw_fastrtps#320>)
  * Return specific error code when node is not found (#311 <ros2/rmw_fastrtps#311>)
  * Correct linter failure (#318 <ros2/rmw_fastrtps#318>)
  * Fix bug in graph API by node (#316 <ros2/rmw_fastrtps#316>)
  * fix method name change from 1.8.1->1.9.0 (#302 <ros2/rmw_fastrtps#302>)
  * Add missing lock guards for discovered_names and discovered_namespaces (#301 <ros2/rmw_fastrtps#301>)
  * Add function for getting clients by node (#293 <ros2/rmw_fastrtps#293>)
  * Enable manual_by_node and node liveliness assertion (#298 <ros2/rmw_fastrtps#298>)
  * Enable assert liveliness on publisher. (#296 <ros2/rmw_fastrtps#296>)
  * Use rcpputils::find_and_replace instead of std::regex_replace (#291 <ros2/rmw_fastrtps#291>)
  * Fix a comparison with a sign mismatch (#288 <ros2/rmw_fastrtps#288>)
  * Implement get_actual_qos() for subscriptions (#287 <ros2/rmw_fastrtps#287>)
  * add missing qos setings in get_actual_qos() (#284 <ros2/rmw_fastrtps#284>)
  * Fix ABBA deadlock.
  * Contributors: Chris Lalancette, Emerson Knapp, Jacob Perron, M. M, Scott K Logan, William Woodall, ivanpauno
.
ros-rolling-rmw-fastrtps-shared-cpp (0.7.3-1jammy) jammy; urgency=high
.
  * Protection of discovered_names and discovered_namespaces (#283 <ros2/rmw_fastrtps#283>)
  * Disable all liveliness until it is actually supported (#282 <ros2/rmw_fastrtps#282>)
  * Contributors: Emerson Knapp, MiguelCompany
.
ros-rolling-rmw-fastrtps-shared-cpp (0.7.2-1jammy) jammy; urgency=high
.
  * fix log_debug typo in rmw_count (#279 <ros2/rmw_fastrtps#279>)
  * Fastrtps18 event callbacks policies (#275 <ros2/rmw_fastrtps#275>)
  * Centralize topic name creation logic and update to match FastRTPS 1.8 API (#272 <ros2/rmw_fastrtps#272>)
  * Contributors: 1r0b1n0, Emerson Knapp, Nick Burek
.
ros-rolling-rmw-fastrtps-shared-cpp (0.7.1-1jammy) jammy; urgency=high
.
  * Support arbitrary message namespaces  (#266 <ros2/rmw_fastrtps#266>)
  * Set more correct return values for unimplemented features (#276 <ros2/rmw_fastrtps#276>)
  * Add qos interfaces with no-op (#271 <ros2/rmw_fastrtps#271>)
  * Updates for preallocation API. (#274 <ros2/rmw_fastrtps#274>)
  * Fix logging in rmw_node_info_and_types.cpp (#273 <ros2/rmw_fastrtps#273>)
  * Contributors: Emerson Knapp, Jacob Perron, Michael Carroll, Ross Desmond, Thomas Moulard
.
ros-rolling-rmw-fastrtps-shared-cpp (0.7.0-1jammy) jammy; urgency=high
.
  * Thread safety annotation - minimally intrusive first pass (#259 <ros2/rmw_fastrtps#259>)
  * Add function to get publisher actual qos settings (#267 <ros2/rmw_fastrtps#267>)
  * Fixed race condition between taking sample and updating counter. (#264 <ros2/rmw_fastrtps#264>)
  * Fix cpplint error
  * change count type to size_t to avoid warning (#262 <ros2/rmw_fastrtps#262>)
  * update listener logic for accurate counting (#262 <ros2/rmw_fastrtps#262>)
  * Make sure to include the C++ headers used by these headers. (#256 <ros2/rmw_fastrtps#256>)
  * pass context to wait set and fini context (#252 <ros2/rmw_fastrtps#252>)
  * Improve service_is_available logic to protect that client is waiting forever (#238 <ros2/rmw_fastrtps#238>)
  * Merge pull request #250 <ros2/rmw_fastrtps#250> from ros2/support_static_lib
  * use namespace_prefix from shared package
  * make namespace_prefix header public
  * Use empty() to check for an empty string (#247 <ros2/rmw_fastrtps#247>)
  * We can compare a std::string with a const char* using operator==, simplifies the code (#248 <ros2/rmw_fastrtps#248>)
  * Use empty() instead of size() to check if a vector/map contains elements and fixed some incorrect logging (#245 <ros2/rmw_fastrtps#245>)
  * Fix guard condition trigger error (#235 <ros2/rmw_fastrtps#235>)
  * Contributors: Chris Lalancette, Dirk Thomas, DongheeYe, Emerson Knapp, Jacob Perron, Johnny Willemsen, Ricardo González, William Woodall, ivanpauno
.
ros-rolling-rmw-fastrtps-shared-cpp (0.6.1-1jammy) jammy; urgency=high
.
  * Add topic cache object for managing topic relations (#236 <ros2/rmw_fastrtps#236>)
  * Fix lint: remove trailing whitespace (#244 <ros2/rmw_fastrtps#244>)
  * Fastrtps 1.7.0 (#233 <ros2/rmw_fastrtps#233>)
  * RMW_FastRTPS configuration from XML only (#243 <ros2/rmw_fastrtps#243>)
  * Methods to retrieve matched counts on pub/sub (#234 <ros2/rmw_fastrtps#234>)
  * use uint8_array (#240 <ros2/rmw_fastrtps#240>)
  * Contributors: Jacob Perron, Juan Carlos, Karsten Knese, Michael Carroll, MiguelCompany, Ross Desmond
.
ros-rolling-rmw-fastrtps-shared-cpp (0.6.0-1jammy) jammy; urgency=high
.
  * use new error handling API from rcutils (#231 <ros2/rmw_fastrtps#231>)
  * Add semicolons to all RCLCPP and RCUTILS macros. (#229 <ros2/rmw_fastrtps#229>)
  * separating identity and permission CAs (#227 <ros2/rmw_fastrtps#227>)
  * Include node namespaces in get_node_names (#224 <ros2/rmw_fastrtps#224>)
  * allow builtin reader/writer to reallocate memory if needed (#221 <ros2/rmw_fastrtps#221>)
  * Improve runtime performance of rmw_count_XXX functions (#216 <ros2/rmw_fastrtps#216>) (#217 <ros2/rmw_fastrtps#217>)
  * Merge pull request #218 <ros2/rmw_fastrtps#218> from ros2/pr203
  * Refs #3061 <https://github.com/ros2/rmw_fastrtps/issues/3061>. Leaving common code only on rmw_fastrtps_shared_cpp.
  * Refs #3061 <https://github.com/ros2/rmw_fastrtps/issues/3061>. Package rmw_fastrtps_cpp copied to rmw_fastrtps_shared_cpp.
  * Contributors: Chris Lalancette, Dirk Thomas, Guillaume Autran, Michael Carroll, Miguel Company, Mikael Arguedas, William Woodall
.
ros-rolling-rmw-fastrtps-shared-cpp (0.5.1-1jammy) jammy; urgency=high
.
.
.
ros-rolling-rmw-fastrtps-shared-cpp (0.5.0-1jammy) jammy; urgency=high
.
.
.
ros-rolling-rmw-fastrtps-shared-cpp (0.4.0-1jammy) jammy; urgency=high
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
No open projects
Foxy
  
Done
Development

Successfully merging this pull request may close these issues.

None yet

6 participants