git: 994f9c9e3c2c - stable/14 - tcp rack: fix sending
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 17 Apr 2024 14:19:44 UTC
The branch stable/14 has been updated by tuexen:
URL: https://cgit.FreeBSD.org/src/commit/?id=994f9c9e3c2cafc2182703c4a43580a2bd390f30
commit 994f9c9e3c2cafc2182703c4a43580a2bd390f30
Author: Michael Tuexen <tuexen@FreeBSD.org>
AuthorDate: 2024-04-05 15:47:03 +0000
Commit: Michael Tuexen <tuexen@FreeBSD.org>
CommitDate: 2024-04-17 14:19:20 +0000
tcp rack: fix sending
In rack_output(), idle is used as a boolean variable. So don't use it
as an int and don't clear it afterwards.
This avoids setting idle to false, when it is not intended.
Reported by: olivier
Reviewed by: rrs, rscheff
Sponsored by: Netflix, Inc.
Differential Revision: https://reviews.freebsd.org/D44610
(cherry picked from commit 7df0ef5f48e1c67b3f1df7c7964bfa59bc56f4e4)
---
sys/netinet/tcp_stacks/rack.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/sys/netinet/tcp_stacks/rack.c b/sys/netinet/tcp_stacks/rack.c
index fa3cd2f4f698..889622b7ff90 100644
--- a/sys/netinet/tcp_stacks/rack.c
+++ b/sys/netinet/tcp_stacks/rack.c
@@ -19927,6 +19927,7 @@ rack_output(struct tcpcb *tp)
#endif
int32_t idle, sendalot;
+ uint32_t tot_idle;
int32_t sub_from_prr = 0;
volatile int32_t sack_rxmit;
struct rack_sendmap *rsm = NULL;
@@ -20164,8 +20165,8 @@ rack_output(struct tcpcb *tp)
if ((tp->snd_una == tp->snd_max) &&
rack->r_ctl.rc_went_idle_time &&
TSTMP_GT(cts, rack->r_ctl.rc_went_idle_time)) {
- idle = cts - rack->r_ctl.rc_went_idle_time;
- if (idle > rack_min_probertt_hold) {
+ tot_idle = (cts - rack->r_ctl.rc_went_idle_time);
+ if (tot_idle > rack_min_probertt_hold) {
/* Count as a probe rtt */
if (rack->in_probe_rtt == 0) {
rack->r_ctl.rc_lower_rtt_us_cts = cts;
@@ -20176,7 +20177,6 @@ rack_output(struct tcpcb *tp)
rack_exit_probertt(rack, cts);
}
}
- idle = 0;
}
if (rack_use_fsb &&
(rack->r_ctl.fsb.tcp_ip_hdr) &&