Re: [Gen-art] Gen-ART Last Call review of draft-ietf-ntp-checksum-trailer-04

Tal Mizrahi <talmi@marvell.com> Thu, 25 February 2016 06:37 UTC

Return-Path: <talmi@marvell.com>
X-Original-To: gen-art@ietfa.amsl.com
Delivered-To: gen-art@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 194721B342B; Wed, 24 Feb 2016 22:37:16 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.267
X-Spam-Level:
X-Spam-Status: No, score=-2.267 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, IP_NOT_FRIENDLY=0.334, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham
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 rJPrKg1Brpoh; Wed, 24 Feb 2016 22:37:13 -0800 (PST)
Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) (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 71E7C1B3459; Wed, 24 Feb 2016 22:37:13 -0800 (PST)
Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.15.0.59/8.15.0.59) with SMTP id u1P6aoGL028099; Wed, 24 Feb 2016 22:37:05 -0800
Received: from il-exch01.marvell.com ([199.203.130.101]) by mx0b-0016f401.pphosted.com with ESMTP id 219vg4r01v-1 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Wed, 24 Feb 2016 22:37:05 -0800
Received: from IL-EXCH01.marvell.com (10.4.102.220) by IL-EXCH01.marvell.com (10.4.102.220) with Microsoft SMTP Server (TLS) id 15.0.1104.5; Thu, 25 Feb 2016 08:37:02 +0200
Received: from IL-EXCH01.marvell.com ([fe80::5d63:81cd:31e2:fc36]) by IL-EXCH01.marvell.com ([fe80::5d63:81cd:31e2:fc36%20]) with mapi id 15.00.1104.000; Thu, 25 Feb 2016 08:37:02 +0200
From: Tal Mizrahi <talmi@marvell.com>
To: Paul Kyzivat <pkyzivat@alum.mit.edu>, "draft-ietf-ntp-checksum-trailer.all@ietf.org" <draft-ietf-ntp-checksum-trailer.all@ietf.org>
Thread-Topic: [Gen-art] Gen-ART Last Call review of draft-ietf-ntp-checksum-trailer-04
Thread-Index: AQHRbnqDEPnq5jDQbEiEfYS4Ttp+gp88THlw
Date: Thu, 25 Feb 2016 06:37:01 +0000
Message-ID: <1fd008bb55c84958aa1b038fe42bf793@IL-EXCH01.marvell.com>
References: <56818AED.8090909@alum.mit.edu> <56CCC3D8.7010600@alum.mit.edu>
In-Reply-To: <56CCC3D8.7010600@alum.mit.edu>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [199.203.130.14]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2016-02-25_02:, , signatures=0
X-Proofpoint-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=0 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1601100000 definitions=main-1602250111
Archived-At: <http://mailarchive.ietf.org/arch/msg/gen-art/ogQMq_52F8CNCIxRZVEPDHuq5e4>
Cc: General Area Review Team <gen-art@ietf.org>, "Brian Haberman (brian@innovationslab.net)" <brian@innovationslab.net>, "Karen ODonoghue (odonoghue@isoc.org)" <odonoghue@isoc.org>
Subject: Re: [Gen-art] Gen-ART Last Call review of draft-ietf-ntp-checksum-trailer-04
X-BeenThere: gen-art@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "GEN-ART: General Area Review Team" <gen-art.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/gen-art>, <mailto:gen-art-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/gen-art/>
List-Post: <mailto:gen-art@ietf.org>
List-Help: <mailto:gen-art-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/gen-art>, <mailto:gen-art-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 25 Feb 2016 06:37:16 -0000

Hi Paul,

Many thanks for the thorough review.

Please find my responses to the major comments below. The next version of the draft will address these comments, as well as the ones you specified as 'minor'.


>(1) Major:
>
>Section 3.3 references [NTP-Ext] (draft-ietf-ntp-extension-field) as
>justification for why existing implementations won't have any trouble with this
>extension. But some (most?) existing implementations won't comply with
>[NTP-Ext], but rather only with RFC5905. This section doesn't explain how
>*those* implementations will behave. ISTM there is some possibility that they
>won't behave well.

