Release notes for VPP 23.06 =========================== More than 298 commits since the previous release, including 145 fixes. Features -------- - Build System - Allow skipping external-deps (`9db6db065 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=9db6db065>`_) - Add Rocky Linux 9 support (`184a70a58 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=184a70a58>`_) - Infrastructure Library - Native poly1305 implementation (`003330c55 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=003330c55>`_) - Add AMD EPYC cpu family details (`6a1a83234 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=6a1a83234>`_) - Multiarch support for AMD EPYC processors (`206592bb7 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=206592bb7>`_) - Plugins - AVF Device driver - Enable rss action of flow (`21121f60d <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=21121f60d>`_) - DPDK - Add intf tag to dev{} subinput (`4fe09e9f2 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=4fe09e9f2>`_) - Enable Google Virtual Ethernet (`e10ace267 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=e10ace267>`_) - Code preparation for bumping to DPDK 22.11 (`efad24a84 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=efad24a84>`_) - Bump to DPDK 22.11 (`efcf1befc <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=efcf1befc>`_) - Code preparation for bumping to DPDK 23.03 (`648006b3c <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=648006b3c>`_) - Bump to DPDK 23.03 (`df6a00f58 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=df6a00f58>`_) - Host Stack Applications - Add an option to configure ns in http cli (`f96b6c65f <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=f96b6c65f>`_) - IP session redirect - Add session redirect plugin (`83e73709c <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=83e73709c>`_) - RDMA (ibverb) driver - Bump to 43.0 (`6f8335282 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=6f8335282>`_) - Bump version to 45.0 (`0e8ec6468 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=0e8ec6468>`_) - Memif device driver - Autogenerate socket\_ids (`8b213ee65 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=8b213ee65>`_) - Support dma option (`cada0c507 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=cada0c507>`_) - VNET - FLOW - Introduce IP in IP support for flow (`99d3a4054 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=99d3a4054>`_) - IPSec - Add per-SA error counters (`ad95b0618 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=ad95b0618>`_) - IPv4 LPM - Support flow-hash gtpv1teid (`b23c6f4f2 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=b23c6f4f2>`_) - MPLS - Implement state change callbacks (`ae48ffb50 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=ae48ffb50>`_) - Segment Routing (IPv6 and MPLS) - Support define src ipv6 per encap policy (`c4c205b09 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=c4c205b09>`_) - Session Layer - Add session stats (`ac3c8dcb0 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=ac3c8dcb0>`_) - VPP StrongSwan Daemon - Allow SAs to be used to the route-based IPsec (`fc2d95d11 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=fc2d95d11>`_) - Vector Library - Stop worker threads on main loop exit (`d1dc1060d <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=d1dc1060d>`_) Known issues ------------ For the full list of issues please refer to fd.io `JIRA <https://jira.fd.io>`_. Fixed issues ------------ For the full list of fixed issues please refer to: - fd.io `JIRA <https://jira.fd.io>`_ - git `commit log <https://git.fd.io/vpp/log/?h=master>`_ 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 ============================================================= ================== app_namespace_add_del_v4 only in image app_namespace_add_del_v4_reply only in image application_tls_cert_add only in file application_tls_cert_add_reply only in file application_tls_key_add only in file application_tls_key_add_reply only in file ip_session_redirect_add only in image ip_session_redirect_add_reply only in image ip_session_redirect_add_v2 only in image ip_session_redirect_add_v2_reply only in image ip_session_redirect_del only in image ip_session_redirect_del_reply only in image memif_create_v2 only in image memif_create_v2_reply only in image memif_socket_filename_add_del_v2 only in image memif_socket_filename_add_del_v2_reply only in image nat44_ed_vrf_tables_v2_details only in image nat44_ed_vrf_tables_v2_dump only in image nsh_add_del_entry only in file nsh_add_del_entry_reply only in file nsh_add_del_map only in file nsh_add_del_map_reply only in file nsh_entry_details only in file nsh_entry_dump only in file nsh_map_details only in file nsh_map_dump only in file pcap_trace_off only in image pcap_trace_off_reply only in image pcap_trace_on only in image pcap_trace_on_reply only in image policer_add only in image policer_add_reply only in image policer_bind_v2 only in image policer_bind_v2_reply only in image policer_del only in image policer_del_reply only in image policer_dump_v2 only in image policer_input_v2 only in image policer_input_v2_reply only in image policer_output_v2 only in image policer_output_v2_reply only in image policer_reset only in image policer_reset_reply only in image policer_update only in image policer_update_reply only in image set_ip_flow_hash_v3 only in image set_ip_flow_hash_v3_reply only in image sr_policies_v2_details only in image sr_policies_v2_dump only in image sr_policy_add_v2 only in image sr_policy_add_v2_reply only in image sr_policy_mod_v2 only in image sr_policy_mod_v2_reply only in image sw_interface_ip6nd_ra_details only in image sw_interface_ip6nd_ra_dump only in image trace_clear_cache only in image trace_clear_cache_reply only in image trace_v2_details only in image trace_v2_dump only in image ============================================================= ================== Found 59 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. - app_namespace_add_del_v2 - app_namespace_add_del_v2_reply - app_namespace_add_del_v3 - app_namespace_add_del_v3_reply - app_namespace_add_del_v4 - nat44_ed_vrf_tables_details - nat44_ed_vrf_tables_dump - rdma_create_reply - rdma_create_v2_reply 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_add_v2 - flow_add_v2_reply - flow_del - flow_del_reply - flow_disable - flow_disable_reply - flow_enable - flow_enable_reply - flowprobe_get_params - flowprobe_get_params_reply - flowprobe_interface_add_del - flowprobe_interface_add_del_reply - flowprobe_interface_details - flowprobe_interface_dump - flowprobe_set_params - flowprobe_set_params_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 - ip_session_redirect_add - ip_session_redirect_add_reply - ip_session_redirect_add_v2 - ip_session_redirect_add_v2_reply - ip_session_redirect_del - ip_session_redirect_del_reply - l2_emulation - l2_emulation_reply - lcp_default_ns_get_reply - lcp_default_ns_set - lcp_default_ns_set_reply - lcp_itf_pair_add_del - lcp_itf_pair_add_del_reply - lcp_itf_pair_add_del_v2 - lcp_itf_pair_details - mdata_enable_disable - mdata_enable_disable_reply - nat44_ed_vrf_tables_v2_details - nat44_ed_vrf_tables_v2_dump - 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_user_session_v2_details - nat44_ei_user_session_v2_dump - nat44_ei_worker_details - nat44_ei_worker_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_add_v2 - pnat_binding_add_v2_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 - set_ip_flow_hash_v3 - set_ip_flow_hash_v3_reply - sr_localsids_with_packet_stats_details - sr_localsids_with_packet_stats_dump - sr_policies_v2_details - sr_policies_with_sl_index_details - sr_policies_with_sl_index_dump - sr_policy_add_v2 - sr_policy_add_v2_reply - sr_policy_mod_v2 - sr_policy_mod_v2_reply - sw_interface_ip6nd_ra_details - sw_interface_ip6nd_ra_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_cache - trace_clear_cache_reply - trace_clear_capture - trace_clear_capture_reply - trace_details - trace_dump - trace_dump_reply - trace_set_filters - trace_set_filters_reply - trace_v2_details - trace_v2_dump - 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 - wg_set_async_mode - wg_set_async_mode_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/vnet/policer/policer.api`` * `2d1a62bfd <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=2d1a62bfd>`_ policer: API policer selection by index ``src/vnet/policer/policer_types.api`` * `2d1a62bfd <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=2d1a62bfd>`_ policer: API policer selection by index ``src/vnet/ip6-nd/ip6_nd.api`` * `3b28fd730 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=3b28fd730>`_ ip6-nd: support dump/details for IPv6 RA ``src/vnet/flow/flow.api`` * `39d7699c2 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=39d7699c2>`_ api: Mark old message versions as deprecated ``src/vnet/srv6/sr.api`` * `c4c205b09 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=c4c205b09>`_ sr: support define src ipv6 per encap policy ``src/vnet/interface.api`` * `ddc16cfcf <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=ddc16cfcf>`_ api: pcap capture api update ``src/vnet/session/session.api`` * `51f1b26e8 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=51f1b26e8>`_ session: update due to clib_socket refactoring * `c9fac2111 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=c9fac2111>`_ api: Remove deprecated message from API ``src/vnet/ip/ip.api`` * `b23c6f4f2 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=b23c6f4f2>`_ ip: support flow-hash gtpv1teid ``src/plugins/rdma/rdma.api`` * `9db32048d <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=9db32048d>`_ api: Mark old message versions as deprecated ``src/plugins/gre/gre.api`` * `cefb178aa <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=cefb178aa>`_ gre: move to a plugin ``src/plugins/ip_session_redirect/ip_session_redirect.api`` * `83e73709c <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=83e73709c>`_ ip_session_redirect: add session redirect plugin ``src/plugins/tracedump/tracedump.api`` * `02063b985 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=02063b985>`_ misc: fix tracedump API to match CLI behavior ``src/plugins/lb/lb_types.api`` * `2cebd4270 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=2cebd4270>`_ lb: improve formatting in lb_types.api ``src/plugins/nat/nat44-ed/nat44_ed.api`` * `d9df16503 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=d9df16503>`_ nat: adding a new api nat44_ed_vrf_tables_v2_dump ``src/plugins/vxlan/vxlan.api`` * `8bd4db599 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=8bd4db599>`_ vxlan: convert vxlan to a plugin ``src/plugins/memif/memif.api`` * `cada0c507 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=cada0c507>`_ memif: support dma option * `8b213ee65 <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=8b213ee65>`_ memif: autogenerate socket_ids ``src/plugins/linux-cp/lcp.api`` * `139b2da5c <https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commit;h=139b2da5c>`_ vppapigen: enable codegen for stream message types