Re: [Netconf] comments on draft-ietf-netconf-subscribed-notifications-12

"Eric Voit (evoit)" <evoit@cisco.com> Thu, 14 June 2018 20:11 UTC

Return-Path: <evoit@cisco.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 81F52130EEF for <netconf@ietfa.amsl.com>; Thu, 14 Jun 2018 13:11:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.51
X-Spam-Level:
X-Spam-Status: No, score=-14.51 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, T_DKIMWL_WL_MED=-0.01, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id N-Di57rXJxZB for <netconf@ietfa.amsl.com>; Thu, 14 Jun 2018 13:11:41 -0700 (PDT)
Received: from rcdn-iport-1.cisco.com (rcdn-iport-1.cisco.com [173.37.86.72]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 05B44130E70 for <netconf@ietf.org>; Thu, 14 Jun 2018 13:11:40 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=10647; q=dns/txt; s=iport; t=1529007100; x=1530216700; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=ArUNnAnDcN9rFUzqwOZ8UebNuPNdHYNIjJnErgEqBUE=; b=gxh23K+fn8jceDRYXGJe0A8tLcSRe9f+hk/MpioIZCIxqkmtBxZk+jvt qJVoDES2thkJqD1dS0BGBBgLtx0shU+5Ua7sATsvWPkfjYaG7lKpBduG7 +0GUDCamau+Co6L2IwIheMprkWvDvDeQvqC7zoamb0MtEm1Hi3CiJoHwr I=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0CfAAC1yiJb/4QNJK1aAxkBAQEBAQEBAQEBAQEHAQEBAQGDSGJ/KAqLc4xSgX+UbRSBZAsfhE0CgkkhNBgBAgEBAQEBAQJtHAyFKAEBAQMBOjgFAgUJAgIBCA4CBQMNERAbFyUCBAENBQiDHIF3CKwsiEaBYwUFiEeBVD+BD4MMhEIBDAYBBwI3JoUPApkOCQKOd4FHi3mHboksAhETAYEkHThhcXAVgn6GMIofb418DheBCIEaAQE
X-IronPort-AV: E=Sophos;i="5.51,224,1526342400"; d="scan'208";a="410400888"
Received: from alln-core-10.cisco.com ([173.36.13.132]) by rcdn-iport-1.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 14 Jun 2018 20:11:39 +0000
Received: from XCH-RTP-014.cisco.com (xch-rtp-014.cisco.com [64.101.220.154]) by alln-core-10.cisco.com (8.14.5/8.14.5) with ESMTP id w5EKBdVw007819 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Thu, 14 Jun 2018 20:11:39 GMT
Received: from xch-rtp-013.cisco.com (64.101.220.153) by XCH-RTP-014.cisco.com (64.101.220.154) with Microsoft SMTP Server (TLS) id 15.0.1320.4; Thu, 14 Jun 2018 16:11:38 -0400
Received: from xch-rtp-013.cisco.com ([64.101.220.153]) by XCH-RTP-013.cisco.com ([64.101.220.153]) with mapi id 15.00.1320.000; Thu, 14 Jun 2018 16:11:38 -0400
From: "Eric Voit (evoit)" <evoit@cisco.com>
To: Martin Bjorklund <mbj@tail-f.com>, "alexander.clemm@huawei.com" <alexander.clemm@huawei.com>, "alex@clemm.org" <alex@clemm.org>
CC: "j.schoenwaelder@jacobs-university.de" <j.schoenwaelder@jacobs-university.de>, "netconf@ietf.org" <netconf@ietf.org>
Thread-Topic: [Netconf] comments on draft-ietf-netconf-subscribed-notifications-12
Thread-Index: AQHT/nTB7wTodISdV0qlE/sux4czBKRU8kawgAFinID///zC4IAAXMiA//++zTCABv5KgP//v8BQAAsePAAAAeTiAAAPiUWAAAIQEmAAKpK66wAP4zmQAA4QCIAAB3LtEA==
Date: Thu, 14 Jun 2018 20:11:38 +0000
Message-ID: <25128264f24c483ab55bd92bb6d70dd7@XCH-RTP-013.cisco.com>
References: <20180613160206.gkutjhxigdxpv2uz@anna.jacobs.jacobs-university.de> <20180614.102216.2199378020340361225.mbj@tail-f.com> <f6f66d0c0a444f2bb0fc770082450037@XCH-RTP-013.cisco.com> <20180614.203959.786029239464099510.mbj@tail-f.com>
In-Reply-To: <20180614.203959.786029239464099510.mbj@tail-f.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.118.56.228]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/wm6rUBHIBPIubLjq9BjpYxDtn5w>
Subject: Re: [Netconf] comments on draft-ietf-netconf-subscribed-notifications-12
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: Thu, 14 Jun 2018 20:11:45 -0000