I agree that Section 3.3. should be clarified. An existing implementation (whether it complies to [NTP-Ext] or not) that receives a Checksum Complement has two options: (i) ignore it, or (ii) drop the packet. While (i) is interoperable with the current draft, (ii) is not. I suggest the following text for Section 3.3:

"The behavior defined in this document does not impose new requirements on the reception of NTP packets beyond the requirements defined in [NTP-Ext]. Note that, as defined in [NTP-Ext], a host that receives an NTP message with an unknown extension field SHOULD ignore the extension field and MAY drop the packet if policy requires it. Thus, transmitters and intermediate nodes that support the Checksum Complement can transparently interoperate with receivers that are not Checksum-Complement-compliant, as long as these receivers ignore the Checksum Complement extension field. It is noted that existing implementations that discard packets with unknown extension fields cannot interoperate with transmitters that use the Checksum Complement."



>(2) Major:
>
>Section 3.2 says:
>
>      This length guarantees that the host that receives the packet
>      parses it correctly, whether the packet includes a MAC or not.
>      [NTP-Ext] provides further details about the length of an
>      extension field in the absence of a MAC.
>
>I am not reviewing [NTP-Ext], but I consulted it in an attempt to understand. I
>found this logic, and the references, to be confusing and seemingly
>contradictory:
>
>In [NTP-Ext] I find:
>
>    ... However, a MAC is
>    not mandatory after an extension field; an NTPv4 packet can include
>    one or more extension fields without including a MAC (Section 7.5 of
>    [RFC5905]).
>
>While section 7.5 of [RFC5905] contradicts that:
>
>    In NTPv4, one or more extension fields can be inserted after the
>    header and before the MAC, which is always present when an extension
>    field is present.
>

Please note that this paragraph in RFC5905 was corrected by erratum 3627 (https://www.rfc-editor.org/errata_search.php?rfc=5905), and the corrected text is:

In NTPv4, one or more extension fields can be inserted after the 
header and before the MAC, if a MAC is present. If a MAC is not 
present, one or more extension fields can be inserted after the 
header, according to the following rules:
o If the packet includes a single extension field, the length of the 
  extension  field MUST be at least 7 words, i.e., at least 28 octets.
o If the packet includes more than one extension field, the length of 
  the last extension field MUST be at least 28 octets. The length of 
  the other extension fields in this case MUST be at least 16 octets 
  each.


>The text that allows extension fields without a MAC is an update to
>RFC5905 in section 3 of [NTP-Ext]. But that isn't very clear about how one is
>expected to decipher this. I *think* the intended logic is:
>
>    If the packet length is more that 24 bytes in excess of the size
>    of a packet with no extensions or MAC, then it must contain at
>    least one extension. In that case, process extensions until the
>    remaining size of the packet is less or equal to 24. Then, if bytes
>    remain process them as a MAC.
>
>IMO this draft should not progress until this is specified *somewhere*,
>probably in [NTP-Ext].
>
>[IMO this technique is a horrible hack. I hope there was no better backward
>compatible alternative. But this comment isn't a formal part of this review.]


I agree that this logic is far from intuitive, and is defined for the sake of backward compatibility.
The text in [NTP-Ext] is:

   If a MAC is not present, one or more extension fields can be inserted
   after the header, according to the following rules:

   o  If the packet includes a single extension field, the length of the
      extension field MUST be at least 7 words, i.e., at least 28
      octets.

   o  If the packet includes more than one extension field, the length
      of the last extension field MUST be at least 28 octets. The length
      of the other extension fields in this case MUST be at least 16
      octets each.


I believe the current text in [NTP-Ext] is correct, and consistent with erratum 3627.
Please let us know if you think this is not the case.


Best regards,
Tal.
 



>-----Original Message-----
>From: Paul Kyzivat [mailto:pkyzivat@alum.mit.edu]
>Sent: Tuesday, February 23, 2016 10:41 PM
>To: draft-ietf-ntp-checksum-trailer.all@ietf.org
>Cc: General Area Review Team
>Subject: [Gen-art] Gen-ART Last Call review of draft-ietf-ntp-checksum-trailer-
>04
>
>I am the assigned Gen-ART reviewer for this draft. The General Area Review
>Team (Gen-ART) reviews all IETF documents being processed by the IESG for
>the IETF Chair. Please treat these comments just like any other last call
>comments. For more information, please see the FAQ at
><http://wiki.tools.ietf.org/area/gen/trac/wiki/GenArtfaq>.
>
>Document: draft-ietf-ntp-checksum-trailer-04
>Reviewer: Paul Kyzivat
>Review Date: 2016-02-23
>IETF LC End Date: 2016-03-01
>IESG Telechat date: 2016-03-03
>
>Summary:
>
>This draft is on the right track but has open issues, described in the review.
>
>Major: 2
>Minor: 3
>Nits:  1
>
>(1) Major:
>
>Section 3.3 references [NTP-Ext] (draft-ietf-ntp-extension-field) as
>justification for why existing implementations won't have any trouble with this
>extension. But some (most?) existing implementations won't comply with
>[NTP-Ext], but rather only with RFC5905. This section doesn't explain how
>*those* implementations will behave. ISTM there is some possibility that they
>won't behave well.
>
>(2) Major:
>
>Section 3.2 says:
>
>      This length guarantees that the host that receives the packet
>      parses it correctly, whether the packet includes a MAC or not.
>      [NTP-Ext] provides further details about the length of an
>      extension field in the absence of a MAC.
>
>I am not reviewing [NTP-Ext], but I consulted it in an attempt to understand. I
>found this logic, and the references, to be confusing and seemingly
>contradictory:
>
>In [NTP-Ext] I find:
>
>    ... However, a MAC is
>    not mandatory after an extension field; an NTPv4 packet can include
>    one or more extension fields without including a MAC (Section 7.5 of
>    [RFC5905]).
>
>While section 7.5 of [RFC5905] contradicts that:
>
>    In NTPv4, one or more extension fields can be inserted after the
>    header and before the MAC, which is always present when an extension
>    field is present.
>
>The text that allows extension fields without a MAC is an update to
>RFC5905 in section 3 of [NTP-Ext]. But that isn't very clear about how one is
>expected to decipher this. I *think* the intended logic is:
>
>    If the packet length is more that 24 bytes in excess of the size
>    of a packet with no extensions or MAC, then it must contain at
>    least one extension. In that case, process extensions until the
>    remaining size of the packet is less or equal to 24. Then, if bytes
>    remain process them as a MAC.
>
>IMO this draft should not progress until this is specified *somewhere*,
>probably in [NTP-Ext].
>
>[IMO this technique is a horrible hack. I hope there was no better backward
>compatible alternative. But this comment isn't a formal part of this review.]
>
>(3) Minor:
>
>Section 3.2 says:
>
>The extension field includes 22 octets of padding. This field SHOULD be set to
>0, and SHOULD be ignored by the recipient.
>
>In my experience SHOULD is dangerous when not explained. I would
>recommend either changing it to MUST or providing an explanation of
>conditions that would justify violating the SHOULD.
>
>(4) Minor:
>
>While section 3.2 carefully defines the format of the Checksum Complement
>option, it never specifies how the content of that field is generated or used.
>An example of that calculation is shown in appendix A, but that isn't
>normative. A normative specification of the content of the field is needed.
>IIUC it is to simply be ignored by the recipient.
>It would be good to say that too.
>
>(4) Minor:
>
>This document has a normative reference to RFC5905 and an informative
>reference to [NTP-Ext]. But [NTP-Ext] has normative updates to RFC5905 and
>this document has dependencies on those changes, so it needs a normative
>reference to that document.
>
>(6) Nit/Question:
>
>In section 3.1, IIUC the timestamp engine will need to know that the
>Checksum Complement field is present before it updates the packet. Is it
>assumed that engine will assume that to be so, and will not be invoked unless
>it is? It might be helpful to say something about this. If not, I don't see how it
>can work.