@feld OpenVPN can go head to head with Wireguard on hardware optimized deployments, and at a substantially lower cost*.
The performance reality is often, nearly always, occluded in the modern tech user's mindset... unless they have first hand experience with encryption offload accelerators.
OpenVPN can have it's encryption and compression/decompression fully offloaded from the CPU (via QAT Integration for OpenSSL), which substantially increases the throughput performance and reduces latency. This acceleration is available on all of generations of Intel's QAT cards -- which notably have full support in FreeBSD and OPNsense and PFsense (among others) where that type of network accel is heavily used for advanced scaling solutions.
On but wait... what about Wireguard and its default reliance on Poly ChaCha20?... well, the newest generation of QAT (no longer PCIe AIC, but are directly on-die for certain Xeon and Atom C5/P5/P7 series SKUs) also include acceleration offload for Wireguard's chacha20-poly1305.
[*] Since Wireguard needs newer gen QAT for its ChaCha20 offload, which are only CPU on-die, OpenVPN can utilize older Intel CPUs with inexpensive gen1-2 QAT as PCIe cards.
Examples:
* Gen1 8950 ~$65: https://www.ebay.com/itm/375502192437
* Gen2 8960 ~$150: https://www.ebay.com/itm/186265281944
* Gen3: https://www.servethehome.com/welcome-to-the-intel-ice-lake-d-era-with-the-xeon-d-2700-and-d-1700-series/
Gen4+: Xeon (Sapphire Rapids) 6438N https://www.intel.com/content/www/us/en/products/sku/232397/intel-xeon-gold-6438n-processor-60m-cache-2-00-ghz/specifications.html
I have a decent amount of these options in my personal labs and production PoCs at various Corps, all super fun to work with. If it helps to sell the benefits, these are also used for similar performance gains on OpenZFS with native encryption and compression/decompression and maybe a little bit on checksumming. ๐ฏ
Maybe I should write a blog post with more details, perf metrics, pics, some code samples for integration.. ja?
@matuzalem @stefano