go.ligato.io/vpp-agent/v3@v3.5.0/CHANGELOG.md (about)

     1  # Changelog
     2  
     3  [![GitHub commits since latest release](https://img.shields.io/github/commits-since/ligato/vpp-agent/latest.svg?style=flat-square)](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