Aller au contenu principal

DDS Conformance Matrix

Cross-vendor RTPS/DDS compliance matrix for HDDS 1.0.8, validated on the skylab cluster (nodes 4/5/6).

Methodology

Three confidence levels for each result:

  • (tested) -- validated by live interop test between HDDS and the vendor (bidirectional pub/sub, 50/50 samples)
  • (doc-based) -- based on the vendor's official documentation, not independently verified
  • (untested) -- no data available

Vendors Tested

VendorVersionRTPSPriority
HDDS1.0.82.4--
FastDDS (eProsima)3.1.x2.5P1
RTI Connext6.1.02.3P1
RTI Connext7.3.02.5P1
CycloneDDS (Eclipse)0.10.x2.5P1
OpenDDS (OCI)3.28.x2.5P2

Interoperability Results

9/9 scenarios PASS across all vendors. Bidirectional pub/sub with 50/50 samples confirmed for each pair.

remarque

RTI 7.3.0 showed 1/50 sample lost in one test due to discovery timing (not a protocol issue). Documented as HDDS-DIV-001.

RTPS Protocol Conformance (RTPS 2.5 Part 8.5)

FeatureSpec RefHDDSFastDDSRTI 6.1RTI 7.3CycloneDDSOpenDDS
SPDP (Simple Participant Discovery)8.5.3PASS (tested)PASS (tested)PASS (tested)PASS (tested)PASS (tested)PASS (tested)
SEDP (Simple Endpoint Discovery)8.5.4PASS (tested)PASS (tested)PASS (tested)PASS (tested)PASS (tested)PASS (tested)
DATA Submessage8.3.7.2PASS (tested)PASS (tested)PASS (tested)PASS (tested)PASS (tested)PASS (tested)
HEARTBEAT Submessage8.3.7.5PASS (tested)PASS (tested)PASS (tested)PASS (tested)PASS (tested)PASS (tested)
ACKNACK Submessage8.3.7.1PASS (tested)PASS (tested)PASS (tested)PASS (tested)PASS (tested)PASS (tested)
GAP Submessage8.3.7.4PASS (tested)PASS (tested)PASS (tested)PASS (tested)PASS (tested)PASS (tested)
DATA_FRAG Submessage8.3.7.3PASS (tested)PASS (tested)PASS (tested)PASS (tested)PASS (tested)N/A (untested)

Serialization Conformance

EncodingSpec RefHDDSFastDDSRTI 6.1RTI 7.3CycloneDDSOpenDDS
CDR_LEXTypes 1.3 s7.4.1PASS (tested)PASS (tested)PASS (tested)PASS (tested)PASS (tested)PASS (tested)
PL_CDR_LEXTypes 1.3 s7.4.2PASS (tested)PASS (tested)PASS (tested)PASS (tested)PASS (tested)PASS (tested)
CDR2_LEXTypes 1.3 s7.4.3PASS (tested)PASS (tested)N/APASS (tested)PASS (tested)PASS (doc-based)
PL_CDR2_LEXTypes 1.3 s7.4.3PASS (tested)PASS (tested)N/APASS (tested)PASS (tested)PASS (doc-based)

QoS Conformance

12 QoS policies validated across 96 combinations, all PASS (tested):

  • Reliability (BestEffort, Reliable)
  • Durability (Volatile, TransientLocal)
  • History (KeepLast 1/10/100, KeepAll)
  • Deadline, Liveliness, Lifespan
  • LatencyBudget, TimeBasedFilter
  • TransportPriority, ResourceLimits
  • Ownership, Partition

Transport Conformance

TransportHDDSFastDDSRTICycloneDDSOpenDDS
UDP MulticastPASS (tested)PASS (tested)PASS (tested)PASS (tested)PASS (tested)
UDP UnicastPASS (tested)PASS (tested)PASS (tested)PASS (tested)PASS (tested)
TCPPASS (tested)untesteduntesteduntesteduntested
Shared MemoryPASS (tested)untesteduntesteduntesteduntested

HDDS Divergences

IDDescriptionJustificationStatus
HDDS-DIV-001RTI 7.3.0: 1/50 sample lost on first discoveryRTI discovery timing requires longer initial wait; not a protocol bugDocumented
HDDS-DIV-002OpenDDS: DATA_FRAG submessage not testedOpenDDS test environment did not trigger fragmentation; needs large payload testDocumented
HDDS-DIV-003RTI 6.x: CDR2/PL_CDR2 not availableRTI 6.1.0 predates XTypes 1.3 CDR2 support; expected behaviorDocumented

Codegen Conformance

The HDDS code generator (hdds_gen) has been audited against the OMG IDL 4.2 specification. Key fixes applied:

Audit IDFeatureStatus
AUDIT-001@autoid(HASH) FNV-1a member ID hashingFixed (was MD5, now spec-compliant FNV-1a)
AUDIT-004@nested prevents DDS trait derivationFixed
AUDIT-007@non_serialized field skip in CDR encode/decodeFixed
AUDIT-002@must_understand in EMHEADER1WIP
AUDIT-003@default_literal union default caseWIP
AUDIT-005@data_representation XCDR1 vs XCDR2WIP
AUDIT-006@external reference by indirectionWIP
AUDIT-008@verbatim code injectionWIP (P3)

Full details: docs/CODEGEN_CONFORMANCE.md

Reproduction

To reproduce interop tests yourself:

# Clone and build HDDS
git clone https://git.hdds.io/hdds/hdds.git
cd hdds

# Run interop tests (requires target vendor running)
cargo test --package hdds_test -- interop

Test infrastructure details are in the hdds_test repository.