Re: [netconf] Yangdoctors last call review of draft-ietf-netconf-https-notif-06

Mahesh Jethanandani <mjethanandani@gmail.com> Tue, 16 February 2021 18:30 UTC

Return-Path: <mjethanandani@gmail.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C8FBE3A0BD3; Tue, 16 Feb 2021 10:30:22 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.097
X-Spam-Level:
X-Spam-Status: No, score=-2.097 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, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.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 34fnuWqeJdfS; Tue, 16 Feb 2021 10:30:19 -0800 (PST)
Received: from mail-pl1-x629.google.com (mail-pl1-x629.google.com [IPv6:2607:f8b0:4864:20::629]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 24D233A0E00; Tue, 16 Feb 2021 10:30:19 -0800 (PST)
Received: by mail-pl1-x629.google.com with SMTP id a24so5946963plm.11; Tue, 16 Feb 2021 10:30:19 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:message-id:mime-version:subject:date:in-reply-to:cc:to :references; bh=/Ojy3IUYPM6rpdnaK6qp0Ry3AyUFdTqTT4Ps/hjKxYw=; b=tNGXQ+2tZ6HKIytrJuiMWBQ3LpSQMa9CW2LyyINcDu55oluGsnSR/pUe1xmbXTh64O AeG1O0crTOLi4BiBOyb8Hhg7z9XxUHGfU4jS9SyIirZUH7CEsK14A56eNDp6FiSp75Pc KvlO5Yl+w8haPpHFABRpms3C6ZDM7c09oti9wn/4za2ory8ImaJk86aBE6yVc4Wb5uql kqSeBkMyeqGQw86pVryO671bwMeogxwftBOqRMW9jFQyh8qB+q3NPUs64mLo5lkpTeWf JGK6IjQjmQizDbt5Jyyhf3D//rbIBuYffjlHmedFGDD4NF8JHjnHq5gIg2ZIowl2hjxL FC7w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:message-id:mime-version:subject:date :in-reply-to:cc:to:references; bh=/Ojy3IUYPM6rpdnaK6qp0Ry3AyUFdTqTT4Ps/hjKxYw=; b=X8IDc7EwgxVIzPLdg8vrFGfwbO2ljXGrOcqOzUFEgoaC/ldVlz5ghZucOQhuI5067e m15WXxPirShbORZelSHxAL3ZX5mBa7fkM+txs3HU8JCrJDbi4Hw5VXZao5T11S7oKJdZ Em3xrwzEL84NqtnsKBGm7YY0tnaVj3Zr86ZMbI135ljYQgU17XcecS6HHxZt7Zyfgv/i zaDd2kDqlrejH2xFlNEzcsjdvqKicef5UFHFZXeUDZmhKErB2jIFtpgftmQOGURzEAoN rK4th0F48Dnj+fyZMRlB+KTStr55VlQrMlMWIwJwwYXtQKsolvLqpXpA37MAvoH1WTqP 9GqA==
X-Gm-Message-State: AOAM530C5RtryXhrAG2cUkYjQI6Q6gNeZS4O4EYVfVn8d/zEUFUV0LA7 AlCIN/v0tC8rNTQyCnqQk18gtSGCrFdnXQ==
X-Google-Smtp-Source: ABdhPJwaAGFXZZ/tudT4WppjeG9FAnVOsJ/ekhgyOIjgogt+VTzoI+2COi+4FU9sl3cX4HQFMlMLNQ==
X-Received: by 2002:a17:902:9b91:b029:e3:2c9e:f511 with SMTP id y17-20020a1709029b91b02900e32c9ef511mr18494285plp.74.1613500218481; Tue, 16 Feb 2021 10:30:18 -0800 (PST)
Received: from ?IPv6:2601:647:5600:5020:f520:e2e5:d323:243b? ([2601:647:5600:5020:f520:e2e5:d323:243b]) by smtp.gmail.com with ESMTPSA id g3sm22845215pfq.42.2021.02.16.10.30.17 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 16 Feb 2021 10:30:18 -0800 (PST)
From: Mahesh Jethanandani <mjethanandani@gmail.com>
Message-Id: <383BE000-68C0-45E0-9456-D1A397935C91@gmail.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_C07B6F8E-8A25-4D1D-BEAC-56F9301FD96B"
Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.120.23.2.4\))
Date: Tue, 16 Feb 2021 10:30:16 -0800
In-Reply-To: <D9F4C4E1-224E-41FC-876A-81274FF6256E@cisco.com>
Cc: "yang-doctors@ietf.org" <yang-doctors@ietf.org>, "draft-ietf-netconf-https-notif.all@ietf.org" <draft-ietf-netconf-https-notif.all@ietf.org>, "last-call@ietf.org" <last-call@ietf.org>, "netconf@ietf.org" <netconf@ietf.org>, tom petch <ietfc@btconnect.com>
To: "Acee Lindem (acee)" <acee@cisco.com>
References: <161176691048.5494.2373231790931856179@ietfa.amsl.com> <DFCF64EB-5CCF-44EA-832B-C72EC6B1B17D@gmail.com> <D9F4C4E1-224E-41FC-876A-81274FF6256E@cisco.com>
X-Mailer: Apple Mail (2.3608.120.23.2.4)
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/ZLbtnQP7Mde10khFx4YgGGbw3cw>
Subject: Re: [netconf] Yangdoctors last call review of draft-ietf-netconf-https-notif-06
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETCONF WG list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 16 Feb 2021 18:30:23 -0000

Hi Acee,

See inline with [mj]

> On Feb 10, 2021, at 11:03 AM, Acee Lindem (acee) <acee@cisco.com> wrote:
> 
> Hi Mahesh, 
>  
> Thanks for the update. See some inlines. 
>  
> From: Mahesh Jethanandani <mjethanandani@gmail.com <mailto:mjethanandani@gmail.com>>
> Date: Monday, February 8, 2021 at 11:27 PM
> To: Acee Lindem <acee@cisco.com <mailto:acee@cisco.com>>
> Cc: YANG Doctors <yang-doctors@ietf.org <mailto:yang-doctors@ietf.org>>, "draft-ietf-netconf-https-notif.all@ietf.org <mailto:draft-ietf-netconf-https-notif.all@ietf.org>" <draft-ietf-netconf-https-notif.all@ietf.org <mailto:draft-ietf-netconf-https-notif.all@ietf.org>>, "last-call@ietf.org <mailto:last-call@ietf.org>" <last-call@ietf.org <mailto:last-call@ietf.org>>, "netconf@ietf.org <mailto:netconf@ietf.org>" <netconf@ietf.org <mailto:netconf@ietf.org>>
> Subject: Re: Yangdoctors last call review of draft-ietf-netconf-https-notif-06
>  
> Hi Acee,
>  
> Thank you first of all for the review of the document. You reviewed -06, and we have since submitted -07. I will in my responses reflect the changes in -07 that might affect the comments you have provided.
> 
> 
>> On Jan 27, 2021, at 9:01 AM, Acee Lindem via Datatracker <noreply@ietf.org <mailto:noreply@ietf.org>> wrote:
>>  
>> Reviewer: Acee Lindem
>> Review result: Almost Ready
>> 
>> The document is almost ready for WG Last Call. I have the following comments:
>> 
>> Model ietf-sub-notif-recv-list:
>> 
>>    Seems odd to have a model that adds a choice statement without any
>>    valid options. I realize you expect other transports in the future but
>>    having a separate module the one defined in the same draft seems like a
>>    profligate design choice.
>  
> The draft contains two models as you have noted. While the ietf-sub-notif-recv-list adds a choice statement, the second model goes on to adding a case statement for that choice statement. We could have hard coded the two models together, but believe that by separating them, we offer the flexibility to implementations that may choose not to implement both the models. Also, other transports can augment "receiver-instances", without including the entire http transport model.
>  
> Well, right now, there is only one choice for transport.
>  
> If it helps, we can add a comment to that effect in the model to explain our motivation.
>  
> That would be good although I understood the motivation. I guess this is one way to make it optional but currently the only option is both models or neither.  

[mj] True if you want to use https as the transport. There is another WG draft, the UDP transport draft that will use the ietf-sub-notif-recv-list module to add a case statement for udp transport. If this draft proposes one model, the UDP transport would have to import all the models https transport draft imports, just to resolve all the dependencies.

Ideally, this model should have been part of RFC 8639. But that train has already left the station. We were surprised that no one suggested that the model be spun into a draft of its own, although that draft would be very small.

Thanks.

> 
> 
>> 
>> Model ietf-sub-notif-recv-list:
>>    1. The prefix "hn" seems inconsistent to lose the context. I'd use
>>        "snrlhn".  This wouldn't be an issue if you combined the modules.
>  
> The updated model in -07 now carries the prefix “hnt”.
>  
> That is an improvement but since this augments a model with “snr” as the prefix, it seems that should be part of the prefix. If you didn’t have a separate model, it wouldn’t be an issue. ;^) However, I’m leave it to Tom (copied) for further debate. 
> 
> 
>>    2. This comment is incomprehensible:
>> 
>>               // create the logical impossibility of enabling "tcp"
>>               // transport
>  
> Would it help if we expanded the comment to say:
>  
> // The "http-client-stack-grouping” supports both HTTP and HTTPS stacks by default. This draft, however supports HTTPS only. The following 
> // if-feature statement makes it logically impossible to configure HTTP transport.
>  
> Yes. 
> 
> 
>> 
>> In the IANA section, the security considerations for the media types
>> point to this draft's security considerations. However, they don't
>> include the referenced information. It seems these IANA references
>> should point to other RFCs.
>  
> The updated IANA section no longer carries the media-types.
>  
> That’s better. 
>  
> Thanks,
> Acee
> 
> 
>> 
>> It should be noted that ietf-subscribed-notifications has a number of YANG
>> errors and warnings.
>> 
>> I also have the following editorial comments:
> 
>> Acee-Lindems-iMac-2:Desktop acee$ diff -c
>> draft-ietf-netconf-https-notif-06.txt.orig
>> draft-ietf-netconf-https-notif-06.txt ***
>> draft-ietf-netconf-https-notif-06.txt.orig  2021-01-27 10:06:29.000000000 -0500
>> --- draft-ietf-netconf-https-notif-06.txt       2021-01-27 11:57:13.000000000
>> -0500
>> ***************
>> *** 17,23 ****
>>     This document defines a YANG data module for configuring HTTPS based
>>     configured subscription, as defined in RFC 8639.  The use of HTTPS
>>     maximizes transport-level interoperability, while allowing for
>> !    encoding selection from text, e.g.  XML or JSON, to binary.
>> 
>>  Status of This Memo
>> 
>> --- 17,23 ----
>>     This document defines a YANG data module for configuring HTTPS based
>>     configured subscription, as defined in RFC 8639.  The use of HTTPS
>>     maximizes transport-level interoperability, while allowing for
>> !    encoding selection from text, e.g.,  XML or JSON, to binary.
>  
> The abstract section has been updated.
> 
> 
>> 
>>  Status of This Memo
>> 
>> ***************
>> *** 103,109 ****
>>     documents.  This document defines two YANG 1.1 [RFC7950] data
>>     modules, one for augmenting the Subscription to YANG Notifications
>>     [RFC8639] to add a transport type, and another for configuring and
>> !    managing HTTPS based receivers for the notifications.
>> 
>> --- 103,109 ----
>>     documents.  This document defines two YANG 1.1 [RFC7950] data
>>     modules, one for augmenting the Subscription to YANG Notifications
>>     [RFC8639] to add a transport type, and another for configuring and
>> !    managing HTTPS-based receivers for the notifications.
>  
> Fixed.
> 
> 
>> 
>> ***************
>> *** 118,124 ****
>>     the same receiver instance.  The second module describes how to
>>     enable the transmission of YANG modeled notifications, in the
>>     configured encoding (i.e., XML, JSON) over HTTPS.  Notifications are
>> !    delivered in the form of a HTTPS POST.  The use of HTTPS maximizes
>>     transport-level interoperability, while the encoding selection pivots
>>     between implementation simplicity (XML, JSON) and throughput (text
>>     versus binary).
>> --- 118,124 ----
>>     the same receiver instance.  The second module describes how to
>>     enable the transmission of YANG modeled notifications, in the
>>     configured encoding (i.e., XML, JSON) over HTTPS.  Notifications are
>> !    delivered in the form of an HTTPS POST.  The use of HTTPS maximizes
>>     transport-level interoperability, while the encoding selection pivots
>>     between implementation simplicity (XML, JSON) and throughput (text
>>     versus binary).
>> ***************
>  
> Fixed.
> 
> 
>> *** 196,202 ****
>> 
>>     In the case of "pipelining", the flow of messages would look
>>     something like this.  This example shows the flow assuming that
>> !    Subscribed Notifications is used and therefore a <subscription-
>>     started> notification is sent before sending the first notification.
>>     The example would be the same for when Subscribed Notification is not
>>     used by removing the first POST message for <susbscription-started>.
>> --- 196,202 ----
>> 
>>     In the case of "pipelining", the flow of messages would look
>>     something like this.  This example shows the flow assuming that
>> !    Subscribed Notification is used and therefore a <subscription-
>>     started> notification is sent before sending the first notification.
>>     The example would be the same for when Subscribed Notification is not
>>     used by removing the first POST message for <susbscription-started>.
>> ***************
>  
> This section has been rewritten.
> 
> 
>> *** 342,350 ****
>> 
>>  2.1.  Introduction
>> 
>> !    To learn the capabilities of the receiver, the publisher can issue a
>>     HTTPS GET request with Accept-Type set to application/ietf-https-
>> !    notif-cap+xml or application/ietf-https-notif-cap+json, with latter
>>     as the mandatory to implement, and the default in case the type is
>>     not specified.  If the receiver supports capabilities such as binary
>>     encoding of data, it can return that as a capability in a response.
>> --- 342,350 ----
>> 
>>  2.1.  Introduction
>> 
>> !    To learn the capabilities of the receiver, the publisher can issue an
>>     HTTPS GET request with Accept-Type set to application/ietf-https-
>> !    notif-cap+xml or application/ietf-https-notif-cap+json, with the latter
>>     as the mandatory to implement, and the default in case the type is
>>     not specified.  If the receiver supports capabilities such as binary
>>     encoding of data, it can return that as a capability in a response.
>> ***************
>  
> Fixed.
> 
> 
>> *** 450,456 ****
>>  Internet-Draft        HTTPS Configured Subscription        November 2020
>> 
>> !      Copyright (c) 2018 IETF Trust and the persons identified as
>>       the document authors.  All rights reserved.
>>       Redistribution and use in source and binary forms, with or
>>       without modification, is permitted pursuant to, and subject
>> --- 450,456 ----
>>  Internet-Draft        HTTPS Configured Subscription        November 2020
>> 
>> !      Copyright (c) 2021 IETF Trust and the persons identified as
>>       the document authors.  All rights reserved.
>>       Redistribution and use in source and binary forms, with or
>>       without modification, is permitted pursuant to, and subject
>> ***************
>  
> Fixed.
> 
> 
>> *** 536,545 ****
>> 
>>     This YANG module is a definition of a set of receivers that are
>>     interested in the notifications published by the publisher.  The
>> !    module contains the TCP, TLS and HTTPS parameters that are needed to
>>     communicate with the receiver.  The module augments the ietf-sub-
>>     notif-recv-list module to define a transport specific receiver.  As
>> !    mentioned earlier, it uses POST method to deliver the notification.
>>     The attribute 'path' defines the path for the resource on the
>>     receiver, as defined by 'path-absolute' in URI Generic Syntax
>>     [RFC3986].  The user-id used by Network Configuration Access Control
>> --- 536,545 ----
>> 
>>     This YANG module is a definition of a set of receivers that are
>>     interested in the notifications published by the publisher.  The
>> !    module contains the TCP, TLS, and HTTPS parameters that are needed to
>>     communicate with the receiver.  The module augments the ietf-sub-
>>     notif-recv-list module to define a transport specific receiver.  As
>> !    mentioned earlier, it uses the POST method to deliver the notification.
>>     The attribute 'path' defines the path for the resource on the
>>     receiver, as defined by 'path-absolute' in URI Generic Syntax
>>     [RFC3986].  The user-id used by Network Configuration Access Control
>> ***************
>  
> This section of the module has been rewritten.
> 
> 
>> *** 639,645 ****
>>       description
>>         "YANG module for configuring HTTPS base configuration.
>> 
>> !         Copyright (c) 2018 IETF Trust and the persons identified as
>>          the document authors.  All rights reserved.
>>          Redistribution and use in source and binary forms, with or
>>          without modification, is permitted pursuant to, and subject
>> --- 639,645 ----
>>       description
>>         "YANG module for configuring HTTPS base configuration.
>> 
>> !         Copyright (c) 2021 IETF Trust and the persons identified as
>>          the document authors.  All rights reserved.
>>          Redistribution and use in source and binary forms, with or
>>          without modification, is permitted pursuant to, and subject
>> ***************
>  
> Fixed.
> 
> 
>> *** 704,710 ****
>> 
>>             container receiver-identity {
>>               description
>> !                "Specifies mechanism for identifying the receiver.
>>                  The publisher MUST NOT include any content in a
>>                  notification that the user is not authorized to view.";
>> 
>> --- 704,710 ----
>> 
>>             container receiver-identity {
>>               description
>> !                "Specifies the mechanism for identifying the receiver.
>>                  The publisher MUST NOT include any content in a
>>                  notification that the user is not authorized to view.";
>> 
>> ***************
>  
> This description statement has been updated.
> 
> 
>> *** 791,801 ****
>> 
>>  6.  Receiving Event Notifications
>> 
>> !    Encoding notifications for the HTTPS notifications is the same as the
>>     encoding notifications as defined in RESTCONF [RFC8040] Section 6.4,
>>     with the following changes.  Instead of saying that for JSON-encoding
>>     purposes, the module name for "notification" element will be "ietf-
>> !    restconf, it will say that for JSON-encoding purposes, the module
>>     name for "notification" element will be "ietf-https-notif".
>> 
>>     With those changes, the SSE event notification encoded JSON example
>> --- 791,801 ----
>> 
>>  6.  Receiving Event Notifications
>> 
>> !    Encoding notifications for the HTTPS notifications is the same as for
>>     encoding notifications as defined in RESTCONF [RFC8040] Section 6.4,
>>     with the following changes.  Instead of saying that for JSON-encoding
>>     purposes, the module name for "notification" element will be "ietf-
>> !    restconf", it will say that for JSON-encoding purposes, the module
>>     name for "notification" element will be "ietf-https-notif".
>> 
>>     With those changes, the SSE event notification encoded JSON example
>> ***************
>  
> This and all the following sections have been updated. 
>  
> Thanks.
> 
> 
>> *** 815,826 ****
>> 
>>  7.  IANA Considerations
>> 
>> !    This document registers two URI, two YANG module and two Media Types.
>> 
>>  7.1.  URI Registration
>> 
>>     in the IETF XML registry [RFC3688].  Following the format in RFC
>> !    3688, the following registration is requested to be made:
>> 
>>     URI: urn:ietf:params:xml:ns:yang:ietf-http-notif
>>     URI: urn:ietf:params:xml:ns:yang:ietf-sub-notif-recv-list
>> --- 815,826 ----
>> 
>>  7.  IANA Considerations
>> 
>> !    This document registers two URIs, two YANG modules, and two Media Types.
>> 
>>  7.1.  URI Registration
>> 
>>     in the IETF XML registry [RFC3688].  Following the format in RFC
>> !    3688, the following registrations are requested to be made:
>> 
>>     URI: urn:ietf:params:xml:ns:yang:ietf-http-notif
>>     URI: urn:ietf:params:xml:ns:yang:ietf-sub-notif-recv-list
>> ***************
>> *** 854,860 ****
>> 
>>  7.3.  Media Types
>> 
>> ! 7.3.1.  Media Type "application/ietf-https-notif-cap+xml
>> 
>>  Type name: application
>> 
>> --- 854,860 ----
>> 
>>  7.3.  Media Types
>> 
>> ! 7.3.1.  Media Type "application/ietf-https-notif-cap+xml"
>> 
>>  Type name: application
>> 
>> ***************
>> *** 917,923 ****
>> 
>>  Provisional registration? (standards tree only): no
>> 
>> ! 7.3.2.  Media Type "application/ietf-https-notif-cap+json
>> 
>>  Type name: application
>> 
>> --- 917,923 ----
>> 
>>  Provisional registration? (standards tree only): no
>> 
>> ! 7.3.2.  Media Type "application/ietf-https-notif-cap+json"
>> 
>>  Type name: application
>> 
>> ***************
>> *** 1106,1112 ****
>>  </config>
>> 
>> ! 8.2.  Non Subscribed Notification based Configuration
>> 
>>     In the case that it is desired to use HTTPS notif outside of
>>     Subscribed Notifications, there would have to be a module to define
>> --- 1106,1112 ----
>>  </config>
>> 
>> ! 8.2.  Non-Subscribed Notification based Configuration
>> 
>>     In the case that it is desired to use HTTPS notif outside of
>>     Subscribed Notifications, there would have to be a module to define
>> 
>> Thanks,
>> Acee
>> 
>> 
> 
>  
> Mahesh Jethanandani
> mjethanandani@gmail.com <mailto:mjethanandani@gmail.com>
>  
>  
>  
> 
>  

Mahesh Jethanandani
mjethanandani@gmail.com