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)
Tue, Nov 26, 3:22 AM
Unknown Object (File)
Oct 3 2024, 1:11 PM
Unknown Object (File)
Oct 1 2024, 8:12 AM
Unknown Object (File)
Sep 21 2024, 5:32 AM
Unknown Object (File)
Sep 21 2024, 4:53 AM
Unknown Object (File)
Sep 19 2024, 10:29 AM
Unknown Object (File)
Sep 1 2024, 5:57 AM
Unknown Object (File)
Aug 19 2024, 9:15 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

Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 34189
Build 31341: arc lint + arc unit