The Vector Packet Processor Logo
v23.06-rc0-196-g2844aa186

About VPP

  • Scalar vs Vector packet processing
  • The Packet Processing Graph
  • Network Stack Features
  • Host Stack
  • Additional features
  • Supported archs and OS
  • Performance
  • Release notes
  • VPP Supported Features

Use Cases

  • VPP with Containers
  • VPP with Iperf3 and TRex
  • VPP in the Cloud
  • VPP with Virtual Machines
  • VPP with VMware/Vmxnet3
  • VPP as a Home Gateway
  • Access Control Lists with VPP
  • Generating traffic with VPP
  • Web applications with VPP
  • Simulating networks with VPP
  • Stateless Traffic Gen with VPP
  • IKEv2 with VPP
  • VPP in kubernetes (Contiv/Deprecated)
  • VPP Container Test Bench

Getting started

  • Downloading and Installing VPP
  • Running VPP
  • Progressive VPP Tutorial
  • Troubleshooting

Developer Documentation

  • Build, Run & Debug
  • Core Architecture
    • Software Architecture
    • VPPINFRA (Infrastructure)
    • VLIB (Vector Processing Library)
    • VNET (VPP Network Stack)
    • Feature Arcs
    • Buffer Metadata
    • Multi-architecture support
    • Bounded-index Extensible Hashing (bihash)
    • Build System
      • Introduction to the top-level Makefile
      • Introduction to cmake and ninja
      • Introduction to build-root/Makefile
    • VPP mem preload
    • Multi-threading in VPP
  • Core Features
  • Adding a new plugin or feature
  • Plugins
  • Device drivers
  • VPP Test Framework
  • VPP extra tools

Interfacing with VPP

  • The binary API
  • C api client
  • C++ api client
  • Go api (govpp)
  • Rust api client
  • Memif library (libmemif)

Contributing

  • Getting a Patch Reviewed
  • Writing VPP Documentation
  • Reporting Bugs

Debug CLI

  • Getting Started with the debug CLI
  • Interface Commands
  • Reference

Configuration file

  • Getting started with the configuration
  • Configuration Reference
The Vector Packet Processor
  • »
  • Core Architecture »
  • Build System
  • View page source

Build System

This guide describes the vpp build system in detail. As of this writing, the build systems uses a mix of make / Makefiles, cmake, and ninja to achieve excellent build performance.

  • Introduction to the top-level Makefile
  • Introduction to cmake and ninja
    • vpp cmake configuration files
    • How to write a plugin CMakeLists.txt file
    • Adding a target elsewhere in the source tree
    • Tinkering with build options: ccmake
  • Introduction to build-root/Makefile
    • Repository Groups and Source Paths
    • Single pass build system, dependencies and components
    • …/build-root
    • …/build-root/build-config.mk
    • …/vpp/build-root/Makefile
    • The PLATFORM variable
    • The platform-specific .mk fragment
    • The TAG variable
    • Important targets build-root/Makefile
    • Additional build-root/Makefile environment variable settings
    • …/build-root/config.site
    • …/build-data/platforms.mk
    • …/build-data/packages/*.mk
Previous Next

© Copyright 2018-2022, Linux Foundation.

Built with Sphinx using a theme provided by Read the Docs.
VPP versions v23.06
Other links
Project Home