Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
14 years ago

Slow UDP receiving with inichestack

Hi, everyone.

I got a problem here with my udp packet receiving. I use TSE as the MAC driver and inichestack TCP/IP, running on the Altera Cyclone 3 C120,

I noticed that there is a significant packet loss with my application. After

very detailed examinination, I found that the inichestack seems to be slow at packet receiving. After a while there will be this log info:

......

No free buffers for rx

No free buffers for rx

.......

It seems that the inichestack can not catch up with the TSE and the buffer overflows.

By the way, my udp sending rate is only 500kbps.

My IDE is quartus 8.0.

Anyone who has the same problem with me or Anyone who can drop me a clue, please do contact me.

Thanks.

12 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    HI Socrates,

    Thanks for your help, I appreciate it.

    I have did what you told, but I still got the problem. The inichestack is still slow and can not handle all the packets that sent from the TSE, which result in a overflow of the buffer "bigfreeq".

    I have print the size of the "bigfreeq" queue and it shows that the queue gradually drain. When I stop the udp sender, the queue size bounces back. If the inichestack is fast enough, it would fectch the date sent from TSE and free the packet alloc from the bigfreeq. But it seems the inichestack not fast enough.

    ......

    PKTDEMUX pk_alloc bigfreeq len=858, lilfreeq=55, recvdq=5

    PKTDEMUX pk_alloc bigfreeq len=862, lilfreeq=60, recvdq=5

    PKTDEMUX pk_alloc bigfreeq len=857, lilfreeq=55, recvdq=5

    PKTDEMUX pk_alloc bigfreeq len=861, lilfreeq=59, recvdq=5

    .....

    Is it related to my socket udp receiving application?

    I have upgrade the udp receiving frequency but I still got the problem.

    The udp is so slow and not to say TCP. I think the inichestack cannot handle 200Kbps TCP data.

    Could someone help me?
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Firstly try to disable UDP checksum calculations. Then compile Your program using -Os optimization and check the results.