vppcalls

package
v1.9.0-alpha Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 12, 2018 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type IPSecSaDetails added in v1.8.1

type IPSecSaDetails struct {
	Sa   *ipsec.SecurityAssociations_SA
	Meta *IPSecSaMeta
}

IPSecSaDetails holds security association with VPP metadata

type IPSecSaMeta added in v1.8.1

type IPSecSaMeta struct {
	SaID           uint32
	Interface      string
	IfIdx          uint32
	CryptoKeyLen   uint8
	IntegKeyLen    uint8
	Salt           uint32
	SeqOutbound    uint64
	LastSeqInbound uint64
	ReplayWindow   uint64
	TotalDataSize  uint64
}

IPSecSaMeta contains all VPP-specific metadata

type IPSecSpdDetails added in v1.8.1

type IPSecSpdDetails struct {
	Spd         *ipsec.SecurityPolicyDatabases_SPD
	PolicyMeta  map[string]*SpdMeta // SA-generated name is a key
	NumPolicies uint32
}

IPSecSpdDetails represents IPSec policy databases with particular metadata

type IPSecTunnelInterfaceDetails added in v1.8.1

type IPSecTunnelInterfaceDetails struct {
	Tunnel *ipsec.TunnelInterfaces_Tunnel
	Meta   *IPSecTunnelMeta
}

IPSecTunnelInterfaceDetails hold a list of tunnel interfaces with name/index map as metadata

type IPSecTunnelMeta added in v1.8.1

type IPSecTunnelMeta struct {
	SwIfIndex uint32
}

IPSecTunnelMeta contains map of name/index pairs

type IPSecVPPRead added in v1.8.1

type IPSecVPPRead interface {
	// DumpIPSecSPD returns a list of IPSec security policy databases
	DumpIPSecSPD() (spdList []*IPSecSpdDetails, err error)
	// DumpIPSecSA returns a list of configured security associations
	DumpIPSecSA() (saList []*IPSecSaDetails, err error)
	// DumpIPSecSAWithIndex returns a security association with provided index
	DumpIPSecSAWithIndex(saID uint32) (saList []*IPSecSaDetails, err error)
	// DumpIPSecTunnelInterfaces returns a list of configured IPSec tunnel interfaces
	DumpIPSecTunnelInterfaces() (tun []*IPSecTunnelInterfaceDetails, err error)
}

IPSecVPPRead provides read methods for IPSec

type IPSecVppAPI added in v1.8.1

type IPSecVppAPI interface {
	IPSecVppWrite
	IPSecVPPRead
}

IPSecVppAPI provides methods for creating and managing of a IPsec configuration

type IPSecVppHandler added in v1.8.1

type IPSecVppHandler struct {
	// contains filtered or unexported fields
}

IPSecVppHandler is accessor for IPsec-related vppcalls methods

func NewIPsecVppHandler added in v1.8.1

func NewIPsecVppHandler(callsChan govppapi.Channel, ifIndexes ifaceidx.SwIfIndex, spdIndexes ipsecidx.SPDIndex,
	log logging.Logger) *IPSecVppHandler

NewIPsecVppHandler creates new instance of IPsec vppcalls handler

func (*IPSecVppHandler) AddSAEntry added in v1.8.1

func (h *IPSecVppHandler) AddSAEntry(saID uint32, sa *ipsec.SecurityAssociations_SA) error

AddSAEntry implements IPSec handler.

func (*IPSecVppHandler) AddSPD added in v1.8.1

func (h *IPSecVppHandler) AddSPD(spdID uint32) error

AddSPD implements IPSec handler.

func (*IPSecVppHandler) AddSPDEntry added in v1.8.1

func (h *IPSecVppHandler) AddSPDEntry(spdID, saID uint32, spd *ipsec.SecurityPolicyDatabases_SPD_PolicyEntry) error

AddSPDEntry implements IPSec handler.

func (*IPSecVppHandler) AddTunnelInterface added in v1.8.1

func (h *IPSecVppHandler) AddTunnelInterface(tunnel *ipsec.TunnelInterfaces_Tunnel) (uint32, error)

AddTunnelInterface implements IPSec handler.

func (*IPSecVppHandler) DelSAEntry added in v1.8.1

func (h *IPSecVppHandler) DelSAEntry(saID uint32, sa *ipsec.SecurityAssociations_SA) error

