Re: [Netconf] Subscription State Notifications
Alexander Clemm <alexander.clemm@huawei.com> Tue, 12 June 2018 22:37 UTC
Return-Path: <alexander.clemm@huawei.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 DDA14130FF5 for <netconf@ietfa.amsl.com>; Tue, 12 Jun 2018 15:37:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.2
X-Spam-Level:
X-Spam-Status: No, score=-4.2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 BFC1hm-F24CQ for <netconf@ietfa.amsl.com>; Tue, 12 Jun 2018 15:37:08 -0700 (PDT)
Received: from huawei.com (lhrrgout.huawei.com [194.213.3.17]) (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 36FB7130FF9 for <netconf@ietf.org>; Tue, 12 Jun 2018 15:37:07 -0700 (PDT)
Received: from lhreml704-cah.china.huawei.com (unknown [172.18.7.107]) by Forcepoint Email with ESMTP id A75ED39462419 for <netconf@ietf.org>; Tue, 12 Jun 2018 23:37:01 +0100 (IST)
Received: from SJCEML702-CHM.china.huawei.com (10.208.112.38) by lhreml704-cah.china.huawei.com (10.201.108.45) with Microsoft SMTP Server (TLS) id 14.3.382.0; Tue, 12 Jun 2018 23:37:03 +0100
Received: from SJCEML521-MBX.china.huawei.com ([169.254.1.141]) by SJCEML702-CHM.china.huawei.com ([169.254.4.125]) with mapi id 14.03.0382.000; Tue, 12 Jun 2018 15:36:57 -0700
From: Alexander Clemm <alexander.clemm@huawei.com>
To: Kent Watsen <kwatsen@juniper.net>, Martin Bjorklund <mbj@tail-f.com>
CC: "evoit@cisco.com" <evoit@cisco.com>, "ludwig@clemm.org" <ludwig@clemm.org>, "netconf@ietf.org" <netconf@ietf.org>
Thread-Topic: [Netconf] Subscription State Notifications
Thread-Index: AQHT/mOivNLzFXsn60iV6F/FS8ajZKRc72IwgAC5toD//5V3IA==
Date: Tue, 12 Jun 2018 22:36:56 +0000
Message-ID: <644DA50AFA8C314EA9BDDAC83BD38A2E0EB17EF3@sjceml521-mbx.china.huawei.com>
References: <6921546C-AA1F-4053-AD08-AB392A333F1D@juniper.net> <644DA50AFA8C314EA9BDDAC83BD38A2E0EB14DFB@sjceml521-mbx.china.huawei.com> <644DA50AFA8C314EA9BDDAC83BD38A2E0EB16893@sjceml521-mbx.china.huawei.com> <20180607.152944.1883274245186025079.mbj@tail-f.com> <644DA50AFA8C314EA9BDDAC83BD38A2E0EB17D19@sjceml521-mbx.china.huawei.com> <400D4932-5D9E-4549-BEEC-EF340C67CDF0@juniper.net>
In-Reply-To: <400D4932-5D9E-4549-BEEC-EF340C67CDF0@juniper.net>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.209.216.215]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-CFilter-Loop: Reflected
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/Tcu2S9ETCkIUMCpV-xLAMun5Eho>
Subject: Re: [Netconf] Subscription State Notifications
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.26
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: Tue, 12 Jun 2018 22:37:21 -0000
OK, we will keep it. Will doublecheck the description text so that the intended use is very clear to address your concerns. Thanks --- Alex > -----Original Message----- > From: Kent Watsen [mailto:kwatsen@juniper.net] > Sent: Tuesday, June 12, 2018 2:57 PM > To: Alexander Clemm <alexander.clemm@huawei.com>; Martin Bjorklund > <mbj@tail-f.com> > Cc: evoit@cisco.com; ludwig@clemm.org; netconf@ietf.org > Subject: Re: [Netconf] Subscription State Notifications > > > If you want to keep the extension statement, then can you add a note to its > description statement that the extension is not to be used outside this module, > lest otherwise you trigger the client-complexity I mentioned before. And BTW, > the issue isn't with the SN-clients, it's with clients that do read the NETCONF > stream. > > Kent // contributor > > > ===== original message ===== > > Thanks, Martin. > > Kent, are you okay with this as well? We are about to post an updated revision > to incorporate Tom Petch's comments in the coming days; it is our goal for that > one to have all known issues closed. > > Thanks > --- Alex > > > -----Original Message----- > > From: Martin Bjorklund [mailto:mbj@tail-f.com] > > Sent: Thursday, June 07, 2018 6:30 AM > > To: Alexander Clemm <alexander.clemm@huawei.com> > > Cc: kwatsen@juniper.net; evoit@cisco.com; ludwig@clemm.org; > > netconf@ietf.org > > Subject: Re: [Netconf] Subscription State Notifications > > > > Alexander Clemm <alexander.clemm@huawei.com> wrote: > > > Hi Kent, Martin, > > > > > > please let us know if we can keep it as-is (our preference), or if you > > > insist on removing the extension and going the description text route, > > > in which case we will post another revision. > > > > I'm ok with the extension statement. > > > > > > /martin > > > > > > > > > > Is there anything else? > > > > > > Thanks > > > --- Alex > > > > > > From: Netconf [mailto:netconf-bounces@ietf.org] On Behalf Of Alexander > > > Clemm > > > Sent: Thursday, May 31, 2018 2:38 PM > > > To: Kent Watsen <kwatsen@juniper.net>; Eric Voit (evoit) > > > <evoit@cisco.com>; Alexander Clemm <ludwig@clemm.org> > > > Cc: netconf@ietf.org > > > Subject: Re: [Netconf] Subscription State Notifications (RE: LC on > > > subscribed-notifications-10) > > > > > > Hi Kent, > > > > > > sure, the wire behavior is clear. > > > > > > It just seems to me cleaner and more desirable to me to make the > > > distinction explicit through formal means, rather than relying on > > > description text. Contrary to SMIv2, YANG does provide the ability to > > > define extensions that allow us to more formally cover this. Why not > > > take advantage of it – this is one important way in which YANG IMHO is > > > better than SMIv2. I have one more point to your comment inline, > > > <ALEX2>. > > > > > > Now, that said, appreciate trying to simplify it; I am not sure this > > > changes complexity either way – as you mention, it all results in the > > > same on-the-wire behavior, the only question is if we want to specify > > > it informally (description text) or formally (YANG-extension). In any > > > event, at this point, I believe it is more important to bring this to > > > a conclusion that is acceptable to everyone than to one that may be > > > the “best” (and we all have different opininions on what that would > > > be). If this is the last thing that is holding this up, I will be > > > happy to compromise and spin a new revision without the extension. > > > Please let us know. > > > > > > Thanks > > > --- Alex > > > > > > From: Kent Watsen [mailto:kwatsen@juniper.net] > > > Sent: Thursday, May 31, 2018 11:43 AM > > > To: Alexander Clemm > > > <alexander.clemm@huawei.com<mailto:alexander.clemm@huawei.com>>; > > Eric > > > Voit (evoit) <evoit@cisco.com<mailto:evoit@cisco.com>>; Alexander > > > Clemm <ludwig@clemm.org<mailto:ludwig@clemm.org>> > > > Cc: netconf@ietf.org<mailto:netconf@ietf.org> > > > Subject: Re: Subscription State Notifications (RE: [Netconf] LC on > > > subscribed-notifications-10) > > > > > > Hi Alex, > > > > > > No one is suggesting there would be an on-the-wire change. With or > > > without the extension, the subscription state notifications would > > > still only by sent in the dynamic/configured subscription sessions. > > > The only discussion is *how* this understanding is conveyed. Martin > > > and I are of the opinion that it can be conveyed by document-text, > > > without introducing an extension. > > > > > > As I see it, it makes no difference to server-implementers, as they're > > > going to hard-code it one way or another, but I think it does make a > > > difference to client-implementers, as one approach allows them to > > > hard-code it while the other approach introduces a need for their > > > infrastructure to look for and act on the presence of this extension. > > > Am I misunderstanding anything? > > > > > > <ALEX2> Client implementers can hard code it either way. The presence > > > of this extension (defined just in this module) makes it more explicit > > > that there is behavior that needs to be coded (ensuring that the > > > description text is not simply ignored, which would result in > > > noncompliant implementations). If your concern is that “now that the > > > extension is there, some other module might try to use it as well”, > > > well, how they choose to model and define their behavior is up to the > > > fictitious other model, and if they do need the same behavior, I would > > > consider it all the more reason not to get on the slippery slope of > > > the description clause path that became one of the demises for SMIv2. > > > </ALEX2> > > > > > > FWIW, my goal is to try to simplify this work where possible, as it is > > > rather complex as it stands. This (and configurable > > > replay-start-time) seems like a low-hanging item that could be removed > > > with little impact. > > > > > > Kent > > > > > > > > > On 5/30/18, 8:41 PM, "Alexander Clemm" > > > <alexander.clemm@huawei.com<mailto:alexander.clemm@huawei.com>> > > wrote: > > > > > > Apologies for the late reply. > > > > > > IMHO, option (b) (having an extension) is clearly preferable. > > > Subscription state notifications are in essence a signaling channel. > > > It makes a lot of sense to clearly distinguish a signaling channel > > > from general notification/event messages. > > > > > > The option to make subscription state notifications a part of the > > > regular NETCONF stream is not desirable because: > > > - It opens up the possibility that subscription state notifications are > > > - shared with _any_ subscriber, not just with the “owning” subscriber”. > > > - It would require subscribers having to explicitly subscribe for > > > - subscription state notifications (and allow accidental filtering of > > > - those notifications), making this harder to a user. > > > > > > Option (a) basically involves putting a lot of descriptions into > > > notifications to override “normal” notification behavior. It will not > > > be picked up by tooling and IMHO is more likely to result in incorrect > > > implementations and resulting usability etc issues. Back in the SMIv2 > > > days this type of thing might have been acceptable, but we moved on to > > > YANG for a reason. Option (b) is much cleaner. > > > > > > --- Alex > > > > > > From: Eric Voit (evoit) [mailto:evoit@cisco.com] > > > Sent: Thursday, April 26, 2018 5:51 PM > > > To: Kent Watsen <kwatsen@juniper.net<mailto:kwatsen@juniper.net>>; > > > Alexander Clemm > > > <alexander.clemm@huawei.com<mailto:alexander.clemm@huawei.com>>; > > > Alexander Clemm <ludwig@clemm.org<mailto:ludwig@clemm.org>> > > > Cc: netconf@ietf.org<mailto:netconf@ietf.org> > > > Subject: RE: Subscription State Notifications (RE: [Netconf] LC on > > > subscribed-notifications-10) > > > > > > Does anyone else want to chime in on whether we should: > > > (a) hard-code filtering rules for specific subscription state > > > notifications, or > > > (b) have a “subscription-state-notif” extension > > > > > > More people seem to prefer (b) at this point. I am good if we close > > > it wither way. > > > > > > Eric > > > > > > From: Kent Watsen, April 23, 2018 3:19 PM > > > On 4/18/18, 4:40 PM, "Eric Voit (evoit)" > > > <evoit@cisco.com<mailto:evoit@cisco.com>> wrote: > > > > > > I don’t think anyone has an issue with excluding them from the NETCONF > > > stream, or just sending them to individual receivers. > > > > > > <KENT> correct > > > > > > I think Kent’s question is that he is trying to understand the > > > possible downsides of using this extension construct for this purpose. > > > And specifically, should we permit reuse of this construct beyond the > > > confines of the family of subscription drafts (I.e., will in other > > > YANG models use this extension to exclude items from the NETCONF > > > stream which they shouldn’t). > > > > > > <KENT> correct > > > > > > Personally I don’t see a downside in allowing this flexibility under > > > “subscription-state-notif”. This notification has a very defined > > > purpose plus definition in the YANG model. And whether or not this > > > extension exists, model makers and implementers can choose exclude > > > certain notifications. At least this if this extension is used, it > > > would make such exclusions quite a bit more visible. > > > > > > <KENT> downside is added complexity. I don't want to add things that > > > aren't absolutely needed. > > > > > > Eric > > > > > > From: Alexander Clemm, April 18, 2018 3:08 PM > > > Hi Kent, > > > > > > I am not sure of what your question is anymore. The earlier > > > discussion concerned providing explanation regarding why subscription > > > state notifications are not part of the regular NETCONF stream. This > > > was my attempt at additional explanation. I am not sure what options > > > we need to discuss at this point. These issues were closed and IMHO > > > we should not open them again. > > > > > > The option to make them part of the regular NETCONF stream is not > > > desirable because: > > > - It would potentially “share” subscription state notifications with any > > > - subscriber, not just their own. > > > - It would require subscribers having to explicitly subscribe for > > > - subscription state notifications, making this harder to user. > > > > > > Hope this clarifies > > > --- Alex > > > > > > > > > From: Kent Watsen [mailto:kwatsen@juniper.net] > > > Sent: Tuesday, April 17, 2018 3:05 PM > > > To: Alexander Clemm > > > <alexander.clemm@huawei.com<mailto:alexander.clemm@huawei.com>>; > > Eric > > > Voit (evoit) <evoit@cisco.com<mailto:evoit@cisco.com>>; Alexander > > > Clemm <ludwig@clemm.org<mailto:ludwig@clemm.org>>; > > > netconf@ietf.org<mailto:netconf@ietf.org> > > > Subject: Re: Subscription State Notifications (RE: [Netconf] LC on > > > subscribed-notifications-10) > > > > > > Is this the result of the "I will open up a thread now" comment below? > > > This reads more like a statement than a question. Please try again, > > > this time presenting the pros and cons of the various options. > > > > > > Thanks, > > > Kent // contributor > > > > > > > > > On 4/10/18, 7:17 PM, "Alexander Clemm" > > > <alexander.clemm@huawei.com<mailto:alexander.clemm@huawei.com>> > > wrote: > > > > > > Hi, > > > > > > regarding the question of subscription state notifications that is > > > embedded in the long thread below: > > > > > > As discussed earlier, subscription state notifications are different > > > from “regular” notifications in that they only apply to the target of > > > a subscription (and should not be subscribable by anyone else). For > > > this reason, they are not placed onto the NETCONF stream, where they > > > would be subscribable by anyone. > > > > > > At the same time, they should not require being subscribed to > > > explicitly, but simply be automatically delivered as part of the > > > subscription control channel – automatically “included” with the > > > subscription whose state is being notified. To denote these specific > > > semantics, the model contains the “subscription-state-notification” > > > extension, by which subscription state notifications are tagged. > > > > > > HTH > > > --- Alex > > > > > > From: Netconf [mailto:netconf-bounces@ietf.org] On Behalf Of Eric Voit > > > (evoit) > > > Sent: Monday, April 09, 2018 3:32 PM > > > To: Kent Watsen <kwatsen@juniper.net<mailto:kwatsen@juniper.net>>; > > > Alexander Clemm <ludwig@clemm.org<mailto:ludwig@clemm.org>>; > > > netconf@ietf.org<mailto:netconf@ietf.org> > > > Subject: Re: [Netconf] LC on subscribed-notifications-10 > > > > > > Hi Kent, > > > > > > Thanks for the feedback. Look for thoughts at <Eric2> In-line... > > > > > > Also everything documented below which made it into the working copy > > > can be seen at: > > > https://urldefense.proofpoint.com/v2/url?u=https- > 3A__github.com_netconf-2Dwg_rfc5277bis_blob_master_draft-2Dietf- > 2Dnetconf-2D&d=DwIGaQ&c=HAkYuh63rsuhr6Scbfh0UjBXeMK- > ndb3voDTXcWzoCI&r=9zkP0xnJUvZGJ9EPoOH7Yhqn2gsBYaGTvjISlaJdcZo&m=2 > ZAWwt38BLRzZXn66- > kWUPEWuw26F0Uqjsvtmi_oRiQ&s=CRujuBUHMKBXxcF9b6pYHZs1ymTsVWVJq > lGSy_1hxIA&e= > > subscribed-notifications- > > 12.txt<https://urldefense.proofpoint.com/v2/url?u=https- > > 3A__github.com_netconf-2Dwg_rfc5277bis_blob_master_draft-2Dietf- > > 2Dnetconf-2Dsubscribed-2Dnotifications- > > 2D12.txt&d=DwMGaQ&c=HAkYuh63rsuhr6Scbfh0UjBXeMK- > > > ndb3voDTXcWzoCI&r=9zkP0xnJUvZGJ9EPoOH7Yhqn2gsBYaGTvjISlaJdcZo&m=8 > > SC9EE43RlHG68Oyp-zOqWCQ3RTjFqQJdzR_OSyqSvs&s=Yi- > > KexLmb4wsVjjBDcM9ybo2emjF11UUjA1GXfKNedE&e=> > > > > > > > > > From: Kent Watsen, April 6, 2018 11:33 PM > > > Alex/Eric, > > > > > > I apologize for the long delay, but I just got back from PTO. Please > > > find my comments below (<KENT>), and know that I'm not up to speed on > > > conversations you've been having with others, so please just let me > > > know of the current status of things where applicable. > > > > > > Thanks, > > > Kent // as a contributor > > > > > > > > > On 3/18/18, 5:53 AM, "Alexander Clemm" > > > <ludwig@clemm.org<mailto:ludwig@clemm.org>> wrote: > > > > > > Kent, thank you for your thorough review and Eric, thank you for your > > > thorough responses! > > > > > > I agree that most of these are for the most part very small items and > > > Eric has really answered all of them already. Just adding some small > > > points on a few items, look for <ALEX> > > > > > > Thanks > > > --- Alex > > > > > > From: Netconf > > > <netconf-bounces@ietf.org<mailto:netconf-bounces@ietf.org>> On Behalf > > > Of Eric Voit (evoit) > > > Sent: Friday, March 16, 2018 11:41 AM > > > To: Kent Watsen <kwatsen@juniper.net<mailto:kwatsen@juniper.net>>; > > > netconf@ietf.org<mailto:netconf@ietf.org> > > > Subject: Re: [Netconf] LC on subscribed-notifications-10 > > > > > > > > > Hi Kent, > > > > > > > > > > > > Thanks so much for the detailed review. Thoughts in-line. At this > > > point there doesn’t seem to be anything insurmountable... > > > > > > > > > > > > A working copy draft which embeds / covering the points documented > > > below is at: > > > > > > https://urldefense.proofpoint.com/v2/url?u=https- > 3A__github.com_netconf-2Dwg_rfc5277bis_blob_master_draft-2Dietf- > 2Dnetconf-2D&d=DwIGaQ&c=HAkYuh63rsuhr6Scbfh0UjBXeMK- > ndb3voDTXcWzoCI&r=9zkP0xnJUvZGJ9EPoOH7Yhqn2gsBYaGTvjISlaJdcZo&m=2 > ZAWwt38BLRzZXn66- > kWUPEWuw26F0Uqjsvtmi_oRiQ&s=CRujuBUHMKBXxcF9b6pYHZs1ymTsVWVJq > lGSy_1hxIA&e= > > subscribed-notifications- > > 11.txt<https://urldefense.proofpoint.com/v2/url?u=https- > > 3A__github.com_netconf-2Dwg_rfc5277bis_blob_master_draft-2Dietf- > > 2Dnetconf-2Dsubscribed-2Dnotifications- > > 2D11.txt&d=DwMFAg&c=HAkYuh63rsuhr6Scbfh0UjBXeMK- > > > ndb3voDTXcWzoCI&r=9zkP0xnJUvZGJ9EPoOH7Yhqn2gsBYaGTvjISlaJdcZo&m= > > DoO-FEinwnsQ1xowtT- > > > 9KNCYTYuzNrC979exYSodTS0&s=63Abs5RCtg85f0BkF6fUWZe7vLlQ2su2BKhdV > > vzHdN0&e=> > > > > > > > > > > > > Also a legend for the comments below: > > > > > > > > > > > > **** indicates a significant item (others might want to read/chime in). > > > > > > Blue indicates text which is now in the draft (verbatim). > > > > > > Orange indicates an open question, where I am asking for feedback > > > before making changes. > > > > > > Note: where I use colors, the wording should still be fine for those > > > WG members using plain text email clients. > > > > > > > > > > > > Still pending: > > > > > > - Martin’s comments > > > > > > - YANG doctor comments > > > > > > > > > > > > > Kent Watsen, March 14, 2018 9:52 PM > > > > > > > > > > > > > > Here's my review of this draft. > > > > > > > > > > > > > > I'm aware that there may be some overlap with recent messages from Rob > > > > and > > > > > > > Martin. Please respond to them anyways, if only to explain the > > > > resolution > > > > > > > made. > > > > > > > > > > > > > > BTW, when I make an open-ended question, what I'm many times looking > > > > for > > > > > > > is draft-text that answers the question. Yes, I want to know the > > > > answer but, > > > > > > > more importantly, I want the answer recorded in the draft. > > > > > > > > > > > > > > PS: I'm prioritizing reviewing all three drafts over trying to reply > > > > to responses > > > > > > > from earlier reviews. > > > > > > > > > > > > > > Thanks, > > > > > > > Kent // contributor (but revving-up for shepherd write-up) > > > > > > > > > > > > > > > > > > > > > <chair-hat> Authors, can you please start planning a presentation to > > > > review any > > > > > > > of the larger open issues during the meeting in London? </chair-hat> > > > > > > > > > > > > Will do > > > > > > > > > > > > > Title: the word "custom" is throwing me, what does it mean? I see the > > > > word in > > > > > > > the Abstract and similar text in the Introduction. In total, the > > > > substring > > > > > > > "custom" appears six times in the draft, all in the Title, Abstract, > > > > and > > > > > > > Introduction, so the word doesn't seem to carry much weight in the > > > > body of > > > > > > > the draft itself. Is there a better word? Perhaps > > > > "Subscriber-specific" or > > > > > > > "Receiver-specific"? Or maybe you want to say "Customized > > > > Subscriptions to a > > > > > > > Publisher's Event Streams"? > > > > > > > > > > > > Both paths work. I switched it to: > > > > > > Customized Subscriptions to a Publisher's Event Streams > > > > > > <KENT> fine > > > > > > > > > > > > > Abstract: The first sentence has three issues: first, there's the > > > > > > > custom/subscriber-specific comment from before; second, the word > > > > > > > "capabilities" in the first sentence is unclear (if you mean > > > > NETCONF/yang- > > > > > > > library capabilities, this document does not define any); and third, > > > > the word > > > > > > > "operations" is ambiguous, the draft uses this word sometimes to mean > > > > RPCs, > > > > > > > but other times not. Putting it all together, maybe this is better? > > > > > > > > > > > > > > This document defines mechanisms enabling subscriber-specific > > > > > > > subscriptions to a publisher's event streams. > > > > > > > > > > > > Based on Robert's comments on add the YANG Data model, I morphed your > > > proposal to: > > > > > > > > > > > > This document defines mechanisms and a YANG Data Model enabling > > > subscriber-specific subscriptions to a publisher's event streams. > > > > > > <KENT> first, "data model" shouldn't be capitalized here. That said, > > > I question if "YANG data model" is needed at all, since "mechanisms" > > > is even more general, and saying both seems like a mouthful. Perhaps > > > the two could be turned around. something like "This document defines > > > a YANG data model and associated mechanisms enabling…"? > > > > > > > > > > > > <Eric2> Your text is adopted. > > > > > > > > > > > > > Also, in the last sentence, s/Effectively/Combined/ and > > > > s/request/request for/? > > > > > > > > > > > > Tweaked > > > > > > <KENT> thx > > > > > > > > > > > > > Introduction: Similar issues with the first sentence as with the > > > > Abstract. Also, > > > > > > > missing is a statement regarding this draft's compatibility to NMDA > > > > (see > > > > > > > rfc6087bis) > > > > > > > > > > > > Replicated the first sentence of the abstract to the introduction. > > > Also added a final sentence to the Intro which says: > > > > > > > > > > > > The YANG model in this document conforms to the Network Management > > > Datastore Architecture defined in > > > [I-D.ietf-netmod-revised-datastores]. > > > > > > <KENT> thx, but be sure to also replicate any change to the Abstract > > > from above to the Introduction again… > > > > > > > > > > > > <Eric2> Your text is adopted. > > > > > > > > > > > > > > > > > > > Motivation: > > > > > > > > > > > > > > How about this? > > > > > > > OLD: There are various [RFC5277] limitations, many of which have been > > > > > > > exposed in [RFC7923] which needed to be solved. > > > > > > > NEW: Various limitations in [RFC5277] are discussed in [RFC7923]. > > > > > > > Resolving these issues is the primary motivation for this work. > > > > > > > > > > > > updated > > > > > > <KENT> thx > > > > > > > > > > > > > s/document includes/document include/ > > > > > > > > > > > > updated > > > > > > <KENT> thx > > > > > > > > > > > > > in the 2nd bullet, remove "statically"? the word "static" hardly > > > > appears... > > > > > > > > > > > > updated > > > > > > <KENT> thx > > > > > > > > > > > > > in the 3rd bullet point: would appending "in progress" be okay? > > > > > > > > > > > > updated > > > > > > <KENT> thx > > > > > > > > > > > > > Terminology: I think you want to use this one: > > > > > > > > > > > > > > The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL > > > > > > > NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT > > > > > > > RECOMMENDED", > > > > > > > "MAY", and "OPTIONAL" in this document are to be interpreted as > > > > > > > described in BCP 14 [RFC2119] [RFC8174] when, and only when, they > > > > > > > appear in all capitals, as shown here. > > > > > > > > > > > > Updated > > > > > > <KENT> thx > > > > > > > > > > > > > For the "Configured subscription" term, I think that replacing "a > > > > > > > configuration interface which" with "configuration that" is clearer. > > > > > > > If necessary, we could import the term "configuration" from the > > > > > > > revised-datastores draft. > > > > > > > > > > > > I have added the following: > > > > > > > > > > > > Configuration: defined in [I-D.draft-ietf-netmod-revised-datastores] > > > > > > Configuration datastore: defined in > > > [I-D.draft-ietf-netmod-revised-datastores] > > > > > > Configured subscription: A subscription installed via configuration > > > into a configuration datastore. > > > > > > > > > > > > This addresses the reboot persistence subsystem question (which came > > > up in Robert's review) by more tightly coupling the terms to the > > > revised datastore work. Let me know if there are still concerns. > > > > > > <KENT> works for me > > > > > > > > > > > > > > > > > > > For the "Event" term, remove the parenthesis and spell out "e.g."? > > > > > > > > > > > > How about: > > > > > > > > > > > > Event: An occurrence of something that may be of interest. Examples > > > include, a configuration change, a fault, a change in status, crossing > > > a threshold, or an external input to the system. > > > > > > <KENT> better, but I don't think the first comma is needed… > > > > > > > > > > > > <Eric2> Comma removed. > > > > > > > > > > > > > Remove the term "NACM", since it only appears in the Security > > > > > > > Considerations section. > > > > > > > > > > > > Done > > > > > > <KENT> thx > > > > > > > > > > > > > For the "Notification message" term, is the beginning important? > > > > > > > Maybe s/A set of transport encapsulated information/Information/? > > > > > > > > > > > > Done. > > > > > > <KENT> thx > > > > > > > > > > > > > For the "Publisher" term, why is "Subscription" capitalized? Is it > > > > > > > (and all other terms) capitalized consistently throughout the draft? > > > > > > > > > > > > Very early iterations of these drafts had all terminology capitalized. > > > Earlier reviews resulted in downshifting the terms because it hindered > > > readability. The large "S" is likely something left over which got > > > missed. It is now a lower case 's'. > > > > > > <KENT> thx > > > > > > > > > > > > > For the "Stream" term, I'm wondering if this should be renamed "Event > > > > > > > stream" (matching what's in the title), and then search/replace > > > > instances > > > > > > > of just "stream" with "event stream" everywhere else in the document. > > > > > > > This seems better, less ambiguous. > > > > > > > > > > > > **** > > > > > > We went back and forth on this. The term is used so often that always > > > saying "event stream" just made the document more cumbersome to read. > > > In the end, RFC-5277 used both in the terminology, in a similar way. > > > For example: > > > > > > > > > > > > In RFC 5277: "stream" appears 104 times, and "event stream" 47 times. > > > > > > In this doc: "stream appears 297 times, and "event stream" 39 times. > > > > > > > > > > > > As using both terms made things more humanly readable, and it seemed > > > ok for RFC-5277, we choose that path. Let me know if *not* adding > > > event before every use of the word stream is ok with you. > > > > > > > > > > > > <ALEX> Yes, we had multiple discussions on this. “Stream” certainly > > > seems more general. If anything, we could discuss replacing some > > > instances of “event stream” with “stream”, but I think in general from > > > the context it is clear what was meant. I don’t feel strongly either > > > way. </ALEX> > > > > > > > > > > > > <KENT> when it comes to terms in technical documentation, I have found > > > that being annoyingly long-winded and yet completely unambiguous is a > > > win. I would personally do it, but I'm okay with getting others > > > opinions and going with the WG consensus. > > > > > > > > > > > > <Eric2> To make thing unambiguous, and to progress towards closure, I > > > converted to “event stream”. You can see the results in: > > > https://urldefense.proofpoint.com/v2/url?u=https- > 3A__github.com_netconf-2Dwg_rfc5277bis_blob_master_draft-2Dietf- > 2Dnetconf-2D&d=DwIGaQ&c=HAkYuh63rsuhr6Scbfh0UjBXeMK- > ndb3voDTXcWzoCI&r=9zkP0xnJUvZGJ9EPoOH7Yhqn2gsBYaGTvjISlaJdcZo&m=2 > ZAWwt38BLRzZXn66- > kWUPEWuw26F0Uqjsvtmi_oRiQ&s=CRujuBUHMKBXxcF9b6pYHZs1ymTsVWVJq > lGSy_1hxIA&e= > > subscribed-notifications- > > 12.txt<https://urldefense.proofpoint.com/v2/url?u=https- > > 3A__github.com_netconf-2Dwg_rfc5277bis_blob_master_draft-2Dietf- > > 2Dnetconf-2Dsubscribed-2Dnotifications- > > 2D12.txt&d=DwMGaQ&c=HAkYuh63rsuhr6Scbfh0UjBXeMK- > > > ndb3voDTXcWzoCI&r=9zkP0xnJUvZGJ9EPoOH7Yhqn2gsBYaGTvjISlaJdcZo&m=8 > > SC9EE43RlHG68Oyp-zOqWCQ3RTjFqQJdzR_OSyqSvs&s=Yi- > > KexLmb4wsVjjBDcM9ybo2emjF11UUjA1GXfKNedE&e=> > > > > > > > > > > > > > > > > > > > For the "Subscribed event records" term, I recommend removing it, as > > > > > > > it only appears three times in the draft and, besides, you already > > > > have > > > > > > > the "Event record" term. > > > > > > > > > > > > Done. (Re-reading, I don't think anything is lost by removing the > > > term either.) > > > > > > <KENT> thx > > > > > > > > > > > > > For the "Subscriber" term, shouldn't you have a 2nd sentence like in > > > > > > > the "Receiver" term? > > > > > > > > > > > > Added the same sentence to the receiver term. > > > > > > <KENT> thx > > > > > > > > > > > > > Since the tree diagrams are scattered throughout the document, it > > > > would > > > > > > > be good to add the following here: > > > > > > > > > > > > > > Tree diagrams used in this document follow the notation defined in > > > > > > > [I-D.ietf-netmod-yang-tree-diagrams]. > > > > > > > > > > > > Done > > > > > > <KENT> thx > > > > > > > > > > > > > > > > > > > > Solution Overview > > > > > > > > > > > > > > what does "instantiated" mean in the 1st paragraph. suggest removing > > > > > > > if not needed. > > > > > > > > > > > > It just meant "which exists". Removed. > > > > > > <KENT> thx > > > > > > > > > > > > > in (1), s/RPC/an RPC/. Also, is "wants" the right word, maybe "is > > > > able"? > > > > > > > > > > > > Made: "is able" > > > > > > <KENT> thx > > > > > > > > > > > > > > > > > > > same with "wish" in the next sentence. > > > > > > > > > > > > Made "is not able" > > > > > > <KENT> thx > > > > > > > > > > > > > Also, in the last sentence, > > > > > > > s/ which would have been accepted/ that, had they been present, would > > > > > > > have enabled the dynamic subscription request to be accepted/? > > > > > > > > > > > > Updated > > > > > > <KENT> thanks > > > > > > > > > > > > > in (2), s/a configuration interface/configuration/. > > > > > > > > > > > > Done > > > > > > <KENT> thx > > > > > > > > > > > > > Also, replace "this > > > > > > > capability" with "configured subscriptions", and maybe append "based > > > > on > > > > > > > the use of a YANG feature"? > > > > > > > > > > > > Made it: > > > > > > Support for configured subscriptions is optional, with its > > > availability advertised via a YANG feature. > > > > > > <KENT> thx > > > > > > > > > > > > > "For connection-oriented stateful transport" : s/For/For a/ or > > > > > > > s/transport/transports/? > > > > > > > > > > > > Chose: transports > > > > > > <KENT> thx > > > > > > > > > > > > > Looking at "Also note that transport specific transport drafts based > > > > > > > on this specification MUST detail the life cycles of both dynamic and > > > > > > > configured subscriptions." - do the netconf-event-notifications and > > > > > > > restconf-event-notifications drafts do this? > > > > > > > > > > > > Yes. It is in non-normative text, but the flow diagrams in both > > > drafts' appendices do this. > > > > > > <KENT> okay > > > > > > > > > > > > > Last paragraph, s/The publisher/A publisher/ > > > > > > > > > > > > Done > > > > > > <KENT> thx > > > > > > > > > > > > > Relationship to RFC-5277: > > > > > > > > > > > > > > In the first bullet point, the "data model" for what, configuration > > > > > > > or a notification? (same issue is in the last bullet point as well) > > > > > > > > > > > > As there is no configuration of RFC-5277 subscriptions, it was for the > > > notifications. So I made the bullet: > > > > > > > > > > > > the data model in this document replaces the Notification Management > > > Schema of [RFC5277], Section 3.4. > > > > > > <KENT> how about this instead? "the data model in this document > > > replaces the notification management schema described in Section 3.4 > > > of [RFC5277]." > > > > > > > > > > > > <Eric> Further tweaking of the wording happened with Martin. > > > Including your suggestion above, it now says: > > > > > > > > > > > > “the data model in this document is used instead of the data model in > > > Section 3.4 of [RFC5277] for the new operations.” > > > > > > > > > > > > And I made the last bullet: > > > > > > > > > > > > a publisher MAY implement both the Notification Management Schema and > > > RPCs defined in [RFC5277] and this new document concurrently,... > > > > > > <KENT> hmmm, is there an easier way to say this? perhaps: " a > > > publisher MAY implement both [RFC5277] and this new document > > > concurrently,…" > > > > > > > > > > > > <Eric> As RFC5277’s notification capability is still always used, some > > > modifier is needed to show what actually can and cannot be used > > > together between the drafts. Not sure how to simplify more. > > > > > > > > > > > > > > > > > > > The 4th bullet point isn't true (see Event Streams below) > > > > > > > > > > > > **** > > > > > > I believe that it is true. See discussion below. > > > > > > <KENT> okay, I'll wait for the discussion below… > > > > > > > > > > > > > > > > > > > Solution: > > > > > > > > > > > > > > Can you add a paragraph here to introduce what all is in Section 2, > > > > > > > how it's organized, or whatever might be helpful? > > > > > > > > > > > > <KENT> no response to this comment? > > > > > > > > > > > > <Eric2> I should have pointed out that comments very early in the > > > review cycle had me pull the introduction of Section 2 just above into > > > Section 1.3 “Solution Overview”. So placing details here initially > > > seemed redundant. > > > > > > > > > > > > So to cover your request, I just added to the beginning of Section 2: > > > “Per the overview provided in Section 1.3, this section details the > > > overall context, state machines, and subsystems which may be assembled > > > to allow the subscription of events from a publisher.” > > > > > > > > > > > > > Event Streams: > > > > > > > > > > > > > > The 2nd paragraph says "except for where it has been explicitly > > > > > > > indicated that this the event record MUST be excluded from the > > > > > > > NETCONF stream". This is a redefinition of what RFC5277 says, > > > > > > > has this been discussed? How is this done (syntax/text)? Has > > > > > > > it been done already? > > > > > > > > > > > > **** > > > > > > > > > > > > <ALEX> I believe it is true by virtue of the fact that we are not > > > defining the NETCONF stream anywhere in this document. You can refer > > > to the NETCONF stream by name. The NETCONF stream simply refers to > > > the stream defined in RFC 5277. > > > > > > > > > > > > Note that in an earlier revision we were using identityrefs and > > > identities to refer to stream. At that point, we were defining a > > > NETCONF stream as part of the datamodel here (even then, referring to > > > the definition of RFC 5277). However, the WG decided to take it out > > > and have a reference by string. We were also defining other streams > > > at that point, but again the WG decided to remove the definition of > > > streams as part of the model, leaving it to implementations to > > > introduce arbitrary streams. (As a side note, I would not be > > > surprised if at some point in the future there will be an attempt to > > > standardize the definition of new streams). > > > > > > </ALEX> > > > > > > > > > > > > Subscription state change notifications as per Section 2.7 are > > > explicitly excluded from anyone but the target receiver. Since the > > > notifications are per-receiver, they cannot be placed into any NETCONF > > > stream (for either RFC-5277 or subscribed-notifications). And as they > > > are excluded from the NETCONF stream, I do not see an issue with the > > > Bullet 4 comment above. > > > > > > > > > > > > To make this clearer in the draft text, here is some proposed/tweaked > > > text for the start of Section 2.7... > > > > > > > > > > > > Subscription state notifications are unlike other notifications in > > > that they are never included in any stream. Instead, they are > > > inserted (as defined in the section below) within the sequence of > > > notification messages sent to a particular receiver. Subscription > > > state notifications cannot be filtered out... > > > > > > > > > > > > <KENT> this is better for s2.7, but my concern is here in 2.1. > > > perhaps instead of " except for where it has been explicitly indicated > > > that this the event record MUST be excluded from the NETCONF stream", > > > you mean "except for the subscription state notifications described in > > > Section 2.7."??? > > > > > > > > > > > > <Eric2> Made this change. Text now says: > > > > > > > > > > > > There is only one reserved event stream name within this document: > > > "NETCONF". The "NETCONF" event stream contains all NETCONF XML event > > > record information supported by the publisher, except for the > > > subscription state notifications described in Section 2.7. Among > > > these included NETCONF XML event records are individual YANG 1.1 > > > notifications described in section 7.16 of [RFC7950]. Each of these > > > YANG 1.1 notifications will be treated as a distinct event record. > > > > > > > > > > > > > > > > > > > s/treated a distinct/treated as a distinct/ > > > > > > > > > > > > Done > > > > > > <KENT> thx > > > > > > > > > > > > > > > > > > > Event Stream Filters > > > > > > > > > > > > > > The 1st and 2nd sentences seems to be at odds with each other. > > > > > > > > > > > > **** > > > > > > I don't believe they are at odds. But I can tweak the wording. How > > > about making the second sentence: > > > > > > > > > > > > A match on a filter always results in an action upon a complete event > > > record. Information is never stripped from within an event record > > > prior to that event record being encapsulated within a notification > > > message. > > > > > > <KENT> I like it > > > > > > > > > > > > > QoS > > > > > > > > > > > > > > What does " MUST work identically" mean? > > > > > > > is HTTP a mandatory transport? > > > > > > > RFC 7540 Section 5.3.3 talks about a PRIORITY frame, > > > > > > > which is defined in Section 6.3 of that draft. How is this > > > > > > > suppose to work in a transport-agnostic way? > > > > > > > > > > > > **** > > > > > > It would be excellent if we can adopt the a subset of prioritization > > > types in HTTP2 without having to redefine the details of the algorithm > > > in this document. I believe this is possible, but I understand that > > > you want refined wording to make sure this is accomplished explicitly. > > > Proposed are two snippets of revised text which hopefully accomplishes > > > this: > > > > > > > > > > > > Snippet 1: > > > > > > Dequeuing of notification messages across independent subscriptions to > > > a receiver SHOULD be allocated bandwidth proportionally based on each > > > subscription's weight. For more information on the proper treatment, > > > see stream dependency weighting within RFC 7540, section 5.3.2. > > > > > > <KENT> fine > > > > > > > > > > > > Snippet 2 > > > > > > If a subscription has a dependency, then any buffered notification > > > messages containing event records selected by the parent subscription > > > SHOULD be dequeued prior to the notification messages of the dependent > > > subscription. If notification messages have dependencies on each > > > other, the older notification message MUST go first. For more > > > information on the proper treatment to stream dependency as described > > > within [RFC7540], section 5.3.1. If a dependency included within an > > > RPC references a subscription which does not exist or is not visible > > > to that subscriber, that dependency may be silently removed. > > > > > > <KENT> also fine > > > > > > > > > > > > Also HTTP is not mandatory. In fact with the text change, the > > > reference to RFC-7950 now becomes informative rather than normative. > > > > > > <KENT> good > > > > > > > > > > > > > Dynamic Subscriptions > > > > > > > > > > > > > > s/RPC/RPCs/ > > > > > > > > > > > > ok > > > > > > <KENT> thx > > > > > > > > > > > > > > > > > > > Please provide more detail about how extensibility is accomplished, > > > > > > > or an example showing the augmentation occurring. > > > > > > > > > > > > **** > > > > > > Rather than talk about how augmentation might be done in theory, it > > > should be cleaner to the reference to YANG-Push augmentations. So I > > > added the following sentence... > > > > > > > > > > > > For examples of such augmentations, see the RPC augmentations within > > > [I-D.ietf-netconf-yang-push]'s YANG model. > > > > > > <KENT> I generally shy away from upward refs, but yang-push is an > > > informative ref, so I'll blink on this one. > > > > > > > > > > > > > > > > > > > For all the subsections, should the title be s/Subscription/Dynamic > > > > > > > Subscription/? > > > > > > > > > > > > Done > > > > > > <KENT> thx > > > > > > > > > > > > > > > > > > > Dynamic Subscription State Model > > > > > > > > > > > > > > What does "asserted" mean? - remove/replace? > > > > > > > > > > > > Removed > > > > > > <KENT> thx > > > > > > > > > > > > > > > > > > > I'm confused by the diagram and subtitle's use of the word "receiver", > > > > > > > when the first sentence of the paragraph above says that the SM is for > > > > > > > the publisher... > > > > > > > > > > > > This is for the Publisher: the publisher must maintain the state of > > > whether a receiver is currently active or suspended. > > > > > > > > > > > > I changed the title to: "Publisher's state for a dynamic subscription" > > > which should help here. Other reviewers requested the addition of the > > > word receiver to the states themselves. This is so people could make > > > a 1:1 correlation with the states of the configured subscription state > > > machine. > > > > > > > > > > > > <KENT>title is better, though maybe "Publisher's state for a > > > receiver's dynamic subscription" would be better? (not sure) > > > > > > > > > > > > <Eric2> I kind of like the simplicity of the current text. Will > > > change if you have a very strong preference. > > > > > > > > > > > > > > > > > > > Only two notifications? > > > > > > > > > > > > Only two notifications indicate a change in the state of the > > > subscription. > > > > > > <KENT> okay, but then can you add somewhere that only two > > > notifications are represented because they're the only ones indicating > > > a change in the state of the subscription? > > > > > > > > > > > > <Eric2> Text now says: > > > > > > > > > > > > The two state change notifications "subscription-suspended" and > > > "subscription-resumed" are shown. These are under the control of a > > > publisher. These are the only two state change notifications which > > > indicate a change in state of a dynamic subscription. > > > > > > > > > > > > > > > > > > > Looking at the graphic, how is the reader to > > > > > > > distinguish these as notifications? > > > > > > > > > > > > Added a * to the two notifications, and text at the bottom of the > > > drawing which says: > > > > > > > > > > > > * indicates a state-change-notification > > > > > > > > > > > > <KENT> better, but somehow not satisfying… Mentally removing these two > > > notifications from the diagram entirely, I notice that there is no > > > other arrow going from ACTIVE to SUSPENDED; it seems like you might > > > need one, perhaps labeled something like "<internal state event>"? > > > Assuming this is done, could we then remove listing these > > > notifications from the diagram? > > > > > > > > > > > > <Eric2> My reading of your comment is that you don’t like the > > > identification of the “suspend subscription” transition cause via the > > > “subscription-suspended*” notification. To clarify, I have removed > > > all state change notifications from the diagram, and described them in > > > the text below... > > > > > > > > > ......... > > > : start : > > > :.......: > > > | > > > establish-subscription > > > | > > > | .------modify-subscription-------. > > > v v | > > > .-----------. .-----------. > > > .--------. | receiver |--suspend-subscription->| receiver | > > > modify- '| ACTIVE | | SUSPENDED | > > > subscription | |<--resume-subscription--| | > > > ---------->'-----------' '-----------' > > > | | > > > delete/kill-subscription delete/kill- > > > | subscription > > > v | > > > ......... | > > > : end :<-------------------------------' > > > :.......: > > > > > > Figure 1: Publisher's state for a dynamic subscription > > > > > > Of interest in this state machine are the following: > > > ...(snip)... > > > > > > o A publisher may choose to suspend a subscription, this is notified > > > to a subscriber with a "subscription-suspended" state change > > > notification. > > > > > > o A resume subscription state change is notified to a subscriber > > > "subscription-resumed". There are no direct external controls over > > > resuming a subscription other than for a subscriber to attempt the > > > modification of a subscription in a way which reduces the resources > > > consumed. > > > > > > > > > > > > > > > > > > > > > > > > > > > <KENT> Separately, can you left indent "modify-subscription" a column > > > or two? - it's difficult to read when up against the "receiver ACTIVE" > > > box… > > > > > > > > > > > > <Eric2> Done, above > > > > > > > > > > > > > The last sentence of the last bullet doesn't square with what's in the > > > > > > > graphic. is "modify-subscription" suppose to be bidirectional? > > > > > > > > > > > > The diagram is correct. I have changed the sentence to: > > > > > > > > > > > > There are no direct controls over resuming a subscription other than > > > to attempt a modification of a subscription in a way which reduces the > > > resources consumed. > > > > > > <KENT> okay > > > > > > > > > > > > > > > > > > > Establishing a Subscription > > > > > > > > > > > > > > I take it that the last two sentences of the first paragraph are > > > > > > > intended as requirements for transport-bindings. Is that correct? > > > > > > > > > > > > Yes > > > > > > > > > > > > > If so, then please say so. > > > > > > > > > > > > Morphed to: > > > > > > > > > > > > The transport selected by the subscriber to reach the publisher MUST > > > support multiple establish subscription RPC requests made within the > > > same transport session. In addition, the transport MUST support the > > > pipelining of RPC requests made on independent subscriptions. > > > > > > (As interleave seems to have NETCONF implications, am trying to move > > > ay from that to pipelining which is a general computer science term.) > > > > > > <KENT> good > > > > > > > > > > > > > > > > > > > The tree diagram is not identified as a tree diagram. Nowhere in this > > > > > > > document is the tree-diagrams draft referenced. This needs to be > > > > fixed. > > > > > > > > > > > > Tree diagram reference added to the definitions section. And also > > > added as part of each figure name. And each tree diagram also has > > > text and a hyperlink near it pointing to the YANG model for more > > > details. > > > > > > <KENT> better > > > > > > > > > > > > > > > > > > > Are your tree diagrams dynamically-generated? - is there any concern > > > > > > > that they are out-of-date? > > > > > > > > > > > > Generated from Pyang. Manually snipped from the output. Concerns are > > > discussed more below. Next drafts I am certainly changing my > > > integration environment. > > > > > > <KENT> the question more regards if they've been generated (via pyang > > > or whatever) recently… > > > > > > > > > > > > <Eric2> With the tool Martin pointed me to for automatically > > > generating to a fixed column width, life is much easier now. > > > > > > > > > > > > > Since you're not describing the contents of the data model here, the > > > > > > > text should say that a complete description of all the nodes is > > > > provided > > > > > > > in the YANG module, with a reference. > > > > > > > > > > > > Every tree in the document now has something like: > > > > > > > > > > > > Below is a tree diagram for "establish-subscription". All objects > > > contained in this tree are described within the included YANG model > > > within <xref target="data_model"/>. > > > > > > <KENT> good. > > > > > > > > > > > > > > > > > > > why is this "establish-subscription-error-stream" yang-data name > > > > having > > > > > > > "-stream" at the end? (same issue with the other yang-data). It's > > > > > > > a rather confusing name. Maybe "-info" would be better? > > > > > > > > > > > > **** > > > > > > We have to have a different yang-data structures for hints provided on > > > datastores and on streams. Because of that -info is not sufficient. > > > And while it is possible to place stream and datastore at the > > > beginning of the yang-data name, it is kind-of nice to have the > > > error-info hints start off with the same characters. > > > > > > > > > > > > That said, I have no problem if people want to rename the yang-data > > > both here and in yang-push to: > > > > > > > > > > > > stream-establish-subscription-error-info > > > > > > and > > > > > > datastore-establish-subscription-error-info > > > > > > > > > > > > Is this what you prefer? > > > > > > > > > > > > <ALEX> I think this can be renamed. Really, these are hints, not > > > streams. Maybe call this “establish-event-subscription-info” and > > > “establish-datastore-subscription-info”? > > > > > > </ALEX> > > > > > > <KENT> I recall this being discussed in London. What's the current > > > thinking on this? > > > > > > > > > > > > > > > > > > > > > > > > > Also, just so I'm clear, each transport-binding needs to indicate if > > > > and > > > > > > > how the yang-data structs are returned, right? Where is this done in > > > > > > > the netconf-notif and restconf-notif drafts? > > > > > > > > > > > > Yes > > > > > > <KENT> what about the second question? > > > > > > > > > > > > <Eric2> In the netconf-notif draft, it is in Section 8. The text > > > including this is not yet published in Restconf-notif. > > > > > > > > > > > > > Replay Subscription > > > > > > > > > > > > > > Should the title being "Replaying Subscriptions", to match the verb > > > > > > > tense of the other subsections? > > > > > > > > > > > > Tweaked to "Requesting a replay of event records". Because this is > > > not a new RPC, I figure such differentiation from the other > > > subsections is helpful. > > > > > > <KENT> fine > > > > > > > > > > > > > > > > > > > s/Replay puts no/Supporting replay puts no/ or /The document puts no/? > > > > > > > > > > > > Chose the " The document puts no " > > > > > > <KENT> the current sentence doesn't read right, it looks like you > > > accidentally dropped the word "restrictions"… > > > > > > > > > > > > <Eric2> Yes, I dropped it. Re-added. > > > > > > > > > > > > > > > > > > > Current text says: > > > > > > > """ > > > > > > > The inclusion of a replay-start-time within an "establish- > > > > > > > subscription" RPC indicates a replay request. If the "replay-start- > > > > > > > time" contains a value that is earlier than content stored within the > > > > > > > publisher's replay buffer, then the subscription MUST be rejected, > > > > > > > and the leaf "replay-start-time-hint" MUST be set in the reply. > > > > > > > """ > > > > > > > Why not just start with what you have, prepended by a special "event > > > > > > > record" that says there is a gap? > > > > > > > > > > > > **** > > > > > > This discussion went around on the alias a few times. E.g., the > > > thread from mid-October titled " Martin's thoughts on > > > subscribed-notifications" > > > > > > > > > > > > An underlying design goal of subscribed-notifications and yang-push is > > > to deliver no less than what subscriber explicitly requested. > > > Especially when YANG-Push is layered in, if we start delivering less > > > for some combination of parameters, we have no certainty that the > > > subscriber is getting what it needs. > > > > > > > > > > > > For this parameter, if we start replaying more recently than what has > > > been requested, we don't really know if that is what the subscriber > > > wants. This doesn't give them the chance to reject the subscription > > > while being sent stuff which is not helpful to them without the > > > earlier history. And you are correct, while we could define a special > > > event record replay actually began on success, we are not delivering > > > on the implicit promise of the subscription "ok". But by using the > > > no-success result with the included "replay-start-time-hint", we are > > > matching the design paradigm without adding special constructs. > > > > > > > > > > > > <KENT> I understand what you're saying, but I think that I disagree > > > with the conclusion. I think that the common case is the receiver > > > wanting to pickup where it left off, or the best the publisher can, > > > and if not lossless, to be informed that there's a gap (and the size > > > of the gap) for its records. The current logic optimizes for what I > > > think is an unusual case and, assuming it's flipped to be as I'm > > > suggested, such receivers can themselves immediately cancel the > > > subscription as soon as being told that there is a gap. Besides, by > > > forcing the receiver to have to perform another round-trip, doesn't > > > that potentially increase the size of the gap? > > > > > > > > > > > > <Eric2> Yes later dialogs with Martin convinced me exactly that > > > another round-trip can drive churn unnecessarily. The latest version > > > posted starts replay immediately. To cover the issue discussed above, > > > there is a new parameter returned *only* if the replay start time has > > > been modified. This parameter is: “replay-start-time-revision”. > > > > > > > > > > > > > > > > > > > OLD: it MAY also be earlier than the current time and MUST > > > > > > > NEW: it MAY be earlier than the current time, but MUST > > > > > > > > > > > > Done > > > > > > <KENT>better, but you missed removing the word "also" > > > > > > > > > > > > <Eric2> I don’t see “also” in the current v11. > > > > > > > > > > > > <KENT> separately, it looks like to touched the next paragraph (not > > > sure why, but I'm okay with it) and accidentally introduced a typo: > > > "after the after" > > > > > > > > > > > > <Eric2> corrected before the current v11. > > > > > > > > > > > > > "subscribers can perform a get on" - rephrase, and use "RPC" somewhere > > > > > > > > > > > > Made it: > > > > > > > > > > > > To assess the availability of replay, subscribers can retrieve the > > > "replay-log-creation-time" and "replay-log-aged-time" objects from the > > > YANG model. > > > > > > <KENT> better, but maybe s/objects/nodes/? > > > > > > > > > > > > <eric2> Based on other comments, it now is: To assess the timeframe > > > available for replay, subscribers can read the leafs > > > "replay-log-creation-time" and "replay-log-aged-time". > > > > > > > > > > > > With that, I don't think RPC is needed. > > > > > > <KENT> agreed. > > > > > > > > > > > > > > > > > > > Modifying a Subscription > > > > > > > > > > > > > > First sentence, no need for the word "previously" > > > > > > > > > > > > Done > > > > > > <KENT> thx > > > > > > > > > > > > > > > > > > > s/one or multiple times/multiple times -or- any number of times/? > > > > > > > > > > > > Chose "any number" > > > > > > <KENT> thx > > > > > > > > > > > > > > > > > > > s/via RPC using/via an RPC on/? > > > > > > > > > > > > Done > > > > > > <KENT> thx > > > > > > > > > > > > > > > > > > > The tree diagram is not identified as a tree diagram. And since the > > > > > > > data model isn't explained, there should be a statement for the reader > > > > > > > to look at the YANG module for details, ideally with a hyperlink. > > > > > > > > > > > > Now done for every tree diagram in the document > > > > > > <KENT> excellent > > > > > > > > > > > > > > > > > > > Deleting a Subscription > > > > > > > > > > > > > > First sentence, no need for the word "previously" > > > > > > > > > > > > > > Under what conditions could a publisher reject a delete-subscription > > > > > > > request? should there delete-subscription-error-stream hints? > > > > > > > > > > > > > > The tree diagram is not identified as a tree diagram. And since the > > > > > > > data model isn't explained, there should be a statement for the reader > > > > > > > to look at the YANG module for details, ideally with a hyperlink. > > > > > > > > > > > > > > Last paragraph, no need for the word "previously" > > > > > > > > > > > > Done > > > > > > <KENT> thx > > > > > > > > > > > > > > > > > > > Killing a Subscription > > > > > > > > > > > > > > Regarding: > > > > > > > "This operation MUST be secured so that only connections with > > > > > > > sufficiently privileged access rights are able to invoke this RPC." > > > > > > > This needs to be in the Security Considerations section and, given > > > > > > > that, doesn't need to be here, right? If you really want it here, > > > > > > > then please indicate that such guidance is provided in the SC section. > > > > > > > > > > > > Moved to Security Considerations > > > > > > <KENT> thx > > > > > > > > > > > > > > > > > > > Replace the paragraph beginning with "The tree structure of" with the > > > > > > > actual tree diagram for this RPC.. > > > > > > > > > > > > Done > > > > > > <KENT> thx > > > > > > > > > > > > > > > > > > > RPC Failures > > > > > > > > > > > > > > Please also call-out RESTCONF error handling (RFC8040 Section 7.1). > > > > > > > > > > > > Done > > > > > > <KENT> thx > > > > > > > > > > > > > > > > > > > The 2nd paragraph is confusing. mechanism? how are the 1st and 2nd > > > > > > > sentences related? What does the 2nd sentence really mean, esp. wrt. > > > > > > > the MUST? > > > > > > > > > > > > Rewrote the paragraph to: > > > > > > > > > > > > Specific errors included within this document's YANG model MUST be > > > returned as part of the RPC error response. Following are valid errors > > > which can occur for each RPC: > > > > > > <KENT> better > > > > > > > > > > > > > > > > > > > I can't find any examples of these errors in use. The > > > > > > > netconf-event-notifications draft only has examples for > > > > > > > the "establish-subscription-error-datastore" and > > > > > > > "modify-subscription-error-datastore" errors. > > > > > > > > > > > > Figure 10 in the netconf-event-notifications draft works equally for > > > subscribed-notifications, as well as yang-push. I have identified > > > that example in that document as being relevant to either streams or > > > datastores with the sentence in that draft: "This subscription may > > > have been to either a stream or a datastore." > > > > > > <KENT> okay… > > > > > > > > > > > > Here this document, I have added the sentence: > > > > > > > > > > > > To see a NETCONF based example of an error response from above, see > > > [I-D.draft-ietf-netconf-netconf-event-notifications], Figure 10. > > > > > > <KENT> good. Better would be to also have a reference to a > > > RESTCONF-based example. > > > > > > > > > > > > <eric2> Understood. Didn’t know how to do that and not introduce a > > > publication dependency. > > > > > > > > > > > > > Perhaps the > > > > > > > examples in that draft need to be split into examples related > > > > > > > to yang-push vs examples related to subscribed-notifications. > > > > > > > > > > > > As the error mechanisms are identical between the drafts, splitting > > > things in that document might prove more confusing. That is one > > > reason I identify the error response as being identical for streams > > > and datastores above. Perhaps additional examples, git repositories, > > > or applications located outside the drafts? > > > > > > <KENT> maybe, dunno, I'd have to look at that draft again… > > > > > > > > > > > > > > > > > > > Configured Subscriptions > > > > > > > > > > > > > > 1st paragraph: s/configuration interface/configuration/g (two cases) > > > > > > > > > > > > Done > > > > > > <KENT> thx > > > > > > > > > > > > > > > > > > > the note under the 3rd bullet point seems unnecessary but, if keeping > > > > > > > it, then just say that receivers are unaware of the existence of any > > > > > > > other receivers. > > > > > > > > > > > > Done. Used your proposed text. > > > > > > <KENT> thx > > > > > > > > > > > > > > > > > > > s/In addition to subscription/In addition to the subscription/ > > > > > > > s/as described in/described in/ > > > > > > > > > > > > Done > > > > > > <KENT> thx > > > > > > > > > > > > > where is the tree diagram for the configuration data model?! > > > > > > > > > **** > > > > > > > > > > > > It is in the section "Subscriptions Container". It seemed better to > > > introduce the state machines before getting into the details of the > > > tree. But if you really want to have it early, it certainly can be > > > moved up. > > > > > > > > > > > > So do you want it moved here, or is a reference to the later section > > > sufficient? > > > > > > <KENT> as I recall reading this section, all the previous 2.x sections > > > had tree diagrams and I found it rather odd that there wasn't one > > > here, nor is there any reference to where one can be found. Perhaps > > > you can add a forward-reference to s3.3, but forward-references are > > > discouraged. Do we need to rearrange sections to make this right? > > > > > > > > > > > > <Eric2> I placed a two forward references in v11. One is to Figure 20 > > > for the tree, the other is to the YANG model. > > > > > > > > > > > > > > > > > > > I don't understand the last bullet point. First, I'm having trouble > > > > > > > parsing the implicit parentheses.. Next, the last sentence seems > > > > > > > complicated, maybe just say "unless directed otherwise, the > > > > > > > notification messages MUST egress the publisher's default > > > > > > > interface towards the receiver."? > > > > > > > > > > > > Used your text. Done. > > > > > > <KENT> thx > > > > > > > > > > > > <Eric2> Based on further comments on the various options, broke > > > specific parameters to bulleted text. Your text is still used. > > > > > > > > > > > > > Configured Subscription State Model > > > > > > > > > > > > > > A better first sentence is needed, something introducing that there > > > > > > > exists a state machine for each configured subscription, and states > > > > > > > that there are three states (VALID, INVALID, and CONCLUDED), etc. > > > > > > > Also should state where this state machine is maintained (publisher, > > > > > > > receiver, both?) > > > > > > > > > > > > Now says: > > > > > > Below is the state machine for a configured subscription on the > > > publisher. This state machine describes the three states (VALID, > > > INVALID, and CONCLUDED), as well as the transitions between these > > > states. Start and end states are depicted to reflect configured > > > subscription creation and deletion events. > > > > > > <KENT> better (ps: the last part, "Start and end states are depicted > > > to reflect configured subscription creation and deletion", isn't > > > there) > > > > > > > > > > > > <Eric2> Good catch. Not sure where that went. Re-added. > > > > > > > > > > > > > > > > > > > s/publisher evaluation/evaluation by the publisher/? > > > > > > > > > > > > Done > > > > > > <KENT> thx > > > > > > > > > > > > > > > > > > > Please move text regarding how to interpret the diagram (uppercase, > > > > > > > dashed boxes, parantheses, etc.) into a preamble or postamble element. > > > > > > > > > > > > Added underneath the diagram. See diagram below. > > > > > > <KENT> thx > > > > > > > > > > > > > > > > > > > s/itself might itself/itself might/ > > > > > > > s/in no longer/is no longer/ > > > > > > > > > > > > Done > > > > > > <KENT> thx > > > > > > > > > > > > > > > > > > > The first paragraph under the diagram doesn't match what the diagram > > > > > > > shows. Looking at the diagram, I also see two possible sequence of > > > > > > > transitions that get VALID to INVALID, but I'm unsure how they relate > > > > > > > to the two mentioned in the text.. > > > > > > > > > > > > Updated paragraph text as per below. Hopefully it is clearer now. > > > > > > <KENT> yes > > > > > > > > > > > > > The text should call out which > > > > > > > parts of the diagram it's referring to. Many times I number labels > > > > > > > in diagrams and then, under the diagram, provide a more thorough > > > > > > > explanation for each number. > > > > > > > > > > > > Added numbers within the diagram, and added text references as per > > > below: > > > > > > <KENT> better > > > > > > > > > > > > ......... > > > > > > : start :-. > > > > > > :.......: | > > > > > > create .---modify-----..----------------------------------. > > > > > > | | | | > > > > > > V V .-------. ....... .---------. > > > > > > .----[evaluate]--no--->|INVALID|-delete->: end :<-delete-|CONCLUDED| > > > > > > | '-------' :.....: '---------' > > > > > > |----[evaluate]--no-. ^ ^ ^ > > > > > > | ^ | | | | > > > > > > yes | '->unsupportable delete stop-time > > > > > > | modify (subscription- (subscription- (subscription- > > > > > > | | terminated*) terminated*) concluded*) > > > > > > | | | | | > > > > > > | (1) (2) (3) (4) > > > > > > | .---------------------------------------------------------------. > > > > > > '-->| VALID | > > > > > > '---------------------------------------------------------------' > > > > > > > > > > > > Legend: > > > > > > dotted boxes: subscription creation and deletion events > > > > > > dashed boxes with uppercase letters: valid states for a subscription > > > > > > [evaluate]: decision point on whether the subscription is supportable > > > > > > (*): resulting subscription state change notification > > > > > > > > > > > > Also the text below now says: > > > > > > > > > > > > A valid subscription may become invalid on one of two ways. First, it > > > may be modified in a way which fails a re-evaluation. See (1) in the > > > diagram. Second, the publisher itself might determine that the > > > subscription is no longer supportable. See (2) in the diagram. In > > > either case, a "subscription-terminated" notification is sent to any > > > active or suspended receivers. A valid subscription may also > > > transition to a concluded state via (4) if a configured stop time has > > > been reached. In this case, a "subscription-concluded" is sent to any > > > active or suspended receivers. Finally, a subscription may be deleted > > > by configuration (3). > > > > > > <KENT> better > > > > > > > > > > > > > > > > > > > Is it "any active or suspended receivers" or "any receivers for an > > > > > > > active or suspended subscription"? > > > > > > > > > > > > The current wording is correct. A configured subscription is never > > > suspended. It can be INVALID, or it can be ACTIVE and all its > > > receivers suspended. But in the second case, at least the receivers > > > get subscription-suspended notifications. > > > > > > <KENT> okay > > > > > > > > > > > > > s/During any times a/When a/? > > > > > > > > > > > > <KENT> you didn't say you did this one, but I see that you did, thx. > > > > > > > > > > > > > > > > > > > Regarding "Below is the state machine for each receiver of a > > > > configured > > > > > > > subscription." - where is this state machine maintained, on the > > > > publisher > > > > > > > or on the receiver? > > > > > > > > > > > > Updated the title to show it is a Publisher state model. > > > > > > <KENT> did you? I see " Receiver state for a configured > > > subscription", which seems misleading > > > > > > > > > > > > <Eric2> Tweaked to “Receiver state for a configured subscription on a > > > Publisher” > > > > > > > > > > > > > > > > > > > why is "receiver" in each box? > > > > > > > > > > > > To drive home the idea that this state machine was for each individual > > > receiver, rather than for the subscription as a whole.. > > > > > > > > > > > > <KENT> okay, I guess, I don't know, it seems confusing, but I see that > > > you explain it in the legend, so that's better… > > > > > > > > > > > > > > > > > > > Again, you might look to having a > > > > > > > preamble or postamble to describe the syntax used in the diagram. > > > > > > > > > > > > Per figure below, added the legend as a postamble: > > > > > > <KENT> thx > > > > > > > > > > > > > > > > > > > 1st paragraph below diagram: s/to connecting/to "connecting" -or- to > > > > > > > CONNECTING/? > > > > > > > > > > > > Now says CONNECTING. And all receiver states moved to uppercase. > > > > > > <KENT> good > > > > > > > > > > > > > > > > > > > Regarding "and event records are not being dropped due to a publisher > > > > > > > buffer overflow" - this seems like it's from out of nowhere. If not > > > > > > > normative, then maybe delete? > > > > > > > > > **** > > > > > > It is normative. This is needed to maximize the number of concurrent > > > subscriptions without enforcing continuous transport keep-alive > > > overhead when no event records are being passed, as well as to not > > > prematurely declare a subscription as suspended while there is a > > > chance that transport may be established before event records do get > > > lost. This allows a configured subscription’s receiver to exist > > > across an intermittent connection, and the receiver can remain active > > > on the publisher as long as events aren’t being lost. While this can > > > be done with NETCONF, it is probably more likely to be seen in > > > practice with HTTP connections. > > > > > > > > > > > > Based on that, I rephrased the words above so that it doesn’t feel > > > from out of nowhere. See the text below the updated figure below... > > > > > > <KENT> thx > > > > > > > > > > > > > This text is again difficult to reconcile with the diagram. I again > > > > > > > recommend numbering labels and then describe the numbers below. > > > > > > > > > > > > Done > > > > > > <KENT> thx > > > > > > > > > > > > .-----------------------------------------------------------------. > > > > > > | VALID | > > > > > > | .----------. .--------. | > > > > > > | | receiver |------------------timeout->|receiver| | > > > > > > | |CONNECTING|<------------------reset---|TIMEOUT | | > > > > > > | | |<-transport---. '--------' | > > > > > > | '----------' loss,reset | | > > > > > > | (1) | | | > > > > > > | subscription- (3) | | > > > > > > | started* .--------. | .---------. | > > > > > > | '----->| | '--------------------(3)| | | > > > > > > | |receiver|(2)-subscription-suspended*->|receiver | | > > > > > > | subscription-| ACTIVE | |SUSPENDED| | > > > > > > | modified* | |<--subscription-resumed*,----| | | > > > > > > | '---->'--------' subscription-modified* '---------' | > > > > > > '-----------------------------------------------------------------' > > > > > > > > > > > > Legend: > > > > > > dashed boxes which include the word 'receiver' show the possible > > > > > > states for an individual receiver of a VALID configured subscription. > > > > > > * indicates a state change notification > > > > > > > > > > > > Individual receivers are moved to an ACTIVE state when a > > > "subscription-started" state change notification is successfully > > > passed to that receiver (1). Configured receivers remain ACTIVE if > > > both transport connectivity can be verified to the receiver, and event > > > records are not being dropped due to a publisher buffer overflow. The > > > result is that a receiver will remain ACTIVE on the publisher as long > > > as events aren’t being lost, or the receiver cannot be reached. > > > However if there is buffer overflow, or the publisher cannot generate > > > events for a receiver, the receiver MUST be suspended (2). In > > > addition, a configured subscription's receiver MUST be moved to > > > CONNECTING if transport connectivity cannot be achieved, or if the > > > receiver is reset via configuration operations (3). > > > > > > <KENT> yes, better, esp. w/ the numbering > > > > > > > > > > > > > > > > > > > s/ mechanisms described above is/ mechanisms described above are/ > > > > > > > What does this mean, how are mechanisms mirrored for RPCs and > > > > > > > notifications? > > > > > > > > > > > > Done > > > > > > <KENT> thx > > > > > > > > > > > > > > > > > > > Regarding " provides an example of such an extension" - which section? > > > > > > > > > > > > Revised text to: > > > > > > > > > > > > The YANG model [I-D..ietf-netconf-yang-push] Section 4.1, provides > > > many such extensions, this includes the augmentation of > > > "/sn:modify-subscription/sn:input/sn:target". > > > > > > <KENT> better, but: > > > > > > 1) I didn't review yang-push, but I hope that someone pointed out that > > > section 4.1 needs to point to section 5 and, additionally perhaps > > > section 5 should be moved to section 4.5… > > > > > > > > > > > > <Eric2> I think you are suggesting that the YANG push tree model in > > > 4.1 needs to point to the YANG model section number. And that perhaps > > > the YANG model section itself shouldn’t be in an independent top level > > > section, but rather fall into section 4. I have no issues with that. > > > **Alex, do you want to update, this should be a very minor update? > > > > > > > > > > > > 2) sentence structure needs help, how about: "For instance, the YANG > > > module defined in Section 5 of [I-D..ietf-netconf-yang-push] augments > > > "/sn:modify-subscription/sn:input/sn:target". ??? > > > > > > > > > > > > <Eric2> Adopted your text. > > > > > > > > > > > > > Creating a Configured Subscription > > > > > > > > > > > > > > 1st paragraph: let the first sentence be its own paragraph as with > > > > > > > the other 2.5.x sections. > > > > > > > > > > > > > For the remainder, I think this is the > > > > > > > 3rd time that the draft has discussed the differences between > > > > > > > configured and dynamic subscriptions. Please eliminate unnecessary > > > > > > > redundancy. Factor out into another section if needed. > > > > > > > > > > > > I agree that the following paragraph can be deleted. > > > > > > > > > > > > There are two key differences between the new RPCs defined in this > > > document and configuration operations for subscription > > > creation. Firstly, configuration operations install a subscription > > > without question, while the RPCs are designed to the support > > > negotiation and rejection of requests. Secondly, while the RPCs > > > mandate that the subscriber establishing the subscription is the only > > > receiver of the notification messages, configuration operations permit > > > specifying receivers independent of any tracked subscriber. > > > > > > > > > > > > I have just removed this. > > > > > > <KENT> thx > > > > > > > > > > > > > > > > > > > Regarding 2nd/3rd paragraphs, how resilient is the solution to the > > > > > > > resumption of the underlying transport? If messages lost in the > > > > > > > write-buffer are lost, could the receiver ever be helplessly out > > > > > > > of sync without a full restart? > > > > > > > > > > > > I think we are clean here. I have updated the text against the > > > diagram per-above which hopefully provides more descriptive text on > > > why the resumption of underlying transport is covered. > > > > > > <KENT> I don't understand this response, can you provide more > > > information? > > > > > > > > > > > > <Eric2> For a configured subscription, transport can safely come/go as > > > long as events are not lost or delayed because a connection with a > > > receiver is unavailable. Instead it is whether events are dropped > > > before they can be transmitted. > > > > > > > > > > > > To support this, the text says: > > > > > > > > > > > > “However if there is buffer overflow, or the publisher cannot generate > > > notification messages for a receiver, the receiver MUST be moved to > > > SUSPENDED (2).” The result is that a receiver will know that event > > > records may have been lost if a subscription-suspended and/or > > > subscription-resumed are received. On such a resume, a subscriber can > > > attempt a replay if it needs the older events. > > > > > > > > > > > > > > > > > > > > > > > > > Modifying a Configured Subscription > > > > > > > > > > > > > > s/ ././ ;) > > > > > > > > > > > > Done > > > > > > <KENT> thx > > > > > > > > > > > > > > > > > > > Resetting a Configured Receiver > > > > > > > > > > > > > > But *how* is it reset? - via a configuration operation? which one? > > > > > > > Should this be part of "Modifying a Configured Subscription"? > > > > > > > > > > > > Added the sentence: > > > > > > > > > > > > This is accomplished via the "reset" action within the YANG model at > > > "/subscriptions/subscription/receivers/receiver/reset". > > > > > > <KENT> thx > > > > > > > > > > > > > > > > > > > Event Record Delivery > > > > > > > > > > > > > > First paragraph, last sentence. I think I commented on similar text > > > > > > > before. Is this a requirement for the transport binding? > > > > > > > > > > > > Perhaps the word interleave is the wrong choice here, and intermixing > > > is better in this case. I made that change. > > > > > > <KENT> okay, but where did the following new paragraph come from? > > > > > > > > > > > > <Eric2> WG threads/dialogs with Martin. > > > > > > > > > > > > Also: > > > > > > - s/passed receiver/passed to the receiver/? > > > > > > > > > > > > <Eric2> Don’t see that text. Looks like it was cleaned up already. > > > > > > > > > > > > > Do the netconf-notif and restconf-notif drafts satisfy this > > > > requirement? > > > > > > > > > > > > Yes > > > > > > <KENT> good > > > > > > > > > > > > > > > > > > > where? > > > > > > > > > > > > Netconf-notif supports interleaving of requests as described in > > > Section 3. > > > > > > <KENT> okay > > > > > > > > > > > > Restconf-notif doesn’t need to explicitly call for pipelining support > > > as it is a basic capability of HTTP. > > > > > > <KENT> but the question isn't about pipelining. Even NETCONF supports > > > pipelining, something extra is needed to support "intermixing", right? > > > > > > > > > > > > <Eric2> Yes. And we do have that intermixing included in document > > > requirements within this section. Text says: > > > > > > > > > > > > “In all cases, a single transport session MUST be capable of > > > supporting the intermixing of RPCs and notifications from different > > > subscriptions.” > > > > > > > > > > > > I think that change was made after conversations with Martin, so it > > > didn’t come back explicitly via this subthread. > > > > > > > > > > > > > 2nd paragraph: "able to traverse" --> "not blocked by"? > > > > > > > > > > > > Done > > > > > > <KENT> thx > > > > > > > > > > > > > > > > > > > Also, for > > > > > > > the 3rd sentence, call out the "RPC response" is for dynamic and > > > > > > > "state-change notification" is for configured? > > > > > > > > > > > > Yes. Made text: > > > > > > > > > > > > A subscription's events MUST NOT be sent to a receiver until after a > > > corresponding RPC response (in the case of a dynamic subscription) or > > > state-change notification (in the case of a configured subscription) > > > has been passed receiver indicating that events should be expected. > > > > > > <KENT> good > > > > > > > > > > > > > > > > > > > Last two paragraphs, this text needs to be removed, > > > > > > > > > > > > removed > > > > > > <KENT> thx > > > > > > > > > > > > > > > > > > > or else we might > > > > > > > need to block this draft on notification-messages. What do you mean > > > > > > > by " this document will be updated to indicate support". > > > > > > > > > > > > At some point when notification-messages is complete, this draft > > > should be updated as it is a more robust solution (as a subscription > > > id can be provided for event records provided on streams.) > > > > > > > > > > > > <KENT> you misunderstood, I know what it means, I was questioning why > > > we'd say such a thing. Anyway, you removed the paragraph already, so > > > it's no longer an issue. > > > > > > > > > > > > > > > > > > > Subscription State Notifications > > > > > > > > > > > > > > OLD > > > > > > > In addition to subscribed event records, a publisher MUST send > > > > > > > subscription state notifications to indicate to receivers that an > > > > > > > event related to the subscription management has occurred. > > > > > > > NEW > > > > > > > In addition to sending event records to receivers, a publisher MUST > > > > > > > also send subscription state notifications when events related to > > > > > > > the subscription management has occurred. > > > > > > > ??? > > > > > > > > > > > > Done. (Removed the extra ‘the’) > > > > > > <KENT> thx > > > > > > > > > > > > > > > > > > > 2nd paragraph: s/directly// > > > > > > > > > > > > Done > > > > > > <KENT> thx > > > > > > > > > > > > > > > > > > > Also, I'm unsure about the "subscription-state-notif" extension, how > > > > > > > is it expected to be used by a YANG processor? > > > > > > > > > > > > Per above, it ensures that these YANG notifications if encoded in XML > > > are not placed onto the NETCONF stream. > > > > > > > > > > > > <KENT> actually, I thought that before it only said that the > > > Subscription State Notifications (s2.7) were not placed into the > > > NETCONF stream??? > > > > > > > > > > > > <Eric2> Subscription state notifications are a type of YANG > > > notification, as they are encoded in the YANG model. Per the London > > > WG discussion on slide “Question 2”, I believe it easier to mark > > > these. See next comment below. > > > > > > > > > > > > > > > > > > > Perhaps a generic > > > > > > > notification-filtering GUI is envisioned whereby the logic could > > > > > > > automatically remove these notifications from selection, but coding > > > > > > > for this extension has very limited use, as no other drafts are ever > > > > > > > likely to define any. I suppose it does no harm, but I also think > > > > > > > that the text sure be clear. Personally, I'd rather the extension > > > > > > > be removed unless there is a good reason to keep it. > > > > > > > > > > > > **** > > > > > > The three choices seem to be: > > > (a) current solution > > > > > > (b) hardcode the these notifications so none ever go on the NETCONF > > > stream > > > > > > (c) make the extension “exclude-from-NETCONF-stream”. As it is quite > > > possible that other drafts will want to do that. > > > > > > > > > > > > I am good with any of these. But the first seems the cleanest, and > > > most self contained. Let me know it the current doesn’t work for you. > > > > > > > > > > > > <ALEX> Just to add on: A reason for the extension (and different > > > solutions were discussed at different points in time) was that since > > > this is a “meta-notification”, it should be treated differently from > > > other notificaitons. For example, a subscriber should receive these > > > even if not explicitly subscribing to them – they are simply part of > > > the “control protocol” for managing the subscriptions. They also > > > apply if a subscriber subscribes to something other than the NETCONF > > > stream. > > > > > > </ALEX> > > > > > > > > > > > > <KENT> yes, Alex, part of the control protocol, this is why I'm > > > thinking maybe Eric's choice (b) is best. Is this being discussed > > > elsewhere? > > > > > > > > > > > > <Eric2> We had a discussion on this in London: > > > > > > https://urldefense.proofpoint.com/v2/url?u=https-3A__youtu.be_KJtg-2DJ- > 2D&d=DwIGaQ&c=HAkYuh63rsuhr6Scbfh0UjBXeMK- > ndb3voDTXcWzoCI&r=9zkP0xnJUvZGJ9EPoOH7Yhqn2gsBYaGTvjISlaJdcZo&m=2 > ZAWwt38BLRzZXn66- > kWUPEWuw26F0Uqjsvtmi_oRiQ&s=D7QvpoertL3rgQvIYHzpWfBeuq_KizPBp7V > QKJLelXc&e= > > 6CZM?t=1963<https://urldefense.proofpoint.com/v2/url?u=https- > > 3A__youtu.be_KJtg-2DJ-2D6CZM-3Ft- > > 3D1963&d=DwMGaQ&c=HAkYuh63rsuhr6Scbfh0UjBXeMK- > > > ndb3voDTXcWzoCI&r=9zkP0xnJUvZGJ9EPoOH7Yhqn2gsBYaGTvjISlaJdcZo&m=8 > > SC9EE43RlHG68Oyp- > > zOqWCQ3RTjFqQJdzR_OSyqSvs&s=0OGkT5cNK9aY8v5z4CwNWj- > > 9A079WseJ6sBcL7veA9c&e=> > > > > > > As there was no comment in the room, I was hoping we had actually had > > > some form of consensus between us on (a). So I hadn’t spun up a > > > separate question on this yet. > > > > > > > > > > > > But it seems there is an issue. I will open up a thread now. > > > > > > > > > > > > > subscription-started: > > > > > > > > > > > > > > Regarding the 2nd paragraph, Section 2.4.2.1 implies a contradiction > > > > > > > to this statement. > > > > > > > > > > > > **** > > > > > > A replay subscription can be set for a configured subscription. There > > > was some carrier on the NETCONF alias who requested this many months > > > ago. See also dialogs with Martin. > > > > > > > > > > > > Looking at your comment, it probably isn’t a good idea to embed this > > > fact within the replay text embedded as part of the dynamic > > > subscription section. > > > > > > The best way to tease this apart is first to separate any configured > > > subscription context the 2.4.2.1. This can be done simply by > > > replacing the ‘after the "subscription-started" notification’. With ’ > > > after the after a successful establish-subscription RPC response’. > > > > > > > > > > > > <KENT> okay, modulus the "after the after" typo. > > > > > > > > > > > > <Eric2> I can find no “after the after” in v11. Perhaps I already > > > fixed this. > > > > > > > > > > > > And then to be more explicit that this is supported, we could add move > > > contradicting statement into a new section 2.5.6 where it would no > > > longer appear contradicting. Replay in a new section looks like this: > > > > > > > > > > > > 2.5.6 Replay for a Configured Subscription > > > > > > It is possible to place a start time on a configured subscription. > > > This enables functionality like immediately streaming boot log > > > information off of a publisher immediately after restart. > > > > > > <KENT> "immediately used twice, suggest removing first instance. > > > Actually, this needs a rewrite, perhaps "This enables streaming of > > > logged information immediately after restart." ??? > > > > > > > > > > > > <Eric2> Adopted your text. > > > > > > > > > > > > When any such configured subscription receivers become ACTIVE, > > > buffered event records (if any) will be sent immediately after the > > > “subscription-started” notification. The first event sent will be the > > > most recent following the latest of four different times: the > > > "replay-log-creation-time", "replay-log-aged-time", > > > "replay-start-time", or the most recent publisher boot time. > > > > > > <KENT> I don't understand the 2nd sentence here > > > > > > > > > > > > <Eric2> Rewrote to: “The leading event record sent will be the first > > > event record subsequent to the latest of four different times: the > > > "replay-log-creation-time", "replay-log-aged-time", > > > "replay-start-time", or the most recent publisher boot time.” > > > > > > > > > > > > All other replay functionality remains the same as with dynamic > > > subscriptions as described in Section 2.4.2.1 > > > > > > <KENT> I'm not sure I like having to look at 2.4.2.1 and trying to > > > figure out what this means. Can you make this more explicit or, since > > > 5.6 is pretty small, copy the parts into this section? > > > > > > > > > > > > <Eric2> I initially had all the text in 2.4.2.1. But this hid the > > > fact that you can do replay on a configured subscription. So your > > > comment above lead to this section being introduced. Which is a good > > > thing. But as 2.4.2.1 is not very small, to me it feels like > > > repeating all that text here might be overkill. > > > > > > > > > > > > > > > > > > The good news is that all of this is consistent with text is already > > > reflected in the YANG model. > > > > > > <KENT> thankfully! > > > > > > > > > > > > > > > > > > > The tree diagram is not identified as a tree diagram. And since the > > > > > > > data model isn't explained, there should be a statement for the reader > > > > > > > to look at the YANG module for details, ideally with a hyperlink. > > > > > > > > > > > > Done > > > > > > <KENT> thx > > > > > > > > > > > > > > > > > > > Why is all this sent to the receiver? Doesn't it already know the > > > > > > > protocol and encoding? What about the other parts? Which parts > > > > > > > are actually useful? > > > > > > > > > > > > The complete state of the subscription is sent, which can also be > > > useful for debugging. But beyond that, based on what I am hearing > > > from the CBOR people, even the protocol and encoding might be > > > different between. > > > > > > <KENT> okay > > > > > > > > > > > > > > > > > > > subscription-modified > > > > > > > > > > > > > > 1st paragraph: the same parameters, or data model / tree diagram? > > > > > > > Also, is "provided" the right word? Maybe it would be better to > > > > > > > have the tree diagram itself, even though only the name changes? > > > > > > > > > > > > Provided the full tree. It does chew up space, but that is not really > > > an issue. > > > > > > <KENT> thx > > > > > > > > > > > > > Last two paragraphs, why put "First" and "Second" when they are > > > > > > > bullet points. Maybe you want to use a numbered-list or otherwise > > > > > > > rephrase these? > > > > > > > > > > > > Made a numbered list > > > > > > <KENT> thx > > > > > > > > > > > > > Last paragraph, the last sentence doesn't flow with the first. > > > > > > > It seems as if it was copy/pasted from somewhere else. Is this > > > > > > > intended to be a normative statement here? > > > > > > > > > > > > Yes it is a normative statement, and it is in the correct place. > > > > > > > > > > > > I added text to smooth the transition. It now is this: > > > > > > > > > > > > While this state change will be most commonly used with configured > > > subscriptions, with dynamic subscriptions, there is also one time this > > > notification will be sent. A "subscription-modified" state change > > > notifications MUST be sent if the contents of a filter identified by a > > > "stream-filter-ref" has changed. > > > > > > <KENT> better > > > > > > > > > > > > > > > > > > > subscription-terminated > > > > > > > > > > > > > > 1st paragraph, 1st sentence: -e a/The publisher/A publisher/ and > > > > > > > also s/the pushing of/pushing/? > > > > > > > > > > > > Done > > > > > > <KENT> thx > > > > > > > > > > > > > 1st paragraph: "Such a decision may be made for" - should this > > > > > > > be "A publisher may terminate a subscription for" ? > > > > > > > > > > > > Done > > > > > > <KENT> thx > > > > > > > > > > > > > 1st paragraph, for the "first type of reason": does the subscription > > > > > > > terminate when the first or last referenced objects are no longer > > > > > > > accessible? > > > > > > > > > > > > This refers to any either any leafref going missing, or the > > > subscription-id being removed. More in next comment > > > > > > > > > > > > > BTW, what do you mean by "via the YANG model", aren't > > > > > > > these instance objects in <operational>? > > > > > > > > > > > > I have updated the text in this section to be much more explicit to > > > cover the intent. The section now says > > > > > > > > > A publisher MAY terminate pushing subscribed event records to a > > > receiver. This notification indicates that no further notification > > > messages should be expected from the publisher. A publisher may > > > terminate a subscription for the following reasons: > > > > > > 1. Configuration which removes a configured subscription, or a "kill- > > > subscription" RPC. These are identified via the reason "no-such- > > > subscription". > > > > > > 2. A referenced filter is no longer accessible. This is identified > > > by "filter-unavailable". > > > > > > 3. The stream referenced by a subscription is no longer accessible > > > by the receiver. This is identified by "stream-unavailable". > > > > > > 4. A suspended subscription has exceeded some timeout. This is > > > identified by "suspension-timeout". > > > > > > > > > Each of the reasons above correspond one-to-one with a "reason" > > > identityref specified within the YANG model. > > > > > > <KENT> good > > > > > > > > > > > > > > > > > > > 1st paragraph, what do you mean by " Identities within the YANG > > > > model"? > > > > > > > Can the text be more clear that it is referring to the "reason" > > > > > > > identityref in the tree diagram? > > > > > > > > > > > > Text attempted just above. > > > > > > <KENT> okay > > > > > > > > > > > > > The tree diagram is not identified as a tree diagram. > > > > > > > > > > > > Done > > > > > > <KENT> thx > > > > > > > > > > > > > last paragraph: remove "established". Also, the first 2 sentences > > > > would > > > > > > > benefit moving to singular, as plural leads to some ambiguity. > > > > > > > > > > > > Done. > > > > > > <KENT> thx > > > > > > > > > > > > Note: a subscriber can terminate an existing subscription via a > > > "delete-subscription" RPC. In such a case, no > > > "subscription-terminated" state change notification is sent. > > > > > > <KENT> good > > > > > > > > > > > > > > > > > > > subscription-suspended > > > > > > > > > > > > > > Please replace the 2nd paragraph with the actual tree diagram, and > > > > then > > > > > > > speak to that. > > > > > > > > > > > > Done > > > > > > <KENT> thx > > > > > > > > > > > > > > > > > > This notification indicates that a publisher has suspended the > > > > > > sending of event records to a receiver, and also indicates the > > > > > > possible loss of events. Suspension happens when capacity > > > > > > constraints stop a publisher from serving a valid subscription. The > > > > > > two conditions where is this possible are "insufficient-resources" > > > > > > and "unsupportable-volume". These conditions are encoded within the > > > > > > reasons. No further notification will be sent until the subscription > > > > > > resumes or is terminated. > > > > > > > > > > > > Below is a tree diagram for "subscription-suspended". All objects > > > > > > contained in this tree are described within the included YANG model > > > > > > within Section 4. > > > > > > > > > > > > +---n subscription-suspended > > > > > > +--ro identifier subscription-id > > > > > > +--ro reason identityref > > > > > > > > > > > > Figure 11: subscription-suspended notification tree diagram > > > > > > > > > > > > <KENT> good > > > > > > > > > > > > > > > > > > > subscription-resumed > > > > > > > > > > > > > > The tree diagram is not identified as a tree diagram. > > > > > > > > > > > > Updated. As are all other tree diagrams now.. > > > > > > <KENT> thx > > > > > > > > > > > > > > > > > > > subscription-completed > > > > > > > > > > > > > > Please replace the 2nd paragraph with the actual tree diagram, and > > > > then > > > > > > > speak to that. > > > > > > > > > > > > Updated. As are all other tree diagrams now.. > > > > > > <KENT> thx > > > > > > > > > > > > > > > > > > > replay-completed > > > > > > > > > > > > > > 2nd paragraph: s/ If subscription/ If a subscription/ and > > > > s/which/that/ > > > > > > > > > > > > Done > > > > > > <KENT> thx > > > > > > > > > > > > > > > > > > > Please replace the last paragraph with the actual tree diagram, and > > > > then > > > > > > > speak to that. > > > > > > > > > > > > Done as identical to above. > > > > > > <KENT> thx > > > > > > > > > > > > > > > > > > > Subscription Monitoring > > > > > > > > > > > > > > 1st paragraph: s/Container/The container/. > > > > > > > > > > > > Done. > > > > > > <KENT> thx > > > > > > > > > > > > > How can container "subscriptions" (config true) contain entries for > > > > > > > dynamic subscriptions? Are you assuming in <operational>? > > > > > > > > > > > > Updated the start of paragraph 1 to: > > > > > > > > > > > > In the operational datastore, the container "subscriptions" maintains > > > the state of all known subscriptions. > > > > > > <KENT> thx > > > > > > > > > > > > > > > > > > Updated paragraph 2 to: > > > > > > > > > > > > Each subscription is represented as a list element. While many > > > subscription objects are "config true", dynamic subscriptions are only > > > included within the operational datastore. Operational information > > > which may be monitored includes receiver counter information, the > > > state... > > > > > > <KENT> thx > > > > > > > > > > > > > > > > > > > Also, > > > > > > > does it include configured subscriptions that are currently not > > > > > > > active for whatever reason? > > > > > > > > > > > > Yes. First paragraph above uses the word ‘all’. > > > > > > <KENT> but if not active, aka operational, why are they in the > > > operational datastore? This needs to be explained. > > > > > > > > > > > > <Eric2> Two thoughts. First, a configured subscription can be VALID > > > without having any ACTIVE receivers. Second, the status of a > > > configured subscription is a “config false” element which includes > > > both the INVALID and CONCLUDED states that are not configurable. > > > (text below) > > > > > > > > > > > > Also, maybe you need to be more explicit than just having "all" … > > > > > > > > > > > > <Eric2> You are correct, some more detail is needed. And more > > > description of the counters is needed. I shook things up. Here is > > > what it says now: > > > > > > > > > > > > In the operational datastore, the container "subscriptions" maintains > > > the state of all dynamic subscriptions, as well as all configured > > > subscriptions. Using datastore retrieval operations, or subscribing > > > to the "subscriptions" container via [I-D.ietf-netconf-yang-push] > > > allows the state of subscriptions and their connectivity to receivers > > > to be monitored. > > > > > > > > > > > > Each subscription in the operational datastore is represented as a > > > list element. Included in this list are event counters for each > > > receiver, the state of each receiver, as well as the subscription > > > parameters currently in effect. The appearance of the leaf > > > "configured-subscription-state" indicates that a particular > > > subscription came into being via configuration. This leaf also > > > indicates if current state of that subscription is VALID, INVALID, and > > > CONCLUDED. > > > > > > > > > > > > To understand the flow of event records within a subscription, there > > > are two counters available for each receiver. The first counter is > > > "pushed-notifications" which shows the quantity of events actually > > > identified for sending to a receiver. The second counter is > > > "excluded-notifications" which shows event records not sent to > > > receiver. "excluded-notifications" shows the combined results of both > > > access control and per-subscription filtering. For configured > > > subscriptions, counters are reset whenever the subscription is > > > evaluated to VALID (see (1) in Figure 8). > > > > > > > > > > > > Dynamic subscriptions do not appear outside of the operational > > > datastore, and are removed from the operational datastore once they > > > expire (reaching stop-time) or when they are terminated. > > > > > > > > > > > > > You mention NETCONF's <get> (wait, I > > > > > > > thought this draft was suppose to be transport agnostic), but not > > > > > > > NMDA's <get-data>, so it make me wonder if this paragraph regards > > > > > > > the contents of <running> or <operational>... > > > > > > > > > > > > Yes, we want to make it want to make it agnostic. So it now says: > > > > > > > > > > > > Using datastore retrieval operations , or subscribing to... > > > > > > <KENT> better > > > > > > > > > > > > > > > > > > > The 2nd paragraph would make more sense if I was looking at a tree > > > > > > > diagram. But then I realize that this would be the same tree-diagram > > > > > > > that should've been presented in Configured Subscriptions. > > > > > > > > > > > > The tree is in the subscriptions container section just below. I will > > > gladly reference it wherever it ends up. > > > > > > <KENT> you already need to be referring to it regardless. As for > > > where it is, see my previous comment on this topic > > > > > > > > > > > > <Eric2> References to Figure 20 has been made. If the tree must be > > > moved up, it can be. I think it fits better where it is. > > > > > > > > > > > > > > > > > > > Advertisement > > > > > > > > > > > > > > The second paragraph seems to be mostly NETCONF specific and > > > > > > > therefore belongs in the netconf-binding draft. > > > > > > > > > > > > Good point. Moved the first sentence to the end of that draft’s > > > “Compatibility with RFC-5277's create-subscription” section. > > > > > > <KENT> thx > > > > > > > > > > > > > In a transport- > > > > > > > agnostic draft, maybe only features should be discussed? > > > > > > > > > > > > Makes sense > > > > > > <KENT> did you do this, or is this entire paragraph missing now? > > > > > > > > > > > > <Eric2> I did this. Current section “Compatibility with RFC-5277's > > > create-subscription” of NETCONF-notif says: > > > > > > > > > > > > If a publisher supports this specification but not subscriptions via > > > [RFC5277], the publisher MUST NOT advertise > > > "urn:ietf:params:netconf:capability:notification:1.0". > > > > > > > > > > > > > > > > > > > YANG Data Model Trees > > > > > > > > > > > > > > s/top level YANG Data Node containers/protocol-accessible nodes/ > > > > > > > > > > > > Done > > > > > > <KENT> thx > > > > > > > > > > > > > > > > > > > " If you would rather see" - please use more formal language. > > > > > > > > > > > > Made it: > > > > > > > > > > > > For tree diagrams of state change notifications, > > > > > > <KENT> thx > > > > > > > > > > > > > > > > > > > Event Streams Container > > > > > > > > > > > > > > 1st paragraph, last sentence: perhaps rephrase as "This enables > > > > > > > clients to discover what streams a publisher supports."? > > > > > > > > > > > > Done > > > > > > <KENT> thx > > > > > > > > > > > > > > > > > > > BTW, is > > > > > > > the " and against which subscription is allowed" part important, > > > > > > > if so, why? > > > > > > > > > > > > Not really. I was just trying to highlight that different clients > > > might have visibility for different streams. As this is implicit, I > > > just dropped it and used your text. > > > > > > <KENT> thx > > > > > > > > > > > > > > > > > > > This tree-diagram does not match what I generate. This indicates > > > > > > > that the tree diagrams are not being dynamically-generated. I > > > > > > > strongly suggest updating your build script to dynamically generate > > > > > > > the tree diagrams. We cannot afford to have them be out of alignment. > > > > > > > > > > > > At the WG request, I segmented the YANG tree into different sections. > > > However I do not have the tooling which automatically extracts > > > portions of the YANG tree. > > > > > > > > > > > > Is there a git repository which recommends a continuous integration > > > for sub portions of a YANG tree? For future drafts, I have certainly > > > built a strong desire for such a continuous integration environment. > > > > > > > > > > > > <KENT> I have my own tooling using Makefiles and shell scripts to > > > dynamically generate and include the tree diagrams every build. You > > > should be looking to create similar now, for this draft (not next > > > drafts). Again, we cannot afford for these things to get out of > > > alignment, and these drafts still have a way to go yet… > > > > > > > > > > > > <Eric2> I have not seen automated tooling from pyang which pulls > > > individual RPCs and Notification Trees into extracts. Not finding a > > > way to do this with –tree-path, I tried guessing. But didn’t get > > > there. As the majority of my trees are RPCs and Notifications, I > > > don’t see a fully automated solution available as yet. > > > > > > > > > > > > > Event Stream Filters Container > > > > > > > > > > > > > > "and validated" - is this needed, since *all* configuration is > > > > validated? > > > > > > > > > > > > Removed > > > > > > > > > > > > > s/ which/ that/ > > > > > > > > > > > > Done > > > > > > <KENT> thx > > > > > > > > > > > > > > > > > > > "referenced and used" - is there a difference? - can you just use > > > > one? > > > > > > > > > > > > Now just referenced > > > > > > <KENT> thx > > > > > > > > > > > > > > > > > > > > > > > > > > Subscriptions Container > > > > > > > > > > > > > > > > > > > > > This tree-diagram does not match what I generate. This indicates > > > > > > > that the tree diagrams are not being dynamically-generated. I > > > > > > > strongly suggest updating your build script to dynamically generate > > > > > > > the tree diagrams. We cannot afford to have them be out of alignment. > > > > > > > > > > > > I would love to have fully generated scripts. That is hard for a few > > > reasons here: > > > > > > > > > > > > (a) The automatically generated trees are getting mangled because they > > > are so wide. Especially with yang-push, the automatic trees must all > > > be fixed manually each time. > > > > > > > > > > > > <KENT> pyang already supports folding and pathing, what else are you > > > doing? Sometimes I need to tweak the pyang output, but I scripted > > > that too and make it part of my build scripts > > > > > > > > > > > > <Eric2> Martin taught me how to fold/path. So that is a welcome fix. > > > > > > > > > > > > (b) I have no insights on how to pull portions of a tree into a XML > > > document. Is there a tool site which provides this? > > > > > > <KENT> my Makefiles call a shell script to do the insertions… > > > > > > > > > > > > <Eric2> My environment has certainly shown itself to be insufficient. > > > If WG requires Makefiles rather than what many of us use (yes, I > > > really built most of this via NOTEPAD++, and I know there are multiple > > > others doing this), then the WG should document expected toolsets to > > > be used. Note that based on my pain here that I do have my eye on an > > > alternative tooling after these 3 drafts complete WGLC. If there is a > > > lull subsequent review cycles, perhaps I will convert if my > > > experiences with the next set of drafts work. > > > > > > > > > > > > The delta I see is “rw” vs “ro”. Fixed now. I have brought in the > > > current tree. > > > > > > <KENT> better, but not a lasting fix > > > > > > > > > > > > <Eric2> Would the NETMOD WG be willing to put together a wiki of the > > > development tool recommendations? As a user, I know it would be > > > welcomed. > > > > > > > > > > > > > Data Model > > > > > > > > > > > > > > I going to skip this part, for now at least, as I assume the YANG > > > > > > > Doctor will scrutinize it. > > > > > > > > > > > > > > > > > > > > > > > > > > > > Implementation Considerations > > > > > > > > > > > > > > s/ For a deployment/To support deployments/ > > > > > > > > > > > > Done > > > > > > <KENT> thx > > > > > > > > > > > > > > > > > > > s/split subscription/it is recommended to split subscription" > > > > > > > > > > > > Done > > > > > > <KENT> thx > > > > > > > > > > > > > is " unlikely" the right word? doesn't it eliminate the concern > > > > altogether? > > > > > > > > > > > > Yes it does solve it. > > > > > > > > > > > > That way it eliminates the possibility of collisions if… > > > > > > <KENT> thx > > > > > > > > > > > > > > > > > > > Regarding the 2nd-half of the 1st paragraph, is it necessary for > > > > > > > interoperability reasons for this draft to define how to split the > > > > > > > subscription identifiers into static and dynamic parts. > > > > > > > > > > > > Not necessary, just a best practice. > > > > > > > > > > > > > Is the > > > > > > > normative text needed here? Maybe just describe the current > > > > > > > approach as a possible way to go about doing it? - I think it > > > > > > > achieves the same goal without using normative text. > > > > > > > > > > > > Agree. Text now says: > > > > > > > > > > > > A best practice is to use lower half the "identifier" object’s integer > > > space when that "identifier" is assigned by an external entity (such > > > as with a configured subscription). This leaves the upper half of > > > subscription identifiers available to be dynamically assigned by the > > > publisher. > > > > > > <KENT> thx > > > > > > > > > > > > > For the 2nd paragraph, this sounds like normative text from earlier > > > > > > > in the document. If so, then is it needed here again? > > > > > > > > > > > > No. Deleted. > > > > > > <KENT> thx > > > > > > > > > > > > > > > > > > > For the 3rd paragraph, I'm not sure if the second sentence needs to > > > > > > > be said at all, but at least s/SHOULD/should/ so it's not normative. > > > > > > > > > > > > Made it non-normative > > > > > > <KENT> thx > > > > > > > > > > > > > > > > > > > Security Considerations > > > > > > > > > > > > > > Regarding the 1st paragraph, aren't *all* operations (configuration > > > > > > > or RPCs) always authenticated and authorized? > > > > > > > > > > > > Yes. Deleted as redundant. > > > > > > <KENT> thx > > > > > > > > > > > > > Please restructure to follow, in part, the template provided here: > > > > > > > https://urldefense.proofpoint.com/v2/url?u=https- > 3A__tools.ietf.org_html_draft-2Dietf-2Dnetmod-2Drfc6087bis-2D20-23section- > 2D&d=DwIGaQ&c=HAkYuh63rsuhr6Scbfh0UjBXeMK- > ndb3voDTXcWzoCI&r=9zkP0xnJUvZGJ9EPoOH7Yhqn2gsBYaGTvjISlaJdcZo&m=2 > ZAWwt38BLRzZXn66- > kWUPEWuw26F0Uqjsvtmi_oRiQ&s=C2O9om1_tyvSQy8m- > imWE1KOfWJk31fflmgJUDkr_cA&e= > > 3.7.1<https://urldefense.proofpoint.com/v2/url?u=https- > > 3A__tools.ietf.org_html_draft-2Dietf-2Dnetmod-2Drfc6087bis-2D20- > 23section- > > 2D3.7.1&d=DwMFAg&c=HAkYuh63rsuhr6Scbfh0UjBXeMK- > > > ndb3voDTXcWzoCI&r=9zkP0xnJUvZGJ9EPoOH7Yhqn2gsBYaGTvjISlaJdcZo&m= > > DoO-FEinwnsQ1xowtT- > > > 9KNCYTYuzNrC979exYSodTS0&s=vFecrV4fFJjob2uIQQHfofpCl8aczBrzbWdOFCE > > hshQ&e=> > > > > > > > > > > > > Restructured to this: > > > > > > > > > > > > 5.3. Security Considerations > > > > > > > > > > > > The YANG module specified in this document defines a schema for data > > > > > > that is designed to be accessed via network management protocols such > > > > > > as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF > layer > > > > > > is the secure transport layer, and the mandatory-to-implement secure > > > > > > transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer > > > > > > is HTTPS, and the mandatory-to-implement secure transport is TLS > > > > > > [RFC5246]. > > > > > > > > > > > > The NETCONF Access Control Model (NACM) [RFC6536bis] provides the > > > > > > means to restrict access for particular NETCONF or RESTCONF users to > > > > > > a preconfigured subset of all available NETCONF or RESTCONF protocol > > > > > > operations and content. > > > > > > > > > > > > There are a number of data nodes defined in this YANG module that are > > > > > > writable/creatable/deletable (i.e., config true, which is the > > > > > > default). These data nodes may be considered sensitive or vulnerable > > > > > > in some network environments. Write operations (e.g., edit-config) > > > > > > to these data nodes without proper protection can have a negative > > > > > > effect on network operations. These are the subtrees and data nodes > > > > > > and their sensitivity/vulnerability: > > > > > > > > > > > > Container: filters > > > > > > > > > > > > o stream-subtree-filter: updating a filter could increase the > > > > > > computational complexity of all referencing subscriptions. > > > > > > > > > > > > o stream-xpath-filter: updating a filter could increase the > > > > > > computational complexity of all referencing subscriptions. > > > > > > > > > > > > Container: subscriptions > > > > > > > > > > > > o address: can be used to attempt to send traffic to an unwilling > > > > > > receiver. > > > > > > > > > > > > o dependency: can force important traffic to wait behind the > > > > > > unimportant. > > > > > > > > > > > > o dscp: can send traffic with a higher priority marking that > > > > > > warranted. > > > > > > > > > > > > o encoding: none > > > > > > > > > > > > o identifier: can overwrite an existing subscription configured by > > > > > > another entity. > > > > > > > > > > > > o port: none > > > > > > > > > > > > o protocol: none > > > > > > > > > > > > o purpose: none > > > > > > > > > > > > o replay-start-time: can be used to push very large logs, wasting > > > > > > resources. > > > > > > > > > > > > o source-address: address might not be able to reach a receiver. > > > > > > > > > > > > o source-interface: interface might not be able to reach a receiver. > > > > > > > > > > > > o source-vrf: can push subscribed traffic into a virtual network > > > > > > which might not contain receivers able to see the subscribed > > > > > > content. > > > > > > > > > > > > o stop-time: none > > > > > > > > > > > > o stream: none > > > > > > > > > > > > o stream-filter-ref: none > > > > > > > > > > > > o stream-subtree-filter: a complex filter can increase the > > > > > > computational resources for this subscription. > > > > > > > > > > > > o stream-xpath-filter: a complex filter can increase the > > > > > > computational resources for this subscription. > > > > > > > > > > > > o weighting: placing a large weight can overwhelm the dequeuing of > > > > > > other subscriptions. > > > > > > > > > > > > Some of the readable data nodes in this YANG module may be considered > > > > > > sensitive or vulnerable in some network environments. It is thus > > > > > > important to control read access (e.g., via get, get-config, or > > > > > > notification) to these data nodes. These are the subtrees and data > > > > > > nodes and their sensitivity/vulnerability: > > > > > > > > > > > > Container: streams > > > > > > > > > > > > o name: if access control is not properly configured, can expose > > > > > > system internals to those who should have no access to this > > > > > > information. > > > > > > > > > > > > o replay-support: if access control is not properly configured, can > > > > > > expose logs to those who should have no access. > > > > > > > > > > > > Container: subscriptions > > > > > > > > > > > > o pushed-notifications: will show the amount of events a particular > > > > > > subscriber actually received from a stream. > > > > > > > > > > > > o excluded-notifications: will show the results of access control, > > > > > > and how many event records have been filtered out. > > > > > > > > > > > > Some of the RPC operations in this YANG module may be considered > > > > > > sensitive or vulnerable in some network environments. It is thus > > > > > > important to control access to these operations. These are the > > > > > > operations and their sensitivity/vulnerability: > > > > > > > > > > > > > > > > > > RPC: all > > > > > > > > > > > > o If a malicious or buggy subscriber sends an unexpectedly large > > > number > > > > > > of RPCs, the result might be an excessive use of system resources on > > > the > > > > > > publisher just to determine that these subscriptions should be > > > declined. In > > > > > > such a situation, subscription interactions MAY be terminated by > > > > > > terminating the transport session. > > > > > > > > > > > > RPC: delete-subscription > > > > > > > > > > > > o No special considerations. > > > > > > > > > > > > RPC: establish-subscription > > > > > > > > > > > > o Subscriptions could overload a publisher's resources. For this > > > > > > reason, Publishers MUST ensure that they have sufficient resources > > > > > > to fulfill this request or otherwise reject the request. > > > > > > > > > > > > RPC: kill-subscription > > > > > > > > > > > > o The "kill-subscription" RPC MUST be secured so that only > > > > > > connections with administrative rights are able to invoke this > > > > > > RPC. > > > > > > > > > > > > RPC: modify-subscription > > > > > > > > > > > > o Subscriptions could overload a publisher's resources. For this > > > > > > reason, Publishers MUST ensure that they have sufficient resources > > > > > > to fulfill this request or otherwise reject the request. > > > > > > > > > > > > <KENT> better, though I'm unsure the "none" nodes need to be listed. > > > > > > > > > > > > <Eric2> The template text “These are the subtrees and data nodes and > > > their sensitivity/vulnerability” appears to make the list of all node > > > mandatory. As this was not your intent, I pulled the “none” out. > > > > > > > > > > > > > Regarding the 2nd and 3rd paragraphs, this sounds good, but isn't > > > > > > > this behavior already defined by the draft? (or should be?) > > > > > > > > > > > > Yes they are. I actually refined / incorporated these points in the > > > template above. As this is what the template appears to be asking to > > > have. > > > > > > <KENT> thx > > > > > > > > > > > > > > > > > > > Regarding the 4th paragraph, why would the publisher need to the > > > > > > > terminate the transport session? wouldn't it have started to > > > > > > > reject dynamic subscriptions when it became overloaded? Or is > > > > > > > this trying to say something specific about dropping the transport > > > > > > > session as a club? ;) > > > > > > > > > > > > Yes, as a club. Moved this up into the template as part of “RFC: all” > > > and fixed the text to show why the club might need to be used > > > > > > <KENT> thx > > > > > > > > > > > > > > > > > > > Re: the 5th paragraph, this is better than the 1st paragraph, but > > > > > > > may not be needed if following the template. > > > > > > > > > > > > Agree. This is redundant, and the point is covered as per the > > > template above. > > > > > > <KENT> thx > > > > > > > > > > > > > > > > > > > Re: the 6th paragraph, I'm surprised that requirements for transport- > > > > > > > bindings wasn't discussed before in its own section. It seems like > > > > > > > a new thing here, that a receiver's transport might not be secure. > > > > > > > I'm okay with and support this, btw, as its sometimes better to > > > > > > > offload devices thru the use of a local collector node, for which > > > > > > > encryption may not be needed... > > > > > > > > > > > > Agree with your comments. > > > > > > <KENT> but where's the change? Shouldn't this have been discussed > > > > > > previously in the draft somewhere? > > > > > > > > > > > > <Eric2> The vast majority of transport binding discussions are > > > addressed in the transport document. So I see this as guidance to a > > > documenter of a transport document. Perhaps that is unnecessary for > > > this document, and the paragraph should be removed. I would be fine > > > with that. > > > > > > > > > > > > > > > > > > > > > > > > > Re: the 7th paragraph, this was said before also, right? > > > > > > > > > > > > Correct, removed. > > > > > > <KENT> thx > > > > > > > > > > > > > > > > > > > Re: 2nd to last paragraph, what is the " very-secure" tag? > > > > > > > > > > > > Removed, and the overall points moved up into template. As for the > > > very-secure tag, Andy had mentioned that a few years ago. It looks > > > like it wasn’t standardized. > > > > > > <KENT> gotcha > > > > > > > > > > > > <Eric2> Thanks again for your time on this. I see these as good > > > additions... > > > > > > Eric > > > > > > Eric > > > > > > > > > > > > /kw > > > > > > > > > > > > > > > > > > >
- Re: [Netconf] Subscription State Notifications Alexander Clemm
- Re: [Netconf] Subscription State Notifications Alexander Clemm
- Re: [Netconf] Subscription State Notifications (R… Alexander Clemm
- Re: [Netconf] Subscription State Notifications Martin Bjorklund
- Re: [Netconf] Subscription State Notifications Kent Watsen
- [Netconf] Subscription State Notifications (RE: L… Alexander Clemm
- Re: [Netconf] Subscription State Notifications (R… Kent Watsen
- Re: [Netconf] Subscription State Notifications (R… Alexander Clemm
- Re: [Netconf] Subscription State Notifications (R… Eric Voit (evoit)
- Re: [Netconf] Subscription State Notifications (R… Kent Watsen
- Re: [Netconf] Subscription State Notifications (R… Eric Voit (evoit)
- Re: [Netconf] Subscription State Notifications Martin Bjorklund
- Re: [Netconf] Subscription State Notifications (R… Alexander Clemm
- Re: [Netconf] Subscription State Notifications (R… Kent Watsen
- Re: [Netconf] Subscription State Notifications (R… Alexander Clemm