Release notes for VPP 19.04

More than 700 commits since the 19.01 release.

Features

Infrastructure

  • DPDK 19.02 integration

  • Buffer manager rework and improvements

  • Python3 migration (work in progress)

    • vppapigen

    • Python API wrappers

    • Docs generation

    • vpp_config

    • “make test” python3 readiness and refactoring

  • Add “make test-gcov” target to main Makefile

  • Refactor multiarch code

  • vfctl script: bind VF to vfio-pci after VF is created

  • cmake cross-compilation support

  • CLI control of graph dispatch elogs

  • AppImage packaging (disabled by default)

  • Complete upstreaming of wireshark dissector

  • Remove JVPP which is now an FD.io project

  • Punt infra: manage dispatch of exception packets

VNET & Plugins

  • BVI Interface

  • Deprecate TAP cli

  • Experimental TAP interface TCP segmentation offload

  • Vmxnet3 driver plugin

  • LACP passive mode

  • ACL plugin refactoring

  • RDMA (ibverb) driver plugin - MLX5 with multiqueue

  • IPSEC

    • Intel IPSEC-MB engine plugin

    • Tunnel fragmentation

    • CLI improvements

    • Performance improvements

    • API modernisation and improvements

    • New Tests and test refactoring

  • Crypto

    • Introduce crypto infra

    • crypto_ia32 plugin

    • Add support for AEAD and AES-GCM

    • Implement rfc4231 test cases

    • Implement crypto tests per RFC2202

  • Perfmon improvements

    • Python to C parser for intel CPUs

    • 2-way parallel stat collection

    • Collect data on selected thread(s)

Host stack

  • Improve ldp/vls/vcl support for multi-process and multi-threaded applications

  • Major refactor/cleanup of session layer

  • Refactor cut-through sessions to use a custom transport

  • Baseline QUIC transport support

Known issues

For the full list of issues please refer to fd.io JIRA.

Issues fixed

For the full list of fixed issues please refer to:

API changes

Description of results:

  • Definition changed: indicates that the API file was modified between releases.

  • Only in image: indicates the API is new for this release.

  • Only in file: indicates the API has been removed in this release.

Message Name

Result

accept_session

only in file

accept_session_reply

only in file

bind_sock_reply

definition changed

bind_uri_reply

definition changed

bvi_create

only in image

bvi_create_reply

only in image

bvi_delete

only in image

bvi_delete_reply

only in image

connect_session

only in file

connect_session_reply

only in file

ct6_enable

only in image

ct6_enable_disable

only in image

gbp_contract_add_del_reply

definition changed

gbp_endpoint_group_del

definition changed

gbp_endpoint_learn_set_inactive_threshold

only in file

gbp_endpoint_learn_set_inactive_threshold_reply

only in file

ikev2_plugin_get_version

only in image

ikev2_plugin_get_version_reply

only in image

ip4_arp_event

definition changed

ip6_nd_event

definition changed

ip6_ra_event

definition changed

ip6nd_proxy_add_del

definition changed

ip6nd_proxy_details

definition changed

ip_container_proxy_add_del

definition changed

ip_neighbor_add_del

definition changed

ip_neighbor_details

definition changed

ip_probe_neighbor

definition changed

ip_source_and_port_range_check_add_del

definition changed

ipsec_backend_details

definition changed

ipsec_gre_add_del_tunnel

only in file

ipsec_gre_add_del_tunnel_reply

only in file

ipsec_gre_tunnel_add_del

only in image

ipsec_gre_tunnel_add_del_reply

only in image

ipsec_gre_tunnel_details

definition changed

ipsec_sa_details

definition changed

ipsec_sa_set_key

definition changed

ipsec_sad_add_del_entry

only in file

ipsec_sad_add_del_entry_reply

only in file

ipsec_sad_entry_add_del

only in image

ipsec_sad_entry_add_del_reply

only in image

ipsec_select_backend

definition changed

ipsec_spd_add_del_entry

only in file

ipsec_spd_add_del_entry_reply

only in file

ipsec_spd_details

definition changed

ipsec_spd_entry_add_del

only in image

ipsec_spd_entry_add_del_reply

only in image

ipsec_tunnel_if_add_del

definition changed

lb_conf

definition changed

map_add_domain

definition changed

map_domain_details

definition changed

nat_ha_flush

only in image

nat_ha_flush_reply

only in image

