39. Test Pipeline Application

The Test Pipeline application illustrates the use of the DPDK Packet Framework tool suite.
Its purpose is to demonstrate the performance of single-table DPDK pipelines.

39.1. Overview

The application uses three CPU cores:

Core A (“RX core”) receives traffic from the NIC ports and feeds core B with traffic through SW queues.

Core B (“Pipeline core”) implements a single-table DPDK pipeline
whose type is selectable through specific command line parameter.
Core B receives traffic from core A through software queues,
processes it according to the actions configured in the table entries that
are hit by the input packets and feeds it to core C through another set of software queues.

Core C (“TX core”) receives traffic from core B through software queues and sends it to the NIC ports for transmission.

The default table rule (used in the case of a lookup
miss) is to drop the packet.

At run time, core A is storing the IPv4 destination
within the packet meta data to be later used by core
B as the lookup key.

10

acl

Access Control List (ACL) table

In the case of two ports, two ACL rules are added to
the table:

[priority = 0 (highest),

IPv4 source = ANY,

IPv4 destination = 0.0.0.0/9,

L4 protocol = ANY,

TCP source port = ANY,

TCP destination port = ANY

=> send to output port 0]

[priority = 0 (highest),

IPv4 source = ANY,

IPv4 destination = 0.128.0.0/9,

L4 protocol = ANY,

TCP source port = ANY,

TCP destination port = ANY

=> send to output port 0].

The default table rule (used in the case of a lookup
miss) is to drop the packet.

39.3.3. Input Traffic

Regardless of the table type used for the core B pipeline,
the same input traffic can be used to hit all table entries with uniform distribution,
which results in uniform distribution of packets sent out on the set of output NIC ports.
The profile for input traffic is TCP/IPv4 packets with: