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

Robert Wilton <rwilton@cisco.com> Thu, 25 May 2017 10:15 UTC

Return-Path: <rwilton@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 C01CF1293E3 for <netconf@ietfa.amsl.com>; Thu, 25 May 2017 03:15:20 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -13.103
X-Spam-Level:
X-Spam-Status: No, score=-13.103 tagged_above=-999 required=5 tests=[BAYES_05=-0.5, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-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 DAuxC9Vhxp_l for <netconf@ietfa.amsl.com>; Thu, 25 May 2017 03:15:19 -0700 (PDT)
Received: from aer-iport-4.cisco.com (aer-iport-4.cisco.com [173.38.203.54]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2B2621293E1 for <netconf@ietf.org>; Thu, 25 May 2017 03:15:19 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=2916; q=dns/txt; s=iport; t=1495707319; x=1496916919; h=subject:to:references:cc:from:message-id:date: mime-version:in-reply-to:content-transfer-encoding; bh=tDF1K17Qvet3K5tIcIBhNXHtQ+k6/Z3LDZ3Hk38FC3k=; b=i+nq009Pgf+JnkexAs7jKPbq9VWzpKnainUQp077e43Gz5sc94DvQIBQ OpDkR72tFiPVYpJbcxOQera/UmcDoaYDfKilP5vm5BPAU75e9/5Tqx7Zg vw+LVvJi/C5ikxcLgXmz2GfzeFO2qvpiWxWWbPog0oxkpBSk5/ancO5Pi Q=;
X-IronPort-AV: E=Sophos;i="5.38,391,1491264000"; d="scan'208";a="654924324"
Received: from aer-iport-nat.cisco.com (HELO aer-core-1.cisco.com) ([173.38.203.22]) by aer-iport-4.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 25 May 2017 10:15:17 +0000
Received: from [10.63.23.123] (dhcp-ensft1-uk-vla370-10-63-23-123.cisco.com [10.63.23.123]) by aer-core-1.cisco.com (8.14.5/8.14.5) with ESMTP id v4PAFGoH027977; Thu, 25 May 2017 10:15:17 GMT
To: Alexander Clemm <alexander.clemm@huawei.com>, Martin Bjorklund <mbj@tail-f.com>, "evoit@cisco.com" <evoit@cisco.com>
References: <adbaf2b697434bf4b44a1910af6e677c@XCH-RTP-013.cisco.com> <20170523.195720.334918098247517091.mbj@tail-f.com> <98ef4c64e750467ca9a35b66b359dc8d@XCH-RTP-013.cisco.com> <20170524.093545.1590430256406536052.mbj@tail-f.com> <644DA50AFA8C314EA9BDDAC83BD38A2E0DFB052A@SJCEML701-CHM.china.huawei.com>
Cc: "netconf@ietf.org" <netconf@ietf.org>
From: Robert Wilton <rwilton@cisco.com>
Message-ID: <7f566ed1-4e7c-bc9c-08a8-0a3252783429@cisco.com>
Date: Thu, 25 May 2017 11:15:17 +0100
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0
MIME-Version: 1.0
In-Reply-To: <644DA50AFA8C314EA9BDDAC83BD38A2E0DFB052A@SJCEML701-CHM.china.huawei.com>
Content-Type: text/plain; charset="windows-1252"; format="flowed"
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/GHq8iiYA1zBj0gRXIXQjvBoZ6MI>
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 10:15:21 -0000

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.

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