Release notes for VPP 16.09
===========================

Features
--------

-  `Integrated July 2016 DPDK release <http://www.dpdk.org/doc/guides/rel_notes/release_16_07.html>`__

   -  DPDK-vhost is depreciated pending a complete rework of the
      original integration and addressing of rx performance deltas.
   -  Patches required for DPDK 16.07:

      -  Correctly setting the Packet Type in the IGB, IXGBE and i40e
         drivers.
      -  Correctly setting checksum in the i40e driver.
      -  NXP DPAA2 PMD Driver.
      -  rte_delay (yield) functionality.

-  Add “in tree” plugins:

   -  IPv6 ILA.
   -  iOAM.
   -  Load Balancer.
   -  SNAT.

-  High-performance (line-rate) “neutron like” L4 port-filtering.

-  API refactoring - addressing some of the issues around JVPP bindings.

   -  Accommodating plugins
      `(e.g. NSH_SFC) <https://wiki.fd.io/view/NSH_SFC>`__
   -  Binding for `python <https://wiki.fd.io/view/VPP/Python_API>`__

-  LISP

   -  L2 LISP overlays
   -  Multitenancy
   -  Multihoming
   -  RTR mode
   -  Map-resolver failover algorithm

-  Support 64-bit vector lengths, huge shared-memory segments.

-  Dynamic IP Feature ordering

   -  IP Features can now specify features they appear before and after

-  16.09 Builds

   -  Ubuntu 14.04 LTS - Trusty Tahr
   -  Ubuntu 16.04 LTS - Xenial Xerus
   -  CentOS 7
   -  More information on `VPP wiki <https://wiki.fd.io/view/VPP/Installing_VPP_binaries_from_packages>`__

-  Performance, characterize and document performance for this release
   `(more information on CSIT page) <https://wiki.fd.io/view/CSIT>`__

   -  IPv4 and IPv6 Scale - performance tests.

      -  Bidirectional 10k/100k/1M flows.
      -  64B,570B, 1518B,9000B packet sizes.

   -  IPv6 iACL - performance

      -  DUT1 and DUT2 are configured with IPv6 routing, two static IPv6
         /64 routes and IPv6 iAcl security whitelist ingress /64 filter
         entries applied on links.
      -  TG traffic profile contains two L3 flow-groups (flow-group per
         direction, 253 flows per flow-group) with all packets
         containing Ethernet header, IPv6 header and generated payload.
         MAC addresses are matching MAC addresses of the TG node
         interfaces.

   -  L2XC VXLANoIPv4 - performance

      -  DUT1 and DUT2 are configured with L2 cross-connect. VXLAN
         tunnels are configured between L2XCs on DUT1 and DUT2.
      -  TG traffic profile contains two L3 flow-groups (flow-group per
         direction, 253 flows per flow-group) with all packets
         containing Ethernet header, IPv4 header with IP protocol=61 and
         generated payload. MAC addresses are matching MAC addresses of
         the TG node interfaces.

-  Documentation

   -  Autogenerated CLI documentation.
   -  Using doxygen to automate API/Node documentation.
   -  `(available online) <https://docs.fd.io/vpp/16.09/>`__

-  Resolved all static analysis issues found by Coverity

   -  Beginning of 16.09 cycle: 505 issues.
   -  Release: 0 outstanding issues.

Known issues
------------

Issues in fd.io are tracked in `JIRA <https://jira.fd.io>`__.

+-----------------------------------+-----------------------------------+
| Issue                             | Description                       |
+===================================+===================================+
| VPP-391                           | vpp debug version assert appeared |
|                                   | in the process of start           |
+-----------------------------------+-----------------------------------+
| VPP-380                           | Mapping algorithm compute wrong   |
|                                   | ea-bits when IPv4 prefix          |
|                                   | 0.0.0.0/0                         |
+-----------------------------------+-----------------------------------+
| VPP-371                           | load_one_plugin:63: Loaded        |
|                                   | plugin: message from vppctl       |
+-----------------------------------+-----------------------------------+
| VPP-367                           | vpp packages need to depend on    |
|                                   | specific versions of each other   |
+-----------------------------------+-----------------------------------+
| VPP-312                           | IP6 FIB gets in indeterminate     |
|                                   | state by duplicating commands     |
+-----------------------------------+-----------------------------------+
| VPP-224                           | Lookup-in-vrf can not be set      |
|                                   | correctly                         |
+-----------------------------------+-----------------------------------+
| VPP-206                           | Fix classify table delete         |
+-----------------------------------+-----------------------------------+
| VPP-203                           | Fix binary API for reading vpp    |
|                                   | node graph                        |
+-----------------------------------+-----------------------------------+
| VPP-147                           | Inconsistent behaviour when       |
|                                   | adding L2 FIB filter entry        |
+-----------------------------------+-----------------------------------+
| VPP-99                            | VPP doesn’t discard DHCPOFFER     |
|                                   | message with wrong XID            |
+-----------------------------------+-----------------------------------+

Issues fixed
------------

Issues in fd.io are tracked in `JIRA <https://jira.fd.io>`__.

