Open dragonnull opened 2 years ago
There may be multiple reasons for the out-of-order problem,suah as multiple processes use different queues, and you can try modify lcore_mask=3
to lcore_mask=2
and retry it.
In fact, we usually do not use the protocol stack when processing UDP packets,but the application itself process it, for example through ff_regist_packet_dispatcher
.
Thank you for your reply. Sorry to get back to you on Monday, for some reason I can't use the server on weekends.
I have simplified the environment. The FPGA board is directly connected to the network card using F-Stack, and the network card is only used to receive data from the FPGA.
About what you mentioned "multiple processes use different queues", when testing, I've made sure that the server is only running my program.
I have tried lcore_mask=2
and it didn't work. Next I will try ff_regist_packet_dispatcher
and hope it works.
Hi, F-Stack! We transmit data via UDP. Since the Linux socket does not perform well at the 10 Gigabit fiber rate and often causes packet loss, we try to use F-Stack. We receive UDP data from the FPGA board, and the serial number increases from 1 to 65536, but the serial number received and parsed by F-Stack is out of order. I am a newbie to F-Stack. I tried using the helloworld program and the Makefile from the example, and the config.ini in the root directory. Modify them to complete my receive UDP program. So it's not clear to me if I'm using the F-Stack correctly, or if it's misconfigured. I will show my code and config.ini, hope someone can help me find the problem. Thank you so much for taking the time to read my question.
main.cpp
config.ini
Makefile