blob: 5151e65ff745ef1fead38369fed445d259410daa [file] [log] [blame]
John DeNisco06dcd452018-07-26 12:45:10 -04001.. _developer-friendly:
2
John DeNiscoc96d6182019-11-06 10:58:28 -08003=======================
4Features for Developers
5=======================
John DeNisco06dcd452018-07-26 12:45:10 -04006
John DeNiscoc96d6182019-11-06 10:58:28 -08007This section describes a little about the VPP environment and some of the features
8that can be used by developers.
John DeNiscoc64ba6d2018-08-02 15:03:15 -04009
John DeNisco06dcd452018-07-26 12:45:10 -040010* 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.
Paul Vinciguerra7fa3dd22019-10-27 17:28:10 -040018 * Development experience is easier compared to similar kernel code
John DeNisco06dcd452018-07-26 12:45:10 -040019 * 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>`_
John DeNiscoc96d6182019-11-06 10:58:28 -080028
29For the supported architectures click next.