Commit graph

1761 commits

Author SHA1 Message Date
Franco Fichtner
d0d18dbbab Revert "pf: be less strict about icmp state checking for sloppy state tracking"
This reverts commit 781221f084.

Revert "pf tests: ensure that neighbour discovery works as expected"

This reverts commit 631d6e5300.

Revert "pf: fully annotated patch of disabling state tracking and issues for ND"

This reverts commit f858272896.

Revert "pf: invert direction for inner icmp state lookups"

This reverts commit c61a3c23fb.

Revert "pf tests: ensure that traceroutes using ICMP work"

This reverts commit 9c53965169.

Revert "pf: fix icmp-in-icmp state lookup"

This reverts commit e854cb4789.

Revert "pf: allow MLD LR to be sent without state"

This reverts commit 9b2e3cf60b.

Revert "pf: split ICMP/ICMPv6 number space in pf_icmp_mapping()"

This reverts commit ee1b7126a9.

Revert "pf: some ICMP types that also have icmp_id, pointed out by markus@"

This reverts commit c21004ce41.

Revert "pf: stricter state checking for ICMP and ICMPv6 packets"

This reverts commit 7f1f57ed78.

PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=280701
2024-09-09 21:23:57 +02:00
Kristof Provost
631d6e5300 pf tests: ensure that neighbour discovery works as expected
Also check repeated calls.

MFC after:	1 week
Sponsored by:	Rubicon Communications, LLC ("Netgate")

(cherry picked from commit d154dc21130b607d7903f276dd6d463b990f33f7)
2024-09-05 08:12:47 +02:00
Kristof Provost
bc5627fc5f pf: cope with SCTP port re-use
Some SCTP implementations will abort connections and then later re-use the same
port numbers (i.e. both src and dst) for a new connection, before pf has fully
purged the old connection.

Apply the same hack we already have for similarly misbehaving TCP
implementations and forcibly remove the old state so we can create a new one.

MFC after:	2 weeks
Sponsored by:	Rubicon Communications, LLC ("Netgate")

(cherry picked from commit 82e021443a76b1f210cfb929a495185179606868)
2024-08-27 14:58:38 +02:00
Kristof Provost
6e758a4b37 vnet tests: verify that we can load if_epair and if_bridge
We're going to start running many of the vnet tests in nested jails (so they
can run in parallel). That means the tests won't be able to load kernel modules,
which we commonly do for if_epair and if_bridge.

Just assume that all vnet tests need this, because so many of them do that we
don't want to manually annotate all of them.
This is essentially a no-op on non-nested tests.

Do the same for the python test framework.

While here also have pflog_init actually call pft_init. While having pflog
loaded implies we have pf too pft_init also checks for vimage support, and now
for if_epair.

Reviewed by:	markj
MFC after:	1 month
Sponsored by:	Rubicon Communications, LLC ("Netgate")
Differential Revision:	https://reviews.freebsd.org/D46039

(cherry picked from commit ae8d58814089308028046ac80aeeb9cbb784bd0a)
2024-08-27 14:58:36 +02:00
Kristof Provost
45112a88f5 pf tests: ensure temporary files end up in the atf working directory
Many of the tests create temporary files. pid files, log files, tcpdump
captures, ... We should take care to ensure they're stored in the temporary
working directory Kyua creates rather than in the root directory.

This ensures there are no conflicts between simultaneously running tests, and
also keeps the root directory clean.

MFC after:	1 month
Sponsored by:	Rubicon Communications, LLC ("Netgate")

(cherry picked from commit b0fcf4d5222bfdbbc0e2af2b14f0d73704706aa0)
2024-08-27 14:58:34 +02:00
Kristof Provost
c61a3c23fb pf: invert direction for inner icmp state lookups
(e.g. traceroute with icmp)
ok henning, jsing

Also extend the test case to cover this scenario.

PR:		280701
Obtained from:	OpenBSD
MFC after:	1 week
Sponsored by:	Rubicon Communications, LLC ("Netgate")
2024-08-19 10:22:23 +02:00
Kristof Provost
9c53965169 pf tests: ensure that traceroutes using ICMP work
PR:		280701
MFC after:	1 week
Sponsored by:	Rubicon Communications, LLC ("Netgate")
2024-08-19 10:22:13 +02:00
Kristof Provost
bb2c86773c pf tests: ensure we don't confuse different ICMP types
When creating a state for ICMP (v4 or v6) packets we only used the ID, which
means that we could confuse different ICMP types. For example, if we allowed
neighbour discovery but not ICMPv6 echo requests an ND packet could create a
state that the echo request would match.

Test that this is now fixed.

Reported by:	Enrico Bassetti <e.bassetti@tudelft.nl>
MFC after:	1 day
Sponsored by:	Rubicon Communications, LLC ("Netgate")

(cherry picked from commit b9f0dbc3d006e0b904ee4275d54459f4edd65bb8)
2024-08-07 17:18:18 +02:00
Kristof Provost
83d88cf570 pf tests: fix sctp:timeout test
The test body somehow wound up in the cleanup function.

MFC after:	1 week
Sponsored by:	Rubicon Communications, LLC ("Netgate")

(cherry picked from commit fe0c82a603ce069786ee81604315f499fd965546)
2024-07-29 08:14:44 +02:00
Kristof Provost
a6bd9da1cd pf tests: test setting and retrieving timeout values
(cherry picked from commit 8ed5170c66ec4914e90c2f3657227ceb9e35193f)
2024-07-29 08:14:34 +02:00
Kristof Provost
f3fcd12d13 pf tests: test longer anchor names
PR:		279225
MFC after:	3 weeks
Sponsored by:	Rubicon Communications, LLC ("Netgate")

(cherry picked from commit 8b28ec3861d5b3e9fd8a60dbfda13059a5301281)
2024-07-10 08:02:48 +02:00
Kristof Provost
cc0f1c12b8 pf tests: make ether:dummynet test a little more robust
Allow slightly more bandwidth, but cause ping to give up sooner.

MFC after:	1 week
Sponsored by:	Rubicon Communications, LLC ("Netgate")

(cherry picked from commit 1c5b886e111663d3c7e30beddae9c10445f620d4)
2024-06-17 10:57:59 +02:00
Kristof Provost
d1f8b0bbdc vnet tests: check for if_bridge.ko
A number of tests create a bridge, but did not check if if_bridge.ko is loaded.

We usually get away with that, because `ifconfig bridge create` autoloads the
module, but if we run the tests in a jail (e.g. because of kyua's upcoming
execenv.jail.params feature) we can't load the module and these tests can fail.

Check if the module is loaded, skip the test if it is not.

Reviewed by:	markj
MFC after:	1 week
Event:		Kitchener-Waterloo Hackathon 202406
Differential Revision:	https://reviews.freebsd.org/D45487

(cherry picked from commit 480ad4055314efbfff7eedbb34272031d836ba89)
2024-06-17 10:57:36 +02:00
Zhenlei Huang
11e2846440 ifconfig: Redo fix vlan/vlanproto reconfiguration
When the if_vlan(4) interface has not been fully configured, i.e., a
bare interface without a physical interface associated with it,
retrieving the current settings of it and unconditionally overwriting
`params` will result in losing vlandev settings in `params`. That will
lead to failing to associate the if_vlan(4) interface with the requested
physical interface and the false report 'both vlan and vlandev must be
specified'.

Fix that by checking if the vlan interface has been fully configured.

The basic VLAN test is slightly modified to cover this case.

PR:		279181
Reviewed by:	kp
Tested by:	Mike Tancsa <mike@sentex.net>
Fixes:		b82b8055ad ifconfig: fix vlan/vlanproto reconfiguration
MFC after:	3 days
Differential Revision:	https://reviews.freebsd.org/D45283

(cherry picked from commit 76df3c57a0abfd24652bfa33982ba136d9d0575b)
2024-06-03 11:06:56 +02:00
Kristof Provost
0c17e19c8f if_ovpn: cope with loops
User misconfiguration may lead to routing loops where we try to send the tunnel
packet into the tunnel. This eventually leads to stack overflows and panics.

Avoid this using if_tunnel_check_nesting(), which will drop the packet if we're
looping or we hit three layers of nested tunnels.

MFC after:	1 week
Sponsored by:	Rubicon Communications, LLC ("Netgate")

(cherry picked from commit 59a6666ec91d71f97aaae5195bbfafd9d422db2e)
2024-06-03 11:06:56 +02:00
Mariusz Zaborski
309946854f geli: allocate a UMA pool earlier
The functions g_eli_init_uma and g_eli_fini_uma are used to trace
the number of devices in GELI. There is an issue where the g_eli_create
function may fail before g_eli_init_uma is called, however
g_eli_fini_uma is still executed in the fail path. This can
incorrectly decrease the device count to zero, potentially leading to
the UMA pool being freed. Accessing the device after the pool has been
freed causes a system panic.

This commit resolves the issue by ensuring devices count is increassed
eariler.

PR:		278828
Reported by:	Andre Albsmeier <mail@fbsd2.e4m.org>
Reviewed by:	asomers
MFC after:	3 days
Approved by:	re (cperciva)
Differential Revision:	https://reviews.freebsd.org/D45225

(cherry picked from commit 4b3141f5d5373989598f9447ab5a9f87e2d1c9fb)
(cherry picked from commit ea5a708625)
2024-05-23 10:07:19 +02:00
Lexi Winter
59e7c575c5 tests: move atf_python/sys/ into the tests package
Reviewed by:	markj
MFC after:	1 week
Pull Request:	https://github.com/freebsd/freebsd-src/pull/1174

(cherry picked from commit e1e636193db45630c7881246d25902e57c43d24e)
2024-04-29 10:11:07 -04:00
Kajetan Staszkiewicz
9f3032b76b pf tests: Add option to send fragmented packets
Add option to send fragmented packets and to properly sniff them by
reassembling them by the sniffer itself.

Reviewed by:	kp
Sponsored by:	InnoGames GmbH
Differential Revision:	https://reviews.freebsd.org/D42354

(cherry picked from commit d7c9de2d68ca81c557e069c2b431529cf597886c)

pf: Fix packet reassembly

Don't drop fragmented packets when reassembly is disabled, they can be
matched by rules with "fragment" keyword. Ensure that presence of scrub
rules forces old behaviour.

Reviewed by:	kp
Sponsored by:	InnoGames GmbH
Differential Revision:	https://reviews.freebsd.org/D42355

(cherry picked from commit ede5d4ff5b39ccbc193c30fb6c093c7c4de9a464)

pf: Update documentation regarding matching, scrubbing and reassembly

Update pf documentation:

 - default behaviour of fragment reassembly
 - introduction of scrub option for filter rules
 - disadvantages of using the old scrub ruleset
 - options supported for match rules
 - fix missing list block end
 - remove duplicate description of match filter rule
 - update example to modern syntax

Reviewed by:	kp
Fragments obtained from:	OpenBSD
Sponsored by:	InnoGames GmbH
Differential Revision:	https://reviews.freebsd.org/D42270

(cherry picked from commit 5ed470bdb9da6442d6030cf0a7a8493f759fbb43)
2024-04-24 22:11:56 +00:00
Mark Johnston
615bd9d0a0 ptrace tests: Fix a signed/unsigned integer comparison
Reported by:	Jenkins
Fixes:	43b4da44118e ("ptrace tests: Add a test using PROC_REAP_KILL to kill a traced debuggee")

(cherry picked from commit 77c3e564b4b65443a9d3298e0aec4c1387acd55e)
2024-04-15 10:05:13 -04:00
Mark Johnston
16f6ce3f82 ptrace tests: Add a test using PROC_REAP_KILL to kill a traced debuggee
This exercises the bug fix in commit 9241ebc796c1
("thread_single(9): decline external requests for traced or debugger-stopped procs").

Reviewed by:	kib
MFC after:	2 weeks
Differential Revision:	https://reviews.freebsd.org/D44564

(cherry picked from commit 43b4da44118e4fe29e9d7456db4390c9cbb53636)
2024-04-15 10:05:13 -04:00
Dag-Erling Smørgrav
59c3e7a18c tarfs: Support paths that spill into exthdrs.
MFC after:	3 days
Sponsored by:	Juniper Networks, Inc.
Sponsored by:	Klara, Inc.
Reviewed by:	kevans
Differential Revision:	https://reviews.freebsd.org/D44599

(cherry picked from commit b1fd95c9e24791d44593e611406b41e57826a5b8)

tarfs: Ignore global extended headers.

Previously, we would error out if we encountered a global extended
header, because we don't know what it means.  This doesn't really
matter though, and traditionally, tar implementations have either
ignored them or treated them as plain files, so just ignore them.
This allows tarfs to mount tar files created by `git archive`.

MFC after:	3 days
Sponsored by:	Juniper Networks, Inc.
Sponsored by:	Klara, Inc.
Reviewed by:	kevans
Differential Revision:	https://reviews.freebsd.org/D44600

(cherry picked from commit 584e1c355ae3c994331005b7196cc87a714e5317)

tarfs: Fix 32-bit build.

MFC after:	3 days
Sponsored by:	Juniper Networks, Inc.
Sponsored by:	Klara, Inc.
Reviewed by:	bapt
Differential Revision:	https://reviews.freebsd.org/D44613

(cherry picked from commit 0238d3711d9b888f678fce4274eccc9175168395)
2024-04-08 12:10:41 +02:00
Ed Maste
ea3910c452 path_test: fix cap_rights_init usage
Capability rights passed to cap_rights_* are not simple bitmaks and
cannot be ORed together in general (although it will work for certain
subsets of rights).

PR:		277057
Fixes:		e5e1d9c7b7 ("path_test: Add a test case for...")
Sponsored by:	The FreeBSD Foundation

(cherry picked from commit 8d1348f55aed6873f34f54bc3b275b73ef0ff66d)
2024-03-22 09:30:32 -04:00
Jose Luis Duran
b2cb054dac netlink: Add tests when adding an interface route
Add tests for adding a route using an interface only (without an IP
address).

Reviewed by:	rcm
Approved by:	kp (mentor)
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D41436

(cherry picked from commit 1db64f89363c97858961c4df0b7d02f3223723cf)
2024-03-14 16:27:54 +08:00
Dag-Erling Smørgrav
08e799c0cc tarfs: Fix two input validation issues.
* Reject hard or soft links with an empty target path.  Currently, a
  debugging kernel will hit an assertion in tarfs_lookup_path() while
  a non-debugging kernel will happily create a link to the mount root.

* Use a temporary variable to store the result of the link target path,
  and copy it to tnp->other only once we have found it to be valid.
  Otherwise we error out after creating a reference to the target but
  before incrementing the target's reference count, which results in a
  use-after-free situation in the cleanup code.

* Correctly return ENOENT from tarfs_lookup_path() if the requested
  path was not found and create_dirs is false.  Luckily, existing
  callers did not rely solely on the return value.

MFC after:	3 days
PR:		277360
Sponsored by:	Juniper Networks, Inc.
Sponsored by:	Klara, Inc.
Reviewed by:	sjg
Differential Revision:	https://reviews.freebsd.org/D44161

(cherry picked from commit 38b3683592d4c20a74f52a6e8e29368e6fa61858)

tarfs: Improve validation of numeric fields.

MFC after:	3 days
Sponsored by:	Juniper Networks, Inc.
Sponsored by:	Klara, Inc.
Reviewed by:	sjg, allanjude
Differential Revision:	https://reviews.freebsd.org/D44166

(cherry picked from commit 8427d94ce05682abb6c75e2a27c8c497962c0dc5)

tarfs: Avoid overflow in exthdr calculation.

MFC after:	3 days
PR:		277420
Sponsored by:	Juniper Networks, Inc.
Sponsored by:	Klara, Inc.
Reviewed by:	kib
Differential Revision:	https://reviews.freebsd.org/D44202

(cherry picked from commit c291b7914e1db9469cc820abcb1f5dde7a6f7f28)

tarfs: Remove unnecessary hack and obsolete comment.

MFC after:	3 days
Sponsored by:	Juniper Networks, Inc.
Sponsored by:	Klara, Inc.
Reviewed by:	allanjude
Differential Revision:	https://reviews.freebsd.org/D44203

(cherry picked from commit e212f0c0666e7d3a24dce03b8c88920d14b80e47)

tarfs: Fix checksum calculation.

The checksum code assumed that struct ustar_header filled an entire
block and calculcated the checksum based on the size of the structure.
The header is in fact only 500 bytes long while the checksum covers
the entire block (“logical record” in POSIX terms).  Add padding and
an assertion, and clean up the checksum code.

MFC after:	3 days
Sponsored by:	Juniper Networks, Inc.
Sponsored by:	Klara, Inc.
Reviewed by:	imp
Differential Revision:	https://reviews.freebsd.org/D44226

(cherry picked from commit 0118b0c8e58a438a931a5ce1bf8d7ae6208cc61b)

tarfs: Factor out common test code.

MFC after:	3 days
Sponsored by:	Juniper Networks, Inc.
Sponsored by:	Klara, Inc.
Reviewed by:	allanjude
Differential Revision:	https://reviews.freebsd.org/D44227

(cherry picked from commit 32b8aac6f9b77a1c4326083472d634e5de427547)

tarfs: Fix checksum on 32-bit platforms.

MFC after:	3 days
Fixes:		b56872332e47786afc09515a4daaf1388da4d73c
Sponsored by:	Juniper Networks, Inc.
Sponsored by:	Klara, Inc.
Reviewed by:	bapt
Differential Revision:	https://reviews.freebsd.org/D44261

(cherry picked from commit cbddb2f02c7687d1039abcffd931e94e481c11a5)
2024-03-11 13:19:06 +01:00
Konstantin Belousov
acb407522c sigsys test: correct count of delivered signals
(cherry picked from commit 09dd7240acf1fc50061246013ce318404d70c4e0)
2024-03-01 06:12:02 +02:00
Alan Somers
739488cc21 fusefs: fix invalid value for st_birthtime.tv_nsec
If a file system's on-disk format does not support st_birthtime, it
isn't clear what value it should return in stat(2).  Neither our man
page nor the OpenGroup specifies.  But our convention for UFS and
msdosfs is to return { .tv_sec = -1, .tv_nsec = 0 }.  fusefs is
different.  It returns { .tv_sec = -1, .tv_nsec = -1 }.  It's done that
ever since the initial import in SVN r241519.

Most software apparently handles this just fine.  It must, because we've
had no complaints.  But the Rust standard library will panic when
reading such a timestamp during std::fs::metadata, even if the caller
doesn't care about that particular value.  That's a separate bug, and
should be fixed.

Change our invalid value to match msdosfs and ufs, pacifying the Rust
standard library.

PR:		276602
Sponsored by:	Axcient
Reviewed by:	emaste
Differential Revision: https://reviews.freebsd.org/D43590

(cherry picked from commit 55b80e2ca52c4b27c4920d372a6e71ac9ab7da9e)
2024-02-12 10:43:11 -07:00
Alan Somers
314a881fce fusefs: fix some memory leaks in the tests
(cherry picked from commit 39f5d8dd1b2fea7cff0770efb0bc3d6e33e24279)
2024-02-12 10:43:07 -07:00
Alan Somers
8510b8fe2a fusefs: prefer new/delete over malloc/free
Reviewed by:	kib
Differential Revision: https://reviews.freebsd.org/D43464

(cherry picked from commit 8bae22bbbe6571da9259e0d43ffa8a56f4b3e171)
2024-02-12 10:43:03 -07:00
Alan Somers
31c31be716 fusefs: more consistent operand ordering in io.cc
(cherry picked from commit daf26f9350cf8fb3ae60d4528b60ddf65a56f5cc)
2024-02-12 10:42:57 -07:00
Alan Somers
9826f8eb0c fusefs: fix an interaction between copy_file_range and mmap
If a copy_file_range operation tries to read from a page that was
previously written via mmap, that page must be flushed first.

Reviewed by:	kib
Differential Revision: https://reviews.freebsd.org/D43451

(cherry picked from commit 1c909c300b92601f7690610097ac98126caff835)
2024-02-12 10:42:46 -07:00
Mark Johnston
3a90a44537 kqueue tests: Add a regression test
Based on the test case submitted by Andreas Bock for PR 275286.

PR:		275286
MFC after:	2 weeks

(cherry picked from commit f5463265955b829775bbb32e1fd0bc11dafc36ce)
2024-02-11 10:14:44 -05:00
Mark Johnston
e9264b5681 netinet tests: Make test jail names unique
Otherwise we get spurious test failures when running tests in parallel.
The intent here was to name jails after the tests, but this was done
incorrectly in a couple of places.

MFC after:	1 week

(cherry picked from commit 001c48b4139ff6f07de70a16518161dcea5598b9)
2024-02-03 14:11:09 -05:00
Mark Johnston
7a14a721c0 netinet6 tests: Restore an atf_check invocation
This one has been commented out since the initial commit, but doesn't
appear to pose any problems.

MFC after:	1 week

