A deep dive into VPP's load balancer plugin using Google's Maglev consistent hashing algorithm. Covers how Maglev works (pre-computed lookup table + per-CPU flow hash LRU cache), the plugin's internal data structures (VIPs, Application Servers, new-flow table, flow hash table), and a collection of API bugs fixed in Gerrit. Two new features are introduced: per-AS weights (0–100) enabling lameduck draining and gradual canary rollouts without disrupting existing TCP sessions, and a 'punt' flag for port-based VIPs that routes non-matching traffic (ICMP, traceroute) to the local IP stack instead of dropping it. New API calls (lb_as_add_del_v2, lb_as_set_weight, lb_add_del_vip_v3, etc.) are added to expose these capabilities without breaking existing API contracts.
Sort: