Micro-XRCE-DDS-Client icon indicating copy to clipboard operation
Micro-XRCE-DDS-Client copied to clipboard

FreeRTOS+TCP zero copy - not possible to be used.

Open bjv-capra opened this issue 3 years ago • 1 comments

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

bjv-capra avatar Apr 08 '21 05:04 bjv-capra

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

pablogs9 avatar Apr 08 '21 07:04 pablogs9