Hi,
I'm using i.MX RT1170 EVK kit with evkmimxrt1170_lwip_iperf_enet_qos_bm_cm7 SDK example, in this I can't able to achieve the maximum throughput in 1000Mbps Ethernet connection.
I'm getting nearly 390Mbits/sec for the TCP RX test & 150Mbits/sec for the TCP TX test, and I'm sharing the Iperf test results below
Device side: TCP Server Mode (RX test) | TCP_DONE_SERVER (RX) Local address : 192.168.1.115 Port 5001 Remote address : 192.168.1.3 Port 46816 Bytes Transferred 488503908 Duration (ms) 10005 Bandwidth (kbitpsec) 390607 |
Device side: TCP Client Mode (TX test) | TCP_DONE_CLIENT (TX) |
In my use case, I need at least 980Mbits/sec throughput in the Iperf test from the 1Gbps Ethernet chip. Kindly help to achieve the maximum ethernet throughput in i.MX RT1170 EVK
Note:
Hoping for better guidance.
Thanks and Regards,
Bala
Hi Felipe,
Thanks for the information, I'll check and update the throughput result
Thanks,
Bala
Hi Bala,
Please check the following from the readme file, I hope this helps.
To experiment with the receive throughput, try to increase the number of receive buffers.
For LPC platforms, where zero-copy on receive is implemented, the number of buffers is determined by ENET_RXBD_NUM definition.
When using ENET QOS, where zero-copy on receive is not implemented, increase the PBUF_POOL_SIZE in the file lwipopts.h or on command line.
For other platforms, where zero-copy on receive is implemented, it is determined by ENET_RXBUFF_NUM definition.
Also increase the TCP receive window by changing TCP_WND definition in the file lwipopts.h or on command line.
Make sure that TCP_WND is not larger than (number of receive buffers / TCP_MSS).
For RTOS applications, DEFAULT_THREAD_PRIO and TCPIP_THREAD_PRIO values can have effect on maximum throughput as well.
Best regards,
Felipe