docs: better docs, mv doxygen to sphinx
[vpp.git] / docs / aboutvpp / developer.rst
1 .. _developer-friendly:
2
3 ===================
4 Additional features
5 ===================
6
7 This section describes a little about the VPP environment and some of the features
8 that can be used by developers.
9
10 * Extensive runtime counters; throughput, `intructions per cycle <https://en.wikipedia.org/wiki/Instructions_per_cycle>`_, errors, events etc.
11 * Integrated pipeline tracing facilities
12 * Multi-language API bindings
13 * Integrated command line for debugging
14 * Fault-tolerant and upgradable
15
16   * Runs as a standard user-space process for fault tolerance, software crashes seldom require more than a process restart. 
17   * Improved fault-tolerance and upgradability when compared to running similar packet processing in the kernel, software updates never require system reboots. 
18   * Development experience is easier compared to similar kernel code
19   * Hardware isolation and protection (`iommu <https://en.wikipedia.org/wiki/Input%E2%80%93output_memory_management_unit>`_)
20
21 * Built for security
22
23   * Extensive white-box testing
24   * Image segment base address randomization
25   * Shared-memory segment base address randomization
26   * Stack bounds checking
27   * Static analysis with `Coverity <https://en.wikipedia.org/wiki/Coverity>`_
28
29 For the supported architectures click next.