(cherry picked from commit 3f73fbb0acd4131b08dba4f7590061826ab08df1)
2024-02-03 14:10:56 -05:00
Kyle Evans
aebaa32c31 kern: pts: do not special case closed slave side
This would previously return 1 if the slave side of the pts was closed
to force an application to read() from it and observe the EOF, but it's
not clear why and this is inconsistent both with how we handle devices
with similar mechanics (like pipes) and also with other kernels, such as
OpenBSD/NetBSD and Linux.

PR:             239604
Reviewed by:	kib

(cherry picked from commit 30189156d325fbcc9d1997d791daedc9fa3bed20)
2024-01-30 11:11:24 -06:00
Michael Gmelin
e65182c7bc libifconfig: Fix bridge status member list
When this functionality was moved to libifconfig in 3dfbda3401,
the end of list calculation was modified for unknown reasons, practically
limiting the number of bridge member returned to (about) 102.

This patch changes the calculation back to what it was originally and
adds a unit test to verify it works as expected.

Reported by:	Patrick M. Hausen (via ML)
Reviewed by:	kp
Approved by:	kp
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D43135

(cherry picked from commit 3d36053ca6d6a17d408c8f92c504e6135dc9d8df)
2024-01-28 18:55:56 +01:00
Alan Somers
62f890cfbc Add a regression test for PR 276191.
The bug isn't fusefs-specific, but this is the easiest way to reproduce
it.

PR:		276191
Differential Revision:  https://reviews.freebsd.org/D43446
Reviewed by: 	kib

(cherry picked from commit 6b1c534927ad47e9b0dd8be1a39f56c3ea813d44)
2024-01-19 19:01:14 -07:00
Alan Somers
946afb62ab zfsd: fault disks that generate too many I/O delay events
If ZFS reports that a disk had at least 8 I/O operations over 60s that
were each delayed by at least 30s (implying a queue depth > 4 or I/O
aggregation, obviously), fault that disk.  Disks that respond this
slowly can degrade the entire system's performance.

Sponsored by:	Axcient
Reviewed by:	delphij
Differential Revision: https://reviews.freebsd.org/D42825

(cherry picked from commit d565784a7ebaa59e26febdcfd4a60329786ea5f5)
2024-01-19 18:50:25 -07:00
Mark Johnston
2646268eab frag6 tests: Serialize
I'm not sure exactly why, but these tests consistently fail when run in
parallel.  Serialize them for now.

MFC after:	1 week

(cherry picked from commit 8b57b2a98b641794538980aed2cd16c94aedaf4d)
2024-01-07 11:55:48 -05:00
Dimitry Andric
f23f9c0fd2 Silence VLA extension warnings in fusefs tests
Building tests/sys/fs/fusefs with clang 18 results the following
warning:

  tests/sys/fs/fusefs/cache.cc:145:14: error: variable length arrays in C++ are a Clang extension [-Werror,-Wvla-cxx-extension]
    145 |         uint8_t buf[bufsize];
        |                     ^~~~~~~

Because we do not particularly care that this is a clang extension,
suppress the warning.

MFC after:	3 days

(cherry picked from commit dc0b4094abf6784bf1a9492c2fea3fb91116b014)
2023-12-24 14:59:28 +01:00
Kristof Provost
f6d8ea893b pf tests: fix typos in the abort_v6 test case head / cleanup function name
MFC after:	1 week

(cherry picked from commit 8fab83d2c5c5e801105dbf25c28252fc97935b00)
2023-12-21 10:35:51 +01:00
Dag-Erling Smørgrav
90b5ddeca0 bitstring: Support large bit strings.
Replace int with either size_t or ssize_t (depending on context) in
order to support bit strings up to SSIZE_MAX bits in length.  Since
some of the arguments that need to change type are pointers, we must
resort to light preprocessor trickery to avoid breaking existing code.

MFC after:	3 weeks
Sponsored by:	Klara, Inc.
Reviewed by:	kevans
Differential Revision:	https://reviews.freebsd.org/D42698

(cherry picked from commit c56f45f2a9da7d989b79fd6c34b63100609ff9ae)
2023-12-13 17:41:48 +01:00
Jose Luis Duran
8e41bbf245 zfs tests: Silence clang warning
"assigning to 'pattern_t *' from 'const pattern_t *' discards qualifiers"

Reviewed by:	asomers
Reported by:	clang
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D42791

(cherry picked from commit 5b36076d28ad1920b178da93d667dcfeae426494)
2023-12-10 19:23:05 -05:00
Kristof Provost
2c5e87862c pf tests: test that we validate sequence numbers on TCP RST
MFC after:	3 days
Sponsored by:	Rubicon Communications, LLC ("Netgate")

(cherry picked from commit 4c84c69ba308b7758d07dc8845b13922ed667e02)
2023-12-09 11:43:11 +01:00
Alan Somers
c18c5774e0 fusefs: add more readdir tests for misbehaving servers
Inspired by PR 274268

Sponsored by:	Axcient

(cherry picked from commit 6a773a0582ba936cc19734b21ee5a7bed49cfdec)
2023-11-29 17:04:33 -07:00
Mark Johnston
34c7691f53 ktls tests: Relax error checking for shutdown(2) a bit
In my test suite runs I occasionally see shutdown(2) fail with
ECONNRESET rather than ENOTCONN.  soshutdown(2) will return ENOTCONN if
the socket has been disconnected (synchronized by the socket lock), and
tcp_usr_shutdown() will return ECONNRESET if the inpcb has been dropped
(synchronized by the inpcb lock).  I think it's possible to pass the
first check in soshutdown() but fail the second check in
tcp_usr_shutdown(), so modify the KTLS tests to permit this.

Reviewed by:	jhb
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D42277

(cherry picked from commit b08a9b86f581edf09c5a2729d877a0204499685b)
2023-11-24 11:37:46 -05:00
Kristof Provost
38663ae5cc pf: always create multihomed states as floating
When we create a new state for multihomed sctp connections (i.e.
based on INIT/INIT_ACK or ASCONF parameters) we cannot know what
interfaces we'll be seeing that traffic on. Make those states floating,
irrespective of state policy.

MFC after:	1 week
Sponsored by:	Orange Business Services

(cherry picked from commit 0fe663b2a815dcb41431543940ec51408f418392)
2023-11-24 10:19:55 +01:00
Igor Ostapenko
f831517d86 pf: fix dummynet + ipdivert use case
Dummynet re-injects an mbuf with MTAG_IPFW_RULE added, and the same mtag
is used by divert(4) as parameters for packet diversion.

If according to pf rule set a packet should go through dummynet first
and through ipdivert after then mentioned mtag must be removed after
dummynet not to make ipdivert think that this is its input parameters.

At the very beginning ipfw consumes this mtag what means the same
behavior with tag clearing after dummynet.

And after fabf705f4b5a pf passes parameters to ipdivert using its
personal MTAG_PF_DIVERT mtag.

PR:		274850
Reviewed by:	kp
Differential Revision:	https://reviews.freebsd.org/D42609

(cherry picked from commit fe3bb40b9e807d4010617de1ef040ba3aa623487)
2023-11-20 11:30:19 +01:00
Igor Ostapenko
2f3f9c9d54 pf: fix pf divert-to loop
Resolved conflict between ipfw and pf if both are used and pf wants to
do divert(4) by having separate mtags for pf and ipfw.

Also fix the incorrect 'rulenum' check, which caused the reported loop.

While here add a few test cases to ensure that divert-to works as
expected, even if ipfw is loaded.

divert(4)
PR:		272770
MFC after:	3 weeks
Reviewed by:	kp
Differential Revision:	https://reviews.freebsd.org/D42142

(cherry picked from commit fabf705f4b5aff2fa2dc997c2d0afd62a6927e68)
2023-11-09 10:55:45 +01:00
Kristof Provost
d322e5d76a pf tests: ensure that we generate all permutations for SCTP multihome
The initial multihome implementation was a little simplistic, and failed
to create all of the required states. Given a client with IP 1 and 2 and
a server with IP 3 and 4 we end up creating states for 1 - 3 and 2 - 3,
as well as 3 - 1 and 4 - 1, but not for 2 - 4.

Check for this.

MFC after:	1 week
Sponsored by:	Orange Business Services
Differential Revision:	https://reviews.freebsd.org/D42362

(cherry picked from commit 483d5c4075e06e52d5daa23aef2b4f4a2eb64443)
2023-11-07 16:46:52 +01:00
Mark Johnston
21a9924086 socket tests: Build fix
Fixes:	d8735eb7acc0 ("socket tests: Add a regression test for ktrace+recv(MSG_TRUNC)")
Reported by:	Jenkins

(cherry picked from commit 4bd1e19684945aa1fd3397b58613f5210fda9091)
2023-10-24 10:28:11 -04:00