Please note that the content of this repository is currently a WORK IN PROGRESS.
The VPP Agent is a management tool for VPP (FD.io Vector Packet Processing) built on cn-infra.
VPP Agent provides plugins that process high level (north-bound) configuration which is carefully translated to low level VPP Binary API calls. North-bound configuration is modelled by proto files that can be found in the default plugins.
The agent consists of the following components:
- Default VPP Plugins - provide abstraction on top of the VPP binary APIs for:
- NET Interfaces - network interfaces configuration (PCI Ethernet, MEMIF, AF_Packet, VXLAN, Loopback...) + BFD
- L2 - Bridge Domains, FIBs...
- L3 - IP Routes, VRFs...
- ACL - VPP access lists (VPP ACL plugin)
- GOVPPmux - allows other plugins to access VPP independently on each other by means of connection multiplexing
- Linux (VETH) - allows optional configuration of Linux virtual ethernet interfaces
- Core - lifecycle management of plugins (loading, initialization, unloading) from cn-infra
- agentctl - a CLI tool that shows the state of the agents and can configure the agents
For quick start with the VPP Agent, you can use pre-build Docker images with the Agent and VPP on Dockerhub.
-
Run ETCD and Kafka on your host (e.g. in Docker using this procedure).
-
Run VPP + VPP Agent in a Docker image:
docker pull ligato/vpp-agent
docker run -it --name vpp --rm ligato/vpp-agent
- Configure the VPP agent using agentctl:
docker exec -it vpp agentctl -h
- Check the configuration (using agentctl or directly using VPP console):
docker exec -it vpp agentctl show
docker exec -it vpp vppctl
Read the README for the Development Docker Image for more details.
GoDoc can be browsed online.
If you are interested in contributing, please see the contribution guidelines.