BMWG R. Rosa, Ed. Internet-Draft C. Rothenberg Intended status: Informational UNICAMP Expires: May 7, 2020 M. Peuster H. Karl UPB November 4, 2019 Methodology for VNF Benchmarking Automation draft-rosa-bmwg-vnfbench-05 Abstract This document describes a common methodology for the automated benchmarking of Virtualized Network Functions (VNFs) executed on general-purpose hardware. Specific cases of automated benchmarking methodologies for particular VNFs can be derived from this document. Two open source reference implementations are reported as running code embodiments of the proposed, automated benchmarking methodology. Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at https://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire on May 7, 2020. Copyright Notice Copyright (c) 2019 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect Rosa, et al. Expires May 7, 2020 [Page 1] Internet-Draft VNFBench November 2019 to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 3. Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 4. Considerations . . . . . . . . . . . . . . . . . . . . . . . 4 4.1. VNF Testing Methods . . . . . . . . . . . . . . . . . . . . 5 4.2. Benchmarking Procedures . . . . . . . . . . . . . . . . . . 5 4.2.1. Phase I: Deployment . . . . . . . . . . . . . . . . . . . 6 4.2.2. Phase II: Configuration . . . . . . . . . . . . . . . . . 6 4.2.3. Phase III: Execution . . . . . . . . . . . . . . . . . . 6 4.2.4. Phase IV: Report . . . . . . . . . . . . . . . . . . . . 7 5. Generic VNF Benchmarking Architectural Framework . . . . . . 7 5.1. Deployment Scenarios . . . . . . . . . . . . . . . . . . . 10 6. Methodology . . . . . . . . . . . . . . . . . . . . . . . . . 10 6.1. VNF Benchmarking Descriptor (VNF-BD) . . . . . . . . . . . 12 6.1.1. Descriptor Headers . . . . . . . . . . . . . . . . . . . 12 6.1.2. Target Information . . . . . . . . . . . . . . . . . . . 12 6.1.3. Experiments . . . . . . . . . . . . . . . . . . . . . . . 13 6.1.4. Environment . . . . . . . . . . . . . . . . . . . . . . . 13 6.1.5. Scenario . . . . . . . . . . . . . . . . . . . . . . . . 13 6.1.6. Proceedings . . . . . . . . . . . . . . . . . . . . . . . 14 6.2. VNF Performance Profile (VNF-PP) . . . . . . . . . . . . . 15 6.2.1. Headers . . . . . . . . . . . . . . . . . . . . . . . . . 15 6.2.2. Reports . . . . . . . . . . . . . . . . . . . . . . . . . 15 6.3. Procedures . . . . . . . . . . . . . . . . . . . . . . . . 17 6.3.1. Pre-Execution . . . . . . . . . . . . . . . . . . . . . . 17 6.3.2. Automated Execution . . . . . . . . . . . . . . . . . . . 18 6.3.3. Post-Execution . . . . . . . . . . . . . . . . . . . . . 19 6.4. Particular Cases . . . . . . . . . . . . . . . . . . . . . 19 6.4.1. Capacity . . . . . . . . . . . . . . . . . . . . . . . . 19 6.4.2. Redundancy . . . . . . . . . . . . . . . . . . . . . . . 20 6.4.3. Isolation . . . . . . . . . . . . . . . . . . . . . . . . 20 6.4.4. Failure Handling . . . . . . . . . . . . . . . . . . . . 20 6.4.5. Elasticity and Flexibility . . . . . . . . . . . . . . . 20 6.4.6. Handling Configurations . . . . . . . . . . . . . . . . . 21 6.4.7. White Box VNF . . . . . . . . . . . . . . . . . . . . . . 21 7. Open Source Reference Implementations . . . . . . . . . . . . 21 7.1. Gym . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 7.2. tng-bench . . . . . . . . . . . . . . . . . . . . . . . . . 22 8. Security Considerations . . . . . . . . . . . . . . . . . . . 23 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 24 10. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 24 Rosa, et al. Expires May 7, 2020 [Page 2] Internet-Draft VNFBench November 2019 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 24 11.1. Normative References . . . . . . . . . . . . . . . . . . . 24 11.2. Informative References . . . . . . . . . . . . . . . . . . 25 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 26 1. Introduction The Benchmarking Methodology Working Group (BMWG) already presented considerations for benchmarking of VNFs and their infrastructure in [RFC8172]. Similar to the motivation given in [RFC8172], the following aspects justify the need for VNF benchmarking: (i) pre- deployment infrastructure dimensioning to realize associated VNF performance profiles; (ii) comparison factor with physical network functions; (iii) and output results for analytical VNF development. Even if many methodologies already described by the BMWG, e.g., self- contained black-box benchmarking, can be applied to VNF benchmarking scenarios, further considerations have to be made. This is, on the one hand, because VNFs, which are software components, do not have strict and clear execution boundaries and depend on underlying virtualization environment parameters as well as management and orchestration decisions [ETS14a]. On the other hand, can and should the flexible, software-based nature of VNFs be exploited to fully automate the entire benchmarking procedure end-to-end. This is an inherent need to align VNF benchmarking with the agile methods enabled by the concept of Network Functions Virtualization (NFV) [ETS14e]. More specifically it allows: (i) the development of agile performance-focused DevOps methodologies for Continuous Integration and Delivery (CI/CD) of VNFs; (ii) the creation of on-demand VNF test descriptors for upcoming execution environments; (iii) the path for precise-analytics of automated catalogues of VNF performance profiles; (iv) and run-time mechanisms to assist VNF lifecycle orchestration/management workflows, e.g., automated resource dimensioning based on benchmarking insights. This document describes basic methodologies and guidelines to fully automate VNF benchmarking procedures, without limiting the automated process to a specific benchmark or infrastructure. After presenting initial considerations, the document first describes a generic architectural framework to setup automated benchmarking experiments. Second, the automation methodology is discussed, with a particular focus on experiment and procedure description approaches to support reproducibility of the automated benchmarks, a key challenge in VNF benchmarking. Finally, two independent, open-source reference implementations are presented. The document addresses state-of-the- art work on VNF benchmarking from scientific publications and current developments in other standardization bodies (e.g., [ETS14c], [ETS19f] and [RFC8204]) wherever possible. Rosa, et al. Expires May 7, 2020 [Page 3] Internet-Draft VNFBench November 2019 2. Terminology Common benchmarking terminology contained in this document is derived from [RFC1242]. The reader is assumed to be familiar with the terminology as defined in the European Telecommunications Standards Institute (ETSI) NFV document [ETS14b]. Some of these terms, and others commonly used in this document, are defined below. NFV: Network Function Virtualization - the principle of separating network functions from the hardware they run on by using virtual hardware abstraction. VNF: Virtualized Network Function - a software-based network function. A VNF can be either represented by a single entity or be composed by a set of smaller, interconnected software components, called VNF components (VNFCs) [ETS14d]. Those VNFs are also called composed VNFs. VNFC: Virtualized Network Function Component - a software component that implements (parts of) the VNF functionality. A VNF can consist of a single VNFC or multiple, interconnected VNFCs [ETS14d] VNFD: Virtualised Network Function Descriptor - configuration template that describes a VNF in terms of its deployment and operational behaviour, and is used in the process of VNF on- boarding and managing the life cycle of a VNF instance. NS: Network Service - a collection of interconnected VNFs forming a end-to-end service. The interconnection is often done using chaining of functions. 3. Scope This document assumes VNFs as black boxes when defining their benchmarking methodologies. White box approaches are assumed and analysed as a particular case under the proper considerations of internal VNF instrumentation, later discussed in this document. This document outlines a methodology for VNF benchmarking, specifically addressing its automation. 4. Considerations VNF benchmarking considerations are defined in [RFC8172]. Additionally, VNF pre-deployment testing considerations are well explored in [ETS14c]. Further, ETSI provides test specifications for networking benchmarks and measurement methods for NFV infrastructure Rosa, et al. Expires May 7, 2020 [Page 4] Internet-Draft VNFBench November 2019 in [ETS19f] which complements the presented work on VNF benchmarking methodologies. 4.1. VNF Testing Methods Following ETSI's model in [ETS14c], we distinguish three methods for VNF evaluation: Benchmarking: Where parameters (e.g., CPU, memory, storage) are provided and the corresponding performance metrics (e.g., latency, throughput) are obtained. Note, such evaluations might create multiple reports, for example, with minimal latency or maximum throughput results. Verification: Both parameters and performance metrics are provided and a stimulus verifies if the given association is correct or not. Dimensioning: Performance metrics are provided and the corresponding parameters obtained. Note, multiple deployments may be required, or if possible, underlying allocated resources need to be dynamically altered. Note: Verification and Dimensioning can be reduced to Benchmarking. Therefore, we focus on Benchmarking in the rest of the document. 4.2. Benchmarking Procedures A (automated) benchmarking procedure can be divided into three sub- procedures: Trial: Is a single process or iteration to obtain VNF performance metrics from benchmarking measurements. A Test should always run multiple Trials to get statistical confidence about the obtained measurements. Test: Defines unique structural and functional parameters (e.g., configurations, resource assignment) for benchmarked components to perform one or multiple Trials. Each Test must be executed following a particular benchmarking scenario composed by a Method. Proper measures must be taken to ensure statistical validity (e.g., independence across Trials of generated load patterns). Method: Consists of one or more Tests to benchmark a VNF. A Method can explicitly list ranges of parameter values for the configuration of a benchmarking scenario and its components. Each value of such a range is to be realized in a Test. I.e., Methods can define parameter studies. Rosa, et al. Expires May 7, 2020 [Page 5] Internet-Draft VNFBench November 2019 In general, automated VNF benchmarking Tests must capture relevant causes of performance variability. To dissect a VNF benchmarking Test, in the sections that follow different benchmarking phases are categorized defining generic operations that may be automated. When automating a VNF benchmarking methodology, all the influencing aspects on the performance of a VNF must be carefully analyzed and comprehensively reported, in each phase of the overall benchmarking process. 4.2.1. Phase I: Deployment The placement (i.e., assignment and allocation of resources) and the interconnection, physical and/or virtual, of network function(s) and benchmarking components can be realized by orchestration platforms (e.g., OpenStack, Kubernetes, Open Source MANO). In automated manners, the realization of a benchmarking testbed/scenario through those means usually rely on network service templates (e.g., TOSCA, Heat, YANG). Such descriptors have to capture all relevant details of the execution environment to allow the benchmarking framework to correctly instantiate the SUT as well as helper functions required for a Test. 4.2.2. Phase II: Configuration The configuration of benchmarking components and VNFs (e.g., populate routing table, load PCAP source files in source of traffic stimulus) to execute the Test settings can be realized by programming interfaces in an automated way. In the scope of NFV, there might exist management interfaces to control a VNF during a benchmarking Test. Likewise, infrastructure or orchestration components can establish the proper configuration of an execution environment to realize all the capabilities enabling the description of the benchmarking Test. Each configuration registry, its deployment timestamp and target, must all be contained in the VNF benchmarking report. 4.2.3. Phase III: Execution In the execution of a benchmarking Test, the VNF configuration can be programmed to be changed by itself or by a VNF management platform. It means that during a Trial execution, particular behaviors of a VNF can be automatically triggered, e.g., auto-scaling of its internal components. Those must be captured in the detailed procedures of the VNF execution and its performance report. I.e., the execution of a Trial can determine arrangements of internal states inside a VNF, which can interfere in observed benchmarking metrics. For instance, in a particular benchmarking case where the monitoring measurements of the VNF and/or execution environment are available for extraction, Rosa, et al. Expires May 7, 2020 [Page 6] Internet-Draft VNFBench November 2019 Tests should be run to verify if the monitoring of the VNF and/or execution environment can impact the VNF performance metrics. 4.2.4. Phase IV: Report The report of a VNF benchmarking Method might contain generic metrics (e.g., CPU and memory consumption) and VNF-specific traffic processing metrics (e.g., transactions or throughput), which can be stored and processed in generic or specific ways (e.g., by statistics or machine learning algorithms). More details about possible metrics and the corresponding capturing methods can be found in [ETS19g]. If automated procedures are applied over the generation of a benchmarking report, those must be detailed in the report itself, jointly with their input raw measurements and output processed data. I.e., any algorithm used in the generation of processed metrics must be disclosed in the report. 5. Generic VNF Benchmarking Architectural Framework A generic VNF benchmarking architectural framework, shown in Figure 1, establishes the disposal of essential components and control interfaces, explained below, that enable the automation of VNF benchmarking methodologies. Rosa, et al. Expires May 7, 2020 [Page 7] Internet-Draft VNFBench November 2019 +---------------+ | Manager | Control | (Coordinator) | Interfaces +---+-------+---+ +---------+-----------+ +-------------------+ | | | | | +--------------------+ | | | | System Under Test | | | | | | | | | | +-----------------+| | | +--+--------+ | | VNF || | | | | | | || | | | | | | +----+ +----+ || | | | <===> |VNFC|...|VNFC| || | | | | | | +----+ +----+ || | | | Monitor(s)| | +----.---------.--+| | +-----+---+ |{listeners}| | : : | +-----+----+ | Agent(s)| | | | +----^---------V--+| | Agent(s)| |(Sender) | | <===> Execution || |(Receiver)| | | | | | | Environment || | | |{Probers}| +-----------+ | | || |{Probers} | +-----.---+ | +----.---------.--+| +-----.----+ : +------^---------V---+ : V : : : :.................>.........: :........>..: Stimulus Traffic Flow Figure 1: Generic VNF Benchmarking Setup Virtualized Network Function (VNF) -- consists of one or more software components, so called VNF components (VNFC), adequate for performing a network function according to allocated virtual resources and satisfied requirements in an execution environment. A VNF can demand particular configurations for benchmarking specifications, demonstrating variable performance based on available virtual resources/parameters and configured enhancements targeting specific technologies (e.g., NUMA, SR-IOV, CPU-Pinning). Execution Environment -- defines a virtualized and controlled composition of capabilities necessary for the execution of a VNF. An execution environment stands as a general purpose level of virtualization with abstracted resources available for one or more VNFs. It can also define specific technology habilitation, incurring in viable settings for enhancing the performance of VNFs. Rosa, et al. Expires May 7, 2020 [Page 8] Internet-Draft VNFBench November 2019 Agent (Active Probing) -- executes active stimulus using probers, i.e., benchmarking tools, to benchmark and collect network and system performance metrics. A single Agent can perform localized benchmarks in execution environments (e.g., stress tests on CPU, memory, disk I/O) or can generate stimulus traffic and the other end be the VNF itself where, for example, one-way latency is evaluated. The interaction among distributed Agents enable the generation and collection of end-to-end metrics (e.g., frame loss rate, latency) measured from stimulus traffic flowing through a VNF. An Agent can be defined by a physical or virtual network function. Prober -- defines an abstraction layer for a software or hardware tool able to generate stimulus traffic to a VNF or perform stress tests on execution environments. Probers might be specific or generic to an execution environment or a VNF. For an Agent, a Prober must provide programmable interfaces for its life cycle management, e.g., configuration of operational parameters, execution of stilumus, parsing of extracted metrics, and debugging options. Specific Probers might be developed to abstract and to realize the description of particular VNF benchmarking methodologies. Monitor (Passive Probing) -- when possible is instantiated inside the System Under Test, VNF and/or infrastructure (e.g., as a plug- in process in a virtualized execution environment), to perform the passive monitoring, using Listeners, for the extraction of metrics while Agents` stimuli takes place. Monitors observe particular properties according to the execution environment and VNFs capabilities, i.e., exposed passive monitoring interfaces. Multiple Listeners can be executed at once in synchrony with a Prober' stimulus on a SUT. A Monitor can be defined as a virtualized network function. Listener -- defines one or more software interfaces for the extraction of metrics monitored in a target VNF and/or execution environment. A Listener must provide programmable interfaces for its life cycle management workflows, e.g., configuration of operational parameters, execution of passive monitoring captures, parsing of extracted metrics, and debugging options (also see [ETS19g]). Varied methods of passive performance monitoring might be implemented as a Listener, depending on the interfaces exposed by the VNF and/or execution environment. Rosa, et al. Expires May 7, 2020 [Page 9] Internet-Draft VNFBench November 2019 Manager -- performs (i) the discovery of available Agents/Monitors and their respective features (i.e., available Probers/Listeners and execution environment capabilities), (ii) the coordination and synchronization of activities of Agents and Monitors to perform a benchmarking Test, (iii) the collection, processing and aggregation of all VNF benchmarking measurements that correlates the VNF stimuli and the, possible, SUT monitored metrics. A Manager executes the main configuration, operation, and management actions to deliver the VNF benchmarking report. Hence, it detains interfaces open for users interact with the whole benchmarking framework, realizing, for instance, the retrival of the framework characteristics (e.g., available benchmarking components and their probers/listeners), the coordination of benchmarking tasks, the processing and the retrival of benchmarking metrics, among other operational and management functionalities. A Manager can be defined as a physical or virtualized network function. 5.1. Deployment Scenarios A deployment scenario realizes the actual instantiation of physical and/or virtual components of a Generic VNF Benchmarking Architectural Framework needed to habilitate the execution of an automated VNF benchmarking methodology. The following considerations hold for a deployment scenario: o Not all components are mandatory for a Test, possible to be disposed in varied settings. o Components can be composed in a single entity and be defined as black or white boxes. For instance, Manager and Agents could jointly define one hardware/software entity to perform a VNF benchmarking Test and present measurement results. o Monitor can be defined by multiple instances of software components, each addressing a VNF or execution environment. o Agents can be disposed in varied topology setups, included the possibility of multiple input and output ports of a VNF being directly connected each in one Agent. o All benchmarking components defined in a deployment scenario must perform the synchronization of clocks. 6. Methodology Portability is an intrinsic characteristic of VNFs and allows them to be deployed in multiple environments. This enables various benchmarking setups in varied deployment scenarios. A VNF Rosa, et al. Expires May 7, 2020 [Page 10] Internet-Draft VNFBench November 2019 benchmarking methodology must be described in a clear and objective manner following four basic principles: o Comparability: Output of Tests shall be simple to understand and process, in a human-readable format, coherent, and easily reusable (e.g., inputs for analytic applications). o Repeatability: A Test setup shall be comprehensively defined through a flexible design model that can be interpreted and executed by the testing platform repeatedly but supporting customization. o Configurability: Open interfaces and extensible messaging models shall be available between benchmarking components for flexible composition of Test descriptors and platform configurations. o Interoperability: Tests shall be ported to different environments using lightweight components. ______________ +--------+ | | | | | Automated | | VNF-BD |--(defines)-->| Benchmarking | | | | Methodology | +--------+ |______________| V | (generates) | v +-------------------------+ | VNF-BR | | +--------+ +--------+ | | | | | | | | | VNF-BD | | VNF-PP | | | | {copy} | | | | | +--------+ +--------+ | +-------------------------+ Figure 2: VNF benchmarking process inputs and outputs As shown in Figure 2, the outcome of an automated VNF benchmarking methodology, must be captured in a VNF Benchmarking Report (VNF-BR), consisting of two parts: Rosa, et al. Expires May 7, 2020 [Page 11] Internet-Draft VNFBench November 2019 VNF Benchmarking Descriptor (VNF-BD) -- contains all required definitions and requirements to deploy, configure, execute, and reproduce VNF benchmarking tests. VNF-BDs are defined by the developer of a benchmarking methodology and serve as input to the benchmarking process, before being included in the generated VNF- BR. VNF Performance Profile (VNF-PP) -- contains all measured metrics resulting from the execution of a benchmarking. Additionally, it might also contain additional recordings of configuration parameters used during the execution of the benchmarking scenario to facilitate comparability of VNF-BRs. A VNF-BR correlates structural and functional parameters of VNF-BD with extracted VNF benchmarking metrics of the obtained VNF-PP. The content of each part of a VNF-BR is described in the following sections. 6.1. VNF Benchmarking Descriptor (VNF-BD) VNF Benchmarking Descriptor (VNF-BD) -- an artifact that specifies a Method of how to measure a VNF Performance Profile. The specification includes structural and functional instructions and variable parameters at different abstraction levels (e.g., topology of the deployment scenario, benchmarking target metrics, parameters of benchmarking components). A VNF-BD may be specific to a VNF or applicable to several VNF types. It can be used to elaborate a VNF benchmark deployment scenario aiming at the extraction of particular VNF performance metrics. An initial YANG model for VNF-BDs is available at [yang-vnf-bd]. The following items define the VNF-BD contents. 6.1.1. Descriptor Headers The definition of parameters concerning the descriptor file, e.g., its version, identidier, name, author and description. 6.1.2. Target Information General information addressing the target VNF(s) the VNF-BD is applicable, with references to any specific characteristics, i.e., the VNF type, model, version/release, author, vendor, architectural components, among any other particular features. Rosa, et al. Expires May 7, 2020 [Page 12] Internet-Draft VNFBench November 2019 6.1.3. Experiments The specification of the number of executions for Trials, Tests and Method. The execution of a VNF-BD corresponds to the execution of the specified Method. 6.1.4. Environment The details referring to the name, description, and information associated with the interfaces needed for the management and orchestration (MANO), if necessary, of the specified VNF-BD scenario. I.e., it refers to a specific interface that receives the VNF-BD scenario information and converts it to the template needed for an orchestration platform. In this case, the means to the manager component interface such orchestration platform must be provided, as well as its outcome orchestration status information (e.g., management interfaces of deployed components). Further details about the concrete execution environment is, however, provided by the VNF-PP to keep the VNF-BD technology agnostic (see Section 6.2.2.1). 6.1.5. Scenario This section contains all information needed to describe the deployment of all involved functional components mandatory for the execution of the benchmarking Tests addressed by the VNF-BD. 6.1.5.1. Nodes Information about each component in a benchmarking setup (see Section 5). It contains the identification, name, image, role (i.e., agent, monitor, SUT), connection-points and resource requirements (i.e., allocation of CPU, memory, disk). A SUT is always considered to be the full set of VNFCs comprised by the VNF. Thus all VNFCs of a VNF are always benchmarked together because all of them are needed to implement the full set of the VNF's functionalities. This is aligned with the results presented in [Peu-b] that show that VNF compositions should be benchmarked as a whole. Benchmarking single VNFCs in isolation could be considered as a particular case, i.e., whitebox scenario which is out of scope of this draft. The lifecycle specification of a node lists all the workflows that must be realized on it during a Test. For instance, main workflows include: create, start, stop, delete. Particular workflows can be specified containing the required parameters and implementation. Rosa, et al. Expires May 7, 2020 [Page 13] Internet-Draft VNFBench November 2019 Those details must reflect the actions taken on or by a node that might affect the VNF performance profile. 6.1.5.2. Links Links contain information about the data plane links interconnecting the components of a benchmarking setup. Links refer to two or more connection-points of a node. A link might refer to be part of a network. Depending on the link type, the network might be implemented as a layer 2 mesh, or as directional-oriented traffic forwarding flow entries. Links also detain resource requirements, specifying the minimum bandwidth, latency, and frame loss rate for the execution of benchmarking Tests. 6.1.5.3. Policies Involves the definition of execution environment policies to run the Tests. Policies might specify the (anti-)affinity placement rules for each component in the topology, min/max allocation of resources, and specific enabling technologies (e.g., DPDK, SR-IOV, PCIE) needed for each component. 6.1.6. Proceedings This information is utilized by the Manager component to execute the benchmarking Tests. It consists of agent(s) and monitor(s) settings, detailing their prober(s)/listener(s) specification and running parameters. Agents: Defines a list containing the Agent(s) needed for the VNF- BD tests. The information of each Agent contains its host environment, making reference to a node specified in the VNF-BD scenario (Section 6.1.5). In addition, each Agent also is defined with the the configured toolset of the Prober(s) and their running parameters fulfilled (e.g., stimulus workload, traffic format/ trace, configurations to enable hardware capabilities, if existent). In each Prober, it is also detailed the output metrics to be extracted from it when running the benchmarking Tests. Monitors: Defines a list containing the Monitor(s) needed for the VNF-BD tests. The information of each Monitor contains its host environment, making reference to a node specified in the VNF-BD scenario (Section 6.1.5) and detailing the placement settings of it (e.g., internal or external with the target VNF and/or execution environment). In addition, each Monitor also is defined with the the configured toolset of the Listener(s) and their running parameters fulfilled (e.g., tap interfaces, period of monitoring, interval among the measurements). In each Listener, Rosa, et al. Expires May 7, 2020 [Page 14] Internet-Draft VNFBench November 2019 it is also detailed the output metrics to be extracted from it when running the benchmarking Tests. 6.2. VNF Performance Profile (VNF-PP) VNF Performance Profile (VNF-PP) -- an output artifact of a VNF-BD execution performed by a Manager component. It contains all the metrics from monitor(s) and/or agent(s) components after realizing and executing the prober(s) and/or the listener(s) proceedings specified in its corresponding VNF-BD. Metrics are grouped according to the execution of the trial(s) and test(s) defined by a VNF-BD. A VNF-PP is specific to a unique VNF specification (e.g., image, version, format). It can be used to derive and extract statistics of particular VNF performance metrics recorded in the VNF-PP. More specifically, each VNF-PP is defined by a structure that allows benchmarking results to be presented in a logical and unified format. A VNF-PP report is the result of an unique Test, while its content, the so called snapshot(s), correspond to a single Trial each. A snapshot is defined by a single Agent or Monitor. Each snapshot contains evaluation(s), each one being the output of a single prober/ listener. And each evaluation contains one or more metrics. In summary, a VNF-PP aggregates results from reports (i.e., Test(s)); a report aggregates Agent(s) and Monitor(s) results (i.e., Trial(s)); a snapshot aggregates prober(s) or listener(s) results; and an evaluation aggregates metrics. An initial YANG model for VNF-PPs is available at [yang-vnf-pp]. The following items define the VNF-PP contents. 6.2.1. Headers The definition of header parameters concerning the VNF-PP, e.g., its version, identifier, name, author, description, and the timestamp of when it was created. 6.2.2. Reports The list of reports stored in a single VNF-PP. Each report is the result of a Test execution, containing the snapshot(s) provided by all the Agent(s) and Monitor(s) specified to execute that Test. Besides this, each report contains the details of the execution environment in which a Test was conducted. Rosa, et al. Expires May 7, 2020 [Page 15] Internet-Draft VNFBench November 2019 6.2.2.1. Execution Environment Specific information is required to describe the environment on which a benchmarking Test was executed. If not already defined by the VNF-BD scenario (Section 6.1.5), for each component in the deployment scenario of the VNF benchmarking setup, the following topics must be detailed: Hardware: Contains any information associated with the underlying hardware capabilities offered and used by the component during the benchmarking Test. Examples of such specification include allocated CPU architecture, connected NIC specification, allocated memory DIMM, etc. In addition, any information concerning details of resource isolation must also be described in this part of the report. Software: Contains any information associated with the software apparatus offered and used during the benchmarking Test. Examples include details of operating system, kernel, hypervisor, container technologies, orchestration system, network element managers (EM), etc. and their specific versions. This section should also provide information about the configurations used by the involved software components. Optionally, each report might contain references to an orchestration description document (e.g., TOSCA, YANG, HEAT) to clarify the technological aspects of the execution environment and any specific parameters that it might define. 6.2.2.2. Snapshots The list of snapshots extracted for a single report. Each snapshot is the result of a Trial execution, containing the evaluations provided by a single Agent or Monitor. It must contain the origin of the evaluations, i.e., the name of the source component, its role (i.e., Agent or Monitor), and the name of the host were it was placed. 6.2.2.2.1. Evaluations The list of evaluations extracted for a single snapshot. Each evaluation must contain the source of the metrics in it. Such source must be specified by a unique identifier, name, type (i.e., prober or listener), version of the tool it interfaces, and the raw full command/call used by such tool to extract the evaluation metrics. In particular, an evaluation must contain the exact timestamp values of Rosa, et al. Expires May 7, 2020 [Page 16] Internet-Draft VNFBench November 2019 the moments the prober/listener proceeded with the start and stop operations that incurred in the successful extraction of its metrics. 6.2.2.2.1.1. Metrics The list of metrics extracted from a single evaluation. Metrics are output of a prober or listener execution. Each one of them must be specified with a clear definition of name, value, unit of value(s), and value(s). The value(s) of a metric can be specified as a single scalar, a vector of scalars, and a vector of tuples (e.g., timestamp and value). Regarding the definition of the VNF-PP metrics, their specificity depends on the VNF benchmarking methodology. I.e., in general each methodology defines its own metrics, which might depend on the measurement interfaces available for Agents and Monitors (i.e., probers/listeners), and how they are implemented. 6.3. Procedures The methodology for VNF Benchmarking Automation encompasses the process defined in Figure 2, i.e., the procedures that translate a VNF-BD into a VNF-PP composing a VNF-BR by the means of the components specified in Figure 1. This section details the sequence of events that realize such process. 6.3.1. Pre-Execution Before the execution of benchmarking Tests, some procedures must be performed: 1. A VNF-BD must be defined to be later instantiated into a deployment scenario and have executed its Tests. Such a description must contain all the structural and functional settings defined in Section 6.1. At the end of this step, the complete Method of benchmarking the target VNF is defined. 2. The VNF target image must be prepared to be benchmarked, having all its capabilities fully described. In addition all the probers and listeners defined in the VNF-BD must be implemented to realize the benchmark Tests. At the end of this step, the complete set of components of the benchmarking VNF-BD deployment scenario is defined. 3. The environment needed for a VNF-BD must be defined to realize its deployment scenario, in an automated or manual method. This step might count on the instantiation of orchestration platforms and the composition of specific topology descriptors needed by Rosa, et al. Expires May 7, 2020 [Page 17] Internet-Draft VNFBench November 2019 those platforms to realize the VNF-BD deployment scenario. At the end of this step, the whole environment needed to instantiate the components of a VNF-BD deployment scenario is defined. 6.3.2. Automated Execution Satisfied all the pre-execution procedures, the automated execution of the Tests specified by the VNF-BD follow. The execution time of this automated execution can either be bound by a fixed time limit specified in the VNF-BD or coupled to an exit condition, e.g., convergence of measured values. 1. Upon the parsing of a VNF-BD, the Manager must detect the VNF-BD variable input field (e.g., list of resources values) and compose the all the permutations of parameters. For each permutation, the Manager must elaborate a VNF-BD instance. Each VNF-BD instance defines a Test, and it will have its deployment scenario instantiated accordingly. I.e., the Manager must interface an orchestration platform to realize the automated instantiation of each deployment scenario defined by a VNF-BD instance (i.e., a Test). The Manager must iterate through all the VNF-BD instances to finish the whole set of Tests defined by all the permutations of the VNF-BD input fields. 2. Given a VNF-BD instance, the Manager, using the VNF-BD environment settings, must interface an orchestrator platform requesting the deployment of a scenario to realize a Test. To perform such step, The Manager might interface a management function responsible to properly parse the deployment scenario specifications into the orchestration platform interface format. 3. An orchestration platform must deploy the scenario requested by the Manager, assuring the requirements and policies specified on it. In addition, the orchestration platform must acknowledge the deployed scenario to the Manager specifying the management interfaces of the VNF and the other components in the running instances for the benchmarking Test. 4. Agent(s) and Monitor(s) (if existing) and the target VNF must be configured by the Manager according to the components settings defined in the VNF-BD instance. After this step, the whole VNF-BD Test will be ready to be executed. 5. Manager must interface Agent(s) and Monitor(s) (if existing) via management interfaces to require the execution of the benchmarking probers (and listeners, if existing), and retrieve expected metrics captured during or at the end of each Trial. I.e., for a single Test, according to the VNF-BD execution settings, the Rosa, et al. Expires May 7, 2020 [Page 18] Internet-Draft VNFBench November 2019 Manager must guarantee that one or more Trials realize the required measurements to characterize the performance behavior of a VNF. 6. Output measurements from each obtained benchmarking Test, and its possible Trials, must be collected by the Manager, until all the Tests are finished. In the execution settings of the parsed VNF-BD, the Manager must check the Method repetition, and perform the whole set of VNF-BD Tests (i.e., since step 1), until all methods specified are finished. 7. Collected all measurements from the VNF-BD (Trials, Tests and Methods) execution, the intended metrics, as described in the VNF- BD, must be parsed, extracted and combined to create the corresponding VNF-PP. The combination of used VNF-BD and generated VNF-PP compose the resulting VNF benchmark report (VNF- BR). 6.3.3. Post-Execution After the process of a VNF-BD execution, some automated procedures, not necessarily mandatory, can be performed to improve the quality and utility of a VNF-BR: 1. Archive the raw output contained in the VNF-PP, perform statistical analysis on it, or train machine learning models with the collected data. 2. Evaluate the analysis output to the detection of any possible cause-effect factors and/or intrinsic correlations in the VNF-BR (e.g., outliers). 3. Review the input VNF-BD and modify it to realize the proper extraction of the target VNF metrics based on the performed research. Iterate in the previous steps until composing a stable and representative VNF-BR. 6.4. Particular Cases As described in [RFC8172], VNF benchmarking might require to change and adapt existing benchmarking methodologies. More specifically, the following cases need to be considered. 6.4.1. Capacity VNFs are usually deployed inside containers or VMs to build an abstraction layer between physical resources and the resources available to the VNF. According to [RFC8172], it may be more Rosa, et al. Expires May 7, 2020 [Page 19] Internet-Draft VNFBench November 2019 representative to design experiments in a way that the VMs hosting the VNFs are operating at maximum of 50% utilization and split the workload among several VMs, to mitigateside effects of overloaded VMs. Those cases are supported by the presented automation methodologies through VNF-BDs that enable direct control over the resource assignments and topology layouts used for a benchmarking experiment. 6.4.2. Redundancy As a VNF might be composed of multiple components (VNFCs), there exist different schemas of redundancy where particular VNFCs would be in active or standby mode. For such cases, particular monitoring endpoints should be specified in VNF-BD so listeners can capture the relevant aspects of benchmarking when VNFCs would be in active/ standby modes. In this particular case, capturing the relevant aspects of internal functionalities of a VNF and its internal components provides important measurements to characterize the dynamics of a VNF, those must be reflected in its VNF-PP. 6.4.3. Isolation One of the main challenges of NFV is to create isolation between VNFs. Benchmarking the quality of this isolation behavior can be achieved by Agents that take the role of a noisy neighbor, generating a particular workload in synchrony with a benchmarking procedure over a VNF. Adjustments of the Agent's noisy workload, frequency, virtualization level, among others, must be detailed in the VNF- BD. 6.4.4. Failure Handling Hardware and software components will fail or have errors and thus trigger healing actions of the benchmarked VNFs (self-healing). Benchmarking procedures must also capture the dynamics of this VNF behavior, e.g., if a container or VM restarts because the VNF software crashed. This results in offline periods that must be captured in the benchmarking reports, introducing additional metrics, e.g., max. time-to-heal. The presented concept, with a flexible VNF- PP structure to record arbitrary metrics, enables automation of this case. 6.4.5. Elasticity and Flexibility Having software based network functions and the possibility of a VNF to be composed by multiple components (VNFCs), internal events of the VNF might trigger changes in VNF behavior, e.g.,activating functionalities associated with elasticity such as automated scaling. These state changes and triggers (e.g. the VNF's scaling state) must Rosa, et al. Expires May 7, 2020 [Page 20] Internet-Draft VNFBench November 2019 be captured in the benchmarking results (VNF-PP) to provide a detailed characterization of the VNF's performance behavior in different states. 6.4.6. Handling Configurations As described in [RFC8172], does the sheer number of test conditions and configuration combinations create a challenge for VNF benchmarking. As suggested, machine readable output formats, as they are presented in this document, will allow automated benchmarking procedures to optimize the tested configurations. Approaches for this are, e.g., machine learning-based configuration space sub- sampling methods, such as [Peu-c]. 6.4.7. White Box VNF A benchmarking setup must be able to define scenarios with and without monitoring components inside the VNFs and/or the hosting container or VM. If no monitoring solution is available from within the VNFs, the benchmark is following the black-box concept. If, in contrast, those additional sources of information from within the VNF are available, VNF-PPs must be able to handle these additional VNF performance metrics. 7. Open Source Reference Implementations Currently, technical motivating factors in favor of the automation of VNF benchmarking methodologies comprise: (i) the facility to run high-fidelity and commodity traffic generators by software; (ii) the existent means to construct synthetic traffic workloads purely by software (e.g., handcrafted pcap files); (iii) the increasing availability of datasets containing actual sources of production traffic able to be reproduced in benchmarking tests; (iv) the existence of a myriad of automating tools and open interfaces to programmatically manage VNFs; (v) the varied set of orchestration platforms enabling the allocation of resources and instantition of VNFs through automated machineries based on well-defined templates; (vi) the ability to utilize a large tool set of software components to compose pipelines that mathematically analyze benchmarking metrics in automated ways. In simple terms, network softwarization enables automation. There are two open source reference implementations that are build to automate benchmarking of Virtualized Network Functions (VNFs). Rosa, et al. Expires May 7, 2020 [Page 21] Internet-Draft VNFBench November 2019 7.1. Gym The software, named Gym, is a framework for automated benchmarking of Virtualized Network Functions (VNFs). It was coded following the initial ideas presented in a 2015 scientific paper entitled "VBaaS: VNF Benchmark-as-a-Service" [Rosa-a]. Later, the evolved design and prototyping ideas were presented at IETF/IRTF meetings seeking impact into NFVRG and BMWG. Gym was built to receive high-level test descriptors and execute them to extract VNFs profiles, containing measurements of performance metrics - especially to associate resources allocation (e.g., vCPU) with packet processing metrics (e.g., throughput) of VNFs. From the original research ideas [Rosa-a], such output profiles might be used by orchestrator functions to perform VNF lifecycle tasks (e.g., deployment, maintenance, tear-down). In [Rosa-b] Gym was utilized to benchmark a decomposed IP Multimedia Subsystem VNF. And in [Rosa-c], a virtual switch (Open vSwitch - OVS) was the target VNF of Gym for the analysis of VNF benchmarking automation. Such articles validated Gym as a prominent open source reference implementation for VNF benchmarking tests. Such articles set important contributions as discussion of the lessons learned and the overall NFV performance testing landscape, included automation. Gym stands as one open source reference implementation that realizes the VNF benchmarking methodologies presented in this document. Gym is released as open source tool under Apache 2.0 license [gym]. 7.2. tng-bench Another software that focuses on implementing a framework to benchmark VNFs is the "5GTANGO VNF/NS Benchmarking Framework" also called "tng-bench" (previously "son-profile") and was developed as part of the two European Union H2020 projects SONATA NFV and 5GTANGO [tango]. Its initial ideas were presented in [Peu-a] and the system design of the end-to-end prototype was presented in [Peu-b]. Tng-bench aims to be a framework for the end-to-end automation of VNF benchmarking processes. Its goal is to automate the benchmarking process in such a way that VNF-PPs can be generated without further human interaction. This enables the integration of VNF benchmarking into continuous integration and continuous delivery (CI/CD) pipelines so that new VNF-PPs are generated on-the-fly for every new software version of a VNF. Those automatically generated VNF-PPs can then be bundled with the VNFs and serve as inputs for orchestration systems, fitting to the original research ideas presented in [Rosa-a] and [Peu-a]. Rosa, et al. Expires May 7, 2020 [Page 22] Internet-Draft VNFBench November 2019 Following the same high-level VNF testing purposes as Gym, namely: Comparability, repeatability, configurability, and interoperability, tng- bench specifically aims to explore description approaches for VNF benchmarking experiments. In [Peu-b] a prototype specification for VNF-BDs is presented which not only allows to specify generic, abstract VNF benchmarking experiments, it also allows to describe sets of parameter configurations to be tested during the benchmarking process, allowing the system to automatically execute complex parameter studies on the SUT, e.g., testing a VNF's performance under different CPU, memory, or software configurations. Tng-bench was used to perform a set of initial benchmarking experiments using different VNFs, like a Squid proxy, an Nginx load balancer, and a Socat TCP relay in [Peu-b]. Those VNFs have not only been benchmarked in isolation, but also in combined setups in which up to three VNFs were chained one after each other. These experiments were used to test tng-bench for scenarios in which composed VNFs, consisting of multiple VNF components (VNFCs), have to be benchmarked. The presented results highlight the need to benchmark composed VNFs in end-to-end scenarios rather than only benchmark each individual component in isolation, to produce meaningful VNF- PPs for the complete VNF. Tng-bench is actively developed and released as open source tool under Apache 2.0 license [tng-bench]. A larger set of example benchmarking results of various VNFs is available in [Peu-d]. 8. Security Considerations Benchmarking tests described in this document are limited to the performance characterization of VNFs in a lab environment with isolated network. The benchmarking network topology will be an independent test setup and MUST NOT be connected to devices that may forward the test traffic into a production network, or misroute traffic to the test management network. Special capabilities SHOULD NOT exist in the VNF benchmarking deployment scenario specifically for benchmarking purposes. Any implications for network security arising from the VNF benchmarking deployment scenario SHOULD be identical in the lab and in production networks. Rosa, et al. Expires May 7, 2020 [Page 23] Internet-Draft VNFBench November 2019 9. IANA Considerations This document does not require any IANA actions. 10. Acknowledgement The authors would like to thank the support of Ericsson Research, Brazil. Parts of this work have received funding from the European Union's Horizon 2020 research and innovation programme under grant agreement No. H2020-ICT-2016-2 761493 (5GTANGO: https://5gtango.eu). 11. References 11.1. Normative References [ETS14a] ETSI, "Architectural Framework - ETSI GS NFV 002 V1.2.1", Dec 2014, . [ETS14b] ETSI, "Terminology for Main Concepts in NFV - ETSI GS NFV 003 V1.2.1", Dec 2014, . [ETS14c] ETSI, "NFV Pre-deployment Testing - ETSI GS NFV TST001 V1.1.1", April 2016, . [ETS14d] ETSI, "Network Functions Virtualisation (NFV); Virtual Network Functions Architecture - ETSI GS NFV SWA001 V1.1.1", December 2014, . [ETS14e] ETSI, "Report on CI/CD and Devops - ETSI GS NFV TST006 V0.0.9", April 2018, . [ETS19f] ETSI, "Specification of Networking Benchmarks and Measurement Methods for NFVI - ETSI GS NFV-TST 009 V3.2.1", June 2019, . Rosa, et al. Expires May 7, 2020 [Page 24] Internet-Draft VNFBench November 2019 [ETS19g] ETSI, "NFVI Compute and Network Metrics Specification - ETSI GS NFV-TST 008 V3.2.1", March 2019, . [RFC1242] S. Bradner, "Benchmarking Terminology for Network Interconnection Devices", July 1991, . [RFC8172] A. Morton, "Considerations for Benchmarking Virtual Network Functions and Their Infrastructure", July 2017, . [RFC8204] M. Tahhan, B. O'Mahony, A. Morton, "Benchmarking Virtual Switches in the Open Platform for NFV (OPNFV)", September 2017, . 11.2. Informative References [gym] "Gym Framework Source Code", . [Peu-a] M. Peuster, H. Karl, "Understand Your Chains: Towards Performance Profile-based Network Service Management", Fifth European Workshop on Software Defined Networks (EWSDN) , 2016, . [Peu-b] M. Peuster, H. Karl, "Profile Your Chains, Not Functions: Automated Network Service Profiling in DevOps Environments", IEEE Conference on Network Function Virtualization and Software Defined Networks (NFV-SDN) , 2017, . [Peu-c] M. Peuster, H. Karl, "Understand your chains and keep your deadlines: Introducing time-constrained profiling for NFV", IEEE/IFIP 14th International Conference on Network and Service Management (CNSM) , 2018, . [Peu-d] M. Peuster and S. Schneider and H. Karl, "The Softwarised Network Data Zoo", IEEE/IFIP 15th International Conference on Network and Service Management (CNSM) , 2019, . Rosa, et al. Expires May 7, 2020 [Page 25] Internet-Draft VNFBench November 2019 [Rosa-a] R. V. Rosa, C. E. Rothenberg, R. Szabo, "VBaaS: VNF Benchmark-as-a-Service", Fourth European Workshop on Software Defined Networks , Sept 2015, . [Rosa-b] R. Rosa, C. Bertoldo, C. Rothenberg, "Take your VNF to the Gym: A Testing Framework for Automated NFV Performance Benchmarking", IEEE Communications Magazine Testing Series , Sept 2017, . [Rosa-c] R. V. Rosa, C. E. Rothenberg, "Taking Open vSwitch to the Gym: An Automated Benchmarking Approach", IV Workshop pre- IETF/IRTF, CSBC Brazil, July 2017, . [tango] "5GTANGO: Development and validation platform for global industry-specific network services and apps", . [tng-bench] "5GTANGO VNF/NS Benchmarking Framework", . [yang-vnf-bd] "VNF-BD YANG model", . [yang-vnf-pp] "VNF-PP YANG model", . Authors' Addresses Raphael Vicente Rosa (editor) University of Campinas Av. Albert Einstein, 400 Campinas, Sao Paulo 13083-852 Brazil Email: rvrosa@dca.fee.unicamp.br URI: https://intrig.dca.fee.unicamp.br/raphaelvrosa/ Rosa, et al. Expires May 7, 2020 [Page 26] Internet-Draft VNFBench November 2019 Christian Esteve Rothenberg University of Campinas Av. Albert Einstein, 400 Campinas, Sao Paulo 13083-852 Brazil Email: chesteve@dca.fee.unicamp.br URI: http://www.dca.fee.unicamp.br/~chesteve/ Manuel Peuster Paderborn University Warburgerstr. 100 Paderborn 33098 Germany Email: manuel.peuster@upb.de URI: https://peuster.de Holger Karl Paderborn University Warburgerstr. 100 Paderborn 33098 Germany Email: holger.karl@upb.de URI: https://cs.uni-paderborn.de/cn/ Rosa, et al. Expires May 7, 2020 [Page 27]