Re: [Netconf] IETF 101 SN Question 1: Proper designation of receiver

"Eric Voit (evoit)" <evoit@cisco.com> Mon, 02 July 2018 17:09 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 77A7713121C for <netconf@ietfa.amsl.com>; Mon, 2 Jul 2018 10:09:30 -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_HIGH=-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 6vVov-KA0ZxL for <netconf@ietfa.amsl.com>; Mon, 2 Jul 2018 10:09:24 -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 494CC131248 for <netconf@ietf.org>; Mon, 2 Jul 2018 10:09:23 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=8198; q=dns/txt; s=iport; t=1530551363; x=1531760963; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=VM3zTMv9Se7F4JvmQp/T310NfBn1heN1yqSaZG9nznY=; b=AMpwY+U+dLwQcIBiLNCFPpCKM9a5eKBZIqu47ej7O4rycliiqp4dy75h PywweuCRcmI1MQ6H+jqM1qztrc7l6VoOjLYeiDZQsvXZ4DyucVPivzuF2 NxpJIySUGZbHZX2ONPzNeOuOdIPBHEKU1a8xLY1rEI1AxCNUUWfKq3kin c=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0DCBAC4Wzpb/4sNJK1TCRkBAQEBAQEBAQEBAQEHAQEBAQGDHyUFYn8oCotzjD6CB5UkgXoLhGwCgzQhNBgBAgEBAgEBAm0ohTYBAQEDATo/BQsCAQgOBwMMAREQMiUCBA4FCBaCN0yBdwiqOohMgS6HPYEwgVY/hB6BQYMPFIVsAoc/hQ+MeAkCjxOBSIwVh3qJZgIREwGBJB04gVJwFTuCaYIkF44Xb49tgRoBAQ
X-IronPort-AV: E=Sophos;i="5.51,299,1526342400"; d="scan'208";a="418372689"
Received: from alln-core-6.cisco.com ([173.36.13.139]) by rcdn-iport-6.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 02 Jul 2018 17:09:22 +0000
Received: from XCH-RTP-011.cisco.com (xch-rtp-011.cisco.com [64.101.220.151]) by alln-core-6.cisco.com (8.14.5/8.14.5) with ESMTP id w62H9L9r021457 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Mon, 2 Jul 2018 17:09:22 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; Mon, 2 Jul 2018 13:09:21 -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; Mon, 2 Jul 2018 13:09:21 -0400
From: "Eric Voit (evoit)" <evoit@cisco.com>
To: Martin Bjorklund <mbj@tail-f.com>
CC: "kwatsen@juniper.net" <kwatsen@juniper.net>, "netconf@ietf.org" <netconf@ietf.org>
Thread-Topic: [Netconf] IETF 101 SN Question 1: Proper designation of receiver
Thread-Index: AQHT7qZjKKPiRp7oL0Gw54ItH09w2qQ1f5yAgABaRoCAAFIXAP//0cbAgCYz3oCAALf2gIALzo6AgACF3OCAAIGQgP//v4TQgAHRv4D//78WkABEsRYAAAapTSAAjo35gAAIQuKQADa+b4AAB2cooABsg3cAAJ0o7pA=
Date: Mon, 02 Jul 2018 17:09:20 +0000
Message-ID: <fba527abe27e429aac27b11d862c3aea@XCH-RTP-013.cisco.com>
References: <c034b39204074d36abdc9f57a6d7537b@XCH-RTP-013.cisco.com> <BD5235E8-596A-40A8-ACDE-3AD947E6D8D9@juniper.net> <89a99290a9ff4addb3d8c537aae89dbf@XCH-RTP-013.cisco.com> <20180629.110556.2237400478562295884.mbj@tail-f.com>
In-Reply-To: <20180629.110556.2237400478562295884.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.230]
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/9FPEelHpCKSLU0OPGgaN1JwxX1A>
Subject: Re: [Netconf] IETF 101 SN Question 1: Proper designation of receiver
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: Mon, 02 Jul 2018 17:09:37 -0000

> From: Martin Bjorklund, June 29, 2018 5:06 AM
> 
> Hi,
> 
> "Eric Voit (evoit)" <evoit@cisco.com> wrote:
> > Martin,
> > one question specifically to you below. (search for **Martin)
> 
> See inline
> 
> >
> > Kent,
> > in line...
> >
> > > From: Kent Watsen, June 26, 2018 9:47 PM
> 
> [...]
> 
> > > > So can we take out address and finally be done?   That would be a good
> > > thing.
> > >
> > > Yes, take out the address leaf but I think that, if we want to
> > > progress the SN draft along with a transport binding definition that
> > > doesn't depend on the ietf-*conf-server modules, then we might
> > > define something else
> > > like:
> > >
> > >   module ietf-netconf-no-crypto-subscribed-notifications {
> > >     prefix nncsn;
> > >     import ietf-subscribed-notifications { prefix sn; }
> > >
> > >     container implicit-netconf-receivers {
> > >       list implicit-netconf-receiver {
> > >         key name;
> > >         leaf name { ... }
> > >         leaf address { ... }
> > >         leaf port { ... }
> > >       }
> > >     }
> > >     augment "/sn:subscriptions/sn:subscription/sn:receivers/sn:receiver" {
> > >       if-feature "subscription-support";
> > >       when 'derived-from(../../../transport, "nsn:netconf")';
> > >       leaf netconf-endpoint {
> > >         type leafref {
> > >           path "/nncsn:implicit-netconf-receivers/nnccs:implicit-netconf-"
> > >                + "receiver/nnccs:name";
> > >         }
> > >       }
> > >     }
> > >     ...
> > >   }
> >
> > **Martin, are you ok with this.  If you are and there are no other
> > **objections, I will add this and we can be done with this thread.
> > **Which would be progress.  Otherwise, let's just leave things as they
> > **are.
> 
> No, but it might be that I don't really understand what you propose.
> 
> What is "NETCONF no crypto"?  Comparing with "ietf-netconf-server"
> model, you don't have the "server-identity".  How can this be secure?

