From a13919c308c518810c50dda593cd7930d052eae8 Mon Sep 17 00:00:00 2001 From: Abhishek GOYAL Date: Mon, 13 Apr 2026 17:28:34 +0200 Subject: [PATCH 1/9] first draft for DDS GW PR --- .../communication/dds_gateway/index.rst | 101 ++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 docs/features/communication/dds_gateway/index.rst diff --git a/docs/features/communication/dds_gateway/index.rst b/docs/features/communication/dds_gateway/index.rst new file mode 100644 index 00000000000..7c95934640c --- /dev/null +++ b/docs/features/communication/dds_gateway/index.rst @@ -0,0 +1,101 @@ +# ******************************************************************************* +# Copyright (c) 2024 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0 +# +# SPDX-License-Identifier: Apache-2.0 +# ******************************************************************************* + + +DDS Gateway +=========== + +Overview +-------- + +The DDS Gateway introduces a communication bridge within the S-CORE +communication stack. + +It enables controlled and configurable data exchange between ``mw::com (LoLa)`` +(intra-ECU communication via IPC binding) and DDS-based systems (inter-ECU +communication), allowing integration with distributed DDS environments without +requiring modifications to existing applications. + +Scope +----- + +The DDS Gateway provides: + +- Bridging between ``mw::com (LoLa)`` and DDS via the gateway: + + - ``mw::com (LoLa)`` → DDS (publishing local data to DDS domains) + - DDS → ``mw::com (LoLa)`` (delivering DDS data to local communication) + - ``mw::com (LoLa)`` → DDS → ``mw::com (LoLa)`` (inter-ECU communication via DDS) + +- Configurable routing: + + - Mapping between ``mw::com`` events and DDS topics + - Support for DDS domain-based routing + +- Dynamic Type handling: + + - Runtime type definition via configuration + - No dependency on DDS IDL generation + - Enables data translation and consistent serialization across middleware boundaries + +- Optional End-to-End (E2E) protection: + + - Centralized handling of Counter, CRC, and DataID + - Validation and protection configurable per route + +- DDS stack abstraction: + + - Pluggable DDS implementations via defined interfaces + +Motivation +---------- + +S-CORE currently focuses on local communication via ``mw::com (LoLa)`` but does +not provide a standardized mechanism to integrate DDS-based communication systems. + +In mixed middleware environments: + +- Integration with DDS requires custom adapters +- Applications may need to embed DDS logic, reducing abstraction +- Communication with native DDS applications is not standardized +- Multi-domain DDS setups are difficult to manage consistently +- E2E protection across middleware boundaries is duplicated + +The DDS Gateway addresses these challenges by introducing a centralized, +configurable component responsible for bridging and routing communication +across middleware boundaries. + +Key Value +--------- + +- Standardized integration with DDS systems +- Direct interoperability with native DDS applications via the gateway +- Clean separation between ``mw::com (LoLa)`` and DDS +- Reduced integration effort +- Support for distributed and multi-domain systems + +- Interoperability across heterogeneous systems: + + - Enables communication between systems with different architectures + (e.g., 32-bit / 64-bit, different endianness) + - Ensures consistent data representation via Dynamic Type handling + +- Centralized handling of safety (E2E) and type management + +Reference +--------- + +The detailed Feature Request, including full design description, configuration +model, and implementation considerations, is available here: + +- DDS Gateway Feature Request: From 8f363cbe4ab3396aefc417e5f47f0992d27b07a1 Mon Sep 17 00:00:00 2001 From: Abhishek GOYAL Date: Mon, 13 Apr 2026 17:43:22 +0200 Subject: [PATCH 2/9] Revise copyright notice and enhance DDS Gateway overview Updated copyright notice formatting and improved text clarity in the DDS Gateway documentation. Signed-off-by: Abhishek GOYAL --- .../communication/dds_gateway/index.rst | 42 +++++++++---------- 1 file changed, 19 insertions(+), 23 deletions(-) diff --git a/docs/features/communication/dds_gateway/index.rst b/docs/features/communication/dds_gateway/index.rst index 7c95934640c..9a1b8a41037 100644 --- a/docs/features/communication/dds_gateway/index.rst +++ b/docs/features/communication/dds_gateway/index.rst @@ -1,16 +1,16 @@ -# ******************************************************************************* -# Copyright (c) 2024 Contributors to the Eclipse Foundation -# -# See the NOTICE file(s) distributed with this work for additional -# information regarding copyright ownership. -# -# This program and the accompanying materials are made available under the -# terms of the Apache License Version 2.0 which is available at -# https://www.apache.org/licenses/LICENSE-2.0 -# -# SPDX-License-Identifier: Apache-2.0 -# ******************************************************************************* - +.. + # ******************************************************************************* + # Copyright (c) 2024 Contributors to the Eclipse Foundation + # + # See the NOTICE file(s) distributed with this work for additional + # information regarding copyright ownership. + # + # This program and the accompanying materials are made available under the + # terms of the Apache License Version 2.0 which is available at + # https://www.apache.org/licenses/LICENSE-2.0 + # + # SPDX-License-Identifier: Apache-2.0 + # ******************************************************************************* DDS Gateway =========== @@ -18,13 +18,9 @@ DDS Gateway Overview -------- -The DDS Gateway introduces a communication bridge within the S-CORE -communication stack. - -It enables controlled and configurable data exchange between ``mw::com (LoLa)`` -(intra-ECU communication via IPC binding) and DDS-based systems (inter-ECU -communication), allowing integration with distributed DDS environments without -requiring modifications to existing applications. +The DDS Gateway introduces a communication bridge within the S-CORE communication stack. +It enables controlled and configurable data exchange between ``mw::com (LoLa)`` (intra-ECU communication via IPC binding) and DDS-based systems (inter-ECU +communication), allowing integration with distributed DDS environments without requiring changes to existing application implementations. Scope ----- @@ -39,7 +35,7 @@ The DDS Gateway provides: - Configurable routing: - - Mapping between ``mw::com`` events and DDS topics + - Mapping between ``mw::com`` events(TBD for fields and methods) and DDS topics - Support for DDS domain-based routing - Dynamic Type handling: @@ -48,7 +44,7 @@ The DDS Gateway provides: - No dependency on DDS IDL generation - Enables data translation and consistent serialization across middleware boundaries -- Optional End-to-End (E2E) protection: +- End-to-End (E2E) protection: - Centralized handling of Counter, CRC, and DataID - Validation and protection configurable per route @@ -98,4 +94,4 @@ Reference The detailed Feature Request, including full design description, configuration model, and implementation considerations, is available here: -- DDS Gateway Feature Request: +- DDS Gateway Feature Request:https://github.com/eclipse-score/score/issues/2726 From 26eeb3d1a6177c3b0a8385c684f9413ef5095d58 Mon Sep 17 00:00:00 2001 From: Abhishek GOYAL Date: Tue, 14 Apr 2026 14:10:53 +0200 Subject: [PATCH 3/9] Enhance DDS Gateway documentation with detailed sections Expanded the overview and architecture concept of the DDS Gateway, detailing its role in inter-ECU communication and data routing. Enhanced the motivation and key value sections to clarify the benefits and challenges addressed by the DDS Gateway. Signed-off-by: Abhishek GOYAL --- .../communication/dds_gateway/index.rst | 107 ++++++++++++++---- 1 file changed, 88 insertions(+), 19 deletions(-) diff --git a/docs/features/communication/dds_gateway/index.rst b/docs/features/communication/dds_gateway/index.rst index 9a1b8a41037..45b52d18d51 100644 --- a/docs/features/communication/dds_gateway/index.rst +++ b/docs/features/communication/dds_gateway/index.rst @@ -19,19 +19,67 @@ Overview -------- The DDS Gateway introduces a communication bridge within the S-CORE communication stack. -It enables controlled and configurable data exchange between ``mw::com (LoLa)`` (intra-ECU communication via IPC binding) and DDS-based systems (inter-ECU -communication), allowing integration with distributed DDS environments without requiring changes to existing application implementations. +It enables controlled and configurable data exchange between ``mw::com (LoLa)`` (intra-ECU +communication via IPC binding) and DDS-based systems (inter-ECU +communication), allowing integration with distributed DDS environments +while preserving existing application implementations. + +Architecture Concept +-------------------- +The DDS Gateway acts as a centralized communication bridge between local +``mw::com (LoLa)`` communication and DDS domains, enabling inter-ECU +communication between ``mw::com`` participants via DDS transport. + +:: + + ============================== ============================== + ECU 1 ECU 2 + ============================== ============================== + + +-------------------------+ +-------------------------+ + | Application A | | Application B | + | (mw::com LoLa) | | (mw::com LoLa) | + +-----------+-------------+ +-----------+-------------+ + | ^ + | mw::com (LoLa - IPC) | mw::com (LoLa - IPC) + v | + +---------------------+ +---------------------+ + | DDS Gateway | | DDS Gateway | + | (ECU 1) | | (ECU 2) | + +----------+----------+ +----------+----------+ + | ^ + | | + v | + =================== DDS NETWORK =================== + | ^ + | | + v | + +---------------------+ | + | DDS Application |--------------------------+ + | (optional) | + +---------------------+ + +Each DDS Gateway instance connects to: +- Local ``mw::com (LoLa)`` participants (IPC binding) +- A DDS domain for inter-ECU communication + +The gateway is responsible for: +- Translating data in both directions between ``mw::com`` and DDS representations +- Routing data across DDS domains +- configure QOS on DDS for each route +- Applying E2E protection + Scope ----- - The DDS Gateway provides: - Bridging between ``mw::com (LoLa)`` and DDS via the gateway: - - ``mw::com (LoLa)`` → DDS (publishing local data to DDS domains) - - DDS → ``mw::com (LoLa)`` (delivering DDS data to local communication) - - ``mw::com (LoLa)`` → DDS → ``mw::com (LoLa)`` (inter-ECU communication via DDS) +- ``mw::com (LoLa)`` → DDS → ``mw::com (LoLa)`` (inter-ECU communication via DDS) +- ``mw::com (LoLa)`` → DDS → DDS applications +- DDS applications → DDS → ``mw::com (LoLa)`` + - Configurable routing: @@ -40,7 +88,7 @@ The DDS Gateway provides: - Dynamic Type handling: - - Runtime type definition via configuration + - Runtime type definition via configuration or via dynamic library - No dependency on DDS IDL generation - Enables data translation and consistent serialization across middleware boundaries @@ -53,6 +101,18 @@ The DDS Gateway provides: - Pluggable DDS implementations via defined interfaces +- Execution and performance model: + - Asynchronous processing using internal worker queues + - Support for configurable priority-based routing + - High-priority routes can be processed with dedicated queues and worker pools to achieve low-latency data delivery + - Normal-priority routes are handled via standard processing queues + - Priority configuration is defined per route + +- DDS QoS configurability: + + - Ability to configure DDS Quality of Service (QoS) policies per route + - Enables tuning of reliability, durability, and latency behavior based on use case + Motivation ---------- @@ -61,11 +121,13 @@ not provide a standardized mechanism to integrate DDS-based communication system In mixed middleware environments: -- Integration with DDS requires custom adapters -- Applications may need to embed DDS logic, reducing abstraction -- Communication with native DDS applications is not standardized -- Multi-domain DDS setups are difficult to manage consistently -- E2E protection across middleware boundaries is duplicated +- Integration with DDS requires custom adapters +- Applications may need to embed DDS logic, reducing abstraction +- Communication with native DDS applications is not standardized +- Inter-ECU communication between ``mw::com`` participants via DDS is not standardized +- Multi-domain DDS setups are difficult to manage consistently +- E2E protection across middleware boundaries is duplicated + The DDS Gateway addresses these challenges by introducing a centralized, configurable component responsible for bridging and routing communication @@ -74,19 +136,26 @@ across middleware boundaries. Key Value --------- -- Standardized integration with DDS systems -- Direct interoperability with native DDS applications via the gateway -- Clean separation between ``mw::com (LoLa)`` and DDS -- Reduced integration effort -- Support for distributed and multi-domain systems +- Standardized integration with DDS systems +- Direct interoperability with native DDS applications via the gateway +- Standardized inter-ECU communication between ``mw::com`` participants via DDS +- Clean separation between ``mw::com (LoLa)`` and DDS +- Reduced integration effort +- Support for distributed and multi-domain systems + +- Performance and determinism: + + - Low-latency processing for high-priority data flows + - Controlled execution via configurable worker queues + - Predictable behavior for mixed criticality communication - Interoperability across heterogeneous systems: - Enables communication between systems with different architectures (e.g., 32-bit / 64-bit, different endianness) - - Ensures consistent data representation via Dynamic Type handling + - Ensures consistent data representation via Dynamic Type handling -- Centralized handling of safety (E2E) and type management +- Centralized handling of safety (E2E) and type management Reference --------- From 28ec923e19076d3305d067511468a36e43da5b60 Mon Sep 17 00:00:00 2001 From: Abhishek GOYAL Date: Tue, 14 Apr 2026 14:25:35 +0200 Subject: [PATCH 4/9] Refine DDS Gateway documentation for clarity Removed redundant bullet points and improved clarity in the DDS Gateway documentation. Signed-off-by: Abhishek GOYAL --- docs/features/communication/dds_gateway/index.rst | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/docs/features/communication/dds_gateway/index.rst b/docs/features/communication/dds_gateway/index.rst index 45b52d18d51..39146fd8150 100644 --- a/docs/features/communication/dds_gateway/index.rst +++ b/docs/features/communication/dds_gateway/index.rst @@ -64,6 +64,7 @@ Each DDS Gateway instance connects to: - A DDS domain for inter-ECU communication The gateway is responsible for: + - Translating data in both directions between ``mw::com`` and DDS representations - Routing data across DDS domains - configure QOS on DDS for each route @@ -75,11 +76,9 @@ Scope The DDS Gateway provides: - Bridging between ``mw::com (LoLa)`` and DDS via the gateway: - -- ``mw::com (LoLa)`` → DDS → ``mw::com (LoLa)`` (inter-ECU communication via DDS) -- ``mw::com (LoLa)`` → DDS → DDS applications -- DDS applications → DDS → ``mw::com (LoLa)`` - + - ``mw::com (LoLa)`` → DDS → ``mw::com (LoLa)`` (inter-ECU communication via DDS) + - ``mw::com (LoLa)`` → DDS → DDS applications + - DDS applications → DDS → ``mw::com (LoLa)`` - Configurable routing: @@ -102,6 +101,7 @@ The DDS Gateway provides: - Pluggable DDS implementations via defined interfaces - Execution and performance model: + - Asynchronous processing using internal worker queues - Support for configurable priority-based routing - High-priority routes can be processed with dedicated queues and worker pools to achieve low-latency data delivery @@ -160,7 +160,6 @@ Key Value Reference --------- -The detailed Feature Request, including full design description, configuration -model, and implementation considerations, is available here: +The detailed Feature Request is available here: - DDS Gateway Feature Request:https://github.com/eclipse-score/score/issues/2726 From 4f58a9169989cebbde2781229ce8ed33853308a2 Mon Sep 17 00:00:00 2001 From: Abhishek GOYAL Date: Tue, 14 Apr 2026 14:42:48 +0200 Subject: [PATCH 5/9] Introduce New ECU for DDS Application Introduce ECU3 for DDS Application to remove confusion Signed-off-by: Abhishek GOYAL --- docs/features/communication/dds_gateway/index.rst | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/features/communication/dds_gateway/index.rst b/docs/features/communication/dds_gateway/index.rst index 39146fd8150..1e0585d8b62 100644 --- a/docs/features/communication/dds_gateway/index.rst +++ b/docs/features/communication/dds_gateway/index.rst @@ -52,6 +52,9 @@ communication between ``mw::com`` participants via DDS transport. v | =================== DDS NETWORK =================== | ^ + ============================== | + ECU 3 | + ============================== | | | v | +---------------------+ | From 2c90e63b5f6b746f7ee4135372d2aefdb68fe552 Mon Sep 17 00:00:00 2001 From: Abhishek GOYAL Date: Tue, 14 Apr 2026 16:49:17 +0200 Subject: [PATCH 6/9] Clarify motivation for DDS Gateway integration Updated the motivation section to clarify the focus on inter-ECU communication using DDS-based systems and added details about challenges in mixed middleware environments. Signed-off-by: Abhishek GOYAL --- docs/features/communication/dds_gateway/index.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/features/communication/dds_gateway/index.rst b/docs/features/communication/dds_gateway/index.rst index 1e0585d8b62..2fdc20ec407 100644 --- a/docs/features/communication/dds_gateway/index.rst +++ b/docs/features/communication/dds_gateway/index.rst @@ -120,7 +120,8 @@ Motivation ---------- S-CORE currently focuses on local communication via ``mw::com (LoLa)`` but does -not provide a standardized mechanism to integrate DDS-based communication systems. +not provide a standardized mechanism for inter-ECU communication using DDS-based +systems. In mixed middleware environments: @@ -128,8 +129,7 @@ In mixed middleware environments: - Applications may need to embed DDS logic, reducing abstraction - Communication with native DDS applications is not standardized - Inter-ECU communication between ``mw::com`` participants via DDS is not standardized -- Multi-domain DDS setups are difficult to manage consistently -- E2E protection across middleware boundaries is duplicated +- Multi-domain DDS setups are difficult to manage consistently The DDS Gateway addresses these challenges by introducing a centralized, From c687b43d378ca3c6636c946d8105afbf025f66d2 Mon Sep 17 00:00:00 2001 From: Abhishek GOYAL Date: Mon, 20 Apr 2026 09:32:29 +0200 Subject: [PATCH 7/9] Update DDS Gateway bridging and routing details Signed-off-by: Abhishek GOYAL --- docs/features/communication/dds_gateway/index.rst | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/features/communication/dds_gateway/index.rst b/docs/features/communication/dds_gateway/index.rst index 2fdc20ec407..ef08fffc8bd 100644 --- a/docs/features/communication/dds_gateway/index.rst +++ b/docs/features/communication/dds_gateway/index.rst @@ -79,9 +79,9 @@ Scope The DDS Gateway provides: - Bridging between ``mw::com (LoLa)`` and DDS via the gateway: - - ``mw::com (LoLa)`` → DDS → ``mw::com (LoLa)`` (inter-ECU communication via DDS) - - ``mw::com (LoLa)`` → DDS → DDS applications - - DDS applications → DDS → ``mw::com (LoLa)`` + - ``mw::com (LoLa)`` → DDS GW → ``mw::com (LoLa)`` (inter-ECU communication via DDS) + - ``mw::com (LoLa)`` → DDS GW → DDS applications + - DDS applications → DDS GW → ``mw::com (LoLa)`` - Configurable routing: @@ -93,6 +93,7 @@ The DDS Gateway provides: - Runtime type definition via configuration or via dynamic library - No dependency on DDS IDL generation - Enables data translation and consistent serialization across middleware boundaries + - Supports DDS standard encodings (e.g., XCDR1 and XCDR2) for interoperability - End-to-End (E2E) protection: From 515890af2c1fc780d052cdbfa2415ee63683a9b9 Mon Sep 17 00:00:00 2001 From: Abhishek GOYAL Date: Mon, 20 Apr 2026 10:06:12 +0200 Subject: [PATCH 8/9] Add overview section to DDS Gateway documentation Signed-off-by: Abhishek GOYAL --- docs/features/communication/dds_gateway/index.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/features/communication/dds_gateway/index.rst b/docs/features/communication/dds_gateway/index.rst index ef08fffc8bd..c46cd849f9d 100644 --- a/docs/features/communication/dds_gateway/index.rst +++ b/docs/features/communication/dds_gateway/index.rst @@ -15,6 +15,8 @@ DDS Gateway =========== +.. toctree:: + Overview -------- From 2b341b9e97c21c84513cd6c38c40361cc0ead3f7 Mon Sep 17 00:00:00 2001 From: Abhishek GOYAL Date: Mon, 20 Apr 2026 10:13:38 +0200 Subject: [PATCH 9/9] Add Metadata Signed-off-by: Abhishek GOYAL --- docs/features/communication/dds_gateway/index.rst | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/docs/features/communication/dds_gateway/index.rst b/docs/features/communication/dds_gateway/index.rst index c46cd849f9d..5f4cc64aaaf 100644 --- a/docs/features/communication/dds_gateway/index.rst +++ b/docs/features/communication/dds_gateway/index.rst @@ -15,7 +15,14 @@ DDS Gateway =========== -.. toctree:: +.. document:: DDS-Gateway + :id: doc__dds_gateway + :status: valid + :safety: ASIL_B + :tags: contribution_request, feature_request + :security: YES + :realizes: wp__feat_request + Overview --------