Re: [Last-Call] [netconf] Last Call: <draft-ietf-netconf-https-notif-13.txt> (An HTTPS-based Transport for YANG Notifications) to Proposed Standard

Mark Nottingham <mnot@mnot.net> Tue, 29 November 2022 02:38 UTC

Return-Path: <mnot@mnot.net>
X-Original-To: last-call@ietfa.amsl.com
Delivered-To: last-call@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 97461C14CF1A; Mon, 28 Nov 2022 18:38:12 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.098
X-Spam-Level:
X-Spam-Status: No, score=-7.098 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H2=-0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=mnot.net header.b=CJCht8YQ; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=a3GKD1/s
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id kg_V-kd47n4Q; Mon, 28 Nov 2022 18:38:07 -0800 (PST)
Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4CE10C14CF15; Mon, 28 Nov 2022 18:38:06 -0800 (PST)
Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailout.nyi.internal (Postfix) with ESMTP id 44C885C016A; Mon, 28 Nov 2022 21:38:06 -0500 (EST)
Received: from mailfrontend2 ([10.202.2.163]) by compute2.internal (MEProxy); Mon, 28 Nov 2022 21:38:06 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mnot.net; h=cc :cc:content-transfer-encoding:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to; s=fm2; t=1669689486; x= 1669775886; bh=7v/3QMNdTiQQYCnm+BZi7ngFUGPG8zEoDiCwjaLGjZw=; b=C JCht8YQeyND1PWpynSLQuKNEYlus6JnEDHrWXPnPqtARZwyAkckPhH5TehzzezuZ H0+pd+cw80PUcIe2rfcrAG+14B5JOPui4DfFiVjmGhCUHfbkxTwTkMG3UwOcD0u2 U5jAqxubhvBNVdQ4jXrRe2ahOiRuCHF4Ol9mh8iI5oaUs+LVbqV4sFHdrt2ln6RF Ix2phPH7fRK6zoLwgM8OAUEHzUEjGwx+3fDTp2x4JEiPPIQBBQuSjMiukFPtzEaH ibdcA2d5aRWRtHl8s8KeqFFyHp4jSOXVAoEdMIbAX9PkyfMtZ7YD6yXwpudFS8SR fiokE8D1cPp9WBgJg4i1w==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1669689486; x= 1669775886; bh=7v/3QMNdTiQQYCnm+BZi7ngFUGPG8zEoDiCwjaLGjZw=; b=a 3GKD1/sK3ByF91SEbDnu65KFrPh/TgNnx3mX30zbYbjCMb+gMqHjLCvvRtR+cCbA nw+Tzw80Nm2XHKgJI9+9Zdxo8BqKY/84uS1Nvv3T20wKRg6f3tkf2uNtwMsfXRjO r/ycAcPn2YoGdJ53yCGA15iNrc/EtQWufWUQEE1Qx12otICWMwn9fTabLQfgQU1x vklB3F3F+7d7JpM5wcbi+OSQcr4tRAAtAZh+bNYkYj/cRO36SUM9sgajuH4eJKl0 hsPgqi4cAcyVYXXGd+j/FG3SH7+RqmNJ93sh9y5CotytHqz3C85BlwQD1PHSQ5GE qpS/ICed7kuHoHNljN/oA==
X-ME-Sender: <xms:jXCFY3Ce9cR9xcf273S5QY5GW-YG2tnt8fvzkBymRwS877tcxNm-_g> <xme:jXCFY9gxIwC5k5U7oL7WxVNbQ5MKg7CS96ntKkaWI3e0I3umZ0fQeEKr4c-UQ_U18 Z4odKN2JhevLQEA9A>
X-ME-Received: <xmr:jXCFYymhROhfCcR6rsBkZCa2uOsKWofUXX7KXOB5a9edlCNhO6EOQAowqWT_pC00lJpnks0JD2NUN73D4LHGOUyfNPhWdEb8U1Sfd_uWjxjwHiRy7-CrBfmk>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvgedrjeefgdehtdcutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpegtggfuhfgjffevgffkfhfvofesthhqmhdthhdtjeenucfhrhhomhepofgrrhhk ucfpohhtthhinhhghhgrmhcuoehmnhhothesmhhnohhtrdhnvghtqeenucggtffrrghtth gvrhhnpeefffehveeuffekffduueeileevjeeifedtgfegjedtfeeviefgjeegffejffdv veenucffohhmrghinhepihgvthhfrdhorhhgpdhhthhtphgrlhhothgsuhhtughovghsnh htrggtthhurghllhihrhgvfhgvrhgvnhgtvghrfhgtleduuddtrdhithdphhhtthhprhgv shhouhhrtggvshdrthgrrhhgvghtpdhmnhhothdrnhgvthenucevlhhushhtvghrufhiii gvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehmnhhothesmhhnohhtrdhnvght
X-ME-Proxy: <xmx:jnCFY5zgsvKkM0IM0AhaBYyFrlWJQ3xQ5RUnOaj5_l4_3zuc3BP1pA> <xmx:jnCFY8SOCaA0G5riwENjh7k58LOrtYamA6llnGKSuuG4998iyV6uQA> <xmx:jnCFY8Z97M9CZpxKJ2UuknNwsSsXTMvnC_HTaIu8R5l4A-uquwkcAg> <xmx:jnCFY3cwBqwWyMfQWClnf6uCzDrtAw7W_jJTvn8S0NFU0MvnVONX_A>
Feedback-ID: ie6694242:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 28 Nov 2022 21:38:04 -0500 (EST)
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3731.200.110.1.12\))
From: Mark Nottingham <mnot@mnot.net>
In-Reply-To: <BD470220-2289-4299-8BAF-5D1F3C17377A@gmail.com>
Date: Tue, 29 Nov 2022 13:37:40 +1100
Cc: Last Call <last-call@ietf.org>, netconf <netconf@ietf.org>, HTTP Working Group <ietf-http-wg@w3.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <3AA5D7A7-9C39-4C75-BBC7-761F868445FE@mnot.net>
References: <166775265321.28065.11046428885902599912@ietfa.amsl.com> <712C3185-3CAD-44A1-9B00-58E25CC18156@mnot.net> <BD470220-2289-4299-8BAF-5D1F3C17377A@gmail.com>
To: Mahesh Jethanandani <mjethanandani@gmail.com>
X-Mailer: Apple Mail (2.3731.200.110.1.12)
Archived-At: <https://mailarchive.ietf.org/arch/msg/last-call/22rzj2xn634k67-Xm6e9ZsEdZWI>
Subject: Re: [Last-Call] [netconf] Last Call: <draft-ietf-netconf-https-notif-13.txt> (An HTTPS-based Transport for YANG Notifications) to Proposed Standard
X-BeenThere: last-call@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: IETF Last Calls <last-call.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/last-call>, <mailto:last-call-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/last-call/>
List-Post: <mailto:last-call@ietf.org>
List-Help: <mailto:last-call-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/last-call>, <mailto:last-call-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 29 Nov 2022 02:38:12 -0000

Hi Mahesh,

Responses below.

> On 29 Nov 2022, at 1:12 pm, Mahesh Jethanandani <mjethanandani@gmail.com> wrote:
> 
> HI Mark,
> 
> Thanks first of all for your review of the document.
> 
>> On Nov 8, 2022, at 9:52 PM, Mark Nottingham <mnot=40mnot.net@dmarc.ietf.org> wrote:
>> 
>>> The IESG has received a request from the Network Configuration WG (netconf) to consider the following document: - 'An HTTPS-based Transport for YANG Notifications' <draft-ietf-netconf-https-notif-13.txt> as Proposed Standard
>> [...]
>>> The file can be obtained via
>>> https://datatracker.ietf.org/doc/draft-ietf-netconf-https-notif/
>> 
>> I'm reviewing this document with a focus on how it uses HTTP.
>> 
>> * The Abstract and Introduction both start with "This document defines a protocol for sending notifications over HTTPS." This is a very general statement and is likely to mislead many readers -- 'notifications' are a very broad capability. Could you please make it more specific to the intended use case?
> 
> Would it help if we said that “This document defines a protocol for sending an asynchronous event notification similar to the notifications defined in NETCONF Event Notifications [RFC 5277], but over HTTPS"?

That's great.

>> * The document talks about HTTP a lot, but doesn't actually reference RFC9110. It probably should.
> 
> Ok. Will add the reference.
> 
>> 
>> * "This document requires that the publisher is a "server" (e.g., a NETCONF or RESTCONF server), but does not assume that the receiver is a NETCONF or RESTCONF server. It does expect the receiver to be an HTTPS server to receive the notifications." This is a confusing paragraph. What is a "receiver"? More generally, it would be good if terms like "server" were consistently qualified, since it is used in both HTTP and NETCONF (apparently).
> 
> We can import the definition of a receiver and publisher from RFC 8639 to clarify those definitions. As far as the use of “server" is concerned, where it is not qualified, we can prefix it with NETCONF/RESTCONF to distinguish it from HTTP or other servers. Does that work?

I think so.

>> * Throughout, you use "target resource." What is the significance of "target" here? As far as I can tell, they're just HTTP resources.
> 
> “target resource” as a term in imported from RFC 8040, which describes it as follows. Would it help if we refer to it?
> 
> target resource: the resource that is associated with a particular
> message, identified by the "path" component of the request URI.

Yes.

>> * "These two resources share a common prefix that the publisher must know." Do you mean that the resources' identifiers (i.e., URIs) share a common prefix?
> 
> That is correct. How about we say “These two resource identifiers share a common prefix that a publisher learns from a request it issues, as defined in Section 3.2”?

That's better.

>> * "The POST messages MAY be "pipelined" (not illustrated in the diagram above), whereby multiple notifications are sent without waiting for the HTTP response for a previous POST." Did you consider this text from s 9.3.2 of RFC9112?
>> 
>>> Idempotent methods (Section 9.2.2 of [HTTP]) are significant to pipelining because they can be automatically retried after a connection failure. A user agent SHOULD NOT pipeline requests after a non-idempotent method, until the final response status code for that method has been received, unless the user agent has a means to detect and recover from partial failure conditions involving the pipelined sequence.
> 
> A relay-notification is not idempotent, in that a subsequent (duplicate) notification could confuse the receiver. Based on what you are quoting, my understanding is that we cannot pipeline such a request. If that is the case, we will remove the above statement. Would you agree?

I think so.

>> Also, the word pipelined doesn't need to be quoted.
> 
> If we remove the line, this becomes a non-issue.
> 
>> 
>> * In s 3.4: "In this example, the "Accept" states that the publisher wants to receive the capabilities response in XML but, if not supported, then in JSON." The Accept header field doesn't use ordering to indicate precedence; you need to use q values. See RFC9110 s 12.5.1.
> 
> I am not entirely clear on how to redo the example to use the q value. Can you suggest the change? Otherwise, we can change the example by saying it will accept either XML and JSON.

Something like:

Accept: application/xml;q=1.0, application/json;q=0.5



Cheers,


--
Mark Nottingham   https://www.mnot.net/