You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Normally, I only use iperf with the TCP protocol, and I think that the code under ipconfigIPERF_HAS_UDP needs some revision.
Please let me know if the UDP option works for you after making this change.
Note that every UDP socket has a list of received UDP packets. The length of this list is only limited by the number of available network buffers. This means that your device may suffer from a UDP flooding because of network buffer exhaustion.
You can activate a limit on the amount of UDP packets stored, either by setting the macro ipconfigUDP_MAX_RX_PACKETS, or by setting the socket option FREERTOS_SO_UDP_MAX_RX_PACKETS. The macro will set the default for all UDP sockets. The socket option works for a single socket.
The maximum value will be stored internally as pxSocket->u.xUDP.uxMaxPackets. As soon as the list becomes longer than uxMaxPackets, the incoming packet will be dropped.
I had to completely rewrite your demo as we use lwIP netwokring library, not FreeRTOS+TCP. Having said that, there were a couple of things which I had to add to get iperf3 UDP working.
Support for initial UDP "handshake". Client sends 32-bit value 123456789 and server should respond back to confirm it's ready.
Count UDP packets to report it back to a client. Packet counter is more relevant in UDP context than byte counter.
freertos_plus_projects/plus/Common/Utilities/iperf_task_v3_0d.c
Line 713 in 44e1774
Was it meant to be pvData, not pcRecvBuffer, on this line?
The text was updated successfully, but these errors were encountered: