The branch main has been updated by tuexen:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=0b33b25b14033f738995c0a1fdcfd1f695afd6f2

commit 0b33b25b14033f738995c0a1fdcfd1f695afd6f2
Author:     Michael Tuexen <tue...@freebsd.org>
AuthorDate: 2025-06-26 16:52:59 +0000
Commit:     Michael Tuexen <tue...@freebsd.org>
CommitDate: 2025-06-26 16:55:27 +0000

    tcp: cleanup timer initialisations
    
    Use MSEC_2_TICKS() to make clearer, which values are used and to
    ensure that the value stored is at least one tick. This also avoids
    the need of some protection code.
    
    Reviewed by:            glebius, cc
    Sponsored by:           Netflix, Inc.
    Differential Revision:  https://reviews.freebsd.org/D50840
---
 sys/netinet/tcp_subr.c  |  4 ----
 sys/netinet/tcp_timer.h | 24 ++++++++++++------------
 2 files changed, 12 insertions(+), 16 deletions(-)

diff --git a/sys/netinet/tcp_subr.c b/sys/netinet/tcp_subr.c
index 4542c5ccb8bb..6b1907305fb9 100644
--- a/sys/netinet/tcp_subr.c
+++ b/sys/netinet/tcp_subr.c
@@ -1474,11 +1474,7 @@ tcp_init(void *arg __unused)
        tcp_keepintvl = TCPTV_KEEPINTVL;
        tcp_maxpersistidle = TCPTV_KEEP_IDLE;
        tcp_rexmit_initial = TCPTV_RTOBASE;
-       if (tcp_rexmit_initial < 1)
-               tcp_rexmit_initial = 1;
        tcp_rexmit_min = TCPTV_MIN;
-       if (tcp_rexmit_min < 1)
-               tcp_rexmit_min = 1;
        tcp_rexmit_max = TCPTV_REXMTMAX;
        tcp_persmin = TCPTV_PERSMIN;
        tcp_persmax = TCPTV_PERSMAX;
diff --git a/sys/netinet/tcp_timer.h b/sys/netinet/tcp_timer.h
index a145782ba82d..394207bcb89b 100644
--- a/sys/netinet/tcp_timer.h
+++ b/sys/netinet/tcp_timer.h
@@ -73,21 +73,21 @@
 /*
  * Time constants.
  */
-#define        TCPTV_MSL       ( 30*hz)                /* max seg lifetime 
(hah!) */
+#define        TCPTV_MSL       MSEC_2_TICKS(30000)     /* max seg lifetime 
(hah!) */
 #define        TCPTV_SRTTBASE  0                       /* base roundtrip time;
                                                   if 0, no idea yet */
-#define        TCPTV_RTOBASE   (  1*hz)                /* assumed RTO if no 
info */
+#define        TCPTV_RTOBASE   MSEC_2_TICKS(1000)      /* assumed RTO if no 
info */
 
-#define        TCPTV_PERSMIN   (  5*hz)                /* minimum persist 
interval */
-#define        TCPTV_PERSMAX   ( 60*hz)                /* maximum persist 
interval */
+#define        TCPTV_PERSMIN   MSEC_2_TICKS(5000)      /* minimum persist 
interval */
+#define        TCPTV_PERSMAX   MSEC_2_TICKS(60000)     /* maximum persist 
interval */
 
-#define        TCPTV_KEEP_INIT ( 75*hz)                /* initial connect 
keepalive */
-#define        TCPTV_KEEP_IDLE (120*60*hz)             /* dflt time before 
probing */
-#define        TCPTV_KEEPINTVL ( 75*hz)                /* default probe 
interval */
+#define        TCPTV_KEEP_INIT MSEC_2_TICKS(75000)     /* initial connect 
keepalive */
+#define        TCPTV_KEEP_IDLE MSEC_2_TICKS(120*60*1000)       /* dflt time 
before probing */
+#define        TCPTV_KEEPINTVL MSEC_2_TICKS(75000)     /* default probe 
interval */
 #define        TCPTV_KEEPCNT   8                       /* max probes before 
drop */
 #define        TCPTV_MAXUNACKTIME      0               /* max time without 
making progress */
 
-#define TCPTV_FINWAIT2_TIMEOUT (60*hz)         /* FIN_WAIT_2 timeout if no 
receiver */
+#define        TCPTV_FINWAIT2_TIMEOUT  MSEC_2_TICKS(60000)     /* FIN_WAIT_2 
timeout if no receiver */
 
 /*
  * Minimum retransmit timer is 3 ticks, for algorithmic stability.
@@ -109,13 +109,13 @@
  * The prior minimum of 1*hz (1 second) badly breaks throughput on any
  * networks faster then a modem that has minor (e.g. 1%) packet loss.
  */
-#define        TCPTV_MIN       ( hz/33 )               /* minimum allowable 
value */
-#define TCPTV_CPU_VAR  ( hz/5 )                /* cpu variance allowed (200ms) 
*/
-#define        TCPTV_REXMTMAX  ( 64*hz)                /* max allowable REXMT 
value */
+#define        TCPTV_MIN       MSEC_2_TICKS(30)        /* minimum allowable 
value */
+#define        TCPTV_CPU_VAR   MSEC_2_TICKS(200)       /* cpu variance allowed 
(200ms) */
+#define        TCPTV_REXMTMAX  MSEC_2_TICKS(64000)     /* max allowable REXMT 
value */
 
 #define        TCP_MAXRXTSHIFT 12                      /* maximum retransmits 
*/
 
-#define        TCPTV_DELACK    ( hz/25 )               /* 40ms timeout */
+#define        TCPTV_DELACK    MSEC_2_TICKS(40)        /* 40ms timeout */
 
 /*
  * If we exceed this number of retransmits for a single segment, we'll consider

Reply via email to