This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM2634: Limited bandwidth when running Enet Lwip CPSW Example

Part Number: AM2634

When I run the example on the launchpad, I get a maximum stable bandwidth of 10-15 Mbps. If it is more, we have missing or out of order frames. Also, when I run iperf with the 100 Mbit flag - the terminal actually shows 1 Mbit.
Command in the console of the PC:
iperf.exe -c 192.168.100.100 -r -u -t 1 -b 100m
Is it possible to get a bandwidth of about 100 Mbps?
What do we need to do to get more bandwidth?

  • Hi ,

    For getting higher throughput, you can increase number of Rx and Tx packets in syscfg-gui.. The default configuration is 16 and 32 packets. Let me know if this helps.

  • Hi Nilabh Anand,

    If I encrease the number of Rx and Tx packets in syscfg-gui, when I run the code I get an assert:
    Starting lwIP, local interface IP is dhcp-enabled
    EnetQueue_enq: NULL enq to the queue
    Assertion @ Line: 111 in mcu_plus_sdk_am263x_08_06_00_14/source/networking/enet/core/src/core/enet_queue.c: node != NULL

    I tried changing 16 to 32 (for the number of Rx packets) and 32 to 64 (for both Rx and Tx packets).
    This is always the result and the code stops here.

  • Hi Nilabh,

    Can we request a debug session on this issue?
    Because it is very important and critical for us.

  • Hi 

    We see nearly 100Mbps Rx (Board Rx) with negligible frame drops on our testing.


    Please help me with the following to better understand your issue and recreate on our end.

    1. Could you please use the below command  and provide me the logs on both PC side and Uart terminal ? 

    iperf -c <ip-address> -b 100M -u -i 10 -t 30 -r

    2. What is your iperf version? Are you using Linux or windows PC ? and what is your current setup connection topology with Board and PC (Is it static IP)?

    Regarding the Rx and Tx pkts on syscfg-gui, Unfortunately, the example documentation in 8.6 is incomplete, we have updated it properly in 9.0 SDK. Here I explain the same in detail.

    1. To increase Rx Packets

    • Increase the "Number of Packets"  item corresponding to ENET rx dma channel in DMA channel config section 
    • The Rx packet buffer memory for LwIP is completely managed by SysCfg. So, you need to increase same number in "Packet Pool Config" .  You can increase the "Large Pool Packet Count" and match the value with the Number of rx packets.

    2. To increase the Tx Packets 

    • Currently, The Tx Packet memory allocation is not completely done in SysCfg. Only the memory for DMA Pkt Info struct is done in SysCfg. The real buffer memory for Tx is done in lwippools.h file in LwIP stack.
    • If you want to increase the Tx Packet count, you should change the following
      • Increase the "Number of Packets"  item corresponding to ENET tx dma channel in DMA channel config section 
      • Increase the " PktInfoMem Only Count" by the same number. This allocates the DMA Pkt Info structs needed but not the real buffer memory.
      • Increase the values in lwippools.h correspondingly and rebuild the libs

    Regards

    Susheel