I am fine with things the way they are.  Above Kent was attempting to provide a lightweight call home structure as a surrogate for the previous "address" and "port".   Since we can't easily get to consensus on a lightweight structure, we should just leave this up to vendor until ietf-netconf-server.yang is available.   This thread has already  shown that valid augmentations to the subscription model may be constructed to into receivers.

> Is the reason for this to avoid a dependency to "draft-ietf-netconf-netconf-
> client-server" from "draft-ietf-netconf-netconf-event-notifications"?
> 
> I would rather keep this dependency and ensure the WG finishes the client-
> server model.  (This work was adopted by the WG in 2014 which is even earlier
> than the notif drafts...)

I have updated the text to point to ietf-netconf-server.yang as an informational for vendors who want to implement a call home structure.   As ways of adding the leafref to ietf-netconf-server.yang exist, I don't think it necessary to wait for that ecosystem of drafts to conclude.  

> > BTW: adding back address and port also solves the "how do we have a
> > common transport across multiple configured receivers".
> >
> > > I don't quite understand how the server is supposed to know how to
> > > configure the call-home parameters or the transport parameters, but
> > > at least this would be on par with what you had before.
> >
> > Yes.
> >
> > > >> <big snip/>
> > > >> We agree above that the ietf-*conf-server module may not be
> > > *implemented*, and
> > > >> yet subscriptions still need to be configured
> 
> I think it is ok to require an implementation of configured subscriptions that
> use the standard "nsn:netconf" transport to also implement the ietf-netconf-
> server module.  If a vendor doesn't want this, it can define another transport
> identity.

I have updated the text to point to ietf-netconf-server.yang as an informational reference.  Requiring an implementation of NETCONF configured subscriptions to use the full evolving ecosystem of ietf-netconf-server.yang which can be determined later. 

Eric

> /martin
> 
> > > >> leafref-
> > > ing
> > > >> becomes the issue.   This is why I'm suggesting the netconf-notif YANG
> > > module
> > > >> *use* the netconf-server-group itself.  This way, when the
> > > >> *netconf-notif
> > > draft
> > > >> is implemented, its own definition comes into play.  When done
> > > >> this way,
> > > the
> > > >> flag would no longer be needed since the entire netconf-server
> > > >> instance
> > > would
> > > >> be SN-specific.
> > > >
> > > > The NETCONF-Notif draft needs to be implemented now for dynamic
> > > subscriptions.
> > >
> > > From above, and I can't ascertain why this is, when dynamic
> > > subscriptions don't appear to utilize the "netconf" identity in any
> > > way...
> >
> > No, but non-YANG Sections 5, 7, & 8 is needed.  Plus many of the
> > examples.
> >
> > > > An update to NETCONF-notif for configured subscriptions is
> > > > possible to insert the call-home leafref (or insert new grouping).
> > > > But this update becomes unnecessary if ietf-netconf-server.yang is
> > > > augmented as described above.
> > >
> > > Perhaps, but it seems unnatural to do it this way.  What makes sense
> > > to me is for the module that claims to be the transport-binding
> > > module to provide the configuration for binding the transport.
> >
> > At this point we do have a relatively minor difference of option which
> > need not impact the closing the current
> > draft-ietf-netconf-netconf-event-notifications.
> >
> > > >> >> That said, I have to say that I'm not entirely sure if I
> > > >> >> understand if what is planned is legal.  For instance, in a
> > > >> >> normal NETCONF call-home situation,
> > > the
> > > >> >> NETCONF session begins with both sides sending <hello>
> > > >> >> messages and
> > > then
> > > >> >> the server waiting for the client to send RPCs, which might
> > > >> >> include a
> > > 5277
> > > >> >> <create-subscription>, after which the <notifications> begin to flow.
> > > >> >> Is
> > > >> >> this the same here, or are you expecting the <notification>
> > > >> >> messages to
> > > start
> > > >> >> flowing immediately?
> > > >> >
> > > >> > A subscription started notification will be sent after the
> > > >> > hellos are
> > > successful.
> > > >> > Can you point to something in RFC 6241 which says a
> > > >> > <notification> can't
> > > be
> > > >> sent
> > > >> > until an RPC is sent from the client?
> > > >>
> > > >> It's not a very good reference, but I found this (emphasis added):
> > > >>
> > > >>    o  client: Invokes protocol operations on a server.  In addition, a
> > > >>       client can *subscribe* to receive notifications from a server.
> > > >>
> > > >> We should ask the WG.  All I know is that it's always been that
> > > >> the client
> > > does
> > > >> something to initiate server behavior.  Admittedly, this is kind
> > > >> of a new
> > > thing,
> > > >> and it might be okay, but I think it warrants review by others.
> > > >
> > > > You are welcome to make the request.
> > >
> > > Eric, you are the Editor.  But beware, this could blow up and we
> > > decide to drop the netconf and restconf protocols bindings entirely
> > > and only focus on transport bindings for things like gRPC and
> > > udp-pub-channel.  If NC/RC are needed, then the server could
> > > configure a standard call-home connection (via the ietf-*conf-server
> > > modules) from which the client can issue a start a dynamic
> > > subscription.  Just thinking this might be a better win.
> >
> > Things are far easier with HTTP based transports, because you must get
> > an explicit OK from a subscription-started before sending any
> > <notification>.  See RESTCONF-notif for configured subscriptions which
> > used no RESTCONF at all for this function.
> >
> > Eric
> >
> > > > Eric
> > >
> > > Kent // contributor
> > >
> >