.. _performance:

Performance
===========

Overview
^^^^^^^^

One of the benefits of FD.io VPP, is high performance on relatively low-power computing, this performance is based on the following features:

* A high-performance user-space network stack designed for commodity hardware.

  - L2, L3 and L4 features and encapsulations.

* Optimized packet interfaces supporting a multitude of use cases.

  - An integrated vhost-user backend for high speed VM-to-VM connectivity.
  - An integrated memif container backend for high speed Container-to-Container connectivity. 
  - An integrated vhost based interface to punt packets to the Linux Kernel. 

* The same optimized code-paths run execute on the host, and inside VMs and Linux containers.
* Leverages best-of-breed open source driver technology: `DPDK <https://www.dpdk.org/>`_.
* Tested at scale; linear core scaling, tested with millions of flows and mac addresses.  

These features have been designed to take full advantage of common micro-processor optimization techniques, such as: 

* Reducing cache and TLS misses by processing packets in vectors. 
* Realizing `IPC <https://en.wikipedia.org/wiki/Instructions_per_cycle>`_ gains with vector instructions such as: SSE, AVX and NEON.
* Eliminating mode switching, context switches and blocking, to always be doing useful work.  
* Cache-lined aliged buffers for cache and memory efficiency.


Packet Throughput Graphs
^^^^^^^^^^^^^^^^^^^^^^^^

These are some of the packet throughput graphs for FD.io VPP 18.04 from the CSIT `18.04 benchmarking report <https://docs.fd.io/csit/rls1804/report/>`_.   

.. toctree::

    current_l2_throughput.rst    
    current_ndr_throughput.rst
    current_ipv4_throughput.rst
    current_ipv6_throughput.rst

Trending Throughput Graphs
^^^^^^^^^^^^^^^^^^^^^^^^^^ 

These are some of the trending packet throughput graphs from the CSIT `trending dashboard <https://docs.fd.io/csit/master/trending/introduction/index.html>`_. **Please note that**, performance in the trending graphs will change on a nightly basis in line with the software development cycle.

.. toctree::

    trending_l2_throughput.rst
    trending_ipv4_throughput.rst
    trending_ipv6_throughput.rst

For More information on CSIT 
^^^^^^^^^^^^^^^^^^^^^^^^^^^^

The FD.io CSIT is implemented with below platforms:

* - x86/64
* - ARM-AArch64

   * - Huawei TaiShan 2280
   * - Marvell MACCHIATObin


These are FD.io Continuous System Integration and Testing (CSIT)'s documentation links.

* `CSIT Code Documentation <https://docs.fd.io/csit/master/doc/overview.html>`_
* `CSIT Test Overview <https://docs.fd.io/csit/rls1804/report/introduction/overview.html>`_
* `VPP Performance Dashboard <https://docs.fd.io/csit/master/trending/introduction/index.html>`_
