Packet Processing Execution Engine (PROX) - Performance Characterization for NFVI User Guide
Total Page:16
File Type:pdf, Size:1020Kb
USER GUIDE Intel Corporation Packet pROcessing eXecution Engine (PROX) - Performance Characterization for NFVI User Guide Authors 1 Introduction Yury Kylulin Properly designed Network Functions Virtualization Infrastructure (NFVI) environments deliver high packet processing rates, which are also a required dependency for Luc Provoost onboarded network functions. NFVI testing methodology typically includes both Petar Torre functionality testing and performance characterization testing, to ensure that NFVI both exposes the correct APIs and is capable of packet processing. This document describes how to use open source software tools to automate peak traffic (also called saturation) throughput testing to characterize the performance of a containerized NFVI system. The text and examples in this document are intended for architects and testing engineers for Communications Service Providers (CSPs) and their vendors. This document describes tools used during development to evaluate whether or not a containerized NFVI can perform the required rates of packet processing within set packet drop rates and latency percentiles. This document is part of the Network Transformation Experience Kit, which is available at https://networkbuilders.intel.com/network-technologies/network-transformation-exp- kits. 1 User Guide | Packet pROcessing eXecution Engine (PROX) - Performance Characterization for NFVI Table of Contents 1 Introduction ................................................................................................................................................................................................................. 1 2 Overview ....................................................................................................................................................................................................................... 3 2.1 Test Framework ....................................................................................................................................................................................................................................... 3 2.2 Terminology .............................................................................................................................................................................................................................................. 4 2.3 Reference Documentation ................................................................................................................................................................................................................... 4 3 Ingredients ................................................................................................................................................................................................................... 4 3.1 Hardware Bill of Materials .................................................................................................................................................................................................................... 4 3.2 Software Bill of Materials ...................................................................................................................................................................................................................... 4 4 Setup .............................................................................................................................................................................................................................. 5 4.1 Kubernetes Prerequisites for Sensitive Workload Placement ................................................................................................................................................ 5 4.2 Build PROX Containerized Image ...................................................................................................................................................................................................... 5 4.3 Push Image to Repository..................................................................................................................................................................................................................... 5 4.4 Configure Metrics Collection and Visualization ............................................................................................................................................................................ 6 5 Prepare Pods and Run Tests ..................................................................................................................................................................................... 7 5.1 Prepare PROX Pods ................................................................................................................................................................................................................................ 7 5.2 Run Tests .................................................................................................................................................................................................................................................... 7 6 Summary ..................................................................................................................................................................................................................... 10 Figures Figure 1. Test Framework Software ................................................................................................................................................................................................................... 3 Tables Table 1. Terminology ............................................................................................................................................................................................................................................. 4 Table 2. Reference Documents ........................................................................................................................................................................................................................... 4 2 User Guide | Packet pROcessing eXecution Engine (PROX) - Performance Characterization for NFVI 2 Overview Traditionally, establishing repeatable, reliable performance characterization required highly-trained engineers in specially-prepared labs, usually equipped with proprietary hardware load generators and test suites. Such traditional characterization methodologies faced challenges measuring the virtualized environment while also taking into account the network workload needs (which are onboarded at a later stage). This document describes a method to automate a typically manual process which can require extensive and expensive test gear. Note that these tests are not a substitute for acceptance, validation, or compliance tests. This document describes how to use open source tools to characterize the performance of a containerized NFVI system. The key software components are an engine called Packet pROcessing eXecution (PROX) and automation scripts. The PROX engine is a Data Plane Development Kit* (DPDK*) application that performs packet operations in a highly configurable manner and displays performance statistics. In the setup described in this guide, the PROX engine is packaged as a bare metal container, however, in other environments it can be packaged as a container in Virtual Machines (VMs) or without containers in a GuestOS VM. The automation test scripts cover options from simple test runs to more complex test cases. 2.1 Test Framework The diagram below describes the design and operation of the automated test framework software. On the desired server nodes, we instantiate two PROX engines. The control script performs the following tasks: • Configures one engine as the Generator and the other as Swap. • Starts the test at the target maximum throughput level. • Uses binary search to find a peak traffic (saturation) throughput rate that is within acceptable latency and packet loss rates. • Presents the final results on screen. • Sends the results as metrics to Prometheus* Pushgateway. • Prometheus reads the metrics and presents them in Grafana*. Figure 1. Test Framework Software Note: The testing methodology and tools described here are for development purposes. They are not recommended for tests such as formal validation or acceptance test, analysis of different types of Quality of Service (QoS) traffic, measurement of packet delay variations (peak and average), individual subscriber QoS, burst propagation, shaping/scheduling, or 3GPP compliance tests. 3 User Guide | Packet pROcessing eXecution Engine (PROX) - Performance Characterization for NFVI 2.2 Terminology Table 1. Terminology ABBREVIATION DESCRIPTION CNF Cloud native Network Function CSP Communications Service Provider DPDK* Data Plane Development Kit* K8s* Kubernetes* NFV Network Functions Virtualization NFVI Network Functions Virtualization Infrastructure OPNFV* Open Platform for NFV* PROX Packet pROcessing eXecution engine SR-IOV Single Root Input/Output Virtualization QoS Quality of Service VM Virtual Machine 2.3 Reference Documentation Table 2. Reference Documents REFERENCE SOURCE Readme with requirements https://git.opnfv.org/samplevnf/plain/VNFs/DPPD-PROX/helper- scripts/rapid/README.k8s Packet pROcessing eXecution engine (PROX) documentation https://wiki.opnfv.org/pages/viewpage.action?pageId=12387840 Automation script code https://git.opnfv.org/samplevnf/tree/VNFs/DPPD-PROX/helper-scripts/rapid