nat_ha_get_failover

only in image

nat_ha_get_failover_reply

only in image

nat_ha_get_listener

only in image

nat_ha_get_listener_reply

only in image

nat_ha_resync

only in image

nat_ha_resync_completed_event

only in image

nat_ha_resync_reply

only in image

nat_ha_set_failover

only in image

nat_ha_set_failover_reply

only in image

nat_ha_set_listener

only in image

nat_ha_set_listener_reply

only in image

reset_session

only in file

reset_session_reply

only in file

sw_interface_ip6nd_ra_prefix

definition changed

sw_interface_set_dpdk_hqos_pipe

only in file

sw_interface_set_dpdk_hqos_pipe_reply

only in file

sw_interface_set_dpdk_hqos_subport

only in file

sw_interface_set_dpdk_hqos_subport_reply

only in file

sw_interface_set_dpdk_hqos_tctbl

only in file

sw_interface_set_dpdk_hqos_tctbl_reply

only in file

sw_interface_tap_details

only in file

sw_interface_tap_dump

only in file

sw_interface_virtio_pci_details

only in image

sw_interface_virtio_pci_dump

only in image

tap_connect

only in file

tap_connect_reply

only in file

tap_delete

only in file

tap_delete_reply

only in file

tap_modify

only in file

tap_modify_reply

only in file

virtio_pci_create

only in image

virtio_pci_create_reply

only in image

virtio_pci_delete

only in image

virtio_pci_delete_reply

only in image

vmxnet3_create

definition changed

vmxnet3_details

definition changed

want_ip4_arp_events

definition changed

want_ip6_nd_events

definition changed

Found 90 api message signature differences

Patches that changed API definitions

src/vlibmemory/memclnt.api

  • eaec2a6d9 bapi: add options to have vpp cleanup client registration

src/vpp/api/vpe.api

src/vnet/interface.api

  • 3b0d7e42f Revert “API: Cleanup APIs interface.api”

  • e63325e3c API: Cleanup APIs interface.api

  • bb2c7b580 Update documentation for src/vnet/interface.api sw_interface_dump

  • f49ba0e81 stats: Deprecate old stats framework

  • 53fffa1db API: Add support for type aliases

  • 5100aa9cb vnet: store hw interface speed in kbps instead of using flags

src/vnet/interface_types.api

  • 3b0d7e42f Revert “API: Cleanup APIs interface.api”

  • e63325e3c API: Cleanup APIs interface.api

  • 53fffa1db API: Add support for type aliases

src/vnet/bonding/bond.api

  • ad9d52831 bonding: support custom interface IDs

src/vnet/ipip/ipip.api

  • 53fffa1db API: Add support for type aliases

src/vnet/ipsec-gre/ipsec_gre.api

  • e524d45ef IPSEC-GRE: fixes and API update to common types.

src/vnet/syslog/syslog.api

  • b4515b4be Add RFC5424 syslog protocol support (VPP-1139)

src/vnet/devices/tap/tapv2.api

  • 754f24b35 tapv2: add “tap_flags” field to the TAPv2 interface API

src/vnet/devices/virtio/virtio.api

src/vnet/fib/fib_types.api

  • 775f73c6b FIB: encode the label stack in the FIB path during table dump

src/vnet/ip/ip_types.api

  • 8c8acc027 API: Change ip4_address and ip6_address to use type alias.

  • ffba3c377 MAP: Use explicit address/prefix types in API

src/vnet/ip/ip.api

  • 48ae19e90 API: Add python2.7 support for enum flags via aenum

  • 37029305c Use IP and MAC API types for neighbors

  • 7c03ed47d VOM: mroutes

  • 3460b014a api: ip_source_check_interface_add_del api is added.

  • 609e1210c VPP-1507: Added binary api to dump configured ip_punt_redirect

  • 2af0e3a74 flow-hash: Add symmetric flag for flow hashing

  • 47527b24a IP-punt: add documentation to the API and fix IP address init

  • 5bb1ecae8 IPv6: Make link-local configurable per-interface (VPP-1446)

  • 75b9f45a1 ip: add container proxy dump API (VPP-1364)

src/vnet/ip/punt.api

  • e88865d7b VPP-1506: dump local punts and registered punt sockets

src/vnet/vxlan-gbp/vxlan_gbp.api

