[dpdk-dev] packets dropped when called rte_pktmbuf_prepend

wenrongbupt wenrongbupt at gmail.com
Thu Jan 30 09:31:20 CET 2014

Hi All,
       Any ideas would be helpful
My situation is when I am running the l3fwd under example directory, which provide by Intel DPDK( Version is 1.2). I modify the source code of l3fwd, its function is just receive packets from port 0, then call rte_pktmbuf_prepend to insert a new header then sent out from port 1.

I send 32000 packets(256 bytes) from port 0, the result is :
a. if the length of new header is larger than 22 bytes, it can only received 31911 packets in port 1, some packets dropped by driver.
b. if the length of new header is less than 22 bytes, it can received all packets.

I found in function ixgbe_xmit_pkts, it can't sent all packets from queue, it may be warning there is no free TX descriptors to use.
I am wonder if you have fix this bug. I would appreciate if you can share your experience to solve this problem.

Thank you very much.

PS: Attachment is the sourcecode of l3fwd, you can replace the main.c under example in your PC. You can modify the PREPEND_LEN to running different cases.
After make, running as following:
./build/l3fwd -c f -n 4 -- -p 0x3 --config="(0,0,0),(0,1,2),(1,0,1),(1,1,3)" &


More information about the dev mailing list