Xilinx-CNS / onload

OpenOnload high performance user-level network stack
Other
552 stars 90 forks source link

zero-copy api UDP transmit support #233

Closed abhinavchadaga closed 2 months ago

abhinavchadaga commented 2 months ago

Apologies if this has already been answered or is otherwise obvious but does the zero-copy api support UDP transmit packet data? The docs only mention UDP received packet data and TCP transmit packet data and this StackOverflow post seems to indicate that support was not present 11 years ago. The documentation for onload_zc_send in extensions_zc.h seems to indicate that UDP can be used but there is a TODO at the top of the same file for zero-copy UDP-TX.

I'd like to use UDP zero-copy transmits for something I'm working on so if there's support for it, that would be good to know.

rhughes-xilinx commented 2 months ago

You're correct that UDP zc send remains unsupported. If you'd like to work on adding support then citp_udp_zc_send() is the stub (currently returning EOPNOTSUPP).

The reason it hasn't been a high priority is that it's reasonably easy to use ef_vi directly to send UDP packets. That's been made even easier now that we've created a public API for the cplane server - see PR#1418 for a sample app.

abhinavchadaga commented 2 months ago

Thanks for the response. Which PR are you referring to though? I don't see a PR# higher than 232?

rhughes-xilinx commented 2 months ago

Oops, sorry, that's a reference to a different repo. The API docs are in src/include/cplane/api.h

abhinavchadaga commented 2 months ago

awesome thank you! closing out the issue!

rhughes-xilinx commented 2 months ago

FYI the sample app I mentioned from that other repo is now in this repo: src/tests/ef_vi/efsend_cplane.c