Correct an edge case in tcp_mss() where the cached path MTU

from tcp_hostcache would have overridden a (now) lower MTU of
an interface or route that changed since first PMTU discovery.
The bug would have caused TCP to redo the PMTU discovery when
not strictly necessary.

Make a comment about already pre-initialized default values
more clear.

Reviewed by:	sam
This commit is contained in:
Andre Oppermann 2004-04-23 22:44:59 +00:00
parent 48bd0712bc
commit 2d166c0202
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=128592
2 changed files with 4 additions and 4 deletions

View File

@ -2793,7 +2793,7 @@ tcp_mss(tp, offer)
so = inp->inp_socket;
/*
* no route to sender, take default mss and return
* no route to sender, stay with default mss and return
*/
if (maxmtu == 0)
return;
@ -2851,7 +2851,7 @@ tcp_mss(tp, offer)
* else, use the link mtu.
*/
if (metrics.rmx_mtu)
mss = metrics.rmx_mtu - min_protoh;
mss = min(metrics.rmx_mtu, maxmtu) - min_protoh;
else {
#ifdef INET6
if (isipv6) {

View File

@ -2793,7 +2793,7 @@ tcp_mss(tp, offer)
so = inp->inp_socket;
/*
* no route to sender, take default mss and return
* no route to sender, stay with default mss and return
*/
if (maxmtu == 0)
return;
@ -2851,7 +2851,7 @@ tcp_mss(tp, offer)
* else, use the link mtu.
*/
if (metrics.rmx_mtu)
mss = metrics.rmx_mtu - min_protoh;
mss = min(metrics.rmx_mtu, maxmtu) - min_protoh;
else {
#ifdef INET6
if (isipv6) {