Documentation ¶
Index ¶
- func GetBDIndexes() bdidx.BDIndex
- func GetBfdAuthKeyIndexes() idxvpp.NameToIdx
- func GetBfdEchoFunctionIndexes() idxvpp.NameToIdx
- func GetBfdSessionIndexes() idxvpp.NameToIdx
- func GetConfiguredInterfaceToBridgeDomainIndexes() idxvpp.NameToIdx
- func GetFIBDesIndexes() idxvpp.NameToIdx
- func GetFIBIndexes() idxvpp.NameToIdx
- func GetRegisteredInterfaceToBridgeDomainIndexes() idxvpp.NameToIdx
- func GetSwIfIndexes() ifaceidx.SwIfIndex
- func GetXConnectIndexes() idxvpp.NameToIdx
- type DataResyncReq
- type Deps
- type ErrCtx
- type Plugin
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetBDIndexes ¶
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
func GetBfdAuthKeyIndexes ¶
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
func GetBfdEchoFunctionIndexes ¶
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
func GetBfdSessionIndexes ¶
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.
func GetConfiguredInterfaceToBridgeDomainIndexes ¶
GetConfiguredInterfaceToBridgeDomainIndexes gives access to mapping of logical names (used in ETCD configuration) The mapping holds all interface to bridge domain pairs which are currently configured on the VPP. The mapping uses interface name, unique index and a metadata with information about whether the interface is BVI and which bridge domain it belongs to
func GetFIBDesIndexes ¶
GetFIBDesIndexes gives access to mapping of logical names (used in ETCD configuration) as fib_des_indexes. The mapping reflects the desired state. FIBs that have been created, but cannot be configured because of missing interface or bridge domain are stored here. If both, interface and bridge domain are created later, stored FIBs will be configured as well. The mapping uses FIBMeta as metadata (the same as above)
func GetFIBIndexes ¶
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
func GetRegisteredInterfaceToBridgeDomainIndexes ¶
GetRegisteredInterfaceToBridgeDomainIndexes gives access to mapping of logical names (used in ETCD configuration). The mapping holds all interface to bridge domain pairs which should be configured on the VPP. The mapping uses the interface name, unique index and a metadata with information about whether the interface is BVI and which bridge domain it belongs to
func GetSwIfIndexes ¶
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")
func GetXConnectIndexes ¶
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.
Types ¶
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 }
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 Messaging messaging.Mux GoVppmux govppmux.API Linux linuxplugin.API }
Deps is here to group injected dependencies of plugin to not mix with other plugin fields.
type ErrCtx ¶
type ErrCtx struct {
// contains filtered or unexported fields
}
ErrCtx is an error context struct which stores event change with object identifier (name, etc) and returned error (can be nil)
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package aclplugin implements the ACL Plugin.
|
Package aclplugin implements the ACL Plugin. |
bin_api
Package binapi defines the aclplugin's southbound API.
|
Package binapi defines the aclplugin's southbound API. |
bin_api/acl
Package acl represents the VPP binary API of the 'acl' VPP module.
|
Package acl represents the VPP binary API of the 'acl' VPP module. |
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. |
Package ifplugin is the implementation of the Interface plugin.deps.
|
Package ifplugin is the implementation of the Interface plugin.deps. |
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
Package af_packet represents the VPP binary API of the 'af_packet' VPP module.
|
Package af_packet represents the VPP binary API of the 'af_packet' VPP module. |
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
Package interfaces represents the VPP binary API of the 'interfaces' VPP module.
|
Package interfaces represents the VPP binary API of the 'interfaces' VPP module. |
bin_api/ip
Package ip represents the VPP binary API of the 'ip' VPP module.
|
Package ip represents the VPP binary API of the 'ip' VPP module. |
bin_api/memif
Package memif represents the VPP binary API of the 'memif' VPP module.
|
Package memif represents the VPP binary API of the 'memif' VPP module. |
bin_api/tap
Package tap represents the VPP binary API of the 'tap' VPP module.
|
Package tap represents the VPP binary API of the 'tap' VPP module. |
bin_api/vpe
Package vpe represents the VPP binary API of the 'vpe' VPP module.
|
Package vpe represents the VPP binary API of the 'vpe' VPP module. |
bin_api/vxlan
Package vxlan represents the VPP binary API of the 'vxlan' VPP module.
|
Package vxlan represents the VPP binary API of the 'vxlan' VPP module. |
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. |
testing
Package testing provides tools and input data for unit testing of ifplugin.
|
Package testing provides tools and input data for unit testing of ifplugin. |
Package l2plugin implements the L2 plugin that handles Bridge Domains and the L2 FIB.
|
Package l2plugin implements the L2 plugin that handles Bridge Domains and the L2 FIB. |
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
Package l2 represents the VPP binary API of the 'l2' VPP module.
|
Package l2 represents the VPP binary API of the 'l2' VPP module. |
bin_api/vpe
Package vpe represents the VPP binary API of the 'vpe' VPP module.
|
Package vpe represents the VPP binary API of the 'vpe' VPP module. |
model
Package model defines the l2lugin's northbound API.
|
Package model defines the l2lugin's northbound API. |
model/l2
Package l2 is a generated protocol buffer package.
|
Package l2 is a generated protocol buffer package. |
testing
Package testing provides tools and input data for unit testing of the l2plugin.
|
Package testing provides tools and input data for unit testing of the l2plugin. |
Package l3plugin implements the L3 plugin that handles the L3 FIB.
|
Package l3plugin implements the L3 plugin that handles the L3 FIB. |
bin_api
Package binapi defines the l3plugin's southbound API.
|
Package binapi defines the l3plugin's southbound API. |
bin_api/ip
Package ip represents the VPP binary API of the 'ip' VPP module.
|
Package ip represents the VPP binary API of the 'ip' VPP module. |
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. |