Skip to content

Add a DDSI-specific MIME type as encoding, optionally including the DDS topic type #118

@JEnoch

Description

@JEnoch

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+HelloWorld
  • application/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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions