Release notes for VPP 21.01
Release Highlights
The FD.io VPP 20.09 release comprises more than 562 commits since the previous release, including 274 fixes. Notable changes in this release were the Virtio driver adding packet buffering on the transmit path to handle slow back-ends which often have jitter and delays in free’ing buffers, and also adding support for Virtio 1.1 packed rings. FD.io VPP IPSEC added support for multi-point on IPSec interfaces, brings the meshed benefits of IP to IPSec tunnels. The FD.io VPP Cloud NAT (CNAT), added support source NAT ICMP and DHCP. The FD.io VPP FIB added support for source address selection (SAS) and flow hashing on the inner packets. Finally the FD.io VPP Perfmon plugin has been substantially rewritten, to support measuring bundles of counters, and reporting statistics per graph node.
Reflecting the API change policy introduced in the 20.09, please review the following sections below: - Newly deprecated API messages: please note that if you are using a deprecated message, they will soon be removed in a subsequent release. Collaborate with the feature maintainer on the best approach to mitigate. - In-progress API messages: They are work-in-progress, and are not subject to the policy, and may change or even be removed at any time. Please collaborate with the feature maintainer on plans to productize the message before using in any product. In-progress APIs must eventually become stable or be removed.
Features
Binary API Libraries
Vat2 and JSON autogeneration for API messages (df87f8092)
Plugins
AF_XDP driver
Add option to claim all available RX queues (d4e109138)
CNat
Crypto - ipsecmb
Bump to intel-ipsec-mb version 0.55 (b5df85e24)
DPDK
Internet Key Exchange (IKEv2) Protocol
RDMA (ibverb) driver
Add RSS support for IPv6 and TCP (91603958d)
VRRP
Asynchronous events on VR state change (78f487e11)
Wireguard
Return public key in API (de22111b5)
Flowprobe
Add show commands for params and list of interfaces for recording (d1146f6dd)
Python binding for the VPP API
add support for enumflag part 1 of 2 (3825d93af)
SVM Library
Support for multi-segment enqueues (c95cfa218)
Statistics Segment
Counters data model (148c7b768)
VNET
FIB
Feature Arcs
Add packet trace API (c0b195450)
IPSec
Native Virtio Drivers
Segment Routing (IPv6 and MPLS)
Session Layer
TAP Drivers
VPP Comms Library
VPP Executable
Use VPP heap for libc (ec4749a20)
Vector Library - Buffer Management
Add page-size config (61559029d)
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 |
---|---|
classify_pcap_get_tables |
only in image |
classify_pcap_get_tables_reply |
only in image |
classify_pcap_lookup_table |
only in image |
classify_pcap_lookup_table_reply |
only in image |
classify_pcap_set_table |
only in image |
classify_pcap_set_table_reply |
only in image |
classify_trace_get_tables |
only in image |
classify_trace_get_tables_reply |
only in image |
classify_trace_lookup_table |
only in image |
classify_trace_lookup_table_reply |
only in image |
classify_trace_set_table |
only in image |
classify_trace_set_table_reply |
only in image |
cnat_get_snat_addresses |
only in image |
cnat_get_snat_addresses_reply |
only in image |
cnat_session_details |
definition changed |
cnat_set_snat_addresses |
definition changed |
cnat_translation_details |
definition changed |
cnat_translation_update |
definition changed |
det44_plugin_enable_disable |
definition changed |
graph_node_details |
only in image |
graph_node_get |
only in image |
graph_node_get_reply |
only in image |
ikev2_profile_details |
definition changed |
ikev2_profile_disable_natt |
only in image |
ikev2_profile_disable_natt_reply |
only in image |
ikev2_profile_set_ts |
definition changed |
ikev2_sa_details |
definition changed |
ikev2_set_responder |
definition changed |
ikev2_traffic_selector_details |
definition changed |
ip_mroute_add_del |
definition changed |
ip_mroute_details |
definition changed |
ip_neighbor_event_v2 |
only in image |
ipsec_sa_v2_details |
only in image |
ipsec_sa_v2_dump |
only in image |
ipsec_sad_entry_add_del_v2 |
only in image |
ipsec_sad_entry_add_del_v2_reply |
only in image |
nat44_plugin_enable_disable |
only in image |
nat44_plugin_enable_disable_reply |
only in image |
nat44_show_running_config |
only in image |
nat44_show_running_config_reply |
only in image |
nat64_get_timeouts |
only in image |
nat64_get_timeouts_reply |
only in image |
nat64_plugin_enable_disable |
only in image |
nat64_plugin_enable_disable_reply |
only in image |
nat64_set_timeouts |
only in image |
nat64_set_timeouts_reply |
only in image |
pppoe_add_del_cp |
only in image |
pppoe_add_del_cp_reply |
only in image |
rdma_create_v2 |
only in image |
rdma_create_v2_reply |
only in image |
sw_vmxnet3_interface_details |
only in image |
sw_vmxnet3_interface_dump |
only in image |
trace_capture_packets |
only in image |
trace_capture_packets_reply |
only in image |
trace_clear_capture |
only in image |
trace_clear_capture_reply |
only in image |
trace_details |
definition changed |
trace_set_filters |
only in image |
trace_set_filters_reply |
only in image |
vrrp_vr_event |
only in image |
want_ip_neighbor_events_v2 |
only in image |
want_ip_neighbor_events_v2_reply |
only in image |
want_vrrp_vr_events |
only in image |
want_vrrp_vr_events_reply |
only in image |
wireguard_interface_create |
definition changed |
wireguard_interface_details |
definition changed |
Found 66 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.
geneve_add_del_tunnel
ip_neighbor_event
nat44_forwarding_enable_disable
nat44_forwarding_enable_disable_reply
nat44_forwarding_is_enabled
nat44_forwarding_is_enabled_reply
nat44_session_cleanup
nat44_session_cleanup_reply
nat_control_ping
nat_control_ping_reply
nat_get_timeouts
nat_get_timeouts_reply
nat_ipfix_enable_disable
nat_ipfix_enable_disable_reply
nat_set_log_level
nat_set_log_level_reply
nat_set_timeouts
nat_set_timeouts_reply
nat_show_config
nat_show_config_2
nat_show_config_2_reply
nat_show_config_reply
rdma_create
vmxnet3_dump
want_ip_neighbor_events
want_ip_neighbor_events_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
adl_allowlist_enable_disable
adl_allowlist_enable_disable_reply
adl_interface_enable_disable
adl_interface_enable_disable_reply
af_xdp_create
af_xdp_create_reply
af_xdp_delete
af_xdp_delete_reply
cnat_add_del_snat_prefix
cnat_add_del_snat_prefix_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_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_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
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_show_running_config
nat44_show_running_config_reply
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
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_enum
test_enum_reply
test_prefix
test_prefix_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
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_remove
wireguard_peer_remove_reply
wireguard_peers_details
wireguard_peers_dump
Patches that changed API definitions
src/vpp/api/vpe_types.api
dc01471be api: add missing version info
src/vat2/test/vat2_test.api
58a6e7725 api: crchcecker ignore version < 1.0.0 and outside of src directory
510aaa891 api: crchcecker ignore version < 1.0.0 and outside of src directory
793be4632 api: fromjson/tojson enum flag support
src/vnet/mpls/mpls.api
df87f8092 api: vat2 and json autogeneration for api messages
src/vnet/ipip/ipip.api
33c45f56a fib: supporting inner flow hash on tunnels
src/vnet/vxlan-gbp/vxlan_gbp.api
b468773aa vxlan-gbp: Mark APIs as in-progress
src/vnet/ipsec/ipsec.api
src/vnet/ipsec/ipsec_types.api
041add7d1 ipsec: Tunnel SA DSCP behaviour
src/vnet/tunnel/tunnel_types.api
src/vnet/classify/classify.api
5c1e48c01 classify: add pcap/trace classfier mgmt API calls
src/vnet/ipfix-export/ipfix_export.api
f6cf57ceb misc: fix api in ipfix_classify_table_add/details
src/vnet/mfib/mfib_types.api
dc01471be api: add missing version info
990f69450 ip: convert u32 entry_flags to vl_api_mfib_entry_flags_t on mroute API
src/vnet/gre/gre.api
33c45f56a fib: supporting inner flow hash on tunnels
src/vnet/ip/ip_types.api
6dc0c8d14 ip: Sub Address Family types. Feature enable for each SAFI
src/vnet/ip/ip.api
df87f8092 api: vat2 and json autogeneration for api messages
990f69450 ip: convert u32 entry_flags to vl_api_mfib_entry_flags_t on mroute API
src/vnet/ethernet/ethernet_types.api
dc01471be api: add missing version info
src/vnet/l2/l2.api
df87f8092 api: vat2 and json autogeneration for api messages
src/vnet/cop/cop.api
src/vnet/crypto/crypto.api
8c91b2ae2 crypto: Crypto set handler API to support set all as CLI
src/vnet/devices/virtio/virtio.api
e347acbc3 virtio: add packet buffering on transmit path
f916414b3 api: clean up use of deprecated flag
src/vnet/interface_types.api
dc01471be api: add missing version info
src/vnet/ip-neighbor/ip_neighbor.api
4ac36bcb1 ip-neighbor: Send API event when neighbor is removed
src/vnet/policer/policer_types.api
dc01471be api: add missing version info
src/vnet/srv6/sr_types.api
dc01471be api: add missing version info
src/plugins/map/map.api
src/plugins/nat/nat64/nat64.api
1f36023d2 nat: move nat64 to a subfeature
src/plugins/nat/det44/det44.api
d1762e614 nat: det44 plugin fix style and api cleanup
f916414b3 api: clean up use of deprecated flag
src/plugins/nat/nat44.api
df87f8092 api: vat2 and json autogeneration for api messages
25fd8ad03 nat: cleanup & reorganization
b227aa699 nat: api,cli and test update & cleanup
src/plugins/nat/nat_types.api
25fd8ad03 nat: cleanup & reorganization
src/plugins/lisp/lisp-cp/one.api
2b202bc4b lisp: Move to plugin
src/plugins/lisp/lisp-cp/lisp.api
src/plugins/lisp/lisp-cp/lisp_types.api
2b202bc4b lisp: Move to plugin
src/plugins/lisp/lisp-gpe/lisp_gpe.api
2b202bc4b lisp: Move to plugin
src/plugins/nsim/nsim.api
f916414b3 api: clean up use of deprecated flag
src/plugins/lb/lb_types.api
dc01471be api: add missing version info
src/plugins/lb/lb.api
df87f8092 api: vat2 and json autogeneration for api messages
src/plugins/pppoe/pppoe.api
340b10a38 pppoe: make pppoe plugin work with dot1q subinterfaces
src/plugins/geneve/geneve.api
3a6adc52f geneve: Move to plugin
src/plugins/vmxnet3/vmxnet3.api
490e077fb vmxnet3: add sw_if_index filter to vmxnet3 interface dump
src/plugins/wireguard/wireguard.api
de22111b5 wireguard: return public key in api
src/plugins/l2tp/l2tp.api
6810a77da misc: Move l2tp to plugin
src/plugins/acl/acl.api
df87f8092 api: vat2 and json autogeneration for api messages
src/plugins/acl/acl_types.api
dc01471be api: add missing version info
src/plugins/rdma/rdma.api
798267aaa rdma: implement multiseg rx without striding rq
src/plugins/ikev2/ikev2.api
d7fc12f07 ikev2: add option to disable NAT traversal
84962d19b ikev2: support ipv6 traffic selectors & overlay
src/plugins/ikev2/ikev2_types.api
dc01471be api: add missing version info
d7fc12f07 ikev2: add option to disable NAT traversal
84962d19b ikev2: support ipv6 traffic selectors & overlay
src/plugins/cnat/cnat.api
src/plugins/tracedump/tracedump.api
c0b195450 feature: Add packet trace API
src/plugins/tracedump/graph.api
c0b195450 feature: Add packet trace API
src/plugins/vrrp/vrrp.api
78f487e11 vrrp: asynchronous events on VR state change
src/plugins/flowprobe/flowprobe.api
df87f8092 api: vat2 and json autogeneration for api messages
src/plugins/lldp/lldp.api
3f9fdd984 lldp: Move to plugin
src/plugins/memif/memif.api
6223766f9 libmemif: clean up typos
src/plugins/dns/dns.api
df87f8092 api: vat2 and json autogeneration for api messages
src/plugins/stn/stn.api
df87f8092 api: vat2 and json autogeneration for api messages
src/plugins/af_xdp/af_xdp.api
d4e109138 af_xdp: add option to claim all available rx queues
src/plugins/gbp/gbp.api
df87f8092 api: vat2 and json autogeneration for api messages