docs: Rewrite the what is VPP (first) section, also fix the build 96/23296/2
authorJohn DeNisco <jdenisco@cisco.com>
Wed, 6 Nov 2019 18:58:28 +0000 (10:58 -0800)
committerDave Barach <dave@barachs.net>
Wed, 6 Nov 2019 21:15:49 +0000 (16:15 -0500)
Signed-off-by: John DeNisco <jdenisco@cisco.com>
Change-Id: Ifb558171f8976a721703e74afea997d006273b5f
Signed-off-by: Dave Barach <dave@barachs.net>
32 files changed:
docs/Makefile
docs/about.rst
docs/conf.py
docs/index.rst
docs/overview/features/controlplane.rst [deleted file]
docs/overview/features/devices.rst [deleted file]
docs/overview/features/index.rst [deleted file]
docs/overview/features/integrations.rst [deleted file]
docs/overview/features/l2.rst [deleted file]
docs/overview/features/l3.rst [deleted file]
docs/overview/features/l4.rst [deleted file]
docs/overview/features/plugins.rst [deleted file]
docs/overview/features/trafficmanagement.rst [deleted file]
docs/overview/features/tunnels.rst [deleted file]
docs/overview/index.rst [deleted file]
docs/overview/performance/current_ipv4_throughput.rst [deleted file]
docs/overview/performance/current_ipv6_throughput.rst [deleted file]
docs/overview/performance/current_l2_throughput.rst [deleted file]
docs/overview/performance/current_ndr_throughput.rst [deleted file]
docs/overview/performance/trending_ipv4_throughput.rst [deleted file]
docs/overview/performance/trending_ipv6_throughput.rst [deleted file]
docs/overview/performance/trending_l2_throughput.rst [deleted file]
docs/overview/whatisvpp/fast.rst [deleted file]
docs/overview/whatisvpp/index.rst [deleted file]
docs/whatisvpp/developer.rst [moved from docs/overview/whatisvpp/developer.rst with 81% similarity]
docs/whatisvpp/extensible.rst [moved from docs/overview/whatisvpp/extensible.rst with 88% similarity]
docs/whatisvpp/hoststack.rst [new file with mode: 0644]
docs/whatisvpp/index.rst [new file with mode: 0644]
docs/whatisvpp/networkstack.rst [moved from docs/overview/whatisvpp/dataplane.rst with 68% similarity]
docs/whatisvpp/performance.rst [moved from docs/overview/performance/index.rst with 51% similarity]
docs/whatisvpp/scalar-vs-vector-packet-processing.rst [moved from docs/overview/whatisvpp/what-is-vector-packet-processing.rst with 76% similarity]
docs/whatisvpp/supported.rst [moved from docs/overview/supported.rst with 92% similarity]

index a67b28a..4e8f163 100644 (file)
@@ -41,6 +41,7 @@ ifeq ($(OS_ID),ubuntu)
 else ifneq ("$(wildcard /etc/redhat-release)","")
        @sudo yum install $(CONFIRM) $(DOC_RPM_DEPENDS)
 endif
 else ifneq ("$(wildcard /etc/redhat-release)","")
        @sudo yum install $(CONFIRM) $(DOC_RPM_DEPENDS)
 endif
-       @python3 -m pip install sphinxcontrib-spelling
-       @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" -W -b spelling  $(O)
+# Disable spell checking for now
+#      @python3 -m pip install sphinxcontrib-spelling
+#      @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" -W -b spelling  $(O)
        @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
        @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
index 786d896..eae97b2 100644 (file)
@@ -4,6 +4,6 @@
 About
 =====
 
 About
 =====
 
-**VPP Version:** 20.01-rc0~171-g1146ff4
+**VPP Version:** 20.01-rc0~594-g340c15c6e
 
 
-**Built on:** Wed Sep 11 12:59:45 GMT 2019
+**Built on:** Wed Nov  6 18:47:36 GMT 2019
index eb66cb3..68dab30 100644 (file)
 
 # -- Project information -----------------------------------------------------
 
 
 # -- Project information -----------------------------------------------------
 
-project = u'Vector Packet Processor'
+project = u'The Vector Packet Processor'
 copyright = u'2018, Linux Foundation'
 author = u'John DeNisco'
 
 # The short X.Y version
 version = u'master'
 # The full version, including alpha/beta/rc tags
 copyright = u'2018, Linux Foundation'
 author = u'John DeNisco'
 
 # The short X.Y version
 version = u'master'
 # The full version, including alpha/beta/rc tags
-release = u'01'
+release = u'20.01'
 
 
 # -- General configuration ---------------------------------------------------
 
 
 # -- General configuration ---------------------------------------------------
