Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 13 Oct 2014 21:06:21 +0000 (UTC)
From:      Sean Bruno <sbruno@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r273063 - head/sys/netinet
Message-ID:  <201410132106.s9DL6LKK069353@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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@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;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201410132106.s9DL6LKK069353>