summaryrefslogtreecommitdiffstats
path: root/rpm/dnsperf.spec
diff options
context:
space:
mode:
Diffstat (limited to 'rpm/dnsperf.spec')
-rw-r--r--rpm/dnsperf.spec304
1 files changed, 304 insertions, 0 deletions
diff --git a/rpm/dnsperf.spec b/rpm/dnsperf.spec
new file mode 100644
index 0000000..e3d2825
--- /dev/null
+++ b/rpm/dnsperf.spec
@@ -0,0 +1,304 @@
+Name: dnsperf
+Version: 2.4.2
+Release: 1%{?dist}
+Summary: DNS Performance Testing Tool
+Group: Productivity/Networking/DNS/Utilities
+
+License: Apache-2.0
+URL: https://www.dns-oarc.net/tools/dnsperf
+# Source needs to be generated by dist-tools/create-source-packages, see
+# https://github.com/jelu/dist-tools
+Source0: https://www.dns-oarc.net/files/dnsperf/%{name}-%{version}.tar.gz?/%{name}_%{version}.orig.tar.gz
+
+BuildRequires: autoconf
+BuildRequires: automake
+BuildRequires: libtool
+BuildRequires: openssl-devel
+BuildRequires: pkgconfig
+BuildRequires: ldns-devel
+
+%description
+dnsperf and resperf are free tools developed by Nominum/Akamai (2006-2018)
+and DNS-OARC (since 2019) that make it simple to gather accurate latency and
+throughput metrics for Domain Name Service (DNS). These tools are easy-to-use
+and simulate typical Internet, so network operators can benchmark their naming
+and addressing infrastructure and plan for upgrades. The latest version of
+the dnsperf and resperf can be used with test files that include IPv6
+queries.
+
+dnsperf "self-paces" the DNS query load to simulate network conditions.
+
+New features in dnsperf improve the precision of latency measurements and
+allow for per packet per-query latency reporting is possible. dnsperf is
+now multithreaded, multiple dnsperf clients can be supported in multicore
+systems (each client requires two cores). The output of dnsperf has also
+been improved so it is more concise and useful. Latency data can be used to
+make detailed graphs, so it is simple for network operators to take advantage
+of the data.
+
+
+%package -n resperf
+Summary: DNS Resolution Performance Testing Tool
+Group: Productivity/Networking/DNS/Utilities
+
+
+%description -n resperf
+dnsperf and resperf are free tools developed by Nominum/Akamai (2006-2018)
+and DNS-OARC (since 2019) that make it simple to gather accurate latency and
+throughput metrics for Domain Name Service (DNS). These tools are easy-to-use
+and simulate typical Internet, so network operators can benchmark their naming
+and addressing infrastructure and plan for upgrades. The latest version of
+the dnsperf and resperf can be used with test files that include IPv6
+queries.
+
+resperf systematically increases the query rate and monitors the response
+rate to simulate caching DNS services.
+
+
+%prep
+%setup -q -n %{name}_%{version}
+
+
+%build
+sh autogen.sh
+%configure "--with-extra-cflags=-I /usr/include/bind"
+make %{?_smp_mflags}
+
+
+%check
+make test
+
+
+%install
+rm -rf $RPM_BUILD_ROOT
+make install DESTDIR=$RPM_BUILD_ROOT
+
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+
+%files
+%defattr(-,root,root)
+%{_bindir}/dnsperf
+%{_datadir}/doc/*
+%{_mandir}/man1/dnsperf.*
+
+
+%files -n resperf
+%defattr(-,root,root)
+%{_bindir}/resperf
+%{_bindir}/resperf-report
+%{_mandir}/man1/resperf.*
+
+
+%changelog
+* Tue Feb 23 2021 Jerry Lundström <lundstrom.jerry@gmail.com> 2.4.2-1
+- 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.
+ * Commits:
+ 9937287 resperf TLS
+ 6736956 datafile
+ 55faec6 ran out of data
+* Tue Feb 09 2021 Jerry Lundström <lundstrom.jerry@gmail.com> 2.4.1-1
+- 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.
+ * Commits:
+ 24e5bee poll
+ 7dceca7 Handle only common exceptions
+ 5603294 Fix error on python3
+ 48fa517 TSIG
+* Wed Dec 09 2020 Jerry Lundström <lundstrom.jerry@gmail.com> 2.4.0-1
+- 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
+ * Commits:
+ 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
+* Fri May 15 2020 Jerry Lundström <lundstrom.jerry@gmail.com> 2.3.4-1
+- 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()`.
+ * Commits:
+ 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
+* Wed May 06 2020 Jerry Lundström <lundstrom.jerry@gmail.com> 2.3.3-1
+- 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`.
+ * Commits:
+ 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
+* Fri Aug 23 2019 Jerry Lundström <lundstrom.jerry@gmail.com> 2.3.2-1
+- 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()`.
+ * Commits:
+ e54aa58 Digest
+ bca5d8d sqrt
+ d9eaa5b Package
+* Wed Jul 24 2019 Jerry Lundström <lundstrom.jerry@gmail.com> 2.3.1-1
+- 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
+ * Commits:
+ 670db9c TCP/TLS receive
+ b8925b2 recvbuf have more
+* Wed Jul 17 2019 Jerry Lundström <lundstrom.jerry@gmail.com> 2.3.0-1
+- 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
+ * Commits:
+ ffa49cf LGTM, SonarCloud
+ 4cd5441 TLS
+ 35624d1 TCP send, socket ready loop
+ fbf76aa TCP support
+ 5988b06 Funding
+* Mon Jan 28 2019 Jerry Lundström <lundstrom.jerry@gmail.com> 2.2.1-1
+- 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.
+ * Commits:
+ 9534ce1 remove visible "u" characters after numbers
+* Mon Dec 03 2018 Jerry Lundström <lundstrom.jerry@gmail.com> 2.2.0-1
+- 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
+ * Commits:
+ 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