index 0fa3b21..391c583 100644 (file)
@@ -3,25 +3,35 @@
    You can adapt this file completely to your liking, but it should at least
    contain the root `toctree` directive.
 
    You can adapt this file completely to your liking, but it should at least
    contain the root `toctree` directive.
 
-#########
-FD.io VPP
-#########
+#########################################
+What is the Vector Packet Processor (VPP)
+#########################################
 
 
-FD.io Vector Packet Processing (VPP) is a fast, scalable layer 2-4
-multi-platform network stack. VPP supports integration with OpenStack
-and Kubernetes. Network management features include configuration,
-counters and sampling. Development tools include plugin extensibility,
-high-performance event-logging, multiple kinds of packet tracing;
-debug images include extensive consistency checking.
+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 is built using the `Dataplane Development Kit (DPDK) <https://en.wikipedia.org/wiki/Data_Plane_Development_Kit>`_.
 
 
-Use-cases include vSwitch, vRouter, Gateways, Firewalls and Load
-Balancers, to name several. Out of the box, VPP works as a software
-development kit or an appliance.
+VPP benefits include high performance, proven technology, modularity,
+and a rich feature set.
+
+VPP supports integration with OpenStack and Kubernetes. Network
+management features include configuration, counters, sampling and
+more. For developers, VPP includes plugin extensibility,
+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. Out of the box, VPP can work as a
+software development kit or an appliance.
+
+For more details click on the links below or press next.
 
 .. toctree::
    :maxdepth: 2
 
 
 .. toctree::
    :maxdepth: 2
 
-   overview/index
+   whatisvpp/index.rst
    gettingstarted/index
    links/index
    usecases/index
    gettingstarted/index
    links/index
    usecases/index
