OPNFV KVM4NFV: Documentation 75/18975/2
authorswatisharma <swatix.sharma@intel.com>
Thu, 18 Aug 2016 15:36:56 +0000 (21:06 +0530)
committerswatisharma <swatix.sharma@intel.com>
Fri, 19 Aug 2016 11:46:30 +0000 (17:16 +0530)
This patch contains the full documentation required for KVM4NFV
project. The documents are organized into the following
sections- user guide, configuration guide, installation guide.
requirement document, design document, release notes and glossary.

Co-Authored-By: Gundarapu Reddy <reddyx.gundarapu@intel.com>
Signed-off-by: Swati Sharma <swatix.sharma@intel.com>
43 files changed:
docs/all/environment-setup.rst [deleted file]
docs/all/index.rst [deleted file]
docs/configurationguide/abstract.rst [new file with mode: 0644]
docs/configurationguide/configuration.options.render.rst [new file with mode: 0644]
docs/configurationguide/images/brahmaputrafeaturematrix.jpg [new file with mode: 0644]
docs/configurationguide/images/brahmaputrascenariomatrix.jpg [new file with mode: 0644]
docs/configurationguide/images/weather-clear.jpg [new file with mode: 0644]
docs/configurationguide/images/weather-dash.jpg [new file with mode: 0644]
docs/configurationguide/images/weather-few-clouds.jpg [new file with mode: 0644]
docs/configurationguide/images/weather-overcast.jpg [new file with mode: 0644]
docs/configurationguide/index.rst [new file with mode: 0644]
docs/configurationguide/low-latency.feature.configuration.description.rst [new file with mode: 0644]
docs/configurationguide/os-nosdn-kvm-ha.description.rst [new file with mode: 0644]
docs/configurationguide/scenariomatrix.rst [new file with mode: 0644]
docs/design/Bare-metalPacketForwarding.png [new file with mode: 0644]
docs/design/DeviceInterruptTest.png [new file with mode: 0644]
docs/design/PacketforwardingDPDK_OVS.png [new file with mode: 0644]
docs/design/TimerTest.png [new file with mode: 0644]
docs/design/index.rst [new file with mode: 0755]
docs/design/kvm1.png [new file with mode: 0644]
docs/design/kvmfornfv_design.rst [new file with mode: 0644]
docs/glossary/kvmfornfv_glossary.rst [new file with mode: 0644]
docs/installationprocedure/abstract.rst [new file with mode: 0644]
docs/installationprocedure/index.rst [new file with mode: 0644]
docs/installationprocedure/kvm4nfv-cicd.installation.instruction.rst [new file with mode: 0644]
docs/installationprocedure/kvm4nfv-cicd.release.notes.rst [new file with mode: 0644]
docs/overview/kvmfornfv_overview.rst [new file with mode: 0644]
docs/releasenotes/index.rst [new file with mode: 0644]
docs/releasenotes/release-notes.rst [new file with mode: 0644]
docs/requirements/index.rst [new file with mode: 0755]
docs/requirements/kvmfornfv_requirements.rst [new file with mode: 0644]
docs/userguide/abstract.rst [new file with mode: 0644]
docs/userguide/common.platform.render.rst [new file with mode: 0644]
docs/userguide/feature.userguide.render.rst [new file with mode: 0644]
docs/userguide/index.rst [new file with mode: 0644]
docs/userguide/introduction.rst [new file with mode: 0644]
docs/userguide/live_migration.userguide.rst [moved from docs/all/live_migration.rst with 82% similarity]
docs/userguide/lmdowntime.jpg [moved from docs/all/lmdowntime.jpg with 100% similarity]
docs/userguide/lmnetwork.jpg [moved from docs/all/lmnetwork.jpg with 100% similarity]
docs/userguide/lmtotaltime.jpg [moved from docs/all/lmtotaltime.jpg with 100% similarity]
docs/userguide/low_latency.userguide.rst [new file with mode: 0644]
docs/userguide/openstack.rst [new file with mode: 0644]
docs/userguide/tuning.userguide.rst [moved from docs/all/tuning.rst with 70% similarity]

diff --git a/docs/all/environment-setup.rst b/docs/all/environment-setup.rst
deleted file mode 100644 (file)
index e381431..0000000
+++ /dev/null
@@ -1,151 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. http://creativecommons.org/licenses/by/4.0
-.. (c) <optionally add copywriters name>
-
-Low Latency Environment
-=======================
-
-Achieving low latency with the KVM4NFV project requires setting up a special
-test environment. This environment includes the BIOS settings, kernel
-configuration, kernel parameters and the run-time environment.
-
-Hardware Environment Description
---------------------------------
-
-BIOS setup plays an important role in achieving real-time latency. A collection
-of relevant settings, used on the platform where the baseline performance data
-was collected, is detailed below:
-
-CPU Features
-~~~~~~~~~~~~
-
-Some special CPU features like TSC-deadline timer, invariant TSC and Process posted
-interrupts, etc, are helpful for latency reduction.
-
-Below is the CPU information on the baseline test platform.
-::
-        processor       : 35
-        vendor_id       : GenuineIntel
-        cpu family      : 6
-        model           : 63
-        model name      : Intel(R) Xeon(R) CPU E5-2699 v3 @ 2.30GHz
-        stepping        : 2
-        microcode       : 0x2d
-        cpu MHz         : 2294.795
-        cache size      : 46080 KB
-        physical id     : 1
-        siblings        : 18
-        core id         : 27
-        cpu cores       : 18
-        apicid          : 118
-        initial apicid  : 118
-        fpu             : yes
-        fpu_exception   : yes
-        cpuid level     : 15
-        wp              : yes
-        flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
-                          mca cmov pat pse36 clflush dts acpi mmx fxsr sse
-                          sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm
-                          constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc
-                          aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2
-                          ssse3 fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt
-                          tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm arat epb
-                          pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase
-                          tsc_adjust bmi1 avx2 smep bmi2 erms invpcid cqm xsaveopt cqm_llc
-                          cqm_occup_llcbugs
-        bogomips        : 4595.54
-        clflush size    : 64
-        cache_alignment : 64
-        address sizes   : 46 bits physical, 48 bits virtual
-        power management:
-
-CPU Topology
-~~~~~~~~~~~~
-
-NUMA topology is also important for latency reduction.
-
-Below is the CPU topology on the baseline test platform.
-::
-        [nfv@otcnfv02 ~]$ lscpu
-        Architecture:          x86_64
-        CPU op-mode(s):        32-bit, 64-bit
-        Byte Order:            Little Endian
-        CPU(s):                36
-        On-line CPU(s) list:   0-35
-        Thread(s) per core:    1
-        Core(s) per socket:    18
-        Socket(s):             2
-        NUMA node(s):          2
-        Vendor ID:             GenuineIntel
-        CPU family:            6
-        Model:                 63
-        Model name:            Intel(R) Xeon(R) CPU E5-2699 v3 @ 2.30GHz
-        Stepping:              2
-        CPU MHz:               2294.795
-        BogoMIPS:              4595.54
-        Virtualization:        VT-x
-        L1d cache:             32K
-        L1i cache:             32K
-        L2 cache:              256K
-        L3 cache:              46080K
-        NUMA node0 CPU(s):     0-17
-        NUMA node1 CPU(s):     18-35
-
-BIOS Setup
-~~~~~~~~~~
-
-Careful BIOS setup is important in achieving real time latency. Different
-platforms have different BIOS setups, below are the important BIOS settings on
-the platform used to collect the baseline performance data.
-::
-        CPU Power and Performance <Performance>
-        CPU C-State <Disabled>
-        C1E Autopromote <Disabled>
-        Processor C3 <Disabled>
-        Processor C6 <Disabled>
-        Select Memory RAS <Maximum Performance>
-        NUMA Optimized <Enabled>
-        Cluster-on-Die <Disabled>
-        Patrol Scrub <Disabled>
-        Demand Scrub <Disabled>
-        Correctable Error <10>
-        Intel(R) Hyper-Threading <Disabled>
-        Active Processor Cores <All>
-        Execute Disable Bit <Enabled>
-        Intel(R) Virtualization Technology <Enabled>
-        Intel(R) TXT <Disabled>
-        Enhanced Error Containment Mode <Disabled>
-        USB Controller <Enabled>
-        USB 3.0 Controller <Auto>
-        Legacy USB Support <Disabled>
-        Port 60/64 Emulation <Disabled>
-
-Software Environment Setup
---------------------------
-Both the host and the guest environment need to be configured properly to
-reduce latency variations.  Below are some suggested kernel configurations.
-The ci/envs/ directory gives detailed implementation on how to setup the
-environment.
-
-Kernel Parameter
-~~~~~~~~~~~~~~~~
-
-Please check the default kernel configuration in the source code at:
-kernel/arch/x86/configs/opnfv.config.
-
-Below is host kernel boot line example:
-::
-        isolcpus=11-15,31-35 nohz_full=11-15,31-35 rcu_nocbs=11-15,31-35 iommu=pt intel_iommu=on default_hugepagesz=1G hugepagesz=1G mce=off idle=poll intel_pstate=disable processor.max_cstate=1 pcie_asmp=off tsc=reliable
-
-Below is guest kernel boot line example
-::
- isolcpus=1 nohz_full=1 rcu_nocbs=1 mce=off idle=poll default_hugepagesz=1G hugepagesz=1G
-
-Please refer to :doc:`tunning` for more explanation.
-
-Run-time Environment Setup
-~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Not only are special kernel parameters needed but a special run-time
-environment is also required. Please refer to :doc:`tunning` for more
-explanation.
diff --git a/docs/all/index.rst b/docs/all/index.rst
deleted file mode 100644 (file)
index 7f5f7a6..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
-.. http://creativecommons.org/licenses/by/4.0
-.. (c) <optionally add copywriters name>
-
-===============
-KVM4NFV project
-===============
-
-Welcome to KVM4NFV_ project!
-
-
-
-.. _KVM4NFV: https://wiki.opnfv.org/nfv-kvm
-
-Contents:
-
-KVM4NFV Project Description
-===========================
-
-The NFV hypervisors provide crucial functionality in the NFV Infrastructure
-(NFVI). The existing hypervisors, however, are not necessarily designed or
-targeted to meet the requirements for the NFVI, and we need to make
-collaborative efforts toward enabling the NFV features.
-
-The KVM4NFV project focuses on the KVM hypervisor to enhance it for NFV, by
-looking at the following areas
-
-+ Minimal Interrupt latency variation for data plane VNFs
-    * Minimal Timing Variation for Timing correctness of real-time VNFs
-    * Minimal packet latency variation for data-plane VNFs
-+ Fast live migration
-
-While these items require software development and/or specific hardware features
-there are also some adjustments that need to be made to system configuration
-information, like hardware, BIOS, OS, etc.
-
-.. toctree::
-        :numbered:
-        :maxdepth: 1
-
-Setup Guides
-============
-.. toctree::
-        :maxdepth: 2
-
-        environment-setup
-        tuning
-        live_migration
diff --git a/docs/configurationguide/abstract.rst b/docs/configurationguide/abstract.rst
new file mode 100644 (file)
index 0000000..a5066c2
--- /dev/null
@@ -0,0 +1,16 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+========
+Abstract
+========
+
+This document provides guidance for the configurations available in the
+Colorado release of OPNFV.
+
+The release includes four installer tools leveraging different technologies;
+Apex, Compass4nfv, Fuel and JOID, which deploy components of the platform.
+
+This document also includes the selection of tools and components including
+guidelines for how to deploy and configure the platform to an operational
+state.
diff --git a/docs/configurationguide/configuration.options.render.rst b/docs/configurationguide/configuration.options.render.rst
new file mode 100644 (file)
index 0000000..93add77
--- /dev/null
@@ -0,0 +1,23 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+======================
+Configuration Options
+======================
+
+OPNFV provides a variety of virtual infrastructure deployments called scenarios
+designed to host virtualised network functions (VNF's). KVM4NFV scenarios
+provide specific capabilities and/or components aimed to solve specific
+problems for the deployment of VNF's. KVM4NFV scenario includes components
+such as OpenStack,KVM etc. which includes different source components or
+configurations.
+
+KVM4NFV Scenarios
+===================
+
+Each KVM4NFV scenario provides unique features and capabilities, it is
+important to understand your target platform capabilities before installing
+and configuring. This configuration guide outlines how to install and
+configure components in order to enable the features required.
+
+.. include:: scenariomatrix.rst
diff --git a/docs/configurationguide/images/brahmaputrafeaturematrix.jpg b/docs/configurationguide/images/brahmaputrafeaturematrix.jpg
new file mode 100644 (file)
index 0000000..0d2a122
Binary files /dev/null and b/docs/configurationguide/images/brahmaputrafeaturematrix.jpg differ
diff --git a/docs/configurationguide/images/brahmaputrascenariomatrix.jpg b/docs/configurationguide/images/brahmaputrascenariomatrix.jpg
new file mode 100644 (file)
index 0000000..84fc87a
Binary files /dev/null and b/docs/configurationguide/images/brahmaputrascenariomatrix.jpg differ
diff --git a/docs/configurationguide/images/weather-clear.jpg b/docs/configurationguide/images/weather-clear.jpg
new file mode 100644 (file)
index 0000000..011ad52
Binary files /dev/null and b/docs/configurationguide/images/weather-clear.jpg differ
diff --git a/docs/configurationguide/images/weather-dash.jpg b/docs/configurationguide/images/weather-dash.jpg
new file mode 100644 (file)
index 0000000..3bf98dd
Binary files /dev/null and b/docs/configurationguide/images/weather-dash.jpg differ
diff --git a/docs/configurationguide/images/weather-few-clouds.jpg b/docs/configurationguide/images/weather-few-clouds.jpg
new file mode 100644 (file)
index 0000000..51994ee
Binary files /dev/null and b/docs/configurationguide/images/weather-few-clouds.jpg differ
diff --git a/docs/configurationguide/images/weather-overcast.jpg b/docs/configurationguide/images/weather-overcast.jpg
new file mode 100644 (file)
index 0000000..bdc1e04
Binary files /dev/null and b/docs/configurationguide/images/weather-overcast.jpg differ
diff --git a/docs/configurationguide/index.rst b/docs/configurationguide/index.rst
new file mode 100644 (file)
index 0000000..6ad3b28
--- /dev/null
@@ -0,0 +1,16 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+*************************
+OPNFV Configuration Guide
+*************************
+Colorado 1.0
+------------
+
+.. toctree::
+   :maxdepth: 2
+
+   ./abstract.rst
+   ./configuration.options.render.rst
+   ./low-latency.feature.configuration.description.rst
+   ./os-nosdn-kvm-ha.description.rst
diff --git a/docs/configurationguide/low-latency.feature.configuration.description.rst b/docs/configurationguide/low-latency.feature.configuration.description.rst
new file mode 100644 (file)
index 0000000..bb2bbd1
--- /dev/null
@@ -0,0 +1,93 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+Introduction
+============
+
+In KVM4NFV project, we focus on the KVM hypervisor to enhance it for NFV, by
+looking at the following areas initially
+
+* Minimal Interrupt latency variation for data plane VNFs:
+   * Minimal Timing Variation for Timing correctness of real-time VNFs
+   * Minimal packet latency variation for data-plane VNFs
+* Inter-VM communication,
+* Fast live migration
+
+Configuration of Cyclictest
+===========================
+
+Cyclictest measures Latency of response to a stimulus. Achieving low latency
+with the KVM4NFV project requires setting up a special test environment.
+This environment includes the BIOS settings, kernel configuration, kernel
+parameters and the run-time environment.
+
+* For more information regarding the test environment, please visit
+  https://wiki.opnfv.org/display/kvm/KVM4NFV+Test++Environment
+  https://wiki.opnfv.org/display/kvm/Nfv-kvm-tuning
+
+Pre-configuration activities
+----------------------------
+
+Intel POD1 is currently used as OPNFV-KVM4NFV test environment. The latest
+build packages are downloaded onto Intel Pod1-jump server from artifact
+repository. Yardstick running in a ubuntu docker container on Intel Pod1-jump
+server will trigger the cyclictest.
+
+Running cyclictest through Yardstick will Configure the host(Pod1-node1), the
+guest, executes  cyclictest on the guest.
+
+The following scripts are used for configuring host and guest to create a
+special test environment and achieve low latency.
+
+**host-setup0.sh**: On running this script will install latest kernel rpm
+on host and will make necessary changes as following to create special test
+environment
+
+   * Isolates CPUs from the general scheduler
+   * Stops timer ticks on isolated CPUs whenever possible
+   * Stops RCU callbacks on isolated CPUs
+   * Enables intel iommu driver and disables DMA translation for devices
+   * Sets HugeTLB pages to 1GB
+   * Disables machine check
+   * Disables clocksource verification at runtime
+
+**host-setup1.sh**: On running this script will make following test
+environment changes
+
+   * Disabling watchdogs to reduce overhead
+   * Disabling RT throttling
+   * Reroute interrupts bound to isolated CPUs to CPU 0
+   * Change the iptable so that we can ssh to the guest remotely
+
+**host-run-qemu.sh**: On running this script will launch a guest vm on host.
+     Note: download guest disk image from artifactory
+
+**guest-setup0.sh**: On running this scrcipt on guest vm will install the
+latest build kernel rpm, cyclictest and makes following configuration on
+guest vm.
+
+   * Isolates CPUs from the general scheduler
+   * Stops timer ticks on isolated CPUs whenever possible
+   * Uses polling idle loop to improve performance
+   * Disables clocksource verification at runtime
+
+**guest-setup1.sh**: On running this script on guest vm will make following
+configurations
+
+   * Disable watchdogs to reduce overhead
+   * Routes device interrupts to non-RT CPU
+   * Disables RT throttling
+
+Hardware configuration
+----------------------
+
+Currently Intel POD1 is used as test environment for kvmfornfv to execute
+cyclictest. As part of this test environment Intel pod1-jump is configured as
+jenkins slave and all the latest build artifacts are downloaded on to it.
+Intel pod1-node1 is the host on which a guest vm will be launched as a part of
+running cylictest through yardstick.
+
+* For more information regarding hardware configuration, please visit
+  https://wiki.opnfv.org/display/pharos/Intel+Pod1
+  https://build.opnfv.org/ci/computer/intel-pod1/
+  http://artifacts.opnfv.org/octopus/brahmaputra/docs/octopus_docs/opnfv-jenkins-slave-connection.html
diff --git a/docs/configurationguide/os-nosdn-kvm-ha.description.rst b/docs/configurationguide/os-nosdn-kvm-ha.description.rst
new file mode 100644 (file)
index 0000000..d60276e
--- /dev/null
@@ -0,0 +1,126 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+
+.. http://creativecommons.org/licenses/by/4.0
+
+
+Introduction
+============
+
+.. In this section explain the purpose of the scenario and the
+   types of capabilities provided
+
+The purpose of os-nosdn-kvm-ha scenario testing is to test the
+High Availability deployment and configuration of OPNFV software suite
+with OpenStack and without SDN software. This OPNFV software suite
+includes OPNFV KVM4NFV latest software packages for Linux Kernel and
+QEMU patches for achieving low latency. High Availability feature is achieved
+by deploying OpenStack multi-node setup with 3 controllers and 2 computes nodes
+
+KVM4NFV packages will be installed on compute nodes as part of deployment.
+This scenario testcase deployment is happening on multi-node by using
+OPNFV Fuel deployer.
+
+Scenario Components and Composition
+===================================
+.. In this section describe the unique components that make up the scenario,
+.. what each component provides and why it has been included in order
+.. to communicate to the user the capabilities available in this scenario.
+
+This scenario deploys the High Availability OPNFV Cloud based on the
+configurations provided in ha_nfv-kvm_heat_ceilometer_scenario.yaml.
+This yaml file contains following configurations and is passed as an
+argument to deploy.py script
+
+* scenario.yaml:This configuration file defines translation between a
+  short deployment scenario name(os-nosdn-kvm-ha) and an actual deployment
+  scenario configuration file(ha_nfv-kvm_heat_ceilometer_scenario.yaml)
+
+* deployment-scenario-metadata:Contains the configuration metadata like
+  title,version,created,comment.
+
+* stack-extensions:Stack extentions are opnfv added value features in form
+  of a fuel-plugin.Plugins listed in stack extensions are enabled and
+  configured.
+
+* dea-override-config: Used to configure the HA mode,network segmentation
+  types and role to node assignments.These configurations overrides
+  corresponding keys in the dea_base.yaml and dea_pod_override.yaml.
+  These keys are used to deploy multiple nodes(3 controllers,2 computes)
+  as mention below.
+
+  * **Node 1**: This node has MongoDB and Controller roles. The controller
+    node runs the Identity service, Image Service, management portions of
+    Compute and Networking, Networking plug-in and the dashboard. The
+    Telemetry service which was designed to support billing systems for
+    OpenStack cloud resources uses a NoSQL database to store information.
+    The database typically runs on the controller node.
+
+  * **Node 2**: This node has Controller and Ceph-osd roles. Ceph is a
+    massively scalable, open source, distributed storage system. It is
+    comprised of an object store, block store and a POSIX-compliant distributed
+    file system. Enabling Ceph,  configures Nova to store ephemeral volumes in
+    RBD, configures Glance to use the Ceph RBD backend to store images,
+    configures Cinder to store volumes in Ceph RBD images and configures the
+    default number of object replicas in Ceph.
+
+  * **Node 3**: This node has Controller role in order to achieve high
+    availability.
+
+  * **Node 4**: This node has Compute role. The compute node runs the
+    hypervisor portion of Compute that operates tenant virtual machines
+    or instances. By default, Compute uses KVM as the hypervisor.
+
+  * **Node 5**: This node has compute role.
+
+* dha-override-config:Provides information about the VM definition and
+  Network config for virtual deployment.These configurations overrides
+  the pod dha definition and points to the controller,compute and
+  fuel definition files.
+
+* os-nosdn-kvm-ha scenario is successful when all the 5 Nodes are accessible,
+  up and running
+
+Scenario Usage Overview
+=======================
+.. Provide a brief overview on how to use the scenario and the features available to the
+.. user.  This should be an "introduction" to the userguide document, and explicitly link to it,
+.. where the specifics of the features are covered including examples and API's
+
+* The high availability feature can be acheived by executing deploy.py with
+  ha_nfv-kvm_heat_ceilometer_scenario.yaml as an argument.
+* Install Fuel Master and deploy OPNFV Cloud from scratch on Hardware
+  Environment:
+
+  -Example:
+
+  sudo python deploy.py -iso ~/ISO/opnfv.iso -dea ~/CONF/hardware/dea.yaml -dha ~/CONF/hardware/dha.yaml -s /mnt/images -b pxebr -log ~/Deployment-888.log.tar.gz
+
+* Install Fuel Master and deploy OPNFV Cloud from scratch on Virtual
+  Environment:
+
+  -Example:
+
+  sudo python deploy.py -iso ~/ISO/opnfv.iso -dea ~/CONF/virtual/dea.yaml -dha ~/CONF/virtual/dha.yaml -s /mnt/images -log ~/Deployment-888.log.tar.gz
+
+* os-nosdn-kvm-ha scenario can be executed from the jenkins project
+  "fuel-os-nosdn-kvm-ha-baremetal-daily-master"
+* This scenario provides the High Availability feature by deploying
+  3 controller,2 compute nodes and checking if all the 5 nodes
+  are accessible(IP,up & running).
+* Test Scenario is passed if deployment is successful and all 5 nodes have
+  accessibility (IP , up & running).
+* Observed that scenario is not running any testcase on top of deployment.
+
+Known Limitations, Issues and Workarounds
+=========================================
+.. Explain any known limitations here.
+
+* Test scenario os-nosdn-kvm-ha result is not stable. After node reboot
+  triggered by kvm plugin, sometimes puppet agent (mcollective) is not
+  responding with in the given time.
+
+References
+==========
+
+For more information on the OPNFV Colorado release, please visit
+http://www.opnfv.org/colorado
diff --git a/docs/configurationguide/scenariomatrix.rst b/docs/configurationguide/scenariomatrix.rst
new file mode 100644 (file)
index 0000000..1e2cef9
--- /dev/null
@@ -0,0 +1,100 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+
+.. http://creativecommons.org/licenses/by/4.0
+
+Scenarios are implemented as deployable compositions through integration with an installation tool.
+OPNFV supports multiple installation tools and for any given release not all tools will support all
+scenarios. While our target is to establish parity across the installation tools to ensure they
+can provide all scenarios, the practical challenge of achieving that goal for any given feature and
+release results in some disparity.
+
+Colorado scenario overeview
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The following table provides an overview of the installation tools and available scenario's
+in the Colorado release of OPNFV.
+
+Scenario status is indicated by a weather pattern icon. All scenarios listed with
+a weather pattern are possible to deploy and run in your environment or a Pharos lab,
+however they may have known limitations or issues as indicated by the icon.
+
+Weather pattern icon legend:
+
++---------------------------------------------+----------------------------------------------------------+
+| Weather Icon                                | Scenario Status                                          |
++=============================================+==========================================================+
+| .. image:: ../images/weather-clear.jpg      | Stable, no known issues                                  |
++---------------------------------------------+----------------------------------------------------------+
+| .. image:: ../images/weather-few-clouds.jpg | Stable, documented limitations                           |
++---------------------------------------------+----------------------------------------------------------+
+| .. image:: ../images/weather-overcast.jpg   | Deployable, stability or feature limitations             |
++---------------------------------------------+----------------------------------------------------------+
+| .. image:: ../images/weather-dash.jpg       | Not deployed with this installer                         |
++---------------------------------------------+----------------------------------------------------------+
+
+Scenarios that are not yet in a state of "Stable, no known issues" will continue to be stabilised
+and updates will be made on the stable/colorado branch. While we intend that all Colorado
+scenarios should be stable it is worth checking regularly to see the current status.  Due to
+our dependency on upstream communities and code some issues may not be resolved prior to the D release.
+
+Scenario Naming
+^^^^^^^^^^^^^^^
+
+In OPNFV scenarios are identified by short scenario names, these names follow a scheme that
+identifies the key components and behaviours of the scenario. The rules for scenario naming are as follows:
+
+  os-[controller]-[feature]-[mode]-[option]
+
+Details of the fields are
+  * os: mandatory
+
+    * Refers to the platform type used
+    * possible value: os (OpenStack)
+
+* [controller]: mandatory
+
+    * Refers to the SDN controller integrated in the platform
+    * example values: nosdn, ocl, odl, onos
+
+  * [feature]: mandatory
+
+    * Refers to the feature projects supported by the scenario
+    * example values: nofeature, kvm, ovs, sfc
+
+  * [mode]: mandatory
+
+    * Refers to the deployment type, which may include for instance high availability
+    * possible values: ha, noha
+
+  * [option]: optional
+
+    * Used for the scenarios those do not fit into naming scheme.
+    * The optional field in the short scenario name should not be included if there is no optional scenario.
+
+Some examples of supported scenario names are:
+
+  * os-nosdn-kvm-noha
+
+    * This is an OpenStack based deployment using neutron including the OPNFV enhanced KVM hypervisor
+
+  * os-onos-nofeature-ha
+
+    * This is an OpenStack deployment in high availability mode including ONOS as the SDN controller
+
+  * os-odl_l2-sfc
+
+    * This is an OpenStack deployment using OpenDaylight and OVS enabled with SFC features
+
+Installing your scenario
+^^^^^^^^^^^^^^^^^^^^^^^^
+
+There are two main methods of deploying your target scenario, one method is to follow this guide which will
+walk you through the process of deploying to your hardware using scripts or ISO images, the other method is
+to set up a Jenkins slave and connect your infrastructure to the OPNFV Jenkins master.
+
+For the purposes of evaluation and development a number of Colorado scenarios are able to be deployed
+virtually to mitigate the requirements on physical infrastructure. Details and instructions on performing
+virtual deployments can be found in the installer specific installation instructions.
+
+To set up a Jenkins slave for automated deployment to your lab, refer to the `Jenkins slave connect guide.
+<http://artifacts.opnfv.org/brahmaputra.1.0/docs/opnfv-jenkins-slave-connection.brahmaputra.1.0.html>`_
diff --git a/docs/design/Bare-metalPacketForwarding.png b/docs/design/Bare-metalPacketForwarding.png
new file mode 100644 (file)
index 0000000..4b884e2
Binary files /dev/null and b/docs/design/Bare-metalPacketForwarding.png differ
diff --git a/docs/design/DeviceInterruptTest.png b/docs/design/DeviceInterruptTest.png
new file mode 100644 (file)
index 0000000..497f63f
Binary files /dev/null and b/docs/design/DeviceInterruptTest.png differ
diff --git a/docs/design/PacketforwardingDPDK_OVS.png b/docs/design/PacketforwardingDPDK_OVS.png
new file mode 100644 (file)
index 0000000..c8b689b
Binary files /dev/null and b/docs/design/PacketforwardingDPDK_OVS.png differ
diff --git a/docs/design/TimerTest.png b/docs/design/TimerTest.png
new file mode 100644 (file)
index 0000000..52eacc8
Binary files /dev/null and b/docs/design/TimerTest.png differ
diff --git a/docs/design/index.rst b/docs/design/index.rst
new file mode 100755 (executable)
index 0000000..871f173
--- /dev/null
@@ -0,0 +1,12 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+================
+KVMFORNFV Design
+================
+
+.. toctree::
+   :numbered:
+   :maxdepth: 3
+
+   kvmfornfv_design.rst
diff --git a/docs/design/kvm1.png b/docs/design/kvm1.png
new file mode 100644 (file)
index 0000000..3de1a6b
Binary files /dev/null and b/docs/design/kvm1.png differ
diff --git a/docs/design/kvmfornfv_design.rst b/docs/design/kvmfornfv_design.rst
new file mode 100644 (file)
index 0000000..54dcd12
--- /dev/null
@@ -0,0 +1,155 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+============
+Introduction
+============
+
+**Purpose**:
+
+ This document provides an overview of the areas that can be addressed to
+ enhance the KVM Hypervisor for NFV. It is intended to capture and convey the
+ significant changes which have been made on the KVM Hypervisor.
+
+
+===================
+Project description
+===================
+
+The NFV hypervisors provide crucial functionality in the NFV
+Infrastructure(NFVI).The existing hypervisors, however, are not necessarily
+designed or targeted to meet the requirements for the NFVI.
+
+This design focuses on the enhancement of following area for KVM Hypervisor
+
+* Minimal Interrupt latency variation for data plane VNFs:
+   * Minimal Timing Variation for Timing correctness of real-time VNFs
+   * Minimal packet latency variation for data-plane VNFs
+* Fast live migration
+
+While these items require software development and/or specific hardware features
+there are also some adjustments that need to be made to system configuration
+information, like hardware, BIOS, OS, etc.
+
+**Minimal Interrupt latency variation for data plane VNFs**
+
+Processing performance and latency depend on a number of factors, including
+the CPUs (frequency, power management features, etc.), micro-architectural
+resources, the cache hierarchy and sizes, memory (and hierarchy, such as NUMA)
+and speed, inter-connects, I/O and I/O NUMA, devices, etc.
+
+There are two separate types of latencies to minimize:
+
+   1. Minimal Timing Variation for Timing correctness of real-time
+      VNFs – timing correctness for scheduling operations(such as Radio scheduling)
+   2. Minimal packet latency variation for data-plane VNFs – packet delay
+      variation, which applies to packet processing.
+
+For a VM, interrupt latency (time between arrival of H/W interrupt and
+invocation of the interrupt handler in the VM), for example, can be either of
+the above or both, depending on the type of the device. Interrupt latency with
+a (virtual) timer can cause timing correctness issues with real-time VNFs even
+if they only use polling for packet processing.
+
+We assume that the VNFs are implemented properly to minimize interrupt latency
+variation within the VMs, but we have additional causes of latency variation
+on KVM:
+
+    - Asynchronous (e.g. external interrupts) and synchronous(e.g. instructions)
+      VM exits and handling in KVM (and kernel routines called), which may have
+      loops and spin locks
+    - Interrupt handling in the host Linux and KVM, scheduling and virtual
+      interrupt delivery to VNFs
+    - Potential VM exit (e.g. EOI) in the interrupt service routines in VNFs
+    - Exit to the user-level (e.g. QEMU)
+
+.. Figure:: kvm1.png
+
+=====================
+Design Considerations
+=====================
+
+The latency variation and jitters can be minimized with the below
+steps (with some in parallel):
+
+    1. Statically and exclusively assign hardware resources
+       (CPUs, memory, caches,) to the VNFs.
+
+    2. Pre-allocate huge pages (e.g. 1 GB/2MB pages) and guest-to-host mapping,
+       e.g. EPT (Extended Page Table) page tables, to minimize or mitigate
+       latency from misses in caches,
+
+    3. Use the host Linux configured for hard real-time and packet latency,
+       Check the set of virtual devices used by the VMs to optimize or
+       eliminate virtualization overhead if applicable
+
+    4. Use advanced hardware virtualization features that can reduce or
+       eliminate VM exits, if present, and
+
+    5. Inspect the code paths in KVM and associated kernel services to
+       eliminate code that can cause latencies (e.g. loops and spin locks).
+
+    6. Measure latencies intensively. We leverage the existing testing methods.
+       OSADL, for example, defines industry tests for timing correctness.
+
+====================
+Goals and Guidelines
+====================
+
+The output of this project will provide :
+
+    1. A list of the performance goals, which will be obtained by the
+       OPNFV members (as described above)
+
+    2. A set of comprehensive instructions for the system configurations
+       (hardware features, BIOS setup, kernel parameters, VM configuration,
+       options to QEMU/KVM, etc.)
+
+    3. The above features to the upstream of Linux, the real-time patch
+       set, KVM, QEMU, libvirt, and
+
+    4. Performance and interrupt latency measurement tools
+
+=========
+Test plan
+=========
+
+The tests that need to be conducted to make sure that all components from OPNFV
+meet the requirement are mentioned below:
+
+**Timer test**:This test utilize the cyclictest
+(https://rt.wiki.kernel.org/index.php/Cyclictest) to test the guest timer
+latency (the latency from the time that the guest timer should be triggered
+to the time the guest timer is really triggered).
+
+.. Figure:: TimerTest.png
+
+**Device Interrupt Test**:A device on the hardware platform trigger interrupt
+every one ms and the device interrupt will be delivered to the VNF. This test
+cover the latency from the interrupt happened on the hardware to the time the
+interrupt handled in the VNF.
+
+.. Figure:: DeviceInterruptTest.png
+
+**Packet forwarding (DPDK OVS)**:A packet is sent from TC (Traffic Generator)
+to a VNF.  The VNF, after processing the packet, forwards the packet to another
+NIC and in the end the packet is received by the traffic generator. The test
+check the latency from the packet is sent out by the TC to the time the packet
+is received by the TC.
+
+.. Figure:: PacketforwardingDPDK_OVS.png
+
+**Packet Forwarding (SR-IOV)**:This test is similar to Packet Forwarding
+(DPDK OVS). However, instead of using virtio NIC devices on the guest,
+a PCI NIC or a PCI VF NIC is assigned to the guest for network acess.
+
+**Bare-metal Packet Forwarding**:This is used to compare with the above
+packet forwarding scenario.
+
+.. Figure:: Bare-metalPacketForwarding.png
+
+=========
+Reference
+=========
+
+https://wiki.opnfv.org/display/kvm/
diff --git a/docs/glossary/kvmfornfv_glossary.rst b/docs/glossary/kvmfornfv_glossary.rst
new file mode 100644 (file)
index 0000000..adebc81
--- /dev/null
@@ -0,0 +1,396 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+
+.. http://creativecommons.org/licenses/by/4.0
+
+**************
+OPNFV Glossary
+**************
+Colorado 1.0
+------------
+
+========
+Contents
+========
+
+This glossary provides a common definition of phrases and words commonly used
+in OPNFV.
+
+--------
+
+A
+-
+
+Arno
+
+  A river running through Tuscany and the name of the first OPNFV release.
+
+API
+
+  Application Programming Interface
+
+AVX2
+
+  Advanced Vector Extensions 2 is an instruction set extension for x86.
+
+
+--------
+
+B
+-
+
+Brahmaputra
+
+  A river running through Asia and the name of the Second OPNFV release.
+
+Bios
+
+  Basic Input/Output System
+
+Builds
+
+  Build in Jenkins is a version of a program.
+
+Bogomips
+
+  Bogomips is the number of million times per second a processor can do
+  absolutely nothing.
+
+--------
+
+C
+-
+
+CAT
+
+  Cache Automation Technology
+
+CentOS
+
+  Community Enterprise Operating System is a Linux distribution
+
+CICD
+
+  Continuous Integration and Continuous Deployment
+
+CLI
+
+  Command Line Interface
+
+Colorado
+
+  A river in Argentina and the name of the Third OPNFV release.
+
+Compute
+
+  Compute is an OpenStack service which offers many configuration options
+  which may be deployment specific.
+
+Console
+
+  Console is display screen.
+
+CPU
+  Central Processing Unit
+
+--------
+
+D
+-
+
+Data plane
+
+  The data plane is the part of a network that carries user traffic.
+
+Debian/deb
+
+  Debian is a Unix-like computer operating system that is composed entirely of
+  free software.
+
+Docs
+
+  Documentation/documents
+
+DPDK
+
+  Data Plane Development Kit
+
+DPI
+
+  Deep Packet Inspection
+
+DSCP
+
+  Differentiated Services Code Point
+
+--------
+
+F
+-
+
+Flavors
+
+  Flavors are templates used to define VM configurations.
+
+Fuel
+
+  Provides an intuitive, GUI-driven experience for deployment and management of OpenStack
+
+--------
+
+H
+-
+
+Horizon
+
+  Horizon is an OpenStack service which serves as an UI.
+
+Hypervisor
+
+  A hypervisor, also called a virtual machine manager, is a program that allows
+  multiple operating systems to share a single hardware host.
+
+--------
+
+I
+-
+
+IGMP
+
+  Internet Group Management Protocol
+
+IOMMU
+
+  Input-Output Memory Management Unit
+
+IOPS
+
+  Input/Output Operations Per Second
+
+IRQ
+
+  Interrupt ReQuest is an interrupt request sent from the hardware level to
+  the CPU.
+
+IRQ affinity
+
+  IRQ affinity is the set of CPU cores that can service that interrupt.
+
+--------
+
+J
+-
+
+Jenkins
+
+  Jenkins is an open source continuous integration tool written in Java.
+
+JIRA
+
+  JIRA is a bug tracking software.
+
+Jitter
+
+  Time difference in packet inter-arrival time to their destination can be called jitter.
+
+JumpHost
+
+  A jump host or jump server or jumpbox is a computer on a network typically
+  used to manage devices in a separate security zone.
+
+--------
+
+K
+-
+
+Kernel
+
+  The kernel is a computer program that constitutes the central core of a
+  computer's operating system.
+
+--------
+
+L
+-
+
+Latency
+
+  The amount of time it takes a packet to travel from source to destination is
+  Latency.
+
+libvirt
+
+  libvirt is an open source API, daemon and management tool for managing
+  platform virtualization.
+
+--------
+
+M
+-
+
+Migration
+
+  Migration is the process of moving from the use of one operating environment
+  to another operating environment.
+
+--------
+
+N
+-
+
+NFV
+
+  Network Functions Virtualisation, an industry initiative to leverage
+  virtualisation technologies in carrier networks.
+
+NFVI
+
+  Network Function Virtualization Infrastructure
+
+NIC
+
+  Network Interface Controller
+
+NUMA
+
+  Non-Uniform Memory Access
+
+--------
+
+O
+-
+
+OPNFV
+
+  Open Platform for NFV, an open source project developing an NFV reference
+  platform and features.
+
+--------
+
+P
+-
+
+Pharos
+
+  Is a lighthouse and is a project deals with developing an OPNFV lab
+  infrastructure that is geographically and technically diverse.
+
+Pipeline
+
+  A suite of plugins in Jenkins that lets you orchestrate automation.
+
+Platform
+
+  OPNFV provides an open source platform for deploying NFV solutions that
+  leverages investments from a community of developers and solution providers.
+
+Pools
+
+  A Pool is a set of resources that are kept ready to use, rather than acquired
+  on use and released afterwards.
+
+--------
+
+Q
+-
+
+Qemu
+
+  QEMU is a free and open-source hosted hypervisor that performs hardware
+  virtualization.
+
+--------
+
+R
+-
+
+RDMA
+
+  Remote Direct Memory Access (RDMA)
+
+Rest-Api
+
+  REST (REpresentational State Transfer) is an architectural style, and an
+  approach to communications that is often used in the development of web
+  services
+
+--------
+
+S
+-
+
+Scaling
+
+  Refers to altering the size.
+
+Slave
+
+  Works with/for master.where master has unidirectional control over one or
+  more other devices.
+
+SR-IOV
+
+  Single root IO- Virtualization.
+
+Spin locks
+
+  A spinlock is a lock which causes a thread trying to acquire it to simply
+  wait in a loop while repeatedly checking if the lock is available.
+
+Storage
+
+  Refers to computer components which store some data.
+
+--------
+
+T
+-
+
+Tenant
+
+   A Tenant is a group of users who share a common access with specific
+   privileges to the software instance.
+
+Tickless
+
+  A tickless kernel is an operating system kernel in which timer interrupts
+  do not occur at regular intervals, but are only delivered as required.
+
+TSC
+
+  Technical Steering Committee
+
+--------
+
+V
+-
+
+VLAN
+
+  A virtual local area network, typically an isolated ethernet network.
+
+VM
+
+  Virtual machine, an emulation in software of a computer system.
+
+VNF
+
+  Virtual network function, typically a networking application or function
+  running in a virtual environment.
+
+--------
+
+X
+-
+
+XBZRLE
+
+  Helps to reduce the network traffic by just sending the updated data
+
+--------
+
+Y
+-
+
+Yardstick
+
+  Yardstick is an infrastructure verification. It is an OPNFV testing project.
diff --git a/docs/installationprocedure/abstract.rst b/docs/installationprocedure/abstract.rst
new file mode 100644 (file)
index 0000000..728f0aa
--- /dev/null
@@ -0,0 +1,7 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+
+.. http://creativecommons.org/licenses/by/4.0
+
+This document will give the user instructions on how to deploy available
+KVM4NFV CICD build scenario verfied for the Colorado release of the OPNFV
+platform.
diff --git a/docs/installationprocedure/index.rst b/docs/installationprocedure/index.rst
new file mode 100644 (file)
index 0000000..00ccaf2
--- /dev/null
@@ -0,0 +1,17 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+
+.. http://creativecommons.org/licenses/by/4.0
+
+**********************
+Installation procedure
+**********************
+Colorado 1.0
+------------
+
+.. toctree::
+   :numbered:
+   :maxdepth: 2
+
+   abstract.rst
+   kvm4nfv-cicd.installation.instruction.rst
+   kvm4nfv-cicd.release.notes.rst
diff --git a/docs/installationprocedure/kvm4nfv-cicd.installation.instruction.rst b/docs/installationprocedure/kvm4nfv-cicd.installation.instruction.rst
new file mode 100644 (file)
index 0000000..5488666
--- /dev/null
@@ -0,0 +1,74 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+
+.. http://creativecommons.org/licenses/by/4.0
+
+=====================================
+KVM4NFV CICD Installation Instruction
+=====================================
+
+Preparing the installation
+--------------------------
+
+The OPNFV project- KVM4NFV (https://gerrit.opnfv.org/gerrit/kvmfornfv.git) is
+cloned first, to make the build scripts for Qemu & Kernel, Rpms and Debians
+available.
+
+HW requirements
+---------------
+
+These build scripts are triggered on the Jenkins-Slave build server. Currently
+Intel POD1 is used as test environment for kvmfornfv to execute cyclictest. As
+part of this test environment Intel pod1-jump is configured as jenkins slave
+and all the latest build artifacts are downloaded on to it. Intel pod1-node1
+is the host on which a guest vm will be launched as a part of running cylictest
+through yardstick.
+
+Build instructions
+------------------
+
+Builds are possible for the following packages-
+
+**kvmfornfv source code**- The ./ci/build.sh is the main script used to trigger
+the Rpms (on 'centos') and Debians (on 'ubuntu') builds in this case.
+
+* How to build Kernel/Qemu Rpms- To build rpm packages, build.sh script is run
+  with -p and -o option (i.e. if -p package option is  passed as "centos" or in
+  default case). Example: sh ./ci/build.sh -p centos -o build_output
+
+* How to build Kernel/Qemu Debians- To build debian packages, build.sh script
+  is run with -p and -o option (i.e. if -p package option is  passed as
+  "ubuntu"). Example: sh ./ci/build.sh -p ubuntu -o build_output
+
+* How to build all Kernel & Qemu, Rpms & Debians- To build both debian and rpm
+  packages, build.sh script is run with -p and -o option (i.e. if -p package
+  option is passed as "both"). Example: sh ./ci/build.sh -p both -o build_output
+
+Installation instructions
+-------------------------
+
+Installation can be done in the following ways-
+
+**1. From kvmfornfv source code**-
+The build packages that are prepared in the above section, are installed
+differently depending on the platform.
+
+Please visit the links for each-
+
+* Centos : https://www.centos.org/docs/5/html/Deployment_Guide-en-US/s1-rpm-using.html
+* Ubuntu : https://help.ubuntu.com/community/InstallingSoftware
+
+Test the built packages by executing the scripts present in ci/envs for
+configuring host and guest respectively. Once the setup is in place, cyclictest
+is performed via yardtick, using ./ci/test_kvmfornfv.sh
+
+**2. Using Fuel installer**-
+
+* Please refer to the document present at /fuel-plugin/README.md
+
+Post-installation activities
+----------------------------
+
+After the rpm and debian builds are deployed successfully on the host-guest and
+give the expected cyclictest results, jenkins gives +1 to indicate the
+completion of verify process. Thereafter, the releng executes the merge process
+to merge this code into parent repository.
diff --git a/docs/installationprocedure/kvm4nfv-cicd.release.notes.rst b/docs/installationprocedure/kvm4nfv-cicd.release.notes.rst
new file mode 100644 (file)
index 0000000..a54fe0b
--- /dev/null
@@ -0,0 +1,138 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+
+.. http://creativecommons.org/licenses/by/4.0
+
+=============================
+Release Note for KVM4NFV CICD
+=============================
+
+
+Abstract
+========
+
+This document contains the release notes for the Colorado release of
+OPNFV when using KVM4NFV CICD process.
+
+Introduction
+============
+
+Provide a brief introduction of how this configuration is used in OPNFV release
+using KVM4VFV CICD as scenario.
+
+Be sure to reference your scenario installation instruction.
+
+Release Data
+============
+
++--------------------------------------+--------------------------------------+
+| **Project**                          | NFV Hypervisors-KVM                  |
+|                                      |                                      |
++--------------------------------------+--------------------------------------+
+| **Repo/tag**                         | kvmfornfv                            |
+|                                      |                                      |
++--------------------------------------+--------------------------------------+
+| **Release designation**              |                                      |
+|                                      |                                      |
++--------------------------------------+--------------------------------------+
+| **Release date**                     |                                      |
+|                                      |                                      |
++--------------------------------------+--------------------------------------+
+| **Purpose of the delivery**          |  Automate the KVM4VFV CICD scenario  |
+|                                      |                                      |
++--------------------------------------+--------------------------------------+
+
+Deliverables
+------------
+
+Software deliverables
+~~~~~~~~~~~~~~~~~~~~~
+Kernel and Qemu- RPM and Debian build packages
+
+Documentation deliverables
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+- KVM4NFV CICD process documentation available under <project>/docs/ under
+  various categories.
+
+Version change
+--------------
+.. This section describes the changes made since the last version of this
+.. document.
+
+Module version change
+~~~~~~~~~~~~~~~~~~~~~
+- Build scripts made available for Kernel rpm, Kernel deb, Qemu rpm, Qemu
+  deb packages.
+- Releng scripts made available to trigger these kvm4nfv build scripts for
+  automating complete CICD process.
+
+Document version change
+~~~~~~~~~~~~~~~~~~~~~~~
+The following documents are added-
+- configurationguide
+- instalationprocedure
+- userguide
+- overview
+- glossary
+- releasenotes
+
+Reason for new version
+----------------------
+
+Feature additions
+~~~~~~~~~~~~~~~~~
+
++--------------------------------------+--------------------------------------+
+| **JIRA REFERENCE**                   | **SLOGAN**                           |
+|                                      |                                      |
++--------------------------------------+--------------------------------------+
+| JIRA:                                | NFV Hypervisors-KVMKVMFORNFV-34      |
+|                                      |                                      |
++--------------------------------------+--------------------------------------+
+| JIRA:                                | NFV Hypervisors-KVMKVMFORNFV-34      |
+|                                      |                                      |
++--------------------------------------+--------------------------------------+
+
+Bug corrections
+~~~~~~~~~~~~~~~
+
+**JIRA TICKETS:**
+
++--------------------------------------+--------------------------------------+
+| **JIRA REFERENCE**                   | **SLOGAN**                           |
+|                                      |                                      |
++--------------------------------------+--------------------------------------+
+| JIRA:                                |                                      |
+|                                      |                                      |
++--------------------------------------+--------------------------------------+
+
+
+Known Limitations, Issues and Workarounds
+=========================================
+
+System Limitations
+------------------
+
+Known issues
+------------
+
+**JIRA TICKETS:**
+
++--------------------------------------+--------------------------------------+
+| **JIRA REFERENCE**                   | **SLOGAN**                           |
+|                                      |                                      |
++--------------------------------------+--------------------------------------+
+| JIRA:                                |                                      |
++--------------------------------------+--------------------------------------+
+| JIRA:                                |                                      |
++--------------------------------------+--------------------------------------+
+
+
+Workarounds
+-----------
+See JIRA: <link>
+
+
+References
+==========
+For more information on the OPNFV Brahmaputra release, please visit
+http://www.opnfv.org/brahmaputra
diff --git a/docs/overview/kvmfornfv_overview.rst b/docs/overview/kvmfornfv_overview.rst
new file mode 100644 (file)
index 0000000..87d401b
--- /dev/null
@@ -0,0 +1,25 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+
+.. http://creativecommons.org/licenses/by/4.0
+
+=============================
+KMV4MFV CICD Project Overview
+=============================
+
+The detailed understanding of this project is organized into different sections-
+
+* userguide - This provides the required technical assistance to the user, in
+  using the KVM4NFV CICD process.
+* installationprocedure- This will give the user instructions on how to deploy
+  available KVM4NFV CICD build scenario.
+* configurationguide- This provides guidance for configuring KVM4NFV
+  environment, even with the use of specific installer tools for deploying some
+  components, available in the Colorado release of OPNFV.
+* requirements- This includes the introduction of KVM4NFV CICD project,
+  specifications of how the project should work, and constraints placed upon
+  its execution.
+* design- This includes the parameters or design considerations taken into
+  account for achieving minimal interrupt latency for the data VNFs.
+* releasenotes-  This describes a brief summary of recent changes, enhancements
+  and bug fixes in the KVM4NFV project.
+* glossary- It includes the definition of terms, used in the KVM4NFV project
diff --git a/docs/releasenotes/index.rst b/docs/releasenotes/index.rst
new file mode 100644 (file)
index 0000000..9ae91bf
--- /dev/null
@@ -0,0 +1,11 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+=========================
+KVM4NFV CICD Release Note
+=========================
+
+.. toctree::
+   :maxdepth: 2
+
+   release-notes
diff --git a/docs/releasenotes/release-notes.rst b/docs/releasenotes/release-notes.rst
new file mode 100644 (file)
index 0000000..c6013d2
--- /dev/null
@@ -0,0 +1,174 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+
+.. http://creativecommons.org/licenses/by/4.0
+
+=====================================================
+OPNFV Release Note for "Colorado release" - KVMFORNFV
+=====================================================
+
+.. _Kvmfornfv: https://wiki.opnfv.org/display/kvm/
+
+
+Abstract
+========
+
+This document provides the release notes for Colorado release of KVMFORNFV.
+
+License
+=======
+
+KVMFORNFV is licensed under a Creative Commons Attribution 4.0 International
+License.You should have received a copy of the license along with this. If not,
+see <http://creativecommons.org/licenses/by/4.0/>.
+
+
+**Contents**
+
+1  Version History
+
+2  Important notes
+
+3  Summary
+
+4  Delivery Data
+
+5 References
+
+1   Version history
+===================
+
++--------------------+--------------------+--------------------+--------------------+
+| **Date**           | **Ver.**           | **Author**         | **Comment**        |
+|                    |                    |                    |                    |
++--------------------+--------------------+--------------------+--------------------+
+|2016-08-22          | 0.1.0              |                    | Colorado release   |
+|                    |                    |                    |                    |
++--------------------+--------------------+--------------------+--------------------+
+
+2   Important notes
+===================
+
+The software delivered in the OPNFV KVMFORNFV_ Project, comprises the
+*ci*, the *kvmfornfv test cases*.
+
+The *KVMFORNFV* framework depends on the *Fuel* installer.
+
+
+3   Summary
+===========
+
+This Colorado release provides *KVMFORNFV* as a framework to enhance the
+KVM Hypervisor for NFV and OPNFV scenario testing, automated in the OPNFV
+CI pipeline, including:
+
+* Documentation created
+
+  * User Guide
+
+  * Configuration Guide
+
+  * Installation Procedure
+
+  * Release notes (this document)
+
+* KVMFORNFV source code
+
+* Cyclictests for KVMFORNFV
+
+For Colorado release, the KVMFORNFV uses for the following:
+
+* Automation of building the Kernel and qemu RPM's or debians
+
+* Executing the Cyclictests to check the latency
+
+* os-sdn-kvm-ha Scenario testing for High Availability Configuration using
+  Fuel Installer
+
+The *KVMFORNFV framework* is developed in the OPNFV community, by the
+KVMFORNFV_ team.
+
+4   Release Data
+================
+
++--------------------------------------+--------------------------------------+
+| **Project**                          | NFV Hypervisors-KVM                  |
+|                                      |                                      |
++--------------------------------------+--------------------------------------+
+| **Repo/commit-ID**                   | kvmfornfv                            |
+|                                      |                                      |
++--------------------------------------+--------------------------------------+
+| **Release designation**              | Colorado                             |
+|                                      |                                      |
++--------------------------------------+--------------------------------------+
+| **Release date**                     | 2016-08-22                           |
+|                                      |                                      |
++--------------------------------------+--------------------------------------+
+| **Purpose of the delivery**          | OPNFV Colorado Releases              |
+|                                      |                                      |
++--------------------------------------+--------------------------------------+
+
+4.1 Version change
+------------------
+
+4.1.1   Module version changes
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+This is the first tracked release of KVMFORNFV
+
+
+4.1.2   Document version changes
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+This is the initial version of the KVMFORNFV framework in OPNFV.
+
+4.2 Reason for version
+----------------------
+
+4.2.1 Feature additions
+~~~~~~~~~~~~~~~~~~~~~~~
+
++--------------------------------------+--------------------------------------+
+| **JIRA REFERENCE**                   | **SLOGAN**                           |
+|                                      |                                      |
++--------------------------------------+--------------------------------------+
+| JIRA:                                | NFV Hypervisors-KVMKVMFORNFV-34      |
+|                                      |                                      |
++--------------------------------------+--------------------------------------+
+| JIRA:                                | NFV Hypervisors-KVMKVMFORNFV-34      |
+|                                      |                                      |
++--------------------------------------+--------------------------------------+
+
+4.2.2 Bug corrections
+~~~~~~~~~~~~~~~~~~~~~
+
+Initial Release
+
+4.3 Deliverables
+----------------
+
+4.3.1   Software deliverables
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+KVMFORNFV framework source code <Colorado>
+
+4.3.2   Documentation deliverables
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The below documents are delivered for Colorado KVMFORNFV Release:
+
+  * User Guide
+
+  * Configuration Guide
+
+  * Installation Procedure
+
+  * Overview
+
+  * Release notes (this document)
+
+  * Glossary
+
+
+5  References
+=============
+
+For more information on the KVMFORNFV Colorado release, please see:
+
+https://wiki.opnfv.org/display/kvm/
diff --git a/docs/requirements/index.rst b/docs/requirements/index.rst
new file mode 100755 (executable)
index 0000000..42dba04
--- /dev/null
@@ -0,0 +1,12 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+================
+KVMFORNFV Design
+================
+
+.. toctree::
+   :numbered:
+   :maxdepth: 3
+
+   kvmfornfv_requirements.rst
diff --git a/docs/requirements/kvmfornfv_requirements.rst b/docs/requirements/kvmfornfv_requirements.rst
new file mode 100644 (file)
index 0000000..0488389
--- /dev/null
@@ -0,0 +1,89 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) OPNFV, Intel Corporation, AT&T and others.
+
+============
+Introduction
+============
+The NFV hypervisors provide crucial functionality in the NFV
+Infrastructure(NFVI).The existing hypervisors, however, are not necessarily
+designed or targeted to meet the requirements for the NFVI.
+
+This document specifies the list of requirements that need to be met as part
+of this "NFV Hypervisors-KVM" project in Colorado release.
+
+As part of this project we need to make collaborative efforts towards enabling
+the NFV features.
+
+=================
+Scope and Purpose
+=================
+
+The main purpose of this project is to enhance the KVM hypervisor for NFV, by
+looking at the following areas initially:
+
+* Minimal Interrupt latency variation for data plane VNFs:
+   * Minimal Timing Variation for Timing correctness of real-time VNFs
+   * Minimal packet latency variation for data-plane VNFs
+* Inter-VM communication
+* Fast live migration
+
+The output of this project would be list of the performance goals,comprehensive
+instructions for the system configurations,tools to measure Performance and
+interrupt latency.
+
+===========================
+Methods and Instrumentation
+===========================
+
+The above areas would require software development and/or specific hardware
+features, and some need just configurations information for the system
+(hardware, BIOS, OS, etc.).
+
+A right configuration is critical for improving the NFV performance/latency.
+Even working on the same code base, different configurations can make
+completely different performance/latency result.
+Configurations that can be made as part of this project to tune a specific
+scenario are:
+
+ 1. **Platform Configuration** : Some hardware features like Power management,
+    Hyper-Threading,Legacy USB Support/Port 60/64 Emulation,SMI can be configured.
+ 2. **Operating System Configuration** : Some configuration features like CPU
+    isolation,Memory allocation,IRQ affinity,Device assignment for VM,Tickless,
+    TSC,Idle,_RCU_NOCB_,Disable the RT throttling,NUMA can be configured.
+ 3. **Performance/Latency Tuning** : Application level configurations like
+    timers,Making vfio MSI interrupt as non-threaded,Cache Allocation
+    Technology(CAT) enabling can be tuned to improve the NFV
+    performance/latency.
+
+=====================
+Features to be tested
+=====================
+
+The tests that need to be conducted to make sure that latency is addressed are:
+1. Timer test
+2. Device Interrupt Test
+3. Packet forwarding (DPDK OVS)
+4. Packet Forwarding (SR-IOV)
+5. Bare-metal Packet Forwarding
+
+============
+Dependencies
+============
+
+1. OPNFV Project: “Characterize vSwitch Performance for Telco NFV Use Cases”
+   (VSPERF) for performance evaluation of ivshmem vs. vhost-user.
+2. OPNFV Project: “Pharos” for Test Bed Infrastructure, and possibly
+   “Yardstick” for infrastructure verification.
+3. There are currently no similar projects underway in OPNFV or in an upstream
+   project
+4. The relevant upstream project to be influenced here is QEMU/KVM and
+   libvirt.
+5. In terms of HW dependencies, the aim is to use standard IA Server hardware
+   for this project, as provided by OPNFV Pharos.
+
+=========
+Reference
+=========
+
+https://wiki.opnfv.org/display/kvm/
diff --git a/docs/userguide/abstract.rst b/docs/userguide/abstract.rst
new file mode 100644 (file)
index 0000000..8c36c26
--- /dev/null
@@ -0,0 +1,16 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+
+.. http://creativecommons.org/licenses/by/4.0
+
+========
+Abstract
+========
+
+In KVM4NFV project, we focus on the KVM hypervisor to enhance it for NFV,
+by looking at the following areas initially-
+
+* Minimal Interrupt latency variation for data plane VNFs:
+   * Minimal Timing Variation for Timing correctness of real-time VNFs
+   * Minimal packet latency variation for data-plane VNFs
+* Inter-VM communication
+* Fast live migration
diff --git a/docs/userguide/common.platform.render.rst b/docs/userguide/common.platform.render.rst
new file mode 100644 (file)
index 0000000..486ca46
--- /dev/null
@@ -0,0 +1,15 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+
+.. http://creativecommons.org/licenses/by/4.0
+
+================================
+Using common platform components
+================================
+
+This section outlines basic usage principals and methods for some of the
+commonly deployed components of supported OPNFV scenario's in Colorado.
+The subsections provide an outline of how these components are commonly
+used and how to address them in an OPNFV deployment.The components derive
+from autonomous upstream communities and where possible this guide will
+provide direction to the relevant documentation made available by those
+communities to better help you navigate the OPNFV deployment.
diff --git a/docs/userguide/feature.userguide.render.rst b/docs/userguide/feature.userguide.render.rst
new file mode 100644 (file)
index 0000000..d903f07
--- /dev/null
@@ -0,0 +1,14 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+
+.. http://creativecommons.org/licenses/by/4.0
+
+==========================
+Using Colorado Features
+==========================
+
+The following sections of the user guide provide feature specific usage
+guidelines and references for KVM4NFV CICD project.
+
+* <project>/docs/userguide/low_latency.userguide.rst
+* <project>/docs/userguide/live_migration.userguide.rst
+* <project>/docs/userguide/tuning.userguide.rst
diff --git a/docs/userguide/index.rst b/docs/userguide/index.rst
new file mode 100644 (file)
index 0000000..55042ec
--- /dev/null
@@ -0,0 +1,20 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+
+.. http://creativecommons.org/licenses/by/4.0
+
+****************
+OPNFV User Guide
+****************
+Colorado 1.0
+------------
+
+.. toctree::
+   :maxdepth: 2
+
+   ./abstract.rst
+   ./introduction.rst
+   ./common.platform.render.rst
+   ./feature.userguide.render.rst
+   ./low_latency.userguide.rst
+   ./live_migration.userguide.rst
+   ./tuning.userguide.rst
diff --git a/docs/userguide/introduction.rst b/docs/userguide/introduction.rst
new file mode 100644 (file)
index 0000000..501d639
--- /dev/null
@@ -0,0 +1,53 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+
+.. http://creativecommons.org/licenses/by/4.0
+
+========
+Overview
+========
+
+The project "NFV Hypervisors-KVM" makes collaborative efforts to enable NFV
+features for existing hypervisors, which are not necessarily designed or
+targeted to meet the requirements for the NFVI.The KVM4NFV CICD scenario
+consists of Continuous Integration builds, deployments and testing
+combinations of virtual infrastructure components.
+
+KVM4NFV Features
+================
+
+Using this project, the following areas are targeted-
+
+* Minimal Interrupt latency variation for data plane VNFs:
+   * Minimal Timing Variation for Timing correctness of real-time VNFs
+   * Minimal packet latency variation for data-plane VNFs
+* Inter-VM communication
+* Fast live migration
+
+Some of the above items would require software development and/or specific
+hardware features, and some need just configurations information for the
+system (hardware, BIOS, OS, etc.).
+
+We include a requirements gathering stage as a formal part of the project.
+For each subproject, we will start with an organized requirement stage so
+that we can determine specific use cases (e.g. what kind of VMs should be
+live migrated) and requirements (e.g. interrupt latency, jitters, Mpps,
+migration-time, down-time, etc.) to set out the performance goals.
+
+Potential future projects would include:
+
+* Dynamic scaling (via scale-out) using VM instantiation
+* Fast live migration for SR-IOV
+
+The user guide outlines how to work with key components and features in
+the platform, each feature description section will indicate the scenarios
+that provide the components and configurations required to use it.
+
+The configuration guide details which scenarios are best for you and how to
+install and configure them.
+
+General usage guidelines
+========================
+
+The user guide for KVM4NFV CICD features and capabilities provide step by step
+instructions for using features that have been configured according to the
+installation and configuration instructions.
similarity index 82%
rename from docs/all/live_migration.rst
rename to docs/userguide/live_migration.userguide.rst
index 4af19b6..9fa9b82 100644 (file)
@@ -1,13 +1,13 @@
 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
+
 .. http://creativecommons.org/licenses/by/4.0
 .. http://creativecommons.org/licenses/by/4.0
-.. (c) <optionally add copywriters name>
 
 Fast Live Migration
 ===================
 
 
 Fast Live Migration
 ===================
 
-The NFV project requires fast live migration. The specific requirement is total
-live migration time < 2Sec, while keeping the VM down time < 10ms when running
-DPDK L2 forwarding workload.
+The NFV project requires fast live migration. The specific requirement is
+total live migration time < 2Sec, while keeping the VM down time < 10ms when
+running DPDK L2 forwarding workload.
 
 We measured the baseline data of migrating an idle 8GiB guest running a DPDK L2
 forwarding work load and observed that the total live migration time was 2271ms
 
 We measured the baseline data of migrating an idle 8GiB guest running a DPDK L2
 forwarding work load and observed that the total live migration time was 2271ms
@@ -50,9 +50,10 @@ a. Delay non-emergency operations
    is completed the VM down time is reduced to about 5-7ms.
 b. Optimize zero page checking
    Currently QEMU uses the SSE2 instruction to optimize the zero pages
    is completed the VM down time is reduced to about 5-7ms.
 b. Optimize zero page checking
    Currently QEMU uses the SSE2 instruction to optimize the zero pages
-   checking.  The SSE2 instruction can process 16 bytes per instruction. By using
-   the AVX2 instruction, we can process 32 bytes per instruction. Testingt shows
-   that using AVX2 can speed up the zero pages checking process by about 25%.
+   checking.  The SSE2 instruction can process 16 bytes per instruction.
+   By using the AVX2 instruction, we can process 32 bytes per instruction.
+   Testing shows that using AVX2 can speed up the zero pages checking process
+   by about 25%.
 c. Remove unnecessary context synchronization.
    The CPU context was being synchronized twice during live migration. Removing
    this unnecessary synchronization shortened the VM downtime by about 100us.
 c. Remove unnecessary context synchronization.
    The CPU context was being synchronized twice during live migration. Removing
    this unnecessary synchronization shortened the VM downtime by about 100us.
@@ -69,10 +70,18 @@ OS: RHEL 7.1
 Kernel: 4.2
 QEMU v2.4.0
 
 Kernel: 4.2
 QEMU v2.4.0
 
-Ethernet controller: Intel Corporation Ethernet Controller 10-Gigabit X540-AT2 (rev 01)
+Ethernet controller: Intel Corporation Ethernet Controller 10-Gigabit
+X540-AT2 (rev 01)
 QEMU parameters:
 ::
 QEMU parameters:
 ::
-  /root/qemu.git/x86_64-softmmu/qemu-system-x86_64-enable-kvm -cpu host -smp 4 –device virtio-net-pci,netdev=net1,mac=52:54:00:12:34:56 –netdev type=tap,id=net1,script=/etc/kvm/qemu-ifup,downscript=no,vhost=on–device virtio-net-pci,netdev=net2,mac=54:54:00:12:34:56 –netdevtype=tap,id=net2,script=/etc/kvm/qemu-ifup2,downscript=no,vhost=on  -balloon virtio -m 8192-monitor stdio  /mnt/liang/ia32e_rhel6u5.qcow
+${qemu} -smp ${guest_cpus} -monitor unix:${qmp_sock},server,nowait -daemonize \
+-cpu host,migratable=off,+invtsc,+tsc-deadline,pmu=off \
+-realtime mlock=on -mem-prealloc -enable-kvm -m 1G \
+-mem-path /mnt/hugetlbfs-1g \
+-drive file=/root/minimal-centos1.qcow2,cache=none,aio=threads \
+-netdev user,id=guest0,hostfwd=tcp:5555-:22 \
+-device virtio-net-pci,netdev=guest0 \
+-nographic -serial /dev/null -parallel /dev/null
 
 Network connection
 
 
 Network connection
 
diff --git a/docs/userguide/low_latency.userguide.rst b/docs/userguide/low_latency.userguide.rst
new file mode 100644 (file)
index 0000000..df45815
--- /dev/null
@@ -0,0 +1,68 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+
+.. http://creativecommons.org/licenses/by/4.0
+
+Low Latency Environment
+=======================
+
+Achieving low latency with the KVM4NFV project requires setting up a special
+test environment. This environment includes the BIOS settings, kernel
+configuration, kernel parameters and the run-time environment.
+
+Hardware Environment Description
+--------------------------------
+
+BIOS setup plays an important role in achieving real-time latency. A collection
+of relevant settings, used on the platform where the baseline performance data
+was collected, is detailed below:
+
+CPU Features
+~~~~~~~~~~~~
+
+Some special CPU features like TSC-deadline timer, invariant TSC and Process
+posted interrupts, etc, are helpful for latency reduction.
+
+CPU Topology
+~~~~~~~~~~~~
+
+NUMA topology is also important for latency reduction.
+
+BIOS Setup
+~~~~~~~~~~
+
+Careful BIOS setup is important in achieving real time latency. Different
+platforms have different BIOS setups, below are the important BIOS settings on
+the platform used to collect the baseline performance data.
+
+Software Environment Setup
+--------------------------
+Both the host and the guest environment need to be configured properly to
+reduce latency variations.  Below are some suggested kernel configurations.
+The ci/envs/ directory gives detailed implementation on how to setup the
+environment.
+
+Kernel Parameter
+~~~~~~~~~~~~~~~~
+
+Please check the default kernel configuration in the source code at:
+kernel/arch/x86/configs/opnfv.config.
+
+Below is host kernel boot line example:
+::
+isolcpus=11-15,31-35 nohz_full=11-15,31-35 rcu_nocbs=11-15,31-35
+iommu=pt intel_iommu=on default_hugepagesz=1G hugepagesz=1G mce=off idle=poll
+intel_pstate=disable processor.max_cstate=1 pcie_asmp=off tsc=reliable
+
+Below is guest kernel boot line example
+::
+isolcpus=1 nohz_full=1 rcu_nocbs=1 mce=off idle=poll default_hugepagesz=1G
+hugepagesz=1G
+
+Please refer to `tunning.userguide` for more explanation.
+
+Run-time Environment Setup
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Not only are special kernel parameters needed but a special run-time
+environment is also required. Please refer to `tunning.userguide` for
+more explanation.
diff --git a/docs/userguide/openstack.rst b/docs/userguide/openstack.rst
new file mode 100644 (file)
index 0000000..bd19199
--- /dev/null
@@ -0,0 +1,51 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+
+.. http://creativecommons.org/licenses/by/4.0
+
+--------------------------------
+Colorado OpenStack User Guide
+--------------------------------
+
+OpenStack is a cloud operating system developed and released by the
+`OpenStack project <https://www.openstack.org>`_.  OpenStack is used in OPNFV
+for controlling pools of compute, storage, and networking resources in a Pharos
+compliant infrastructure.
+
+OpenStack is used in Colorado to manage tenants (known in OpenStack as
+projects),users, services, images, flavours, and quotas across the Pharos
+infrastructure.The OpenStack interface provides the primary interface for an
+operational Colorado deployment and it is from the "horizon console" that an
+OPNFV user will perform the majority of administrative and operational
+activities on the deployment.
+
+OpenStack references
+--------------------
+
+The `OpenStack user guide <http://docs.openstack.org/user-guide>`_ provides
+details and descriptions of how to configure and interact with the OpenStack
+deployment.This guide can be used by lab engineers and operators to tune the
+OpenStack deployment to your liking.
+
+Once you have configured OpenStack to your purposes, or the Colorado
+deployment meets your needs as deployed, an operator, or administrator, will
+find the best guidance for working with OpenStack in the
+`OpenStack administration guide <http://docs.openstack.org/user-guide-admin>`_.
+
+Connecting to the OpenStack instance
+------------------------------------
+
+Once familiar with the basic of working with OpenStack you will want to connect
+to the OpenStack instance via the Horizon Console.  The Horizon console provide
+a Web based GUI that will allow you operate the deployment.
+To do this you should open a browser on the JumpHost to the following address
+and enter the username and password:
+
+
+  http://{Controller-VIP}:80/index.html>
+  username: admin
+  password: admin
+
+Other methods of interacting with and configuring OpenStack,, like the REST API
+and CLI are also available in the Colorado deployment, see the
+`OpenStack administration guide <http://docs.openstack.org/user-guide-admin>`_
+for more information on using those interfaces.
similarity index 70%
rename from docs/all/tuning.rst
rename to docs/userguide/tuning.userguide.rst
index 760861b..3673ae2 100644 (file)
@@ -1,13 +1,13 @@
 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
+
 .. http://creativecommons.org/licenses/by/4.0
 .. http://creativecommons.org/licenses/by/4.0
-.. (c) <optionally add copywriters name>
 
 Low Latency Tunning Suggestion
 ==============================
 
 
 Low Latency Tunning Suggestion
 ==============================
 
-The correct configuration is critical for improving the NFV performance/latency.
-Even working on the same codebase, configurations can cause wildly different
-performance/latency results.
+The correct configuration is critical for improving the NFV
+performance/latency.Even working on the same codebase, configurations can cause
+wildly different performance/latency results.
 
 There are many combinations of configurations, from hardware configuration to
 Operating System configuration and application level configuration. And there
 
 There are many combinations of configurations, from hardware configuration to
 Operating System configuration and application level configuration. And there
@@ -24,10 +24,10 @@ but others may not be configurable (e.g. SMI on most platforms).
 * **Power management:**
   Most power management related features save power at the
   expensive of latency. These features include: Intel®Turbo Boost Technology,
 * **Power management:**
   Most power management related features save power at the
   expensive of latency. These features include: Intel®Turbo Boost Technology,
-  Enhanced Intel®SpeedStep, Processor C state and P state. Normally they should
-  be disabled but, depending on the real-time application design and latency
-  requirements, there might be some features that can be enabled if the impact on
-  deterministic execution of the workload is small.
+  Enhanced Intel®SpeedStep, Processor C state and P state. Normally they
+  should be disabled but, depending on the real-time application design and
+  latency requirements, there might be some features that can be enabled if
+  the impact on deterministic execution of the workload is small.
 
 * **Hyper-Threading:**
   The logic cores that share resource with other logic cores can introduce
 
 * **Hyper-Threading:**
   The logic cores that share resource with other logic cores can introduce
@@ -41,7 +41,8 @@ but others may not be configurable (e.g. SMI on most platforms).
 * **SMI (System Management Interrupt):**
   SMI runs outside of the kernel code and can potentially cause
   latency. It is a pity there is no simple way to disable it. Some vendors may
 * **SMI (System Management Interrupt):**
   SMI runs outside of the kernel code and can potentially cause
   latency. It is a pity there is no simple way to disable it. Some vendors may
-  provide related switches in BIOS but most machines do not have this capability.
+  provide related switches in BIOS but most machines do not have this
+  capability.
 
 Operating System Configuration
 ------------------------------
 
 Operating System Configuration
 ------------------------------
@@ -54,32 +55,32 @@ Operating System Configuration
   for more information.
 
 * **Memory allocation:**
   for more information.
 
 * **Memory allocation:**
-  Memory shoud be reserved for realtime applications and usually hugepage should
-  be used to reduce page fauts/TLB misses.
+  Memory shoud be reserved for realtime applications and usually hugepage
+  should be used to reduce page fauts/TLB misses.
 
 * **IRQ affinity:**
   All the non-realtime IRQs should be affinitized to non realtime CPUs to
 
 * **IRQ affinity:**
   All the non-realtime IRQs should be affinitized to non realtime CPUs to
-  reduce the impact on realtime CPUs. Some OS distributions contain an irqbalance
-  daemon which balances the IRQs among all the cores dynamically. It should be
-  disabled as well.
+  reduce the impact on realtime CPUs. Some OS distributions contain an
+  irqbalance daemon which balances the IRQs among all the cores dynamically.
+  It should be disabled as well.
 
 * **Device assignment for VM:**
 
 * **Device assignment for VM:**
-  If a device is used in a VM, then device passthrough is desirable. In this case,
-  the IOMMU should be enabled.
+  If a device is used in a VM, then device passthrough is desirable. In this
+  case,the IOMMU should be enabled.
 
 * **Tickless:**
 
 * **Tickless:**
-  Frequent clock ticks cause latency. CONFIG_NOHZ_FULL should be enabled in the
-  linux kernel. With CONFIG_NOHZ_FULL, the physical CPU will trigger many fewer
-  clock tick interrupts(currently, 1 tick per second). This can reduce latency
-  because each host timer interrupt triggers a VM exit from guest to host which
-  causes performance/latency impacts.
+  Frequent clock ticks cause latency. CONFIG_NOHZ_FULL should be enabled in
+  the linux kernel. With CONFIG_NOHZ_FULL, the physical CPU will trigger many
+  fewer clock tick interrupts(currently, 1 tick per second). This can reduce
+  latency because each host timer interrupt triggers a VM exit from guest to
+  host which causes performance/latency impacts.
 
 * **TSC:**
   Mark TSC clock source as reliable. A TSC clock source that seems to be
 
 * **TSC:**
   Mark TSC clock source as reliable. A TSC clock source that seems to be
-  unreliable causes the kernel to continuously enable the clock source watchdog
-  to check if TSC frequency is still correct. On recent Intel platforms with
-  Constant TSC/Invariant TSC/Synchronized TSC, the TSC is reliable so the
-  watchdog is useless but cause latency.
+  unreliable causes the kernel to continuously enable the clock source
+  watchdog to check if TSC frequency is still correct. On recent Intel
+  platforms with Constant TSC/Invariant TSC/Synchronized TSC, the TSC is
+  reliable so the watchdog is useless but cause latency.
 
 * **Idle:**
   The poll option forces a polling idle loop that can slightly improve the
 
 * **Idle:**
   The poll option forces a polling idle loop that can slightly improve the
@@ -92,9 +93,9 @@ Operating System Configuration
 
 * **Disable the RT throttling:**
   RT Throttling is a Linux kernel mechanism that
 
 * **Disable the RT throttling:**
   RT Throttling is a Linux kernel mechanism that
-  occurs when a process or thread uses 100% of the core, leaving no resources for
-  the Linux scheduler to execute the kernel/housekeeping tasks. RT Throttling
-  increases the latency so should be disabled.
+  occurs when a process or thread uses 100% of the core, leaving no resources
+  for the Linux scheduler to execute the kernel/housekeeping tasks. RT
+  Throttling increases the latency so should be disabled.
 
 * **NUMA configuration:**
   To achieve the best latency. CPU/Memory and device allocated for realtime
 
 * **NUMA configuration:**
   To achieve the best latency. CPU/Memory and device allocated for realtime