Documentation ¶
Index ¶
- type L4Configurator
- func (plugin *L4Configurator) Close() error
- func (plugin *L4Configurator) ConfigureAppNamespace(ns *l4.AppNamespaces_AppNamespace) error
- func (plugin *L4Configurator) ConfigureL4FeatureFlag(features *l4.L4Features) error
- func (plugin *L4Configurator) DeleteAppNamespace(ns *l4.AppNamespaces_AppNamespace) error
- func (plugin *L4Configurator) DeleteL4FeatureFlag() error
- func (plugin *L4Configurator) Init() (err error)
- func (plugin *L4Configurator) ModifyAppNamespace(newNs *l4.AppNamespaces_AppNamespace, oldNs *l4.AppNamespaces_AppNamespace) error
- func (plugin *L4Configurator) ResolveCreatedInterface(interfaceName string, interfaceIndex uint32) error
- func (plugin *L4Configurator) ResolveDeletedInterface(interfaceName string, interfaceIndex uint32) error
- func (plugin *L4Configurator) ResyncAppNs(appNamespaces []*l4.AppNamespaces_AppNamespace) error
- func (plugin *L4Configurator) ResyncFeatures(l4Features *l4.L4Features) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type L4Configurator ¶
type L4Configurator struct { Log logging.Logger ServiceLabel servicelabel.ReaderAPI GoVppmux govppmux.API // Indexes SwIfIndexes ifaceidx.SwIfIndex AppNsIndexes nsidx.AppNsIndexRW AppNsCached nsidx.AppNsIndexRW // the mapping stores not-configurable app namespaces with metadata AppNsIdxSeq uint32 // used only for AppNsCached; incremented after every registration // timer used to measure and store time Stopwatch *measure.Stopwatch // contains filtered or unexported fields }
L4Configurator runs in the background in its own goroutine where it watches for any changes in the configuration of interfaces as modelled by the proto file "../model/l4/l4.proto" and stored in ETCD under the keys "/vnf-agent/{vnf-agent}/vpp/config/v1/l4/l4ftEnabled" and "/vnf-agent/{vnf-agent}/vpp/config/v1/l4/namespaces/{namespace_id}". Updates received from the northbound API are compared with the VPP run-time configuration and differences are applied through the VPP binary API.
func (*L4Configurator) ConfigureAppNamespace ¶
func (plugin *L4Configurator) ConfigureAppNamespace(ns *l4.AppNamespaces_AppNamespace) error
ConfigureAppNamespace process the NB AppNamespace config and propagates it to bin api calls
func (*L4Configurator) ConfigureL4FeatureFlag ¶
func (plugin *L4Configurator) ConfigureL4FeatureFlag(features *l4.L4Features) error
ConfigureL4FeatureFlag process the NB Features config and propagates it to bin api calls
func (*L4Configurator) DeleteAppNamespace ¶
func (plugin *L4Configurator) DeleteAppNamespace(ns *l4.AppNamespaces_AppNamespace) error
DeleteAppNamespace process the NB AppNamespace config and propagates it to bin api calls. This case is not currently supported by VPP
func (*L4Configurator) DeleteL4FeatureFlag ¶
func (plugin *L4Configurator) DeleteL4FeatureFlag() error
DeleteL4FeatureFlag process the NB Features config and propagates it to bin api calls
func (*L4Configurator) Init ¶
func (plugin *L4Configurator) Init() (err error)
Init members (channels...) and start go routines
func (*L4Configurator) ModifyAppNamespace ¶
func (plugin *L4Configurator) ModifyAppNamespace(newNs *l4.AppNamespaces_AppNamespace, oldNs *l4.AppNamespaces_AppNamespace) error
ModifyAppNamespace process the NB AppNamespace config and propagates it to bin api calls
func (*L4Configurator) ResolveCreatedInterface ¶
func (plugin *L4Configurator) ResolveCreatedInterface(interfaceName string, interfaceIndex uint32) error
ResolveCreatedInterface looks for application namespace this interface is assigned to and configures them
func (*L4Configurator) ResolveDeletedInterface ¶
func (plugin *L4Configurator) ResolveDeletedInterface(interfaceName string, interfaceIndex uint32) error
ResolveDeletedInterface looks for application namespace this interface is assigned to and removes
func (*L4Configurator) ResyncAppNs ¶
func (plugin *L4Configurator) ResyncAppNs(appNamespaces []*l4.AppNamespaces_AppNamespace) error
ResyncAppNs configures app namespaces to the empty VPP
func (*L4Configurator) ResyncFeatures ¶
func (plugin *L4Configurator) ResyncFeatures(l4Features *l4.L4Features) error
ResyncFeatures sets initital L4Features flag