Re: [Netconf] WG adoption poll draft-voit-netconf-notification-messages-01

Martin Bjorklund <mbj@tail-f.com> Fri, 25 August 2017 07:10 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 4C063132A57 for <netconf@ietfa.amsl.com>; Fri, 25 Aug 2017 00:10:29 -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 xCdeGmHAJicF for <netconf@ietfa.amsl.com>; Fri, 25 Aug 2017 00:10:27 -0700 (PDT)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id BA54B132A55 for <netconf@ietf.org>; Fri, 25 Aug 2017 00:10:26 -0700 (PDT)
Received: from localhost (h-40-225.A165.priv.bahnhof.se [94.254.40.225]) by mail.tail-f.com (Postfix) with ESMTPSA id DED2B1AE02C9; Fri, 25 Aug 2017 09:10:24 +0200 (CEST)
Date: Fri, 25 Aug 2017 09:11:44 +0200
Message-Id: <20170825.091144.2268111396098840213.mbj@tail-f.com>
To: alexander.clemm@huawei.com
Cc: evoit@cisco.com, netconf@ietf.org
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <644DA50AFA8C314EA9BDDAC83BD38A2E0E0F86E5@SJCEML701-CHM.china.huawei.com>
References: <966262187e804ed78b1317cff9a20047@XCH-RTP-013.cisco.com> <20170824.204336.993345371581440417.mbj@tail-f.com> <644DA50AFA8C314EA9BDDAC83BD38A2E0E0F86E5@SJCEML701-CHM.china.huawei.com>
X-Mailer: Mew version 6.7 on Emacs 24.5 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset="utf-8"
Content-Transfer-Encoding: base64
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/NSQ_zFh_C_DbG3-Hip764erqDjQ>
Subject: Re: [Netconf] WG adoption poll draft-voit-netconf-notification-messages-01
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.22
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: Fri, 25 Aug 2017 07:10:29 -0000

Hi,

Alexander Clemm <alexander.clemm@huawei.com> wrote:
> Hi,  
> 
> Couple of thoughts inline, <ALEX>
> 
> --- Alex
> 
> -----Original Message-----
> From: Netconf [mailto:netconf-bounces@ietf.org] On Behalf Of Martin Bjorklund
> Sent: Thursday, August 24, 2017 11:44 AM
> To: evoit@cisco.com
> Cc: netconf@ietf.org
> Subject: Re: [Netconf] WG adoption poll draft-voit-netconf-notification-messages-01
> 
> Eric,
> 
> [warning: email quoting messed up below]
> 
> 
> "Eric Voit (evoit)" <evoit@cisco.com> wrote:
> > From: Andy Bierman, August 24, 2017 12:05 PM
> > 
> > On Thu, Aug 24, 2017 at 5:24 AM, Martin Bjorklund <mbj@tail-f.com<mailto:mbj@tail-f.com>> wrote:
> > Hi,
> > 
> > I support the problem statement in this draft, but I have concerns 
> > with the proposed solution.
> > 
> > Currently, the notification message is defined in RFC 5277, for both 
> > NETCONF and RESTCONF.  It has a non-exensible header, and I agree that 
> > it would be good to fix that.
> > 
> > We have a set of notfication-related documents that are supposed to 
> > replace RFC 5277, to make it more flexible.  I think that one of the 
> > documents in this set (not sure which one) needs to properly define a 
> > new notification message, and introduce an extensibility mechanism for 
> > the header.
> > <Eric> Draft-ietf-netconf-subscribed-notifications, section 6<https://tools.ietf.org/html/draft-ietf-netconf-subscribed-notifications-03#section-6> defines minimal object additions as well as backwards compliance with YANG 1.1 Notifications (RFC-7950 section 7.16.3)<https://tools.ietf.org/html/rfc7950#section-7.16.3> .
> 
> Actually, you point to one of my main concerns with the set of notification drafts.  The section you refer *should* provide a clear specification for what the notification message is, and a clear specification of how the header can be extended.  But it doesn't; it talks about things that ought to go into a notification, and shows an example.
> 
> I have similar concerns for how filters and streams are defined.
> 
> > It is this backwards compliance part with existing YANG notifications which is critical as we don’t want to require a new notification element for the existing event subscription work.
> > draft-voit-netconf-notification-messages is the first attempt at an extensibility mechanism and format for a new notification message.   It is because these extensible headers are not backwards compatible that a separate new draft is being proposed.
> > Then a followup document (like
> > draft-voit-netconf-notification-messages) can use this extensibility 
> > mechanism to define more common header fields.
> > <Eric> It seems that a small number of known headers would be useful to put in the same draft as the extensibility mechanism.  We could break these into two drafts, but I think that would be more work for a reader.
> 
> This is also fine with me.  Then I assume that this draft is not really needed at this time?
> 
> <ALEX> What I am taking away from this is the request to make the definition of the <notification> message more formal, i.e. explicit.  Sure, let's look at what edits are required.  What I do not follow is the conclusion why the draft would not be needed?  Clearly, there are new elements being defined in draft-voit-netconf-notification-messages, including the option to bundle multiple notification records.  

I read Eric's message above that he preferred to define small set of
headers in the same doc as the extensibility mechanism itself, and
that he didn't want two documents.  Personally I'm fine with two
documents, as long as the base document with the extensibility
mechanism is clear.

