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) Init() (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 { Log logging.Logger Stopwatch *measure.Stopwatch // timer used to measure and store time GoVppmux govppmux.API SwIfIndexes ifaceidx.SwIfIndexRW SaIndexSeq uint32 SaIndexes idxvpp.NameToIdxRW SpdIndexSeq uint32 SpdIndexes ipsecidx.SPDIndexRW CachedSpdIndexes ipsecidx.SPDIndexRW SPDIfCache []SPDIfCacheEntry // 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) Init ¶
func (plugin *IPSecConfigurator) Init() (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