-
Notifications
You must be signed in to change notification settings - Fork 192
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
Topic name constraints discrepancy #291
Comments
That's OK, because that topic lives in the DSS world. It is not a ROS 2 topic. ROS 2's topic name constraints are extra restrictions on top of the DDS topic name constraints, and only for topics created by ROS.
The topic constraints do not exist for topics created by DDS and its facilities. They are only relevant to names used in ROS, and designed to ensure that the names that come from ROS can be mapped unambiguously to DDS topic names.
Probably you would have to use the DDS API of your DDS vendor directly. You can get access to the objects created by your DDS implementation underneath the |
Not sure what you mean by created but the aforementioned topic is not created by ROS per se. I'm only trying to subscribe to it.
That seems contradictory or am I reading it wrong?
While I could implement a plain DDS subscriber, I wish to benefit from ROS to be vendor agnostic. Furthermore, we (the Security WG) are working on enabling the DDS Security logging in ROS2, the fourth of five DDS security plugins defined in the DDS Security specs. As mentioned previously PRs were already merged in the vendor specific Of course I'm not advocating for removing the topic naming constraints but rather for opening the discussion on how to access this particular topic ( Friendly ping to @wjwwood as he wrote most of the design doc. I'd be interested in knowing your view on this matter. |
One option could be to add an API in the |
@gbiggs not sure to understand what you mean. An API in the |
An API that gives access to information about the underlying security information, such as logged events. |
I think this is a bug in the DDS security spec or implementation, if they are knowingly using If either the DDS spec is updated to allow So you'd either need to add a way to ROS 2 to skip checking the topic name for validity (the Either way, our design document is still up-to-date right now, so I'll close this issue. I recommend continuing the discussion with the ROS 2 security working group and/or asking someone in the DDS community and/or the OMG group about this issue. |
Hi,
As pointed in my initial post, the constraint The OMG group plans on fixing this situation by the next revision and we received an oral confirmation that the colon character will be part of the valid set (thus the security logging topic will be valid as per the specs). Now I don't know how this update will affect the ROS 2 topic naming constraints but would it be foolish of me to hope to see the colon character supported by ROS 2 as well ? 🙂 Or should I start working on a workaround ? 🙁 Edit: |
I'd argue for a workaround that allows you to use any character you want under the hood, bypassing the ROS checks, rather than updating the ROS constraints to be more permissive. |
Hi, was there subsequent discussions on ros2's topic naming scheme? I am a bit puzzled with the ros2 design document using the RTI documentation's query language to specify topic naming scheme. Also: the ros2 design document narrows down name tokens to alphanumeric and not having a digit as first character, while for pure eprosima fast-dds a topic like |
Hi all,
While working with sros2 and the freshly supported DDS Security logging plugin (see e.g. rmw_connext), I encountered an issue related to the topic name constraints.
For context, the DDS Security specs defines both the security logging message type and topic name in section 9.6; more specifically:
The BuiltinLoggingTopic shall have the Topic name “DDS:Security:LogTopic”
. As one would expect, it is this topic that e.g. RTI uses.After reading the 'Topic and Service name mapping to DDS' design doc and more precisely the 'ROS 2 Topic and Service Name Constraints' section it appears that the security topic, as defined by the DDS Sec specs, is not a valid topic name in ROS2 realm since the 'colon' character is not valid. What's even more annoying is that according to the same design doc, section 'DDS Topic Names', the topic name is not valid for DDS either...
After briefly consulting the DDSI-RTPS spec v2.2 and the DDS spec v1.4, I could not find any explicit constraint on topic naming, but the 256 length limit. The constraints (
'a', ..., 'z', 'A', ..., 'Z', '0', ..., '9', '_'
) mentioned in the design doc only appears in 'Annex B - Syntax for Queries and Filters' of the DDS spec v1.4. I therefore wonder if those are actual topic naming constraints...From there my questions are,
DDS:Security:LogTopic
is not a mistake, how could I get to subscribe to it from ROS2? Can we imagine that the colon character joins the list of valid characters? Or could the constraints be disabled much like the ROS specific namespace prefix can be disabled? Maybe using the sameavoid_ros_namespace_convention
function?@ros2/security_working_group
The text was updated successfully, but these errors were encountered: