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