Release notes for VPP 22.02

More than 517 commits since the previous release, including 229 fixes.

Release Highlights

This release would have had this section very short, if not for a last minute issue which warrants some attention. The issue is caused by changes related to MTU and Ethernet Maximum Frame Size (DPDK commit 990912e676ec742d9b8d9f6f64c8a7c892d1ae75). DPDK 21.11 changed, among other things, the way it deals with the Ethernet Maximum Frame Size. This triggered the downstream changes in VPP, providing an opportunity to improve the handling of MTU configuration within the code. Changes to VPP MTU configuration were submitted in gerrit change 34843.

In particular, vnet_hw_interface_set_mtu() was updated to return the error codes from the underlying driver. This function also returns an error code, when it is called on a logical interface. Due to the new behavior of returning proper error code(s) by vnet_hw_interface_set_mtu (), the API call hw_interface_set_mtu potentially returns more errors than before. This issue was discovered in CSIT tests that were setting interface HW MTU in more places than they should and/or setting the MTU size to a value that was affected by the DPDK code change, in turn returning an error code from drivers whose Maximum Frame Size was less then the configured HW MTU.

Another item worth mentioning is an improvement to wireguard encryption/decryption path - the implementation of the async mode. The aim is to provide better performance for the feature (commits: 492d7790f and 77e69ae2d1)

Features

  • Infrastructure Library

  • Plugins

    • Crypto - ipsecmb

    • DPDK

    • HSI

    • IPv6 Segment Routing Mobile

  • SVM Library

    • Add support for thresh dequeue notification (fb079585c)

  • Sphinx Documents

  • VNET

    • Device Drivers

    • IPSec

      • Record the number of packets lost from an SA (e11203e5b)

    • IPv4 LPM

      • Add classifier-based ACLs support on ip punt (abb2a4223)

    • Interface Common

      • Add multi tx-queues support for new tx infra (0d05c0d21)

      • Add interface monitor cli (162ff5e41)

    • Session Layer

    • TAP Drivers

  • VPP Comms Library

  • Vector Library

  • Gomemif

Known issues

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

Fixed issues

For the full list of fixed issues please refer to: - fd.io JIRA - git commit log

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

af_packet_create_v2

only in image

af_packet_create_v2_reply

only in image

af_xdp_create_v2

only in image

af_xdp_create_v2_reply

only in image

gbp_bridge_domain_add

only in file

gbp_bridge_domain_add_reply

only in file

gbp_bridge_domain_del

only in file

gbp_bridge_domain_del_reply

only in file

gbp_bridge_domain_details

only in file

gbp_bridge_domain_dump

only in file

gbp_bridge_domain_dump_reply

only in file

gbp_contract_add_del

only in file

gbp_contract_add_del_reply

only in file

gbp_contract_details

only in file

gbp_contract_dump

only in file

gbp_endpoint_add

only in file

gbp_endpoint_add_reply

only in file

gbp_endpoint_del

only in file

gbp_endpoint_del_reply

only in file

gbp_endpoint_details

only in file

gbp_endpoint_dump

only in file

gbp_endpoint_group_add

only in file

gbp_endpoint_group_add_reply

only in file

gbp_endpoint_group_del

only in file

gbp_endpoint_group_del_reply

only in file

gbp_endpoint_group_details

only in file

gbp_endpoint_group_dump

only in file

gbp_ext_itf_add_del

only in file

gbp_ext_itf_add_del_reply

only in file

gbp_ext_itf_details

only in file

gbp_ext_itf_dump

only in file

gbp_recirc_add_del

only in file

gbp_recirc_add_del_reply

only in file

gbp_recirc_details

only in file

gbp_recirc_dump

only in file

gbp_route_domain_add

only in file

gbp_route_domain_add_reply

only in file

gbp_route_domain_del

only in file

gbp_route_domain_del_reply

only in file

gbp_route_domain_details

only in file

gbp_route_domain_dump

only in file

gbp_route_domain_dump_reply

only in file

gbp_subnet_add_del

only in file

gbp_subnet_add_del_reply

only in file

gbp_subnet_details

only in file

gbp_subnet_dump

only in file

gbp_vxlan_tunnel_add

only in file

gbp_vxlan_tunnel_add_reply

only in file

gbp_vxlan_tunnel_del

only in file

gbp_vxlan_tunnel_del_reply

only in file

gbp_vxlan_tunnel_details

only in file

gbp_vxlan_tunnel_dump

only in file

ipfix_all_exporter_details

only in image

ipfix_all_exporter_get

only in image

ipfix_all_exporter_get_reply

only in image

ipfix_exporter_create_delete

only in image

ipfix_exporter_create_delete_reply

only in image

l2_emulation

only in file

l2_emulation_reply

only in file

nat44_ed_add_del_output_interface

only in image

nat44_ed_add_del_output_interface_reply

only in image

nat44_ed_output_interface_details

only in image

nat44_ed_output_interface_get

only in image

nat44_ed_output_interface_get_reply

only in image

nat44_ei_add_del_output_interface

only in image

nat44_ei_add_del_output_interface_reply

only in image

nat44_ei_output_interface_details

only in image

nat44_ei_output_interface_get

only in image

nat44_ei_output_interface_get_reply

only in image

nat44_user_session_v2_details

only in image

nat44_user_session_v2_dump

only in image

punt_acl_add_del

only in image

punt_acl_add_del_reply

only in image

session_sapi_enable_disable

only in image

session_sapi_enable_disable_reply

only in image

sw_interface_set_tx_placement

only in image

sw_interface_set_tx_placement_reply

only in image

sw_interface_set_vxlan_gbp_bypass

only in file

sw_interface_set_vxlan_gbp_bypass_reply

only in file

sw_interface_tx_placement_details

only in image

sw_interface_tx_placement_get

only in image

sw_interface_tx_placement_get_reply

only in image

tap_create_v3

only in image

tap_create_v3_reply

only in image

vxlan_gbp_tunnel_add_del

only in file

vxlan_gbp_tunnel_add_del_reply

only in file

vxlan_gbp_tunnel_details

only in file

vxlan_gbp_tunnel_dump

only in file

vxlan_gpe_add_del_tunnel_v2

only in image

vxlan_gpe_add_del_tunnel_v2_reply

only in image

vxlan_gpe_tunnel_v2_details

only in image

vxlan_gpe_tunnel_v2_dump

only in image

want_wireguard_peer_events

only in image

want_wireguard_peer_events_reply

only in image

wireguard_peer_add

definition changed

wireguard_peer_event

only in image

wireguard_peers_details

definition changed

wireguard_peers_dump

definition changed

Found 98 api message signature differences

Newly deprecated API messages

These messages are still there in the API, but can and probably will disappear in the next release.

  • nat44_interface_add_del_output_feature

  • nat44_interface_add_del_output_feature_reply

  • nat44_interface_output_feature_details

  • nat44_interface_output_feature_dump

In-progress API messages

