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

Robert Wilton <rwilton@cisco.com> Fri, 11 September 2015 09:54 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 C15A31A893C for <netmod@ietfa.amsl.com>; Fri, 11 Sep 2015 02:54:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.511
X-Spam-Level:
X-Spam-Status: No, score=-14.511 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, 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 DLOziboPnjt4 for <netmod@ietfa.amsl.com>; Fri, 11 Sep 2015 02:54:25 -0700 (PDT)
Received: from aer-iport-1.cisco.com (aer-iport-1.cisco.com [173.38.203.51]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5476B1B33E8 for <netmod@ietf.org>; Fri, 11 Sep 2015 02:54:25 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=5506; q=dns/txt; s=iport; t=1441965265; x=1443174865; h=subject:to:references:cc:from:message-id:date: mime-version:in-reply-to:content-transfer-encoding; bh=YRkFY5wEgLLwEzOZDS4lZYuOG3R6dJY06W+JBAYC9Ok=; b=OEAJXw465avLXgA+fRmcAAovJDicg9gCmDdn6rBBLJpgD0cOmcMqb7Ov UP3DH4xkHAE6kk1UT0nF+cIs5R8Tp6x9d1QQ0s7BIiPNCDykLIavWlCfk f4ZoOOKY6f4y1QScingQ3DH8AScf0oRKJ98yGeeFmYsK7Wc01WCuiDhrV Q=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0DoAQARpPJV/xbLJq1dg3dpgyq6CAENgW4KhS9KAoIKFAEBAQEBAQGBCoQjAQEBAwEBAQEgDwEFNgsQCw4KAgIFHgMCAg8CEAYfEQYBDAYCAQGIFQMKCA23EY8uDYRlAQEBAQEBAQEBAQEBAQEBAQEBAQEBEwSBIoVRhH2CUIFySweCaYFDBYcuhneHMYcyg1uBbYh8ikGHPB8BAUKCEByBVT0zih8BAQE
X-IronPort-AV: E=Sophos;i="5.17,511,1437436800"; d="scan'208";a="629662584"
Received: from aer-iport-nat.cisco.com (HELO aer-core-2.cisco.com) ([173.38.203.22]) by aer-iport-1.cisco.com with ESMTP; 11 Sep 2015 09:54:23 +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 t8B9sMVj000343; Fri, 11 Sep 2015 09:54:23 GMT
To: Martin Bjorklund <mbj@tail-f.com>, aldrin.ietf@gmail.com
References: <8EB9E89D-7955-4B00-9910-2DADE4CEFFF4@cisco.com> <50F53BDE-0B2A-4FBB-BA0C-F05A752AFBA1@gmail.com> <15E410A7-B372-4889-B0ED-4613F3C2FA5B@gmail.com> <20150911.093846.709202940600841233.mbj@tail-f.com>
From: Robert Wilton <rwilton@cisco.com>
Message-ID: <55F2A4CE.70608@cisco.com>
Date: Fri, 11 Sep 2015 10:54:22 +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: <20150911.093846.709202940600841233.mbj@tail-f.com>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: 8bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/64SNtG1LPMYk0VIqAFi2RmBJckU>
Cc: netmod@ietf.org
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: Fri, 11 Sep 2015 09:54:27 -0000

Hi Martin,

On 11/09/2015 08:38, Martin Bjorklund wrote:
> Sam Aldrin <aldrin.ietf@gmail.com> wrote:
>>> On Sep 10, 2015, at 4:13 PM, Mahesh Jethanandani
>>> <mjethanandani@gmail.com> wrote:
>>>
>>>
>>>> On Sep 10, 2015, at 12:43 PM, Carl Moberg (camoberg)
>>>> <camoberg@cisco.com <mailto:camoberg@cisco.com>> wrote:
>>>>
>>>> Now, think about configuration parameters that have applied
>>>> configuration located in more than one place. Let’s say you change the
>>>> IP address of an interface, it is likely that this configuration will
>>>> be passed around as input to a handful of subsystems (e.g. the DHCP
>>>> server, some routing daemons that may bind to specific IP
>>>> addresses). Is the intended and applied in sync when a specific subset
>>>> of those configurations are updated. What happens if there’s a partial
>>>> failure?
>>> This is a good example. Another example, and somebody on the call
>>> today started to ask this but got cut off, relates to interfaces on
>>> the device.
>>>
>>> Interfaces already exist on a system. As such they have a
>>> configuration (default values) that exists on them. They are enabled
>>> when configuration gets applied on them. They will have applied
>>> configuration but no intended configuration. Should this be reported?
>>>
>>> Yet another example is of a BFD session that gets bootstrapped because
>>> of a ping. There is no intended configuration, but the session exists
>>> and a query of configuration in this case would return a valid BFD
>>> session.
>>>
>>> Could we get some clarification (with examples, preferably) on what
>>> the expectation is from a openconfig opstate perspective?
>> Section 7 of draft-openconfig-netmod-opstate talks about
>> that. Specifically, #3 talks about the interface question you raise..
> I think it is important that we understand how this 'applied config'
> is supposed to be populated on a device.
>
> First it was said that it there is just one way they can be different;
> time (on async systems).  After some discussion I think there are now
> four ways:
>
>    1.  Time (in async systems).
>
>    2.  Hardware.  If something is in intended config but there is no hw
>        present, it is not in applied.
>
>    3.  System-controlled stuff.  If the system auto-creates an
>        interface (for example), it will be in the applied config but
>        not in intended.

I don't agree with this one.
  - if a system auto-creates an interface with no config then it is 
/interfaces-state, but not in /interfaces.
  - if a system auto-creates an interface and only then applies default 
config, the default config would go in intended and applied.
  - interfaces with pre-config that could be put into intended, but be 
left out of applied (because the hw isn't present).

So in summary, I would say that config is in applied and not intended 
only if the config is in the process of being deleted (or the delete 
operational failed for some reason).

>
>    4.  "Template substitution"; the draft uses the example of an 'all'
>        interface that exists in intended config but not in applied.
I don't agree with this one either.  I don't think that cfg intended vs 
applied can or should be used as templating mechanism.

But I think that there is another case, which is for config that was 
accepted into the system (i.e. semantically valid) and then failed when 
being applied.  E.g. due to a system, or internal error.  There is also 
a possible failure due to out of resource (which could be counted as the 
same as case 2).

For a sync system, config failures can be returned as part of the 
edit-config request.  What is the equivalent mechanism for an async system?


>
> 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.

Cheers,
Rob


>
>
> /martin
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod