git: 0b33b25b1403 - main - tcp: cleanup timer initialisations
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 26 Jun 2025 16:55:32 UTC
The branch main has been updated by tuexen:
URL: https://cgit.FreeBSD.org/src/commit/?id=0b33b25b14033f738995c0a1fdcfd1f695afd6f2
commit 0b33b25b14033f738995c0a1fdcfd1f695afd6f2
Author: Michael Tuexen <tuexen@FreeBSD.org>
AuthorDate: 2025-06-26 16:52:59 +0000
Commit: Michael Tuexen <tuexen@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