.. fdio-vpp documentation master file, created by
   sphinx-quickstart on Thu Apr 12 11:02:31 2018.
   You can adapt this file completely to your liking, but it should at least
   contain the root `toctree` directive.

#########################################
What is the Vector Packet Processor (VPP)
#########################################

FD.io's Vector Packet Processor (VPP) is a fast, scalable layer 2-4
multi-platform network stack. It runs in `Linux Userspace <https://en.wikipedia.org/wiki/User_space>`_
on multiple architectures including x86, ARM, and Power architectures.

VPP's high performance network stack is quickly becoming the network stack of
choice for applications around the world.

VPP is continually being enhanced through the extensive use of plugins. The
`Data Plane Development Kit (DPDK) <https://en.wikipedia.org/wiki/Data_Plane_Development_Kit>`_
is a great example of this. It provides some important features and drivers
for VPP.

VPP supports integration with OpenStack and Kubernetes. Network
management features include configuration, counters, sampling and
more. For developers, VPP includes high-performance event-logging,
and multiple kinds of packet tracing. Development debug images
include complete symbol tables, and extensive consistency checking.

Some VPP Use-cases include vSwitches, vRouters, Gateways, Firewalls
and Load-Balancers, to name a few.

For more details click on the links below or press next.

.. toctree::
   :caption: About VPP
   :maxdepth: 1

   aboutvpp/scalar-vs-vector-packet-processing
   aboutvpp/extensible
   aboutvpp/networkstack
   aboutvpp/hoststack
   aboutvpp/developer
   aboutvpp/supported
   aboutvpp/performance
   aboutvpp/releasenotes/index
   aboutvpp/featurelist

.. toctree::
   :caption: Use Cases
   :maxdepth: 1

   usecases/containers/index
   usecases/simpleperf/index
   usecases/vppcloud/index
   usecases/vhost/index
   usecases/vmxnet3
   usecases/home_gateway
   usecases/acls
   usecases/networksim
   usecases/webapp
   usecases/container_test
   usecases/trafficgen
   usecases/ikev2/index
   usecases/contiv/index


.. toctree::
   :caption: Getting started
   :maxdepth: 2

   gettingstarted/installing/index
   gettingstarted/running/index
   gettingstarted/progressivevpp/index
   gettingstarted/troubleshooting/index

.. toctree::
    :caption: Developer Documentation
    :maxdepth: 2

    developer/build-run-debug/index
    developer/corearchitecture/index
    developer/corefeatures/index
    developer/plugindoc/index
    developer/plugins/index
    developer/devicedrivers/index
    developer/tests/overview
    developer/extras/index

.. toctree::
    :caption: Interfacing with VPP
    :maxdepth: 2

    interfacing/binapi/index
    interfacing/c/index
    interfacing/cpp/index
    interfacing/go/index
    interfacing/rust/index
    interfacing/libmemif/index



.. toctree::
    :caption: Contributing
    :maxdepth: 2

    contributing/gitreview
    contributing/writingdocs
    contributing/reportingissues/index


.. toctree::
    :caption: Debug CLI
    :maxdepth: 2

    cli-reference/gettingstarted/index
    cli-reference/interface/index
    cli-reference/index


.. toctree::
    :caption: Configuration file
    :maxdepth: 2

    configuration/config_getting_started
    configuration/reference


About this documentation

::

    VPP Version : __VPP_VERSION__
    Built on    : __BUILT_ON__
