diff options
author | glebius <glebius@FreeBSD.org> | 2016-01-07 00:14:42 +0000 |
---|---|---|
committer | glebius <glebius@FreeBSD.org> | 2016-01-07 00:14:42 +0000 |
commit | 7e3646578b54b2efa2501b7025e79f74ae12ea0a (patch) | |
tree | 3e84c070bf3f77cacff7c73e3720b9e5294f53f2 /gnu | |
parent | 22ac5b2c8b8f8bd18db4870b59f5606a3a7b7d39 (diff) | |
download | FreeBSD-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