diff --git a/docs/overview/features/controlplane.rst b/docs/overview/features/controlplane.rst
deleted file mode 100644 (file)
index 849617a..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-.. _cp:
-
-=============
-Control Plane
-=============
-
-This section identifies the features associated with Control Plane:
-
-* DHCP client/proxy
-
-* DHCPv6 Proxy
-
diff --git a/docs/overview/features/devices.rst b/docs/overview/features/devices.rst
deleted file mode 100644 (file)
index f3ecd32..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-.. _dev:
-
-=======
-Devices
-=======
-
-Hardware
---------
-* `DPDK <https://www.dpdk.org/>`_
-
-  * `Network Interfaces <https://doc.dpdk.org/guides/nics/>`_
-  * `Cryptographic Devices <https://doc.dpdk.org/guides/cryptodevs/>`_
-
-* `Open Data Plane <https://github.com/FDio/odp4vpp>`_
-* `Intel Ethernet Adaptive Virtual Function <https://www.intel.com/content/dam/www/public/us/en/documents/product-specifications/ethernet-adaptive-virtual-function-hardware-spec.pdf>`_
-
-Operating System
-----------------
-* `Netmap <http://info.iet.unipi.it/~luigi/netmap/>`_
-* `af_packet <http://man7.org/linux/man-pages/man7/packet.7.html>`_
-* Tap V2 (FastTap)
-
-Virtualization:
----------------
-* SSVM
-* Vhost / VirtIO
-
-Containers
-----------
-
-* Vhost-user
-* MemIF
-
diff --git a/docs/overview/features/index.rst b/docs/overview/features/index.rst
deleted file mode 100644 (file)
index dc825c4..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-.. _features:
-
-========
-Features
-========
-
-The table below identifies different features that are associated to VPP. To see more details about a specific feature, just click the hyperlink associated to the feature noted in the table below.
-
-.. rst-class:: center-align-table
-
-+-------------------------+-----------+-----------+
-| :ref:`sdn`              |           |           |
-+------------+------------+ :ref:`cp` |           |
-|            | :ref:`l4`  |           |           |
-|            +------------+-----------+ :ref:`pg` |
-| :ref:`tun` | :ref:`l3`  |           |           |
-|            +------------+ :ref:`tm` |           |
-|            | :ref:`l2`  |           |           |
-+------------+------------+-----------+-----------+
-| :ref:`dev`                                      |
-+-------------------------------------------------+
-
-.. toctree::
-   :hidden:
-
-   devices.rst
-   integrations.rst
-   trafficmanagement.rst
-   l2.rst
-   l3.rst
-   l4.rst
-   tunnels.rst
-   controlplane.rst
-   plugins.rst
diff --git a/docs/overview/features/integrations.rst b/docs/overview/features/integrations.rst
deleted file mode 100644 (file)
index 848e864..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-.. _sdn:
-
-========================
-SDN & Cloud Integrations
-========================
diff --git a/docs/overview/features/l2.rst b/docs/overview/features/l2.rst
deleted file mode 100644 (file)
index 939afb7..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-.. _l2:
-
-=======
-Layer 2
-=======
-
-This section identifies the features associated with Layer 2:
-
-MAC Layer
----------
-* Ethernet
-
-Discovery
----------
-* Cisco Discovery Protocol v2 (CDP)
-* Link Layer Discovery Protocol (LLDP)
-
-Link Layer Control Protocol
----------------------------
-* Bit Index Explicit Replication – Link Layer Multi-cast forwarding.
-* Link Layer Control (LLC) - multiplex protocols over the MAC layer. 
-* Spatial Reuse Protocol (SRP)
-* High-Level Data Link Control (HDLC)
-* Logical link control (LLC)
-* Link Agg Control Protocol (Active/Active, Active/Passive) – 18.04 
-
-Virtual Private Networks
-------------------------
-* MPLS 
-  
-  * MPLS-o-Ethernet – Deep label stacks supported
-
-* Virtual Private LAN Service (VPLS)
-* VLAN
-* Q-in-Q
-* Tag-rewrite (VTR) - push/pop/Translate (1:1,1:2, 2:1,2:2)
-* Ethernet flow point Filtering
-* Layer 2 Cross Connect
-
-Bridging
----------
-* Bridge Domains
-* MAC Learning (50k addresses)
-* Split-horizon group support
-* Flooding
-
-ARP
----
-* Proxy
-* Termination
-* Bidirectional Forwarding Detection
-
-Integrated Routing and Bridging (IRB)
--------------------------------------
-* Flexibility to both route and switch between groups of ports.
-* Bridged Virtual Interface (BVI) Support, allows traffic switched traffic to be routed.
-
-
diff --git a/docs/overview/features/l3.rst b/docs/overview/features/l3.rst
deleted file mode 100644 (file)
index 57ae10f..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-.. _l3:
-
-=======
-Layer 3
-=======
-
-This section identifies the features associated with Layer 3:
-
-IP Layer
---------
-* ICMP
-* IPv4
-* IPv6
-* IPSEC
-* Link Local Addressing
-
-MultiCast
----------
-* Multicast FiB
-* IGMP
-
-Virtual Routing and forwarding (VRF)
-------------------------------------
-* VRF scaling, thousands of tables. 
-* Controlled cross-VRF lookups
-
-Multi-path
-----------
-* Equal Cost Multi Path (ECMP)
-* Unequal Cost Multi Path (UCMP)
-
-IPv4
-----
-* ARP
-* ARP Proxy
-* ARP Snooping
-
-IPv6
-----
-* Neighbour discovery (ND)
-* ND Proxy
-* Router Advertisement
-* Segment Routing
-* Distributed Virtual Routing Resolution
-
-Forwarding Information Base (FIB)
----------------------------------
-
-* Hierarchical FIB
-* Memory efficient
-* Multi-million entry scalable
-* Lockless/concurrent updates
-* Recursive lookups
-* Next hop failure detection
-* Shared FIB adjacencies
-* Multicast support
-* MPLS support
diff --git a/docs/overview/features/l4.rst b/docs/overview/features/l4.rst
deleted file mode 100644 (file)
index 28e1df5..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-.. _l4:
-
-=======
-Layer 4
-=======
-
-This section identifies the features associated with Layer 4:
-
-* Session: 
-   - connectionless transports
-   - datagram reception and transmission
-* TCP: congestion control 
-* UDP: datagram mode
-* TLS async support
diff --git a/docs/overview/features/plugins.rst b/docs/overview/features/plugins.rst
deleted file mode 100644 (file)
index 0394a81..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-.. _pg:
-
-=======
-Plugins
-=======
-
-This section identifies the features associated with Plugins:
-
-* iOAM
diff --git a/docs/overview/features/trafficmanagement.rst b/docs/overview/features/trafficmanagement.rst
deleted file mode 100644 (file)
index e56af50..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-.. _tm:
-
-==================
-Traffic Management
-==================
-
-This section identifies the features associated with Traffic Management:
-
-IP Layer Input Checks
----------------------
-* Source Reverse Path Forwarding
-* Time To Live expiration
-* IP header checksum
-* Layer 2 Length < IP Length
-
-Classifiers
------------
-* Multiple million Classifiers - Arbitrary N-tuple
-
-Policers
---------
-* Colour Aware & Token Bucket
-* Rounding Closest/Up/Down
-* Limits in PPS/KBPS
-* Types: 
-
-  * Single Rate Two Colour
-  * Single Rate Three Colour
-  * Dual Rate Three Colour
-
-* Action Triggers
-
-  * Conform
-  * Exceed
-  * Violate
-
-* Actions Type
-
-  * Drop
-  * Transmit
-  * Mark-and-transmit
-
-Switched Port Analyzer (SPAN)
-* mirror traffic to another switch port
-
-ACLs
-----
- * Stateful
- * Stateless
-
-COP
----
-
-MAC/IP Pairing
---------------
-Security feature
-
diff --git a/docs/overview/features/tunnels.rst b/docs/overview/features/tunnels.rst
deleted file mode 100644 (file)
index 0f2b2d2..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-.. _tun:
-
-=======
-Tunnels
-=======
-
-This section identifies the features associated with Tunnels:
-
-Layer 2
--------
-* L2TP
-* PPP
-* VLAN
-
-Layer 3
--------
-* Mapping of Address and Port with Encapsulation (MAP-E)
-* Lightweight IPv4 over IPv6
-
-   * An Extension to the Dual-Stack Lite Architecture
-
-* GENEVE
-* VXLAN
-
-Segment Routing
----------------
-* IPv6
-* MPLS
-
-Generic Routing Encapsulation (GRE)
-* GRE over IPSEC
-* GRE over IP
-* MPLS
-* NSH
diff --git a/docs/overview/index.rst b/docs/overview/index.rst
deleted file mode 100644 (file)
index 8d1e434..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-.. _overview:
-
-==========
-Overview
-==========
-
-This section discusses the following information:
-
-* What VPP is, what  packet processing provides and the benefits VPP provides
-
-
-
-.. toctree::
-   :maxdepth: 1
-
-   whatisvpp/index.rst
-   features/index.rst
-   performance/index.rst
-   supported.rst
diff --git a/docs/overview/performance/current_ipv4_throughput.rst b/docs/overview/performance/current_ipv4_throughput.rst
deleted file mode 100644 (file)
index 3a34da7..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-.. _current_ipv4_throughput:
-
-.. toctree::
-
-IPv4 Routed-Forwarding Performance Tests
-****************************************
-
-VPP NDR 64B packet throughput in 1t1c setup (1thread, 1core) is presented in the graph below.
-
-.. raw:: html
-
-    <iframe src="https://docs.fd.io/csit/rls1804/report/_static/vpp/64B-1t1c-ethip4-ip4-ndrdisc.html" width="1200" height="1000" frameborder="0">
diff --git a/docs/overview/performance/current_ipv6_throughput.rst b/docs/overview/performance/current_ipv6_throughput.rst
deleted file mode 100644 (file)
index 119f28f..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-.. _current_ipv6_throughput:
-
-.. toctree::
-
-IPv6 Routed-Forwarding Performance Tests
-****************************************
-
-VPP NDR 78B packet throughput in 1t1c setup (1 thread, 1 core) is presented in the graph below.
-
-.. raw:: html
-
-    <iframe src="https://docs.fd.io/csit/rls1801/report/_static/vpp/78B-1t1c-ethip6-ip6-ndrdisc.html" width="1200" height="1000" frameborder="0">
-
-
-
-
diff --git a/docs/overview/performance/current_l2_throughput.rst b/docs/overview/performance/current_l2_throughput.rst
deleted file mode 100644 (file)
index 532e6dc..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
- .. _current_l2_throughput:
-
-.. toctree::
-
-L2 Ethernet Switching Throughput Tests
-***************************************
-
-VPP NDR 64B packet throughput in 1 Core, 1 Thread setup, is presented in the graph below.
-
-.. raw:: html
-
-    <iframe src="https://docs.fd.io/csit/rls1801/report/_static/vpp/64B-1t1c-l2-sel2-ndrdisc.html" width="1200" height="1000" frameborder="0">
diff --git a/docs/overview/performance/current_ndr_throughput.rst b/docs/overview/performance/current_ndr_throughput.rst
deleted file mode 100644 (file)
index c734831..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-.. _current_ndr_throughput:
-
-.. toctree::
-
-NDR Performance Tests
-*********************
-
-This is a VPP NDR 64B packet throughput in 1 Core, 1 Thread setup, live graph of the NDR (No Drop Rate) L2 Performance Tests. 
-
-.. raw:: html
-
-    <iframe src="https://docs.fd.io/csit/rls1804/report/_static/vpp/64B-1t1c-l2-sel1-ndrdisc.html" width="800" height="1000" frameborder="0">
-
diff --git a/docs/overview/performance/trending_ipv4_throughput.rst b/docs/overview/performance/trending_ipv4_throughput.rst
deleted file mode 100644 (file)
index 4ba028b..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-.. _trending_ipv4_throughput:
-
-.. toctree::
-
-IPv4 Routed-Forwarding Performance Tests
-****************************************
-
-This is a live graph of the IPv4 Routed Forwarding Switching Performance Tests. 
-
-.. raw:: html
-
-    <iframe src="https://docs.fd.io/csit/master/trending/_static/vpp/cpta-ip4-1t1c-x520.html" width="1200" height="1000" frameborder="0">
-
-
diff --git a/docs/overview/performance/trending_ipv6_throughput.rst b/docs/overview/performance/trending_ipv6_throughput.rst
deleted file mode 100644 (file)
index 8217b41..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-.. _trending_ipv6_throughput:
-
-.. toctree::
-
-IPv6 Routed-Forwarding Performance Tests
-****************************************
-
-VPP NDR 78B packet throughput in 1t1c setup (1 thread, 1 core) is presented in the trending graph below.
-
-.. raw:: html
-
-    <iframe src="https://docs.fd.io/csit/master/trending/_static/vpp/cpta-ip6-1t1c-x520-1.html" width="1200" height="1000" frameborder="0">
-
-
-
-
diff --git a/docs/overview/performance/trending_l2_throughput.rst b/docs/overview/performance/trending_l2_throughput.rst
deleted file mode 100644 (file)
index 59bb3bf..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
- .. _trending_l2_throughput:
-
-.. toctree::
-
-L2 Ethernet Switching Performance Tests
-***************************************
-
-This is a live graph of the 1 Core, 1 Thread, L2 Ethernet Switching Performance Tests Test on the x520 NIC.
-
-.. raw:: html
-
-    <iframe src="https://docs.fd.io/csit/master/trending/_static/vpp/cpta-l2-1t1c-x520.html" width="1200" height="1000" frameborder="0">
-
-
diff --git a/docs/overview/whatisvpp/fast.rst b/docs/overview/whatisvpp/fast.rst
deleted file mode 100644 (file)
index 9e9e314..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-.. _fast:
-
-================================
-Fast, Scalable and Deterministic
-================================
-
-This section describes the ways that VPP is fast, scalable and deterministic:
-
-* `Continuous integration and system testing (CSIT) <https://wiki.fd.io/view/CSIT#Start_Here>`_
-
-  * Including continuous & extensive, latency and throughput testing
-
-* Layer 2 Cross Connect (L2XC), typically achieve 15+ Mpps per core.
-* Tested to achieve **zero** packet drops and ~15µs latency.
-* Performance scales linearly with core/thread count
-* Supporting millions of concurrent lookup tables entries
-
-Please see :ref:`performance` for more information.
diff --git a/docs/overview/whatisvpp/index.rst b/docs/overview/whatisvpp/index.rst
deleted file mode 100644 (file)
index f8cb25d..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-.. _whatisvpp:
-
-=========================================
-What is VPP?
-=========================================
-
-FD.io's Vector Packet Processing (VPP) technology is a :ref:`fast`,
-:ref:`packet-processing` stack that runs on commodity CPUs. It provides
-out-of-the-box production quality switch/router functionality and much, much
-more. FD.io VPP is at the same time, an :ref:`extensible` and
-:ref:`developer-friendly` framework, capable of boot-strapping the development
-of packet-processing applications. The benefits of FD.io VPP are its high
-performance, proven technology, its modularity and flexibility, integrations and
-rich feature set.
-
-FD.io VPP is vector packet processing software, to learn more about what that
-means, see the :ref:`what-is-vector-packet-processing` section. 
-
-For more detailed information on FD.io features, see the following sections:
-
-.. toctree::
-   :maxdepth: 1
-
-   dataplane.rst
-   fast.rst
-   developer.rst
-   extensible.rst
similarity index 81%
rename from docs/overview/whatisvpp/developer.rst
rename to docs/whatisvpp/developer.rst
index 040762b..5151e65 100644 (file)
@@ -1,10 +1,11 @@
 .. _developer-friendly:
 
 .. _developer-friendly:
 
