package
1.0.5
Repository: https://github.com/fgschwan/vpp-agent.git
Documentation: pkg.go.dev

# README

L3 plugin

The l3plugin is a Core Agent Plugin that is designed to configure routes in the VPP. Configuration managed by this plugin is modelled by the proto file. The configuration must be stored in etcd using the following key:

/vnf-agent/<agent-label>/vpp/config/v1/vrf/0/fib/

An example of configuration in json format can be found here.

Note: Value 0 in vrfID field denotes default VRF in vpp. Since it is default value it is omitted in the config above. If you want to configure a route for a VRF other than default, make sure that the VRF has already been created.

To insert config into etcd in json format vpp-agent-ctl can be used. We assume that we want to configure vpp with label vpp1 and config is stored in the routes.json file

vpp-agent-ctl -put "/vnf-agent/vpp1/vpp/config/v1/vrf/0/fib" routes.json

The vpp-agent-ctl contains a simple predefined route config also. It can be used for testing purposes. To setup the predefined route config run:

vpp-agent-ctl -cr

To remove it run:

vpp-agent-ctl -dr

# Packages

Package binapi defines the l3plugin's southbound API.
Package model defines the l3plugin's northbound API.
Package vppcalls contains wrappers over VPP binary APIs for L3 FIBs.
Package vppdump provides helpers to dump all L3 FIBs configured in VPP.

# Functions

TransformRoute converts raw route data to Route object.

# Structs

RouteConfigurator runs in the background in its own goroutine where it watches for any changes in the configuration of L3 routes as modelled by the proto file "../model/l3/l3.proto" and stored in ETCD under the key "/vnf-agent/{vnf-agent}/vpp/config/v1routes".

# Type aliases

SortedRoutes type is used to implement sort interface for slice of Route.