ABSTRACT

Multi-queue network interface card (NIC) supports multiple queues in both RX and TX directions, and this hardware feature is a commonly available and widely used feature, the incoming packets can be moved into different queues, and it is a load balancing mechanism to receive large amounts of traffic. Flow classification is a way to identify the incoming packets going into multiple queues. Intel NICs are used as a reference to describe how its multi-queue and flow classification work and how Data Plane Development Kit supports them. In order to use the multiple queues, NIC came up with a few mechanisms to distribute the incoming packets to the queues, and the actual packet move to the host memory is done with NIC direct memory access. For queue selection, Receive-Side Scaling and Flow Director are important concepts. For a NIC with a single queue, the software has to support the traffic load balance to multiple cores.