Files
zonemaster.es/zonemaster/docs/public/specifications/tests/ArgumentsForTestCaseMessages.md
Malin 8d4eaa1489 feat: add full Zonemaster stack with Docker and Spanish UI
- Clone all 5 Zonemaster component repos (LDNS, Engine, CLI, Backend, GUI)
- Dockerfile.backend: 8-stage multi-stage build LDNS→Engine→CLI→Backend
- Dockerfile.gui: Astro static build served via nginx
- docker-compose.yml: backend (internal) + frontend (port 5353)
- nginx.conf: root redirects to /es/, /api/ proxied to backend
- zonemaster-gui/config.ts: defaultLanguage set to 'es' (Spanish)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-21 08:19:24 +02:00

14 KiB

Arguments for test case messages

Introduction

This document defines arguments. An argument is defined with its name, its type of value and its usage and formatting. The arguments are primarily used in a Zonemaster-Engine message, but can also be used in messages output by Zonemaster-CLI and Zonemaster-Backend. The messages, in the form of msgid strings, are primarily defined in the Perl modules for the test cases, e.g. Basic.pm. The arguments are also used in the translated messages, in the form of msgstr strings, in the PO files, e.g. fr.po and sv.po. When an argument is used in a message (msgid or msgstr) it is represented by its name which is put within curly brackets, e.g. as {ns}.

When a message is created or updated only arguments defined in this document should be used. If there is not a defined argument that can be used for the message then a new argument must be defined and this document is to be updated.

Multiple instances of the same argument

In a message the same argument can only be used once. In case a message needs more than one instance of an argument, the instances need to be disambiguated. This is done by adding different suffixes to the argument's name. The suffix is an underscore ("_") followed by a descriptive string of lower case "a-z0-9". The suffixed argument name is not to be listed in this document, it is just an instance of the argument name without the specific suffix.

Example of multiple instances

If two arguments of type "List of IP addresses" are to be used in a message, then both argument names should be ns_ip_list following the list of defined arguments below. If the relevant suffixes for those are "nsec" (connected to an NSEC record type) and "nsec3" (connected to an NSEC3 record type) then two resulting argument names should be ns_ip_list_nsec and ns_ip_list_nsec3, respectively.

The following is a message (msgid in this case) where this is in use:

The zone is inconsistent on NSEC and NSEC3. NSEC is fetched from nameservers with IP addresses "{ns_ip_list_nsec}". NSEC3 is fetched from nameservers with IP addresses "{ns_ip_list_nsec3}".

Defined arguments

When a suitable argument is found in this list, it should also be used in new and updated messages (msgids and msgstr).

Argument name Type of value Description and formatting
algo_descr Text The human readable description of a DNSSEC algorithm as in table in DNSSEC05.
algo_mnemo Text The mnemonic of a DNSSEC algorithm as in table in DNSSEC05.
algo_num Non-negative integer The numeric value for a DNSSEC algorithm as in table in DNSSEC05.
cli_arg Text Command line (CLI) argument to an option, valid or invalid
domain Domain name A domain name. If "nsname", "mailtarget" or "query_name" is also applicable, use that one instead.
ds_algo_descr Text The human readable description of a DS Digest algorithm.
ds_algo_mnemo Text The mnemonic of a DS Digest algorithm.
ds_algo_num Non-negative integer The numeric value for a DS Digest algorithm.
int integer An integer. If "algo_num", "ds_also_num", "keytag", "soaserial" or some other specific name is applicable, use that instead.
ip_prefix IP prefix An IP prefix (i.e., an IP address with a network mask in CIDR notation).
keytag Non-negative integer A keytag for a DNSKEY record or a keytag used in a DS or RRSIG record.
label Domain name label A single label, i.e. the string between the dots, from a domain name.
locale Locale label A locale label, user provided or taken from the environment
mailtarget Domain name The domain name of the mailserver in an MX RDATA.
mailtarget_list List of domain names A list of name servers, as specified by "mailtarget", separated by ";".
module A Zonemaster test module, or all The name of a Zonemaster test module.
module_list List of Zonemaster test modules A list of Zonemaster test modules, separated by ":".
ns Domain name and IP address pair The name and IP address of a name server, separated by "/".
ns_ip IP address The IP address of a name server.
ns_ip_list List of IP addresses A list of name servers, as specified by "ns_ip", separated by ";".
ns_list List of domain name and IP address pairs A list of name servers, as specified by "ns", separated by ";".
nsname Domain name The domain name of a name server.
nsname_list List of domain names A list of name servers, as specified by "nsname", separated by ";".
query_name Domain name A query domain name (QNAME), as defined in RFC1035, section 4.1.2.
rcode An RCODE Name An RCODE Name (not numeric code) from DNS RCODEs.
rrtype A Resource Record TYPE Name A Resource Record TYPE Name (not numeric code) from DNS RR TYPEs.
soaserial Non-negative integer The numeric value for the SERIAL field in an SOA record. Integer in range 0-4,294,967,295
soaserial_list List of non-negative integers A list of non-negative integers, as specified by "soaserial", separated by ";".
string Text The content of the RDATA of a TXT resource record.
testcase A Zonemaster test case, or all A test case identifier.
unicode_name Unicode name of a code point The name is a string in ASCII only and in upper case, e.g. "LATIN SMALL LETTER A"

