Release notes for VPP 19.08 =========================== More than 850 commits since the 19.04 release. Features -------- Infrastructure ~~~~~~~~~~~~~~ - API - API language: new types and limits support - Python API - add support for defaults - Export ip_types.api for out-of-tree plugins use - Refactor ipip.api with explicit types - DPDK - 19.05 integration - Remove bonding code - Rework extended stats - Debugging & Servicability - debug CLI leak-checker - vlib: add “memory-trace stats-segment” - vppapitrace JSON/API trace converter - ARP: add arp-disabled node - igmp: Trace more data from input packets - ip: Trace the packet from the punt node - Python API debug introspection improvements - Pin dependencies for make test infra - FEATURE.yaml meta-data infrastructure - tcp: add cc stats plotting tools - Packet tracer support for thread handoffs - libmemif: support for multi-thread connection establishment - svm - fifo ooo reads/writes with multiple chunks - support addition/removal of chunks to fifos - vppinfra - Mapped pcap file support - More AVX2 and AVX512 inlines - VLIB_INIT_FUNCTION sequencing rework - refactor spinlocks and rwlocks - add rbtree - add doubly linked list - rdma: bump rdma-core to v25.0 - stats - Add the number of worker threads and per worker thread vector rates - Support multiple workers for error counters VNET & Plugins ~~~~~~~~~~~~~~ - New Plugins - HTTP static page server with TLS support - L3 cross connect - acl: implement stat-segment counters - arp: add feature arcs: arp-reply, arp-input, arp-proxy - avf: improved logging and added 2.5/5 Gbps speeds - bonding: NUMA-related improvements - crypto: add support for AES-CTR cipher - fib - FIB Entry tracking - Support the POP of a Pseudo Wire Control Word - gbp - Anonymous l3-out subnets support - ARP unicast forward in gbp bridge domain - An Endpoint can change sclass - Consider data-plane learnt source better than control-plane - VRF scoped contracts - gso (experimental) - Add support to pg interfaces - Add support to vhost user - Add support to native virtio - Add support for tagged interfaces - punt: allow to specify packets by IP protocol Type - ip6-local: hop-by-hop protocol demux table - ipsec - intel-ipsec-mb version 0.52 - AH encrypt rework - handle UDP keepalives - support GCM in ESP - virtio - Refactor control queue support - dhcp-client: DSCP marking for transmitted packets - Idle resource usage improvements - Allocate bihash virtual space on demand - gre: don’t register gre input nodes unless a gre tunnel is created - gtpu: don’t register udp ports unless a tunnel is created - lacp: create lacp-process on demand - lisp-cp: start lisp retry service on demand - start the cdp period and dns resolver process on demand - vat: unload unused vat plugins - nat: api cleanup & update - nsim: make available as an output feature - load-balance performance improvements - l2: Add support for arp unicast forwarding - mactime - Mini-ACLs - Per-MAC allow-with-quota feature - qos - QoS dump APIs - Store function - rdma: add support for promiscuous mode (l2-switching and xconnect) - sr: update the Segment Routing definition to be compliant with current in IETF - udp-ping: disable due to conflict with mldv2 - vxlan-gpe: improve encap performance - vom - QoS support - Bridge domain arp unicast forwarding flag - Bridge domain unknown unicast flooding flag Host stack ~~~~~~~~~~ - session - API to support manual svm fifo resizing - Improved session output scheduler and close state machine - Transport and session cleanup notifications for builtin apps - Session migration notifications for builtin apps - Support for no session layer lookup transports (quic and tls) - Ability to retrieve local/remote endpoint in transport vft - Cleanup segment manager and fifo segment - Fix vpp to app msg generation on enqueue fail - Improve event logging - Moved test applications to hsa plugin - tcp - Congestion control algorithm enhancements - Delivery rate estimator - ACK/retransmission refactor and pacing - Add tcp-input sibling nodes without full 6-tuple lookup - More RFC4898 connection statistics - Allow custom output next node - Allow custom congestion control algorithms - quic - Multi-thread support - Logs readability improvements - Multistream support - tls - Fix close with data and listen failures - Handle TCP transport rests - Support endpoint retrieval interface - vcl - support quic streams and “connectable listeners” - worker unregister api - fix epoll with large events batch - ldp: add option to eanble transparent TLS connections - udp: - support close with data - fixed session migration - sctp - add option to enable/disable default to disable - moved from vnet to plugins 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: - 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 ============================================= ================== abf_itf_attach_add_del definition changed abf_itf_attach_details definition changed abf_policy_add_del definition changed abf_policy_details definition changed acl_add_replace definition changed acl_details definition changed acl_stats_intf_counters_enable only in image acl_stats_intf_counters_enable_reply only in image api_versions_reply definition changed bd_ip_mac_add_del definition changed bd_ip_mac_details definition changed bier_disp_entry_add_del definition changed bier_disp_entry_details definition changed bier_imp_add definition changed bier_imp_details definition changed bier_route_add_del definition changed bier_route_details definition changed bier_route_dump definition changed bier_table_add_del definition changed bier_table_details definition changed bond_create definition changed bridge_domain_add_del definition changed bridge_domain_details definition changed bridge_flags definition changed connect_sock definition changed create_vhost_user_if definition changed ct6_enable only in file ct6_enable_disable only in image ct6_enable_disable_reply only in image ct6_enable_disable only in file dhcp6_pd_reply_event definition changed dhcp6_pd_send_client_message definition changed dhcp6_reply_event definition changed dhcp6_send_client_message definition changed dhcp_client_config definition changed dhcp_client_details definition changed dhcp_compl_event definition changed dhcp_proxy_details definition changed dslite_add_del_pool_addr_range definition changed dslite_address_details definition changed dslite_get_aftr_addr_reply definition changed dslite_get_b4_addr_reply definition changed dslite_set_aftr_addr definition changed dslite_set_b4_addr definition changed gbp_bridge_domain_add definition changed gbp_bridge_domain_details definition changed gbp_contract_add_del definition changed gbp_contract_details definition changed gbp_endpoint_add definition changed gbp_endpoint_details definition changed gbp_endpoint_group_add definition changed gbp_endpoint_group_details definition changed gbp_ext_itf_add_del definition changed gbp_ext_itf_details definition changed gbp_recirc_add_del definition changed gbp_recirc_details definition changed gbp_route_domain_add definition changed gbp_route_domain_details definition changed gbp_subnet_add_del definition changed gbp_subnet_details definition changed gbp_vxlan_tunnel_add definition changed gbp_vxlan_tunnel_details definition changed get_f64_endian_value only in image get_f64_endian_value_reply only in image get_f64_increment_by_one only in image get_f64_increment_by_one_reply only in image gpe_add_del_fwd_entry definition changed gpe_fwd_entries_get_reply definition changed gpe_fwd_entry_path_details definition changed gpe_native_fwd_rpaths_get_reply definition changed gre_add_del_tunnel only in file gre_add_del_tunnel_reply only in file gre_tunnel_add_del only in image gre_tunnel_add_del_reply only in image gre_tunnel_details definition changed gre_tunnel_dump definition changed http_static_enable only in image http_static_enable_reply only in image igmp_event definition changed igmp_group_prefix_details definition changed igmp_group_prefix_set definition changed igmp_listen definition changed ip6_fib_details only in file ip6_fib_dump only in file ip6_mfib_details only in file ip6_mfib_dump only in file ip6_ra_event definition changed ip_add_del_route only in file ip_add_del_route_reply only in file ip_address_details definition changed ip_container_proxy_add_del definition changed ip_container_proxy_details definition changed ip_fib_details only in file ip_fib_dump only in file ip_mfib_details only in file ip_mfib_dump only in file ip_mroute_add_del definition changed ip_mroute_details only in image ip_mroute_dump only in image ip_mtable_details only in image ip_mtable_dump only in image ip_neighbor_add_del definition changed ip_neighbor_details definition changed ip_probe_neighbor definition changed ip_punt_redirect definition changed ip_punt_redirect_details definition changed ip_reassembly_get_reply definition changed ip_reassembly_set definition changed ip_route_add_del only in image ip_route_add_del_reply only in image ip_route_details only in image ip_route_dump only in image ip_source_and_port_range_check_add_del definition changed ip_table_add_del definition changed ip_table_details only in image ip_table_dump only in image ipfix_flush only in image ipfix_flush_reply only in image ipip_6rd_add_tunnel definition changed ipip_add_tunnel definition changed ipip_tunnel_details definition changed ipsec_backend_details definition changed ipsec_gre_tunnel_add_del only in file ipsec_gre_tunnel_add_del_reply only in file ipsec_gre_tunnel_details only in file ipsec_gre_tunnel_dump only in file ipsec_sa_details definition changed ipsec_sa_set_key only in file ipsec_sa_set_key_reply only in file ipsec_sad_entry_add_del definition changed ipsec_select_backend definition changed ipsec_spd_details definition changed ipsec_spd_entry_add_del definition changed ipsec_tunnel_if_add_del definition changed ipsec_tunnel_if_set_key only in file ipsec_tunnel_if_set_key_reply only in file ipsec_tunnel_protect_del only in image ipsec_tunnel_protect_del_reply only in image ipsec_tunnel_protect_details only in image ipsec_tunnel_protect_dump only in image ipsec_tunnel_protect_update only in image ipsec_tunnel_protect_update_reply only in image l2_macs_event definition changed l3xc_del only in image l3xc_del_reply only in image l3xc_details only in image l3xc_dump only in image l3xc_plugin_get_version only in image l3xc_plugin_get_version_reply only in image l3xc_update only in image l3xc_update_reply only in image lb_add_del_as definition changed lb_add_del_vip definition changed lb_as_details only in image lb_as_dump only in image lb_flush_vip definition changed lb_vip_details only in image lb_vip_dump only in image lisp_add_del_locator_set definition changed lisp_add_del_remote_mapping definition changed lisp_adjacencies_get_reply definition changed log_details only in image log_dump only in image macip_acl_add definition changed macip_acl_add_replace definition changed macip_acl_details definition changed mactime_add_del_range definition changed map_add_domain definition changed map_domain_details definition changed mfib_signal_details definition changed modify_vhost_user_if definition changed mpls_fib_details only in file mpls_fib_dump only in file mpls_ip_bind_unbind definition changed mpls_route_add_del definition changed mpls_route_details only in image mpls_route_dump only in image mpls_table_add_del definition changed mpls_table_details only in image mpls_table_dump only in image mpls_tunnel_add_del definition changed mpls_tunnel_details definition changed nat44_add_del_address_range definition changed nat44_add_del_identity_mapping definition changed nat44_add_del_interface_addr definition changed nat44_add_del_lb_static_mapping definition changed nat44_add_del_static_mapping definition changed nat44_address_details definition changed nat44_del_session definition changed nat44_forwarding_enable_disable definition changed nat44_forwarding_is_enabled_reply definition changed nat44_identity_mapping_details definition changed nat44_interface_add_del_feature definition changed nat44_interface_add_del_output_feature definition changed nat44_interface_addr_details definition changed nat44_interface_details definition changed nat44_interface_output_feature_details definition changed nat44_lb_static_mapping_add_del_local definition changed nat44_lb_static_mapping_details definition changed nat44_static_mapping_details definition changed nat44_user_details definition changed nat44_user_session_details definition changed nat44_user_session_dump definition changed nat64_add_del_interface_addr definition changed nat64_add_del_interface definition changed nat64_add_del_pool_addr_range definition changed nat64_add_del_prefix definition changed nat64_add_del_static_bib definition changed nat64_bib_details definition changed nat64_interface_details definition changed nat64_pool_addr_details definition changed nat64_prefix_details definition changed nat64_st_details definition changed nat66_add_del_interface definition changed nat66_add_del_static_mapping definition changed nat66_interface_details definition changed nat66_static_mapping_details definition changed nat_det_add_del_map definition changed nat_det_close_session_in definition changed nat_det_close_session_out definition changed nat_det_forward definition changed nat_det_forward_reply definition changed nat_det_map_details definition changed nat_det_reverse definition changed nat_det_reverse_reply definition changed nat_det_session_details definition changed nat_det_session_dump definition changed nat_get_mss_clamping_reply definition changed nat_ipfix_enable_disable definition changed nat_reass_details definition changed nat_set_log_level only in image nat_set_log_level_reply only in image nat_set_mss_clamping definition changed nat_set_reass definition changed nat_show_config_reply definition changed nat_worker_details definition changed nsim_cross_connect_enable_disable only in image nsim_cross_connect_enable_disable_reply only in image nsim_enable_disable only in file nsim_enable_disable_reply only in file nsim_output_feature_enable_disable only in image nsim_output_feature_enable_disable_reply only in image oam_add_del only in file oam_add_del_reply only in file oam_event only in file one_add_del_locator_set definition changed one_add_del_remote_mapping definition changed one_adjacencies_get_reply definition changed one_l2_arp_entries_get_reply definition changed one_ndp_entries_get_reply definition changed p2p_ethernet_add definition changed p2p_ethernet_add_reply definition changed p2p_ethernet_del definition changed pg_create_interface definition changed proxy_arp_add_del definition changed proxy_arp_details definition changed punt_details only in file punt_dump only in file punt_reason_details only in image punt_reason_dump only in image punt_socket_deregister definition changed punt_socket_details definition changed punt_socket_dump definition changed punt_socket_register definition changed qos_egress_map_delete definition changed qos_egress_map_details only in image qos_egress_map_dump only in image qos_egress_map_update definition changed qos_mark_details only in image qos_mark_details_reply only in image qos_mark_dump only in image qos_mark_enable_disable definition changed qos_record_details only in image qos_record_dump only in image qos_record_enable_disable definition changed qos_store_details only in image qos_store_dump only in image qos_store_enable_disable only in image qos_store_enable_disable_reply only in image sctp_add_src_dst_connection only in file sctp_add_src_dst_connection_reply only in file sctp_config only in file sctp_config_reply only in file sctp_del_src_dst_connection only in file sctp_del_src_dst_connection_reply only in file set_punt definition changed show_threads_reply definition changed show_vpe_system_time only in image show_vpe_system_time_reply only in image sockclnt_create_reply definition changed sr_localsid_add_del definition changed sr_localsids_details definition changed sr_policies_details definition changed sr_policy_add definition changed sr_policy_del definition changed sr_policy_mod definition changed sr_steering_pol_details definition changed svs_details definition changed svs_enable_disable definition changed svs_route_add_del definition changed svs_table_add_del definition changed sw_interface_bond_details definition changed sw_interface_dump definition changed sw_interface_ip6_set_link_local_address only in image sw_interface_ip6_set_link_local_address_reply only in image sw_interface_ip6nd_ra_prefix definition changed sw_interface_set_l2_bridge definition changed sw_interface_tap_v2_details definition changed syslog_get_filter_reply definition changed syslog_set_filter definition changed tap_create_v2 definition changed udp_encap_add definition changed udp_encap_details definition changed virtio_pci_create definition changed vmxnet3_details definition changed vxlan_gbp_tunnel_add_del definition changed vxlan_gbp_tunnel_details definition changed want_oam_events only in file want_oam_events_reply only in file ============================================= ================== Found 319 api message signature differences Patches that changed API definitions ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ``src/vpp/api/vpe_types.api`` * `a47a5f20a `_ api papi: add alias for timestamp(datetime)/timedelta * `3cf9e67f5 `_ api: add vl_api_version_t type ``src/vpp/api/vpe.api`` * `a47a5f20a `_ api papi: add alias for timestamp(datetime)/timedelta * `888640a39 `_ map gbp papi: match endianess of f64 * `03f1af23b `_ api: Implement log_dump/log_details * `c87b66c86 `_ ipsec: ipsec-tun protect * `9ac113815 `_ API: Add support for limits to language. ``src/examples/sample-plugin/sample/sample.api`` * `78d91cf9a `_ sample-plugin: refactor .api to use explicit types ``src/vnet/interface.api`` * `0ad4a439d `_ Fix vpp crash bug while deleting dhcp client * `9a29f795a `_ vpp_papi_provider.py: update defautmapping. * `b8591ac91 `_ API sw_interface_dump: Dump all if index is zero * `4a7240636 `_ Make sw_interface_dump more compatible with 2.2.0 * `6407ba56a `_ api: Add to interface crud - read by sw_if_index. ``src/vnet/qos/qos.api`` * `83832e7ce `_ qos: Store function * `5281a9029 `_ qos: QoS dump APIs ``src/vnet/bier/bier.api`` * `097fa66b9 `_ fib: fib api updates * `e6eefb6e3 `_ Trivial Typo's in bier comments/docs. ``src/vnet/ipfix-export/ipfix_export.api`` * `21b83e96d `_ api: implement ipfix_flush ``src/vnet/session/session.api`` * `8ac1d6d05 `_ session: Use parent_handle instead of transport_opts * `ba65ca496 `_ Add transport_opts to connect_sock bapi ``src/vnet/gre/gre.api`` * `814f15948 `_ gre: update gre.api with explicit types * `d0aed2eb3 `_ GRE: set gre_tunnel_type init value to zero in API * `5a8844bdb `_ GRE: API update ``src/vnet/pg/pg.api`` * `22e9cfd76 `_ pg: add GSO support ``src/vnet/l2/l2.api`` * `bc764c8bc `_ l2: BD ARP termination entry API update * `54bc5e40c `_ Update API description * `5e6f7348c `_ l2: Add support for arp unicast forwarding ``src/vnet/udp/udp.api`` * `10dc2eabd `_ udp: fix copyright typo ``src/vnet/devices/tap/tapv2.api`` * `97d54ed43 `_ tap: add support to configure tap interface host MTU size ``src/vnet/devices/virtio/vhost_user.api`` * `4208a4ce8 `_ devices interface tests: vhosst GSO support ``src/vnet/devices/virtio/virtio.api`` * `bbd6b746e `_ virtio: Add gso support for native virtio driver * `43b512cac `_ virtio: remove configurable queue size support ``src/vnet/mfib/mfib_types.api`` * `097fa66b9 `_ fib: fib api updates ``src/vnet/ipsec/ipsec.api`` * `c87b66c86 `_ ipsec: ipsec-tun protect * `f2922422d `_ ipsec: remove the set_key API * `80f6fd53f `_ IPSEC: Pass the algorithm salt (used in GCM) over the API ``src/vnet/ethernet/p2p_ethernet.api`` * `8edca1361 `_ p2p ethernet: update p2p_ethernet.api with explicit types. ``src/vnet/bonding/bond.api`` * `751e3f382 `_ bonding: add support for numa-only in lacp mode ``src/vnet/mpls/mpls.api`` * `097fa66b9 `_ fib: fib api updates ``src/vnet/ipip/ipip.api`` * `288e09362 `_ ipip: refactor ipip.api with explicit types * `cbd0824d6 `_ IPIP tunnel: use address types on API ``src/vnet/fib/fib_types.api`` * `1dbcf30b7 `_ fib: Support the POP of a Psuedo Wire Control Word * `097fa66b9 `_ fib: fib api updates ``src/vnet/dhcp/dhcp.api`` * `038e1dfbd `_ dhcp ip: DSCP settings for transmitted DHCP packets * `56bc738dc `_ Fix VPP-1487 DHCP client does not support option 6-domain server ``src/vnet/ip/punt.api`` * `719beb709 `_ ip ipsec: Remove IPSec SPI-0 punt reason * `b538dd868 `_ Punt: specify packets by IP protocol Type * `50f0ac0f0 `_ Punt: socket register for exception dispatched/punted packets based on reason ``src/vnet/ip/ip.api`` * `097fa66b9 `_ fib: fib api updates * `3a343d42d `_ reassembly: prevent long chain attack ``src/vnet/ip/ip_types.api`` * `515eed425 `_ api: add prefix matcher typedef * `038e1dfbd `_ dhcp ip: DSCP settings for transmitted DHCP packets * `53c501512 `_ api: add DSCP definitions to ip_types.api * `ab05508e1 `_ api: refactor format_vl_api_prefix_t return keys * `b538dd868 `_ Punt: specify packets by IP protocol Type * `50f0ac0f0 `_ Punt: socket register for exception dispatched/punted packets based on reason ``src/plugins/l3xc/l3xc.api`` * `59fa121f8 `_ L3 cross connect ``src/plugins/map/map.api`` * `4d376f67a `_ map: Use vl_api_string macros. ``src/plugins/http_static/http_static.api`` * `68b24e2c9 `_ plugins: http_static. Migrate to use api string type. * `22bc2c46e `_ Static http server ``src/plugins/igmp/igmp.api`` * `4ff09ae34 `_ API: Python and Unix domain socket improvement ``src/plugins/sctp/sctp.api`` * `3ffe6cadf `_ sctp: move to plugins, disabled by default ``src/plugins/lb/lb.api`` * `3efcd0d7c `_ lb: vip and as dump/detail api's * `a0cb32cb9 `_ lb: update api.c to use scaffolding from latest skel ``src/plugins/lb/lb_types.api`` * `3efcd0d7c `_ lb: vip and as dump/detail api's ``src/plugins/mactime/mactime.api`` * `7681b1c46 `_ mactime: add per-mac allow-with-quota feature * `0c6ac791d `_ mactime: upstream new features ``src/plugins/gbp/gbp.api`` * `3918bdbcb `_ gbp: update gbp-ext-itf API * `3c0d84c98 `_ gbp: add anonymous l3-out subnets * `cfc7a107e `_ gbp: add anonymous l3-out external interfaces * `160c923f9 `_ gbp: VRF scoped contracts ``src/plugins/acl/acl_types.api`` * `bb2e5221a `_ api acl: breakout acl_types.api for reuse by others ``src/plugins/acl/acl.api`` * `bb2e5221a `_ api acl: breakout acl_types.api for reuse by others * `f995c7122 `_ acl: implement counters ``src/plugins/nat/nat.api`` * `e6e09a4ac `_ nat: elog rewrite for multi-worker support * `c1f93067e `_ Add default value for API Nat flags * `dd1e3e780 `_ NAT: VPP-1531 api cleanup & update * `89fec713f `_ Revert "NAT: VPP-1531 api cleanup & update" * `bed1421b9 `_ NAT: VPP-1531 api cleanup & update ``src/plugins/abf/abf.api`` * `097fa66b9 `_ fib: fib api updates ``src/plugins/nsim/nsim.api`` * `7c91007e1 `_ Make the loss / delay sim available as an output feature