Re: [netconf] overview of updates and current issues

Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> Mon, 15 April 2019 21:34 UTC

Return-Path: <j.schoenwaelder@jacobs-university.de>
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 25B69120241 for <netconf@ietfa.amsl.com>; Mon, 15 Apr 2019 14:34:56 -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, RCVD_IN_DNSWL_NONE=-0.0001] 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 IXvwuWEAbnDC for <netconf@ietfa.amsl.com>; Mon, 15 Apr 2019 14:34:52 -0700 (PDT)
Received: from atlas5.jacobs-university.de (atlas5.jacobs-university.de [212.201.44.20]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7E8AF120233 for <netconf@ietf.org>; Mon, 15 Apr 2019 14:34:52 -0700 (PDT)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas5.jacobs-university.de (Postfix) with ESMTP id 930CE35E; Mon, 15 Apr 2019 23:34:50 +0200 (CEST)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas5.jacobs-university.de ([10.70.0.217]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10032) with ESMTP id e9NXLwIUdiOA; Mon, 15 Apr 2019 23:34:50 +0200 (CEST)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas5.jacobs-university.de (Postfix) with ESMTPS; Mon, 15 Apr 2019 23:34:50 +0200 (CEST)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by hermes.jacobs-university.de (Postfix) with ESMTP id 53354200C9; Mon, 15 Apr 2019 23:34:50 +0200 (CEST)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10028) with ESMTP id src8lKNGwqH4; Mon, 15 Apr 2019 23:34:49 +0200 (CEST)
Received: from exchange.jacobs-university.de (SXCHMB01.jacobs.jacobs-university.de [10.70.0.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "exchange.jacobs-university.de", Issuer "DFN-Verein Global Issuing CA" (verified OK)) by hermes.jacobs-university.de (Postfix) with ESMTPS id D31D8200C5; Mon, 15 Apr 2019 23:34:49 +0200 (CEST)
Received: from anna.localdomain (10.50.218.117) by sxchmb03.jacobs.jacobs-university.de (10.70.0.155) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Mon, 15 Apr 2019 23:34:49 +0200
Received: by anna.localdomain (Postfix, from userid 501) id C4E2A30084387F; Mon, 15 Apr 2019 23:34:48 +0200 (CEST)
Date: Mon, 15 Apr 2019 23:34:48 +0200
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Kent Watsen <kent+ietf@watsen.net>
CC: "netconf@ietf.org" <netconf@ietf.org>
Message-ID: <20190415213448.krsi3ma3fds2u4hh@anna.jacobs.jacobs-university.de>
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
Mail-Followup-To: Kent Watsen <kent+ietf@watsen.net>, "netconf@ietf.org" <netconf@ietf.org>
References: <01000169fa45ea88-505cd325-94b7-4d48-a529-448a9905f534-000000@email.amazonses.com> <20190408154613.ytibxwvjurfcwinp@anna.jacobs.jacobs-university.de> <0100016a22d1b6e2-73101afa-6a8a-44b0-9295-1af1595008ce-000000@email.amazonses.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <0100016a22d1b6e2-73101afa-6a8a-44b0-9295-1af1595008ce-000000@email.amazonses.com>
User-Agent: NeoMutt/20180716
X-ClientProxiedBy: SXCHMB03.jacobs.jacobs-university.de (10.70.0.155) To sxchmb03.jacobs.jacobs-university.de (10.70.0.155)
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/S8QJz_-ccTEvMk0YfarCWUpZsI0>
Subject: Re: [netconf] overview of updates and current issues
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETCONF WG 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, 15 Apr 2019 21:34:56 -0000

Inline...

On Mon, Apr 15, 2019 at 09:05:30PM +0000, Kent Watsen wrote:
> 
> >> Current Issues:
> >> 
> >> 1. Regarding the "demux containers":
> >> 
> >>     Pros:
> >>       - now the NC/RC models look better
> >>       - a convenient place to have a nacm:default-deny-write
> >> 
> >>     Cons:
> >>       - seems overbearing for general use
> >> 
> >>   Question:
> >> 
> >>     Would it be better to revert and instead wrap each "uses"
> >>     statement in the NC/RC models with a container?
> >> 
> >>        Pros: maximum flexibility
> >>        Cons: less consistency?
> > 
> > What exactly are the demux containers? You mean the
> > <tcp-client-parameters> and <tls-client-parameters> containers?
> 
> Yes.  This is what what meant by:
> 
>    "Added a top-level "demux container" inside the top-level grouping.
>     By "demux", I'm referring to the namespace problem discussed @104."
> 
> about 10 lines above.
> 
> 
> 
> > I have no strong opinion, they may be ok although things get a bit more verbose.
> 
> On the "Cons" side, I'm calling the containers "<protocol>-<client/server>-parameters".  I question is if this is a good name in all contexts.  By removing the "demux container",  it lets the consumer decide what to call it.  This brings us to the "less consistency?" comment;  of course there would be little consistency but, do we care?
> 
> Regarding "a convenient place to have a nacm:default-deny-write", I don't see anywhere in RFC 8341 that nacm:default-deny-write can't be used in a grouping, but it will impact the parent...  If the parent has other descendents besides from the grouping, those descendents would likely be impacted too, right?   Do we care?  If we put nacm:default-deny-write under the grouping statement, then I think that it subtly enforces consumers to create their own wrapper containers (as opposed to mixing the descendents in with other nodes).   Alternately, we could float the "if-feature" statement down to each descendent of the grouping.  Not ideal, but works...?
>

Perhaps instead of being tricky (subtly enforcing consumers to create
their own wrapper), why not move the nacm:default-deny-write to the
leafs? This seems less subtle and more robust.
 
> >> 3. In either the NETCONF and RESTCONF drafts, does it matter at all
> >>   where a 'must' statement is located, especially if they refer to
> >>   nodes that are conditional by "if-feature" statements?
> >> 
> >>      i.e., search for "case periodic-connection"
> >> 
> >>   Should the "must" statements be located somewhere else?
> > 
> > I actually wonder whether this must is really desirable. What breaks
> > if I have TCP keep-alives turned on for a periodic call-home connection?
> > Perhaps I want to enable keep-alives to work around a broken firewall.
> 
> The point of the periodic connection, from which it gets its name, is that it "frequently" sets-up and tears-down.  Thus is self-healing in the case of a network drop.
> 
> Our WG's primary use-case for keepalives is a device that has been configured to periodically call-home (perhaps every midnight), in case its controller application has any config pending for it (depositing logs is assumed to be out-of-band).    One can imagine the controller performing a number of steps, potentially with delays between the steps.

The point is that we do not know what will happen once the server has
called home - so how can we be sure that keep alives never make sense
with call-home?

> The ietf-[net/rest]conf-server-grouping groupings say this about the "periodic-connection" presence container (under "call-home"):
> 
>                      "Periodically connect to the NETCONF client.  The
>                       NETCONF client should close the underlying TCP
>                       connection upon completing planned activities.
> 
> So, if the connection is dropped (do to a lack a keepalives), should the server interpret that as "the client completed planned activities", and therefore doesn't need to connect again until next midnight?

The server likely does not care, at least likely not more than without
call-home. I assume that keep alives are more interesting for a client
that is not constantly talking to the server but likes to keep the
session open (for whatever reason).

> Separately (not related to the above), the ietf-[net/rest]conf-client-grouping groupings say (under "initiate"):
> 
>                      "Periodically connect to the NETCONF server.  The
>                       NETCONF server should close the underlying TCP
>                       connection upon completing planned activities.
> 
> which might be right, but somehow it feels odd that the client wouldn't always do close the connection...
>

For the use cases I have in mind for this, the server would not really
know when to close the connection since the client would take control
over what is going on. This may, however, be different from a
call-home to stream notifications. Perhaps we should say less.

One thing that comes to mind is whether a new callhome attempt should
be made in situations where the previous callhome is still alive. Do
we want to say something about this or not?

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