Features for Release VPP 19.01

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