Re: [Netconf] netconf call home connection type

Martin Bjorklund <mbj@tail-f.com> Wed, 22 August 2018 08:45 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 4D90D130E1F for <netconf@ietfa.amsl.com>; Wed, 22 Aug 2018 01:45:21 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level:
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_PASS=-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 O9u92YYOQppl for <netconf@ietfa.amsl.com>; Wed, 22 Aug 2018 01:45:19 -0700 (PDT)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id 65F0B130E1B for <netconf@ietf.org>; Wed, 22 Aug 2018 01:45:19 -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 5903E1AE0388; Wed, 22 Aug 2018 10:45:17 +0200 (CEST)
Date: Wed, 22 Aug 2018 10:45:17 +0200
Message-Id: <20180822.104517.297330493199273368.mbj@tail-f.com>
To: kwatsen@juniper.net
Cc: netconf@ietf.org
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <4EAB4AE6-9957-46C5-A811-D0187C605AF2@juniper.net>
References: <20180821.141923.1666876004159297021.mbj@tail-f.com> <4EAB4AE6-9957-46C5-A811-D0187C605AF2@juniper.net>
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/8itByCTwR0gzdB6-_G3g0wzoPL0>
Subject: Re: [Netconf] netconf call home connection type
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.27
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, 22 Aug 2018 08:45:21 -0000

Hi,

Kent Watsen <kwatsen@juniper.net> wrote:
> 
> 
> > Hi,
> >
> > In draft-ietf-netconf-netconf-client-server-06, each "netconf-client"
> > in the "call-home" list has a list of endpoints and a
> > "connection-type".  The connection type defaults to "persistent".
> 
> > I suggest we add a new connection type case "on-demand" or something
> > similar, which can be used e.g. when there is something external to
> > trigger the call home.  
> 
> "periodic" is meant to cover on-demand also.

But even if it allows on-demand, it will still do periodic connects.

> Very early slides on all
> this used to call it "periodic + on-demand".  The "reconnect-timeout" 
> description statement says: 
>  
>   In ietf-netconf-client:
>     The NETCONF client may initiate a
>     connection before this time if desired
>     (e.g., to set configuration).";
> 
>   In ietf-netconf-server:
>     The NETCONF server may initiate a connection before
>     this time if desired (e.g., to deliver an event
>     notification message).";
> 
> 
> > An example would be a periodic yang push subscription.
> 
> Right, "to deliver an event notification message".
> 
> 
> > I also suggest that the default connection strategy either is 
> > dropped, or changed to "on-demand".
> 
> This was discussed at the IETF 102 meeting (see attached slide and
> lines 329-335 in the minutes).  Essentially, folks want to add a
> "periodic" feature enabling the initiating peer to optionally
> support periodic connections.  As such, I don't think it should
> be the default.

Well, I didn't suggest to make "periodic" default; I suggested to make
an explcit "on-demand" as default.

Also, I don't agree with the statement that periodic call home is not
commonly supported.  With our proprietary "call home" protocol, it is
always used.  And IIRC the TR-069 call home feature also relies on
periodic call home.

In fact, I don't understand when "persistent" will be used.  As soon
as you have a somewhat large set of devices to manage, you can't
maintain persistent connections to all of them.

I'm ok with removing the default and making the choice mandatory.


> > Also, looking at the "periodic" case, when have in ietf-netconf-server:
> >
> >           |        +--rw periodic!
> >           |           +--rw idle-timeout?        uint16
> >           |           +--rw reconnect-timeout?   uint16
> >
> > In YANG Push, we have:
> >
> >           |  +--rw yp:periodic!
> >           |     +--rw yp:period         yang:timeticks
> >           |     +--rw yp:anchor-time?   yang:date-and-time
> >
> >
> > does it make sense to use similar parameters in these two cases?
> 
> The YANG Push parameters have no equivalent to "idle-timeout".

Sure, this is quite obvious.

> This
> is what is sometimes called a "linger-timeout".  The connection stays
> open a little while longer in case the remote peer has a follow-up,
> as they often do.  There would be no need for YANG-push to have this
> concept, being primarily a one-way flow.

Not really; it is not needed in YANG puch b/c the push parameters
define *how often to poll*.  This is unrelated to the call home
parameters.  For example, I can envision a situation where you want to
poll say once an hour, but then call home once a day.  

Also, you can have a dynamic subscription (w/o call home) with
periodic YANG push.


> The client-server drafts have no equivalent to "anchor-time", some
> point in the future after which connections begin.

It is not a time in the future.

> This looks
> complex with questionable value, worth keeping?

If used in the server model, it can be used to handle a large number
or devices to ensure that not all of them call home at the same time.

To be clear, I think we should have: (in the server model)

           |        +--rw periodic!
           |           +--rw idle-timeout?       uint16
           |           +--rw period?             uint16
           |           +--rw anchor-time?        yang:date-and-time



/martin