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: 18 Imported by: 0

Documentation

Overview

Package dbadapter implements Domain Specific Language (DSL) for resync and change of VPP and Linux configuration.

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 both Linux and VPP configuration.

func NewDataChangeDSL

func NewDataChangeDSL(txn keyval.ProtoTxn) *DataChangeDSL

NewDataChangeDSL returns a new instance of DataChangeDSL which implements the data change DSL for both Linux and VPP config (inherits dbadapter from vppplugin). Transaction <txn> is used to propagate changes to plugins.

func (*DataChangeDSL) Delete

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

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

func (*DataChangeDSL) Put

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

Put initiates a chained sequence of data change DSL statements and declares new configurable objects or changes 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 both Linux and 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 both Linux and VPP config (inherits dbadapter from vppplugin). Transaction <txn> is used to propagate changes to plugins. Function <listKeys> is used to list keys with already existing configuration.

func (*DataResyncDSL) ABF

ABF adds ACL-based forwarding to the RESYNC request.

func (*DataResyncDSL) ACL

ACL adds VPP Access Control List to the RESYNC request.

func (*DataResyncDSL) Arp

Arp adds VPP L3 ARP to the RESYNC request.

func (*DataResyncDSL) BD

BD adds VPP Bridge Domain to the RESYNC request.

func (*DataResyncDSL) BDFIB

BDFIB adds VPP L2 FIB to the RESYNC request.

func (*DataResyncDSL) DNAT44

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

DNAT44 adds DNAT44 configuration to the RESYNC request

func (*DataResyncDSL) FlowprobeFeature added in v3.2.0

func (dsl *DataResyncDSL) FlowprobeFeature(val *ipfix.FlowProbeFeature) linuxclient.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) linuxclient.DataResyncDSL

FlowprobeParams adds Flowprobe Params configuration to the RESYNC request.

func (*DataResyncDSL) IPFIX added in v3.2.0

IPFIX adds IPFIX configuration to the RESYNC request.

func (*DataResyncDSL) IPScanNeighbor

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

IPScanNeighbor adds L3 IP Scan Neighbor to the RESYNC request.

func (*DataResyncDSL) IPSecSA

IPSecSA adds request to RESYNC a new Security Association

func (*DataResyncDSL) IPSecSP added in v3.2.0

IPSecSP adds Security Policy into the RESYNC request

func (*DataResyncDSL) IPSecSPD

IPSecSPD adds request to RESYNC a new Security Policy Database

func (*DataResyncDSL) IPSecTunnelProtection added in v3.1.0

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

IPSecTunnelProtection adds request to RESYNC an IPSec tunnel protection

func (*DataResyncDSL) IptablesRuleChain

func (dsl *DataResyncDSL) IptablesRuleChain(val *linux_iptables.RuleChain) linuxclient.DataResyncDSL

IptablesRuleChain adds iptables rule chain to the RESYNC request.

func (*DataResyncDSL) LinuxArpEntry

func (dsl *DataResyncDSL) LinuxArpEntry(val *linux_l3.ARPEntry) linuxclient.DataResyncDSL

LinuxArpEntry adds Linux ARP entry to the RESYNC request.

func (*DataResyncDSL) LinuxInterface

LinuxInterface adds Linux interface to the RESYNC request.

func (*DataResyncDSL) LinuxRoute

func (dsl *DataResyncDSL) LinuxRoute(val *linux_l3.Route) linuxclient.DataResyncDSL

LinuxRoute adds Linux route to the RESYNC request.

func (*DataResyncDSL) NAT44AddressPool

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

NAT44AddressPool adds NAT44 address pool configuration to the RESYNC request.

func (*DataResyncDSL) NAT44Global

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

NAT44Global adds global NAT44 configuration to the RESYNC request.

func (*DataResyncDSL) NAT44Interface

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

NAT44Interface adds NAT44 interface configuration to the RESYNC request.

func (*DataResyncDSL) ProxyArp

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

ProxyArp adds L3 proxy ARP to the RESYNC request.

func (*DataResyncDSL) PuntException

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

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

func (*DataResyncDSL) PuntIPRedirect

func (dsl *DataResyncDSL) PuntIPRedirect(val *punt.IPRedirect) linuxclient.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) linuxclient.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

Span adds VPP span to the RESYNC request.

func (*DataResyncDSL) StaticRoute

func (dsl *DataResyncDSL) StaticRoute(staticRoute *l3.Route) linuxclient.DataResyncDSL

StaticRoute adds VPP L3 Static Route to the RESYNC request.

func (*DataResyncDSL) StnRule

func (dsl *DataResyncDSL) StnRule(stn *stn.Rule) linuxclient.DataResyncDSL

StnRule adds Stn rule to the RESYNC request.

func (*DataResyncDSL) VRRP added in v3.2.0

VRRP adds VRRP entry to the RESYNC request.

func (*DataResyncDSL) VppInterface

func (dsl *DataResyncDSL) VppInterface(intf *interfaces.Interface) linuxclient.DataResyncDSL

VppInterface adds VPP interface to the RESYNC request.

func (*DataResyncDSL) VrfTable

func (dsl *DataResyncDSL) VrfTable(vrfTable *l3.VrfTable) linuxclient.DataResyncDSL

VrfTable adds VPP VRF table to the RESYNC request.

func (*DataResyncDSL) XConnect

func (dsl *DataResyncDSL) XConnect(xcon *l2.XConnectPair) linuxclient.DataResyncDSL

XConnect adds VPP 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) linuxclient.DeleteDSL

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

func (*DeleteDSL) ACL

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

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

func (*DeleteDSL) Arp

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

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

func (*DeleteDSL) BD

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

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

func (*DeleteDSL) BDFIB

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

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

func (*DeleteDSL) DNAT44

func (dsl *DeleteDSL) DNAT44(label string) linuxclient.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) linuxclient.DeleteDSL

FlowprobeFeature adds a request to disable Flowprobe Feature on interface.

func (*DeleteDSL) IPScanNeighbor

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

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

func (*DeleteDSL) IPSecSA

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

IPSecSA adds request to delete a Security Association

func (*DeleteDSL) IPSecSP added in v3.2.0

IPSecSP adds request to delete a Security Policy

func (*DeleteDSL) IPSecSPD

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

IPSecSPD adds request to delete a Security Policy Database

func (*DeleteDSL) IPSecTunnelProtection added in v3.1.0

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

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

func (*DeleteDSL) IptablesRuleChain

func (dsl *DeleteDSL) IptablesRuleChain(name string) linuxclient.DeleteDSL

IptablesRuleChain adds request to delete iptables rule chain.

func (*DeleteDSL) LinuxArpEntry

func (dsl *DeleteDSL) LinuxArpEntry(ifaceName string, ipAddr string) linuxclient.DeleteDSL

LinuxArpEntry adds a request to delete Linux ARP entry.

func (*DeleteDSL) LinuxInterface

func (dsl *DeleteDSL) LinuxInterface(interfaceName string) linuxclient.DeleteDSL

LinuxInterface adds a request to delete an existing Linux network interface.

func (*DeleteDSL) LinuxRoute

func (dsl *DeleteDSL) LinuxRoute(dstAddr, outIfaceName string) linuxclient.DeleteDSL

LinuxRoute adds a request to delete Linux route.

func (*DeleteDSL) NAT44AddressPool

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

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

func (*DeleteDSL) NAT44Global

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

NAT44Global adds a request to remove global configuration for NAT44

func (*DeleteDSL) NAT44Interface

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

NAT44Interface adds a request to delete NAT44 interface configuration.

func (*DeleteDSL) ProxyArp

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

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

func (*DeleteDSL) PuntException

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

PuntException adds request to delete exception to punt specific packets.

func (*DeleteDSL) PuntIPRedirect

func (dsl *DeleteDSL) PuntIPRedirect(l3Proto punt.L3Protocol, txInterface string) linuxclient.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) linuxclient.DeleteDSL

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

