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

Martin Bjorklund <mbj@tail-f.com> Thu, 14 June 2018 18:40 UTC

Return-Path: <mbj@tail-f.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 6FA2F130E6B for <netconf@ietfa.amsl.com>; Thu, 14 Jun 2018 11:40:02 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, 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 Y1XCdU4G77mi for <netconf@ietfa.amsl.com>; Thu, 14 Jun 2018 11:40:00 -0700 (PDT)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id D24B7130E1D for <netconf@ietf.org>; Thu, 14 Jun 2018 11:39:59 -0700 (PDT)
Received: from localhost (h-80-27.A165.priv.bahnhof.se [212.85.80.27]) by mail.tail-f.com (Postfix) with ESMTPSA id 1E1311AE01AA; Thu, 14 Jun 2018 20:39:59 +0200 (CEST)
Date: Thu, 14 Jun 2018 20:39:59 +0200
Message-Id: <20180614.203959.786029239464099510.mbj@tail-f.com>
To: evoit@cisco.com
Cc: j.schoenwaelder@jacobs-university.de, alexander.clemm@huawei.com, alex@clemm.org, netconf@ietf.org
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <f6f66d0c0a444f2bb0fc770082450037@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>
X-Mailer: Mew version 6.7 on Emacs 24.5 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/pgU-vMBjxZPwuzTKx9htcl_xDY8>
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 18:40:03 -0000

"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".  I am not sure that a "publisher" is always a "server"; this
needs to be decided.

> > 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.

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?

> 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"?

> > 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.

> 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/>
> > >
>