Commit graph

7314 commits

Author SHA1 Message Date
Gordon Bergling
2dd0c2bc7f tcp_bbr(4): Fix a typo in a source code comment
- s/possiblity/possibility/

MFC after:	3 days
2022-04-09 13:26:20 +02:00
Gordon Bergling
addb2c6585 tcp_rack: Fix a typo in a source code comment
- s/possiblity/possibility/

MFC after:	3 days
2022-04-09 13:25:50 +02:00
Gordon Bergling
1cfd924f4e libalias(3): Fix two typos in source code comments
- s/modfied/modified/

MFC after:	3 days
2022-04-09 09:14:00 +02:00
Gordon Bergling
36814092d4 tcp_rack: Fix a few typos in sysctl descriptions and comments
- s/postion/position/
- s/postions/positions/
- s/repostion/reposition/

MFC after:	5 days
2022-04-09 09:13:10 +02:00
Gordon Bergling
1f2aaef29a tcp_htps: Fix a typo in a source code comment
- s/postion/position/

MFC after:	3 days
2022-04-09 09:12:58 +02:00
Gordon Bergling
665709016d tcp_bbr(4): Fix two typos in source code comments
- s/postive/positive/
- s/postion/position/

MFC after:	3days
2022-04-09 09:12:48 +02:00
John Baldwin
3b994db74b Use stub inline functions for no-op versions of tcp_fastopen*().
Inline functions "use" variables passed as arguments unlike empty
macros appeasing compiler warnings about unused variables.
2022-04-08 17:25:13 -07:00
Gordon Bergling
4d6883cbe2 tcp_bbr(4): Fix a typo in a sysctl description and a comment
- s/postive/positive/

MFC after:	5 days
2022-04-08 21:08:18 +02:00
Mark Johnston
990a6d18b0 net: Fix memory leaks in lltable_calc_llheader() error paths
Also convert raw epoch_call() calls to lltable_free_entry() calls, no
functional change intended.  There's no need to asynchronously free the
LLEs in that case to begin with, but we might as well use the lltable
interfaces consistently.

Noticed by code inspection; I believe lltable_calc_llheader() failures
do not generally happen in practice.

Reviewed by:	bz
MFC after:	1 week
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D34832
2022-04-08 11:47:25 -04:00
Mark Johnston
dd91d84486 net: Fix LLE lock leaks
Historically, lltable_try_set_entry_addr() would release the LLE lock
upon failure.  After some refactoring, it no longer does so, but
consumers were not adjusted accordingly.

Also fix a leak that can occur if lltable_calc_llheader() fails in the
ARP code, but I suspect that such a failure can only occur due to a code
bug.

Reviewed by:	bz, melifaro
Reported by:	pho
Fixes:		0b79b007eb ("[lltable] Restructure nd6 code.")
MFC after:	3 days
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D34831
2022-04-08 11:46:19 -04:00
Michael Tuexen
d7224a53b3 sctp: remove a mutex not used anymore
MFC after:	3 days
2022-04-07 17:54:57 +02:00
Michael Tuexen
3c3d77bdff sctp: use variable names in a consistent way
No functional change intended.

MFC after:	3 days
2022-04-07 17:51:31 +02:00
Tom Jones
1241e8e7ae siftr: expose t_flags2 in siftr output
Replace the old snd_bwnd field which was kept for compatibility with the
t_flags2 field from the tcpcb. This exposes in siftr logs interesting
things such as ECN, PLPMTUD, Accurate ECN and if first bytes are
complete.

Reviewed by:	rscheff (transport), chengc_netapp.com,  debdrup (manpages)
Sponsored by:   NetApp, Inc.
Sponsored by:   Klara, Inc.
X-NetApp-PR:    #73
Differential Revision:	https://reviews.freebsd.org/D34672
2022-04-07 10:17:09 +01:00
John Baldwin
6454d0c8cb libalias: Remove unused variables. 2022-04-06 16:45:29 -07:00
John Baldwin
3f6d3f0285 alias_nbt: Move debug-only variable under #ifdef LIBALIAS_DEBUG. 2022-04-06 16:45:29 -07:00
John Baldwin
8b6ccfb6c7 multicast code: Quiet unused warnings for variables used for KTR traces.
For nallow and nblock, move the variables under #ifdef KTR.

For return values from functions logged in KTR traces, mark the
variables as __unused rather than having to #ifdef the assignment of
the function return value.
2022-04-06 16:45:28 -07:00
Michael Tuexen
ccdfd621d0 tcp cc: don't recurse on non recursive mutex
This issue was found by syzkaller.

Reviewed by:		rrs
Sponsored by:		Netflix, Inc.
Differential Revision:	https://reviews.freebsd.org/D34743
2022-04-05 13:52:36 +02:00
Navdeep Parhar
08c7f1b6d4 Fix typo (interrups -> interrupts) in a sysctl description in tcp_lro.c.
MFC after:	3 days
2022-04-04 13:48:32 -07:00
Michael Tuexen
52106f072f sctp: don't refer to a potentially outdated stream
Reported by:	syzbot+1593381019112e5bb35c@syzkaller.appspotmail.com
MFC after:	3 days
2022-04-02 23:26:27 +02:00
Michael Tuexen
b30b7a140c sctp: cleanup, no functional change
MFC after:	3 days
2022-04-02 23:02:16 +02:00
Michael Tuexen
0f31631620 sctp: remove a test, which isn't safe
We can't ensure the stcb is still around. This issue was found
 by syzkaller.

MFC after:	3 days
2022-04-02 15:09:50 +02:00
Michael Tuexen
d4290f7e62 Revert "sctp: remove a test, which isn't safe"
It included unrelated changes still under review.
This reverts commit b1fe92b28b.
2022-04-02 14:49:14 +02:00
Michael Tuexen
b1fe92b28b sctp: remove a test, which isn't safe
We can't ensure the stcb is still around. This issue was found
by syzkaller.

MFC after:	3 days
2022-04-02 14:44:06 +02:00
Gordon Bergling
942e8cab8c netinet: Fix a typo in a source code comment
- s/exisitng/existing/

MFC after:	3 days
2022-04-02 14:39:32 +02:00
Gordon Bergling
8d30ef92d5 khelp(9): Fix a typo in a source code comment
- s/measurment/measurement/

MFC after:	3 days
2022-04-02 14:10:59 +02:00
Gordon Bergling
17628f1b79 cc_vegas(4): Fix a typo in a source code comment
- s/measurment/measurement/

MFC after:	3 days
2022-04-02 14:07:44 +02:00
Michael Tuexen
39a22011bb sctp: clear pointer to stack when returning from function.
Reported by:    syzbot+04cee5d8805dfbb63c06@syzkaller.appspotmail.com
Reported by:    syzbot+71e7e33dfc3cc39a6bd0@syzkaller.appspotmail.com
Reported by:    syzbot+6c36fc3c1bd03ed96107@syzkaller.appspotmail.com
Reported by:    syzbot+198b3751c158181c47de@syzkaller.appspotmail.com
2022-04-02 00:54:49 +02:00
Randall Stewart
e88412d89b Opps sorry, typo in the cc_cubic fix when morphing it from nreno. 2022-04-01 08:37:04 -04:00
Randall Stewart
653cf466f0 hystart++ may not properly exit CSS back to slowstart.
In the changes to get hystart++ into cubic an inadvertent line
was removed in the conditional to figure out if you need to exit
hystart++ back to slowstart. The line of course is the most crucial
one (the others are valid but not critical) i.e. is the new rtt
less than the point where we entered hystart++. Without the line
we end up bouncing in and out of CSS.

Reported By: Reese Enghardt
Sponsored By: Netflix Inc.
2022-04-01 08:33:44 -04:00
Randall Stewart
ee1a08b8da rack may end up with a stuck connectin fi the rwnd is colapsed on sent data.
There is a case where rack will get stuck when it has outstanding data and
the peer collapses the rwnd down to 0. This leaves the session hung if
the rwnd update is not received. You can test this with the packet drill script
below. Without this fix it will be stuck and hang. With it we retransmit everything.
This also fixes the mtu retransmit case so we don't go into recovery when
the mtu is changed to a smaller value.

Reviewed by: tuexen
Sponsored by: Netflix Inc.
Differential Revision: https://reviews.freebsd.org/D34573
2022-04-01 08:29:27 -04:00
George V. Neville-Neil
ca4cd20c4a Address issue pointed out in CVE-2020-25705
Add jitter to the ICMP bandwidth limit to deny a side-channel port scan.

Reviewed by:	kp, philip, cy, emaste
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D27354
2022-03-31 16:45:50 +02:00
Michael Tuexen
218e463b85 sctp: ensure that ASCONF chunks are not too large
MFC after:	3 days
2022-03-30 01:22:20 +02:00
Michael Tuexen
e7e65008ff sctp: fix typos
Thanks to David Sanders for fixing the typos in the userland stack.

MFC after:	3 days
2022-03-29 21:09:51 +02:00
Michael Tuexen
5d0c76c730 sctp: don't lock an already locked stcb.
Reported by:	syzbot+e8dca84da3b4b82f4400@syzkaller.appspotmail.com
MFC after:	3 days
2022-03-29 16:33:53 +02:00
Michael Tuexen
5ac91821f5 sctp: get rid of stcb send lock
Just use the stcb lock instead to simplify locking.

Reported by:	syzbot+d00b202063150f85b110@syzkaller.appspotmail.com
Reported by:	syzbot+87f268a0a6d2d6383306@syzkaller.appspotmail.com
MFC after:	3 days
2022-03-29 01:50:17 +02:00
Gordon Bergling
75fdc440c8 extra_tcp_stacks: Fix two typos in source code comments
- s/recusive/recursive/