-==================
-Developer Friendly
-==================
+=======================
+Features for Developers
+=======================
 
 
-This section describes the different ways VPP is friendly to developers:
+This section describes a little about the VPP environment and some of the features
+that can be used by developers.
 
 * Extensive runtime counters; throughput, `intructions per cycle <https://en.wikipedia.org/wiki/Instructions_per_cycle>`_, errors, events etc.
 * Integrated pipeline tracing facilities
 
 * Extensive runtime counters; throughput, `intructions per cycle <https://en.wikipedia.org/wiki/Instructions_per_cycle>`_, errors, events etc.
 * Integrated pipeline tracing facilities
@@ -24,3 +25,5 @@ This section describes the different ways VPP is friendly to developers:
   * Shared-memory segment base address randomization
   * Stack bounds checking
   * Static analysis with `Coverity <https://en.wikipedia.org/wiki/Coverity>`_
   * Shared-memory segment base address randomization
   * Stack bounds checking
   * Static analysis with `Coverity <https://en.wikipedia.org/wiki/Coverity>`_
+
+For the supported architectures click next.
similarity index 88%
rename from docs/overview/whatisvpp/extensible.rst
rename to docs/whatisvpp/extensible.rst
index e7762d7..1df3b9f 100644 (file)
@@ -1,16 +1,18 @@
 .. _extensible:
 
 .. _extensible:
 
