Documentation
¶
Overview ¶
Package defaultplugins is the parent package for all "default" VPP-related plugins.
Index ¶
- type API
- type DPConfig
- type DataResyncReq
- type Deps
- type ErrCtx
- type Plugin
- func (plugin *Plugin) AfterInit() error
- func (plugin *Plugin) Close() error
- func (plugin *Plugin) DisableResync(keyPrefix ...string)
- func (plugin *Plugin) GetBDIndexes() bdidx.BDIndex
- func (plugin *Plugin) GetBfdAuthKeyIndexes() idxvpp.NameToIdx
- func (plugin *Plugin) GetBfdEchoFunctionIndexes() idxvpp.NameToIdx
- func (plugin *Plugin) GetBfdSessionIndexes() idxvpp.NameToIdx
- func (plugin *Plugin) GetFIBIndexes() idxvpp.NameToIdx
- func (plugin *Plugin) GetSwIfIndexes() ifaceidx.SwIfIndex
- func (plugin *Plugin) GetXConnectIndexes() idxvpp.NameToIdx
- func (plugin *Plugin) Init() error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type API ¶ added in v1.0.8
type API interface {
// DisableResync for one or more VPP plugins. Use in Init() phase.
DisableResync(keyPrefix ...string)
// GetSwIfIndexes gives access to mapping of logical names (used in ETCD configuration) to sw_if_index.
// This mapping is helpful if other plugins need to configure VPP by the Binary API that uses sw_if_index input.
//
// Example of is_sw_index lookup by logical name of the port "vswitch_ingres" of the network interface:
//
// func Init() error {
// swIfIndexes := defaultplugins.GetSwIfIndexes()
// swIfIndexes.LookupByName("vswitch_ingres")
//
GetSwIfIndexes() ifaceidx.SwIfIndex
// GetBfdSessionIndexes gives access to mapping of logical names (used in ETCD configuration) to bfd_session_indexes.
// The mapping consists of the interface (its name), generated index and the BFDSessionMeta with an authentication key
// used for the particular session.
GetBfdSessionIndexes() idxvpp.NameToIdx
// GetBfdAuthKeyIndexes gives access to mapping of logical names (used in ETCD configuration) to bfd_auth_keys.
// The authentication key has its own unique ID - the value is as a string stored in the mapping. Unique index is generated
// uint32 number.
GetBfdAuthKeyIndexes() idxvpp.NameToIdx
// GetBfdEchoFunctionIndexes gives access to mapping of logical names (used in ETCD configuration) to bfd_echo_function
// The echo function uses the interface name as an unique ID - this value is as a string stored in the mapping. The index
// is generated uint32 number.
GetBfdEchoFunctionIndexes() idxvpp.NameToIdx
// GetBDIndexes gives access to mapping of logical names (used in ETCD configuration) as bd_indexes. The mapping consists
// from the unique Bridge domain name and the bridge domain ID.
GetBDIndexes() bdidx.BDIndex
// GetFIBIndexes gives access to mapping of logical names (used in ETCD configuration) as fib_indexes. The FIB's physical
// address is the name in the mapping. The key is generated. The FIB mapping also contains a metadata, FIBMeta with various
// info about the Interface/Bridge domain where this fib belongs to:
// - InterfaceName
// - Bridge domain name
// - BVI (bool flag for interface)
// - Static config
GetFIBIndexes() idxvpp.NameToIdx
// GetXConnectIndexes gives access to mapping of logical names (used in ETCD configuration) as xc_indexes. The mapping
// uses the name and the index of receive interface (the one all packets are received on). XConnectMeta is a container
// for the transmit interface name.
GetXConnectIndexes() idxvpp.NameToIdx
}
API of VPP Plugin
type DPConfig ¶ added in v1.0.5
type DPConfig struct {
Mtu uint32 `json:"mtu"`
Stopwatch bool `json:"stopwatch"`
Strategy string `json:"strategy"`
}
DPConfig holds the defaultpluigns configuration.
type DataResyncReq ¶
type DataResyncReq struct {
// ACLs is a list af all access lists that are expected to be in VPP after RESYNC.
ACLs []*acl.AccessLists_Acl
// Interfaces is a list af all interfaces that are expected to be in VPP after RESYNC.
Interfaces []*interfaces.Interfaces_Interface
// SingleHopBFDSession is a list af all BFD sessions that are expected to be in VPP after RESYNC.
SingleHopBFDSession []*bfd.SingleHopBFD_Session
// SingleHopBFDKey is a list af all BFD authentication keys that are expected to be in VPP after RESYNC.
SingleHopBFDKey []*bfd.SingleHopBFD_Key
// SingleHopBFDEcho is a list af all BFD echo functions that are expected to be in VPP after RESYNC.
SingleHopBFDEcho []*bfd.SingleHopBFD_EchoFunction
// BridgeDomains is a list af all BDs that are expected to be in VPP after RESYNC.
BridgeDomains []*l2.BridgeDomains_BridgeDomain
// FibTableEntries is a list af all FIBs that are expected to be in VPP after RESYNC.
FibTableEntries []*l2.FibTableEntries_FibTableEntry
// XConnects is a list af all XCons that are expected to be in VPP after RESYNC.
XConnects []*l2.XConnectPairs_XConnectPair
// StaticRoutes is a list af all Static Routes that are expected to be in VPP after RESYNC.
StaticRoutes []*l3.StaticRoutes_Route
// ArpEntries is a list af all ARP entries that are expected to be in VPP after RESYNC.
ArpEntries []*l3.ArpTable_ArpTableEntry
// L4Features is a bool flag that is expected to be set in VPP after RESYNC.
L4Features *l4.L4Features
// AppNamespaces is a list af all App Namespaces that are expected to be in VPP after RESYNC.
AppNamespaces []*l4.AppNamespaces_AppNamespace
// StnRules is a list of all STN Rules that are expected to be in VPP after RESYNC
StnRules []*stn.StnRule
}
DataResyncReq is used to transfer expected configuration of the VPP to the plugins.
type Deps ¶ added in v1.0.2
type Deps struct {
// inject all below
local.PluginInfraDeps
Publish datasync.KeyProtoValWriter
PublishStatistics datasync.KeyProtoValWriter
Watch datasync.KeyValProtoWatcher
IfStatePub datasync.KeyProtoValWriter
GoVppmux govppmux.API
Linux linuxpluginAPI
}
Deps groups injected dependencies of plugin so that they do not mix with other plugin fieldsMtu.
type ErrCtx ¶
type ErrCtx struct {
// contains filtered or unexported fields
}
ErrCtx is an error context struct which stores an event change with object identifier (name, etc.) and returns an error (can be nil).
type Plugin ¶
type Plugin struct {
Deps
// contains filtered or unexported fields
}
Plugin implements Plugin interface, therefore it can be loaded with other plugins.
func (*Plugin) AfterInit ¶
AfterInit delegates the call to ifStateUpdater.
func (*Plugin) DisableResync ¶ added in v1.0.8
DisableResync can be used to disable resync for one or more key prefixes
func (*Plugin) GetBDIndexes ¶ added in v1.0.8
GetBDIndexes gives access to mapping of logical names (used in ETCD configuration) as bd_indexes.
func (*Plugin) GetBfdAuthKeyIndexes ¶ added in v1.0.8
GetBfdAuthKeyIndexes gives access to mapping of logical names (used in ETCD configuration) to bfd_auth_keys.
func (*Plugin) GetBfdEchoFunctionIndexes ¶ added in v1.0.8
GetBfdEchoFunctionIndexes gives access to mapping of logical names (used in ETCD configuration) to bfd_echo_function
func (*Plugin) GetBfdSessionIndexes ¶ added in v1.0.8
GetBfdSessionIndexes gives access to mapping of logical names (used in ETCD configuration) to bfd_session_indexes.
func (*Plugin) GetFIBIndexes ¶ added in v1.0.8
GetFIBIndexes gives access to mapping of logical names (used in ETCD configuration) as fib_indexes.
func (*Plugin) GetSwIfIndexes ¶ added in v1.0.5
GetSwIfIndexes gives access to mapping of logical names (used in ETCD configuration) to sw_if_index. This mapping is helpful if other plugins need to configure VPP by the Binary API that uses sw_if_index input.
func (*Plugin) GetXConnectIndexes ¶ added in v1.0.8
GetXConnectIndexes gives access to mapping of logical names (used in ETCD configuration) as xc_indexes.
Source Files
¶
- data_change.go
- data_resync.go
- doc.go
- error_status.go
- plugin_api_vpp.go
- plugin_impl_vpp.go
- publish.go
- watch_events.go
Directories
¶
| Path | Synopsis |
|---|---|
|
Package aclplugin implements the ACL Plugin that handles management of VPP Access lists.
|
Package aclplugin implements the ACL Plugin that handles management of VPP Access lists. |
|
bin_api
Package binapi defines the aclplugin's southbound API.
|
Package binapi defines the aclplugin's southbound API. |
|
bin_api/acl
Code generated by govpp binapi-generator DO NOT EDIT.
|
Code generated by govpp binapi-generator DO NOT EDIT. |
|
model
Package model defines the acplugin's northbound API.
|
Package model defines the acplugin's northbound API. |
|
model/acl
Package acl is a generated protocol buffer package.
|
Package acl is a generated protocol buffer package. |
|
vppcalls
Package vppcalls contains wrappers over VPP ACL binary APIs.
|
Package vppcalls contains wrappers over VPP ACL binary APIs. |
|
vppdump
Package vppdump provides helpers to dump ACLs configured in VPP - per interface and total.
|
Package vppdump provides helpers to dump ACLs configured in VPP - per interface and total. |
|
Package ifplugin implements the Interface plugin that handles management of VPP interfaces.
|
Package ifplugin implements the Interface plugin that handles management of VPP interfaces. |
|
bin_api
Package binapi is the parent for packages that define various ifplugin southbound APIs.
|
Package binapi is the parent for packages that define various ifplugin southbound APIs. |
|
bin_api/af_packet
Code generated by govpp binapi-generator DO NOT EDIT.
|
Code generated by govpp binapi-generator DO NOT EDIT. |
|
bin_api/bfd
Package bfd represents the VPP binary API of the 'bfd' VPP module.
|
Package bfd represents the VPP binary API of the 'bfd' VPP module. |
|
bin_api/interfaces
Code generated by govpp binapi-generator DO NOT EDIT.
|
Code generated by govpp binapi-generator DO NOT EDIT. |
|
bin_api/ip
Code generated by govpp binapi-generator DO NOT EDIT.
|
Code generated by govpp binapi-generator DO NOT EDIT. |
|
bin_api/memif
Code generated by govpp binapi-generator DO NOT EDIT.
|
Code generated by govpp binapi-generator DO NOT EDIT. |
|
bin_api/stats
Code generated by govpp binapi-generator DO NOT EDIT.
|
Code generated by govpp binapi-generator DO NOT EDIT. |
|
bin_api/stn
Code generated by govpp binapi-generator DO NOT EDIT.
|
Code generated by govpp binapi-generator DO NOT EDIT. |
|
bin_api/tap
Code generated by govpp binapi-generator DO NOT EDIT.
|
Code generated by govpp binapi-generator DO NOT EDIT. |
|
bin_api/vpe
Code generated by govpp binapi-generator DO NOT EDIT.
|
Code generated by govpp binapi-generator DO NOT EDIT. |
|
bin_api/vxlan
Code generated by govpp binapi-generator DO NOT EDIT.
|
Code generated by govpp binapi-generator DO NOT EDIT. |
|
ifaceidx
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. |
|
model
Package model is the parent for packages that define various if plugin northbound APIs generated from protobuf data models.
|
Package model is the parent for packages that define various if plugin northbound APIs generated from protobuf data models. |
|
model/bfd
Package bfd is a generated protocol buffer package.
|
Package bfd is a generated protocol buffer package. |
|
model/interfaces
Package interfaces is a generated protocol buffer package.
|
Package interfaces is a generated protocol buffer package. |
|
model/stn
Package stn is a generated protocol buffer package.
|
Package stn is a generated protocol buffer package. |
|
vppcalls
Package vppcalls contains wrappers over VPP binary APIs for all supported interface types.
|
Package vppcalls contains wrappers over VPP binary APIs for all supported interface types. |
|
vppdump
Package vppdump provides helpers for dumping all interfaces configured in VPP.
|
Package vppdump provides helpers for dumping all interfaces configured in VPP. |
|
Package l2plugin implements the L2 plugin that handles Bridge Domains and L2 FIBs.
|
Package l2plugin implements the L2 plugin that handles Bridge Domains and L2 FIBs. |
|
bdidx
Package bdidx implements name-to-index mapping registry and cache for bridge-domains.
|
Package bdidx implements name-to-index mapping registry and cache for bridge-domains. |
|
bin_api
Package binapi is the parent for packages that define various l2plugin southbound APIs.
|
Package binapi is the parent for packages that define various l2plugin southbound APIs. |
|
bin_api/l2
Code generated by govpp binapi-generator DO NOT EDIT.
|
Code generated by govpp binapi-generator DO NOT EDIT. |
|
bin_api/vpe
Code generated by govpp binapi-generator DO NOT EDIT.
|
Code generated by govpp binapi-generator DO NOT EDIT. |
|
model
Package model defines the l2plugin's northbound API.
|
Package model defines the l2plugin's northbound API. |
|
model/l2
Package l2 is a generated protocol buffer package.
|
Package l2 is a generated protocol buffer package. |
|
vppcalls
Package vppcalls contains wrappers over VPP binary APIs for bridge-domains, and L2 FIBs and XConnect pairs.
|
Package vppcalls contains wrappers over VPP binary APIs for bridge-domains, and L2 FIBs and XConnect pairs. |
|
vppdump
Package vppdump provides helpers for dumping all bridge-domains, L2 FIBs and XConnect pairs configured in VPP.
|
Package vppdump provides helpers for dumping all bridge-domains, L2 FIBs and XConnect pairs configured in VPP. |
|
Package l3plugin implements the L3 plugin that handles L3 FIBs.
|
Package l3plugin implements the L3 plugin that handles L3 FIBs. |
|
bin_api
Package binapi defines the l3plugin's southbound API.
|
Package binapi defines the l3plugin's southbound API. |
|
bin_api/ip
Code generated by govpp binapi-generator DO NOT EDIT.
|
Code generated by govpp binapi-generator DO NOT EDIT. |
|
model
Package model defines the l3plugin's northbound API.
|
Package model defines the l3plugin's northbound API. |
|
model/l3
Package l3 is a generated protocol buffer package.
|
Package l3 is a generated protocol buffer package. |
|
vppcalls
Package vppcalls contains wrappers over VPP binary APIs for L3 FIBs.
|
Package vppcalls contains wrappers over VPP binary APIs for L3 FIBs. |
|
vppdump
Package vppdump provides helpers for dumping all L3 FIBs configured in VPP.
|
Package vppdump provides helpers for dumping all L3 FIBs configured in VPP. |
|
bin_api/session
Code generated by govpp binapi-generator DO NOT EDIT.
|
Code generated by govpp binapi-generator DO NOT EDIT. |
|
model/l4
Package l4 is a generated protocol buffer package.
|
Package l4 is a generated protocol buffer package. |
|
nsidx
Package nsidx implements name-to-index mapping registry and cache for app namespaces
|
Package nsidx implements name-to-index mapping registry and cache for app namespaces |