Release notes for VPP 18.01

More than 560 commits since the 17.10 release.

Features

  • Infrastructure

    • DPDK 17.11

    • TCP Checksum Offload

    • Arm64/Arm-v8 support

    • SUSE packaging

    • bihash_vec8_8 variant

    • PCI rework to support VFIO

    • chi-squared test calculator

  • SNAT / NAT

    • One armed NAT

    • Twice NAT44

    • NAT hairpinning rework

    • NAT64 multi-thread

    • NAT64 IPFIX

    • NAT64 Fragmentation

    • NAT: DS-Lite

    • Remove old SNAT API

    • ACL-based NAT

  • VNET

    • DNS name resolver

    • BIER

    • GENEVE Tunnel

    • IPSec Openssl 1.1.0 api support

    • FIB improvements

    • tap v2

  • API

    • VPP stats (Broadcast & Multicast support)

    • SR MPLS

    • VPP Object Model (VOM)

  • Host Stack

    • VPP TCP Stack scale / congestion improvements

    • Refactor UDP

    • Namespace support

    • Session rules table

    • VPP Comms Library (VCL) improvements

  • ACL

    • ACL stats

  • Plugins

    • Kube-proxy

    • L2 Emulation

    • Memif

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

Message Name

Result

af_packet_set_l4_cksum_offload

definition changed

api_versions

definition changed

app_namespace_add_del

definition changed

application_attach

definition changed

bier_disp_entry_add_del

definition changed

bier_disp_entry_details

only in image

bier_disp_entry_dump

only in image

bier_disp_table_add_del

definition changed

bier_disp_table_details

only in image

bier_disp_table_dump

only in image

bier_imp_add

definition changed

bier_imp_del

definition changed

bier_imp_details

only in image

bier_imp_dump

only in image

bier_route_add_del

definition changed

bier_route_details

only in image

bier_route_dump

only in image

bier_table_add_del

definition changed

bier_table_details

only in image

bier_table_dump

only in image

bind_sock_reply

definition changed

connect_session_reply

definition changed

connect_sock

definition changed

connect_uri

definition changed

dhcp_proxy_details

definition changed

dhcp_proxy_set_vss

definition changed

dns_enable_disable

definition changed

dns_name_server_add_del

definition changed

dns_resolve_ip

definition changed

dns_resolve_name

definition changed

dslite_add_del_pool_addr_range

definition changed

dslite_set_aftr_addr

definition changed

geneve_add_del_tunnel

definition changed

geneve_tunnel_details

only in image

geneve_tunnel_dump

only in image

ip_add_del_route

definition changed

ip_container_proxy_add_del

definition changed

ip_mroute_add_del

definition changed

ip_neighbor_details

definition changed

ip_punt_police

definition changed

ip_punt_redirect

definition changed

ipsec_sa_details

only in image

ipsec_sa_dump

only in image

ipsec_sad_add_del_entry

definition changed

ipsec_tunnel_if_set_key

definition changed

ipsec_tunnel_if_set_sa

definition changed

kp_add_del_pod

definition changed

kp_add_del_vip

definition changed

kp_conf

definition changed

l2_emulation

definition changed

l2_fib_table_details

definition changed

l2fib_add_del

definition changed

memclnt_keepalive

definition changed

memfd_segment_create

definition changed

mpls_ip_bind_unbind

definition changed

mpls_route_add_del

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

definition changed

nat44_identity_mapping_details

only in image

nat44_identity_mapping_dump

only in image

nat44_interface_addr_details

definition changed

nat44_lb_static_mapping_details

definition changed

nat44_static_mapping_details

definition changed

nat64_add_del_interface_addr

definition changed

nat_get_reass

definition changed

nat_reass_details

only in image

nat_reass_dump

only in image

nat_set_reass

definition changed

reset_vrf

definition changed

session_rule_add_del

definition changed

session_rules_details

only in image

session_rules_dump

only in image

snat_add_address_range

definition changed

snat_add_del_interface_addr

definition changed

snat_add_det_map

definition changed

snat_add_static_mapping

definition changed

snat_address_details

only in file

snat_address_dump

only in file

snat_control_ping

definition changed

snat_det_close_session_in

definition changed

snat_det_close_session_out

definition changed

snat_det_forward

definition changed

snat_det_get_timeouts

definition changed

snat_det_map_details

only in file

snat_det_map_dump

only in file

snat_det_reverse

definition changed

snat_det_session_details

only in file

snat_det_session_dump

only in file

snat_det_set_timeouts

definition changed

snat_interface_add_del_feature

definition changed

snat_interface_add_del_output_feature

definition changed

snat_interface_addr_details

only in file

snat_interface_addr_dump

only in file

snat_interface_details

only in file

snat_interface_dump

only in file

snat_interface_output_feature_details

only in file

snat_interface_output_feature_dump

only in file

snat_ipfix_enable_disable

definition changed

snat_set_workers

definition changed

snat_show_config

definition changed

snat_static_mapping_details

only in file

snat_static_mapping_dump

only in file

snat_user_details

only in file

snat_user_dump

only in file

snat_user_session_details

only in file

snat_user_session_dump

only in file

snat_worker_details

only in file

snat_worker_dump

only in file

sockclnt_create

definition changed

sockclnt_delete

definition changed

sr_localsids_details

only in image

sr_localsids_dump

only in image

sr_mpls_policy_add

definition changed

sr_mpls_policy_assign_endpoint_color

definition changed

sr_mpls_policy_del

definition changed

sr_mpls_policy_mod

definition changed

sr_mpls_steering_add_del

definition changed

sr_set_encap_source

definition changed

stn_add_del_rule

definition changed

stn_rule_details

only in image

stn_rules_dump

only in image

sw_interface_set_geneve_bypass

definition changed

sw_interface_set_lldp

definition changed

sw_interface_set_rx_mode

definition changed

sw_interface_tap_v2_details

only in image

sw_interface_tap_v2_dump

only in image

tap_create_v2

definition changed

tap_delete_v2

definition changed

udp_encap_add_del

definition changed

udp_encap_details

only in image

udp_encap_dump

only in image

vnet_ip4_mfib_counters

only in image

vnet_ip6_mfib_counters

only in image

want_ip4_mfib_stats

definition changed

want_ip6_mfib_stats

definition changed

Found 142 api message signature differences

Patches that changed API definitions

  • ./src/examples/sample-plugin/sample/sample.api 0d056e5e vppapigen: support per-file (major,minor,patch) version stamps

  • ./src/vnet/interface.api b8d4481a Break up vpe.api ad8015be devices: Add binary API for set interface rx-mode 0d056e5e vppapigen: support per-file (major,minor,patch) version stamps

  • ./src/vnet/feature/feature.api b8d4481a Break up vpe.api

  • ./src/vnet/srv6/sr.api 1a5e301f SRv6 improvements to binary API 0d056e5e vppapigen: support per-file (major,minor,patch) version stamps

  • ./src/vnet/bier/bier.api be302d72 BIER coverity fix in route downlaod ceb4d05b BIER disposition default route fa1da15c BIER: API documentation fixes. 9128637e BIER in non-MPLS netowrks d792d9c0 BIER

  • ./src/vnet/vxlan-gpe/vxlan_gpe.api 0d056e5e vppapigen: support per-file (major,minor,patch) version stamps

  • ./src/vnet/unix/tap.api 0d056e5e vppapigen: support per-file (major,minor,patch) version stamps

  • ./src/vnet/lldp/lldp.api 9a6fcef4 LLDP: Add Management Address TLV 0d056e5e vppapigen: support per-file (major,minor,patch) version stamps

  • ./src/vnet/dns/dns.api d2080159 Add reverse DNS (ip to name) resolution 6545716c VPP-1027: DNS name resolver

  • ./src/vnet/session/session.api dcf55ce2 vppcom: improve listener session handling 6e8c6679 session: add app ns index to ns create api c97a7398 session: add rule tags 6c36f53f session: add api to dump rules 1c710451 session: rules tables ade70e45 session: return local transport endpoint in connect reply cea194d8 session: add support for application namespacing 0d056e5e vppapigen: support per-file (major,minor,patch) version stamps

  • ./src/vnet/devices/af_packet/af_packet.api 92b0275a af_packet: invalid TCP/UDP offload checksum on RX node recalculation 0d056e5e vppapigen: support per-file (major,minor,patch) version stamps

  • ./src/vnet/devices/netmap/netmap.api 0d056e5e vppapigen: support per-file (major,minor,patch) version stamps

  • ./src/vnet/devices/tap/tapv2.api 73e7f427 tap_v2: include host-side parameters in the dump binary API 2df39094 tapv2: multiple improvements c99b4cd1 tap_v2: move code to vnet/devices/tap

  • ./src/vnet/devices/virtio/vhost_user.api 0d056e5e vppapigen: support per-file (major,minor,patch) version stamps

  • ./src/vnet/lisp-gpe/lisp_gpe.api 0d056e5e vppapigen: support per-file (major,minor,patch) version stamps

  • ./src/vnet/srmpls/sr_mpls.api 42998828 SR-MPLS: binary API and automated steering

  • ./src/vnet/l2/l2.api b8d4481a Break up vpe.api 57938f63 l2fib: MAC: Fix uint64 to u8 byte array 0d056e5e vppapigen: support per-file (major,minor,patch) version stamps

  • ./src/vnet/udp/udp.api 810086d8 UDP Encapsulation.

  • ./src/vnet/policer/policer.api 0d056e5e vppapigen: support per-file (major,minor,patch) version stamps

  • ./src/vnet/bfd/bfd.api 0d056e5e vppapigen: support per-file (major,minor,patch) version stamps

  • ./src/vnet/geneve/geneve.api 556033a0 Add API versioning to GENEVE tunnel implementation. b598f1d3 Initial GENEVE TUNNEL implementation and tests.

  • ./src/vnet/gre/gre.api 0d056e5e vppapigen: support per-file (major,minor,patch) version stamps

  • ./src/vnet/map/map.api 0d056e5e vppapigen: support per-file (major,minor,patch) version stamps

  • ./src/vnet/flow/flow.api 0d056e5e vppapigen: support per-file (major,minor,patch) version stamps

  • ./src/vnet/pg/pg.api b8d4481a Break up vpe.api

  • ./src/vnet/dhcp/dhcp.api 70bfcaf4 Add Support of DHCP VSS Type 0 where VPN-ID is ASCII 0d056e5e vppapigen: support per-file (major,minor,patch) version stamps

  • ./src/vnet/ipsec/ipsec.api ca514fda Allow IPsec interface to have SAs reset 75d85609 Add API call to set keys on IPsec tunnel intf 0d056e5e vppapigen: support per-file (major,minor,patch) version stamps 28029530 Add API support to dump IPsec SAs

  • ./src/vnet/mpls/mpls.api c42fc05b Remove the unused ‘create VRF if needed’ API parameters b8d4481a Break up vpe.api d792d9c0 BIER d0a59722 Revert “Enforce FIB table creation before use” f9342023 Enforce FIB table creation before use 0d056e5e vppapigen: support per-file (major,minor,patch) version stamps

  • ./src/vnet/ethernet/p2p_ethernet.api 0d056e5e vppapigen: support per-file (major,minor,patch) version stamps

  • ./src/vnet/span/span.api 0d056e5e vppapigen: support per-file (major,minor,patch) version stamps

  • ./src/vnet/lisp-cp/lisp.api 0d056e5e vppapigen: support per-file (major,minor,patch) version stamps

  • ./src/vnet/lisp-cp/one.api 0d056e5e vppapigen: support per-file (major,minor,patch) version stamps

  • ./src/vnet/vxlan/vxlan.api 0d056e5e vppapigen: support per-file (major,minor,patch) version stamps

  • ./src/vnet/ipsec-gre/ipsec_gre.api 0d056e5e vppapigen: support per-file (major,minor,patch) version stamps

  • ./src/vnet/classify/classify.api b8d4481a Break up vpe.api 8527f12b add classify session action set-sr-policy-index 0d056e5e vppapigen: support per-file (major,minor,patch) version stamps

  • ./src/vnet/ip/punt.api b8d4481a Break up vpe.api

  • ./src/vnet/ip/ip.api c42fc05b Remove the unused ‘create VRF if needed’ API parameters b8d4481a Break up vpe.api af8dfbf6 Add sw_if_index to the ip_neighbor_details_t response. d792d9c0 BIER 810086d8 UDP Encapsulation. 595992c5 ip: add container proxy api 0164a06d Remove unused ‘not_last’ parameter from ip_add_del_route d0a59722 Revert “Enforce FIB table creation before use” 054c03ac Source Lookup progammable via API f9342023 Enforce FIB table creation before use d91c1dbd punt and drop features: - new IPv4 and IPv6 feature arcs on the punt and drop nodes - new features: - redirect punted traffic to an interface and nexthop - police punted traffic. 0d056e5e vppapigen: support per-file (major,minor,patch) version stamps 6f631156 Distributed Virtual Router Support

  • ./src/vnet/cop/cop.api 0d056e5e vppapigen: support per-file (major,minor,patch) version stamps

  • ./src/vnet/l2tp/l2tp.api 0d056e5e vppapigen: support per-file (major,minor,patch) version stamps

  • ./src/vpp/oam/oam.api b8d4481a Break up vpe.api

  • ./src/vpp/stats/stats.api ff233898 Stats for Multicast FIB 0d056e5e vppapigen: support per-file (major,minor,patch) version stamps

  • ./src/vpp/api/vpe.api b8d4481a Break up vpe.api d792d9c0 BIER 0d056e5e vppapigen: support per-file (major,minor,patch) version stamps b598f1d3 Initial GENEVE TUNNEL implementation and tests.

  • ./src/plugins/ioam/udp-ping/udp_ping.api 0d056e5e vppapigen: support per-file (major,minor,patch) version stamps

  • ./src/plugins/ioam/ip6/ioam_cache.api 0d056e5e vppapigen: support per-file (major,minor,patch) version stamps

  • ./src/plugins/ioam/lib-pot/pot.api 0d056e5e vppapigen: support per-file (major,minor,patch) version stamps

  • ./src/plugins/ioam/lib-trace/trace.api 0d056e5e vppapigen: support per-file (major,minor,patch) version stamps

  • ./src/plugins/ioam/export/ioam_export.api 0d056e5e vppapigen: support per-file (major,minor,patch) version stamps

  • ./src/plugins/ioam/export-vxlan-gpe/vxlan_gpe_ioam_export.api 0d056e5e vppapigen: support per-file (major,minor,patch) version stamps

  • ./src/plugins/ioam/lib-vxlan-gpe/ioam_vxlan_gpe.api 0d056e5e vppapigen: support per-file (major,minor,patch) version stamps

  • ./src/plugins/pppoe/pppoe.api 0d056e5e vppapigen: support per-file (major,minor,patch) version stamps

  • ./src/plugins/dpdk/api/dpdk.api 0d056e5e vppapigen: support per-file (major,minor,patch) version stamps

  • ./src/plugins/acl/acl.api 0d056e5e vppapigen: support per-file (major,minor,patch) version stamps

  • ./src/plugins/gtpu/gtpu.api 0d056e5e vppapigen: support per-file (major,minor,patch) version stamps

  • ./src/plugins/l2e/l2e.api 4ec38711 L2 emulation: remove usued ip-table-id from API 55d03788 L2 Emulation

  • ./src/plugins/flowprobe/flowprobe.api 0d056e5e vppapigen: support per-file (major,minor,patch) version stamps

  • ./src/plugins/nat/nat.api 7b929793 Translate matching packets using NAT (VPP-1069) b932d26e NAT: Twice NAT44 (VPP-969) ab7a805f NAT44: identity NAT (VPP-1073) c6fb36fc NAT: Remove old SNAT API (VPP-1070) 0938dcf1 NAT64 to use IPv4 address from interface (VPP-1051) efcd1e9e SNAT: IP fragmentation (VPP-890) 8ebe6253 NAT: DS-Lite (VPP-1040) 5ba86f72 NAT: delete session API/CLI (VPP-1041) 36ea2d6d One armed NAT (VPP-1035) 0d056e5e vppapigen: support per-file (major,minor,patch) version stamps

  • ./src/plugins/memif/memif.api 0d056e5e vppapigen: support per-file (major,minor,patch) version stamps

  • ./src/plugins/kubeproxy/kp.api c91f5024 Support kube-proxy data plane

  • ./src/plugins/lb/lb.api 0d056e5e vppapigen: support per-file (major,minor,patch) version stamps

  • ./src/plugins/stn/stn.api 0906c5cf Plugin for IP-Address to Interface Punting

  • ./src/vlibmemory/memclnt.api 0d056e5e vppapigen: support per-file (major,minor,patch) version stamps 59b2565c Repair vlib API socket server