[dpdk-dev] Exception Path issue with AF Packet PMD for fragmented packets

Prashant Upadhyaya praupadhyaya at gmail.com
Thu Jul 9 08:58:10 CEST 2015


Hi,



I have a DPDK based application where the core 0 is handling the exception
path and rest of the cores are bringing in the data from the NIC via the
PMD.

For the exception path handling I use the tun/tap interface.



So the flow is like this –



Fast path cores bring in the data from NIC, classify it as exception path
data, write to tap. (eg. ICMP ping data)

Kernel responds and sends data out of tap

My application is listening to tap in a thread running on core 0 itself,
takes the data and writes to NIC via PMD



The above works very well when I use PMD which takes the NIC over eg. ixgbe
PMD with Intel 82599 NIC.

However when I use the AF Packet PMD, I face an issue that while non
fragmented ping’s work fine, the fragmented ping’s (pings with big
payloads) don’t work. I see, via tcpdump on tap, that the fast path cores
write all the fragments to tap, but the kernel does not respond.

Interestingly, the fragmented usecase works if I put small delays at the
following two places –

Just before writing to the tap

Just after reading from tap and immediately before sending to NIC with the
tx burst PMD API



I believe the problem may not be related to DPDK at all and may have
something to do with linux kernel or tun/tap driver, but has anybody faced
a similar issue or root-caused it.



Regards

-Prashant


More information about the dev mailing list