From 120072e829c0ec8cb7a3ad9d843befce3b1c8f00 Mon Sep 17 00:00:00 2001 From: Wouter Date: Wed, 15 Jan 2025 15:42:37 +0100 Subject: [PATCH 01/11] Adding the flag "--enable-deleg" to use the draft DELEG RR type --- configure.ac | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/configure.ac b/configure.ac index 0a2f1cc..a6cb3c2 100644 --- a/configure.ac +++ b/configure.ac @@ -41,6 +41,15 @@ case "$enable_haswell" in yes|*) enable_haswell=yes ;; esac +AC_ARG_ENABLE(deleg, AS_HELP_STRING([--enable-deleg],[Enables the use of the draft DELEG RR type])) +case "$enable_deleg" in + yes) + AC_DEFINE_UNQUOTED([USE_DELEG], [], [Define this to enable DELEG draft RR type]) + ;; + no|''|*) + ;; +esac + # GCC and Clang AX_CHECK_COMPILE_FLAG([-MMD],DEPFLAGS="-MMD -MP") # Oracle Developer Studio (no -MP) From 9cf6bafd7906a33921935a36fd00bbb4cf5d0e1e Mon Sep 17 00:00:00 2001 From: Wouter Date: Wed, 15 Jan 2025 15:44:44 +0100 Subject: [PATCH 02/11] Adding the DELEG RR type to types and zones --- include/zone.h | 5 +++++ scripts/hash.c | 3 ++- src/generic/types.h | 47 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 54 insertions(+), 1 deletion(-) diff --git a/include/zone.h b/include/zone.h index 35ee6ec..14f4902 100644 --- a/include/zone.h +++ b/include/zone.h @@ -19,6 +19,7 @@ #include #include #include +#include #include "zone/attributes.h" #include "zone/export.h" @@ -205,6 +206,10 @@ extern "C" { #define ZONE_TYPE_TA (32768u) /** DNSSEC Lookaside Validation @rfc{4431} @obsolete */ #define ZONE_TYPE_DLV (32769u) +#ifdef USE_DELEG +/** DELEG IETF draft */ +#define ZONE_TYPE_DELEG (65280u) +#endif /** @} */ /** diff --git a/scripts/hash.c b/scripts/hash.c index 46c254c..0505283 100644 --- a/scripts/hash.c +++ b/scripts/hash.c @@ -97,7 +97,8 @@ static const tuple_t types_and_classes[] = { { "WALLET", 262, true }, { "CLA", 263, true }, { "TA", 32768, true }, - { "DLV", 32769, true } + { "DLV", 32769, true }, + { "DELEG", 65280, true } }; const uint64_t original_magic = 3523216699ull; // original hash from hash.cpp diff --git a/src/generic/types.h b/src/generic/types.h index 1e388df..22adc54 100644 --- a/src/generic/types.h +++ b/src/generic/types.h @@ -2189,6 +2189,41 @@ static int32_t parse_https_rdata( return accept_rr(parser, type, rdata); } +#ifdef USE_DELEG +nonnull_all +static int32_t check_deleg_rr( + parser_t *parser, const type_info_t *type, const rdata_t *rdata) +{ + // + // FIXME: incorporate fixes mentioned in check_svcb_rr + // + + return accept_rr(parser, type, rdata); +} + +nonnull_all +static int32_t parse_deleg_rdata( + parser_t *parser, const type_info_t *type, rdata_t *rdata, token_t *token) +{ + int32_t code; + const rdata_info_t *fields = type->rdata.fields; + + if ((code = have_contiguous(parser, type, &fields[0], token)) < 0) + return code; + if ((code = parse_int16(parser, type, &fields[0], rdata, token)) < 0) + return code; + if ((code = take_contiguous(parser, type, &fields[1], token)) < 0) + return code; + if ((code = parse_name(parser, type, &fields[1], rdata, token)) < 0) + return code; + take(parser, token); + if ((code = parse_svc_params(parser, type, &fields[2], rdata, token)) < 0) + return code; + + return accept_rr(parser, type, rdata); +} +#endif + nonnull_all static int32_t check_nid_rr( parser_t *parser, const type_info_t *type, const rdata_t *rdata) @@ -2847,6 +2882,12 @@ static const rdata_info_t https_rdata_fields[] = { FIELD("params") }; +static const rdata_info_t deleg_rdata_fields[] = { + FIELD("priority"), + FIELD("target"), + FIELD("params") +}; + static const rdata_info_t spf_rdata_fields[] = { FIELD("text") }; @@ -3294,6 +3335,12 @@ static const type_info_t types[] = { /* Map 32769 in hash.c to 266 */ TYPE("DLV", ZONE_TYPE_DLV, ZONE_CLASS_ANY, FIELDS(dlv_rdata_fields), // obsolete check_ds_rr, parse_ds_rdata) + #ifdef USE_DELEG + , + TYPE("DELEG", ZONE_TYPE_DELEG, ZONE_CLASS_IN, FIELDS(deleg_rdata_fields), + check_deleg_rr, parse_deleg_rdata) + #endif + }; #undef UNKNOWN_CLASS From f90e8483353aa32af2c9f2c0ed8ecccb23a8957f Mon Sep 17 00:00:00 2001 From: Wouter Date: Thu, 16 Jan 2025 14:30:04 +0100 Subject: [PATCH 03/11] Updating hash.c to map the DELEG RR type to the next number --- scripts/hash.c | 2 ++ src/generic/types.h | 1 + 2 files changed, 3 insertions(+) diff --git a/scripts/hash.c b/scripts/hash.c index 0505283..7a102c2 100644 --- a/scripts/hash.c +++ b/scripts/hash.c @@ -132,6 +132,8 @@ static void print_table(uint64_t magic) break; case 32769: code = 266; // index of DLV in types array in generic/types.h break; + case 65280: code = 267; // index of DELEG in types array in generic/types.h + break; default : code = keys[i].code; break; } diff --git a/src/generic/types.h b/src/generic/types.h index 22adc54..8883b99 100644 --- a/src/generic/types.h +++ b/src/generic/types.h @@ -3337,6 +3337,7 @@ static const type_info_t types[] = { check_ds_rr, parse_ds_rdata) #ifdef USE_DELEG , + /* Map 32770 in hash.c to 267 */ TYPE("DELEG", ZONE_TYPE_DELEG, ZONE_CLASS_IN, FIELDS(deleg_rdata_fields), check_deleg_rr, parse_deleg_rdata) #endif From 931dbef20d6b45991dcd5e1132bc7850888dd521 Mon Sep 17 00:00:00 2001 From: Wouter Date: Thu, 16 Jan 2025 14:30:16 +0100 Subject: [PATCH 04/11] Updating types with new hash --- src/generic/type.h | 2 +- src/westmere/type.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/generic/type.h b/src/generic/type.h index bab3a00..41933c6 100644 --- a/src/generic/type.h +++ b/src/generic/type.h @@ -41,7 +41,7 @@ static const struct { T(48), V(0), T(53), V(0), V(0), V(0), T(59), V(0), V(0), V(0), V(0), V(0), T(4), V(0), T(10), V(0), V(0), V(0), V(0), V(0), V(0), T(55), V(0), V(0), - V(0), V(0), V(0), V(0), V(0), V(0), V(0), V(0), + V(0), V(0), V(0), V(0), V(0), V(0), T(267), V(0), V(0), V(0), V(0), V(0), V(0), V(0), V(0), V(0), V(0), V(0), T(61), T(12), V(0), V(0), V(0), V(0), V(0), T(108), V(0), V(0), T(257), V(0), V(0), V(0), diff --git a/src/westmere/type.h b/src/westmere/type.h index b3403e9..19adac1 100644 --- a/src/westmere/type.h +++ b/src/westmere/type.h @@ -41,7 +41,7 @@ static const struct { T(48), V(0), T(53), V(0), V(0), V(0), T(59), V(0), V(0), V(0), V(0), V(0), T(4), V(0), T(10), V(0), V(0), V(0), V(0), V(0), V(0), T(55), V(0), V(0), - V(0), V(0), V(0), V(0), V(0), V(0), V(0), V(0), + V(0), V(0), V(0), V(0), V(0), V(0), T(267), V(0), V(0), V(0), V(0), V(0), V(0), V(0), V(0), V(0), V(0), V(0), T(61), T(12), V(0), V(0), V(0), V(0), V(0), T(108), V(0), V(0), T(257), V(0), V(0), V(0), From cc3d92d849575fbef17cf3d470325027a857edc5 Mon Sep 17 00:00:00 2001 From: WP Date: Fri, 17 Jan 2025 14:01:17 +0100 Subject: [PATCH 05/11] Changing the `--enable-deleg` flag to `--enable-drafts` --- configure.ac | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/configure.ac b/configure.ac index a6cb3c2..130dc15 100644 --- a/configure.ac +++ b/configure.ac @@ -50,6 +50,15 @@ case "$enable_deleg" in ;; esac +AC_ARG_ENABLE(drafts, AS_HELP_STRING([--enable-drafts],[Enables the use of the draft RR types])) +case "$enable_drafts" in + yes) + AC_DEFINE_UNQUOTED([USE_DRAFTS], [], [Define this to enable draft RR types]) + ;; + no|''|*) + ;; +esac + # GCC and Clang AX_CHECK_COMPILE_FLAG([-MMD],DEPFLAGS="-MMD -MP") # Oracle Developer Studio (no -MP) From 20d34babbde4c13ed5efcb2646370a90ec6cbf97 Mon Sep 17 00:00:00 2001 From: WP Date: Fri, 17 Jan 2025 14:01:57 +0100 Subject: [PATCH 06/11] Changing DELEG to IDELEG to calculate new hash --- scripts/hash.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/hash.c b/scripts/hash.c index 7a102c2..d5cc235 100644 --- a/scripts/hash.c +++ b/scripts/hash.c @@ -98,7 +98,7 @@ static const tuple_t types_and_classes[] = { { "CLA", 263, true }, { "TA", 32768, true }, { "DLV", 32769, true }, - { "DELEG", 65280, true } + { "IDELEG", 65280, true } }; const uint64_t original_magic = 3523216699ull; // original hash from hash.cpp @@ -132,7 +132,7 @@ static void print_table(uint64_t magic) break; case 32769: code = 266; // index of DLV in types array in generic/types.h break; - case 65280: code = 267; // index of DELEG in types array in generic/types.h + case 65280: code = 267; // index of IDELEG in types array in generic/types.h break; default : code = keys[i].code; break; From 05165f43ad692e529263f51f0c7b945ea5df179c Mon Sep 17 00:00:00 2001 From: WP Date: Fri, 17 Jan 2025 14:02:35 +0100 Subject: [PATCH 07/11] Changing DELEG to IDELEG and setting new hash matrix --- include/zone.h | 2 +- src/generic/types.h | 6 +++--- src/westmere/type.h | 40 +++++++++++++++++++++++++++++++++++++++- 3 files changed, 43 insertions(+), 5 deletions(-) diff --git a/include/zone.h b/include/zone.h index 14f4902..c1d3482 100644 --- a/include/zone.h +++ b/include/zone.h @@ -206,7 +206,7 @@ extern "C" { #define ZONE_TYPE_TA (32768u) /** DNSSEC Lookaside Validation @rfc{4431} @obsolete */ #define ZONE_TYPE_DLV (32769u) -#ifdef USE_DELEG +#ifdef USE_DRAFTS /** DELEG IETF draft */ #define ZONE_TYPE_DELEG (65280u) #endif diff --git a/src/generic/types.h b/src/generic/types.h index 8883b99..6edf386 100644 --- a/src/generic/types.h +++ b/src/generic/types.h @@ -2189,7 +2189,7 @@ static int32_t parse_https_rdata( return accept_rr(parser, type, rdata); } -#ifdef USE_DELEG +#ifdef USE_DRAFTS nonnull_all static int32_t check_deleg_rr( parser_t *parser, const type_info_t *type, const rdata_t *rdata) @@ -3335,10 +3335,10 @@ static const type_info_t types[] = { /* Map 32769 in hash.c to 266 */ TYPE("DLV", ZONE_TYPE_DLV, ZONE_CLASS_ANY, FIELDS(dlv_rdata_fields), // obsolete check_ds_rr, parse_ds_rdata) - #ifdef USE_DELEG + #ifdef USE_DRAFTS , /* Map 32770 in hash.c to 267 */ - TYPE("DELEG", ZONE_TYPE_DELEG, ZONE_CLASS_IN, FIELDS(deleg_rdata_fields), + TYPE("IDELEG", ZONE_TYPE_DELEG, ZONE_CLASS_IN, FIELDS(deleg_rdata_fields), check_deleg_rr, parse_deleg_rdata) #endif diff --git a/src/westmere/type.h b/src/westmere/type.h index 19adac1..4833ef8 100644 --- a/src/westmere/type.h +++ b/src/westmere/type.h @@ -17,7 +17,9 @@ static const struct { const mnemonic_t *mnemonic; int32_t code; -} types_and_classes[256] = { +} types_and_classes[256] = +#ifndef USE_DRAFTS + { V(0), V(0), V(0), V(0), V(0), V(0), V(0), T(20), T(3), V(0), V(0), V(0), V(0), T(261), V(0), V(0), T(60), V(0), V(0), T(105), V(0), V(0), V(0), T(258), @@ -51,6 +53,42 @@ static const struct { V(0), T(109), V(0), V(0), V(0), V(0), V(0), V(0), V(0), V(0), V(0), V(0), T(262), V(0), T(256), V(0) }; +#else +{ + V(0), V(0), V(0), V(0), V(0), V(0), V(0), T(20), + T(3), V(0), V(0), V(0), V(0), T(261), V(0), T(267), + T(60), V(0), V(0), T(105), V(0), V(0), V(0), T(258), + V(0), V(0), V(0), V(0), T(30), V(0), T(28), V(0), + V(0), T(16), V(0), V(0), T(56), T(14), T(22), V(0), + V(0), T(13), V(0), T(47), T(21), V(0), T(65), T(27), + V(0), V(0), V(0), V(0), V(0), T(1), T(62), V(0), + V(0), C(1), V(0), T(44), V(0), V(0), T(33), V(0), + V(0), V(0), V(0), V(0), T(63), V(0), T(266), V(0), + C(3), T(99), T(37), V(0), V(0), V(0), C(2), T(43), + V(0), T(50), C(4), T(51), V(0), V(0), V(0), T(2), + T(49), T(42), T(19), T(23), V(0), T(6), V(0), V(0), + V(0), V(0), T(29), V(0), T(7), V(0), V(0), V(0), + V(0), T(57), V(0), V(0), V(0), V(0), V(0), T(36), + T(15), V(0), V(0), T(26), T(11), V(0), V(0), V(0), + V(0), V(0), V(0), V(0), T(104), V(0), T(8), V(0), + V(0), V(0), T(38), V(0), T(9), V(0), T(64), V(0), + V(0), V(0), V(0), V(0), V(0), V(0), T(39), T(52), + T(24), V(0), T(5), T(106), V(0), V(0), V(0), V(0), + T(265), V(0), V(0), V(0), V(0), T(25), V(0), T(18), + T(48), V(0), T(53), V(0), V(0), V(0), T(59), V(0), + V(0), V(0), V(0), V(0), T(4), V(0), T(10), V(0), + V(0), V(0), V(0), V(0), V(0), T(55), V(0), V(0), + V(0), V(0), V(0), V(0), V(0), V(0), V(0), V(0), + V(0), V(0), V(0), V(0), V(0), V(0), V(0), V(0), + V(0), V(0), T(61), T(12), V(0), V(0), V(0), V(0), + V(0), T(108), V(0), V(0), T(257), V(0), V(0), V(0), + T(35), V(0), T(263), V(0), V(0), V(0), V(0), T(107), + V(0), V(0), V(0), V(0), T(17), V(0), T(45), V(0), + V(0), V(0), V(0), V(0), V(0), V(0), T(46), V(0), + V(0), T(109), V(0), V(0), V(0), V(0), V(0), V(0), + V(0), V(0), V(0), V(0), T(262), V(0), T(256), V(0) +}; +#endif #undef V #undef T From 2a3e60d0190b3664ba9d01fca9a80a0ab6d5c876 Mon Sep 17 00:00:00 2001 From: WP Date: Fri, 17 Jan 2025 14:05:51 +0100 Subject: [PATCH 08/11] Removing obsolete `--enable-deleg` flag --- configure.ac | 9 --------- 1 file changed, 9 deletions(-) diff --git a/configure.ac b/configure.ac index 130dc15..5328315 100644 --- a/configure.ac +++ b/configure.ac @@ -41,15 +41,6 @@ case "$enable_haswell" in yes|*) enable_haswell=yes ;; esac -AC_ARG_ENABLE(deleg, AS_HELP_STRING([--enable-deleg],[Enables the use of the draft DELEG RR type])) -case "$enable_deleg" in - yes) - AC_DEFINE_UNQUOTED([USE_DELEG], [], [Define this to enable DELEG draft RR type]) - ;; - no|''|*) - ;; -esac - AC_ARG_ENABLE(drafts, AS_HELP_STRING([--enable-drafts],[Enables the use of the draft RR types])) case "$enable_drafts" in yes) From adbc3ef304e893572bac2e4f5c010f92c0e52b74 Mon Sep 17 00:00:00 2001 From: WP Date: Fri, 17 Jan 2025 14:07:56 +0100 Subject: [PATCH 09/11] Setting fallback non-draft hash matrix generic parser --- src/generic/type.h | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/src/generic/type.h b/src/generic/type.h index 41933c6..80852d5 100644 --- a/src/generic/type.h +++ b/src/generic/type.h @@ -17,7 +17,9 @@ static const struct { const mnemonic_t *mnemonic; int32_t code; -} types_and_classes[256] = { +} types_and_classes[256] = + #ifndef USE_DRAFTS + { V(0), V(0), V(0), V(0), V(0), V(0), V(0), T(20), T(3), V(0), V(0), V(0), V(0), T(261), V(0), V(0), T(60), V(0), V(0), T(105), V(0), V(0), V(0), T(258), @@ -51,6 +53,42 @@ static const struct { V(0), T(109), V(0), V(0), V(0), V(0), V(0), V(0), V(0), V(0), V(0), V(0), T(262), V(0), T(256), V(0) }; +#else +{ + V(0), V(0), V(0), V(0), V(0), V(0), V(0), T(20), + T(3), V(0), V(0), V(0), V(0), T(261), V(0), T(267), + T(60), V(0), V(0), T(105), V(0), V(0), V(0), T(258), + V(0), V(0), V(0), V(0), T(30), V(0), T(28), V(0), + V(0), T(16), V(0), V(0), T(56), T(14), T(22), V(0), + V(0), T(13), V(0), T(47), T(21), V(0), T(65), T(27), + V(0), V(0), V(0), V(0), V(0), T(1), T(62), V(0), + V(0), C(1), V(0), T(44), V(0), V(0), T(33), V(0), + V(0), V(0), V(0), V(0), T(63), V(0), T(266), V(0), + C(3), T(99), T(37), V(0), V(0), V(0), C(2), T(43), + V(0), T(50), C(4), T(51), V(0), V(0), V(0), T(2), + T(49), T(42), T(19), T(23), V(0), T(6), V(0), V(0), + V(0), V(0), T(29), V(0), T(7), V(0), V(0), V(0), + V(0), T(57), V(0), V(0), V(0), V(0), V(0), T(36), + T(15), V(0), V(0), T(26), T(11), V(0), V(0), V(0), + V(0), V(0), V(0), V(0), T(104), V(0), T(8), V(0), + V(0), V(0), T(38), V(0), T(9), V(0), T(64), V(0), + V(0), V(0), V(0), V(0), V(0), V(0), T(39), T(52), + T(24), V(0), T(5), T(106), V(0), V(0), V(0), V(0), + T(265), V(0), V(0), V(0), V(0), T(25), V(0), T(18), + T(48), V(0), T(53), V(0), V(0), V(0), T(59), V(0), + V(0), V(0), V(0), V(0), T(4), V(0), T(10), V(0), + V(0), V(0), V(0), V(0), V(0), T(55), V(0), V(0), + V(0), V(0), V(0), V(0), V(0), V(0), V(0), V(0), + V(0), V(0), V(0), V(0), V(0), V(0), V(0), V(0), + V(0), V(0), T(61), T(12), V(0), V(0), V(0), V(0), + V(0), T(108), V(0), V(0), T(257), V(0), V(0), V(0), + T(35), V(0), T(263), V(0), V(0), V(0), V(0), T(107), + V(0), V(0), V(0), V(0), T(17), V(0), T(45), V(0), + V(0), V(0), V(0), V(0), V(0), V(0), T(46), V(0), + V(0), T(109), V(0), V(0), V(0), V(0), V(0), V(0), + V(0), V(0), V(0), V(0), T(262), V(0), T(256), V(0) +}; +#endif #undef V #undef T From c076fb7b84624ea6918dbf39744d84bbb24fedd8 Mon Sep 17 00:00:00 2001 From: WP Date: Mon, 3 Feb 2025 11:29:04 +0100 Subject: [PATCH 10/11] Finishing merging upstream simdzone --- src/generic/type.h | 132 +++++++++++++++++++++++--------------------- src/westmere/type.h | 132 +++++++++++++++++++++++--------------------- 2 files changed, 136 insertions(+), 128 deletions(-) diff --git a/src/generic/type.h b/src/generic/type.h index b3fe74c..8e62492 100644 --- a/src/generic/type.h +++ b/src/generic/type.h @@ -19,74 +19,74 @@ static const struct { int32_t code; } types_and_classes[256] = #ifndef USE_DRAFTS - { - V(0), V(0), V(0), V(0), V(0), V(0), V(0), T(20), - T(3), V(0), V(0), V(0), V(0), T(261), V(0), V(0), - T(60), V(0), V(0), T(105), V(0), V(0), V(0), T(258), - V(0), V(0), V(0), V(0), T(30), V(0), T(28), V(0), - V(0), T(16), V(0), V(0), T(56), T(14), T(22), V(0), - V(0), T(13), V(0), T(47), T(21), V(0), T(65), T(27), - V(0), V(0), V(0), V(0), V(0), T(1), T(62), V(0), - V(0), C(1), V(0), T(44), V(0), V(0), T(33), V(0), - V(0), V(0), V(0), V(0), T(63), V(0), T(266), V(0), - C(3), T(99), T(37), V(0), V(0), V(0), C(2), T(43), - V(0), T(50), C(4), T(51), V(0), V(0), V(0), T(2), - T(49), T(42), T(19), T(23), V(0), T(6), V(0), V(0), - V(0), V(0), T(29), V(0), T(7), V(0), V(0), V(0), - V(0), T(57), V(0), V(0), V(0), V(0), V(0), T(36), - T(15), V(0), V(0), T(26), T(11), V(0), V(0), V(0), - V(0), V(0), V(0), V(0), T(104), V(0), T(8), V(0), - V(0), V(0), T(38), V(0), T(9), V(0), T(64), V(0), - V(0), V(0), V(0), V(0), V(0), V(0), T(39), T(52), - T(24), V(0), T(5), T(106), V(0), V(0), V(0), V(0), - T(265), V(0), V(0), V(0), V(0), T(25), V(0), T(18), - T(48), V(0), T(53), V(0), V(0), V(0), T(59), V(0), - V(0), V(0), V(0), V(0), T(4), V(0), T(10), V(0), - V(0), V(0), V(0), V(0), V(0), T(55), V(0), V(0), - V(0), V(0), V(0), V(0), V(0), V(0), T(267), V(0), - V(0), V(0), V(0), V(0), V(0), V(0), V(0), V(0), - V(0), V(0), T(61), T(12), V(0), V(0), V(0), V(0), - V(0), T(108), V(0), V(0), T(257), V(0), V(0), V(0), - T(35), V(0), T(263), V(0), V(0), V(0), V(0), T(107), - V(0), V(0), V(0), V(0), T(17), V(0), T(45), V(0), - V(0), V(0), V(0), V(0), V(0), V(0), T(46), V(0), - V(0), T(109), V(0), V(0), V(0), V(0), V(0), V(0), - V(0), V(0), V(0), V(0), T(262), V(0), T(256), V(0) +{ + V(0), V(0), V(0), V(0), V(0), V(0), T(34), V(0), + V(0), V(0), T(30), V(0), V(0), T(57), V(0), T(16), + V(0), V(0), T(56), T(14), T(12), V(0), V(0), T(13), + T(61), V(0), T(105), V(0), V(0), V(0), T(32), T(258), + V(0), T(107), T(47), V(0), V(0), V(0), T(17), V(0), + T(257), V(0), V(0), V(0), V(0), V(0), V(0), V(0), + T(65), V(0), V(0), T(18), V(0), T(1), V(0), T(263), + V(0), V(0), V(0), V(0), T(51), V(0), V(0), T(106), + T(3), V(0), V(0), T(31), V(0), V(0), V(0), V(0), + V(0), T(50), T(44), T(104), T(10), V(0), V(0), V(0), + V(0), V(0), T(55), V(0), T(28), V(0), V(0), V(0), + V(0), V(0), V(0), V(0), V(0), V(0), V(0), T(39), + T(35), V(0), V(0), T(5), T(29), T(262), V(0), V(0), + T(109), V(0), T(264), V(0), V(0), V(0), V(0), V(0), + V(0), T(21), V(0), V(0), V(0), V(0), V(0), V(0), + T(37), C(1), T(58), V(0), V(0), V(0), V(0), V(0), + V(0), V(0), V(0), C(3), V(0), T(52), T(11), T(20), + V(0), T(261), V(0), V(0), V(0), T(48), V(0), V(0), + V(0), T(25), C(2), T(43), V(0), V(0), C(4), T(60), + V(0), V(0), T(7), T(2), V(0), V(0), T(46), T(22), + V(0), V(0), V(0), V(0), V(0), V(0), V(0), T(64), + V(0), T(260), V(0), V(0), V(0), V(0), T(38), V(0), + V(0), T(259), T(59), V(0), V(0), V(0), T(42), T(36), + T(8), T(15), V(0), T(26), T(27), T(6), V(0), T(99), + V(0), V(0), V(0), V(0), V(0), V(0), V(0), T(53), + T(9), T(63), T(33), V(0), T(271), T(270), V(0), T(40), + V(0), V(0), T(24), T(19), V(0), V(0), V(0), V(0), + V(0), V(0), V(0), T(108), V(0), V(0), V(0), T(62), + V(0), V(0), V(0), V(0), V(0), T(66), T(4), V(0), + V(0), V(0), T(256), V(0), T(49), V(0), V(0), V(0), + V(0), V(0), T(45), V(0), V(0), T(23), V(0), V(0), + V(0), V(0), V(0), V(0), V(0), V(0), V(0), V(0) }; #else { - V(0), V(0), V(0), V(0), V(0), V(0), V(0), T(20), - T(3), V(0), V(0), V(0), V(0), T(261), V(0), T(267), - T(60), V(0), V(0), T(105), V(0), V(0), V(0), T(258), - V(0), V(0), V(0), V(0), T(30), V(0), T(28), V(0), - V(0), T(16), V(0), V(0), T(56), T(14), T(22), V(0), - V(0), T(13), V(0), T(47), T(21), V(0), T(65), T(27), - V(0), V(0), V(0), V(0), V(0), T(1), T(62), V(0), - V(0), C(1), V(0), T(44), V(0), V(0), T(33), V(0), - V(0), V(0), V(0), V(0), T(63), V(0), T(266), V(0), - C(3), T(99), T(37), V(0), V(0), V(0), C(2), T(43), - V(0), T(50), C(4), T(51), V(0), V(0), V(0), T(2), - T(49), T(42), T(19), T(23), V(0), T(6), V(0), V(0), - V(0), V(0), T(29), V(0), T(7), V(0), V(0), V(0), - V(0), T(57), V(0), V(0), V(0), V(0), V(0), T(36), - T(15), V(0), V(0), T(26), T(11), V(0), V(0), V(0), - V(0), V(0), V(0), V(0), T(104), V(0), T(8), V(0), - V(0), V(0), T(38), V(0), T(9), V(0), T(64), V(0), - V(0), V(0), V(0), V(0), V(0), V(0), T(39), T(52), - T(24), V(0), T(5), T(106), V(0), V(0), V(0), V(0), - T(265), V(0), V(0), V(0), V(0), T(25), V(0), T(18), - T(48), V(0), T(53), V(0), V(0), V(0), T(59), V(0), - V(0), V(0), V(0), V(0), T(4), V(0), T(10), V(0), - V(0), V(0), V(0), V(0), V(0), T(55), V(0), V(0), - V(0), V(0), V(0), V(0), V(0), V(0), V(0), V(0), + V(0), V(0), T(58), T(66), V(0), V(0), T(65), V(0), + V(0), T(53), V(0), V(0), V(0), T(108), V(0), V(0), + V(0), T(4), V(0), V(0), V(0), T(49), V(0), V(0), + V(0), V(0), V(0), V(0), V(0), T(31), V(0), V(0), + V(0), V(0), V(0), T(28), T(104), V(0), T(257), V(0), + V(0), V(0), T(27), V(0), V(0), V(0), V(0), T(48), + V(0), V(0), V(0), V(0), V(0), T(1), V(0), T(47), + V(0), V(0), T(34), V(0), T(263), V(0), T(106), V(0), + V(0), V(0), V(0), V(0), V(0), T(35), V(0), T(25), + V(0), V(0), V(0), V(0), V(0), V(0), V(0), T(56), + T(14), T(260), T(107), V(0), T(13), V(0), V(0), T(17), + V(0), V(0), V(0), V(0), V(0), V(0), T(50), V(0), + V(0), T(109), T(52), T(258), V(0), V(0), T(45), V(0), + T(264), V(0), T(3), V(0), V(0), T(19), V(0), V(0), V(0), V(0), V(0), V(0), V(0), V(0), V(0), V(0), - V(0), V(0), T(61), T(12), V(0), V(0), V(0), V(0), - V(0), T(108), V(0), V(0), T(257), V(0), V(0), V(0), - T(35), V(0), T(263), V(0), V(0), V(0), V(0), T(107), - V(0), V(0), V(0), V(0), T(17), V(0), T(45), V(0), - V(0), V(0), V(0), V(0), V(0), V(0), T(46), V(0), - V(0), T(109), V(0), V(0), V(0), V(0), V(0), V(0), - V(0), V(0), V(0), V(0), T(262), V(0), T(256), V(0) + T(61), V(0), V(0), T(42), V(0), V(0), V(0), T(40), + V(0), V(0), T(24), T(60), V(0), V(0), T(55), V(0), + V(0), T(12), V(0), V(0), V(0), V(0), V(0), V(0), + V(0), V(0), T(11), V(0), V(0), T(267), V(0), V(0), + V(0), V(0), T(37), V(0), T(46), T(23), V(0), T(262), + T(64), V(0), T(261), V(0), T(29), T(21), V(0), V(0), + V(0), C(1), V(0), V(0), V(0), T(10), T(57), C(3), + T(271), T(33), V(0), V(0), V(0), V(0), V(0), T(259), + T(18), V(0), T(59), T(30), V(0), V(0), V(0), V(0), + T(16), V(0), V(0), T(7), T(6), C(2), T(43), T(20), + V(0), C(4), V(0), V(0), V(0), V(0), T(2), T(38), + T(22), T(51), V(0), V(0), V(0), V(0), V(0), T(99), + V(0), T(256), V(0), V(0), V(0), T(105), V(0), V(0), + T(44), T(39), V(0), V(0), T(8), V(0), T(5), V(0), + V(0), V(0), V(0), V(0), V(0), T(36), T(32), T(15), + V(0), T(26), V(0), V(0), V(0), T(270), V(0), V(0), + V(0), V(0), T(9), V(0), T(63), V(0), T(62), V(0) }; #endif @@ -148,7 +148,11 @@ static really_inline uint8_t hash(uint64_t prefix) prefix = le64toh(prefix); uint32_t value = (uint32_t)((prefix >> 32) ^ prefix); // magic value is generated using hash.c, rerun when adding types +#ifndef USE_DRAFTS return (uint8_t)((value * 3537259401ull) >> 32); +#else + return (uint8_t)((value * 3547541308ull) >> 32); +#endif } nonnull_all diff --git a/src/westmere/type.h b/src/westmere/type.h index ad0ebf0..34f1ef4 100644 --- a/src/westmere/type.h +++ b/src/westmere/type.h @@ -19,74 +19,74 @@ static const struct { int32_t code; } types_and_classes[256] = #ifndef USE_DRAFTS - { - V(0), V(0), V(0), V(0), V(0), V(0), V(0), T(20), - T(3), V(0), V(0), V(0), V(0), T(261), V(0), V(0), - T(60), V(0), V(0), T(105), V(0), V(0), V(0), T(258), - V(0), V(0), V(0), V(0), T(30), V(0), T(28), V(0), - V(0), T(16), V(0), V(0), T(56), T(14), T(22), V(0), - V(0), T(13), V(0), T(47), T(21), V(0), T(65), T(27), - V(0), V(0), V(0), V(0), V(0), T(1), T(62), V(0), - V(0), C(1), V(0), T(44), V(0), V(0), T(33), V(0), - V(0), V(0), V(0), V(0), T(63), V(0), T(266), V(0), - C(3), T(99), T(37), V(0), V(0), V(0), C(2), T(43), - V(0), T(50), C(4), T(51), V(0), V(0), V(0), T(2), - T(49), T(42), T(19), T(23), V(0), T(6), V(0), V(0), - V(0), V(0), T(29), V(0), T(7), V(0), V(0), V(0), - V(0), T(57), V(0), V(0), V(0), V(0), V(0), T(36), - T(15), V(0), V(0), T(26), T(11), V(0), V(0), V(0), - V(0), V(0), V(0), V(0), T(104), V(0), T(8), V(0), - V(0), V(0), T(38), V(0), T(9), V(0), T(64), V(0), - V(0), V(0), V(0), V(0), V(0), V(0), T(39), T(52), - T(24), V(0), T(5), T(106), V(0), V(0), V(0), V(0), - T(265), V(0), V(0), V(0), V(0), T(25), V(0), T(18), - T(48), V(0), T(53), V(0), V(0), V(0), T(59), V(0), - V(0), V(0), V(0), V(0), T(4), V(0), T(10), V(0), - V(0), V(0), V(0), V(0), V(0), T(55), V(0), V(0), - V(0), V(0), V(0), V(0), V(0), V(0), T(267), V(0), - V(0), V(0), V(0), V(0), V(0), V(0), V(0), V(0), - V(0), V(0), T(61), T(12), V(0), V(0), V(0), V(0), - V(0), T(108), V(0), V(0), T(257), V(0), V(0), V(0), - T(35), V(0), T(263), V(0), V(0), V(0), V(0), T(107), - V(0), V(0), V(0), V(0), T(17), V(0), T(45), V(0), - V(0), V(0), V(0), V(0), V(0), V(0), T(46), V(0), - V(0), T(109), V(0), V(0), V(0), V(0), V(0), V(0), - V(0), V(0), V(0), V(0), T(262), V(0), T(256), V(0) +{ + V(0), V(0), V(0), V(0), V(0), V(0), T(34), V(0), + V(0), V(0), T(30), V(0), V(0), T(57), V(0), T(16), + V(0), V(0), T(56), T(14), T(12), V(0), V(0), T(13), + T(61), V(0), T(105), V(0), V(0), V(0), T(32), T(258), + V(0), T(107), T(47), V(0), V(0), V(0), T(17), V(0), + T(257), V(0), V(0), V(0), V(0), V(0), V(0), V(0), + T(65), V(0), V(0), T(18), V(0), T(1), V(0), T(263), + V(0), V(0), V(0), V(0), T(51), V(0), V(0), T(106), + T(3), V(0), V(0), T(31), V(0), V(0), V(0), V(0), + V(0), T(50), T(44), T(104), T(10), V(0), V(0), V(0), + V(0), V(0), T(55), V(0), T(28), V(0), V(0), V(0), + V(0), V(0), V(0), V(0), V(0), V(0), V(0), T(39), + T(35), V(0), V(0), T(5), T(29), T(262), V(0), V(0), + T(109), V(0), T(264), V(0), V(0), V(0), V(0), V(0), + V(0), T(21), V(0), V(0), V(0), V(0), V(0), V(0), + T(37), C(1), T(58), V(0), V(0), V(0), V(0), V(0), + V(0), V(0), V(0), C(3), V(0), T(52), T(11), T(20), + V(0), T(261), V(0), V(0), V(0), T(48), V(0), V(0), + V(0), T(25), C(2), T(43), V(0), V(0), C(4), T(60), + V(0), V(0), T(7), T(2), V(0), V(0), T(46), T(22), + V(0), V(0), V(0), V(0), V(0), V(0), V(0), T(64), + V(0), T(260), V(0), V(0), V(0), V(0), T(38), V(0), + V(0), T(259), T(59), V(0), V(0), V(0), T(42), T(36), + T(8), T(15), V(0), T(26), T(27), T(6), V(0), T(99), + V(0), V(0), V(0), V(0), V(0), V(0), V(0), T(53), + T(9), T(63), T(33), V(0), T(271), T(270), V(0), T(40), + V(0), V(0), T(24), T(19), V(0), V(0), V(0), V(0), + V(0), V(0), V(0), T(108), V(0), V(0), V(0), T(62), + V(0), V(0), V(0), V(0), V(0), T(66), T(4), V(0), + V(0), V(0), T(256), V(0), T(49), V(0), V(0), V(0), + V(0), V(0), T(45), V(0), V(0), T(23), V(0), V(0), + V(0), V(0), V(0), V(0), V(0), V(0), V(0), V(0) }; #else { - V(0), V(0), V(0), V(0), V(0), V(0), V(0), T(20), - T(3), V(0), V(0), V(0), V(0), T(261), V(0), T(267), - T(60), V(0), V(0), T(105), V(0), V(0), V(0), T(258), - V(0), V(0), V(0), V(0), T(30), V(0), T(28), V(0), - V(0), T(16), V(0), V(0), T(56), T(14), T(22), V(0), - V(0), T(13), V(0), T(47), T(21), V(0), T(65), T(27), - V(0), V(0), V(0), V(0), V(0), T(1), T(62), V(0), - V(0), C(1), V(0), T(44), V(0), V(0), T(33), V(0), - V(0), V(0), V(0), V(0), T(63), V(0), T(266), V(0), - C(3), T(99), T(37), V(0), V(0), V(0), C(2), T(43), - V(0), T(50), C(4), T(51), V(0), V(0), V(0), T(2), - T(49), T(42), T(19), T(23), V(0), T(6), V(0), V(0), - V(0), V(0), T(29), V(0), T(7), V(0), V(0), V(0), - V(0), T(57), V(0), V(0), V(0), V(0), V(0), T(36), - T(15), V(0), V(0), T(26), T(11), V(0), V(0), V(0), - V(0), V(0), V(0), V(0), T(104), V(0), T(8), V(0), - V(0), V(0), T(38), V(0), T(9), V(0), T(64), V(0), - V(0), V(0), V(0), V(0), V(0), V(0), T(39), T(52), - T(24), V(0), T(5), T(106), V(0), V(0), V(0), V(0), - T(265), V(0), V(0), V(0), V(0), T(25), V(0), T(18), - T(48), V(0), T(53), V(0), V(0), V(0), T(59), V(0), - V(0), V(0), V(0), V(0), T(4), V(0), T(10), V(0), - V(0), V(0), V(0), V(0), V(0), T(55), V(0), V(0), - V(0), V(0), V(0), V(0), V(0), V(0), V(0), V(0), + V(0), V(0), T(58), T(66), V(0), V(0), T(65), V(0), + V(0), T(53), V(0), V(0), V(0), T(108), V(0), V(0), + V(0), T(4), V(0), V(0), V(0), T(49), V(0), V(0), + V(0), V(0), V(0), V(0), V(0), T(31), V(0), V(0), + V(0), V(0), V(0), T(28), T(104), V(0), T(257), V(0), + V(0), V(0), T(27), V(0), V(0), V(0), V(0), T(48), + V(0), V(0), V(0), V(0), V(0), T(1), V(0), T(47), + V(0), V(0), T(34), V(0), T(263), V(0), T(106), V(0), + V(0), V(0), V(0), V(0), V(0), T(35), V(0), T(25), + V(0), V(0), V(0), V(0), V(0), V(0), V(0), T(56), + T(14), T(260), T(107), V(0), T(13), V(0), V(0), T(17), + V(0), V(0), V(0), V(0), V(0), V(0), T(50), V(0), + V(0), T(109), T(52), T(258), V(0), V(0), T(45), V(0), + T(264), V(0), T(3), V(0), V(0), T(19), V(0), V(0), V(0), V(0), V(0), V(0), V(0), V(0), V(0), V(0), - V(0), V(0), T(61), T(12), V(0), V(0), V(0), V(0), - V(0), T(108), V(0), V(0), T(257), V(0), V(0), V(0), - T(35), V(0), T(263), V(0), V(0), V(0), V(0), T(107), - V(0), V(0), V(0), V(0), T(17), V(0), T(45), V(0), - V(0), V(0), V(0), V(0), V(0), V(0), T(46), V(0), - V(0), T(109), V(0), V(0), V(0), V(0), V(0), V(0), - V(0), V(0), V(0), V(0), T(262), V(0), T(256), V(0) + T(61), V(0), V(0), T(42), V(0), V(0), V(0), T(40), + V(0), V(0), T(24), T(60), V(0), V(0), T(55), V(0), + V(0), T(12), V(0), V(0), V(0), V(0), V(0), V(0), + V(0), V(0), T(11), V(0), V(0), T(267), V(0), V(0), + V(0), V(0), T(37), V(0), T(46), T(23), V(0), T(262), + T(64), V(0), T(261), V(0), T(29), T(21), V(0), V(0), + V(0), C(1), V(0), V(0), V(0), T(10), T(57), C(3), + T(271), T(33), V(0), V(0), V(0), V(0), V(0), T(259), + T(18), V(0), T(59), T(30), V(0), V(0), V(0), V(0), + T(16), V(0), V(0), T(7), T(6), C(2), T(43), T(20), + V(0), C(4), V(0), V(0), V(0), V(0), T(2), T(38), + T(22), T(51), V(0), V(0), V(0), V(0), V(0), T(99), + V(0), T(256), V(0), V(0), V(0), T(105), V(0), V(0), + T(44), T(39), V(0), V(0), T(8), V(0), T(5), V(0), + V(0), V(0), V(0), V(0), V(0), T(36), T(32), T(15), + V(0), T(26), V(0), V(0), V(0), T(270), V(0), V(0), + V(0), V(0), T(9), V(0), T(63), V(0), T(62), V(0) }; #endif @@ -140,7 +140,11 @@ static really_inline uint8_t hash(uint64_t prefix) { uint32_t value = (uint32_t)((prefix >> 32) ^ prefix); // magic value is generated using hash.c, rerun when adding types +#ifndef USE_DRAFTS return (uint8_t)((value * 3537259401ull) >> 32); +#else + return (uint8_t)((value * 3547541308ull) >> 32); +#endif } nonnull_all From d720518a774bc14e5b05d074e1ebb534e94553e0 Mon Sep 17 00:00:00 2001 From: WP Date: Mon, 3 Feb 2025 11:41:14 +0100 Subject: [PATCH 11/11] Finishing updating IDELEG number in hashes --- scripts/hash.c | 2 +- src/generic/type.h | 2 +- src/generic/types.h | 2 +- src/westmere/type.h | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/hash.c b/scripts/hash.c index 0e5b9fa..d38059e 100644 --- a/scripts/hash.c +++ b/scripts/hash.c @@ -141,7 +141,7 @@ static void print_table(uint64_t magic) break; case 32769: code = 271; // index of DLV in types array in generic/types.h break; - case 65280: code = 267; // index of IDELEG in types array in generic/types.h + case 65280: code = 272; // index of IDELEG in types array in generic/types.h break; default : code = keys[i].code; break; diff --git a/src/generic/type.h b/src/generic/type.h index 8e62492..37dc4b6 100644 --- a/src/generic/type.h +++ b/src/generic/type.h @@ -73,7 +73,7 @@ static const struct { T(61), V(0), V(0), T(42), V(0), V(0), V(0), T(40), V(0), V(0), T(24), T(60), V(0), V(0), T(55), V(0), V(0), T(12), V(0), V(0), V(0), V(0), V(0), V(0), - V(0), V(0), T(11), V(0), V(0), T(267), V(0), V(0), + V(0), V(0), T(11), V(0), V(0), T(272), V(0), V(0), V(0), V(0), T(37), V(0), T(46), T(23), V(0), T(262), T(64), V(0), T(261), V(0), T(29), T(21), V(0), V(0), V(0), C(1), V(0), V(0), V(0), T(10), T(57), C(3), diff --git a/src/generic/types.h b/src/generic/types.h index 8f4677d..394f370 100644 --- a/src/generic/types.h +++ b/src/generic/types.h @@ -3797,7 +3797,7 @@ static const type_info_t types[] = { check_ds_rr, parse_ds_rdata) #ifdef USE_DRAFTS , - /* Map 32770 in hash.c to 267 */ + /* Map 65280 in hash.c to 272 */ TYPE("IDELEG", ZONE_TYPE_DELEG, ZONE_CLASS_IN, FIELDS(deleg_rdata_fields), check_deleg_rr, parse_deleg_rdata) #endif diff --git a/src/westmere/type.h b/src/westmere/type.h index 34f1ef4..f531913 100644 --- a/src/westmere/type.h +++ b/src/westmere/type.h @@ -73,7 +73,7 @@ static const struct { T(61), V(0), V(0), T(42), V(0), V(0), V(0), T(40), V(0), V(0), T(24), T(60), V(0), V(0), T(55), V(0), V(0), T(12), V(0), V(0), V(0), V(0), V(0), V(0), - V(0), V(0), T(11), V(0), V(0), T(267), V(0), V(0), + V(0), V(0), T(11), V(0), V(0), T(272), V(0), V(0), V(0), V(0), T(37), V(0), T(46), T(23), V(0), T(262), T(64), V(0), T(261), V(0), T(29), T(21), V(0), V(0), V(0), C(1), V(0), V(0), V(0), T(10), T(57), C(3),