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 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