-=============================
-Extensible and Modular Design
-=============================
+===========================
+The Packet Processing Graph
+===========================
+
+At the core of the FD.io VPP design is the **Packet Procerssing Graph**
+
+This makes the software:
 
 * Pluggable, easy to understand & extend
 * Mature graph node architecture
 * Full control to reorganize the pipeline
 * Fast, plugins are equal citizens
 
 
 * Pluggable, easy to understand & extend
 * Mature graph node architecture
 * Full control to reorganize the pipeline
 * Fast, plugins are equal citizens
 
-**Modular, Flexible, and Extensible**
-
 The FD.io VPP packet processing pipeline is decomposed into a ‘packet processing
 graph’.  This modular approach means that anyone can ‘plugin’ new graph
 nodes. This makes VPP easily extensible and means that plugins can be
 The FD.io VPP packet processing pipeline is decomposed into a ‘packet processing
 graph’.  This modular approach means that anyone can ‘plugin’ new graph
 nodes. This makes VPP easily extensible and means that plugins can be
@@ -37,3 +39,5 @@ for libraries, and then dynamically loads each one in turn on startup.
 A plugin can introduce new graph nodes or rearrange the packet processing graph. 
 You can build a plugin completely independently of the FD.io VPP source tree,
 which means you can treat it as an independent component.
 A plugin can introduce new graph nodes or rearrange the packet processing graph. 
 You can build a plugin completely independently of the FD.io VPP source tree,
 which means you can treat it as an independent component.
