ros2 / rmw

The ROS Middleware (rmw) Interface.
Apache License 2.0
95 stars 69 forks source link

Update documentation about expectations for GIDs #335

Closed jacobperron closed 1 year ago

jacobperron commented 2 years ago

Replaces https://github.com/ros2/rmw/pull/329 Follow-up to https://github.com/ros2/rmw/pull/328


This PR contains two changes:

The latter change is especially useful for the proposed service introspection feature. E.g. if tooling wants to compare 24 byte GIDs, we want to ensure that any unused bytes are not set to garbage values and that they are consistent between processes and hosts.

If these changes are acceptable, I'll proceed in making the necessary changes to rmw implementations to:

jacobperron commented 2 years ago

For context, for DDS implementation the DDS-RTPS spec describes a GUID as being 16 octets and globally unique within a domain.

From section 8.2.1.2:

Type used to hold globally-unique RTPS-entity identifiers. These are identifiers used to uniquely refer to each RTPS Entity in the system. Must be possible to represent using 16 octets. The following values are reserved by the protocol: GUID_UNKNOWN

Specifically, for a DDS-Entity, from 8.2.4 The RTPS Entity:

Globally and uniquely identifies the RTPS Entity within the DDS domain

I think these align well with documentation changes proposed in this PR. But, please let me know if you think these expectations may be problematic.

christophebedard commented 2 years ago

But, please let me know if you think these expectations may be problematic.

This means that https://github.com/ros2/rmw_cyclonedds/issues/377 will have to be fixed (which I am totally in favour of, of course).

clalancette commented 1 year ago

CI:

clalancette commented 1 year ago

One of the failing tests on Windows is a known flake. The other one is new to me, but I honestly don't see how this PR could possibly have caused it, given that these are documentation updates only. So I'm going to go ahead and merge this anyway.