-
Notifications
You must be signed in to change notification settings - Fork 60
Description
Describe the feature
Currently the plugin re-publish DDS payloads over Zenoh without any encoding (i.e. KnownEncoding::Empty == "").
For a subscriber or a storage, this doesn't give any indication on the the payload format and how to decode it.
The bridge should set the Zenoh Sample's encoding to a MIME type reflecting its encoding.
The encoding of a DDS type received via the DDSI protocol is specified in §10 of the DDSI-RTPS specification.
The payload receives from DDSI and forwarded to Zenoh includes the 2 RepresentionIdentifier bytes. It might not always be CDR-encoded. Therefore, the name for the mime-type cannot be just "cdr", but shall contain "ddsi".
In order to use a MIME type which is compliant with IETF recommandations and eventually registered to IANA, it should follow the RFC 6838 best practices.
Thus, I suggest application/vnd.ddsi as a MIME type.
This MIME type shall be registered as KnownEncoding in Zenoh (https://github.com/eclipse-zenoh/zenoh/blob/0.7.0-rc/commons/zenoh-protocol-core/src/encoding.rs#L19-L69)
This MIME type could be completed with a DDS type name as a suffix. E.g.:
application/vnd.ddsi+HelloWorldapplication/vnd.ddsi+geometry_msgs::msg::dds_::Twist(ROS2 Twist type)
As this type name addition introduces an overhead for each publication, it's addition shall not be active by default, but only via configuration.