]>
git.ipfire.org Git - thirdparty/pdns.git/log
romeroalx [Thu, 1 Feb 2024 23:35:28 +0000 (00:35 +0100)]
fix builds ubuntu noble. remove pkg usrmerge
Otto Moerbeek [Wed, 31 Jan 2024 08:33:25 +0000 (09:33 +0100)]
Merge pull request #13746 from omoerbeek/rec-resolve-context-tidy
rec: tidy ResolveContext class
Otto Moerbeek [Tue, 30 Jan 2024 17:17:22 +0000 (18:17 +0100)]
one last lint
Otto Moerbeek [Tue, 30 Jan 2024 10:12:34 +0000 (11:12 +0100)]
Avoid a cases of `an exception may be thrown in function '' which should not throw exceptions (bugprone-exception-escape)`
The use of a DNSName capture by value is the culprit. Avoid those by using
[&]', telling the compiler to figure out the captures by itself but use refs.
This *could* lead to issues if we modify the value in the lambda, so this conversion should be checked!
Remi Gacogne [Tue, 30 Jan 2024 14:02:45 +0000 (15:02 +0100)]
Merge pull request #13740 from rgacogne/ddist-190rc1-changelog-secpoll
dnsdist: ChangeLog and secpoll update for 1.9.0-rc1
Remi Gacogne [Tue, 30 Jan 2024 10:56:58 +0000 (11:56 +0100)]
Merge pull request #11652 from Y7n05h/xsk
dnsdist: add AF_XDP support for UDP
Remi Gacogne [Tue, 30 Jan 2024 09:58:21 +0000 (10:58 +0100)]
dnsdist: Apply Charles-Henri's suggestions (thanks!)
Remi Gacogne [Tue, 30 Jan 2024 09:38:10 +0000 (10:38 +0100)]
Merge pull request #13749 from rgacogne/ci-binary-check-exclude-fuzzing-corpus
ci: Exclude the fuzzing/corpus dir from the 'no binary files' check
Remi Gacogne [Mon, 29 Jan 2024 13:18:14 +0000 (14:18 +0100)]
dnsdist: The 1.9.0-rc1 release has been moved to the 30th
Remi Gacogne [Mon, 29 Jan 2024 10:28:08 +0000 (11:28 +0100)]
ci: Exclude the fuzzing/corpus dir from the 'no binary files' check
Remi Gacogne [Mon, 29 Jan 2024 10:15:16 +0000 (11:15 +0100)]
dnsdist: Fix formatting of fuzz_xsk.cc
Remi Gacogne [Mon, 29 Jan 2024 10:12:27 +0000 (11:12 +0100)]
dnsdist: Add a fuzzing target for the XSK code
Remi Gacogne [Mon, 29 Jan 2024 08:38:40 +0000 (09:38 +0100)]
Merge pull request #13724 from rgacogne/dnsname-parse-packet-optim
dnsname: Optimize parsing of uncompressed labels
Otto Moerbeek [Fri, 26 Jan 2024 16:42:44 +0000 (17:42 +0100)]
Merge pull request #13742 from omoerbeek/rec-update-rust-and-crates
rec: update to cargo 1.75 and updated Cargo dependencies
Otto Moerbeek [Fri, 26 Jan 2024 16:42:11 +0000 (17:42 +0100)]
Merge pull request #13741 from omoerbeek/rec-coverity-
20240124
rec: fix Coverity issues in new RPZ code
Remi Gacogne [Fri, 26 Jan 2024 15:43:26 +0000 (16:43 +0100)]
Merge pull request #13747 from jacobbunk/document-dnsnameset
Link to existing documentation for DNSNameSet.
Jacob Bunk Nielsen [Fri, 26 Jan 2024 15:03:16 +0000 (16:03 +0100)]
Link to existing documentation for DNSNameSet.
Otto Moerbeek [Fri, 26 Jan 2024 11:27:35 +0000 (12:27 +0100)]
Fix async callbacks in unit tests now that ResolverContext is no longer an optional
Note that C++ does not really care, as the implicit conversion rules cover
this already.
Otto Moerbeek [Fri, 26 Jan 2024 11:07:53 +0000 (12:07 +0100)]
Actually, ResolveContext is not optional
Peter van Dijk [Fri, 26 Jan 2024 10:59:03 +0000 (11:59 +0100)]
Merge pull request #13745 from omoerbeek/auth-fix-gss-test
auth: fix gss regression test
Otto Moerbeek [Fri, 26 Jan 2024 10:46:05 +0000 (11:46 +0100)]
rec: tidy ResolveContext
Plus some changes to const& for ResolveContext arguments
Remi Gacogne [Fri, 26 Jan 2024 10:25:48 +0000 (11:25 +0100)]
dnsname: Use `static_cast` instead of C-style casts
Remi Gacogne [Fri, 26 Jan 2024 10:25:08 +0000 (11:25 +0100)]
dnsname: Remove useless resize, we always resize again right after it
Otto Moerbeek [Fri, 26 Jan 2024 09:46:54 +0000 (10:46 +0100)]
Merge pull request #13744 from omoerbeek/rec-tidy-filterpo
rec: Tidy filterpo.?? (reaching into iputils.hh as well)
Otto Moerbeek [Fri, 26 Jan 2024 09:04:20 +0000 (10:04 +0100)]
auth: fix gss regression test
Wrong records were tested for non-presence, as noted by @Assumeru
Otto Moerbeek [Wed, 24 Jan 2024 16:24:45 +0000 (17:24 +0100)]
Tidy filterpo.?? (reaching into iputils.hh as well).
Remi Gacogne [Thu, 25 Jan 2024 11:32:09 +0000 (12:32 +0100)]
dnsdist: Properly detect whether `bpf_xdp_query` is available
It was added in libbpf 0.7 and EL8 only has 0.5, sadly.
Peter van Dijk [Thu, 25 Jan 2024 11:02:14 +0000 (12:02 +0100)]
Merge pull request #13738 from Habbie/auth-49-debian-configs
auth debian: adjust option names in shipped configs
Remi Gacogne [Wed, 24 Jan 2024 15:09:07 +0000 (16:09 +0100)]
Merge pull request #13736 from rgacogne/ddist-quiche-0.20
dnsdist: Update Quiche to 0.20.0
Otto Moerbeek [Wed, 24 Jan 2024 14:19:06 +0000 (15:19 +0100)]
rec: update to cargo 1.75 and updated Cargo dependencies
Otto Moerbeek [Wed, 24 Jan 2024 09:04:49 +0000 (10:04 +0100)]
rec: fix Coverity issues in new RPZ code
Coverity issues
1533681 ..
1533686 , all low impact perf related
Otto Moerbeek [Wed, 24 Jan 2024 06:53:03 +0000 (07:53 +0100)]
Merge pull request #13504 from omoerbeek/rec-set-aggr-nsec-size
rec: introduce command to set aggressive NSEC cache size
Otto Moerbeek [Tue, 23 Jan 2024 15:47:41 +0000 (16:47 +0100)]
Merge pull request #13737 from omoerbeek/rec-fix-yamlconv-test
rec: fix YAML conversion test
Remi Gacogne [Tue, 23 Jan 2024 15:45:01 +0000 (16:45 +0100)]
dnsdist: ChangeLog and secpoll update for 1.9.0-rc1
Peter van Dijk [Tue, 23 Jan 2024 14:09:27 +0000 (15:09 +0100)]
Merge pull request #13110 from sndrsmnk/logfix
Log port with all freshness check failure scenarios.
Remi Gacogne [Tue, 23 Jan 2024 13:57:55 +0000 (14:57 +0100)]
spell-check: Allow libxdp
Remi Gacogne [Tue, 23 Jan 2024 13:54:29 +0000 (14:54 +0100)]
dnsdist: Update the XSK documentation for recent changes
Peter van Dijk [Tue, 23 Jan 2024 12:58:09 +0000 (13:58 +0100)]
auth debian: adjust option names in shipped configs
fixes #13708
Otto Moerbeek [Tue, 23 Jan 2024 12:48:20 +0000 (13:48 +0100)]
rec: fix YAML conversion test
This test has race condition and after #13728, an output line can
occur multilpe times in the output. So filter those.
Fred Morcos [Tue, 23 Jan 2024 12:30:30 +0000 (13:30 +0100)]
Merge pull request #13733 from fredmorcos/ci-verbose-logging
CI: Enable verbose logging to catch errors within logging macros
Remi Gacogne [Tue, 23 Jan 2024 12:03:35 +0000 (13:03 +0100)]
dnsdist: Fix more clang-tidy warnings
Remi Gacogne [Tue, 23 Jan 2024 11:53:36 +0000 (12:53 +0100)]
dnsdist: Implement proper parameters handling in the XDP helper
Remi Gacogne [Tue, 23 Jan 2024 11:01:02 +0000 (12:01 +0100)]
dnsdist: Fix warnings from clang-tidy
Remi Gacogne [Tue, 23 Jan 2024 10:03:50 +0000 (11:03 +0100)]
dnsdist: Relax file descriptor check for XSK-enabled backends
We cannot guarantee that the response will be coming via XSK, so
we need to accept that a response that does not come from the
expected socket descriptor.
Remi Gacogne [Tue, 23 Jan 2024 09:09:30 +0000 (10:09 +0100)]
dnsdist: Switch to Debian 12 for our Docker image, enable XSK
Remi Gacogne [Mon, 22 Jan 2024 16:04:44 +0000 (17:04 +0100)]
dnsdist: Hopefully fix building with/without XDP in CI
Remi Gacogne [Mon, 22 Jan 2024 15:49:53 +0000 (16:49 +0100)]
dnsdist: Enable XSK (AF_XDP) on supported OSes
Remi Gacogne [Mon, 22 Jan 2024 11:28:25 +0000 (12:28 +0100)]
dnsdist: Clear the XSK responder notification queue right away
Otherwise we might discard a valid notification between our last
look at the queue and the clearing.
Remi Gacogne [Mon, 22 Jan 2024 11:28:09 +0000 (12:28 +0100)]
dnsdist: Properly delay response packets in incoming-only XSK mode
Remi Gacogne [Fri, 19 Jan 2024 16:22:57 +0000 (17:22 +0100)]
dnsdist: Refactor XSK support between dnsdist and the backends
Remi Gacogne [Fri, 19 Jan 2024 14:40:28 +0000 (15:40 +0100)]
dnsdist: Cosmetic fixes for XSK
Remi Gacogne [Fri, 19 Jan 2024 08:53:48 +0000 (09:53 +0100)]
dnsdist: Log whether we are using XSK, and which mode (native or emulated)
Remi Gacogne [Fri, 19 Jan 2024 08:14:38 +0000 (09:14 +0100)]
dnsdist: Fix XSK over IPv6
Remi Gacogne [Fri, 19 Jan 2024 08:10:44 +0000 (09:10 +0100)]
dnsdist: Log whether UDP queries are forwarded via XSK
Remi Gacogne [Tue, 16 Jan 2024 10:42:45 +0000 (11:42 +0100)]
dnsdist: Install libbpf and libxdp in our CI image
Remi Gacogne [Tue, 16 Jan 2024 10:34:21 +0000 (11:34 +0100)]
dnsdist: Add default values for the map and number of frames in `newXsk`
Remi Gacogne [Mon, 15 Jan 2024 16:02:38 +0000 (17:02 +0100)]
dnsdist: Fix a clang-tidy warning
Remi Gacogne [Mon, 15 Jan 2024 16:01:59 +0000 (17:01 +0100)]
dnsdist: We need the regular, non-XSK threads as well!
Remi Gacogne [Mon, 15 Jan 2024 16:01:26 +0000 (17:01 +0100)]
dnsdist: Fix XSK/AF_XDP detection
Remi Gacogne [Mon, 15 Jan 2024 16:07:45 +0000 (17:07 +0100)]
dnsdist: Add xsk, xskmap and umem to the spellchecker allow-list
Remi Gacogne [Mon, 15 Jan 2024 15:50:45 +0000 (16:50 +0100)]
dnsdist: Document the XSK feature
Remi Gacogne [Mon, 15 Jan 2024 15:09:52 +0000 (16:09 +0100)]
dnsdist: Report the `AF_XDP` feature
Remi Gacogne [Mon, 15 Jan 2024 15:09:22 +0000 (16:09 +0100)]
xdp.py: The ports set is now unused in XSK mode
Remi Gacogne [Mon, 15 Jan 2024 15:08:51 +0000 (16:08 +0100)]
dnsdist: Revert the now unneeded changes made to dnsdist-healthchecks
Remi Gacogne [Mon, 15 Jan 2024 14:44:31 +0000 (15:44 +0100)]
dnsdist: Format and delint the XSK code
Remi Gacogne [Mon, 15 Jan 2024 14:14:29 +0000 (15:14 +0100)]
dnsdist: Clean up and reorganize XSK code
Remi Gacogne [Thu, 11 Jan 2024 15:24:38 +0000 (16:24 +0100)]
dnsdist: Fix XSK between dnsdist and its backends
Remi Gacogne [Thu, 28 Dec 2023 15:20:40 +0000 (16:20 +0100)]
dnsdist: Get rid of memory allocations in the XSK hot path
Remi Gacogne [Thu, 28 Dec 2023 14:18:44 +0000 (15:18 +0100)]
dnsdist: Refactor the XSK code into a proper namespace
Remi Gacogne [Thu, 28 Dec 2023 10:53:49 +0000 (11:53 +0100)]
dnsdist: Cleanup of the XSK code, fixing alignment issues
Also add UMEM checks for debugging.
Remi Gacogne [Thu, 28 Dec 2023 10:51:04 +0000 (11:51 +0100)]
dnsdist: Fix a UMEM corruption in XSK
The second parameter to `xsk_ring_prod__submit` is the number of
processed items, not the final index.
Remi Gacogne [Tue, 26 Sep 2023 10:35:50 +0000 (12:35 +0200)]
dnsdist: Minor clean ups in the XSK code
Remi Gacogne [Tue, 26 Sep 2023 10:35:09 +0000 (12:35 +0200)]
dnsdist: Fix AF_XDP (XSK) detection
Remi Gacogne [Tue, 19 Sep 2023 14:45:46 +0000 (16:45 +0200)]
dnsdist: Better detection of libbpf and libxdp
Remi Gacogne [Mon, 18 Sep 2023 12:22:07 +0000 (14:22 +0200)]
dnsdist: Small cleanup of the XSK code
Remi Gacogne [Fri, 3 Mar 2023 13:04:16 +0000 (14:04 +0100)]
dnsdist: Fall-back to non-XSK for too large responses
Remi Gacogne [Fri, 3 Mar 2023 13:01:43 +0000 (14:01 +0100)]
dnsdist: Add a `XskSocket::getMetrics()` binding
Remi Gacogne [Thu, 2 Mar 2023 14:06:59 +0000 (15:06 +0100)]
dnsdist: Add comments to the XSK code
Remi Gacogne [Thu, 2 Mar 2023 14:04:57 +0000 (15:04 +0100)]
dnsdist: Fix parameter validation with XSK
Remi Gacogne [Thu, 2 Mar 2023 14:04:33 +0000 (15:04 +0100)]
dnsdist: Punt fragmented UDP dgrams to the kernel in xdp-filter
Remi Gacogne [Wed, 1 Mar 2023 13:04:08 +0000 (14:04 +0100)]
dnsdist: Pass-through TCP packets from XDP
Remi Gacogne [Wed, 1 Mar 2023 13:03:22 +0000 (14:03 +0100)]
dnsdist: Add an option to easily disable XDP logging (default)
Remi Gacogne [Wed, 1 Mar 2023 10:34:02 +0000 (11:34 +0100)]
dnsdist: Prevent a false-positive warning from the compiler
```
In file included from xsk.hh:50,
from xsk.cc:23:
In function ‘xdp_desc* xsk_ring_prod__tx_desc(xsk_ring_prod*, __u32)’,
inlined from ‘void XskSocket::send(std::vector<std::unique_ptr<XskPacket>, std::allocator<std::unique_ptr<XskPacket> > >&)’ at xsk.cc:176:28:
/usr/include/xdp/xsk.h:76:27: warning: ‘idx’ may be used uninitialized [-Wmaybe-uninitialized]
76 | return &descs[idx & tx->mask];
| ~~~~^~~~~~~~~~
```
Remi Gacogne [Wed, 1 Mar 2023 10:33:41 +0000 (11:33 +0100)]
dnsdist: Better error messages when failing to load the XDP map
Y7n05h [Wed, 17 Aug 2022 14:18:11 +0000 (22:18 +0800)]
dnsdist: add AF_XDP support for udp
Signed-off-by: Y7n05h <Y7n05h@protonmail.com>
Remi Gacogne [Tue, 23 Jan 2024 10:15:12 +0000 (11:15 +0100)]
dnsname: Remove a redundant comparison reported by CodeQL
Remi Gacogne [Thu, 18 Jan 2024 13:00:31 +0000 (14:00 +0100)]
dnsname: Use a view instead of pointer arithmetic in DNSName::packetParser()
Remi Gacogne [Thu, 28 Dec 2023 16:07:01 +0000 (17:07 +0100)]
dnsname: Optimize parsing of uncompressed labels
The gist of this change is to stop allocating and copying per label
when parsing DNSNames from the wire format, as long as we do not
encounter a compression pointer, so that we only allocate and copy
once for as many labels as possible.
This has a noticeable impact in some of our speedtest results:
| Test | Before | After |
| --- | --- | --- |
| 'parse 'empty-query'' |
7282032 .6 runs/s, 0.14 us/run |
13519722 .8 runs/s, 0.07 us/run |
| 'parse 'empty-query' bare' |
7512588 .4 runs/s, 0.13 us/run |
14421770 .5 runs/s, 0.07 us/run |
| 'parse 'typical-referral' bare | 917539.2 runs/s, 1.09 us/run |
1151581 .7 runs/s, 0.87 us/run |
| 'parse 'typical-referral'' | 626927.3 runs/s, 1.60 us/run | 711754.3 runs/s, 1.40 us/run |
The improvement is quite clear when the number of labels increases:
| Number of labels | Before | After |
| --- | --- | --- |
| 1 |
16280173 .9 runs/s, 0.06 us/run |
15798338 .6 runs/s, 0.06 us/run |
| 2 |
11591389 .8 runs/s, 0.09 us/run |
15677266 .9 runs/s, 0.06 us/run |
| 3 |
9008087 .9 runs/s, 0.11 us/run |
14705491 .1 runs/s, 0.07 us/run |
| 4 |
7391707 .9 runs/s, 0.14 us/run |
14368828 .1 runs/s, 0.07 us/run |
| 5 |
6172025 .9 runs/s, 0.16 us/run |
14326900 .3 runs/s, 0.07 us/run |
| 6 |
5396152 .4 runs/s, 0.19 us/run |
13585892 .7 runs/s, 0.07 us/run |
| 7 |
4763488 .4 runs/s, 0.21 us/run |
12824105 .9 runs/s, 0.08 us/run |
| 8 |
4323804 .8 runs/s, 0.23 us/run |
12494736 .6 runs/s, 0.08 us/run |
| 9 |
3877356 .8 runs/s, 0.26 us/run |
12308737 .6 runs/s, 0.08 us/run |
| ... | ... | ... |
| 127 | 360564.0 runs/s, 2.77 us/run |
2782692 .4 runs/s, 0.36 us/run |
Remi Gacogne [Tue, 23 Jan 2024 11:02:18 +0000 (12:02 +0100)]
Merge pull request #13723 from chbruyand/dnsname-position-types
DNSName: correct len and offset types
Otto Moerbeek [Tue, 23 Jan 2024 10:17:50 +0000 (11:17 +0100)]
Merge pull request #13701 from omoerbeek/rec-rpz-refactor
rec: RPZ from primary refactor and allow notifies for RPZs
Remi Gacogne [Tue, 23 Jan 2024 09:11:34 +0000 (10:11 +0100)]
dnsdist: Update Quiche to 0.20.0
This fixes CVE-2023-6193, in addition to smaller fixes.
Fred Morcos [Mon, 22 Jan 2024 21:25:14 +0000 (22:25 +0100)]
CI: Enable verbose logging to catch errors withing DLOG macros
Otto Moerbeek [Tue, 23 Jan 2024 09:22:11 +0000 (10:22 +0100)]
Make the refresh 1 again, to work around the new rate limiting
Remi Gacogne [Tue, 23 Jan 2024 09:08:59 +0000 (10:08 +0100)]
Merge pull request #13735 from rgacogne/ddist-coverity-
20240123
dnsdist: Move the console socket instead of copying it
Charles-Henri Bruyand [Tue, 23 Jan 2024 08:42:01 +0000 (09:42 +0100)]
dnsname: remove unnecessary cast as suggested by Otto
Remi Gacogne [Tue, 23 Jan 2024 07:51:45 +0000 (08:51 +0100)]
dnsdist: Move the console socket instead of copying it
Reported by Coverity as CID 414105. We don't really care about the
performance impact but other tools are "helpfully" reporting this
kind of missed optimizations, so let's not waste our time.
Remi Gacogne [Tue, 23 Jan 2024 07:27:37 +0000 (08:27 +0100)]
Merge pull request #13731 from fredmorcos/dnsbackend-cleanup
Cleanup & format `dnsbackend.cc/.hh`
Remi Gacogne [Tue, 23 Jan 2024 07:21:50 +0000 (08:21 +0100)]
Merge pull request #13734 from fredmorcos/fix-dnsproxy
Fix compilation errors in `dnsproxy.cc` due to unused macro
Remi Gacogne [Tue, 23 Jan 2024 07:21:18 +0000 (08:21 +0100)]
Merge pull request #13732 from fredmorcos/cleanup-sha-digests
Cleanup `sha.hh` and `digests.hh`
Fred Morcos [Mon, 22 Jan 2024 23:29:09 +0000 (00:29 +0100)]
Fix compilation of dnsproxy.cc due to unused macro