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: - 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 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`` * `149d0e28 `_ avf: RSS support * `4e6014fc `_ avf: api fix ``src/plugins/gbp/gbp.api`` * `c0a93143 `_ GBP Endpoint Updates * `61b94c6b `_ vxlan-gbp: Add support for vxlan gbp ``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`` * `df7f8e8c `_ vmxnet3 device driver ``src/plugins/nsh/nsh.api`` * `d313f9e6 `_ Port NSH plugin to VPP ``src/plugins/nsim/nsim.api`` * `9e3252b5 `_ Network delay simulator plugin ``src/plugins/svs/svs.api`` * `d1e68ab7 `_ Source VRF Select ``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`` * `208c29aa `_ VOM: support for pipes ``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`` * `5d64c786 `_ thread: Add show threads api * `ec11b13a `_ Trivial: Cleanup some typos. ``src/vpp/stats/stats.api`` * `ec11b13a `_ Trivial: Cleanup some typos. 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