Page MenuHomeFreeBSD

Re-enable receive flow control for TOE TLS sockets.
ClosedPublic

Authored by jhb on Oct 15 2020, 6:11 PM.
Tags
None
Referenced Files
Unknown Object (File)
Dec 20 2023, 8:04 AM
Unknown Object (File)
Oct 24 2023, 11:49 PM
Unknown Object (File)
Sep 2 2023, 7:50 PM
Unknown Object (File)
May 18 2023, 3:24 AM
Subscribers

Details

Summary

Flow control was disabled during initial TOE TLS development to
workaround a hang (and to match the Linux TOE TLS support for T6).
The rest of the TOE TLS code maintained credits as if flow control was
enabled which was inherited from before the workaround was added with
the exception that the receive window was allowed to go negative.
This negative receive window handling (rcv_over) was because I hadn't
realized the full implications of disabling flow control.

To clean this up, re-enable flow control on TOE TLS sockets. The
existing TPF_FORCE_CREDITS workaround is sufficient for the original
hang. Now that flow control is enabled, remove the rcv_over
workaround and instead assert that the receive window never goes
negative matching plain TCP TOE sockets.

Test Plan
  • tested with openssl s_time clients and a QA workload using ab uploads to an nginx server

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable