Re: [netmod] YANG coordination feedback on draft-openconfig-netmod-opstate-01

Robert Wilton <rwilton@cisco.com> Mon, 14 September 2015 10:24 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 B17421B4A63 for <netmod@ietfa.amsl.com>; Mon, 14 Sep 2015 03:24:56 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.211
X-Spam-Level:
X-Spam-Status: No, score=-14.211 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, MIME_8BIT_HEADER=0.3, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01, 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 nR48y6GgFaKT for <netmod@ietfa.amsl.com>; Mon, 14 Sep 2015 03:24:54 -0700 (PDT)
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 37F871B2D2B for <netmod@ietf.org>; Mon, 14 Sep 2015 03:24:54 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=5285; q=dns/txt; s=iport; t=1442226294; x=1443435894; h=subject:to:references:from:message-id:date:mime-version: in-reply-to:content-transfer-encoding; bh=Zs/E4FX2YKY2nNdsMDoXpuZ3T1JS1xtU2e8bvcPWRwY=; b=eRV29ICTERXKbsMsAf9krCxa+C1oHxC0BLXypfJC2brD3OhE6yUrhdG4 16y7cRgcIk62VEqii7O+/cPoeEVcsoCqGPRd+qQT+hOoQ8LNJfk6Ynsb/ W3R83wpQPgpG3Y9qqrLEXZbDzgm17Lw8Pn6feVboEjis1mWl0EPR0LnqC M=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0CtBACZn/ZV/xbLJq1dg3dpgyq8DQqFL0oCgX4BAQEBAQGBC4QjAQEBAwEBAQEgDwEFNhALCxAIAgIFDBUCAg8CFjAGAQwGAgEBF4gLCA21c5N7AQEBAQEBAQEBAQEBAQEBAQEBFgSBIoVRhH2EQlIKgl+BQwWVV4x+gUyHMYlMiDVjhAI9M4p9AQEB
X-IronPort-AV: E=Sophos;i="5.17,527,1437436800"; d="scan'208";a="605107983"
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; 14 Sep 2015 10:24:52 +0000
Received: from [10.63.23.86] (dhcp-ensft1-uk-vla370-10-63-23-86.cisco.com [10.63.23.86]) by aer-core-2.cisco.com (8.14.5/8.14.5) with ESMTP id t8EAOqrq008335; Mon, 14 Sep 2015 10:24:52 GMT
To: Ladislav Lhotka <lhotka@nic.cz>, Martin Björklund <mbj@tail-f.com>, netmod@ietf.org
References: <20150911.093846.709202940600841233.mbj@tail-f.com> <55F2A4CE.70608@cisco.com> <20150914081042.GC46546@elstar.local> <20150914.102155.1446687883167410013.mbj@tail-f.com> <3F839161-A126-495B-832B-BD5533346AEE@nic.cz>
From: Robert Wilton <rwilton@cisco.com>
Message-ID: <55F6A074.80508@cisco.com>
Date: Mon, 14 Sep 2015 11:24:52 +0100
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0
MIME-Version: 1.0
In-Reply-To: <3F839161-A126-495B-832B-BD5533346AEE@nic.cz>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: 8bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/fgvPl2ckhPbnFkOQ_mwZXpRaCEQ>
Subject: Re: [netmod] YANG coordination feedback on draft-openconfig-netmod-opstate-01
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: Mon, 14 Sep 2015 10:24:56 -0000

Hi,

On 14/09/2015 09:31, Ladislav Lhotka wrote:
>> On 14 Sep 2015, at 10:21, Martin Bjorklund <mbj@tail-f.com> wrote:
>>
>> Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote:
>>> On Fri, Sep 11, 2015 at 10:54:22AM +0100, Robert Wilton wrote:
>>>>> Then Lada brought up the example of ip addresses.  It was mentioned
>>>>> on the call that for ip addresses there would be three lists; one for
>>>>> intended, one for applied, and one in derived state, where the one in
>>>>> derived state is what the box *really* uses.  So for example if it
>>>>> gets an ip from dhcp, it will be in the derived state list, but not in
>>>>> applied config.
>>>>>
>>>>> Why is this ip-address list different from the interface list?  Why
>>>>> was it enough with two lists for interfaces, but we need three for ip
>>>>> addresses?
>>>> I don't see that they are different.  I think that you have 3
>>>> lists/leaves in both cases:
>>>>
>>>> I.e. I would say that 3 IP addr leaves are required in an async system,
>>>> at a given time t:
>>>> - only the intended leaf can indicate what IP addr config the operator
>>>> wants on the interface (if any).
>>>> - only the applied leaf can indicate what IP addr is actually being
>>>> used as the configured value on the interface.
>>>> - only the derived leaf can indicate what IP addr is actually
>>>> operationally being used for the interface (which might be due to IP
>>>> addr config, DHCP, or perhaps some other mechanism).
>>>>
>>>> I think that in the both kwatsen-netmod-opstate and
>>>> wilton-netmod-opstate there are logically 3 interface lists as well:
>>>> - /if:interfaces is logically split into 2, either through being
>>>> present in separate running and applied datastores, or through having
>>>> separate cfg-intended/cfg-applied leaves.
>>>> - /if:interfaces-state, which I perceive as logically the derived
>>>> state for an interface.
>>>>
>>> My personal requirement would be to be able to find all IP addresses
>>> of an interface that are operationally used in one place.
>> Yes.  I am trying to understand if a separate list of operationally
>> used addresses is needed even if we have the "applied config".  I
>> think the answer is yes.  Then the question is if we don't need a
>> separate list of operationally used interfaces as well.
I may be off the mark, but I don't think that the Open Config 
requirements are saying that they don't want/need a separate list of 
operationally used interfaces, but more that they want the config and 
operational data for an interface to be under the same per interface 
container, so (i) that you can easily get all the data for an interface 
in a single request, or (ii) easily get the config and operational data 
for a particular feature on a interface without having to request the 
interface data from two separate lists.

So, one hypothetical solution (which YANG doesn't currently allow) might 
be to have a single list of all interfaces, each with two leaves to 
indicate whether those interfaces are configured and/or operational.

>>    If we do,
>> what value does the "applied config" idea bring us?
> In my view, it provides just information that intended configuration was taken into account in an asynchronous system but, despite the definition, it may not always provide the parameter values that are operationally used.
Yes, this is also my thinking for the applied config.  In fact I think 
that it is analogous to the config states in a synchronous NETCONF 
commit.  I.e. the cfg-applied status doesn't give you any more 
information than a <get-config> request would against a server after a 
sync config change had been committed.

Ignoring errors, all the intended cfg vs applied cfg really provides is 
the ability for a client to determine how far through an async config 
commit a server has reached.  It is instead of the server blocking the 
commit request until the request has completed.  This equivalence is 
also one of the reasons why I don't think that applied cfg should be 
used for templating.

Specifically, I don't think that the cfg-applied state has to guarantee 
that a particular config change has been programmed everywhere any more 
than a synchronous commit has to make that same guarantee.  I.e. at the 
point in time that a server is happy to reply indicating a sync config 
request has completed should be sufficient to update the cfg-applied 
leaf in an equivalent async commit.

>   If this is true, then IMO the use case for applied configuration is too narrow and doesn’t warrant making applied configuration a general requirement.
I just see it as a way to support clients that want to process 
configuration in an asynchronous fashion, or for servers that want to 
adopt an eventual consistency configuration model.

Thanks,
Rob


>
> Lada
>
>>
>> /martin
>>
>> _______________________________________________
>> netmod mailing list
>> netmod@ietf.org
>> https://www.ietf.org/mailman/listinfo/netmod
> --
> Ladislav Lhotka, CZ.NIC Labs
> PGP Key ID: E74E8C0C
>
>
>
>
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod