Skip to content

OpenFastPath Performance Measurement Procedure

semihalf-berestovskyy-andriy edited this page Feb 8, 2017 · 1 revision

OpenFastPath Performance Measurement Procedure

This is a copy of OFP performance measurement procedure.odt by Sorin Vultureanu, ENEA.

OpenFastPath (OFP) is a high performance data-plane stack designed to scale linearly on multi-core and to have the best performance per core.

OFP utilizes the functionality provide by OpenDataPlane (ODP) to achieve maximum input / output packet performance. As the ODP implementation is dependent on the used network interface controller (NIC), the available hardware acceleration may differ.

Configuration Details

Table 1. Application configuration details:

ODP Version

OFP commit number

OFP configure parameters

OFP code changes (attach patch file)

Table 2. Hardware and software platform configuration details:

HW Version

SDK Version

Core Frequency / IO Frequency

NIC Interfaces

Use-case: IP Forwarding

The following test describes a pure IP forwarding use-case. Using the information in the route and arp tables, received packets are sent to the appropriate interface based on the packets IP header.

Test Set Up Description

IP traffic is sent from a packet generator (node 1) to a destination (node 3) by using a forwarding node 2 with OFP application running and configured for this operation.

OFP application on node 2 forwards IP traffic from interface fp0 to interface fp1 using the route table and ARP table entries.

TODO: diagram

Procedure

  1. Start application that uses OFP on node 2. Ex:

    ./fpm -i interface0,interface1 -c 3 -p
  2. Connect with telnet to OFP CLI on port 2345. To connect remotely you need to have a management interface/IP on node 2.

    telnet 127.0.0.1 2345
  3. Configure IPs on fpX interfaces with commands:

    ifconfig fp0 192.168.10.2/24
    ifconfig fp1 192.168.20.2/24
  4. Ping node 2 from node 3 in order to populate the ARP table. Doing this prior to the high load test start avoids the loss of ARP responses due to depleted packet buffers. I.e. before they can be handled by the normal ARP request / ARP response procedure.

  5. Generate traffic from packet generator (node 1)

  6. Collect results from destination (node 3) or from OFP application (node 2).

NOTE 1: Target Configuration

OFP target configuration snapshot from CLI:

> route
Destination      Gateway  Iface
192.168.10.2/24  0.0.0.0  fp0
192.168.20.2/24  0.0.0.0  fp1
> arp
VRF  ADDRESS       MAC                AGE
0    192.168.10.1  ec:9e:cd:0e:36:a2  27
0    192.168.20.1  ec:9e:cd:0e:36:a3  27

NOTE 2: Target Machines

Node 1 and node 3 can be a single machine or Spirent/Ixia traffic generator with two real interfaces and IP addresses assigned in two networks and connected to node 2.

Results

IPv4 Forwarding with 64-byte frame

Performance in Mpps

1 core (“-c 3” parameter)

2 core (“-c 5” parameter)

4 core (“-c 7” parameter)

Use-case: UDP Forwarding

The following test describes a UDP forwarding use-case.

Test Set Up Description

UDP packets are sent from a packet generator (node 1) to multiple destination sockets on node 2, these are then forwarded to a single socket on node 3.

Udp_fwd_sock OFP application is used to forward UDP packets received on interface fp0 to node 3 through interface fp1.

TODO: diagram

Procedure

  1. Start OFP application on node 2:

    ./udp_fwd_sock -i interface0,interface1 -c 3 -l 192.168.10.2 -r
    192.168.20.1 -s 1
  2. Connect with telnet to OFP CLI on port 2345. To connect remotely you need to have a management interface/IP on node 2.

    telnet 127.0.0.1 2345
  3. Configure IPs on fpX interfaces with commands:

    > ifconfig fp0 192.168.10.2/24
    > ifconfig fp1 192.168.20.2/24
  4. Ping node 2 from node 3 in order to populate the ARP table. Doing this prior to the high load test start avoids the loss of ARP responses due to depleted packet buffers. I.e. before they can be handled by the normal ARP request / ARP response procedure.

  5. Generate traffic from packet generator (node 1)

  6. Collect results from destination (node 2).

NOTE 1: Target Configuration

OFP target configuration snapshot from CLI:

> route
Destination      Gateway  Iface
192.168.10.2/24  0.0.0.0  fp0
192.168.20.2/24  0.0.0.0  fp1
> arp
VRF  ADDRESS       MAC                AGE
0    192.168.10.1  ec:9e:cd:0e:36:a2  27
0    192.168.20.1  ec:9e:cd:0e:36:a3  27

NOTE 2: Target Machines

Node 1 and node 3 can be a single machine or Spirent/Ixia traffic generator with two real interfaces and IP addresses assigned in two networks and connected to node 2.

Results

UDP Forwarding, 64B frame, one source socket on node 1 per destination socket

Mpps with one socket

Mpps with 2 sockets

Mpps with 4 sockets

1 core (“-c 3” parameter)

2 core (“-c 5” parameter)

4 core (“-c 7” parameter)

UDP Forwarding, 64B frame, 100K sources sockets on node 1

1 core (“-c 3” parameter)

2 core (“-c 5” parameter)

4 core (“-c 7” parameter)