[Netconf] last call on draft-ietf-netconf-subscribed-notifications-16

"Tim Jenkins (timjenki)" <timjenki@cisco.com> Thu, 13 September 2018 15:15 UTC

Return-Path: <timjenki@cisco.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 3D53F130DE8 for <netconf@ietfa.amsl.com>; Thu, 13 Sep 2018 08:15:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.509
X-Spam-Level:
X-Spam-Status: No, score=-14.509 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, T_DKIMWL_WL_HIGH=-0.01, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.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 nU4eUFmBLap9 for <netconf@ietfa.amsl.com>; Thu, 13 Sep 2018 08:15:27 -0700 (PDT)
Received: from rcdn-iport-5.cisco.com (rcdn-iport-5.cisco.com [173.37.86.76]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id CCCC8130DD8 for <netconf@ietf.org>; Thu, 13 Sep 2018 08:15:26 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=47478; q=dns/txt; s=iport; t=1536851726; x=1538061326; h=from:to:subject:date:message-id:mime-version; bh=RvoVy2iUZexrTwg91KCZ93XxsSNhGeWSPvKBG3dLjRE=; b=BtjdMsn+DSIVrGxORRhRB58pSSwizMF2UuilDZ1djY3w1C8toWi0q7PK M6cUW8DiA24kDHu7s9k8gAPHDX8t39mLCZUSfNGMnZ0IbtmCnHe49qIDb hbjtTve3f+ix3WN3GxBbs2Fb6ZPswNItT0O9bZu8KurYzHuN8OYVlkjWD U=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0C8AACUfZpb/5FdJa1TBxoBAQEBAQIBAQEBCAEBAQGBUIEPTSomP38oCoNolC2YSxSBYwMLGAEMB4RZg0AhNhYBAgEBAgEBAm0cAQuFYgQGIRgRFAEsARMBCQIELwEnBA8FHASCNUsBgR0DYQ+lV3szhHKEeiKKaBeBQT+BEicfhVwLAQEBAQEXgTAEgxQxgiYCiCSFF4FHhB2JBwkChjmFA4RSEQaBQYdIhXqLTog+AhEUgSUkBC2BVXAVZQGCQQkKghIXegECgkiFFIU+bwEPgQaKPCmBBQGBHQEB
X-IronPort-AV: E=Sophos;i="5.53,369,1531785600"; d="scan'208,217";a="233822524"
Received: from rcdn-core-9.cisco.com ([173.37.93.145]) by rcdn-iport-5.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 13 Sep 2018 15:15:25 +0000
Received: from XCH-RTP-015.cisco.com (xch-rtp-015.cisco.com [64.101.220.155]) by rcdn-core-9.cisco.com (8.15.2/8.15.2) with ESMTPS id w8DFFPod004056 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL) for <netconf@ietf.org>; Thu, 13 Sep 2018 15:15:25 GMT
Received: from xch-rtp-011.cisco.com (64.101.220.151) by XCH-RTP-015.cisco.com (64.101.220.155) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Thu, 13 Sep 2018 11:15:24 -0400
Received: from xch-rtp-011.cisco.com ([64.101.220.151]) by XCH-RTP-011.cisco.com ([64.101.220.151]) with mapi id 15.00.1395.000; Thu, 13 Sep 2018 11:15:24 -0400
From: "Tim Jenkins (timjenki)" <timjenki@cisco.com>
To: "netconf@ietf.org" <netconf@ietf.org>
Thread-Topic: last call on draft-ietf-netconf-subscribed-notifications-16
Thread-Index: AQHUS3SYdjH1bOxqTkC41erEdgjQeg==
Date: Thu, 13 Sep 2018 15:15:24 +0000
Message-ID: <E546DB21-171F-4BC2-843C-B20544DCA47F@cisco.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [161.44.212.174]
Content-Type: multipart/alternative; boundary="_000_E546DB21171F4BC2843CB20544DCA47Fciscocom_"
MIME-Version: 1.0
X-Outbound-SMTP-Client: 64.101.220.155, xch-rtp-015.cisco.com
X-Outbound-Node: rcdn-core-9.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/nUyvZ2Wvsk-IlwTEWIw5x6YQizg>
Subject: [Netconf] last call on draft-ietf-netconf-subscribed-notifications-16
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Configuration WG mailing 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: Thu, 13 Sep 2018 15:15:30 -0000

Greetings,

I have read draft-ietf-netconf-subscribed-notifications-16 and support it going to IESG.

I have a number of comments, mostly extremely minor in nature, and none need affect forward progress of subscribed notifications.

Tim

==>

Comments on https://tools.ietf.org/html/draft-ietf-netconf-subscribed-notifications-16

Section 1.2, Notification message definition: remove the () around event(s)

Section 1.2. No definition for just "stream"; the word stream is used alone (without 'event' in front of it in a few places)

Should this paragraph be in the Terminology section?
   All YANG tree diagrams used in this document follow the notation
   defined in [RFC8340].

Section 1.3, paragraph numbered 1: change "would have enabled" to "may have enabled". Use of would implies use of the suggested hints would succeed, and this cannot be guaranteed. (This would then be more consistent with same text in Section 2.4.2.)

Section 1.3, paragraph number 2: It's sort of a circular definition:
      "Configured subscriptions, which allow the management of
       subscriptions via a configuration so that a publisher can send
       notification messages to a receiver of a configured subscription."
       Suggest rephrasing and removing the "receiver of a configured subscription" part.

Section 1.3, second last paragraph: Partly repeats second bulleted paragraph, which explicitly lists exception to this statement "Similarly, a subscription established via RPC cannot be modified through configuration operations". I would suggest removing duplicate statements from these paragraphs regarding what can be changed.

Section 1.4, replace "the RPC operations in this draft replaces" with "the RPC operations in this draft replace"

Section 1.4, replace "single transport session
      to intermix of notification messages" with "single transport session
      to intermix notification messages"

Section 2.3: Second bulleted paragraph seem to imply that the weighting is per-receiver. Perhaps rephrase or refer instead to description elsewhere.

Section 2.3: Is dscp optional? Not stated here, but is for others. Seems it is.

Section 2.4.1: Does not show the transition described in second last paragraph of Section 2.1, or the transition described in second o paragraph of section 2.4.1. But the second doesn't exist based on section 2.4.3; it explicitly says to change state and them moved immediately back if needed, so perhaps add something to second o paragraph of section 2.4.1":

   o  Failed "modify-subscription" RPCs will leave the subscription in
      its previous state, with no visible change to any streaming
      updates. The transition to the receiver active state and back to
      receiver suspended state might not be not externally visible.

Section 2.4.2, third o paragraph: Remove "Note: " since statement is definitive about behaviour (it's not a note).

Section 2.4.5: Should there be some mention about permissions?

Section 2.4.6: Should there be a permissions failure error for kill-subscription? Or is that more generic? Meaning, is command execution permission enforcement not part of this specification?

Section 2.5: Should this
      "an ability to send notification messages to more than one receiver
      (note that receivers are unaware of the existence of any other
      receivers.)"
be changed to something like this
      "an ability to send notification messages to more than one receiver.
      Receivers MUST not be aware of the existence of other receivers.
      "?

2.5.1, receiver state: I think I prefer the state "receiver disconnected" over "receiver timeout" since there are more reasons a receiver would be disconnected. While the text says the states are only meaningful when the subscription state is valid, in practise receivers of invalid subscriptions will have state as well, and "timeout" isn't really true. Further, an implementation may choose to not even create connections under overload conditions, so the receiver won't be just "suspended" nor will it be "timeout".

Additionally, should it not be stated that the "connecting" state is only for when the publisher is actively trying to connect to the receiver? This sentence seems to imply it's more than that "In addition, a configured
   subscription's receiver MUST be moved to connecting if transport
   connectivity cannot be achieved, or ..." Or maybe the "cannot" confuses me: cannot before timeout is really what is meant?

Section 2.5.2

Last paragraph says that replay is supported on configured subscriptions. So why this statement in section 2.5? "On a receiver of a
   configured subscription, support for dynamic subscriptions is
   optional except where replaying missed event records is required.
"

Section 2.5.3, second paragraph: Receivers would only be put into the connecting state if the protocol specific callhome mechanism was invoked. Could they not also go instead to the active state if the connection needed already existed?

Section 2.5.3, maybe change
"Also note that if multiple modifications have occurred during the
   suspension, only the latest one need be sent to the receiver."
to
"Also note that if multiple modifications have occurred during the
   suspension, only the "subscription-modified" notification describing the latest one need be sent to the receiver.
"

Section 2.5.5: maybe change "re-initialization" to "action" - it's not really a re-initialization

Section 2.5.6, first paragraph, last sentence: event -> events

Section 2.7.2, paragraph numbered 2: this case would apply to both dynamic and configured subscriptions; suggest rephrasing to describe the situation and then saying that it applies to both

Section 2.8, maybe change
"This leaf also
   indicates if current state of that subscription is valid, invalid,
   and concluded."
to
"This leaf also
   indicates if the current state of that subscription is valid, invalid,
   or concluded."

Section 2.8, paragraph 3: remove "configured and dynamic" from first sentence

Section 2.8, paragraph 3: Is it not a potential security leak to have event notifications suppressed by permissions change the difference between the two counts?

Section 2.9: Change
"In addition support for optional features "encode-xml",
   "encode-json", "configured" "supports-vrf", "qos", "xpath",
   "subtree", "interface-designation", "dscp", and "replay" MUST be
   indicated if supported."
to
"If supported, the optional features "encode-xml",
   "encode-json", "configured" "supports-vrf", "qos", "xpath",
   "subtree", "interface-designation", "dscp", and "replay" MUST be
   indicated.
"

Section 3, third sentence: remove first word "Or"

Section 4, features for encoding: I don't see the point of global features for showing support for encodings. The encodings that are supported are tied to the protocols that are supported, and it's unlikely any encoding will be supported over all protocols.

Section 4, feature "replay": Given that the streams table shows which streams support reply, is there a need for this feature?

Section 4, DATA NODES: leaf "replay-log-creation-time" has
        when "../replay-support";
        if-feature "replay";
but leaf "replay-log-aged-time" has only
        if-feature "replay";

Should they be the same?

Also, is the
        if-feature "replay";
needed if
        when "../replay-support";
is used when it is using
        if-feature "replay";
already?

Section 4, "leaf configured-subscription-state": The description for "enum valid" looks wrong.

Section 4, "leaf count-sent": Should this be reset to zero on receiver state transition to active as opposed to subscription transition to valid? Just because the subscription is valid doesn't mean the receiver's being sent anything if the connection isn't up.

Section 5.4: "discovered,take" to "discovered, take"


--
Cisco Systems Canada Co.
2000 Innovation Drive
Kanata, ON, Canada, K2K 3E8
Preferences <http://www.cisco.com/offer/subscribe/?sid=000478326>
Unsubscribe <http://www.cisco.com/offer/unsubscribe/?sid=000478327>
Privacy <http://www.cisco.com/web/siteassets/legal/privacy.html>