Re: [netmod] Action and RPC statements

Robert Wilton <rwilton@cisco.com> Mon, 06 November 2017 16:42 UTC

Return-Path: <rwilton@cisco.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C5AE913FB36 for <netmod@ietfa.amsl.com>; Mon, 6 Nov 2017 08:42:01 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.501
X-Spam-Level:
X-Spam-Status: No, score=-14.501 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, 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 TLKlBvlMKgUU for <netmod@ietfa.amsl.com>; Mon, 6 Nov 2017 08:42:00 -0800 (PST)
Received: from aer-iport-3.cisco.com (aer-iport-3.cisco.com [173.38.203.53]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C1E2813FB1F for <netmod@ietf.org>; Mon, 6 Nov 2017 08:41:59 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=2360; q=dns/txt; s=iport; t=1509986519; x=1511196119; h=subject:to:cc:references:from:message-id:date: mime-version:in-reply-to:content-transfer-encoding; bh=rf2fqnxmP0zwhb3WDEfOpKGUUUX1cC8HZO5FZzcmx9g=; b=c7zUxqJjc3kjnDdEAr5MQY+AeQC2BCQcAQaH0oxo+k9fWIP/RXR7JUb6 FkLUJEtWv/BknfCU3thB4GdcXo5mx3O3mMDOEowfjGycABWZG/fGSH/26 Wr8l6RqZGdQtNsnHDIJp2iYWEkWrUWI+uXQL8YwuHyE3UmNOf68x8sQQj I=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0COAACZjwBa/xbLJq1cGQEBAQEBAQEBAQEBBwEBAQEBhQYng32KH3SQJJZGghEKhTsChScYAQEBAQEBAQEBayiFHwEFIw8BBUEQCw4KAgImAgJXBgEMBgIBAReKCKsegieLCQEBAQEBAQEBAQEBAQEBAQEBASCBD4Ifg1qCEoMBiCaCYgWiDpR8i3iHPI4ph22BOR84gWw0IQgdFYMthF9BNot2AQEB
X-IronPort-AV: E=Sophos;i="5.44,353,1505779200"; d="scan'208";a="56904"
Received: from aer-iport-nat.cisco.com (HELO aer-core-2.cisco.com) ([173.38.203.22]) by aer-iport-3.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 06 Nov 2017 16:41:57 +0000
Received: from [10.63.23.76] (dhcp-ensft1-uk-vla370-10-63-23-76.cisco.com [10.63.23.76]) by aer-core-2.cisco.com (8.14.5/8.14.5) with ESMTP id vA6GfvtY018987; Mon, 6 Nov 2017 16:41:57 GMT
To: Lou Berger <lberger@labn.net>, netmod@ietf.org
References: <CABCOCHS+g45H7P8nZ7tUQeW5Q=xXQRm7kQJWwsfG8PrR-DERSQ@mail.gmail.com> <20171106.141924.996087392255055625.mbj@tail-f.com> <15f9188b728.27d3.9b4188e636579690ba6c69f2c8a0f1fd@labn.net> <20171106.154913.1683303692062360930.mbj@tail-f.com> <15f91db9dd0.27d3.9b4188e636579690ba6c69f2c8a0f1fd@labn.net> <5c1d29df-4cdf-4972-5a11-0a111177bf93@cisco.com> <15f92077478.27d3.9b4188e636579690ba6c69f2c8a0f1fd@labn.net>
From: Robert Wilton <rwilton@cisco.com>
Message-ID: <f4cf2723-af37-c0ba-be28-ccb635ee9b4a@cisco.com>
Date: Mon, 06 Nov 2017 16:41:57 +0000
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0
MIME-Version: 1.0
In-Reply-To: <15f92077478.27d3.9b4188e636579690ba6c69f2c8a0f1fd@labn.net>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: 8bit
Content-Language: en-US
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/joPnNwCux9mMocYE1sqm7ka1Cz0>
Subject: Re: [netmod] Action and RPC statements
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 06 Nov 2017 16:42:02 -0000


On 06/11/2017 15:51, Lou Berger wrote:
>
>
> On November 6, 2017 10:21:19 AM Robert Wilton <rwilton@cisco.com> wrote:
>
>> Hi Lou,
>>
>> All of proposed solutions (A through D) allow the action or the RPC to
>> perform whatever behaviour that it wants.
>>
>> This issue is only about which datastore is used to evaluate and check
>> that the parameters for the action/rpc are valid.  E.g. if the
>> parameters use when, must, leaf-ref, or instance-identifier.
>>
>> So, to take option "A" for example: "A.  Always use <operational> for 1
>> and 2."
>>
>> One can still define a RPC that modifies another datastore ("edit-data"
>> in the NETCONF NMDA  draft is one such example).  But to check whether
>> the edit-data request can be performed, any input parameter constraints
>> would be evaluated against <operational>.  However, given that the input
>> parameters to edit-data don't contain any when, must, leaf-ref, or
>> instance-identifier statements then it makes absolutely no functional
>> difference which the datastore the parameters are evaluated in, since
>> the result will always be the same regardless.  But perhaps it just
>> feels a little odd that they are conceptually evaluated against
>> operational, even though the RPC only even affects one of the editable
>> configurable datastores.
>>
>
>
> Yes, which is why I've been assuming we'd end up with c.

But I think that to do C properly also requires a new optional statement 
in YANG to indicate where the Action/RPC parameters are evaluated (with 
the default being <operational> if the new statement isn't specified).

Most RPCs/Action statements seem to naturally apply to <operational>.

For the RPCs/Action statements that don't naturally apply to 
<operational>, it seems that it mostly doesn't matter where the 
parameters are evaluated.

At the moment, the set of remaining RPCs/Actions (don't apply to 
<operational> but do care about parameter evaluation) seems quite small:
  (i) RFC7517, if it defined a YANG model for the <partial-lock> RPC
  (ii) A partial datastore diff from a subtree in <intended> to 
<operational> might be another - it would want an instance-identifier 
path to the subtree in <intended>.
  (iii) Perhaps I2RS and dynamic datastores may also throw up some new 
examples.

Thanks,
Rob