Question about extending Fast DDS for custom hardware DMA buffer allocation and management #6363
Unanswered
LongwayBai
asked this question in
Q&A
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Is there an already existing issue for this?
Expected behavior
We would like to know whether Fast DDS can be extended to support custom hardware DMA buffer allocation and lifecycle management.
More specifically, we are looking for a way to:
• allocate buffers through hardware/platform-specific DMA buffer APIs,
• manage the lifetime of those buffers externally,
• integrate such buffers into the Fast DDS data path,
• and minimize or avoid unnecessary memory copies when possible.
If Fast DDS already provides extension points, hooks, or APIs for this kind of customization, we would expect to be able to adapt the middleware without intrusive changes to the core implementation.
Current behavior
At the moment, we have not found clear documentation or examples describing whether custom DMA buffer allocation/management can be integrated into Fast DDS, or which interfaces should be customized for this purpose.
So this issue is mainly a request for guidance on:
• whether this is currently supported,
• whether there are internal interfaces suitable for customization,
• and which components would need to be modified if we want to add this capability.
Steps to reproduce
Review Fast DDS documentation and existing examples regarding memory handling / transport / zero-copy related capabilities.
Try to identify whether custom hardware DMA buffers can be injected into the publish/subscribe workflow.
Check whether there are public interfaces or recommended extension points for custom allocation and buffer lifecycle control.
No clear integration path has been identified so far.
This is not a runtime bug report, but rather a request for clarification on extensibility and recommended implementation approach.
Fast DDS version/commit
Please use the latest available Fast DDS version.(If needed, we can also verify against a specific release or commit.)
Platform/Architecture
Ubuntu Focal 20.04 arm64
Transport layer
Default configuration, UDPv4 & SHM
Additional context
Our target platform uses vendor-specific/custom hardware DMA buffers for high-performance data exchange.
We would like to understand the following:
Does Fast DDS currently provide any interface, hook, or extension point for custom buffer allocation and management?
Is it possible to integrate externally allocated DMA buffers into the publish/subscribe workflow?
Are there recommended ways to customize or replace the default memory handling logic for hardware-specific optimization?
If this is not currently supported, would such an extension be considered feasible or aligned with the project roadmap?
If there are relevant modules, APIs, design documents, or examples we should look at, we would greatly appreciate your guidance.
XML configuration file
Relevant log output
Network traffic capture
No response
Beta Was this translation helpful? Give feedback.
All reactions