Author: tuexen
Date: Fri Jun  1 21:24:27 2018
New Revision: 334497
URL: https://svnweb.freebsd.org/changeset/base/334497

Log:
  Limit the retransmission timer for SYN-ACKs by TCPTV_REXMTMAX.
  
  Use the same logic to handle the SYN-ACK retransmission when sent from
  the syn cache code as when sent from the main code.
  
  MFC after:    3 days
  Sponsored by: Netflix, Inc.

Modified:
  head/sys/netinet/tcp_syncache.c

Modified: head/sys/netinet/tcp_syncache.c
==============================================================================
--- head/sys/netinet/tcp_syncache.c     Fri Jun  1 21:24:10 2018        
(r334496)
+++ head/sys/netinet/tcp_syncache.c     Fri Jun  1 21:24:27 2018        
(r334497)
@@ -415,8 +415,14 @@ syncache_drop(struct syncache *sc, struct syncache_hea
 static void
 syncache_timeout(struct syncache *sc, struct syncache_head *sch, int docallout)
 {
-       sc->sc_rxttime = ticks +
-               TCPTV_RTOBASE * (tcp_syn_backoff[sc->sc_rxmits]);
+       int rexmt;
+
+       if (sc->sc_rxmits == 0)
+               rexmt = TCPTV_RTOBASE;
+       else
+               TCPT_RANGESET(rexmt, TCPTV_RTOBASE * 
tcp_syn_backoff[sc->sc_rxmits],
+                   tcp_rexmit_min, TCPTV_REXMTMAX);
+       sc->sc_rxttime = ticks + rexmt;
        sc->sc_rxmits++;
        if (TSTMP_LT(sc->sc_rxttime, sch->sch_nextc)) {
                sch->sch_nextc = sc->sc_rxttime;
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to