go.ligato.io/vpp-agent/v3@v3.5.0/CHANGELOG.md (about) 1 # Changelog 2 3 [](https://github.com/ligato/vpp-agent/compare/v3.5.0...master) 4 5 ## Release Notes 6 7 - [v3.5.0](#v3.5.0) 8 - [v3.4.0](#v3.4.0) 9 - [v3.3.0](#v3.3.0) 10 - [v3.2.0](#v3.2.0) 11 - [v3.1.0](#v3.1.0) 12 - [v3.0.0](#v3.0.0) 13 - [v3.0.1](#v3.0.1) 14 - [v2.5.0](#v2.5.0) 15 - [v2.5.1](#v2.5.1) 16 - [v2.4.0](#v2.4.0) 17 - [v2.3.0](#v2.3.0) 18 - [v2.2.0](#v2.2.0) 19 - [v2.2.0-beta](#v2.2.0-beta) 20 - [v2.1.0](#v2.1.0) 21 - [v2.1.1](#v2.1.1) 22 - [v2.0.0](#v2.0.0) 23 - [v2.0.1](#v2.0.1) 24 - [v2.0.2](#v2.0.2) 25 - [v1.8.0](#v1.8.0) 26 - [v1.8.1](#v1.8.1) 27 - [v1.7.0](#v1.7.0) 28 - [v1.6.0](#v1.6.0) 29 - [v1.5.0](#v1.5.0) 30 - [v1.5.1](#v1.5.1) 31 - [v1.5.2](#v1.5.2) 32 - [v1.4.0](#v1.4.0) 33 - [v1.4.1](#v1.4.1) 34 - [v1.3.0](#v1.3.0) 35 - [v1.2.0](#v1.2.0) 36 - [v1.1.0](#v1.1.0) 37 - [v1.0.8](#v1.0.8) 38 - [v1.0.7](#v1.0.7) 39 - [v1.0.6](#v1.0.6) 40 - [v1.0.5](#v1.0.5) 41 - [v1.0.4](#v1.0.4) 42 - [v1.0.3](#v1.0.3) 43 - [v1.0.2](#v1.0.2) 44 45 <!--- 46 RELEASE CHANGELOG TEMPLATE: 47 <a name="vX.Y.Z"></a> 48 # [X.Y.Z](https://github.com/ligato/vpp-agent/compare/vX-1.Y-1.Z-1...vX.Y.Z) (YYYY-MM-DD) 49 ### COMPATIBILITY 50 ### KNOWN ISSUES 51 ### BREAKING CHANGES 52 ### Bug Fixes 53 ### Features 54 ### Improvements 55 ### Docker Images 56 ### Documentation 57 --> 58 59 <a name="v3.5.0"></a> 60 # [3.5.0](https://github.com/ligato/vpp-agent/compare/v3.4.0...v3.5.0) (2023-02-XX) 61 62 ### COMPATIBILITY 63 - VPP 22.10 (default) 64 - VPP 22.02 65 - VPP 21.06 66 - VPP 21.01 67 68 ### Bug Fixes 69 - Fix agentctl config history not working with remote models [#1860](https://github.com/ligato/vpp-agent/pull/1860) 70 - Fix ParseACLToInterfaceKey [#1864](https://github.com/ligato/vpp-agent/pull/1864) 71 - Fix agentctl config dump not working with remote models [#1863](https://github.com/ligato/vpp-agent/pull/1863) 72 - Fix e2e tests [#1895](https://github.com/ligato/vpp-agent/pull/1895) 73 74 ### Features 75 - Add support for e2e tests with multiple agents [#1870](https://github.com/ligato/vpp-agent/pull/1870) 76 - Add support for agentctl configuration labels [#1858](https://github.com/ligato/vpp-agent/pull/1858) 77 - Add support for VPP 22.10 [#1878](https://github.com/ligato/vpp-agent/pull/1878) 78 79 ### Improvements 80 - Restore some agentctl e2e test cases [#1869](https://github.com/ligato/vpp-agent/pull/1869) 81 - Add e2e test for vlan/subinterface functionality [#1872](https://github.com/ligato/vpp-agent/pull/1872) 82 - Enable wireguard test case for VPP 22.02 [#1877](https://github.com/ligato/vpp-agent/pull/1877) 83 - Split e2e package into test harness and tests [#1896](https://github.com/ligato/vpp-agent/pull/1896) 84 - Fix issues reported by golangci-lint [#1902](https://github.com/ligato/vpp-agent/pull/1902) 85 86 ### Other 87 - Switch to new GoVPP module path: go.fd.io/govpp [#1862](https://github.com/ligato/vpp-agent/pull/1862) 88 - Update Go version to 1.18 [#1894](https://github.com/ligato/vpp-agent/pull/1894) 89 - Update GoVPP to v0.7.0 [#1899](https://github.com/ligato/vpp-agent/pull/1899) 90 91 <a name="v3.4.0"></a> 92 # [3.4.0](https://github.com/ligato/vpp-agent/compare/v3.3.0...3.4.0) (2022-06-XX) 93 94 ### COMPATIBILITY 95 - VPP 22.02 (default) 96 - VPP 21.06 97 - VPP 21.01 98 - ~~VPP 20.09~~ 99 - ~~VPP 20.05~~ 100 101 ### Bug Fixes 102 - fix: Fix generating jsonschema [#1836](https://github.com/ligato/vpp-agent/pull/1836) 103 - fix: Fix `agentctl report` command failing in StoneWork [#1857](https://github.com/ligato/vpp-agent/pull/1857) 104 105 ### Features 106 - feat: Add support for VPP 22.02 [#1842](https://github.com/ligato/vpp-agent/pull/1842) 107 108 ### Improvements 109 - Upgrade dependencies with security issues [#1849](https://github.com/ligato/vpp-agent/pull/1849) 110 - fix: remove unnecessary print statement [#1852](https://github.com/ligato/vpp-agent/pull/1852) 111 ### Docker Images 112 - Update base image to ubuntu:20.04 [#1839](https://github.com/ligato/vpp-agent/pull/1839) 113 114 ### Documentation 115 - docs: Fix documentation comment formatting [#1838](https://github.com/ligato/vpp-agent/pull/1838) 116 117 <a name="v3.3.0"></a> 118 # [3.3.0](https://github.com/ligato/vpp-agent/compare/v3.2.0...v3.3.0) (2022-01-XX) 119 120 ### COMPATIBILITY 121 - VPP 21.06 (default) 122 - VPP 21.01 123 - VPP 20.09 124 - VPP 20.05 125 - ~~VPP 20.01 and older~~ (no longer supported) 126 127 ### Bug Fixes 128 - DHCP proxy key should include the Rx-VRF ID [#1774](https://github.com/ligato/vpp-agent/pull/1774) 129 - Fix metadata Update for Linux interfaces [#1777](https://github.com/ligato/vpp-agent/pull/1777) 130 - Fix delete by resync failure of init file data by using agentctl [#1782](https://github.com/ligato/vpp-agent/pull/1782) 131 - Report VPP not responding state as unhealthy status [#1783](https://github.com/ligato/vpp-agent/pull/1783) 132 - Various JSON schema REST API export fix and enhancements [#1788](https://github.com/ligato/vpp-agent/pull/1788) 133 - Do not release mutex for printing log message [#1790](https://github.com/ligato/vpp-agent/pull/1790) 134 - bugs VPP-1968 and VPP-1970 were fixed in VPP 21.01 [#1791](https://github.com/ligato/vpp-agent/pull/1791) 135 - VPP interface requires IP address with network prefix [#1792](https://github.com/ligato/vpp-agent/pull/1792) 136 - Fix VPP config for VPP 20.09 [#1799](https://github.com/ligato/vpp-agent/pull/1799) 137 - Add mutex to configurator dump [#1804](https://github.com/ligato/vpp-agent/pull/1804) 138 - default linux vrf device mtu for latest linux kernels [#1824](https://github.com/ligato/vpp-agent/pull/1824) 139 - linux route metric [#1826](https://github.com/ligato/vpp-agent/pull/1826) 140 - make route scope relevant for IPv4 only [#1829](https://github.com/ligato/vpp-agent/pull/1829) 141 - route and netalloc plugin integration [#1832](https://github.com/ligato/vpp-agent/pull/1832) 142 143 ### Features 144 - Add support for VPP interface with RDMA driver [#1761](https://github.com/ligato/vpp-agent/pull/1761) 145 - Add reporting capabilities to agentctl [#1762](https://github.com/ligato/vpp-agent/pull/1762) 146 - Agentctl support for yaml configuration of 3rd party configuration models [#1754](https://github.com/ligato/vpp-agent/pull/1754) 147 - Configurator Notify improvements [#1760](https://github.com/ligato/vpp-agent/pull/1760) 148 - Proxied models (remotely learned models used in DefaultRegistry) [#1764](https://github.com/ligato/vpp-agent/pull/1764) 149 - Add support for dummy linux interface and existing IPs [#1765](https://github.com/ligato/vpp-agent/pull/1765) 150 - Add support for existing Linux VRFs [#1768](https://github.com/ligato/vpp-agent/pull/1768) 151 - Add possibility to setup NB configuration from file at VPP-Agent start [#1769](https://github.com/ligato/vpp-agent/pull/1769) 152 - Allow multiple grpc-based data sources [#1776](https://github.com/ligato/vpp-agent/pull/1776) 153 - Support for cache DNS server in VPP + e2e test refactoring [#1779](https://github.com/ligato/vpp-agent/pull/1779) 154 - Add support for VPP 21.01 [#1785](https://github.com/ligato/vpp-agent/pull/1785) 155 - Added REST API for retrieving JSON schema for VPP-Agent configuration [#1784](https://github.com/ligato/vpp-agent/pull/1784) 156 - added REST API for validating yaml VPP-Agent configuration using validate methods on registered descriptors [#1786](https://github.com/ligato/vpp-agent/pull/1786) 157 - added REST API for getting and setting NB VPP-Agent configuration [#1787](https://github.com/ligato/vpp-agent/pull/1787) 158 - Add support for VPP 21.06 [#1808](https://github.com/ligato/vpp-agent/pull/1808) 159 - remove support for VPP 20.01 [#1812](https://github.com/ligato/vpp-agent/pull/1812) 160 - Migrate fully to protov2 [#1833](https://github.com/ligato/vpp-agent/pull/1833) 161 162 ### Improvements 163 - Run VPP+VPPAgent in a container for e2e tests (support for multi-VPP tests) [#1770](https://github.com/ligato/vpp-agent/pull/1770) 164 165 ### Other 166 - Add test workflow for integration/e2e [#1816](https://github.com/ligato/vpp-agent/pull/1816) 167 168 <a name="v3.2.0"></a> 169 # [3.2.0](https://github.com/ligato/vpp-agent/compare/v3.1.0...v3.2.0) (2020-11-04) 170 171 ### COMPATIBILITY 172 - VPP 20.09 (compatible) 173 - VPP 20.05 (default) 174 - VPP 20.01 (backwards compatible) 175 - VPP 19.08 (backwards compatible) 176 - ~~VPP 19.04~~ (no longer supported) 177 178 ### Bug Fixes 179 - Fixes and improvements for agentctl and models [#1643](https://github.com/ligato/vpp-agent/pull/1643) 180 - Fix creation of multiple ipip tunnels [#1650](https://github.com/ligato/vpp-agent/pull/1650) 181 - Fix IPSec tun protect + add IPSec e2e test [#1654](https://github.com/ligato/vpp-agent/pull/1654) 182 - Fix bridge domain dump for VPP 20.05 [#1663](https://github.com/ligato/vpp-agent/pull/1663) 183 - Fix IPSec SA add/del in VPP 20.05 [#1664](https://github.com/ligato/vpp-agent/pull/1664) 184 - Update expected output of agentctl status command [#1673](https://github.com/ligato/vpp-agent/pull/1673) 185 - vpp/ifplugin: Recognize interface name prefix "tun" as TAP [#1674](https://github.com/ligato/vpp-agent/pull/1674) 186 - Fix IPv4 link-local IP address handling [#1715](https://github.com/ligato/vpp-agent/pull/1715) 187 - maps caching prometheus gauges weren't really used [#1741](https://github.com/ligato/vpp-agent/pull/1741) 188 - Permit agent to run even when VPP stats are unavailable [#1712](https://github.com/ligato/vpp-agent/pull/1712) 189 - Fix grpc context timeout for agentctl import command [#1718](https://github.com/ligato/vpp-agent/pull/1718) 190 - Changed nat44 pool key to prevent possible key collisions [#1725](https://github.com/ligato/vpp-agent/pull/1725) 191 - Remove forced delay for linux interface notifications [#1742](https://github.com/ligato/vpp-agent/pull/1742) 192 193 ### Features 194 - agentctl: Add config get/update commands [#1709](https://github.com/ligato/vpp-agent/pull/1709) 195 - agentctl: Support specific history seq num and improve layout [#1717](https://github.com/ligato/vpp-agent/pull/1717) 196 - agentctl: Add config.resync subcommand (with resync) [#1642](https://github.com/ligato/vpp-agent/pull/1642) 197 - IP Flow Information eXport (IPFIX) plugin [#1649](https://github.com/ligato/vpp-agent/pull/1649) 198 - Add IPIP & IPSec point-to-multipoint support [#1669](https://github.com/ligato/vpp-agent/pull/1669) 199 - Wireguard plugin support [#1731](https://github.com/ligato/vpp-agent/pull/1731) 200 - Add tunnel mode support for VPP TAP interfaces [#1671](https://github.com/ligato/vpp-agent/pull/1671) 201 - New REST endpoint for retrieving version of Agent [#1670](https://github.com/ligato/vpp-agent/pull/1670) 202 - Add support for IPv6 ND address autoconfig [#1676](https://github.com/ligato/vpp-agent/pull/1676) 203 - Add VRF field to proxy ARP range [#1672](https://github.com/ligato/vpp-agent/pull/1672) 204 - Switch to new proto v2 (google.golang.org/protobuf) [#1691](https://github.com/ligato/vpp-agent/pull/1691) 205 - ipsec: allow configuring salt for encryption algorithm [#1698](https://github.com/ligato/vpp-agent/pull/1698) 206 - gtpu: Add RemoteTeid to GTPU interface [#1719](https://github.com/ligato/vpp-agent/pull/1719) 207 - Added support for NAT44 static mapping twice-NAT pool IP address reference [#1728](https://github.com/ligato/vpp-agent/pull/1728) 208 - add IP protocol number to ACL model [#1726](https://github.com/ligato/vpp-agent/pull/1726) 209 - gtpu: Add support for arbitrary DecapNextNode [#1721](https://github.com/ligato/vpp-agent/pull/1721) 210 - configurator: Add support for waiting until config update is done [#1734](https://github.com/ligato/vpp-agent/pull/1734) 211 - telemetry: Add reading VPP threads to the telemetry plugin [#1753](https://github.com/ligato/vpp-agent/pull/1753) 212 - linux: Add support for Linux VRFs [#1744](https://github.com/ligato/vpp-agent/pull/1744) 213 - VRRP support [#1744](https://github.com/ligato/vpp-agent/pull/1744) 214 215 ### Improvements 216 - perf: Performance enhancement for adding many rules to Linux IP… [#1644](https://github.com/ligato/vpp-agent/pull/1644) 217 - Improve testing process for e2e/integration tests [#1757](https://github.com/ligato/vpp-agent/pull/1757) 218 219 ### Documentation 220 - docs: Add example for developing agents with custom VPP plugins [#1665](https://github.com/ligato/vpp-agent/pull/1665) 221 222 ### Other 223 - Delete unused REST handler for VPP commands [#1677](https://github.com/ligato/vpp-agent/pull/1677) 224 - separate model for IPSec Security Policies [#1679](https://github.com/ligato/vpp-agent/pull/1679) 225 - do not mark host_if_name for AF_PACKET as deprecated [#1745](https://github.com/ligato/vpp-agent/pull/1745) 226 - Store interface internal name & dev type as metadata [#1706](https://github.com/ligato/vpp-agent/pull/1706) 227 - Check if HostIfName contains non-printable characters [#1662](https://github.com/ligato/vpp-agent/pull/1662) 228 - Fix error message for duplicate keys [#1659](https://github.com/ligato/vpp-agent/pull/1659) 229 230 231 <a name="v3.1.0"></a> 232 # [3.1.0](https://github.com/ligato/vpp-agent/compare/v3.0.0...v3.1.0) (2020-03-13) 233 234 ### BREAKING CHANGES 235 * Switch cn-infra dependency to using vanity import path [#1620](https://github.com/ligato/vpp-agent/pull/1620) 236 237 To migrate, replace all cn-infra import paths (`github.com/ligato/cn-infra` -> `go.ligato.io/cn-infra/v2`) 238 239 To update cn-infra dependency, run `go get -u go.ligato.io/cn-infra/v2@master`. 240 241 ### Bug Fixes 242 * Add missing models to ConfigData [#1625](https://github.com/ligato/vpp-agent/pull/1625) 243 * Fix watching VPP events [#1640](https://github.com/ligato/vpp-agent/pull/1640) 244 245 ### Features 246 * Allow customizing polling from stats poller [#1634](https://github.com/ligato/vpp-agent/pull/1634) 247 * IPIP tunnel + IPSec tunnel protection support [#1638](https://github.com/ligato/vpp-agent/pull/1638) 248 * Add prometheus metrics to govppmux [#1626](https://github.com/ligato/vpp-agent/pull/1626) 249 * Add prometheus metrics to kvscheduler [#1630](https://github.com/ligato/vpp-agent/pull/1630) 250 251 ### Improvements 252 * Improve performance testing suite [#1630](https://github.com/ligato/vpp-agent/pull/1630) 253 254 <a name="v3.0.1"></a> 255 # [3.0.1](https://github.com/ligato/vpp-agent/compare/v3.0.0...v3.0.1) (2020-02-20) 256 257 ### Bug Fixes 258 * Add missing models to ConfigData (https://github.com/ligato/vpp-agent/pull/1625) 259 260 <a name="v3.0.0"></a> 261 # [3.0.0](https://github.com/ligato/vpp-agent/compare/v2.5.0...master) (2020-02-10) 262 263 ### COMPATIBILITY 264 - **VPP 20.01** (default) 265 - **VPP 19.08.1** (recommended) 266 - **VPP 19.04.4** 267 268 ### KNOWN ISSUES 269 - VPP L3 plugin: `IPScanNeighbor` was disabled for VPP 20.01 due to VPP API changes (will be implemented later using new model) 270 - VPP NAT plugin: `VirtualReassembly` in `Nat44Global` was disabled for VPP 20.01 due to VPP API changes (will be implemented later in VPP L3 plugin using new model) 271 272 ### BREAKING CHANGES 273 - migrate from dep to Go modules for dependency management and remove vendor directory [#1599](https://github.com/ligato/vpp-agent/pull/1599) 274 - use vanity import path `go.ligato.io/vpp-agent/v3` in Go files [#1599](https://github.com/ligato/vpp-agent/pull/1599) 275 - move all _.proto_ files into `proto/ligato` directory and add check for breaking changes [#1599](https://github.com/ligato/vpp-agent/pull/1599) 276 277 ### Bug Fixes 278 - check for duplicate Linux interface IP address [#1586](https://github.com/ligato/vpp-agent/pull/1586) 279 280 ### New Features 281 - VPP interface plugin: Allow AF-PACKET to reference target Linux interface via logical name [#1616](https://github.com/ligato/vpp-agent/pull/1616) 282 - VPP L3 plugin: add support for L3 cross-connects [#1602](https://github.com/ligato/vpp-agent/pull/1602) 283 - VPP L3 plugin: IP flow hash settings support [#1610](https://github.com/ligato/vpp-agent/pull/1610) 284 - VPP NAT plugin: NAT interface and AddressPool API changes [#1595](https://github.com/ligato/vpp-agent/pull/1595) 285 - VPP plugins: support disabling VPP plugins [#1593](https://github.com/ligato/vpp-agent/pull/1593) 286 - VPP client: add support for govpp proxy [#1593](https://github.com/ligato/vpp-agent/pull/1593) 287 288 ### Improvements 289 - optimize getting model keys, with up to 20% faster transactions [#1615](https://github.com/ligato/vpp-agent/pull/1615) 290 - agentctl output formatting improvements (#1581, #1582, #1589) 291 - generated VPP binary API now imports common types from `*_types` packages 292 - development docker images now have smaller size (~400MB less) 293 - start using Github Workflows for CI/CD pipeline 294 - add gRPC reflection service 295 296 <a name="v2.5.1"></a> 297 # [2.5.1](https://github.com/ligato/vpp-agent/compare/v2.5.0...v2.5.1) (2019-12-06) 298 299 ### COMPATIBILITY 300 - **VPP 20.01-379** (`20.01-rc0~379-ga6b93eac5`) 301 - **VPP 20.01-324** (`20.01-rc0~324-g66a332cf1`) 302 - **VPP 19.08.1** (default) 303 - **VPP 19.04** (backward compatible) 304 - cn-infra v2.2 305 306 ### Bug Fixes 307 * Fix linux interface dump ([#1577](https://github.com/ligato/vpp-agent/pull/1577)) 308 * Fix VRF for SR policy ([#1578](https://github.com/ligato/vpp-agent/pull/1578)) 309 310 <a name="v2.5.0"></a> 311 # [2.5.0](https://github.com/ligato/vpp-agent/compare/v2.4.0...v2.5.0) (2019-11-29) 312 313 ### Compatibility 314 - **VPP 20.01-379** (`20.01-rc0~379-ga6b93eac5`) 315 - **VPP 20.01-324** (`20.01-rc0~324-g66a332cf1`) 316 - **VPP 19.08.1** (default) 317 - **VPP 19.04** (backward compatible) 318 - cn-infra v2.2 319 320 ### New Features 321 * SRv6 global config (encap source address) 322 * Support for Linux configuration dumping 323 324 ### Bug Fixes 325 * Update GoVPP with fix for stats conversion panic 326 327 <a name="v2.4.0"></a> 328 # [2.4.0](https://github.com/ligato/vpp-agent/compare/v2.3.0...v2.4.0) (2019-10-21) 329 330 ### Compatibility 331 - **VPP 20.01-379** (`20.01-rc0~379-ga6b93eac5`) 332 - **VPP 20.01-324** (`20.01-rc0~324-g66a332cf1`) 333 - **VPP 19.08.1** (default) 334 - **VPP 19.04** (backward compatible) 335 - cn-infra v2.2 336 337 ### New Features 338 This release introduces compatibility with two different commits of the VPP 20.01. Previously compatible version was updated to commit `324-g66a332cf1`, and support for `379-ga6b93eac5` was added. Other previous versions remained. 339 * [Telemetry][vpp-telemetry] 340 - Added `StatsPoller` service periodically retrieving VPP stats. 341 342 <a name="v2.3.0"></a> 343 # [2.3.0](https://github.com/ligato/vpp-agent/compare/v2.2.0...v2.3.0) (2019-10-04) 344 345 ### Compatibility 346 - **VPP 20.01** (`20.01-rc0~161-ge5948fb49~b3570`) 347 - **VPP 19.08.1** (default) 348 - **VPP 19.04** (backward compatible) 349 - cn-infra v2.2 350 351 VPP support for version 19.08 was updated to 19.08.1. 352 Support for 19.01 was dropped in this release. 353 354 ### Bug Fixes 355 * Linux interfaces with 'EXISTING' type should be resynced properly. 356 * Resolved issue with SRv6 removal. 357 * AgentCTL dump command fixed. 358 * ACL ICMP rule is now properly configured and data can be obtained using the ACL dump. 359 * Missing dependency for SRv6 L2 steering fixed. 360 * Fixed issue with possible division by zero and missing interface MTU. 361 * Namespace plugin uses a Docker event listener instead of periodical polling. This should prevent cases where quickly started microservice container was not detected. 362 363 ### New Features 364 * [netalloc-plugin][netalloc-plugin] 365 - A new plugin called netalloc which allows disassociating topology from addressing in the network configuration. Interfaces, routes and other network objects' addresses can be symbolic references into the pool of allocated addresses known to netalloc plugin. See [model][netalloc-plugin-model] for more information. 366 * [if-plugin][vpp-interface-plugin] 367 - Added support for GRE tunnel interfaces. Choose the `GRE_TUNNEL` interface type with appropriate link data. 368 * [agentctl][agentctl] 369 - Many new features and enhancements added to the AgentCTL: 370 * version is defined as a parameter for root command instead of the separate command 371 * ETCD endpoints can be defined via the `ETCD_ENDPOINTS` environment variable 372 * sub-command `config` supports `get/put/del` commands 373 * `model` sub-commands improved 374 * added VPP command to manage VPP instance 375 Additionally, starting with this release the AgentCTL is a VPP-Agent main control tool and the vpp-agent-ctl was definitely removed. 376 377 ### Improvements 378 Many end-to-end tests introduced, gradually increasing VPP-Agent stability. 379 * [if-plugin][vpp-interface-plugin] 380 - IP addresses assigned by the DHCP are excluded from the interface address descriptor. 381 - VPP-Agent now processes status change notifications labeled by the VPP as UNKNOWN. 382 * [ns-plugin][linux-ns-plugin] 383 - Dockerclient microservice polling replaced with an event listener. 384 * [sr-plugin][sr-plugin] 385 - SRv6 dynamic proxy routing now can be connected to a non-zero VRF table. 386 387 <a name="v2.2.0"></a> 388 # [2.2.0](https://github.com/ligato/vpp-agent/compare/v2.2.0-beta...v2.2.0) (2019-08-26) 389 390 ### Compatibility 391 - **VPP 19.08** (rc1) 392 - **VPP 19.04** (default) 393 - **VPP 19.01** (backward compatible) 394 - cn-infra v2.2 395 396 ### Bug Fixes 397 - CN-infra version updated to 2.2 contains a supervisor fix which should prevent the issue where the supervisor logging occasionally caused the agent to crash during large outputs. 398 399 ### New Features 400 * [if-plugin][vpp-interface-plugin] 401 - Added option to configure SPAN records. Northbound data are formatted by the [SPAN model][span-model]. 402 403 ### Improvements 404 * [orchestrator][orchestrator-plugin] 405 - Clientv2 is now recognized as separate data source by the orchestrator plugin. This feature allows to use the localclient together with other data sources. 406 407 ### Documentation 408 - Updated documentation comments in the protobuf API. 409 410 <a name="v2.2.0-beta"></a> 411 # [2.2.0-beta](https://github.com/ligato/vpp-agent/compare/v2.1.1...v2.2.0-beta) (2019-08-09) 412 413 ### Compatibility 414 - **VPP 19.08** (rc1) 415 - **VPP 19.04** (default) 416 - **VPP 19.01** (backward compatible) 417 418 ### Bug Fixes 419 * Fixed SRv6 localsid delete case for non-zero VRF tables. 420 * Fixed interface IPv6 detection in the descriptor. 421 * Various bugs fixed in KV scheduler TXN post-processing. 422 * Interface plugin config names fixed, no stats publishers are now used by default. Instead, datasync is used (by default ETCD, Redis and Consul). 423 * Rx-placement and rx-mode is now correctly dependent on interface link state. 424 * Fixed crash for iptables rulechain with default microservice. 425 * Punt dump fixed in all supported VPP versions. 426 * Removal of registered punt sockets fixed after a resync. 427 * Punt socket paths should no longer be unintentionally recreated. 428 * IP redirect is now correctly dependent on RX interface. 429 * Fixed IPSec security association configuration for tunnel mode. 430 * Fixed URL for VPP metrics in telemetry plugin 431 * Routes are now properly dependent on VRF. 432 433 ### New Features 434 * Defined new environment variable `DISABLE_INTERFACE_STATS` to generally disable interface plugin stats. 435 * Defined new environment variable `RESYNC_TIMEOU` to override default resync timeout. 436 * Added [ETCD ansible python plugin][ansible] with example playbook. Consult [readme](ansible/README.md) for more information. 437 438 ### Improvements 439 * [govppmux-plugin][govppmux-plugin] 440 - GoVPPMux stats can be read with rest under path `/govppmux/stats`. 441 - Added disabling of interface stats via the environment variable `DISABLE_INTERFACE_STATS`. 442 - Added disabling of interface status publishing via environment variable `DISABLE_STATUS_PUBLISHING`. 443 * [kv-scheduler][kv-scheduler] 444 - Added some more performance improvements. 445 - The same key can be no more matched by multiple descriptors. 446 * [abf-plugin][vpp-abf-plugin] 447 - ABF plugin was added to config data model and is now initialized in configurator. 448 * [if-plugin][vpp-interface-plugin] 449 - Interface rx-placement and rx-mode was enhanced and now allows per-queue configuration. 450 - Added [examples](examples/kvscheduler/rxplacement) for rx-placement and rx-mode. 451 * [nat-plugin][vpp-nat-plugin] 452 - NAT example updated for VPP 19.04 453 * [l3-plugin][vpp-l3-plugin] 454 - Route keys were changed to prevent collisions with some types of configuration. Route with outgoing interface now contains the interface name in the key. 455 - Added support for DHCP proxy. A new descriptor allows calling CRUD operations to VPP DHCP proxy servers. 456 * [punt-plugin][vpp-punt-plugin] 457 - Added support for Punt exceptions. 458 - IP redirect dump was implemented for VPP 19.08. 459 * [Telemetry][vpp-telemetry] 460 - Interface metrics added to telemetry plugin. Note that the URL for prometheus export was changed to `/metrics/vpp`. 461 - Plugin configuration file now has an option to skip certain metrics. 462 * [rest-plugin][rest-plugin] 463 - Added support for IPSec plugin 464 - Added support for punt plugin 465 * [agentctl][agentctl] 466 - We continuously update the new CTL tool. Various bugs were fixed some new features added. 467 - Added new command `import` which can import configuration from file. 468 469 ### Docker Images 470 * The supervisor was replaced with VPP-Agent init plugin. 471 * Images now use pre-built VPP images from [ligato/vpp-base](https://github.com/ligato/vpp-base) 472 473 474 <a name="v2.1.1"></a> 475 # [2.1.1](https://github.com/ligato/vpp-agent/compare/v2.1.0...v2.1.1) (2019-04-05) 476 477 ### Compatibility 478 - **VPP 19.04** (`stable/1904`, recommended) 479 - **VPP 19.01** (backward compatible) 480 481 ### Bug Fixes 482 * Fixed IPv6 detection for Linux interfaces [#1355](https://github.com/ligato/vpp-agent/pull/1355). 483 * Fixed config file names for ifplugin in VPP & Linux [#1341](https://github.com/ligato/vpp-agent/pull/1341). 484 * Fixed setting status publishers from env var: `VPP_STATUS_PUBLISHERS`. 485 486 ### Improvements 487 * The start/stop timeouts for agent can be configured using env vars: `START_TIMEOUT=15s` and `STOP_TIMEOUT=5s`, with values parsed as duration. 488 * ABF was added to the `ConfigData` message for VPP [#1356](https://github.com/ligato/vpp-agent/pull/1356). 489 490 ### Docker Images 491 * Images now install all compiled .deb packages from VPP (including `vpp-plugin-dpdk`). 492 493 <a name="v2.1.0"></a> 494 # [2.1.0](https://github.com/ligato/vpp-agent/compare/v2.0.2...v2.1.0) (2019-05-09) 495 496 ### Compatibility 497 - **VPP 19.04** (`stable/1904`, recommended) 498 - **VPP 19.01** (backward compatible) 499 - cn-infra v2.1 500 - Go 1.11 501 502 The VPP 18.10 was deprecated and is no longer compatible. 503 504 ### BREAKING CHANGES 505 * All non-zero VRF tables now must be explicitly created, providing a VRF proto-modeled data to the VPP-Agent. Otherwise, some configuration items will not be created as before (for example interface IP addresses). 506 507 ### Bug Fixes 508 * VPP ARP `retrieve` now also returns IPv6 entries. 509 510 ### New Features 511 * [govppmux-plugin][govppmux-plugin] 512 - The GoVPPMux plugin configuration file contains a new option `ConnectViaShm`, which when set to `true` forces connecting to the VPP via shared memory prefix. This is an alternative to environment variable `GOVPPMUX_NOSOCK`. 513 * [configurator][configurator-plugin] 514 - The configurator plugin now collects statistics which are available via the `GetStats()` function or via REST on URL `/stats/configurator`. 515 * [kv-scheduler][kv-scheduler] 516 - Added transaction statistics. 517 * [abf-plugin][vpp-abf-plugin] 518 - Added new plugin ABF - ACL-based forwarding, providing an option to configure routing based on matching ACL rules. An ABF entry configures interfaces which will be attached, list of forwarding paths and associated access control list. 519 * [if-plugin][vpp-interface-plugin] 520 - Added support for Generic Segmentation Offload (GSO) for TAP interfaces. 521 * [l3-plugin][vpp-l3-plugin] 522 - A new model for VRF tables was introduced. Every VRF is defined by an index and an IP version, a new optional label was added. Configuration types using non-zero VRF now require it to be created, since the VRF is considered a dependency. VRFs with zero-index are present in the VPP by default and do not need to be configured (applies for both, IPv4 and IPv6). 523 * [agentctl][agentctl] 524 - This tool becomes obsolete and was completely replaced with a new implementation. Please note that the development of this tool is in the early stages, and functionality is quite limited now. New and improved functionality is planned for the next couple of releases since our goal is to have a single vpp-agent control utility. Because of this, we have also deprecated the vpp-agent-ctl tool which will be most likely removed in the next release. 525 526 ### Improvements 527 * [kv-scheduler][kv-scheduler] 528 - The KV Scheduler received another performance improvements. 529 * [if-plugin][vpp-interface-plugin] 530 - Attempt to configure a Bond interface with already existing ID returns a non-retriable error. 531 * [linux-if-plugin][linux-interface-plugin] 532 - Before adding an IPv6 address to the Linux interface, the plugins will use `sysctl` to ensure the IPv6 is enabled in the target OS. 533 534 ### Docker Images 535 - Supervisord is started as a process with PID 1 536 537 ### Documentation 538 - The ligato.io webpage is finally available, check out it [here][ligato.io]! We have also released a [new documentation site][ligato-docs] with a lot of new or updated articles, guides, tutorials and many more. Most of the README.md files scattered across the code were removed or updated and moved to the site. 539 540 <a name="v2.0.2"></a> 541 # [2.0.2](https://github.com/ligato/vpp-agent/compare/v2.0.1...v2.0.2) (2019-04-19) 542 543 ### Compatibility 544 - **VPP 19.01** (updated to `v19.01.1-14-g0f36ef60d`) 545 - **VPP 18.10** (backward compatible) 546 - cn-infra v2.0 547 - Go 1.11 548 549 This minor release brought compatibility with updated version of the VPP 19.01. 550 551 <a name="v2.0.1"></a> 552 # [2.0.1](https://github.com/ligato/vpp-agent/compare/v2.0.0...v2.0.1) (2019-04-05) 553 554 ### Compatibility 555 - **VPP 19.01** (compatible by default, recommended) 556 - **VPP 18.10** (backward compatible) 557 - cn-infra v2.0 558 - Go 1.11 559 560 ### Bug Fixes 561 * Fixed bug where Linux network namespace was not reverted in some cases. 562 * The VPP socketclient connection checks (and waits) for the socket file in the same manner as for the shared memory, giving 563 the GoVPPMux more time to connect in case the VPP startup is delayed. Also errors occurred during the shm/socket file watch 564 are now properly handled. 565 * Fixed wrong dependency for SRv6 end functions referencing VRF tables (DT6,DT4,T). 566 567 ### Improvements 568 * [GoVPPMux][govppmux-plugin] 569 - Added option to adjust the number of connection attempts and time delay between them. Seek `retry-connect-count` and 570 `retry-connect-timeout` fields in [govpp.conf][govppmux-conf]. Also keep in mind the total time in which 571 plugins can be initialized when using these fields. 572 * [linux-if-plugin][linux-interface-plugin] 573 - Default loopback MTU was set to 65536. 574 * [ns-plugin][linux-ns-plugin] 575 - Plugin descriptor returns `ErrEscapedNetNs` if Linux namespace was changed but not reverted back before returned 576 to scheduler. 577 578 ### Docker Images 579 * Supervisord process is now started with PID=1 580 581 <a name="v2.0.0"></a> 582 # [2.0.0](https://github.com/ligato/vpp-agent/compare/v1.8...v2.0.0) (2019-04-02) 583 584 ### Compatibility 585 - **VPP 19.01** (compatible by default, recommended) 586 - **VPP 18.10** (backward compatible) 587 - cn-infra v2.0 588 - Go 1.11 589 590 ### BREAKING CHANGES 591 * All northbound models were re-written and simplified and most of them are no longer compatible with model data from v1. 592 * The `v1` label from all vpp-agent keys was updated to `v2`. 593 * Plugins using some kind of dependency on other VPP/Linux plugin (for example required interface) should be updated and handled by the KVScheduler. 594 595 ### Bug Fixes 596 * We expect a lot of known and unknown race-condition and plugin dependency related issues to be solved by the KV Scheduler. 597 * MTU is omitted for the sub-interface type. 598 * If linux plugin attempts to switch to non-existing namespace, it prints appropriate log message as warning, and continues with execution instead of interrupt it with error. 599 * Punt socket path string is cleaned from unwanted characters. 600 * Added VPE compatibility check for L3 plugin vppcalls. 601 * The MAC address assigned to an af-packet interface is used from the host only if not provided from the configuration. 602 * Fixed bug causing the agent to crash in an attempt to 'update' rx-placement with empty value. 603 * Switch interface from zero to non-zero VRF causes VPP issues - this limitation was now restricted only to unnumbered interfaces. 604 * IPSec tunnel dump now also retrieves integ/crypto keys. 605 * Errored operation should no more publish to the index mapping. 606 * Some obsolete Retval checks were removed. 607 * Error caused by missing DPDK interface is no longer retryable. 608 * Linux interface IP address without mask is now handled properly. 609 * Fixed bug causing agent to crash when some VPP plugin we support was not loaded. 610 * Fixed metrics retrieval in telemetry plugin. 611 612 ### Known Issues 613 * The bidirectional forwarding detection (aka BFD plugin) was removed. We plan to add it in one of the future releases. 614 * The L4 plugin (application namespaces) was removed. 615 * We experienced problems with the VPP with some messages while using socket client connection. The issue kind was that the reply message 616 was not returned (GoVPP could not decode it). If you encounter similar error, please try to setup VPP connection using shared memory (see below). 617 618 ### Features 619 * Performance 620 - The vpp-agent now supports connection via socket client (in addition to shared memory). The socket client connection provides higher performance and 621 message throughput, thus it was set as default connection type. The shared memory is still available via the environment variable `GOVPPMUX_NOSOCK`. 622 - Many other changes, benchmarking and profiling was done to improve vpp-agent experience. 623 * Multi-VPP support 624 - The VPP-agent can connect to multiple versions of the VPP with the same binary file without any additional building or code changes. See 625 compatibility part to know which versions are supported. The list will be extended in the future. 626 * Models 627 - All vpp-agent models were reviewed and cleaned up. Various changes were done, like simple renaming (in order to have more meaningful fields, avoid duplicated names in types, etc.), improved model convenience (interface type-specific fields are now defined as `oneof`, preventing to set multiple or incorrect data) and other. All models were also moved to the common [api][models] folder. 628 * [KVScheduler][kv-scheduler] 629 - Added new component called KVScheduler, as a reaction to various flaws and issues with race conditions between Vpp/Linux plugins, poor readability and poorly readable logging. Also the system of notifications between plugins was unreliable and hard to debug or even understand. Based on this experience, a new framework offers improved generic mechanisms to handle dependencies between configuration items and creates clean and readable transaction-based logging. Since this component significantly changed the way how plugins are defined, we recommend to learn more about it on the [VPP-Agent wiki page][wiki]. 630 * [orchestrator][orchestrator-plugin] 631 - The orchestrator is a new component which long-term added value will be a support for multiple northbound data sources (KVDB, GRPC, ...). The current implementation handles combination of GRPC + KVDB, which includes data changes and resync. In the future, any combination of sources will be supported. 632 * [GoVPPMux][govppmux-plugin] 633 - Added `Ping()` method to the VPE vppcalls usable to test the VPP connection. 634 * [if-plugin][vpp-interface-plugin] 635 - UDP encapsulation can be configured to an IPSec tunnel interface 636 - Support for new Bond-type interfaces. 637 - Support for L2 tag rewrite (currently present in the interface plugin because of the inconsistent VPP API) 638 * [nat-plugin][vpp-nat-plugin] 639 - Added support for session affinity in NAT44 static mapping with load balancer. 640 * [sr-plugin][sr-plugin] 641 - Support for Dynamic segment routing proxy with L2 segment routing unaware services. 642 - Added support for SRv6 end function End.DT4 and End.DT6. 643 * [linux-if-plugin][linux-interface-plugin] 644 - Added support for new Linux interface type - loopback. 645 - Attempt to assign already existing IP address to the interface does not cause an error. 646 * [linux-iptables][linux-iptables-plugin] 647 - Added new linux IP tables plugin able to configure IP tables chain in the specified table, manage chain rules and set default chain policy. 648 649 ### Improvements 650 * [KVScheduler][kv-scheduler] 651 - Performance improvements related to memory management. 652 * [GoVPPMux][govppmux-plugin] 653 - Need for config file was removed, GoVPP is now set with default values if the startup config is not provided. 654 - `DefaultReplyTimeout` is now configured globally, instead of set for every request separately. 655 - Tolerated default health check timeout is now set to 250ms (up from 100ms). The old value had not provide enough time in some cases. 656 * [acl-plugin][vpp-acl-plugin] 657 - Model moved to the [api/models][models] 658 * [if-plugin][vpp-interface-plugin] 659 - Model reviewed, updated and moved to the [api/models][models]. 660 - Interface plugin now handles IPSec tunnel interfaces (previously done in IPSec plugin). 661 - NAT related configuration was moved to its own plugin. 662 - New interface stats (added in 1.8.1) use new GoVPP API, and publishing frequency was significantly decreased to handle creation of multiple 663 interfaces in short period of time. 664 * [IPSec-plugin][vpp-ipsec-plugin] 665 - Model moved to the [api/models][models] 666 - The IPSec interface is no longer processed by the IPSec plugin (moved to interface plugin). 667 - The ipsec link in interface model now uses the enum definitions from IPSec model. Also some missing crypto algorithms were added. 668 * [l2-plugin][vpp-l2-plugin] 669 - Model moved to the [api/models][models] and split to three separate models for bridge domains, FIBs and cross connects. 670 * [l3-plugin][vpp-l3-plugin] 671 - Model moved to the [api/models][models] and split to three separate models for ARPs, Proxy ARPs including IP neighbor and Routes. 672 * [nat-plugin][vpp-nat-plugin] 673 - Defined new plugin to handle NAT-related configuration and its own [model][nat-proto] (before a part of interface plugin). 674 * [punt-plugin][vpp-punt-plugin] 675 - Model moved to the [api/models][models]. 676 - Added retrieve support for punt socket. The current implementation is not final - plugin uses local cache (it will be enhanced when the appropriate VPP binary API call will be added). 677 * [stn-plugin][vpp-stn-plugin] 678 - Model moved to the [api/models][models]. 679 * [linux-if-plugin][linux-interface-plugin] 680 - Model reviewed, updated and moved to the [api/models][models]. 681 * [linux-l3-plugin][linux-l3-plugin] 682 - Model moved to the [api/models][models] and split to separate models for ARPs and Routes. 683 - Linux routes and ARPs have a new dependency - the target interface is required to contain an IP address. 684 * [ns-plugin][ns-plugin] 685 - New auxiliary plugin to handle linux namespaces and microservices (evolved from ns-handler). Also defines [model][ns-proto] for generic linux namespace definition. 686 687 ### Docker Images 688 * Configuration file for GoVPP was removed, forcing to use default values (which are the same as they were in the file). 689 * Fixes for installing ARM64 debugger. 690 * Kafka is no longer required in order to run vpp-agent from the image. 691 692 ### Documentation 693 * Added documentation for the punt plugin, describing main features and usage of the punt plugin. 694 * Added documentation for the [IPSec plugin][vpp-ipsec-plugin], describing main and usage of the IPSec plugin. 695 * Added documentation for the [interface plugin][vpp-interface-plugin]. The document is only available on [wiki page][wiki]. 696 * Description improved in various proto files. 697 * Added a lot of new documentation for the KVScheduler (examples, troubleshooting, debugging guides, diagrams, ...) 698 * Added tutorial for KV Scheduler. 699 * Added many new documentation articles to the [wiki page][wiki]. However, most of is there only temporary 700 since we are preparing new ligato.io website with all the documentation and other information about the Ligato project. Also majority of readme 701 files from the vpp-agent repository will be removed in the future. 702 703 <a name="v1.8.1"></a> 704 # [1.8.1](https://github.com/ligato/vpp-agent/compare/v1.8..v1.8.1) (2019-03-04) 705 706 Motive for this minor release was updated VPP with several fixed bugs from the previous version. The VPP version also introduced new interface statistics mechanism, thus the stats processing was updated in the interface plugin. 707 708 ### Compatibility 709 - v19.01-16~gd30202244 710 - cn-infra v1.7 711 - GO 1.11 712 713 ### Bug Fixes 714 - VPP bug: fixed crash when attempting to run in kubernetes pod 715 - VPP bug: fixed crash in barrier sync when vlib_worker_threads is zero 716 717 ### Features 718 - [vpp-ifplugin][vpp-interface-plugin] 719 * Support for new VPP stats (the support for old ones were deprecated by the VPP, thus removed from the vpp-agent as well). 720 721 722 <a name="v1.8.0"></a> 723 # [1.8.0](https://github.com/ligato/vpp-agent/compare/v1.7...v1.8) (2018-12-12) 724 725 ### Compatibility 726 - VPP v19.01-rc0~394-g6b4a32de 727 - cn-infra v1.7 728 - Go 1.11 729 730 ### Bug Fixes 731 * Pre-existing VETH-type interfaces are now read from the default OS namespace during resync if the Linux interfaces were dumped. 732 * The Linux interface dump method does not return an error if some interface namespace becomes suddenly unavailable at the read-time. Instead, this case is logged and all the other interfaces are returned as usual. 733 * The Linux localclient's delete case for Linux interfaces now works properly. 734 * The Linux interface dump now uses OS link name (instead of vpp-agent specific name) to read the interface attributes. This sometimes caused errors where an incorrect or even none interface was read. 735 * Fixed bug where the unsuccessful namespace switch left the namespace file opened. 736 * Fixed crash if the Linux plugin was disabled. 737 * Fixed occasional crash in vpp-agent interface notifications. 738 * Corrected interface counters for TX packets. 739 * Access list with created TCP/UDP/ICMP rule, which remained as empty struct no longer causes vpp-agent to crash 740 741 ### Features 742 - [vpp-ifplugin][vpp-interface-plugin] 743 * Rx-mode and Rx-placement now support dump via the respective binary API call 744 - vpp-rpc-plugin 745 * GRPC now supports also IPSec configuration. 746 * All currently supported configuration items can be also dumped/read via GRPC (similar to rest) 747 * GRPC now allows to automatically persist configuration to the data store. The desired DB has to be defined in the new GRPC config file (see [readme][readme] for additional information). 748 - [vpp-punt][punt-model] 749 * Added simple new punt plugin. The plugin allows to register/unregister punt to host via Unix domain socket. The new [model][punt-model] was added for this configuration type. Since the VPP API is incomplete, the configuration does not support dump. 750 751 ### Improvements 752 - [vpp-ifplugin][vpp-interface-plugin] 753 * The VxLAN interface now support IPv4/IPv6 virtual routing and forwarding (VRF tables). 754 * Support for new interface type: VmxNet3. The VmxNet3 virtual network adapter has no physical counterpart since it is optimized for performance in a virtual machine. Because built-in drivers for this card are not provided by default in the OS, the user must install VMware Tools. The interface model was updated for the VmxNet3 specific configuration. 755 - [ipsec-plugin][vpp-ipsec-plugin] 756 * IPSec resync processing for security policy databases (SPD) and security associations (SA) was improved. Data are properly read from northbound and southbound, compared and partially configured/removed, instead of complete cleanup and re-configuration. This does not appeal to IPSec tunnel interfaces. 757 * IPSec tunnel can be now set as an unnumbered interface. 758 - [rest-plugin][rest-plugin] 759 * In case of error, the output returns correct error code with cause (parsed from JSON) instead of an empty body 760 761 762 <a name="v1.7.0"></a> 763 # [1.7.0](https://github.com/ligato/vpp-agent/compare/v1.6...v1.7) (2018-10-02) 764 765 ### Compatibility 766 - VPP 18.10-rc0~505-ge23edac 767 - cn-infra v1.6 768 - Go 1.11 769 770 ### Bug Fixes 771 * Corrected several cases where various errors were silently ignored 772 * GRPC registration is now done in Init() phase, ensuring that it finishes before GRPC server is started 773 * Removed occasional cases where Linux tap interface was not configured correctly 774 * Fixed FIB configuration failures caused by wrong updating of the metadata after several modifications 775 * No additional characters are added to NAT tag and can be now configured with the full length without index out of range errors 776 * Linux interface resync registers all VETH-type interfaces, despite the peer is not known 777 * Status publishing to ETCD/Consul now should work properly 778 * Fixed occasional failure caused by concurrent map access inside Linux plugin interface configurator 779 * VPP route dump now correctly recognizes route type 780 781 ### Features 782 - [vpp-ifplugin][vpp-interface-plugin] 783 * It is now possible to dump unnumbered interface data 784 * Rx-placement now uses specific binary API to configure instead of generic CLI API 785 - [vpp-l2plugin][vpp-l2-plugin] 786 * Bridge domain ARP termination table can now be dumped 787 - [linux-ifplugin][linux-interface-plugin] 788 * Linux interface watcher was reintroduced. 789 * Linux interfaces can be now dumped. 790 - [linux-l3plugin][linux-l3-plugin] 791 * Linux ARP entries and routes can be dumped. 792 793 ### Improvements 794 - [vpp-plugins][vpp-plugins] 795 * Improved error propagation in all the VPP plugins. Majority of errors now print the stack trace to the log output allowing better error tracing and debugging. 796 * Stopwatch was removed from all vppcalls 797 - [linux-plugins][linux-plugins] 798 * Improved error propagation in all Linux plugins (same way as for VPP) 799 * Stopwatch was removed from all linuxcalls 800 - [govpp-plugn][govppmux-plugin] 801 * Tracer (introduced in cn-infra 1.6) added to VPP message processing, replacing stopwatch. The measurement should be more precise and logged for all binary API calls. Also the rest plugin now allows showing traced entries. 802 803 ### Docker Images 804 * The image can now be built on ARM64 platform 805 806 807 <a name="v1.6.0"></a> 808 # [1.6.0](https://github.com/ligato/vpp-agent/compare/v1.5.2...v1.6) (2018-08-24) 809 810 ### Compatibility 811 - VPP 18.10-rc0~169-gb11f903a 812 - cn-infra v1.5 813 814 ### BREAKING CHANGES 815 - Flavors were replaced with new way of managing plugins. 816 - REST interface URLs were changed, see [readme][readme] for complete list. 817 818 ### Bug Fixes 819 * if VPP routes are dumped, all paths are returned 820 * NAT load-balanced static mappings should be resynced correctly 821 * telemetry plugin now correctly parses parentheses for `show node counters` 822 * telemetry plugin will not hide an error caused by value loading if the config file is not present 823 * Linux plugin namespace handler now correctly handles namespace switching for interfaces with IPv6 addresses. Default IPv6 address (link local) will not be moved to the new namespace if there are no more IPv6 addresses configured within the interface. This should prevent failures in some cases where IPv6 is not enabled in the destination namespace. 824 * VxLAN with non-zero VRF can be successfully removed 825 * Lint is now working again 826 * VPP route resync works correctly if next hop IP address is not defined 827 828 ### Features 829 * Deprecating flavors 830 - CN-infra 1.5 brought new replacement for flavors and it would be a shame not to implement it in the vpp-agent. The old flavors package was removed and replaced with this new concept, visible in app package vpp-agent. 831 - [rest plugin][rest-plugin] 832 * All VPP configuration types are now supported to be dumped using REST. The output consists of two parts; data formatted as NB proto model, and metadata with VPP specific configuration (interface indexes, different counters, etc.). 833 * REST prefix was changed. The new URL now contains API version and purpose (dump, put). The list of all URLs can be found in the [readme][readme] 834 - [ifplugin][vpp-interface-plugin] 835 * Added support for NAT virtual reassembly for both, IPv4 and IPv6. See change in 836 [nat proto file][nat-proto] 837 - [l3plugin][vpp-l3-plugin] 838 * Vpp-agent now knows about DROP-type routes. They can be configured and also dumped. VPP default routes, which are DROP-type is recognized and registered. Currently, resync does not remove or correlate such a route type automatically, so no default routes are unintentionally removed. 839 * New configurator for L3 IP scan neighbor was added, allowing to set/unset IP scan neigh parameters to the VPP. 840 841 ### Improvements 842 - [vpp plugins][vpp-plugins] 843 * all vppcalls were unified under API defined for every configuration type (e.g. interfaces, l2, l3, ...). Configurators now use special handler object to access vppcalls. This should prevent duplicates and make vppcalls cleaner and more understandable. 844 - [ifplugin][vpp-interface-plugin] 845 * VPP interface DHCP configuration can now be dumped and added to resync processing 846 * Interfaces and also L3 routes can be configured for non-zero VRF table if IPv6 is used. 847 - [examples][examples] 848 * All examples were reworked to use new flavors concept. The purpose was not changed. 849 850 ### Docker Images 851 - using Ubuntu 18.04 as the base image 852 853 854 <a name="v1.5.2"></a> 855 ## [1.5.2](https://github.com/ligato/vpp-agent/compare/v1.5.1...v1.5.2) (2018-07-23) 856 857 ### Compatibility 858 - VPP 18.07-rc0~358-ga5ee900 859 - cn-infra v1.4.1 (minor version fixes bug in Consul) 860 861 ### Bug Fixes 862 - [Telemetry][vpp-telemetry] 863 * Fixed bug where lack of config file could cause continuous polling. The interval now also cannot be changed to a value less than 5 seconds. 864 * Telemetry plugin is now closed properly 865 866 867 <a name="v1.5.1"></a> 868 ## 1.5.1 (2018-07-20) 869 870 ### Compatibility 871 - VPP 18.07-rc0~358-ga5ee900 872 - cn-infra v1.4 873 874 ### Features 875 - [Telemetry][vpp-telemetry] 876 * Default polling interval was raised to 30s. 877 * Added option to use telemetry config file to change polling interval, or turn the polling off, disabling the telemetry plugin. The change was added due to several reports where often polling is suspicious of interrupting VPP worker threads and causing packet drops and/or other negative impacts. More information how to use the config file can be found in the [readme][readme]. 878 879 880 <a name="v1.5.0"></a> 881 # [1.5.0](https://github.com/ligato/vpp-agent/compare/v1.4.1...v1.5) (2018-07-16) 882 883 ### Compatibility 884 - VPP 18.07-rc0~358-ga5ee900 885 - cn-infra v1.4 886 887 ### BREAKING CHANGES 888 - The package `etcdv3` was renamed to `etcd`, along with its flag and configuration file. 889 - The package `defaultplugins` was renamed to `vpp` to make the purpose of the package clear 890 891 ### Bug Fixes 892 - Fixed a few issues with parsing VPP metrics from CLI for [Telemetry][vpp-telemetry]. 893 - Fixed bug in GoVPP occurring after some request timed out, causing the channel to receive replies from the previous request and always returning an error. 894 - Fixed issue which prevented setting interface to non-existing VRF. 895 - Fixed bug where removal of an af-packet interface caused attached Veth to go DOWN. 896 - Fixed NAT44 address pool resolution which was not correct in some cases. 897 - Fixed bug with adding SR policies causing incomplete configuration. 898 899 ### Features 900 - [LinuxPlugin][linux-interface-plugin] 901 * Is now optional and can be disabled via configuration file. 902 - [ifplugin][vpp-interface-plugin] 903 * Added support for VxLAN multicast 904 * Rx-placement can be configured on VPP interfaces 905 - [IPsec][vpp-ipsec-plugin] 906 * IPsec UDP encapsulation can now be set (NAT traversal) 907 908 ### Docker Images 909 - Replace `START_AGENT` with `OMIT_AGENT` to match `RETAIN_SUPERVISOR` and keep both unset by default. 910 - Refactored and cleaned up execute scripts and remove unused scripts. 911 - Fixed some issues with `RETAIN_SUPERVISOR` option. 912 - Location of supervisord pid file is now explicitly set to 913 `/run/supervisord.pid` in *supervisord.conf* file. 914 - The vpp-agent is now started with single flag `--config-dir=/opt/vpp-agent/dev`, and will automatically load all configuration from that directory. 915 916 917 <a name="v1.4.1"></a> 918 ## [1.4.1](https://github.com/ligato/vpp-agent/compare/v1.4.0...v1.4.1) (2018-06-11) 919 920 A minor release using newer VPP v18.04 version. 921 922 ### Compatibility 923 - VPP v18.04 (2302d0d) 924 - cn-infra v1.3 925 926 ### Bug Fixes 927 - VPP submodule was removed from the project. It should prevent various problems with dependency resolution. 928 - Fixed known bug present in the previous version of the VPP, issued as [VPP-1280][vpp-issue-1280]. Current version contains appropriate fix. 929 930 931 <a name="v1.4.0"></a> 932 # [1.4.0](https://github.com/ligato/vpp-agent/compare/v1.3...v1.4.0) (2018-05-24) 933 934 ### Compatibility 935 - VPP v18.04 (ac2b736) 936 - cn-infra v1.3 937 938 ### Bug Fixes 939 * Fixed case where the creation of the Linux route with unreachable gateway threw an error. The route is now appropriately cached and created when possible. 940 * Fixed issue with GoVPP channels returning errors after a timeout. 941 * Fixed various issues related to caching and resync in L2 cross-connect 942 * Split horizon group is now correctly assigned if an interface is created after bridge domain 943 * Fixed issue where the creation of FIB while the interface was not a part of the bridge domain returned an error. 944 945 ### Known issues 946 * VPP crash may occur if there is interface with non-default VRF (>0). There is an [VPP-1280][vpp-issue-1280] issue created with more details 947 948 ### Features 949 - [Consul][consul] 950 * Consul is now supported as a key-value store alternative to ETCD. More information in the [readme][readme]. 951 - [Telemetry][vpp-telemetry] 952 * New plugin for collecting telemetry data about VPP metrics and serving them via HTTP server for Prometheus. More information in the [readme][readme]. 953 - [Ipsecplugin][vpp-ipsec-plugin] 954 * Now supports tunnel interface for encrypting all the data passing through that interface. 955 - GRPC 956 * Vpp-agent itself can act as a GRPC server (no need for external executable) 957 * All configuration types are supported (incl. Linux interfaces, routes and ARP) 958 * Client can read VPP notifications via vpp-agent. 959 - [SR plugin][sr-plugin] 960 * New plugin with support for Segment Routing. 961 More information in the [readme][readme]. 962 963 ### Improvements 964 - [ifplugin][vpp-interface-plugin] 965 * Added support for self-twice-NAT 966 - __vpp-agent-grpc__ executable merged with [vpp-agent][vpp-agent] command. 967 - [govppmux][govppmux-plugin] 968 * `configure reply timeout` can be configured. 969 * Support for VPP started with custom shared memory prefix. SHM may be configured via the GoVPP plugin config file. More info in the [readme][readme] 970 * Overall redundancy cleanup and corrected naming for all proto models. 971 * Added more unit tests for increased coverage and code stability. 972 973 ### Documentation 974 - [localclient_linux][examples-vpp-local] now contains two examples, the old one demonstrating basic plugin functionality was moved to plugin package, and specialised example for [NAT][examples-nat] was added. 975 - [localclient_linux][examples-linux-local] now contains two examples, the old one demonstrating 976 [veth][examples-veth] interface usage was moved to package and new example for linux 977 [tap][examples-tap] was added. 978 979 980 <a name="v1.3.0"></a> 981 # [1.3.0](https://github.com/ligato/vpp-agent/compare/v1.2...v1.3) (2018-03-22) 982 983 The vpp-agent is now using custom VPP branch [stable-1801-contiv][contiv-vpp1810]. 984 985 ### Compatibility 986 - VPP v18.01-rc0~605-g954d437 987 - cn-infra v1.2 988 989 ### Bug Fixes 990 * Resync of ifplugin in both, VPP and Linux, was improved. Interfaces with the same configuration data are not recreated during resync. 991 * STN does not fail if IP address with a mask is provided. 992 * Fixed ingress/egress interface resolution in ACL. 993 * Linux routes now check network reachability for gateway address before configuration. It should prevent "network unreachable" errors during config. 994 * Corrected bridge domain crash in case non-bvi interface was added to another non-bvi interface. 995 * Fixed several bugs related to VETH and AF-PACKET configuration and resync. 996 997 ### Features 998 - [ipsecplugin][vpp-ipsec-plugin]: 999 * New plugin for IPSec added. The IPSec is supported for VPP only with Linux set manually for now. IKEv2 is not yet supported. More information in the [readme][readme]. 1000 - [nsplugin][linux-ns-plugin] 1001 * New namespace plugin added. The configurator handles common namespace and microservice processing and communication with other Linux plugins. 1002 - [ifplugin][vpp-interface-plugin] 1003 * Added support for Network address translation. NAT plugin supports a configuration of NAT44 interfaces, address pools and DNAT. More information in the [readme][readme]. 1004 * DHCP can now be configured for the interface 1005 - [l2plugin][vpp-l2-plugin] 1006 * Split-horizon group can be configured for bridge domain interface. 1007 - [l3plugin][vpp-l3-plugin] 1008 * Added support for proxy ARP. For more information and configuration example, please see [readme][readme]. 1009 - [linux ifplugin][linux-interface-plugin] 1010 * Support for automatic interface configuration (currently only TAP). 1011 1012 ### Improvements 1013 - [aclplugin][agentctl] 1014 * Removed configuration order of interfaces. The access list can be now configured even if interfaces do not exist yet, and add them later. 1015 - vpp-agent-ctl 1016 * The vpp-agent-ctl was refactored and command info was updated. 1017 1018 ### Docker Images 1019 * VPP can be built and run in the release or debug mode. Read more information in the [readme][readme]. 1020 * Production image is now smaller by roughly 40% (229MB). 1021 1022 1023 <a name="v1.2.0"></a> 1024 # [1.2.0](https://github.com/ligato/vpp-agent/compare/v1.1...v1.2) (2018-02-07) 1025 1026 ### Compatibility 1027 - VPP v18.04-rc0~90-gd95c39e 1028 - cn-infra v1.1 1029 1030 ### Bug Fixes 1031 - Fixed interface assignment in ACLs 1032 - Fixed bridge domain BVI modification resolution 1033 - vpp-agent-grpc (removed in 1.4 release, since then it is a part of the vpp-agent) now compiles properly together with other commands. 1034 1035 ### Known Issues 1036 - VPP can occasionally cause a deadlock during checksum calculation (https://jira.fd.io/browse/VPP-1134) 1037 - VPP-Agent might not properly handle initialization across plugins (this is not occurring currently, but needs to be tested more) 1038 1039 ### Improvements 1040 - [aclplugin][vpp-acl-plugin] 1041 * Improved resync of ACL entries. Every new ACL entry is correctly configured in the VPP and all obsolete entries are read and removed. 1042 - [ifplugin][vpp-interface-plugin] 1043 * Improved resync of interfaces, BFD sessions, authentication keys, echo functions and STN. Better resolution of persistence config for interfaces. 1044 - [l2plugin][vpp-l2-plugin] 1045 * Improved resync of bridge domains, FIB entries, and xConnect pairs. Resync now better correlates configuration present on the VPP with the NB setup. 1046 - [linux-ifplugin][linux-interface-plugin] 1047 * ARP does not need the interface to be present on the VPP. Configuration is cached and put to the VPP if requirements are fulfilled. 1048 - Dependencies 1049 * Migrated from glide to dep 1050 1051 ### Docker Images 1052 * VPP compilation now skips building of Java/C++ APIs, this saves build time and final image size. 1053 * Development image now runs VPP in debug mode with various debug options added in [VPP config file][vpp-conf-file]. 1054 1055 1056 <a name="v1.1.0"></a> 1057 # [1.1.0](https://github.com/ligato/vpp-agent/compare/v1.0.8...v1.1) (2018-01-22) 1058 1059 ### Compatibility 1060 - VPP version v18.04-rc0~33-gb59bd65 1061 - cn-infra v1.0.8 1062 1063 ### Bug Fixes 1064 - fixed skip-resync parameter if vpp-plugin.conf is not provided. 1065 - corrected af_packet type interface behavior if veth interface is created/removed. 1066 - several fixes related to the af_packet and veth interface type configuration. 1067 - microservice and veth-interface related events are synchronized. 1068 1069 ### Known Issues 1070 - VPP can occasionally cause a deadlock during checksum calculation (https://jira.fd.io/browse/VPP-1134) 1071 - VPP-Agent might not properly handle initialization across plugins (this is not occurring currently, but needs to be tested more) 1072 1073 ### Features 1074 - [ifplugin][vpp-interface-plugin] 1075 - added support for un-numbered interfaces. The nterface can be marked as un-numbered with information about another interface containing required IP address. A un-numbered interface does not need to have IP address set. 1076 - added support for virtio-based TAPv2 interfaces. 1077 - interface status is no longer stored in the ETCD by default and it can be turned on using the appropriate setting in vpp-plugin.conf. See [readme][readme] for more details. 1078 - [l2plugin][vpp-l2-plugin] 1079 - bridge domain status is no longer stored in the ETCD by default and it can be turned on using the appropriate setting in vpp-plugin.conf. See [readme][readme] for more details. 1080 1081 ### Improvements 1082 - [ifplugin][vpp-interface-plugin] 1083 - default MTU value was removed in order to be able to just pass empty MTU field. MTU now can be set only in interface configuration (preferred) or defined in vpp-plugin.conf. If none of them is set, MTU value will be empty. 1084 - interface state data are stored in statuscheck readiness probe 1085 - [l3plugin][vpp-l3-plugin] 1086 - removed strict configuration order for VPP ARP entries and routes. Both ARP entry or route can be configured without interface already present. 1087 - l4plugin (removed in v2.0) 1088 - removed strict configuration order for application namespaces. Application namespace can be configured without interface already present. 1089 - localclient 1090 - added API for ARP entries, L4 features, Application namespaces, and STN rules. 1091 - logging 1092 - consolidated and improved logging in vpp and Linux plugins. 1093 1094 1095 <a name="v1.0.8"></a> 1096 ## [1.0.8](https://github.com/ligato/vpp-agent/compare/v1.0.7...v1.0.8) (2017-11-21) 1097 1098 ### Compatibility 1099 - VPP v18.01-rc0-309-g70bfcaf 1100 - cn-infra v1.0.7 1101 1102 ### Features 1103 - [ifplugin][vpp-interface-plugin] 1104 - ability to configure STN rules. See respective 1105 [readme][readme] in interface plugin for more details. 1106 - rx-mode settings can be set on interface. Ethernet-type interface can be set to POLLING mode, other types of interfaces supports also INTERRUPT and ADAPTIVE. Fields to set QueueID/QueueIDValid are also available 1107 - added possibility to add interface to any VRF table. 1108 - added defaultplugins API. 1109 - API contains new Method `DisableResync(keyPrefix ...string)`. One or more ETCD key prefixes can be used as a parameter to disable resync for that specific key(s). 1110 - l4plugin (removed in v2.0) 1111 - added new l4 plugin to the VPP plugins. It can be used to enable/disable L4 features 1112 and configure application namespaces. See respective 1113 [readme][readme] in L4 plugin for more details. 1114 - support for VPP plugins/l3plugin ARP configuration. The configurator can perform the 1115 basic CRUD operation with ARP config. 1116 - resync 1117 - resync error propagation improved. If any resynced configuration fails, rest of the resync completes and will not be interrupted. All errors which appear during resync are logged after. 1118 - [linux l3plugin][linux-l3-plugin] 1119 - route configuration does not return an error if the required interface is missing. Instead, the route data are internally stored and configured when the interface appears. 1120 - GoVPP 1121 - delay flag removed from GoVPP plugin 1122 1123 ### Improvements 1124 - removed dead links from README files 1125 1126 ### Documentation 1127 - improved in multiple vpp-agent packages 1128 1129 1130 <a name="v1.0.7"></a> 1131 ## [1.0.7](https://github.com/ligato/vpp-agent/compare/v1.0.6...v1.0.7) (2017-10-30) 1132 1133 ### Compatibility 1134 - VPP version v18.01-rc0~154-gfc1c612 1135 - cn-infra v1.0.6 1136 1137 ### Features 1138 1139 - [Default VPP plugin][vpp-interface-plugin] 1140 - added resync strategies. Resync of VPP plugins can be set using defaultpluigns config file; Resync can be set to full (always resync everything) or dependent on VPP configuration (if there is none, skip resync). Resync can be also forced to skip using the parameter. 1141 - [Linuxplugins L3Plugin][linux-l3-plugin] 1142 - added support for basic CRUD operations with the static Address resolution protocol entries and static Routes. 1143 1144 1145 <a name="v1.0.6"></a> 1146 ## [1.0.6](https://github.com/ligato/vpp-agent/compare/v1.0.5...v1.0.6) (2017-10-17) 1147 1148 ### Compatibility 1149 - cn-infra v1.0.5 1150 1151 ### Features 1152 1153 - [LinuxPlugin][linux-interface-plugin] 1154 - The configuration of vEth interfaces modified. Veth configuration defines two names: symbolic used internally and the one used in host OS. `HostIfName` field is optional. If it is not defined, the name in the host OS will be the same as the symbolic one - defined by `Name` field. 1155 1156 1157 <a name="v1.0.5"></a> 1158 ## [1.0.5](https://github.com/ligato/vpp-agent/compare/v1.0.4...v1.0.5) (2017-09-26) 1159 1160 ### Compatibility 1161 - VPP version v17.10-rc0~334-gce41a5c 1162 - cn-infra v1.0.4 1163 1164 ### Features 1165 1166 - [GoVppMux][govppmux-plugin] 1167 - configuration file for govpp added 1168 - Kafka Partitions 1169 - Changes in offset handling, only automatically partitioned messages (hash, random) 1170 have their offset marked. Manually partitioned messages are not marked. 1171 - Implemented post-init consumer (for manual partitioner only) which allows starting 1172 consuming after kafka-plugin Init() 1173 - Minimalistic examples & documentation for Kafka API will be improved in a later release. 1174 1175 1176 <a name="v1.0.4"></a> 1177 ## [1.0.4](https://github.com/ligato/vpp-agent/compare/v1.0.3...v1.0.4) (2017-09-08) 1178 1179 ### Features 1180 1181 - Kafka Partitions 1182 - Implemented new methods that allow to specify partitions & offset parameters: 1183 * publish: Mux.NewSyncPublisherToPartition() & Mux.NewAsyncPublisherToPartition() 1184 * watch: ProtoWatcher.WatchPartition() 1185 - Minimalistic examples & documentation for Kafka API will be improved in a later release. 1186 - Flavors 1187 - reduced to only local.FlavorVppLocal & vpp.Flavor 1188 - GoVPP 1189 - updated version waits until the VPP is ready to accept a new connection 1190 1191 1192 <a name="v1.0.3"></a> 1193 ## [1.0.3](https://github.com/ligato/vpp-agent/compare/v1.0.2...v1.0.3) (2017-09-05) 1194 1195 ### Compatibility 1196 - VPP version v17.10-rc0~265-g809bc74 (upgraded because of VPP MEMIF fixes) 1197 1198 ### Features 1199 1200 Enabled support for wathing data store `OfDifferentAgent()` - see: 1201 * examples/idx_iface_cache (removed in v2.0) 1202 * examples/examples/idx_bd_cache (removed in v2.0) 1203 * examples/idx_veth_cache (removed in v2.0) 1204 1205 Preview of new Kafka client API methods that allows to fill also partition and offset argument. New methods implementation ignores these new parameters for now (fallback to existing implementation based on `github.com/bsm/sarama-cluster` and `github.com/Shopify/sarama`). 1206 1207 1208 <a name="v1.0.2"></a> 1209 ## [1.0.2](https://github.com/ligato/vpp-agent/compare/v1.0.1...v1.0.2) (2017-08-28) 1210 1211 ### Compatibility 1212 - VPP version v17.10-rc0~203 1213 1214 ### Known Issues 1215 A rarely occurring problem during startup with binary API connectivity. VPP rejects binary API connectivity when VPP Agent tries to connect too early (plan fix this behavior in next release). 1216 1217 ### Features 1218 1219 Algorithms for applying northbound configuration (stored in ETCD key-value data store) 1220 to VPP in the proper order of VPP binary API calls implemented in [Default VPP plugin][vpp-interface-plugin]: 1221 - network interfaces, especially: 1222 - MEMIFs (optimized data plane network interface tailored for a container to container network connectivity) 1223 - VETHs (standard Linux Virtual Ethernet network interface) 1224 - AF_Packets (for accessing VETHs and similar type of interface) 1225 - VXLANs, Physical Network Interfaces, loopbacks ... 1226 - L2 BD & X-Connects 1227 - L3 IP Routes & VRFs 1228 - ACL (Access Control List) 1229 1230 Support for Linux VETH northbound configuration implemented in [Linux Plugin][linux-interface-plugin] 1231 applied in proper order with VPP AF_Packet configuration. 1232 1233 Data Synchronization during startup for network interfaces & L2 BD 1234 (support for the situation when ETCD contain configuration before VPP Agent starts). 1235 1236 Data replication and events: 1237 - Updating operational data in ETCD (VPP indexes such as sw_if_index) and statistics (port counters). 1238 - Updating statistics in Redis (optional once redis.conf available - see flags). 1239 - Publishing links up/down events to Kafka message bus. 1240 1241 - [Examples][examples] 1242 - Tools: 1243 - [agentctl CLI tool][agentctl] that show state & configuration of VPP agents 1244 - [docker][docker]: container-based development environment for the VPP agent 1245 - other features inherited from cn-infra: 1246 - health: status check & k8s HTTP/REST probes 1247 - logging: changing log level at runtime 1248 - Ability to extend the behavior of the VPP Agent by creating new plugins on top of VPP Agent flavor (removed with CN-Infra v1.5). 1249 New plugins can access API for configured: 1250 - VPP Network interfaces, 1251 - Bridge domains and VETHs 1252 based on [idxvpp][idx-vpp] threadsafe map tailored for VPP data 1253 with advanced features (multiple watchers, secondary indexes). 1254 - VPP Agent is embeddable in different software projects and with different systems by using Local Flavor (removed with CN-Infra v1.5) to reuse VPP Agent algorithms. For doing this there is VPP Agent client version 1 (removed in v2.0): 1255 - local client - for embedded VPP Agent (communication inside one operating system process, VPP Agent effectively used as a library) 1256 - remote client - for remote configuration of VPP Agent (while integrating for example with control plane) 1257 1258 [agentctl]: cmd/agentctl 1259 [ansible]: ansible 1260 [configurator-plugin]: plugins/configurator 1261 [consul]: https://www.consul.io/ 1262 [contiv-vpp1810]: https://github.com/vpp-dev/vpp/tree/stable-1801-contiv 1263 [docker]: docker 1264 [examples]: examples 1265 [examples-linux-local]: examples/localclient_linux 1266 [examples-nat]: examples/localclient_vpp/nat 1267 [examples-tap]: examples/localclient_linux/tap 1268 [examples-veth]: examples/localclient_linux/veth 1269 [examples-vpp-local]: examples/localclient_vpp 1270 [govppmux-plugin]: plugins/govppmux 1271 [govppmux-conf]: plugins/govppmux/govpp.conf 1272 [idx-vpp]: pkg/idxvpp 1273 [kv-scheduler]: plugins/kvscheduler 1274 [ligato.io]: https://ligato.io/ 1275 [ligato-docs]: https://docs.ligato.io/en/latest/ 1276 [linux-interface-plugin]: plugins/linux/ifplugin 1277 [linux-iptables-plugin]: plugins/linux/iptablesplugin 1278 [linux-l3-plugin]: plugins/linux/l3plugin 1279 [linux-ns-plugin]: plugins/linux/nsplugin 1280 [linux-plugins]: plugins/linux 1281 [nat-proto]: api/models/vpp/nat/nat.proto 1282 [netalloc-plugin]: plugins/netalloc 1283 [netalloc-plugin-model]: api/models/netalloc/netalloc.proto 1284 [ns-plugin]: plugins/linux/nsplugin 1285 [ns-proto]: api/models/linux/namespace/namespace.proto 1286 [models]: api/models 1287 [orchestrator-plugin]: plugins/orchestrator 1288 [punt-model]: api/models/vpp/punt/punt.proto 1289 [readme]: README.md 1290 [rest-plugin]: plugins/restapi 1291 [span-model]: api/models/vpp/interfaces/span.proto 1292 [sr-plugin]: plugins/vpp/srplugin 1293 [vpp-abf-plugin]: plugins/vpp/abfplugin 1294 [vpp-acl-plugin]: plugins/vpp/aclplugin 1295 [vpp-agent]: cmd/vpp-agent 1296 [vpp-conf-file]: docker/dev/vpp.conf 1297 [vpp-interface-plugin]: plugins/vpp/ifplugin 1298 [vpp-issue-1280]: https://jira.fd.io/browse/VPP-1280 1299 [vpp-ipsec-plugin]: plugins/vpp/ipsecplugin 1300 [vpp-l2-plugin]: plugins/vpp/l2plugin 1301 [vpp-l3-plugin]: plugins/vpp/l3plugin 1302 [vpp-nat-plugin]: plugins/vpp/natplugin 1303 [vpp-plugins]: plugins/vpp 1304 [vpp-punt-plugin]: plugins/vpp/puntplugin 1305 [vpp-stn-plugin]: plugins/vpp/stnplugin 1306 [vpp-telemetry]: plugins/telemetry 1307 [wiki]: https://github.com/ligato/vpp-agent/wiki