+-----------------------------------+-----------------------------------+
| Issue                             | Description                       |
+===================================+===================================+
| VPP-396                           | Ubuntu systems Graphviz bug       |
+-----------------------------------+-----------------------------------+
| VPP-390                           | vpp-lib rpm fails to include      |
|                                   | \*.so symlinks, causing linking   |
|                                   | problems with out of tree builds  |
+-----------------------------------+-----------------------------------+
| VPP-388                           | IPSec output feature assumes      |
|                                   | packets have been ethernet        |
|                                   | rewritten                         |
+-----------------------------------+-----------------------------------+
| VPP-385                           | ARP for indirect adjacencies not  |
|                                   | working correctly                 |
+-----------------------------------+-----------------------------------+
| VPP-361                           | Memory leak on delete of VXLAN    |
|                                   | over IPv6 tunnel                  |
+-----------------------------------+-----------------------------------+
| VPP-357                           | VNI not set correctly when        |
|                                   | removing LISP fwd entries         |
+-----------------------------------+-----------------------------------+
| VPP-349                           | sw_interface_vhost_user_dump not  |
|                                   | working                           |
+-----------------------------------+-----------------------------------+
| VPP-345                           | net/enic: bad L4 checksum ptype   |
|                                   | set on ICMP packets               |
+-----------------------------------+-----------------------------------+
| VPP-340                           | MAP-T wrong destination address   |
+-----------------------------------+-----------------------------------+
| VPP-330                           | Use fifo to store LISP pending    |
|                                   | map-requests                      |
+-----------------------------------+-----------------------------------+
| VPP-326                           | map_add_domain VAT command:       |
|                                   | unable to configure domain with   |
|                                   | mtu parameter                     |
+-----------------------------------+-----------------------------------+
| VPP-318                           | The map_add_domain VAT command    |
|                                   | accepts invalid arguments         |
+-----------------------------------+-----------------------------------+
| VPP-315                           | Fix “show vxlan-gpe” issue        |
+-----------------------------------+-----------------------------------+
| VPP-310                           | Mapping algorithm compute wrong   |
|                                   | ea-bits                           |
+-----------------------------------+-----------------------------------+
| VPP-239                           | LISP IP forwarding does not tag   |
|                                   | packets that hit negative mapping |
|                                   | entries                           |
+-----------------------------------+-----------------------------------+
| VPP-235                           | Invalid help in VAT for           |
|                                   | sw_interface_set_l2_bridge        |
+-----------------------------------+-----------------------------------+
| VPP-228                           | Mapping algorithm sends packet to |
|                                   | wrong IPv6 address                |
+-----------------------------------+-----------------------------------+
| VPP-214                           | vpp-api-test:                     |
|                                   | api_ipsec_sad_add_del_entry:      |
|                                   | vector “ck” not initialized       |
+-----------------------------------+-----------------------------------+
| VPP-200                           | VPP - TAP port create problem     |
+-----------------------------------+-----------------------------------+
| VPP-189                           | Coverity Issues for 16.09         |
+-----------------------------------+-----------------------------------+
| VPP-184                           | u16 translating to char ,not      |
|                                   | short                             |
+-----------------------------------+-----------------------------------+
| VPP-179                           | Adjacency share-count botch       |
+-----------------------------------+-----------------------------------+
| VPP-163                           | “show ip6 interface” ignores      |
|                                   | non-global addresses              |
+-----------------------------------+-----------------------------------+
| VPP-155                           | Netmap: Inconsistency in          |
|                                   | interface state between “show     |
|                                   | hardware” and “show interface”    |
+-----------------------------------+-----------------------------------+
| VPP-145                           | Dynamically compute IP feature    |
|                                   | ordering based on constraints     |
+-----------------------------------+-----------------------------------+
| VPP-137                           | VPP sends ARP with wrong          |
|                                   | requested IP                      |
+-----------------------------------+-----------------------------------+
| VPP-118                           | JVpp: 0 length arrays not handled |
|                                   | properly in VPP responses         |
+-----------------------------------+-----------------------------------+
| VPP-112                           | linux kernel info missing from    |
|                                   | build log                         |
+-----------------------------------+-----------------------------------+
| VPP-110                           | vxlan encap node should never     |
|                                   | touch a deleted tunnel            |
+-----------------------------------+-----------------------------------+
| VPP-107                           | RPM build broken in master        |
+-----------------------------------+-----------------------------------+
| VPP-92                            | segment routing is not properly   |
|                                   | filling out the segment list      |
+-----------------------------------+-----------------------------------+
| VPP-91                            | segment routing add/del tunnel    |
|                                   | lookup doesn’t work               |
+-----------------------------------+-----------------------------------+
| VPP-84                            | af_packet throws a fatal error on |
|                                   | EAGAIN                            |
+-----------------------------------+-----------------------------------+
| VPP-74                            | Clang compile fails due to        |
|                                   | warning in vlib/unix/cli.c        |
+-----------------------------------+-----------------------------------+
| VPP-64                            | Top level “make pkg-deb” fails if |
|                                   | CDPATH is set in user env.        |
+-----------------------------------+-----------------------------------+
| VPP-48                            | Traceroute does not terminate     |
|                                   | when VPP is the target            |
+-----------------------------------+-----------------------------------+
| VPP-23                            | CLI pager does not gracefully     |
|                                   | handle lines longer than the      |
|                                   | terminal width                    |
+-----------------------------------+-----------------------------------+