Features for Release VPP 19.08

Infrastructure

  • API
    • API language: new types and limits support
    • Python API - add support for defaults
    • Export ip_types.api for out-of-tree plugins use
    • Refactor ipip.api with explicit types
  • DPDK
    • 19.05 integration
    • Remove bonding code
    • Rework extended stats
  • Debugging & Serviceability
    • debug CLI leak-checker
    • vlib: add "memory-trace stats-segment"
    • vppapitrace JSON/API trace converter
    • ARP: add arp-disabled node
    • igmp: Trace more data from input packets
    • ip: Trace the packet from the punt node
    • Python API debug introspection improvements
    • Pin dependencies for make test infra
    • FEATURE.yaml meta-data infrastructure
    • tcp: add cc stats plotting tools
    • Packet tracer support for thread handoffs
  • libmemif: support for multi-thread connection establishment
  • svm
    • fifo ooo reads/writes with multiple chunks
    • support addition/removal of chunks to fifos
  • vppinfra
    • Mapped pcap file support
    • More AVX2 and AVX512 inlines
    • VLIB_INIT_FUNCTION sequencing rework
    • refactor spinlocks and rwlocks
    • add rbtree
    • add doubly linked list
  • rdma: bump rdma-core to v25.0
  • stats
    • Add the number of worker threads and per worker thread vector rates
    • Support multiple workers for error counters

VNET & Plugins

  • New Plugins
    • HTTP static page server with TLS support
    • L3 cross connect
  • acl: implement stat-segment counters
  • arp: add feature arcs: arp-reply, arp-input, arp-proxy
  • avf: improved logging and added 2.5/5 Gbps speeds
  • bonding: NUMA-related improvements
  • crypto: add support for AES-CTR cipher
  • fib
    • FIB Entry tracking
    • Support the POP of a Pseudo Wire Control Word
  • gbp
    • Anonymous l3-out subnets support
    • ARP unicast forward in gbp bridge domain
    • An Endpoint can change sclass
    • Consider data-plane learnt source better than control-plane
    • VRF scoped contracts
  • gso (experimental)
    • Add support to pg interfaces
    • Add support to vhost user
    • Add support to native virtio
    • Add support for tagged interfaces
  • punt: allow to specify packets by IP protocol Type
  • ip6-local: hop-by-hop protocol demux table
  • ipsec
    • intel-ipsec-mb version 0.52
    • AH encrypt rework
    • handle UDP keepalives
    • support GCM in ESP
  • virtio
    • Refactor control queue support
  • dhcp-client: DSCP marking for transmitted packets
  • Idle resource usage improvements
    • Allocate bihash virtual space on demand
    • gre: don't register gre input nodes unless a gre tunnel is created
    • gtpu: don't register udp ports unless a tunnel is created
    • lacp: create lacp-process on demand
    • lisp-cp: start lisp retry service on demand
    • start the cdp period and dns resolver process on demand
    • vat: unload unused vat plugins
  • nat: api cleanup & update
  • nsim: make available as an output feature
  • load-balance performance improvements
  • l2: Add support for arp unicast forwarding
  • mactime
    • Mini-ACLs
    • Per-MAC allow-with-quota feature
  • qos
    • QoS dump APIs
    • Store function
  • rdma: add support for promiscuous mode (l2-switching and xconnect)
  • sr: update the Segment Routing definition to be compliant with current in IETF
  • udp-ping: disable due to conflict with mldv2
  • vxlan-gpe: improve encap performance
  • vom
    • QoS support
    • Bridge domain arp unicast forwarding flag
    • Bridge domain unknown unicast flooding flag

Host stack

  • session
    • API to support manual svm fifo resizing
    • Improved session output scheduler and close state machine
    • Transport and session cleanup notifications for builtin apps
    • Session migration notifications for builtin apps
    • Support for no session layer lookup transports (quic and tls)
    • Ability to retrieve local/remote endpoint in transport vft
    • Cleanup segment manager and fifo segment
    • Fix vpp to app msg generation on enqueue fail
    • Improve event logging
    • Moved test applications to hsa plugin
  • tcp
    • Congestion control algorithm enhancements
    • Delivery rate estimator
    • ACK/retransmission refactor and pacing
    • Add tcp-input sibling nodes without full 6-tuple lookup
    • More RFC4898 connection statistics
    • Allow custom output next node
    • Allow custom congestion control algorithms
  • quic
    • Multi-thread support
    • Logs readability improvements
    • Multistream support
  • tls
    • Fix close with data and listen failures
    • Handle TCP transport rests
    • Support endpoint retrieval interface
  • vcl
    • support quic streams and "connectable listeners"
    • worker unregister api
    • fix epoll with large events batch
    • ldp: add option to enable transparent TLS connections
  • udp:
    • support close with data
    • fixed session migration
  • sctp
    • add option to enable/disable default to disable
    • moved from vnet to plugins