Page MenuHomeFreeBSD

TCP: remove special treatment for hardware (ifnet) TLS
ClosedPublic

Authored by gallatin on Aug 18 2020, 3:20 PM.
Tags
None
Referenced Files
Unknown Object (File)
Tue, Apr 9, 3:09 PM
Unknown Object (File)
Sun, Mar 31, 12:20 PM
Unknown Object (File)
Mar 5 2024, 12:23 AM
Unknown Object (File)
Feb 24 2024, 3:07 AM
Unknown Object (File)
Feb 7 2024, 10:41 AM
Unknown Object (File)
Jan 2 2024, 10:07 PM
Unknown Object (File)
Dec 23 2023, 3:31 AM
Unknown Object (File)
Nov 18 2023, 5:01 PM
Subscribers

Details

Summary

Remove most special treatment for ifnet TLS in the TCP stack, except for code to avoid mixing handshakes and bulk data.

This code made heroic efforts to send down entire TLS records to NICs. It was added to improve the PCIe bus efficiency of older TLS offload NICs which did not keep state per-session, and so would need to re-DMA the first part(s) of a TLS record if a TLS record was sent in multiple TCP packets or TSOs. Newer TLS offload NICs do not need this feature.

At Netflix, we've run extensive QoE tests which show that this feature reduces client quality metrics, presumably because the effort to send TLS records atomically causes the server to both wait too long to send data (leading to buffers running dry), and to send too much data at once (leading to packet loss).

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 33043