Documentation ¶
Index ¶
- Constants
- Variables
- type API
- type Config
- type Deps
- type IfPlugin
- func (p *IfPlugin) AfterInit() error
- func (p *IfPlugin) Close() error
- func (p *IfPlugin) GetDHCPIndex() idxmap.NamedMapping
- func (p *IfPlugin) GetInterfaceIndex() ifaceidx.IfaceMetadataIndex
- func (p *IfPlugin) Init() error
- func (p *IfPlugin) SetNotifyService(notify func(notification *vpp.Notification))
- type InterfaceStateUpdater
- type Option
Constants ¶
const ( Drop statType = ifPrefix + "drops" Punt = ifPrefix + "punt" IPv4 = ifPrefix + "ip4" IPv6 = ifPrefix + "ip6" RxNoBuf = ifPrefix + "rx-no-buf" RxMiss = ifPrefix + "rx-miss" RxError = ifPrefix + "rx-error" TxError = ifPrefix + "tx-error" Rx = ifPrefix + "rx" Tx = ifPrefix + "tx" )
interface statistics matching patterns
Variables ¶
var DefaultPlugin = *NewPlugin()
DefaultPlugin is a default instance of IfPlugin.
var PeriodicPollingPeriod = 1 * time.Second
PeriodicPollingPeriod between statistics reads TODO should be configurable
Functions ¶
This section is empty.
Types ¶
type API ¶
type API interface { // GetInterfaceIndex gives read-only access to map with metadata of all configured // VPP interfaces. GetInterfaceIndex() ifaceidx.IfaceMetadataIndex // GetDHCPIndex gives read-only access to (untyped) map with DHCP leases. // Cast metadata to "github.com/ligato/vpp-agent/api/models/vpp/interfaces".DHCPLease GetDHCPIndex() idxmap.NamedMapping // SetNotifyService allows to pass function for updating interface notifications. SetNotifyService(notify func(notification *vpp.Notification)) }
API defines methods exposed by VPP-IfPlugin.
type Deps ¶
type Deps struct { infra.PluginDeps KVScheduler kvs.KVScheduler GoVppmux govppmux.StatsAPI /* LinuxIfPlugin and NsPlugin deps are optional, but they are required if AFPacket or TAP+TAP_TO_VPP interfaces are used. */ LinuxIfPlugin descriptor.LinuxPluginAPI NsPlugin nsplugin.API // state publishing StatusCheck statuscheck.PluginStatusWriter PublishErrors datasync.KeyProtoValWriter // TODO: to be used with a generic plugin for publishing errors (not just interfaces and BDs) Watcher datasync.KeyValProtoWatcher /* for resync of interface state data (PublishStatistics) */ NotifyStates datasync.KeyProtoValWriter /* e.g. Kafka (up/down events only)*/ PublishStatistics datasync.KeyProtoValWriter /* e.g. ETCD (with resync) */ DataSyncs map[string]datasync.KeyProtoValWriter /* available DBs for PublishStatistics */ PushNotification func(notification *vpp.Notification) }
Deps lists dependencies of the interface plugin.
type IfPlugin ¶
type IfPlugin struct { Deps // contains filtered or unexported fields }
IfPlugin configures VPP interfaces using GoVPP.
func (*IfPlugin) GetDHCPIndex ¶
func (p *IfPlugin) GetDHCPIndex() idxmap.NamedMapping
GetDHCPIndex gives read-only access to (untyped) map with DHCP leases. Cast metadata to "github.com/ligato/vpp-agent/api/models/vpp/interfaces".DHCPLease
func (*IfPlugin) GetInterfaceIndex ¶
func (p *IfPlugin) GetInterfaceIndex() ifaceidx.IfaceMetadataIndex
GetInterfaceIndex gives read-only access to map with metadata of all configured VPP interfaces.
func (*IfPlugin) SetNotifyService ¶
func (p *IfPlugin) SetNotifyService(notify func(notification *vpp.Notification))
SetNotifyService sets notification callback for processing VPP notifications.
type InterfaceStateUpdater ¶
type InterfaceStateUpdater struct {
// contains filtered or unexported fields
}
InterfaceStateUpdater holds state data of all VPP interfaces.
func (*InterfaceStateUpdater) AfterInit ¶
func (c *InterfaceStateUpdater) AfterInit() error
AfterInit subscribes for watching VPP notifications on previously initialized channel
func (*InterfaceStateUpdater) Close ¶
func (c *InterfaceStateUpdater) Close() error
Close unsubscribes from interface state notifications from VPP & GOVPP channel
func (*InterfaceStateUpdater) Init ¶
func (c *InterfaceStateUpdater) Init(ctx context.Context, logger logging.PluginLogger, kvScheduler kvs.KVScheduler, goVppMux govppmux.StatsAPI, swIfIndexes ifaceidx.IfaceMetadataIndex, publishIfState func(notification *intf.InterfaceNotification)) (err error)
Init members (channels, maps...) and start go routines
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package ifaceidx implements name-to-index mapping registry and cache for VPP interfaces.
|
Package ifaceidx implements name-to-index mapping registry and cache for VPP interfaces. |
Package vppcalls contains wrappers over VPP binary APIs for all supported interface types and for dumping all interfaces configured in VPP.
|
Package vppcalls contains wrappers over VPP binary APIs for all supported interface types and for dumping all interfaces configured in VPP. |