+
+For more on the network stack press next.
diff --git a/docs/whatisvpp/hoststack.rst b/docs/whatisvpp/hoststack.rst
new file mode 100644 (file)
index 0000000..77e259a
--- /dev/null
@@ -0,0 +1,26 @@
+.. _hoststack:
+
+==============
+TCP Host Stack
+==============
+
+VPP’s host stack leverages VPP’s graph based forwarding model and vectorized packet
+processing to ensure high throughput and scale transport protocol termination. It
+exposes apis that apart from allowing for efficient user-space app consumption and
+generation of data, also enables highly efficient local inter-app communication. 
+At a high level VPP’s host stack consists of 3 major components: 
+
+* A session layer that facilitates interaction between transport protocols and applications
+* Pluggable transport protocols, including TCP, QUIC, TLS, UDP
+* VCL (VPPComs library) a set of libraries meant to ease the consumability of the stack from application perspective
+All of these components were custom built to fit within VPP’s architecture and to
+leverage its speed. As a result, a significant amount of effort was invested into:
+
+*  building a transport pluggable session layer that abstracts the interaction between applications and transports using a custom-built shared memory infrastructure. Notably, this also allows for transport protocols that are typically implemented in applications, like QUIC and TLS, to be implemented within VPP. 
+* a clean slate TCP implementation that supports vectorized packet processing and follows VPP’s highly scalable threading model. The implementation is RFC compliant, supports a high number of high-speed TCP protocol features and it was validated using Defensic’s Codenomicon 1M+ tests suite. 
+* VCL, a library that emulates traditional asynchronous communication functions in user-space, all while allowing for new patterns to be developed, if needed. 
+* implementing a high performance “cut-through” communication mode that enables applications attached to vpp to transparently exchange data over shared memory without incurring the extra cost of a traditional transport protocol. Testing has shown this to be much more efficient than traditional inter-container networking.
+
+For developer features press next.
diff --git a/docs/whatisvpp/index.rst b/docs/whatisvpp/index.rst
new file mode 100644 (file)
index 0000000..464119c
--- /dev/null
@@ -0,0 +1,37 @@
+.. _whatisvpp:
+
+=================================
+The Vector Packet Processor (VPP)
+=================================
+
+This section describes some of the core concepts and features of FD.io VPP.
+
+To start with FD.io VPP uses a technique called Vector Packet Processing.
+This gives FD.io VPP a siginficant performance improvement over packet
+processing applications that use scalar processing. 
+
+Also, At the heart of Fd.io VPP's modular design is a 'Packet Processing Graph'.
+This makes FD.io VPP scalable and easily extensible.
+
+The FD.io software also includes a feature rich network stack. This includes
+a TCP host stack that utilizes VPP’s graph based forwarding model and vectorized
+packet processing.
+
+FD.io VPP is tested nightly for functionality and performance with the
+CSIT project.
+
+For more information on any of these features click on the links below or
+press next.
+
+.. toctree::
+   :maxdepth: 1
+
+   scalar-vs-vector-packet-processing.rst
+   extensible.rst
+   networkstack.rst
+   hoststack.rst
+   developer.rst
+   supported.rst
+   performance.rst
+
+Press next for more about Scalar/Vector Packet processing.
similarity index 68%
rename from docs/overview/whatisvpp/dataplane.rst
rename to docs/whatisvpp/networkstack.rst
index daf2124..20c4708 100644 (file)
@@ -1,28 +1,30 @@
-.. _packet-processing:
+.. _network-stack:
 
 
-===================
-Packet Processing
-===================
+=============
+Network Stack
+=============
 
 
-This section identifies different components of packet processing and describes their benefits:
+This section describes a little about the FD.io network stack and describes some benefits:
 
 * Layer 2 - 4 Network Stack
 
   * Fast lookup tables for routes, bridge entries
   * Arbitrary n-tuple classifiers 
   * Control Plane, Traffic Management and Overlays
 
 * Layer 2 - 4 Network Stack
 
   * Fast lookup tables for routes, bridge entries
   * Arbitrary n-tuple classifiers 
   * Control Plane, Traffic Management and Overlays
