Documentation
¶
Overview ¶
Package bdidx implements name-to-index mapping registry and cache for bridge-domains.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type BDIndex ¶
type BDIndex interface {
// GetMapping returns internal read-only mapping with metadata of type interface{}.
GetMapping() idxvpp.NameToIdxRW
// LookupIdx looks up previously stored item identified by index in mapping.
LookupIdx(name string) (idx uint32, metadata *BdMetadata, exists bool)
// LookupName looks up previously stored item identified by name in mapping.
LookupName(idx uint32) (name string, metadata *BdMetadata, exists bool)
// LookupBdForInterface looks up for bridge domain the interface belongs to
LookupBdForInterface(ifName string) (bdIdx uint32, bd *l2.BridgeDomains_BridgeDomain, bdIf *l2.BridgeDomains_BridgeDomain_Interfaces, exists bool)
// LookupConfiguredIfsForBd return a list of configured interfaces for bridge domain
LookupConfiguredIfsForBd(bdName string) ([]string, bool)
// WatchNameToIdx allows to subscribe for watching changes in bdIndex mapping
WatchNameToIdx(subscriber core.PluginName, pluginChannel chan BdChangeDto)
}
BDIndex provides read-only access to mapping between indices (used internally in VPP) and Bridge Domain names.
func Cache ¶
func Cache(watcher datasync.KeyValProtoWatcher) BDIndex
Cache the network interfaces of a particular agent by watching (ETCD or different transport).
type BDIndexRW ¶
type BDIndexRW interface {
BDIndex
// RegisterName adds new item into name-to-index mapping.
RegisterName(name string, idx uint32, metadata *BdMetadata)
// UnregisterName removes an item identified by name from mapping.
UnregisterName(name string) (idx uint32, metadata *BdMetadata, exists bool)
// UpdateMetadata updates metadata in existing bridge domain entry.
UpdateMetadata(name string, metadata *BdMetadata) (success bool)
// Clear removes all bridge domains from the mapping.
Clear()
}
BDIndexRW is mapping between indices (used internally in VPP) and Bridge Domain names.
func NewBDIndex ¶
func NewBDIndex(mapping idxvpp.NameToIdxRW) BDIndexRW
NewBDIndex creates new instance of bdIndex.
type BdChangeDto ¶
type BdChangeDto struct {
idxvpp.NameToIdxDtoWithoutMeta
Metadata *BdMetadata
}
ChangeDto represents an item sent through watch channel in bdIndex. In contrast to NameToIdxDto, it contains typed metadata.
type BdMetadata ¶
type BdMetadata struct {
BridgeDomain *l2.BridgeDomains_BridgeDomain
ConfiguredInterfaces []string
}
Bridge domain metadata consists from base bridge domain data and a list of interfaces which were (according to L2 bridge domain configurator) already configured as a part of bridge domain
func NewBDMetadata ¶
func NewBDMetadata(bd *l2.BridgeDomains_BridgeDomain, confIfs []string) *BdMetadata
NewBDMetadata returns new instance of metadata
type FIBIndex ¶
type FIBIndex interface {
// GetMapping returns internal read-only mapping with metadata of type interface{}.
GetMapping() idxvpp.NameToIdxRW
// LookupIdx looks up previously stored item identified by index in mapping.
LookupIdx(name string) (idx uint32, metadata *l2.FibTable_FibEntry, exists bool)
// LookupName looks up previously stored item identified by name in mapping.
LookupName(idx uint32) (name string, metadata *l2.FibTable_FibEntry, exists bool)
// WatchNameToIdx allows to subscribe for watching changes in fibIndex mapping
WatchNameToIdx(subscriber core.PluginName, pluginChannel chan FibChangeDto)
}
FIBIndex provides read-only access to mapping between indexes (used internally in VPP) and FIB entries.
type FIBIndexRW ¶
type FIBIndexRW interface {
FIBIndex
// RegisterName adds new item into name-to-index mapping.
RegisterName(name string, idx uint32, metadata *l2.FibTable_FibEntry)
// UnregisterName removes an item identified by name from mapping.
UnregisterName(name string) (idx uint32, metadata *l2.FibTable_FibEntry, exists bool)
// UpdateMetadata updates metadata in existing FIB entry.
UpdateMetadata(name string, metadata *l2.FibTable_FibEntry) (success bool)
// Clear removes all FIB entries from the mapping.
Clear()
}
FIBIndexRW is mapping between indices (used internally in VPP) and FIB entries.
func NewFIBIndex ¶
func NewFIBIndex(mapping idxvpp.NameToIdxRW) FIBIndexRW
NewFIBIndex creates new instance of fibIndex.
type FibChangeDto ¶
type FibChangeDto struct {
idxvpp.NameToIdxDtoWithoutMeta
Metadata *l2.FibTable_FibEntry
}
FibChangeDto represents an item sent through watch channel in fibIndex. In contrast to NameToIdxDto, it contains typed metadata.
type XcChangeDto ¶
type XcChangeDto struct {
idxvpp.NameToIdxDtoWithoutMeta
Metadata *l2.XConnectPairs_XConnectPair
}
XcChangeDto represents an item sent through watch channel in xcIndex. In contrast to NameToIdxDto, it contains typed metadata.
type XcIndex ¶
type XcIndex interface {
// GetMapping returns internal read-only mapping with metadata of type interface{}.
GetMapping() idxvpp.NameToIdxRW
// LookupIdx looks up previously stored item identified by index in mapping.
LookupIdx(name string) (idx uint32, metadata *l2.XConnectPairs_XConnectPair, exists bool)
// LookupName looks up previously stored item identified by name in mapping.
LookupName(idx uint32) (name string, metadata *l2.XConnectPairs_XConnectPair, exists bool)
// WatchNameToIdx allows to subscribe for watching changes in xcIndex mapping
WatchNameToIdx(subscriber core.PluginName, pluginChannel chan XcChangeDto)
}
XcIndex provides read-only access to mapping between indexes (used internally in VPP) and cross connects.
type XcIndexRW ¶
type XcIndexRW interface {
XcIndex
// RegisterName adds new item into name-to-index mapping.
RegisterName(name string, idx uint32, metadata *l2.XConnectPairs_XConnectPair)
// UnregisterName removes an item identified by name from mapping.
UnregisterName(name string) (idx uint32, metadata *l2.XConnectPairs_XConnectPair, exists bool)
// UpdateMetadata updates metadata in existing cross connect entry.
UpdateMetadata(name string, metadata *l2.XConnectPairs_XConnectPair) (success bool)
// Clear removes all cross connects from the mapping.
Clear()
}
XcIndexRW is mapping between indices (used internally in VPP) and cross connect entries.
func NewXcIndex ¶
func NewXcIndex(mapping idxvpp.NameToIdxRW) XcIndexRW
NewXcIndex creates new instance of xcIndex.
Source Files
¶
- bd_index.go
- cache_bd.go
- doc.go
- fib_index.go
- xc_index.go