OPNFV Project Proposal – Characterize vSwitch Performance for Telco NFV Use Cases

Version: 1.0 (November 3rd, 2014)

Project Name: Characterize vSwitch Performance for Telco NFV Use Cases

Proposed name for the repository: vswitchperf

Project Categories:

Project description: Many Virtual Network Functions (VNFs) require deterministic behaviour of the Network Functions Virtualization Infrastructure (NFVI). Although not being a required component in the NFVI, many cloud and telco infrastructure providers are evaluating a virtual switch as a component of the NFVI in order to direct frames into VNFs. Open vSwitch and other virtual switches have not typically been designed for Telco NFV use cases that require telco grade determinism in their performance. This project proposes evaluating at least one virtual switch in order to understand how suitable it is in this environment and to identify any gaps or bottlenecks in order to drive architectural changes to improve vSwitch throughput and determinism.

Scope: While some work has been done to measure the latency and throughput of a number of vswitch use cases (e.g. https://01.org/sites/default/files/downloads/packet-processing/inteldpdkvswitchperformancefigures0.10.0.pdf), these use cases emphasize best-case scenarios which showcase the best possible throughput and best possible latency. In Telco environments, there are many other system-level effects that can reduce the maximum available throughput and increase maximum latency. This project proposes defining and executing an appropriate set of tests in order to objectively measure the current telco characteristics of a virtual switch in the NFVI. The proposal is to use the DPDK userspace datapath implementation at www.openvswitch.org (aka Accelerated OVS) as a starting point however the intent of the project is to facilitate testing of multiple vSwitches, not a single implementation. Thus, a generic suite of tests shall be developed, with no hard dependencies to a single implementation. In addition, the test case suite shall be architecture independent.

The test cases developed in this project shall not form part of a seperate test framework, rather some or all of these tests may be inserted into the Continuous Integration Test Framework and/or the Platform Functionality Test Framework - if a vSwitch becomes a standard component of an OPNFV release.

The following list is not exhaustive but should indicate the type of tests that should be required. It is expected that more will be added.

  1. PHY → vSwitch → PHY
  2. PHY → vSwitch → VNF → vSwitch → PHY

As new requirements become apparent, the suite of test cases could and should be extended.

These tests would subsequently need to be executed in the context of higher level Telco NFV use cases, which would exercise the vSwitch and prove that its underlying characteristics and behaviour can be measured and validated using the tests above. Potential Telco VNF candidates that could be utilised in a subsequent testing phase might be:

Documentation:

Dependencies:

Committers and Contributors:

Planned deliverables:

  1. Generic Test plan for characterizing vSwitch performance.
  2. Test cases (including test code and scripts) for characterizing vSwitch performance.
  3. Performance data showing throughput and determinism of the vSwitch for test cases defined in bullet 1 above. OPNFV Test Lab infrastructure support via associated VNF testing to benchmark and demonstrate throughput and determinism performance using Telco VNFs (e.g. vBRAS, vEPC).
  4. Benchmarking data.

The intent is that the output of this project will form a baseline and platform for vSwitch architectural and functional modifications to be proposed in a seperate project. This subsequent project should be focused on implementing the necessary changes to the vSwitch to enable it to meet Telco-grade throughput and determinism targets necessary for in-field NFV deployments. To that end, this current performance characterization project should be seen as a foundational element for such a follow on project.

Proposed Release Schedule: