Documentation ¶
Overview ¶
Package ipsecplugin implements the IPSec plugin that handles management of IPSec for VPP.
Index ¶
- type IPSecConfigurator
- func (plugin *IPSecConfigurator) Close() error
- func (plugin *IPSecConfigurator) ConfigureSA(sa *ipsec.SecurityAssociations_SA) error
- func (plugin *IPSecConfigurator) ConfigureSPD(spd *ipsec.SecurityPolicyDatabases_SPD) error
- func (plugin *IPSecConfigurator) ConfigureTunnel(tunnel *ipsec.TunnelInterfaces_Tunnel) error
- func (plugin *IPSecConfigurator) DeleteSA(oldSa *ipsec.SecurityAssociations_SA) error
- func (plugin *IPSecConfigurator) DeleteSPD(oldSpd *ipsec.SecurityPolicyDatabases_SPD) error
- func (plugin *IPSecConfigurator) DeleteTunnel(oldTunnel *ipsec.TunnelInterfaces_Tunnel) error
- func (plugin *IPSecConfigurator) GetSaIndexes() idxvpp.NameToIdxRW
- func (plugin *IPSecConfigurator) GetSpdIndexes() ipsecidx.SPDIndex
- func (plugin *IPSecConfigurator) Init(logger logging.PluginLogger, goVppMux govppmux.API, ...) (err error)
- func (plugin *IPSecConfigurator) ModifySA(oldSa *ipsec.SecurityAssociations_SA, newSa *ipsec.SecurityAssociations_SA) error
- func (plugin *IPSecConfigurator) ModifySPD(oldSpd *ipsec.SecurityPolicyDatabases_SPD, ...) error
- func (plugin *IPSecConfigurator) ModifyTunnel(oldTunnel *ipsec.TunnelInterfaces_Tunnel, ...) error
- func (plugin *IPSecConfigurator) ResolveCreatedInterface(ifName string, swIfIdx uint32)
- func (plugin *IPSecConfigurator) ResolveDeletedInterface(ifName string, swIfIdx uint32)
- func (plugin *IPSecConfigurator) Resync(spds []*ipsec.SecurityPolicyDatabases_SPD, ...) error
- type SPDIfCacheEntry
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type IPSecConfigurator ¶
type IPSecConfigurator struct {
// contains filtered or unexported fields
}
IPSecConfigurator runs in the background in its own goroutine where it watches for any changes in the configuration of interfaces as modelled by the proto file "../model/ipsec/ipsec.proto" and stored in ETCD under the key "/vnf-agent/{vnf-agent}/vpp/config/v1/ipsec". Updates received from the northbound API are compared with the VPP run-time configuration and differences are applied through the VPP binary API.
func (*IPSecConfigurator) Close ¶
func (plugin *IPSecConfigurator) Close() error
Close GOVPP channel
func (*IPSecConfigurator) ConfigureSA ¶
func (plugin *IPSecConfigurator) ConfigureSA(sa *ipsec.SecurityAssociations_SA) error
ConfigureSA configures Security Association in VPP
func (*IPSecConfigurator) ConfigureSPD ¶
func (plugin *IPSecConfigurator) ConfigureSPD(spd *ipsec.SecurityPolicyDatabases_SPD) error
ConfigureSPD configures Security Policy Database in VPP
func (*IPSecConfigurator) ConfigureTunnel ¶
func (plugin *IPSecConfigurator) ConfigureTunnel(tunnel *ipsec.TunnelInterfaces_Tunnel) error
ConfigureTunnel configures Tunnel interface in VPP
func (*IPSecConfigurator) DeleteSA ¶
func (plugin *IPSecConfigurator) DeleteSA(oldSa *ipsec.SecurityAssociations_SA) error
DeleteSA deletes Security Association in VPP
func (*IPSecConfigurator) DeleteSPD ¶
func (plugin *IPSecConfigurator) DeleteSPD(oldSpd *ipsec.SecurityPolicyDatabases_SPD) error
DeleteSPD deletes Security Policy Database in VPP
func (*IPSecConfigurator) DeleteTunnel ¶
func (plugin *IPSecConfigurator) DeleteTunnel(oldTunnel *ipsec.TunnelInterfaces_Tunnel) error
DeleteTunnel deletes Tunnel interface in VPP
func (*IPSecConfigurator) GetSaIndexes ¶
func (plugin *IPSecConfigurator) GetSaIndexes() idxvpp.NameToIdxRW
GetSaIndexes returns security association indexes
func (*IPSecConfigurator) GetSpdIndexes ¶
func (plugin *IPSecConfigurator) GetSpdIndexes() ipsecidx.SPDIndex
GetSaIndexes returns security policy database indexes
func (*IPSecConfigurator) Init ¶
func (plugin *IPSecConfigurator) Init(logger logging.PluginLogger, goVppMux govppmux.API, swIfIndexes ifaceidx.SwIfIndexRW, enableStopwatch bool) (err error)
Init members (channels...) and start go routines
func (*IPSecConfigurator) ModifySA ¶
func (plugin *IPSecConfigurator) ModifySA(oldSa *ipsec.SecurityAssociations_SA, newSa *ipsec.SecurityAssociations_SA) error
ModifySA modifies Security Association in VPP
func (*IPSecConfigurator) ModifySPD ¶
func (plugin *IPSecConfigurator) ModifySPD(oldSpd *ipsec.SecurityPolicyDatabases_SPD, newSpd *ipsec.SecurityPolicyDatabases_SPD) error
ModifySPD modifies Security Policy Database in VPP
func (*IPSecConfigurator) ModifyTunnel ¶
func (plugin *IPSecConfigurator) ModifyTunnel(oldTunnel *ipsec.TunnelInterfaces_Tunnel, newTunnel *ipsec.TunnelInterfaces_Tunnel) error
ModifyTunnel modifies Tunnel interface in VPP
func (*IPSecConfigurator) ResolveCreatedInterface ¶
func (plugin *IPSecConfigurator) ResolveCreatedInterface(ifName string, swIfIdx uint32)
ResolveCreatedInterface is responsible for reconfiguring cached assignments
func (*IPSecConfigurator) ResolveDeletedInterface ¶
func (plugin *IPSecConfigurator) ResolveDeletedInterface(ifName string, swIfIdx uint32)
ResolveDeletedInterface is responsible for caching assignments for future reconfiguration
func (*IPSecConfigurator) Resync ¶
func (plugin *IPSecConfigurator) Resync(spds []*ipsec.SecurityPolicyDatabases_SPD, sas []*ipsec.SecurityAssociations_SA, tunnels []*ipsec.TunnelInterfaces_Tunnel) error
Resync writes missing IPSec configs to the VPP and removes obsolete ones.
type SPDIfCacheEntry ¶
type SPDIfCacheEntry struct {
// contains filtered or unexported fields
}
SPDIfCacheEntry contains info about cached assignment of interface to SPD