Re: [netmod] I-D Action: draft-kwatsen-netmod-opstate-02.txt

Robert Wilton <rwilton@cisco.com> Fri, 05 February 2016 17:22 UTC

Return-Path: <rwilton@cisco.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D02261B3BCA for <netmod@ietfa.amsl.com>; Fri, 5 Feb 2016 09:22:24 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.502
X-Spam-Level:
X-Spam-Status: No, score=-14.502 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, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham
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 e5rRIUdyI9Nx for <netmod@ietfa.amsl.com>; Fri, 5 Feb 2016 09:22:22 -0800 (PST)
Received: from aer-iport-1.cisco.com (aer-iport-1.cisco.com [173.38.203.51]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7B0251B3BC5 for <netmod@ietf.org>; Fri, 5 Feb 2016 09:22:22 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=6631; q=dns/txt; s=iport; t=1454692942; x=1455902542; h=subject:to:references:from:message-id:date:mime-version: in-reply-to:content-transfer-encoding; bh=6EvNxyKSod5xsoA5rtMIx0FYKr1ZuQ3iFCfuB6zJ9zc=; b=Sn5coAoGmaSvNyFpl0SVTFcYzAPzp1WBzd+6FpR/o4hlS/tZjsGPavl/ MKDo2zlvkTaKCN66sHlrIeasaiVbTm1pj7DOgOagQOBb1/TNFnfh7QIRN hISn2k3Ezjqubn8txhClIlATGopzg8iEo816pK1kDh3HDJX6Gfrq3OWg+ A=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0DPAQDT2bRW/xbLJq1ehAxtiFuxDAENgWYXCoUiSgKBbRQBAQEBAQEBgQqEQgEBBAEBASAECwEFNgoRCw4KAgIFFgsCAgkDAgECARUwBgEMBgIBAQUSiAAOsRGOXgEBAQEBAQEBAQEBAQEBAQEBAQEBARV7hReEN4cygToFjSeJToVMiASBW0qDeYMDhVKFboEQEIcwHgEBQoNkPC4BiXsBAQE
X-IronPort-AV: E=Sophos;i="5.22,401,1449532800"; d="scan'208";a="649075668"
Received: from aer-iport-nat.cisco.com (HELO aer-core-1.cisco.com) ([173.38.203.22]) by aer-iport-1.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 05 Feb 2016 17:22:02 +0000
Received: from [10.63.23.97] (dhcp-ensft1-uk-vla370-10-63-23-97.cisco.com [10.63.23.97]) by aer-core-1.cisco.com (8.14.5/8.14.5) with ESMTP id u15HM28V027912; Fri, 5 Feb 2016 17:22:02 GMT
To: Kent Watsen <kwatsen@juniper.net>, "netmod@ietf.org" <netmod@ietf.org>
References: <20160202153033.9430.65698.idtracker@ietfa.amsl.com> <F5BA2439-E24E-40C5-B6EE-3CE6F36E8C48@juniper.net>
From: Robert Wilton <rwilton@cisco.com>
Message-ID: <56B4DA3B.7080504@cisco.com>
Date: Fri, 05 Feb 2016 17:22:03 +0000
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0
MIME-Version: 1.0
In-Reply-To: <F5BA2439-E24E-40C5-B6EE-3CE6F36E8C48@juniper.net>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: 8bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/CvAyNEn98yts3tGbjm7uFw3kHes>
Subject: Re: [netmod] I-D Action: draft-kwatsen-netmod-opstate-02.txt
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
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: Fri, 05 Feb 2016 17:22:25 -0000

Hi Kent, and other authors,

I've taken a quick look through this draft, and hence have a few 
comments/questions below.  Some of these comments are the same that I 
made in reference to the previous version of this draft.


1. Minor nit: I think that the key point of this solution is that it is 
introducing a new applied configuration datastore, but this draft 
doesn't seem to state that anywhere in the introduction or abstract.  
E.g. the first reference to the applied configuration datastore is in 
section 5.1.


2. Personally, for a datastore solution, I would prefer if the new 
datastore was for the intended configuration, and that the applied 
configuration was stored in the same datastore (running?) as all the 
rest of the operational state.

If the logical flows of system information is as follows:
  [candidate] -> intended cfg -> applied cfg -> derived state

Then it seems strange to bundle intended cfg & derived state together in 
one datastore, and to have applied-cfg separate (a bit like an unwanted 
step child).


3. For the related-state statement, I think that this statement would be 
better as related-config and expressed in the reverse direction.

To give a contrived example of problems with related-state based on the 
example in 4.1.1:

Say I defined a new module that augments the ex-interfaces module that 
provides some further operational state for an interface.  In my 
specific example it wants to report the actual L2 MTU/MRU values 
programmed in the hardware.  (This could differ from a configured MTU to 
take into vary 802.1Q VLAN tag overheads or perhaps other slop).

  module ex-controller {
      namespace "http://example.com/controller";
      prefix ctrlr;

      import ex-interface {
        prefix ex-if;
      }

      import ietf-yang-related-state {
        prefix yrs;
      }

      // Standard module definition.
      augment "/ex-if:interfaces/ex-if:interface-state" {
        when "if:type = 'ianaift:ethernetCsmacd'";

        leaf hardware-mru {
          type { uint16; }
          description "Actual MRU programmed in hardware";
        }
        leaf hardware-mtu {
          type { uint16; }
          description "Actual MTU programmed in hardware";
        }
      }

      // Separate augmentation required for each related-state
      // statement.
      augment "/ex-if:interfaces/ex-if:interface/ex-if:mtu" {
        when "if:type = 'ianaift:ethernetCsmacd'";
        yrs:related-state
"/interfaces-state/interface/name=current()/name/hardware-mtu";
      }

      // Separate augmentation required for each related-state
      // statement.
      augment "/ex-if:interfaces/ex-if:interface/ex-if:mtu" {
        when "if:type = 'ianaift:ethernetCsmacd'";
        yrs:related-state
"/interfaces-state/interface/name=current()/name/hardware-mru";
      }
    }

Here you will see that I would need a separate augmentation statement to 
set up every related-state binding.  Further, YANG would need to be 
modified to even allow such an augmentation of a leaf.

If you reverse the sense of the binding to "related-config" then I think 
that these problems disappear.


4. For section 5.4, get-state operation, it might be useful to clarify 
that if neither of the applied/derived options are specified then the 
data that is returned covers both the applied configuration and derived 
state (i.e. the data that is returned spans two datastores).


5. Am I correct to presume that this draft doesn't provide any support 
to return intended config, applied config & derived state all in a 
single request?  I appreciate that this isn't included as a formal 
requirement - but part of me wonders whether this might have been an 
oversight in the requirements.


6. I can understand the decision of get-diff to reuse edit-config or 
YANG patch,  but I'm not sure that this makes it particularly easy for 
clients to then process that data.  I might be wrong, but I suspect that 
a solution that returns the values of the intended and applied config 
nodes in an easier to relate way may be preferable (perhaps something 
along the lines of the encoding proposed in 
draft-wilton-netmod-opstate-yang).

Thanks,
Rob


On 02/02/2016 17:54, Kent Watsen wrote:
> Hi All,
>
> I didn’t receive the usual announcement CC-ed to the netmod list, so I’m replying to this one sent to the id-announce list instead.
>
> Anyway, this morning I posted -01 of this draft and then shortly after -02 to fix some cleanup items I only noticed after -01 was posted  :ooops:
>
> Either way, this update is an overhaul to the original draft posted last September.
>
> Kent
>
>
>
>
>
> On 2/2/16, 10:30 AM, "internet-drafts@ietf.org" <internet-drafts@ietf.org> wrote:
>
>> A New Internet-Draft is available from the on-line Internet-Drafts directories.
>>
>>
>>         Title           : Operational State Enhancements for YANG, NETCONF, and RESTCONF
>>         Authors         : Kent Watsen
>>                           Andy Bierman
>>                           Martin Bjorklund
>>                           Juergen Schoenwaelder
>> 	Filename        : draft-kwatsen-netmod-opstate-02.txt
>> 	Pages           : 27
>> 	Date            : 2016-02-02
>>
>> Abstract:
>>    This document presents enhancements to YANG, NETCONF, and RESTCONF
>>    satisfying the requirements set forth in Terminology and Requirements
>>    for Enhanced Handling of Operational State.
>>
>>
>> The IETF datatracker status page for this draft is:
>> https://datatracker.ietf.org/doc/draft-kwatsen-netmod-opstate/
>>
>> There's also a htmlized version available at:
>> https://tools.ietf.org/html/draft-kwatsen-netmod-opstate-02
>>
>> A diff from the previous version is available at:
>> https://www.ietf.org/rfcdiff?url2=draft-kwatsen-netmod-opstate-02
>>
>>
>> Please note that it may take a couple of minutes from the time of submission
>> until the htmlized version and diff are available at tools.ietf.org.
>>
>> Internet-Drafts are also available by anonymous FTP at:
>> ftp://ftp.ietf.org/internet-drafts/
>>
>> _______________________________________________
>> I-D-Announce mailing list
>> I-D-Announce@ietf.org
>> https://www.ietf.org/mailman/listinfo/i-d-announce
>> Internet-Draft directories: http://www.ietf.org/shadow.html
>> or ftp://ftp.ietf.org/ietf/1shadow-sites.txt
>>
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod