dbadapter

package
v3.5.0 Latest Latest
Warning

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

Go to latest
Published: Feb 6, 2023 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Overview

Package dbadapter implements Domain Specific Language (DSL) for resync and change of VPP configuration using Data Broker (by writing to key value store).

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type DataChangeDSL

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

DataChangeDSL is an implementation of Domain Specific Language (DSL) for changes of the VPP configuration.

func NewDataChangeDSL

func NewDataChangeDSL(txn keyval.ProtoTxn) *DataChangeDSL

NewDataChangeDSL returns a new instance of DataChangeDSL which implements the data change DSL for VPP config. Transaction <txn> is used to propagate changes to plugins.

func (*DataChangeDSL) Delete

func (dsl *DataChangeDSL) Delete() vppclient.DeleteDSL

Delete initiates a chained sequence of data change DSL statements removing existing configurable objects.

func (*DataChangeDSL) Put

func (dsl *DataChangeDSL) Put() vppclient.PutDSL

Put initiates a chained sequence of data change DSL statements declaring new configurable objects or changing existing ones.

func (*DataChangeDSL) Send

func (dsl *DataChangeDSL) Send() vppclient.Reply

Send propagates requested changes to the plugins.

type DataResyncDSL

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

DataResyncDSL is an implementation of Domain Specific Language (DSL) for data RESYNC of VPP configuration.

func NewDataResyncDSL

func NewDataResyncDSL(txn keyval.ProtoTxn, listKeys func(prefix string) (keyval.ProtoKeyIterator, error)) *DataResyncDSL

NewDataResyncDSL returns a new instance of DataResyncDSL which implements the data RESYNC DSL for VPP configuration. Transaction <txn> is used to propagate changes to plugins. Function <listKeys> is used to list keys with already existing configuration.

func (*DataResyncDSL) ABF

func (dsl *DataResyncDSL) ABF(val *abf.ABF) vppclient.DataResyncDSL

ABF adds ACL-based forwarding to the RESYNC request.

func (*DataResyncDSL) ACL

func (dsl *DataResyncDSL) ACL(val *acl.ACL) vppclient.DataResyncDSL

ACL adds Access Control List to the RESYNC request.

func (*DataResyncDSL) Arp

Arp adds L3 ARP entry to the RESYNC request.

func (*DataResyncDSL) BD

BD adds Bridge Domain to the RESYNC request.

func (*DataResyncDSL) BDFIB

func (dsl *DataResyncDSL) BDFIB(val *l2.FIBEntry) vppclient.DataResyncDSL

BDFIB adds Bridge Domain to the RESYNC request.

func (*DataResyncDSL) DNAT44

func (dsl *DataResyncDSL) DNAT44(nat44 *nat.DNat44) vppclient.DataResyncDSL

DNAT44 adds DNAT44 configuration to the RESYNC request

func (*DataResyncDSL) FlowprobeFeature added in v3.2.0

func (dsl *DataResyncDSL) FlowprobeFeature(val *ipfix.FlowProbeFeature) vppclient.DataResyncDSL

FlowprobeFeature adds Flowprobe Feature configuration to the RESYNC request.

func (*DataResyncDSL) FlowprobeParams added in v3.2.0

func (dsl *DataResyncDSL) FlowprobeParams(val *ipfix.FlowProbeParams) vppclient.DataResyncDSL

FlowprobeParams adds Flowprobe Params configuration to the RESYNC request.

func (*DataResyncDSL) IPFIX added in v3.2.0

func (dsl *DataResyncDSL) IPFIX(val *ipfix.IPFIX) vppclient.DataResyncDSL

IPFIX adds IPFIX configuration to the RESYNC request.

func (*DataResyncDSL) IPScanNeighbor

func (dsl *DataResyncDSL) IPScanNeighbor(ipScanNeigh *l3.IPScanNeighbor) vppclient.DataResyncDSL

IPScanNeighbor adds L3 IP Scan Neighbor to the RESYNC request.

func (*DataResyncDSL) IPSecSA

IPSecSA adds request to create a new Security Association

func (*DataResyncDSL) IPSecSP added in v3.2.0

IPSecSP adds request to RESYNC a Security Policy

func (*DataResyncDSL) IPSecSPD

IPSecSPD adds request to create a new Security Policy Database

func (*DataResyncDSL) IPSecTunnelProtection added in v3.1.0

func (dsl *DataResyncDSL) IPSecTunnelProtection(tp *ipsec.TunnelProtection) vppclient.DataResyncDSL

IPSecTunnelProtection adds request to RESYNC an IPSec tunnel protection

func (*DataResyncDSL) Interface

func (dsl *DataResyncDSL) Interface(val *intf.Interface) vppclient.DataResyncDSL

Interface adds VPP interface to the RESYNC request.

func (*DataResyncDSL) NAT44AddressPool

func (dsl *DataResyncDSL) NAT44AddressPool(pool *nat.Nat44AddressPool) vppclient.DataResyncDSL

NAT44AddressPool adds NAT44 address pool configuration to the RESYNC request.

func (*DataResyncDSL) NAT44Global

func (dsl *DataResyncDSL) NAT44Global(nat44 *nat.Nat44Global) vppclient.DataResyncDSL

NAT44Global adds global NAT44 configuration to the RESYNC request.

func (*DataResyncDSL) NAT44Interface

func (dsl *DataResyncDSL) NAT44Interface(natIf *nat.Nat44Interface) vppclient.DataResyncDSL

NAT44Interface adds NAT44 interface configuration to the RESYNC request.

func (*DataResyncDSL) ProxyArp

func (dsl *DataResyncDSL) ProxyArp(proxyArp *l3.ProxyARP) vppclient.DataResyncDSL

ProxyArp adds L3 proxy ARP to the RESYNC request.

func (*DataResyncDSL) PuntException

func (dsl *DataResyncDSL) PuntException(val *punt.Exception) vppclient.DataResyncDSL

PuntException adds request to create or update exception to punt specific packets.

func (*DataResyncDSL) PuntIPRedirect

func (dsl *DataResyncDSL) PuntIPRedirect(val *punt.IPRedirect) vppclient.DataResyncDSL

PuntIPRedirect adds request to RESYNC a rule used to punt L3 traffic via interface.

func (*DataResyncDSL) PuntToHost

func (dsl *DataResyncDSL) PuntToHost(val *punt.ToHost) vppclient.DataResyncDSL

PuntToHost adds request to RESYNC a rule used to punt L4 traffic to a host.

func (*DataResyncDSL) Send

func (dsl *DataResyncDSL) Send() vppclient.Reply

Send propagates the request to the plugins. It deletes obsolete keys if listKeys() (from constructor) function is not nil.

func (*DataResyncDSL) Span

func (dsl *DataResyncDSL) Span(val *intf.Span) vppclient.DataResyncDSL

Span adds VPP span to the RESYNC request.

func (*DataResyncDSL) StaticRoute

func (dsl *DataResyncDSL) StaticRoute(val *l3.Route) vppclient.DataResyncDSL

StaticRoute adds L3 Static Route to the RESYNC request.

func (*DataResyncDSL) StnRule

func (dsl *DataResyncDSL) StnRule(val *stn.Rule) vppclient.DataResyncDSL

StnRule adds Stn rule to the RESYNC request.

func (*DataResyncDSL) VRRP added in v3.2.0

VRRP adds L3 proxy VRRP to the RESYNC request.

func (*DataResyncDSL) VrfTable

func (dsl *DataResyncDSL) VrfTable(val *l3.VrfTable) vppclient.DataResyncDSL

VrfTable adds VRF table to the RESYNC request.

func (*DataResyncDSL) XConnect

func (dsl *DataResyncDSL) XConnect(val *l2.XConnectPair) vppclient.DataResyncDSL

XConnect adds Cross Connect to the RESYNC request.

type DeleteDSL

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

DeleteDSL implements delete operations of data change DSL.

func (*DeleteDSL) ABF

func (dsl *DeleteDSL) ABF(abfIndex uint32) vppclient.DeleteDSL

ABF adds a request to delete and existing VPP ACL-based forwarding.

func (*DeleteDSL) ACL

func (dsl *DeleteDSL) ACL(aclName string) vppclient.DeleteDSL

ACL adds a request to delete an existing VPP Access Control List.

func (*DeleteDSL) Arp

func (dsl *DeleteDSL) Arp(ifaceName string, ipAddr string) vppclient.DeleteDSL

Arp adds a request to delete an existing VPP L3 ARP entry.

func (*DeleteDSL) BD

func (dsl *DeleteDSL) BD(bdName string) vppclient.DeleteDSL

BD adds a request to delete an existing VPP Bridge Domain.

func (*DeleteDSL) BDFIB

func (dsl *DeleteDSL) BDFIB(bdName string, mac string) vppclient.DeleteDSL

BDFIB adds a request to delete an existing VPP L2 Forwarding Information Base.

func (*DeleteDSL) DNAT44

func (dsl *DeleteDSL) DNAT44(label string) vppclient.DeleteDSL

DNAT44 adds a request to delete an existing DNAT44 configuration

func (*DeleteDSL) FlowprobeFeature added in v3.2.0

func (dsl *DeleteDSL) FlowprobeFeature(val *ipfix.FlowProbeFeature) vppclient.DeleteDSL

FlowprobeFeature adds a request to disable Flowprobe Feature on interface.

func (*DeleteDSL) IPScanNeighbor

func (dsl *DeleteDSL) IPScanNeighbor() vppclient.DeleteDSL

IPScanNeighbor adds a request to delete an existing VPP L3 IP Scan Neighbor.

func (*DeleteDSL) IPSecSA

func (dsl *DeleteDSL) IPSecSA(saIndex uint32) vppclient.DeleteDSL

IPSecSA adds request to create a new Security Association

func (*DeleteDSL) IPSecSP added in v3.2.0

func (dsl *DeleteDSL) IPSecSP(sp *ipsec.SecurityPolicy) vppclient.DeleteDSL

IPSecSP adds request to delete Security Policy

func (*DeleteDSL) IPSecSPD

func (dsl *DeleteDSL) IPSecSPD(spdIndex uint32) vppclient.DeleteDSL

IPSecSPD adds request to create a new Security Policy Database

func (*DeleteDSL) IPSecTunnelProtection added in v3.1.0

func (dsl *DeleteDSL) IPSecTunnelProtection(tp *ipsec.TunnelProtection) vppclient.DeleteDSL

IPSecTunnelProtection adds request to delete an IPSec tunnel protection from an interface

func (*DeleteDSL) Interface

func (dsl *DeleteDSL) Interface(interfaceName string) vppclient.DeleteDSL

Interface adds a request to delete an existing VPP network interface.

func (*DeleteDSL) NAT44AddressPool

func (dsl *DeleteDSL) NAT44AddressPool(pool *nat.Nat44AddressPool) vppclient.DeleteDSL

NAT44AddressPool adds a request to create or update NAT44 address pool.

func (*DeleteDSL) NAT44Global

func (dsl *DeleteDSL) NAT44Global() vppclient.DeleteDSL

NAT44Global adds a request to remove global configuration for NAT44

func (*DeleteDSL) NAT44Interface

func (dsl *DeleteDSL) NAT44Interface(natIf *nat.Nat44Interface) vppclient.DeleteDSL

NAT44Interface adds a request to delete NAT44 interface configuration.

func (*DeleteDSL) ProxyArp

func (dsl *DeleteDSL) ProxyArp() vppclient.DeleteDSL

ProxyArp adds a request to delete an existing VPP L3 proxy ARP.

func (*DeleteDSL) PuntException

func (dsl *DeleteDSL) PuntException(reason string) vppclient.DeleteDSL

PuntException adds request to delete exception to punt specific packets.

func (*DeleteDSL) PuntIPRedirect

func (dsl *DeleteDSL) PuntIPRedirect(l3Proto punt.L3Protocol, txInterface string) vppclient.DeleteDSL

PuntIPRedirect adds request to delete a rule used to punt L3 traffic via interface.

func (*DeleteDSL) PuntToHost

func (dsl *DeleteDSL) PuntToHost(l3Proto punt.L3Protocol, l4Proto punt.L4Protocol, port uint32) vppclient.DeleteDSL

PuntToHost adds request to delete a rule used to punt L4 traffic to a host.

func (*DeleteDSL) Put

func (dsl *DeleteDSL) Put() vppclient.PutDSL

Put changes the DSL mode to allow configuration editing.

func (*DeleteDSL) Send

func (dsl *DeleteDSL) Send() vppclient.Reply

Send propagates requested changes to the plugins.

func (*DeleteDSL) Span

func (dsl *DeleteDSL) Span(val *intf.Span) vppclient.DeleteDSL

Span adds VPP span to the RESYNC request.

func (*DeleteDSL) StaticRoute

func (dsl *DeleteDSL) StaticRoute(iface string, vrf uint32, dstAddr string, nextHopAddr string) vppclient.DeleteDSL

StaticRoute adds a request to delete an existing VPP L3 Static Route.

func (*DeleteDSL) StnRule

func (dsl *DeleteDSL) StnRule(iface, addr string) vppclient.DeleteDSL

StnRule adds request to delete Stn rule.

func (*DeleteDSL) VRRP added in v3.2.0

func (dsl *DeleteDSL) VRRP(val *l3.VRRPEntry) vppclient.DeleteDSL

VRRP adds a request to delete an existing VPP L3 VRRP entry.

func (*DeleteDSL) VrfTable

func (dsl *DeleteDSL) VrfTable(id uint32, proto l3.VrfTable_Protocol) vppclient.DeleteDSL

VrfTable adds a request to delete existing VPP VRF table.

func (*DeleteDSL) XConnect

func (dsl *DeleteDSL) XConnect(rxIfName string) vppclient.DeleteDSL

XConnect adds a request to delete an existing VPP Cross Connect.

type PutDSL

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

PutDSL implements put operations of data change DSL.

func (*PutDSL) ABF

func (dsl *PutDSL) ABF(val *abf.ABF) vppclient.PutDSL

ABF adds a request to create or update VPP ACL-based forwarding

func (*PutDSL) ACL

func (dsl *PutDSL) ACL(val *acl.ACL) vppclient.PutDSL

ACL adds a request to create or update VPP Access Control List.

func (*PutDSL) Arp

func (dsl *PutDSL) Arp(arp *l3.ARPEntry) vppclient.PutDSL

Arp adds a request to create or update VPP L3 ARP entry.

func (*PutDSL) BD

func (dsl *PutDSL) BD(val *l2.BridgeDomain) vppclient.PutDSL

BD adds a request to create or update VPP Bridge Domain.

func (*PutDSL) BDFIB

func (dsl *PutDSL) BDFIB(val *l2.FIBEntry) vppclient.PutDSL

BDFIB adds a request to create or update VPP L2 Forwarding Information Base.

func (*PutDSL) DNAT44

func (dsl *PutDSL) DNAT44(nat44 *nat.DNat44) vppclient.PutDSL

DNAT44 adds a request to create or update DNAT44 configuration

func (*PutDSL) Delete

func (dsl *PutDSL) Delete() vppclient.DeleteDSL

Delete changes the DSL mode to allow removal of an existing configuration.

func (*PutDSL) FlowprobeFeature added in v3.2.0

func (dsl *PutDSL) FlowprobeFeature(val *ipfix.FlowProbeFeature) vppclient.PutDSL

FlowprobeFeature adds a request to enable Flowprobe Feature on interface.

func (*PutDSL) FlowprobeParams added in v3.2.0

func (dsl *PutDSL) FlowprobeParams(val *ipfix.FlowProbeParams) vppclient.PutDSL

FlowprobeParams adds a request to update VPP Flowprobe Params.

func (*PutDSL) IPFIX added in v3.2.0

func (dsl *PutDSL) IPFIX(val *ipfix.IPFIX) vppclient.PutDSL

IPFIX adds a request to update VPP IP Flow Information eXport configuration.

func (*PutDSL) IPScanNeighbor

func (dsl *PutDSL) IPScanNeighbor(ipScanNeigh *l3.IPScanNeighbor) vppclient.PutDSL

IPScanNeighbor adds L3 IP Scan Neighbor to the RESYNC request.

func (*PutDSL) IPSecSA

func (dsl *PutDSL) IPSecSA(sa *ipsec.SecurityAssociation) vppclient.PutDSL

IPSecSA adds request to create a new Security Association

func (*PutDSL) IPSecSP added in v3.2.0

func (dsl *PutDSL) IPSecSP(sp *ipsec.SecurityPolicy) vppclient.PutDSL

IPSecSP adds request to create a new Security Policy

func (*PutDSL) IPSecSPD

func (dsl *PutDSL) IPSecSPD(spd *ipsec.SecurityPolicyDatabase) vppclient.PutDSL

IPSecSPD adds request to create a new Security Policy Database

func (*PutDSL) IPSecTunnelProtection added in v3.1.0

func (dsl *PutDSL) IPSecTunnelProtection(tp *ipsec.TunnelProtection) vppclient.PutDSL

IPSecTunnelProtection adds request to delete an IPSec tunnel protection from an interface

func (*PutDSL) Interface

func (dsl *PutDSL) Interface(val *intf.Interface) vppclient.PutDSL

Interface adds a request to create or update VPP network interface.

func (*PutDSL) NAT44AddressPool

func (dsl *PutDSL) NAT44AddressPool(pool *nat.Nat44AddressPool) vppclient.PutDSL

NAT44AddressPool adds a request to create or update NAT44 address pool.

func (*PutDSL) NAT44Global

func (dsl *PutDSL) NAT44Global(nat44 *nat.Nat44Global) vppclient.PutDSL

NAT44Global adds a request to set global configuration for NAT44

func (*PutDSL) NAT44Interface

func (dsl *PutDSL) NAT44Interface(natIf *nat.Nat44Interface) vppclient.PutDSL

NAT44Interface adds a request to create or update NAT44 interface configuration.

func (*PutDSL) ProxyArp

func (dsl *PutDSL) ProxyArp(proxyArp *l3.ProxyARP) vppclient.PutDSL

ProxyArp adds a request to create or update VPP L3 proxy ARP.

func (*PutDSL) PuntException

func (dsl *PutDSL) PuntException(val *punt.Exception) vppclient.PutDSL

PuntException adds request to create or update exception to punt specific packets.

func (*PutDSL) PuntIPRedirect

func (dsl *PutDSL) PuntIPRedirect(val *punt.IPRedirect) vppclient.PutDSL

PuntIPRedirect adds request to create or update rule to punt L3 traffic via interface.

func (*PutDSL) PuntToHost

func (dsl *PutDSL) PuntToHost(val *punt.ToHost) vppclient.PutDSL

PuntToHost adds request to create or update rule to punt L4 traffic to a host.

func (*PutDSL) Send

func (dsl *PutDSL) Send() vppclient.Reply

Send propagates requested changes to the plugins.

func (*PutDSL) Span

func (dsl *PutDSL) Span(val *intf.Span) vppclient.PutDSL

Span adds VPP span to the change request.

func (*PutDSL) StaticRoute

func (dsl *PutDSL) StaticRoute(val *l3.Route) vppclient.PutDSL

StaticRoute adds a request to create or update VPP L3 Static Route.

func (*PutDSL) StnRule

func (dsl *PutDSL) StnRule(val *stn.Rule) vppclient.PutDSL

StnRule adds a request to create or update STN rule.

func (*PutDSL) VRRP added in v3.2.0

func (dsl *PutDSL) VRRP(val *l3.VRRPEntry) vppclient.PutDSL

VRRP adds a request to add an existing VPP L3 VRRP entry.

func (*PutDSL) VrfTable

func (dsl *PutDSL) VrfTable(val *l3.VrfTable) vppclient.PutDSL

VrfTable adds a request to create or update VPP VRF table.

func (*PutDSL) XConnect

func (dsl *PutDSL) XConnect(val *l2.XConnectPair) vppclient.PutDSL

XConnect adds a request to create or update VPP Cross Connect.

type Reply

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

Reply interface allows to wait for a reply to previously called Send() and extract the result from it (success/error).

func (Reply) ReceiveReply

func (dsl Reply) ReceiveReply() error

ReceiveReply waits for a reply to previously called Send() and returns the result (error or nil).

Jump to

Keyboard shortcuts

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