Re: [Netconf] IETF 101 SN Question 1: Proper designation of receiver (was RE: mbj's WGLC comments on subscribed-notifications-10)

"Eric Voit (evoit)" <evoit@cisco.com> Wed, 09 May 2018 16:26 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 95A1E126C2F for <netconf@ietfa.amsl.com>; Wed, 9 May 2018 09:26:09 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -12.611
X-Spam-Level:
X-Spam-Status: No, score=-12.611 tagged_above=-999 required=5 tests=[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, 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 LA4eriZrJCli for <netconf@ietfa.amsl.com>; Wed, 9 May 2018 09:26:07 -0700 (PDT)
Received: from rcdn-iport-6.cisco.com (rcdn-iport-6.cisco.com [173.37.86.77]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 91F52126C22 for <netconf@ietf.org>; Wed, 9 May 2018 09:26:07 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=16512; q=dns/txt; s=iport; t=1525883167; x=1527092767; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=GRDWiE0BbV50J83rOZdI2s7THeEypDwqR4lv0aHKpeM=; b=YtIlt1I8aOLqLQX/HkKdXm9hEDwBZaDQdbTX9SCFl1ua24s1AKf5gsYK RCvm/hLWYcGze7/xmRQUX1gkr5Bqm2C9cRBx44WcgE08LbEfHBGg0IT8y O9N/gBQ5OPZBD4pXTr7JilJNldtLCGyZN8nycp+aIkXILpfT5gTRJzMk5 8=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0AqAQDpH/Na/4wNJK1TCRkBAQEBAQEBAQEBAQEHAQEBAQGDFC9heigKg2WIAoxxgXmBD5MqgXgLJYRHAhqCUyE0GAECAQEBAQEBAmwcDIUoAQEBAQIBIxE6CQIFCwIBCA4DBAEBAQICCRYHAgICMBUICAIEAQ0FCBIBgwqBdwgPqGGCHIhEgkMFgQmHHIFUP4EPggx/gUGBUAEBAgEXgRwUgxaCVAKHNoRejBgIAoVlgh40gmWDKYE9GoNGh06JSYZfAhETAYEkARw4gVJwFTuCQ4IgFxGDNIUUhT5vAQGQCoEYAQE
X-IronPort-AV: E=Sophos;i="5.49,382,1520899200"; d="scan'208";a="392944148"
Received: from alln-core-7.cisco.com ([173.36.13.140]) by rcdn-iport-6.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 May 2018 16:26:06 +0000
Received: from XCH-RTP-011.cisco.com (xch-rtp-011.cisco.com [64.101.220.151]) by alln-core-7.cisco.com (8.14.5/8.14.5) with ESMTP id w49GQ56l007482 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Wed, 9 May 2018 16:26:06 GMT
Received: from xch-rtp-013.cisco.com (64.101.220.153) by XCH-RTP-011.cisco.com (64.101.220.151) with Microsoft SMTP Server (TLS) id 15.0.1320.4; Wed, 9 May 2018 12:26:05 -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; Wed, 9 May 2018 12:26:05 -0400
From: "Eric Voit (evoit)" <evoit@cisco.com>
To: Kent Watsen <kwatsen@juniper.net>, Martin Bjorklund <mbj@tail-f.com>
CC: "netconf@ietf.org" <netconf@ietf.org>
Thread-Topic: [Netconf] IETF 101 SN Question 1: Proper designation of receiver (was RE: mbj's WGLC comments on subscribed-notifications-10)
Thread-Index: AQHT1cf1tFrkEoX4+UOe3DZL/G+0+6QnAeYAgAB1sUA=
Date: Wed, 09 May 2018 16:26:05 +0000
Message-ID: <9639b2917e23473483a2fc1bf89b6e1e@XCH-RTP-013.cisco.com>
References: <d510ae4b5a8548c096229819f92b04d9@XCH-RTP-013.cisco.com> <3f91777ee1b945a7a770d2fcf9b9d0af@XCH-RTP-013.cisco.com> <F5B7A6D2-2C4C-4E26-8912-A2C7193209E1@juniper.net>
In-Reply-To: <F5B7A6D2-2C4C-4E26-8912-A2C7193209E1@juniper.net>
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="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/JV_eG0Dexj86cm0Y38_Jh9jEXr4>
Subject: Re: [Netconf] IETF 101 SN Question 1: Proper designation of receiver (was RE: mbj's WGLC comments on subscribed-notifications-10)
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: Wed, 09 May 2018 16:26:10 -0000

Hi Kent,

I am trying to map your proposed structure onto the receivers list.  I think what you are suggesting is a design pattern like this:

       +--rw subscriptions
          +--rw subscription* [id]
               +--rw id                 
               +--rw receivers
                  +--rw receiver* [name]
                       +--rw name    string
                       +--rw (transport)
                         +--:(ssh) {ssh-call-home}?
                          |  +--rw ssh
                         |     ...
                          +--:(tls) {tls-call-home}?
                             +--rw tls

There was some discussion early on with respect to using your client/server models as inspiration.  However they were not a clean match, and actually the WG stepped back from this path when there was a decision at & after IETF 100 to simplify things and have a common transport across all receivers of a configured subscription.  

For more, see https://etherpad.tools.ietf.org/p/notes-ietf-100-netconf?useMonospaceFont=true   Issue SN#4 

Also it feels more modular to maintain transport specific call home details in a place like module ietf-netconf-server  This avoids storing call home information for every receiver in the subscriptions table.  The good news is that with the current design, it is possible to augment a leafref to various call-home transport options when that draft progresses.  And I believe Martin suggested this as an approach in this thread.

Eric

In any case as [2] progresses, [2] should be something developers wanting to use call home should use.


> From: Kent Watsen, May 8, 2018 9:30 PM
> 
> 
> Sorry, just looking at this now while listening to the minutes.  I think we should
> look at [1] for inspiration.  This is the pattern that the various client/server and
> syslog documents used.  For instance, notice in [2]:
> 
>   module: ietf-netconf-server
>       +--rw netconf-server
>          +--rw listen {listen}?
>             ...
>          +--rw call-home {call-home}?
>             +--rw netconf-client* [name]
>                +--rw name                  string
>                +--rw endpoints
>                   +--rw endpoint* [name]
>                      +--rw name    string
>                      +--rw (transport)
>                         +--:(ssh) {ssh-call-home}?
>                         |  +--rw ssh
>                         |     ...
>                         +--:(tls) {tls-call-home}?
>                            +--rw tls
>                               ...
> 
> See how there is a 'choice' with a case for each transport?  "Endpoint" here is
> like your "receiver"...
> 
> [1] https://tools.ietf.org/id/draft-schoenw-netmod-yang-pattern-00.txt
> [2] https://tools.ietf.org/html/draft-ietf-netconf-netconf-client-server-
> 05#section-4.1
> 
> Kent // contributor
> 
> 
> 
> > From: Eric Voit, April 3, 2018 8:25 PM
> >
> > At IETF 101, during the subscribed-notifications review, everyone in
> > the room seemed good with having a string which acted as the key for a
> > list of configured receivers:
> > https://urldefense.proofpoint.com/v2/url?u=https-3A__youtu.be_KJtg-2DJ
> > -2D6CZM-3Ft-3D27m39s&d=DwICAg&c=HAkYuh63rsuhr6Scbfh0UjBXeMK-
> ndb3voDTXc
> >
> WzoCI&r=9zkP0xnJUvZGJ9EPoOH7Yhqn2gsBYaGTvjISlaJdcZo&m=nPdmcQiJgwY
> aRYnX
> >
> OWJQJmL0npaAmtTIQk4YNutZA1I&s=XlKKQ9yScaldHxhsVmnkW8vDLpmTgU_4
> u2wD_WC6
> > BDQ&e= What was unresolved was that we still needed to choose the
> > preferred way to enforce each receiver initiating a call-home using
> > the configured subscription's transport.
> >
> > Further below in the thread, Martin proposes a structure to accomplish
> > this.  Please note however that a natural outcome of Martin's
> > suggestion is the placing of a small YANG model within
> > draft-ietf-netconf-netconf-event- notifications which just defines an identity
> for "NETCONF".  Specifically:
> >
> >   identity netconf {
> >     base sn:transport;
> >     base sn:inline-address;
> >     description
> >       "NETCONF is used as a transport for notification messages and
> >        state change notifications.";
> >   }
> >
> > (  For the full min-model with all the boilerplate, see:
> > https://urldefense.proofpoint.com/v2/url?u=https-
> 3A__github.com_netconf-2Dwg_notif-2Dnetconf_blob_master_draft-2Dietf-
> 2D&d=DwICAg&c=HAkYuh63rsuhr6Scbfh0UjBXeMK-
> ndb3voDTXcWzoCI&r=9zkP0xnJUvZGJ9EPoOH7Yhqn2gsBYaGTvjISlaJdcZo&m=n
> PdmcQiJgwYaRYnXOWJQJmL0npaAmtTIQk4YNutZA1I&s=ADVNhk_g5Zew9bG9
> F48_mtfHGr46qSglpAL4AKzJFNY&e=
> > netconf-netconf-event-notifications-10.txt   )
> >
> > The benefit of having this very short model in
> > draft-ietf-netconf-netconf- event-notifications is that it is quite easy to
> enforce the proper call home
> > mechanism for NETCONF based receivers.   Another benefit is that we also
> > can create additional mini models for the RESTCONF / HTTP draft and
> > for other transports as they are built out.
> >
> > Does anyone have issue with this approach?
> 
> There hasn't been anyone with an opinion or an alternative to Martin's
> approach.    As a result, above it what I put into v12:
> https://urldefense.proofpoint.com/v2/url?u=https-
> 3A__datatracker.ietf.org_doc_draft-2Dietf-2Dnetconf-2Dsubscribed-
> 2Dnotifications&d=DwICAg&c=HAkYuh63rsuhr6Scbfh0UjBXeMK-
> ndb3voDTXcWzoCI&r=9zkP0xnJUvZGJ9EPoOH7Yhqn2gsBYaGTvjISlaJdcZo&m=n
> PdmcQiJgwYaRYnXOWJQJmL0npaAmtTIQk4YNutZA1I&s=Hwcw85WOjJ9Duzi44
> YtoggL7NZpDaVVRlJVV6HeziKA&e=
> 
> If you feel strongly for please chime in before the end of the week.  If no one
> chimes in, let's close this issue.
> 
> Eric
> 
> > Eric
> >
> >
> >
> > > From: Martin Bjorklund <mbj@tail-f.com>
> > > Sent: Thursday, March 22, 2018 3:14 PM
> > > To: Eric Voit (evoit) <evoit@cisco.com>
> > > Cc: netconf@ietf.org
> > > Subject: Re: [Netconf] mbj's WGLC comments on
> > > subscribed-notifications-
> > > 10
> > >
> > > Hi,
> > >
> > > [pruning to open issues]
> > >
> > >
> > > "Eric Voit (evoit)" <evoit@cisco.com> wrote:
> > > > Hi Martin,
> > > >
> > > > Thanks very much for the comments.  Thoughts are in line.  Also a
> > > > few key areas marked with "****"
> > > >
> > > > Note that changes shown below are also included in this working
> > > > version
> > > > https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_ne
> > > > tconf-2Dwg_rfc5277bis_blob_master_draft-2Dietf-
> 2D&d=DwICAg&c=HAkYu
> > > > h63rsuhr6Scbfh0UjBXeMK-
> ndb3voDTXcWzoCI&r=9zkP0xnJUvZGJ9EPoOH7Yhqn2
> > > >
> gsBYaGTvjISlaJdcZo&m=nPdmcQiJgwYaRYnXOWJQJmL0npaAmtTIQk4YNutZA1I
> &s
> > > > =Do-8-gNbbkSGICRHwztUIZKhbaErQvFYlrCnmrlKvGQ&e=
> > > netcon
> > > > f-subscribed-notifications-11.txt
> > > >
> > > > > Martin Bjorklund, March 15, 2018 5:12 AM
> > > > >
> > > > > Hi,
> > > > >
> > > > > Here are my WGLC comments on
> > > > > draft-ietf-netconf-subscribed-notifications-10.
> > > > >
> > > > > In general, I think ths document has improved a lot, it is now
> > > > > easier to follow.
> > > > >
> > > > >
> > > > >
> > > > > Major issue
> > > > > -----------
> > > > >
> > > > > o  list receiver
> > > > >
> > > > >    In the YANG model, the "receiver" list is indexed by ip and port.
> > > > >
> > > > >    How is the server supposed to use this simple list of ip/port?
> > > > >
> > > > >    We get a hint from the document in 2.5.2:
> > > > >
> > > > >      transport specific
> > > > >      call-home operations will be used to establish the
> > > > > connection
> > > > >
> > > > >    But it is not clear that this list of ip/port helps.
> > > >
> > > > Actually, the address is of type Host.  Of course for everyone
> > > > must eventually resolve to an IP address to make a connection.
> > > >
> > > > However what I think what you are ultimately trying to do is make
> > > > sure the choice of index doesn't preclude future mechanisms for
> > > > referencing receivers beyond address+Port.  And this likely is a
> > > > good
> > idea.
> > > >
> > > > >    The document
> > > > >    draft-ietf-netconf-netconf-client-server provides configuration for
> > > > >    call home for NETCONF.  In that document, the receiver is
> > > > >    identified with a "netconf-client" name and an "endpoint" name, not
> > > > >    ip/port. (draft-ietf-netconf-restconf-client-server has a similar
> > > > >    structure for RESTCONF).
> > > >
> > > > Yes, having alternative, indirect ways of *ultimately* getting to
> > > > IP address + port would help flexibility.
> > > >
> > > > >    The best solution would have been to have leafrefs to these
> > > > >    datamodels, but if we do that now, it would introduce a delay b/c
> > > > >    of the dependency.
> > > > >
> > > > >    The second best solution (I think) is to change this list to have
> > > > >    just a "name" as the single key, and nothing else, and write that
> > > > >    transport-specific modules can add to this in the future.
> > > >
> > > > I am fine with name as a single key.  However "nothing else"
> > > > injects a few problems:
> > > >
> > > > (1) our traffic counters are transport agnostic.  Displacing them
> > > > to a transport draft reduces utility.
> > >
> > > Yes; my mistake, I didn't mean to exclude the counters / state /
> > > action.  Just host/port.
> > >
> > > > (2) forcing the acquisition of host or ip address only from the
> > > > transport draft creates unnecessary complexity for people who are
> > > > able to simply configure host+Port, should it be available in that
> > > > form already?  So why not simply leave those in as a transport
> > > > agnostic option of last resort should it be available to populate?
> > >
> > > I think it is a bad idea to include open-ended objects just b/c
> > > "maybe someone would like to use them for something".  For
> > > interoperability, it is important that all objects we define have
> > > clear semantics, and that it clear how to use them.
> > >
> > > In this case, none of the standard transports will need these nodes
> > > (unless the client-server models are severly changed).  If someone
> > > defines a transport in the future that needs these objects, it is
> > > trivial to do, and it will be done in a more robust way.
> > >
> > > This said, if the WG strongly believes that these nodes are
> > > important, here's a design that might work:
> > >
> > >   identity inline-address {
> > >     description
> > >       "A transport identity can derive from this identity in order
> > >        to allow inline definition of the host address in the
> > >        'receiver' list";
> > >     }
> > >   }
> > >
> > >   ...
> > >
> > >   leaf address {
> > >     when 'derived-from(../../../transport, "sn:inline-address")';
> > >     ...
> > >   }
> > >
> > > The you can define your transport like this:
> > >
> > >   identity my-udp-based-transport {
> > >     base sn:transport;
> > >     base sn:inline-address;
> > >   }
> > >
> > > I would prefer to simply leave this out though.
> >
> >
> >
> >
> >
> >
> >
> > _______________________________________________
> > Netconf mailing list
> > Netconf@ietf.org
> > https://urldefense.proofpoint.com/v2/url?u=https-3A__www.ietf.org_mail
> > man_listinfo_netconf&d=DwICAg&c=HAkYuh63rsuhr6Scbfh0UjBXeMK-
> ndb3voDTXc
> >
> WzoCI&r=9zkP0xnJUvZGJ9EPoOH7Yhqn2gsBYaGTvjISlaJdcZo&m=nPdmcQiJgwY
> aRYnX
> >
> OWJQJmL0npaAmtTIQk4YNutZA1I&s=8_AkMiol4GBodtRocjI8gu0PfaUJP79h_03
> knfp4
> > 8GI&e=
> 
> _______________________________________________
> Netconf mailing list
> Netconf@ietf.org
> https://urldefense.proofpoint.com/v2/url?u=https-
> 3A__www.ietf.org_mailman_listinfo_netconf&d=DwICAg&c=HAkYuh63rsuhr6S
> cbfh0UjBXeMK-
> ndb3voDTXcWzoCI&r=9zkP0xnJUvZGJ9EPoOH7Yhqn2gsBYaGTvjISlaJdcZo&m=n
> PdmcQiJgwYaRYnXOWJQJmL0npaAmtTIQk4YNutZA1I&s=8_AkMiol4GBodtRocjI
> 8gu0PfaUJP79h_03knfp48GI&e=
>