]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Re-enable receive flow control for TOE TLS sockets.
authorJohn Baldwin <jhb@FreeBSD.org>
Mon, 19 Oct 2020 20:08:50 +0000 (20:08 +0000)
committerJohn Baldwin <jhb@FreeBSD.org>
Mon, 19 Oct 2020 20:08:50 +0000 (20:08 +0000)
commit6b7ecdcd9d32759de8b3a5ceb438963d8cff1e65
tree4a5c5dc4ab26cd9b354ed5aa05ef570c72907252
parent3f3e04a0627f6e6fb5a5a7b9adc25588cd582c2d
Re-enable receive flow control for TOE TLS sockets.

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.

Reviewed by: np
MFC after: 2 weeks
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D26799
sys/dev/cxgbe/tom/t4_cpl_io.c
sys/dev/cxgbe/tom/t4_tls.c
sys/dev/cxgbe/tom/t4_tls.h
sys/dev/cxgbe/tom/t4_tom.c