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

Alexander Clemm <alexander.clemm@huawei.com> Fri, 19 May 2017 21:31 UTC

Return-Path: <alexander.clemm@huawei.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 52934124C27 for <netconf@ietfa.amsl.com>; Fri, 19 May 2017 14:31:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.221
X-Spam-Level:
X-Spam-Status: No, score=-4.221 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, 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 Mm02ydolsnTv for <netconf@ietfa.amsl.com>; Fri, 19 May 2017 14:31:04 -0700 (PDT)
Received: from lhrrgout.huawei.com (lhrrgout.huawei.com [194.213.3.17]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 88D6B1200F1 for <netconf@ietf.org>; Fri, 19 May 2017 14:31:03 -0700 (PDT)
Received: from 172.18.7.190 (EHLO lhreml701-cah.china.huawei.com) ([172.18.7.190]) by lhrrg02-dlp.huawei.com (MOS 4.3.7-GA FastPath queued) with ESMTP id DGY35313; Fri, 19 May 2017 21:31:01 +0000 (GMT)
Received: from SJCEML703-CHM.china.huawei.com (10.208.112.39) by lhreml701-cah.china.huawei.com (10.201.108.42) with Microsoft SMTP Server (TLS) id 14.3.301.0; Fri, 19 May 2017 22:30:59 +0100
Received: from SJCEML701-CHM.china.huawei.com ([169.254.3.56]) by SJCEML703-CHM.china.huawei.com ([169.254.5.229]) with mapi id 14.03.0235.001; Fri, 19 May 2017 14:30:55 -0700
From: Alexander Clemm <alexander.clemm@huawei.com>
To: Andy Bierman <andy@yumaworks.com>
CC: Kent Watsen <kwatsen@juniper.net>, "Eric Voit (evoit)" <evoit@cisco.com>, Netconf <netconf@ietf.org>
Thread-Topic: [Netconf] In an update, when is a delete a delete?
Thread-Index: AQHS0Bvr5ppCqKOrQVCrK5qvBNQM2KH7F1GA//+3hYCAAIZDAP//jcVQgACYOYCAAGWXIA==
Date: Fri, 19 May 2017 21:30:54 +0000
Message-ID: <644DA50AFA8C314EA9BDDAC83BD38A2E0DFAF223@SJCEML701-CHM.china.huawei.com>
References: <8340AFB7-350A-4641-A130-4114E39C73E1@juniper.net> <CABCOCHS-qYRJuvrDNj+CbL6p+cdt84Mc+a-P-MiqU4x=V814aQ@mail.gmail.com> <644DA50AFA8C314EA9BDDAC83BD38A2E0DFAF042@SJCEML701-CHM.china.huawei.com> <CABCOCHSdMGuXvmf6YeVCw6oVAgRwd2NOLrCC-1x3ync7KPx3Aw@mail.gmail.com> <644DA50AFA8C314EA9BDDAC83BD38A2E0DFAF0AC@SJCEML701-CHM.china.huawei.com> <CABCOCHQ-H7CdQodptTxaJj-7v9qZ_sF41RfBC4oi-GFY57bz+A@mail.gmail.com>
In-Reply-To: <CABCOCHQ-H7CdQodptTxaJj-7v9qZ_sF41RfBC4oi-GFY57bz+A@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.213.48.108]
Content-Type: multipart/alternative; boundary="_000_644DA50AFA8C314EA9BDDAC83BD38A2E0DFAF223SJCEML701CHMchi_"
MIME-Version: 1.0
X-CFilter-Loop: Reflected
X-Mirapoint-Virus-RAPID-Raw: score=unknown(0), refid=str=0001.0A090206.591F6415.0082, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0, ip=169.254.3.56, so=2013-06-18 04:22:30, dmn=2013-03-21 17:37:32
X-Mirapoint-Loop-Id: 199caaf241fb3db042866cd50c5a84f9
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/_i_FwPpQvGGlQ8pLGumF4uQqBMI>
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: Fri, 19 May 2017 21:31:06 -0000

Hi Andy,

I am not sure I understand your question below.  I am not referring to mix-and-match between subscription – not to bundling or anything like that.  Merely to an on-change subscription.

If we do send updates regarding changes, and a subscription allows to apply a “value filter”, there are cases when a change is caused by a node being deleted since the last update cycle, and there are cases when a change is caused by a node changing its value so it no longer matches the value of the filter (and create case accordingly).  This can clearly occur.  Given this, I think we are faced with the alternative of either being able to properly distinguish the two (option #2 in the earlier thread), or disallowing filters based on data node value (option #3).  I was under the impression you were arguing for #3 earlier?

--- Alex

From: Andy Bierman [mailto:andy@yumaworks.com]
Sent: Thursday, May 18, 2017 8:50 PM
To: Alexander Clemm <alexander.clemm@huawei.com>
Cc: Kent Watsen <kwatsen@juniper.net>; Eric Voit (evoit) <evoit@cisco.com>; Netconf <netconf@ietf.org>
Subject: Re: [Netconf] In an update, when is a delete a delete?

Hi Alex,

On Thu, May 18, 2017 at 6:51 PM, Alexander Clemm <alexander.clemm@huawei.com<mailto:alexander.clemm@huawei.com>> wrote:
Hi Andy,
Below
--- Alex

From: Andy Bierman [mailto:andy@yumaworks.com<mailto:andy@yumaworks.com>]
Sent: Thursday, May 18, 2017 6:34 PM
To: Alexander Clemm <alexander.clemm@huawei.com<mailto:alexander.clemm@huawei.com>>
Cc: Kent Watsen <kwatsen@juniper.net<mailto:kwatsen@juniper.net>>; Eric Voit (evoit) <evoit@cisco.com<mailto:evoit@cisco.com>>; Netconf <netconf@ietf.org<mailto:netconf@ietf.org>>
Subject: Re: [Netconf] In an update, when is a delete a delete?

……………………
<snip>
I interpret the “modified-in” and “modified-out” suggested by Kent precisely as a distinction between those cases.  “Modified-out” simply means its value changed so it no longer matches the filter (but the object still exists).  Whether we call it modified-in/out or something else is another question.  Of course, the issue is that this means this is a new case that is not covered by the patch syntax, which would require an extension of the encoding.



What breaks if the client just sees data nodes appear or disappear from 1 patch to the next?
Why does the client need to know the data node still exists, but the foo==5 filter changed.
The client decided that only state for foo==5 needs to be watched, so from its POV
the extra metadata should not be needed.


<Alex>
For periodic, this is what happens.
In the case of on-change, we would indicate changes.  If a data node is not included in an update, how would we be able to distinguish between the case of (not included because no change) and (not included because no longer meets the filter)?  We do need to indicate to the subscriber that there has been a change in that the data node no longer meets the criteria.  Presumably we want to distinguish this from the case that the data node ceased to exist.  (Not distinguishing those cases would put us back to alternative #1, which I think the consensus is that we don’t want that)
</ALEX>


Regarding not included because of no-change:

How can happen/?
Not if the client is requesting non-overlapping subtrees /foo and /bar.
These are safe to mix in 1 subscription. The client should not assume
that an update for /foo means /bar was deleted.

Are you referring to overlapping subtrees in 1 subscription?
How would this be configured? Seems complicated to manage.
The semantics of "on-change" should be easy to manage on both client and server.


Andy