vpplink

package
v3.27.0 Latest Latest
Warning

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

Go to latest
Published: Dec 19, 2023 License: Apache-2.0 Imports: 61 Imported by: 0

Documentation

Index

Constants

View Source
const (
	FeatureArcCnatInput  = "ip?-unicast cnat-input-ip?"
	FeatureArcCnatOutput = "ip?-output cnat-output-ip?"
	FeatureArcSnat       = "ip?-unicast cnat-snat-ip?"
)
View Source
const (
	INVALID_SW_IF_INDEX = ^uint32(0)
	MAX_MTU             = 9216
	DEFAULT_QUEUE_SIZE  = 1024
)
View Source
const (
	AnyInterface = ^uint32(0)
)
View Source
const (
	AvfReplyTimeout = 15 * time.Second
)
View Source
const InvalidID = ^uint32(0)

Variables

View Source
var (
	IpFamilyV4 = IpFamily{"ip4", "4", false, true, 0}
	IpFamilyV6 = IpFamily{"ip6", "6", true, false, 1}
	IpFamilies = []IpFamily{IpFamilyV4, IpFamilyV6}
)

Functions

func AddrFamilyDiffers

func AddrFamilyDiffers(addr1 net.IP, addr2 net.IP) bool

func BoolToU8

func BoolToU8(b bool) uint8

func DefaultIntTo

func DefaultIntTo(value, defaultValue int) int

func ExtendToVector added in v3.27.0

func ExtendToVector(match []byte) []byte

func GetInterfaceStats

func GetInterfaceStats(sc *statsclient.StatsClient) (ifNames adapter.NameStat, dumpStats []adapter.StatEntry, err error)

func IsAddToStr

func IsAddToStr(isAdd bool) string

func IsIP4

func IsIP4(ip net.IP) bool

func IsIP6

func IsIP6(ip net.IP) bool

Types

type CleanupCall

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

func (*CleanupCall) Execute

func (call *CleanupCall) Execute()

type CleanupStack

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

func (*CleanupStack) Execute

func (stack *CleanupStack) Execute()

func (*CleanupStack) Push

func (stack *CleanupStack) Push(f interface{}, args ...interface{})

type IKEv2AuthMethod

type IKEv2AuthMethod uint8
const (
	IKEv2AuthMethodRSASig       IKEv2AuthMethod = 1
	IKEv2AuthMethodSharedKeyMic IKEv2AuthMethod = 2
)

type IKEv2DHGroup

type IKEv2DHGroup uint32
const (
	IKEv2DHGroupNone          IKEv2DHGroup = 0
	IKEv2DHGroupMODP_768      IKEv2DHGroup = 1
	IKEv2DHGroupMODP_1024     IKEv2DHGroup = 2
	IKEv2DHGroupMODP_1536     IKEv2DHGroup = 5
	IKEv2DHGroupMODP_2048     IKEv2DHGroup = 14
	IKEv2DHGroupMODP_3072     IKEv2DHGroup = 15
	IKEv2DHGroupMODP_4096     IKEv2DHGroup = 16
	IKEv2DHGroupMODP_6144     IKEv2DHGroup = 17
	IKEv2DHGroupMODP_8192     IKEv2DHGroup = 18
	IKEv2DHGroupECP_256       IKEv2DHGroup = 19
	IKEv2DHGroupECP_384       IKEv2DHGroup = 20
	IKEv2DHGroupECP_521       IKEv2DHGroup = 21
	IKEv2DHGroupMODP_1024_160 IKEv2DHGroup = 22
	IKEv2DHGroupMODP_2048_224 IKEv2DHGroup = 23
	IKEv2DHGroupMODP_2048_256 IKEv2DHGroup = 24
	IKEv2DHGroupECP_192       IKEv2DHGroup = 25
	IKEv2DHGroupECP_224       IKEv2DHGroup = 26
	IKEv2DHGroupBRAINPOOL_224 IKEv2DHGroup = 27
	IKEv2DHGroupBRAINPOOL_256 IKEv2DHGroup = 28
	IKEv2DHGroupBRAINPOOL_384 IKEv2DHGroup = 29
	IKEv2DHGroupBRAINPOOL_512 IKEv2DHGroup = 30
)

type IKEv2EncryptionAlgorithm

type IKEv2EncryptionAlgorithm uint32
const (
	IKEv2EncryptionAlgorithmDES_IV64   IKEv2EncryptionAlgorithm = 1
	IKEv2EncryptionAlgorithmDES        IKEv2EncryptionAlgorithm = 2
	IKEv2EncryptionAlgorithm3DES       IKEv2EncryptionAlgorithm = 3
	IKEv2EncryptionAlgorithmRC5        IKEv2EncryptionAlgorithm = 4
	IKEv2EncryptionAlgorithmIDEA       IKEv2EncryptionAlgorithm = 5
	IKEv2EncryptionAlgorithmCAST       IKEv2EncryptionAlgorithm = 6
	IKEv2EncryptionAlgorithmBLOWFISH   IKEv2EncryptionAlgorithm = 7
	IKEv2EncryptionAlgorithm3IDEA      IKEv2EncryptionAlgorithm = 8
	IKEv2EncryptionAlgorithmDES_IV32   IKEv2EncryptionAlgorithm = 9
	IKEv2EncryptionAlgorithmNULL       IKEv2EncryptionAlgorithm = 11
	IKEv2EncryptionAlgorithmAES_CBC    IKEv2EncryptionAlgorithm = 12
	IKEv2EncryptionAlgorithmAES_CTR    IKEv2EncryptionAlgorithm = 13
	IKEv2EncryptionAlgorithmAES_GCM_16 IKEv2EncryptionAlgorithm = 20
)

type IKEv2IDType

type IKEv2IDType uint8
const (
	IKEv2IDTypeIPv4Addr   IKEv2IDType = 1
	IKEv2IDTypeFQDN       IKEv2IDType = 2
	IKEv2IDTypeRFC822Addr IKEv2IDType = 3
	IKEv2IDTypeIPv6Addr   IKEv2IDType = 5
	IKEv2IDTypeDerAsn1Dn  IKEv2IDType = 9
	IKEv2IDTypeDerAsn1Gn  IKEv2IDType = 10
	IKEv2IDTypeKeyID      IKEv2IDType = 11
)

type IKEv2IntegrityAlgorithm

type IKEv2IntegrityAlgorithm uint32
const (
	IKEv2IntegrityAlgorithmNone                   IKEv2IntegrityAlgorithm = 0
	IKEv2IntegrityAlgorithmAUTH_HMAC_MD5_96       IKEv2IntegrityAlgorithm = 1
	IKEv2IntegrityAlgorithmAUTH_HMAC_SHA1_96      IKEv2IntegrityAlgorithm = 2
	IKEv2IntegrityAlgorithmAUTH_DES_MAC           IKEv2IntegrityAlgorithm = 3
	IKEv2IntegrityAlgorithmAUTH_KPDK_MD5          IKEv2IntegrityAlgorithm = 4
	IKEv2IntegrityAlgorithmAUTH_AES_XCBC_96       IKEv2IntegrityAlgorithm = 5
	IKEv2IntegrityAlgorithmAUTH_HMAC_MD5_128      IKEv2IntegrityAlgorithm = 6
	IKEv2IntegrityAlgorithmAUTH_HMAC_SHA1_160     IKEv2IntegrityAlgorithm = 7
	IKEv2IntegrityAlgorithmAUTH_AES_CMAC_96       IKEv2IntegrityAlgorithm = 8
	IKEv2IntegrityAlgorithmAUTH_AES_128_GMAC      IKEv2IntegrityAlgorithm = 9
	IKEv2IntegrityAlgorithmAUTH_AES_192_GMAC      IKEv2IntegrityAlgorithm = 10
	IKEv2IntegrityAlgorithmAUTH_AES_256_GMAC      IKEv2IntegrityAlgorithm = 11
	IKEv2IntegrityAlgorithmAUTH_HMAC_SHA2_256_128 IKEv2IntegrityAlgorithm = 12
	IKEv2IntegrityAlgorithmAUTH_HMAC_SHA2_384_192 IKEv2IntegrityAlgorithm = 13
	IKEv2IntegrityAlgorithmAUTH_HMAC_SHA2_512_256 IKEv2IntegrityAlgorithm = 14
)

type IndexAllocator

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

func NewIndexAllocator

func NewIndexAllocator(startID uint32) *IndexAllocator

func (*IndexAllocator) AllocateIndex

func (i *IndexAllocator) AllocateIndex() (index uint32)

func (*IndexAllocator) FreeIndex

func (i *IndexAllocator) FreeIndex(index uint32)

func (*IndexAllocator) TakeIndex

func (i *IndexAllocator) TakeIndex(index uint32) error

type InterfaceEventWatcher added in v3.25.1

type InterfaceEventWatcher interface {
	Stop()
	Events() <-chan types.InterfaceEvent
}

type IpFamily

type IpFamily struct {
	Str       string
	ShortStr  string
	IsIp6     bool
	IsIp4     bool
	FamilyIdx int
}

func IpFamilyFromIPNet

func IpFamilyFromIPNet(ipNet *net.IPNet) IpFamily

type NamespaceNotFound

type NamespaceNotFound error
type VppLink struct {
	*generated.Vpp
	// contains filtered or unexported fields
}
func NewVppLink(socket string, logger *logrus.Entry) (*VppLink, error)

func (*VppLink) AddACL

func (v *VppLink) AddACL(acl *types.ACL) error

func (*VppLink) AddAbfPolicy

func (v *VppLink) AddAbfPolicy(policy *types.AbfPolicy) error

func (*VppLink) AddClassifyTable added in v3.27.0

func (v *VppLink) AddClassifyTable(table *types.ClassifyTable) (uint32, error)

func (*VppLink) AddDefaultMRouteViaTable added in v3.25.1

func (v *VppLink) AddDefaultMRouteViaTable(sourceTable, dstTable uint32, isIP6 bool) error

func (*VppLink) AddDefaultRouteViaTable

func (v *VppLink) AddDefaultRouteViaTable(sourceTable, dstTable uint32, isIP6 bool) error

func (*VppLink) AddIKEv2Profile

func (v *VppLink) AddIKEv2Profile(name string) error

func (*VppLink) AddInterfaceAddress

func (v *VppLink) AddInterfaceAddress(swIfIndex uint32, addr *net.IPNet) error

func (*VppLink) AddIpsetIPMembers

func (v *VppLink) AddIpsetIPMembers(ipsetID uint32, members []net.IP) (err error)

func (*VppLink) AddIpsetIPPortMembers

func (v *VppLink) AddIpsetIPPortMembers(ipsetID uint32, members []types.IPPort) (err error)

func (*VppLink) AddIpsetNetMembers

func (v *VppLink) AddIpsetNetMembers(ipsetID uint32, members []*net.IPNet) (err error)

func (*VppLink) AddMemifSocketFileName

func (v *VppLink) AddMemifSocketFileName(socketFileName string) (uint32, error)

func (*VppLink) AddModSRv6Policy

func (v *VppLink) AddModSRv6Policy(policy *types.SrPolicy) (err error)

func (*VppLink) AddNat44Address

func (v *VppLink) AddNat44Address(address net.IP) error

func (*VppLink) AddNat44InsideInterface

func (v *VppLink) AddNat44InsideInterface(swIfIndex uint32) error

func (*VppLink) AddNat44InterfaceAddress

func (v *VppLink) AddNat44InterfaceAddress(swIfIndex uint32, flags types.NatFlags) error

func (*VppLink) AddNat44LB

func (v *VppLink) AddNat44LB(entry *types.Nat44Entry) error

func (*VppLink) AddNat44LBStaticMapping

func (v *VppLink) AddNat44LBStaticMapping(entry *types.Nat44Entry) error

func (*VppLink) AddNat44OutsideInterface

func (v *VppLink) AddNat44OutsideInterface(swIfIndex uint32) error

func (*VppLink) AddNat44StaticMapping

func (v *VppLink) AddNat44StaticMapping(entry *types.Nat44Entry) error

func (*VppLink) AddNeighbor

func (v *VppLink) AddNeighbor(neighbor *types.Neighbor) error

func (*VppLink) AddNodeNext

func (v *VppLink) AddNodeNext(name, next string) (nodeIndex uint32, err error)

AddNodeNext sets the next node for the node given by name in node graph. This is a helper method for VPP's node graph that process packets.

func (*VppLink) AddPblClient

func (v *VppLink) AddPblClient(pblClient *types.PblClient) (id uint32, err error)

func (*VppLink) AddSRv6Localsid

func (v *VppLink) AddSRv6Localsid(localSid *types.SrLocalsid) error

func (*VppLink) AddSRv6Policy

func (v *VppLink) AddSRv6Policy(policy *types.SrPolicy) error

func (*VppLink) AddSRv6Steering

func (v *VppLink) AddSRv6Steering(steer *types.SrSteer) error

func (*VppLink) AddSessionAppNamespace

func (v *VppLink) AddSessionAppNamespace(namespace *types.SessionAppNamespace) error

func (*VppLink) AddSessionRedirect added in v3.27.0

func (v *VppLink) AddSessionRedirect(redirect *types.SessionRedirect, paths ...*types.RoutePath) (err error)

func (*VppLink) AddVRF

func (v *VppLink) AddVRF(index uint32, isIP6 bool, name string) error

func (*VppLink) AddrList

func (v *VppLink) AddrList(swIfIndex uint32, isv6 bool) (addresses []types.IfAddress, err error)

func (*VppLink) AllocateVRF

func (v *VppLink) AllocateVRF(isIP6 bool, name string) (uint32, error)

func (*VppLink) AttachAbfPolicy

func (v *VppLink) AttachAbfPolicy(policyID uint32, swIfIndex uint32, isv6 bool) error

func (*VppLink) ClearSnatPolicy

func (v *VppLink) ClearSnatPolicy() (err error)

func (*VppLink) CnatAddDelSnatPrefix

func (v *VppLink) CnatAddDelSnatPrefix(prefix *net.IPNet, isAdd bool) error

func (*VppLink) CnatAddSnatPrefix

func (v *VppLink) CnatAddSnatPrefix(prefix *net.IPNet) error

func (*VppLink) CnatDelSnatPrefix

func (v *VppLink) CnatDelSnatPrefix(prefix *net.IPNet) error

func (*VppLink) CnatEnableFeatures

func (v *VppLink) CnatEnableFeatures(swIfIndex uint32) (err error)

func (*VppLink) CnatPurge

func (v *VppLink) CnatPurge() error

func (*VppLink) CnatSetSnatAddresses

func (v *VppLink) CnatSetSnatAddresses(v4, v6 net.IP) error

func (*VppLink) CnatTranslateAdd

func (v *VppLink) CnatTranslateAdd(tr *types.CnatTranslateEntry) (uint32, error)

func (*VppLink) CnatTranslateDel

func (v *VppLink) CnatTranslateDel(id uint32) error

func (*VppLink) ConfigurePolicies

func (v *VppLink) ConfigurePolicies(swIfIndex uint32, conf *types.InterfaceConfig, invertRxTx uint8) error

func (*VppLink) CreateAVF

func (v *VppLink) CreateAVF(intf *types.AVFInterface) (uint32, error)

func (*VppLink) CreateAfPacket

func (v *VppLink) CreateAfPacket(intf *types.AfPacketInterface) (swIfIndex uint32, err error)

func (*VppLink) CreateAfXDP

func (v *VppLink) CreateAfXDP(intf *types.VppXDPInterface) error

func (*VppLink) CreateLoopback

func (v *VppLink) CreateLoopback(hwAddr net.HardwareAddr) (swIfIndex uint32, err error)

func (*VppLink) CreateMemif

func (v *VppLink) CreateMemif(mif *types.Memif) error

func (*VppLink) CreateOrAttachTapV2

func (v *VppLink) CreateOrAttachTapV2(tap *types.TapV2) (swIfIndex uint32, err error)

func (*VppLink) CreateRDMA

func (v *VppLink) CreateRDMA(intf *types.RDMAInterface) (swIfIndex uint32, err error)

func (*VppLink) CreateTapV2

func (v *VppLink) CreateTapV2(tap *types.TapV2) (uint32, error)

func (*VppLink) CreateVirtio