MFC after:	3 days
2022-03-28 19:34:45 +02:00
Mike Karels
04cd74b4cd IPv4 multicast: fix netstat -g
The vif structure includes fields at the end which are #ifdef KERNEL,
causing a mismatch between the structure sizes between kernel and
user level.  netstat -g failed with an ENOMEM on the sysctl to fetch
the vif table.  Change the vif sysctl code in ip_mroute to copy out
only the user-level-visible portion of each table entry.

Reviewed by:	bz, wma
Differential Revision: https://reviews.freebsd.org/D34627
2022-03-22 07:38:01 -05:00
Mike Karels
2cf1e120c6 Enter epoch when addding IPv4 multicast forwarding cache entry
The code path from the IPv4 multicast setsockopt could call ip_output()
without entering an epoch.  Specifically, the MRT_ADD_MFC setbsocopt
would call add_mfc(), which in turn called ip_mdq() to send queued
packets.  This resulted in an epoch assert failure in ip_output().
Enter an epoch in add_mfc(), and add some epoch asserts to check
for similar failures.

Reviewed by:	kp, bz, wma, cy
Differential Revision: https://reviews.freebsd.org/D34624
2022-03-22 07:28:57 -05:00
Mark Johnston
9f70c04da4 rip: Fix a -Wunused-but-set-variable warning
Fixes:		81728a538d ("Split rtinit() into multiple functions.")
Reviewed by:	imp, melifaro
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D34395
2022-03-01 09:39:43 -05:00
Richard Scheffenegger
2ff07d9220 tcp: Restore correct ECT marking behavior on SACK retransmissions
While coalescing all ECN-related code into new common source files,
the flag to deal with SACK retransmissions was skipped. This leads
to non-compliant ECT-marking of SACK retransmissions, as well as
the premature sending of other TCP ECN flags (CWR).

Reviewed By: rrs, #transport
Sponsored by:        NetApp, Inc.
Differential Revision: https://reviews.freebsd.org/D34376
2022-02-25 20:05:32 +01:00
Randall Stewart
a43b0aca12 tcp: Push bit failure to set in fastpath
Recently changes were made to the tcp stack to use a macro/function
to set tcp flags. In the process the PUSH bit setting in the fastpath of
rack was broken. This fixes that as well as cleans up a warning that
is occurring when you don't have INVARIANT on (inp used in KASSERT).

We can use the tcp test suite to find this bug the test plan shows the script
that fails due to the missing push bit

Reviewed by: rscheff, tuexen
Sponsored by: Netflix Inc.
Differential Revision: https://reviews.freebsd.org/D34332
2022-02-23 16:25:56 -05:00
Randall Stewart
ea9017fb25 tcp: Congestion control move to using reference counting.
In the transport call on 12/3 Gleb asked to move the CC modules towards
using reference counting to prevent folks from unloading a module in use.
It was also agreed that Michael would do a user space utility like tcp_drop
that could be used to move all connections that are using a specific CC
to some other CC.

This is the half I committed to doing, making it so that we maintain a refcount
on a cc module every time a pcb refers to it and decrementing that every
time a pcb no longer uses a cc module. This also helps us simplify the
whole unloading process by getting rid of tcp_ccunload() which munged
through all the tcb's. Instead we mark a module as being removed and
prevent further references to it. We also make sure that if a module is
marked as being removed it cannot be made as the default and also
the opposite of that, if its a default it fails and does not mark it as being
removed.

Reviewed by: Michael Tuexen, Gleb Smirnoff
Sponsored by: Netflix Inc.
Differential Revision: https://reviews.freebsd.org/D33249
2022-02-21 06:30:17 -05:00
Michael Tuexen
bdb99f6f5e sctp: remove KASSERT() which not always holds
Reported by:	syzbot+c907045aed2043011f3c@syzkaller.appspotmail.com
MFC after:	3 days
2022-02-20 15:59:21 +01:00
Michael Tuexen
e255f0c9fb sctp: make sure new locking requirements are satisfied.
Reported by:	syzbot+cd3c1dd64861b8c200bd@syzkaller.appspotmail.com
MFC after:	3 days
2022-02-20 15:36:26 +01:00
Michael Tuexen
2f0656fb9b sctp: don't hold the assoc create lock longer than needed
Reported by:	syzbot+c738e3df67cf425c49a2@syzkaller.appspotmail.com
MFC after:	3 days
2022-02-20 14:55:41 +01:00
Michael Tuexen
a4a31271cc sctp: cleanup sctp_lower_sosend
This is a preparation for retiring the tcp send lock in the
next step.

MFC after:	3 days
2022-02-20 01:09:30 +01:00
Michael Tuexen
fd0d53f85c sctp: improve robustness
MFC after:	3 days
2022-02-18 14:30:07 +01:00
Michael Tuexen
274a0e4a8d sctp: cleanup, no functional change intended.
MFC after:	3 days
2022-02-18 14:20:01 +01:00
Michael Tuexen
3ca204c97a sctp: remove unused parameter
MFC after:	3 days
2022-02-18 12:20:44 +01:00
Michael Tuexen
11c4d4b966 sctp: fix a signed/unsigned mismatch.
MFC after:	3 days
2022-02-17 22:45:57 +01:00