These messages are provided for testing and experimentation only. They are not subject to any compatibility process, and therefore can arbitrarily change or disappear at any moment. Also they may have less than satisfactory testing, making them unsuitable for other use than the technology preview. If you are intending to use these messages in production projects, please collaborate with the feature maintainer on their productization.

  • abf_itf_attach_add_del

  • abf_itf_attach_add_del_reply

  • abf_itf_attach_details

  • abf_itf_attach_dump

  • abf_plugin_get_version

  • abf_plugin_get_version_reply

  • abf_policy_add_del

  • abf_policy_add_del_reply

  • abf_policy_details

  • abf_policy_dump

  • acl_plugin_use_hash_lookup_get

  • acl_plugin_use_hash_lookup_get_reply

  • acl_plugin_use_hash_lookup_set

  • acl_plugin_use_hash_lookup_set_reply

  • adl_allowlist_enable_disable

  • adl_allowlist_enable_disable_reply

  • adl_interface_enable_disable

  • adl_interface_enable_disable_reply

  • cnat_get_snat_addresses

  • cnat_get_snat_addresses_reply

  • cnat_session_details

  • cnat_session_dump

  • cnat_session_purge

  • cnat_session_purge_reply

  • cnat_set_snat_addresses

  • cnat_set_snat_addresses_reply

  • cnat_set_snat_policy

  • cnat_set_snat_policy_reply

  • cnat_snat_policy_add_del_exclude_pfx

  • cnat_snat_policy_add_del_exclude_pfx_reply

  • cnat_snat_policy_add_del_if

  • cnat_snat_policy_add_del_if_reply

  • cnat_translation_del

  • cnat_translation_del_reply

  • cnat_translation_details

  • cnat_translation_dump

  • cnat_translation_update

  • cnat_translation_update_reply

  • crypto_sw_scheduler_set_worker

  • crypto_sw_scheduler_set_worker_reply

  • det44_get_timeouts_reply

  • det44_interface_add_del_feature

  • det44_interface_add_del_feature_reply

  • det44_interface_details

  • det44_interface_dump

  • det44_plugin_enable_disable

  • det44_plugin_enable_disable_reply

  • det44_set_timeouts

  • det44_set_timeouts_reply

  • flow_add

  • flow_add_reply

  • flow_del

  • flow_del_reply

  • flow_disable

  • flow_disable_reply

  • flow_enable

  • flow_enable_reply

  • gbp_bridge_domain_add

  • gbp_bridge_domain_add_reply

  • gbp_bridge_domain_del

  • gbp_bridge_domain_del_reply

  • gbp_bridge_domain_details

  • gbp_bridge_domain_dump

  • gbp_bridge_domain_dump_reply

  • gbp_contract_add_del

  • gbp_contract_add_del_reply

  • gbp_contract_details

  • gbp_contract_dump

  • gbp_endpoint_add

  • gbp_endpoint_add_reply

  • gbp_endpoint_del

  • gbp_endpoint_del_reply

  • gbp_endpoint_details

  • gbp_endpoint_dump

  • gbp_endpoint_group_add

  • gbp_endpoint_group_add_reply

  • gbp_endpoint_group_del

  • gbp_endpoint_group_del_reply

  • gbp_endpoint_group_details

  • gbp_endpoint_group_dump

  • gbp_ext_itf_add_del

  • gbp_ext_itf_add_del_reply

  • gbp_ext_itf_details

  • gbp_ext_itf_dump

  • gbp_recirc_add_del

  • gbp_recirc_add_del_reply

  • gbp_recirc_details

  • gbp_recirc_dump

  • gbp_route_domain_add

  • gbp_route_domain_add_reply

  • gbp_route_domain_del

  • gbp_route_domain_del_reply

  • gbp_route_domain_details

  • gbp_route_domain_dump

  • gbp_route_domain_dump_reply

  • gbp_subnet_add_del

  • gbp_subnet_add_del_reply

  • gbp_subnet_details

  • gbp_subnet_dump

  • gbp_vxlan_tunnel_add

  • gbp_vxlan_tunnel_add_reply

  • gbp_vxlan_tunnel_del

  • gbp_vxlan_tunnel_del_reply

  • gbp_vxlan_tunnel_details

  • gbp_vxlan_tunnel_dump

  • ikev2_child_sa_details

  • ikev2_child_sa_dump

  • ikev2_initiate_del_child_sa

  • ikev2_initiate_del_child_sa_reply

  • ikev2_initiate_del_ike_sa

  • ikev2_initiate_del_ike_sa_reply

  • ikev2_initiate_rekey_child_sa

  • ikev2_initiate_rekey_child_sa_reply

  • ikev2_initiate_sa_init

  • ikev2_initiate_sa_init_reply

  • ikev2_nonce_get

  • ikev2_nonce_get_reply

  • ikev2_profile_add_del

  • ikev2_profile_add_del_reply

  • ikev2_profile_details

  • ikev2_profile_disable_natt

  • ikev2_profile_disable_natt_reply

  • ikev2_profile_dump

  • ikev2_profile_set_auth

  • ikev2_profile_set_auth_reply

  • ikev2_profile_set_id

  • ikev2_profile_set_id_reply

  • ikev2_profile_set_ipsec_udp_port

  • ikev2_profile_set_ipsec_udp_port_reply

  • ikev2_profile_set_liveness

  • ikev2_profile_set_liveness_reply

  • ikev2_profile_set_ts

  • ikev2_profile_set_ts_reply

  • ikev2_profile_set_udp_encap

  • ikev2_profile_set_udp_encap_reply

  • ikev2_sa_details

  • ikev2_sa_dump

  • ikev2_set_esp_transforms

  • ikev2_set_esp_transforms_reply

  • ikev2_set_ike_transforms

  • ikev2_set_ike_transforms_reply

  • ikev2_set_local_key

  • ikev2_set_local_key_reply

  • ikev2_set_responder

  • ikev2_set_responder_hostname

  • ikev2_set_responder_hostname_reply

  • ikev2_set_responder_reply

  • ikev2_set_sa_lifetime

  • ikev2_set_sa_lifetime_reply

  • ikev2_set_tunnel_interface

  • ikev2_set_tunnel_interface_reply

  • ikev2_traffic_selector_details

  • ikev2_traffic_selector_dump

  • ip_route_add_del_v2

  • ip_route_add_del_v2_reply

  • ip_route_lookup_v2

  • ip_route_lookup_v2_reply

  • ip_route_v2_details

  • ip_route_v2_dump

  • l2_emulation

  • l2_emulation_reply

  • mdata_enable_disable

  • mdata_enable_disable_reply

  • nat44_add_del_static_mapping_v2

  • nat44_add_del_static_mapping_v2_reply

  • nat44_ed_plugin_enable_disable

  • nat44_ed_plugin_enable_disable_reply

  • nat44_ed_set_fq_options

  • nat44_ed_set_fq_options_reply

  • nat44_ed_show_fq_options

  • nat44_ed_show_fq_options_reply

  • nat44_ei_add_del_address_range

  • nat44_ei_add_del_address_range_reply

  • nat44_ei_add_del_static_mapping

  • nat44_ei_add_del_static_mapping_reply

  • nat44_ei_address_details

  • nat44_ei_address_dump

  • nat44_ei_del_session

  • nat44_ei_del_session_reply

  • nat44_ei_del_user

  • nat44_ei_del_user_reply

  • nat44_ei_forwarding_enable_disable

  • nat44_ei_forwarding_enable_disable_reply

  • nat44_ei_ha_flush

  • nat44_ei_ha_flush_reply

  • nat44_ei_ha_resync

  • nat44_ei_ha_resync_completed_event

  • nat44_ei_ha_resync_reply

  • nat44_ei_ha_set_failover

  • nat44_ei_ha_set_failover_reply

  • nat44_ei_ha_set_listener

  • nat44_ei_ha_set_listener_reply

  • nat44_ei_interface_add_del_feature

  • nat44_ei_interface_add_del_feature_reply

  • nat44_ei_interface_details

  • nat44_ei_interface_dump

  • nat44_ei_ipfix_enable_disable

  • nat44_ei_ipfix_enable_disable_reply

  • nat44_ei_plugin_enable_disable

  • nat44_ei_plugin_enable_disable_reply

  • nat44_ei_set_addr_and_port_alloc_alg

  • nat44_ei_set_addr_and_port_alloc_alg_reply

  • nat44_ei_set_fq_options

  • nat44_ei_set_fq_options_reply

  • nat44_ei_set_mss_clamping

  • nat44_ei_set_mss_clamping_reply

  • nat44_ei_set_timeouts

  • nat44_ei_set_timeouts_reply

  • nat44_ei_set_workers

  • nat44_ei_set_workers_reply

  • nat44_ei_show_fq_options

  • nat44_ei_show_fq_options_reply

  • nat44_ei_show_running_config

  • nat44_ei_show_running_config_reply

  • nat44_ei_static_mapping_details

  • nat44_ei_static_mapping_dump

  • nat44_ei_user_details

  • nat44_ei_user_dump

  • nat44_ei_user_session_details

  • nat44_ei_user_session_dump

  • nat44_ei_worker_details

  • nat44_ei_worker_dump

  • nat44_show_running_config

  • nat44_show_running_config_reply

  • nat44_user_session_v2_details

  • nat44_user_session_v2_dump

  • nat64_plugin_enable_disable

  • nat64_plugin_enable_disable_reply

  • oddbuf_enable_disable

  • oddbuf_enable_disable_reply

  • pg_interface_enable_disable_coalesce

  • pg_interface_enable_disable_coalesce_reply

  • pnat_binding_add

  • pnat_binding_add_reply

  • pnat_binding_attach

  • pnat_binding_attach_reply

  • pnat_binding_del

  • pnat_binding_del_reply

  • pnat_binding_detach

  • pnat_binding_detach_reply

  • pnat_bindings_details

  • pnat_bindings_get

  • pnat_bindings_get_reply

  • pnat_interfaces_details

  • pnat_interfaces_get

  • pnat_interfaces_get_reply

  • sample_macswap_enable_disable

  • sample_macswap_enable_disable_reply

  • sr_policies_with_sl_index_details

  • sr_policies_with_sl_index_dump

  • sw_interface_set_vxlan_gbp_bypass

  • sw_interface_set_vxlan_gbp_bypass_reply

  • test_addresses

  • test_addresses2

  • test_addresses2_reply

  • test_addresses3

  • test_addresses3_reply

  • test_addresses_reply

  • test_empty

  • test_empty_reply

  • test_enum

  • test_enum_reply

  • test_interface

  • test_interface_reply

  • test_prefix

  • test_prefix_reply

  • test_string

  • test_string2

  • test_string2_reply

  • test_string_reply

  • test_vla

  • test_vla2

  • test_vla2_reply

  • test_vla3

  • test_vla3_reply

  • test_vla4

  • test_vla4_reply

  • test_vla5

  • test_vla5_reply

  • test_vla_reply

  • trace_capture_packets

  • trace_capture_packets_reply

  • trace_clear_capture

  • trace_clear_capture_reply

  • trace_details

  • trace_dump

  • trace_dump_reply

  • trace_set_filters

  • trace_set_filters_reply

  • vxlan_gbp_tunnel_add_del

  • vxlan_gbp_tunnel_add_del_reply

  • vxlan_gbp_tunnel_details

  • vxlan_gbp_tunnel_dump

  • want_wireguard_peer_events

  • want_wireguard_peer_events_reply

  • wireguard_interface_create

  • wireguard_interface_create_reply

  • wireguard_interface_delete

  • wireguard_interface_delete_reply

  • wireguard_interface_details

  • wireguard_interface_dump

  • wireguard_peer_add

  • wireguard_peer_add_reply

  • wireguard_peer_event

  • wireguard_peer_remove

  • wireguard_peer_remove_reply

  • wireguard_peers_details

  • wireguard_peers_dump