src/vnet/ethernet/ethernet_types.api

  • 8006c6aa4 PAPI: Add MACAddress object wrapper for vl_api_mac_address_t

src/vnet/ipsec/ipsec.api

  • 1e3aa5e21 ipsec: USE_EXTENDED_SEQ_NUM -> USE_ESN

  • 1ba5bc8d8 ipsec: add ipv6 support for ipsec tunnel interface

  • 5d704aea5 updates now that flags are supported on the API

  • 53f526b68 TEST: IPSEC NAT-T with UDP header

  • 7c44d78ef IKEv2 to plugin

  • eba31eceb IPSEC: move SA counters into the stats segment

  • 8d7c50200 IPSEC: no second lookup after tunnel encap

  • a09c1ff5b IPSEC: SPD counters in the stats sgement

  • 17dcec0b9 IPSEC: API modernisation

  • 4c422f9a3 Add IPSec interface FIB index for TX packet

  • b4a7a7dcf Add UDP encap flag

  • b4d305344 ipsec: infra for selecting backends

  • 871bca9aa VPP-1450: binary api call for dumping SPD to interface registration

src/vnet/tcp/tcp.api

  • c5df8c71c host stack: update stale copyright

src/vnet/l2/l2.api

  • 192b13f96 BVI Interface

  • 5daf0c55c add default NONE flag for bd_flags

  • e26c81fc8 L2 BD API to flush all IP-MAC entries in the specified BD

  • 8006c6aa4 PAPI: Add MACAddress object wrapper for vl_api_mac_address_t

  • 93cc3ee3b GBP Endpoint Learning

  • 4d5b917b1 BD ARP entry use common API types

src/vnet/session/session.api

  • 6442401c2 session: remove deprecated binary apis

  • d85de68ec vcl: wait for segments with segment handle

  • fa76a76bf session: segment handle in accept/connect notifications

  • c1f5a4336 session: cleanup use of api_client_index

  • c0d532d17 session: mark apis for deprecation

src/vnet/udp/udp.api

  • c5df8c71c host stack: update stale copyright

src/plugins/cdp/cdp.api

  • 76ef6094c tests: cdp plugin. Replace cdp enable cli command with API call.

src/plugins/nat/nat.api

  • 8feeaff56 Typos. A bunch of typos I’ve been collecting.

  • 34931eb47 NAT44: active-passive HA (VPP-1571)

  • b686508c4 NAT44: nat44_add_del_lb_static_mapping enhancements (VPP-1514)

src/plugins/map/map.api

  • 4dc5c7b90 MAP: Add optional user-supplied ‘tag’ field in MAPs.

  • fc7344f9b MAP: Convert from DPO to input feature.

  • f34597fc8 MAP: Add API support for MAP input feature.

  • 5a2e278a0 MAP: Add API support for setting parameters.

  • a173a7a07 MAP: Use bool type in map.api instead of u8.

  • ffba3c377 MAP: Use explicit address/prefix types in API

src/plugins/gbp/gbp.api

  • 1aa35576e GBP: Counters per-contract

  • 8ea109e40 gbp: Add bd flags

  • 7bd343509 GBP: custom-dump functions

  • fa0ac2c56 GBP: contracts API fixed length of allowed ethertypes

  • 5d704aea5 updates now that flags are supported on the API

  • 4ba67723d GBP: use sclass in the DP for policy

  • 8da9fc659 GBP: learn from ARP and L2 packets

  • 32f6d8e0c GBP: per-group EP retention policy

  • 879d11c25 GBP: Sclass to src-epg conversions

  • 1c17e2eca GBP: add allowed ethertypes to contracts

  • b6a479539 GBP: l3-out subnets

  • 33b81da54 vom: Add support for redirect contracts in gbp

  • 13a08cc09 GBP: redirect contracts

  • c29c0af40 GBP: Endpoints with VLAN tags and birdges that don’t learn

  • 93cc3ee3b GBP Endpoint Learning

src/plugins/acl/acl.api

  • bb5d22daf New api in order to get max entries of connection table is added.

src/plugins/vmxnet3/vmxnet3.api

src/plugins/nsim/nsim.api

  • 10c5ff143 nsim: add packet loss simulation, docs

src/plugins/igmp/igmp.api

src/plugins/lb/lb.api

  • f7f13347b tests: update test_lb.py to use api call lb_conf.

src/plugins/ct6/ct6.api

src/plugins/ikev2/ikev2.api