Preliminary or proposed arguments

The arguments in in this table are not fully defined. If used it should follow the pattern of defined arguments, be fully defined and moved to the list of defined arguments.

Argument name Type of value Description and formatting
AS number An Autonomous Space number for an IP address.
Address record type (A or AAAA) Used to tell the difference between IPv4 and IPv6.
Count of different SOA RNAMEs. Total number of different SOA RNAME fields seen.
Count of different SOA serial numbers Total number of different SOA serial numbers seen.
Count of different sets of NS name/IP seen. Total number of different sets of nameserver information seen.
Count of different time parameter sets seen Total number of different sets of SOA time parameters seen.
Count of domain names A count of domain names.
Count of nameservers A count of nameservers.
DNS packet size The size in octets of a DNS packets.
DNSKEY key length The key length for a DNSKEY. The interpretation of this value various quite a bit with the algorithm. Be careful when using it for algorithms that aren't RSA-based.
DNSSEC delegation verification failure reason A somewhat human-readable reason why the delegation step between the tested zone and its parent is not secure.
dlength (?) Domain name label length The length of a domain name label.
Duration in seconds An integer number of seconds.
fqdn (?) FQDN A fully qualified domain name (with terminating dot).
fqdnlength (?) FQDN length The length of an FQDN.
IP address An IPv4 or IPv6 address.
IP address or nothing An IPv4 or IPv6 address, or no value.
IP range An IP range.
IP reserved range description A brief description what an IP range is reserved for.
Largest SOA serial number seen The numerically largest SOA serial value seen.
List of AS numbers A list of Autonomous Space numbers.
List of DNSKEY keytags A list of keytags from DNSKEY records.
List of DS keytags A list of keytags from DS records.
List of DS/DNSKEY/RRSIG keytags A list of keytags from DS, DNSKEY or RRSIG records.
List of IP addresses A list of IP addresses.
List of MX domain names A list of domain names from MX records.
List of RR types A list of RR types, typically from an NSEC or NSEC3 record.
List of SOA RNAMEs A list of RNAME values from SOA records.
List of SOA serial numbers A list of serial number values from SOA records.
List of domain names A list of domain names.
NS names from child A list of nameserver names taken from a zone's child servers.
NS names from parent A list of nameserver names taken from a zone's parent servers.
NSEC3 iteration count An iteration count from an NSEC3PARAM record.
Number of DNSKEY RRs in packet The number of DNSKEY records found in a packet.
Number of RRSIG RRs in packet The number of RRSIG records found in a packet.
Number of SOA RRs in packet The number of SOA records found in a packet.
Protocol (UDP or TCP) The protocol used for a query.
RFC reference A reference to an RFC.
rrtype (?) RR type The type of RR the message pertains to.
RRSIG Expiration date The time when a signature expires.
RRSIG validation error message The human-readable reason why the cryptographic validation of a signature failed.
SOA MNAME The MNAME value from a SOA record.
SOA RNAME The RNAME value from a SOA record.
SOA expire The expire value from a SOA record.
SOA expire minimum value The lowest value considered OK for the SOA expire field.
SOA minimum The minimum value from a SOA record.
SOA minimum maximum value The highest value considered OK for the SOA minimum field.
SOA minimum minimum value The lowest value considered OK for the SOA minimum field.
SOA refresh The refresh value from a SOA record.
SOA refresh minimum value The lowest value considered OK for the SOA refresh field.
SOA retry The retry value from a SOA record.
SOA retry minimum value The lowest value considered OK for the SOA retry field.
SOA serial number The serial number value from a SOA record.
Smallest SOA serial number seen The smallest value seen in a SOA serial field in the tested zone.
TLD The name of a top-level domain.
time_t value when RRSIG validation was attempted The time when an RRSIG validation was attempted, in Unix time_t format.

Message names marked with a question mark should not be considered stable.