func (*DeleteDSL) Put

func (dsl *DeleteDSL) Put() linuxclient.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 *interfaces.Span) linuxclient.DeleteDSL

Span adds a request to delete VPP SPAN.

func (*DeleteDSL) StaticRoute

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

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

func (*DeleteDSL) StnRule

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

StnRule adds a request to delete an existing VPP Stn rule.

func (*DeleteDSL) VRRP added in v3.2.0

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

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

func (*DeleteDSL) VppInterface

func (dsl *DeleteDSL) VppInterface(ifaceName string) linuxclient.DeleteDSL

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

func (*DeleteDSL) VrfTable

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

VrfTable adds a request to delete existing VPP VRF table.

func (*DeleteDSL) XConnect

func (dsl *DeleteDSL) XConnect(rxIfaceName string) linuxclient.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(abf *abf.ABF) linuxclient.PutDSL

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

func (*PutDSL) ACL

func (dsl *PutDSL) ACL(acl *acl.ACL) linuxclient.PutDSL

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

func (*PutDSL) Arp

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

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

func (*PutDSL) BD

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

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

func (*PutDSL) BDFIB

func (dsl *PutDSL) BDFIB(fib *l2.FIBEntry) linuxclient.PutDSL

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

func (*PutDSL) DNAT44

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

DNAT44 adds a request to create or update DNAT44 configuration

func (*PutDSL) Delete

func (dsl *PutDSL) Delete() linuxclient.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) linuxclient.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) linuxclient.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) linuxclient.PutDSL

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

func (*PutDSL) IPScanNeighbor

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

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

func (*PutDSL) IPSecSA

IPSecSA adds request to create a new Security Association

func (*PutDSL) IPSecSP added in v3.2.0

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

IPSecSP adds request to create a new Security Policy

func (*PutDSL) IPSecSPD

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) linuxclient.PutDSL

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

func (*PutDSL) IptablesRuleChain

func (dsl *PutDSL) IptablesRuleChain(val *linux_iptables.RuleChain) linuxclient.PutDSL

IptablesRuleChain adds request to create or update iptables rule chain.

func (*PutDSL) LinuxArpEntry

func (dsl *PutDSL) LinuxArpEntry(val *linux_l3.ARPEntry) linuxclient.PutDSL

LinuxArpEntry adds a request to create or update Linux ARP entry.

func (*PutDSL) LinuxInterface

func (dsl *PutDSL) LinuxInterface(val *linux_interfaces.Interface) linuxclient.PutDSL

LinuxInterface adds a request to create or update Linux network interface.

func (*PutDSL) LinuxRoute

func (dsl *PutDSL) LinuxRoute(val *linux_l3.Route) linuxclient.PutDSL

LinuxRoute adds a request to create or update Linux route.

func (*PutDSL) NAT44AddressPool

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

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

func (*PutDSL) NAT44Global

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

NAT44Global adds a request to set global configuration for NAT44

func (*PutDSL) NAT44Interface

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

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

func (*PutDSL) ProxyArp

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

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

func (*PutDSL) PuntException

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

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

func (*PutDSL) PuntIPRedirect

func (dsl *PutDSL) PuntIPRedirect(val *punt.IPRedirect) linuxclient.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) linuxclient.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 *interfaces.Span) linuxclient.PutDSL

Span adds a request to create or update VPP SPAN.

func (*PutDSL) StaticRoute

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

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

func (*PutDSL) StnRule

func (dsl *PutDSL) StnRule(stn *stn.Rule) linuxclient.PutDSL

StnRule adds a request to create or update VPP Stn rule.

func (*PutDSL) VRRP added in v3.2.0

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

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

func (*PutDSL) VppInterface

func (dsl *PutDSL) VppInterface(val *interfaces.Interface) linuxclient.PutDSL

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

func (*PutDSL) VrfTable

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

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

func (*PutDSL) XConnect

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

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

Jump to

Keyboard shortcuts

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