Patches that changed API definitions

src/vlibmemory/memclnt.api

src/vlibmemory/vlib.api

src/vnet/ipfix-export/ipfix_export.api

  • acb0d2d13 ipfix-export: add a new API to dump all exporters

  • d747dd950 ipfix-export: support creating multiple exporters

src/vnet/session/session.api

  • 7b3a3df26 session: Add session_sapi_enable_disable

src/vnet/fib/fib_types.api

src/vnet/qos/qos.api

src/vnet/devices/af_packet/af_packet.api

  • 7d0e30bc6 devices: Add queues params in create_if

src/vnet/devices/tap/tapv2.api

src/vnet/vxlan-gpe/vxlan_gpe.api

  • ea9629298 vxlan-gpe: add udp-port configuration support

src/vnet/classify/classify.api

  • abb2a4223 ip: add classifier-based ACLs support on ip punt

src/vnet/interface.api

  • 0d05c0d21 interface: add multi tx-queues support for new tx infra

src/plugins/wireguard/wireguard.api

  • 064b77c74 build: remove unnecessary executable bits

  • dd630d15d wireguard: add events for peer

src/plugins/nat/nat44-ed/nat44_ed.api

  • 4189108e1 nat: NAT44 ED api fix and improvement

  • c7164827a nat: nat44-ed add session timing out indicator in api (2)

src/plugins/nat/nat44-ei/nat44_ei.api

  • 1953da661 nat: nat44-ei configuration improvements

src/plugins/af_xdp/af_xdp.api

src/vpp/api/vpe.api

extras/deprecated/vnet/vxlan-gbp/vxlan_gbp.api

  • 3be9164f8 misc: deprecate gbp and its dependents

extras/deprecated/plugins/l2e/l2e.api

  • 3be9164f8 misc: deprecate gbp and its dependents

extras/deprecated/plugins/gbp/gbp.api

  • 3be9164f8 misc: deprecate gbp and its dependents