Re: [Rtg-yang-coord] Operational State Modeling
"Acee Lindem (acee)" <acee@cisco.com> Tue, 12 May 2015 21:26 UTC
Return-Path: <acee@cisco.com>
X-Original-To: rtg-yang-coord@ietfa.amsl.com
Delivered-To: rtg-yang-coord@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1])
by ietfa.amsl.com (Postfix) with ESMTP id 183811A902C
for <rtg-yang-coord@ietfa.amsl.com>; Tue, 12 May 2015 14:26:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.51
X-Spam-Level:
X-Spam-Status: No, score=-14.51 tagged_above=-999 required=5
tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1,
DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, 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 LHWidKWHr6sg for <rtg-yang-coord@ietfa.amsl.com>;
Tue, 12 May 2015 14:26:36 -0700 (PDT)
Received: from alln-iport-3.cisco.com (alln-iport-3.cisco.com [173.37.142.90])
(using TLSv1 with cipher RC4-SHA (128/128 bits))
(No client certificate requested)
by ietfa.amsl.com (Postfix) with ESMTPS id 941F51A8AE2
for <Rtg-yang-coord@ietf.org>; Tue, 12 May 2015 14:26:35 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
d=cisco.com; i=@cisco.com; l=80321; q=dns/txt;
s=iport; t=1431465995; x=1432675595;
h=from:to:subject:date:message-id:mime-version;
bh=0BslqZyQXnZ9QnSRgydNAGTYLQMBjdTn5QkWNXOk9tU=;
b=YPrJ9fkH8A8/UcIPUVq2RN46sus+2TCbD+/ukG+1kI3B/Rn2Bde9c8pK
xNQosJUAaOI8hjFrgXJDTpZroHl6ogSdITTiqncdm9UroVsxtmQz8oHlu
Wdn//CRzzXcQsN+/pDE3Gc27EWR7nmMLB/KWS25jhcn5Tdki+oPIql5Vj 8=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0CPBAD1blJV/5ldJa1cgkVKVF4GgxjCDAmBWIYFAhyBJDgUAQEBAQEBAYEKhCABAgQjCl4BCBEDAQIhAQYDAgQwFAkKBAESCYgjDbZBk3ABAQEBBgEBAQEBAQEbizmEdBeCaYFFBYs4hxaKa4Ekhl2LF4NVI4N3bwGBRIEBAQEB
X-IronPort-AV: E=Sophos;i="5.13,417,1427760000";
d="scan'208,217";a="149444648"
Received: from rcdn-core-2.cisco.com ([173.37.93.153])
by alln-iport-3.cisco.com with ESMTP; 12 May 2015 21:26:34 +0000
Received: from xhc-rcd-x06.cisco.com (xhc-rcd-x06.cisco.com [173.37.183.80])
by rcdn-core-2.cisco.com (8.14.5/8.14.5) with ESMTP id t4CLQYCW008899
(version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL);
Tue, 12 May 2015 21:26:34 GMT
Received: from xmb-aln-x06.cisco.com ([169.254.1.23]) by xhc-rcd-x06.cisco.com
([173.37.183.80]) with mapi id 14.03.0195.001;
Tue, 12 May 2015 16:26:34 -0500
From: "Acee Lindem (acee)" <acee@cisco.com>
To: Xufeng Liu <xufeng.liu@ericsson.com>, "Rtg-yang-coord@ietf.org"
<Rtg-yang-coord@ietf.org>
Thread-Topic: [Rtg-yang-coord] Operational State Modeling
Thread-Index: AQHQjPpRkKpDh+jYTPGkN01wChYhCQ==
Date: Tue, 12 May 2015 21:26:33 +0000
Message-ID: <D177E7E1.1AC4C%acee@cisco.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.116.152.202]
Content-Type: multipart/alternative; boundary="_000_D177E7E11AC4Caceeciscocom_"
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/rtg-yang-coord/4_s7kzNo2ZHmCeG1HBV4mvWvTXg>
Subject: Re: [Rtg-yang-coord] Operational State Modeling
X-BeenThere: rtg-yang-coord@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "\"List to discuss coordination between the Routing related YANG
models\"" <rtg-yang-coord.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rtg-yang-coord>,
<mailto:rtg-yang-coord-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/rtg-yang-coord/>
List-Post: <mailto:rtg-yang-coord@ietf.org>
List-Help: <mailto:rtg-yang-coord-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rtg-yang-coord>,
<mailto:rtg-yang-coord-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 12 May 2015 21:26:39 -0000
Hi Xufeng, My interpretation of the OpenConfig draft is that it recommends option 1. Actually, option 3 seems like a variation of 1 with some superfluous levels. Thanks, Acee From: Xufeng Liu <xufeng.liu@ericsson.com<mailto:xufeng.liu@ericsson.com>> Date: Tuesday, May 12, 2015 at 4:56 PM To: Routing YANG <rtg-yang-coord@ietf.org<mailto:rtg-yang-coord@ietf.org>> Subject: [Rtg-yang-coord] Operational State Modeling During the YANG MPLS/TE design team discussions, the topic of operational state modeling was brought up. We discussed the proposal presented in http://www.ietf.org/id/draft-openconfig-netmod-opstate-00.txt and some various approaches. Here are some thoughts and questions. 1. Requirements We agree with the requirements presented in draft-openconfig-netmod-opstate. These requirements are summarized as followings. 1.1.Performance Requirement · Operational state access is much more frequent than configuration · State data is generally higher volume than configuration data 1.2.Data Type Requirements · Representing intended configuration (actual vs. configured) · Derived, negotiated, and system assigned data · Counters or statistics 1.3.Operation Requirements · Separate configuration and operational state data · Retrieve configuration and operational state data independently · Retrieve derived state and statistics state independently · Consistent schema locations for configuration and corresponding operational state data 2. Some Options 2.1.Option 1 /routing/routing-instance: +--rw te! +--rw globals +--rw interfaces | +--rw interface* [interface] | +--rw interface if:interface-ref +--rw config | +--rw switching-capabilities* [switching-capability] +--rw config | | +--rw capability? identityref | | +--rw encoding? identityref +--ro state | +--ro capability? identityref | +--ro encoding? identityref | +--rw te-metric? ietf-te-types:te-metric +--ro state | +--ro te-metric? ietf-te-types:te-metric +--ro oper-status? enumeration +--ro counters +--ro pkts-sent? yang:counter32 +--rw tunnels +--rw tunnel* [name type] +--rw name string +--rw config | +--rw admin-status? identityref | +--rw forwarding +--rw config | +--rw load-share? uint32 +--ro state | +--ro load-share? uint32 +--ro state +--ro admin-status? identityref +--ro oper-status? enumeration +--ro counters +--ro events? yang:counter32 2.2.Option 2 /routing/routing-instance: +--rw te! +--rw globals +--rw interfaces | +--rw interface* [interface] | +--rw interface if:interface-ref | +--rw switching-capabilities* [switching-capability] | | +--rw capability? identityref | | +--rw encoding? identityref | +--rw te-metric? ietf-te-types:te-metric +--rw tunnels +--rw tunnel* [name type] +--rw name string +--rw admin-status? identityref +--rw forwarding +--rw load-share? uint32 /routing-state/routing-instance: +--ro te! +--ro globals +--ro interfaces | +--ro interface* [interface] | +--ro interface if:interface-ref | +--ro switching-capabilities* [switching-capability] | | +--ro capability? identityref | | +--ro encoding? identityref | +--ro te-metric? ietf-te-types:te-metric +--ro oper-status? enumeration +--ro counters +--ro pkts-sent? yang:counter32 +--ro tunnels +--ro tunnel* [name type] +--ro name string +--ro admin-status? identityref +--ro forwarding +--ro load-share? uint32 +--ro oper-status? enumeration +--ro counters +--ro events? yang:counter32 2.3.Option 3 /routing/routing-instance: +--rw te! +--rw globals +--rw interfaces | +--rw interface* [interface] | +--rw interface if:interface-ref +--rw config | +--rw switching-capabilities* [switching-capability] +--rw config | | +--rw capability? identityref | | +--rw encoding? identityref +--ro state | +--ro capability? identityref | +--ro encoding? identityref | +--rw te-metric? ietf-te-types:te-metric +--ro state | +--ro te-metric? ietf-te-types:te-metric +--rw tunnels +--rw tunnel* [name type] +--rw name string +--rw config | +--rw admin-status? identityref | +--rw forwarding +--rw config | +--rw load-share? uint32 +--ro state | +--ro load-share? uint32 +--ro state +--ro admin-status? identityref /routing-state/routing-instance: +--ro te! +--ro globals +--ro interfaces | +--ro interface* [interface] | +--ro interface if:interface-ref +--ro oper-status? enumeration +--ro counters +--ro pkts-sent? yang:counter32 +--ro tunnels +--ro tunnel* [name type] +--ro name string +--ro oper-status? enumeration +--ro counters +--ro events? yang:counter32 3. Approach Rationales 1.1.Performance Requirement · Separating configuration and state branches allows implementing state data through a separate fast channel to deliver high frequent and high volume data. · In this aspect, Option 2 has a clearer separation between configuration and state data, and easier to achieve better performance by using separate channels. 1.2.Data Type Requirements · Duplicating all configuration attributes makes actual configuration settings available · Derived, negotiated, and system assigned data are added to the state branch · Counters or statistics are added to the state branch · All three options satisfy these requirements 1.3.Operation Requirements · Separating configuration and operational state data allows retrieving configuration and operational state data independently. · Separating derived state and statistics state allows retrieving them independently · The state branch is an exact mirror of the configuration branch, so the schema locations are consistent. · In this aspect, all three options satisfy the requirements. For option 1, to check the state value for a specific configuration attribute, the client software can simply add the “state” to the end of the schema node path. For option 2, to check the state value for a specific configuration attribute, the client software can simply add the “-state” suffix to the name of the top container. Option 1 seems to be easiest in this regard, but others are acceptable? 1.4.Other Requirements · Model system created read-only objects (e.g. TE tunnels). When state data and config data share the same parent, they share the same key for the parent list. Even though that the state branch is read-only, its parent is not and the key of the parent is not. Therefore, we will have difficulty to achieve this in Option 1. · Compatible with the existing models. The related models include RFC7223, RFC7277 and draft-ietf-netmod-routing-cfg-18. In this aspect, Option 2 seems to do better. Your comments and preferences are appreciated. Thanks, - Xufeng
- [Rtg-yang-coord] Operational State Modeling Xufeng Liu
- Re: [Rtg-yang-coord] Operational State Modeling Russ White
- Re: [Rtg-yang-coord] Operational State Modeling Juergen Schoenwaelder
- Re: [Rtg-yang-coord] Operational State Modeling Acee Lindem (acee)
- Re: [Rtg-yang-coord] Operational State Modeling Anees Shaikh
- Re: [Rtg-yang-coord] Operational State Modeling Juergen Schoenwaelder
- Re: [Rtg-yang-coord] Operational State Modeling Thomas D. Nadeau
- Re: [Rtg-yang-coord] Operational State Modeling Andy Bierman
- Re: [Rtg-yang-coord] Operational State Modeling Xufeng Liu
- Re: [Rtg-yang-coord] Operational State Modeling Xufeng Liu
- Re: [Rtg-yang-coord] Operational State Modeling aldrin ietf
- Re: [Rtg-yang-coord] Operational State Modeling Anees Shaikh
- Re: [Rtg-yang-coord] Operational State Modeling Juergen Schoenwaelder
- Re: [Rtg-yang-coord] Operational State Modeling Christian Hopps
- Re: [Rtg-yang-coord] Operational State Modeling Ladislav Lhotka
- Re: [Rtg-yang-coord] Operational State Modeling Juergen Schoenwaelder
- Re: [Rtg-yang-coord] Operational State Modeling Acee Lindem (acee)
- Re: [Rtg-yang-coord] Operational State Modeling Nadeau Thomas
- Re: [Rtg-yang-coord] Operational State Modeling Andy Bierman
- Re: [Rtg-yang-coord] Operational State Modeling aldrin ietf
- Re: [Rtg-yang-coord] Operational State Modeling Juergen Schoenwaelder
- Re: [Rtg-yang-coord] Operational State Modeling Nadeau Thomas
- Re: [Rtg-yang-coord] Operational State Modeling aldrin ietf