Download raw body.
tcpdump(8): sync DNS RR types
The following syncs tcpdump's DNS resource record type definitions with IANA:
https://www.iana.org/assignments/dns-parameters
diff --git a/usr.sbin/tcpdump/nameser.h b/usr.sbin/tcpdump/nameser.h
index ddb5e065c4a..0c16e7568cf 100644
--- a/usr.sbin/tcpdump/nameser.h
+++ b/usr.sbin/tcpdump/nameser.h
@@ -157,13 +157,40 @@
#define T_RRSIG 46 /* RRSIG */
#define T_NSEC 47 /* NSEC */
#define T_DNSKEY 48 /* DNSKEY */
+#define T_DHCID 49 /* DHCID, RFC 4701 */
+#define T_NSEC3 50 /* NSEC3, RFC 5155 and RFC 9077 */
+#define T_NSEC3PARAM 51 /* NSEC3PARAM, RFC 5155 */
+#define T_TLSA 52 /* TLSA, RFC 6698 */
+#define T_SMIMEA 53 /* S/MIME cert association, RFC 8162 */
+#define T_HIP 55 /* Host Identity Protocol, RFC 8005 */
+#define T_NINFO 56 /* NINFO */
+#define T_RKEY 57 /* RKEY */
+#define T_TALINK 58 /* Trust Anchor LINK */
+#define T_CDS 59 /* Child DS, RFC 7344 */
+#define T_CDNSKEY 60 /* DNSKEY(s) the Child wants reflected in DS, RFC 7344 */
+#define T_OPENPGPKEY 61 /* OpenPGP Key, RFC 7929 */
+#define T_CSYNC 62 /* Child-To-Parent Synchronization, RFC 7477 */
+#define T_ZONEMD 63 /* Message Digest Over Zone Data, RFC 8976 */
+#define T_SVCB 64 /* General-purpose service binding, RFC 9460 */
+#define T_HTTPS 65 /* SVCB-compatible type for use with HTTP, RFC 9460 */
+#define T_DSYNC 66 /* Endpoint discovery for delegation synchronization, RFC 9859 */
+#define T_HHIT 67 /* Hierarchical Host Identity Tag, RFC 9886 */
+#define T_BRID 68 /* UAS Broadcast Remote Identification, RFC 9886 */
+#define T_UNECE 69 /* Value coded per a UNECE Recommendation */
+#define T_ISO 70 /* Value coded per an ISO standard */
/* non standard */
#define T_SPF 99 /* sender policy framework */
#define T_UINFO 100 /* user (finger) information */
#define T_UID 101 /* user ID */
#define T_GID 102 /* group ID */
#define T_UNSPEC 103 /* Unspecified format (binary data) */
-#define T_UNSPECA 104 /* "unspecified ascii". Ugly MIT hack */
+#define T_NID 104 /* RFC 6742 */
+#define T_L32 105 /* RFC 6742 */
+#define T_L64 106 /* RFC 6742 */
+#define T_LP 107 /* RFC 6742 */
+#define T_EUI48 108 /* an EUI-48 address, RFC 7043 */
+#define T_EUI64 109 /* an EUI-64 address, RFC 7043 */
+#define T_NXNAME 128 /* NXDOMAIN indicator for Compact Denial of Existence, RFC 9824 */
/* Query type values which do not appear in resource records */
#define T_TKEY 249 /* Transaction Key [RFC2930] */
#define T_TSIG 250 /* Transaction Signature [RFC2845] */
@@ -172,6 +199,17 @@
#define T_MAILB 253 /* transfer mailbox records */
#define T_MAILA 254 /* transfer mail agent records */
#define T_ANY 255 /* wildcard match */
+#define T_URI 256 /* URI, RFC 7553 */
+#define T_CAA 257 /* Certification Authority Restriction, RFC 8659 */
+#define T_AVC 258 /* Application Visibility and Control */
+#define T_DOA 259 /* Digital Object Architecture */
+#define T_AMTRELAY 260 /* Automatic Multicast Tunneling Relay, RFC 8777 */
+#define T_RESINFO 261 /* Resolver Information as Key/Value Pairs, RFC 9606 */
+#define T_WALLET 262 /* Public wallet address */
+#define T_CLA 263 /* BP Convergence Layer Adapter */
+#define T_IPN 264 /* BP Node Number */
+#define T_TA 32768 /* DNSSEC Trust Authorities */
+#define T_DLV 32769 /* DNSSEC Lookaside Validation (OBSOLETE), RFC 8749 and RFC 4431 */
/*
* Values for class field
diff --git a/usr.sbin/tcpdump/print-domain.c b/usr.sbin/tcpdump/print-domain.c
index d3372a64c01..f13363fe473 100644
--- a/usr.sbin/tcpdump/print-domain.c
+++ b/usr.sbin/tcpdump/print-domain.c
@@ -301,12 +301,39 @@ struct tok ns_type2str[] = {
{ T_RRSIG, "RRSIG" }, /* RFC 4034 */
{ T_NSEC, "NSEC" }, /* RFC 4034 */
{ T_DNSKEY, "DNSKEY" }, /* RFC 4034 */
+ { T_DHCID, "DHCID" }, /* RFC 4701 */
+ { T_NSEC3, "NSEC3" }, /* RFC 5155, RFC 9077 */
+ { T_NSEC3PARAM, "NSEC3PARAM" }, /* RFC 5155 */
+ { T_TLSA, "TLSA" }, /* RFC 6698 */
+ { T_SMIMEA, "SMIMEA" }, /* RFC 8162 */
+ { T_HIP, "HIP" }, /* RFC 8005 */
+ { T_NINFO, "NINFO" },
+ { T_RKEY, "RKEY" },
+ { T_TALINK, "TALINK" },
+ { T_CDS, "CDS" }, /* RFC 7344 */
+ { T_CDNSKEY, "CDNSKEY" }, /* RFC 7344 */
+ { T_OPENPGPKEY, "OPENPGPKEY" }, /* RFC 7929 */
+ { T_CSYNC, "CSYNC" }, /* RFC 7477 */
+ { T_ZONEMD, "ZONEMD" }, /* RFC 8976 */
+ { T_SVCB, "SVCB" }, /* RFC 9460 */
+ { T_HTTPS, "HTTPS" }, /* RFC 9460 */
+ { T_DSYNC, "DSYNC" }, /* RFC 9859 */
+ { T_HHIT, "HHIT" }, /* RFC 9886 */
+ { T_BRID, "BRID" }, /* RFC 9886 */
+ { T_UNECE, "UNECE" },
+ { T_ISO, "ISO" },
{ T_SPF, "SPF" }, /* RFC-schlitt-spf-classic-02.txt */
{ T_UINFO, "UINFO" },
{ T_UID, "UID" },
{ T_GID, "GID" },
{ T_UNSPEC, "UNSPEC" },
- { T_UNSPECA, "UNSPECA" },
+ { T_NID, "NID" }, /* RFC 6742 */
+ { T_L32, "L32" }, /* RFC 6742 */
+ { T_L64, "L64" }, /* RFC 6742 */
+ { T_LP, "LP" }, /* RFC 6742 */
+ { T_EUI48, "EUI48" }, /* RFC 7043 */
+ { T_EUI64, "EUI64" }, /* RFC 7043 */
+ { T_NXNAME, "NXNAME" }, /* RFC 9824 */
{ T_TKEY, "TKEY" }, /* RFC 2930 */
{ T_TSIG, "TSIG" }, /* RFC 2845 */
{ T_IXFR, "IXFR" }, /* RFC 1995 */
@@ -314,6 +341,17 @@ struct tok ns_type2str[] = {
{ T_MAILB, "MAILB" }, /* RFC 1035 */
{ T_MAILA, "MAILA" }, /* RFC 1035 */
{ T_ANY, "ANY" },
+ { T_URI, "URI" }, /* RFC 7553 */
+ { T_CAA, "CAA" }, /* RFC 8659 */
+ { T_AVC, "AVC" },
+ { T_DOA, "DOA" },
+ { T_AMTRELAY, "AMTRELAY" }, /* RFC 8777 */
+ { T_RESINFO, "RESINFO" }, /* RFC 9606 */
+ { T_WALLET, "WALLET" },
+ { T_CLA, "CLA" },
+ { T_IPN, "IPN" },
+ { T_TA, "TA" },
+ { T_DLV, "DLV" }, /* RFC 8749, RFC 4431 */
{ 0, NULL }
};
@@ -527,13 +565,6 @@ ns_rprint(const u_char *cp, const u_char *bp, int is_mdns)
printf(" DO");
break;
- case T_UNSPECA: /* One long string */
- if (!TTEST2(*cp, len))
- return(NULL);
- if (fn_printn(cp, len, snapend))
- return(NULL);
- break;
-
case T_TSIG:
{
if (cp + len > snapend)
tcpdump(8): sync DNS RR types