Commit graph

8034 commits

Author SHA1 Message Date
Michael Tuexen
4c07ee6a5e tcp: remove struct tcp_log_rack
struct tcp_log_rack is not used, therefore remove it.

Reviewed by: 		Peter Lei
Sponsored by:		Netflix, Inc.
Differential Revision:	https://reviews.freebsd.org/D49669

(cherry picked from commit b1c62081feec535a4f2eeb4f8deb58913d9e281c)
2025-04-07 14:56:25 +02:00
Peter Lei
aa1c5de9d2 tcp: clear sendfile logging struct
The sendfile black box logging struct is much smaller than the
encompassing stack specific logging union. Be sure to clear the
trailing unused memory when logging.

Reviewed by:	tuexen
Sponsored by:	Netflix, Inc.

(cherry picked from commit 3bd1e85fc13cb90853046300dcaa31d63b45ee21)
2025-04-07 14:54:52 +02:00
Peter Lei
cc52d73deb tcp: fix typos in comment
Reviewed by:	tuexen
Sponsored by:	Netflix, Inc.

(cherry picked from commit 2a0d26d793b2ff63d36305aa98047a4bc6a6cd8c)
2025-04-07 14:53:52 +02:00
Michael Tuexen
b95d16f39d tcp: improve initializing the fields in tcp_log_buffer
Initialize the fields in the tcp_log_buffer in the sequence they
appear in the structure and add the initialization of tlb_flex1,
tlb_flex2, and _pad[].

Reviewed by:		rrs, Peter Lei
Sponsored by:		Netflix, Inc.
Differential Revision:	https://reviews.freebsd.org/D49652

(cherry picked from commit 94acddd2ad0142221124c3fb7fe3778a5a1f8036)
2025-04-07 14:53:07 +02:00
Michael Tuexen
47c7dcfe2b sctp: fix double unlock in case adding a remote address fails
Thanks to glebius@ for pointing to the problem.

Reported by:	syzbot+1d5c164f1c10de84ad8a@syzkaller.appspotmail.com
Fixes:		2d5c48eccd ("sctp: Tighten up locking around sctp_aloc_assoc()")

(cherry picked from commit e8623834ca29b562687db945bdd12a3e2fe4aeb1)
2025-04-07 14:51:00 +02:00
Peter Lei
cf3fb40d55 tcp rack: cleanup accounting conditional checks
No functional change intended.

Reviewed by:	tuexen
Sponsored by:	Netflix, Inc.

(cherry picked from commit 6f27541d948fa0126f9262f8cc5326b1c4befcc7)
2025-04-07 14:45:37 +02:00
Mark Johnston
85ff908020 netinet: Fix getcred sysctl handlers to do nothing if no input is given
These routines were all assuming that the sysctl handler has some new
value, but this is not the case.  SYSCTL_IN() returns 0 in this
scenario, so they were all operating on an uninitialized address.  This
is mostly harmless, but trips KMSAN checks, so let's fix them.

Reviewed by:	zlei, rrs, glebius
MFC after:	2 weeks
Differential Revision:	https://reviews.freebsd.org/D49348

(cherry picked from commit 3ff865c6a7948b2cfc01d7056c619145b696700a)
2025-04-06 13:54:03 +00:00
Michael Tuexen
e754d89bba tcp: fix detection of bad RTOs
If timestamps are enabled, the actions performed by a retransmission
timeout were rolled back, when they should not.
It is needed to make sure the incoming segment advances SND.UNA.
To do this, remove the incorrect upfront check and extend the check in
the fast path to handle also the case of timestamps.

PR:			282605
Reviewed by:		cc, rscheff, Peter Lei
Sponsored by:		Netflix, Inc.
Differential Revision:	https://reviews.freebsd.org/D49414

(cherry picked from commit fbcf3b74e8f2c0c5ba37f1839bfe9395eb2fd0b1)
2025-04-04 11:05:10 +02:00
Gleb Smirnoff
1bda3fae78 tcp: don't ever return ECONNRESET on close(2)
The SUS doesn't mention this error code as a possible one [1]. The FreeBSD
manual page specifies a possible ECONNRESET for close(2):

[ECONNRESET]	The underlying object was a stream socket that was
		shut down by the peer before all pending data was
		delivered.

In the past it had been EINVAL (see 21367f630d), and this EINVAL was
added as a safety measure in 623dce13c6.  After conversion to
ECONNRESET it had been documented in the manual page in 78e3a7fdd5, but
I bet wasn't ever tested to actually be ever returned, cause the
tcp-testsuite[2] didn't exist back then.  So documentation is incorrect
since 2006, if my bet wins.  Anyway, in the modern FreeBSD the condition
described above doesn't end up with ECONNRESET error code from close(2).
The error condition is reported via SO_ERROR socket option, though.  This
can be checked using the tcp-testsuite, temporarily disabling the
getsockopt(SO_ERROR) lines using sed command [3].  Most of these
getsockopt(2)s are followed by '+0.00 close(3) = 0', which will confirm
that close(2) doesn't return ECONNRESET even on a socket that has the
error stored, neither it is returned in the case described in the manual
page.  The latter case is covered by multiple tests residing in tcp-
testsuite/state-event-engine/rcv-rst-*.

However, the deleted block of code could be entered in a race condition
between close(2) and processing of incoming packet, when connection had
already been half-closed with shutdown(SHUT_WR) and sits in TCPS_LAST_ACK.
This was reported in the bug 146845.  With the block deleted, we will
continue into tcp_disconnect() which has proper handling of INP_DROPPED.

The race explanation follows.  The connection is in TCPS_LAST_ACK.  The
network input thread acquires the tcpcb lock first, sets INP_DROPPED,
acquires the socket lock in soisdisconnected() and clears SS_ISCONNECTED.
Meanwhile, the syscall thread goes through sodisconnect() which checks for
SS_ISCONNECTED locklessly(!).  The check passes and the thread blocks on
the tcpcb lock in tcp_usr_disconnect().  Once input thread releases the
lock, the syscall thread observes INP_DROPPED and returns ECONNRESET.

- Thread 1: tcp_do_segment()->tcp_close()->in_pcbdrop(),soisdisconnected()
- Thread 2: sys_close()...->soclose()->sodisconnect()->tcp_usr_disconnect()

Note that the lockless operation in sodisconnect() isn't correct, but
enforcing the socket lock there will not fix the problem.

[1] https://pubs.opengroup.org/onlinepubs/9799919799/
[2] https://github.com/freebsd-net/tcp-testsuite
[3] sed -i "" -Ee '/\+0\.00 getsockopt\(3, SOL_SOCKET, SO_ERROR, \[ECONNRESET\]/d' $(grep -lr ECONNRESET tcp-testsuite)

PR:			146845
Reviewed by:		tuexen, rrs, imp
Differential Revision:	https://reviews.freebsd.org/D48148

(cherry picked from commit 053a988497342a6fd0a717cc097d09c23f83e103)
2025-03-31 10:31:21 -07:00
Richard Scheffenegger
4a328b8049 tcp: fix reverting of spurious timeouts (RTO)
One variable that became critical to correctly calculate
the cwnd during limited transmit was not properly reverted
on detection of spurious timeouts.

PR:			282605
Reviewed By:		cc, tuexen, #transport
MFC after:		3 days
Sponsored by:		NetApp, Inc.
Differential Revision:	https://reviews.freebsd.org/D48652

(cherry picked from commit 6f6c07813b38ab04d8b1b2bb87c0291dbae25a25)
2025-03-24 06:35:43 +01:00
Konstantin Belousov
be425fcdc6 ip_output(): style
(cherry picked from commit 394605c057ade77775e1f9975e278dbb7693f44f)
2025-03-17 02:48:33 +02:00
Konstantin Belousov
9de58ca100 ip_output(): if mb_unmapped_to_ext() failed, return directly
(cherry picked from commit edc1fba05e055a1943efd969d77c0acf0fbff587)
2025-03-17 02:48:32 +02:00
Zhenlei Huang
140c473fb9 tcp_ratelimit: Use static initializers
MFC after:	1 week

