The branch main has been updated by tuexen:

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

commit c13f4b1574da77f89ab57cfcc87fe8ad80f25263
Author:     Michael Tuexen <tue...@freebsd.org>
AuthorDate: 2025-06-16 13:04:05 +0000
Commit:     Michael Tuexen <tue...@freebsd.org>
CommitDate: 2025-06-16 13:04:05 +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:            cc, glebius
    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 f766bf25ad66..d82a54031a95 100644
--- a/sys/netinet/tcp_subr.c
+++ b/sys/netinet/tcp_subr.c
@@ -1473,11 +1473,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_persmin = TCPTV_PERSMIN;
        tcp_persmax = TCPTV_PERSMAX;
        tcp_rexmit_slop = TCPTV_CPU_VAR;
diff --git a/sys/netinet/tcp_timer.h b/sys/netinet/tcp_timer.h
index a3ca268417ba..8e1c609fd575 100644
--- a/sys/netinet/tcp_timer.h
+++ b/sys/netinet/tcp_timer.h
@@ -71,21 +71,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.
@@ -107,15 +107,15 @@
  * 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 TCPTV_TWTRUNC  8                       /* RTO factor to truncate TW */
 
 #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