Release notes for VPP 19.01 =========================== More than 649 commits since the 18.10 release. Features -------- Infrastructure ~~~~~~~~~~~~~~ - NUMA-aware, growable physical memory allocator (pmalloc) - FIB: sticky load-balance - C11 safe string handling: provide and use “safe” C string handling functions - vlib: allocate buffers on local numa, not on numa 1 - vppinfra: autodetect default hugepage size - Move RPC traffic off the shared-memory API queue - IPv6: Make link-local configurable per-interface - IGMP: improve CLI debug output - IPSec: split ipsec nodes into ip4/ip6 nodes - IPSec: infra for selecting backends - vhost-user: cleanup and performance optimizations - ethernet-input, memif improvements and optimizations - DPDK: bump to DPDK 18.11 - reassembly: harden reassembly code - stats: Deprecate old (event-based) stats framework - vlib: support Hyper-V/Azure VMBus - binary api clients: wait for vpp to start - graph dispatch trace: capture packet data and buffer metadata, output in pcap format - improve feature arc order constraint specification VNET & Plugins ~~~~~~~~~~~~~~ - pktgen: correctly replay a mix of single and multi-buffer packets - add wireshark dissector to extras - avf: optimizations - acl-plugin: use L2 feature arc instead of L2 classifier - acl-plugin: performance enhancement - dpdk: allow interface name to be specified from startup.conf - dpdk: blacklist PCI devices by type - dpdk: switch to in-memory mode, deprecate use of socket-mem - vnet: store hw interface speed in kbps instead of using flags - vmxnet3: enable promiscuous mode & cli enhancements - gbp: Add support for flow hash profile & l3-out subnets - map: Add API support for setting parameters. - map: Convert from DPO to input feature - nat: improve expired sessions reuse in NAT44 - nat: syslog - sessions logging - nsim: add packet loss simulation, docs - perfmon: x86_64 perf counter plugin - vnet: L2 feature arc infrastructure Host stack ~~~~~~~~~~ - TCP congestion control improvements - TCP Cubic congestion control algorithm - TCP fast path optimizations - Transport tx connection pacer. TCP uses it by default - Basic support for session flushing and TCP PSH segments - TCP/session api support for configuring custom local src ip/port - VCL/LDP basic support for multi-process applications - Overall code hardening, cleanup and bugfixing for tcp, session, vcl and ldp PAPI & Test framework ~~~~~~~~~~~~~~~~~~~~~ - add specific API types for IP addresses, MAC address, interface index etc. - add timeout support for socket transport - add support for format/unformat functions - generic API types format/unformat support for VAT and custom dump - python3 test adjustments - make test: create virtualenv under /test/ - make test: print TEST= values for failed tests - add human-friendly annotations to log messages VOM ~~~ - Add support for redirect contracts in gbp - deprecate TAP add ip-punt redirect dump - vxlan-gbp support 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 Results =============================================== ================== acl_plugin_get_conn_table_max_entries only in image acl_plugin_get_conn_table_max_entries_reply only in image app_worker_add_del definition changed app_worker_add_del_reply definition changed application_attach_reply definition changed bd_ip_mac_add_del definition changed bd_ip_mac_details definition changed bd_ip_mac_flush only in image bd_ip_mac_flush_reply only in image bond_create definition changed cli_inband definition changed cli_inband_reply definition changed gbp_bridge_domain_add only in image gbp_bridge_domain_add_reply only in image gbp_bridge_domain_del only in image gbp_bridge_domain_del_reply only in image gbp_bridge_domain_details only in image gbp_bridge_domain_dump only in image gbp_bridge_domain_dump_reply only in image gbp_endpoint_details definition changed gbp_endpoint_group_add only in image gbp_endpoint_group_add_del only in file gbp_endpoint_group_add_del_reply only in file gbp_endpoint_group_add_reply only in image gbp_endpoint_group_del only in image gbp_endpoint_group_del_reply only in image gbp_endpoint_learn_set_inactive_threshold only in image gbp_endpoint_learn_set_inactive_threshold_reply only in image gbp_ext_itf_add_del only in image gbp_ext_itf_add_del_reply only in image gbp_ext_itf_details only in image gbp_ext_itf_dump only in image gbp_route_domain_add only in image gbp_route_domain_add_reply only in image gbp_route_domain_del only in image gbp_route_domain_del_reply only in image gbp_route_domain_details only in image gbp_route_domain_dump only in image gbp_route_domain_dump_reply only in image gbp_vxlan_tunnel_add only in image gbp_vxlan_tunnel_add_reply only in image gbp_vxlan_tunnel_del only in image gbp_vxlan_tunnel_del_reply only in image gbp_vxlan_tunnel_details only in image gbp_vxlan_tunnel_dump only in image igmp_proxy_device_add_del only in image igmp_proxy_device_add_del_interface only in image igmp_proxy_device_add_del_interface_reply only in image igmp_proxy_device_add_del_reply only in image ip6_mfib_details definition changed ip_container_proxy_details only in image ip_container_proxy_dump only in image ip_mfib_details definition changed ip_punt_redirect definition changed ip_punt_redirect_details only in image ip_punt_redirect_dump only in image ip_source_check_interface_add_del only in image ip_source_check_interface_add_del_reply only in image ipip_6rd_add_tunnel_reply definition changed ipip_6rd_del_tunnel definition changed ipip_add_tunnel_reply definition changed ipip_del_tunnel definition changed ipip_tunnel_details definition changed ipip_tunnel_dump definition changed ipsec_backend_details only in image ipsec_backend_dump only in image ipsec_sa_details definition changed ipsec_select_backend only in image ipsec_select_backend_reply only in image ipsec_tunnel_if_add_del definition changed map_add_del_rule definition changed map_add_domain definition changed map_another_segment definition changed map_domain_details definition changed map_if_enable_disable only in image map_if_enable_disable_reply only in image map_param_add_del_pre_resolve only in image map_param_add_del_pre_resolve_reply only in image map_param_get only in image map_param_get_reply only in image map_param_set_fragmentation only in image map_param_set_fragmentation_reply only in image map_param_set_icmp6 only in image map_param_set_icmp6_reply only in image map_param_set_icmp only in image map_param_set_icmp_reply only in image map_param_set_reassembly only in image map_param_set_reassembly_reply only in image map_param_set_security_check only in image map_param_set_security_check_reply only in image map_param_set_tcp only in image map_param_set_tcp_reply only in image map_param_set_traffic_class only in image map_param_set_traffic_class_reply only in image map_rule_details definition changed memclnt_delete definition changed nat44_add_del_lb_static_mapping definition changed nat44_lb_static_mapping_add_del_local only in image nat44_lb_static_mapping_add_del_local_reply only in image nat44_lb_static_mapping_details definition changed nsim_configure definition changed punt only in file punt_details only in image punt_dump only in image punt_reply only in file punt_socket_deregister definition changed punt_socket_details only in image punt_socket_dump only in image punt_socket_register definition changed set_ip_flow_hash definition changed set_punt only in image set_punt_reply only in image show_version_reply definition changed stats_get_poller_delay only in file stats_get_poller_delay_reply only in file sw_interface_bond_details definition changed sw_interface_details definition changed sw_interface_ip6_set_link_local_address only in file sw_interface_ip6_set_link_local_address_reply only in file sw_interface_tap_v2_details definition changed syslog_get_filter only in image syslog_get_filter_reply only in image syslog_get_sender only in image syslog_get_sender_reply only in image syslog_set_filter only in image syslog_set_filter_reply only in image syslog_set_sender only in image syslog_set_sender_reply only in image tap_create_v2 definition changed unmap_segment definition changed vnet_bier_neighbor_counters only in file vnet_get_summary_stats only in file vnet_get_summary_stats_reply only in file vnet_interface_combined_counters only in file vnet_interface_simple_counters only in file vnet_ip4_fib_counters only in file vnet_ip4_mfib_counters only in file vnet_ip4_nbr_counters only in file vnet_ip6_fib_counters only in file vnet_ip6_mfib_counters only in file vnet_ip6_nbr_counters only in file vnet_per_interface_combined_counters only in file vnet_per_interface_simple_counters only in file vnet_udp_encap_counters only in file want_bier_neighbor_stats only in file want_bier_neighbor_stats_reply only in file want_interface_combined_stats only in file want_interface_combined_stats_reply only in file want_interface_simple_stats only in file want_interface_simple_stats_reply only in file want_ip4_fib_stats only in file want_ip4_fib_stats_reply only in file want_ip4_mfib_stats only in file want_ip4_mfib_stats_reply only in file want_ip4_nbr_stats only in file want_ip4_nbr_stats_reply only in file want_ip6_fib_stats only in file want_ip6_fib_stats_reply only in file want_ip6_mfib_stats only in file want_ip6_mfib_stats_reply only in file want_ip6_nbr_stats only in file want_ip6_nbr_stats_reply only in file want_per_interface_combined_stats only in file want_per_interface_combined_stats_reply only in file want_per_interface_simple_stats only in file want_per_interface_simple_stats_reply only in file want_stats only in file want_stats_reply only in file want_udp_encap_stats only in file want_udp_encap_stats_reply only in file =============================================== ================== Found 170 api message signature differences Patches that changed API definitions ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ``src/vnet/interface_types.api`` * `53fffa1 `_ API: Add support for type aliases ``src/vnet/interface.api`` * `f49ba0e `_ stats: Deprecate old stats framework * `53fffa1 `_ API: Add support for type aliases * `5100aa9 `_ vnet: store hw interface speed in kbps instead of using flags ``src/vnet/syslog/syslog.api`` * `b4515b4 `_ Add RFC5424 syslog protocol support (VPP-1139) ``src/vnet/fib/fib_types.api`` * `775f73c `_ FIB: encode the label stack in the FIB path during table dump ``src/vnet/ip/ip.api`` * `7c03ed4 `_ VOM: mroutes * `3460b01 `_ api: ip_source_check_interface_add_del api is added. * `609e121 `_ VPP-1507: Added binary api to dump configured ip_punt_redirect * `2af0e3a `_ flow-hash: Add symmetric flag for flow hashing * `47527b2 `_ IP-punt: add documentation to the API and fix IP address init * `5bb1eca `_ IPv6: Make link-local configurable per-interface (VPP-1446) * `75b9f45 `_ ip: add container proxy dump API (VPP-1364) ``src/vnet/ip/ip_types.api`` * `8c8acc0 `_ API: Change ip4_address and ip6_address to use type alias. * `ffba3c3 `_ MAP: Use explicit address/prefix types in API ``src/vnet/ip/punt.api`` * `e88865d `_ VPP-1506: dump local punts and registered punt sockets ``src/vnet/ipsec/ipsec.api`` * `4c422f9 `_ Add IPSec interface FIB index for TX packet * `b4a7a7d `_ Add UDP encap flag * `b4d3053 `_ ipsec: infra for selecting backends * `871bca9 `_ VPP-1450: binary api call for dumping SPD to interface registration ``src/vnet/l2/l2.api`` * `e26c81f `_ L2 BD API to flush all IP-MAC entries in the specified BD * `8006c6a `_ PAPI: Add MACAddress object wrapper for vl_api_mac_address_t * `93cc3ee `_ GBP Endpoint Learning * `4d5b917 `_ BD ARP entry use common API types ``src/vnet/vxlan-gbp/vxlan_gbp.api`` * `93cc3ee `_ GBP Endpoint Learning ``src/vnet/ipip/ipip.api`` * `53fffa1 `_ API: Add support for type aliases ``src/vnet/session/session.api`` * `d85de68 `_ vcl: wait for segments with segment handle * `fa76a76 `_ session: segment handle in accept/connect notifications * `c1f5a43 `_ session: cleanup use of api_client_index * `c0d532d `_ session: mark apis for deprecation ``src/vnet/ethernet/ethernet_types.api`` * `8006c6a `_ PAPI: Add MACAddress object wrapper for vl_api_mac_address_t ``src/vnet/bonding/bond.api`` * `ad9d528 `_ bonding: support custom interface IDs ``src/vnet/devices/tap/tapv2.api`` * `754f24b `_ tapv2: add "tap_flags" field to the TAPv2 interface API ``src/vlibmemory/memclnt.api`` * `eaec2a6 `_ bapi: add options to have vpp cleanup client registration ``src/vpp/api/vpe.api`` * `f49ba0e `_ stats: Deprecate old stats framework * `413f4a5 `_ API: Use string type instead of u8. ``src/plugins/acl/acl.api`` * `bb5d22d `_ New api in order to get max entries of connection table is added. ``src/plugins/nsim/nsim.api`` * `10c5ff1 `_ nsim: add packet loss simulation, docs ``src/plugins/gbp/gbp.api`` * `1c17e2e `_ GBP: add allowed ethertypes to contracts * `b6a4795 `_ GBP: l3-out subnets * `33b81da `_ vom: Add support for redirect contracts in gbp * `13a08cc `_ GBP: redirect contracts * `c29c0af `_ GBP: Endpoints with VLAN tags and birdges that don't learn * `93cc3ee `_ GBP Endpoint Learning ``src/plugins/nat/nat.api`` * `b686508 `_ NAT44: nat44_add_del_lb_static_mapping enhancements (VPP-1514) ``src/plugins/map/map.api`` * `fc7344f `_ MAP: Convert from DPO to input feature. * `f34597f `_ MAP: Add API support for MAP input feature. * `5a2e278 `_ MAP: Add API support for setting parameters. * `a173a7a `_ MAP: Use bool type in map.api instead of u8. * `ffba3c3 `_ MAP: Use explicit address/prefix types in API ``src/plugins/igmp/igmp.api`` * `97748ca `_ IGMP: proxy device