+
  
 * `Linux <https://en.wikipedia.org/wiki/Linux>`_ and `FreeBSD <https://en.wikipedia.org/wiki/FreeBSD>`_ support
 
  
 * `Linux <https://en.wikipedia.org/wiki/Linux>`_ and `FreeBSD <https://en.wikipedia.org/wiki/FreeBSD>`_ support
 
-  * Wide support for standard Operating System Interfaces such as AF_Packet, Tun/Tap & Netmap.
+  * Support for standard Operating System Interfaces such as AF_Packet, Tun/Tap & Netmap.
 
 
-* Wide network and cryptographic hardware support with `DPDK <https://www.dpdk.org/>`_.
+* Network and cryptographic hardware support with `DPDK <https://www.dpdk.org/>`_.
 * Container and Virtualization support
 
   * Para-virtualized interfaces; Vhost and Virtio
   * Network Adapters over PCI passthrough
   * Native container interfaces; MemIF
   
 * Container and Virtualization support
 
   * Para-virtualized interfaces; Vhost and Virtio
   * Network Adapters over PCI passthrough
   * Native container interfaces; MemIF
   
+* Host Stack
 * Universal Data Plane: one code base, for many use cases
  
   * Discrete appliances; such as `Routers <https://en.wikipedia.org/wiki/Router_(computing)>`_ and `Switches <https://en.wikipedia.org/wiki/Network_switch>`_.
 * Universal Data Plane: one code base, for many use cases
  
   * Discrete appliances; such as `Routers <https://en.wikipedia.org/wiki/Router_(computing)>`_ and `Switches <https://en.wikipedia.org/wiki/Network_switch>`_.
@@ -32,5 +34,6 @@ This section identifies different components of packet processing and describes
 
 * Out of the box production quality, with thanks to `CSIT <https://wiki.fd.io/view/CSIT#Start_Here>`_. 
 
 
 * Out of the box production quality, with thanks to `CSIT <https://wiki.fd.io/view/CSIT#Start_Here>`_. 
 
-For more information, please see :ref:`features` for the complete list.
+For more information, please see :ref:`featuresbyrelease` for the complete list.
 
 
+For more on the TCP Host Stack press next.
similarity index 51%
rename from docs/overview/performance/index.rst
rename to docs/whatisvpp/performance.rst
index 25e3897..9b0fb21 100644 (file)
@@ -3,10 +3,8 @@
 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:
+One of the benefits of FD.io VPP is it's high performance on relatively low-power computing.
+Included are the following.
 
 * A high-performance user-space network stack designed for commodity hardware:
 
 
 * A high-performance user-space network stack designed for commodity hardware:
 
@@ -30,43 +28,43 @@ These features have been designed to take full advantage of common micro-process
 * Cache-lined aligned buffers for cache and memory efficiency
 
 
 * Cache-lined aligned buffers for cache and memory efficiency
 
 
