FD.io VPP  v20.01-48-g3e0dafb74
Vector Packet Processing
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
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