pkgsrc-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: pkgsrc/benchmarks/dnsperf
Module Name: pkgsrc
Committed By: tron
Date: Mon Oct 27 18:23:49 UTC 2025
Modified Files:
pkgsrc/benchmarks/dnsperf: Makefile distinfo
Added Files:
pkgsrc/benchmarks/dnsperf/patches: patch-src_strerror.c
Log Message:
dnsperf: Update to version 2.14.0
Release history since version 2.5.1:
- Release 2.14.0
This release rewords connection statistics, adds names to threads and
fixes a bug with using TSIG in more than one thread.
In "Connection Statistics", reconnections has been renamed to
connection attempts and now includes both the initial connection
attempt and following reconnections.
If supported, threads will now be named after what they do, such as
"perf-send-<num>" and "perf-recv-<num>".
The TSIG context was shared between all threads and would case a crash
if more than one sending thread was used. This has been fixed and TSIG
contexts are now per thread.
81dc36b TSIG context per thread
55011c6 Thread names
8bdd480 thread names
17c680d Set thread names for dnsperf
54e641d Add library function to set thread names
fb19440 Dockerfile
a80de21 Reword connection statistics
688a4fd Reword connection statistics
- Release 2.13.1
This release fixes a few issues with in-progress queries and the TCP
transport module.
When using stateful connections, such as TCP, if the full query couldn't
be sent in one go then the query and connection could get stuck as
"in-progress".
This could easily happen if you limited the in-flight queries to 1 and
sent very large DNS messages using the stream binary format.
Additional socket ready checks has been added to flush in-progress
queries as quickly as possible.
The TCP module's handling of errors when continuing in-progress queries
has been fixed. Previously it would interpret EAGAIN as an unrecoverable
error and trigger a reconnect, dropping the quer-y/ies in-progress for
that connection.
Other changes:
- Fix input data buffer to allow for maximum binary blob wire format, 2 byte size + max DNS message
- Mention PowerTools repository for building on CentOS etc
56e180c In-progress, bitmaps, clang-format
bbc48db In-progress
059619d In-progress
752575a TCP EAGAIN
d51a453 Max input
76764d7 64k TCP/DoT payload support
8201f50 Doc
- Release 2.13.0
This release adds a new option `-O tls-sni=...` to set the Server Name
Indication when using TLS transport, currently for DNS-over-TLS and
DNS-over-HTTPS.
dbe84f6 TLS SNI
5fb2282 Add TLS Server Name Indication extension support
- Release 2.12.0
This release fixes a segfault when doing DNS-over-HTTPS and changes the
way maximum queries per second are handled.
The DNS-over-HTTPS module handled reconnecting incorrectly and destroyed
the nghttp2 context during callbacks. Thanks to the help from
@kgillis2000 it was quickly found and fixed.
The way maximum QPS is handled has been changed by Petr Špaček @pspacek
(ISC). The new way solves an over-shoot problem that happened due to
max QPS being counted for the whole runtime and based on completed
queries, not just sent.
A new option `qps_threshold_wait` has also been added. This controls
the threshold for using `nanosleep()` between sending packet and the
default is measured on start-up. If the time between packets, based on
max QPS `-Q`, is smaller then no sleep will be performed. This improves
performance when doing high max QPS limiting.
Other changes:
- `dnsperf`: Statistics output
- Fixed missing connection statistics if only reconnections happened
- Flush output to allow pipe/grep processing
- Add percentage on reconnections based on total connections
- Support OpenSSL 3.0+
9aca046 OpenSSL 3.0
6d3d6b4 Stats, DoH
316f901 qps_threshold_wait
ed52770 WIP: use busy wait only if necessary
32229b6 WIP: import nanosleep benchmark
1842b88 Fix dnsperf -Q to not overshot target value
- Release 2.11.2
Fixed long option argument handling (again), wasn't completely fixed
in v2.11.1.
e6dbd78 Long opt
- Release 2.11.1
Fixed long option argument handling that broke in v2.11.0 and enhanced
long option help text, now includes argument type.
034e893 Long opt
- Release 2.11.0
A couple of new features this release courtesy of Petr Špaček
@pspacek (ISC) and a bunch of bugfixes.
First off `dnsperf` can now do verbose statistics during each interval
when using `-S`, see long option `verbose-interval-stats`.
Next is a new latency histogram output using data structures (hg64)
created by Tony Finch @fanf2 (ISC), see long option
`latency-histogram`. These will also be shown during `-S` when used
together with `verbose-interval-stats`.
Lastly a small change to boolean long options, they no longer require
a value (`=yes`) to be enabled.
Bugfixes:
- Make sure the number of outstanding queries don't go negative,
happens if queries are timed out before being sent
- Fixed #208:
- `recv_one()`: Fix handling errno, only store EAGAIN if no other
error has been received
- `do_recv()`: Don't break on error as it will count it as a received
message
- Treat `EBADF` as `EAGAIN` for stateful connections, receive thread
might read from a closed socket if send thread is reconnecting
- `dnsperf`: warn if -c, -T, -q, -Q values are auto-adjusted
- Fixed #222: don't process unexpected message if the message is
suppressed
14db835 Opt arg
fb81481 Suppress unexpected
64b8c6d stats_t initialization
8290775 Fix first call to diff_stats
4f8bd24 Compile support histograms
a9b4f04 External code, latency histograms
d1f4b65 add detailed latency histograms
044e3a2 data structures for detailed latency histograms
ad3fb03 Opt, verbose statistics
38bc936 Command usage warnings
9f31595 Bad file descriptor
d3650eb Receive socket error handling
84c8e72 Negative outstanding
e7df5e1 Clarify meaning of dnsperf -S output in the man page
830eb43 verbose interval stats for dnsperf
- Release 2.10.0
This release adds a binary datafile (DNS wire) format to `dnsperf`
thanks to a contribution from Petr Špaček @pspacek (ISC).
The new binary format greatly improves performance in some cases, for
Petr's case it was testing dynamic updates. Switching to this
pre-compiled DNS wire format increased QPS from 4k to 600k, an increase
of 150 times throughput from `dnsperf`!
See man-page for `-B` for more information and examples how to use.
5971cb9 Doc
a241068 CodeQL
2a7d10a Fix CodeQL workflow
0ce15f6 Fix COPR
0ae4a54 CodeQL
f52e4b1 wire format input
c423aa9 wire format input
2b0693d Input binary format
- Release 2.9.0
This release brings a new message suppression option and a way to control
how many queries are sent over a connection.
You can now suppress the message about receiving unexpected DNS message
IDs by using `-O suppress=unexpected`.
With `-O num-queries-per-conn=<num>` you can now limit the number of
queries sent over a connection before triggering a re-connection, see
the `dnsperf(3)` man-page for more information how this works.
cd9df40 Tests
864a968 Queries per connection
7c5d6ab Suppress unexpected
8e9f4a2 Suppress
- Release 2.8.0
This release fixes response handling for DNS-over-HTTPS when multiple
responses are received within the same receive cycle, and adds a new
option to suppress some of the normal and verbose output.
The network model within dnsperf and resperf can not process more then
one response at a time from a protocol module, so a buffer has been added
to the DNS-over-HTTPS module to handle this situation (this already exists
in all other modules).
The new option `-O suppress=<message,...>` can selectively suppress parts
of the normal and verbose output. Some of these messages might be
excessively displayed due to the network model and depending on what
protocol you use which makes usage harder then necessary. For example
during TCP connection stage, if you end-point is slow to establish
connection you will get a lot of output saying that the socket isn't ready
yet.
6a452b0 DoH response handling
e2828e7 Suppress
- Release 2.7.1
This release fixes issues with constructing wire-format DNS when the
domain names includes escaped characters such as `\123` or `\.`.
Other changes:
- Bump Debian package compat level to 10
4873f02 DNS encoding
c4eccc0 debhelper
- Release 2.7.0
This release adds DNS-over-HTTPS support!
DNS-over-HTTPS can be used by specifying transport mode `doh` and you
should also look at the dnsperf(1) man-page (or `-H`) for the extended
options `doh-uri` and `doh-method`, which controls aspects of DoH/HTTP/2
that you might want to set.
Other fixes:
- Add check when constructing DNS packet so that total length of labels
does not exceed 255 bytes
- Fix connection/reconnection state handling for DoT transport
- Fix event handling by initializing them directly when opening the
sockets, otherwise events could have been missed which would give
incorrect statistics
61b5eac Tests with dumdumd
d71071c Tests with dumdumd
b42f92e DoH sending
2fa40bb Net stats
f7f8692 DoH fixes
ea62b49 DoH concurrent streams
91929f1 DoH reconnect
17660e6 DoH fixes
5276aa6 resperf buckets
585860e Packages
3ffc601 Fixes
1570609 Man-page
6bcadc7 README
f81adf1 Fixes
1acd71f Code structure
6c47876 Fixes
2d379f4 Fixes
4d5384b Fixes
cee93b3 Initial DNS-over-HTTPS support implementation
4ff3ebc Events
8b24bbf DoT state
6a5b5ef Fix too long name
71fa09f long opts
- Release 2.6.0
This release adds EDNS options parameter `-E` to `resperf` and a script
for generating EDNS Client Subnet options (see `contrib/ecs-gen`).
d29d880 ECS opt
877f31e edns option
- Release 2.5.2
This release tweaks the reconnect code for TCP and DoT.
For TCP, atomic operations are used to signal the need to reconnect
from the receiving thread to the sending, as the sending is the one in
charge of reconnecting.
This speeds up detection of connection lost which reduces the amount of
lost queries on a disconnect.
This change does not affect DoT as much, as the SSL context shared
between the threads are protected by a mutex.
But a bug was found in `sendto()` for DoT that could drop a query if
the socket was busy sending.
The connect and reconnect socket events has been split into connecting,
connected and reconnecting, reconnected. This is to report more correct
reconnect events when it comes to DoT, because the connection can be
lost while negotiating TLS.
Lastly, additional tests has been added for the network code.
d9e5663 net test
22f49df network tests
8e5b56e reconnect
To generate a diff of this commit:
cvs rdiff -u -r1.33 -r1.34 pkgsrc/benchmarks/dnsperf/Makefile
cvs rdiff -u -r1.9 -r1.10 pkgsrc/benchmarks/dnsperf/distinfo
cvs rdiff -u -r0 -r1.1 pkgsrc/benchmarks/dnsperf/patches/patch-src_strerror.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: pkgsrc/benchmarks/dnsperf/Makefile
diff -u pkgsrc/benchmarks/dnsperf/Makefile:1.33 pkgsrc/benchmarks/dnsperf/Makefile:1.34
--- pkgsrc/benchmarks/dnsperf/Makefile:1.33 Thu Apr 17 21:49:49 2025
+++ pkgsrc/benchmarks/dnsperf/Makefile Mon Oct 27 18:23:49 2025
@@ -1,7 +1,6 @@
-# $NetBSD: Makefile,v 1.33 2025/04/17 21:49:49 wiz Exp $
+# $NetBSD: Makefile,v 1.34 2025/10/27 18:23:49 tron Exp $
-DISTNAME= dnsperf-2.5.1
-PKGREVISION= 13
+DISTNAME= dnsperf-2.14.0
CATEGORIES= benchmarks net
MASTER_SITES= https://www.dns-oarc.net/files/dnsperf/
@@ -27,6 +26,7 @@ REPLACE_SH+= src/resperf-report
.include "../../devel/zlib/buildlink3.mk"
.include "../../net/GeoIP/buildlink3.mk"
.include "../../net/bind918/buildlink3.mk"
+.include "../../www/nghttp2/buildlink3.mk"
.include "../../security/openssl/buildlink3.mk"
.include "../../textproc/json-c/buildlink3.mk"
.include "../../textproc/libxml2/buildlink3.mk"
Index: pkgsrc/benchmarks/dnsperf/distinfo
diff -u pkgsrc/benchmarks/dnsperf/distinfo:1.9 pkgsrc/benchmarks/dnsperf/distinfo:1.10
--- pkgsrc/benchmarks/dnsperf/distinfo:1.9 Tue Oct 26 10:02:51 2021
+++ pkgsrc/benchmarks/dnsperf/distinfo Mon Oct 27 18:23:49 2025
@@ -1,5 +1,6 @@
-$NetBSD: distinfo,v 1.9 2021/10/26 10:02:51 nia Exp $
+$NetBSD: distinfo,v 1.10 2025/10/27 18:23:49 tron Exp $
-BLAKE2s (dnsperf-2.5.1.tar.gz) = 024cfdab0f4a73b9c947935283c514f9c00e4a0e4ece0e49b5eb04adfa651378
-SHA512 (dnsperf-2.5.1.tar.gz) = cd19973560ddb3fa5f9e503b7e904edbed229745ec13cdc32a94444b8e7ec62433128dfd1d212ba47f2c7e749f9ef7ab3af4f2744fb9a23641c8dfb74ce9b102
-Size (dnsperf-2.5.1.tar.gz) = 428907 bytes
+BLAKE2s (dnsperf-2.14.0.tar.gz) = 29fd87836b187d78e7b4a10059b31ec2e1cc18ca23e29bb514265337fbeafe89
+SHA512 (dnsperf-2.14.0.tar.gz) = ebca70071a07b2f5b2a07866c22aa9f459981f70be06047ada760bf7e53bf44c355cf964674483ce5eae736a64b9061d773a44e8c46f956525d29144ca48a9fd
+Size (dnsperf-2.14.0.tar.gz) = 469420 bytes
+SHA1 (patch-src_strerror.c) = 8eff430cd9de584f03a0498bcc2b8dc2e566b0eb
Added files:
Index: pkgsrc/benchmarks/dnsperf/patches/patch-src_strerror.c
diff -u /dev/null pkgsrc/benchmarks/dnsperf/patches/patch-src_strerror.c:1.1
--- /dev/null Mon Oct 27 18:23:49 2025
+++ pkgsrc/benchmarks/dnsperf/patches/patch-src_strerror.c Mon Oct 27 18:23:49 2025
@@ -0,0 +1,15 @@
+$NetBSD: patch-src_strerror.c,v 1.1 2025/10/27 18:23:49 tron Exp $
+
+Fix build problem under NetBSD
+
+--- src/strerror.c.orig 2024-01-18 12:43:29.000000000 +0000
++++ src/strerror.c 2025-10-27 18:17:35.197811762 +0000
+@@ -26,7 +26,7 @@
+
+ const char* perf_strerror_r(int errnum, char* str, size_t len)
+ {
+-#if ((_POSIX_C_SOURCE >= 200112L) && !_GNU_SOURCE) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__APPLE__)
++#if ((_POSIX_C_SOURCE >= 200112L) && !_GNU_SOURCE) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__APPLE__) || defined(__NetBSD__)
+ if (strerror_r(errnum, str, len)) {
+ (void)snprintf(str, len, "Error %d", errnum);
+ }
Home |
Main Index |
Thread Index |
Old Index