FD.io VPP  v21.06
Vector Packet Processing
Release notes for VPP 19.01

More than 649 commits since the 18.10 release.

Features

Infrastructure

  • NUMA-aware, growable physical memory allocator (pmalloc)
  • FIB: sticky load-balance
  • C11 safe string handling: provide and use "safe" C string handling functions
  • vlib: allocate buffers on local numa, not on numa 1
  • vppinfra: autodetect default hugepage size
  • Move RPC traffic off the shared-memory API queue
  • IPv6: Make link-local configurable per-interface
  • IGMP: improve CLI debug output
  • IPSec: split ipsec nodes into ip4/ip6 nodes
  • IPSec: infra for selecting backends
  • vhost-user: cleanup and performance optimizations
  • ethernet-input, memif improvements and optimizations
  • DPDK: bump to DPDK 18.11
  • reassembly: harden reassembly code
  • stats: Deprecate old (event-based) stats framework
  • vlib: support Hyper-V/Azure VMBus
  • binary api clients: wait for vpp to start
  • graph dispatch trace: capture packet data and buffer metadata, output in pcap format
  • improve feature arc order constraint specification

VNET & Plugins

  • pktgen: correctly replay a mix of single and multi-buffer packets
  • add wireshark dissector to extras
  • avf: optimizations
  • acl-plugin: use L2 feature arc instead of L2 classifier
  • acl-plugin: performance enhancement
  • dpdk: allow interface name to be specified from startup.conf
  • dpdk: blacklist PCI devices by type
  • dpdk: switch to in-memory mode, deprecate use of socket-mem
  • vnet: store hw interface speed in kbps instead of using flags
  • vmxnet3: enable promiscuous mode & cli enhancements
  • gbp: Add support for flow hash profile & l3-out subnets
  • map: Add API support for setting parameters.
  • map: Convert from DPO to input feature
  • nat: improve expired sessions reuse in NAT44
  • nat: syslog - sessions logging
  • nsim: add packet loss simulation, docs
  • perfmon: x86_64 perf counter plugin
  • vnet: L2 feature arc infrastructure

Host stack

  • TCP congestion control improvements
  • TCP Cubic congestion control algorithm
  • TCP fast path optimizations
  • Transport tx connection pacer. TCP uses it by default
  • Basic support for session flushing and TCP PSH segments
  • TCP/session api support for configuring custom local src ip/port
  • VCL/LDP basic support for multi-process applications
  • Overall code hardening, cleanup and bugfixing for tcp, session, vcl and ldp

PAPI & Test framework

  • add specific API types for IP addresses, MAC address, interface index etc.
  • add timeout support for socket transport
  • add support for format/unformat functions
  • generic API types format/unformat support for VAT and custom dump
  • python3 test adjustments
  • make test: create virtualenv under /test/
  • make test: print TEST= values for failed tests
  • add human-friendly annotations to log messages

VOM

  • Add support for redirect contracts in gbp
  • deprecate TAP add ip-punt redirect dump
  • vxlan-gbp 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 Results
acl_plugin_get_conn_table_max_entries only in image
acl_plugin_get_conn_table_max_entries_reply only in image
app_worker_add_del definition changed
app_worker_add_del_reply definition changed
application_attach_reply definition changed
bd_ip_mac_add_del definition changed
bd_ip_mac_details definition changed
bd_ip_mac_flush only in image
bd_ip_mac_flush_reply only in image
bond_create definition changed
cli_inband definition changed
cli_inband_reply definition changed
gbp_bridge_domain_add only in image
gbp_bridge_domain_add_reply only in image
gbp_bridge_domain_del only in image
gbp_bridge_domain_del_reply only in image
gbp_bridge_domain_details only in image
gbp_bridge_domain_dump only in image
gbp_bridge_domain_dump_reply only in image
gbp_endpoint_details definition changed
gbp_endpoint_group_add only in image
gbp_endpoint_group_add_del only in file
gbp_endpoint_group_add_del_reply only in file
gbp_endpoint_group_add_reply only in image
gbp_endpoint_group_del only in image
gbp_endpoint_group_del_reply only in image
gbp_endpoint_learn_set_inactive_threshold only in image
gbp_endpoint_learn_set_inactive_threshold_reply only in image
gbp_ext_itf_add_del only in image
gbp_ext_itf_add_del_reply only in image
gbp_ext_itf_details only in image
gbp_ext_itf_dump only in image
gbp_route_domain_add only in image
gbp_route_domain_add_reply only in image
gbp_route_domain_del only in image
gbp_route_domain_del_reply only in image
gbp_route_domain_details only in image
gbp_route_domain_dump only in image
gbp_route_domain_dump_reply only in image
gbp_vxlan_tunnel_add only in image
gbp_vxlan_tunnel_add_reply only in image
gbp_vxlan_tunnel_del only in image
gbp_vxlan_tunnel_del_reply only in image
gbp_vxlan_tunnel_details only in image
gbp_vxlan_tunnel_dump only in image
igmp_proxy_device_add_del only in image
igmp_proxy_device_add_del_interface only in image
igmp_proxy_device_add_del_interface_reply only in image
igmp_proxy_device_add_del_reply only in image
ip6_mfib_details definition changed
ip_container_proxy_details only in image
ip_container_proxy_dump only in image
ip_mfib_details definition changed
ip_punt_redirect definition changed
ip_punt_redirect_details only in image
ip_punt_redirect_dump only in image
ip_source_check_interface_add_del only in image
ip_source_check_interface_add_del_reply only in image
ipip_6rd_add_tunnel_reply definition changed
ipip_6rd_del_tunnel definition changed
ipip_add_tunnel_reply definition changed
ipip_del_tunnel definition changed
ipip_tunnel_details definition changed
ipip_tunnel_dump definition changed
ipsec_backend_details only in image
ipsec_backend_dump only in image
ipsec_sa_details definition changed
ipsec_select_backend only in image
ipsec_select_backend_reply only in image
ipsec_tunnel_if_add_del definition changed
map_add_del_rule definition changed
map_add_domain definition changed
map_another_segment definition changed
map_domain_details definition changed
map_if_enable_disable only in image
map_if_enable_disable_reply only in image
map_param_add_del_pre_resolve only in image
map_param_add_del_pre_resolve_reply only in image
map_param_get only in image
map_param_get_reply only in image
map_param_set_fragmentation only in image
map_param_set_fragmentation_reply only in image
map_param_set_icmp6 only in image
map_param_set_icmp6_reply only in image
map_param_set_icmp only in image
map_param_set_icmp_reply only in image
map_param_set_reassembly only in image
map_param_set_reassembly_reply only in image
map_param_set_security_check only in image
map_param_set_security_check_reply only in image
map_param_set_tcp only in image
map_param_set_tcp_reply only in image
map_param_set_traffic_class only in image
map_param_set_traffic_class_reply only in image
map_rule_details definition changed
memclnt_delete definition changed
nat44_add_del_lb_static_mapping definition changed
nat44_lb_static_mapping_add_del_local only in image
nat44_lb_static_mapping_add_del_local_reply only in image
nat44_lb_static_mapping_details definition changed
nsim_configure definition changed
punt only in file
punt_details only in image
punt_dump only in image
punt_reply only in file
punt_socket_deregister definition changed
punt_socket_details only in image
punt_socket_dump only in image
punt_socket_register definition changed
set_ip_flow_hash definition changed
set_punt only in image
set_punt_reply only in image
show_version_reply definition changed
stats_get_poller_delay only in file
stats_get_poller_delay_reply only in file
sw_interface_bond_details definition changed
sw_interface_details definition changed
sw_interface_ip6_set_link_local_address only in file
sw_interface_ip6_set_link_local_address_reply only in file
sw_interface_tap_v2_details definition changed
syslog_get_filter only in image
syslog_get_filter_reply only in image
syslog_get_sender only in image
syslog_get_sender_reply only in image
syslog_set_filter only in image
syslog_set_filter_reply only in image
syslog_set_sender only in image
syslog_set_sender_reply only in image
tap_create_v2 definition changed
unmap_segment definition changed
vnet_bier_neighbor_counters only in file
vnet_get_summary_stats only in file
vnet_get_summary_stats_reply only in file
vnet_interface_combined_counters only in file
vnet_interface_simple_counters only in file
vnet_ip4_fib_counters only in file
vnet_ip4_mfib_counters only in file
vnet_ip4_nbr_counters only in file
vnet_ip6_fib_counters only in file
vnet_ip6_mfib_counters only in file
vnet_ip6_nbr_counters only in file
vnet_per_interface_combined_counters only in file
vnet_per_interface_simple_counters only in file
vnet_udp_encap_counters only in file
want_bier_neighbor_stats only in file
want_bier_neighbor_stats_reply only in file
want_interface_combined_stats only in file
want_interface_combined_stats_reply only in file
want_interface_simple_stats only in file
want_interface_simple_stats_reply only in file
want_ip4_fib_stats only in file
want_ip4_fib_stats_reply only in file
want_ip4_mfib_stats only in file
want_ip4_mfib_stats_reply only in file
want_ip4_nbr_stats only in file
want_ip4_nbr_stats_reply only in file
want_ip6_fib_stats only in file
want_ip6_fib_stats_reply only in file
want_ip6_mfib_stats only in file
want_ip6_mfib_stats_reply only in file
want_ip6_nbr_stats only in file
want_ip6_nbr_stats_reply only in file
want_per_interface_combined_stats only in file
want_per_interface_combined_stats_reply only in file
want_per_interface_simple_stats only in file
want_per_interface_simple_stats_reply only in file
want_stats only in file
want_stats_reply only in file
want_udp_encap_stats only in file
want_udp_encap_stats_reply only in file

Found 170 api message signature differences

Patches that changed API definitions

src/vnet/interface_types.api
53fffa1 API: Add support for type aliases
src/vnet/interface.api
f49ba0e stats: Deprecate old stats framework
53fffa1 API: Add support for type aliases
5100aa9 vnet: store hw interface speed in kbps instead of using flags
src/vnet/syslog/syslog.api
b4515b4 Add RFC5424 syslog protocol support (VPP-1139)
src/vnet/fib/fib_types.api
775f73c FIB: encode the label stack in the FIB path during table dump
src/vnet/ip/ip.api
7c03ed4 VOM: mroutes
3460b01 api: ip_source_check_interface_add_del api is added.
609e121 VPP-1507: Added binary api to dump configured ip_punt_redirect
2af0e3a flow-hash: Add symmetric flag for flow hashing
47527b2 IP-punt: add documentation to the API and fix IP address init
5bb1eca IPv6: Make link-local configurable per-interface (VPP-1446)
75b9f45 ip: add container proxy dump API (VPP-1364)
src/vnet/ip/ip_types.api
8c8acc0 API: Change ip4_address and ip6_address to use type alias.
ffba3c3 MAP: Use explicit address/prefix types in API
src/vnet/ip/punt.api
e88865d VPP-1506: dump local punts and registered punt sockets
src/vnet/ipsec/ipsec.api
4c422f9 Add IPSec interface FIB index for TX packet
b4a7a7d Add UDP encap flag
b4d3053 ipsec: infra for selecting backends
871bca9 VPP-1450: binary api call for dumping SPD to interface registration
src/vnet/l2/l2.api
e26c81f L2 BD API to flush all IP-MAC entries in the specified BD
8006c6a PAPI: Add MACAddress object wrapper for vl_api_mac_address_t
93cc3ee GBP Endpoint Learning
4d5b917 BD ARP entry use common API types
src/vnet/vxlan-gbp/vxlan_gbp.api
93cc3ee GBP Endpoint Learning
src/vnet/ipip/ipip.api
53fffa1 API: Add support for type aliases
src/vnet/session/session.api
d85de68 vcl: wait for segments with segment handle
fa76a76 session: segment handle in accept/connect notifications
c1f5a43 session: cleanup use of api_client_index
c0d532d session: mark apis for deprecation
src/vnet/ethernet/ethernet_types.api
8006c6a PAPI: Add MACAddress object wrapper for vl_api_mac_address_t
src/vnet/bonding/bond.api
ad9d528 bonding: support custom interface IDs
src/vnet/devices/tap/tapv2.api
754f24b tapv2: add "tap_flags" field to the TAPv2 interface API
src/vlibmemory/memclnt.api
eaec2a6 bapi: add options to have vpp cleanup client registration
src/vpp/api/vpe.api
f49ba0e stats: Deprecate old stats framework
413f4a5 API: Use string type instead of u8.
src/plugins/acl/acl.api
bb5d22d New api in order to get max entries of connection table is added.
src/plugins/nsim/nsim.api
10c5ff1 nsim: add packet loss simulation, docs
src/plugins/gbp/gbp.api
1c17e2e GBP: add allowed ethertypes to contracts
b6a4795 GBP: l3-out subnets
33b81da vom: Add support for redirect contracts in gbp
13a08cc GBP: redirect contracts
c29c0af GBP: Endpoints with VLAN tags and birdges that don't learn
93cc3ee GBP Endpoint Learning
src/plugins/nat/nat.api
b686508 NAT44: nat44_add_del_lb_static_mapping enhancements (VPP-1514)
src/plugins/map/map.api
fc7344f MAP: Convert from DPO to input feature.
f34597f MAP: Add API support for MAP input feature.
5a2e278 MAP: Add API support for setting parameters.
a173a7a MAP: Use bool type in map.api instead of u8.
ffba3c3 MAP: Use explicit address/prefix types in API
src/plugins/igmp/igmp.api
97748ca IGMP: proxy device