Transmission performance on RIOT

Dear RIOT maintainers,

I’m working on a project that requires sending large amounts of data (40-50KB) in UDP packets and measuring the performance (in terms of time) on my RIOT-based board.

Currently, when I try to do this, the application outputs the error message: gnrc_netif: can't queue packet for sending. While I understand that simply increasing the pktbuf size might resolve this, I don’t believe it’s the optimal solution.

I’m writing to ask if you have any insights or best practices for handling this kind of situation. How would you recommend programming this to efficiently send large amounts of data over UDP?

Thank you for your time and expertise, Dingisoul

  1. I would use TCP.
  2. I would use CoAP, block mode.
  3. QUIC runs over UDP, and includes congestion control, but I don’t think we have a stack

Basically, you aren’t going to be able to send that much UDP traffic into the network (particularly 802.15.4 networks) without congestion control.

Thanks mcr, I will try tcp

There is some support by quant for RIOT. Not sure how current that is, though: quant/riot at main · NTAP/quant · GitHub

If you want to measure the performance, you can also use the UDP benchmark example