[dpdk-users] Ideal design to use ip-fragmentation using multiple lcores

Stephen Hemminger stephen at networkplumber.org
Wed Oct 31 16:18:24 CET 2018

On Tue, 30 Oct 2018 18:55:02 -0700
Sungho Hong <maverickjin88 at gmail.com> wrote:

> Hello DPDK experts,
> I have a question of how to ideally use ip fragmentation and assemble using
> N number of logical cores each associated with tx&rx queues.
> Should the ip fragmentation table be single received by a single rx-queue?
> Because I am not sure whether I will receive all the fragmented messages
> correctly when I try to receive and combine the packets using multiple
> rx-queues with multiple logical cores.
> I have currently build an example that only uses one rx-queue with multiple
> tx-queues and assemble the fragmented messages with a single frag-table.
> But I am not sure how to scale this..

I am not sure what you are asking.

The usual model of DPDK programs is to use RSS to spread receive packets
across multiple RX queues, and use a thread per RX queue to poll.

When IP packets are fragmented the IP header is on each packet and the
UDP header is only on the first packet. RSS can be configured to include
the UDP port (or not). If RSS is applied to the UDP port as well (L3+L4)
then the fragmented packets will arrive on potentially different queues.
If you configure RSS for L3 only hashing, then the fragmented packet
will arrive on the same queue for all fragments. The downside of L3 only
hashing is that if you are doing a workload or benchmark with only
a single address pair, then all packets will be on one queue.

More information about the users mailing list