go.ligato.io/vpp-agent/v3@v3.5.0/clientv2/linux/data_resync_api.go (about) 1 // Copyright (c) 2018 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 linuxclient 16 17 import ( 18 vpp_clientv2 "go.ligato.io/vpp-agent/v3/clientv2/vpp" 19 linux_interfaces "go.ligato.io/vpp-agent/v3/proto/ligato/linux/interfaces" 20 linux_iptables "go.ligato.io/vpp-agent/v3/proto/ligato/linux/iptables" 21 linux_l3 "go.ligato.io/vpp-agent/v3/proto/ligato/linux/l3" 22 vpp_abf "go.ligato.io/vpp-agent/v3/proto/ligato/vpp/abf" 23 vpp_acl "go.ligato.io/vpp-agent/v3/proto/ligato/vpp/acl" 24 vpp_interfaces "go.ligato.io/vpp-agent/v3/proto/ligato/vpp/interfaces" 25 ipfix "go.ligato.io/vpp-agent/v3/proto/ligato/vpp/ipfix" 26 ipsec "go.ligato.io/vpp-agent/v3/proto/ligato/vpp/ipsec" 27 vpp_l2 "go.ligato.io/vpp-agent/v3/proto/ligato/vpp/l2" 28 vpp_l3 "go.ligato.io/vpp-agent/v3/proto/ligato/vpp/l3" 29 nat "go.ligato.io/vpp-agent/v3/proto/ligato/vpp/nat" 30 punt "go.ligato.io/vpp-agent/v3/proto/ligato/vpp/punt" 31 vpp_stn "go.ligato.io/vpp-agent/v3/proto/ligato/vpp/stn" 32 ) 33 34 // DataResyncDSL defines the Domain Specific Language (DSL) for data RESYNC 35 // of both Linux and VPP configuration. 36 // Use this interface to make your implementation independent of the local 37 // and any remote client. 38 // Each method (apart from Send) returns the receiver, allowing the calls 39 // to be chained together conveniently in a single statement. 40 type DataResyncDSL interface { 41 // LinuxInterface adds Linux interface to the RESYNC request. 42 LinuxInterface(intf *linux_interfaces.Interface) DataResyncDSL 43 // LinuxInterface adds Linux ARP entry to the RESYNC request. 44 LinuxArpEntry(arp *linux_l3.ARPEntry) DataResyncDSL 45 // LinuxInterface adds Linux route to the RESYNC request. 46 LinuxRoute(route *linux_l3.Route) DataResyncDSL 47 // IptablesRuleChain adds iptables rule chain to the RESYNC request. 48 IptablesRuleChain(val *linux_iptables.RuleChain) DataResyncDSL 49 50 // VppInterface adds VPP interface to the RESYNC request. 51 VppInterface(intf *vpp_interfaces.Interface) DataResyncDSL 52 // Span adds VPP span to the RESYNC request. 53 Span(span *vpp_interfaces.Span) DataResyncDSL 54 // ACL adds VPP Access Control List to the RESYNC request. 55 ACL(acl *vpp_acl.ACL) DataResyncDSL 56 // ABF adds ACL-based forwarding to the RESYNC request. 57 ABF(acl *vpp_abf.ABF) DataResyncDSL 58 /*// BfdSession adds VPP bidirectional forwarding detection session 59 // to the RESYNC request. 60 BfdSession(val *vpp_bfd.SingleHopBFD_Session) DataResyncDSL 61 // BfdAuthKeys adds VPP bidirectional forwarding detection key to the RESYNC 62 // request. 63 BfdAuthKeys(val *vpp_bfd.SingleHopBFD_Key) DataResyncDSL 64 // BfdEchoFunction adds VPP bidirectional forwarding detection echo function 65 // to the RESYNC request. 66 BfdEchoFunction(val *vpp_bfd.SingleHopBFD_EchoFunction) DataResyncDSL*/ 67 // BD adds VPP Bridge Domain to the RESYNC request. 68 BD(bd *vpp_l2.BridgeDomain) DataResyncDSL 69 // BDFIB adds VPP L2 FIB to the RESYNC request. 70 BDFIB(fib *vpp_l2.FIBEntry) DataResyncDSL 71 // VrfTable adds VPP VRF table to the RESYNC request. 72 VrfTable(val *vpp_l3.VrfTable) DataResyncDSL 73 // XConnect adds VPP Cross Connect to the RESYNC request. 74 XConnect(xcon *vpp_l2.XConnectPair) DataResyncDSL 75 // StaticRoute adds VPP L3 Static Route to the RESYNC request. 76 StaticRoute(staticRoute *vpp_l3.Route) DataResyncDSL 77 // Arp adds VPP L3 ARP to the RESYNC request. 78 Arp(arp *vpp_l3.ARPEntry) DataResyncDSL 79 // ProxyArp adds L3 proxy ARP interfaces to the RESYNC request. 80 ProxyArp(proxyArp *vpp_l3.ProxyARP) DataResyncDSL 81 // IPScanNeighbor adds L3 IP Scan Neighbor to the RESYNC request. 82 IPScanNeighbor(ipScanNeigh *vpp_l3.IPScanNeighbor) DataResyncDSL 83 /*// L4Features adds L4 features to the RESYNC request 84 L4Features(val *vpp_l4.L4Features) DataResyncDSL 85 // AppNamespace adds VPP Application namespaces to the RESYNC request 86 AppNamespace(appNs *vpp_l4.AppNamespaces_AppNamespace) DataResyncDSL*/ 87 // StnRule adds Stn rule to the RESYNC request. 88 StnRule(stn *vpp_stn.Rule) DataResyncDSL 89 // NAT44Global adds global NAT44 configuration to the RESYNC request. 90 NAT44Global(nat *nat.Nat44Global) DataResyncDSL 91 // DNAT44 adds DNAT44 configuration to the RESYNC request 92 DNAT44(dnat *nat.DNat44) DataResyncDSL 93 // NAT44Interface adds NAT44 interface configuration to the RESYNC request. 94 NAT44Interface(natIf *nat.Nat44Interface) DataResyncDSL 95 // NAT44AddressPool adds NAT44 address pool configuration to the RESYNC request. 96 NAT44AddressPool(pool *nat.Nat44AddressPool) DataResyncDSL 97 // IPSecSA adds request to RESYNC a new Security Association 98 IPSecSA(sa *ipsec.SecurityAssociation) DataResyncDSL 99 // IPSecSPD adds request to RESYNC a new Security Policy Database 100 IPSecSPD(spd *ipsec.SecurityPolicyDatabase) DataResyncDSL 101 // IPSecSP adds Security Policy to the RESYNC request 102 IPSecSP(sp *ipsec.SecurityPolicy) DataResyncDSL 103 // IPSecTunnelProtection adds request to RESYNC an IPSec tunnel protection 104 IPSecTunnelProtection(tp *ipsec.TunnelProtection) DataResyncDSL 105 // PuntIPRedirect adds request to RESYNC a rule used to punt L3 traffic via interface. 106 PuntIPRedirect(val *punt.IPRedirect) DataResyncDSL 107 // PuntToHost adds request to RESYNC a rule used to punt L4 traffic to a host. 108 PuntToHost(val *punt.ToHost) DataResyncDSL 109 // PuntException adds request to create or update exception to punt specific packets. 110 PuntException(val *punt.Exception) DataResyncDSL 111 // IPFIX adds IPFIX configuration to the RESYNC request. 112 IPFIX(val *ipfix.IPFIX) DataResyncDSL 113 // FlowprobeParams adds Flowprobe Params configuration to the RESYNC request. 114 FlowprobeParams(val *ipfix.FlowProbeParams) DataResyncDSL 115 // FlowprobeFeature adds Flowprobe Feature configuration to the RESYNC request. 116 FlowprobeFeature(val *ipfix.FlowProbeFeature) DataResyncDSL 117 // VRRP adds VPP L3 VRRP to the RESYNC request. 118 VRRP(val *vpp_l3.VRRPEntry) DataResyncDSL 119 120 // Send propagates the RESYNC request to the plugins. 121 Send() vpp_clientv2.Reply 122 }