Release notes for VPP 18.10

More than 632 commits since the 18.07 release.

Features

Infrastructure

  • DPDK 18.08 integration

  • New Stats infrastructure (interface, error, node performance counters)

  • Add configurable “Doug Lea malloc” support

VNET & Plugins

  • Load balancing: support per-port VIP and all-port VIP

  • Port NSH plugin to VPP

  • NAT

    • Configurable port range

    • Virtual Fragmentation Reassembly for endpoint-dependent mode

    • Client-IP based session affinity for load-balancing

    • TCP MSS clamping

    • Session timeout

    • Bug-fixing and performance optimizations

Host stack

  • Support for applications with multiple workers

  • Support for binds from multiple app workers to same ip:port

  • Switched to a message queue for io and control event notifications

  • Support for eventfd based notifications as alternative to mutext-condvar pair

  • VCL refactor to support async event notifications and multiple workers

  • TLS async support in client for HW accleration

  • Performance optimizations and bug-fixing

  • A number of binary APIs will be deprecated in favor of using the event message queue. Details in the API section.

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:

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
    

    api_versions_reply definition changed app_cut_through_registration_add definition changed app_worker_add_del definition changed application_attach_reply definition changed bd_ip_mac_details only in image bd_ip_mac_dump only in image bfd_udp_get_echo_source definition changed bier_imp_details definition changed bier_route_details definition changed bind_sock definition changed bridge_domain_details definition changed bridge_flags definition changed classify_add_del_session definition changed classify_add_del_table definition changed connect_sock definition changed create_vhost_user_if definition changed get_first_msg_id_reply definition changed gpe_add_del_fwd_entry_reply definition changed gpe_fwd_entry_path_details definition changed ip6_fib_details definition changed ip6nd_proxy_details definition changed ip_add_del_route_reply definition changed ip_address_details definition changed ip_details definition changed ip_fib_details definition changed ip_mfib_details definition changed ip_mroute_add_del_reply definition changed ip_neighbor_add_del_reply definition changed ip_neighbor_details definition changed ip_reassembly_get_reply definition changed ip_unnumbered_details definition changed ipip_6rd_add_tunnel definition changed ipip_add_tunnel definition changed ipsec_spds_details only in image ipsec_spds_dump only in image l2_interface_efp_filter definition changed lisp_eid_table_vni_details definition changed map_another_segment definition changed mfib_signal_details definition changed mpls_route_add_del_reply definition changed mpls_tunnel_add_del definition changed mpls_tunnel_add_del_reply definition changed mpls_tunnel_details definition changed mpls_tunnel_dump definition changed one_eid_table_vni_details definition changed qos_mark_enable_disable definition changed qos_record_enable_disable definition changed reset_session_reply definition changed rpc_call definition changed show_threads definition changed sockclnt_create_reply definition changed sockclnt_delete definition changed sockclnt_delete_reply definition changed sw_interface_rx_placement_details only in image sw_interface_rx_placement_dump only in image sw_interface_set_ip_directed_broadcast definition changed sw_interface_set_l2_bridge definition changed sw_interface_set_rx_placement definition changed sw_interface_set_vxlan_gbp_bypass definition changed udp_encap_add definition changed udp_encap_add_del_reply only in file udp_encap_add_reply only in image udp_encap_del definition changed udp_encap_details definition changed unbind_sock definition changed vxlan_gbp_tunnel_add_del definition changed vxlan_gbp_tunnel_details only in image vxlan_gbp_tunnel_dump only in image Found 68 api message signature differences

Patches that changed API definitions

src/plugins/avf/avf.api

src/plugins/gbp/gbp.api

src/plugins/igmp/igmp.api

  • bdc0e6b7 Trivial: Clean up some typos.

src/plugins/lb/lb.api

  • 6a4375e0 LB: fix flush flow table issue

  • 49ca2601 Add flush flag on del as command

  • 219cc90c Support lb on both vip and per-port-vip case

src/plugins/nat/nat.api

  • bb4e0225 NAT: TCP MSS clamping

  • 5d28c7af NAT: add support for configurable port range (VPP-1346)

  • ea5b5be4 NAT44: client-IP based session affinity for load-balancing (VPP-1297)

  • 878c646a NAT44: add support for session timeout (VPP-1272)

  • 69ce30d6 NAT: update nat_show_config_reply API (VPP-1403)

  • 6bd197eb Remove client_index field from replies in API

  • c6c0d2a0 NAT44: LB NAT - local backends in multiple VRFs (VPP-1345)

src/plugins/vmxnet3/vmxnet3.api

src/plugins/nsh/nsh.api

src/plugins/nsim/nsim.api

  • 9e3252b5 Network delay simulator plugin

src/plugins/svs/svs.api

src/vlibmemory/memclnt.api

  • 94495f2a PAPI: Use UNIX domain sockets instead of shared memory

  • 6bd197eb Remove client_index field from replies in API

  • 75282457 Fix “Old Style VLA” build warnings

src/vnet/interface.api

  • f0b42f48 itf: dump interface rx-placement

  • bdc0e6b7 Trivial: Clean up some typos.

  • 54f7c51f rx-placement: Add API call for interface rx-placement

  • 1855b8e4 IP directed broadcast

src/vnet/bfd/bfd.api

  • 2d3c7b9c BFD: add get echo source API (VPP-1367)

src/vnet/bier/bier.api

  • ef90ed08 BIER API and load-balancing fixes

  • 6bd197eb Remove client_index field from replies in API

src/vnet/classify/classify.api

  • 34eb5d42 classify_add_del_session API: Use more descriptive docstring (VPP-1385)

  • 75282457 Fix “Old Style VLA” build warnings

src/vnet/devices/pipe/pipe.api

src/vnet/devices/virtio/vhost_user.api

  • ee2e58f6 vhost-user: Add disable feature support in api

src/vnet/ethernet/ethernet_types.api

  • de5b08fb Introduce a mac_address_t on the API and in VPP

src/vnet/ip/ip_types.api

  • d0df49f2 Use IP address types on UDP encap API

src/vnet/ip/ip.api

  • 412ecd32 Improve ip_mroute_add_del documentation

  • 14260393 Add adjacency counters to the stats segment

  • 28c142e3 mroute routers in the stats segment

  • 008dbe10 Route counters in the stats segment

  • de5b08fb Introduce a mac_address_t on the API and in VPP

  • 6bd197eb Remove client_index field from replies in API

  • b11f903a Fix context field position in API definition

src/vnet/ipip/ipip.api

  • 61502115 IPIP and SIXRD tunnels create API needs table-IDs not fib-indexes

src/vnet/ipsec/ipsec.api

  • a9a0b2ce IPsec: add API for SPDs dump (VPP-1363)

  • bdc0e6b7 Trivial: Clean up some typos.

src/vnet/l2/l2.api

  • 0a4e0063 Fix documentation about sw_interface_set_l2_bridge

  • b474380f L2 BD: introduce a BD interface on which to send UU packets

  • bdc0e6b7 Trivial: Clean up some typos.

  • 5c7c49d1 Fix documentation for SHG in bridge domain

  • 5d82d2f1 l2: arp termination dump

  • 6b9b41c8 L2 EFP: byteswap sw_if_index, enable flag can be u8 on .api

src/vnet/lisp-cp/lisp.api

  • bdc0e6b7 Trivial: Clean up some typos.

  • 6bd197eb Remove client_index field from replies in API

src/vnet/lisp-cp/one.api

  • bdc0e6b7 Trivial: Clean up some typos.

  • 6bd197eb Remove client_index field from replies in API

src/vnet/lisp-gpe/lisp_gpe.api

  • 6bd197eb Remove client_index field from replies in API

  • b11f903a Fix context field position in API definition

src/vnet/mpls/mpls.api

  • f5fa5ae2 MPLS tunnel dump: use sw_if_index not tunnel_index

  • 6a30b5f9 MPLS tunnel dump fix

  • 008dbe10 Route counters in the stats segment

  • 7c922dc4 SR-MPLS: fixes and tests

src/vnet/qos/qos.api

  • bdc0e6b7 Trivial: Clean up some typos.

  • ed234e7f Enum type on the API for QoS sources

src/vnet/session/session.api

  • ab2f6dbf session: support multiple worker binds

  • 134a996a vcl: add support for multi-worker apps

  • 1553197f session: add support for multiple app workers

  • 6bd197eb Remove client_index field from replies in API

  • 99368315 vcl: support for eventfd mq signaling

src/vnet/span/span.api

  • bdc0e6b7 Trivial: Clean up some typos.

src/vnet/udp/udp.api

  • 9c0a3c42 UDP-Encap: name counters for the stats segment

  • d0df49f2 Use IP address types on UDP encap API

src/vnet/unix/tap.api

  • bdc0e6b7 Trivial: Clean up some typos.

src/vnet/vxlan-gbp/vxlan_gbp.api

  • 79a05f54 VXLAN-GBP: use common types on the API

  • 61b94c6b vxlan-gbp: Add support for vxlan gbp

src/vpp/api/vpe.api

src/vpp/stats/stats.api

Notice of future API deprecation

  • bind_uri_reply

  • accept_session

  • accept_session_reply

  • disconnect_session_reply

  • reset_session

  • reset_session_reply

  • bind_sock_reply

  • connect_session_reply