func (v *VppLink) CreateVirtio(intf *types.VirtioInterface) (uint32, error)

func (*VppLink) CreateVmxnet3

func (v *VppLink) CreateVmxnet3(intf *types.Vmxnet3Interface) (uint32, error)

func (*VppLink) DelACL

func (v *VppLink) DelACL(aclIndex uint32) error

func (*VppLink) DelAbfPolicy

func (v *VppLink) DelAbfPolicy(policy *types.AbfPolicy) error

func (*VppLink) DelClassifyTable added in v3.27.0

func (v *VppLink) DelClassifyTable(tableIndex uint32) error

func (*VppLink) DelDefaultMRouteViaTable added in v3.25.1

func (v *VppLink) DelDefaultMRouteViaTable(sourceTable, dstTable uint32, isIP6 bool) error

func (*VppLink) DelDefaultRouteViaTable

func (v *VppLink) DelDefaultRouteViaTable(sourceTable, dstTable uint32, isIP6 bool) error

func (*VppLink) DelIKEv2Profile

func (v *VppLink) DelIKEv2Profile(name string) error

func (*VppLink) DelInterfaceAddress

func (v *VppLink) DelInterfaceAddress(swIfIndex uint32, addr *net.IPNet) error

func (*VppLink) DelIpsetIPMembers

func (v *VppLink) DelIpsetIPMembers(ipsetID uint32, members []net.IP) (err error)

func (*VppLink) DelIpsetIPPortMembers

func (v *VppLink) DelIpsetIPPortMembers(ipsetID uint32, members []types.IPPort) (err error)

func (*VppLink) DelIpsetNetMembers

func (v *VppLink) DelIpsetNetMembers(ipsetID uint32, members []*net.IPNet) (err error)

func (*VppLink) DelMemifSocketFileName

func (v *VppLink) DelMemifSocketFileName(socketId uint32) error

func (*VppLink) DelNat44Address

func (v *VppLink) DelNat44Address(address net.IP) error

func (*VppLink) DelNat44InsideInterface

func (v *VppLink) DelNat44InsideInterface(swIfIndex uint32) error

func (*VppLink) DelNat44InterfaceAddress

func (v *VppLink) DelNat44InterfaceAddress(swIfIndex uint32, flags types.NatFlags) error

func (*VppLink) DelNat44LB

func (v *VppLink) DelNat44LB(entry *types.Nat44Entry) error

func (*VppLink) DelNat44LBStaticMapping

func (v *VppLink) DelNat44LBStaticMapping(entry *types.Nat44Entry) error

func (*VppLink) DelNat44OutsideInterface

func (v *VppLink) DelNat44OutsideInterface(swIfIndex uint32) error

func (*VppLink) DelNat44StaticMapping

func (v *VppLink) DelNat44StaticMapping(entry *types.Nat44Entry) error

func (*VppLink) DelNeighbor

func (v *VppLink) DelNeighbor(neighbor *types.Neighbor) error

func (*VppLink) DelPblClient

func (v *VppLink) DelPblClient(id uint32) error

func (*VppLink) DelSRv6Localsid

func (v *VppLink) DelSRv6Localsid(localSid *types.SrLocalsid) error

func (*VppLink) DelSRv6Policy

func (v *VppLink) DelSRv6Policy(policy *types.SrPolicy) error

func (*VppLink) DelSRv6Steering

func (v *VppLink) DelSRv6Steering(steer *types.SrSteer) error

func (*VppLink) DelSessionAppNamespace

func (v *VppLink) DelSessionAppNamespace(namespace *types.SessionAppNamespace) error

func (*VppLink) DelSessionRedirect added in v3.27.0

func (v *VppLink) DelSessionRedirect(redirect *types.SessionRedirect) error

func (*VppLink) DelTap

func (v *VppLink) DelTap(swIfIndex uint32) error

func (*VppLink) DelVRF

func (v *VppLink) DelVRF(index uint32, isIP6 bool) error

func (*VppLink) DeleteAVF

func (v *VppLink) DeleteAVF(swIfIndex uint32) error

func (*VppLink) DeleteAfPacket

func (v *VppLink) DeleteAfPacket(ifName string) error

func (*VppLink) DeleteAfXDP

func (v *VppLink) DeleteAfXDP(intf *types.VppXDPInterface) error

func (*VppLink) DeleteLoopback

func (v *VppLink) DeleteLoopback(swIfIndex uint32) error

func (*VppLink) DeleteMemif

func (v *VppLink) DeleteMemif(swIfIndex uint32) error

func (*VppLink) DeleteVirtio

func (v *VppLink) DeleteVirtio(swIfIndex uint32) error

func (*VppLink) DetachAbfPolicy

func (v *VppLink) DetachAbfPolicy(policyID uint32, swIfIndex uint32, isv6 bool) error

func (*VppLink) DisableFeature

func (v *VppLink) DisableFeature(swIfIndex uint32, arcName, featureName string) (err error)

func (*VppLink) DisableGSOFeature

func (v *VppLink) DisableGSOFeature(swIfIndex uint32) error

func (*VppLink) DisableIP6RouterAdvertisements

func (v *VppLink) DisableIP6RouterAdvertisements(swIfIndex uint32) error

func (*VppLink) DisableInterfaceIP4

func (v *VppLink) DisableInterfaceIP4(swIfIndex uint32) error

func (*VppLink) DisableInterfaceIP46

func (v *VppLink) DisableInterfaceIP46(swIfIndex uint32) (err error)

func (*VppLink) DisableInterfaceIP6

func (v *VppLink) DisableInterfaceIP6(swIfIndex uint32) error

func (*VppLink) DisableSessionLayer

func (v *VppLink) DisableSessionLayer() error

func (*VppLink) DisableSessionSAPI

func (v *VppLink) DisableSessionSAPI() error

func (*VppLink) EnableArpProxy

func (v *VppLink) EnableArpProxy(swIfIndex, tableID uint32) error

func (*VppLink) EnableDisableCnatSNAT added in v3.25.1

func (v *VppLink) EnableDisableCnatSNAT(swIfIndex uint32, isIp6 bool, isEnable bool) (err error)

func (*VppLink) EnableFeature

func (v *VppLink) EnableFeature(swIfIndex uint32, arcName, featureName string) (err error)

func (*VppLink) EnableFeatureArc46

func (v *VppLink) EnableFeatureArc46(swIfIndex uint32, arcDescription string) (err error)

func (*VppLink) EnableGSOFeature

func (v *VppLink) EnableGSOFeature(swIfIndex uint32) error

func (*VppLink) EnableIP6NdProxy

func (v *VppLink) EnableIP6NdProxy(swIfIndex uint32, address net.IP) error

func (*VppLink) EnableInterfaceIP4

func (v *VppLink) EnableInterfaceIP4(swIfIndex uint32) error

func (*VppLink) EnableInterfaceIP46

func (v *VppLink) EnableInterfaceIP46(swIfIndex uint32) (err error)

func (*VppLink) EnableInterfaceIP6

func (v *VppLink) EnableInterfaceIP6(swIfIndex uint32) error

func (*VppLink) EnableNatForwarding

func (v *VppLink) EnableNatForwarding() error

func (*VppLink) EnableSessionLayer

func (v *VppLink) EnableSessionLayer() error

func (*VppLink) EnableSessionSAPI

func (v *VppLink) EnableSessionSAPI() error

func (*VppLink) GetBufferStats

func (v *VppLink) GetBufferStats() (available uint32, cached uint32, used uint32, err error)

func (*VppLink) GetIPsecTunnelProtection

func (v *VppLink) GetIPsecTunnelProtection(tunnelInterface uint32) ([]types.IPsecTunnelProtection, error)

func (*VppLink) GetInterfaceDetails

func (v *VppLink) GetInterfaceDetails(swIfIndex uint32) (i *types.VppInterfaceDetails, err error)

func (*VppLink) GetInterfaceNeighbors

func (v *VppLink) GetInterfaceNeighbors(swIfIndex uint32, isIPv6 bool) (neighbors []types.Neighbor, err error)

func (*VppLink) GetNodeIndex

func (v *VppLink) GetNodeIndex(name string) (nodeIndex uint32, err error)

GetNodeIndex gets node index of the node given by name. This is a helper method for VPP's node graph that process packets.

func (*VppLink) GetNumVPPWorkers

func (v *VppLink) GetNumVPPWorkers() (numVPPWorkers int, err error)

GetNumVPPWorkers gets the number of workers WITHOUT the main thread

func (*VppLink) GetRoutes

func (v *VppLink) GetRoutes(tableID uint32, isIPv6 bool) ([]types.Route, error)

func (*VppLink) GetVPPVersion

func (v *VppLink) GetVPPVersion() (string, error)

func (*VppLink) GetWireguardTunnel

func (v *VppLink) GetWireguardTunnel(swIfIndex uint32) (*typesv0.WireguardTunnel, error)

func (*VppLink) IKEv2Initiate

func (v *VppLink) IKEv2Initiate(profile string) error

func (*VppLink) InterfaceAdminDown

func (v *VppLink) InterfaceAdminDown(swIfIndex uint32) error

func (*VppLink) InterfaceAdminUp

func (v *VppLink) InterfaceAdminUp(swIfIndex uint32) error

func (*VppLink) InterfaceGetUnnumbered

func (v *VppLink) InterfaceGetUnnumbered(swIfIndex uint32) (result []*vppip.IPUnnumberedDetails, err error)

func (*VppLink) InterfaceSetUnnumbered

func (v *VppLink) InterfaceSetUnnumbered(unnumberedSwIfIndex uint32, swIfIndex uint32) error

func (*VppLink) InterfaceUnsetUnnumbered

func (v *VppLink) InterfaceUnsetUnnumbered(unnumberedSwIfIndex uint32, swIfIndex uint32) error

func (*VppLink) IpsetCreate

func (v *VppLink) IpsetCreate(ipsetType types.IpsetType) (setId uint32, err error)

func (*VppLink) IpsetDelete

func (v *VppLink) IpsetDelete(ipsetID uint32) error

func (*VppLink) ListIKEv2Profiles

func (v *VppLink) ListIKEv2Profiles() ([]ikev2_types.Ikev2Profile, error)

func (*VppLink) ListMemifInterfaces

func (v *VppLink) ListMemifInterfaces() ([]*types.Memif, error)

func (*VppLink) ListMemifSockets

func (v *VppLink) ListMemifSockets() ([]*types.MemifSocket, error)

func (*VppLink) ListSRv6Localsid

func (v *VppLink) ListSRv6Localsid() (list []*types.SrLocalsid, err error)

func (*VppLink) ListSRv6Policies

func (v *VppLink) ListSRv6Policies() (list []*types.SrPolicy, err error)

func (*VppLink) ListSRv6Steering

func (v *VppLink) ListSRv6Steering() (list []*types.SrSteer, err error)

func (*VppLink) ListVRFs

func (v *VppLink) ListVRFs() (vrfs []types.VRF, err error)

func (*VppLink) ListWireguardTunnels

func (v *VppLink) ListWireguardTunnels() ([]*typesv0.WireguardTunnel, error)

func (*VppLink) MRouteAdd added in v3.25.1

func (v *VppLink) MRouteAdd(route *types.Route, flags mfib_types.MfibEntryFlags) error

func (*VppLink) MRouteDel added in v3.25.1

func (v *VppLink) MRouteDel(route *types.Route, flags mfib_types.MfibEntryFlags) error

func (*VppLink) MemifsocketByID

func (v *VppLink) MemifsocketByID(socketID uint32) (*types.MemifSocket, error)

func (*VppLink) NewCleanupStack

func (v *VppLink) NewCleanupStack() *CleanupStack

func (*VppLink) PolicyCreate

func (v *VppLink) PolicyCreate(policy *types.Policy) (policyId uint32, err error)

func (*VppLink) PolicyDelete

func (v *VppLink) PolicyDelete(policyId uint32) error

func (*VppLink) PolicyUpdate

func (v *VppLink) PolicyUpdate(policyId uint32, policy *types.Policy) error

func (*VppLink) PuntAllL4

func (v *VppLink) PuntAllL4(isIPv6 bool) (err error)

func (*VppLink) PuntL4

func (v *VppLink) PuntL4(proto types.IPProto, port uint16, isIPv6 bool) error

PuntL4 configures L4 punt for a given address family and protocol. port = ~0 means all ports

func (*VppLink) PuntRedirect

func (v *VppLink) PuntRedirect(punt types.IpPuntRedirect, isIP6 bool) error

func (*VppLink) PuntRedirectList

func (v *VppLink) PuntRedirectList(swIfIndex uint32, isIP6 bool) (punts []types.IpPuntRedirect, err error)

func (*VppLink) RegisterHostInterface added in v3.27.0

func (v *VppLink) RegisterHostInterface(swIfIndex uint32) (err error)

func (*VppLink) RegisterPodInterface

func (v *VppLink) RegisterPodInterface(swIfIndex uint32) (err error)

func (*VppLink) RemoveHostInterface added in v3.27.0

func (v *VppLink) RemoveHostInterface(swIfIndex uint32) (err error)

func (*VppLink) RemovePodInterface

func (v *VppLink) RemovePodInterface(swIfIndex uint32) (err error)

func (*VppLink) Retry

func (v *VppLink) Retry(sleepBtwRetries time.Duration, retries int, f interface{}, args ...interface{}) (err error)

func (*VppLink) RouteAdd

func (v *VppLink) RouteAdd(route *types.Route) error

func (*VppLink) RouteDel

func (v *VppLink) RouteDel(route *types.Route) error

func (*VppLink) RoutesAdd

func (v *VppLink) RoutesAdd(Dsts []*net.IPNet, routepath *types.RoutePath) error

func (*VppLink) RuleCreate

func (v *VppLink) RuleCreate(rule *types.Rule) (ruleId uint32, err error)

func (*VppLink) RuleDelete

func (v *VppLink) RuleDelete(ruleId uint32) error

func (*VppLink) RuleUpdate

func (v *VppLink) RuleUpdate(ruleId uint32, rule *types.Rule) error

func (*VppLink) RunCli

func (v *VppLink) RunCli(cmd string) (string, error)

RunCli sends CLI command to VPP and returns response.

func (*VppLink) SearchInterfaceWithName

func (v *VppLink) SearchInterfaceWithName(name string) (swIfIndex uint32, err error)

func (*VppLink) SearchInterfaceWithTag

func (v *VppLink) SearchInterfaceWithTag(tag string) (uint32, error)

SearchInterfaceWithTag searches for interface that is tagged with given prefix. If not such interface is found, then vpplink.INVALID_SW_IF_INDEX is returned as interface swIndex. Otherwise, non-nil error is returned.

func (*VppLink) SearchInterfacesWithTagPrefix

func (v *VppLink) SearchInterfacesWithTagPrefix(tag string) (map[string]uint32, error)

func (*VppLink) SetClassifyInputInterfaceTables added in v3.27.0

func (v *VppLink) SetClassifyInputInterfaceTables(swIfIndex uint32, ip4TableIndex uint32, ip6TableIndex uint32, l2TableIndex uint32, isAdd bool) error

func (*VppLink) SetClassifyOutputInterfaceTables added in v3.27.0

func (v *VppLink) SetClassifyOutputInterfaceTables(swIfIndex uint32, ip4TableIndex uint32, ip6TableIndex uint32, l2TableIndex uint32, isAdd bool) error

func (*VppLink) SetCryptoWorker

func (v *VppLink) SetCryptoWorker(workerIndex uint32, enable bool) error

func (*VppLink) SetCustomURPF

func (v *VppLink) SetCustomURPF(swifindex uint32, tableId uint32) error

func (*VppLink) SetEncapSource

func (v *VppLink) SetEncapSource(addr net.IP) error

func (*VppLink) SetIKEv2DefaultTransforms

func (v *VppLink) SetIKEv2DefaultTransforms(profile string) (err error)

func (*VppLink) SetIKEv2ESPTransforms

func (v *VppLink) SetIKEv2ESPTransforms(
	profile string,
	cryptoAlg IKEv2EncryptionAlgorithm,
	cryptoKeySize uint32,
	integAlg IKEv2IntegrityAlgorithm,
) error

func (*VppLink) SetIKEv2IKETransforms

func (v *VppLink) SetIKEv2IKETransforms(
	profile string,
	cryptoAlg IKEv2EncryptionAlgorithm,
	cryptoKeySize uint32,
	integAlg IKEv2IntegrityAlgorithm,
	dhGroup IKEv2DHGroup,
) error

func (*VppLink) SetIKEv2LocalIDAddress

func (v *VppLink) SetIKEv2LocalIDAddress(profile string, localAddr net.IP) (err error)

func (*VppLink) SetIKEv2PSKAuth

func (v *VppLink) SetIKEv2PSKAuth(profile, psk string) (err error)

func (*VppLink) SetIKEv2PermissiveTrafficSelectors

func (v *VppLink) SetIKEv2PermissiveTrafficSelectors(profile string) (err error)

func (*VppLink) SetIKEv2RemoteIDAddress

func (v *VppLink) SetIKEv2RemoteIDAddress(profile string, rmtAddr net.IP) (err error)

func (*VppLink) SetIKEv2Responder

func (v *VppLink) SetIKEv2Responder(profile string, swIfIndex uint32, address net.IP) error

func (*VppLink) SetIKEv2TrafficSelector

func (v *VppLink) SetIKEv2TrafficSelector(
	profile string,
	isLocal bool,
	proto uint8,
	startPort uint16,
	endPort uint16,
	startAddr net.IP,
	endAddr net.IP,
) error

func (*VppLink) SetIKEv2TunnelInterface

func (v *VppLink) SetIKEv2TunnelInterface(profile string, swIfIndex uint32) error

func (*VppLink) SetIPFlowHash

func (v *VppLink) SetIPFlowHash(ipFlowHash types.IPFlowHash, vrfID uint32, isIPv6 bool) error

func (*VppLink) SetIPsecAsyncMode

func (v *VppLink) SetIPsecAsyncMode(enable bool) error

func (*VppLink) SetInterfaceMacAddress

func (v *VppLink) SetInterfaceMacAddress(swIfIndex uint32, mac net.HardwareAddr) error

func (*VppLink) SetInterfaceMtu

func (v *VppLink) SetInterfaceMtu(swIfIndex uint32, mtu int) error

func (*VppLink) SetInterfaceRxMode

func (v *VppLink) SetInterfaceRxMode(swIfIndex uint32, queueID uint32, mode types.RxMode) error

func (*VppLink) SetInterfaceRxPlacement

func (v *VppLink) SetInterfaceRxPlacement(swIfIndex uint32, queue int, worker int, main bool) error

func (*VppLink) SetInterfaceTag

func (v *VppLink) SetInterfaceTag(swIfIndex uint32, tag string) error

func (*VppLink) SetInterfaceTxPlacement

func (v *VppLink) SetInterfaceTxPlacement(swIfIndex uint32, queue int, worker int) error

func (*VppLink) SetInterfaceVRF

func (v *VppLink) SetInterfaceVRF(swIfIndex, vrfIndex uint32, isIP6 bool) error

func (*VppLink) SetK8sSnatPolicy

func (v *VppLink) SetK8sSnatPolicy() (err error)

func (*VppLink) SetPromiscOff

func (v *VppLink) SetPromiscOff(swIfIndex uint32) error

func (*VppLink) SetPromiscOn

func (v *VppLink) SetPromiscOn(swIfIndex uint32) error

func (*VppLink) UnsetInterfaceTag

func (v *VppLink) UnsetInterfaceTag(swIfIndex uint32, tag string) error

func (*VppLink) UnsetURPF

func (v *VppLink) UnsetURPF(swifindex uint32) error

func (*VppLink) WatchInterfaceEvents added in v3.25.1

func (v *VppLink) WatchInterfaceEvents(swIfIndex uint32) (InterfaceEventWatcher, error)

WatchInterfaceEvents starts a watcher of interface events for specific swIfIndex, it returns InterfaceEventWatcher or error if any.

Directories

Path Synopsis
Code generated by vpplink DO NOT EDIT.
Code generated by vpplink DO NOT EDIT.
bindings/abf
Package abf contains generated bindings for API file abf.api.
Package abf contains generated bindings for API file abf.api.
bindings/acl
Package acl contains generated bindings for API file acl.api.
Package acl contains generated bindings for API file acl.api.
bindings/acl_types
Package acl_types contains generated bindings for API file acl_types.api.
Package acl_types contains generated bindings for API file acl_types.api.
bindings/af_packet
Package af_packet contains generated bindings for API file af_packet.api.
Package af_packet contains generated bindings for API file af_packet.api.
bindings/af_xdp
Package af_xdp contains generated bindings for API file af_xdp.api.
Package af_xdp contains generated bindings for API file af_xdp.api.
bindings/arp
Package arp contains generated bindings for API file arp.api.
Package arp contains generated bindings for API file arp.api.
bindings/avf
Package avf contains generated bindings for API file avf.api.
Package avf contains generated bindings for API file avf.api.
bindings/capo
Package capo contains generated bindings for API file capo.api.
Package capo contains generated bindings for API file capo.api.
bindings/classify
Package classify contains generated bindings for API file classify.api.
Package classify contains generated bindings for API file classify.api.
bindings/cnat
Package cnat contains generated bindings for API file cnat.api.
Package cnat contains generated bindings for API file cnat.api.
bindings/crypto_sw_scheduler
Package crypto_sw_scheduler contains generated bindings for API file crypto_sw_scheduler.api.
Package crypto_sw_scheduler contains generated bindings for API file crypto_sw_scheduler.api.
bindings/ethernet_types
Package ethernet_types contains generated bindings for API file ethernet_types.api.
Package ethernet_types contains generated bindings for API file ethernet_types.api.
bindings/feature
Package feature contains generated bindings for API file feature.api.
Package feature contains generated bindings for API file feature.api.
bindings/fib_types
Package fib_types contains generated bindings for API file fib_types.api.
Package fib_types contains generated bindings for API file fib_types.api.
bindings/gso
Package gso contains generated bindings for API file gso.api.
Package gso contains generated bindings for API file gso.api.
bindings/ikev2
Package ikev2 contains generated bindings for API file ikev2.api.
Package ikev2 contains generated bindings for API file ikev2.api.
bindings/ikev2_types
Package ikev2_types contains generated bindings for API file ikev2_types.api.
Package ikev2_types contains generated bindings for API file ikev2_types.api.
bindings/interface
Package interfaces contains generated bindings for API file interface.api.
Package interfaces contains generated bindings for API file interface.api.
bindings/interface_types
Package interface_types contains generated bindings for API file interface_types.api.
Package interface_types contains generated bindings for API file interface_types.api.
bindings/ip
Package ip contains generated bindings for API file ip.api.
Package ip contains generated bindings for API file ip.api.
bindings/ip6_nd
Package ip6_nd contains generated bindings for API file ip6_nd.api.
Package ip6_nd contains generated bindings for API file ip6_nd.api.
bindings/ip_neighbor
Package ip_neighbor contains generated bindings for API file ip_neighbor.api.
Package ip_neighbor contains generated bindings for API file ip_neighbor.api.
bindings/ip_session_redirect
Package ip_session_redirect contains generated bindings for API file ip_session_redirect.api.
Package ip_session_redirect contains generated bindings for API file ip_session_redirect.api.
bindings/ip_types
Package ip_types contains generated bindings for API file ip_types.api.
Package ip_types contains generated bindings for API file ip_types.api.
bindings/ipip
Package ipip contains generated bindings for API file ipip.api.
Package ipip contains generated bindings for API file ipip.api.
bindings/ipsec
Package ipsec contains generated bindings for API file ipsec.api.
Package ipsec contains generated bindings for API file ipsec.api.
bindings/ipsec_types
Package ipsec_types contains generated bindings for API file ipsec_types.api.
Package ipsec_types contains generated bindings for API file ipsec_types.api.
bindings/memclnt
Package memclnt contains generated bindings for API file memclnt.api.
Package memclnt contains generated bindings for API file memclnt.api.
bindings/memif
Package memif contains generated bindings for API file memif.api.
Package memif contains generated bindings for API file memif.api.
bindings/mfib_types
Package mfib_types contains generated bindings for API file mfib_types.api.
Package mfib_types contains generated bindings for API file mfib_types.api.
bindings/nat44_ed
Package nat44_ed contains generated bindings for API file nat44_ed.api.
Package nat44_ed contains generated bindings for API file nat44_ed.api.
bindings/nat_types
Package nat_types contains generated bindings for API file nat_types.api.
Package nat_types contains generated bindings for API file nat_types.api.
bindings/pbl
Package pbl contains generated bindings for API file pbl.api.
Package pbl contains generated bindings for API file pbl.api.
bindings/pci_types
Package pci_types contains generated bindings for API file pci_types.api.
Package pci_types contains generated bindings for API file pci_types.api.
bindings/punt
Package punt contains generated bindings for API file punt.api.
Package punt contains generated bindings for API file punt.api.
bindings/rdma
Package rdma contains generated bindings for API file rdma.api.
Package rdma contains generated bindings for API file rdma.api.
bindings/session
Package session contains generated bindings for API file session.api.
Package session contains generated bindings for API file session.api.
bindings/sr
Package sr contains generated bindings for API file sr.api.
Package sr contains generated bindings for API file sr.api.
bindings/sr_types
Package sr_types contains generated bindings for API file sr_types.api.
Package sr_types contains generated bindings for API file sr_types.api.
bindings/tapv2
Package tapv2 contains generated bindings for API file tapv2.api.
Package tapv2 contains generated bindings for API file tapv2.api.
bindings/tunnel_types
Package tunnel_types contains generated bindings for API file tunnel_types.api.
Package tunnel_types contains generated bindings for API file tunnel_types.api.
bindings/urpf
Package urpf contains generated bindings for API file urpf.api.
Package urpf contains generated bindings for API file urpf.api.
bindings/virtio
Package virtio contains generated bindings for API file virtio.api.
Package virtio contains generated bindings for API file virtio.api.
bindings/vlib
Package vlib contains generated bindings for API file vlib.api.
Package vlib contains generated bindings for API file vlib.api.
bindings/vmxnet3
Package vmxnet3 contains generated bindings for API file vmxnet3.api.
Package vmxnet3 contains generated bindings for API file vmxnet3.api.
bindings/vpe
Package vpe contains generated bindings for API file vpe.api.
Package vpe contains generated bindings for API file vpe.api.
bindings/vpe_types
Package vpe_types contains generated bindings for API file vpe_types.api.
Package vpe_types contains generated bindings for API file vpe_types.api.
bindings/vxlan
Package vxlan contains generated bindings for API file vxlan.api.
Package vxlan contains generated bindings for API file vxlan.api.
bindings/wireguard
Package wireguard contains generated bindings for API file wireguard.api.
Package wireguard contains generated bindings for API file wireguard.api.

Jump to

Keyboard shortcuts

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