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

    I have checked the code and the buffer size definition seems to be all right. You can print out in function "pk_init" to make sure size of "bigfreeq" is 600 and size of "litfreeq" is 300. That can be checked by

    "bigfreeq.q_len".

    You also need to check that the udp bandwidth is not too high. The tcp/ip stack can only receive udp bandwidth less than 2Mbps (that's a figure evaluated by me, not an authoritative figure)

    in the fuction pk_free [pktalloc.c], comment the code:

    //e = pk_validate(pkt);

    It will reduce the performance.

    Good luck!