-Packet Throughput Graphs
-^^^^^^^^^^^^^^^^^^^^^^^^
+Continuous System Integration and Testing (CSIT)
+------------------------------------------------
 
 
-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/>`_:
+The Continuous System Integration and Testing (CSIT) project provides functional and performance
+testing for FD.io VPP. This testing is focused on functional and performance regresssions. The results
+are posted to `CSIT Test Report <https://docs.fd.io/csit/master/report/>`_.
 
 
-.. toctree::
+For more about CSIT checkout the following links:
 
 
-    current_l2_throughput.rst    
-    current_ndr_throughput.rst
-    current_ipv4_throughput.rst
-    current_ipv6_throughput.rst
+* `CSIT Code Documentation <https://docs.fd.io/csit/master/doc/overview.html>`_
+* `CSIT Test Overview <https://docs.fd.io/csit/master/report/introduction/overview.html>`_
+* `VPP Performance Dashboard <https://docs.fd.io/csit/master/trending/introduction/index.html>`_
 
 
-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:
+CSIT Packet Throughput examples
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 
-.. toctree::
+Following are pointers to a few of the CSIT test reports. The test's titles read like this:
 
 
-    trending_l2_throughput.rst
-    trending_ipv4_throughput.rst
-    trending_ipv6_throughput.rst
+<packet size>-<number of threads><number of cores>-<test>-<interface type> 
 
 
-For More information on CSIT 
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+For example the test with the title 64b-2t1c-l2switching-base-i40e is the
+test that does l2 switching using 64 byte packets, 2 threads, 1 core using an i40e
+interface.
 
 
-The FD.io CSIT is implemented with below platforms:
+Here are a few examples:
 
 
-* x86/64
-* ARM-AArch64
+* `L2 Ethernet switching <https://docs.fd.io/csit/master/report/vpp_performance_tests/packet_throughput_graphs/l2.html>`_
+* `IPv4 Routing <https://docs.fd.io/csit/master/report/vpp_performance_tests/packet_throughput_graphs/ip4.html>`_
+* `IPv6 Routing <https://docs.fd.io/csit/master/report/vpp_performance_tests/packet_throughput_graphs/ip6.html>`_
 
 
-   * Huawei TaiShan 2280
-   * Marvell MACCHIATObin
 
 
+Trending Throughput Graphs
+^^^^^^^^^^^^^^^^^^^^^^^^^^ 
 
 
-These are FD.io Continuous System Integration and Testing (CSIT)'s documentation links:
+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:
 
 
-* `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>`_
+* `L2 Ethernet Switching Trending <https://docs.fd.io/csit/master/trending/trending/l2.html>`_
+* `IPv4 Routing Trending <https://docs.fd.io/csit/master/trending/trending/ip4.html>`_
+* `IPv6 Routing Trending <https://docs.fd.io/csit/master/trending/trending/ip6.html>`_
@@ -1,21 +1,16 @@
-:orphan:
+.. _scalar_vector:
 
 
-.. _what-is-vector-packet-processing:
+==================================
+Scalar vs Vector packet processing
+==================================
 
 
-=================================
-What is vector packet processing?
-=================================
+FD.io VPP is developed using vector packet processing, as opposed to
+scalar packet processing.
 
 
-FD.io VPP is developed using vector packet processing concepts, as opposed to
-scalar packet processing, these concepts are explained in the following sections. 
-
-Vector packet processing is a common approach among high performance `Userspace
-<https://en.wikipedia.org/wiki/User_space>`_ packet processing applications such
-as developed with FD.io VPP and `DPDK
-<https://en.wikipedia.org/wiki/Data_Plane_Development_Kit>`_. The scalar based
-approach tends to be favoured by Operating System `Kernel
-<https://en.wikipedia.org/wiki/Kernel_(operating_system)>`_ Network Stacks and
-Userspace stacks that don't have strict performance requirements.
+Vector packet processing is a common approach among high performance packet
+processing applications such FD.io VPP and `DPDK <https://en.wikipedia.org/wiki/Data_Plane_Development_Kit>`_.
+The scalar based approach tends to be favoured by network stacks that
+don't necessarily have strict performance requirements.
 
 **Scalar Packet Processing**
 
 
 **Scalar Packet Processing**
 
@@ -71,3 +66,4 @@ The further optimizations that this approaches enables are pipelining and
 prefetching to minimize read latency on table data and parallelize packet loads
 needed to process packets.
 
 prefetching to minimize read latency on table data and parallelize packet loads
 needed to process packets.
 
+Press next for more on Packet Processing Graphs.
similarity index 92%
rename from docs/overview/supported.rst
rename to docs/whatisvpp/supported.rst
index 959d448..b201def 100644 (file)
@@ -27,3 +27,5 @@ recent LTS operating systems releases:
    * Ubuntu 
    * CentOS 
    * OpenSUSE
    * Ubuntu 
    * CentOS 
    * OpenSUSE
+
+For more about VPP performance press next.