Re: [DNSOP] Eric Rescorla's No Objection on draft-ietf-dnsop-dns-capture-format-08: (with COMMENT)

Sara Dickinson <sara@sinodun.com> Wed, 21 November 2018 17:25 UTC

Return-Path: <sara@sinodun.com>
X-Original-To: dnsop@ietfa.amsl.com
Delivered-To: dnsop@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CA055130E37; Wed, 21 Nov 2018 09:25:56 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.4
X-Spam-Level:
X-Spam-Status: No, score=-2.4 tagged_above=-999 required=5 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=sinodun.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id GBS8Mv-gLBaw; Wed, 21 Nov 2018 09:25:54 -0800 (PST)
Received: from haggis.mythic-beasts.com (haggis.mythic-beasts.com [IPv6:2a00:1098:0:86:1000:0:2:1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2ACFB130DC3; Wed, 21 Nov 2018 09:25:54 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sinodun.com ; s=haggis-2018; h=To:Date:Subject:From; bh=g6zlgbz2qOrYX1SfNDSw04+iaKu3DbNiuUl+4nXjKTQ=; b=Oz2zDKBwDE2i0s3MF9MPPN2pZm aR8q7wpAaGgE10+7yxChME7R4TjGCBseas7LXce/PqdFU1feY7b+VHvUlg6l2V8z3ScFWSoGjeVBi s6xgM4RPoAO5qqmkNoXapT+A70kIHc4C/Tu2z2hEIRD2hMUaspCKHLGI7gxLr3/TRYaEDFSBB6Lkn Lj4+jfUXWhtFAKnqPs3ZrShm4MCAl/xVm4svBTjZs7w8sefAEX1q8ASiMExza1PjrlYomKDIG37Al a17KgvAi8Vs8ybhAF2x3xpUA4W4kwmKKdAAC3dFfX4y7+j3VcMoIBvyLzZeNICEdxjdBcHE5d/tet zFukv1ZA==;
Received: from [2001:b98:204:102:fffa::409] (port=55482) by haggis.mythic-beasts.com with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <sara@sinodun.com>) id 1gPWG7-0007A9-Pj; Wed, 21 Nov 2018 17:25:52 +0000
From: Sara Dickinson <sara@sinodun.com>
Message-Id: <C1F35F94-0AF9-4455-91ED-1BFF2F4BDC39@sinodun.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_840F66CF-C5E7-4C21-BE32-7607F6A00A75"
Mime-Version: 1.0 (Mac OS X Mail 12.0 \(3445.100.39\))
Date: Wed, 21 Nov 2018 17:25:50 +0000
In-Reply-To: <154276604012.29783.13143298760072667462.idtracker@ietfa.amsl.com>
Cc: The IESG <iesg@ietf.org>, Tim Wicinski <tjw.ietf@gmail.com>, dnsop@ietf.org, dnsop-chairs@ietf.org, draft-ietf-dnsop-dns-capture-format@ietf.org
To: Eric Rescorla <ekr@rtfm.com>
References: <154276604012.29783.13143298760072667462.idtracker@ietfa.amsl.com>
X-Mailer: Apple Mail (2.3445.100.39)
X-BlackCat-Spam-Score: 4
Archived-At: <https://mailarchive.ietf.org/arch/msg/dnsop/htsmt0_DMStueOPZ3_VHy5E1CNY>
Subject: Re: [DNSOP] Eric Rescorla's No Objection on draft-ietf-dnsop-dns-capture-format-08: (with COMMENT)
X-BeenThere: dnsop@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: IETF DNSOP WG mailing list <dnsop.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dnsop>, <mailto:dnsop-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dnsop/>
List-Post: <mailto:dnsop@ietf.org>
List-Help: <mailto:dnsop-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dnsop>, <mailto:dnsop-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 21 Nov 2018 17:25:57 -0000


> Begin forwarded message:
> 
> From: Eric Rescorla <ekr@rtfm.com>
> Subject: Eric Rescorla's No Objection on draft-ietf-dnsop-dns-capture-format-08: (with COMMENT)
> Date: 21 November 2018 at 02:07:20 GMT
> To: "The IESG" <iesg@ietf.org>
> Cc: Tim Wicinski <tjw.ietf@gmail.com>, tjw.ietf@gmail.com, dnsop@ietf.org, dnsop-chairs@ietf.org, draft-ietf-dnsop-dns-capture-format@ietf.org
> Resent-From: <alias-bounces@ietf.org>
> Resent-To: jad@sinodun.com, jim@sinodun.com, sara@sinodun.com, terry.manderson@icann.org, john.bond@icann.org
> 
> Eric Rescorla has entered the following ballot position for
> draft-ietf-dnsop-dns-capture-format-08: No Objection

Hi, 

Many thanks for the review


> ----------------------------------------------------------------------
> COMMENT:
> ----------------------------------------------------------------------
> 
> Rich version of this review at:
> https://mozphab-ietf.devsvcdev.mozaws.net/D4670
> 
> 
> I support Ben's DISCUSS.

Ack - hopefully our response to him addresses your concerns.

> 
> Am I understanding the design correctly in that you can't have
> literals in the individual per-query values, but instead references to
> the block tables, so you can't stream inside a block?

Yes, that is correct - do you think we need to add text to clarify this?

> 
> IMPORTANT
> S 7.5.1.
>>     | earliest-time    | O | A | A timestamp (2 unsigned integers,      |
>>     |                  |   |   | "Timestamp") for the earliest record   |
>>     |                  |   |   | in the "Block" item. The first integer |
>>     |                  |   |   | is the number of seconds since the     |
>>     |                  |   |   | Posix epoch ("time_t"). The second     |
>>     |                  |   |   | integer is the number of ticks since   |
> 
> I don't know what a "tick" is, so you need some definitionf or this.

From 7.4.1.1:

ticks-per-second | M | U | Sub-second timing is recorded in       |
   |                  |   |   | ticks. This specifies the number of    |
   |                  |   |   | ticks in a second. 

This was the solution to a request to allow flexibility in how granular the sub-second timing increments are. 

> 
> COMMENTS
> S 7.2.
>> 
>>     o  The column O marks whether items in a map are optional.
>> 
>>        *  O - Optional.  The item may be omitted.
>> 
>>        *  M - Mandatory.  The item must be present.
> 
> FWIW, I think you might be happier with a mandatory "X" and optional
> nothing, but that's up to you.

Yeah - this might make more sense. 

> 
> 
> S 7.4.1.1.1.
>> 
>>     +------------------+---+---+----------------------------------------+
>>     | Field            | O | T | Description                            |
>>     +------------------+---+---+----------------------------------------+
>>     | query-response   | M | U | Hints indicating which "QueryResponse" |
>>     | -hints           |   |   | fields are omitted, see section        |
> 
> Nit: generally, you would say "indicating which fields are included"
> if 1 means included.

The issue is that if the bit is set the field might still be missing because although the configuration was set to collect it the data wasn’t available to the encoder from some other reason. However when the bit is not set it means that the data will definitely not be present because the collector is configured not to collect it. 

We do discuss this problem in section 6.2.1 - perhaps a reference in the table back to that discussion is what is needed?

> 
> 
> S 7.5.3.
>>     +---------------------+---+---+-------------------------------------+
>> 
>>  7.5.3.  "BlockTables"
>> 
>>     Arrays containing data referenced by individual "QueryResponse" or
>>     "MalformedMessage" items in this "Block".  Each element is an array
> 
> This is not a sentence.

Suggest: “Map of arrays containing data... "

> 
> 
> S 7.5.3.
>>     | qrr               | O | A | Array of type "Question". Each entry  |
>>     |                   |   |   | is the contents of a single question, |
>>     |                   |   |   | where a question is the second or     |
>>     |                   |   |   | subsequent question in a query. See   |
>>     |                   |   |   | Section 7.5.3.3.                      |
>>     |                   |   |   |                                       |
> 
> So if I understand this correctly:
> 
> QRR is a map of integers to question
> QLIST is a map of integers to question lists, with each question list
> consisting of a set of indexes int o QRR?

Yes, exactly.

> 
> 
> 
> S 7.5.3.2.
>> 
>>     +--------------------+---+---+--------------------------------------+
>>     | Field              | O | T | Description                          |
>>     +--------------------+---+---+--------------------------------------+
>>     | server-address     | O | U | The index in the item in the "ip-    |
>>     | -index             |   |   | address" array of the server IP      |
> 
> So am I understanding correctly that you can't put the server address
> literally in here. It has to be in the block tables?

Correct.

> 
> 
> S 7.5.3.2.
>>     +--------------------+---+---+--------------------------------------+
>>     | server-address     | O | U | The index in the item in the "ip-    |
>>     | -index             |   |   | address" array of the server IP      |
>>     |                    |   |   | address. See Section 7.5.3.          |
>>     |                    |   |   |                                      |
>>     | server-port        | O | U | The server port.                     |
> 
> Isn't the server port generally constant? It seems like you might save
> some bits by having this attached to the server and then indixed
> abvoe.

Yes it is (or likely to be one of 3 values), and I think you are right there is a small saving in what you are suggesting but we chose consistency of representation (with client address) over that slight added saving...

> 
> 
> 
> S 7.5.3.2.
>>     |                    |   |   | used to service the query.           |
>>     |                    |   |   | Bit 0. IP version. 0 if IPv4, 1 if   |
>>     |                    |   |   | IPv6                                 |
>>     |                    |   |   | Bit 1-4. Transport. 4 bit unsigned   |
>>     |                    |   |   | value where 0 = UDP, 1 = TCP, 2 =    |
>>     |                    |   |   | TLS, 3 = DTLS. Values 4-15 are       |
> 
> You might want to specify DoH
> 
> 
> S 7.5.3.5.
>>     |                    |   |   | Bit 0. IP version. 0 if IPv4, 1 if   |
>>     |                    |   |   | IPv6                                 |
>>     |                    |   |   | Bit 1-4. Transport. 4 bit unsigned   |
>>     |                    |   |   | value where 0 = UDP, 1 = TCP, 2 =    |
>>     |                    |   |   | TLS, 3 = DTLS. Values 4-15 are       |
>>     |                    |   |   | reserved for future use.             |
> 
> Again, probably want to specify DoH.

Yes - we’ll add it. 

> 
> 
> S 17.3.
>>     [18] https://github.com/dns-stats/draft-dns-capture-
>>          format/blob/master/file-size-versus-block-size.svg
>> 
>>  Appendix A.  CDDL
>> 
>>     This appendix gives a CDDL [I-D.ietf-cbor-cddl] specification for
> 
> Is this a normative appendix?

As picked up in other reviews, we will make the CDDL document a normative reference. 

Best regards

Sara.