Skip to main content

A configuration tool for Vector Packet Processing

Project description

A VPP Configuration Utility

This tool reads a configuration file, checks it for syntax and semantic correctness, and then reconciles a running VPP daemon with its configuration. It is meant to be re-entrant and stateless. The tool connects to the VPP API and creates/removes all of the configuration in a minimally intrusive way.

NOTE This code is under development, and probably won't work well until this note is removed. If you're interested in helping, reach out to <pim at ipng dot ch> to discuss options.

Building

This program expects Python3 and PIP to be installed. It's known to work on Debian Bullseye and Bookworm, as well as on Ubuntu Focal, Jammy and Noble.


## Start a Virtual Environment
python3 -m venv .venv
source .venv/bin/activate

## Install python build dependencies 
$ make install-deps

## Ensure all unittests pass.
$ make test

## Build vppcfg
$ make build

## Exit the virtual environment
$ deactivate

## Install the tool with PIP
$ make install

Running

usage: vppcfg [-h] [-d] [-q] [-f] {check,dump,plan,apply} ...

positional arguments:
  {check,dump,plan,apply}
    check               check given YAML config for validity (no VPP)
    dump                dump current running VPP configuration (VPP readonly)
    plan                plan changes from current VPP dataplane to target config (VPP readonly)
    apply               apply changes from current VPP dataplane to target config

optional arguments:
  -h, --help            show this help message and exit
  -d, --debug           enable debug logging, default False
  -q, --quiet           be quiet (only warnings/errors), default False
  -f, --force           force progress despite warnings, default False

Please see vppcfg <command> -h   for per-command arguments

Documentation

Main user-focused documentation:

Developer deep-dives:

Licensing

The code in this project is released under Apache 2.0 license. A copy of the license is provided in this repo here. All contributions are held against our contributing guidelines. Notably, all code must be licensed Apache 2.0, and all contributions must come with a certificate of origin in the form of a Signed-off-by field in the commit.

All documentation under the docs/ directory is licensed Creative Commons Attribution 4.0 International License (details). A copy of the license is provided in this repo here.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vppcfg-1.0.2.tar.gz (51.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vppcfg-1.0.2-py3-none-any.whl (74.0 kB view details)

Uploaded Python 3

File details

Details for the file vppcfg-1.0.2.tar.gz.

File metadata

  • Download URL: vppcfg-1.0.2.tar.gz
  • Upload date:
  • Size: 51.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for vppcfg-1.0.2.tar.gz
Algorithm Hash digest
SHA256 02ba9b77b149e69ffa539b24608d07622cc80d19f57bd9d2b7ea1e401927ee19
MD5 cf74ab7f6f29aa4c22aa213ab660b049
BLAKE2b-256 e65143358ea9a0f8ebc7ca04e7eafa6649d8bb511544cbb9b6f3a8b592ab0000

See more details on using hashes here.

File details

Details for the file vppcfg-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: vppcfg-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 74.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for vppcfg-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 1dc04cf13fc55db95d9848d7f875b998047eb272b16642ab94c62b722496e1c2
MD5 c98be08bec14632983b0a9f8a5507bad
BLAKE2b-256 50fe2aa0672a63a251dcfeb93a7512fd53750c90186efc8f8baa37c121761cb2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page