Forum Discussion
Altera_Forum
Honored Contributor
14 years agoSlow 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
Honored 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
Honored Contributor
Firstly try to disable UDP checksum calculations. Then compile Your program using -Os optimization and check the results.