> From: Martin Bjorklund, June 14, 2018 2:40 PM
> 
> "Eric Voit (evoit)" <evoit@cisco.com> wrote:
> > > From: Martin Bjorklund, June 14, 2018 4:22 AM
> > >
> > > Hi,
> > >
> > > Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote:
> > > > On Wed, Jun 13, 2018 at 03:36:01PM +0000, Eric Voit (evoit) wrote:
> > > > > Each of the terms used are different.  While they all are
> > > > > defined in the first
> > > document they are used, let me paraphrase the meanings of the
> > > definitions...
> > > > >
> > > > > Event - something that happened
> > > > >
> > > > > Event record - the recorded details of a single event
> > > > >
> > > > > Update record - one or more datastore node updates
> > > > >
> > > > > <notification> - a structure defined in RFC5277 which is as a
> > > > > wrapper which
> > > contains an event record.  A <notification> can exist without any
> > > active subscription.
> > > > >
> > > > > "notification" statement - a structure defined in RFC-7950
> > > > > section
> > > > > 7.16
> > > which allows the definition of event record types specific to a YANG
> > > module.
> > > The results of the a YANG "notification" statement are encoded in a
> > > <notification>.
> > > >
> > > > Here is where I am getting lost. The RFC 7950 notification
> > > > statement (its not a structure btw) does define the content of a
> notification.
> > > > And notification used to be defined in RFC 6241 as a
> > > > "server-initiated message indicating that a certain event has been
> > > > recognized by the server." Your notion of an event record may come
> > > > from the RFC 5277 format that adds an eventTime etc. but the
> > > > relationship of what is a YANG defined notification and how it
> > > > related to your event record and the <notification> structure is still
> unclear.
> > >
> > > I don't think we should align terminology with 5277.  More important
> > > is to align with the current set of documents; 7950 and 6241.
> >
> > Exactly.
> >
> > Note that there was no terms imported from 5277.
> > Subscribed-notifications does define an umbrella term "notification
> > message", and uses Section 2.6 to make the minimal connection
> > necessary to show that an RFC-5277 <notification> is a valid
> > "notification message".  BTW: We had text in earlier versions of
> > subscribed-notifications stating the need to support future types of
> > "notification messages" such as those defined in
> > draft-ietf-netconf-notification-messages.  However reviewers asked
> > these evolving references to be removed.
> >
> > We do have the option of importing terms from 6241 into the
> > NETCONF-notif document.  This would be the right place to do it
> > because in the subscribed-notifications document we want to limit any
> > introduction of NETCONF dependencies.  (Maybe NETCONF-notif adds text
> > to say that a "RFC6241 client" maps to subscriber, and "RFC6241
> > server" maps to publisher?)
> 
> 8342 defines the terms "client" and "server" in a transport-agnostic way.  I
> think we should try to use these terms in new documents, where applicable.
> In this document, the term "subscriber" is a special "client". 

Agreed.  Terminology section updated per the last email.

> I am not sure that a "publisher" is always a "server"; this needs to be decided.

I think that within YANG-push, a publisher is a special RFC-8342 "server".  Perhaps what we could add to YANG push in the terminology a sentence which says "In this document, the term publisher also includes the role of RFC-8342 server."    Alex, what do you think about that?

However my belief is that we shouldn't do a global cut-and-paste of "publisher" with some new term for this intersection to use throughout the document.   This could end up being confusing.  For example, if we define a new term like "YANG-push publisher" a reader of the YANG model would need to jump back and forth between the definitions of "publisher" and "YANG-push publisher" knowing that both are equally valid in this context. 
 
> > > If subscribed-notifications is transport-independent, it should
> > > probably not talk too much about <notifcation> etc; this should go
> > > into the transport docs.
> >
> > In general, this is what is done.  In subscribed-notifications, the
> > only place <notification> is mentioned at all is section 2.6.  If
> > necessary, we could move this section to NETCONF-notif, but that would
> > leave no transport independent framing for the notifications.  I guess
> > it is possible to live without that, but it would leave the
> > subscribed-notifications feeling incomplete.
> 
> If subscribed-notifications is transport independent, it should not have the
> NETCONF-specific text in 2.6.

RESTCONF also refers to RFC-5277's <notification>.   See section 6.4.    So there is precedent and adoption for reuse of the transport element beyond NETCONF.

So while pulling this section out and placing it within NETCONF-notif is possible, it would mean either replicating this information RESTCONF-notif, or forcing RESTCONF-notif to await the completion of  draft-ietf-netconf-notification-messages.

> 2.6 also says:
> 
>    In all cases, a single transport session MUST
>    be capable of supporting the intermixing of RPCs and notifications
>    from different subscriptions.
> 
> This applies to NETCONF, but not for the UDP transport, and I suspect not for
> the HTTP transport either?

Agreed.  This statement is now removed. 
 
> > I suspect a similar
> > thought process drove the inclusion of <notification> within RFC-6020
> > and then RFC-7950.
> 
> No; for various reasons YANG was initially positioned as a data modelling
> language for NETCONF only.  Hence all text about how to map YANG to
> NETCONF and XML.
> 
> > > 7950 says that the "notification" statement defines a notification.
> > > As Juergen pointed out this term is not defined in the terminology
> > > section, but nevertheless the term is used.
> > >
> > > Does the WG now want to introduce a new term for what the
> > > "notification"
> > > statement defines?
> >
> > It certainly might make sense to have a future update of RFC-7950 with
> > something like this.  I spend a bit of time trying to understand the
> > connection of YANG notification statement with <notification>.  Having
> > this be better defined would be helpful.
> >
> > >  It seems to me that the term "event record" is being proposed for
> > > this.
> >
> > An event record is not necessarily a YANG notification, as the event
> > record's payload might not be driven by the result of a YANG
> > statement.
> 
> I don't get this.  Can you give an example of when an event record is not
> defined as a YANG "notification"?

Another way to put this is that the event record within the <notification> might not be encoding YANG data.  For examples, all the <notification> within RFC5277 were defined before the availability of YANG.
 
> > > The answer to this question will have a big impact on the rest of
> > > the terminology.
> >
> > As event record has a larger scope than what can come from a YANG
> > notification statement, my suggestion would be for the revision of
> > RFC-7950 to import "event record", and then specify a new subtype term
> > (maybe "YANG event record"?).  If that term works, a YANG event record
> > could then be an event record where the contents are populated by the
> > results of the YANG notification statement.
> >
> > > > > Notification message - a message intended for a specific
> > > > > subscription
> > > receiver which includes one or more <notification>. A notification
> > > message will have undergone any security/content filtering on
> > > embedded <notification> as appropriate for that receiver.
> > > >
> > > > So how does this fit Figure 1 of RFC 6241? This figure indicates
> > > > that <notification> is a message as seen from the messages layer.
> > > > You are saying a notification message is something else that
> > > > includes one or more <notification>s. Yes, I know that the diagram
> > > > in RFC 5277 is different but the diagram in RFC 6241 is the newer one.
> > >
> > > This confuses me as well.
> >
> > The requirement for the bundling of many events is being driven by
> > large data center telemetry.  It is unclear at this point whether
> > NETCONF will be a transport used in this environment.
> >
> > If NETCONF does care about this environment, and does want to support
> > something like draft-ietf-netconf-notification-messages, I do think
> > tweaks to RFC-6241 will be needed.
> 
> Yes, somehow.

Ok

Eric
 
> > For example what is the definition
> > of <notification> within 6241, Figure 1 (right now point RFC-5277
> > isn't explicitly mentioned.).  Must this figure only be interpreted as
> > a RFC 5277 <notification>?  Can the figure also mean a
> > draft-ietf-netconf-notification-messages "message"?
> 
> RFC 6241 says that <notification> is defined in RFC 5277.  (ok, there's an error
> in there, and it points to 5717, but there's an errata for that).
> 
> > > How much of this do we have to define in this document, and how much
> > > should go into the transport docs?
> >
> > Beyond what I describe above, impacts would be to new/updated
> > transport drafts.  Plus an update to subscribed-notifications section
> > 2.6 to indicate that a new transport independent <notification>
> > construct exists.
> 
> Ok.
> 
> 
> /martin
> 
> 
> >
> > Eric
> >
> > > /martin
> > >
> > >
> > > > > Per the discussion below, I see an update record being a
> > > > > specialized type of
> > > event record.  For YANG push, the 'event' is driven by the update
> > > trigger: i.e.,
> > > either the expiration of a periodic timer (for periodic
> > > subscriptions), or a change to the datastore (on-change
> > > subscription).
> > > > >
> > > >
> > > > I am missing a definition what an Update record is. It is surely
> > > > not in this email. Anyway, if there are changes to architectural
> > > > concepts, it would be nice to find them in a coherent well explained
> section.
> > > >
> > > > /js
> > > >
> > > > --
> > > > Juergen Schoenwaelder           Jacobs University Bremen gGmbH
> > > > Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
> > > > Fax:   +49 421 200 3103         <https://www.jacobs-university.de/>
> > > >
> >