DelSAEntry implements IPSec handler.

func (*IPSecVppHandler) DelSPD added in v1.8.1

func (h *IPSecVppHandler) DelSPD(spdID uint32) error

DelSPD implements IPSec handler.

func (*IPSecVppHandler) DelSPDEntry added in v1.8.1

func (h *IPSecVppHandler) DelSPDEntry(spdID, saID uint32, spd *ipsec.SecurityPolicyDatabases_SPD_PolicyEntry) error

DelSPDEntry implements IPSec handler.

func (*IPSecVppHandler) DelTunnelInterface added in v1.8.1

func (h *IPSecVppHandler) DelTunnelInterface(ifIdx uint32, tunnel *ipsec.TunnelInterfaces_Tunnel) error

DelTunnelInterface implements IPSec handler.

func (*IPSecVppHandler) DumpIPSecSA added in v1.8.1

func (h *IPSecVppHandler) DumpIPSecSA() (saList []*IPSecSaDetails, err error)

DumpIPSecSA implements IPSec handler.

func (*IPSecVppHandler) DumpIPSecSAWithIndex added in v1.8.1

func (h *IPSecVppHandler) DumpIPSecSAWithIndex(saID uint32) (saList []*IPSecSaDetails, err error)

DumpIPSecSAWithIndex implements IPSec handler.

func (*IPSecVppHandler) DumpIPSecSPD added in v1.8.1

func (h *IPSecVppHandler) DumpIPSecSPD() (spdList []*IPSecSpdDetails, err error)

DumpIPSecSPD implements IPSec handler.

func (*IPSecVppHandler) DumpIPSecTunnelInterfaces added in v1.8.1

func (h *IPSecVppHandler) DumpIPSecTunnelInterfaces() (tun []*IPSecTunnelInterfaceDetails, err error)

DumpIPSecTunnelInterfaces implements IPSec handler.

func (*IPSecVppHandler) InterfaceAddSPD added in v1.8.1

func (h *IPSecVppHandler) InterfaceAddSPD(spdID, swIfIdx uint32) error

InterfaceAddSPD implements IPSec handler.

func (*IPSecVppHandler) InterfaceDelSPD added in v1.8.1

func (h *IPSecVppHandler) InterfaceDelSPD(spdID, swIfIdx uint32) error

InterfaceDelSPD implements IPSec handler.

type IPSecVppWrite added in v1.8.1

type IPSecVppWrite interface {
	// AddTunnelInterface adds tunnel interface
	AddTunnelInterface(tunnel *ipsec.TunnelInterfaces_Tunnel) (uint32, error)
	// DelTunnelInterface removes tunnel interface
	DelTunnelInterface(ifIdx uint32, tunnel *ipsec.TunnelInterfaces_Tunnel) error
	// AddSPD adds SPD to VPP via binary API
	AddSPD(spdID uint32) error
	// DelSPD deletes SPD from VPP via binary API
	DelSPD(spdID uint32) error
	// InterfaceAddSPD adds SPD interface assignment to VPP via binary API
	InterfaceAddSPD(spdID, swIfIdx uint32) error
	// InterfaceDelSPD deletes SPD interface assignment from VPP via binary API
	InterfaceDelSPD(spdID, swIfIdx uint32) error
	// AddSPDEntry adds SPD policy entry to VPP via binary API
	AddSPDEntry(spdID, saID uint32, spd *ipsec.SecurityPolicyDatabases_SPD_PolicyEntry) error
	// DelSPDEntry deletes SPD policy entry from VPP via binary API
	DelSPDEntry(spdID, saID uint32, spd *ipsec.SecurityPolicyDatabases_SPD_PolicyEntry) error
	// AddSAEntry adds SA to VPP via binary API
	AddSAEntry(saID uint32, sa *ipsec.SecurityAssociations_SA) error
	// DelSAEntry deletes SA from VPP via binary API
	DelSAEntry(saID uint32, sa *ipsec.SecurityAssociations_SA) error
}

IPSecVppWrite provides write methods for IPsec

type SpdMeta added in v1.8.1

type SpdMeta struct {
	SaID    uint32
	SpdID   uint32
	Policy  uint8
	Bytes   uint64
	Packets uint64
}

SpdMeta hold VPP-specific data related to SPD

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL