vppcalls

package
v2.5.1+incompatible Latest Latest
Warning

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

Go to latest
Published: Dec 6, 2019 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Versions = map[string]HandlerVersion{}

Functions

This section is empty.

Types

type HandlerVersion

type HandlerVersion struct {
	Msgs []govppapi.Message
	New  func(govppapi.Channel, ifaceidx.IfaceMetadataIndex, logging.Logger) IPSecVppAPI
}

type IPSecSaDetails

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

IPSecSaDetails holds security association with VPP metadata

type IPSecSaMeta

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

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

IPSecSpdDetails represents IPSec policy databases with particular metadata

type IPSecVPPRead

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)
}

IPSecVPPRead provides read methods for IPSec

type IPSecVppAPI

type IPSecVppAPI interface {
	IPSecVPPRead

	// AddSPD adds SPD to VPP via binary API
	AddSPD(spdID uint32) error
	// DelSPD deletes SPD from VPP via binary API
	DeleteSPD(spdID uint32) error
	// InterfaceAddSPD adds SPD interface assignment to VPP via binary API
	AddSPDInterface(spdID uint32, iface *ipsec.SecurityPolicyDatabase_Interface) error
	// InterfaceDelSPD deletes SPD interface assignment from VPP via binary API
	DeleteSPDInterface(spdID uint32, iface *ipsec.SecurityPolicyDatabase_Interface) error
	// AddSPDEntry adds SPD policy entry to VPP via binary API
	AddSPDEntry(spdID, saID uint32, spd *ipsec.SecurityPolicyDatabase_PolicyEntry) error
	// DelSPDEntry deletes SPD policy entry from VPP via binary API
	DeleteSPDEntry(spdID, saID uint32, spd *ipsec.SecurityPolicyDatabase_PolicyEntry) error
	// AddSAEntry adds SA to VPP via binary API
	AddSA(sa *ipsec.SecurityAssociation) error
	// DelSAEntry deletes SA from VPP via binary API
	DeleteSA(sa *ipsec.SecurityAssociation) error
}

IPSecVppAPI provides methods for creating and managing of a IPsec configuration

func CompatibleIPSecVppHandler

func CompatibleIPSecVppHandler(
	ch govppapi.Channel, idx ifaceidx.IfaceMetadataIndex, log logging.Logger,
) IPSecVppAPI

type SpdMeta

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

SpdMeta hold VPP-specific data related to SPD

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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