Re: [DNSOP] [Ext] Reserved field in draft-wessels-dns-zone-digest-04.txt

Wes Hardaker <> Sat, 03 November 2018 06:33 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 88E1A12D4EA for <>; Fri, 2 Nov 2018 23:33:51 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id bZ6cUU2MjhCz for <>; Fri, 2 Nov 2018 23:33:50 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 22961129385 for <>; Fri, 2 Nov 2018 23:33:50 -0700 (PDT)
Received: from localhost ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPSA id CD8C724CDF; Fri, 2 Nov 2018 23:33:46 -0700 (PDT)
From: Wes Hardaker <>
To: Paul Hoffman <>
Cc: "Wessels, Duane" <>, "" <>
References: <> <> <> <>
Date: Fri, 02 Nov 2018 23:33:34 -0700
In-Reply-To: <> (Paul Hoffman's message of "Wed, 24 Oct 2018 17:32:14 +0000")
Message-ID: <>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.3 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
Archived-At: <>
Subject: Re: [DNSOP] [Ext] Reserved field in draft-wessels-dns-zone-digest-04.txt
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: IETF DNSOP WG mailing list <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Sat, 03 Nov 2018 06:33:51 -0000

Paul Hoffman <> writes:

> From the earlier list discussion and your presentation at DNS-OARC,
> processing dynamic zones is hard, and you might make different choices
> based on different amounts of dynamicness (dynamicity?). This should
> cause developers concern about implementing ZONEMD now because there
> will be an expectation that they will have to implement the changes in
> the future.

I also look at it in terms of implementation complexity and where in the
code base decisions are made.  EG, if you have different RRTYPEs for
signaling things, then the logic is straight forward:

    if (rrtype == ZONEMD) {
    } else if (rrtype == ZONEMDMERKLE) {
    } ...

On the other hand, with a reserved field we end up here:

    if (rrtype == ZONEMD) {
    } ...

    do_ZONEMD_stuff() {
        if (reserved_field != 0) {
        } else {

Now, if do_ZONEMD_stuff() and do_fancy_new_hashtree_stuff() are likely
to be sufficiently different in implementation (and I suspect they will
be), then the first code above with two RRTYPEs is likely to be
cleaner.  The only advantage gained in the second type is if you can put
the brunt of the code for both do_fancy_new_hashtree_stuff() and
do_ZONEMD_stuff() pretty much inline because there is sufficient

It's hard to predict what the best route is advance without knowing now
how much the resulting double implementation will overlap.

Personally (authorship hat off and thus collector of consensus hat off),
I think we should use a second RRTYPE for the future as it's easier to
make implementations more module and remove earlier implementations when
that specification is no longer used because hashtrees are so cool that
nothing else is ever needed.

Wes Hardaker