GithubHelp home page GithubHelp logo

chrismetz09 / vpp-agent Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ligato/vpp-agent

0.0 1.0 0.0 167.71 MB

⚡️ Control plane management agent for FD.io's VPP

Home Page: https://docs.ligato.io/

License: Apache License 2.0

Makefile 0.19% Python 1.50% Go 76.03% Dockerfile 0.07% Shell 1.17% RobotFramework 21.04%

vpp-agent's Introduction

VPP Agent

GitHub contributors Build Status Coverage Status Go Report Card GoDoc GitHub license

Please note that the content of this repository is currently WORK IN PROGRESS!

The VPP Agent is a Go implementation of a control/management plane for VPP based cloud-native Virtual Network Functions (VNFs). The VPP Agent is built on top of CN Infra, a framework for developing cloud-native VNFs (CNFs).

The VPP Agent can be used as-is as a management/control agent for VNFs based on off-the-shelf VPP (e.g. a VPP-based vswitch), or as a framework for developing management agents for VPP-based CNFs. An example of a custom VPP-based CNF is the Contiv-VPP vswitch.

Releases

Release Release Date Info
stable Release date latest release
latest Release date last release/pre-release

Have a look at the release notes for a complete list of changes.

Branches

Branch Last Commit Info
master GitHub last commit (branch) has moved to v2, introducing several breaking changes ⚠️
dev GitHub last commit (branch) will be used for all the future development

Note: The branch pantheon-dev has been deprecated (v1).

Images

Image Image Size/Layers Info
ligato/vpp-agent MicroBadger Size MicroBadger Layers minimal image for production
ligato/dev-vpp-agent MicroBadger Size MicroBadger Layers image prepared for developers

The image tag latest is built from master branch and dev tag is built from dev branch.

Quickstart

For a quick start with the VPP Agent, you can use the pre-built Docker images on DockerHub that contain the VPP Agent and VPP: ligato/vpp-agent (or for ARM64: ligato/vpp-agent-arm64).

  1. Start ETCD on your host (e.g. in Docker as described here).

    Note: for ARM64 see the information for etcd.

  2. Run VPP + VPP Agent in a Docker container:

docker run -it --rm --name vpp --privileged ligato/vpp-agent
  1. Manage VPP agent using agentctl:
docker exec -it vpp agentctl -h
  1. Check the configuration (using agentctl or directly using VPP console):
docker exec -it vpp agentctl -e 172.17.0.1:2379 show
docker exec -it vpp vppctl -s localhost:5002

Next Steps

See README of development docker image for more details.

Documentation

Extensive documentation for the VPP Agent can be found at docs.ligato.io.

Architecture

The VPP Agent is basically a set of VPP-specific plugins that use the CN-Infra framework to interact with other services/microservices in the cloud (e.g. a KV data store, messaging, log warehouse, etc.). The VPP Agent exposes VPP functionality to client apps via a higher-level model-driven API. Clients that consume this API may be either external (connecting to the VPP Agent via REST, gRPC API, Etcd or message bus transport), or local Apps and/or Extension plugins running on the same CN-Infra framework in the same Linux process.

The VNF Agent architecture is shown in the following figure:

vpp agent

Each (northbound) VPP API - L2, L3, ACL, ... - is implemented by a specific VNF Agent plugin, which translates northbound API calls/operations into (southbound) low level VPP Binary API calls. Northbound APIs are defined using protobufs, which allow for the same functionality to be accessible over multiple transport protocols (HTTP, gRPC, Etcd, ...). Plugins use the GoVPP library to interact with the VPP.

The following figure shows the VPP Agent in context of a cloud-native VNF, where the VNF's data plane is implemented using VPP/DPDK and its management/control planes are implemented using the VNF agent:

context

Contributing

If you are interested in contributing, please see the contribution guidelines.

vpp-agent's People

Contributors

amarcine avatar andrejkilvady avatar batky avatar dependabot-support avatar fgschwan avatar jgloncak avatar jmedved avatar jozef-slezak avatar kozemcak avatar lukasmacko avatar martinfrk avatar matrohon avatar matus-mrekaj avatar mestery avatar miroslavkovacpantheon avatar mpundlik avatar msestak77 avatar olympusho avatar ondrej-fabry avatar pgubka avatar phrnciar avatar pkotucek avatar rastislavs avatar samelias avatar stanislav-chlebec avatar unclejack avatar vladolavor avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.