go.ligato.io/vpp-agent/v3@v3.5.0/clientv2/vpp/data_resync_api.go (about)

     1  // Copyright (c) 2017 Cisco and/or its affiliates.
     2  //
     3  // Licensed under the Apache License, Version 2.0 (the "License");
     4  // you may not use this file except in compliance with the License.
     5  // You may obtain a copy of the License at:
     6  //
     7  //     http://www.apache.org/licenses/LICENSE-2.0
     8  //
     9  // Unless required by applicable law or agreed to in writing, software
    10  // distributed under the License is distributed on an "AS IS" BASIS,
    11  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12  // See the License for the specific language governing permissions and
    13  // limitations under the License.
    14  
    15  package vppclient
    16  
    17  import (
    18  	abf "go.ligato.io/vpp-agent/v3/proto/ligato/vpp/abf"
    19  	acl "go.ligato.io/vpp-agent/v3/proto/ligato/vpp/acl"
    20  	interfaces "go.ligato.io/vpp-agent/v3/proto/ligato/vpp/interfaces"
    21  	ipfix "go.ligato.io/vpp-agent/v3/proto/ligato/vpp/ipfix"
    22  	ipsec "go.ligato.io/vpp-agent/v3/proto/ligato/vpp/ipsec"
    23  	l2 "go.ligato.io/vpp-agent/v3/proto/ligato/vpp/l2"
    24  	l3 "go.ligato.io/vpp-agent/v3/proto/ligato/vpp/l3"
    25  	nat "go.ligato.io/vpp-agent/v3/proto/ligato/vpp/nat"
    26  	punt "go.ligato.io/vpp-agent/v3/proto/ligato/vpp/punt"
    27  	stn "go.ligato.io/vpp-agent/v3/proto/ligato/vpp/stn"
    28  )
    29  
    30  // DataResyncDSL defines the Domain Specific Language (DSL) for data RESYNC
    31  // of the VPP configuration.
    32  // Use this interface to make your implementation independent of the local
    33  // and any remote client.
    34  // Each method (apart from Send) returns the receiver, allowing the calls
    35  // to be chained together conveniently in a single statement.
    36  type DataResyncDSL interface {
    37  	// Interface adds interface to the RESYNC request.
    38  	Interface(intf *interfaces.Interface) DataResyncDSL
    39  	// Span adds span to the RESYNC request.
    40  	Span(intf *interfaces.Span) DataResyncDSL
    41  	// ACL adds Access Control List to the RESYNC request.
    42  	ACL(acl *acl.ACL) DataResyncDSL
    43  	// ABF adds ACL-based forwarding to the RESYNC request.
    44  	ABF(abf *abf.ABF) DataResyncDSL
    45  	// BD adds Bridge Domain to the RESYNC request.
    46  	BD(bd *l2.BridgeDomain) DataResyncDSL
    47  	// BDFIB adds L2 Forwarding Information Base.
    48  	BDFIB(fib *l2.FIBEntry) DataResyncDSL
    49  	// XConnect adds Cross Connect to the RESYNC request.
    50  	XConnect(xcon *l2.XConnectPair) DataResyncDSL
    51  	// VrfTable adds VRF table to the RESYNC request.
    52  	VrfTable(val *l3.VrfTable) DataResyncDSL
    53  	// StaticRoute adds L3 Static Route to the RESYNC request.
    54  	StaticRoute(staticRoute *l3.Route) DataResyncDSL
    55  	// Arp adds VPP L3 ARP to the RESYNC request.
    56  	Arp(arp *l3.ARPEntry) DataResyncDSL
    57  	// ProxyArp adds L3 proxy ARP interfaces to the RESYNC request.
    58  	ProxyArp(proxyArp *l3.ProxyARP) DataResyncDSL
    59  	// IPScanNeighbor adds L3 IP Scan Neighbor to the RESYNC request.
    60  	IPScanNeighbor(ipScanNeigh *l3.IPScanNeighbor) DataResyncDSL
    61  	// StnRule adds Stn rule to the RESYNC request.
    62  	StnRule(stn *stn.Rule) DataResyncDSL
    63  	// NAT44Global adds global NAT44 configuration to the RESYNC request.
    64  	NAT44Global(nat *nat.Nat44Global) DataResyncDSL
    65  	// DNAT44 adds DNAT44 configuration to the RESYNC request
    66  	DNAT44(dnat *nat.DNat44) DataResyncDSL
    67  	// NAT44Interface adds NAT44 interface configuration to the RESYNC request.
    68  	NAT44Interface(natIf *nat.Nat44Interface) DataResyncDSL
    69  	// NAT44AddressPool adds NAT44 address pool configuration to the RESYNC request.
    70  	NAT44AddressPool(pool *nat.Nat44AddressPool) DataResyncDSL
    71  	// IPSecSA adds request to RESYNC a new Security Association
    72  	IPSecSA(sa *ipsec.SecurityAssociation) DataResyncDSL
    73  	// IPSecSPD adds request to RESYNC a new Security Policy Database
    74  	IPSecSPD(spd *ipsec.SecurityPolicyDatabase) DataResyncDSL
    75  	// IPSecSP adds Security Policy to the RESYNC request
    76  	IPSecSP(sp *ipsec.SecurityPolicy) DataResyncDSL
    77  	// IPSecTunnelProtection adds request to RESYNC an IPSec tunnel protection
    78  	IPSecTunnelProtection(tp *ipsec.TunnelProtection) DataResyncDSL
    79  	// PuntIPRedirect adds request to RESYNC a rule used to punt L3 traffic via interface.
    80  	PuntIPRedirect(val *punt.IPRedirect) DataResyncDSL
    81  	// PuntToHost adds request to RESYNC a rule used to punt L4 traffic to a host.
    82  	PuntToHost(val *punt.ToHost) DataResyncDSL
    83  	// PuntException adds request to create or update exception to punt specific packets.
    84  	PuntException(val *punt.Exception) DataResyncDSL
    85  	// IPFIX adds IPFIX configuration to the RESYNC request.
    86  	IPFIX(val *ipfix.IPFIX) DataResyncDSL
    87  	// FlowprobeParams adds Flowprobe Params configuration to the RESYNC request.
    88  	FlowprobeParams(val *ipfix.FlowProbeParams) DataResyncDSL
    89  	// FlowprobeFeature adds Flowprobe Feature configuration to the RESYNC request.
    90  	FlowprobeFeature(val *ipfix.FlowProbeFeature) DataResyncDSL
    91  	// VRRP adds VPP L3 VRRP to the RESYNC request.
    92  	VRRP(val *l3.VRRPEntry) DataResyncDSL
    93  
    94  	// Send propagates the RESYNC request to the plugins.
    95  	Send() Reply
    96  }