Micro-XRCE-DDS-Client
Micro-XRCE-DDS-Client copied to clipboard
FreeRTOS+TCP zero copy - not possible to be used.
Hi,
I've been looking at the current implementation of the transport profile and it does not allow one to use the zero-copy feature from FreeRTOS+TCP.
These are examples from them https://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/Networking_Tutorial_Zero_Copy_Receive.html https://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/Networking_Tutorial_Zero_Copy_Send.html
You can see here and here that the flags are set to 0 on both cases.
I'd assume this requires some work on this implementation to provide the pre-allocated buffer.
Furthermore, as this implementation uses select, wouldn't it be better to simply enforce another flag FREERTOS_MSG_DONTWAIT
, which does not iterate over recvfrom or sendto. I don't know if this would provide a significant improvement
Hello, this support is not planned in our mid-term roadmap. Furthermore, this transport for FreeRTOS+TCP is a contributed feature (https://github.com/eProsima/Micro-XRCE-DDS-Client/pull/161).
If you want to provide any improvement, upgrade, or a new feature, PR are welcome.
CC: @FranFin