6a879d2a173c2a1db0a0f73594bb1383dd8e9a9c
[kvmfornfv.git] / docs / development / requirements / kvmfornfv_requirements.rst
1 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
2 .. http://creativecommons.org/licenses/by/4.0
3 .. (c) OPNFV, Intel Corporation, AT&T and others.
4
5 ====================
6 Kvm4nfv Requirements
7 ====================
8
9 Introduction
10 ------------
11 The NFV hypervisors provide crucial functionality in the NFV
12 Infrastructure(NFVI).The existing hypervisors, however, are not necessarily
13 designed or targeted to meet the requirements for the NFVI.
14
15 This document specifies the list of requirements that need to be met as part
16 of this "NFV Hypervisors-KVM" project in Danube release.
17
18 As part of this project we need to make collaborative efforts towards enabling
19 the NFV features.
20
21
22 Scope and Purpose
23 -----------------
24
25 The main purpose of this project is to enhance the KVM hypervisor for NFV, by
26 looking at the following areas initially:
27
28 * Minimal Interrupt latency variation for data plane VNFs:
29    * Minimal Timing Variation for Timing correctness of real-time VNFs
30    * Minimal packet latency variation for data-plane VNFs
31 * Inter-VM communication
32 * Fast live migration
33
34 The output of this project would be list of the performance goals,comprehensive
35 instructions for the system configurations,tools to measure Performance and
36 interrupt latency.
37
38 Methods and Instrumentation
39 ---------------------------
40
41 The above areas would require software development and/or specific hardware
42 features, and some need just configurations information for the system
43 (hardware, BIOS, OS, etc.).
44
45 A right configuration is critical for improving the NFV performance/latency.
46 Even working on the same code base, different configurations can make
47 completely different performance/latency result.
48 Configurations that can be made as part of this project to tune a specific
49 scenario are:
50
51  1. **Platform Configuration** : Some hardware features like Power management,
52     Hyper-Threading,Legacy USB Support/Port 60/64 Emulation,SMI can be configured.
53  2. **Operating System Configuration** : Some configuration features like CPU
54     isolation,Memory allocation,IRQ affinity,Device assignment for VM,Tickless,
55     TSC,Idle,_RCU_NOCB_,Disable the RT throttling,NUMA can be configured.
56  3. **Performance/Latency Tuning** : Application level configurations like
57     timers,Making vfio MSI interrupt as non-threaded,Cache Allocation
58     Technology(CAT) enabling can be tuned to improve the NFV
59     performance/latency.
60
61 Features to be tested
62 ---------------------
63
64 The tests that need to be conducted to make sure that latency is addressed are:
65  1. Timer test
66  2. Device Interrupt Test
67  3. Packet forwarding (DPDK OVS)
68  4. Packet Forwarding (SR-IOV)
69  5. Bare-metal Packet Forwarding
70
71 Dependencies
72 ------------
73
74 1. OPNFV Project: “Characterize vSwitch Performance for Telco NFV Use Cases”
75    (VSPERF) for performance evaluation of ivshmem vs. vhost-user.
76 2. OPNFV Project: “Pharos” for Test Bed Infrastructure, and possibly
77    “Yardstick” for infrastructure verification.
78 3. There are currently no similar projects underway in OPNFV or in an upstream
79    project
80 4. The relevant upstream project to be influenced here is QEMU/KVM and
81    libvirt.
82 5. In terms of HW dependencies, the aim is to use standard IA Server hardware
83    for this project, as provided by OPNFV Pharos.
84
85
86 Reference
87 ---------
88
89 https://wiki.opnfv.org/display/kvm/