Documentation ¶
Overview ¶
Package l3plugin is the implementation of the L3 plugin that handles ip routes.
Index ¶
- func TransformRoute(routeInput *l3.StaticRoutes_Route, index ifaceidx.SwIfIndex) (*vppcalls.Route, error)
- type RouteConfigurator
- func (plugin *RouteConfigurator) Close() error
- func (plugin *RouteConfigurator) ConfigureRoute(config *l3.StaticRoutes_Route, vrfFromKey string) error
- func (plugin *RouteConfigurator) DeleteRoute(config *l3.StaticRoutes_Route) (wasError error)
- func (plugin *RouteConfigurator) Init() (err error)
- func (plugin *RouteConfigurator) ModifyRoute(newConfig *l3.StaticRoutes_Route, oldConfig *l3.StaticRoutes_Route, ...) error
- func (plugin *RouteConfigurator) Resync(staticRoutes []*l3.StaticRoutes_Route) error
- type SortedRoutes
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func TransformRoute ¶
func TransformRoute(routeInput *l3.StaticRoutes_Route, index ifaceidx.SwIfIndex) (*vppcalls.Route, error)
TransformRoute converts raw route data to Route object
Types ¶
type RouteConfigurator ¶
type RouteConfigurator struct { GoVppmux *govppmux.GOVPPPlugin RouteIndexes idxvpp.NameToIdxRW RouteIndexSeq uint32 SwIfIndexes ifaceidx.SwIfIndex // contains filtered or unexported fields }
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". Updates received from the northbound API are compared with the VPP run-time configuration and differences are applied through the VPP binary API.
func (*RouteConfigurator) Close ¶
func (plugin *RouteConfigurator) Close() error
Close GOVPP channel
func (*RouteConfigurator) ConfigureRoute ¶
func (plugin *RouteConfigurator) ConfigureRoute(config *l3.StaticRoutes_Route, vrfFromKey string) error
ConfigureRoute process the NB config and propagates it to bin api calls
func (*RouteConfigurator) DeleteRoute ¶
func (plugin *RouteConfigurator) DeleteRoute(config *l3.StaticRoutes_Route) (wasError error)
DeleteRoute process the NB config and propagates it to bin api calls
func (*RouteConfigurator) Init ¶
func (plugin *RouteConfigurator) Init() (err error)
Init members (channels...) and start go routines
func (*RouteConfigurator) ModifyRoute ¶
func (plugin *RouteConfigurator) ModifyRoute(newConfig *l3.StaticRoutes_Route, oldConfig *l3.StaticRoutes_Route, vrfFromKey string) error
ModifyRoute process the NB config and propagates it to bin api calls
func (*RouteConfigurator) Resync ¶
func (plugin *RouteConfigurator) Resync(staticRoutes []*l3.StaticRoutes_Route) error
Resync confgures the empty VPP (overwrites the static route)
type SortedRoutes ¶
SortedRoutes type is used to implement sort interface for slice of Route
func (SortedRoutes) Len ¶
func (arr SortedRoutes) Len() int
Returns length of slice Implements sort.Interface
func (SortedRoutes) Less ¶
func (arr SortedRoutes) Less(i, j int) bool
Less returns true if the item in slice at index i in slice should be sorted before the element with index j Implements sort.Interface
func (SortedRoutes) Swap ¶
func (arr SortedRoutes) Swap(i, j int)
Swap swaps two items in slice identified by indexes Implements sort.Interface