svn commit: r273063 - head/sys/netinet
Sean Bruno
sbruno at FreeBSD.org
Mon Oct 13 21:06:22 UTC 2014
Author: sbruno
Date: Mon Oct 13 21:06:21 2014
New Revision: 273063
URL: https://svnweb.freebsd.org/changeset/base/273063
Log:
Handle small file case with regards to plpmtud blackhole detection.
Submitted by: Mikhail <mp at lenta.ru>
MFC after: 2 weeks
Relnotes: yes
Modified:
head/sys/netinet/tcp_timer.c
Modified: head/sys/netinet/tcp_timer.c
==============================================================================
--- head/sys/netinet/tcp_timer.c Mon Oct 13 21:05:29 2014 (r273062)
+++ head/sys/netinet/tcp_timer.c Mon Oct 13 21:06:21 2014 (r273063)
@@ -693,7 +693,15 @@ tcp_timer_rexmt(void * xtp)
TCPT_RANGESET(tp->t_rxtcur, rexmt,
tp->t_rttmin, TCPTV_REXMTMAX);
- if (V_tcp_pmtud_blackhole_detect && (tp->t_state == TCPS_ESTABLISHED)) {
+ /*
+ * We enter the path for PLMTUD if connection is established or, if
+ * connection is FIN_WAIT_1 status, reason for the last is that if
+ * amount of data we send is very small, we could send it in couple of
+ * packets and process straight to FIN. In that case we won't catch
+ * ESTABLISHED state.
+ */
+ if (V_tcp_pmtud_blackhole_detect && (((tp->t_state == TCPS_ESTABLISHED))
+ || (tp->t_state == TCPS_FIN_WAIT_1))) {
int optlen;
#ifdef INET6
int isipv6;
More information about the svn-src-all
mailing list