ProtoCore v1.0.16
Deterministic, zero-heap network stack for embedded targets
Loading...
Searching...
No Matches
dds.h File Reference

The DDSI-RTPS Message framing codec (PROTOCORE_ENABLE_DDS). More...

#include "protocore_config.h"

Go to the source code of this file.

Detailed Description

The DDSI-RTPS Message framing codec (PROTOCORE_ENABLE_DDS).

Governing standard: OMG "The Real-time Publish-Subscribe Protocol DDS Interoperability Wire Protocol (DDSI-RTPS) Specification" version 2.5, OMG document formal/2022-04-01. DDS and its wire protocol are OMG specifications, not IETF ones, so no RFC governs them and none is cited.

DDSI-RTPS sec 8.3.3: a Message is a fixed-size leading Header followed by a variable number of Submessages, and each Submessage is a SubmessageHeader followed by SubmessageElements.

Header, 20 octets (sec 9.4.4)      'R' 'T' 'P' 'S' | version 2 | vendorId 2 | guidPrefix 12
SubmessageHeader, 4 (sec 9.4.5.1)  submessageId 1 | flags 1 | octetsToNextHeader 2

sec 9.4.5.1 maps the EndiannessFlag onto the least-significant bit of flags, E = flags & 0x01, with E=0 big-endian and E=1 little-endian, and octetsToNextHeader is a CDR ushort in that order.

sec 9.4.1: a Message carries no length of its own, the transport supplies it. Over UDP that length is the UDP payload length.

This module is the Message and SubmessageHeader framing. The Submessage contents (a Data Submessage's serializedPayload, a Heartbeat's SequenceNumber set, the SPDP and SEDP discovery topics) layer on top of it.

The module exports one symbol, Rtps. Everything in dds.c has internal linkage.

Author
Douglas Quigg (dstroy0)
Date
2026

Definition in file dds.h.