docs: Rewrite the what is VPP (first) section, also fix the build
[vpp.git] / docs / whatisvpp / developer.rst
diff --git a/docs/whatisvpp/developer.rst b/docs/whatisvpp/developer.rst
new file mode 100644 (file)
index 0000000..5151e65
--- /dev/null
@@ -0,0 +1,29 @@
+.. _developer-friendly:
+
+=======================
+Features for 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
+* Multi-language API bindings
+* Integrated command line for debugging
+* Fault-tolerant and upgradable
+
+  * Runs as a standard user-space process for fault tolerance, software crashes seldom require more than a process restart. 
+  * Improved fault-tolerance and upgradability when compared to running similar packet processing in the kernel, software updates never require system reboots. 
+  * Development experience is easier compared to similar kernel code
+  * Hardware isolation and protection (`iommu <https://en.wikipedia.org/wiki/Input%E2%80%93output_memory_management_unit>`_)
+
+* Built for security
+
+  * Extensive white-box testing
+  * Image segment base address randomization
+  * 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.