(cherry picked from commit 09de37310313d87942fc5349914be46b9cb8c808)
2025-03-13 18:13:51 +08:00
Zhenlei Huang
dbb5216e03 carp: Use static initializers
MFC after:	1 week

(cherry picked from commit b7d5bda6f109e09d8999283a9b4e4a9668df9de9)
2025-03-13 18:13:50 +08:00
Zhenlei Huang
af1bd15d3b udp: Do not recursively enter net epoch
The only caller udp_send() has already entered net epoch before invoking
udp_v4mapped_pktinfo().

No functional change intended.

This partially reverts commit d74b7baeb0 (ifnet_byindex() actually
requires network epoch).

Reviewed by:	ae, glebius
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D49227

(cherry picked from commit 2472f4dbe93049d70afe0897f66f9651b67672e9)
2025-03-13 18:13:50 +08:00
Zhenlei Huang
7083149066 netinet: Make in_canforward() return bool
No functional change intended.

MFC after:	5 days

(cherry picked from commit 3ae7c763540afc0bc5320eb45f2661d315370eb8)
2025-03-07 12:02:41 +08:00
Zhenlei Huang
9406d7e32d netinet: Do not forward or ICMP response to INADDR_ANY
The section 4 in the draft proposal [1] explicitly states that 0.0.0.0,
aka INADDR_ANY, retains its existing special meanings.

[1] https://datatracker.ietf.org/doc/draft-schoen-intarea-unicast-0

Reviewed by:	glebius
Fixes:	efe58855f3 IPv4: experimental changes to allow net 0/8, 240/4, part of 127/8
MFC after:	5 days
Differential Revision:	https://reviews.freebsd.org/D49157

(cherry picked from commit f7174eb2b4c45573bb9e836edad2b179a445a88f)
2025-03-07 12:02:41 +08:00
Zhenlei Huang
841c38b5a0 netinet: Make in_ifhasaddr() return bool
No functional change intended.

MFC after:	1 week

(cherry picked from commit 97309cec6f31f1f4f7a76f9ec5c7dd359c56de02)
2025-03-07 12:02:40 +08:00
Zhenlei Huang
1b2715c058 netinet: Make in_localaddr() return bool
It is used as a boolean function everywhere.

No functional change intended.

MFC after:	1 week

(cherry picked from commit 69beb162848b15c967d3b45ac56501dbd8b94e91)
2025-03-07 12:02:40 +08:00
Zhenlei Huang
96b62eae3c netinet: Update a comment for in_localip()
The function in_localip() was changed to return bool but the comment was
left unchanged.

Fixes:	c8ee75f231 Use network epoch to protect local IPv4 addresses hash
MFC after:	3 days

(cherry picked from commit a5e380e51cdba64a392846a4eeda000f948f42ce)
2025-02-27 22:45:47 +08:00
Zhenlei Huang
cad2df3e90 carp: Fix checking IPv4 multicast address
An IPv4 address stored in `struct in_addr` is in network byte order but
`IN_MULTICAST` wants host order.

PR:		284872
Reported by:	Steven Perreau
Reported by:	Brett Merrick <brett.merrick@itcollective.nz>
Reviewed by:	Franco Fichtner <franco@opnsense.org>, ae, kp, glebius
Tested by:	Steven Perreau
Fixes:		137818006d carp: support unicast
MFC after:	3 days
Differential Revision:	https://reviews.freebsd.org/D49053

(cherry picked from commit 1776633438f24df09cb9815650891bcef0152874)
2025-02-25 12:01:22 +08:00
Mark Johnston
b65e307e94 inpcb: Move the definition of struct inpcblbgroup to in_pcb_var.h
It's only needed for in_pcb.c and in6_pcb.c, so can go to the private
header.

No functional change intended.

Reported by:	glebius
MFC after:	2 weeks
Sponsored by:	Klara, Inc.
Sponsored by:	Stormshield

(cherry picked from commit ca94f92c23fd09b28ac3398657ae2ae9367bcdf5)
2025-02-21 01:04:50 +00:00
Mark Johnston
ce80cdeb13 rawip: Add a bind_all_fibs sysctl
As with net.inet.{tcp,udp}.bind_all_fibs, this causes raw sockets to
accept only packets from the same FIB.

Reviewed by:	glebius
Sponsored by:	Klara, Inc.
Sponsored by:	Stormshield
Differential Revision:	https://reviews.freebsd.org/D48707

(cherry picked from commit 4009a98fe80b8a51837d471076152e6ff505b675)
2025-02-21 01:04:50 +00:00
Mark Johnston
a55bde2328 socket: Move SO_SETFIB handling to protocol layers
In particular, we store a FIB number in both struct socket and in struct
inpcb.  When updating the FIB number with setsockopt(SO_SETFIB), make
the update atomic.  This is required to support the new bind_all_fibs
mode, since in that mode changing the FIB of a bound socket is not
permitted.

This requires a bit more code, but avoids a layering violation in
sosetopt(), where we hard-code the list of protocol families that
implement SO_SETFIB.

Reviewed by:	glebius
MFC after:	2 weeks
Sponsored by:	Klara, Inc.
Sponsored by:	Stormshield
Differential Revision:	https://reviews.freebsd.org/D48666

(cherry picked from commit caccbaef8e263b1d769e7bcac1c4617bdc12d484)
2025-02-21 01:04:50 +00:00
Mark Johnston
e83d93bb28 udp: Add a sysctl to modify listening socket FIB inheritance
Introduce the net.inet.udp.bind_all_fibs tunable, set to 1 by default
for compatibility with current behaviour.  When set to 0, all received
datagrams will be dropped unless an inpcb bound to the same FIB exists.

No functional change intended, as the new behaviour is not enabled by
default.

Reviewed by:	glebius
MFC after:	2 weeks
Sponsored by:	Klara, Inc.
Sponsored by:	Stormshield
Differential Revision:	https://reviews.freebsd.org/D48664

(cherry picked from commit 08e638c089ab57531f08994d03c9dde54c4744f9)
2025-02-21 01:04:50 +00:00
Mark Johnston
aa6163ff65 tcp: Add a sysctl to modify listening socket FIB inheritance
Introduce the net.inet.tcp.bind_all_fibs tunable, set to 1 by default
for compatibility with current behaviour.  When set to 0, all TCP
listening sockets are private to their FIB.  Inbound connection requests
will only succeed if a matching inpcb is bound to the same FIB as the
request.

No functional change intended, as the new behaviour is not enabled by
default.

Reviewed by:	glebius
MFC after:	2 weeks
Sponsored by:	Klara, Inc.
Sponsored by:	Stormshield
Differential Revision:	https://reviews.freebsd.org/D48663

(cherry picked from commit 5dc99e9bb985dce58e8fc85c09ef4e49bf051971)
2025-02-21 01:04:50 +00:00
Mark Johnston
685d1d78bf inpcb: Add FIB-aware inpcb lookup
Allow protocol layers to look up an inpcb belonging to a particular FIB.
This is indicated by setting INPLOOKUP_FIB; if it is set, the FIB to be
used is obtained from the specificed mbuf or ifnet.

No functional change intended.

Reviewed by:	glebius, melifaro
MFC after:	2 weeks
Sponsored by:	Klara, Inc.
Sponsored by:	Stormshield
Differential Revision:	https://reviews.freebsd.org/D48662

(cherry picked from commit da806e8db685eead02bc67888b16ebac6badb6b6)
2025-02-21 01:04:50 +00:00
Mark Johnston
ff45a1ca2e inpcb: Add a flags parameter to in_pcbbind()
Add a flag, INPBIND_FIB, which means that the inpcb is local to its FIB
number.  When this flag is specified, duplicate bindings are permitted,
so long as each FIB contains at most one inpcb bound to the same
address/port.  If an inpcb is bound with this flag, it'll have the
INP_BOUNDFIB flag set.

No functional change intended.

Reviewed by:	glebius
MFC after:	2 weeks
Sponsored by:	Klara, Inc.
Sponsored by:	Stormshield
Differential Revision:	https://reviews.freebsd.org/D48661

(cherry picked from commit bbd0084baf7539c7042ce94f8c6770210f83f765)
2025-02-21 01:04:49 +00:00
Mark Johnston
062ca7e887 inpcb: Imbue in(6)_pcblookup_local() with a FIB parameter
This is to enable a mode where duplicate inpcb bindings are permitted,
and we want to look up an inpcb with a particular FIB.  Thus, add a
"fib" parameter to in_pcblookup() and related functions, and plumb it
through.

A fib value of RT_ALL_FIBS indicates that the lookup should ignore FIB
numbers when searching.  Otherwise, it should refer to a valid FIB
number, and the returned inpcb should belong to the specific FIB.  For
now, just add the fib parameter where needed, as there are several
layers to plumb through.

No functional change intended.

Reviewed by:	glebius
MFC after:	2 weeks
Sponsored by:	Klara, Inc.
Sponsored by:	Stormshield
Differential Revision:	https://reviews.freebsd.org/D48660

(cherry picked from commit 9a4131629bb3083ddc02a32950e4eb4806a07710)
2025-02-21 01:04:49 +00:00
Mark Johnston
0629203c53 inpcb: Remove some unused parameters in internal hash lookup functions
in_pcblookup_hash_wild_* looks up unconnected inpcbs, so there is no
point in passing the foreign address and port, and indeed those
parameters are not used.  So, remove them.

No functional change intended.

MFC after:	1 week
Sponsored by:	Klara, Inc.
Sponsored by:	Stormshield
Differential Revision:	https://reviews.freebsd.org/D47385

(cherry picked from commit 21d7ac8c79a34cf3b7205d0c32014ee39f1f28ab)
2025-02-21 01:04:49 +00:00
Michael Tuexen
ccd9c1ef4e icmp: use per rate limit randomized jitter
Using the same random jitter for multiple rate limits allows an
attacker to use one rate limiter to figure out the current jitter
and then use this knowledge to de-randomize the other rate limiters.
This can be mitigated by using a separate randomized jitter for each
rate limiter.
This issue was reported as issue number 10 in Keyu Man et al.:
SCAD: Towards a Universal and Automated Network Side-Channel
Vulnerability Detection

Reviewed by:		rrs, Peter Lei, glebius
Sponsored by:		Netflix, Inc.
Differential Revision:	https://reviews.freebsd.org/D48804

(cherry picked from commit 923c223f27e792e51ca13c476428adbbf6887551)
2025-02-12 11:04:10 +01:00
Michael Tuexen
f284154896 TCP BBR: remove dead code
No functional change intended.

Reviewed by:		Peter Lei, rrs (earlier version)
CID:			1523802
Sponsored by:		Netflix, Inc.
Differential Revision:	https://reviews.freebsd.org/D48341

(cherry picked from commit e7fbf52a3e38c4bc4249e6541fe7e42ecc119656)
2025-02-05 11:04:01 +01:00
Michael Tuexen
0cc48e6317 TCP RACK: don't log an uninitialized value
reduce is uninitialized, if the code path for logging is reached via
goto old_method;.

Reviewed by:		rrs, Peter Lei
CID:			1557359
Sponsored by:		Netflix, Inc.
Differential Revision:	https://reviews.freebsd.org/D48346

(cherry picked from commit 4c89d59e0cdac4d83fb5841aefae9214545b2273)
2025-02-05 11:00:04 +01:00
Michael Tuexen
992f67691a TCP RACK: fix TCP_RACK_PACING_BETA socket option
Bring back the code, which was accidentally removed. While there,
indent a comment correctly.

Reviewed by:		rrs
CID:			1540026
Fixes:			e18b97bd63a8 ("Update to bring the rack stack with all its fixes in.")
Sponsored by:		Netflix, Inc.
Differential Revision:	https://reviews.freebsd.org/D48340

(cherry picked from commit e8ec28047df5185582a95c5211ed75682fad5ec5)
2025-02-05 10:58:12 +01:00
Michael Tuexen
c6f745a3e3 TCP BBR: remove dead code
No functional change intended.

Reviewed by:		rrs
CID:			1523808
Sponsored by:		Netflix, Inc.
Differential Revision:	https://reviews.freebsd.org/D48338

(cherry picked from commit 061727efe1e355fb2fde1b05e92718543d05bfe7)
2025-02-05 10:56:52 +01:00
Michael Tuexen
2a704e9ca7 TCP BBR: remove dead code
bw is unsigned and not zero. So it cannot be smaller than 1.
No functional change intended.

Reviewed by:		rrs, cc
CID:			1523791
Sponsored by:		Netflix, Inc.
Differential Revision:	https://reviews.freebsd.org/D48323

(cherry picked from commit c28fefe1dc44b69743dd18d038440da38a2867a7)
2025-02-05 10:55:36 +01:00
Michael Tuexen
86ec7e524a TCP RACK: fix TCP fast open
Do not jump to a place in the code, which requires several variables
to be set (segsize, minseg, idle, len, sb_offset), which is not true.
To avoid using these variables, start the HPTS timer explicitly.
This fix only applies to the client side using TCP fast open.

Approved by:		rrs
CID:			1523766
CID:			1523770
CID:			1523786
CID:			1523801
CID:			1523809
Sponsored by:		Netflix, Inc.
Differential Revision:	https://reviews.freebsd.org/D48322

(cherry picked from commit bb9525f30214e8b6c53c6cccd9e8f02e8f8e8c42)
2025-02-05 10:54:19 +01:00
Michael Tuexen
1d8bbe5ba3 TCP RACK: remove variable with is only initialized and not changed
minslot is initialized to 0 and never changed. It is not clear to me
under which condition minslot should be set to which value.
Therefore, remove it and the code checking that it is not zero.
No functional change intended.

Reviewed by:		rrs
CID:			1523812
Sponsored by:		Netflix, Inc.
Differential Revision:	https://reviews.freebsd.org/D48321

(cherry picked from commit 84e894ce1309b426aa5d1a20ec194401f35dc478)
2025-02-05 10:52:35 +01:00
Michael Tuexen
6ab740bc90 TCP BBR: remove code which is not needed
rc_bbr_substate is a 3-bit unsigned int, so it can't be larger than
or equal to 8. The wrap around already happens.
No functional change intended.

Reviewed by:		rrs
CID:			1523795
Sponsored by:		Netflix, Inc.
Differential Revision:	https://reviews.freebsd.org/D48320

(cherry picked from commit 4bce1a19fcfac0c9f22c11278daa510546ccd3f2)
2025-02-05 10:50:55 +01:00
Michael Tuexen
2632e532c4 TCP BBR: simplify expression
There is no need to check partially for bbr->r_ctl.crte being NULL,
since this can't be true in this path.
No functional change intended.

Reviewed by:		rrs
CID:			1523810
Sponsored by:		Netflix, Inc.
Differential Revision:	https://reviews.freebsd.org/D48312

(cherry picked from commit 305c40dc552f9c150eacce95c181798031368cd9)
2025-02-05 10:49:42 +01:00
Michael Tuexen
221ac9e078 TCP RACK: remove code that cannot be reached
No functional change intended.

Reviewed by:		rrs
CID:			1523797
Sponsored by:		Netflix, Inc.
Differential Revision:	https://reviews.freebsd.org/D48301

(cherry picked from commit 41af5eeefc2c11d0e301f9f4476ba50214a8a584)
2025-02-05 10:47:30 +01:00
Michael Tuexen
c178bc1934 TCP BBR: fix integer overflow
Use 64-bit arithmetic.

Reviewed by:		rrs
CID:			1523806
Sponsored by:		Netflix, Inc.
Differential Revision:	https://reviews.freebsd.org/D48302

(cherry picked from commit 88766e7af52bbde32b14ad48fb76798a3ba4650c)
2025-02-05 10:46:22 +01:00
Michael Tuexen
c3322bb468 TCP BBR: simplify expression
rsm cannot be NULL, when calling bbr_update_bbr_info().
So no need to check partially for it. No functional change intended.

Reviewed by:		rrs
CID:			1523803
Sponsored by:		Netflix, Inc.
Differential Revision:	https://reviews.freebsd.org/D48293

(cherry picked from commit 4173a3a009a42c47f1ec2d1cbfb99347aaf195da)
2025-02-05 10:45:17 +01:00
Michael Tuexen
53da007da1 TCP RACK: remove un-needed assignment
No functional change intended.

Reviewed by:		rrs
CID:			1523768
Sponsored by:		Netflix, Inc.
Differential Revision:	https://reviews.freebsd.org/D48292

(cherry picked from commit deb4252e9e7c8d2eca9be6333caa434061f3f594)
2025-02-05 10:41:26 +01:00
Michael Tuexen
6aa2c8ed5e TCP RACK: simplify condition
It is already known that rsm != NULL, so no need to check for it.

Reviewed by:		rrs
CID:			1523815
Sponsored by:		Netflix, Inc.
Differential Revision:	https://reviews.freebsd.org/D48282

(cherry picked from commit 8471791eb6eeedaedd4d70e1076cfd143bf12fca)
2025-02-05 10:39:15 +01:00
Michael Tuexen
3f45a8ffad TCP BBR: do not log an uninitialized value
Reviewed by:		rrs
CID:			1523789
Sponsored by:		Netflix, Inc.
Differential Revision:	https://reviews.freebsd.org/D48281

(cherry picked from commit c7e81cc04369dd7bdd00519109efe9d75f53375c)
2025-02-05 10:37:35 +01:00
Michael Tuexen
080caa0aea TCP RACK: avoid using uninitialized tot_idle variable
Reviewed by:		rrs
CID:			1540027
Sponsored by:		Netflix, Inc.
Differential Revision:	https://reviews.freebsd.org/D48277

(cherry picked from commit 3b9da3dcd11f3d73281383c4ba383a4fcc4b9bbe)
2025-02-05 10:33:29 +01:00
Michael Tuexen
8a246cebc1 TCP BBR: remove code which is never executed
USEC_2_TICKS() returns at least 1.

Reviewed by:		rrs
CID:			1523775
Sponsored by:		Netflix, Inc.
Differential Revision:	https://reviews.freebsd.org/D4827

(cherry picked from commit 1781324db2bc22a971a33c5a063036b2775055c6)
2025-02-05 10:32:16 +01:00
Michael Tuexen
8ef4a2cfb3 TCP BBR: fix condition when sending a tail loss probe
Reviewed by:		rrs
CID:			1523793
Sponsored by:		Netflix, Inc.
Differential Revision:	https://reviews.freebsd.org/D48274

(cherry picked from commit 5ec914e06c96ff40bf0e6567359c0de039b59ed2)
2025-02-05 10:31:01 +01:00
Michael Tuexen
3520068b47 TCP RACK: add comment
Indicate that the missing of the break is intentionally.

Reviewed by:		rrs
CID:			1523782
Sponsored by:		Netflix, Inc.
Differential Revision:	https://reviews.freebsd.org/D48273

(cherry picked from commit 0ce13b1d580f05f96e3d85afb0824f672cb0c7a2)
2025-02-05 10:29:28 +01:00