summaryrefslogtreecommitdiffstats
path: root/gnu
diff options
context:
space:
mode:
authorglebius <glebius@FreeBSD.org>2016-01-07 00:14:42 +0000
committerglebius <glebius@FreeBSD.org>2016-01-07 00:14:42 +0000
commit7e3646578b54b2efa2501b7025e79f74ae12ea0a (patch)
tree3e84c070bf3f77cacff7c73e3720b9e5294f53f2 /gnu
parent22ac5b2c8b8f8bd18db4870b59f5606a3a7b7d39 (diff)
downloadFreeBSD-src-7e3646578b54b2efa2501b7025e79f74ae12ea0a.zip
FreeBSD-src-7e3646578b54b2efa2501b7025e79f74ae12ea0a.tar.gz
Historically we have two fields in tcpcb to describe sender MSS: t_maxopd,
and t_maxseg. This dualism emerged with T/TCP, but was not properly cleaned up after T/TCP removal. After all permutations over the years the result is that t_maxopd stores a minimum of peer offered MSS and MTU reduced by minimum protocol header. And t_maxseg stores (t_maxopd - TCPOLEN_TSTAMP_APPA) if timestamps are in action, or is equal to t_maxopd otherwise. That's a very rough estimate of MSS reduced by options length. Throughout the code it was used in places, where preciseness was not important, like cwnd or ssthresh calculations. With this change: - t_maxopd goes away. - t_maxseg now stores MSS not adjusted by options. - new function tcp_maxseg() is provided, that calculates MSS reduced by options length. The functions gives a better estimate, since it takes into account SACK state as well. Reviewed by: jtl Differential Revision: https://reviews.freebsd.org/D3593
Diffstat (limited to 'gnu')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud