2025-02-09 09:12:07 +01:00
|
|
|
2024-01-18 Jerry Lundström
|
|
|
|
|
|
|
|
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
|
|
|
|
|
2025-02-09 09:11:20 +01:00
|
|
|
2023-08-23 Jerry Lundström
|
|
|
|
|
|
|
|
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
|
|
|
|
|
2025-02-09 09:09:20 +01:00
|
|
|
2023-06-15 Jerry Lundström
|
|
|
|
|
|
|
|
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
|
|
|
|
|
2025-02-09 09:08:15 +01:00
|
|
|
2023-05-21 Jerry Lundström
|
|
|
|
|
|
|
|
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
|
|
|
|
|
2025-02-09 09:07:43 +01:00
|
|
|
2023-03-16 Jerry Lundström
|
|
|
|
|
|
|
|
Release 2.11.2
|
|
|
|
|
|
|
|
Fixed long option argument handling (again), wasn't completely fixed
|
|
|
|
in v2.11.1.
|
|
|
|
|
|
|
|
e6dbd78 Long opt
|
|
|
|
|
2025-02-09 09:07:10 +01:00
|
|
|
2023-03-10 Jerry Lundström
|
|
|
|
|
|
|
|
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
|
|
|
|
|
2025-02-09 09:06:16 +01:00
|
|
|
2023-02-08 Jerry Lundström
|
|
|
|
|
|
|
|
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
|
|
|
|
|
2025-02-09 09:05:05 +01:00
|
|
|
2022-11-11 Jerry Lundström
|
|
|
|
|
|
|
|
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
|
|
|
|
|
2025-02-09 09:03:47 +01:00
|
|
|
2021-12-08 Jerry Lundström
|
|
|
|
|
|
|
|
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
|
|
|
|
|
2025-02-09 09:02:49 +01:00
|
|
|
2021-11-02 Jerry Lundström
|
|
|
|
|
|
|
|
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
|
|
|
|
|
2025-02-09 09:00:15 +01:00
|
|
|
2021-09-17 Jerry Lundström
|
|
|
|
|
|
|
|
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
|
|
|
|
|
2025-02-09 08:59:05 +01:00
|
|
|
2021-08-09 Jerry Lundström
|
|
|
|
|
|
|
|
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
|
|
|
|
|
2025-02-09 08:58:16 +01:00
|
|
|
2021-05-31 Jerry Lundström
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
2021-03-25 Jerry Lundström
|
2025-02-09 08:56:31 +01:00
|
|
|
|
|
|
|
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
|
|
|
|
|
2025-02-09 08:58:16 +01:00
|
|
|
2021-03-22 Jerry Lundström
|
2025-02-09 08:56:31 +01:00
|
|
|
|
|
|
|
Release 2.5.1
|
|
|
|
|
|
|
|
This release re-adds support for TYPEnnn and ANY in the datafile, this
|
|
|
|
was missed during the removal of the dependency on BINDs development
|
|
|
|
libraries in v2.4.0.
|
|
|
|
|
|
|
|
Also note that with v2.5.0, this software now depends on Concurrency
|
|
|
|
Kit (ck) for atomic operations.
|
|
|
|
|
|
|
|
924e6ea ANY
|
|
|
|
0a444c0 TYPEnnn
|
|
|
|
|
2025-02-09 08:55:14 +01:00
|
|
|
2021-03-12 Jerry Lundström
|
|
|
|
|
|
|
|
Release 2.5.0
|
|
|
|
|
|
|
|
This release adds re-connection support for TCP and DoT protocol,
|
|
|
|
new options to `resperf` and fixes a few bugs.
|
|
|
|
|
|
|
|
`dnsperf` and `resperf` will now try to re-connect when they lose a TCP
|
|
|
|
or DoT connection, and with that comes a few new statistics metrics.
|
|
|
|
For `dnsperf`, if a connection oriented protocol is used, it will now
|
|
|
|
show the total number of re-connections made and the connection latency.
|
|
|
|
For `resperf` it also shows the total number of re-connections made and
|
|
|
|
the gnuplot data now contains the total number of connections made and
|
|
|
|
the connection latency for each interval.
|
|
|
|
Beside re-connection support, improvements have been made when it comes
|
|
|
|
to tracking socket readiness while connections are established which
|
|
|
|
should generate less warnings about "socket not ready".
|
|
|
|
|
|
|
|
New `resperf` options:
|
|
|
|
- `-R`: Reopen the datafile if it runs out of data before the testing
|
|
|
|
is completed. This allows for long running tests on very small and
|
|
|
|
simple query datafile.
|
|
|
|
- `-F <fall_behind>`: Sets the maximum number of queries that can fall
|
|
|
|
behind being sent. `resperf` will stop when this many queries should
|
|
|
|
have been sent and it can be relative easy to hit if `-m <max_qps>`
|
|
|
|
is set too high.
|
|
|
|
The default is 1000 and setting it to zero (0) disables the check.
|
|
|
|
|
|
|
|
Bugfixes:
|
|
|
|
- Fixed port handling for host/network format when setting client side
|
|
|
|
port with `-x`
|
|
|
|
- Fix support for quoted characters, `\000` and `\.`, in domain names,
|
|
|
|
this was lost when removing BIND's internal development libraries
|
|
|
|
- Fix issue in `dnsperf`, it would loop forever if no connection could
|
|
|
|
be established
|
|
|
|
- Fix potential buffer overrun in `resperf` when using response id
|
|
|
|
for `queries[]`
|
|
|
|
- DoT: Fix bug when sending from buffer
|
|
|
|
|
|
|
|
Other changes:
|
|
|
|
- Always use `IPV6_V6ONLY` socket option for IPv6
|
|
|
|
- Add man-page on `-W` option added in v2.4.0
|
|
|
|
- Reformat man-pages
|
|
|
|
- `resperf`:
|
|
|
|
- Try and process more request each run to hopefully not hit max
|
|
|
|
outstanding so easy when high QPS
|
|
|
|
- Add default value to `-C` so it shows in help
|
|
|
|
|
|
|
|
9308361 man-page format
|
|
|
|
0e52fb4 man-page, opts, tuneups
|
|
|
|
e36211d stats
|
|
|
|
d9b9ba3 Response qid to index
|
|
|
|
2b2c37e fixes, reconnection
|
|
|
|
acd31e5 dname quote
|
|
|
|
de8f049 net
|
|
|
|
|
2025-02-09 08:52:44 +01:00
|
|
|
2021-02-23 Jerry Lundström
|
|
|
|
|
|
|
|
Release 2.4.2
|
|
|
|
|
|
|
|
This release fixes a few issues with reading of the datafile which
|
|
|
|
could lead to "ran out of data" errors.
|
|
|
|
|
|
|
|
The problem was that reading from the datafile was done before finding
|
|
|
|
a socket to send it on, or socket readyness, and that lead to progressing
|
|
|
|
the queries without really doing anything.
|
|
|
|
Another issues that's been fixed was that if the read lines perfectly
|
|
|
|
aligned with the buffer, it would be treated like EOF and caused an exit.
|
|
|
|
|
|
|
|
9937287 resperf TLS
|
|
|
|
6736956 datafile
|
|
|
|
55faec6 ran out of data
|
|
|
|
|
|
|
|
2021-02-09 Jerry Lundström
|
|
|
|
|
|
|
|
Release 2.4.1
|
|
|
|
|
|
|
|
This release fixes an issue with the socket readiness function that
|
|
|
|
could cause a buffer overflow (`-T 10 -c 2000`) due to `select()` being
|
|
|
|
limited to check 1023 sockets. `poll()` is now used which has no limit.
|
|
|
|
|
|
|
|
There has also been a few fixes to the contrib script `queryparse` that
|
|
|
|
has to do with python v2 and v3 compatibility and better exception
|
|
|
|
handling.
|
|
|
|
|
|
|
|
24e5bee poll
|
|
|
|
7dceca7 Handle only common exceptions
|
|
|
|
5603294 Fix error on python3
|
|
|
|
48fa517 TSIG
|
|
|
|
|
|
|
|
2020-12-09 Jerry Lundström
|
|
|
|
|
|
|
|
Release 2.4.0
|
|
|
|
|
|
|
|
This release removes the dependency on BIND's internal development
|
|
|
|
libraries! This make building and packaging a lot easier and less
|
|
|
|
troublesome in the future.
|
|
|
|
|
|
|
|
This software now depends only on OpenSSL (for TSIG feature) with an
|
|
|
|
optional depend on LDNS (for dynamic updates feature).
|
|
|
|
|
|
|
|
New option:
|
|
|
|
- Transport mode option `-m`/`-M` now recognizes `dot` alongside `tls`
|
|
|
|
for encrypted DNS
|
|
|
|
- Added `-W` for outputting warnings and errors to stdout
|
|
|
|
|
|
|
|
Other changes / bugfixes:
|
|
|
|
- Fix potential memory leak of query descriptions when using verbose
|
|
|
|
- Only use TLS v1.2 and above for DoT/TLS
|
|
|
|
- Add a lot of tests
|
|
|
|
- Add coverage testing
|
|
|
|
|
|
|
|
d17743b datafile
|
|
|
|
434bbf2 Checks, coverage, log, test IPv6
|
|
|
|
9fb305f Coverage
|
|
|
|
123ebf1 DOT, TLS version, Sonarcloud
|
|
|
|
26df0bd BIND dependency
|
|
|
|
ee660e7 Sonarcloud
|
|
|
|
c9ea0ab base64
|
|
|
|
4e9be82 TSIG
|
|
|
|
4275045 EDNS, https
|
|
|
|
7c3f51c BIND dependency
|
|
|
|
6e1be5d ISC dependencies
|
|
|
|
e36f19d Buffer
|
|
|
|
485cdd2 ISC mem, tests
|
|
|
|
663dc24 Namespace clash
|
|
|
|
2c44987 dynamic updates, edns, headers
|
|
|
|
5d109b2 Disable HMAC
|
|
|
|
79cae93 datafile, query desc
|
|
|
|
663d814 net
|
|
|
|
c867de6 isc_result_t
|
|
|
|
651ee5d opt
|
|
|
|
7d30804 isc_result_t
|
|
|
|
58ad313 ISC linked list
|
|
|
|
7b4da6d Info
|
|
|
|
8079ebc Tests
|
|
|
|
e3fb685 Tests
|
|
|
|
2bb603a Tests
|
|
|
|
297b23b Test
|
|
|
|
c4e244b Test
|
|
|
|
1caac35 Makefile
|
|
|
|
e9f2aaa Coverage
|
|
|
|
27af853 Fix typo in configure.ac
|
|
|
|
521faa6 Badges
|
|
|
|
8fa2ec4 LGTM
|
|
|
|
75c89e5 COPR
|
|
|
|
|
|
|
|
2020-05-15 Jerry Lundström
|
|
|
|
|
|
|
|
Release 2.3.4
|
|
|
|
|
|
|
|
This release adds a workaround, thanks to patch from Petr Menšík, for
|
|
|
|
building on systems with BIND 9.16. Also improves error handling by
|
|
|
|
using thread-safe `strerror_r()` instead of `strerror()`.
|
|
|
|
|
|
|
|
88c3ef4 strerror
|
|
|
|
1917f67 openSUSE Tumbleweed
|
|
|
|
fd39641 AS_VAR_APPEND
|
|
|
|
aeeef74 bind 9.16
|
|
|
|
07732cd BIND, libcrypto, clang format
|
|
|
|
08146e3 Add crypto library to checks
|
|
|
|
e4307c2 Add checks to pass with BIND 9.16
|
|
|
|
3f9aed3 Prepare check for bind 9.11/9.16 return types
|
|
|
|
|
|
|
|
2020-05-06 Jerry Lundström
|
|
|
|
|
|
|
|
Release 2.3.3
|
|
|
|
|
|
|
|
This release changes the behavior of `dnsperf` and `resperf` when it
|
|
|
|
comes to TCP and TLS connections, and updates package building using
|
|
|
|
COPR (thanks to patch from Petr Menšík (Red Hat)).
|
|
|
|
|
|
|
|
Connection reset or close are now treated as "try again" so that the
|
|
|
|
run is finished and not aborted. As SIGPIPE might be received on usage
|
|
|
|
of closed connections it's now blocked in `dnsperf` and handled as
|
|
|
|
a fatal action in `resperf`.
|
|
|
|
|
|
|
|
62885ad SIGPIPE
|
|
|
|
106c50e connection
|
|
|
|
3ef0899 README
|
|
|
|
61a3b1c COPR
|
|
|
|
35efa27 COPR
|
|
|
|
46b37a1 COPR
|
|
|
|
5c126ae COPR
|
|
|
|
1c51b76 Provide full URL in spec
|
|
|
|
2a4dd0e Allow recreation of source archive
|
|
|
|
931d6cc Do not require root for archive creation
|
|
|
|
|
|
|
|
2019-08-23 Jerry Lundström
|
|
|
|
|
|
|
|
Release 2.3.2
|
|
|
|
|
|
|
|
This release fixes a buffer overflow when using TSIG and algorithms
|
|
|
|
with digests larger then SHA256, reported by Mukund Sivaraman. Also
|
|
|
|
fix build dependencies for `sqrt()`.
|
|
|
|
|
|
|
|
e54aa58 Digest
|
|
|
|
bca5d8d sqrt
|
|
|
|
d9eaa5b Package
|
|
|
|
|
|
|
|
2019-07-24 Jerry Lundström
|
|
|
|
|
|
|
|
Release 2.3.1
|
|
|
|
|
|
|
|
After a report and additional confirming results the use of `poll()` in
|
|
|
|
the network receive code for TCP and TLS has been removed. This `poll()`
|
|
|
|
initially gave better results while testing in a docker container on
|
|
|
|
it's loopback interface but when on physical networks it reduced
|
|
|
|
performance to 1/12th, so it had to go.
|
|
|
|
|
|
|
|
Thanks to Brian Wellington (Akamai/Nominum) for the initial report and
|
|
|
|
testing, and to Jan Hák (CZ.NIC) for testing and confirming the results.
|
|
|
|
|
|
|
|
Bugfix:
|
|
|
|
- Fix check for having more DNS messages in the receive buffer for TCP
|
|
|
|
and TLS
|
|
|
|
|
|
|
|
670db9c TCP/TLS receive
|
|
|
|
b8925b2 recvbuf have more
|
|
|
|
|
|
|
|
2019-07-17 Jerry Lundström
|
|
|
|
|
|
|
|
Release 2.3.0
|
|
|
|
|
|
|
|
This release adds support for DNS over TCP and TLS which can be selected
|
|
|
|
by using the mode option for `dnsperf` and `resperf`. The default server
|
|
|
|
port used is now determined by the transport mode, udp/tcp port 53 and
|
|
|
|
tls port 853.
|
|
|
|
|
|
|
|
Note that the mode option is different between the program because it was
|
|
|
|
already taken for `resperf`.
|
|
|
|
|
|
|
|
`dnsperf` changes:
|
|
|
|
- Add `-m` for setting transport mode, `udp` (default), `tcp` or `tls`
|
|
|
|
- Add verbose messages about network readiness and congestion
|
|
|
|
|
|
|
|
`resperf` changes:
|
|
|
|
- Add `-M` for setting transport mode, `udp` (default), `tcp` or `tls`
|
|
|
|
- Add `-v` for verbose mode to report about network readiness and
|
|
|
|
congestion
|
|
|
|
|
|
|
|
ffa49cf LGTM, SonarCloud
|
|
|
|
4cd5441 TLS
|
|
|
|
35624d1 TCP send, socket ready loop
|
|
|
|
fbf76aa TCP support
|
|
|
|
5988b06 Funding
|
|
|
|
|
|
|
|
2019-01-28 Jerry Lundström
|
|
|
|
|
|
|
|
Release 2.2.1
|
|
|
|
|
|
|
|
The commit pulled from a fork that used `inttypes.h`, instead of ISC
|
|
|
|
internal types, missed to remove the old conversion specifier.
|
|
|
|
This was reported and fixed by Vladimír Čunát.
|
|
|
|
|
|
|
|
9534ce1 remove visible "u" characters after numbers
|
|
|
|
|
|
|
|
2019-01-25 Jerry Lundström
|
|
|
|
|
|
|
|
Release 2.2.0
|
|
|
|
|
|
|
|
First release by DNS-OARC with a rework of the code to use autotools,
|
|
|
|
semantic versioning 2.0 and bugfixes pulled from other's forks.
|
|
|
|
|
|
|
|
Bugfixes:
|
|
|
|
- Fix infinite loop in argument parsing
|
|
|
|
- Fix min/max latency summing for multithreaded runs
|
|
|
|
- Fix calculation of per_thread socket counts
|
|
|
|
- Fixes to queryparse
|
|
|
|
- Mark correctly end of file
|
|
|
|
- Support python3
|
|
|
|
- Stop looping on end of file undefinitely
|
|
|
|
- Fix compilation issues and work around missing `dns_fixedname_initname()`
|
|
|
|
- Clang `scan-build` fixes
|
|
|
|
|
|
|
|
Other changes:
|
|
|
|
- add "configure --with-bind" option
|
|
|
|
- Handle bind library changes to HMAC (see #22) and other differences
|
|
|
|
between versions
|
|
|
|
- Workaround issue on FreeBSD (see #23)
|
|
|
|
- Use `snprintf()` and OpenBSD's `strlcat()`
|
|
|
|
- Add/update build dependencies for Debia, Ubuntu, CentOS, FreeBSD
|
|
|
|
and OpenBSD
|
|
|
|
|
|
|
|
ae9bc91 Clang format
|
|
|
|
b9bb085 CI, buildbot
|
|
|
|
b84e41b Autotools, README, changelog
|
|
|
|
a2e1732 License
|
|
|
|
9dcb661 Remove $Id markers, Principal Author and Reviewed tags from the
|
|
|
|
full source tree
|
|
|
|
0677bf0 Use dns_fixedname_initname() where possible
|
|
|
|
d8d4696 [master] add "configure --with-bind" option to dnsperf
|
|
|
|
b71a280 Add deb based distros dependencies
|
|
|
|
439c614 Replace custom isc_boolean_t with C standard bool type
|
|
|
|
407ae7c Replace custom isc_u?intNN_t types with C99 u?intNN_t types
|
|
|
|
c27afd4 Replace ISC_PRINT_QUADFORMAT with inttypes.h format constants
|
|
|
|
6fdb2f7 Fix queryparse
|
|
|
|
4909b78 README
|
|
|
|
2782d50 README.md: Rectify link to software
|
|
|
|
e31ddf4 fix calculation of per_thread socket counts
|
|
|
|
3bd7fb4 Fix min/max latency summing for multithreaded runs
|
|
|
|
2207e27 Fix infinite loop in argument parsing.
|
|
|
|
3bfe97a Include the github URL; remove the bug reports section.
|
|
|
|
0cee04a Add note about bug reports.
|
|
|
|
62c4b32 add .gitignore
|
|
|
|
c45f0be Initial import.
|
|
|
|
149172b Initial commit
|
|
|
|
|
|
|
|
2015-12-15
|
|
|
|
|
|
|
|
Release 2.1.0.0
|
|
|
|
|
|
|
|
In addition to various bug fixes, the following new capabilities
|
|
|
|
were added in this release:
|
|
|
|
- The `-C` option was added to `resperf`. This option enables the local
|
|
|
|
server to act as multiple clients. By default, the local server
|
|
|
|
acts as a single client.
|
|
|
|
- the `-T` option was added to `dnsperf`. This option separates the
|
|
|
|
number of clients from the number of threads and allows more
|
|
|
|
clients to be simulated effectively. Note that using this option
|
|
|
|
impacts CPU and memory, so we recommend limiting the number of
|
|
|
|
threads.
|
|
|
|
|
|
|
|
2012-03-01
|
|
|
|
|
|
|
|
Release 2.0.0.0
|
|
|
|
|
|
|
|
In the `dnsperf` command, the following changes occurred:
|
|
|
|
- The socket buffer size is no longer set to 32 kilobytes by default.
|
|
|
|
- A new `-c clients` option was added to enable the server to act as
|
|
|
|
multiple clients. Each client uses the same source IP address with a
|
|
|
|
unique source port. Use the `clients` argument to specify the number of
|
|
|
|
clients represented by the server. We recommend limiting the number of
|
|
|
|
clients represented by the server because the `dnsperf` process uses two
|
|
|
|
threads for each client (one thread for sent packets and one for
|
|
|
|
received packets), which impacts CPU and memory.
|
|
|
|
- Example query files are no longer included with the `dnsperf` program.
|
|
|
|
Nominum provides a sample query file that is available for download at:
|
|
|
|
ftp://ftp.nominum.com/pub/nominum/dnsperf/data/
|
|
|
|
- Latency reporting improved. When the `-v` (verbose mode) option is
|
|
|
|
configured with the `dnsperf` command, the command output now includes
|
|
|
|
latency measurements and the DNS RCODE of each response. This enables
|
|
|
|
users to create their own latency graphs.
|
|
|
|
- Performance was enhanced on modern operating systems so that faster
|
|
|
|
name servers can be tested.
|
|
|
|
- The `dnsperf` command output is enhanced to display more information in a
|
|
|
|
compact format.
|
|
|
|
|
|
|
|
The following options were removed from the `dnsperf` command:
|
|
|
|
- The `-A` option for displaying command line arguments passed to the
|
|
|
|
`dnsperf` tool in the final statistics output. Now, the `dnsperf` command
|
|
|
|
output always displays command line arguments.
|
|
|
|
- The `-T` option for printing a histogram showing response latency after
|
|
|
|
completing a test run. Now, the `-v` option enables users to include
|
|
|
|
latency measurements in the `dnsperf` command output.
|
|
|
|
- The `-H` option for configuring the number of buckets for which response
|
|
|
|
latency is displayed. Now, the `-v` option enables users to include
|
|
|
|
latency measurements in the `dnsperf` command output.
|
|
|
|
- The `-1` option for configuring the `dnsperf` tool to run through the input
|
|
|
|
file exactly one time. (Now, you use the `-n 1` option to configure the
|
|
|
|
`dnsperf` tool to run through the input file one time.)
|
|
|
|
- The `-c` option for including the number of responses received (for
|
|
|
|
each DNS RCODE) in the final statistics output. Now, DNS RCODE responses
|
|
|
|
are always reported.
|
|
|
|
|
|
|
|
In the `resperf` command, the following changes occurred:
|
|
|
|
- The socket buffer size is no longer set to 32 kilobytes by default.
|
|
|
|
- The `-A` option, which displayed command line arguments passed to the
|
|
|
|
`resperf` tool in the final statistics output, was removed. Now, the
|
|
|
|
`resperf` command output always displays command line arguments.
|
|
|
|
|
|
|
|
2011-12-22
|
|
|
|
|
|
|
|
Release 1.0.2.0
|
|
|
|
|
|
|
|
This release adds support for RHEL6-64 and for Solaris 10 x86-64.
|
|
|
|
|
|
|
|
Some new configuration options have been added. You can now specify:
|
|
|
|
- the local port from which to send requests
|
|
|
|
- the local address from which to send requests
|
|
|
|
- the maximum number of runs through the input file, up
|
|
|
|
to the timeout limit.
|
|
|
|
- when using TSIG, algorithms other than hmac-md5 can be used.
|
|
|
|
|
|
|
|
One default has been changed:
|
|
|
|
- The maximum number of outstanding requests now defaults
|
|
|
|
to 100.
|
|
|
|
|
|
|
|
A new example query file for IPv6, `queryfile-example-ipv6`, is now
|
|
|
|
included with the distribution.
|
|
|
|
|
|
|
|
2008-01-10
|
|
|
|
|
|
|
|
Release 1.0.1.0
|
|
|
|
|
|
|
|
This release makes binary builds of `dnsperf` available in addition to
|
|
|
|
the source code version previously released.
|
|
|
|
|
|
|
|
This release of `dnsperf` includes a sample query file containing
|
|
|
|
100,000 queries to help with performance testing. This query file is
|
|
|
|
useful for checking latencies or a continuous `dnsperf` run. In the
|
|
|
|
binary distribution, this file is found at:
|
|
|
|
|
|
|
|
/usr/local/nom/examples/dnsperf/queryfile-example-100thousand
|
|
|
|
|
|
|
|
In the source distribution, it is at:
|
|
|
|
|
|
|
|
./examples/queryfile-example-100thousand
|
|
|
|
|
|
|
|
where `.` is the directory made by extracting the source tarball.
|
|
|
|
|
|
|
|
Nominum recommends using a query file with at least 3 million queries
|
|
|
|
for a full `resperf` run as described in the man page; we make such a
|
|
|
|
file available for download at:
|
|
|
|
|
|
|
|
ftp://ftp.nominum.com/pub/nominum/dnsperf/data/queryfile-example-3million.gz
|
|
|
|
|
|
|
|
The following fix is included in the source distribution:
|
|
|
|
- 20996: `makefile.in` does not allow overriding `mandir`
|
|
|
|
The `--mandir` argument to `configure`, which allows the user to
|
|
|
|
specify the location man pages are installed, was incorrectly
|
|
|
|
ignored.
|
|
|
|
|
|
|
|
`queryparse` is a contributed program available in the source
|
|
|
|
distribution of `dnsperf`. It can be found at `contrib/queryparse/`.
|
|
|
|
The following changes were made to that program:
|
|
|
|
- 19717: `contrib/queryparse` includes outgoing queries
|
|
|
|
The `queryparse` script had no way of distinguishing between incoming
|
|
|
|
queries and outgoing queries when applied to a traffic trace from a
|
|
|
|
caching server. This was addressed by adding a new flag (`-r`) that,
|
|
|
|
when included in the command line, will keep queries with
|
|
|
|
`RD=0`. Otherwise, it will default to discarding them.
|
|
|
|
- The ability to parse responses instead of queries was added.
|
|
|
|
- A check was added to avoid short packets.
|
|
|
|
- Logic was added to detect link type and correctly set the initial
|
|
|
|
offset to handle both Ethernet and Cisco HDLC frames.
|
|
|
|
- `queryparse` now uses `pcapy` instead of the `btk` python `libcap` module.
|
|
|
|
|
|
|
|
Note that announcements of new releases of `dnsperf` are sent to the
|
|
|
|
mailing list: dnsperf-announce@nominum.com. To be added to the
|
|
|
|
mailing list, send a message to dnsperf-announce-request@nominum.com
|
|
|
|
with "subscribe" as the subject.
|
|
|
|
|
|
|
|
Known Issues:
|
|
|
|
- None.
|
|
|
|
|
|
|
|
2006-12-21
|
|
|
|
|
|
|
|
Release 1.0.0.1
|
|
|
|
|
|
|
|
This release addresses the following issue in the `dnsperf` program:
|
|
|
|
- 18838/18782: `dnsperf` slow down issue
|
|
|
|
Because of an error in how timeout checking was being done, queries
|
|
|
|
were rarely timing out, so the number of valid queries in flight kept
|
|
|
|
dropping. This error has been corrected.
|