Documentation ¶
Index ¶
- Constants
- Variables
- type BDInterfaceDescriptor
- func (d *BDInterfaceDescriptor) Create(key string, bdIface *l2.BridgeDomain_Interface) (metadata interface{}, err error)
- func (d *BDInterfaceDescriptor) Delete(key string, bdIface *l2.BridgeDomain_Interface, metadata interface{}) error
- func (d *BDInterfaceDescriptor) Dependencies(key string, value *l2.BridgeDomain_Interface) []kvs.Dependency
- func (d *BDInterfaceDescriptor) GetDescriptor() *adapter.BDInterfaceDescriptor
- func (d *BDInterfaceDescriptor) IsBDInterfaceKey(key string) bool
- type BridgeDomainDescriptor
- func (d *BridgeDomainDescriptor) Create(key string, bd *l2.BridgeDomain) (metadata *idxvpp.OnlyIndex, err error)
- func (d *BridgeDomainDescriptor) Delete(key string, bd *l2.BridgeDomain, metadata *idxvpp.OnlyIndex) error
- func (d *BridgeDomainDescriptor) DerivedValues(key string, bd *l2.BridgeDomain) (derValues []kvs.KeyValuePair)
- func (d *BridgeDomainDescriptor) EquivalentBridgeDomains(key string, oldBD, newBD *l2.BridgeDomain) bool
- func (d *BridgeDomainDescriptor) GetDescriptor() *adapter.BridgeDomainDescriptor
- func (d *BridgeDomainDescriptor) MetadataFactory() idxmap.NamedMappingRW
- func (d *BridgeDomainDescriptor) Retrieve(correlate []adapter.BridgeDomainKVWithMetadata) (retrieved []adapter.BridgeDomainKVWithMetadata, err error)
- func (d *BridgeDomainDescriptor) Update(key string, oldBD, newBD *l2.BridgeDomain, oldMetadata *idxvpp.OnlyIndex) (newMetadata *idxvpp.OnlyIndex, err error)
- func (d *BridgeDomainDescriptor) UpdateWithRecreate(key string, oldBD, newBD *l2.BridgeDomain, metadata *idxvpp.OnlyIndex) bool
- func (d *BridgeDomainDescriptor) Validate(key string, bd *l2.BridgeDomain) error
- type FIBDescriptor
- func (d *FIBDescriptor) Create(key string, fib *l2.FIBEntry) (metadata interface{}, err error)
- func (d *FIBDescriptor) Delete(key string, fib *l2.FIBEntry, metadata interface{}) error
- func (d *FIBDescriptor) Dependencies(key string, fib *l2.FIBEntry) (dependencies []kvs.Dependency)
- func (d *FIBDescriptor) EquivalentFIBs(key string, oldFIB, newFIB *l2.FIBEntry) bool
- func (d *FIBDescriptor) GetDescriptor() *adapter.FIBDescriptor
- func (d *FIBDescriptor) Retrieve(correlate []adapter.FIBKVWithMetadata) (retrieved []adapter.FIBKVWithMetadata, err error)
- func (d *FIBDescriptor) Validate(key string, fib *l2.FIBEntry) error
- type XConnectDescriptor
- func (d *XConnectDescriptor) Create(key string, xc *l2.XConnectPair) (metadata interface{}, err error)
- func (d *XConnectDescriptor) Delete(key string, xc *l2.XConnectPair, metadata interface{}) error
- func (d *XConnectDescriptor) Dependencies(key string, xc *l2.XConnectPair) []kvs.Dependency
- func (d *XConnectDescriptor) GetDescriptor() *adapter.XConnectDescriptor
- func (d *XConnectDescriptor) Retrieve(correlate []adapter.XConnectKVWithMetadata) (retrieved []adapter.XConnectKVWithMetadata, err error)
- func (d *XConnectDescriptor) Validate(key string, xc *l2.XConnectPair) error
Constants ¶
const ( // BDInterfaceDescriptorName is the name of the descriptor for bindings between // VPP bridge domains and interfaces. BDInterfaceDescriptorName = "vpp-bd-interface" )
const (
// BridgeDomainDescriptorName is the name of the descriptor for VPP bridge domains.
BridgeDomainDescriptorName = "vpp-bridge-domain"
)
const (
// FIBDescriptorName is the name of the descriptor for VPP L2 FIBs.
FIBDescriptorName = "vpp-l2-fib"
)
const (
// XConnectDescriptorName is the name of the descriptor for VPP xConnect pairs.
XConnectDescriptorName = "vpp-xconnect"
)
Variables ¶
var ( // ErrBridgeDomainWithoutName is returned when VPP bridge domain configuration // has undefined Name attribute. ErrBridgeDomainWithoutName = errors.New("VPP bridge domain defined without logical name") // ErrBridgeDomainWithMultipleBVI is returned when bridge domain is defined with // multiple BVI interfaces. ErrBridgeDomainWithMultipleBVI = errors.New("VPP bridge domain defined with mutliple BVIs") )
A list of non-retriable errors:
var ( // ErrFIBWithoutHwAddr is returned when VPP L2 FIB has undefined hardware // address. ErrFIBWithoutHwAddr = errors.New("VPP L2 FIB defined without hardware address") // ErrFIBWithoutBD is returned when VPP L2 FIB has undefined bridge domain. ErrFIBWithoutBD = errors.New("VPP L2 FIB defined without bridge domain") // ErrForwardFIBWithoutInterface is returned when VPP L2 FORWARD FIB has undefined outgoing interface. ErrForwardFIBWithoutInterface = errors.New("VPP L2 FORWARD FIB defined without outgoing interface") )
A list of non-retriable errors:
var ( // ErrXConnectWithoutInterface is returned when VPP xConnect has undefined // Rx or Tx interface. ErrXConnectWithoutInterface = errors.New("VPP xConnect defined without Rx/Tx interface") )
A list of non-retriable errors:
Functions ¶
This section is empty.
Types ¶
type BDInterfaceDescriptor ¶
type BDInterfaceDescriptor struct {
// contains filtered or unexported fields
}
BDInterfaceDescriptor teaches KVScheduler how to put interface into VPP bridge domain.
func NewBDInterfaceDescriptor ¶
func NewBDInterfaceDescriptor(bdIndex idxvpp.NameToIndex, bdHandler vppcalls.BridgeDomainVppAPI, log logging.PluginLogger) *BDInterfaceDescriptor
NewBDInterfaceDescriptor creates a new instance of the BDInterface descriptor.
func (*BDInterfaceDescriptor) Create ¶
func (d *BDInterfaceDescriptor) Create(key string, bdIface *l2.BridgeDomain_Interface) (metadata interface{}, err error)
Create puts interface into bridge domain.
func (*BDInterfaceDescriptor) Delete ¶
func (d *BDInterfaceDescriptor) Delete(key string, bdIface *l2.BridgeDomain_Interface, metadata interface{}) error
Delete removes interface from bridge domain.
func (*BDInterfaceDescriptor) Dependencies ¶
func (d *BDInterfaceDescriptor) Dependencies(key string, value *l2.BridgeDomain_Interface) []kvs.Dependency
Dependencies lists the interface as the only dependency for the binding.
func (*BDInterfaceDescriptor) GetDescriptor ¶
func (d *BDInterfaceDescriptor) GetDescriptor() *adapter.BDInterfaceDescriptor
GetDescriptor returns descriptor suitable for registration (via adapter) with the KVScheduler.
func (*BDInterfaceDescriptor) IsBDInterfaceKey ¶
func (d *BDInterfaceDescriptor) IsBDInterfaceKey(key string) bool
IsBDInterfaceKey returns true if the key is identifying binding between VPP bridge domain and interface.
type BridgeDomainDescriptor ¶
type BridgeDomainDescriptor struct {
// contains filtered or unexported fields
}
BridgeDomainDescriptor teaches KVScheduler how to configure VPP bridge domains.
func NewBridgeDomainDescriptor ¶
func NewBridgeDomainDescriptor(bdHandler vppcalls.BridgeDomainVppAPI, log logging.PluginLogger) *BridgeDomainDescriptor
NewBridgeDomainDescriptor creates a new instance of the BridgeDomain descriptor.
func (*BridgeDomainDescriptor) Create ¶
func (d *BridgeDomainDescriptor) Create(key string, bd *l2.BridgeDomain) (metadata *idxvpp.OnlyIndex, err error)
Create adds new bridge domain.
func (*BridgeDomainDescriptor) Delete ¶
func (d *BridgeDomainDescriptor) Delete(key string, bd *l2.BridgeDomain, metadata *idxvpp.OnlyIndex) error
Delete removes VPP bridge domain.
func (*BridgeDomainDescriptor) DerivedValues ¶
func (d *BridgeDomainDescriptor) DerivedValues(key string, bd *l2.BridgeDomain) (derValues []kvs.KeyValuePair)
DerivedValues derives l2.BridgeDomain_Interface for every interface assigned to the bridge domain.
func (*BridgeDomainDescriptor) EquivalentBridgeDomains ¶
func (d *BridgeDomainDescriptor) EquivalentBridgeDomains(key string, oldBD, newBD *l2.BridgeDomain) bool
EquivalentBridgeDomains is case-insensitive comparison function for l2.BridgeDomain, also ignoring the order of assigned ARP termination entries.
func (*BridgeDomainDescriptor) GetDescriptor ¶
func (d *BridgeDomainDescriptor) GetDescriptor() *adapter.BridgeDomainDescriptor
GetDescriptor returns descriptor suitable for registration (via adapter) with the KVScheduler.
func (*BridgeDomainDescriptor) MetadataFactory ¶
func (d *BridgeDomainDescriptor) MetadataFactory() idxmap.NamedMappingRW
MetadataFactory is a factory for index-map customized for VPP bridge domains.
func (*BridgeDomainDescriptor) Retrieve ¶
func (d *BridgeDomainDescriptor) Retrieve(correlate []adapter.BridgeDomainKVWithMetadata) (retrieved []adapter.BridgeDomainKVWithMetadata, err error)
Retrieve returns all configured VPP bridge domains.
func (*BridgeDomainDescriptor) Update ¶
func (d *BridgeDomainDescriptor) Update(key string, oldBD, newBD *l2.BridgeDomain, oldMetadata *idxvpp.OnlyIndex) (newMetadata *idxvpp.OnlyIndex, err error)
Update is able to change ARP termination entries.
func (*BridgeDomainDescriptor) UpdateWithRecreate ¶
func (d *BridgeDomainDescriptor) UpdateWithRecreate(key string, oldBD, newBD *l2.BridgeDomain, metadata *idxvpp.OnlyIndex) bool
UpdateWithRecreate returns true if bridge domain base parameters are different.
func (*BridgeDomainDescriptor) Validate ¶
func (d *BridgeDomainDescriptor) Validate(key string, bd *l2.BridgeDomain) error
Validate validates VPP bridge domain configuration.
type FIBDescriptor ¶
type FIBDescriptor struct {
// contains filtered or unexported fields
}
FIBDescriptor teaches KVScheduler how to configure VPP L2 FIBs.
func NewFIBDescriptor ¶
func NewFIBDescriptor(fibHandler vppcalls.FIBVppAPI, log logging.PluginLogger) *FIBDescriptor
NewFIBDescriptor creates a new instance of the FIB descriptor.
func (*FIBDescriptor) Create ¶
func (d *FIBDescriptor) Create(key string, fib *l2.FIBEntry) (metadata interface{}, err error)
Create adds new L2 FIB.
func (*FIBDescriptor) Delete ¶
func (d *FIBDescriptor) Delete(key string, fib *l2.FIBEntry, metadata interface{}) error
Delete removes VPP L2 FIB.
func (*FIBDescriptor) Dependencies ¶
func (d *FIBDescriptor) Dependencies(key string, fib *l2.FIBEntry) (dependencies []kvs.Dependency)
Dependencies for FIBs are:
- FORWARD FIB: bridge domain + outgoing interface already put into the bridge domain
- DROP FIB: bridge domain
func (*FIBDescriptor) EquivalentFIBs ¶
func (d *FIBDescriptor) EquivalentFIBs(key string, oldFIB, newFIB *l2.FIBEntry) bool
EquivalentFIBs is case-insensitive comparison function for l2.FIBEntry.
func (*FIBDescriptor) GetDescriptor ¶
func (d *FIBDescriptor) GetDescriptor() *adapter.FIBDescriptor
GetDescriptor returns descriptor suitable for registration (via adapter) with the KVScheduler.
func (*FIBDescriptor) Retrieve ¶
func (d *FIBDescriptor) Retrieve(correlate []adapter.FIBKVWithMetadata) (retrieved []adapter.FIBKVWithMetadata, err error)
Retrieve returns all configured VPP L2 FIBs.
type XConnectDescriptor ¶
type XConnectDescriptor struct {
// contains filtered or unexported fields
}
XConnectDescriptor teaches KVScheduler how to configure VPP xConnect pairs.
func NewXConnectDescriptor ¶
func NewXConnectDescriptor(xcHandler vppcalls.XConnectVppAPI, log logging.PluginLogger) *XConnectDescriptor
NewXConnectDescriptor creates a new instance of the xConnect descriptor.
func (*XConnectDescriptor) Create ¶
func (d *XConnectDescriptor) Create(key string, xc *l2.XConnectPair) (metadata interface{}, err error)
Create adds new xConnect pair.
func (*XConnectDescriptor) Delete ¶
func (d *XConnectDescriptor) Delete(key string, xc *l2.XConnectPair, metadata interface{}) error
Delete removes existing xConnect pair.
func (*XConnectDescriptor) Dependencies ¶
func (d *XConnectDescriptor) Dependencies(key string, xc *l2.XConnectPair) []kvs.Dependency
Dependencies lists both Rx and Tx interface as dependencies.
func (*XConnectDescriptor) GetDescriptor ¶
func (d *XConnectDescriptor) GetDescriptor() *adapter.XConnectDescriptor
GetDescriptor returns descriptor suitable for registration (via adapter) with the KVScheduler.
func (*XConnectDescriptor) Retrieve ¶
func (d *XConnectDescriptor) Retrieve(correlate []adapter.XConnectKVWithMetadata) (retrieved []adapter.XConnectKVWithMetadata, err error)
Retrieve returns all configured VPP xConnect pairs.
func (*XConnectDescriptor) Validate ¶
func (d *XConnectDescriptor) Validate(key string, xc *l2.XConnectPair) error
Validate validates VPP xConnect pair configuration.