blob: 5151e65ff745ef1fead38369fed445d259410daa [file] [log] [blame]
.. _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.