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 <m...@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;
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to