vpplink

package
v3.25.1 Latest Latest
Warning

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

Go to latest
Published: Feb 28, 2023 License: Apache-2.0 Imports: 59 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 (
	DefaultReplyTimeout = 1 * 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 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 {
	// contains filtered or unexported fields
}
func NewVppLink(socket string, logger logrus.FieldLogger) (*VppLink, error)

func (*VppLink) AddACL

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

func (*VppLink) AddAbfPolicy

func (v *VppLink) AddAbfPolicy(policy *types.AbfPolicy) (err 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) AddIPIPTunnel

func (v *VppLink) AddIPIPTunnel(tunnel *types.IPIPTunnel) (uint32, 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(client *types.PblClient) (id uint32, err error)

func (*VppLink) AddSRv6Localsid

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

func (*VppLink) AddSRv6Policy

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

func (*VppLink) AddSRv6Steering

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

func (*VppLink) AddSessionAppNamespace

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

func (*VppLink) AddVRF

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

func (*VppLink) AddVXLanTunnel

func (v *VppLink) AddVXLanTunnel(tunnel *types.VXLanTunnel) (swIfIndex uint32, err error)

func (*VppLink) AddWireguardPeer

func (v *VppLink) AddWireguardPeer(peer *types.WireguardPeer) (uint32, error)

func (*VppLink) AddWireguardTunnel

func (v *VppLink) AddWireguardTunnel(tunnel *types.WireguardTunnel, generateKey bool) (uint32, 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) (err error)

func (*VppLink) ClearSnatPolicy

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

func (*VppLink) Close

func (v *VppLink) Close()

func (*VppLink) CnatAddDelSnatPrefix

func (v *VppLink) CnatAddDelSnatPrefix(prefix *net.IPNet, isAdd bool) (err 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) (err error)

func (*VppLink) CnatTranslateAdd

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

func (*VppLink) CnatTranslateDel

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

func (*VppLink) ConfigurePolicies

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

func (*VppLink) CreateAVF

func (v *VppLink) CreateAVF(intf *types.AVFInterface) (swIfIndex uint32, err 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) (err 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) (swIfIndex uint32, err error)

func (*VppLink) CreateVirtio

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

func (*VppLink) CreateVmxnet3

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

func (*VppLink) DelACL

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

func (*VppLink) DelAbfPolicy

func (v *VppLink) DelAbfPolicy(policy *types.AbfPolicy) (err 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) DelIPIPTunnel

func (v *VppLink) DelIPIPTunnel(tunnel *types.IPIPTunnel) (err 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) (err error)

func (*VppLink) DelSRv6Localsid

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

func (*VppLink) DelSRv6Policy

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

func (*VppLink) DelSRv6Steering

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

func (*VppLink) DelSessionAppNamespace

func (v *VppLink) DelSessionAppNamespace(namespace *types.SessionAppNamespace) 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) DelVXLanTunnel

func (v *VppLink) DelVXLanTunnel(tunnel *types.VXLanTunnel) (err error)

func (*VppLink) DelWireguardPeer

func (v *VppLink) DelWireguardPeer(peer *types.WireguardPeer) (err error)

func (*VppLink) DelWireguardTunnel

func (v *VppLink) DelWireguardTunnel(tunnel *types.WireguardTunnel) (err error)

func (*VppLink) DeleteAVF

func (v *VppLink) DeleteAVF(swIfIndex uint32) (err 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) (err error)

func (*VppLink) DeleteMemif

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

func (*VppLink) DeleteVirtio

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

func (*VppLink) DetachAbfPolicy

func (v *VppLink) DetachAbfPolicy(policyID uint32, swIfIndex uint32, isv6 bool) (err 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) (err 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) (err 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) (err 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() (err error)

func (*VppLink) EnableSessionLayer

func (v *VppLink) EnableSessionLayer() error

func (*VppLink) EnableSessionSAPI

func (v *VppLink) EnableSessionSAPI() error

func (*VppLink) GetBufferStats

func (v *VppLink) GetBufferStats() (uint32, uint32, uint32, error)

func (*VppLink) GetChannel

func (v *VppLink) GetChannel() (vppapi.Channel, error)

func (*VppLink) GetIPsecTunnelProtection

func (v *VppLink) GetIPsecTunnelProtection(tunnelInterface uint32) (protections []types.IPsecTunnelProtection, err 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) (err error, neighbors []types.Neighbor)

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) (routes []types.Route, err error)

func (*VppLink) GetVPPVersion

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

func (*VppLink) GetWireguardTunnel

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

func (*VppLink) IKEv2Initiate

func (v *VppLink) IKEv2Initiate(profile string) (err 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) (err error)

func (*VppLink) ListIKEv2Profiles

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

func (*VppLink) ListIPIPTunnels

func (v *VppLink) ListIPIPTunnels() ([]*types.IPIPTunnel, 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) ListVXLanTunnels

func (v *VppLink) ListVXLanTunnels() ([]types.VXLanTunnel, error)

func (*VppLink) ListWireguardPeers

func (v *VppLink) ListWireguardPeers() ([]*types.WireguardPeer, error)

func (*VppLink) ListWireguardTunnels

func (v *VppLink) ListWireguardTunnels() ([]*types.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) (err error)

func (*VppLink) PolicyUpdate

func (v *VppLink) PolicyUpdate(policyId uint32, policy *types.Policy) (err 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) Reconnect

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

func (*VppLink) RegisterPodInterface

func (v *VppLink) RegisterPodInterface(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) (err error)

func (*VppLink) RuleUpdate

func (v *VppLink) RuleUpdate(ruleId uint32, rule *types.Rule) (err 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) SetCryptoWorker

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

func (*VppLink) SetCustomURPF

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

func (*VppLink) SetEncapSource

func (v *VppLink) SetEncapSource(addr net.IP) (err 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,
) (err error)

func (*VppLink) SetIKEv2IKETransforms

func (v *VppLink) SetIKEv2IKETransforms(
	profile string,
	cryptoAlg IKEv2EncryptionAlgorithm,
	cryptoKeySize uint32,
	integAlg IKEv2IntegrityAlgorithm,
	dhGroup IKEv2DHGroup,
) (err 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) (err error)

func (*VppLink) SetIKEv2TrafficSelector

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

func (*VppLink) SetIKEv2TunnelInterface

func (v *VppLink) SetIKEv2TunnelInterface(profile string, swIfIndex uint32) (err 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) (err 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
binapi
vppapi/abf
Package abf contains generated bindings for API file abf.api.
Package abf contains generated bindings for API file abf.api.
vppapi/acl
Package acl contains generated bindings for API file acl.api.
Package acl contains generated bindings for API file acl.api.
vppapi/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.
vppapi/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.
vppapi/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.
vppapi/arp
Package arp contains generated bindings for API file arp.api.
Package arp contains generated bindings for API file arp.api.
vppapi/avf
Package avf contains generated bindings for API file avf.api.
Package avf contains generated bindings for API file avf.api.
vppapi/capo
Package capo contains generated bindings for API file capo.api.
Package capo contains generated bindings for API file capo.api.
vppapi/cnat
Package cnat contains generated bindings for API file cnat.api.
Package cnat contains generated bindings for API file cnat.api.
vppapi/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.
vppapi/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.
vppapi/feature
Package feature contains generated bindings for API file feature.api.
Package feature contains generated bindings for API file feature.api.
vppapi/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.
vppapi/gso
Package gso contains generated bindings for API file gso.api.
Package gso contains generated bindings for API file gso.api.
vppapi/ikev2
Package ikev2 contains generated bindings for API file ikev2.api.
Package ikev2 contains generated bindings for API file ikev2.api.
vppapi/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.
vppapi/interface
Package interfaces contains generated bindings for API file interface.api.
Package interfaces contains generated bindings for API file interface.api.
vppapi/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.
vppapi/ip
Package ip contains generated bindings for API file ip.api.
Package ip contains generated bindings for API file ip.api.
vppapi/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.
vppapi/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.
vppapi/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.
vppapi/ipip
Package ipip contains generated bindings for API file ipip.api.
Package ipip contains generated bindings for API file ipip.api.
vppapi/ipsec
Package ipsec contains generated bindings for API file ipsec.api.
Package ipsec contains generated bindings for API file ipsec.api.
vppapi/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.
vppapi/memclnt
Package memclnt contains generated bindings for API file memclnt.api.
Package memclnt contains generated bindings for API file memclnt.api.
vppapi/memif
Package memif contains generated bindings for API file memif.api.
Package memif contains generated bindings for API file memif.api.
vppapi/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.
vppapi/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.
vppapi/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.
vppapi/pbl
Package pbl contains generated bindings for API file pbl.api.
Package pbl contains generated bindings for API file pbl.api.
vppapi/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.
vppapi/punt
Package punt contains generated bindings for API file punt.api.
Package punt contains generated bindings for API file punt.api.
vppapi/rdma
Package rdma contains generated bindings for API file rdma.api.
Package rdma contains generated bindings for API file rdma.api.
vppapi/session
Package session contains generated bindings for API file session.api.
Package session contains generated bindings for API file session.api.
vppapi/sr
Package sr contains generated bindings for API file sr.api.
Package sr contains generated bindings for API file sr.api.
vppapi/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.
vppapi/tapv2
Package tapv2 contains generated bindings for API file tapv2.api.
Package tapv2 contains generated bindings for API file tapv2.api.
vppapi/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.
vppapi/urpf
Package urpf contains generated bindings for API file urpf.api.
Package urpf contains generated bindings for API file urpf.api.
vppapi/virtio
Package virtio contains generated bindings for API file virtio.api.
Package virtio contains generated bindings for API file virtio.api.
vppapi/vlib
Package vlib contains generated bindings for API file vlib.api.
Package vlib contains generated bindings for API file vlib.api.
vppapi/vmxnet3
Package vmxnet3 contains generated bindings for API file vmxnet3.api.
Package vmxnet3 contains generated bindings for API file vmxnet3.api.
vppapi/vpe
Package vpe contains generated bindings for API file vpe.api.
Package vpe contains generated bindings for API file vpe.api.
vppapi/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.
vppapi/vxlan
Package vxlan contains generated bindings for API file vxlan.api.
Package vxlan contains generated bindings for API file vxlan.api.
vppapi/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