Part Number: AM625
Other Parts Discussed in Thread: SK-AM62-LP
Tool/software:
We are implementing a udp protocol, but were surprised by the high packet loss we were observing. We therefore tried to run the enet_lwip_cpsw example since it includes iperf support.
Running the suggested command from the docs ( https://software-dl.ti.com/mcu-plus-sdk/esd/AM62X/latest/exports/docs/api_guide_am62x/EXAMPLES_ENET_LWIP_CPSW.html )
iperf -c 192.168.1.100 -i 5 -t 20 -d
works, although the throughput was maybe a bit lower than expected. However the udp test did not work out of the box, e.g.:
iperf -c 10.14.15.60 -i 1 -t 5 -b 10m -u
As far as I can tell, udp_iperf.c expects iperf to start with datagram_id 0, but in both my setups (one Mac and one linux, one with SK-AM62-LP, one with our own board), it starts with 1 (or, the network consistently drops the first packet, but that seems strange).
Changing line 205 to
[ 1] 0.0- 5.1 sec 11.9 MBytes 19.6 Mbits/sec 7536/16009 (47%)
[ 1] 0.0- 5.1 sec 7506 datagrams received out-of-order
A packet loss of around 50% is quite consistent (and very high). Increasing (e.g. -b 40m) or decreasing the bandwidth doesn't make much difference until we go down to below 150k (ish). Then it (sometimes) improves a little bit (40%). At -b 10k 17%.
The high number of datagrams out of order I find even more surprising. My first thought is that something goes wrong in the incoming queue(?). I have tested both with a switch and the device connected directly to the PC.
Do you see the same behavior on your end? Do you know what causes this behavior and if there is a way to fix it?