Re: [Netconf] In an update, when is a delete a delete?

Martin Bjorklund <mbj@tail-f.com> Thu, 25 May 2017 11:33 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 C1C40129536 for <netconf@ietfa.amsl.com>; Thu, 25 May 2017 04:33:26 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.902
X-Spam-Level:
X-Spam-Status: No, score=-1.902 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-0.001, 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 KQ04I3-FGwz2 for <netconf@ietfa.amsl.com>; Thu, 25 May 2017 04:33:25 -0700 (PDT)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id 99BC51294F8 for <netconf@ietf.org>; Thu, 25 May 2017 04:33:25 -0700 (PDT)
Received: from localhost (h-13-81.a165.priv.bahnhof.se [155.4.13.81]) by mail.tail-f.com (Postfix) with ESMTPSA id 02C131AE0383; Thu, 25 May 2017 13:33:21 +0200 (CEST)
Date: Thu, 25 May 2017 13:33:21 +0200
Message-Id: <20170525.133321.766372097216876920.mbj@tail-f.com>
To: rwilton@cisco.com
Cc: alexander.clemm@huawei.com, evoit@cisco.com, netconf@ietf.org
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <7f566ed1-4e7c-bc9c-08a8-0a3252783429@cisco.com>
References: <20170524.093545.1590430256406536052.mbj@tail-f.com> <644DA50AFA8C314EA9BDDAC83BD38A2E0DFB052A@SJCEML701-CHM.china.huawei.com> <7f566ed1-4e7c-bc9c-08a8-0a3252783429@cisco.com>
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/uKmK2q4qyeRd-Cz8hG-mGABzJMM>
Subject: Re: [Netconf] In an update, when is a delete a delete?
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: Thu, 25 May 2017 11:33:27 -0000

Robert Wilton <rwilton@cisco.com> wrote:
> Hi,
> 
> On 24/05/2017 23:25, Alexander Clemm wrote:
> > Let me briefly summarize where I think we are. The thread has clearly
> > moved on from the initial issue of how to distinguish between causes
> > for updates to no longer include a given data node (because it was
> > deleted, or because it changed its value to no longer match a filter)
> > to other issues.
> >
> > For those other issues, I think there are in fact two separate items
> > that we are trying to discuss at the same time, which are really
> > orthogonal to one another:
> >
> > - The first item concerns the concept of a "filter" vs a "selector".  A
> > - filter is what gets specified for any subscription to notifications,
> > - which defines which notifications a subscriber wants to receive.  The
> > - filter is applied to the notification as a whole, i.e. either the
> > - notification is delivered or it is not.  It does not apply to subsets
> > - of contents within the notification.  A selector, on the other hand,
> > - is used to specify updates of which data nodes to include in a
> > - YANG-push subscription.  The same update notification could include
> > - updates of several data nodes, hence a filter applied to the
> > - notification as a whole would be inappropriate here - the semantics is
> > - slightly different: as a subscriber, "of which data nodes would you
> > - like to receive updates", not "which notifications would you like to
> > - receive".
> If you look at this problem in a slightly different way, then I'm not
> sure that "selectors" are necessarily different from "filters".
> 
> One could see all subscribers of periodic and on-change YANG Push
> subscriptions to really be recipients of the same single conceptual
> stream of data node change (and periodic) updates from a
> datastore. This conceptual stream of changes can be regarded as an
> unbounded sequence of notifications, where each notification contains
> a change for one or more data nodes.  Under this description, it seems
> that a YANG Push "selector" then acts like a Notification "filter" in
> that it chooses which of those messages in that conceptual stream get
> sent on to each subscriber.

This has been discussed before.  I think it is a convoluted hack.  The
notifications would have to conceptually contain the entire datastore
(entire opertational state for example), and then you'd have to
handwave a bit to produce a pruned notification with just the nodes
the subscriber is interested in.   What's the point anyway when
there's already a clean, simple solution available?



/martin


> The only difference I see between "selectors" and "filters" is that
> the YANG push messages acted on by a selector COULD be pruned to only
> include the nodes of interest.  But perhaps this distinction is a
> actually a property of the type of notification that is being
> generated.  I.e. whether a notification can be pruned by a
> "filter/selector", or whether it is a binary decision to send or drop
> the notification message (like RFC 5277).
> 
> For notifications that could be pruned, then I think that the choice
> as to whether to prune the notification data should be an
> implementation choice, and that it should be acceptable to also send
> messages that include extra nodes that are not of interest, and
> perhaps in the extreme case to send some notifications that don't
> actually contain any nodes of interest at all!
> 
> Rob
>