> </ALEX>
> 
> And BTW, the mechanism that this draft "extends" the notification header is by defining a YANG notification.  This simply doesn't work of course, since we need to define how any YANG notification is encoded in this new notfication message that the base documents will define.
> 
> 
> <ALEX> I would consider the fact that we are using YANG a feature,
> not a bug.

If you misuse a well-defined construct (YANG's notification
statement), how can that be a feature?

> Now, it is true that really we are dealing with two tiers of information - the notification record itself, and the construct that it is contained / encapsulated in (the bundle/housekeeping stuff).  And yes, an independently defined notification should be transported "encapsulated" within the new header we are defining, not separately from it.  
> 
> Really what we should be doing is update RFC 7950.  I think I vaguely remember an earlier discussion thread that stated we could state in a new RFC "Updates: RFC 7950", with text that explains how YANG-defined notifications are encoded.  This is probably what we need to do here.  

Agreed.  BUT, it needs to be done properly.  Here's a quick sketch of
a solution proposal:

In the base document, define the new message layout / the
encapsulation of notifications.  This needs to be in a new XML
namespace in order to differentiate from RFC 5277.  Use yang-data for
this purpose:

  module ietf-yang-notification-message {
    namespace "urn:ietf:params:xml:ns:netconf:notification:2.0";
              // or maybe even a new namespace w/o 'netconf' in it
    prefix ynm;

    import ietf-restconf {
      prefix rc;
    }

    rc:yang-data notification { 
      container header {
        leaf event-time { ... }
        leaf another-common-leaf { ... }
      }
      // notification content goes here, or possibly:
      //  container data { // ... here }
    }
  }

The base document should update RFC 7950 and state that all YANG
defined notifications are encapsulated in this new structure,
regardless of protocol.  It also needs to update RFC 8040 which
currently says that RFC 5277 is used.


To extend this, use Andy's proposed yang-data-augment, and make use of
features and modules to avoid the kitchen-sink syndrome:

  module notifi-header-extensions-for-foobar {
    ...
    import ietf-yang-notification-message {
      prefix ynm;
    }
    import yang-data-ext {
      prefix ydx;
    }

    feature foobar-extra { ... }

    ydx:augment-yang-data /ynm:notification/ynm:header {
      leaf foobar-id { ...}
      leaf foobar-extra {
        if-feature foobar-extra;
        ...
      }
      ...
    }
  }

Details about bundling messages TDB in the base spec.


/martin





> 
> </ALEX>
> 
> 
> > On another level, I'm also worried that this becomes a kitchen-sink of 
> > various headers that may or may not useful.  I would prefer an 
> > initially small set of well thought-through headers, and work from 
> > there.
> > <Eric> When developing v01, it seemed to me more useful to include potential header objects which could later be removed.  The real intention in their inclusion is to spur others’ thinking.   I have zero issue in dropping or morphing proposed headers during draft development.     (Note that it was entries like observation-domain-id which allowed Benoit to make a 1:1 conceptual mapping with corresponding concepts in IPFIX at IETF 98.)
> > 
> > I would like to see these concerns addressed before the WG adopts this 
> > document.
> > 
> > I agree these issues need to be addressed.
> > 
> > <Eric> Hopefully the thoughts above sufficient for now.   Any alternative approaches/proposals would be great to hear.
> 
> My proposal would be to make sure the base is solid before adding extensions.
> 
> 
> /martin
> 
> 
> 
> > 
> > Many other protocols have these properties:
> >   1) ability to add headers over time in separate RFCs
> >   2) ability to identify mandatory vs. optional property (even if nothing else understood)
> >   3) ability to skip over unknown optional headers
> > 
> > <Eric> These three are viable in the current draft.
> > 
> > Eric
> > 
> > 
> > /martin
> > 
> > Andy
> > 
> > 
> > Kent Watsen <kwatsen@juniper.net<mailto:kwatsen@juniper.net>> wrote:
> > >
> > > All,
> > >
> > > This is start of a two-week poll on making the following draft a 
> > > NETCONF working group document:
> > >
> > >   draft-voit-netconf-notification-messages-01 [1]
> > >
> > > Please send email to the list indicating "yes/support" or "no/do not 
> > > support".  If indicating no, please state your reservations with the 
> > > document.  If yes, please also feel free to provide comments you'd 
> > > like to see addressed once the document is a WG document.
> > >
> > >
> > > [1] 
> > > https://tools.ietf.org/id/draft-voit-netconf-notification-messages-0
> > > 1
> > >
> > >
> > > Thank you,
> > > Kent (and Mahesh)
> > >
> > >
> > >
> > >
> > >
> > >
> > > _______________________________________________
> > > Netconf mailing list
> > > Netconf@ietf.org<mailto:Netconf@ietf.org>
> > > https://www.ietf.org/mailman/listinfo/netconf
> > >
> > 
> > _______________________________________________
> > Netconf mailing list
> > Netconf@ietf.org<mailto:Netconf@ietf.org>
> > https://www.ietf.org/mailman/listinfo/netconf
> > 
> <
> _______________________________________________
> Netconf mailing list
> Netconf@ietf.org
> https://www.ietf.org/mailman/listinfo/netconf