FD.io VPP  v21.06
Vector Packet Processing
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
1aaf0e343 deprecate tapcli
f49ba0e81 stats: Deprecate old stats framework
413f4a5b2 API: Use string type instead of u8.
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
d6c15af33 virtio: Native virtio driver
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
4dd4cf4f9 GBP: fixes for l3-out routing
93cc3ee3b GBP Endpoint Learning
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
ee8ba6877 vmxnet3: auto bind support
854559d15 vmxnet3: RSS support
773291163 vmxnet3: multiple TX queues support
src/plugins/nsim/nsim.api
10c5ff143 nsim: add packet loss simulation, docs
src/plugins/igmp/igmp.api
97748cae2 IGMP: proxy device
src/plugins/lb/lb.api
f7f13347b tests: update test_lb.py to use api call lb_conf.
src/plugins/ct6/ct6.api
a55df1081 ipv6 connection tracking plugin
src/plugins/ikev2/ikev2.api
7c44d78ef IKEv2 to plugin