
From nobody Sun Mar  1 11:40:52 2015
Return-Path: <mbj@tail-f.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 7C6F71A1B25; Sun,  1 Mar 2015 11:40:50 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.012
X-Spam-Level: 
X-Spam-Status: No, score=-0.012 tagged_above=-999 required=5 tests=[BAYES_20=-0.001, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] 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 wl3uQxFrLsk8; Sun,  1 Mar 2015 11:40:48 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [83.241.162.140]) by ietfa.amsl.com (Postfix) with ESMTP id 7B97A1A026F; Sun,  1 Mar 2015 11:40:48 -0800 (PST)
Received: from localhost (unknown [213.136.39.104]) by mail.tail-f.com (Postfix) with ESMTPSA id 5FB911280477; Sun,  1 Mar 2015 20:40:47 +0100 (CET)
Date: Sun, 01 Mar 2015 20:41:59 +0100 (CET)
Message-Id: <20150301.204159.1118128354785756523.mbj@tail-f.com>
To: chopps@chopps.org
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <CD669235-BB00-4250-9D06-24E6830702FD@chopps.org>
References: <CD669235-BB00-4250-9D06-24E6830702FD@chopps.org>
X-Mailer: Mew version 6.5 on Emacs 24.3 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=utf-8
Content-Transfer-Encoding: base64
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/6NWVpdxZNcXPgjw_Oxz4bTGliO8>
Cc: yang-doctors@ietf.org, netmod@ietf.org
Subject: Re: [netmod] [yang-doctors] question on leafref path.
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: <http://www.ietf.org/mail-archive/web/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: Sun, 01 Mar 2015 19:40:50 -0000

Q2hyaXN0aWFuIEhvcHBzIDxjaG9wcHNAY2hvcHBzLm9yZz4gd3JvdGU6DQo+IEhpLA0KPiANCj4g
SSBuZWVkIHRvIHVzZSBhIOKAnHBhdGjigJ0gaW4gYSBsZWFmcmVmIHRvIHJlZmVyIHRvIGEgcm91
dGVyIGlkIGluc2lkZSAxDQo+IG9mIDIgcG9zc2libGUgY29udGFpbmVycy4gVGhlIDIgY2hvaWNl
cyBhcmUg4oCcbGVmdOKAnSBvciDigJxyaWdodOKAnSBzaWRlcyBvZg0KPiBhIGxhbWJkYS4gVGhl
IGxhbWJkYSBpcyBpZGVudGlmaWVkIGJ5IHRoZSBjaGFubmVsLg0KDQpUaGlzIGlzIG5vdCBwb3Nz
aWJsZSBpbiBZQU5HIDEuMC4gIEJ1dCB5b3UgY2FuIGRvIHNvbWV0aGluZyBsaWtlIHRoaXM6DQoN
CiAgICAgICAgbGlzdCBjb25uZWN0aW9uIHsNCiAgICAgICAgICBrZXkgImNoYW5uZWwiOw0KICAg
ICAgICAgIGxlYWYgY2hhbm5lbCB7DQogICAgICAgICAgICB0eXBlIGxlYWZyZWYgew0KICAgICAg
ICAgICAgICBwYXRoICIuLi8uLi8uLi9sYW1iZGEvY2hhbm5lbCI7DQogICAgICAgICAgICB9DQog
ICAgICAgICAgfQ0KICAgICAgICAgIGNob2ljZSByb3V0ZXItaWQgew0KICAgICAgICAgICAgbGVh
ZiBsZWZ0LXJvdXRlci1pZCB7DQogICAgICAgICAgICAgIHR5cGUgbGVhZnJlZiB7DQogICAgICAg
ICAgICAgICAgcGF0aCA8cGF0aC10by1sZWZ0LXJvdXRlci1pZD47DQogICAgICAgICAgICAgIH0N
CiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIGxlYWYgcmlnaHQtcm91dGVyLWlkIHsNCiAgICAg
ICAgICAgICAgdHlwZSBsZWFmcmVmIHsNCiAgICAgICAgICAgICAgICBwYXRoIDxwYXRoLXRvLXJp
Z2h0LXJvdXRlci1pZD47DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAg
ICB9DQoNCkluIFlBTkcgMS4xIGl0IGlzIHBvc3NpYmxlIHRvIGRlZmluZSBhIHVuaW9uIG9mIHR3
byBsZWFmcmVmcy4NCg0KSG93ZXZlciwgaW4gdGhpcyBwYXJ0aWN1bGFyIGNhc2UsIHRoZSBsZWFm
L3JpZ2h0IGxlYWZyZWYgZG9lc24ndA0KcmVhbGx5IGFkZCBhbnl0aGluZywgc2luY2UgeW91IGhh
dmUganVzdCBvbmUgbGVmdCByb3V0ZXItaWQgYW5kIG9uZQ0KcmlnaHQgcm91dGVyLWlkIHBlciBj
aGFubmVsLCBhbmQgeW91IGFscmVhZHkgaGF2ZSBhIGxlYWZyZWYgdG8gdGhlDQpjaGFubmVsLiAg
VGh1cywgYWxsIHlvdSByZWxhbHkgbmVlZCBpcyBhbiBpbmRpY2F0aW9uIG9mIHdoaWNoIHJvdXRl
ci1pZA0KdG8gcGljayBpbiB0aGUgY2hhbm5lbC4gIEJ1dCBtYXliZSB0aGUgWUFORyBtb2RlbCB5
b3UgZ2F2ZSB3YXMNCnNpbXBsaWZpZWQ/DQoNCg0KL21hcnRpbg0KDQoNCg0KDQoNCg0KPiANCj4g
SeKAmXZlIHRyaWVkIHRoZSBmb2xsb3dpbmcgd2l0aCDigJx84oCdIChJIGJlbGlldmUgdGhpcyBp
cyB0aGUgdmFsaWQgeHBhdGgpDQo+IGFuZCDigJwq4oCdIChhIGd1ZXNzKSBhbmQgbmVpdGhlciB3
b3Jrcy4NCj4gDQo+ICAgICAgICAgICAgICAgLy9wYXRoDQo+ICAgICAgICAgICAgICAgIi4uLy4u
Ly4uL2xhbWJkYVtjaGFubmVsPWN1cnJlbnQoKS8uLi9jaGFubmVsXS9sZWZ0L3JvdXRlci1pZCB8
DQo+ICAgICAgICAgICAgICAgLi4vLi4vLi4vbGFtYmRhW2NoYW5uZWw9Y3VycmVudCgpLy4uL2No
YW5uZWxdL3JpZ2h0L3JvdXRlci1pZOKAnTsNCj4gDQo+ICAgICAgICAgICAgICAgcGF0aCAiLi4v
Li4vLi4vbGFtYmRhW2NoYW5uZWw9Y3VycmVudCgpLy4uL2NoYW5uZWxdLyovcm91dGVyLWlk4oCd
Ow0KPiANCj4gSWYgSSBwaWNrIOKAnGxlZnTigJ0gb3Ig4oCccmlnaHTigJ0gb25seSBpdCB3b3Jr
cywgYnV0IHRoYXTigJlzIG5vdCB3aGF0IEkNCj4gbmVlZC4gQW55IGhlbHAgb24gaG93IHRvIGRv
IHRoaXMgcHJvcGVybHk/DQo+IA0KPiBUaGFua3MsDQo+IENocmlzLg0KPiANCj4gVGhlIGFjdHVh
bCB5YW5nIGlzIGJlbG93Og0KPiANCj4gICAgIGxpc3QgbGluayB7DQo+ICAgICAgIGtleSAibGlu
ay1uYW1lIjsNCj4gICAgICAgbGVhZiBsaW5rLW5hbWUgew0KPiAgICAgICAgIHR5cGUgaW5ldDp1
cmk7DQo+ICAgICAgIH0NCj4gICAgICAgbGlzdCBsYW1iZGEgew0KPiAgICAgICAgIGtleSAiY2hh
bm5lbCI7DQo+ICAgICAgICAgbGVhZiBjaGFubmVsIHsNCj4gICAgICAgICAgIHR5cGUgdWludDg7
DQo+ICAgICAgICAgfQ0KPiAgICAgICAgIGNvbnRhaW5lciBsZWZ0IHsNCj4gICAgICAgICAgIGxl
YWYgcm91dGVyLWlkIHsNCj4gICAgICAgICAgICAgdHlwZSBsZWFmcmVmIHsNCj4gICAgICAgICAg
ICAgICBwYXRoICIuLi8uLi8uLi8uLi9yb3V0ZXIvcm91dGVyLWlkIjsNCj4gICAgICAgICAgICAg
fQ0KPiAgICAgICAgICAgfQ0KPiAgICAgICAgIH0NCj4gICAgICAgICBjb250YWluZXIgcmlnaHQg
ew0KPiAgICAgICAgICAgbGVhZiByb3V0ZXItaWQgew0KPiAgICAgICAgICAgICB0eXBlIGxlYWZy
ZWYgew0KPiAgICAgICAgICAgICAgIHBhdGggIi4uLy4uLy4uLy4uL3JvdXRlci9yb3V0ZXItaWQi
Ow0KPiAgICAgICAgICAgICB9DQo+ICAgICAgICAgICB9DQo+ICAgICAgICAgfQ0KPiAgICAgICB9
DQo+ICAgICAgIGxpc3Qgc2l0ZSB7DQo+ICAgICAgICAga2V5ICJzaXRlLWlkIjsNCj4gICAgICAg
ICBsZWFmIHNpdGUtaWQgew0KPiAgICAgICAgICAgdHlwZSBpbmV0OnVyaTsNCj4gICAgICAgICB9
DQo+ICAgICAgICAgbGlzdCBjb25uZWN0aW9uIHsNCj4gICAgICAgICAgIGtleSAiY2hhbm5lbCI7
DQo+ICAgICAgICAgICBsZWFmIGNoYW5uZWwgew0KPiAgICAgICAgICAgICB0eXBlIGxlYWZyZWYg
ew0KPiAgICAgICAgICAgICAgIHBhdGggIi4uLy4uLy4uL2xhbWJkYS9jaGFubmVsIjsNCj4gICAg
ICAgICAgICAgfQ0KPiAgICAgICAgICAgfQ0KPiAgICAgICAgICAgLy8gSXMgdGhlcmUgYSB3YXkg
dG8geHBhdGggcmVmZXIgdG8gbGVmdCBvciByaWdodCBjb250YWluZXJzIG9mIHRoZQ0KPiAgICAg
ICAgICAgbGFtYmRhPw0KPiAgICAgICAgICAgbGVhZiByb3V0ZXItaWQgew0KPiAgICAgICAgICAg
ICB0eXBlIGxlYWZyZWYgew0KPiAgICAgICAgICAgICAgIC8vcGF0aA0KPiAgICAgICAgICAgICAg
ICIuLi8uLi8uLi9sYW1iZGFbY2hhbm5lbD1jdXJyZW50KCkvLi4vY2hhbm5lbF0vbGVmdC9yb3V0
ZXItaWQgfA0KPiAgICAgICAgICAgICAgIC4uLy4uLy4uL2xhbWJkYVtjaGFubmVsPWN1cnJlbnQo
KS8uLi9jaGFubmVsXS9yaWdodC9yb3V0ZXItaWQiOw0KPiAgICAgICAgICAgICAgIHBhdGggIi4u
Ly4uLy4uL2xhbWJkYVtjaGFubmVsPWN1cnJlbnQoKS8uLi9jaGFubmVsXS8qL3JvdXRlci1pZCI7
DQo+ICAgICAgICAgICAgIH0NCj4gICAgICAgICAgIH0NCj4gICAgICAgICB9DQo+ICAgICAgIH0N
Cj4gDQo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+
IHlhbmctZG9jdG9ycyBtYWlsaW5nIGxpc3QNCj4geWFuZy1kb2N0b3JzQGlldGYub3JnDQo+IGh0
dHBzOi8vd3d3LmlldGYub3JnL21haWxtYW4vbGlzdGluZm8veWFuZy1kb2N0b3JzDQo=


From nobody Mon Mar  2 02:22:14 2015
Return-Path: <lhotka@nic.cz>
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 1F6431A854B for <netmod@ietfa.amsl.com>; Mon,  2 Mar 2015 02:22:13 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level: 
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9] 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 PLEmOh7ImjQ6 for <netmod@ietfa.amsl.com>; Mon,  2 Mar 2015 02:22:11 -0800 (PST)
Received: from trail.lhotka.name (trail.lhotka.name [77.48.224.143]) by ietfa.amsl.com (Postfix) with ESMTP id EB5FF1A8547 for <netmod@ietf.org>; Mon,  2 Mar 2015 02:22:10 -0800 (PST)
Received: from localhost (unknown [195.113.220.110]) by trail.lhotka.name (Postfix) with ESMTPSA id CC5D11CC0156 for <netmod@ietf.org>; Mon,  2 Mar 2015 11:22:10 +0100 (CET)
From: Ladislav Lhotka <lhotka@nic.cz>
To: netmod@ietf.org
User-Agent: Notmuch/0.19 (http://notmuchmail.org) Emacs/24.4.51.2 (x86_64-apple-darwin14.0.0)
Date: Mon, 02 Mar 2015 11:22:08 +0100
Message-ID: <m2egp71yy7.fsf@nic.cz>
MIME-Version: 1.0
Content-Type: text/plain
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/rhQhCN45ZelkzsHKrJL14Noxdq0>
Subject: [netmod] conformance
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: <http://www.ietf.org/mail-archive/web/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, 02 Mar 2015 10:22:13 -0000

Hi,

I have two questions/comments regarding conformance as discussed in
Andy's and Martin's drafts:

1. Value set for identityrefs

   RFC 6020 says in sec. 9.10.2: "On a particular server, the valid
   values are further restricted to the set of identities defined in the
   modules supported by the server."

   I think "modules supported by the server" is unclear. So far, I've
   assumed that it means "modules *advertised* by the server" - this was
   also the conclusion of a discussion back in 2009, see Martin's mail

   http://www.ietf.org/mail-archive/web/netmod/current/msg02761.html

--------------------------------------------------------------------
 > - Sec. 9.10.5:
 >   * Since module "des" is not imported, how can an
 >     implementation know that such a module exists and defines the
 >     "des3" identity?

 des:des3 will only be valid on the device if the device implements
 (and adertises) the des module.
--------------------------------------------------------------------

   If it is so, then the set of permitted values of any identityref is
   IMO precisely defined and there is no ambiguity.

2. Revision hell

   Would it help if the revision of the module that's imported without
   revision is determined from the revision of the importing module?
   That is, it will be the highest revision of the imported module
   that's less or equal to the revision of the importing module.

   For example, if we have

   - module A, revision 2014-01-01
   - module A, revision 2014-02-01
   - module B, revision 2014-01-02

   and module B imports A without specifying a revision, then all A:*
   typedefs and groupings used in module B have to be taken from
   revision 2014-01-01 of module A, even if the server advertises the
   new revision 2014-02-01 of A. This would avoid the ripple effect.

Lada

-- 
Ladislav Lhotka, CZ.NIC Labs
PGP Key ID: E74E8C0C


From nobody Mon Mar  2 04:41:27 2015
Return-Path: <mbj@tail-f.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 AB9DA1A7013 for <netmod@ietfa.amsl.com>; Mon,  2 Mar 2015 04:41:26 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.911
X-Spam-Level: 
X-Spam-Status: No, score=-1.911 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] 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 xOaADrO2TPGx for <netmod@ietfa.amsl.com>; Mon,  2 Mar 2015 04:41:25 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [83.241.162.140]) by ietfa.amsl.com (Postfix) with ESMTP id E87E91A001A for <netmod@ietf.org>; Mon,  2 Mar 2015 04:41:24 -0800 (PST)
Received: from localhost (x15.tail-f.com [192.168.1.60]) by mail.tail-f.com (Postfix) with ESMTPSA id CCD6D1280A40; Mon,  2 Mar 2015 13:41:22 +0100 (CET)
Date: Mon, 02 Mar 2015 13:41:22 +0100 (CET)
Message-Id: <20150302.134122.1260910614681744808.mbj@tail-f.com>
To: lhotka@nic.cz
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <m2egp71yy7.fsf@nic.cz>
References: <m2egp71yy7.fsf@nic.cz>
X-Mailer: Mew version 6.5 on Emacs 23.4 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/7wWdNgYQJSd7M128NKe3vRvECFM>
Cc: netmod@ietf.org
Subject: Re: [netmod] conformance
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: <http://www.ietf.org/mail-archive/web/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, 02 Mar 2015 12:41:26 -0000

Ladislav Lhotka <lhotka@nic.cz> wrote:
> Hi,
> 
> I have two questions/comments regarding conformance as discussed in
> Andy's and Martin's drafts:
> 
> 1. Value set for identityrefs
> 
>    RFC 6020 says in sec. 9.10.2: "On a particular server, the valid
>    values are further restricted to the set of identities defined in the
>    modules supported by the server."
> 
>    I think "modules supported by the server" is unclear. So far, I've
>    assumed that it means "modules *advertised* by the server" - this was
>    also the conclusion of a discussion back in 2009, see Martin's mail
> 
>    http://www.ietf.org/mail-archive/web/netmod/current/msg02761.html
> 
> --------------------------------------------------------------------
>  > - Sec. 9.10.5:
>  >   * Since module "des" is not imported, how can an
>  >     implementation know that such a module exists and defines the
>  >     "des3" identity?
> 
>  des:des3 will only be valid on the device if the device implements
>  (and adertises) the des module.
> --------------------------------------------------------------------
> 
>    If it is so, then the set of permitted values of any identityref is
>    IMO precisely defined and there is no ambiguity.

Agreed.


> 2. Revision hell
> 
>    Would it help if the revision of the module that's imported without
>    revision is determined from the revision of the importing module?
>    That is, it will be the highest revision of the imported module
>    that's less or equal to the revision of the importing module.
> 
>    For example, if we have
> 
>    - module A, revision 2014-01-01
>    - module A, revision 2014-02-01
>    - module B, revision 2014-01-02
> 
>    and module B imports A without specifying a revision, then all A:*
>    typedefs and groupings used in module B have to be taken from
>    revision 2014-01-01 of module A, even if the server advertises the
>    new revision 2014-02-01 of A. This would avoid the ripple effect.

This gives the same problems as if explicit import-by revision was used
everywhere.


/martin


From nobody Mon Mar  2 05:05:38 2015
Return-Path: <lhotka@nic.cz>
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 B7E221A8760 for <netmod@ietfa.amsl.com>; Mon,  2 Mar 2015 05:05:36 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.361
X-Spam-Level: 
X-Spam-Status: No, score=-0.361 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HELO_EQ_CZ=0.445, HOST_EQ_CZ=0.904, MIME_8BIT_HEADER=0.3, T_RP_MATCHES_RCVD=-0.01] autolearn=no
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 L3RZcGmmF89A for <netmod@ietfa.amsl.com>; Mon,  2 Mar 2015 05:05:35 -0800 (PST)
Received: from mail.nic.cz (mail.nic.cz [IPv6:2001:1488:800:400::400]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3C1B91A8763 for <netmod@ietf.org>; Mon,  2 Mar 2015 05:05:31 -0800 (PST)
Received: from birdie.labs.nic.cz (unknown [195.113.220.110]) by mail.nic.cz (Postfix) with ESMTPSA id B36651439E0; Mon,  2 Mar 2015 14:05:29 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=nic.cz; s=default; t=1425301529; bh=GJgJFvfTIleQc8Uz/09XiqPozLkspVKUzpmLA3zT+o0=; h=Content-Type:Mime-Version:Subject:From:In-Reply-To:Date:Cc: Content-Transfer-Encoding:Message-Id:References:To; b=xEZRPhISlPWyMNIz58qSCaI9fm9UI6r9zerzHv6Ggk7WiB+knMoWtVtG/toB6P/L/ IsMcY+huG0XOHzMJzMKH75x6DZihUDelQbG/0FB6oUUsMSqzL/1H56R+RJZjkdLbli 0nEJLJmhiyZOtl6ugq6fEZD6ehch1WteunJaNrhE=
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2070.6\))
From: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <20150302.134122.1260910614681744808.mbj@tail-f.com>
Date: Mon, 2 Mar 2015 14:05:29 +0100
Content-Transfer-Encoding: quoted-printable
Message-Id: <3EA3AAB6-27F7-489C-8C2B-AD0C930B1E9E@nic.cz>
References: <m2egp71yy7.fsf@nic.cz> <20150302.134122.1260910614681744808.mbj@tail-f.com>
To: =?utf-8?Q?Martin_Bj=C3=B6rklund?= <mbj@tail-f.com>
X-Mailer: Apple Mail (2.2070.6)
X-Virus-Scanned: clamav-milter 0.98.1 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/SQpozBU-zssg4PfGiZa5GAV6fpQ>
Cc: netmod@ietf.org
Subject: Re: [netmod] conformance
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: <http://www.ietf.org/mail-archive/web/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, 02 Mar 2015 13:05:36 -0000

> On 02 Mar 2015, at 13:41, Martin Bjorklund <mbj@tail-f.com> wrote:
>=20
> Ladislav Lhotka <lhotka@nic.cz> wrote:
>> Hi,
>>=20
>> I have two questions/comments regarding conformance as discussed in
>> Andy's and Martin's drafts:
>>=20
>> 1. Value set for identityrefs
>>=20
>>   RFC 6020 says in sec. 9.10.2: "On a particular server, the valid
>>   values are further restricted to the set of identities defined in =
the
>>   modules supported by the server."
>>=20
>>   I think "modules supported by the server" is unclear. So far, I've
>>   assumed that it means "modules *advertised* by the server" - this =
was
>>   also the conclusion of a discussion back in 2009, see Martin's mail
>>=20
>>   http://www.ietf.org/mail-archive/web/netmod/current/msg02761.html
>>=20
>> --------------------------------------------------------------------
>>> - Sec. 9.10.5:
>>>  * Since module "des" is not imported, how can an
>>>    implementation know that such a module exists and defines the
>>>    "des3" identity?
>>=20
>> des:des3 will only be valid on the device if the device implements
>> (and adertises) the des module.
>> --------------------------------------------------------------------
>>=20
>>   If it is so, then the set of permitted values of any identityref is
>>   IMO precisely defined and there is no ambiguity.
>=20
> Agreed.
>=20
>=20
>> 2. Revision hell
>>=20
>>   Would it help if the revision of the module that's imported without
>>   revision is determined from the revision of the importing module?
>>   That is, it will be the highest revision of the imported module
>>   that's less or equal to the revision of the importing module.
>>=20
>>   For example, if we have
>>=20
>>   - module A, revision 2014-01-01
>>   - module A, revision 2014-02-01
>>   - module B, revision 2014-01-02
>>=20
>>   and module B imports A without specifying a revision, then all A:*
>>   typedefs and groupings used in module B have to be taken from
>>   revision 2014-01-01 of module A, even if the server advertises the
>>   new revision 2014-02-01 of A. This would avoid the ripple effect.
>=20
> This gives the same problems as if explicit import-by revision was =
used
> everywhere.

In the minutes of the last interim telco I read:

  MB: P2 is showing that import-by-revision can lead to unresolvable
      conflicts requiring import updates (revision update ripple =
problem)

However, I really don't see any unresolvable conflict, provided the =
server only advertises modules whose nodes and identities it implements =
(which is how I understand the current rules). Revisions of imported =
modules will be controlled exclusively by importing modules, either by =
specifying revision-date or by my rule.

What=E2=80=99s wrong with this? There are no ripple effects, as far as I =
can tell.

Lada

>=20
>=20
> /martin

--
Ladislav Lhotka, CZ.NIC Labs
PGP Key ID: E74E8C0C





From nobody Mon Mar  2 05:48:55 2015
Return-Path: <andy@yumaworks.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 100DF1A8768 for <netmod@ietfa.amsl.com>; Mon,  2 Mar 2015 05:48:54 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.979
X-Spam-Level: 
X-Spam-Status: No, score=-1.979 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] 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 oFUc1JkrEAeD for <netmod@ietfa.amsl.com>; Mon,  2 Mar 2015 05:48:48 -0800 (PST)
Received: from mail-lb0-f173.google.com (mail-lb0-f173.google.com [209.85.217.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 491FA1A8763 for <netmod@ietf.org>; Mon,  2 Mar 2015 05:48:48 -0800 (PST)
Received: by lbiz11 with SMTP id z11so4098545lbi.3 for <netmod@ietf.org>; Mon, 02 Mar 2015 05:48:46 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=PEELu8bXDf+xHJ5jeKL1yyj+2LmWn2Cl0lvB7qWp7io=; b=V57C7R/uplWZtXRD9OheTX4O260GTpXZemTaHyZNleLKng52uIu26C+I4PH48wb5y+ Nn1UdA2FFhrssoOaq08zYYhRD4GqAX+odYr94QXEp0KTdPfShQjmR7Y4vC3yt0mNCQDb k0rSNTbkVGtIl+kWrfrDPEJKVSBN3JpOIlKQowzaRIEwx2nRPQt+VWNlisveoOoYjjQQ mEYDmDeoAgUPhKqKFVjRDS3CPP1ynqeN98HG2u5wXUw+eKQK69eEbb+/fFC4I2Rh00T+ tf1UqCT5btrnSiCECoYbIgEIEmybkNYIcl7WXky64F7JET8dzbKUz91lU0An9rjK9zgi pyEw==
X-Gm-Message-State: ALoCoQmCzSaBnDrD3YtzVfgYG2blaAEsZCUwLD1cqyaEjmm3v69e4XVrEeWpkiboPiuHBtFmbPjs
MIME-Version: 1.0
X-Received: by 10.152.88.71 with SMTP id be7mr3204913lab.119.1425304126767; Mon, 02 Mar 2015 05:48:46 -0800 (PST)
Received: by 10.112.144.36 with HTTP; Mon, 2 Mar 2015 05:48:46 -0800 (PST)
In-Reply-To: <20150302.134122.1260910614681744808.mbj@tail-f.com>
References: <m2egp71yy7.fsf@nic.cz> <20150302.134122.1260910614681744808.mbj@tail-f.com>
Date: Mon, 2 Mar 2015 05:48:46 -0800
Message-ID: <CABCOCHSHR5iDuJkjW+kP8Vyibj-r3UCra-eKq7m1WAu2vDbcaw@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Martin Bjorklund <mbj@tail-f.com>
Content-Type: text/plain; charset=UTF-8
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/RORu5CZCCKGxCu9BiGKUsEBqo3A>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] conformance
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: <http://www.ietf.org/mail-archive/web/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, 02 Mar 2015 13:48:54 -0000

On Mon, Mar 2, 2015 at 4:41 AM, Martin Bjorklund <mbj@tail-f.com> wrote:
> Ladislav Lhotka <lhotka@nic.cz> wrote:
>> Hi,
>>
>> I have two questions/comments regarding conformance as discussed in
>> Andy's and Martin's drafts:
>>
>> 1. Value set for identityrefs
>>
>>    RFC 6020 says in sec. 9.10.2: "On a particular server, the valid
>>    values are further restricted to the set of identities defined in the
>>    modules supported by the server."
>>
>>    I think "modules supported by the server" is unclear. So far, I've
>>    assumed that it means "modules *advertised* by the server" - this was
>>    also the conclusion of a discussion back in 2009, see Martin's mail
>>
>>    http://www.ietf.org/mail-archive/web/netmod/current/msg02761.html
>>
>> --------------------------------------------------------------------
>>  > - Sec. 9.10.5:
>>  >   * Since module "des" is not imported, how can an
>>  >     implementation know that such a module exists and defines the
>>  >     "des3" identity?
>>
>>  des:des3 will only be valid on the device if the device implements
>>  (and adertises) the des module.
>> --------------------------------------------------------------------
>>
>>    If it is so, then the set of permitted values of any identityref is
>>    IMO precisely defined and there is no ambiguity.
>
> Agreed.
>

IMO this does not work because designers put many identities together
in the same module that are not intended to all be implemented
by every device.

Let's say we have a super simple device with 1 ethernet port.

1) Does the server advertise iana-if-type?
1a) If so, is the server supposed to implement every identity
  in iana-if-type.yang (of course not)
1b) If the iana-if-type.yang module is not advertised then how
  does the client know where the 'ethernet' identity came from?

I am not convinced the module-based conformance mechanisms
are worth fixing.  We can claim they are generally useful.
It is useful to know the module name and revision dates
from all the modules and submodules.  The ietf-yang-library
module does that.


Andy


>
>> 2. Revision hell
>>
>>    Would it help if the revision of the module that's imported without
>>    revision is determined from the revision of the importing module?
>>    That is, it will be the highest revision of the imported module
>>    that's less or equal to the revision of the importing module.
>>
>>    For example, if we have
>>
>>    - module A, revision 2014-01-01
>>    - module A, revision 2014-02-01
>>    - module B, revision 2014-01-02
>>
>>    and module B imports A without specifying a revision, then all A:*
>>    typedefs and groupings used in module B have to be taken from
>>    revision 2014-01-01 of module A, even if the server advertises the
>>    new revision 2014-02-01 of A. This would avoid the ripple effect.
>
> This gives the same problems as if explicit import-by revision was used
> everywhere.
>
>
> /martin
>
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod


From nobody Mon Mar  2 05:52:25 2015
Return-Path: <lhotka@nic.cz>
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 E73651A8763 for <netmod@ietfa.amsl.com>; Mon,  2 Mar 2015 05:52:23 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.661
X-Spam-Level: 
X-Spam-Status: No, score=-0.661 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HELO_EQ_CZ=0.445, HOST_EQ_CZ=0.904, T_RP_MATCHES_RCVD=-0.01] autolearn=no
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 7WG9xFQ9VBvb for <netmod@ietfa.amsl.com>; Mon,  2 Mar 2015 05:52:22 -0800 (PST)
Received: from mail.nic.cz (mail.nic.cz [IPv6:2001:1488:800:400::400]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E8F601A876F for <netmod@ietf.org>; Mon,  2 Mar 2015 05:52:21 -0800 (PST)
Received: from birdie.labs.nic.cz (unknown [195.113.220.110]) by mail.nic.cz (Postfix) with ESMTPSA id 974731400E9; Mon,  2 Mar 2015 14:52:20 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=nic.cz; s=default; t=1425304340; bh=X+aEGUbBxMKYrOe9paUI77ZLVeG8WM3swSWfXcMJ/bY=; h=Content-Type:Mime-Version:Subject:From:In-Reply-To:Date:Cc: Content-Transfer-Encoding:Message-Id:References:To; b=pXroQMI/iOPtSsrHcNRIcrDp6+kOdsQGYWJRmv13+zZnzyS4kRNKf7PYqvNwuqcmu 3XknTqBBF2rq/y0Tb+dgzXwwU7xdAKoNfg06NpooDdmqko0csTqwjwCdP+BfQ+3dGG jjYl/zTooKsuUF8/WqRHOPQ6JGYT0OiegRk0QHzo=
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2070.6\))
From: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <CABCOCHSHR5iDuJkjW+kP8Vyibj-r3UCra-eKq7m1WAu2vDbcaw@mail.gmail.com>
Date: Mon, 2 Mar 2015 14:52:20 +0100
Content-Transfer-Encoding: quoted-printable
Message-Id: <2866B077-C7D1-4715-80AA-3AD7721CB7B9@nic.cz>
References: <m2egp71yy7.fsf@nic.cz> <20150302.134122.1260910614681744808.mbj@tail-f.com> <CABCOCHSHR5iDuJkjW+kP8Vyibj-r3UCra-eKq7m1WAu2vDbcaw@mail.gmail.com>
To: Andy Bierman <andy@yumaworks.com>
X-Mailer: Apple Mail (2.2070.6)
X-Virus-Scanned: clamav-milter 0.98.1 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/CUjydxesKdFwsUb4E-M5t5FW77k>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] conformance
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: <http://www.ietf.org/mail-archive/web/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, 02 Mar 2015 13:52:24 -0000

> On 02 Mar 2015, at 14:48, Andy Bierman <andy@yumaworks.com> wrote:
>=20
> On Mon, Mar 2, 2015 at 4:41 AM, Martin Bjorklund <mbj@tail-f.com> =
wrote:
>> Ladislav Lhotka <lhotka@nic.cz> wrote:
>>> Hi,
>>>=20
>>> I have two questions/comments regarding conformance as discussed in
>>> Andy's and Martin's drafts:
>>>=20
>>> 1. Value set for identityrefs
>>>=20
>>>   RFC 6020 says in sec. 9.10.2: "On a particular server, the valid
>>>   values are further restricted to the set of identities defined in =
the
>>>   modules supported by the server."
>>>=20
>>>   I think "modules supported by the server" is unclear. So far, I've
>>>   assumed that it means "modules *advertised* by the server" - this =
was
>>>   also the conclusion of a discussion back in 2009, see Martin's =
mail
>>>=20
>>>   http://www.ietf.org/mail-archive/web/netmod/current/msg02761.html
>>>=20
>>> --------------------------------------------------------------------
>>>> - Sec. 9.10.5:
>>>>  * Since module "des" is not imported, how can an
>>>>    implementation know that such a module exists and defines the
>>>>    "des3" identity?
>>>=20
>>> des:des3 will only be valid on the device if the device implements
>>> (and adertises) the des module.
>>> --------------------------------------------------------------------
>>>=20
>>>   If it is so, then the set of permitted values of any identityref =
is
>>>   IMO precisely defined and there is no ambiguity.
>>=20
>> Agreed.
>>=20
>=20
> IMO this does not work because designers put many identities together
> in the same module that are not intended to all be implemented
> by every device.
>=20
> Let's say we have a super simple device with 1 ethernet port.
>=20
> 1) Does the server advertise iana-if-type?
> 1a) If so, is the server supposed to implement every identity
>  in iana-if-type.yang (of course not)
> 1b) If the iana-if-type.yang module is not advertised then how
>  does the client know where the 'ethernet' identity came from?

FWIW, I have repeatedly objected against the design of iana-if-type, =
exactly because of these reasons. If the =E2=80=98ethernet=E2=80=99 =
identity was defined in the same module where Ethernet data nodes are =
defined, this problem wouldn=E2=80=99t exist.

Lada

>=20
> I am not convinced the module-based conformance mechanisms
> are worth fixing.  We can claim they are generally useful.
> It is useful to know the module name and revision dates
> from all the modules and submodules.  The ietf-yang-library
> module does that.
>=20
>=20
> Andy
>=20
>=20
>>=20
>>> 2. Revision hell
>>>=20
>>>   Would it help if the revision of the module that's imported =
without
>>>   revision is determined from the revision of the importing module?
>>>   That is, it will be the highest revision of the imported module
>>>   that's less or equal to the revision of the importing module.
>>>=20
>>>   For example, if we have
>>>=20
>>>   - module A, revision 2014-01-01
>>>   - module A, revision 2014-02-01
>>>   - module B, revision 2014-01-02
>>>=20
>>>   and module B imports A without specifying a revision, then all A:*
>>>   typedefs and groupings used in module B have to be taken from
>>>   revision 2014-01-01 of module A, even if the server advertises the
>>>   new revision 2014-02-01 of A. This would avoid the ripple effect.
>>=20
>> This gives the same problems as if explicit import-by revision was =
used
>> everywhere.
>>=20
>>=20
>> /martin
>>=20
>> _______________________________________________
>> netmod mailing list
>> netmod@ietf.org
>> https://www.ietf.org/mailman/listinfo/netmod

--
Ladislav Lhotka, CZ.NIC Labs
PGP Key ID: E74E8C0C





From nobody Mon Mar  2 07:45:31 2015
Return-Path: <mbj@tail-f.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 A1DA91A0023 for <netmod@ietfa.amsl.com>; Mon,  2 Mar 2015 07:45:30 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.911
X-Spam-Level: 
X-Spam-Status: No, score=-1.911 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] 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 BssZm3ZVfzZg for <netmod@ietfa.amsl.com>; Mon,  2 Mar 2015 07:45:29 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [83.241.162.140]) by ietfa.amsl.com (Postfix) with ESMTP id 1072D1A1A5A for <netmod@ietf.org>; Mon,  2 Mar 2015 07:45:25 -0800 (PST)
Received: from localhost (173-38-208-169.cisco.com [173.38.208.169]) by mail.tail-f.com (Postfix) with ESMTPSA id F20401280052; Mon,  2 Mar 2015 16:45:22 +0100 (CET)
Date: Mon, 02 Mar 2015 16:45:22 +0100 (CET)
Message-Id: <20150302.164522.1361631088266307551.mbj@tail-f.com>
To: andy@yumaworks.com
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <CABCOCHSHR5iDuJkjW+kP8Vyibj-r3UCra-eKq7m1WAu2vDbcaw@mail.gmail.com>
References: <m2egp71yy7.fsf@nic.cz> <20150302.134122.1260910614681744808.mbj@tail-f.com> <CABCOCHSHR5iDuJkjW+kP8Vyibj-r3UCra-eKq7m1WAu2vDbcaw@mail.gmail.com>
X-Mailer: Mew version 6.5 on Emacs 23.4 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/kMaAQA6rqHMeCXWLb-VCrjOlaAQ>
Cc: netmod@ietf.org
Subject: Re: [netmod] conformance
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: <http://www.ietf.org/mail-archive/web/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, 02 Mar 2015 15:45:30 -0000

Andy Bierman <andy@yumaworks.com> wrote:
> On Mon, Mar 2, 2015 at 4:41 AM, Martin Bjorklund <mbj@tail-f.com> wrote:
> > Ladislav Lhotka <lhotka@nic.cz> wrote:
> >> Hi,
> >>
> >> I have two questions/comments regarding conformance as discussed in
> >> Andy's and Martin's drafts:
> >>
> >> 1. Value set for identityrefs
> >>
> >>    RFC 6020 says in sec. 9.10.2: "On a particular server, the valid
> >>    values are further restricted to the set of identities defined in the
> >>    modules supported by the server."
> >>
> >>    I think "modules supported by the server" is unclear. So far, I've
> >>    assumed that it means "modules *advertised* by the server" - this was
> >>    also the conclusion of a discussion back in 2009, see Martin's mail
> >>
> >>    http://www.ietf.org/mail-archive/web/netmod/current/msg02761.html
> >>
> >> --------------------------------------------------------------------
> >>  > - Sec. 9.10.5:
> >>  >   * Since module "des" is not imported, how can an
> >>  >     implementation know that such a module exists and defines the
> >>  >     "des3" identity?
> >>
> >>  des:des3 will only be valid on the device if the device implements
> >>  (and adertises) the des module.
> >> --------------------------------------------------------------------
> >>
> >>    If it is so, then the set of permitted values of any identityref is
> >>    IMO precisely defined and there is no ambiguity.
> >
> > Agreed.
> >
> 
> IMO this does not work because designers put many identities together
> in the same module that are not intended to all be implemented
> by every device.

Yes, this is why your get-allowed-identities rpc is needed.



/martin


From nobody Mon Mar  2 08:06:24 2015
Return-Path: <lhotka@nic.cz>
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 427BE1A1A72 for <netmod@ietfa.amsl.com>; Mon,  2 Mar 2015 08:06:23 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.361
X-Spam-Level: 
X-Spam-Status: No, score=-0.361 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HELO_EQ_CZ=0.445, HOST_EQ_CZ=0.904, MIME_8BIT_HEADER=0.3, T_RP_MATCHES_RCVD=-0.01] autolearn=no
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 gQFbFjIT46mZ for <netmod@ietfa.amsl.com>; Mon,  2 Mar 2015 08:06:21 -0800 (PST)
Received: from mail.nic.cz (mail.nic.cz [IPv6:2001:1488:800:400::400]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 307F31A1AE6 for <netmod@ietf.org>; Mon,  2 Mar 2015 08:06:06 -0800 (PST)
Received: from birdie.labs.nic.cz (unknown [195.113.220.110]) by mail.nic.cz (Postfix) with ESMTPSA id 560041439E1; Mon,  2 Mar 2015 17:06:05 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=nic.cz; s=default; t=1425312365; bh=Q5R+bf5Ij9o5owadnnHKRgLgodAm9T2jqxmmufCTxYY=; h=Content-Type:Mime-Version:Subject:From:In-Reply-To:Date:Cc: Content-Transfer-Encoding:Message-Id:References:To; b=rFRgybRKUrbhF8jPBfSfVD4TIBM+lE/0nnnA+9qRlM1ypS4uOibkk+icqW2l3FveE YD1ejmMwnDgC7UEMALqlGMv4ob/XNnzs9J0aIFiYYULtCrq7KXqVlH3L9CjLdoe+tA J+p0ZdzWrsxT2sNaiJYcoe5kMYqopFyCWOWbEHZk=
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2070.6\))
From: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <20150302.164522.1361631088266307551.mbj@tail-f.com>
Date: Mon, 2 Mar 2015 17:06:05 +0100
Content-Transfer-Encoding: quoted-printable
Message-Id: <E6049E22-1EEB-4ECF-8947-903A21696625@nic.cz>
References: <m2egp71yy7.fsf@nic.cz> <20150302.134122.1260910614681744808.mbj@tail-f.com> <CABCOCHSHR5iDuJkjW+kP8Vyibj-r3UCra-eKq7m1WAu2vDbcaw@mail.gmail.com> <20150302.164522.1361631088266307551.mbj@tail-f.com>
To: =?utf-8?Q?Martin_Bj=C3=B6rklund?= <mbj@tail-f.com>
X-Mailer: Apple Mail (2.2070.6)
X-Virus-Scanned: clamav-milter 0.98.1 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/wpIcK0NRlw6BxFw-9cp0pzU-8lA>
Cc: netmod@ietf.org
Subject: Re: [netmod] conformance
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: <http://www.ietf.org/mail-archive/web/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, 02 Mar 2015 16:06:23 -0000

> On 02 Mar 2015, at 16:45, Martin Bjorklund <mbj@tail-f.com> wrote:
>=20
> Andy Bierman <andy@yumaworks.com> wrote:
>> On Mon, Mar 2, 2015 at 4:41 AM, Martin Bjorklund <mbj@tail-f.com> =
wrote:
>>> Ladislav Lhotka <lhotka@nic.cz> wrote:
>>>> Hi,
>>>>=20
>>>> I have two questions/comments regarding conformance as discussed in
>>>> Andy's and Martin's drafts:
>>>>=20
>>>> 1. Value set for identityrefs
>>>>=20
>>>>   RFC 6020 says in sec. 9.10.2: "On a particular server, the valid
>>>>   values are further restricted to the set of identities defined in =
the
>>>>   modules supported by the server."
>>>>=20
>>>>   I think "modules supported by the server" is unclear. So far, =
I've
>>>>   assumed that it means "modules *advertised* by the server" - this =
was
>>>>   also the conclusion of a discussion back in 2009, see Martin's =
mail
>>>>=20
>>>>   http://www.ietf.org/mail-archive/web/netmod/current/msg02761.html
>>>>=20
>>>> =
--------------------------------------------------------------------
>>>>> - Sec. 9.10.5:
>>>>>  * Since module "des" is not imported, how can an
>>>>>    implementation know that such a module exists and defines the
>>>>>    "des3" identity?
>>>>=20
>>>> des:des3 will only be valid on the device if the device implements
>>>> (and adertises) the des module.
>>>> =
--------------------------------------------------------------------
>>>>=20
>>>>   If it is so, then the set of permitted values of any identityref =
is
>>>>   IMO precisely defined and there is no ambiguity.
>>>=20
>>> Agreed.
>>>=20
>>=20
>> IMO this does not work because designers put many identities together
>> in the same module that are not intended to all be implemented
>> by every device.
>=20
> Yes, this is why your get-allowed-identities rpc is needed.

I don=E2=80=99t agree, it isn't needed at all if identities are defined =
in a distributed way as they should be, and not in an enumeration-like =
mode.

Lada

>=20
>=20
>=20
> /martin

--
Ladislav Lhotka, CZ.NIC Labs
PGP Key ID: E74E8C0C





From nobody Mon Mar  2 08:14:34 2015
Return-Path: <andy@yumaworks.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 8EB2E1A0377 for <netmod@ietfa.amsl.com>; Mon,  2 Mar 2015 08:14:33 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.979
X-Spam-Level: 
X-Spam-Status: No, score=-1.979 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] 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 0SqzL1_U29Im for <netmod@ietfa.amsl.com>; Mon,  2 Mar 2015 08:14:31 -0800 (PST)
Received: from mail-lb0-f171.google.com (mail-lb0-f171.google.com [209.85.217.171]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 588BA1A0115 for <netmod@ietf.org>; Mon,  2 Mar 2015 08:14:31 -0800 (PST)
Received: by lbjf15 with SMTP id f15so3161092lbj.2 for <netmod@ietf.org>; Mon, 02 Mar 2015 08:14:29 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=o2ksO06QbLWXeEfTcolK/GE5z7nclLNKiyQOMq2wBjE=; b=LkIwe/6KBvYoQ14eya5wYqqL17HeO5AIvII5eFHHrVTifW3COsEpcho7M7nD6rL6GU rY0BsAtL0GeXFaJxYBAwoHYXOIOYaojqAG6z+ls+bPKJEiqAIA7XKUKAwAfNRI8sT33Y QoFxAZlhkb37QJ5F5G4+19TP1BAzUho0Wxa3KmfqnRjLuCfuGb4H9uvzbuT+9ACY6Q8/ Q0cqnxpae8trrzw3qPN60FGNXNkJF2N4sVTpPzbKn7P6iWBsuU2uiyeytlgpZueKFXj+ qxoSqtlXWbNunetD+4D9QymjVleu+w+wcMCQJ2b/RNzmkuRd34gJSCGorRCS5poam+Cs HjCw==
X-Gm-Message-State: ALoCoQmeVScqCP/B8hJ5Do+SSXnAllqryAzLNP4Fxo9NQPf9EpndFHfy7oZSlnHePmD+fzcRD0js
MIME-Version: 1.0
X-Received: by 10.112.139.136 with SMTP id qy8mr25083842lbb.38.1425312869807;  Mon, 02 Mar 2015 08:14:29 -0800 (PST)
Received: by 10.112.144.36 with HTTP; Mon, 2 Mar 2015 08:14:29 -0800 (PST)
In-Reply-To: <E6049E22-1EEB-4ECF-8947-903A21696625@nic.cz>
References: <m2egp71yy7.fsf@nic.cz> <20150302.134122.1260910614681744808.mbj@tail-f.com> <CABCOCHSHR5iDuJkjW+kP8Vyibj-r3UCra-eKq7m1WAu2vDbcaw@mail.gmail.com> <20150302.164522.1361631088266307551.mbj@tail-f.com> <E6049E22-1EEB-4ECF-8947-903A21696625@nic.cz>
Date: Mon, 2 Mar 2015 08:14:29 -0800
Message-ID: <CABCOCHS0s0EiKzQhaKNVyYrU3gs87K26SgEhYoYPNa42CEiSsA@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Ladislav Lhotka <lhotka@nic.cz>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/7ymT7-S9GV8V5RbXv1QZYGGvvm0>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] conformance
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: <http://www.ietf.org/mail-archive/web/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, 02 Mar 2015 16:14:33 -0000

On Mon, Mar 2, 2015 at 8:06 AM, Ladislav Lhotka <lhotka@nic.cz> wrote:
>
>> On 02 Mar 2015, at 16:45, Martin Bjorklund <mbj@tail-f.com> wrote:
>>
>> Andy Bierman <andy@yumaworks.com> wrote:
>>> On Mon, Mar 2, 2015 at 4:41 AM, Martin Bjorklund <mbj@tail-f.com> wrote=
:
>>>> Ladislav Lhotka <lhotka@nic.cz> wrote:
>>>>> Hi,
>>>>>
>>>>> I have two questions/comments regarding conformance as discussed in
>>>>> Andy's and Martin's drafts:
>>>>>
>>>>> 1. Value set for identityrefs
>>>>>
>>>>>   RFC 6020 says in sec. 9.10.2: "On a particular server, the valid
>>>>>   values are further restricted to the set of identities defined in t=
he
>>>>>   modules supported by the server."
>>>>>
>>>>>   I think "modules supported by the server" is unclear. So far, I've
>>>>>   assumed that it means "modules *advertised* by the server" - this w=
as
>>>>>   also the conclusion of a discussion back in 2009, see Martin's mail
>>>>>
>>>>>   http://www.ietf.org/mail-archive/web/netmod/current/msg02761.html
>>>>>
>>>>> --------------------------------------------------------------------
>>>>>> - Sec. 9.10.5:
>>>>>>  * Since module "des" is not imported, how can an
>>>>>>    implementation know that such a module exists and defines the
>>>>>>    "des3" identity?
>>>>>
>>>>> des:des3 will only be valid on the device if the device implements
>>>>> (and adertises) the des module.
>>>>> --------------------------------------------------------------------
>>>>>
>>>>>   If it is so, then the set of permitted values of any identityref is
>>>>>   IMO precisely defined and there is no ambiguity.
>>>>
>>>> Agreed.
>>>>
>>>
>>> IMO this does not work because designers put many identities together
>>> in the same module that are not intended to all be implemented
>>> by every device.
>>
>> Yes, this is why your get-allowed-identities rpc is needed.
>
> I don=E2=80=99t agree, it isn't needed at all if identities are defined i=
n a distributed way as they should be, and not in an enumeration-like mode.
>


This would mean that each identity would need to be in its own YANG module
so it could be advertised by the server.  Not a workable solution.

> Lada
>

Andy

>>
>>
>>
>> /martin
>
> --
> Ladislav Lhotka, CZ.NIC Labs
> PGP Key ID: E74E8C0C
>
>
>
>


From nobody Mon Mar  2 08:54:16 2015
Return-Path: <phil@juniper.net>
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 4F3651A1B80 for <netmod@ietfa.amsl.com>; Mon,  2 Mar 2015 08:54:15 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.902
X-Spam-Level: 
X-Spam-Status: No, score=-1.902 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] 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 x0OVYroSY6kN for <netmod@ietfa.amsl.com>; Mon,  2 Mar 2015 08:54:14 -0800 (PST)
Received: from na01-by2-obe.outbound.protection.outlook.com (mail-by2on0119.outbound.protection.outlook.com [207.46.100.119]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5D30A1A1B84 for <netmod@ietf.org>; Mon,  2 Mar 2015 08:54:13 -0800 (PST)
Received: from CO2PR05CA018.namprd05.prod.outlook.com (10.141.241.146) by BN1PR05MB438.namprd05.prod.outlook.com (10.141.58.12) with Microsoft SMTP Server (TLS) id 15.1.99.14; Mon, 2 Mar 2015 16:54:11 +0000
Received: from BN1BFFO11FD004.protection.gbl (2a01:111:f400:7c10::1:162) by CO2PR05CA018.outlook.office365.com (2a01:111:e400:1429::18) with Microsoft SMTP Server (TLS) id 15.1.99.14 via Frontend Transport; Mon, 2 Mar 2015 16:54:10 +0000
Received: from P-EMF03-SAC.jnpr.net (66.129.239.17) by BN1BFFO11FD004.mail.protection.outlook.com (10.58.144.67) with Microsoft SMTP Server (TLS) id 15.1.99.6 via Frontend Transport; Mon, 2 Mar 2015 16:54:09 +0000
Received: from magenta.juniper.net (172.17.27.123) by P-EMF03-SAC.jnpr.net (172.24.192.21) with Microsoft SMTP Server (TLS) id 14.3.146.0; Mon, 2 Mar 2015 08:54:08 -0800
Received: from idle.juniper.net (idleski.juniper.net [172.25.4.26])	by magenta.juniper.net (8.11.3/8.11.3) with ESMTP id t22Gs6D94936;	Mon, 2 Mar 2015 08:54:07 -0800 (PST)	(envelope-from phil@juniper.net)
Received: from idle.juniper.net (localhost [127.0.0.1])	by idle.juniper.net (8.14.4/8.14.3) with ESMTP id t22GrBsw032303;	Mon, 2 Mar 2015 11:53:12 -0500 (EST)	(envelope-from phil@idle.juniper.net)
Message-ID: <201503021653.t22GrBsw032303@idle.juniper.net>
To: Andy Bierman <andy@yumaworks.com>
In-Reply-To: <CABCOCHS0s0EiKzQhaKNVyYrU3gs87K26SgEhYoYPNa42CEiSsA@mail.gmail.com>
Date: Mon, 2 Mar 2015 11:53:11 -0500
From: Phil Shafer <phil@juniper.net>
MIME-Version: 1.0
Content-Type: text/plain
X-EOPAttributedMessage: 0
Received-SPF: SoftFail (protection.outlook.com: domain of transitioning juniper.net discourages use of 66.129.239.17 as permitted sender)
Authentication-Results: spf=softfail (sender IP is 66.129.239.17) smtp.mailfrom=phil@juniper.net; ietf.org; dkim=none (message not signed) header.d=none;
X-Forefront-Antispam-Report: CIP:66.129.239.17; CTRY:US; IPV:NLI; EFV:NLI; SFV:NSPM; SFS:(10019020)(6009001)(199003)(189002)(164054003)(106466001)(47776003)(46102003)(50986999)(76506005)(53416004)(105596002)(54356999)(48376002)(50466002)(6806004)(92566002)(62966003)(77156002)(110136001)(86362001)(87936001)(77096005)(2950100001); DIR:OUT; SFP:1102; SCL:1; SRVR:BN1PR05MB438; H:P-EMF03-SAC.jnpr.net; FPR:; SPF:SoftFail; MLV:sfv; A:1; MX:1; LANG:en; 
X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN1PR05MB438;
X-Microsoft-Antispam-PRVS: <BN1PR05MB43847272B38DFFE56FD450EC0100@BN1PR05MB438.namprd05.prod.outlook.com>
X-Exchange-Antispam-Report-Test: UriScan:;
X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(5005006); SRVR:BN1PR05MB438; BCL:0; PCL:0; RULEID:; SRVR:BN1PR05MB438; 
X-Forefront-PRVS: 0503FF9A3E
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Mar 2015 16:54:09.2036 (UTC)
X-MS-Exchange-CrossTenant-Id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=bea78b3c-4cdb-4130-854a-1d193232e5f4; Ip=[66.129.239.17]
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN1PR05MB438
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/YE_QUEV-Cw_r_iwioznE2kwyEbw>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] conformance
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: <http://www.ietf.org/mail-archive/web/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, 02 Mar 2015 16:54:15 -0000

Andy Bierman writes:
>This would mean that each identity would need to be in its own YANG module
>so it could be advertised by the server.  Not a workable solution.

Worse than that, isn't it?  How would I know that a particular
identity is allowed in one leaf but not allowed in another?  My
server might support a new identity for a new knob, but not for
an older one.

Thanks,
 Phil


From nobody Mon Mar  2 09:52:11 2015
Return-Path: <andy@yumaworks.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 1AFC01A1B84 for <netmod@ietfa.amsl.com>; Mon,  2 Mar 2015 09:52:09 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.979
X-Spam-Level: 
X-Spam-Status: No, score=-1.979 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] 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 xOpUt6tgC6Az for <netmod@ietfa.amsl.com>; Mon,  2 Mar 2015 09:52:08 -0800 (PST)
Received: from mail-la0-f52.google.com (mail-la0-f52.google.com [209.85.215.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9E1B51A8873 for <netmod@ietf.org>; Mon,  2 Mar 2015 09:52:05 -0800 (PST)
Received: by labgf13 with SMTP id gf13so7442730lab.10 for <netmod@ietf.org>; Mon, 02 Mar 2015 09:52:04 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=DuHzXD81Xi6sVPncZaWutXbC+pc4jbanUK1rEw8miho=; b=ZPMAxnOjuNEFamAYRMjHKM/a1eM3hJEJ33laWmsPCq9XZ8vqzOkkMUQ8pslR4iugSB jSzjBlsbDsFE0h2SH21cA/pMG4OjU/1USbXNZ3YzUC9TMJK6IdHGrw976bbhbladQ5Tz wQ/Kio3F4kaN025zNiRlHO9nkuazIEGZLV7qpxAb7MNsEr7Wm7DD+XNE/6cBxQxQU5uY oZ6juPKffKnxMSs28FcFiOIdSOvkRTMoJWx4vKs3ddT4mrmrO1gEAkltPsPclKpSqhX1 vRqiotqEY59U9eknh5islzndsHCHEgbvZSgoD4aw/9thrVyFT4wgFLUMsT1qc74fflsQ gPiQ==
X-Gm-Message-State: ALoCoQmbe5RRX260c3DjtjySwCTMDkKZKdEVFGVGcTjvU1wVzu5CGhgGk2oawfwVhf0rt0iQ3RC2
MIME-Version: 1.0
X-Received: by 10.152.88.71 with SMTP id be7mr4401070lab.119.1425318724091; Mon, 02 Mar 2015 09:52:04 -0800 (PST)
Received: by 10.112.144.36 with HTTP; Mon, 2 Mar 2015 09:52:03 -0800 (PST)
In-Reply-To: <201503021653.t22GrBsw032303@idle.juniper.net>
References: <CABCOCHS0s0EiKzQhaKNVyYrU3gs87K26SgEhYoYPNa42CEiSsA@mail.gmail.com> <201503021653.t22GrBsw032303@idle.juniper.net>
Date: Mon, 2 Mar 2015 09:52:03 -0800
Message-ID: <CABCOCHQxeK+BzpeJvwfos-rYfVO=vCqYo6Th2ykLQ8LVq8W6NQ@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Phil Shafer <phil@juniper.net>
Content-Type: text/plain; charset=UTF-8
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/oXiE5jc7Ic9xAibykwKkzwZC5Yk>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] conformance
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: <http://www.ietf.org/mail-archive/web/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, 02 Mar 2015 17:52:09 -0000

On Mon, Mar 2, 2015 at 8:53 AM, Phil Shafer <phil@juniper.net> wrote:
> Andy Bierman writes:
>>This would mean that each identity would need to be in its own YANG module
>>so it could be advertised by the server.  Not a workable solution.
>
> Worse than that, isn't it?  How would I know that a particular
> identity is allowed in one leaf but not allowed in another?  My
> server might support a new identity for a new knob, but not for
> an older one.
>

That's why I think a run-time RPC is needed.
We are making some progress just by realizing the
limitations of schema-based conformance mechanisms.


> Thanks,
>  Phil

Andy


From nobody Mon Mar  2 13:18:55 2015
Return-Path: <wwwrun@rfc-editor.org>
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 7BC441A899B for <netmod@ietfa.amsl.com>; Mon,  2 Mar 2015 13:18:54 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -101.912
X-Spam-Level: 
X-Spam-Status: No, score=-101.912 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01, USER_IN_WHITELIST=-100] 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 YyC97T2mq8rI for <netmod@ietfa.amsl.com>; Mon,  2 Mar 2015 13:18:53 -0800 (PST)
Received: from rfc-editor.org (rfc-editor.org [IPv6:2001:1900:3001:11::31]) by ietfa.amsl.com (Postfix) with ESMTP id 1963C1A89A2 for <netmod@ietf.org>; Mon,  2 Mar 2015 13:18:53 -0800 (PST)
Received: by rfc-editor.org (Postfix, from userid 30) id 54F41180204; Mon,  2 Mar 2015 13:18:08 -0800 (PST)
To: mbj@tail-f.com, bclaise@cisco.com, joelja@bogus.com, j.schoenwaelder@jacobs-university.de, tnadeau@lucidvision.com
X-PHP-Originating-Script: 6000:errata_mail_lib.php
From: RFC Errata System <rfc-editor@rfc-editor.org>
Message-Id: <20150302211808.54F41180204@rfc-editor.org>
Date: Mon,  2 Mar 2015 13:18:08 -0800 (PST)
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/K9CucbZ4qrj_-LU6Q-qb9ihHf7c>
Cc: rfc-editor@rfc-editor.org, netmod@ietf.org, ccrusius@cisco.com
Subject: [netmod] [Technical Errata Reported] RFC6020 (4285)
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: <http://www.ietf.org/mail-archive/web/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, 02 Mar 2015 21:18:54 -0000

The following errata report has been submitted for RFC6020,
"YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)".

--------------------------------------
You may review the report below and at:
http://www.rfc-editor.org/errata_search.php?rfc=6020&eid=4285

--------------------------------------
Type: Technical
Reported by: Cesar Crusius <ccrusius@cisco.com>

Section: 12

Original Text
-------------
revision-date-stmt = revision-date-keyword sep revision-date stmtend

Corrected Text
--------------
revision-date-stmt =
    revision-date-keyword sep revision-date optsep stmtend

Notes
-----
Allow spaces between the date string and the statement's end.

Instructions:
-------------
This erratum is currently posted as "Reported". If necessary, please
use "Reply All" to discuss whether it should be verified or
rejected. When a decision is reached, the verifying party (IESG)
can log in to change the status and edit the report, if necessary. 

--------------------------------------
RFC6020 (draft-ietf-netmod-yang-13)
--------------------------------------
Title               : YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)
Publication Date    : October 2010
Author(s)           : M. Bjorklund, Ed.
Category            : PROPOSED STANDARD
Source              : NETCONF Data Modeling Language
Area                : Operations and Management
Stream              : IETF
Verifying Party     : IESG


From nobody Tue Mar  3 00:05:36 2015
Return-Path: <mbj@tail-f.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 D0E921A1A2F for <netmod@ietfa.amsl.com>; Tue,  3 Mar 2015 00:05:34 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.911
X-Spam-Level: 
X-Spam-Status: No, score=-1.911 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] 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 TuA0ae8_c_py for <netmod@ietfa.amsl.com>; Tue,  3 Mar 2015 00:05:33 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [83.241.162.140]) by ietfa.amsl.com (Postfix) with ESMTP id E8A981A1A24 for <netmod@ietf.org>; Tue,  3 Mar 2015 00:05:32 -0800 (PST)
Received: from localhost (x15.tail-f.com [192.168.1.60]) by mail.tail-f.com (Postfix) with ESMTPSA id BF83E12801A6; Tue,  3 Mar 2015 09:05:31 +0100 (CET)
Date: Tue, 03 Mar 2015 09:05:31 +0100 (CET)
Message-Id: <20150303.090531.37030803913631573.mbj@tail-f.com>
To: rfc-editor@rfc-editor.org
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <20150302211808.54F41180204@rfc-editor.org>
References: <20150302211808.54F41180204@rfc-editor.org>
X-Mailer: Mew version 6.5 on Emacs 23.4 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/Wl84StSDoWGYiGYYhWLkBKI5ZTw>
Cc: netmod@ietf.org, joelja@bogus.com, ccrusius@cisco.com
Subject: Re: [netmod] [Technical Errata Reported] RFC6020 (4285)
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: <http://www.ietf.org/mail-archive/web/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: Tue, 03 Mar 2015 08:05:35 -0000

Hi,

The reported errata is correct.  But there is a bigger issue - maybe
half of all usages of "stmtend" are preceded by "optsep" while the
rest are not.  Since whitespace should always be allowed before
stmtend I suggest another fix:

OLD:

   stmtend             = ";" / "{" *unknown-statement "}"

NEW:

   stmtend             = optsep (";" / "{" *unknown-statement "}")


Combined with errata 4283 this would be:

   stmtend             = optsep (";" / "{" stmtsep "}")


Now, we already have rules like this:

   namespace-stmt      = namespace-keyword sep uri-str optsep stmtend

Together with the proposed new rule for "stmtend" this looks a bit
confusing (two consecutive "optsep"s), but it is technically correct,
and makes the errata smaller.

I also suggest that in 6020bis, we introduce this new rule for
"stmtend", but remove all redundant "optsep"s.


/martin



RFC Errata System <rfc-editor@rfc-editor.org> wrote:
> The following errata report has been submitted for RFC6020,
> "YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)".
> 
> --------------------------------------
> You may review the report below and at:
> http://www.rfc-editor.org/errata_search.php?rfc=6020&eid=4285
> 
> --------------------------------------
> Type: Technical
> Reported by: Cesar Crusius <ccrusius@cisco.com>
> 
> Section: 12
> 
> Original Text
> -------------
> revision-date-stmt = revision-date-keyword sep revision-date stmtend
> 
> Corrected Text
> --------------
> revision-date-stmt =
>     revision-date-keyword sep revision-date optsep stmtend
> 
> Notes
> -----
> Allow spaces between the date string and the statement's end.
> 
> Instructions:
> -------------
> This erratum is currently posted as "Reported". If necessary, please
> use "Reply All" to discuss whether it should be verified or
> rejected. When a decision is reached, the verifying party (IESG)
> can log in to change the status and edit the report, if necessary. 
> 
> --------------------------------------
> RFC6020 (draft-ietf-netmod-yang-13)
> --------------------------------------
> Title               : YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)
> Publication Date    : October 2010
> Author(s)           : M. Bjorklund, Ed.
> Category            : PROPOSED STANDARD
> Source              : NETCONF Data Modeling Language
> Area                : Operations and Management
> Stream              : IETF
> Verifying Party     : IESG
> 


From nobody Tue Mar  3 01:52:33 2015
Return-Path: <lhotka@nic.cz>
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 EF8221A1B0D for <netmod@ietfa.amsl.com>; Tue,  3 Mar 2015 01:52:31 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level: 
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9] 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 LadfqVYrDXPY for <netmod@ietfa.amsl.com>; Tue,  3 Mar 2015 01:52:30 -0800 (PST)
Received: from trail.lhotka.name (trail.lhotka.name [77.48.224.143]) by ietfa.amsl.com (Postfix) with ESMTP id 93C9D1A1B1D for <netmod@ietf.org>; Tue,  3 Mar 2015 01:52:29 -0800 (PST)
Received: from localhost (unknown [195.113.220.110]) by trail.lhotka.name (Postfix) with ESMTPSA id 221E41CC0114; Tue,  3 Mar 2015 10:52:30 +0100 (CET)
From: Ladislav Lhotka <lhotka@nic.cz>
To: Phil Shafer <phil@juniper.net>, Andy Bierman <andy@yumaworks.com>
In-Reply-To: <201503021653.t22GrBsw032303@idle.juniper.net>
References: <201503021653.t22GrBsw032303@idle.juniper.net>
User-Agent: Notmuch/0.19 (http://notmuchmail.org) Emacs/24.4.51.2 (x86_64-apple-darwin14.0.0)
Date: Tue, 03 Mar 2015 10:52:27 +0100
Message-ID: <m2h9u2flwk.fsf@birdie.labs.nic.cz>
MIME-Version: 1.0
Content-Type: text/plain
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/fc-KohZKoKyW4kYI9lGHxTMQpEc>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] conformance
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: <http://www.ietf.org/mail-archive/web/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: Tue, 03 Mar 2015 09:52:32 -0000

Phil Shafer <phil@juniper.net> writes:

> Andy Bierman writes:
>>This would mean that each identity would need to be in its own YANG module
>>so it could be advertised by the server.  Not a workable solution.
>
> Worse than that, isn't it?  How would I know that a particular
> identity is allowed in one leaf but not allowed in another?  My
> server might support a new identity for a new knob, but not for
> an older one.

But you can have the same problem for an enumeration or even for a type
like inet:ip-address, right? In fact, identities are more flexible in
this respect.

Lada

>
> Thanks,
>  Phil

-- 
Ladislav Lhotka, CZ.NIC Labs
PGP Key ID: E74E8C0C


From nobody Tue Mar  3 02:02:31 2015
Return-Path: <messenger@webex.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 DE3F21A1B4C for <netmod@ietfa.amsl.com>; Tue,  3 Mar 2015 02:02:26 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -8.91
X-Spam-Level: 
X-Spam-Status: No, score=-8.91 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, GB_I_INVITATION=-2, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] 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 9R-HLNTp5VO4 for <netmod@ietfa.amsl.com>; Tue,  3 Mar 2015 02:02:25 -0800 (PST)
Received: from sjmda13.webex.com (sjmda13.webex.com [64.68.124.151]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5DC0A1A1A0F for <netmod@ietf.org>; Tue,  3 Mar 2015 02:02:25 -0800 (PST)
Received: from jva2tc201.webex.com (sjc02-wxp00-lbace03-core-vl120-np10-3.webex.com [64.68.121.247]) by sjmda13.webex.com (Postfix) with ESMTP id 1487EC02FD for <netmod@ietf.org>; Tue,  3 Mar 2015 10:02:25 +0000 (GMT)
Received: from jva2tc201.webex.com (localhost [127.0.0.1]) by jva2tc201.webex.com (Postfix) with ESMTP id C8B8DA00D4 for <netmod@ietf.org>; Tue,  3 Mar 2015 10:02:24 +0000 (GMT)
Date: Tue, 3 Mar 2015 10:02:24 +0000 (GMT)
From: NETMOD Working Group <messenger@webex.com>
To: netmod@ietf.org
Message-ID: <474196155.4267.1425376944820.JavaMail.nobody@jva2tc201.webex.com>
MIME-Version: 1.0
Content-Type: multipart/Mixed;  boundary="----=_Part_4265_1540569513.1425376944820"
X-Priority: 3
Importance: normal
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/85gU3nXtM7fnCaqazWZ5hHauz3Q>
Subject: [netmod] WebEx meeting invitation: NETMOD YANG 1.1
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: netmod-chairs@tools.ietf.org
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: <http://www.ietf.org/mail-archive/web/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: Tue, 03 Mar 2015 10:02:27 -0000

------=_Part_4265_1540569513.1425376944820
Content-Type: multipart/Alternative; 
	boundary="----=_Part_4266_141473112.1425376944820"

------=_Part_4266_141473112.1425376944820
Content-Type: text/plain;charset=UTF-8
Content-Transfer-Encoding: base64

CkhlbGxvLAoKTkVUTU9EIFdvcmtpbmcgR3JvdXAgaW52aXRlcyB5b3UgdG8gam9pbiB0aGlzIFdl
YkV4IG1lZXRpbmcuCgoKTkVUTU9EIFlBTkcgMS4xCldlZG5lc2RheSwgTWFyY2ggNCwgMjAxNQo0
OjAwIHBtICB8ICBFdXJvcGUgVGltZSAoQmVybGluLCBHTVQrMDE6MDApICB8ICAyIGhycwoKCkpP
SU4gV0VCRVggTUVFVElORwpodHRwczovL2lldGYud2ViZXguY29tL2lldGYvai5waHA/TVRJRD1t
MWQzMzdiZGZkYTNiZmUyMDMxYTQ3YWI0NzVkYmUyNTkKTWVldGluZyBudW1iZXI6IDY0OCA3MDYg
NTAyCk1lZXRpbmcgcGFzc3dvcmQ6IGllYmk3YWFDCgoNCkpPSU4gQlkgUEhPTkUNCjEtODc3LTY2
OC00NDkzIENhbGwtaW4gdG9sbCBmcmVlIG51bWJlciAoVVMvQ2FuYWRhKSAKMS02NTAtNDc5LTMy
MDggQ2FsbC1pbiB0b2xsIG51bWJlciAoVVMvQ2FuYWRhKQpBY2Nlc3MgY29kZTogNjQ4IDcwNiA1
MDIKClRvbGwtZnJlZSBkaWFsaW5nIHJlc3RyaWN0aW9uczogCmh0dHA6Ly93d3cud2ViZXguY29t
L3BkZi90b2xsZnJlZV9yZXN0cmljdGlvbnMucGRmDQoNCgpBZGQgdGhpcyBtZWV0aW5nIHRvIHlv
dXIgY2FsZW5kYXI6Cmh0dHBzOi8vaWV0Zi53ZWJleC5jb20vaWV0Zi9qLnBocD9NVElEPW1kYWIw
OThhYzBlZWU4Yjk2MTdiZjNkNzZlZWE4MGM4Mw0KDQoKQ2FuJ3Qgam9pbiB0aGUgbWVldGluZz8g
Q29udGFjdCBzdXBwb3J0IGhlcmU6Cmh0dHBzOi8vaWV0Zi53ZWJleC5jb20vaWV0Zi9tYwoKCklN
UE9SVEFOVCBOT1RJQ0U6IFBsZWFzZSBub3RlIHRoYXQgdGhpcyBXZWJFeCBzZXJ2aWNlIGFsbG93
cyBhdWRpbyBhbmQgb3RoZXIgaW5mb3JtYXRpb24gc2VudCBkdXJpbmcgdGhlIHNlc3Npb24gdG8g
YmUgcmVjb3JkZWQsIHdoaWNoIG1heSBiZSBkaXNjb3ZlcmFibGUgaW4gYSBsZWdhbCBtYXR0ZXIu
IEJ5IGpvaW5pbmcgdGhpcyBzZXNzaW9uLCB5b3UgYXV0b21hdGljYWxseSBjb25zZW50IHRvIHN1
Y2ggcmVjb3JkaW5ncy4gSWYgeW91IGRvIG5vdCBjb25zZW50IHRvIGJlaW5nIHJlY29yZGVkLCBk
aXNjdXNzIHlvdXIgY29uY2VybnMgd2l0aCB0aGUgaG9zdCBvciBkbyBub3Qgam9pbiB0aGUgc2Vz
c2lvbi4K
------=_Part_4266_141473112.1425376944820
Content-Type: text/html;charset=UTF-8
Content-Transfer-Encoding: base64

PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJz
ZXQ9dXRmLTgiPjxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lk
dGgsIGluaXRpYWwtc2NhbGU9MSIgLz48Ym9keT48c3R5bGUgdHlwZT0idGV4dC9jc3MiPgpkaXYs
cCx0ZCxzcGFuIHt3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7d29yZC1icmVhazogbm9ybWFsO30KCnRh
YmxlIHtib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlOyBib3JkZXI6IDA7Ym9yZGVyLXNwYWNpbmc6
IDA7Ym9yZGVyLWNvbG9yOiB3aGl0ZTsgd2lkdGg6MTAwJSFpbXBvcnRhbnQ7d2lkdGg6NTI1cHg7
IG1heC13aWR0aDo1MjVweCFpbXBvcnRhbnQ7IG1pbi13aWR0aDogMjc5cHghaW1wb3J0YW50O30K
dHIge2xpbmUtaGVpZ2h0OiAyMHB4O30KCnRkLGEge2ZvbnQtc2l6ZTogMTVweDtmb250LWZhbWls
eTogQXJpYWw7Y29sb3I6ICM2NjY2NjY7cGFkZGluZzowO30KPC9zdHlsZT4KCjx0YWJsZSBzdHls
ZT0icGFkZGluZzowOyBtYXJnaW46MCIgd2lkdGg9IjEwMCUiIGFsaWduPSJsZWZ0Ij4KICAgPHRy
PgogICAgICA8dGQgc3R5bGU9InBhZGRpbmctdG9wOjVweDsiPgogICAgICAgIDx0YWJsZSBzdHls
ZT0id2lkdGg6IDUyNXB4O21hcmdpbi1sZWZ0OjVweCIgYWxpZ249ImxlZnQiPgoJCQk8dHI+CgkJ
CQk8dGQgdmFsaWduPSJ0b3AiPgoKPHRhYmxlPgogICAgICAgPHRyPgogICAgICAgICAgPHRkIHN0
eWxlPSJmb250LXNpemU6IDE1cHg7Zm9udC1mYW1pbHk6IEFyaWFsO2NvbG9yOiM0RDRENEQiPgog
ICAgICAgICAgICAgSGVsbG8sCiAgICAgICAgICA8L3RkPgogICAgICAgPC90cj4KICAgICAgIDx0
cj4KICAgICAgICAgICA8dGQgc3R5bGU9ImZvbnQtc2l6ZTogMTVweDtmb250LWZhbWlseTogQXJp
YWw7Y29sb3I6IzRENEQ0RDtwYWRkaW5nLXRvcDoxMHB4OyI+CiAgICAgICAgICAgICAgICBORVRN
T0QgV29ya2luZyBHcm91cCBpbnZpdGVzIHlvdSB0byBqb2luIHRoaXMgV2ViRXggbWVldGluZy4K
ICAgICAgICAgICAgICAgIAkgICAgICAgICAgIDwvdGQ+CiAgICAgIDwvdHI+CjwvdGFibGU+CgoK
Cgo8dGFibGU+PHRyIHN0eWxlPSJsaW5lLWhlaWdodDogMjBweDsiPjx0ZCBzdHlsZT0iaGVpZ2h0
OjIwcHgiPiZuYnNwOzwvdGQ+PC90cj48L3RhYmxlPgoJCQkJCQk8dGFibGUgIHdpZHRoPSIxMDAl
Ij4KCQkJCQkJCTx0cj4KCQkJCQkJCQk8dGQgc3R5bGU9ImZvbnQtc2l6ZToxNnB4OyBjb2xvcjoj
NEQ0RDREIj4KCQkJCQkJCQkJPGI+TkVUTU9EIFlBTkcgMS4xPC9iPgoJCQkJCQkJCTwvdGQ+CgkJ
CQkJCQk8L3RyPgoJCQkJCQkJPHRyIHN0eWxlPSJtYXJnaW46MHB4Ij4KCQkJCQkJCQk8dGQ+V2Vk
bmVzZGF5LCBNYXJjaCA0LCAyMDE1CgkJCQkJCQkJPC90ZD4KCQkJCQkJCTwvdHI+CgkJCQkJCQk8
dHIgc3R5bGU9Im1hcmdpbjowcHgiPgoJCQkJCQkJCTx0ZD40OjAwIHBtJm5ic3A7Jm5ic3A7fCZu
YnNwOyZuYnNwO0V1cm9wZSBUaW1lIChCZXJsaW4sIEdNVCswMTowMCkmbmJzcDsmbmJzcDt8Jm5i
c3A7Jm5ic3A7MiBocnMKCQkJCQkJCQk8L3RkPgoJCQkJCQkJPC90cj4KCQkJCQkJPC90YWJsZT4K
Cjx0YWJsZT48dHIgc3R5bGU9ImxpbmUtaGVpZ2h0OiAyMHB4OyI+PHRkIHN0eWxlPSJoZWlnaHQ6
MjBweCI+Jm5ic3A7PC90ZD48L3RyPjwvdGFibGU+CgkJCQkJCTx0YWJsZSBzdHlsZT0id2lkdGg6
YXV0bzsgd2lkdGg6YXV0byFpbXBvcnRhbnQiPgoJCQkJCQkJPHRyPgoJCQkJCQkJCTx0ZCBzdHls
ZT0iY29sb3I6IzAwQUZGOTtmb250LXNpemU6MTZweCI+CgkJCQkJCQkJCTxhIGhyZWY9Imh0dHBz
Oi8vaWV0Zi53ZWJleC5jb20vaWV0Zi9qLnBocD9NVElEPW0xZDMzN2JkZmRhM2JmZTIwMzFhNDdh
YjQ3NWRiZTI1OSIKCQkJCQkJCQkJCXN0eWxlPSJ0ZXh0LWRlY29yYXRpb246bm9uZTtmb250LXNp
emU6MTZweDtjb2xvcjojMDBBRkY5Ij4KCQkJCQkJCQkJCTxiPkpvaW4gV2ViRXggbWVldGluZzwv
Yj4KCQkJCQkJCQkJPC9hPgoJCQkJCQkJCTwvdGQ+CgkJCQkJCQk8L3RyPgoJCQkJCQk8L3RhYmxl
PgoJCQkJCQk8dGFibGUgc3R5bGU9IndpZHRoOmF1dG87IHdpZHRoOmF1dG8haW1wb3J0YW50Ij4K
CQkJCQkJCTx0ciBzdHlsZT0ibWFyZ2luOjBweCI+CgkJCQkJCQkJPHRkIHN0eWxlPSJwYWRkaW5n
LXJpZ2h0OiA1cHg7Ij4KCQkJCQkJCQkJTWVldGluZyBudW1iZXI6CgkJCQkJCQkJPC90ZD4KCQkJ
CQkJCQk8dGQ+NjQ4IDcwNiA1MDIKCQkJCQkJCQk8L3RkPgoJCQkJCQkJPC90cj4KCQkJCQkJCTx0
cj4KCQkJCQkJCQk8dGQgc3R5bGU9InBhZGRpbmctcmlnaHQ6IDVweDsiPk1lZXRpbmcgcGFzc3dv
cmQ6PC90ZD4KCQkJCQkJCQk8dGQ+aWViaTdhYUM8L3RkPgoJCQkJCQkJPC90cj4KCQkJCQkJPC90
YWJsZT4KCgoKCQoKCTx0YWJsZT48dHIgc3R5bGU9ImxpbmUtaGVpZ2h0OjIwcHgiPjx0ZCBzdHls
ZT0iaGVpZ2h0OjIwcHgiPiZuYnNwOzwvdGQ+PC90cj48L3RhYmxlPjx0YWJsZT48dHI+PHRkIHN0
eWxlPSJmb250LXNpemU6MTZweCI+PGI+Sm9pbiBieSBwaG9uZTwvYj48L3RkPjwvdHI+PHRyIHN0
eWxlPSJtYXJnaW46MHB4Ij48dGQ+PGI+MS04NzctNjY4LTQ0OTM8L2I+Jm5ic3A7Q2FsbC1pbiB0
b2xsIGZyZWUgbnVtYmVyIChVUy9DYW5hZGEpPC90ZD48L3RyPjx0ciBzdHlsZT0ibWFyZ2luOjBw
eCI+PHRkPjxiPjEtNjUwLTQ3OS0zMjA4PC9iPiZuYnNwO0NhbGwtaW4gdG9sbCBudW1iZXIgKFVT
L0NhbmFkYSk8L3RkPjwvdHI+PHRyIHN0eWxlPSJtYXJnaW46MHB4Ij48dGQ+QWNjZXNzIGNvZGU6
Jm5ic3A7NjQ4IDcwNiA1MDI8L3RkPjwvdHI+PHRyIHN0eWxlPSJtYXJnaW46MHB4Ij48dGQ+PGEg
aHJlZj0iaHR0cDovL3d3dy53ZWJleC5jb20vcGRmL3RvbGxmcmVlX3Jlc3RyaWN0aW9ucy5wZGYi
IHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246bm9uZTtmb250LXNpemU6MTNweDtjb2xvcjojMDBBRkY5
OyI+VG9sbC1mcmVlIGNhbGxpbmcgcmVzdHJpY3Rpb25zPC9hPjwvdGQ+PC90cj48L3RhYmxlPgoK
CQkJCQk8dGFibGU+PHRyIHN0eWxlPSJsaW5lLWhlaWdodDoyMHB4Ij48dGQgc3R5bGU9ImhlaWdo
dDoyMHB4Ij4mbmJzcDs8L3RkPjwvdHI+PC90YWJsZT48dGFibGU+PHRyPjx0ZCBzdHlsZT0iZm9u
dC1zaXplOjEzcHgiPjxhIGhyZWY9Imh0dHBzOi8vaWV0Zi53ZWJleC5jb20vaWV0Zi9qLnBocD9N
VElEPW1kYWIwOThhYzBlZWU4Yjk2MTdiZjNkNzZlZWE4MGM4MyIgc3R5bGU9InRleHQtZGVjb3Jh
dGlvbjpub25lO2NvbG9yOiMwMEFGRjk7IGZvbnQtc2l6ZToxM3B4Ij5BZGQgdGhpcyBtZWV0aW5n
PC9hPiB0byB5b3VyIGNhbGVuZGFyLjwvdGQ+PC90cj48L3RhYmxlPgo8dGFibGU+PHRyIHN0eWxl
PSJsaW5lLWhlaWdodDogMjBweDsiPjx0ZCBzdHlsZT0iaGVpZ2h0OjIwcHgiPiZuYnNwOzwvdGQ+
PC90cj48L3RhYmxlPgo8dGFibGU+CiAgICA8dHI+CiAgICAgICA8dGQgc3R5bGU9ImZvbnQtc2l6
ZTogMTNweDtmb250LWZhbWlseTogQXJpYWw7Y29sb3I6ICM2NjY2NjY7Ij4KICAgICAgICBDYW4n
dCBqb2luIHRoZSBtZWV0aW5nPwogICAgIAk8YSBocmVmPSJodHRwczovL2lldGYud2ViZXguY29t
L2lldGYvbWMiIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246bm9uZTtmb250LXNpemU6MTNweDtmb250
LWZhbWlseTpBcmlhbDtjb2xvcjojMDBBRkY5O2ZvbnQtY29sb3I6IzAwQUZGOTsiPgogICAgICAg
IAlDb250YWN0IHN1cHBvcnQuPC9hPgoJCTwvdGQ+CiAgICA8L3RyPgo8L3RhYmxlPgo8dGFibGU+
PHRyIHN0eWxlPSJsaW5lLWhlaWdodDogMTBweDsiPjx0ZCBzdHlsZT0iaGVpZ2h0OjEwcHgiPiZu
YnNwOzwvdGQ+PC90cj48L3RhYmxlPgoJCQkJCQk8dGFibGU+CgkJCQkJCQk8dHI+CgkJCQkJCQkJ
PHRkIHN0eWxlPSJmb250LXNpemU6MTJweDtjb2xvcjogI0EwQTBBMDsiPgoJCQkJCQkJCQlJTVBP
UlRBTlQgTk9USUNFOiBQbGVhc2Ugbm90ZSB0aGF0IHRoaXMgV2ViRXggc2VydmljZSBhbGxvd3Mg
YXVkaW8gYW5kIG90aGVyIGluZm9ybWF0aW9uIHNlbnQgZHVyaW5nIHRoZSBzZXNzaW9uIHRvIGJl
IHJlY29yZGVkLCB3aGljaCBtYXkgYmUgZGlzY292ZXJhYmxlIGluIGEgbGVnYWwgbWF0dGVyLiBC
eSBqb2luaW5nIHRoaXMgc2Vzc2lvbiwgeW91IGF1dG9tYXRpY2FsbHkgY29uc2VudCB0byBzdWNo
IHJlY29yZGluZ3MuIElmIHlvdSBkbyBub3QgY29uc2VudCB0byBiZWluZyByZWNvcmRlZCwgZGlz
Y3VzcyB5b3VyIGNvbmNlcm5zIHdpdGggdGhlIGhvc3Qgb3IgZG8gbm90IGpvaW4gdGhlIHNlc3Np
b24uPC90ZD4KCQkJCQkJCTwvdHI+CgkJCQkJCTwvdGFibGU+CgkJCQk8L3RkPgoJCQk8L3RyPgoJ
CTwvdGFibGU+Cgk8L3RkPgogICA8L3RyPgo8L3RhYmxlPgoKPC9ib2R5Pg==
------=_Part_4266_141473112.1425376944820--

------=_Part_4265_1540569513.1425376944820
Content-Type: application/octet-stream;
	name="WebEx_Meeting.ics"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename="WebEx_Meeting.ics"

QkVHSU46VkNBTEVOREFSClBST0RJRDotLy9NaWNyb3NvZnQgQ29ycG9yYXRpb24vL091dGxvb2sg
MTAuMCBNSU1FRElSLy9FTgpWRVJTSU9OOjIuMApNRVRIT0Q6UkVRVUVTVApCRUdJTjpWVElNRVpP
TkUKVFpJRDpFdXJvcGUgVGltZQpCRUdJTjpTVEFOREFSRApEVFNUQVJUOjIwMTMxMDAxVDAzMDAw
MApSUlVMRTpGUkVRPVlFQVJMWTtJTlRFUlZBTD0xO0JZREFZPS0xU1U7QllNT05USD0xMApUWk9G
RlNFVEZST006KzAyMDAKVFpPRkZTRVRUTzorMDEwMApUWk5BTUU6U3RhbmRhcmQgVGltZQpFTkQ6
U1RBTkRBUkQKQkVHSU46REFZTElHSFQKRFRTVEFSVDoyMDEzMDMwMVQwMjAwMDAKUlJVTEU6RlJF
UT1ZRUFSTFk7SU5URVJWQUw9MTtCWURBWT0tMVNVO0JZTU9OVEg9MwpUWk9GRlNFVEZST006KzAx
MDAKVFpPRkZTRVRUTzorMDIwMApUWk5BTUU6RGF5bGlnaHQgU2F2aW5ncyBUaW1lCkVORDpEQVlM
SUdIVApFTkQ6VlRJTUVaT05FCkJFR0lOOlZFVkVOVApBVFRFTkRFRTtDTj0iIjtST0xFPVJFUS1Q
QVJUSUNJUEFOVDtSU1ZQPVRSVUU6TUFJTFRPOm5ldG1vZEBpZXRmLm9yZwpPUkdBTklaRVI7Q049
Ik5FVE1PRCBXb3JraW5nIEdyb3VwIjpNQUlMVE86bmV0bW9kLWNoYWlyc0B0b29scy5pZXRmLm9y
ZwpEVFNUQVJUO1RaSUQ9IkV1cm9wZSBUaW1lIjoyMDE1MDMwNFQxNjAwMDAKRFRFTkQ7VFpJRD0i
RXVyb3BlIFRpbWUiOjIwMTUwMzA0VDE4MDAwMApMT0NBVElPTjpodHRwczovL2lldGYud2ViZXgu
Y29tL2lldGYKVFJBTlNQOk9QQVFVRQpTRVFVRU5DRToxNDI1Mzc2OTQ0ClVJRDo5YmQ2MWM3YS0x
YzU0LTQ5ZWYtOGUxNi0xMDMwYzE5ZGY5ZjkKRFRTVEFNUDoyMDE1MDMwNFQxNTAwMDBaCkRFU0NS
SVBUSU9OOlxuXG5cbkpPSU4gV0VCRVggTUVFVElOR1xuaHR0cHM6Ly9pZXRmLndlYmV4LmNvbS9p
ZXRmL2oucGhwP01USUQ9bTBhZGEwZjU1MTBjYWRkNzEzYTc4YzRlNmJkMjgzMDI3XG5NZWV0aW5n
IG51bWJlcjogNjQ4IDcwNiA1MDJcbk1lZXRpbmcgcGFzc3dvcmQ6IGllYmk3YWFDXG5cblxuSk9J
TiBCWSBQSE9ORVxuMS04NzctNjY4LTQ0OTMgQ2FsbC1pbiB0b2xsIGZyZWUgbnVtYmVyIChVUy9D
YW5hZGEpIFxuMS02NTAtNDc5LTMyMDggQ2FsbC1pbiB0b2xsIG51bWJlciAoVVMvQ2FuYWRhKVxu
QWNjZXNzIGNvZGU6IDY0OCA3MDYgNTAyXG5cblRvbGwtZnJlZSBkaWFsaW5nIHJlc3RyaWN0aW9u
czogXG5odHRwOi8vd3d3LndlYmV4LmNvbS9wZGYvdG9sbGZyZWVfcmVzdHJpY3Rpb25zLnBkZlxu
XG5cblxuQ2FuJ3Qgam9pbiB0aGUgbWVldGluZz8gQ29udGFjdCBzdXBwb3J0IGhlcmU6XG5odHRw
czovL2lldGYud2ViZXguY29tL2lldGYvbWNcblxuXG5JTVBPUlRBTlQgTk9USUNFOiBQbGVhc2Ug
bm90ZSB0aGF0IHRoaXMgV2ViRXggc2VydmljZSBhbGxvd3MgYXVkaW8gYW5kIG90aGVyIGluZm9y
bWF0aW9uIHNlbnQgZHVyaW5nIHRoZSBzZXNzaW9uIHRvIGJlIHJlY29yZGVkLCB3aGljaCBtYXkg
YmUgZGlzY292ZXJhYmxlIGluIGEgbGVnYWwgbWF0dGVyLiBCeSBqb2luaW5nIHRoaXMgc2Vzc2lv
biwgeW91IGF1dG9tYXRpY2FsbHkgY29uc2VudCB0byBzdWNoIHJlY29yZGluZ3MuIElmIHlvdSBk
byBub3QgY29uc2VudCB0byBiZWluZyByZWNvcmRlZCwgZGlzY3VzcyB5b3VyIGNvbmNlcm5zIHdp
dGggdGhlIGhvc3Qgb3IgZG8gbm90IGpvaW4gdGhlIHNlc3Npb24uXG4KWC1BTFQtREVTQztGTVRU
WVBFPXRleHQvaHRtbDoJPEZPTlQgU0laRT0iMSIgRkFDRT0iQVJJQUwiPiZuYnNwOzxCUj4gPEZP
TlQgU0laRT0iNCIgRkFDRT0iQVJJQUwiPgkJPGEJCQkJCWhyZWY9Imh0dHBzOi8vaWV0Zi53ZWJl
eC5jb20vaWV0Zi9qLnBocD9NVElEPW0wYWRhMGY1NTEwY2FkZDcxM2E3OGM0ZTZiZDI4MzAyNyI+
PEZPTlQgU0laRT0iMyIgQ09MT1I9IiMwMEFGRjkiIEZBQ0U9IkFyaWFsIj5Kb2luIFdlYkV4IG1l
ZXRpbmc8L0ZPTlQ+PC9hPgkJCTx0YWJsZT4JCQkJPHRyPgkJCQkJPHRkPgkJCQkJCTxGT05UIFNJ
WkU9IjIiIENPTE9SPSIjNjY2NjY2IiBGQUNFPSJhcmlhbCI+TWVldGluZyBudW1iZXI6PC9GT05U
PgkJCQkJPC90ZD4JCQkJCTx0ZD4JCQkJCQk8Rk9OVCBTSVpFPSIyIiBDT0xPUj0iIzY2NjY2NiIg
RkFDRT0iYXJpYWwiPjY0OCA3MDYgNTAyPC9GT05UPgkJCQkJPC90ZD4JCQkJPC90cj4JCQk8L3Rh
YmxlPgkJCTx0YWJsZT48dHI+PHRkPjxGT05UIFNJWkU9IjIiIENPTE9SPSIjNjY2NjY2IiBGQUNF
PSJhcmlhbCI+TWVldGluZyBwYXNzd29yZDo8L0ZPTlQ+PC90ZD48dGQ+PEZPTlQgU0laRT0iMiIg
IENPTE9SPSIjNjY2NjY2IiBGQUNFPSJhcmlhbCI+aWViaTdhYUM8L0ZPTlQ+PC90ZD48L3RyPjwv
dGFibGU+CQk8L0ZPTlQ+PEZPTlQgU0laRT0iMSIgRkFDRT0iQVJJQUwiPiZuYnNwOzxCUj4mbmJz
cDs8QlI+PC9GT05UPjxGT05UIFNJWkU9IjQiIEZBQ0U9IkFSSUFMIj48Rk9OVCBTSVpFPSIzIiBD
T0xPUj0iIzY2NjY2NiIgRkFDRT0iYXJpYWwiPkpvaW4gYnkgcGhvbmU8L0ZPTlQ+Jm5ic3A7IDxC
Uj48Rk9OVCBTSVpFPSIyIiBDT0xPUj0iIzY2NjY2NiIgRkFDRT0iYXJpYWwiPjxzdHJvbmc+MS04
NzctNjY4LTQ0OTM8L3N0cm9uZz4mbmJzcDtDYWxsLWluIHRvbGwgZnJlZSBudW1iZXIgKFVTL0Nh
bmFkYSk8L0ZPTlQ+Jm5ic3A7IDxCUj48Rk9OVCBTSVpFPSIyIiBDT0xPUj0iIzY2NjY2NiIgRkFD
RT0iYXJpYWwiPjxzdHJvbmc+MS02NTAtNDc5LTMyMDg8L3N0cm9uZz4mbmJzcDtDYWxsLWluIHRv
bGwgbnVtYmVyIChVUy9DYW5hZGEpPC9GT05UPiZuYnNwOyA8QlI+PEZPTlQgU0laRT0iMiIgQ09M
T1I9IiM2NjY2NjYiIEZBQ0U9ImFyaWFsIj5BY2Nlc3MgY29kZTogNjQ4IDcwNiA1MDI8L0ZPTlQ+
Jm5ic3A7IDxCUj48YSBocmVmPSJodHRwOi8vd3d3LndlYmV4LmNvbS9wZGYvdG9sbGZyZWVfcmVz
dHJpY3Rpb25zLnBkZiI+PEZPTlQgU0laRT0iMSIgQ09MT1I9IiMwMEFGRjkiIEZBQ0U9ImFyaWFs
Ij5Ub2xsLWZyZWUgY2FsbGluZyByZXN0cmljdGlvbnM8L0ZPTlQ+PC9hPiAmbmJzcDsgPEJSPjwv
Rk9OVD48QlI+PEJSPgkmbmJzcDs8QlI+CTxGT05UIFNJWkU9IjEiIENPTE9SPSIjNjY2NjY2IiBG
QUNFPSJhcmlhbCI+CQkJCUNhbid0IGpvaW4gdGhlIG1lZXRpbmc/PC9GT05UPgk8YSBocmVmPSJo
dHRwczovL2lldGYud2ViZXguY29tL2lldGYvbWMiPgk8Rk9OVCBTSVpFPSIxIiBDT0xPUj0iIzAw
QUZGOSIgRkFDRT0iQXJpYWwiPkNvbnRhY3Qgc3VwcG9ydC48L0ZPTlQ+PC9hPgkmbmJzcDs8QlI+
Jm5ic3A7PEJSPjxGT05UIENPTE9SPSIjQTBBMEEwIiBzaXplPSIxIiBGQUNFPSJhcmlhbCI+SU1Q
T1JUQU5UIE5PVElDRTogUGxlYXNlIG5vdGUgdGhhdCB0aGlzIFdlYkV4IHNlcnZpY2UgYWxsb3dz
IGF1ZGlvIGFuZCBvdGhlciBpbmZvcm1hdGlvbiBzZW50IGR1cmluZyB0aGUgc2Vzc2lvbiB0byBi
ZSByZWNvcmRlZCwgd2hpY2ggbWF5IGJlIGRpc2NvdmVyYWJsZSBpbiBhIGxlZ2FsIG1hdHRlci4g
Qnkgam9pbmluZyB0aGlzIHNlc3Npb24sIHlvdSBhdXRvbWF0aWNhbGx5IGNvbnNlbnQgdG8gc3Vj
aCByZWNvcmRpbmdzLiBJZiB5b3UgZG8gbm90IGNvbnNlbnQgdG8gYmVpbmcgcmVjb3JkZWQsIGRp
c2N1c3MgeW91ciBjb25jZXJucyB3aXRoIHRoZSBob3N0IG9yIGRvIG5vdCBqb2luIHRoZSBzZXNz
aW9uLjwvRk9OVD48L0ZPTlQ+ClNVTU1BUlk6TkVUTU9EIFlBTkcgMS4xClBSSU9SSVRZOjUKQ0xB
U1M6UFVCTElDCkJFR0lOOlZBTEFSTQpUUklHR0VSOi1QVDVNCkFDVElPTjpESVNQTEFZCkRFU0NS
SVBUSU9OOlJlbWluZGVyCkVORDpWQUxBUk0KRU5EOlZFVkVOVApFTkQ6VkNBTEVOREFSCg==
------=_Part_4265_1540569513.1425376944820--


From nobody Tue Mar  3 02:08:32 2015
Return-Path: <j.schoenwaelder@jacobs-university.de>
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 1BAFB1A1B4E for <netmod@ietfa.amsl.com>; Tue,  3 Mar 2015 02:08:31 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.859
X-Spam-Level: 
X-Spam-Status: No, score=-5.859 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, GB_I_INVITATION=-2, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01, WEIRD_PORT=0.001] 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 KisFEVFgg4bC for <netmod@ietfa.amsl.com>; Tue,  3 Mar 2015 02:08:29 -0800 (PST)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9DBEB1A1B34 for <netmod@ietf.org>; Tue,  3 Mar 2015 02:08:28 -0800 (PST)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id F01022127 for <netmod@ietf.org>; Tue,  3 Mar 2015 11:08:26 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.220]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id Fr9aeAs6RHad for <netmod@ietf.org>; Tue,  3 Mar 2015 11:08:19 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS for <netmod@ietf.org>; Tue,  3 Mar 2015 11:08:26 +0100 (CET)
Received: from localhost (demetrius1.jacobs-university.de [212.201.44.46]) by hermes.jacobs-university.de (Postfix) with ESMTP id 1BA1820036 for <netmod@ietf.org>; Tue,  3 Mar 2015 11:08:26 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius1.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id 6n8aQ3LzEJCN; Tue,  3 Mar 2015 11:08:25 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id 6B13420031; Tue,  3 Mar 2015 11:08:24 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id 728AC32595E0; Tue,  3 Mar 2015 11:08:24 +0100 (CET)
Date: Tue, 3 Mar 2015 11:08:24 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: netmod@ietf.org
Message-ID: <20150303100824.GA62283@elstar.local>
Mail-Followup-To: netmod@ietf.org
References: <474196155.4267.1425376944820.JavaMail.nobody@jva2tc201.webex.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <474196155.4267.1425376944820.JavaMail.nobody@jva2tc201.webex.com>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/VpPkHcEiTo3nxW2fYoq7vF-EIe0>
Subject: Re: [netmod] WebEx meeting invitation: NETMOD YANG 1.1
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
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: <http://www.ietf.org/mail-archive/web/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: Tue, 03 Mar 2015 10:08:31 -0000

Hi,

tomorrow's meeting will continue our discussion of YANG 1.1 conformance.
Please be familiar with these IDs and the minutes of last meeting.

https://tools.ietf.org/html/draft-bjorklund-yang-conformance-problem-01
https://tools.ietf.org/html/draft-bierman-netmod-yang-conformance-04

We will use this etherpad page:

http://etherpad.tools.ietf.org:9000/p/notes-ietf-netmod-virtual-interim-2015-03-04?useMonospaceFont=true

/js

On Tue, Mar 03, 2015 at 10:02:24AM +0000, NETMOD Working Group wrote:
> 
> Hello,
> 
> NETMOD Working Group invites you to join this WebEx meeting.
> 
> 
> NETMOD YANG 1.1
> Wednesday, March 4, 2015
> 4:00 pm  |  Europe Time (Berlin, GMT+01:00)  |  2 hrs
> 
> 
> JOIN WEBEX MEETING
> https://ietf.webex.com/ietf/j.php?MTID=m1d337bdfda3bfe2031a47ab475dbe259
> Meeting number: 648 706 502
> Meeting password: iebi7aaC
> 
> 
> JOIN BY PHONE
> 1-877-668-4493 Call-in toll free number (US/Canada) 
> 1-650-479-3208 Call-in toll number (US/Canada)
> Access code: 648 706 502
> 
> Toll-free dialing restrictions: 
> http://www.webex.com/pdf/tollfree_restrictions.pdf
> 
> 
> Add this meeting to your calendar:
> https://ietf.webex.com/ietf/j.php?MTID=mdab098ac0eee8b9617bf3d76eea80c83
> 
> 
> Can't join the meeting? Contact support here:
> https://ietf.webex.com/ietf/mc
> 
> 
> IMPORTANT NOTICE: Please note that this WebEx service allows audio and other information sent during the session to be recorded, which may be discoverable in a legal matter. By joining this session, you automatically consent to such recordings. If you do not consent to being recorded, discuss your concerns with the host or do not join the session.


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


-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Tue Mar  3 02:09:37 2015
Return-Path: <j.schoenwaelder@jacobs-university.de>
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 94BA91A1B34 for <netmod@ietfa.amsl.com>; Tue,  3 Mar 2015 02:09:36 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.86
X-Spam-Level: 
X-Spam-Status: No, score=-3.86 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] 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 NU43rgp6Wdo3 for <netmod@ietfa.amsl.com>; Tue,  3 Mar 2015 02:09:35 -0800 (PST)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id F3F901A1B51 for <netmod@ietf.org>; Tue,  3 Mar 2015 02:09:34 -0800 (PST)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id C8FA51E9E for <netmod@ietf.org>; Tue,  3 Mar 2015 11:09:33 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.220]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id lFQDgBubVX_m for <netmod@ietf.org>; Tue,  3 Mar 2015 11:09:26 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS for <netmod@ietf.org>; Tue,  3 Mar 2015 11:09:33 +0100 (CET)
Received: from localhost (demetrius1.jacobs-university.de [212.201.44.46]) by hermes.jacobs-university.de (Postfix) with ESMTP id CDBA820036 for <netmod@ietf.org>; Tue,  3 Mar 2015 11:09:32 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius1.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id zOq0Bl8XVSKC; Tue,  3 Mar 2015 11:09:31 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id 5443520031; Tue,  3 Mar 2015 11:09:31 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id 5FB20325961B; Tue,  3 Mar 2015 11:09:31 +0100 (CET)
Date: Tue, 3 Mar 2015 11:09:31 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: netmod@ietf.org
Message-ID: <20150303100931.GA62331@elstar.local>
Mail-Followup-To: netmod@ietf.org
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/pTZkWgQxgV-9JNZWj4fobf_Jx7U>
Subject: [netmod] conformance discussion status
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
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: <http://www.ietf.org/mail-archive/web/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: Tue, 03 Mar 2015 10:09:36 -0000

Conformance high-level summary after the 2015-02-18 call:

It seems that typedef and grouping drift and the most pressing
problems to be solved.

a) It appears that neither import-by-revision nor
   import-by-min-revision can be made to work to solve the typedef and
   grouping drift problems.

b) One option is to simply disallow typedef drift and grouping drift,
   i.e., any such change requires to define a new typedef or grouping.

c) One could relax option b) by allowing typedef and grouping drift
   (e.g., for vendors that have a versioning / release model that
   handles ambiguity issues) in the base specification but requiring
   that IETF modules are not allowed to have typedef and grouping
   drift.

d) Another option is to have explicit conformance statements that are
   maintained separate from the data definitions and these conformance
   statements are kept stable (drift free) while other definitions may
   drift.

Another related drift issue is multiple augments of something that
exists in multiple versions.

Some other things observed:

1) The definition of 'deprecated' and 'obsolete' may need some
   clarification.

2) The uses statement perhaps lacks a mechanism that can be used to
   restrict the components of a grouping that are used.

3) It also seems that uses statements are difficult to expand mentally
   and that descriptions in groupings are either general and thus very
   unspecific or they kind of specific but then the grouping can be
   used where they do not really make sense, or are even wrong.

There is some general question how many client applications are taking
benefit from being able to precisely determine from the advertised
data models what the server supports, that is, what the practical
value of addressing all the axioms stated in Martin's draft are.
Perhaps a phased approach is possible where certain things (e.g., the
drift issues mentioned above) are addressed in YANG 1.1 while a
broader conformance solution may be done later once we have more
experience with data model revisions and we better how client tools
take advantage of the machine readable information available (i.e, how
data model driven client really are).

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Tue Mar  3 02:10:54 2015
Return-Path: <lhotka@nic.cz>
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 639B91A1B53 for <netmod@ietfa.amsl.com>; Tue,  3 Mar 2015 02:10:52 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level: 
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9] 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 hVRMjkCBkAsZ for <netmod@ietfa.amsl.com>; Tue,  3 Mar 2015 02:10:50 -0800 (PST)
Received: from trail.lhotka.name (trail.lhotka.name [77.48.224.143]) by ietfa.amsl.com (Postfix) with ESMTP id D05601A1B51 for <netmod@ietf.org>; Tue,  3 Mar 2015 02:10:49 -0800 (PST)
Received: from localhost (unknown [195.113.220.110]) by trail.lhotka.name (Postfix) with ESMTPSA id 12E891CC0114; Tue,  3 Mar 2015 11:10:50 +0100 (CET)
From: Ladislav Lhotka <lhotka@nic.cz>
To: Martin Bjorklund <mbj@tail-f.com>, rfc-editor@rfc-editor.org
In-Reply-To: <20150303.090531.37030803913631573.mbj@tail-f.com>
References: <20150302211808.54F41180204@rfc-editor.org> <20150303.090531.37030803913631573.mbj@tail-f.com>
User-Agent: Notmuch/0.19 (http://notmuchmail.org) Emacs/24.4.51.2 (x86_64-apple-darwin14.0.0)
Date: Tue, 03 Mar 2015 11:10:47 +0100
Message-ID: <m2egp6fl20.fsf@birdie.labs.nic.cz>
MIME-Version: 1.0
Content-Type: text/plain
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/7yK3ZPVCW50FJ2k7y6MwSUt5pcI>
Cc: joelja@bogus.com, netmod@ietf.org, ccrusius@cisco.com
Subject: Re: [netmod] [Technical Errata Reported] RFC6020 (4285)
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: <http://www.ietf.org/mail-archive/web/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: Tue, 03 Mar 2015 10:10:52 -0000

Martin Bjorklund <mbj@tail-f.com> writes:

> Hi,
>
> The reported errata is correct.  But there is a bigger issue - maybe
> half of all usages of "stmtend" are preceded by "optsep" while the
> rest are not.  Since whitespace should always be allowed before
> stmtend I suggest another fix:
>
> OLD:
>
>    stmtend             = ";" / "{" *unknown-statement "}"
>
> NEW:
>
>    stmtend             = optsep (";" / "{" *unknown-statement "}")
>
>
> Combined with errata 4283 this would be:
>
>    stmtend             = optsep (";" / "{" stmtsep "}")

Hmm, but that means it is possible to use "{}" instead of a colon. Is it
reasonable?

>
>
> Now, we already have rules like this:
>
>    namespace-stmt      = namespace-keyword sep uri-str optsep stmtend
>
> Together with the proposed new rule for "stmtend" this looks a bit
> confusing (two consecutive "optsep"s), but it is technically correct,
> and makes the errata smaller.
>
> I also suggest that in 6020bis, we introduce this new rule for
> "stmtend", but remove all redundant "optsep"s.

+1

Lada

>
>
> /martin
>
>
>
> RFC Errata System <rfc-editor@rfc-editor.org> wrote:
>> The following errata report has been submitted for RFC6020,
>> "YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)".
>> 
>> --------------------------------------
>> You may review the report below and at:
>> http://www.rfc-editor.org/errata_search.php?rfc=6020&eid=4285
>> 
>> --------------------------------------
>> Type: Technical
>> Reported by: Cesar Crusius <ccrusius@cisco.com>
>> 
>> Section: 12
>> 
>> Original Text
>> -------------
>> revision-date-stmt = revision-date-keyword sep revision-date stmtend
>> 
>> Corrected Text
>> --------------
>> revision-date-stmt =
>>     revision-date-keyword sep revision-date optsep stmtend
>> 
>> Notes
>> -----
>> Allow spaces between the date string and the statement's end.
>> 
>> Instructions:
>> -------------
>> This erratum is currently posted as "Reported". If necessary, please
>> use "Reply All" to discuss whether it should be verified or
>> rejected. When a decision is reached, the verifying party (IESG)
>> can log in to change the status and edit the report, if necessary. 
>> 
>> --------------------------------------
>> RFC6020 (draft-ietf-netmod-yang-13)
>> --------------------------------------
>> Title               : YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)
>> Publication Date    : October 2010
>> Author(s)           : M. Bjorklund, Ed.
>> Category            : PROPOSED STANDARD
>> Source              : NETCONF Data Modeling Language
>> Area                : Operations and Management
>> Stream              : IETF
>> Verifying Party     : IESG
>> 
>
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod

-- 
Ladislav Lhotka, CZ.NIC Labs
PGP Key ID: E74E8C0C


From nobody Tue Mar  3 02:44:11 2015
Return-Path: <mbj@tail-f.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 8FA061A1B53 for <netmod@ietfa.amsl.com>; Tue,  3 Mar 2015 02:44:10 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.911
X-Spam-Level: 
X-Spam-Status: No, score=-1.911 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] 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 E4OOBCKWdB_M for <netmod@ietfa.amsl.com>; Tue,  3 Mar 2015 02:44:09 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [83.241.162.140]) by ietfa.amsl.com (Postfix) with ESMTP id 1EBB51A1B7B for <netmod@ietf.org>; Tue,  3 Mar 2015 02:44:08 -0800 (PST)
Received: from localhost (x15.tail-f.com [192.168.1.60]) by mail.tail-f.com (Postfix) with ESMTPSA id DC7881280A40; Tue,  3 Mar 2015 11:44:06 +0100 (CET)
Date: Tue, 03 Mar 2015 11:44:06 +0100 (CET)
Message-Id: <20150303.114406.2208087589270732500.mbj@tail-f.com>
To: lhotka@nic.cz
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <m2egp6fl20.fsf@birdie.labs.nic.cz>
References: <20150302211808.54F41180204@rfc-editor.org> <20150303.090531.37030803913631573.mbj@tail-f.com> <m2egp6fl20.fsf@birdie.labs.nic.cz>
X-Mailer: Mew version 6.5 on Emacs 23.4 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/ZuO6pKQYnRHnTzCLvVkYuaenG6k>
Cc: joelja@bogus.com, ccrusius@cisco.com, netmod@ietf.org, rfc-editor@rfc-editor.org
Subject: Re: [netmod] [Technical Errata Reported] RFC6020 (4285)
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: <http://www.ietf.org/mail-archive/web/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: Tue, 03 Mar 2015 10:44:10 -0000

Ladislav Lhotka <lhotka@nic.cz> wrote:
> Martin Bjorklund <mbj@tail-f.com> writes:
> 
> > Hi,
> >
> > The reported errata is correct.  But there is a bigger issue - maybe
> > half of all usages of "stmtend" are preceded by "optsep" while the
> > rest are not.  Since whitespace should always be allowed before
> > stmtend I suggest another fix:
> >
> > OLD:
> >
> >    stmtend             = ";" / "{" *unknown-statement "}"
> >
> > NEW:
> >
> >    stmtend             = optsep (";" / "{" *unknown-statement "}")
> >
> >
> > Combined with errata 4283 this would be:
> >
> >    stmtend             = optsep (";" / "{" stmtsep "}")
> 
> Hmm, but that means it is possible to use "{}" instead of a colon. Is it
> reasonable?

Sure, and this is possible already today.


/martin


From nobody Tue Mar  3 09:01:34 2015
Return-Path: <ccrusius@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 A49401A92EA for <netmod@ietfa.amsl.com>; Tue,  3 Mar 2015 09:01:33 -0800 (PST)
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 U34M9-gBqtvN for <netmod@ietfa.amsl.com>; Tue,  3 Mar 2015 09:01:31 -0800 (PST)
Received: from rcdn-iport-4.cisco.com (rcdn-iport-4.cisco.com [173.37.86.75]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id CC3381A710C for <netmod@ietf.org>; Tue,  3 Mar 2015 09:01:30 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=4258; q=dns/txt; s=iport; t=1425402090; x=1426611690; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=BzCwLjBrpJL7/Ov3KFnrCnOcDIBXwhHHvvn/k8CC//I=; b=LvMYtHTqqJGhSz1LfQOm6BtF45VSJiG7tBqG43NzatNmOmIttk49rMlY YF70a0mUua03SRKngP4CD0+z8LuEz0SaSqCiimEXA2v4Ol31Gzfl/N2tU +YAuWqiRBBdlhrwawGF3Jx79Wr8ToQfb3v0S0vuQN30AdA5KWqIE1JdM8 M=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0BbBgAq6PVU/4ENJK1AGoMCUloEgwe+PYVwAhyBDE0BAQEBAQF8hBABAQQjEUUQAgEIDgoCAiYCAgIwFRACBAENBYguAQ03uzmaKwEBAQEBAQEBAQEBAQEBAQEBAQEZgSGJcYE9gzEHgmiBQwWFcIoJiUmBGoMijyMjggIND4FQbwERgTJ/AQEB
X-IronPort-AV: E=Sophos;i="5.09,682,1418083200"; d="scan'208";a="400592215"
Received: from alln-core-9.cisco.com ([173.36.13.129]) by rcdn-iport-4.cisco.com with ESMTP; 03 Mar 2015 17:01:30 +0000
Received: from xhc-aln-x12.cisco.com (xhc-aln-x12.cisco.com [173.36.12.86]) by alln-core-9.cisco.com (8.14.5/8.14.5) with ESMTP id t23H1TXT009745 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Tue, 3 Mar 2015 17:01:29 GMT
Received: from xmb-aln-x03.cisco.com ([169.254.6.153]) by xhc-aln-x12.cisco.com ([173.36.12.86]) with mapi id 14.03.0195.001; Tue, 3 Mar 2015 11:01:29 -0600
From: "Cesar Crusius (ccrusius)" <ccrusius@cisco.com>
To: Martin Bjorklund <mbj@tail-f.com>, "rfc-editor@rfc-editor.org" <rfc-editor@rfc-editor.org>
Thread-Topic: [Technical Errata Reported] RFC6020 (4285)
Thread-Index: AQHQVS59EZ0VuoEHk0WxdJV/sLoE8J0Ky9qAgAAPogA=
Date: Tue, 3 Mar 2015 17:01:29 +0000
Message-ID: <D11B25ED.4B34%ccrusius@cisco.com>
References: <20150302211808.54F41180204@rfc-editor.org> <20150303.090531.37030803913631573.mbj@tail-f.com>
In-Reply-To: <20150303.090531.37030803913631573.mbj@tail-f.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [171.71.147.11]
Content-Type: text/plain; charset="utf-8"
Content-ID: <40D8F052E1A1BF4D86A3B3260C72CB86@emea.cisco.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/lgV3UjSDHor8pt9VgD85UJ_lZF4>
Cc: "joelja@bogus.com" <joelja@bogus.com>, "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] [Technical Errata Reported] RFC6020 (4285)
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: <http://www.ietf.org/mail-archive/web/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: Tue, 03 Mar 2015 17:01:33 -0000

SGksDQoNCkkgYWdyZWUgd2l0aCB0aGF0LCBhbmQgaWYgdGhlIGdvYWwgaXMgdG8gc2ltcGxpZnkg
c3BhY2UgaGFuZGxpbmcsIEkgd291bGQNCmFsc28gYWRkIGFkZCBhICJzdG10c2VwIiB0byB0aGUg
ZW5kIG9mICJzdG10ZW5kLCIgd2hpY2ggd291bGQgYWxsb3cgdGhlDQpyZW1vdmFsIG9mIGEgbG90
IG9mICJzdG10c2VwInMgaW4gdGhlIHN5bnRheCAoc3RtdGVuZHMgYXJlIHVzdWFsbHkNCmZvbGxv
d2VkIGJ5IHN0bXRzZXAsIGFuZCB3aGVuIHRoZXkgYXJlIG5vdCBpdCBpcyB1c3VhbGx5IGFuIGVy
cm9yKS4NCg0KICAgc3RtdGVuZCAgICAgICAgICAgICA9IG9wdHNlcCAoIjsiIC8gInsiIHN0bXRz
ZXAgIn0iKSBzdG10c2VwDQoNCg0KQmVzdCwNCg0KLSBDZXNhcg0KDQpPbiAzLzMvMTUsIDEyOjA1
IEFNLCAiTWFydGluIEJqb3JrbHVuZCIgPG1iakB0YWlsLWYuY29tPiB3cm90ZToNCg0KPkhpLA0K
Pg0KPlRoZSByZXBvcnRlZCBlcnJhdGEgaXMgY29ycmVjdC4gIEJ1dCB0aGVyZSBpcyBhIGJpZ2dl
ciBpc3N1ZSAtIG1heWJlDQo+aGFsZiBvZiBhbGwgdXNhZ2VzIG9mICJzdG10ZW5kIiBhcmUgcHJl
Y2VkZWQgYnkgIm9wdHNlcCIgd2hpbGUgdGhlDQo+cmVzdCBhcmUgbm90LiAgU2luY2Ugd2hpdGVz
cGFjZSBzaG91bGQgYWx3YXlzIGJlIGFsbG93ZWQgYmVmb3JlDQo+c3RtdGVuZCBJIHN1Z2dlc3Qg
YW5vdGhlciBmaXg6DQo+DQo+T0xEOg0KPg0KPiAgIHN0bXRlbmQgICAgICAgICAgICAgPSAiOyIg
LyAieyIgKnVua25vd24tc3RhdGVtZW50ICJ9Ig0KPg0KPk5FVzoNCj4NCj4gICBzdG10ZW5kICAg
ICAgICAgICAgID0gb3B0c2VwICgiOyIgLyAieyIgKnVua25vd24tc3RhdGVtZW50ICJ9IikNCj4N
Cj4NCj5Db21iaW5lZCB3aXRoIGVycmF0YSA0MjgzIHRoaXMgd291bGQgYmU6DQo+DQo+ICAgc3Rt
dGVuZCAgICAgICAgICAgICA9IG9wdHNlcCAoIjsiIC8gInsiIHN0bXRzZXAgIn0iKQ0KPg0KPg0K
Pk5vdywgd2UgYWxyZWFkeSBoYXZlIHJ1bGVzIGxpa2UgdGhpczoNCj4NCj4gICBuYW1lc3BhY2Ut
c3RtdCAgICAgID0gbmFtZXNwYWNlLWtleXdvcmQgc2VwIHVyaS1zdHIgb3B0c2VwIHN0bXRlbmQN
Cj4NCj5Ub2dldGhlciB3aXRoIHRoZSBwcm9wb3NlZCBuZXcgcnVsZSBmb3IgInN0bXRlbmQiIHRo
aXMgbG9va3MgYSBiaXQNCj5jb25mdXNpbmcgKHR3byBjb25zZWN1dGl2ZSAib3B0c2VwInMpLCBi
dXQgaXQgaXMgdGVjaG5pY2FsbHkgY29ycmVjdCwNCj5hbmQgbWFrZXMgdGhlIGVycmF0YSBzbWFs
bGVyLg0KPg0KPkkgYWxzbyBzdWdnZXN0IHRoYXQgaW4gNjAyMGJpcywgd2UgaW50cm9kdWNlIHRo
aXMgbmV3IHJ1bGUgZm9yDQo+InN0bXRlbmQiLCBidXQgcmVtb3ZlIGFsbCByZWR1bmRhbnQgIm9w
dHNlcCJzLg0KPg0KPg0KPi9tYXJ0aW4NCj4NCj4NCj4NCj5SRkMgRXJyYXRhIFN5c3RlbSA8cmZj
LWVkaXRvckByZmMtZWRpdG9yLm9yZz4gd3JvdGU6DQo+PiBUaGUgZm9sbG93aW5nIGVycmF0YSBy
ZXBvcnQgaGFzIGJlZW4gc3VibWl0dGVkIGZvciBSRkM2MDIwLA0KPj4gIllBTkcgLSBBIERhdGEg
TW9kZWxpbmcgTGFuZ3VhZ2UgZm9yIHRoZSBOZXR3b3JrIENvbmZpZ3VyYXRpb24gUHJvdG9jb2wN
Cj4+KE5FVENPTkYpIi4NCj4+IA0KPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0NCj4+IFlvdSBtYXkgcmV2aWV3IHRoZSByZXBvcnQgYmVsb3cgYW5kIGF0Og0KPj4gaHR0
cDovL3d3dy5yZmMtZWRpdG9yLm9yZy9lcnJhdGFfc2VhcmNoLnBocD9yZmM9NjAyMCZlaWQ9NDI4
NQ0KPj4gDQo+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPj4gVHlw
ZTogVGVjaG5pY2FsDQo+PiBSZXBvcnRlZCBieTogQ2VzYXIgQ3J1c2l1cyA8Y2NydXNpdXNAY2lz
Y28uY29tPg0KPj4gDQo+PiBTZWN0aW9uOiAxMg0KPj4gDQo+PiBPcmlnaW5hbCBUZXh0DQo+PiAt
LS0tLS0tLS0tLS0tDQo+PiByZXZpc2lvbi1kYXRlLXN0bXQgPSByZXZpc2lvbi1kYXRlLWtleXdv
cmQgc2VwIHJldmlzaW9uLWRhdGUgc3RtdGVuZA0KPj4gDQo+PiBDb3JyZWN0ZWQgVGV4dA0KPj4g
LS0tLS0tLS0tLS0tLS0NCj4+IHJldmlzaW9uLWRhdGUtc3RtdCA9DQo+PiAgICAgcmV2aXNpb24t
ZGF0ZS1rZXl3b3JkIHNlcCByZXZpc2lvbi1kYXRlIG9wdHNlcCBzdG10ZW5kDQo+PiANCj4+IE5v
dGVzDQo+PiAtLS0tLQ0KPj4gQWxsb3cgc3BhY2VzIGJldHdlZW4gdGhlIGRhdGUgc3RyaW5nIGFu
ZCB0aGUgc3RhdGVtZW50J3MgZW5kLg0KPj4gDQo+PiBJbnN0cnVjdGlvbnM6DQo+PiAtLS0tLS0t
LS0tLS0tDQo+PiBUaGlzIGVycmF0dW0gaXMgY3VycmVudGx5IHBvc3RlZCBhcyAiUmVwb3J0ZWQi
LiBJZiBuZWNlc3NhcnksIHBsZWFzZQ0KPj4gdXNlICJSZXBseSBBbGwiIHRvIGRpc2N1c3Mgd2hl
dGhlciBpdCBzaG91bGQgYmUgdmVyaWZpZWQgb3INCj4+IHJlamVjdGVkLiBXaGVuIGEgZGVjaXNp
b24gaXMgcmVhY2hlZCwgdGhlIHZlcmlmeWluZyBwYXJ0eSAoSUVTRykNCj4+IGNhbiBsb2cgaW4g
dG8gY2hhbmdlIHRoZSBzdGF0dXMgYW5kIGVkaXQgdGhlIHJlcG9ydCwgaWYgbmVjZXNzYXJ5Lg0K
Pj4gDQo+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPj4gUkZDNjAy
MCAoZHJhZnQtaWV0Zi1uZXRtb2QteWFuZy0xMykNCj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tDQo+PiBUaXRsZSAgICAgICAgICAgICAgIDogWUFORyAtIEEgRGF0YSBN
b2RlbGluZyBMYW5ndWFnZSBmb3IgdGhlIE5ldHdvcmsNCj4+Q29uZmlndXJhdGlvbiBQcm90b2Nv
bCAoTkVUQ09ORikNCj4+IFB1YmxpY2F0aW9uIERhdGUgICAgOiBPY3RvYmVyIDIwMTANCj4+IEF1
dGhvcihzKSAgICAgICAgICAgOiBNLiBCam9ya2x1bmQsIEVkLg0KPj4gQ2F0ZWdvcnkgICAgICAg
ICAgICA6IFBST1BPU0VEIFNUQU5EQVJEDQo+PiBTb3VyY2UgICAgICAgICAgICAgIDogTkVUQ09O
RiBEYXRhIE1vZGVsaW5nIExhbmd1YWdlDQo+PiBBcmVhICAgICAgICAgICAgICAgIDogT3BlcmF0
aW9ucyBhbmQgTWFuYWdlbWVudA0KPj4gU3RyZWFtICAgICAgICAgICAgICA6IElFVEYNCj4+IFZl
cmlmeWluZyBQYXJ0eSAgICAgOiBJRVNHDQo+PiANCg0K


From nobody Wed Mar  4 01:45:33 2015
Return-Path: <mbj@tail-f.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 D01011A1A7B for <netmod@ietfa.amsl.com>; Wed,  4 Mar 2015 01:45:30 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.911
X-Spam-Level: 
X-Spam-Status: No, score=-1.911 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] 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 YUpcCOnDQrAi for <netmod@ietfa.amsl.com>; Wed,  4 Mar 2015 01:45:29 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [83.241.162.140]) by ietfa.amsl.com (Postfix) with ESMTP id C7CE31A1A4A for <netmod@ietf.org>; Wed,  4 Mar 2015 01:45:28 -0800 (PST)
Received: from localhost (x15.tail-f.com [192.168.1.60]) by mail.tail-f.com (Postfix) with ESMTPSA id 9B52E1280D07; Wed,  4 Mar 2015 10:45:27 +0100 (CET)
Date: Wed, 04 Mar 2015 10:45:27 +0100 (CET)
Message-Id: <20150304.104527.1218509675714916552.mbj@tail-f.com>
To: ccrusius@cisco.com
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <D11B25ED.4B34%ccrusius@cisco.com>
References: <20150302211808.54F41180204@rfc-editor.org> <20150303.090531.37030803913631573.mbj@tail-f.com> <D11B25ED.4B34%ccrusius@cisco.com>
X-Mailer: Mew version 6.5 on Emacs 23.4 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/XPPmOiUMaRc3FYdaM5oLggvJaxU>
Cc: netmod@ietf.org
Subject: [netmod] ABNF in YANG 1.1. (Was: [Technical Errata Reported] RFC6020 (4285))
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: <http://www.ietf.org/mail-archive/web/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: Wed, 04 Mar 2015 09:45:31 -0000

[Pruning Cc, changing subject]

"Cesar Crusius (ccrusius)" <ccrusius@cisco.com> wrote:
> Hi,
> 
> I agree with that, and if the goal is to simplify space handling, I would
> also add add a "stmtsep" to the end of "stmtend," which would allow the
> removal of a lot of "stmtsep"s in the syntax (stmtends are usually
> followed by stmtsep, and when they are not it is usually an error).
> 
>    stmtend             = optsep (";" / "{" stmtsep "}") stmtsep

Yes this makes sense.  It means that stmtsep needs to be added to
quite a few rules, such as:

argument-stmt       = argument-keyword sep identifier-arg-str optsep
                      (";" /
                       "{" stmtsep
                           [yin-element-stmt]
                       "}") stmtsep
                            ^^^^^^^  ADDED

But this is still better and somewhat less error-prone than before.

I will include this change (and the others) in the next revision (to
be published before monday); please review!


/martin



> 
> 
> Best,
> 
> - Cesar
> 
> On 3/3/15, 12:05 AM, "Martin Bjorklund" <mbj@tail-f.com> wrote:
> 
> >Hi,
> >
> >The reported errata is correct.  But there is a bigger issue - maybe
> >half of all usages of "stmtend" are preceded by "optsep" while the
> >rest are not.  Since whitespace should always be allowed before
> >stmtend I suggest another fix:
> >
> >OLD:
> >
> >   stmtend             = ";" / "{" *unknown-statement "}"
> >
> >NEW:
> >
> >   stmtend             = optsep (";" / "{" *unknown-statement "}")
> >
> >
> >Combined with errata 4283 this would be:
> >
> >   stmtend             = optsep (";" / "{" stmtsep "}")
> >
> >
> >Now, we already have rules like this:
> >
> >   namespace-stmt      = namespace-keyword sep uri-str optsep stmtend
> >
> >Together with the proposed new rule for "stmtend" this looks a bit
> >confusing (two consecutive "optsep"s), but it is technically correct,
> >and makes the errata smaller.
> >
> >I also suggest that in 6020bis, we introduce this new rule for
> >"stmtend", but remove all redundant "optsep"s.
> >
> >
> >/martin
> >
> >
> >
> >RFC Errata System <rfc-editor@rfc-editor.org> wrote:
> >> The following errata report has been submitted for RFC6020,
> >> "YANG - A Data Modeling Language for the Network Configuration Protocol
> >>(NETCONF)".
> >> 
> >> --------------------------------------
> >> You may review the report below and at:
> >> http://www.rfc-editor.org/errata_search.php?rfc=6020&eid=4285
> >> 
> >> --------------------------------------
> >> Type: Technical
> >> Reported by: Cesar Crusius <ccrusius@cisco.com>
> >> 
> >> Section: 12
> >> 
> >> Original Text
> >> -------------
> >> revision-date-stmt = revision-date-keyword sep revision-date stmtend
> >> 
> >> Corrected Text
> >> --------------
> >> revision-date-stmt =
> >>     revision-date-keyword sep revision-date optsep stmtend
> >> 
> >> Notes
> >> -----
> >> Allow spaces between the date string and the statement's end.
> >> 
> >> Instructions:
> >> -------------
> >> This erratum is currently posted as "Reported". If necessary, please
> >> use "Reply All" to discuss whether it should be verified or
> >> rejected. When a decision is reached, the verifying party (IESG)
> >> can log in to change the status and edit the report, if necessary.
> >> 
> >> --------------------------------------
> >> RFC6020 (draft-ietf-netmod-yang-13)
> >> --------------------------------------
> >> Title               : YANG - A Data Modeling Language for the Network
> >>Configuration Protocol (NETCONF)
> >> Publication Date    : October 2010
> >> Author(s)           : M. Bjorklund, Ed.
> >> Category            : PROPOSED STANDARD
> >> Source              : NETCONF Data Modeling Language
> >> Area                : Operations and Management
> >> Stream              : IETF
> >> Verifying Party     : IESG
> >> 
> 


From nobody Wed Mar  4 07:08:45 2015
Return-Path: <internet-drafts@ietf.org>
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 D46881A6F28; Wed,  4 Mar 2015 07:08:42 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level: 
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9] 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 b37tA-W7Gpxc; Wed,  4 Mar 2015 07:08:41 -0800 (PST)
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id 695431A6F2F; Wed,  4 Mar 2015 07:08:07 -0800 (PST)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: internet-drafts@ietf.org
To: <i-d-announce@ietf.org>
X-Test-IDTracker: no
X-IETF-IDTracker: 5.12.0.p2
Auto-Submitted: auto-generated
Precedence: bulk
Message-ID: <20150304150807.13089.5163.idtracker@ietfa.amsl.com>
Date: Wed, 04 Mar 2015 07:08:07 -0800
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/w0uWL0_GcAh16Q0KzTeHtH4WIWE>
Cc: netmod@ietf.org
Subject: [netmod] I-D Action: draft-ietf-netmod-routing-cfg-17.txt
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
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: <http://www.ietf.org/mail-archive/web/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: Wed, 04 Mar 2015 15:08:43 -0000

A New Internet-Draft is available from the on-line Internet-Drafts directories.
 This draft is a work item of the NETCONF Data Modeling Language Working Group of the IETF.

        Title           : A YANG Data Model for Routing Management
        Authors         : Ladislav Lhotka
                          Acee Lindem
	Filename        : draft-ietf-netmod-routing-cfg-17.txt
	Pages           : 76
	Date            : 2015-03-04

Abstract:
   This document contains a specification of three YANG modules.
   Together they form the core routing data model which serves as a
   framework for configuring and managing a routing subsystem.  It is
   expected that these modules will be augmented by additional YANG
   modules defining data models for routing protocols and other
   functions.  The core routing data model provides common building
   blocks for such extensions - routing instances, routes, routing
   information bases (RIB), and routing protocols.


The IETF datatracker status page for this draft is:
https://datatracker.ietf.org/doc/draft-ietf-netmod-routing-cfg/

There's also a htmlized version available at:
http://tools.ietf.org/html/draft-ietf-netmod-routing-cfg-17

A diff from the previous version is available at:
http://www.ietf.org/rfcdiff?url2=draft-ietf-netmod-routing-cfg-17


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/


From nobody Wed Mar  4 07:26:06 2015
Return-Path: <lhotka@nic.cz>
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 685D61A6EFE for <netmod@ietfa.amsl.com>; Wed,  4 Mar 2015 07:26:05 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.661
X-Spam-Level: 
X-Spam-Status: No, score=-0.661 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HELO_EQ_CZ=0.445, HOST_EQ_CZ=0.904, T_RP_MATCHES_RCVD=-0.01] autolearn=no
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 ABUzdRQDUGKb for <netmod@ietfa.amsl.com>; Wed,  4 Mar 2015 07:26:03 -0800 (PST)
Received: from mail.nic.cz (mail.nic.cz [IPv6:2001:1488:800:400::400]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E772A1A1B71 for <netmod@ietf.org>; Wed,  4 Mar 2015 07:26:02 -0800 (PST)
Received: from [IPv6:2001:718:1a02:1:f418:f30:9ac2:9c67] (unknown [IPv6:2001:718:1a02:1:f418:f30:9ac2:9c67]) by mail.nic.cz (Postfix) with ESMTPSA id 9296113F7AA for <netmod@ietf.org>; Wed,  4 Mar 2015 16:26:01 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=nic.cz; s=default; t=1425482761; bh=9K9FTHh0NfpDdJH+YZR+vY1fPmlwo2tkobiF82q3CRk=; h=From:Content-Type:Content-Transfer-Encoding:Subject:Date: References:To:Message-Id:Mime-Version; b=BA7EX/lTMm5aAVu/3ZcGP7dSkAe3PpbS+UFbhBklniXbT5BEmjFNlVUHbNdtEQ3ON Znt9c5ICQ57kcovS+6N9nSj4CfsZvtV8pb70e5BY5m/CNNOL2kF0P3CxY5AecXZsLG rC08kMN4t8Aaf6gyFkT6iHB0F25/18BoqGSYdg14=
From: Ladislav Lhotka <lhotka@nic.cz>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: quoted-printable
Date: Wed, 4 Mar 2015 16:26:04 +0100
References: <20150304150807.13089.5163.idtracker@ietfa.amsl.com>
To: NETMOD Working Group <netmod@ietf.org>
Message-Id: <84125A8F-1684-4FB2-9C17-1EC1E7CA35D2@nic.cz>
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2070.6\))
X-Mailer: Apple Mail (2.2070.6)
X-Virus-Scanned: clamav-milter 0.98.6 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/Ba7PuOyhcThhhL5bYFXjQFkHuOE>
Subject: [netmod] Fwd:  I-D Action: draft-ietf-netmod-routing-cfg-17.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: <http://www.ietf.org/mail-archive/web/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: Wed, 04 Mar 2015 15:26:05 -0000

Hi,

main changes in this revision are:

   o  Added Acee as a co-author.

   o  Removed all traces of route filters.

   o  Removed numeric IDs of list entries in state data.

   o  Removed all next-hop cases except "simple-next-hop" and "special-
      next-hop".

   o  Removed feature "multipath-routes".

   o  Augmented "ietf-interfaces" module with a leaf-list of leafrefs
      pointing form state data of an interface entry to the routing
      instance(s) to which the interface is assigned.

There are still a few open issues, including one that could lead to a =
substantial redesign of the routing model. It is described here:

=
http://www.ietf.org/mail-archive/web/rtg-yang-coord/current/msg00307.html

I plan to present more details in Dallas.

Lada

> Begin forwarded message:
>=20
> From: internet-drafts@ietf.org
> To: <i-d-announce@ietf.org>
> Date: 4 Mar 2015 16:08:07 CET
> Cc: netmod@ietf.org
> Subject: [netmod] I-D Action: draft-ietf-netmod-routing-cfg-17.txt
>=20
>=20
> A New Internet-Draft is available from the on-line Internet-Drafts =
directories.
> This draft is a work item of the NETCONF Data Modeling Language =
Working Group of the IETF.
>=20
>        Title           : A YANG Data Model for Routing Management
>        Authors         : Ladislav Lhotka
>                          Acee Lindem
> 	Filename        : draft-ietf-netmod-routing-cfg-17.txt
> 	Pages           : 76
> 	Date            : 2015-03-04
>=20
> Abstract:
>   This document contains a specification of three YANG modules.
>   Together they form the core routing data model which serves as a
>   framework for configuring and managing a routing subsystem.  It is
>   expected that these modules will be augmented by additional YANG
>   modules defining data models for routing protocols and other
>   functions.  The core routing data model provides common building
>   blocks for such extensions - routing instances, routes, routing
>   information bases (RIB), and routing protocols.
>=20
>=20
> The IETF datatracker status page for this draft is:
> https://datatracker.ietf.org/doc/draft-ietf-netmod-routing-cfg/
>=20
> There's also a htmlized version available at:
> http://tools.ietf.org/html/draft-ietf-netmod-routing-cfg-17
>=20
> A diff from the previous version is available at:
> http://www.ietf.org/rfcdiff?url2=3Ddraft-ietf-netmod-routing-cfg-17
>=20
>=20
> 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.
>=20
> Internet-Drafts are also available by anonymous FTP at:
> ftp://ftp.ietf.org/internet-drafts/
>=20
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod

--
Ladislav Lhotka, CZ.NIC Labs
PGP Key ID: E74E8C0C





From nobody Wed Mar  4 09:22:32 2015
Return-Path: <lhotka@nic.cz>
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 3562A1A90F3 for <netmod@ietfa.amsl.com>; Wed,  4 Mar 2015 09:22:32 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level: 
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9] 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 zpB_xKQxInRF for <netmod@ietfa.amsl.com>; Wed,  4 Mar 2015 09:22:30 -0800 (PST)
Received: from trail.lhotka.name (trail.lhotka.name [77.48.224.143]) by ietfa.amsl.com (Postfix) with ESMTP id 02E2C1A90F1 for <netmod@ietf.org>; Wed,  4 Mar 2015 09:22:29 -0800 (PST)
Received: from localhost (unknown [172.29.2.202]) by trail.lhotka.name (Postfix) with ESMTPSA id D55711CC0604; Wed,  4 Mar 2015 18:22:28 +0100 (CET)
From: Ladislav Lhotka <lhotka@nic.cz>
To: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <20150302.134122.1260910614681744808.mbj@tail-f.com>
References: <m2egp71yy7.fsf@nic.cz> <20150302.134122.1260910614681744808.mbj@tail-f.com>
User-Agent: Notmuch/0.19 (http://notmuchmail.org) Emacs/24.4.51.2 (x86_64-apple-darwin14.0.0)
Date: Wed, 04 Mar 2015 18:22:27 +0100
Message-ID: <m2h9u0d6ek.fsf@nic.cz>
MIME-Version: 1.0
Content-Type: text/plain
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/jHmeuobcFDYprL6wa-Dxp8Mi7qQ>
Cc: netmod@ietf.org
Subject: Re: [netmod] conformance
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: <http://www.ietf.org/mail-archive/web/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: Wed, 04 Mar 2015 17:22:32 -0000

Martin Bjorklund <mbj@tail-f.com> writes:

> Ladislav Lhotka <lhotka@nic.cz> wrote:
>> Hi,
>> 
>> I have two questions/comments regarding conformance as discussed in
>> Andy's and Martin's drafts:
>> 
>> 1. Value set for identityrefs
>> 
>>    RFC 6020 says in sec. 9.10.2: "On a particular server, the valid
>>    values are further restricted to the set of identities defined in the
>>    modules supported by the server."
>> 
>>    I think "modules supported by the server" is unclear. So far, I've
>>    assumed that it means "modules *advertised* by the server" - this was
>>    also the conclusion of a discussion back in 2009, see Martin's mail
>> 
>>    http://www.ietf.org/mail-archive/web/netmod/current/msg02761.html
>> 
>> --------------------------------------------------------------------
>>  > - Sec. 9.10.5:
>>  >   * Since module "des" is not imported, how can an
>>  >     implementation know that such a module exists and defines the
>>  >     "des3" identity?
>> 
>>  des:des3 will only be valid on the device if the device implements
>>  (and adertises) the des module.
>> --------------------------------------------------------------------
>> 
>>    If it is so, then the set of permitted values of any identityref is
>>    IMO precisely defined and there is no ambiguity.
>
> Agreed.
>
>
>> 2. Revision hell
>> 
>>    Would it help if the revision of the module that's imported without
>>    revision is determined from the revision of the importing module?
>>    That is, it will be the highest revision of the imported module
>>    that's less or equal to the revision of the importing module.
>> 
>>    For example, if we have
>> 
>>    - module A, revision 2014-01-01
>>    - module A, revision 2014-02-01
>>    - module B, revision 2014-01-02
>> 
>>    and module B imports A without specifying a revision, then all A:*
>>    typedefs and groupings used in module B have to be taken from
>>    revision 2014-01-01 of module A, even if the server advertises the
>>    new revision 2014-02-01 of A. This would avoid the ripple effect.
>
> This gives the same problems as if explicit import-by revision was used
> everywhere.

After the interim discussion it seems to me there are actually two problems here:

1. If module B imports A without revision, we have to avoid the
   situation that an old revision of B is used with groupings and
   typedefs from a new revision of A that the author od B didn't intend
   to use. This problem is IMO easily solved by fixing the revision that
   is used when no revision is specified in the import statement:

   OLD

   If no "revision-date" substatement is present, it is undefined from
   which revision of the module they are taken.

   NEW

   If no "revision-date" substatement is present, they are taken from
   the most recent revision that preceded the revision of the importing
   module.

2. Module B wants to use definitions from two revisions of A at the same
   time. This would require a new concept of modularity, so I don't
   think it can be solved in 1.1. A reasonable workaround for the author of
   B is to import the old version of A and copy-and-paste needed
   definitions from the new version of A.

Lada

>
>
> /martin

-- 
Ladislav Lhotka, CZ.NIC Labs
PGP Key ID: E74E8C0C


From nobody Wed Mar  4 20:41:51 2015
Return-Path: <andy@yumaworks.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 D2DBB1AD213 for <netmod@ietfa.amsl.com>; Wed,  4 Mar 2015 20:41:48 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.979
X-Spam-Level: 
X-Spam-Status: No, score=-1.979 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] 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 Itk-cve3poL5 for <netmod@ietfa.amsl.com>; Wed,  4 Mar 2015 20:41:46 -0800 (PST)
Received: from mail-lb0-f179.google.com (mail-lb0-f179.google.com [209.85.217.179]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7B73B1A0367 for <netmod@ietf.org>; Wed,  4 Mar 2015 20:41:46 -0800 (PST)
Received: by lbiv13 with SMTP id v13so30053682lbi.11 for <netmod@ietf.org>; Wed, 04 Mar 2015 20:41:45 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=v3ahzmKkxO3gsBlL3isFKwom+ExtP24Z0wdtnocf0x0=; b=crGdKm4sxZYaFB+RR+gehEdtmhC6O7Qux9Nd2Z0iKpV5PZO9dvF6AK0IYoOum/JYOL 3og7OEK18uZp8AP2ercwbvHKVsiKn0vg2COvp6C9vaO+21JraC9Uu6Dci657E7cYHk49 Z2jViBC2+ixF1EvfZQPo8G3XblAVrxn1wAUjVEhYYq/5RPUNuUKE+ThrM2t5uxzV2BGs o2XnYBRUksyiyQ0gq41XAEiYJpLq6NzqTdduISJg/gs2VGFV0TRYwlvzvVLkP2A7IRRW EB/pb0r+pEZ7ELKo5wUQxnAcvisGppRoPiktm/9zdWm5ZD8Ri13pWuUSSBns1ytrbgwu o4dg==
X-Gm-Message-State: ALoCoQkgB/xOGYathgoBSNHGD71h0bsAohkv4IbMrzif3G1TxRRXbJbES46o5wmWNPGugUhpzPj9
MIME-Version: 1.0
X-Received: by 10.152.207.37 with SMTP id lt5mr6319092lac.38.1425530504971; Wed, 04 Mar 2015 20:41:44 -0800 (PST)
Received: by 10.112.144.36 with HTTP; Wed, 4 Mar 2015 20:41:44 -0800 (PST)
In-Reply-To: <54F4D4EC.4040600@cisco.com>
References: <CAL0qLwZk=k-CWLte_ChK9f1kzLwMOTRyi7AwFa8fLjBsextBcA@mail.gmail.com> <CAMm+LwgzXg+QM29ygS0Bv+HOo2Gd-hPByXYz2aVu-V4b=Jak+Q@mail.gmail.com> <54EEFCFB.7080107@cisco.com> <047F946E-3041-4510-8F78-D8D743C4FEED@nominum.com> <939B49536ECD5BFA17B5E5C4@JcK-HP8200.jck.com> <48DFF1A2-9BD0-4E08-B44A-704D5DCC278E@nominum.com> <54EF3644.7090808@joelhalpern.com> <02ED4331-9441-484C-96A6-70352C42ABBC@nominum.com> <54EF426A.9070706@joelhalpern.com> <31CF2C53-8168-4B2F-9E14-76FB44854813@nominum.com> <54EF7229.1030301@queuefull.net> <CAK3OfOh6BMP40y0H5Yny+n-8B8ayzgq4BeT2MmfF2XuxBBLk5A@mail.gmail.com> <54EF772C.5030309@queuefull.net> <519F10F3-0B24-4085-9294-8FFA10632CB3@lucidvision.com> <6BE1D8A6-C954-49C9-B0B8-D2D52DE212DC@lucidvision.com> <54EF9080.9050500@joelhalpern.com> <54EF9A36.4020905@labn.net> <528C98F9-5D16-4B5F-9B11-886C91B5FE59@lucidvision.com> <00b101d0529f$0c6ea580$4001a8c0@gateway.2wire.net> <54F4D4EC.4040600@cisco.com>
Date: Wed, 4 Mar 2015 20:41:44 -0800
Message-ID: <CABCOCHRqwtZU0R1ad=SDfcwixwR75RZ0g8Bw=t0BHbmHkSVkjQ@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Benoit Claise <bclaise@cisco.com>
Content-Type: text/plain; charset=UTF-8
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/YDMfjeyZvyuYAVQhyouIqDAbSVk>
Cc: "netmod@ietf.org" <netmod@ietf.org>, Berger Lou <lberger@labn.net>, IETF discussion list <ietf@ietf.org>, "t.p." <daedulus@btconnect.com>
Subject: Re: [netmod] Interim meetings - changing the way we work
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: <http://www.ietf.org/mail-archive/web/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: Thu, 05 Mar 2015 04:41:49 -0000

On Mon, Mar 2, 2015 at 1:23 PM, Benoit Claise <bclaise@cisco.com> wrote:
> On 27/02/2015 16:03, t.p. wrote:
....

>> I see 'netmod' as a poster child for this with its issue list, state
>> machine for issues and so on.  Even though I was tracking the list when
>> the 'Ynn' issue list was created, I don't know where its state machine
>> came from.  In recent minutes, I don't know what
>> "  AB: I am not sure YANG 1.0 specifies C1 explicitly somewhere.
>>    JS: Does A3 not follow from A2?
>>    KW: A3 is more a corollary of A2.
>>    AB: The high-level problem is how to create and maintain the
>>        information needed to achieve A4. "
>>
>> is about; a brief search of mailing list and I-Ds gave me no explanation
>> for A2 to C1.
>
> And what about an email to the NETMOD mailing list, asking this question?
> How is this any different than meeting minutes on a physical meeting, on
> which you would have a question?
>


IMO Juergen does a very good job of recording the minutes of every
NETMOD interim.
Here is the header from those minutes (that were taken out of context):

* YANG 1.1 Conformance
** https://tools.ietf.org/html/draft-bjorklund-yang-conformance-problem-00

This clearly indicates that the notes are about the draft identified above.
These identifiers A1, C2, etc. are in the draft.

The NETMOD and NETCONF WGs have been extra careful about
getting verification on the WG mailing list before proceeding with proposed
changes that originate in VI meetings.


> Regards, Benoit


Andy


>>
>>
>> And if a different group of engineers works on different topics, then
>> they will likely, in the absence of any guidance, use different
>> technology, different terminology and end up with a way of working that
>> is as alien to the first group.
>>
>> As I said, changing the way we work.
>>
>> Tom Petch
>> </tp>
>>
>>
>>
>>
>>
>> --Tom
>>
>>
>>> Lou
>>>
>>>> If you want a real example of how this can actually work, watch Anees
>>
>> explain how Open Config has done this with just weekly phone calls and a
>> bunch of people typing on keyboards. They've done this in less than a
>> year, and have rough consensus and (production) running code.  This is
>> how the IETF used to operate: people got together, hacked code and got
>> things working.  The goal was not having meetings, but producing code
>> with rough consensus.
>>>>
>>>>
>> https://code.facebook.com/posts/1421954598097990/networking-scale-recap
>>>>
>>>> --Tom
>>>>
>>>>
>>>>
>>>>> Yours,
>>>>> Joel
>>>>>
>>>>> On 2/26/15 4:21 PM, Thomas D. Nadeau wrote:
>>>>>>>
>>>>>>> On Feb 26, 2015:4:16 PM, at 4:16 PM, Brian E Carpenter
>>
>> <brian.e.carpenter@gmail.com> wrote:
>>>>>>>
>>>>>>> On 27/02/2015 09:08, Thomas D. Nadeau wrote:
>>>>>>>>>
>>>>>>>>> On Feb 26, 2015:2:42 PM, at 2:42 PM, Benson Schliesser
>>
>> <bensons@queuefull.net> wrote:
>>>>>>>>>
>>>>>>>>> Nico Williams wrote:
>>>>>>>>>>
>>>>>>>>>> Yes, but a record that a concall or other interim meeting took
>>
>> place,
>>>>>>>>>>
>>>>>>>>>> and who attended, even if there are incomplete or missing
>>
>> minutes, is
>>>>>>>>>>
>>>>>>>>>> important for IPR reasons.  Ensuring that such meetings are
>>
>> NOTE WELL
>>>>>>>>>>
>>>>>>>>>> meetings is (should be) a priority, and that includes ensuring
>>
>> that a
>>>>>>>>>>
>>>>>>>>>> record of that much exists.
>>>>>>>>>>
>>>>>>>>>> Ideally the concalls and other interims would be recorded.
>>>>>>>>>
>>>>>>>>> I agree completely. My point was that meeting records (including
>>
>> minutes) will inevitably be incomplete, or possibly inaccurate, and that
>> relying on the mailing list as an authoritative record is more
>> effective.
>>>>>>>>>
>>>>>>>>> Of course it is disappointing that we can't meaningfully
>>
>> translate voice discussions into text, in the minutes or in mailing list
>> threads. If there were some magic tool e.g. that took better minutes
>> then I'd be happy to use it. But otherwise, I think we just have to
>> trust chairs to manage WG collaboration in whatever way is most
>> effective for their WG's collaborators.
>>>>>>>>
>>>>>>>> The first step is to agree that an A/V recording is record
>>
>> enough.
>>>>>>>
>>>>>>> It absolutely is not enough. Please see my previous message,
>>>>>>> and the relevant rules in RFC 2418.
>>>>>>>
>>>>>>>   Brian
>>>>>>
>>>>>> You are missing my point. RFC or not, the IETF needs to evolve.
>>>>>>
>>>>>> --Tom
>>>>>>
>>>>>>
>>>>>>
>>>>>>>> Perhaps having meetbot/txt notes that at a min include
>>
>> actions/decisions like we do in the issue tracker we've used for
>> NETMOD's Yang 1.1's issues.
>>>>>>>>
>>>>>>>> --Tom
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>> This will inevitably be suboptimal for some part of the
>>
>> population. (For instance, I've never been able to find an interim
>> meeting time that fits the schedules of all attendees.) But if they (we)
>> always revert to the mailing list for decision making then I suspect our
>> work can remain open and transparent.
>>>>>>>>>
>>>>>>>>> Cheers,
>>>>>>>>> -Benson
>>>>>>>>>
>>>>>>>>>
>>>
>>>
>>>
>> .
>>
>


From nobody Wed Mar  4 23:48:05 2015
Return-Path: <bclaise@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 6BA5D1B2A22; Wed,  4 Mar 2015 23:48:03 -0800 (PST)
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 oSHNJMdkCSWj; Wed,  4 Mar 2015 23:48:01 -0800 (PST)
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 C4D391B2A21; Wed,  4 Mar 2015 23:48:00 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=5201; q=dns/txt; s=iport; t=1425541681; x=1426751281; h=message-id:date:from:mime-version:to:cc:subject: references:in-reply-to:content-transfer-encoding; bh=8UAa+BXF0RxTiYmQn8I4iJUENd8Bqrvvoc3l5VWwucY=; b=TK89Yg4RNf7C+wLEYHGOoeUsngRch8/ArdcRWCXtOVL6/cWxodizPjoc joFVnkaqZaAXohwWGvcOp5cCUpS3duYC/1fzo/LYTSWorn+v5WSh+xBVh FptDS3HKPTtUbOG9CX0QKtBt5go07ZxoRI041XNfMDWBpzCl4k8esJils U=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0CIBQDtCPhU/xbLJq1ag1Ragwu+GIVxAoF0AQEBAQEBfIQQAQEEIxU2CgEQCxgCAgUWCwICCQMCAQIBDzYGDQEFAgEBiBcDEQ28b5UzDYU7AQEBAQEBAQEBAQEBAQEBAQEBAQEBEwSBIYlzgkSBSBEBUAeCaIFDBYRtji9MhCKBSIEagyaCMoZqhhAjggIcgVE9MQGBCoE4AQEB
X-IronPort-AV: E=Sophos;i="5.11,345,1422921600"; d="scan'208";a="372054387"
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; 05 Mar 2015 07:47:59 +0000
Received: from [10.60.67.85] (ams-bclaise-8914.cisco.com [10.60.67.85]) by aer-core-1.cisco.com (8.14.5/8.14.5) with ESMTP id t257lwdP002839; Thu, 5 Mar 2015 07:47:58 GMT
Message-ID: <54F80A2E.3070804@cisco.com>
Date: Thu, 05 Mar 2015 08:47:58 +0100
From: Benoit Claise <bclaise@cisco.com>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.4.0
MIME-Version: 1.0
To: Andy Bierman <andy@yumaworks.com>
References: <CAL0qLwZk=k-CWLte_ChK9f1kzLwMOTRyi7AwFa8fLjBsextBcA@mail.gmail.com>	<54EEFCFB.7080107@cisco.com>	<047F946E-3041-4510-8F78-D8D743C4FEED@nominum.com>	<939B49536ECD5BFA17B5E5C4@JcK-HP8200.jck.com>	<48DFF1A2-9BD0-4E08-B44A-704D5DCC278E@nominum.com>	<54EF3644.7090808@joelhalpern.com>	<02ED4331-9441-484C-96A6-70352C42ABBC@nominum.com>	<54EF426A.9070706@joelhalpern.com>	<31CF2C53-8168-4B2F-9E14-76FB44854813@nominum.com>	<54EF7229.1030301@queuefull.net>	<CAK3OfOh6BMP40y0H5Yny+n-8B8ayzgq4BeT2MmfF2XuxBBLk5A@mail.gmail.com>	<54EF772C.5030309@queuefull.net>	<519F10F3-0B24-4085-9294-8FFA10632CB3@lucidvision.com>	<6BE1D8A6-C954-49C9-B0B8-D2D52DE212DC@lucidvision.com>	<54EF9080.9050500@joelhalpern.com>	<54EF9A36.4020905@labn.net>	<528C98F9-5D16-4B5F-9B11-886C91B5FE59@lucidvision.com>	<00b101d0529f$0c6ea580$4001a8c0@gateway.2wire.net>	<54F4D4EC.4040600@cisco.com> <CABCOCHRqwtZU0R1ad=SDfcwixwR75RZ0g8Bw=t0BHbmHkSVkjQ@mail.gmail.com>
In-Reply-To: <CABCOCHRqwtZU0R1ad=SDfcwixwR75RZ0g8Bw=t0BHbmHkSVkjQ@mail.gmail.com>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/dsiVZEjBXOXpibeV0OIQvL0QGTY>
Cc: "netmod@ietf.org" <netmod@ietf.org>, Berger Lou <lberger@labn.net>, IETF discussion list <ietf@ietf.org>, "t.p." <daedulus@btconnect.com>
Subject: Re: [netmod] Interim meetings - changing the way we work
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: <http://www.ietf.org/mail-archive/web/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: Thu, 05 Mar 2015 07:48:03 -0000

On 05/03/2015 05:41, Andy Bierman wrote:
> On Mon, Mar 2, 2015 at 1:23 PM, Benoit Claise <bclaise@cisco.com> wrote:
>> On 27/02/2015 16:03, t.p. wrote:
> ....
>
>>> I see 'netmod' as a poster child for this with its issue list, state
>>> machine for issues and so on.  Even though I was tracking the list when
>>> the 'Ynn' issue list was created, I don't know where its state machine
>>> came from.  In recent minutes, I don't know what
>>> "  AB: I am not sure YANG 1.0 specifies C1 explicitly somewhere.
>>>     JS: Does A3 not follow from A2?
>>>     KW: A3 is more a corollary of A2.
>>>     AB: The high-level problem is how to create and maintain the
>>>         information needed to achieve A4. "
>>>
>>> is about; a brief search of mailing list and I-Ds gave me no explanation
>>> for A2 to C1.
>> And what about an email to the NETMOD mailing list, asking this question?
>> How is this any different than meeting minutes on a physical meeting, on
>> which you would have a question?
>>
>
> IMO Juergen does a very good job of recording the minutes of every
> NETMOD interim.
> Here is the header from those minutes (that were taken out of context):
>
> * YANG 1.1 Conformance
> ** https://tools.ietf.org/html/draft-bjorklund-yang-conformance-problem-00
>
> This clearly indicates that the notes are about the draft identified above.
> These identifiers A1, C2, etc. are in the draft.
>
> The NETMOD and NETCONF WGs have been extra careful about
> getting verification on the WG mailing list before proceeding with proposed
> changes that originate in VI meetings.
+100

Regards, Benoit
>
>
>> Regards, Benoit
>
> Andy
>
>
>>>
>>> And if a different group of engineers works on different topics, then
>>> they will likely, in the absence of any guidance, use different
>>> technology, different terminology and end up with a way of working that
>>> is as alien to the first group.
>>>
>>> As I said, changing the way we work.
>>>
>>> Tom Petch
>>> </tp>
>>>
>>>
>>>
>>>
>>>
>>> --Tom
>>>
>>>
>>>> Lou
>>>>
>>>>> If you want a real example of how this can actually work, watch Anees
>>> explain how Open Config has done this with just weekly phone calls and a
>>> bunch of people typing on keyboards. They've done this in less than a
>>> year, and have rough consensus and (production) running code.  This is
>>> how the IETF used to operate: people got together, hacked code and got
>>> things working.  The goal was not having meetings, but producing code
>>> with rough consensus.
>>>>>
>>> https://code.facebook.com/posts/1421954598097990/networking-scale-recap
>>>>> --Tom
>>>>>
>>>>>
>>>>>
>>>>>> Yours,
>>>>>> Joel
>>>>>>
>>>>>> On 2/26/15 4:21 PM, Thomas D. Nadeau wrote:
>>>>>>>> On Feb 26, 2015:4:16 PM, at 4:16 PM, Brian E Carpenter
>>> <brian.e.carpenter@gmail.com> wrote:
>>>>>>>> On 27/02/2015 09:08, Thomas D. Nadeau wrote:
>>>>>>>>>> On Feb 26, 2015:2:42 PM, at 2:42 PM, Benson Schliesser
>>> <bensons@queuefull.net> wrote:
>>>>>>>>>> Nico Williams wrote:
>>>>>>>>>>> Yes, but a record that a concall or other interim meeting took
>>> place,
>>>>>>>>>>> and who attended, even if there are incomplete or missing
>>> minutes, is
>>>>>>>>>>> important for IPR reasons.  Ensuring that such meetings are
>>> NOTE WELL
>>>>>>>>>>> meetings is (should be) a priority, and that includes ensuring
>>> that a
>>>>>>>>>>> record of that much exists.
>>>>>>>>>>>
>>>>>>>>>>> Ideally the concalls and other interims would be recorded.
>>>>>>>>>> I agree completely. My point was that meeting records (including
>>> minutes) will inevitably be incomplete, or possibly inaccurate, and that
>>> relying on the mailing list as an authoritative record is more
>>> effective.
>>>>>>>>>> Of course it is disappointing that we can't meaningfully
>>> translate voice discussions into text, in the minutes or in mailing list
>>> threads. If there were some magic tool e.g. that took better minutes
>>> then I'd be happy to use it. But otherwise, I think we just have to
>>> trust chairs to manage WG collaboration in whatever way is most
>>> effective for their WG's collaborators.
>>>>>>>>> The first step is to agree that an A/V recording is record
>>> enough.
>>>>>>>> It absolutely is not enough. Please see my previous message,
>>>>>>>> and the relevant rules in RFC 2418.
>>>>>>>>
>>>>>>>>    Brian
>>>>>>> You are missing my point. RFC or not, the IETF needs to evolve.
>>>>>>>
>>>>>>> --Tom
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>>> Perhaps having meetbot/txt notes that at a min include
>>> actions/decisions like we do in the issue tracker we've used for
>>> NETMOD's Yang 1.1's issues.
>>>>>>>>> --Tom
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>> This will inevitably be suboptimal for some part of the
>>> population. (For instance, I've never been able to find an interim
>>> meeting time that fits the schedules of all attendees.) But if they (we)
>>> always revert to the mailing list for decision making then I suspect our
>>> work can remain open and transparent.
>>>>>>>>>> Cheers,
>>>>>>>>>> -Benson
>>>>>>>>>>
>>>>>>>>>>
>>>>
>>>>
>>> .
>>>
> .
>


From nobody Thu Mar  5 06:44:52 2015
Return-Path: <internet-drafts@ietf.org>
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 95B3C1A0015; Thu,  5 Mar 2015 06:44:50 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level: 
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9] 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 p2DaegH73yfn; Thu,  5 Mar 2015 06:44:49 -0800 (PST)
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id C9D9B1A0068; Thu,  5 Mar 2015 06:42:46 -0800 (PST)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: internet-drafts@ietf.org
To: <i-d-announce@ietf.org>
X-Test-IDTracker: no
X-IETF-IDTracker: 5.12.0.p2
Auto-Submitted: auto-generated
Precedence: bulk
Message-ID: <20150305144246.28655.36532.idtracker@ietfa.amsl.com>
Date: Thu, 05 Mar 2015 06:42:46 -0800
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/eq20Yp7eeGHtjRK70NYqpMd5KWg>
Cc: netmod@ietf.org
Subject: [netmod] I-D Action: draft-ietf-netmod-acl-model-02.txt
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
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: <http://www.ietf.org/mail-archive/web/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: Thu, 05 Mar 2015 14:44:50 -0000

A New Internet-Draft is available from the on-line Internet-Drafts directories.
 This draft is a work item of the NETCONF Data Modeling Language Working Group of the IETF.

        Title           : Network Access Control List (ACL) YANG Data Model
        Authors         : Dean Bogdanovic
                          Kiran Agrahara Sreenivasa
                          Lisa Huang
                          Dana Blair
	Filename        : draft-ietf-netmod-acl-model-02.txt
	Pages           : 27
	Date            : 2015-03-05

Abstract:
   This document describes a data model of Access Control List (ACL)
   basic building blocks.


The IETF datatracker status page for this draft is:
https://datatracker.ietf.org/doc/draft-ietf-netmod-acl-model/

There's also a htmlized version available at:
http://tools.ietf.org/html/draft-ietf-netmod-acl-model-02

A diff from the previous version is available at:
http://www.ietf.org/rfcdiff?url2=draft-ietf-netmod-acl-model-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/


From nobody Thu Mar  5 07:49:16 2015
Return-Path: <j.schoenwaelder@jacobs-university.de>
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 425041A1A2F for <netmod@ietfa.amsl.com>; Thu,  5 Mar 2015 07:49:16 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.86
X-Spam-Level: 
X-Spam-Status: No, score=-3.86 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] 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 EaGGoy-lNrzl for <netmod@ietfa.amsl.com>; Thu,  5 Mar 2015 07:49:14 -0800 (PST)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0F2281A1A37 for <netmod@ietf.org>; Thu,  5 Mar 2015 07:47:42 -0800 (PST)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id 7B626F87; Thu,  5 Mar 2015 16:47:41 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.220]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id MX4ul_oKkySU; Thu,  5 Mar 2015 16:47:20 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS; Thu,  5 Mar 2015 16:47:40 +0100 (CET)
Received: from localhost (demetrius4.jacobs-university.de [212.201.44.49]) by hermes.jacobs-university.de (Postfix) with ESMTP id 73D9820039; Thu,  5 Mar 2015 16:47:40 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius4.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id NDZqtBnXdrvR; Thu,  5 Mar 2015 16:47:39 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id 2A05C20036; Thu,  5 Mar 2015 16:47:36 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id 82CC4325DD9F; Thu,  5 Mar 2015 16:47:35 +0100 (CET)
Date: Thu, 5 Mar 2015 16:47:34 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Phil Shafer <phil@juniper.net>
Message-ID: <20150305154733.GC70762@elstar.local>
Mail-Followup-To: Phil Shafer <phil@juniper.net>, netmod@ietf.org
References: <20150224124249.GA170@elstar.local> <201502241437.t1OEbgLZ010318@idle.juniper.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <201502241437.t1OEbgLZ010318@idle.juniper.net>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/hL3YzqYU1puj92UlyAKXKDZOaZE>
Cc: netmod@ietf.org
Subject: Re: [netmod] VRFY :Y34: remove/deprecate/replace the 'anyxml' statement (2nd try)
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
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: <http://www.ietf.org/mail-archive/web/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: Thu, 05 Mar 2015 15:49:16 -0000

On Tue, Feb 24, 2015 at 09:37:42AM -0500, Phil Shafer wrote:
> Juergen Schoenwaelder writes:
> >I do not buy this argument. Y34 is addressing issues that have
> >surfaced with the usage of anyxml. Since we can't simple change the
> >semantics of anyxml (for backwards compatibility reasons), the obvious
> >solution is to create a replacement for the situations where "any data
> >that can be defined in YANG is needed" and to discourage the usage of
> >anyxml.
> 
> I don't understand the need to discourage the use of anyxml.  I
> don't get why it suddenly became scary or dangerous.  It's a chunk
> of XML data, which is a useful datatype regardless of the encoding
> scheme used to transport it.

We are not talking about a datatype. We are talking about arbitrary
XML inside of a data tree.
 
> anyxml is simple and easy to understand.  You may not like it or
> want to use it, but it's concrete and well defined.

It is clearly defined but I heard that implementations differ in their
support of it. And this becomes more clearly an issue in the light of
other encodings.

> In contrast, anydata implies something more intangible, where we
> are saying that there's a chunk of data here that has a data model,
> but you may not know what that model is.  This implies that you may
> or may not know how to marshal or unmarshal it, how to insert/delete/rename
> data within it, etc.  It's no longer a simple datatype.  It's alive,
> complex, and governed by unknown rules.  Yes, the server understands
> the data model (assumably), but it still seems wrong.

Anyxml says there is a chunk of arbitrary XML data, anydata says there
is a chunk of data that has a YANG data model. In other words, anydata
is a more constrained subset of anyxml. So I do not see how this could
be more intangible than anyxml. The main difference is that you can
actually apply different encoding rules to anydata while for anyxml
the encoding is hard wired (and there is not even a requirement that
there is a data model at all).

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Thu Mar  5 08:01:58 2015
Return-Path: <j.schoenwaelder@jacobs-university.de>
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 D8C7B1A00F4 for <netmod@ietfa.amsl.com>; Thu,  5 Mar 2015 08:01:55 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.86
X-Spam-Level: 
X-Spam-Status: No, score=-3.86 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] 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 4PZdvyzAAOoB for <netmod@ietfa.amsl.com>; Thu,  5 Mar 2015 08:01:51 -0800 (PST)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 318481A00E0 for <netmod@ietf.org>; Thu,  5 Mar 2015 08:01:51 -0800 (PST)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id B4D20ED4 for <netmod@ietf.org>; Thu,  5 Mar 2015 17:01:49 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.220]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id zY6ESTvYCEzo for <netmod@ietf.org>; Thu,  5 Mar 2015 17:01:28 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS for <netmod@ietf.org>; Thu,  5 Mar 2015 17:01:48 +0100 (CET)
Received: from localhost (demetrius1.jacobs-university.de [212.201.44.46]) by hermes.jacobs-university.de (Postfix) with ESMTP id 3FC7920036 for <netmod@ietf.org>; Thu,  5 Mar 2015 17:01:48 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius1.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id l6WryzdNDCRX; Thu,  5 Mar 2015 17:01:46 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id CC94C20039; Thu,  5 Mar 2015 17:01:45 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id 148CA325DEC1; Thu,  5 Mar 2015 17:01:44 +0100 (CET)
Date: Thu, 5 Mar 2015 17:01:44 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: netmod@ietf.org
Message-ID: <20150305160144.GA70944@elstar.local>
Mail-Followup-To: netmod@ietf.org
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="ReaqsoxgOBHFXBhH"
Content-Disposition: inline
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/G9dHSidQN4cNsdEKA228gPOiLDQ>
Subject: [netmod] minutes of the NETMOD 2015-03-04 virtual interim meeting
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
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: <http://www.ietf.org/mail-archive/web/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: Thu, 05 Mar 2015 16:01:56 -0000

--ReaqsoxgOBHFXBhH
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

Hi,

attached are the minutes of teh 2015-03-04 virtual interim meeting.
Please let me know if something needs fixing.

You can find all the virtual interim meeting minutes next to the YANG
1.1 issue list in the NETMOD WG subversion repository:

     http://svn.tools.ietf.org/svn/wg/netmod/yang-1.1/

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>

--ReaqsoxgOBHFXBhH
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="netmod-2015-03-04-minutes.txt"

=============================================================
NETCONF Data Modeling Language WG (netmod)
14th YANG 1.1 Virtual Interim
Wednesday, March 4th, 2015, 16:00-18:00 CET
Minutes Juergen Schoenwaelder
=============================================================

* Participants:

  JS = Juergen Schoenwaelder
  MB = Martin Bjorklund
  KW = Kent Watsen
  AB = Andy Bierman
  DR = Dan Romascanu
  LL = Lada Lhotka

* Y45 better conformance mechanism

  JS provided a solution proposal that was discussed and a bit fine
  tuned during the discussion. This will be added to the issue list
  as solution Y45-02.
  
    Scope of the work:

    - A conformance framework for defining conformance that can cut
      through sets of modules (and their features) may be needed at
      some point in time but it seems that this can be done later once
      there is more experience and such a conformance framework is not
      required to solve in YANG 1.1.

    Simple solution:

    - Typedefs must not change their value space or semantics. If this
      is needed, a new typedef needs to be created. This does not
      affect the ability to make bug fixes.

    - Groupings must not change their structure or semantics. If this
      is needed, a new grouping needs to be created. This does not
      affect the ability to make bug fixes.

    - Leafs can have their value space extended but this is not
      automatic.

    - The definition of 'deprecated' and 'obsolete' may need some
      clarification, the wording borrowed from SMIv2 may not be
      precise enough for configuration management.

    - We can consider to define RPCs that allow to retrieve possible
      value sets for certain types (or leafs?). But this does not have
      to be part of the YANG 1.1 specification; this could also be
      part of the YANG library (and such RPCs might even be an
      optional feature).

  Discussion
	
  AB: This could lead to corner cases for enums that get updated
      regularly.
  MB: But in such cases, identities might be a better option.
  MB: Can we allow to add enums if they are scoped by a new feature?
  KW: This seems to be OK.
  AB: But the client has no control if the feature is enabled, so this
      can't be done.
	 
  MB: Does this imply that import-by-revision is not needed anymore?
  JS: Probably simplest to leave import-by-revision as is. It likely
      won't be used anymore since importing a specific revision does
      not add value (the latest revision always works). It merely
      documents which revision was used when a module was published.
	 
  AB: What about include-by-revision?
  MB: This may still be useful. I usually use include-by-revision but
      never import-by-revision.
	 
  AB: What about augment drift?
  MB: I believe an import-by-revision in this case means
      import-by-min-revision.
  AB: I may have must statements in my augmenting module that make
      assumptions about the value space of the leafs being augmented.
  AB: There probably should be guidelines how to write must statements
      that are update friendly.
	 
  MB: Instead "if module implemented it needs to be advertised" write
      "if module advertised it has been implemented" to allow in the
      future to add other ways to define and communicate conformance.

  MB: If I have a new conformance mechanism and I only implement a
      module partially, do I still advertise the module?
  JS: No, you do not implement the module so you do not advertise
      it. You likely advertise the new future conformance statement
      instead.

  MB: Any NETCONF specific text needs to be clearly marked since protocols
      may differ how announcements are implemented.
 
  AB: On constrained devices, the YANG library may not be local to the
      device.

  Everybody seemed to be OK with Y45-02. JS to add it to the issues list
  and to start a verification on the list.

* Y34 remove/deprecate/replace the 'anyxml' statement

  AB: anyxml is terminal, there is no schema data within anyxml,
      except when we use it that way since we have no other choice.
  AB: I think my current thinking aligns with what the proposal is.
  
  KW: The logical extension of anyxml would be anyblob.
  JS: But this should be avoided since the goal is interoperability.
  LL: I like anyblob, anyxml was just a misnomer.
  MB: But in YANG patch, we do not want anyblob - we want YANG data.
  AB: I need the server to be encoding independent and I do not want
      encoding specific information in the schema.
  AB: Inside the server, there is no encoding. Encoding is something
      that happens when data is serialized.
  MB: LL, can you live with the current proposal?
  LL: Yes. But even with anydata we might not have a complete solution.
  MB: It is important to define how anydata is encoded in the various
      encodings, it is not an issue if the encoding of anyxml is not
      well defined in all encodings.
  
  Everybody seemed to be OK with Y34-05. JS to try another consensus
  call on the mailing list.

* Y18 fix "when" expression context problem

  MB: Shall we verify Y18-01 on the mailing list?
  LL: I think I made some comments on the mailing list. I think your
      proposal is to introduce a temporary context node.
  MB: When would there be multiple instances? I guess leaf-lists. This
      may be a corner case.
  LL: I think the text should deal with the situation if there are
      multiple context nodes.
  MB: Your proposed text says if there is one, use it. If not, create
      a temporary one. Does it matter if there are multiple candidates?
  LL: I think we should say something, even if it is pick one of the many.
  MB: I will update the issue with this input.
  AB: If the particular node has instances, then the instances are evaluated.
  
  Like last time, we tasked MB and LL to work out a new proposal that
  covers the corner cases.

* Y25 make enum numbering purely informative and optional

  LL: OK with declaring this dead if protocols start using the numeric
      value. MB should update the text that other encodings may use
      the numeric values.
  MB: Perhaps remove all encoding specific discussion and statements
      that the numeric value is not used.
	
  Everybody seems to be happy with Y25-02.

--ReaqsoxgOBHFXBhH--


From nobody Thu Mar  5 13:53:14 2015
Return-Path: <j.schoenwaelder@jacobs-university.de>
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 CEACC1A907F for <netmod@ietfa.amsl.com>; Thu,  5 Mar 2015 13:53:12 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.86
X-Spam-Level: 
X-Spam-Status: No, score=-3.86 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] 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 MLQ9_UTk5Wvh for <netmod@ietfa.amsl.com>; Thu,  5 Mar 2015 13:53:10 -0800 (PST)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id AD4761A9025 for <netmod@ietf.org>; Thu,  5 Mar 2015 13:53:09 -0800 (PST)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id 1E45C8FC; Thu,  5 Mar 2015 22:53:08 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.220]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id Nk8dE6uRPF7m; Thu,  5 Mar 2015 22:52:45 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS; Thu,  5 Mar 2015 22:53:07 +0100 (CET)
Received: from localhost (demetrius4.jacobs-university.de [212.201.44.49]) by hermes.jacobs-university.de (Postfix) with ESMTP id B5DB020036; Thu,  5 Mar 2015 22:53:06 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius4.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id KvYEWYmo-oTs; Thu,  5 Mar 2015 22:53:05 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id AD16A20039; Thu,  5 Mar 2015 22:53:04 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id D8BF7325E609; Thu,  5 Mar 2015 22:53:02 +0100 (CET)
Date: Thu, 5 Mar 2015 22:53:02 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Per Hedeland <per@tail-f.com>
Message-ID: <20150305215302.GA71800@elstar.local>
Mail-Followup-To: Per Hedeland <per@tail-f.com>, "netmod@ietf.org" <netmod@ietf.org>
References: <20150213212033.GA54556@elstar.local> <CABCOCHSQxLCPdQOJZL1sNNLbjwiLYrHPAVX3PH9hAe7qQ+B2PQ@mail.gmail.com> <20150214090753.GA70455@elstar.local> <54DF382A.2030508@tail-f.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <54DF382A.2030508@tail-f.com>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/MAyi72d_qeOQyTRTlWYnvFIdQRo>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] Y25 new solution Y25-02
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
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: <http://www.ietf.org/mail-archive/web/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: Thu, 05 Mar 2015 21:53:13 -0000

Hi,

I see that the original text for Y25-02 can be mis-interpreted. Based
on your input, I have updated Y25-02 to read as follows:

  Keep the auto-numbering procedure for enums and bits and add an
  explicit warning that inserting enum or bits definitions or
  reordering enum or bits definitions violates section 10 and causes
  interoperability problems unless explicit value assignments are
  used.

  The guidelines document may add further rules such that enum/bits
  values must be explicitly defined in IETF modules (to be discussed
  in the context of the guidelines document).

  Remove the following sentence:

    The value is unused by YANG and the XML encoding, but is carried
    as a convenience to implementors.

It seems this resolves this issue. Since there are edit to be done, I
will start a VRFY to move this into the EDIT state.

/js

On Sat, Feb 14, 2015 at 12:57:30PM +0100, Per Hedeland wrote:
> On 2015-02-14 10:07, Juergen Schoenwaelder wrote:
> > On Fri, Feb 13, 2015 at 01:41:06PM -0800, Andy Bierman wrote:
> >> On Fri, Feb 13, 2015 at 1:20 PM, Juergen Schoenwaelder
> >> <j.schoenwaelder@jacobs-university.de> wrote:
> >>> Hi,
> >>>
> >>> Y25 (make enum numbering purely informative and optional) has been
> >>> discussed but no clear concensus has been reached so far. Y25-01
> >>> proposes to remove the auto-numbering mechanism. With the appearance
> >>> of a CBOR encoding proposal [1], the numeric values may actually be
> >>> used on the wire. An alternative is to keep the auto-numbering
> >>> mechanism but to clarify the risks, this is what I have written up as
> >>> solution Y25-02:
> >>>
> >>> ** Solution Y25-02
> >>>
> >>>   Keep the auto-numbering procedure for enums and bits and add an
> >>>   explicit warning that inserting enum definitions or reordering of
> >>>   enum definitions very likely causes interoperability problem and
> >>>   that explicit value assignments avoid this problem.
> >>
> >> This is not really keeping the current procedure.
> >> Currently, the auto-numbering is mandatory, and sec 10.
> >> clearly prohibits changing any value or position statement.
> >>
> >> IMO Y25 should be declared DEAD and the YANG 1.0 behavior
> >> not changed at all.
> >>
> >> You are proposing that Sec. 10 be changed so renumbering is
> >> a warning, not a violation of the standard.
> >>
> > 
> > Have you read the text? I fail to see how the text implies that
> > existing behaviour changes. It is about adding an explicit warning.
> > Please explain.
> 
> Since I came to the exact same conclusion as Andy (after reading the
> text, but before reading Andy's message), I'll explain why I did that.
> 
> 1. The proposal doesn't actually solve any of the alleged problems in
> Y25 unless the rule in section 10 is removed.
> 
> 2. The proposal explicitly mentions keeping the auto-numbering scheme,
> but has no mention of the rule in section 10.
> 
> 3. Adding a vague warning against something that is explicitly forbidden
> by another part of the spec doesn't make any sense IMHO, and is likely
> to result in confusion and risk for the rule to be overlooked.
> 
> Thus for me, the only reasonable conclusion was that you were
> (implicitly) proposing that the rule in section 10 should be removed.
> If this is not the case, i.e. you are proposing that both the
> auto-numbering and the section 10 rule should be retained, but that
> warning(s) should be added, I would suggest this text:
> 
>     Keep the auto-numbering procedures and the restrictions in section 10
>     for enum values and bit positions, but add
> 
> - followed by one or both of:
> 
> a)  a warning that inserting or reordering enum or bit definitions will
>     cause a violation of the rules in section 10, unless explicit
>     value/position assignments are used
> 
> b)  a motivation (in section 10) of the rules in section 10, saying that
>     changes to the values/positions may cause interoperability problems
>     (perhaps also: and lose or at least significantly reduce the
>     "convenience to implementors", since the values cannot be assumed to
>     be stable)
> 
> Item a) would be quite useful IMO - actually I believe that this came as
> a surprise to some of the participants in the "time zone discussion",
> and the fact that it did so was a major cause of the perception of
> "difficulty".
> 
> There's nothing wrong with b), but none of the other "itemized" rules
> have any motivating text. This sounds like a separate issue, "Add
> motivation to all the rules in section 10" (I don't personally think it
> is important to do so though).
> 
> --Per
> 
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Thu Mar  5 13:59:44 2015
Return-Path: <j.schoenwaelder@jacobs-university.de>
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 C364A1A907D for <netmod@ietfa.amsl.com>; Thu,  5 Mar 2015 13:59:42 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.86
X-Spam-Level: 
X-Spam-Status: No, score=-3.86 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] 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 2fbBA08WcM3h for <netmod@ietfa.amsl.com>; Thu,  5 Mar 2015 13:59:41 -0800 (PST)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 94C9F1A897A for <netmod@ietf.org>; Thu,  5 Mar 2015 13:59:41 -0800 (PST)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id 3298A8FC for <netmod@ietf.org>; Thu,  5 Mar 2015 22:59:39 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.220]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id yXo_ldEkbgIz for <netmod@ietf.org>; Thu,  5 Mar 2015 22:59:16 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS for <netmod@ietf.org>; Thu,  5 Mar 2015 22:59:38 +0100 (CET)
Received: from localhost (demetrius1.jacobs-university.de [212.201.44.46]) by hermes.jacobs-university.de (Postfix) with ESMTP id 696B820039 for <netmod@ietf.org>; Thu,  5 Mar 2015 22:59:38 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius1.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id ZJAQiXuPQbby; Thu,  5 Mar 2015 22:59:37 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id 579CD20036; Thu,  5 Mar 2015 22:59:37 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id 9E072325E664; Thu,  5 Mar 2015 22:59:36 +0100 (CET)
Date: Thu, 5 Mar 2015 22:59:36 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: netmod@ietf.org
Message-ID: <20150305215936.GA71881@elstar.local>
Mail-Followup-To: netmod@ietf.org
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/6toBYIJH27dJWjEgdeAwLHVf3kk>
Subject: [netmod] VRFY :Y25: make enum numbering purely informative and optional
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
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: <http://www.ietf.org/mail-archive/web/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: Thu, 05 Mar 2015 21:59:42 -0000

Hi,

Following the mailing list discussions and the 2015-03-04 virtual
interim meeting discussions, the proposal is to adopt Y25-02. Please
speak up by Friday 2015-03-13 if you disagree with this proposal.

For more details, see the issues list and the virtual interim meeting
minutes available here:

     http://svn.tools.ietf.org/svn/wg/netmod/yang-1.1/

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Thu Mar  5 14:19:02 2015
Return-Path: <j.schoenwaelder@jacobs-university.de>
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 D58991A894F for <netmod@ietfa.amsl.com>; Thu,  5 Mar 2015 14:19:00 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.86
X-Spam-Level: 
X-Spam-Status: No, score=-3.86 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] 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 ANkYfvDCKPCX for <netmod@ietfa.amsl.com>; Thu,  5 Mar 2015 14:18:59 -0800 (PST)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 711691A8939 for <netmod@ietf.org>; Thu,  5 Mar 2015 14:18:58 -0800 (PST)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id 616BC1300 for <netmod@ietf.org>; Thu,  5 Mar 2015 23:18:56 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.220]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id UChW4oH0XVQp for <netmod@ietf.org>; Thu,  5 Mar 2015 23:18:34 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS for <netmod@ietf.org>; Thu,  5 Mar 2015 23:18:55 +0100 (CET)
Received: from localhost (demetrius1.jacobs-university.de [212.201.44.46]) by hermes.jacobs-university.de (Postfix) with ESMTP id B37EF20039 for <netmod@ietf.org>; Thu,  5 Mar 2015 23:18:55 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius1.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id uUclm_0D94TE; Thu,  5 Mar 2015 23:18:55 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id AEA8720036; Thu,  5 Mar 2015 23:18:54 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id C4368325E6EA; Thu,  5 Mar 2015 23:18:53 +0100 (CET)
Date: Thu, 5 Mar 2015 23:18:53 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: netmod@ietf.org
Message-ID: <20150305221849.GA71969@elstar.local>
Mail-Followup-To: netmod@ietf.org
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/KUVizLEqE3x7EnUmoWeEGaXHA0c>
Subject: [netmod] VRFY :Y45: better conformance mechanism
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
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: <http://www.ietf.org/mail-archive/web/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: Thu, 05 Mar 2015 22:19:01 -0000

Hi,

the 2014-12-03 virtual interim meeting proposal is to adopt Y45-02.
Please speak up by Friday 2015-03-13 if you disagree with this
proposal.

For more details, see the issues list and the virtual interim meeting
minutes available here:

     http://svn.tools.ietf.org/svn/wg/netmod/yang-1.1/

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Thu Mar  5 23:32:04 2015
Return-Path: <j.schoenwaelder@jacobs-university.de>
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 2F2B91ACD07 for <netmod@ietfa.amsl.com>; Thu,  5 Mar 2015 23:32:03 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.86
X-Spam-Level: 
X-Spam-Status: No, score=-3.86 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] 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 qpBnyIwMmELZ for <netmod@ietfa.amsl.com>; Thu,  5 Mar 2015 23:32:01 -0800 (PST)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9118F1ACCFD for <netmod@ietf.org>; Thu,  5 Mar 2015 23:32:00 -0800 (PST)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id 34325A8D; Fri,  6 Mar 2015 08:31:59 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.220]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id aS_jObBBJDAz; Fri,  6 Mar 2015 08:31:34 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS; Fri,  6 Mar 2015 08:31:58 +0100 (CET)
Received: from localhost (demetrius3.jacobs-university.de [212.201.44.48]) by hermes.jacobs-university.de (Postfix) with ESMTP id 55FA82003A; Fri,  6 Mar 2015 08:31:58 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius3.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id FE8KmQBuUZah; Fri,  6 Mar 2015 08:31:57 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id 9F3FF20036; Fri,  6 Mar 2015 08:31:56 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id C0F70325EE8C; Fri,  6 Mar 2015 08:31:54 +0100 (CET)
Date: Fri, 6 Mar 2015 08:31:53 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Balazs Lengyel <balazs.lengyel@ericsson.com>
Message-ID: <20150306073151.GA72935@elstar.local>
Mail-Followup-To: Balazs Lengyel <balazs.lengyel@ericsson.com>, "netmod@ietf.org" <netmod@ietf.org>
References: <54DB5A20.1030707@ericsson.com> <CABCOCHR=-cxhB9h8orJkeJUum3AVd+46p7s5_0AXhLPzR9N-DA@mail.gmail.com> <54E49AC2.9070101@ericsson.com> <20150218142741.GB27885@elstar.local> <54ECB803.5060107@ericsson.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <54ECB803.5060107@ericsson.com>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/oL00Ajq8fQnXBlCCJV__P8ZYjhk>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] Y57: non-unique leaf-list
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
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: <http://www.ietf.org/mail-archive/web/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, 06 Mar 2015 07:32:03 -0000

On Tue, Feb 24, 2015 at 06:42:27PM +0100, Balazs Lengyel wrote:
> Hello Juergen,
> 1) You misunderstood me. What is now under Y57-3 is actually a merge of 
> Y57-1 and Y57-2.
> -1 and -2 were never alternatives, they were two parts of the same 
> proposal, so to make life easier they should be merged. Please remove 
> the current -1 and -2 and use the updated/attached version of  -3 as the 
> one and only new -1 proposal.

You could have mentioned this earlier. Anyway, I prefer to keep the
numbering stable.
 
> 2) About, motivation (a.k.a problem statement) I propose to change the 
> beginning of the text to:
> "In the number of cases we need to model a list of simple items that do 
> not need or have a key value. Leaf-lists are used for this in YANG. 
> However sometimes a value needs to be included multiple times in the 
> leaf-list.  In YANG 1.0 all values in a leaf-list MUST be unique. The 
> proposal is to relax this in YANG 1.1.
> Examples where nonUnique leaf-list are needed include:
> - list of AS-Paths
> - list of queuing weights in a scheduler"
> 
> So the new text of Y57 considering 1) and 2) above should be the text I 
> attached here. That should replace everything that is in Y57 today.

I have updated the problem statement and Y57-03 with the new
text. Please check that I got this right this time. Note that it helps
me quite a bit if you send a unified context diff towards the
issues.txt file.
 
> 3) As there were no opposing emails on the list can we move it forward 
> to EDIT status?

No. I think this needs some review and discussion and since we do an
explicit VFRY on all issues, we will do this here as well. The first
step is to make sure what what is now in Y57-03 is correct.

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Thu Mar  5 23:39:43 2015
Return-Path: <j.schoenwaelder@jacobs-university.de>
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 E79A21ACD0B for <netmod@ietfa.amsl.com>; Thu,  5 Mar 2015 23:39:41 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.86
X-Spam-Level: 
X-Spam-Status: No, score=-3.86 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] 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 ns3Hr_vwtlkQ for <netmod@ietfa.amsl.com>; Thu,  5 Mar 2015 23:39:39 -0800 (PST)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9E0431ACD0A for <netmod@ietf.org>; Thu,  5 Mar 2015 23:39:39 -0800 (PST)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id 5641A1030 for <netmod@ietf.org>; Fri,  6 Mar 2015 08:39:38 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.220]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id FODRYrTUO8Uh for <netmod@ietf.org>; Fri,  6 Mar 2015 08:39:13 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS for <netmod@ietf.org>; Fri,  6 Mar 2015 08:39:37 +0100 (CET)
Received: from localhost (demetrius2.jacobs-university.de [212.201.44.47]) by hermes.jacobs-university.de (Postfix) with ESMTP id 9406E20039 for <netmod@ietf.org>; Fri,  6 Mar 2015 08:39:37 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius2.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id Ap4fpeVUACMd; Fri,  6 Mar 2015 08:39:37 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id C771C20036; Fri,  6 Mar 2015 08:39:36 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id 85B06325EEE8; Fri,  6 Mar 2015 08:39:35 +0100 (CET)
Date: Fri, 6 Mar 2015 08:39:34 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: netmod@ietf.org
Message-ID: <20150306073932.GA73050@elstar.local>
Mail-Followup-To: netmod@ietf.org
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/cvUNsRLFe2VmY-cYN8j8XQKyHj0>
Subject: [netmod] yang 1.1 status summary
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
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: <http://www.ietf.org/mail-archive/web/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, 06 Mar 2015 07:39:42 -0000

Hi,

here is where we are with the YANG 1.1 effort.

  | Status | Description                            | Count |
  |--------+----------------------------------------+-------|
  | NEW    | new issue                              |     1 |
  | DEAD   | issue has been rejected                |    26 |
  | OPEN   | open to discuss                        |     4 |
  | VRFY   | proposal to verify on the list         |     3 |
  | EDIT   | waiting for Martin to do the edits     |     5 |
  | REVIEW | waiting for the WG to review the edits |    21 |
  | DONE   | review has completed                   |     0 |
  |--------+----------------------------------------+-------|

These are the issues still open/new:

* OPEN :Y18: fix "when" expression context problem...
* OPEN :Y26: allow mandatory nodes in augment
* OPEN :Y36: associate a notification with a data node
* OPEN :Y57: non-unique leaf-list
* NEW :Y60: Coexistence with YANG 1.0

These are the issues under verification:

* VRFY :Y25: make enum numbering purely informative and optional
* VRFY :Y34: remove/deprecate/replace the 'anyxml' statement
* VRFY :Y45: better conformance mechanism

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Fri Mar  6 02:48:18 2015
Return-Path: <bclaise@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 039261A1A58 for <netmod@ietfa.amsl.com>; Fri,  6 Mar 2015 02:48:16 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.181
X-Spam-Level: 
X-Spam-Status: No, score=-5.181 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, HTML_IMAGE_ONLY_24=1.618, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, T_DKIM_INVALID=0.01, T_RP_MATCHES_RCVD=-0.01, WEIRD_PORT=0.001] 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 vm8dSooFDTsB for <netmod@ietfa.amsl.com>; Fri,  6 Mar 2015 02:48:13 -0800 (PST)
Received: from aer-iport-4.cisco.com (aer-iport-4.cisco.com [173.38.203.54]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9B9D01A1A43 for <netmod@ietf.org>; Fri,  6 Mar 2015 02:48:11 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=871822; q=dns/txt; s=iport; t=1425638891; x=1426848491; h=message-id:date:from:mime-version:to:cc:subject; bh=56Y2RVQFDYxDHMq47+rHEXqRI/rVPgg212J0F46mImo=; b=JT2Z/Xn+QxX4l9Mt25A1H1xClLCH1cgcy119K53lHsKigf4IbhhrLO0D Rzq12+Hdgn244ApJi9SSGuxCcNxwQhUQGqZKaSngRzLVMDuB0IHU1NTYX jZTjWixYYO7HJtEi6DEhOugSVtay40mgYrqUwmvmeS3JrPaEuddVqzGl/ Q=;
X-Files: ebafdgaa.png, ghhaeefj.png : 354005, 279070
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0CeBADRhPlU/xbLJq3OYQECAgE
X-IronPort-AV: E=Sophos;i="5.11,352,1422921600";  d="png'150?scan'150,208,217,150";a="367328443"
Received: from aer-iport-nat.cisco.com (HELO aer-core-1.cisco.com) ([173.38.203.22]) by aer-iport-4.cisco.com with ESMTP; 06 Mar 2015 10:48:09 +0000
Received: from [10.60.67.85] (ams-bclaise-8914.cisco.com [10.60.67.85]) by aer-core-1.cisco.com (8.14.5/8.14.5) with ESMTP id t26Am4A3030984; Fri, 6 Mar 2015 10:48:04 GMT
Message-ID: <54F985E2.6020304@cisco.com>
Date: Fri, 06 Mar 2015 11:48:02 +0100
From: Benoit Claise <bclaise@cisco.com>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0
MIME-Version: 1.0
To: NETMOD Working Group <netmod@ietf.org>
Content-Type: multipart/alternative; boundary="------------010109000901070900060505"
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/rG0wG4gtSbCMmdm3UXGub7Qo8_A>
Cc: draft-dong-i2rs-network-inventory@tools.ietf.org, "i2rs-chairs@tools.ietf.org" <i2rs-chairs@tools.ietf.org>
Subject: [netmod] Inventory YANG model (entity-MIB)
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: <http://www.ietf.org/mail-archive/web/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, 06 Mar 2015 10:48:16 -0000

This is a multi-part message in MIME format.
--------------010109000901070900060505
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit

Dear all,

The I2RS interim meeting yesterday focused on topology.
Let me cut/paste a high level slide, with pointers to the relevant drafts.


If interested, the meeting minutes are at 
http://etherpad.tools.ietf.org:9000/p/i2rs-interim-march-5-2015-v-bluesheets

Part of the inventory draft 
(http://datatracker.ietf.org/doc/draft-dong-i2rs-network-inventory/) 
discussion, the overlap with the ENTITY-MIB RFC 6933 was discussed (and 
RFC 7223 btw).


The message was that I2RS should not re-invent something similar to the 
ENTITY-MIB
So, are you aware of any initiatives to "YANGify" the ENTITY-MIB?
It's true that there is a way to translate MIB into YANG with RFC 6643. 
This could be a good start. However, I wonder if a hand-written YANG 
model that closely follows the entPhysical would not be more beneficial.
Is this something we should take on board in NETMOD?

What do you think?

Note: As commented by the I2RS people, indexing is appropriate in the 
MIB module for its original purpose, but may not be for the topology. 
I'm not sure we want to change the indexing just for the topology, but 
the integration within the topology draft should be thought of.

Regards, Benoit


--------------010109000901070900060505
Content-Type: multipart/related;
 boundary="------------030200070401080801070406"


--------------030200070401080801070406
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 7bit

<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Dear all,<br>
    <br>
    The I2RS interim meeting yesterday focused on topology.<br>
    Let me cut/paste a high level slide, with pointers to the relevant
    drafts.<br>
    <img src="cid:part1.03010208.01090706@cisco.com" alt=""><br>
    <br>
    If interested, the meeting minutes are at
<a class="moz-txt-link-freetext" href="http://etherpad.tools.ietf.org:9000/p/i2rs-interim-march-5-2015-v-bluesheets">http://etherpad.tools.ietf.org:9000/p/i2rs-interim-march-5-2015-v-bluesheets</a><br>
    <br>
    Part of the inventory draft (<span style="color:#1F497D"><a
        class="moz-txt-link-freetext"
href="http://datatracker.ietf.org/doc/draft-dong-i2rs-network-inventory/">http://datatracker.ietf.org/doc/draft-dong-i2rs-network-inventory/</a>)
      discussion, </span>the overlap with the ENTITY-MIB RFC 6933 was
    discussed (and RFC 7223 btw).<br>
    <img src="cid:part3.00070209.04070808@cisco.com" alt=""><br>
    <br>
    The message was that I2RS should not re-invent something similar to
    the ENTITY-MIB<br>
    So, are you aware of any initiatives to "YANGify" the ENTITY-MIB?<br>
    It's true that there is a way to translate MIB into YANG with RFC
    6643. This could be a good start. However, I wonder if a
    hand-written YANG model that closely follows the entPhysical would
    not be more beneficial.<br>
    Is this something we should take on board in NETMOD?<br>
    <br>
    What do you think?<br>
    <br>
    Note: As commented by the I2RS people, <span
      class="author-a-88z73zz90zz76zvz77zliz87zz122zz65z3z69zz81z5">indexing
      is appropriate in the MIB module for its original purpose, but may
      not be for the topology. </span>I'm not sure we want to change
    the indexing just for the topology, but the integration within the
    topology draft should be thought of.<br>
    <br>
    Regards, Benoit<br>
    <br>
  </body>
</html>

--------------030200070401080801070406
Content-Type: image/png;
 name="ebafdgaa.png"
Content-Transfer-Encoding: base64
Content-ID: <part1.03010208.01090706@cisco.com>
Content-Disposition: inline;
 filename="ebafdgaa.png"

iVBORw0KGgoAAAANSUhEUgAABDoAAAM5CAIAAABpfMbOAAAgAElEQVR4nOydVVxU29vHh+4O
CaU7LUKUVkQEJQwsBMUARaVVRCXERiVU7C7sY4GgiBwLUFSU7hpyKOmB92K97s/+zwzjwPEo
eJ7vxbk47tmsXWut35OEAQAAAAAAAAAAgBEJ4XcPAAAAAAAAAAAAgDYgVwAAAAAAAAAAGKGA
XAEAAAAAAAAAYIQCcgUAAAAAAAAAgBEKyBUAAAAAAAAAAEYoIFcAAAAAAAAAABihgFwBAAAA
AAAAAGCEAnIFAAAAAAAAAIARCsgVAAAAAAAAAABGKCBXAAAAAAAAAAAYoYBcAQAAAAAAAABg
hAJyBQAAAAAAAACAEQrIFQAAAAAAAAAARiggVwAAAAAAAAAAGKGAXAEAAAAAAAAAYIQCcgUA
AAAAAAAAgBEKyBUAAAAAAAAAAEYoIFcAAAAAAAAAABihgFwBAAAAAAAAAGCEAnIFAAAAAAAA
AIARCsgVAAAAAAAAAABGKCBXAAAAAAAAAAAYoYBcAQAAAAAAAABghAJyBQAAAAAAAACAEQrI
FQAAAAAAAAAARiggVwAAAAAAAAAAGKGAXAEAAAAAAAAAYIQCcgUAAAAAAAAAgBEKyBUAAAAA
AAAAAEYoIFcAAAAAAAAAABihgFwBAAAAAAAAAGCEAnIFAAAAAAAAAIARCsgVAAAAAAAAAABG
KCBXAAAAAAAAAAAYoYBcAQAAAAAAAABghAJyBQAAAAAAAACAEQrIFQAAAAAAAAAARiggVwAA
AAAAAAAAGKGAXAEAAAAAAAAAYIQCcgUAAAAAAAAAgBEKyBUAAAAAAAAAAEYoIFcAAAAAAAAA
ABihgFwBAAAAAAAAAGCEAnIFAAAAAAAAAIARCsgVAAAAAAAAAABGKCBXAAAAAAAAAAAYoYBc
AQAAAAAAAABghAJyBQAAAAAAAACAEQrIFQAAAAAAAAAARiggVwAAAAAAAAAAGKGAXAEAAAAA
AAAAYIQCcgUAAAAAAAAAgBEKyBUAAAAAAAAAAEYoIFcAAAAAAAAAABihgFwBAAAAAAAAAGCE
AnIFAAAAAAAAAIARCsgVAAAAAAAAAABGKCBXAAAAAAAAAAAYoYBcAQAAAAAAAABghAJyBQAA
AAAAAACAEQrIFQAAAAAAAAAARiggVwAAAAAAAAAAGKGAXAEAAAAAAAAAYIQCcgX4D9HX19fR
0VFfX19bW9vQ0NDZ2dnX1/e7BzUi6O/v7+rqam5urqura21t7erq6uvr6+/v/93jAv4pvb29
7e3tdXV1JBKps7Ozt7eXTCb/7kGNYvr7+3t7ez9+/Hj16tWLFy/evHkzNTW1ra3td4/rV0Ai
kW7dunXu3Llr164lJCQUFxf/7hEBw6G/v7+np4dEIjU0NDQ0NDQ3N3d0dJDJZJjwgZEMyBXg
P0RDQ8PHjx8fPXp0586dx48fZ2dnNzY2/u5BjQg6OjqysrKePn16//7958+f5+TkNDc3g5b7
A6ioqEhNTb1//35iYmJmZmZdXV1XV9fvHtQopre3t66uLiYmxsLCYtq0aQ4ODiEhIdXV1b97
XL+CwsLCefPm6evrW1paLl++/O7du729vbDHHXV0d3cTicSUlJQHDx48fPgwKSmpoKCgu7sb
HiUwkgG5AvyHSEhIWLVq1YQJExQVFSdOnLhu3bqkpKTfPagRQUFBga2trYqKipKSkoqKip+f
X3p6+rdv3373uIB/SnR0tKqqqpKSkrKy8owZMx4/flxbW/u7BzWKaW5ufvz48ZIlS/j4+Hh5
eXV0dDZs2FBeXv67x/Ur+Pr166RJk3h4ePj5+UVERLZv315fX9/b2/u7xwUMjbq6uidPnlhY
WKBpQV1d/fDhw52dnX+q3xUcR38Go0yu9Pf3d3Z2lpeX5+Xl5eTk5OXl5eXl5X6noKCgpqam
oaGBRCK1trZ2d3f/7vECI4vr169bWVnx8/MTCAQBAQE7O7tbt279w3OSyeSuri4ikZifn5+T
k1NaWtrU1DTq/BLZ2dmampqE7yxZsuS/E+LyZ7Nz507ssSooKNy4caOqqup3D2oUU1FRERgY
qK2tjW7prFmzLl26NJiTFkXdEInEXCry8vKKioqqq6tJJFJzc3NbW9vP2i92d3dXVlYWFBTk
5OTk5ORUVVV9+/btp5y5tLTU3d1dQUEBXbu9vf3du3dJJNI/PC2JRCoqKsIv5f+EnJyckuLS
hrpG0FGDUV1dHR8fr6ioiJ4jMzNzcHDwn+Rd6e7urqiouHjx4pEjRw4dOhQdHf3ixQuIFxjt
jDK50tbWlp+ff/Xq1aNHj0ZFRcXExMTGxsZ85/jx4zdv3nz48GFCQsLz588zMjIKCgqqqqpI
JFJXV9cf8ykCw+bq1asWFhZ8fHxIrsyaNSs+Pv4fnrO7u7u0tPTJkydHjx49cuTI+fPnU1JS
Wltbf8qAfxkgV/5UqOXKfyRy6d+gp6cnKyvL2NiYl5eXmZmZk5PT39+/qqqqp6eH5vEdHR05
OTn37t2Ljo6O+V9iY2NPnjwZHx+fmJiYlJSUkpLy5s2b3Nzcmpqatra2YasLMpnc0NBw9+7d
EydOREVFRUVFPXr0qLS09KcY70gk0u3bt+fOnYteJ1VV1XXr1pWVlQ37hGQyuaOj4+3bt6dO
ncIv5f+EI1FHLpy7mJL0orUVpi/aUMgVAoEQHBz8JyUr1tfXJyQkmJmZjRs3TlpaWlFRMSgo
KDc3t7Oz83cPDRg+o0yuZGRk7Nq1a/LkyTK0kJWVVVRURP5NVVVVPT29uXPnBgcH3717t6io
CCK2gWvXrllaWmLeFRsbm5s3b/7Dc9bX1585c2b+/PkyMjLjxo1TUFCwtbUtKCj4KQP+ZVDL
lZcvX4Jc+QMAufITqampuXXrlqqqKtIqampqMTExPT09NPd5ZDK5qKjI3d194sSJdBYsFRUV
FRUVVVVVXV1dOzu7iIiItLS0YX96XV1dWVlZtra2SkpKaEZauXLlkydPWlpa/tmlDwwMDPT1
9ZFIpICAAPQ6cXFxTZkyJTs7e9jiqqOj4+PHj35+fnJycjRv0TAYN26ctrb2smXLoBLAYPzx
ciUzMzMsLExOTo6dnZ2NjY2Dg2P+/Pn379//555A4DcyyuTKgwcPnJ2dhYWFCQzAwcEhLi4+
ceJEe3v7LVu2PH/+nEgk/u4rGD4oEK60tPTLly/Z2dlEIrGjo+N3D2qU8W/Ilbq6umPHjpmb
m6O3jo2NbdKkSV+/fv0pA/5lgFz5U6GQK/Hx8X+eXEFG+pqamry8vC9fvpSVlbW0tPwbgR/J
ycmrV68WExMjEAgiIiLLli17/PjxYAf39fV9/vx5ypQpXFxcjCxYrKysYmJiBgYGbm5uhw4d
Sk1NHUZYaU9PT2Zmpq6uLgsLCzqtvb39vXv3fuJGLSoqSkZGhp2dnYmJSVFR8erVqxUVFcM7
VXt7+6tXr5YtW8bI/WEcAQGB6dOn5+Xl/axL/sP44+VKamrqhg0bxMXFsQu0srI6e/ZsQ0PD
7x4aMHxGmVy5cuWKubk5CuZhYmJiZWXl4+MT/Y6IiIigoKCAgAAPDw8zMzN+/hozZsymTZue
PHnS0NAwSkNa29vbCwsLL1++HBkZGRkZee/evaKiot89qFHGvyFXGhoazp07Z2Vlhd40Tk5O
Q0PDnJycnzLgXwbIlT+V/4Jc6ezs/Pr16/3792NiYiIjI+Pj4z99+vTTrTlkMjkqKkpBQYGD
g4OJiUlWVvbo0aN09sR9fX0fPnzQ0NDA7j8nJ6egoKCIiAi2YAkJCfHz8/Pw8LCxseEPU1ZW
9vb2fvHixVAVC5lM/vTpE/6POjo6PnjwoLm5+Wfcg4GBgYHbt2/PmTNHUFCQQCCIi4uvX78+
JSVleKdqb29/9+7dmjVr+Pn5+ajg5eVF/+Xk5GRlZcWuiIWFhZubm/p4dDAPD4+MjMy8efNg
fRyMP16upKWl+fr6SktLs7CwMDExsbGx2djYXLhwAeTKqGYUyxVkizI1NV21atWKFStWrFix
fPlye3t7a2trQ0NDXl5evFxhY2MbM2bM/PnzR+8rm52dfeTIEX19/XHjxsnJyU2ePPnUqVO/
e1CjjH9Jrpw9exYvV6ZMmQJyBRgh/BfkSlVV1Y4dO8zNzVEskK2tbVRU1M8tgEYmk9va2oKD
g5FWYWVl1dHRefXqFR1R1Nvbm5mZqa6ujt1/ZWXluXPnurq6rly50s3Nbfny5fPmzbOystLT
05OQkMAOQ5FmcnJy8+bNe/369ZAS4chk8sePH/9VufL169cjR46MGzcOTXfq6urHjx8f3qm6
urqKiooOHz48c+ZMMzMzk++YmpqampoaGxubmJhMnTpVTU0NC6lgZmbm4+ObNGkSdpgJDmNj
Y0NDwyVLlsTGxtbV1f2sS/7D+OPlSnFx8YULF/T09Pj4+NjY2CQkJLy9vT98+AC1Lkc1o1iu
cHJyamhoBAYGJiUlJSYmJiYmJiQk3L17Nz4+/vz587t37/b09MTKQCFkZGQWLVr09u3bUZcJ
PTAwkJ6evn37dklJSWReEhQU3Lt37+8e1CgD5MpggFz5U/kvyJWysjJPT08VFRV0mRMmTNi2
bdvPLYCG/ACurq7oT4iIiNjY2OTl5dHZ4aG4LLxcmT179qlTpx49evT06dPExMQnT57cv3//
+vXrZ8+ePXDgwIYNG/T09ERERNDB7Ozs8vLy/v7+aWlpjI/zF8iV5ubmp0+forvNzMzMy8sb
EhIyvOJjfX19zc3NGRkZN27cuHLlyuX/5dKlS5cvX46Li/Pw8NDR0cFui4qKyv79+y/T4tKl
S+fPn3/48OG/4V77Y/jj5Upra2tOTs7p06d3794dGhoaGRmZnJzc2AjF4kY3o1iu8PLyGhkZ
Xbx4cbCDCwoKzpw5Y2RkhNzWCFlZ2bi4uMLCwl857J9Cenp6cHAwJlf4+Ph27979uwc1ygC5
MhggV/5U/iNyZd26daqqqugytbW1AwIChp1QQZPa2tro6GhTU1P0J9TU1Ly8vOgXxaKWK2vX
rh2sPBGZTC4vLw8NDZ0yZQpy4BAIBA4ODmVl5SNHjjBe4/gXyJWBgYGvX79OnDgRC9Bav359
cXHxv1TMhmKC5ebmnjZt2tevX/+YvfWv54+XK8AfySiWKzw8PIaGhufPnx/s4K6uroqKijt3
7jg4OGCfpZCQEKoR8SuH/VOgkCsCAgJ79uz53YMaZYBcGQyQK38q/xG5sn79ekyu6OjobN68
ubKy8if+CdTQHU2/BALB1NQ0JiaGfrwZtVxxd3f/+PEjTat/f39/d3d3dXV1RESEkpISBwcH
gUBgYmLi4OBYv3494zVYf41cKSwstLe3x1KZbW1tr1+/3tTU9BP/BEZdXV1cXJyFhQX6W6gc
WVZW1mDFo4EfAnIFGI2MbrliYGBw7tw5Osf39PRUV1dv27ZNVFQUmYK4ubknTJhw+vTpXzbm
n0VmZmZISIiUlBQBgsGGC8iVwQC58qfyX5Ar5eXlXl5eampq6DLHjx+/devWnyhXyGRydna2
gYEBUhEEAmHp0qU/LDdMLVdWrlyZlZVFP4A+LS3Nx8dnzJgx2K+cnZ2Tk5MZDGD+NXKluro6
JCRk8uTJ/9INx1NXV3f8+HGs9CIXF5ehoeH79++hDfSwAbkCjEb+cLmCOH369IQJE7i5uQkE
Ahsbm6SkZGRkJPWX2dvb29jYWFNTU1NT09jYiFmzenp6WltbKyoqioqKCgoKCgoKysrK6urq
Biu3j+jr6+vs7Gxqaqquri4pKcnPz8/Ly8vLyyssLCwtLa2qqmpqaqLvPe/v7+/t7W1ra2ts
bCSRSC9evAgKCsJ7V0JCQpqbm5u+gw5jpMUYmUz+9u1bfX19eXl5cXFxfn5+bm5ufn5+UVFR
WVlZTU1Nc3Mz/aujT1dXV3Nzc1VVVVlZGTo/uurq6urm5uYhdc9FJUobGhoqKipKSkoKCgpQ
Q+jCwsKysjLUE7qrq4vBSInfLlfQM21ubq6urq6urm5qasKHefT397e3txOJRPSy5ebmFhQU
oPvW1tY2PGtib29ve3t7bW0tetZ5eXkFBQUlJSWVlZWoyy96Fv9ErvT09LS1taE/gbpT5+Xl
5efnl5SUVFVVNTY2dnd3M/KAUAvwhoaGmpoaIpHY2tqKv2Qymdze3l5XV1daWlpYWIi+xJKS
kpqaGnTk8F7X7u5u9DhKS0sLCgqwj7SsrIxIJDJeD7evr6+jo6O2tra6urq2tvbbt2/YD5Hh
vL6+vrKyEv8IysvLGxsbh9fBFp2zqampsrISm14KCwsrKioaGhrwL9Ww5QqZTO7q6mpoaCgv
L8d/ekVFReXl5eidZHCofX19ra2tRCKxurq6oaGBIs/h27dvdXV1lZWV2DuP3pyWlhY673xP
T097ezua+rKzs9esWYPlrmhra/v5+eXk5JBIJGxubGpqamtt6+kezkfU0dGRlpaG5BATExML
C0tAQMAPQ+GHJ1daW1ufPXuGXQuBQLC2tma8QsyvkSvNzc0PHjxwcnJCf2LMmDH29vZ5eXnD
bsBCh58iV8hkMvalFxcXFxYWYityUVFRRUVFfX39kHJdOjo66uvr0cdOMUugKZdIJGJTCprG
a2tr29rahqcK0Pfe2tqKptnCwsK8vDy0ahcXF1dUVFAPgw7/UK6gHRE24aM7SbF/GJ6YxFar
ioqK4uJiNMmjB0QkEhsaGpr+l8bGxsbGRpp5U319fU1NTUQiEW3nhpRb1d3d3dLSUlNTg54g
fstRU1NDIpGGUSS9t7cX7QZLS0vx7155eXltbS3j0Z7/Zf4TcuXevXuOjo5CQkJosWFjYwsJ
CaH4OMlkcl1d3ZUrV/bt27dnz55r165hO04ikfjs2TMfH5958+bZ2NjMmTPH09MzLi6uurqa
zhtGIpG+fPly8+bNsLCw5cuX29jYmJubW1hYODk5rV69eseOHTdu3MjPz6cz7N7e3rq6ulev
Xl27du327dv79u2bP38+ugpmZmZubm43N7cHDx7Ex8dfv379+vXrV69evXPnDiO7zPb29oyM
jLi4OC8vryVLltjY2JiZmVlZWS1YsGD9+vW7d+9+/PgxnVbN9CGTySUlJX/99df27ds9PT1d
XFysra0dHBzWrFkTFhb2119/lZWVMT6XdXR0fPr06fz5835+fsuXL7e1tTU1NbW0tHRycvLw
8AgPD79z505+fj6DYdO/Xa709vY2NDQ8fvw4PDw8LCwsPj4+Pz8fCWO0q3vz5k1kZKS/v/+8
efNMTU3nzJnj7u4eERHx4sWL4XUNamhoePfu3ZEjR7y9vRctWmRubm5nZ7dy5crAwMCHDx8i
xTLwz+RKdXX1ixcvDh8+vHHjxgULFlhaWpqbm9vY2Li5ue3cufPq1aulpaWMhLL09PRUVlae
PXt29+7dBw8efP78OT5bur29/e3bt7GxsWvWrHF0dJw9e/acOXNcXFz27duXnJxMJBKHt0Ci
dzU8PNzd3d3Ozs7CwmL69On29vaenp6RkZEJCQkM9tdraWn59OlTVFRUWFhYTEzMhw8fsNiY
np6e8vLyU6dOBQYGuri4WFhYzJ4929XV1dvb+8qVK4WFhcMI+u/u7i4pKbl169bWrVux6cXR
0dHPz+/cuXN5eXnYsxu2XOnq6srPz79w4YKXl5erq6udnZ2pqen06dMXLVrk7e29a9cuBlPA
kVZ5/vz5gQMHwsLCLl68SFGi5/3790ePHt28efPChQvNzMxsbW2XL1++Y8eOpKQkOunyRCLx
3bt3N2/evHnz5pkzZ2bNmoU8zwQCQVZW1tHR8ezZs7dv38bmxvj4+LQXf1dVDCf/vrCw8MSJ
E7KysoTveYO7du3q7e2lv70bnlzp6+vLysrC6w09Pb2wsDDGReYvkCuocvSaNWvQn2BjYxs/
fvzbt2//ja7hP0WufPv2rays7OHDh+Hh4UuWLHFycrKxsbG0tETvc2Bg4KlTpz5+/Mj4ljEr
K+vkyZPh4eExMTEUs0R9ff2bN2/279+/evXqOXPmWFpa2tnZrVq1Kioq6u+//8am3CHR3d1d
UVGRnJwcHR3t5eXl5ORkbm5uamo6a9asxYsX+/r6RkdHJyYmMjhZ/UO5UlVVlZKSEhUV5e3t
vXDhQisrK0tLS2tr64ULF65bt27Pnj2PHz+mn9Y1GHV1da9fvz5y5IiPj4+Li8vcuXPt7OwW
Llzo6+t78ODBixcvXr9+/caNG9e/c+3atWvXrmVmZlKrkaamphs3bhw4cGD37t2XLl3Kysrq
6Ohg8PlWVFQkJibu3r171apVdnZ2JiYmFhYWDg4OHh4eERERt2/fHmoXIzKZXF9ff/369dDQ
UHd3d2trazMzsxkzZjg7O2/atCkmJiYnJwdiGX7If0KuJCYmurm5iYqK4j9OisUGtdddtmzZ
lClTpk6dunjx4rt373Z0dHz58uX48ePOzs6ampqSkpIiIiJiYmIqKipOTk5paWnUby3SGA8e
PNi7dy+arfT09GRlZUVERPj4+Pj5+SUkJBQVFSdNmmRra+vh4XHw4MG0tDSaO9GWlpanT58G
BQXNnj177ty5JiYmysrKnJycmOjS0tJydHS0s7OztbW1tbVFh23cuDE/P5+m0ujs7MzJybl6
9eqWLVvc3NwsLCzU1NTGjRsnIiLCy8srKCgoJSWlqqpqYGAwb968gICAEydOvH//nnG7NZpr
Dh48uH79ekdHx4kTJ6qoqMjKygoJCY0ZM0ZJSUlPTw/tqOLi4tLT0+kYPNByePXq1aCgoFWr
Vs2cOVNLS0tWVlZUVJSXlxfdRhUVFT09vblz565fv37Pnj2pqak/nI9+u1xpb29/8+bNli1b
9PX19fT0PD0979y5QyKRKisrnz17dvjw4RUrVkybNk1LS0tSUpKXl1dMTExBQcHAwGDx4sV7
9+59+vRpY2Mjg6tdc3Pz48eP9+zZ4+rqamJioqGhMXbsWH5+flFRUQUFBR0dHScnp5CQkL/+
+qukpGQYcqWvr49IJJ47d27z5s2LFy82NjZWV1eXkpJCLRRERETk5OQmTZo0e/ZsLy+vuLi4
N2/etLe30x/w33//vXDhQgMDAwsLiy1btrx8+bK3t7e+vj4xMTE8PNzNzc3MzExJSWnMmDHo
S5SVlZ0yZcqSJUtCQkIePnzIuMYmkUhZWVnR0dEbNmxwdHTU19dXUFAQFRXl5+cXEBAQFxdX
UVGZOnXqggULtmzZcvPmzR+Kiq9fv8bFxVlbW+vp6aECULm5ud++fcvIyDh9+vSGDRumT5+u
o6MjKyvLz8+Pbo6GhoaNjY2fnx8yjvxw+4vx6dOnkydP+vr6zpkzR1dXF5texowZo6WlNXPm
TA8PjwsXLiAZP1S5glyvqamp+/bt8/LymjlzppqampycnJiYGC8vr4CAwNixYzU0NPT19Zcu
Xbpv376HDx+WlJTQOWFnZ2dubm5ERISRkZGenp6Li8vp06fr6+tra2tfvXoVHR29atUqMzMz
HR0dKSkp1EdLVlZ24sSJCxcuDAsLe/DgQUNDA/U7n5iY6OXlZW9vb2dnZ21tLS8vz8PDgy6T
n59fWVnZ2tp67ty53+dGmzlz5ri6uN2/N5ysRfTNolrDKP09Njb2h78anlwZoLIdaGpq+vj4
MFg54NfIFbTM+fr6Yn9FSUkJPamf+FcQ/0Su9Pf3t7S0vHjxIiYmBu3y9fT0xo0bJyEhISIi
IiAgICAgIC0traOjM336dHd393379iUmJjJyqy9evGhpaamvr29lZYXqOvT19dXV1cXHx4eE
hLi4uBgZGSkpKYmJiQkICIiJiSkqKpqYmLi6uu7du/fZs2cMlq3r7+/v6up69+7d0aNH/fz8
nJ2dTU1N1dTUJCQk+Pn5eXl5hYWFx44dq6WlZWpq6uzsjMyg2dnZ9D1Fw5MrbW1tubm558+f
37p16+LFi9GaIiUlJSQkJCAgICwsLC0traqqamhoOG/ePLQLx1tt6EAmkxsbG+/evRsWFubi
4mJsbKypqSkrKysuLi4mJiYlJaWpqTl16lRra2vb/2X27NmzZ88ODQ2liMzs7e3Ny8tzc3Mz
MjIyMDCYNWvW2bNn29vb6W8PUGu7ixcvbtmyZcGCBQYGBoqKimJiYjw8PPz8/GPGjFFWVjYw
MJg7d25AQMClS5cYqT737du3zMzMc+fO+fr62traTp48WVFRUUhIiI+PT1BQUFpaWl1d3dTU
dM2aNUeOHHn27NloLFr7y/hPyJWnT5+uXLmSQq5Q7MJbWlqSkpKQC56Dg0NeXj4yMrKsrCw6
OtrMzIxAhby8/JUrV/DzGnLXlpaW3r9/f+HChXJyctjBKH6AlZUVNS3Cn2fMmDE+Pj6PHj0i
EokUOy0ikXjo0KFp06ZR/3U6qKmppaWlUa+ILS0t2dnZMTExWM4igpmZmebYUJJPeHh4dnb2
D73MyGmQlJS0efNmfAMBdO3MzMzUZw4JCRks67Stre3r16/R0dGWlpb4dp/YUFlZWfH/n5WV
VVxcfOPGjenp6Y2NjXQ2rL9drjQ1NV27ds3W1hYdbGxsfODAgS9fvty/f9/Dw0NWVpadnX2w
J6uqqrpq1aqXL182Njb+cFSNjY2pqakuLi4KCgp03hZhYWFnZ+fr16+/ePECy1Qm/EiuoJC2
8vLyW7duGRgYYD2OWFhY2NnZOTk5OTg42NjY8A998uTJ27Zt+/DhA53pGL+I8vPzT58+/cKF
CzU1NQkJCStWrBAREcG3isODIjyXL19+586d6upq+vuYvr6+lpaWN2/e7N69W15eHjX/Rp00
ODg40OBZWVnR4NGXa2Njc/bs2aKiIjqL0/Pnzz09PVG/cwkJiYCAgISEhI8fP4aGhhoYGNB5
BOg9PH36dHV19Q+1VldXV2lp6YEDB/T09LDdOU1mzJhx4sSJnJwc/J7yh3Klr6+PRCK9fft2
48aNUlJSqHchMo6gm8POzo61S0fvz6JFi87KeZEAACAASURBVK5fv06n/W5bW9uLFy8WL16M
fqKtre3r65udnZ2UlOTv7y8nJ4fvkEiBnJzc4sWLk5OTqXtoREdHy8nJ0fleKEAe6YhdEfTv
ME0ePXq0ePFi1PqDj4/PxMTk8uXLP/zVz5Irqqqq69evZ9Bc/WvkCplM7uzs3LZtG7ZqyMnJ
nT59uri4+Cf+FcTw5ApyVtfU1Dx79szLy0tLS4viZUBLCcXaJCoqumLFihs3blRWVtI/P2YF
EBQUnD59+pcvXyoqKu7fv29tbY1vpk4BOzu7nJzcunXrHj9+/MNVFc1UHz58CA4O1tTU5OLi
wo+feh1kYWHh5eW1srI6dOhQdnY2gzMtgr5cQdNCRkZGTEyMoaEhVmqViYkJre8sLCwUjbnZ
2NgUFBTCw8Nfv35NXyf09/fX1dU9ffrU0dFx7Nix2AWysbFxcnKiOYdi10SBpaXliRMn6uvr
sXN2dXW9ffsW/+lt2bKFzjBQV6WPHz/GxcVNnToVxbCgW4qf9/DDQGs3/fvc2dmZn5+/a9cu
Q0ND/IPj5OTk4uLi4uLCT6fq6uobN24sLy8f7GzAf0Ku3L1718HBAV/OePv27RQfJz5imIuL
S0dHJzQ09Pbt24aGhujPUUAtV5C7NiwsTElJSVhYGL+OolQTYWFhQUFBdnZ2/IeN+ldaW1vv
37+fwsdCJBIjIyOHIVfevHlD7ZR/+vTp2rVrNTQ08JeD+pEJCgqKiYnx8fHhx4xWdxkZmTlz
5rx8+ZL+aoc6u8+fP19CQgK/+UC7QC4uLvz/RGfW0dEZrBLoy5cv/f39tbW1KYbKw8MjJCSE
ukHj5270V8TFxS0tLf/666+amprBxjkS5MrNmzft7OzQwVZWVgcPHoyMjHRychITE6M/L3Ny
csrLy7u7uycmJv5wVNeuXbOyspKUlMSSg7F7hf8TrKyswsLCjo6OgYGBeJ1JX64g2+ru3bsV
FRV5eHiwCZefn19WVlZdXR05QPCXw83NraKi4unpmZycPNiYiUTirVu30CIqKCg4Z86cw4cP
X7t2zcTEBJXKwM5GcRVoPy0iImJsbHzz5k36Kb/IablmzRppaWlUMRa9PyIiIoqKihoaGvLy
8nhpxMTEJCAgMHny5MOHD3/+/Hmw07548cLLywvtVKSkpEJCQg4cOICq62K6gmLYCDQ5ODg4
XLx4kb5xur+/v7i42N3dXV1dnYeHh2J/QAE/Pz8SBnjzxA/lColESklJsbKyEhcXxwQn6rOm
pKSkoaEhJycnICBA8f44ODicPXt2sMG3tbWlpaUtXboU/WTSpEne3t4nT550c3OTkJCg/85z
cHBIS0vb29vfvn2b4rRnzpyZOHEiykhkBFYWVhFBkf1799O5w4Nx/vx5Q0ND9BwFBQUdHBzu
3r37w18NW658/vwZL1fGjx8fFBTEYCL7r5Er6A/t3r1bQEAAff7onc/MzPy5f2VguHIFhSBG
RkaqqamJi4tT7PXRUiIiIsLNzY03grCysoqKihoZGf2wshwmVyQkJObMmZOWlrZnzx41NTUB
AQE68puJiYmdnV1cXHzlypVPnz6lH7vV3Nz88uXLmTNnSkpKcnFx4b93bm5uUVFRYWFhbm5u
/KzIwsLCz8+voaHh5eX1/Pnzwc48VLlCIpHu3r3r5uYmIyODn/DRbp6Xl5ePj49iRkJF7aSl
pb28vF69ejWYXx1Zvi5evGhubi4uLo7tQHh5eZHnQVVVdezYsfStEtSF6bq7u9+9e4f/9LZu
3Uon+KKtre3vv//esGGDrKwsLy8v9koICAjIy8ujeU9ISAhvqeHl5dXU1PT29n7x4sVg9zk3
N/fYsWPjx4/HlgAuLi7kutfW1tbS0pKRkcE2OaO0SM+v5D8hV/CLDdaxhOLLRNHVSK6gBpSO
jo4uLi4iIiLMzMwCAgIGBgb29vZLly6dPXs2aqn76NEjvM2vpqYmIiICb0nl4uLS1NRcsGBB
UFBQRETE3r17IyIigoKCVqxYYW5ujt9KiouLW1tbP3jwAL/Vbmtre/nyZUxMjI+PT0BAwLJl
y7CrQHOBhYVFUFCQr6+v93d8fHz27dtXXl6Ot3SiOLegoCAVFRUUS4Zugqmpqbe39/bt23fv
3r1///5du3b5+/u7uLgYGhpidWmYmZklJCRWr16dlJQ02O1taGh4/vz5ggULUJ9jAoHAzs4u
JSXl4ODg5eUVHBy8c+fO4OBgHx8fJycnJEKQHcjY2Jhi1UHuqT179ujo6KAFBrUhmzBhwtKl
S7dv37537959+/bt27cvICBg0aJFRkZGWGlRAoEgIiKybNmyhw8fDhZXMxLkyq1bt+bMmYMO
1tTUdHR0NDMzk5GRQQ9FT0/P1dXV399/y5YtKNsEP+dycnKqqKiEhITQiU1CM+/atWuxPTcr
K6uQkJClpaWvr++WLVu2bNni4+Pj7Ow8YcIEfn5+FhYWGRkZip0fHblCJpMrKyv3799vZGSE
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
XU1NTVdXd5GaD+/evaupqfH29lZVVVVVVTUyMvLx8cFisYu/tz59+oTFYsPDw5WUlFRVVbW0
tOzt7ed1asY9qoaGhuTkZDc3N0NDQykpKW5ubtB03NzckpKSenp6hw8fjoqKamhoAImDN27c
OHz4sIqKiqKiYkBAQGNj4+LLfcPDw8+ePbty5YqXl5elpaWampqkpCQ/Pz+41ZmZmbm4uISF
hWVkZFRVVXft2uXs7BwREZGdnV1fXz9v2P3c3BUvL6+pqan29vaMjIxTp05paWmJi4tzcHAw
MTGxsbHx8/OvX79eX1/f0dHx8uXLT548IfyB7e7urqioiIyMPHHihKmpqaKiooiICCcnJ/I0
8fPzS0hIKCgobN261dLS0s3NLTY29vbt2wsVQGhoaLh06ZKBgQHomuzt7UtKSpY8jMHBwbKy
MgMDAyUlJQ0NDWNj47S0tEVuhs+fP4OAbz8/v3379qmoqPDx8bGwsDAzM3NwcIiIiGzatMnK
yio8PPzu3btgUvP27dunTp3S0dFRVlbeuXPnw4cPF+9tQGBVXl5eaGjoyZMn9fT0wGUFTx8T
ExMrKysPD4+kpKSSkpKurq61tbWvr29SUtLjx4/nVaFgkiUkJERNTU1NTW3btm1OTk6tra2L
G+aA7AgMBgO+BeIA8cJc8RgZGXn06JGvr6+JiYmcnBwvLy9oGV5eXgkJCU1NTWAxt8iPLgSo
yIE7rN+yZcu5c+fmPV+EL1++tLa22tjYbNmyZdOmTVu2bEGj0Vgs9ltHJI8ePQoKCtqxY8f6
9eslJSW3bt0KLBbm3c/nz58bGxvt7e21tLRAu3l5eS0U2Dn758T57t275eXlxcXF1dTUTpw4
0djYuLiHdWtrq6mpKRJROa91+PdicnKyqqrKzc0N3Ak6OjonTpxoa2tb0opwdnZ2dHS0rq4u
LS3N09PTxMREVVVVXFwcrBDS0tLS0dFxcXFJS0tra2vb2tr6+vpeu3bt2bNnS1oGz86pal9R
UdHT09PU1HT58mUHBwcNDQ1xcXEuLi4WFhYmJiZeXl55eXkTExNnZ+crV64sOa2GAB7G7Oxs
X19fKysrXV1deXl50JMzMTGxs7Pz8vKKiIjIy8ubmpq6u7tfvHjxwYMHIyMjiz9cY2Nj9+/f
3717t5qamrq6+rZt265evbrI4gOgq6urrKwMhULZ2dlpamqC9zsrKysLCwsrKysHBwcfH9+G
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
2NjY2JiYmMOHD588eTIlJSUvL08kEmk0mspnV6lURUVFd+/ejY+P37lz57JlywIDAyMjI6Oj
o+/evcvn82tQCIVCwePxTp06FRMTg86I/jc+Pj4pKenWrVtPnz6VSCSv2l0ikWRlZR05cmTv
3r2xsbEZGRlCofCdb2dV1Gp1cXHxhQsXtmzZsmHDhh07dsTHx5eWlr5sLBKJ5MKFCx4eHhRF
2dvbBwUG3bl9572UQafTadSaiooKmUz2smfWC1qtVi6Xy2Sy2vSVQn3k0PZyubxm9f1AyM7O
Hjp0qL29vbGxsbe39/bt2+u7RBgM5v2CdQUHB+fdg3WldhQUFISFhfXt29fZ2dnNzW3VqlXo
548fP967d++QIUPatm3buHHjRo0aOTg4ODo6urq6tmnTZtiwYefOnSsrK0Mba7XazMzMYcOG
tWrVyu0lmjdv3q5du5kzZyYmJopEospnLyoqioyM/Pbbb5s2beri4uLo6Ghvb+/o6Ojm5tan
T5+4uDge75UtDJmZmVu2bOnSpUuV0zVt2rRZs2YdO3b8/fffL1y48Krdnz59euDAgW7durm6
unbu3Hnbtm1ZWVnv447+i9LS0k2bNg0ePNjFxcXZ2dnFxaVnz55nz54VCARVtkS60rJlS4Ig
Gto3DAgMuHX71nspg0qpEpQJ7t+/f/fu3czMTLlc/l4O+y7I5fJHjx4lJyffu3evsLCwoqKi
ho3VanVJScnDhw+Tk5PT09NLS0v/s3K+NY8fPx48eLCdnZ2RkVH79u2xrmAwnxxYV3BwcN49
WFdqR15e3syZM93d3dEaT0FBQejnCQkJEyZMcHJy4nA4NE2zWCyapkmSBAAmk+ns7Dx58uSz
Z8+ijbVabWpqavv27ZlMJkEQNE1zuVwbGxsLCws2m41+4u7uPn78+OPHjz979gztlZmZuW3b
tj59+tja2tI0bW9v36xZs5YtWzo5OZmamjo5Oa1fvz4zM/NVJb93797SpUsdHBwAgKIoU1NT
S0tLS0tLDodDURSHw/H09JwyZUpsbGx5efnLu+fk5GzdutXFxQUAnJycVq9enZGR8b7vrj43
N3f8+PGurq7wD/b29oGBgbdv366ypUQiuXjxItIVe3v796grBbyCM4lnZs+aPX78+ICAgLy8
vHpvYOHxeAEBAePHj582bdq+ffsMbXrVIhQKjx07FhISMn78+EmTJh07duw/K+db8/jx4yFD
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
Vq1CURSO2tVxpV+/fipcAQDk5uYGBwfr6+vDceSvv/4Kf4+LizMyMmKz2aampp07d969e3dm
ZqZcLm/hkoUauHLmzJmKigrVFffs2ePk5IQgiKOj47Zt296/f69x+FfiSmOp48rIkSNVuAIA
4PP56enpmzZt6tevn42Njb6+PiwMAFN0unXrNnv27KtXr4pEIrgGTlZWVnh4uK2trY+Pz8qV
K6Ojozt37mxoaKilpaWnp2doaPjDDz+sW7cuNzdXVW2ssrLyzp07ixcvDg0NVb+Eqampk5PT
Dz/8sGzZsvv378MK1M3gClyP5ddffx02bJinp6ehoSHMaDc0NLSysmrXrt2cOXMuXbpUXV0N
CxgIhcLz589HR0e3bdvW0tLS3Ny8devWpqampqam5ubmrVq1srKyat++/caNG4cNG2ZkZGRm
ZhYdHa0Rnrd7924XFxdTU9OwsLAdO3bU1NQ07l51XPncMz19+nSPHj2MjY3ZbLaPj8+FCxeq
qqpg+vukSZPMzMy6d+8+ZsyYMWPGWFpaslgsFxeXQ4cO3bhx4/jx42PHjvX39zcyMtLR0YFd
Z2ho6OnpOWzYMMgSFRUVq1at6tq1q7GxsZaWFkziMjc3t7S0dHd3nzp1as+ePY2MjOD0Diwd
YWRkZGlp6eHhsXfvXjgHlZycPGLECC8vL0tLy1atWllbW1tYWDg6Oo4ePfrb5dswYsToG4jB
FcaMGX+9GVxpmVqOKyKR6N69e97e3nCgZmZmpgIPdVwxMTGJiIhITEysq6urrq4uLi6+evWq
p6cn/BodHBx84sQJeNShQ4fatGkDQ7bgpg0bNqSlpRUUFMCv781nQTQ5uwI3vXjxYtWqVXZ2
dnBTcnKyimRU+idx5dWrV3C2B/aPl5dXQECAr6+vs7Ozqamptra2paXlggUL3r59CxfrfP36
NZzF0tHRsbe3d3BwsLe39/HxcXNzg8UPVPelCnL7888/58yZY21tDYlRdQknJydY8MDJyWnN
mjXFxcUwuuxzuJKbm7t7925Y8czAwMDd3d3f39/Pz8/Nzc3MzExbW9vKyioyMvL+/fsSiYSi
qIKCggkTJjg7O+vp6Xl6evbo0aNv375eXl4wx4nFYllZWfXs2fPAgQPjx4+HsX+9evXav39/
XV0d+GsmJyYmBgLw0KFDL1261GRBrZbgypMnTxYuXGhjYwNnYHbt2pWTkyOVSh8/fjx+/Hg9
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
pk103t6ab5eprl+jPnyAhLdw4qRh8ldKd3ddx07U+o1scUnt2iMjQSSinZ1yXF2TmjdL2bpF
Fh1NP33KrV+j6NhB4+hITZigu327mm8qKgx3bqs6h9NNGyuHDym7fImNi4P4OO7KJc2oERWW
5uWeHtS2bSxNs1U/g5/DlRvXYdQI7O5G9+2j2rVD/uwp9+EDPI6hly7JadumqFEjzdAh1LWr
1bytUMD9+7hdO655c/6ryfjBfUhM5B/HsN8uoVs007m6KrdvVcS+MuTn88+faydMoO3smOlT
Ch/eV9QMp9bwjx5rR49RNHKRr/tBk/D+s/Zeloc3byEoCJo1L14VmVRUVOdVC8eBXA6LF4OV
JXw5CK5dgbw8mDED/P1LgoJSEt5oOLb+Q3foEISFgVSKly3DOu2n/fH+l+S/G1eCgtD796jB
AccEgGDvftI/iLC1E61cbiYvt+JYAYCkoMB08WJBaGhDcMUqOdmjRfNGXt5WY8YaZ2dbAxhX
+ZJ9uwzZ2KAePRrkDJaainbvRm5uaNEiJJdVV7rkOKRSkyqVSKcTVxELzyO9nvj2W2RvbzRr
hl/MI4c/XOancIVMThK2bCbw8RaOHStMSyW4XwtrJiUJtm0Tu7qKxow2fRxjpdEIcnLQsWPI
wwMFB0nmzzMryDcGqIomJzZsEDg4iMLDRafPCBiGLCo2mTvXyMZGMi7C6tad2oKh5eXkvn1G
4eEifz/y4UOpRi36bWawsjLhjp3m4Z2l/v7CqCirwsKar5MpKcI2bYxatDBauEhcUEBER1t9
/bWLg6NkzBjhL7fEL18K4uKEHz4YK5SuLGtVb+3PnpktXGTv4iLyDxB27SYNa2K7Y6cDTdtg
LPydHSstEV3+SertTfbobnnsqHNlhQRAZDAYJyU5zJplZmaGzM1r6658ElcUCun1K8GDBzr7
eAmunrcqL6pezp27KGISsrFtMK6korYdUFAImvQVyvkopEdWKc7LNabpahsRxmRMDDlnjtDR
0TRytTvm/QH+7cUi/8aVhklKSkr79u2NjY1rcIUgCLFYvGrVKr1e/6eWpaBp/u1bultXmbdX
XufO2Vcva4sKOY4FuZy/coWPmMjb2PIWFrhr11pcuXoVBg3iJRLa21M1c7r83h1lRTlXXs4W
FFA0jd+9g6goHH2fys2rftnMcpCaxo8Zq/P0NDQJYxPieZapCh7g83LZkycYT088YABcugQK
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
5r6+yN+faNJE0rK1SWhj0j+QaNVKuGql+csX1Tp9TSJjD3fUvi3p4y0NDjZp3lzq5iZwcxd2
6yZ6+ICsuRypqVY//ujSrp3E24cIDBK0b2/curUkNJT09RVPn2Z6/765Wi0AQGVlxK6dgt69
BB07kImJVa5uBID4/HmTPn3MfH2FoaFGX4RbdO9u1bSpsY+36ItOJvv3SyorCZZFGo3x06fW
7TuYuntI/f3FQUFEcDARFET6+gpdGpGtWxExMRK1unpbaNo4Pt6qTRuxVEo6NyLXrDV586ZB
XlJFRYLVq606dzbxcCfDQsVt25h36mjdopm4d0+joV+aeHmRNXDy00Vy4EBhaIhg587aW4Ln
CYNOvHWLkY+PxNON6NReMmK4aY+eZPtOoibNpM7O5Jo1hFpNVt2QhYXE0qWC8HBBr15kejr5
cQ6AklJi02ZBj16kt5egU3urLp2MI8YSOdnoxnXj0aOsgoOE7dujESPQsGGobVuiWTPRd99Z
x8b+Wdn5/sH2N640TIqLi9evX9+qVasaXDE3N+/evfu5c+f+7IrfhUXqc1GlXl6avv20585r
ZfLa4XgekpNxly64USP8xRfVfvA1uOLpCSdP4o8dYOqJWgX5eTgllU54y925A4sXQ/Nm2N8f
P3mCdb/+y87JgWPHqnHlypU6uMLz8O4dBAV9AleUSkhJhks/wZkzEBUFUVFw+jRcugQ5eVin
x+kZ+t59P7i45bVrT7//wHIfBbArFHD9Oj94cK0zmFbLvowtGx+h8vDgDh/VZ2XXzyL0/BW7
eDnl6IQjIvDrWF6nBfiVHHx8YcrUOunFeB6//8C3bMX5+hrGjdNVOQ4lJ+OWzWl/X25SBOTk
1J58/HhZ69YZ1jbU2nVVcRt8ejp3/ToXFYXPnYOoKDh7Fq5coZ880Wk0PDQMV2QyPuqsdmD/
MjfXosULDU8f81zdFMkHDlSBFl6xEmvqepLIZNyt20xQMLZ3wO3b89u28e/e1cvjhNPS+KvX
+Kgo+GiG8OQJaDQADcMVuQJ+ugKDhzBOzpqIKYpb9/Q1c6BpyMnjHzzAp09V93/uHJw6BbGx
1cRSgyuzZ+P8fP7j1FUJCdy69XSjRvTkSZqEN0qdjouPK/tudYazM9W7N79/P3fmDD53Ds6e
hXPn4OQpbs1aytmZbt1Gv/F7XVVMeW4ufP01eHszwcGGeriiUjHR90pGjCh2cpatiqRfx/Fa
HcTG44iJrJOzfvlqWZ9+Oh8f7toNbXkFpVDwV69pBw1We3lpzkUZCotYjuMUCs2SJRX29mWT
v9bdi67/Jr68grt2nfbx4cPDqb37tOXlPABkZcGIEeDqCiGh+OUrbKDqP2g1uNKhvXrKNyW+
3urhw6izZ7n8fPyxXUWrxc9fsFev8mfPQs2Fu3oVp6ZVp0dLSoLt23lXV31EhCL2tUyrq53e
+/cVmzZlu7hQk79m3r436PR1tqWsDO/YQXfsSHl56S6cLysuqo78jowEc3Pcowd3/kL9365b
t+hxY3U2Ntyc2VxBHkPT7HffyczN89u21Zw4WX9b9Ab8/AUfEsyHhekWLFQUFHDwKVzRaPDz
p8y4sZy7B//jUSoju34/sbHsyuWUkxOePJFLiKN1OpyRqfzxYLG7OzN+PLx4CVotAADL4spK
auFCnZOTfvkK/lVs9ddv38mbEBFnY1M5Y7oiM1NOUZxex7x4rmscpmnVVrlqjbKwiC2v4N8k
8BcvfvSLdAauXIGiIr6giLl2nfbxwW3bFW3anFhSWucdAMY8QxtWrKi0tCwe0J+6fBlnZfMj
RxkauZQEB2cnJup+iyunTqe17/DQ1FS9YAFXXs78bV35z8QViiJTkoXz54o3bbB4/thWo6mj
ptM0mZcjPXNaPHcuMXcuqmlz5qC5c9HSJcS9u1X5wT7RM48JjVr4Jk66d5d40gRyxAjhwgWS
48dM37+3O37cbNEi8skTVFGBeF6g1VmdOWM6Y5rk+lXr/NxaZyeWJcorJLfvStauE02cRE6Y
QCxaKLl6xTMqyn3HDrvvN5o9eVxdi0OlQvFv0JJlaM8+y7fvGun1tTU6OI6srDC+ecNz9Urb
kSPRpIlo7x6UEI80auLVC8m2Lcbz5gjGjUXDh6OZM4gD+y1fvnTWqCWfyXhWp0U/QEtXEIuX
iO/eNQIwqoIQjAmGEScnCS9eIH74XjLlG/HgL8nJ36At20V37ktzcoRabbXyXZMZbNIkFB2N
Dh8gZ80gBw4i584l9u8XxcQYyWRkDQcaDMKCAqMbN4w3bxZNn04MHUZ+8zWxfp347FnnhASr
qsKIAEipEPx83eqHDZYb1hgXFUgwXxVJQsjlwjdvJPv3Gi1eKJ40UTBxgmDZAunhfTbxcb7l
5XYsizBGT5+YLFloGxZiPHum3ZPHru/eiRMTyTdvjH75xW70aFNHR8k333hHR1eH9GBM5uYI
Z80SBASQfn7o3j1Sqfx/7J1lfFRH28bnnN2NQ9BAlCgJJASS4O4uKRVanNLi7u7SFgoUqPAU
StHi7u4eSIgQ92Sz7rvHZu73wy5EgJa+LQ/06V6/69PZkzlzZLPzPzP3fb9Rnl+WFRUUuJ8+
5bZ8qWTwIHrUl6KVKxyOHK504YLrkaMOc+dRp8/Y9rx+3W3ZEo85s9wvnncsSxoYUxkZosOH
RPPmUsOHUYMG0gvmo4MHvK5ejZgzy3nnDoeCAttqLrVadPhQlRXLq6xY7lZY4EJw6VPBMKKM
TLcjR5wWLaI++kg0Yphk/VpxSQklkzncuuW65hvJmNH0xx+jQYPQ3Hmi3XscMzIrG43vfBmY
1XZceTMZjcYHDx6sXr26Z8+eLVu2bN++/aBBg7Zv3576NkozlldGBvPTFn2dOsxHnwhnL4C2
fPH4F4mMX8aV4GA4cQIUL4WY8jwpKcH79wsrVnCTJjHjJprHjuOGD4fWrcHTE0JD4eZNeBlX
+vWriCuCAPHxr8aVrCxh3z5u0CDSuzfExkJsLPTqBUOHwoULpKSEPHvGNWsure2p7fZSSLpO
B+fPw8cflyYyVquF/QcMvXtbQkLI6TOgrPjiGxKT8dr1go8vGTSQ3LyOreNyKznUqweTJ0N+
mccbE0hOhpYtIShI+OQTLiuLAEBeLowbTZo2Jq1awu6d8OSxMS1VefUKN36cPiRE1qGTeddu
gQDBBB8/wX/+ORf7AenbF/r1g969YfBg08pVmmIpD2+AK7IS5sI5/WcDzK1a6j/opz1/7hUJ
xH76CerXB3d3WL684kcMA+kZsGgxtG0n+PlZ2rc3fvGFec0a9tw5Ni9PAACMydFjeOgwHBsL
1h726QODBsLyZVBcDPAGuCKTCxcvc4OHkqbN+U5dLAeOGPMKS5lDp4OzF/CcuaRHD+jXD/r1
g759oUcP2Pgd5OUCy5biyvTpoFCUy0yQ8BS++pr4+AgjhjOPHppNJnz5on7USFnNGnxkJAwe
DEOHwpAhNg8eTPrFksBA0qUrt/Zbxvra/jmuWMLDdUlJ5ZIKsKxQkKufMklXraqhb6zuyFFG
oRC2/Kzv0VPTsJH25BnLuAk6b++SFaukT+L1hYX87DnK6GhtZCR7565gNhOGITk5zIQJhtq1
DbPn4rv3Kl4Wg4Fcu05CQ6FVK8u6b/UlJQIAZGXBJ5+Ajw80bEiSk18xJH2BK41jzAM+1lSt
ynbvJuzcQZTlkhcTqRR/9TU3ZKjQu7ftksbGwuCh5PARImBCCCQnw7p12NfXMmy49t4Dddk0
u9evGyZNUnh48NOmg0xeMRWEWg3795HevVh/f+2vv2TnZNsOvGQJVKkCffrAkSMV+3z9ujBp
IufhwU8Yx2RlWIwGYeFCY5Wq6v79hWPHK+4sCBCfAJGREBSiGTGyKCeXg1fhilpNDh4Q+vTG
gUGw9yAUVJwfhYx0suVHXMePDPrMfOOqzqAX1Gr23DltSEhxVJRu9hy4fx/S0pi7d3Vrv9W0
bacOCNDu2MnnPn8Rk52t3vZLnr+/oXcv5f59xWo1V1jA7ttrDAw09+lrOnTYrFbj1FSy/Vc8
8DPo1Qv69bX9Rxo2DK5dxXl5ws1bQmgYadJUsXxFVnFxuSV6WCBGAzt3jqZqVcVHH/EnTkB2
Dhk6nK3jLw+vn5+YaH654MvO3Xkt2zx2czPNnUtMprf9Ouv913uKK4JAqdWia1dFD+47Fxe6
cWy5xTwYU2aTJCNDdPMmsvrGjVLfuoXy89HvJK7FmLKYJWnPROfPoSNH0PXropxsB4Zxycx0
uHmTkkqRxYIIoVnOJSXF8fJFcWa6q05bNl0sRYioRCaKeyw6fZo6cQJdvSqWFtcoLKienFTp
4UOnwgLR89EnKpGhm7dRfIKLXF6F58sGfFMc5yCT1nj4wO3kSXT2DHryGMlliOeRUiFKSnS4
cpk6ehQdPIAuX6LS0pyNRneM3yj7U14BunWHun1HlJ8vAZCUuQ6UyYSKi6iEePGF8/ShQ+jc
efQ0SaTSSHih9FqVrbuSm4vSn6Erl9HBg+jGDZSeLtJqJYJQ7sJyHFUikzx9Krp8GR0+jM6d
Q3FxooKCKkaj84t9GIbOznR59MD50X0Ho0FMyIu7SVksovRUyc0b9OlT6NQJdPu6OCvNlbF4
ANiC73f86tC+rWvTxs6bNlYxGWtgLAageN5Bpaoxe7Zb1WoOnTr7/bav2otjZWVRAwZQ4eGS
Ll2dk5Icy6b5+l3TGDuWlDjExYlOnaTOnUMPH1DFxY4KhUN+AX33LvUikqQg3/HunUq3bznn
54krPGMWCyWVUvfuolMn0eHD6PYtVJBfRafzuntHkpQk0mgcrJeOYejMTJcH953v33c06B3K
JvXCmGYYx8JCyYMH6NAhdOokFfeINpkonqc1GklCguj8eerAAXT4MLp1i87NE7OsA8A7zwlm
tR1X/oxSUlL27t27Zs2a77///vTp05qyg/e3pmfP8MbvBF9f8tEn5OwFUgFX0tIqVrV/gStB
QXD06MvF5klxsXDyJNuju6VemKluXUNklLlJM75JE/D1I25uJDQUbt36q7iSnMx9/4OlfXsc
GQnR0RAdDZGR0KUzHDpA8vMgOZk0aMB4ePB9+lQcNL9cJlImg02bSLt2pG5duHQZdOVPHwBS
U2HTJvDzI4MGkhvXSVlcCQuDiRPL4QohkJICrVtDYCD072+DipISWLeGdGgneHsLgz4jq1bI
v9+UOW6MuWULLjzcsnK1+fFjjgAIGO/azXftxsfEkEaNICoKIiOhfQfT5Kmq/Pw/wBWMicEg
XL6knjlNGhDAde+Ot/zEy+WvGONacaVyZVi+/OUPwWKB1FTYsIHr3t1Qv76qdm21n59++HDT
kcOcSgUsS3bsIB07kpgYiIqC6Gho2BDatIHx4yAvz3pfXosrGBOLRbh2wzRrrjYwUGjTFq/+
mq9QhUOlht/2k+EjICLC1n6jRhARAYsWQGqKtZiMDVemTQOZrFzNwfgEWL0avL1hxAh49AhM
Jjh1kv/0E7ZaVRIaCn37Qq9e0LNnqa1j9+nTyb79RKUGKMUVfXi4LCmp/MCcABHI6pVCzRqW
uqHKTZsN2dncmLGyZi0Ke/QqSc/gVqxQ1fbM+ODDrKPH1enpfLducn9/befOfFoaBgCzGRIT
yZdfEk9PsmABPHgAFaTTweXLULcutGrJrFtrKCmxza5YcSUyEpKTX3GzXuBKh/Z40kQ+IICN
ieamThaSkzizuRQ58gvw1Glch45CZCRERUFUFETHQLv25JfthONf4Arx9WWGDdfff6Atiyvn
zpGhQ3H16jB7Nuh0FctZPg9jY/3raH7ZmpGdZSsDsmQJuLtD795w+HDFPt+8IUyZxNXy4CaM
t2RnWnQ6PH8+qVYNDxwIZ85U3Jll4dEjEtGA+AeqhwwrzM5h4VW4IpfDli3QsSO8Dldys8mv
24i/P/5sgPHqRZVex/M8iYsz1av3rHLl4qhosvor+OEH/fwFxZENFX51FF26qB49Yi3PC60I
GOIThIYN9RERxZMnF+Tns/fvmefPVXt7G0d9ySYkELMZnj6FDRtI+3YQ2QAaNYSYaGjYELp2
gWNHSVEhSUqC8HASHqGbNkNeUFDu0eI4UlLMT5tqql5dP3iwcPYsycsj4yYwdUM19eop4h6x
/EtFnHbs1DZvVVy5Mrt06b98XsWq9xRX7H5XLld3peBNa1O+PX/3nSg01KFFC6f16x0LCsRy
OaVQoJISUVZ2panTnDxqifr2q3rkiG3ui2Xph4/EjRpRDRu5Tpteo6Cg0vM8AXa/bdtx5c/I
YrGoVKqSkhK5XK7VaoU3rCX+15SVyWzdoq9Th+ndlz1wmFVryv0Evlwm8ndxhQAIu3aZ2rbV
+PrqPh9pOnOWexzPpzzDt27BnDkkOub/iSuzZ5fDFaMJF0uFZ89IcjKkpEBKCiQnQ2oqKOTA
WCAlhWnaNLtWLUXXrq+YXbl4sVyZSJWK7N7N9eghBAaSAwdtswRl9fgJLF8JXt4w8nOIjwNr
APqb4MqHH9qgIjMTPvwAYqJMjaM19UKFoEBNnTqFXl5s27baefOkT5+y1hhiAqBQkmepJDkZ
rOeVnAzPngk5uTzLEvhdXDEYhFs31ePGFgYE5Ddryn73HZHLX10U/PdxBWNrgU4hKYk5fcoy
e7aqVUupn5/l0wHCgX1EpQK53NaxFz1MSYasLFtIz+/gisUiJD/Tz5xVFBiY17wZu2EDkZbP
fgsAPA9yOWRlQVJSafuJiZCfD6byi8HeBFduXFdNnpDn4cGOHg3x8SQ1FdLTbc7IsDk/HxRK
26TBc1xRhYfnJSW9FPpP4NfthmZNFdWqWeYv4B8+4jt04Jo048ZP4PLyyI8/8eENjD51Ctd+
q0lOJo2iuKhozew58sJCay5gkpsrTJzI1arFTZlKbt6s2LZaTc6dIyEh0KG98MP3Ns58c1wZ
NxYuXmCHDCoIr18SHq77bl1JcmJpXU+WhZwc8uLL8uLeyeW2VYLPcYUdPtz48KHeWCZ25do1
fsIExsODjJ8A2dmkQuy+SgV79kDPHkJQoOXQAYW02BYIZZ1dsX6jK+j8OcOwIfLq1bkZ07FC
JrAsWbyYr1SJ7dCB7P2t4s5mM759mw8LEyIacNNnMNYsz6+aXYH9+3Hv3iQgEHbuxXkFFQfx
TxOEb1ZzPt5k5Agh/hFnMhG5nD1+whAcrAsNM3bvzoSHE39/s7+/JiKCnTTJfOGCQa0WXsxa
EAKpqXzHjmoPD1mLFspnz/itP5dEN0rz8DAvXYqtmVBMJpBKITUVkpIgOQlSkiE5GdLSQK0G
hoXEJBIeztb2ZD/8iM/MJOXPEZ4mkC++wLVqCVOmcDdvCsXFwvKVmiZNDSEh/PmzRPPSfO93
mwT/QLZaNW716n/7xAoA2HHF7gp+gSuTJqK8vHePK0eOuMXG1vTycmjdmp4xg/7xR7R1K1qz
lhrwmWPdUHFQEL33N5eCQtvcV16+0649lQKDRB9+XPXUGR+t1vF3Jtns/lttx5X3XkWF7IF9
psBAvkNH9sctjFxR+mtqNMPd+9CuHfH2Jq/DlZKS0qYwJgyDV6xgvL1NbdpafvqJU6kxz2MA
Ii2BNWtIi5Z/AlcwtuFKkyZ4xXKhuEz5P2u0a4UoXkIAYyAEMjL4fv1kvr6apk35+Phy5d4V
SvLLdr5L19LMYHo9vnLZ/OmnrI8PXrOGTUysOMY/d14YOpytXp2fPAkX5gPHAvwZXMEYkpKg
WVPo0sm4aL569Sp+xQrzkiW6ZcuE7dvNd+7o9HrhxYkQUjHpmfWkrHodrijk5Po1dsI4VcsW
isaNtd9+KyQkvOZm/xGuvDgszwsKhXDrln7VKoW3t6lFc8s3XzFSKSnbH6swtl12eD2uaLXC
ozjT7DnFnToXt2ytXr9eePqaHlpbe/kKVAi1fwWuxFfElZRkw4Z1Cl9f/ssvSWIifjltgLXx
Fxc/Nxe++AICA9Xh4QWvwBWA8+fMw4dpqlc3jRplOHhIV7++sUdP87ZfWIWSnDrNffqZsaaH
evwE7bFjpuBgpmcvw2/7dCqVALagCH7GDLZKFbZfP3z0aMXx9LNUvHET7+cn9Ogh7NmNVao/
hytTp0JaGn/yuHrQQE2tWoaO7dU//8ekVpWmWHhxg8pe5xdbEhNhzRri48MMHaq/e1dXdnYl
Pp5btcri7Y0HDya3btlWQr6QVEpWrcLNmvF167JXLll0Otv9WLIEXF1Ji+bCjh0vLWTaYW7Z
XOvublkwXzAZCcZk5Uq+ijsbGMRs2lTxq1dQyO/9jQkMZFq25NasxdZ/NS/jik5HLl4SBgzA
Pr5k7XouKbniW57Ll9jRXxhr1mAnTRAKcgjLwv373Pz5Rk9P9YAB+r2/sV9/TZYu5VesYL7/
nly7JigUFQNCiov5ZctUjRtrgoNNJ08YZ0xXeHoWtWqp27GDtU4Pln2QKogAPEvFrVobatQw
tWzFJiXhshn21CrYvw/37sUGBJh37GBzcwWlit2xK69bd5WfL2zegFNTSnfGGAxGvGQJX6s2
27KlZceO363T9G+RHVfsLuesbLT9V9SwEZo3DxUXv3lNm7fl9HTn3burDhni2i9W8uFHlDVy
Y8gwuv9HjsNHuKxa7ZKR6cAwttVlTxIqf7O2VnSMZP4Ct9y8Giz7zvNl/Xtsx5X3XloNvnSB
Dw9noqMts2Zb0tIEhsGCQCwWkpyKt/zCRzbEtWqRDh0qZgZ7eXZFEECvx3Pm8NWrc0OHkXPn
bNsZBlJTYeZMHBn553AlIQHq1yeNG/NLl3AFBVgQiLUIze/n/C0oIDNnsg0iLMHBlhMnGLlc
sA7OdDr86BE3cYq5fkSZzGAWnJ5umjCBqV2bHzpUf+yY2aDHHIcxxhyHVSph02amSTNTbU/z
8mW8xQRlk3S9Ia4kxEODCNynl3nndt3jOCEri8/LY/PySFERKBTEaCDcS+s9XqmXccX6WvfW
DWHhPKaOny4iwjxxIrHOdVhtsQDDAF8m2v53cMVoxAqFoNNihiFWFjQYLNeuaUNDDU0a65cv
1RcXv2mZyL59bbhCCHAsefzY8vXXSl/fnKgY1dyFthLs5XtI3qS40O/jyqpV5XBFIcenTvBh
YaR7d37rVjYvz3ZehADPE4sFazTEaCC8rZ4H5ObC6NEQHGyoV0/58CHPMEQQCC+UZiNITBLW
rrX4+Oh69lIuWCDz9FSOHKl9Em8ymXFiomXNGp2PD9utm272bJm3j370GOYFI1kXwq1YwdWq
xYaHC2vWYLmccBzBmPA8Npnw8RPCkGGcpyc7ZDB/9QrW6wH+DK5MngwFBcCyZOtWvlFDxtWF
GTyIvXGd16gJfoMJ2qdP4euviY8P+9FHhjNn9RqNwPNgzaxdUMDv3csEBvIdO7E//Mjk5mKG
IVjAGBO9njx8JAwazNWrxzZvxsY/IXyZRMYOEuLjzSxezOXnE5MJCzzmWKxQ4MWLhNq1OB9v
09q1nCAAIWTzJj4o0OLmZpw5i5HJMMNgARPr/59r17npM8yeXqbYWObIEWwt8vgyrpjNJDFR
GD0G1/bEX4yynDzF6nSY521fYY2a/LzF0r6NzrO2cclizqgHLMCpU8KAAaZq1YrHj1c/e8Zn
ZOCcHD4vny0oEGQyrNPhCg+k0Sjcu6cdPszo5cnMm63q0V1by8M0ZbL65o03qheUnSMMGabx
q6MJDjacOmWWy3lBsGaRJkmJZPo0oXGMoUljdUI8J/DEYGBu3s4aOqyklgc3fAhz6gRvMVsf
FaLRCk8SuJFfMLVqmadONd+6VTEvyL9Sdlyxu5zzC9HxU2jYcPSfrUitfXV2tf+uRVqt05mz
ldetd5o4EfXpgz7oj74cTa/+yunipcoKhXvZiKDHT9y/2+T15SjJgYMSQXAuEyRj99u2HVfe
ewkCJCcxXbpke3lJGzUy79ppysyw6LRcyjNh2UpDRCOVWyW+ShUoW3fldbhCCOE4dsECjYuL
onFj7pfttu0ZGbB1K46MtDg7cy/jijWRcb9+cOQIVIjWSUoi4eFsFXe+Ywf86CGvVnNaLc8w
+PcLgGi1+ORJQ//+5urVmSFDNSdOYeyuBgAAIABJREFUms1mYFg4f8E0eowqMEjv7My+wBWM
gbHgb77hfH2MtWsrRo9W37hukEoNRoOpuMi8Z48u9gNLbU+hew/L/v1chYkOK65YwzaeXwFI
SYFWrUpjVwiBlBTcrKmldi1zaF22TWvy6QDjxAnK8eP5RYvI1q3CnTtMSQn3JjXdX8YVkwke
PyJzZnP1w5g6ftznI7jjx/lnz0hWlm3VU2oqZGSASoWZ53mlfvoJ6tWDSpVegSsP7pu2/qw+
e9aSmcnxHE8Iycww/meLok4dQ9cuxu3bTErFH5eJbNQIatcuxRWOJYUF3JLFGl/fYjd36Ygv
DNduQWoaZGaW7SFRqniG+eOVLXfvwuzZr8aVx3GwbCl4eZXiCs/D0wTStjXv7WVq3ly3a5cl
M5PjOIFliUrJPEsxHDvK3LnNyeW2+bfCApg9GyIjcWAgv+83nJ2F9TpBrRbMz9Nh6XTC5Sts
3bqcj48psqHe2ZmZPZu31nhRKvHp00JICK5RQx0SUlDb07hyJV+2YBLG5OBBoXdvrlYt3K0b
v2ULJ5XyJjMjk5sePzFPnsx5euLAQPabb3i9nlgXgWZlwccfg7c3NGjwB7gycSLk5gLLQlYW
t22rOTiIC/DXDvxU/vA+X2E+5JVKSYENG4ivL2nWHK9cLeTmCSoVlkqB44BlyaOHfIMIbRV3
RbNmyt9+YzLSGYPObDQIV6+xM2ebAwOF6Eb8jClsfl7p8H7JEqAo7CAxNYxkJ0/CcY8YtcpU
WGjc+rO5WzfOoyb+7DPzqVOcdf/z583Dhmtr1ODad2A2bjRkZpoMBlarE9LSmTlzOW8foUoV
dsECTq3GgmDDlTlzyuEKxmA2k9VfCZ7ebG1P48iRhgsXDEqFxWJmpMWWI4eZTz/hPGvzHdqa
du/ksABA4PFjy7JlGi8vlZeXqWVL3K8vN2yYcsLEghkzdRs3ms6fN8tkDMeVop41x/HChfpK
bnIvT5V7ZXVgoObgflNx0RvNbyhVws7d+u499FWq6Pv0LdyzV6PRYItFiIvjv/6Kq19fqF9f
N2KEPDubIwQ4jpTImAULtDVrymt5qKdPMaQ8ZUxGQalkb98xT5hiDm/ABgcLx4+zcvl/Y7Xw
ey87rthdziyHNFqUk4MUCiQIb16C8+2ZEgRaqxWVlNB5+SgjA2VmotxcJJXSOp2I50Vls6WZ
TCKZTJKbS6nVlJ1V/ru248o/QTIZt3GjtH07dbWqbK+epnHjTLNnm0ePNn/yqapTN1lkJO/n
R1q1Is+eAVhx5RiJjSWBgXDwQIVgD4Ixv3u3rmMnZUAA17sPWbqMLF+Jp03Dnw4QWrfQe9W2
hIaSGzdsmUMBICsLft4KdeqAtUyktV7bC+Xm4C9GGkKCGU9PMnIkN3OmZfVX5vh4Qaf7vcE9
y+K8PMuKlWyDSD48wtj/Q2bePLxgATd0mK5bN/nQYZroaJO/P/frryQ3x/YnFy4Io75k64UZ
mzXVDRqomTpVNXeOeuoUTY8e+patTT37sNt+YVPTSgcH1tjZkBAyZkw5XBEEePoUmjYlvr44
tp+t/EVOjjB8mCHAX+vqomnYQNu2ja5LF0PXruaOHZnOnZmhQ4zfbzY9ecKYTH9ALLaq9h7w
QawNV1Qq2LuH9OsruLjw7u64eTM8YgQePx7Gj4exY2HsWBgzBmbNIseOCjnPa7H/8AMJDSUu
LuTlON0rl81zZqmHDTWMG2detIhdsRxPmqjv00caFiabMkXz6KHFZPxjXGnQAGrUgJ49bFFD
Wi05e0b46CMzRenFEmOz5tzY8TB+QrkezpzFHz6qyMr+45H13Ttk9ixcuzaZPMk6n1D60aOH
sHgR9vJkhw/nHz608XBJCaz7FnfragkMNPTtaxo3jlmwgF+wgMyYYRo9WhXbz/j9ZnNRIcOx
BADUajh4AD78EHt58f0/wBPG80uXMLt2GZOT2ec3Fycnc926GT29TNWqmb28dGvWWATBVi4m
7hFp2kRwczVWqaKJaqzb+gtTAUETE8mmTbhDBxIVhTt25KZOZefN00+brvp8pKFlK214uGbe
PObOndJnLDMTPvwQe3qSiIhy5dtLT/kRLF4MXl4wbhyxFoU0m4XERH7iBCGqkSkkWLtoPnf/
3h9jsExOzp4TunQ1RzRgW7fBkybzs2bjb74BqRQAoKgIL1pobt1aGxCgjo01jxtrnDNbN3cO
+9lAtnlLtmlTYeZ04fpVQa8vV9Xe0VEIDDA0ijS2b2cZ9aVu5gzV5MnKzp21TRozXbuSrT/z
qam2M83N5fbtM3ftxjSKYtq2NY0fr5wzVz97Djd2rKljJzayIRk1ijt/nn9xMQsKYNYs0qAB
CQ+HxMTSacOLl/CYsVy9eobGMdpPPtHMmGGYN08zdYqqX19z61Z8ty74px+4lOfrxORy7vhx
XXBwdrVq0nr1ze3aMZ27KDt1zm3XvrhrV+2AAcz8+cZLly0Whi/7ZuSnn8z1wzROTqZKboY2
rfUPH3AW8xtFj1gYkpbOfv2NtlXrkpCQkp49dbNmcfPmcyNGcB068BHheNQoy5nTRq0WA1gr
5MKZ08YvPpf7equaNtaO/tI0by43Y4ZlyBBD/Qi2Qydh0WKSmSmwrD12Bey4Yrfddv8dtuPK
P0EMQ7KzmeXL2PD6fGCA2dfH6OOjDwjQDhqiXLteOWky37077tNHyMggAKDXwaWLePRo3KYN
OXoEiosqNEYSE5nvNhpatWLr+GMvH1IniI1sxHfvIsyaqovtY+7Qnty/Xzq7kp0Du3ZDy1bw
xRdw9mzFxFwatXD4oG74MEtgIPHz4+vUMbdrZzxz5hX5eV8SvngJjx2HY2K4OnV4T0/e29sQ
Ha0ZPlx98aJ2zhxdq1bGgwdwQYFt7xIpXLoAY0aRVi1NAQFKXx+lr6/c318RHGL+eIBly1az
XFHuRWZaGnTpgtu2IXPK5wDgOUhKJL16Cs2aCV9+KeTmEo6DjHRh1gx961aK+vWLPx8u/fIL
w+DBeNgwY5cuxuBgs7OzsV07/caNBpnsDwYf6enQrRs0joEvv4CcHAACcjls+Qk+/BACA1/r
Zk3J16uFx3G2xnfvxh07CmGhwvr1FVOk3r3DLlpgaNZMHxBg9PNjAgNxUJChQQPpRx8V7tun
NhnZP6xqb+1hw4YwZDBkZQEBUChg2zb45JPf62HTpuyK1XmP4l6KKX5JTx7jr7/imzTGCxeQ
3JxyuJIQT75dwzdrqps105KYCNZVWCwDudnw/WahZ08mIsJUp47F05OvVYv4+pqCg5VhoYZV
K00lUou10B7LQl4uWfMN37QpGxiI/fz4hg3NU6eor10rjXopLBTmL1C3a28IDWV69pTv31+K
WDnZZPhQrmEDPiKCGzlac+5CxVgZoxGSk2HVKujdmwQHC3XqWHx81N7eJUFBupat5BMmFj9L
Zaw5FazKyyNjx/DNmuLu3SA19RULIJ8mwLpvoXFjMm8eycqyxcHrdXD5EowdI0SEs7F9uEMv
VT55WRhDfgG/fJWmazejv7/g5ycEBeEXWfXMZkhOgrVrua5djeH1jXXq6Hy8tf7+TFAQ36QJ
nj4dX79esWdLlkDlyrhrF8OAjw2xfQ1hYUpvb5mXpywwUBnbz7zuW3j2rPSFBSFQXIy/XWfu
248NCWHr1JF6+2i8fdigIFP79uzUaeTefUGjKT2L4mKyapXQrRvu0gWSU+BFUSWlEm7cxOPG
mlq11AQEKH19db6+sjp1CkOCLf1j8ebvSNl5YJVKOHNWV7fu04YNM4eP0E6Zyo4Zq/9sYEnP
noVRUVpPT75aNcPcuYbi58+GVadPsZ8OMFerigMD2JEjzLk5f44WHj7UrlhR2Ky5zt/f4uXF
1qjBeXvzDRvioUPh9OmKOysVzNVL2o9idRH1tX5+Om9PzsfH4u9vrFtXWLQYMp8nt7DLjit2
223332E7rvwTRAgwDMnJxteucDt/1a3/1vD1V6Y9e5UPHukLCvh79/iTJ/nTp3itlgAAzxO5
TLhxXTiwD6ckgfalZMtmMy4s5K9ds3z/Iz9rLl64zLzvAJucRPLzhCuX8N49UFJSmhFVrYHE
JNi/H65ehaIiqJAqShCIRi3EPcL795HNm8iW/7DHTpgLizDzikDoitLpIDMLX71m/mkLu2AB
u3q1/MQJXU6OoNMK9+4afturyszgX4yZOA60Gkh9BlevGPbsUaz71rRhg277dtWp01x8ApYr
cIXQW7UaDh3CBw+QO7eg7HobngNZCTl5gjtymLt5kzcYSGEhOXhAiIpiY/vqf96iSUpkcnNx
djbk5OD0dO7ECTY8nA8MNA8eZMjO/oPRj1YLZ07D0cNw/Rpo1LYsXmlpcOkS7NsHBw7AwYMV
vX8/HD0KTx4ThS3HLGRlCmfPcPv28nGPMGOBssSiVuFnKezVK6Zdu5i1a/Dy5eSnHy1nzuiS
kxmViv9DVrH28OxpOLgfLlwA1fMePnv2hz0U4h7r5ArLH7avVguJCexve/G1q0QmBb7M0yKT
kUcP2MMH5ffvG16k3CUEWAbkMpKcLFy6aPjPFsv8+XjqFNiwjjt1ynLrlpCXizkOW0nAOkmS
lYnPnxd++pFs3izs2MHcuM5Ys3tZZTaThATm6FHTtm2GCxeMubmlD6LRAHduk317uV9+Md+9
ZyqRVYwrsAYa5eTA/XvkxAnh55/Zr7/Rr/5Kdeiw/v59c14+Z7GUi98xGMjt2+zJE/z5cxVX
vlmlUkH8E9j+C7lyhahUtkRwggB6HcTFsQcPGPfttSQ+/eP1QgTAwpCsHObSZfaX7fz3m8kv
v8C5c7Z3BxiD2QxFReTJY+7sGdV/ftR9vZLbvo07fARfuQbZ2aDXV2zQlhmsL/7lF/w0gdu1
U7NqpWbJIt2+35QPH5pKSsBiKZdQgeOgpATHx/Onz1h+3qpYtVq/bDl/6JDl1i0uNRVerI6z
ymQijx9zJ04KR45CfgFYnj81PA96PWRn4evXtXt2STesM29Yr9z6c+GZ02xCPJHJyhWN2btX
36FjYc2ahTNmaHJy+Px8nJcnZGVz6enssWPC1KnE05MbPNh0/YbBWqHVqmfJpu/Wa3x9hU4d
Lf/5Saf4k2uxjCYhL4+5dNn4y3Zm2XL85Zdk9Wp87jxOSwOttuLOPI/VKuHBPeHIIeMPmzVL
F/HffIV/3S5cuChkZhKG+YP4vX+T7Lhit912/3XbceWfI54jeh3Oy7UkJ7FPE7j8ApPBwAoC
aDRYWoylxdg6YCIEOA4rFTg/j2jVwL7qJZ8gEK2WT0sX7twjDx5xBYWCdc2MUgm5OWCxlP7W
sixotJCfD3I5MEzFrFBWGQxQVAipqZCRKRRLeYYhbzBytnVDp+MyMvgHD4SEBKNMxgAAEFCp
2Lxck9GAhTIjGEKAY0GjYQvyTclJfEoKm5NjUaqw5VWjaJaFgnxSkE+U5YsVWpfRFxfjoiJB
pcI8D0+fmr75Wu3jw436kk1+aim/egSnpPDR0TgoUD10SGF29h9AGMeBrASKi0CpAJYFggFj
MBpBoYDCQigufoWLiqC4GLSa0nexJhOWyYTCAqxWEZ4rN+jheWI2Y62Wy88TEhPhcRykp/NK
JctxbxIGD2CjNSgshJISYBjABAQBDAaQy209eU0PiUbLMcwfD/54Dut1Qn4eKZHaUhu/kMVC
VCqhqNCoUTPWh62sBIFoNWxmBn//Pty6CSnJWKnAZtMrcj0zDFEpSXo6pKbinBxBLhfM5vKp
mQy4qIjLymIVCs5c5m4KAmg1kJ8vZGVxGi3Pcq94lAkBjgOjgcgVOCtLePqUTUiwSKVs2TIp
pQ3yRK0WZCVYLgezuWLNEwDgWNBqIDMTpNKK41eDni8qZHOyebX6jWYAbF9qlZCTg9PSIDsb
KozvMQaGwSqlKTOdefoE52TjkhKifakSi1VWXPngAzh2DFgW5+Uy8U+YRw/ZwkKTyfja6HCG
wUoVn5Vljo9nHz/GUimv1+OXx+WCQLRaXFyMCwtBr69IcRiDTmfJz9enJPMpyeasLL1KKTAv
fYXXrNHU9sz39dOtX89WWLMXH49XreK8vZkRIzSPHilMptKrcOUSO2aUqWYNy5dfmpOeWsxv
thKsQufVGi47h3/8GC5dgviEUs58WVgAowGkxVx6miXuIX6aALk5RKMlZafg7LLjit122/13
2I4r77GsL7+VSigshKIiu/9+FxfDqVPaCeOLPDy4UV/w8Y/Z/DxiHaMXFUFODj5zhq9XD9ev
XzJmdEbcI+bFR3bb/Q+1VAozZoC7O/ToAdu3w3v4SEulMGeOzt29JCiYXbGS5OVBUZGtnwUF
cOoUM2my3sPDPHKk6uHDktxc7sVfrf0G1wvlXF1NM2cyxcXknZ9IUVFFqvxXyo4rdttt91+3
HVfeY1kX6uzcCbNnw8KFsHix3X+rl8CyZTBpktCrF+fuTvx8Dd27KubM4Zcth8VLYMECGDGC
adVKV6mSqW5d88cfMfPmkaVL33Wf7bb7L3jpUvjqK+jSBZycoG5d+OwzWLEC3quneskSWLUK
+vUTatRgXV2Zpk25sWPJwoWwdCksWgSzZkG3bloPjyKxhGnThp8/n1u8mCxZAkuXwurV0KOH
xdVVV60q16c3WbnyHZ/XokWwaBFs3lyhUO+/UHZcsdtuu/+67bjyHkung3PnYPx4iIyE6Gi7
/2bHxEDjJhAZCQEB4OgIDhKmejVDw4a4cROIiYGoKAjw5ytXtohEbLVqQlgYxMRA48bvvtt2
2/3/duPG0Lw5+PiASATu7hAcDE2aQOPGEBPz7vtmdUwMNGsGgYHg6kpomq9aVQgJIVFRtq9e
gwbg4WFGSIuQ4OUFMTE2N24MzZqBjw9H0xYXFxwQAE2bvhfn9dFHkJX1rn9I3rHsuGK33Xb/
ddtx5T2WtYLKqFEQHm633Xbbbfc/zC8KHP2L9T+CK4QgjqMsFspsRjyPCEGEIIahioup9HSk
19vKHWJMyWRUWhqSy5HF8trWVCqUkYHS0milkvpbuvfftMAjxkKZTYhlEMbvvj/vv/V6lJ+P
nj1DcrltCxYolqVMRsTYr+Gb2o4r77EEATQayM2FpCS77bbbbrv/Yc7IsGc0/h/BFY6jiqWO
ySni+ASkVCGWQwxDZWc7LF0q6tEDXb1KqdUUxpTFIt6wge7QAf34I5WS8loU+e031LsP3bmz
06+/St75qf1Zq1V0Rqo4IY7Oy6HNJso+2v5DX72Kpk5BLVqg77+3bTHo6bwc8aP7VGY6ZTTY
r+Gb2I4rdtlll1122WXXW9H/CK5otdSJU+Kly+iZs1DcY6TTIYahsrJE48fTQUHo6FGqpAQR
QjEMPX8+5eWFli6l4uJe29rPW1HjxlRwsGT9etE7P7U/66SnDtu2uE4aL9q9k1LIKJ5HAIjj
UHExkkoprZa2TjS9sCAgrQ7JFJRMQZsttCC8gwklnY4uKBAVFtF6/Ts4+ulT6LPPkIcHWrbM
tiUlhfp1Oz1+LLV9Gyouojju3d/W9952XLHLLrvssssuu96K/kdwRSZHm3+gP+hPd+xIX7pM
q1QUy6L8fDRpEgoKQocOIakUEYIEAS1ciLy80OLF6NGj17a2cydq1w7Vr482bnz3p/Znffum
y7xZ1RrHOC5dLCoqoDgWASCtFp08iU6epOPiRCZTOSQwmdCjJ9SZC/TZSyK5QsTz9H+7z4RK
fCrev9/h1GlRRuY7wJWzZ9HQYcjbB61YiQhBAOjObWr+PLpxY9HCBXROFsUy7/62vve244pd
dtlll1122fVW9D+CKxYLnfLM+fJl13NnXaRSJ5YVvxJXeN6GK0uW/AGutG//T8WV4iLXu7c9
jh32eBznbjQ6YEwBoPR01LUr6twZLVlCFRWV27+oCC1ciLp2R337UenplHW8/t819d134kYN
HYYNo0+ffgdX7OxZNGwY8vFFK1fatsjl4sdxzieOVYp76KLTOryTGad/mu24Ypdddtlll112
vRW9L7hCCOJ4ZDBQGm3F9UiCgNQaZDAijBEps51haL1erNXRFobieVqpluTlOebmOJpMjhiL
/jquhIejjRuRIFBarUgqpYuLRGZzZUFwARADVBi/UgAOJpNELqelUqTVOvK8GyG/t5CMFyiz
hdbqykX8Y4IYBun0lFZLvWrJFqXVik0mR4wps5nSaMUMU1kQXHhepFRSCqUto4BB71BYWCkj
vZJc5sLzjhg7MYz44UMUE4MaNkSTJ6PMTGQwIJ2O4nkxx4vS06nRo+jw+lR0NHX/PqXRUDod
xTDl7gLGlMkklivowkJKraYtjBOAKwBd5lNKrab1egnLijCmDAZaraZUKkqnF7Hsa6drBIFm
GLFeTy1YQNesKerRnf5tL2U2U1qt2Gymy19eMc87mUzOcgWtUFJ6g0gQJC868Lt25AU3tVpS
UEjl5dEajTPLOgM4lr2DVlzxLYMrDCNWq52zMp1LpI4sKyGkdGeLRaTWOJTIKJkMKZVIq0Ua
DdJoKJPJkeMkgkBrtSKj0RljN0JEFgut0Yg0GkqvF5vNNnT8H7UdV+yyyy677LLLrrei9wVX
BAFptSj+KX31mlhaImEY21gfE0qrpa5eRw8e0sVSMce9GPDR+fmSO3cc79wVFxTQHEcVl6D4
eOrePVqjFgsC/ddxJSICffMNKiigrl2THD4sOrBfcvt27aysGjqdiyCUDpQ5jtZqHTIyXG/d
cjp5UnT0KHX5cqXExFpqtRPHvXY8rdHQqWmiq9eojEyKEPp5U6hYSj2Mo69dF8nkpQN9jGmt
VnTzJn33nmt2dhWGEeXmUXfuOKakeOfm1szKdDp7jj51Gt25iwxGpNVSGZn07dtUdjbN8w4M
UzMjo9LOnSgqCkVGoqFD0cmT6MZNdPcurde75Rc4Hzsm+uhDUXAQXS+M3raNvnCBunGTKioS
mS00ACIE6fVUbq7o7l3Hk6fE+w9Q586JH8W5FxTUMJvFGFuX2NEZGaKrVyUJ8ZWzspyzs+mb
N8XnztFnzlLXbjhkZkksFtErR+omkyS/wOnmTXrkSFSzBmrVil69irpzh7p82TErS/z8waBM
JlFhoVNiUuWbt6qcOCE+dZq+dk2SnOxUIpMwzGungwQB6fVUQWGlhKce58477d1H79wpunDe
Pf5JlcJCt7K35mVcsVjExVKHO3eojAya48SEUAAUz9MyGRUf73j+vMuJk/SJE+j0aXTxIrpw
AV25IkpOdlOpnI1G8Z07koT4GsVFvvl5jnFx4gsXHC5coK5fd4yPd1MqJSz7v0osdlyxyy67
7LLLLrveit4XXLFY0LNUNG8eattWvHN3taxsV+t2hhE9fiLp2o3q/5HrDz9Vl8uto1gawGn3
bsfefSQDB0uOHBPpdPT5C2jsWKpbN+rBfdpkfHXsypvjSseOKDoKjR6N1q5FLVtSQUFUYCAd
FuY8YUK1S5dq6HTiFzsXS11Pnqres5djZCQd0YBqEInCIySdu1Q6eqxmUZHb6w5x/wFauoxq
3hytWy9hWWcrsej11NVrDuMniNu3Fx045J5f4Gy7CKzTk/hK3bqLho+oeviIr1rjcOQIGj5c
Mmli7flzPWdMrRoTI6obivr0QxkZKCmJ2rSJatOGWruW0micS6QRq1Z5BQQgFxfk7IyqV0fB
wahRI/TpQElWltemTdWDgh2qVqUdHSknJ+Tvj+rWRZ06obPnKbmCIgSxLLp8RTJjhnPTZuLw
cCoyEoWGUe07OE+bXjkxSWwyIQBECPXLL1TPng4L5/uuWFZzyiRJk8Z0SAgVFoaaNKWXr3BJ
eeZusbxiriknV7L3N6f27ekaNZBYjNzcKG9vqn59qlGU5Kcttv31esnjJy5z5jp16eoUGuYU
HEwHB1MREXSnzpL1GxwysxwY5tUAoNdTl69KZsx2btrcJTRMFBiIAgKouiGOnTs7z5/vWFj4
e7MrmZn0rztE7dpRq1ZRCgXN8whAIpO5bN7s0L+/JCxMEh1DRTRAISGobigKDUUtWtBLlzrf
v++QnU0NHkxNnODzw6aGUydV6tZFVLcuVbcuatJEPHCg0/HjbgUFji9Nzf1v2I4rdtlll112
2WXXW9H7giscRxcXu06d5ly7tuPkKW43btpGdQUF9J694oBAqo6/49ARbjk5DgA0IWJBqPrV
V25BwaIhQ0SnT9MaDXX0KOrXD4WGUtevUwYD+iu4sns36tAB+ddBzZuhIYMlU6bUnjmz+uhR
ruHhVZo2cR871i0h3sFkojFGBgM6cNBx6LBK3bo5f/65ePkKtHIVGjLEoXVrt88+q3zggKPZ
/OrCHUlJ4m+/dfTxpcaOkaSlOlksNACSyegNG5zatJF4etGLlrg8fORgvQgKZZWTp7yDgx0G
DnS5dr2qXi/atQt17kQ3jnFr1qRyl07un49wHzHCZcYscUEBFReHli1DXl5o1iykUkm0Gq/j
x6sMG4Zq1UI1a6LoaDR6NJo9B323USSTVbl40W3sOFGjRlTNmsjLCw0ZgiZOREuXovinSK9H
RiO6f5eeO0fctq3jsOGOc+aIVqygpk0Xd+vu0KyFw7r19NOnttP57jsUGipq1rRq316VPh/m
MG6M4+RJLiM/d6kbIurRw3njxsoymfjliyBX0Ldvi5cupVo0R86OVFAQ1bcvmjkDzZ5NX7xo
G9Pfui2eN9+xTRtxhw6SgYMkM2ZQEyc6fPyxS3iEuHdf0boNohLZq6ew1Gpq/0HRlGmO/WJd
Ro+RzJhBz5xJDxvm0qaNY9t2opNnqBKZbc+XcSU5mVq3jvL1RVOnopISiuOQUiW+cs2pbz9x
z56icWPp5SvQ3LmSAQOcq1UTBQXRgwbShw5KcnJE6emoSxcUE12la2fvLh2cBn/mOG2q6/hx
Dp06iBtEOEyeVP3qVbc3W8P2j7MdV/75IhgIBkLe8lEICALheSwIhBDytg9nFcaY5wVB+C8d
zq5/jzAmgoAFgWD8rrtil11OW6LBAAAgAElEQVT/y3pfcIUQsSDUWLmyqpeXc+cukr2/iQkR
AdD3H4gXLHTw9RO5ulHNW9KJSc4YO/C8RKWqNXOmu7c3/dUqKiEeaTTo2DEUG4tCQ9GNG8ho
/Eu4smcPatcOVapEBQehkZ87JSSEqVX+yUnVpkz2Cq9fOSCA3rvbqSBfYrGg1FRq/HjKz08y
f36Ve/dcrGRy/brLhAlVPTzEkyah/DzEsq84hFLpePq0W0gI3T/W8cRRV42GBhDl5DgMH+Yc
HCSpVYv+5BPxiZNiABEAlZxcY/2GAH9/x2nTqKIimuPQ3r2oQ3tUoxry83GM7Vfl6pXaDx5U
vXPHwWCkHj9Gy5cjLy80cyZSq5Eg0AYDdeMGatgQhYej0aNRQgKSyZBcjnieZlgqOQWNHIki
IlCTJujqVZSXh4qKkMWCMEbSYuqrFaLOHR1atHA+d95FoZRwHCWVOixd7livvqRHT+q3fbZU
Wps3o6AgVLkSat+G/mqFJO6hS2F+lXt3qnXr7Fwv1Dm2n3NmhujlWQWeRyYjkpWgWdOp6u50
t27o11+RQo6Ki5FejzBGJhO9fgPdIJKOjhLNnCG+fkOsVFG5eS7Hjlfp00cSVo/q0AklJNBl
lgiWWqNFJ06irVsddu50S0pyUihEKhX94L7biBGOXt5o/hJ0//kD8CpcQevWIV9fNG0akskQ
x6HEJMmabx19fakxY1DqM8piQUqF8+lTVULrOnTpLPp5C61Q2FIa9OiBPDyoWjXp/n3R3l0u
suJqWRkuixc6hYW4NImp+fPPley48s6F3nUH3kcRDIwFGAvh2Lc7pmcZrNdyaoXJoGNYRuC4
/8Y4z2CyyBR6jVb415das+tvltnCqTUWrZa3WLAdhu2y663pfcEVAJoQ523bXJs1cwkMdFm7
1kUQXAhxPnbM/ZNPatQNreTu7lC/vuj6DTeD0VGvF127VmngZ04hIdT5c5RGjTQadPz434Yr
u3ejNm2oym6iSRPpnBzabHbieUejwTEpseaoUW4eHvSkiU7Xr0sUCrTtZ9Srhyi6kfOtW95G
o7v1z/X6KleveoeGOn74IXX6NNJqX3EInhc/eeIY2YBq37bmd+uCZCWOAO4pKZ5NmzjWriUJ
CnIKCa60caMrgCOA+NAhxz59nP186VUrbaEUe/eiDh1Q5croi89rPH4YqFG7Go0ig5HCGFXA
FZ5HGKOnT1FMDIqKQtOmoZwcxHGI5xEhiBCUk4smTkTR0ahlS5SYiFgWcZxtRig1FbVtQ/Xo
VmPDt4H5+c48TxGCOI66dKnqhAneQUGSFSsQwyBC0MaNqG4IqhdKrV5JSYspk5FmWVFervOC
+X5Nm1SPjqZfWZSTEIQx4jm0ZBHtUU0cG0sdPox4HnEcEgRkMtFxj1xGjXIIDBQtX1bpzh0n
g4HiecSydH6BZNs2p+49JGFh6MghuqT4FY0LAtJokUJBKZW02UzzPMXzyGikFyyga9SkevZB
hw7b9vxDXOF5+uyZSoMHVfeoKV64wMZyPC+Jj3dqEiPq2J5atxaVlCAAlJ6OundHwUGoS0d0
7SpSKWmeEzMMfXB/jdi+/p61XVau/OdV8nkz23HlHy6VCvbugc2byN49WKV6K4dgGJKVwx48
ZFy0SDtrpnrObN36debMDGyxvJXDldW588Z581XbtvFPn771Y71zcRyRynBuHl9QyLNchRE0
wRgbDbyshC/IJyqlwHG8fcrpr+jyZWbxYsO337J371bEFYwxwwhSGSmUgkxBzBZeEIR31M33
S4QAw5ASGcnOJnI5bzIJGP/eQ4gx1mpJQQHk5oBczlsszO/vb9f/ot4fXKEARJcuVR41qqa3
t/PcuY5qtaMgOHz/g0uz5u5fjqravIWTfwC9bZtTVrZEKqW/WePWpUu1Nm2qJyQ485zo78WV
XbtQu3bIz5f+5puy2bFos9lt4UKnmjXp2Fjx0aOSgnyn6dNcY6Kd6teXfP+9++HDTgcOoAMH
0OHDbhs31vTzk3TtirZvR0rlK48izsx07f+RR0xjz88+rZmd5Wg2u96+XSUsTNyyheTzES4+
Ps6LFjkajQ4YO2za5BAR7tS2jfOOXx2s7+b37EEdOyIfH7R8mavZVB3j0qVWL+MKAEpJQY0b
o6goNGMGKigo15P8fDR5MoqORq1aoWfPSrfzvGtcXPV69cRNm7jNnlVj5w7xwYPo4EF0+DD6
6iu3/v1rVK0qnj0babVIENCGDSgsFLVtQ+34tbQFhUK8dVvVzp1dwsNRYlK5rG4VvGIZXaum
qP8H1LFjpRs1Gofjx/xjY6sHB9PHjzs+D1tCAMhioZOTnUeNkvj5oR82Uempr40G4Thao3V8
lu5+977ThYvo4FH0yWeoWg3UtRvav9+2zxvgCnXlotOYkW61POilS5wB3AFEBByTk92iokSd
O1Hfb6bkMgSArIvBoqLQyBEoJ6e0G9evu06aWN3DQ7xkyTv/or0l23HlH67MTPjgA2gQQWL7
4syMt3IIpQrv2mv68GN1rVpyPz+Fr6+ydWvtzRuCXgcAtnVob2nkvGSJqUoVdZ8+wpEjb6X9
90lEq8Wnzgi/7mIPHWHUmtKpK7OJSKVCcjJ7/brp2FHj3t3C2dPsk8em3FxGr7cPo/+fWrmS
rVbNGB7B/rSl9FJzHFHIhYwM5t598+FjeN8hcuykcPuOKTmZLSoiHPcn2icEMAb8Nr8d/10R
rZZkZpIHD4SjR/G2bcKJE6bbt82paaxGw3MV6Ro4DjQa8iyFv3RR2LuH/LqdnDhuevBAk59v
MRrtD+2/Su8PriAAlJ5R5YefvP3qOIwaLUpKdtDpxAsXiYJDHPYfqDp+oltAkHjqVMmNG5Ks
LIdPPnVr3sJryJDA7Gx3AMnfiyvWzGANGqDNm8tupwBEK1eKatWiO3ZCe39zzMqqMuCT2oFB
leoEoIED0eefo8GD0eDBaMQIh08/dQkKoj/4gNr+K/UaXBEVSysv/zq8SXPP+vWphKcOBYVO
Bw46hYaKRo9y/G2PS2AAPWG8KCvTQa9zXrLYxcfbddwY9yuXnax/vns36tTp1ZVhXocrMTGo
USM0bdorcGXiRBQVVRFXjEaPGzdCQkOdgkNQ7z5o8BA0dCgaMgQNH4769RM3bebo60cvWYKU
KsTzaP16VK8e6tWrlAEAkEaDjh5D/WJReDhKTES/U9FlxQqqdm36gw/Q0aOlGxVyl//81KhT
R9/wcPQoDpUtLU8IzfFOCxdKvL3QqmUo/vEr2sQYGU0oI0t84bLb5i21lyyvPGUaNWgEFRFF
V6tB9e2Ljhyx7fkGuIKePhZ9s0zs40WNG+eekuKVnS1JT3c5caJKaJi4Xyx18BClViMAlJaG
OndGrVqh6eWxMO6xLaDIjivvg9C77sD7qLQ06NIFfHygfTtITf372ycEUlNJ1664brDQpiW7
ZrVxw7eaTd+pU5IEvR4wBsZCWAYE4a2MyZYswVWqCH36kH8DrqSn427dsH8A7tIFP0vDBGwX
ND6e/XatoW1bc2ioIiioKCCACQkxN2uqmjwx/8plzbvt9D9XS5cSVxdcty754QfbFkJAViL8
Z4v60wHysHrqoGA2MIgPDraEhWm6djUsWsQWFb3pI04ICDxYLMRowiwL//zwGAIgnDolDB0q
xMSwQUGsvz8bHKxt0EDZt5/ixEltUXHFxZrSYnLyuNC1C1u3LhsQwPn788HB2hYtChctzL97
V/tOzsGud6T3C1c0WvGFi44hdUW9ejvt2l35aaL7lClO9eqJ796r8v2P1Vq3rdqpY6WdO6qn
pNRs3NihdSu3lSurFxc7AfzNsysvEhlv2lThI2rlSsrTE/XshQ4edM7MrNH/Qz//gCohIWjK
FLRgAZo1C82ahWbPpmbOpCdORD/8SD96LK5QRf5FUwaj8427dQcNrRVWj77zwOnazeqLFntF
N6r89WrXB/dd6tUT9f9AfOiAS/zjmhMnVKpTR/T9Jqe0VNsMw+7dqGNHFBaGNmyo2PLrcCU6
+s/hikzmcexYcHCwY3g4GjwYzZiB5syxneCMmdS06fS06dTJk5TJTGGM1q9HYWGoe3e0b1+Z
u6lBR46gfv3eCFdq1aZjy+OKtNhh9Urf1i2rRkWhxEREymUsoAgRL15Me3uh5UvR47hXtGk0
oQdP0Mx5VP0GdL1wSYeO4iFDReMnObZo5Vi9hkOfvtSfwhWlzPX00erBQeKaHqLGTSQDP6N6
93Zo2MjF24eeOQtlZiKGQfAcV1q0QFOnovz80s7ExaElS+248r4IvesOvI9KS4POncHLC9q2
fSu4wrHk0UMcXh+Hh5Hxo8jd23xKkiUp0axSYoMesrNh/TqyaeP/sXeeYVEkWx/vGTJmlJyD
ZFAQxZwVI2YxZ91dXdewwawg5pxQTCjmrJgzKgZUTOSc8wyTezpWnfcDSDKxe+9913uX/3M+
6Ex3VXV1D0/9+tQ5B9+5A3L5v7/3wEBo2hT8/eGfgCs5OXj2bNyvP54xE2dlYQyY50Eqg/37
uV49qTZtqH79iqdOzZgyWdaxI2lupvJwl/z+q/RpFKlU/tcvh///FRQE+vrg6AiVuFJaAvfu
sMOGlbT3LezVo3TGDOXPc+UTJkotrVTGJnTXrvT5C2V5eaq6NM7zIJPCtat8cDB7/hxOTfkP
Xsj/gyQSdOECNWUK5epKd+umHjVKOWuWYto00tdXZm5ROmJEwYkTZWIRzXEYABgGcrPhyGEc
MAq5OrM9e5CzZspmzZT5D5b6+pZ16lSybGnZs6fK+of2H6PvC1dYVvj+g2b37sIuXXV+nts4
/Hjz8RP0vbw04uIb3b7TaOYsfVcX3bVrTaNftnR20QkIaHH/vp1crgsg+LfjSrduhL09sXVr
1YcYCxhWc9UqDUPD8oW1dmZmo4mTWri5N2jnS5w+Qzx+TDx4UGEPHxKRkURcvEAkFnLc57cq
sZxOichm4a/NrW00DoQ127TVeMxYY//BjU6e0E1O0u7WVdizu/ai3xudCDcNGN3UsaXO3TuN
pdIq78qfxZWveFd++eUzm8Hk8iYPHpg6Omr17Els20bcvElERlZd3aNHRNRTIiub4HgC4ypc
OX26qgWplLh0kRjiXwdcWSs0MdUYOlRQ07uieXB/8759Gri7a0Q/b0ipdao/J4WF+gsWaFta
ENs3CxPiPp1hQWGRxtqNgt5+Ao9Wwt//0AgNFV64ILx1W3PmLE1LSw1/f8HFPxG7Qrx/q7N1
c5Pu3Zv37mMwYWLjCRM0AgIaTJhoEBik+eBhRQ1T+DKuxMQQgYH1uPK9iPi7B/A9KjX1o3el
+38EVxRy/PA+cnTkundFITuhtKTqK5KEp1Hg5IRbeeLFiyE//9/f+z8JV0Amh1u34fgJuHQZ
pFIAAIaBvDwIWo3atOHnzGaPHxe9icl69VK8ZYu6Z0/UqBF4tSKXL5Xk59fvrvnTCgqCBg3A
2Rn27av4JD0Nwo9w3buJxo0pORBa9iFWlplTFvVcPHYcZ20NhkbM7J9zIx9J6tI4x0FpCfy6
kGvenJ40gbt96794NxjHQ2IiP3So0tZW4eqqXLeOvHNHHh8ve/uWX7qUtrOT6OjkTJlc+Oql
vHyXl0wK16/gEUNR0yb8kIHc/n3KhDhxQqzo4nnlvF8YU1OVd+uypYtFublsffDVP0PfF64A
aGRna8+apdOhg65ve/0fZzcbMLBB7z5aKan6ySn6u/foWlkJZ8w0PX3G1aGl3h9/mIvL3DlO
D+DfHGp//DjRtSthYkwsWyYQi8vLbhAsKygs0l6wQKt5C40pU4V37mrk5Wn9vkivY2etbj2I
1zFCiqqxaEZIWL0a+udMC8BkzZpmFpZ6P/xkPHxki/YdGi9Y0CAyUjsrSzhtik6XTvq9ejT6
5WejXj2btmunn5jYHKCiHM1fwJW2bQlPT2Lu3BrLaAAiN5dYsIDw9ibatycSq+EKz+u8f9+o
VSttf3/hmTOEWFyDNzAmOE6APla+/xKuXLxI+NcBV9au0zAx1RowQHD+fNWHCrnGg/uNxgTo
2tlpnTllnJ/XpDK3mEKh8fBhkzFj9GxtBMePauZkfZprSzMlVaePn6abm+aYAK2MDB0ATYwJ
hhVu2CCwtyeGDCEuXKg4uC64cv68xshR+oMGW65eYx1x1WTzZq1du5pciTAtLtFluare63Hl
7/6DVicRf/cAvithAAx/Ale+uTL4/AF5uXDqBNja4uHD4NpVkFXbx4EQfPiAXV2hdWu8fBn+
13AFf3YA/w5c+bTlr0/FV77FXxrnn2zn8+J5kMmxuAxLpbg8tJvnQS7DcXHMo0fqjAy+TMyR
JKNSccXF6NYt3LIlGDRD/fz4lBRcs7dag/zSmP/aYvEvnFWXUz495q+dVVd9iityGWSm4ZfR
XGICJyrl1GqeZji5gkuIxz/8AA0aYN/2zNFwri6NYwwcBytW4ObNucmTlHdufzOxHf7kH185
po6f/9ljPi+JBO7c4T08VD4+8j/+kMfHc3I5r1bzJImjoqglS2QmJsrOnSXbt5cVF3MAkJsL
8+ciV2d1y5aKO7d5USlSqzm1mpNIUFQU266dqHlzWYf29Ns3LMPUO1j+CfrecEVQWqodGmra
t2+TJk2ELq4avfs2+n2RQV6ellJl+jjK2clJt3XrBsNHGFhY6axZp8NxFQUW/724cvIk0bUr
0aQJ0b+/5rFjOmKxAICQyYir1wTDhgssrYQ7d2knJWuWlWmcONNgkL+Onb1w596GiSlVr/8R
EpKkLk1rfWWNDiAA0Nob2tTLx6RbjyYtnXQdHbX3hxqkpeqLRDqHD9n5DzYyNtJs6aDt205z
xnRhdpZmZQ7cP4sryclE166Es5Ng3FhhZmaN4wsKiOUrCW8fwsODiIsXVAbEYyxMTtbu2dvA
xU0/IIBISqrhJuI4gahUR6ms2Jz2r+GKYO06reYtdFp7CQ4erPqcYTTychvN+0WveXOtSROa
3b7VCKCiEE1BgWDVSs023kInJ8HTKA2S/BRXdBMSmrT20nOw1506RTcrqyGANsMK8/J1FyzU
atGC+DR2xcLia5nBwsMbd+pkbGKiP3u29pMorbt3BZGP9N68NSgqbk5R+pX9pqQQvXrV48r3
LuJv7BtjjBBKSEg4c+ZMSEjIwYMHr1+/XlJSwnF1Wr78W1RWxnyIJc+dQ/v24V27UHg4inmN
378DPz+wtq7CFYaBnGy4f5+/fImVSHBaKnX5smz7dsm+feSNm0gmA5YDqYyLTyi5ckWxayds
3Qpbt6LQUPrBfVFWhpKmACMAAIUCIiNh3174YSYYtoB27eD332HfPrh6DV5Ew9t3cOMGDgrC
ZmZgZ4tGjuD27MHHjnEXL6lz89QUXaeoZLWa//BefvmyOiQEb9+O9u/nrkQw2dlqkqw4/cu4
ggsL2GdP6ePH0a5dsG0bDj/GvnhOikRKjqtaA4nE/Nu37ImTTMwbnqJQchIVEUHv2sXv2IFP
n1K+jBapVBwAkCoc8xqfPIm3bIEDB/C9e6qsLAnDVLksKApycvDJU+hJFCorwwUFbGQkH7of
tm+HI0fIhw8lYjHLcZgkuZiYslOnVVu34t172MtXlLGxcrW6rq4PhQIePEDnzrHXrzMyGQYA
jIFlQKnk5HKW52usOJOTmE4dc5s0lnh7wds3uDLWOSMD3b7NnT3Hx8YiqZSPiJDt3l22Y4fs
/n0+Lw94Hsvl7Js37OnT3M6daMsWvHsPiriiTEwk1WruS1mbyqPGExLwxYv4zFkuLr72KpPn
obQULl+Gu3dV6ekSmubUJJ+fRz1+Ijp2XLl1K96yBfaEoFOn6OhoUWGBslakU3Q0HxbGvXmL
S0tRWRl/6yYKC2P37qVPnGCjosj8AiXL8jW7wxIp+/gxu2cPt2Ur3rED9u+Hkyfh5Ek4cQLO
nYOEhG/P9qe4wrKgJkFNQvWQep4HmQwW/QG6uuDiCqH7v91yTg48fAAnTsCQIdCoEerWlVq8
iD1+HIcfZV++ZEiy+jzj1FT64kXF9u2KTZuYHTvw/gN85CO6uJhi2RqTrFDg+w/YmzeZl9Gs
SoUzM/HNm+jgAdi1C4WGsrdvMVlZn/lDxLK4oIC9f4/dG8Jt24Z37YKjR/CdO2xW1p9wx717
x65ZozY3p0eNou/coeXyqjtXWspdvUo7O3MtW8pmzCzJzuYoCr15w/bqoXJyVA0fTqen17iK
7Gz0448qBweyZUv61k26rKzeK/hP0PeGK4RKpfHqZZPJk/U0NIiGjYghQxsdO24oFmsi1PhD
rEkrT50WzTWdXXS79Whw7Lh25et2qZS4fKm8TCTx+DFRXiYyJ4eYO5ewsyPOnycKC6twxdSU
WLGCeP36i2MIDyc6dxJaWem5uur276+5eLHGxk0awWs0R40WdO2qMWSo1uMnWhKpBkUJklJ1
lizXcfXU9huoO3e+zo5dWkeOCA4d1tq5S3/FCu2IiKYSiRHPaX3lem/c0p00rbGzi3ajRkJH
R817dw1l0oYkqRkT02L69IbaWgJ9PUH//hqHDmmWV/aoHGGXLoStbY3tauX2JoYICiTMzIjf
fiPE4gpcyc0VzPtFq21bDU9PYeAqjZ3bNY6GCcsxrKxMcOKUdv8BGsbGggULNTZs1AwN1YiL
E8hkRHGxxtbtTXr11re1Ffz0k2DzZo1DB7XCDmvs3CFYu0a4eVODZ0/1MdICEGzZQtjaEr16
ESdPVo1EIiHOnycGDyZcXb+BK0eP6nbs1NDKWhgQoLVvn97eEK1Xr4QICdSkzqGDOj26aXu1
1h0ToLN+nfbeEL2tW7QWLCDa+xLdumouWKCTmanB8596sbQyM/UmTNTybKXZ1kc7MLDh3r0N
d+9psGKVTpduWs0MNPr3r/Lk3LhBjB9HGBsTq1dXDDI+ntiyhbCwIBYuJIqLCZYVvIw2WLrE
wtRU29ubmD6dmD6dmDlTY/Zs3d9+a7B1q/a164LydNXlWNimDTF3LpGTUzWeV68qHrx6XPke
RPyNfbMsW1hYuG/fvt69e9vb23t6eo4dO/bWrVtFRUX/D73zPMikKCpKtXGjpH9/ulVr3s0N
devGBwehMydx9+5gY1OFKwoFPHyIf13IDB9KRj2mww6Lhw/LsnfIa9WqbOYsOjsbFxWhJ1Hk
9h2p48aVtG4Fbm7g6Mh7eal++iHj9ElRZjqUFzkpKIBVq/DQIai1J9LXAyMjaNUKunaFH36E
7Tsh7CjMnYs9PZCeHm5uwLm7Mb174z59qfETpc9eSKRy9TcvSiyG6Gh24/riUaPkrVtjZ2fk
05YZNVoVHi5OSSXLj/ksrrAs5OejiMvUot8Ufn6ctzfbylPdq5d62VLp7ZuinGyGJCtWVImJ
3L5Qqmcv9fr16g8fyJA9ovHj5O7urK0N36tn6YrlGR/ey3Oy2ZfRKHAV49eXt7MDT088fXrZ
yRM5eXkUw1S0I5XCo0e4Tx/uj0X048fkhXPKBfOZdr5ga4vaty+bMyf3yWNFejr35i0dtDqj
Xz+RvT1ycqGGjRBv3VqUmEir6rZNPzcXL1jADxhAT5lCZmV97RSMISWZHNDvrbFhditP7tVL
nqYrhnrrNv/TbGawP7trF/3ksWLkyFxHx2wnp6Jff6WiopBSiZ4/V61Zo+rXT93Wh/Hw4H18
2DEBpeFHxAX5qlpL5OrdcRw+e5YdNYrq2099KIyhmRqVOxUK9sULasQItGBh2b37uXI5k5pK
nT4tmjc/vVdvkaMjdnKC1l58n77KJUsyb90Ui0VQHfO3bePatqW3bWfu3FXfvqWaOoXt2JHy
bKXs2k01f0HZpcslpSKmktZoGhcWcQ8i1Qt/pby8mFatGA8PrlUr1K0b7tkT9+mNR4+Gixe/
Pduf4spnRdOQmQFz5kDDhrhDR/7YsW/fyqgnsHQJ9O8HVlagrY2trXlfX9SvH+rZU71nNykq
pTkOIQQkiTMymNBQqb9/UcuWpXZ2pKsr9m7Dzv1FGXFVlpnJq6qFyeTl4V9/o6dNUwSukrx4
oTx6hJw0kerUETk7s25uqkkTVWdOMyUluPqsKhU4LZW7cEH54w8qTw/ayQl7ekL3bmj6NPJY
OJWVxTN0nVwuERH0iOGKZs3Y335Dopo3DgASE6FtWzAyVvb1E6WmchIJun2bbtlS2qaNMjCQ
q5WcoLQUQkKge3fOxoY6eoTJ/jPUVK//Wn13uMLzhExKrF0rsLQQmJkRc+fqv3rdTEVqABBp
aYIhg7VtrTVdXTUWL2307LleNVwRRERoTJok7NyVePZcoFIJGIbIyhYsWSpo34G4EiEoKhJg
TNC0YMNGQWsvYv16wdu3X9ypdeoUMWiQpp9fi/btG7q4COzsNJyctd08dGztBP5DtPaE6JaU
an7sWnD1hta4ybrunhqOLtpebfX8/IS9++i179DE0VEzMNA4P68ly+h+5XoTk4UhoRqtvQRm
ZoJevbSTk5tj3IDnCYmEWLOGsLQkTEyI+fM1Yz/oqNVVAz59mhjQX+DtTYSE1G7w7VvB+vVC
L29BcDAhkRAcTwAQEonGhQt6Eydo2dkJvFpp+XhpjRyumZEuACDUauGHWP3ffte2sxM4tNRy
ctbu3Uf7yhVBQQFB08K0dN1VgTrOzprW1oJWnpq9euj26a3l00bo5qIxaEDDM6cbIV4PIWFI
COHjQwwZSlTfzVXu8ho/nujcmUhM/BquREXp/bGoibe3hoe7XqcOTXt00w0/UlGf5O0bjY3r
tNv7Cm1thA52mh3bN/b00LW2Ejg5ai+Y3+DZ0wZK5eerLorFxNFjxOgAwt5O6O2l16VLk559
mnXpru3lo9PaW290gEZlnMzdu4KZs4QursTmLRUhKAkJgt27hd7eglWrBCUlQo4T5OcZnD1j
7ebawNxcy81N081N4OYmcHER2tlpeLbSGDdBIzZOh6Y109IEgwYLe/QQ/v67oHqM0Nu3xPr1
hLs7sWnT3/8T+89YPSw1LdMAACAASURBVK7UTaWlpSEhIX5+fo0bN9bR0dHT0zM1NfXz8zt7
9uz/Q+8yKbp+lZo2lba0pI2NJV6tyT59sIcH6+bKubvyVpbI3Az37AkpKQAAUilcugxjAjgb
K+WYkfmdO6aamqb5eCu9WikGDpSkpfEXzqv9B0tatlR27MhOnAA//gjDh/M+bWgrS2pAP27X
digpBgAoLMSrV7MjRqh9fMgG+sjYGLy9oGcP+Gk23rkHHT8F8xfwnp6Mnh4ybMG18mT9/HC/
/uzEyapn0SqpnPnmRR0NQx3bc9ZWrIc737snDB4MHdpjOzvGwaFkx05F+Qvoz+JKfj4sW4K6
duYd7LlBA5jZPxYsnJfSs7vaw41v78ts3KB6+6ai9zdvcHAwaunIduxYOn5sirNTim87Uf9+
vI2VwrCF0slJNm9u0o8/FPfpy9nYiNp4K/v0wkaGXIsWZMcOstOn5DnZFXt4RCK4fh27unG+
bQvGj0nwcC/xbUf17YM83CgLc8rOlpw+tfiXuYrx41kHh8JWrWU9eoJ9S2Rmzrq7q5cukT9/
Xqcil2lpMHAgtrZGXbqgr4chsQy8f8f36Ca1tRYN6CdJTubwx1X0mTN4wADUpg3Tq1fhoIFJ
JiY5NjaSLl2oyVOk166r0zP4kaMUji0VHu7KpUvEq1Yqpk9jWnmo5s4RPYsqViq/6BPDGI6f
KOvaLdPYRLrwd1lmnoyu5n1KTCjauSPZ0ZGaPp178YJWqfCuXaUODqn29vL27blhw2DyZOjb
Fzs5ISsretpU7vZNkFfbVRgcjI2NmbFjiwb0T3dxTXdxVXm34bzb0IaGUmNjRY8eVFSUUqGo
mMO0dObIUbJLF87bG/n7M2vXlEwYJ7K1URk048xMWa/WzOTx+MbVb+/ZqyOuiMVwLBz6+YGp
Kb90mfzlq28XG3pwHxbMAz+/ClyxsqI7dOAGDsK9erK7dzIlRRzHYlIFb2K4gNGlLVsWm5tL
unWlhw9Dw4djV1fa1pb08SFXruSjo6vazMyEsWNx27ZFbX3e9+zxxsM9yca6cNBA1rctaWwo
MTJk+/dDu3eikmqhZU8es78tVHp5iV2c5b7tmGFD8VB/6N4VWVmRbq6yKZNldfSxnDmNevVk
GzeSL1tO0UztBIDJSdC5M7RogTp14pKScGERPn8B2dlzffrIwsJKRaIacCMWQ3g4+PlhCwu0
eROOi62PXfkn6LvDFYQIpUrw6JHm1q3awcGCa9eEpSKN8m1Icrnm3dsGWzY1WLFS8PS5lkhc
VXFPqdSIetbk4FH9XaHC1AwtNaVB04K0DO2zFzS37xK8eactkWpwnEAk1r5+U2PLdsGtu9o5
uZpfGsOr18S+A9rHT1jcv98s6gmxbp1gwQLBr78Kdu4kIiMFJaU1tkVJZYKEJI3zV3Q3bdNe
8Kvwhx+J+fOFq1drHj2i8/6dLsvolm9X+5LJ5Hpv3zcJXqMRFKR94ri+WKwNIESIUCmJqCfE
9m3E4sVERIRAqRDwfNVZ0S+EO7ZpbN4sePasdoNJydpnzjfYulPj4WMhxQgRJqAiNl3v/j2t
LVuIWT8IFv0uOH5UUCYmoJwP5cKXr4QHDwt+/0PwxyLBrt2C+ARCoSAwJmhaWFCg+/JFw4P7
hMsWC2bNFM6YIVi6WLB/r/DeHa2cbE2EhAxDPH9O7N1L7NtPvK6WpIuiiIQk4sBBIjCIKCj4
2k0vKtJ8Ea1z7pxgVaBw1iyNbVuEMa8rZpgkBTnZwru3tfeFaC5dLPh5jsaypcLQEO3IBzYZ
6S2USiFCn2+T4wixWPjokXDnduGvC4XLlmns2af9ILLprbstTpxpfiBM5/WbivsSl6h19LTe
hm3CB48JliMwJrJzdG7ebrhhk9bNW9oKhS7Pa54922yIv03njlbr1prFxxvEx2vGx2u9jtE/
e67J6ABdFxedg4fs0tKNRCKtw4f1d+zQOXtWQyKpekgKC4l794jFi4lr1/7+n9h/xupxpW7K
yMgYPXq0mZkZ8VGamppGRkbr168nSRL9JzOVIgSZmfzcuTIPD5GllejnuYqQEObkSbxnD5o6
lfdwRwYGuEUL3KtXFa5cvATDhiJ9XdrKonRAv8Ili0v2h3Kh+5hj4aRYjB48YFYsV69axYeG
4mvX4N49uHQJbdzIenuTTo7UyOFcchLP81ihwI8f84cPs/PmMUZGuHwz2IH9cP0Gjn6FY+Pg
9m0UFMSbmWF7exQQgPbuxSdOoEuX2dx8lqK/thJSk/DhHcz+kTMzpf0Hc6tWoBPH4fx5OHQI
goPZSZMKz56V4S/gSmkJ3LyBu3VB3briObPx0SP8vbvSx5HF4UfY6VN5r9Z0j+7yY+EVa8qY
GAgMBAsLZGSo9G1XMndu6Z49qtOn0fZtZP9+dLOmtId7sbdXXtcuhQsXSvbtpU+dhHXrULdu
XIsW6hnTi+7fq0h2JhLB1avg4ICaG0i9vQonT1Ju3MCeOIFD97KjRrBmJoyLs6JVq5JuXQvm
zxfv3q0+cQJ27oKBg3CLFmzHjpLwcLIu67LyJG/GxtC+PSQlfe3IggJ0/jzn4c75tFEv+l2V
n1f1+J06Bb17Y0tL3sJC5NM2c/58yfbtdHg4unhR/fyF4u5dqZu7vEsXMng1/eSx6uVL6tZN
ftdO7solMjNDQX/1rj2Jks9bUGhsrPAfIbl4QySVVa1Eb9yQjxubZ2BQNG+eMj8PUxRcviz7
6afC4NXsgQNw6RLcvAknT6KlSzlTU6atDxcchAsLq1oODARdXc6xZWnnzhmjA9LXrFXvC0V7
Qvi5c1VeXqSFBbNxExUbW9HdlQh2VIDaoSWaMBHOnePfxCiuX1WuWEF5eqrtbVW9upNHDqO0
lL+IKwiBmoR3b+HCeYiIgPBjXHAwNWiQqk9vZto0dP8BVVLy7V2OGRlw6yYcPw5DhkDDhlyn
zqJFi5QnT0F4OHoZjVRKhBC8fYPWrFbb2uZ17Vq0YqXi6FH+0iW4eBHv2cONGEnZ2Kh826t2
7qJKS7nydFsZGTBmDDjYy42Nsj3c3o0dk75hvez0af7wIeaP31QtW6ptbajhw5jYD4imMctC
QT5s3sT4tlN06VQ2Z7by0EH+4kV84TyE7uOmThG3biVxdlaFhCiTkr/9WuHwYeztRevr565c
VfbpbsHUVNy/H21szPn4QGIiZGfD0XBsY8MPHVZ0JSJNKq0B6nI5vnMHjRrFm5qiZUvh5ctv
dl6v/wF9d7hSXje9qEgYH6/x9q0gN5dgmIoX8xwnLC3Rj4vVfvmSEImFDFu1HGRYYX6BXkKy
dlySQCrX4DghxwnEEs3UdGFsvKBUpEHRQoQESpVGVrbwQ5wgJ09T8YW38gBESSmRkKiRntFE
ItEjVcS7d8Tjx8STJ0RiIlFW9pnjWVZQUKz1IU7j0WPi1i3iwQPi1StBVqamQv41UCk3jtOS
SPViYoRv3mhkZmjTtODjJBAlxURCAhH9gsjOJmotyouLBO/fCd+/ryimXt3EZZpJqdqx8cLC
YgFCFbEoGAtYVqukRCMujrhzl4iKItJSCZqqmHCOJyRSIj2DePqMePaMiI0jJNLqdU40aUon
PVXw/Blx6xZx4wbx7CmRmiwQlQopSlC+xa6khEhKIuITiJLSqpGU15WPTyCiowmV6muTQFGC
MokwP1/w8hVx+zbx/j0hKq0+RYIysWZqsjD6OXH/PvHiOZGWoqmUN+e5Bt+aXkGZWJCYIHj8
mHj2jIhPEEqkeuKyhtm5DRKSNEtKK54fsUQjKU3rXZwgv5DgEYExIZdrZmXrvHuvkZOrybJa
GAu3btV1cWk+fart7VsmAA0AhAAaarVuXLzBzJn6lpa6W3e4xieaUZRGcrL2h1jN1FRheWrj
ciNJIj+fePaMqBU49D9k9bhSNyUkJHh5eWlqalbiikAg0NDQWLx4sVQq/Y8WvaYo9OoV3aZN
malZdr8BGbHxNPtxoXj/PsyaBaam2MAA9+5dhSsRETB0KGhpIRMTanUQJSphyxc95crPh9hY
UNfcrpWdzU+fIbWzV7g406+iWYZGlQefPg12djByJNy8WSPUHgDi48HNDby8YMUKKCio6xWV
lKCQnVT3rmo7O/Wxo3ROtbe8SiUX9bQkLV1R/t9PceVNDB+0irO0QDNn4PfvMElWNXv9GhUw
WmbQTL58Oc2ygDG8fQvBwWBmBi1awMCBEB9fvpUFA/DbttEmJpSWFnJ3K/5tYUpebgXhIASB
gUzDhjJP95yDByrSQIlEcP06ODhAo0bQsSPcuwdlZRWdhh1mvFuT+vrI3Lx4TEBSaqoCoYrL
2b6Ds7AkmxlI1q5T16WWd2oq+PmBmRl06vQ1XMEYnj5lfv2VtDBnhw/jL19E0mrZqs6ehb59
oXFjMLdUjxkvy8ismtusLPmRI4U2NsqpU5mYGETWiaGqVFzCXr5CtnRUtWpbuiiwML+AhfKp
RLB3L+/mpjQ0Slm/vgSj8t16bHISRVHVMR4lJjJtvFU2Vuoxo9mMjKreAwNBKES6eqoxY0tu
3CyUyVgAoCiclMz9+BNj0JweOZq/eq3i+E1baDMrlVcbdPBQVdOZmWjcOLJtG+XIoWR6Wp3e
HXwWV1gWSgph724Y2B9Gj4KOnSgTE4mWltivr+roEVRa+idyWWEMq1aBgQEdMCbj+nVR9a8Q
QkePMp06KoyM8lasKJXJKJ6vGvPJU3TX7vKGjcqmTlXEvKnY2ZiZCRMmgJUVNGvGjBieczWi
rPL4zEx+4gSZlZXcwYG6cZ0Ti7FCju/f4wMCaBMTcskiRfSLKmZQKtgnj4smjJc0bUr17S85
d56EbwiHhGB7e1JHJz4w8DO/8IwMfvRoqYUF6ekJ8XGQkgL79mIrKzYgIOfe/Q/ymptCSRK9
eaOeNk1tbMwuXICfRtV1Muv136zvDlfqrd6+Q1uzVmBprT1/nun1a03z84SFhURBAZGaqnHn
TpOJE/WcnHUPhbVMzzD628f591k9rtRNaWlpAwcObN68eSWuaGhoNGvWbN26dQzD/EczcorE
6uvXpY5O6g4dRes25hcUMpW9yeXw5Anq3IU1M+e7d6+NKyYmsGQJev4ccVyNAbIsqNW1S9cV
F+Pt2/nOnXlnZ/T0adVaNjsbwsPBxgaGDoWIiIoEu+VCCD58AFdXaNUKliz5E4mMMzOpieNT
7e2KW7dGL1/y1Re1CGGlkqt8zf8prly8QA7xL7O05FavxiSJq1/Fhw/S9RvyzM2pefP5/ALE
shW4Ym4Ow4ZBxFWQSCq3suDjxyWdOuU1bMjM+4XNy6WqJylavyGvheE7BwfZ7t0Vw6jEla5d
YedOyMur2sEf+VD6008Fhobs6NHM3XtqmZyvfK8ffqKkQ9fUxk3IVYGIR9/OzVQXXMEYeB5v
3SK3tCwyNxMFryalEqgOy2fPQp8+0LgxTJ+J3sfxanVVt4VF1PkLcnt7zseHClqtKiz8c4zN
cvjdO9qnXb6hZVpv/4yUNBoAeAQKJSxfITc0yu3VO+v0aWn5IFkWU1QtpyNOS8P+g5GLs2Lw
QHFaWpVzJjAQdPWwiyu3fQcrk1UkFUAI1BRaGYQMTfje/agz58rdGnj1arFB8+y+/Zmz56ua
zsmBn2aj1q34zh1QcmKd8mB9FlcoNSTHwvyfoXlzsLaBFoZyLa0ioYBq461euUKVmclVx/6v
6GNmMGjalBo6POVKRHHlVwghlYoKDFQYGUl825cdDiN5HlX/ecbGqzZtFVlYqAf6c2cuoDIJ
AEBmJowfD5aW4OiI7t5lpNKq2ZPJuGvXRMOHyy0t0bZtKCEBFxTwQYFSnzakoyN6+IBXyKv9
vnisVLArVkgbNymxcqB27Pkm2uGdO7GlpVpbOzYw8DO/8KwsdurUAltbmasrvH0DH97D1q3Y
0pIfParw7p1kubzG3jmSZGNe50+dUmRiovj9N/75s7rMZb3+21WPK/VWb980we79Wo6tdC2t
tf38dBf9oRscLFyxgpg1S+DdRsPNTWPYMI0PH/RpWvvvHuffaPW4UjeJRKLDhw/36dOnnFV0
dXWtra3HjRt37dq1/+hOMADIzlGGHxPZ2pIDB6vOnFeUSWqsMlNScZ++vIUlqgy1r8QVW1s4
dgxycj7TJsdhUQkX/Zw/fRqOH0ehoXjNGjxuLOvsxDs54aioKq9FVhYcOQI2NjBkCFy+XBtX
3r8HV1fw9IRadVeKiuDJE9i6FQIDq2zHDvT+AymVMcnJ6i6dY83M8nv1huRk/BXY+xRXDh+W
+3gXGxiwvfvUaDwwEH7+WT1ggKxJE/7Hn9iUVDVFo0pcmTULEhKAqrZ2On9e0b9/aZMm3MqV
tclty5Yyc/NcG1tmx46KTypxZdAgOHcOJNW8Ga9eqZYvF5uacj/9hFNTMV1t88u58/K+/Ysb
N2GXLQOaBoTwq1fczp1scDCuHPO6dTj8KBaLK3JSfxNXysrg5Ck0YCBlaCibMkV2507tUIqz
Z6BPb2jcGJYuA4qG6l4dpYp/Ea326ydycpb6tqcWLODCwtjnzxmxmK9MLBYdDdu3QfDqqlkN
XsMdPEyXlHIYo4wsZuykPGvHbDev/LsPSyQyFUnyMe/kU6dJzM0lwevEb99Xvq3HDIOys7nI
R/zx4/jAAWb3bnb5cs7DgzEzVfTsLk1JrnqMAwOhYUPo0BEfO1Y7H/P6DWBihtv6smFHKo7f
sUPu0LKktTe7/0DFYTSN3r2nBw+R2tkpunWhk5MwYCwWo+PHuA3rUdWFBONtu9joVxXtfBZX
OBZKCuFqBKxeDRs2wtq16sWLJWPGqbt1J7t0US5ZSj5+zLAswhhnZLBXI6hNG1G1JxDv3Mkn
JquVKhZjYFlYvhyaGVAjxyZdvVGVkIPjUGmp+tdfZQYGkjFj1ddv1M7oVVTCXLyisnfgu3WX
7w4pKSnlACAzE8aNAwsLcHOD+Pgax6vVKC5WNXMmbWqKVy7jXr9EmZnshAn5dnZSb2+Ii6v9
eAPArl2UjZ20iYFk7XqS55FMgW/ewrV+TSH7mLsPSLkChewFh5akjm5MYGB27YYAMjPp8WNT
rSxL3N3hw3v48J7fvJm1sOBGjcq5fft9Le+KWs18eJ87Y3qBqal8xXL+9atP26vX/57qcaXe
6u3b9vqtxpadupMnNx49ssGY0VqjRwnGjyOmTBZOnqi/YrnOxYtCiURYmfjhH2n1uFI3cRxX
Vla2ceNGFxcXFxeXdu3ajRs37vLly7m5//G5S0khQ0LEVlaqUQHcnXu1i8d/WnelElccHODq
VRCJajdIqlB2FnfrOrViKTN4EO/vz/fogVq3Ri3tqGZNWScnePoU6oIrPP9FXImLhe3bcKtW
YGICpqZgagomJuDTlj9zVpKbR8bH025uqaamJSNHQkbG1679U1zZvVtua1ukp8c2MwAbm8+Y
tTUsXkwnpygpiq/ElZ9/hqwsYKpt1L98mRsyhG7aFK9YAbXy6m7fjq2tkY0NfIor/v5w8WIN
XImJ4QIDGTMzPHcu5OTU6OLiRTxoEGrSBBYvBqUSEMJhYYyvL2VlhUxMoNwc7PHwYSg9rU64
IpOxj55Qvfrwtva4S1d87RpbXFzbQ3LmDPTuDY0bQ2DgZ1ooLGTWrM326ye2tuGbNlV26CD/
4w/FjetMZgaiacAYDh4Aby+wsoTKEVrbMgMGq5JSGIRQcQm3ZXdJp24iS6uynfsyElPFIhF7
4HBh775SF1fuwSNGruQBAGMslaK4eP7YcfXChcyggVyPHqoOHdTu7kzDhmQDfVWH9uqkpKpF
dGAgNGoEPXrA6dM1RosxbNqEzcywqyvau7fiDp0+zfTsRbYwRL/Mg4QEnJpKx8Sow47InVxy
WzoWTp0qz8riAXBGBh8wmnFy5CsvxNIKeflSB8Iqgk/qFmqPFArmwWPVtBlKQ0OlsYksaDUp
kXA8j6OeUL/9Knd15as94djXl7t2U1ZSqq7EFYPm6jFTE27cqYrUYRiUk0PNnaswNpYvWMg/
fVq7S4USHj4CRydo71uwfl1cUZEaKkLtP48rNA3paWjObGxijJf8xkQ/41JSmN698kxNJV96
kMKOQJu2rH6DgsDAMobl8grw0uXYxASXX0v5dHXtSa5aKyko5A8eAo/WpJ7++8DAvE+bSkuj
hgxONjUt9vKGhERISmJ37aIsLdmhw3KuRLyXSmttBmPfvS2ePk1kYa7asAHFfvjKzNfrf0b1
uFJv9VYXEygV2k8eGYXsbrRgHjF1CjF/HrF9i8a9W81ycxr8s0Gl3OpxpW7CGHMcl5+f/+bN
m5cvX759+zYlJUUikTDMt2NV/0UlJ3G7d9FWVvyoAHz7z+CKvT1cvgzVkwWVX8rr19SaYHm7
dpSHu7pnd3L2j/zyZXjJYhg8ANla47+GK4sW1cCVrCx09SofGIgXLYIlS2DJEvjjDwgOxlFR
fEkJio9Hbm60uRkXMPpP48qmTWSLFtJmzfiAADgcBmFhcPgwHDoEhw7B4cNw+DAcOACPn6Cy
Mp7jcCWuzJkDGRlQ3fVx+TL298dNm8KKFcBxNXBl2zawtIQv4cqFC7VwBa9ahc3MPkNEFy7A
gAFQDVcgKgqvXYOWLq2YkyVLYNky2L0LiooA42/jyrWbRQETkoxNqSFD4PRpKCysKrdSqa/j
CsviwkI6+iV36DA1ZEiys3OGiYnEwYFbtRLKE1hHRsKqlVA1wsWwbDneHYKKijBCWE2huET1
zB+ULQxl02YV33ugyMxE4yeSLZ3kvh0UsXEcz2OMMc8zVyLYMeM5VzdV507KSRNUC+Yzy5fx
8+ZhR0fUrCnn245LSqwRu9KoEXTvDqdO1RgtBrRpM29mzru44r17Kz58+JD66Se5sTFjZIS8
vOj+/dM7dsq3s1M0NSibPkP87LlEqeQBQ2kJPngAr1qFFy/+eC1LYXkQevi4ot+64QrmeaxQ
oLPnqRGjFIaG5A8/MnHxSK2GrEz+6hW2+hO+aBGsXYtfvubFElTNu6IeMS4u4mbVb4OiIDkZ
/fgjb2LC//EHfv68dpdqNTx9Bs7O0N43f8O62G/iCkXhlCT2px95M1O8aikf8xIlJ+POnRlD
Q75Ll8+Xjj0aDu3a8w0ayAIDSZZFRcX4/Hn4/XeonKtFi2D9RnTmIl8mwQcPg6c3r6cvDwz8
THbylBTUpzdpYsJ06AhJSVBUjC9eQvb2uEcPal+osrS0hmdHKsVXr9LDhjHW1tz+UJyW9pWZ
r9f/jOpxpd7qrU6GeIFSoVVaopGbS2RlEbm5RHGxQC7XYJhvJ1T4B1g9rvwZIYRYlqVpmmEY
nuf/oyErlcrM4A4fYmys0cDB9JnzpERSYwWQmor9+iFLK/wlXCkurn44Rog/Eqbo0rnM3ZWZ
Mpk9EsbcvoWePYV7d2HxImjTBv4Crvj44KCauZ5kMpyRgV69ghcvIDoaoqPh+XN4/RoK8oEk
ITGRb9dWaWyk7tsHpaagr4QafIoru3aL7OwzmxvSixZDZmaFZWRARkbFv9PToaQUyjOufgVX
Ll0Cf3/4LK5s3fpFXBk8+FNcgVWroBJXqnfxKa4UFkDM64oJqbQPH4Akv4ErMhl77VrRjFnZ
7q3zBg0m9+3js7Phs6T8dVwpl0oFGZns5cvF69cXjh0rMjCg+vTmDh/iRSKcn1d7eC9fQmxc
xQh5hBVKfvUa2txS5dVGvm8/9SGO7dipzNVdNmU6VV4rhqb59Azl8hVqV3eu/wBq1Soq4grz
8AF6/gxfugQ9eoKpCd/Wh0v8Nq5gDPymzayZBeviUoUrx45R/fykw4crR45kRozgRowoHewv
GTGCWr6CunNHLZWqeR4BBrUaEhLg1asa1/LiJeR9BIc6JjIu14sXikWLS0xMqClT+dcxWEWC
QoGzs/Drak/4ixcQEwNFxaCmoBJXmjZTDxsde+VaFa4wDOTno3nzeEND/ocf+AcPam/VKilh
r1yhHBxQzx7S/fsKS0tZqIErOD6+Rt4zlRJFP1dNmkhbmOMNa/GHdzgtDQ0eTJqbMT5tcVwc
+rT6575Q1tVdbWBArVvLIYSVKkhLg+fPq03UC4h5AylpQNFw5pyit19x48b0/Pl0QaG6enEe
jsPv36O2bZGtLRMQQGVkIKkM3b1HOzpK3T1kv/9O5uXVuLqSErx7D9utO9eyJb4aAaWl3575
ev33qx5X6q3e6u1ft3pc+e5VVMhdOEfb23EdOyo2bxEXF1dtdlep8PNo1L0HZ2GBPg21/xRX
MMYMwy5fLm/cWOLXizt3puqr4mLYth137vwncKUydsXXF61bh4qK6gpvaansgH7FJkZSr1bc
q5csTVXtaCovIq5SVWzQ+hRXjp3I79w1toWReukyJJHytWq9AwDGVezxveHK1/UlXFEouJfR
0rFj4zw8sn19ycNhZFr6F9PpfgVXEMLl3o/KTyQS8vatMkdH0t6OmjGNyc6q0x0MO8K2aadu
1Jj6+Rcq4prSwaGgZ09Z6H4oFQEAyOT8rdvSkaNUFhbclq1cXDz62DukpMDQoWBhwfu0YeuG
K9ymzYyZBVMdV1atYszM5IGB4hMnybPnYE8IDt2PIiJ4qfTPvTv4FFcYBpMkomn8aZ6/6Gjp
kiX5JibKqdPYN28Q+a18WlW40pQaPCT50uXqofZYqeSXLmUNDOj+/ZmzZ7la7z0+xFIbNsrN
LdgRw7kb1ziZrCIzWHnsipMTjoxECkXVCWVl/KkT8gH91dbW6EAoTk+DnBx+7hyps7PKyRk9
fMgpFNVTWQBJwrr1lIWV3NWVq9xi9xXdf1g844fkFobUqNGq23fL5PKqvz9iMX/jOufggHx8
yKDVssJCnlRzz54rPTxyzM0Lhg2TJydzlZOJEM7M5Of+Qnl5Me3aoZjXNX4s9frfVT2u1Fu9
1du/bvW48t1LIccPH/COjmoTU+WIkcr0dO7ju1X84jVevBJZWnEGBqh63ZUv4QrPg0KJFi9m
mjWjAkag61erZfiXegAAIABJREFUvsrOxrN+4B0cUN1xBWOIiwM3N3B2Qb/8gnJz67pezM3h
f5kjd3UmbWyY0H2KtNSqZYtUCjdu4JevsEwGPP8ZXLl9m5o0WW5oyPsPpc9fUkqkNZNPYWAY
4D6ukP43cCXyfumcH5KtrXP9hxQfCZdk57D0l+uRfwVXKJpXKBmer8pdxnPo/XvOqzXj5EjP
nElnZ9fpDj6OYubOVxgZy33alo4aU9DMQDrnZyozC5Vfu1iMwo9Rfn6MjQ06chRnZVecpVZD
dDS0awtNmnDt2jF1wRUE/MbNnKkF7/oRVxCClStR06aUv3/xvn3yuDicmcXk5HAFhZiivj3D
1fUpruTlM69jyLR0Viqr1RA+Ekb5+Egb6BfNnl2Wlk7R9Ld6woB4WLkSGjZCXbqRJ05WOcIw
Bo7DGzbwRkasgQGzahUtldHVqBufOsP26E01asz9MhflZONyH1p5ImNLSzAygrlz4fHjqq6y
svDUKbyNDefkxD6KREoFFonwoYNs796sqRm7YgX16nUVYJAkvHsPM2dxZmbUnJ/pR4++nR0u
MUm1Y5fY0op2clb9PFeWk1N1SuRDZvZPSkNDMiCAvH+fkssRQjgpienrJzI0knt6so8fccqP
sKRUck+fUj5t1W5uqpkzVJkZ6P/FOV2vv131uFJv9VZv/7rV48p3L5aBhAR+zBiZg4PSyYlZ
vZq9dJF6cF998iT/2yKyWy+pkTHTvHkN78rlyzBkyGdwBWFM09yaYKWJsbS1J786CN69hffv
ISICVq3i2reXNG+udHJCUVGgUlWckpUFYUfAxqYiyrw6rgBASjLq3l1tbc107YqOHWNu3FTe
vSfLzaPV6q8tg6RSdOWSethQumlTtm9f2Zo1ihs3yDt3pGdOqzZu5AMC0P79WCwGjqvAlcGD
q3AlPZ0PC2O8WjHu7uqRAaqDh9R37jIvnqMXL/CNG4rDh0vXrOUeRlYc/PYtrF4NZmYwezak
p9dgiYsXYdAgaNLkM7iyZQuYmYGlJWzbVvGJSATXrlXgyvnzNXDl9WtYuRJMTWHOHMjMrNHF
+fPQr9+fwJWUFOjTp0aZSIZGWRnk2uASV+dcfX1x587y5SvUISHo4EE4cAAOHIDQfRAWBlHP
UeFH19bp09CzJzRq9BlcSUqiz51T7tqlPn+eef2K//Ae37kjX7+u2Npa1bEjtWEDU0f/WG4e
c+K0ws5B0txQYmcvad6ibHUwSdEVSaXlcnT3nmp0ANW8OT9pEn/8OIr9gB4/po+Gq+fNV1lY
iBo0kLdvzyUl1caVrl3h5MkaHSGM129AhsbYyQlCQgAAMIaDB6l2bWWurrIBA+h589CSJdTS
pfTSpfyKFXjPHurmTWVJMc9+u5YjBAaCnh60bFnRMgA8fapYs6ZkwUJq/Qb69Bnyzl1VZKTi
zh35oYPSUSNJCwt1xw75e/eWSaXspz69T4UxbNyAjYywjS36+Rf++k3+wkXuzVteqcQcB9eu
cQFjaAMDqmNHMihIeeWS9OF99d07+OhRdtwE1s6e79gBHdiP1WTFY/MRV5C+PuPVWv7DLNmh
g4rIh/TFC4qVKyRurryLM5ownk9JxjyH1WocG8vPmcMZGrHtOzC//8FcusQ+jKRv35YfOSqZ
PYdr04Z1daXOnWPzC75NeBIJF/mYHOxf1tJR4uWlWLOWvHiRevCAvXKFnz+f8mmjbONNb9zI
FhRw5ZFURUXc+g1lHTpIjAxVkyaxoaH0o0gy8iF5YD85fZra1JQZOoQ6d5aqtam1Xv+7qseV
equ3evvXrR5X/hskEvGHD0v8/VXGxrybi3qIv+yHWZI+fcjOXcQdOha6u1F2tlyPHnxKCgYA
qRSuXkXDh+OWLeHiRSgqqt4SBmCPHZN07lRsZMj088NrgvH69fyEibhVa9bdrcDIqMzFhY+K
wuRHXMnMhLAwbGeHhw2r7V0BgJwcfs5smZsraWLCjxypnjCx9Odf8p8+U5aV1U7PWl0ch8vE
zMb1nIM919xA3qaNbNxYyZTJ+f37iT08KDs7fu1aLJGUe1dws6ZoyBD+8uWPDgEepadxP82k
WntSVlaUXz/ZjBmqP/7gFi/CU6eU9uyZ7uhIb99e0dG7dxC8BszN8Zw5OCOjRpbhK1fQsGF8
s2Z4xQoorylZqW3bsJUltrPDO3ZU7NIRi/H169jREfv741q4EhODAgN5MzNcEWpfnYguwKBB
YGiIly3Fcjl8s5Roair064csLXCXLpCYCBiDQs5H3pNOGCfT0VE1aEA6OLCdO0O7dtC2Lfj4
gI8PtPKEzp3xmo3s67cVrZ89i/38UIsWOCiodsazJ4/Vv/0qaeMtHeKvWrmCXb8OTZ9W6Oub
aGsrmz6dvnOHlcvrhCscz32IIzt2LtNvQOrpce4e4gMHlZXfMgyfnaNcvlxtZcVZW7FjRnOb
NnK//qYcPlLm7SO2tE43MhJ16oSru4+CgnDTJrhHd1zdu4Ix8Dxs2IjNzJGbG9q3r6IYy+VL
suHD8k1MlKamnLMzsren7OzUNjaUsTHn4SmfOLHkzm11cdG3nQbBwahxY97FpaJlALh5QzZx
fIG1FeXkRPbpK50yXfzT7NKpU4s7ts9v6SBv3YoLDip9/UpRlykq19GjuH171Lw59vbhA8az
/kPpfaFcURFmWcjJ4c6coTp1UhoZKSzMJaNH5Pw0q2z6NL5rN8rFlfXygqCV8Cq6qqmPZSI5
PT2Vq0uxh1uej3fB7B8V/oPy7e3SLC3pUSMh/CiIxRWThxB/6DDfth1vasp6tlIPG6H4aY5y
2ozCAQOzrKxoJyd2wgQqM7OuwFBSwu7YVdS7T2mLFnJXN4m/v/yHH6iRI1lvb9rJkZr7M4qM
hEqXHUnyMTGyhQtF1laipk3pzp3In2dLZ/8o7dxR3qI56eHOb96Eiov4T7NE1Ot/VPW4Um/1
Vm//utXjyn+DOA6LRHx4ODt8mNrNpdjCXGJurvTwyF+2rOzmTXbZEjR4oHr4MFl6Og8ASiWK
ilJPm0q7u6JTJyG3dt0VXFTE3LxBjhimdnVhLSx4W1tlr970z7/grVuZoUO41q1w9Iuqmvfp
6fjwQeTmgiZPwg8egKLmak0hxw/uM7/8zLg4siYmvJW12q+f/GEkJ5F8bS1Svh8mKRGHH+HH
BpCeHuoWLZgWLWhnJ9XgAYrNG/nXryqW2quDWCNDctw4xY0bdOW5JInjY1HoXjR+LNeurdLO
jirPwerThhsTQC9exEdGVvQenwBbt2FLS3rePCYvj2eYqlFFPVEvmC8zM+OXLgWFogZL7A9F
bX3Ybt3osMMcy2KMQSZDDx6wHu7MiBH8pUs1mC0xgdqxTWFpyS+YD0WFUP29/s0bMG0y9vLk
16zmi4vQN1/5Z2aiieOprp3ZiRMhMRFYFhRy/OAu/+Ms3s4OubggT0/cujV4elaZszP4tEWL
V1JPoytav3OHmTlT5enJrF+P5LIa15WfR1+9LB87WuLprjQ1ZczNsY2NpG3bvD8W0XfvYbn8
MzEbX7h9OCeX/fW3Mnd3lbExXvgr/fQpV/1bhuGfPeOCgrhOnTh7e2Rri7zbULN+ZLbtZOct
UPToSfXogco9geVav463NGdGDOGvXKq6QQiBWg0h+9iOXVR+A1QnT7HlcRebNont7VNdXVOW
rxC/eAGXLqMzZ6nDhxU/zyV9fWkLC/Wo4cURV74NFbt2qd3dpH36qE6cYMs9GDk5/JVL7NRJ
qG0bZG7OGxlxhoacpQXdyVc2cwq1bzdOSeZI1Z+orRkXj/eE8L36sDZ2vJExtm+J1qzBhYXA
ssAwuKCAu3BBOnduqW+7IkvzfBOjMmsruq0vP+MHFHYUp6ZWeTjhY+yKtTV2cuIvnKeXLi5z
sC02N2PMTHM9PT4s+kN98wYUFVV//HBeHr5+A8/+meves8zRqcDMjHZ1VfbqVRYQwO0/gDMz
Ud1DR1gOl5Swe/cquvcQtXSUmJmpjY2RhQXu2RMvX47ev6/xZwEhTJL840eqoFWSgf1JV2fG
yJA3NOStrdS9eijOneOzsnD5z6pe/wzV40q91Vu9/etWjyv/PUpLRVcusyF7FOvXqYODmd27
Zc+eqUtL4cVzuHCOOX9OXb6/gmFwXh579Sq3NwTHfgCZtHY7PI9KS/mIK+zOHXxgIA4OpsPC
uAcPITYWLl3C+0Mhv1rV9rIy/PYN2huCIq7gT7NRsSyUFKPIh/zePWjNGrx+PR92hM3MxOra
1Qs/I1IF2Vn4xnU2JIQLCsKBgXj7dvbcGTr2A5aUVRzz6BG/eRNz6RJVvQg6QkCpITkJrl9D
+0OZDRu48sJ2e3bDpUvw/BkuKKhYCpWK4EU03raNu3WLUyhQ9eV4Xh57/5562zZ0/355Dceq
r968QYcP88ePce/f8+XURNMoK4vft5c7dxYlJdUoNykWsa+iqW3b0J3boKq54ys9Da5dhYMH
UNRjpFR8GwakUhxxhT0WzpdXy+F5oGnITIcb12HPHggNhX37YO9e2LsXQkIqbPduCN2P7z5g
c3IrWs/M5G7epA8c4J8+xZS6xnjUJJ+dRUdcVu/ayaxaxS9fhteupQ8cUD57jmqmj/u28vPR
kmXKVq1pGxsIC0NZn8Toi0Q4JgaFh6ONG3FQEN6xg79xE8XG48dPuJOn+PBw/NEPAADwNArt
2MZdOItSqu0QK49Wj3nDhx+jT52h4+J5lQq9ekXOmCG1tRUFrS559UpJUVBcAgUFXGYm9egx
M20ab2DAenkWHDrwyUP/iV69YvfvJ0+epOPi+PKls5qE3By4fRMOHYAN6yEoCAIDYe1afPgg
c/cWl5xY477XRTIZTkjAp8/wW7eh1athyxaIjATlRzZmGJSfTz1+rAwLU6xfpwgKVK9bx+0/
gO/cw+k1PYHwEVesrMDDAz68R8+fUdu3qYJXo3VrZaH7Cp8/Z4sKazvTWBZKSyHyETp2nNyy
VbZ8Bb9pE3v0KHX1KvprGYQTEpiTp1Q7d1FBQdySJbB2LRw/DtHRNbCqUqUlbMxr6uJ5ZtdO
vvznuXkzd/oUnZ+P//O53+v1XakeV+rtG4YxgfHfP4x6+76tHlfqVa9/njAGhq6C0j97dnY2
P+sH2tWN8/KCyMjatYCqCyHga4YG/WVJJNy5s2WDBqmcnfGzZ2z1+CiEQKlEQauRiQnT2qPo
wP4vD+i/U5mZMH48WFp+pu5KXYQQkGpg6hDSUxdRFMgV397cWK96AcD3gysYEywjZBkByxIc
93ljWYKmCI4jMCZ4XsBxApYlah1f/l+EPt8FQxM0JWBowdfX3xxHUGpCqSRUSoFaLeA5Acb/
xDqAGBM8TxQWEsnJhExKsOzfP6R6+16tHlfqVa9/pKpnfP6TZ3KJCWpfX7mTEzV5MqSmfnXl
+pd7+UQkid7EqKdOZS0s2I0bi2JjZZVfKZUo6plq4iSyRQty1PCyq1e+lWn4v02ZmTBpEtjY
gIcHJCT8lRYQ+rfdCIRqe3LqVa8v63vBFZYRFuXpF+Rpl5QQn7f/Y+8sw6M62v8/u5uNQ5Dg
8WwcD8XdrUBbeGpAWxxKgeIQAqFYcYdSAYoVdy2U4JYQ4u7ZyGZdzh6duf8vkiYkBPldz9NC
+z/f6/tqd3bOzJwTmM+Z+54pRcXFKCtdqlVLBEFiNMhLVbKiopoLWyw1XIJlUG4GykiyKciy
Y5lXHe2nUaOkRHT/AXr4QJYYa2vQ2vGc7K0P0d9vQUAGA9qwAQ3ojy5fQKrit98k0e+qRVx5
h0VREBsLBw9CWTSFaNHvgpctw9Omcg0a0PXr8++9B9/O+puuGxZGvv5aCA3Fzs5Ct26GCROs
FV8tXEhGj2GCQ1gHB65VS3r059xbH6X/rWfOhFatoE4daNQIpk17++35n/j0acjPr/m0U1H/
Ir0ruKLTSk7+Zrdmhc3s2ahmz0Hffou+mSq5dEFCWyVJSbK9e6WzZtVc+Nq1Fy9hV1zktHqF
dPoUadhC+Y3rssLCGhZM9HrJmTPSlSskkyeiMWPQ2DHSSeNt5s+zOfqbPDNTzjA1r7FgLLUy
9vlKeWqazGx2wYLDWx/P/4l5Hmk0aO5c5OONjhxGBQVvv0mi31WLuPIOS6eDY8dg1CioXx9c
XUWLFi36X+L69WHaNIiKgteeuSnqH653BVeKi9C6VZJhQyRBQSg4GAUEIE9PZGuLHBxQwwYo
IAAFB6OgIBToL92xTWI0oqtX0ahRyM4OKRQoJKS6d+6sXj/HOcU8rd+6lY2tLWraVDJ7tvze
PRuAKvhBUejpU8lHH9kEBtp4ekgDA1FICAoMRM2aSsaNs71+3cForHlNhuVkBYW1zl+0//Fn
uVLZmOdd3vp4/k9cgSvePujIERFXRL/CIq68w6IoiI6GLVvgiy9gwgSYNEm0aNGi//GeMAHG
jIGffoK8PHF15V+vdwVXaBolJ6Gn0ejpU/TsGbp7F/3wA/L0RCHB6OtpKDISxcaix4+l1393
zMiw1enQsWNo6FCkUKBz51BiYnWXllavv7hYeuqkjUIhcXBETZtJu/V0OHDIDkD2PLHExqA1
q5DCVzJ0sO2enQ6PHkoTE9G9e5JV38l3bre5fVtqNtfceKNRcvWabPx4aa9ekqQkORb+JZFj
PI+0WjR3LvIRcUX0ayziyjssnofSUnj2DK5ehRs3RIsWLfrf4OvX4epVSEh4o+NTRf3D9a7g
CsbIYkFWK+I4JAhIr0c3biB/f9SrF9q9G5WWIowRw0j0elurVabVoiNH0ODBKDgYPXuGBOH1
9d+8aTNjhmOrVnW7dqs/7IN6fgH2K1fZGgxyQSjDFSmAw5XLrqM/a+JaX/71VLuMNGeGlgIg
ipLExshin0nz8hDL1lAzw6C8fHToMBo8BPn7o+vXUVER0miQXo9o+rmSREoER5PetqgAFSml
eq0dSzsS/KoUGqsV6XTIYpFyXCVTYYwoC9LrpDqtjcBXfi4IyGpFKhXS6WwZpkrNFkpWWipX
lcpKS6U6nUwQ7ABsKr4lRMqwDiaTncEgEwS5ySQtKkJFRUivR1Yr0mrRvHnVcYXnpRaLrFQt
MZnFTcNEl1nEFVGiRIkSJUrUX6J3BVeq2WxGt26jgAA0bBg6dQrp9VW+1WrR0aNoyBAUFISi
ol67Y5UEQL5rl2Pb0DpDhrovjfDZtNXD3d1uyhRZWpoNTZfN+GUALqdOeg8dElSvjv2SMHur
tRbGb7RIkl8gufq7dMVK1KULcnND69ahkyfRtWsoNg6p1eVlKEpaXGibklAv8nfHE0ckJ36T
/X7Z+emTuvl5NibTS2f8ubnozh3JvXs2eXmyijIMjTLSJXdv20T+YafTyv7ELURRktxcyaVL
6NFDp1JVfZ63wVhitUqUSumjx/Jz5+3PnpOfO29z9aptzDMnpdKeomQYSwAQy8mUyjpR0c63
btsWKO2jom1OHEcnjqPoaKTTIY0GzZ9fiSuEIJ6T5Oba3L1ne/myJCW15k3YRP//ZxFXRIkS
JUqUKFF/id5RXDGZ0M1I5B+A3n8fHT+OdLoq31bgSnAwio197YxZDtB05cq6Pj42a1Y73b5b
50ZkHf8Au5EjZVeuSA2GsjISANmd23Yzv7Fv1FA6aaJDUryL1fomuCI9fsp28HB7H1+pszOy
tUVubsjXF3XpgnbuQknJ5cWeRdmtX1Wre1fbAH+przfy9ZH4+ck6drRZMF9265aE42omljNn
0KhRkjZtZFu3ynheWlZGrZb88pPsP6OkffvI7t62MxrK10kKlbLTp2y7d5fMmeMUE1OfomzM
ZllcvO3iMPu+/eQKhVShkCgUEj8/SXCwdMFCx6fPXChKBoB0OsnJUzYTJ8l695Vs3i4dP1Hi
44N8fNCyZZKcHKlajRYsqMQVnpOUFsvWrLJp3lzWqZPkl19EXBFdZhFXRIkSJUqUKFF/id5R
XDEa0c2byN8fDR2Kjh17Ka74+qKTJ1F8PEpKQomJKCEBpaYigwHxfGVhhpFnZTX6+uvafgr5
pUtNSlT14hNte/aWde4snTtXmp9feQZLVqbtLz87BfjZvBcqnzHdcf8+52cx9haztGwV4iWW
PH1ms2mr/LPPJf7+yNUVjRuHFi5Ea9ei23dQcTFiWaRUSrdtkffrZd+7h+2XX9hGRNhGRMgm
jK/Vr69r587y75bLkxLtrNYaLnH+vHTkSFndutK5c+UajR3PSwFQbq5k8kSZwlfq5Snd+7NT
TpZtWeHoKNtlS52aNrH55hu73FxHlpXGxck2brLt3EXer7/ztK/rLlkiCwuznTzZKSDAsWtX
pyXhtQoLnQDkGg06cEAyeAiq7yrpO0D2yae1vvqy4ZQpDY4cqatUOms00jJcOX4c5eU65efV
37HNduAAqcJPsmgRevBADAYTXWYRV0SJEiVKlChRf4neXVz544/X40qjRmjWLLR+Pdq8GW3c
iNavR3v2oNRU9HxOvE4nO3as1gcfOLZr55ScrABokJuLxk+SBIdI27eXPXsmq8gMoSin6Kj6
H46w9/K0adxI3qtHvVUrat27J8/JkZtMNgAvzTPR6SQnT6Jhw1BgILp/H5lMiGGQICBCkF4v
OXdONnKk1NNDuizMPuqxE4ATgE1cbMPvV/t6ezkMHGD/y8/OanUNlUdFycLDbZs0kUyYYB8f
V9tqlQmCLCHBtmsXmUttqaeHzYJ5Lg/ul22aLDl71n7kR7U83G1XrpSxrJRlpYcPywYOsvHz
s1m4sH5mphvD2DKMY1KS69QpjZuHuLRubXf/fh2KctBq0eHDaNAgZGcnUfjZLV7cKDrKLzXF
t6jQzaCvp9HYzJ+PfH3R6dMo5mn90ye9une1bdsWjZ+AsrNFVhFdYRFXRIkSJUqUKFF/id5V
XDGgG9eRv79k6NBXBYPJ5ahJE+TujtzdkZsbcnNDnTujs2dRUVFl4ewcyZix8s6d6nz6caOs
LCcAG5VKsnWHbY9eNoGBkmvX5Hp9edAXxlKD3vbuHcfwJY6dO9o3biRv1lT23nvyWd+6RkbW
B3B+GbEYDOjCBfThhygoCD19isqCuwhBAJLMLOnIkdLgYGnfvtLHj2QWiwxACiCxUg5PntTp
09s5wN9hxAjbzMwaVlc0GtmlS3KFQtK/n9P+vfU1ahuTsU7kzabBwbYNG0hbNrfr28f18CEn
AAmA7a5d8rZtZYMGSY8ckbCsVKl0XLjQ1tvbZsKEOpcu12IYW0IkhEgtFqfEhKDJk5s0ayZd
tsw+Olqu1aJDh9CgQahxY+mCBfa3bztSlCNN23OcLcvaaLWSefPKd2DbtNGhZ4/afn6ysDCU
k4MY5u0/J6LfGYu4IkqUKFGiRIn6S/SO4orBILlxXervbzN0qPQVuOLqisaPR4sXo/BwtGQJ
WrwYrVuHnj2rTM1nGMnTaGnHTtIB/Z22bamrUtkAIItF8vix/IsvbJo1k65aZfvsWeUBLIIg
0evlTx7b/fKz/by5dr17yzw8pC1bOX872/XGzUYmk32NxFKBK8HBKCamMhQNE7uEpFqh7eyC
gmSTJklyc59nElluru3EifaBgbbt2kmTk2sYBI6TP3vm2K2r3XvtHGbNcMzPl+dkOe//pa6f
Qtatq3TiBHlIiNOmjXYYy2ir/XffyX19pbNn29+5I7da5bFxTcdPqOPuLt22zTElxbaiToxt
abpZ2OI6DRpIpk2VRUZKK3DF11dy6qRNcbGsoo8VGxk3aIimfY0GDZb5+8vnzpXcvfv2nxDR
75hFXBElSpQoUaJE/SV6V3FFL73+u42/v+3QobJX4EpgILp3D1ksiOcRxyGaRhSFWLYy/1uj
kV66KPNTSIYOkR88YB8dJU1ORomJkmdPbSZPkrm4yIYOsTt1yrbaASwAUpa1zc9z3LNHPmgQ
atgQNW/pMn1m09w8J0JqyL/X69H58+iDDypXV8o+50mtmPhGwcHOoe3kEd+hwqIqvyoqkiz/
zqZdO2lICEpMrHEcbHNyan05tlabVnYD+klSU23v37VbvMC2RXPbmTPkBw/YeHtLwsKkJpM8
L9dxxgxbT0+bPXtqZ2Q4mM32t+8EfvZ5Y4UCnT9X7RQaKYBDRITc1RVNGI+uX0daLTp4EA0c
iIKC0NPoKtusVeCKk5PkvQ4yL2+prwKdOSNRqV6RzCP6/0+LuCJKlChRokSJ+kv0juOK/NW4
UraRMcuWB19hjDCuCMRCACg5CW3eJHF3R66ukuBgaZs2KDQUhYZKOnaQu7nJ7OxkCl/nnTtr
AzhVXTaRECJhWWlpqeTWLTR0KPL0knXoKI9PkAo1pd2/HFdqxyQ0CQ6p1aGTfPVaVFxc5VfF
xZK1a2UdO70CVySlKvnO7XX69HZo1VL6NMr+4K8uHwxvOOx99/37Gzx54hAUJJ02TRodbXvy
pMuHHzr4+0tv3LA3GuUmk90fN30/+bSBnx+6chlptc/XKQWwj4iQ16+HRn9e/m05rgSix4+r
hHhV4ErjJrKFS2oNHGLvUlcyZIjNqVPV6E60aBFX/uGiaZKWQuJjSXoaZui/7jqkuFh4EsVf
+Z37/Sb/JAar1MCIx1G/RgQAA2AA8rZb8k8UEYfubxDLQkEeJMaThARCUYQQccBF/W/1ruJK
eTCYdOhQ6fFj0lfgSnT0y85dkQDIz5yWffSBRKGw69XLZsoUNG4c+uorNG6cZMoU6ciPHNq3
r9WokcP8+XUL8huyrA2ADYBdtYl4fgGaPRsFh6CgIPQ0psqeYxXW69G5czXgCgaHhOQ6bdvZ
tw6Vz10gK1BWmeXn58tmzXIMCbFt0QIlJdU8DmaT9M4t588/s/PxkR8/2mTh/AahbWrPmtko
8qZLcrK8XahsxAjZ5s3yOXPs+/dz6tPHOT7ekeNsKMomKtr1y6+cvb1sDvzqmpfrXFEhxja0
teHixbVcXdHECZIbNypxJTAQPXpU5WjLClzx8pbu+9V+81aHkaPsg4JsZs6UR0XZURYRWkRX
WMSVf7Z4DFA5AAAgAElEQVSIRk32/Uw2rMX79woa9V8y1WA5KFDic+e58KXUFxNM46eZV6y1
PovHBtNfcbV/jwwGITeXzcrmdLoqB3djTKwU0WiwUsnn5ODsbFJULOj1mKaJeMJ3mViW6HQ4
I5MvUApmMxaH5a+T0QBXL8L2rWTbVlxYiLHwFnDFbCFFxTg7BzIzITubFBWxZrPwMm5iWTDo
QamE7GzIyCS5uZxKJVgsID4k76reWVxBN25I/P3R0CF2x44667RVMka0WvTbb1VWVwDKF1Uq
llYIkXFs7e/XOHh6SLt3c1q/3i4mBj14gO7dQ/fvo8eP0enTtRYtatikie2okXWvXG5qNNia
jI7FxXVMJjuOK7+cIKDcXLRkCWr3nrRVS1lMjJTna5igGwzo0mXpRx9JAgPR/fuS53YltklP
t+s/SBbS0mbUx7ZxcXYMXZ4nwzCS2Gc2Q4e4+Ckc+vWTpKXVPA4cJy0qtJ8zx87dzWnxQr8h
gxr6eEm3b3NOTbFLT5cO6O/UpYv9iOGybt0kffs4TZ/umpfnBGDDspLcHNsZ38iaNrULW+Tz
8EEDQZAQIgFANG2bluI5dUq9pk3QsqXS6CjJm+CKQoEunEexsfbHT9QODbXt1ctuxQrHjAxb
hnmjkzRF/39gEVf+2SKZmWTECCEwEA8cSNLT/5JrKJWwcDHu2o1xdzMqfIo8PHI7diq4cYPV
6/6Sy/1bhM9fYsZPtnwymj52gq94aY0xoSku9ilzYJ8lLEwzbrxl9Fhh1WrDmTPm5GSOpsU5
FwBAfj45dQoPG8HMX8jcucebzeIr/79KSiUsXgxdu0K3bhAdDTTzdzcAY3jwkFv1vXXsF/jD
kfD5GHblqoJ793W8ADURC8nNwefP47Aw/PkYMvwDbuKk4u07jA8fgcXyd7dc1JvpHcaV68jf
Hw0d3OT4kWCd1uH5b7VadOQIGjwYBQaiBw8QTSNCkCAgnkc8jwRBgrGEY20L8zxnz6rn7i5Z
uszmwQMZRSGzudwWC9Lp7O/cdgkKcmrbxn5JmK1SKf/jRt21a9xu3mxcWOhU3gw9unML9e+L
fL3t+/ZxSU21rzF3xWKRPnzkOPYLWx8fdOyYtLBQAlC+M1hBgWTePEnbttKAAPmeXfbpqWV5
MtLMTMnPP0n8/WX9+tns2mVTWlrzMgUhMo6rvXZtfS/PBp07unp7Ogb4y65fr2MwOBTk28/9
NqBXj8Z+CkndOuj9YfIDhxw0WhmABGNkMUvCwyX160k7dXDcvctOr5MJgg2AtKhIunKFY/v3
bP38JNeu2Oh1sjfBFR8fdPwYys21ycpyjIhw6dHDoW1b2f598uwsEVdEl1nElX+40tJInz5C
o0a4UydISfnf148JSUkV+vRj/fyYrp2tSxYbV6/SbtumS0sT9HpQqcid2/jBA5yZAczfPtF5
t4V3/cCFtGDdPbl167EgACGAMRQWCps3GcePswwaaOnYMTsgqMDLV9+ho3n4cPOCBeZHjxid
TnjbLX/7SkmB7duJr4If9gFz9ASj1b0dilOphJin7JXLfGrqvxYj8/Nh5kwICoLAQHjwEOi/
MKC0umia5OQKBw7yk6eynbvSrUItLdua27Q3deqimTip9MBBrVrLEqgceasV4uNh61by4Qd8
6zb6lm3MbTswQcG6Hj0sU6byx0/qs7Ktf1/rRb2p3lVc0aPrvyN/fzSwf5OD+4O1miq4otOj
U6fRsOHlO4OFhaFly9DSpSg8HC1dKo1YZncrso5O2+TEUa/3h9T19ZWeOuVYUmJb/SpEnp7u
OGiQg7+/7eDB8vgEx7176wwZXH/0aJfZs+1WrkJr1qCwxWjsGOTjjYYMlu/e7VBaKq9xZzCW
leTm2c6cJXNtgD74UDJnjmTLFunvv6P8fGQ0ohvXpRMmyBS+ssED5TNn2K9b57R6te0330hH
jEAdO0mWRUiTkmRW+mVRVVIA+wO/OnXr6uzhbl+/nk2HDvJnz+pxnJNWKz/6W6OPPqxdyxnJ
ZOircdKnz2woqpyUBAGdOmXz0Yd2vj6yfv2kixbZbNzovGGD3YIFkk4dZb17O86f75KVJed5
iUaD9u1D/fuXs5/VWnl1nkelpWjOHOTtjQ4fRvn5UotF/vixw/Tpdn5+NsPet9m/r7Za7crz
Nm/9gRH9ti3iyj9c6elk0EDs4U569IDU1P99/TSDHz3mAoPotq25pWGkUAkAQAgIApjNkJhA
5s/jw5fgUydBJy62VBHZuxc6dYKWLWHbNuB5IAQ4Fp5G8a1baRo3soQE0x06ZLzXIaNF62Iv
b7a2i7VZM/3KlYZnz0Tsg/R02LsXeveG8RO4E6donf7t0EJ0FLdxvWXsGMuxo//aPK2CApg7
F5o3h8BAePTob8WVAiV/8jTTvSft7cMFBHL9BumG/0c9+AN9UDDv5a3t2Sv35i2DzlA+8rxA
Cgrw5s24b1/s6sr6BxYNHKL5/Aum3Xtc48Z8g4b0R6MKzpzTiyFh757eUVwxGdGd26hrV/TJ
x/WOHnHXaqvAhtGEbtyUTJos8fBA1ezpKfX1cdq2tVlRkd+qlc369XXu1VuWEO/C8w4vXEWm
VNouDrPt2s22a1e7R09q/bKv9oCBzgEBMk8vibc3UiiQry9SKFBoqHTTJklpac2JKwAIY2Sl
0ZatKChY4uGJPL2kHTrKVq2WREcjQiQMIztyxOb9922CgqT+/g4hwS5+CntfX5vQUNnMWfLI
SBl5XQZIZKR0xjey4GBJ8+bSL7+0y8mpC+BI0yg1VTp/vsTNDbm7o5WrJDq9RBAqf5WTY/fb
b859+sh9FVJvb1mbNnVat3YMDpYGBcsXLKgbE9OYouQASKNFBw+hjz9BvXqjJ1FVcIXjUFER
WhaBOndBp04hpbL882PHbAcPdvDzky2Y3zA9zY+m7d76AyP6bVvElX+40tNwv76cm5vwF+FK
UREcP058fPDAAeTgr6DRlH9etlaQmAidO5MuXUh4OBQW/u+v/o+WWg0pKZCUBCpVeViLxQSP
7+OBfZn5s9lH9/jEBDo5hXn8hP3pZ2bgQM7egQ4OKdjzo4h9wDCgVkNaGuTkEp0eC29pwen0
KTJiOOPuXvT99/p/a9L/28IVQuDyFWrMF7rGTbgPPhSOHOVi4/jMLD4+kT92kvloJNOwkWXk
x8XnLhjLymt17PU/zJ06W0JDrePHM3/cZNMz+OwckpxMFi4SmrkxDRoaV6ykLVYxieVd0zuK
KyyL8vLQjh3o8BF5QoK91VplTYNhJdk5NpcuS3dsRzt3VrNk9w82UdHOJlP9P27V3ferw/4D
ErVaRsiLqyISipLGPLPbu89mw0ZJeoassLB+bJzHocOO6zdIl4Sj+fPRunXo2FFpVLR9cbGc
5191iDvGKDVNeuK0bNMWycpVaPMWyb37qESFABAhEq3WJiHB/sQJu82b5cuWyVaslP74o+3V
a06ZmbVMptfP9UtKHO/drbtuneznn2UPH9laLDYAUoylFsrpj5t269ajTVvQ/QdIEKq0kGUl
Wq08ObnW2bN269ZLwsJkq1dL9+6T373XNDe3HkXJMZYAILMZ3b2PjhxDh46ifCVi2Odq4FCB
UnLlGtr3K0pOkRhN5Z8XFjpG3qq7eYvs9JnaubmNWFb+1h8Y0W/bIq78X8RxnMlkUiqVWq2W
5/m/fxcdQoBliEHHq1WsxUx4jqSV4UqzSlwhBHgezGbQG0AQgGPBZISiIlxcjPV68vzMj2ZA
p8dFxdaSEk6vhxonhRkZwg97OE9P8v77cOI46HTA88AwQAiwLDx5AkFB0KqVsGgRp1QSXgCW
A/zKUcEYGAZ0OmwyEY6rEp7O82C1gsEAFAUYV5keCkLZr4CiqldooXBJKZ+fz5aU8CZTzb1g
GDAawWwG9s+35BQlaLScyUxY7qVN5Tgwm0GlguJiUJWC2Qw0DRwHLFvzVaqJ5zirlbJYzOyf
V2UZUOaRI4fwg3uYocozyBmGZGYJ8+Yx9V0tdepqV66ycBwue7QIAZ4DowHU6vLBUauJsoDV
anmOK3/6CAEBg8EkFKm4YhXWGQjNvOYWVBPGYDLhomIuL8+q1XEvyRkou3FErcZqNTYaSY0j
QFvBoAeKAp4HQSA6PVaV8OoSjrYSygIGHTEYeIau4ZeCAAYDGAxAWQBjIITwAms0aa1WIyFc
jahAUbhULZSWCiYTKVu8elE8DxQFpaWg0YDZDPiNsadsKezIYejXj6ldO3NpuErgscADz8OL
18IYKCuUqkGpBLUGrC+JSMIYKAqMxvKHB2OwUFBaCoVFYDTBK55DjIGhQa2G4iIoLQWef9Ne
vEx6PSiVYKUBYygogHnzasCVsr9Ejiu7HcBwoNZAYSFwVdvJ86BWg0oFOsMb/VGUiRDCccK2
7daQ5ubAIO67FUKBErMsAQCOI8oift58S+06Kg+v1C1biwhwAORxlDFsaXGTJtRHHzGXLrEG
Q+U9uHqNG/uFtX59dswXpQ8e5Zot/9qlsH+m3lFcwRhZLCgpCWVmVl80KPvWbJYqlZLUVJSW
Vt3p6RKN1obj7AqL7dIzbTKzXnr+uiBIjCZZRqY0Nhbp9YjnHVm2Xl6+bXyC5PFjdP8+io9D
hUoJw8prTFmpZgslKSqWJiWjmGcoPh6Vlj6fByLlOJvCQpvEROnjJ+jpU5SRKdNo7XjeDuD1
kVQsa6vROMbFSTMypQaDTBDKVmMkGNsVF9skJKCkZFSqrvG3UoztVCqb+Hj04AF6+hRlZcso
ygXjyrUmjkOFRSgzG2XnIbMFPT/UgoAMRpRfgDKzkN5YueMZy8l1OofEJGl2tq3B4CgINQTI
if7/zCKuvJkwxhRFZWRk3Lx587fffrt8+XJcXFxxcbH1ZXOT/7UIAa2WpKXhqCf4+jXm/Fnq
7m2cmkIePcL9+vEeHrgCV3geVKXw9CmOvMWXlPCZ6XzkTeHEceHUKXzrFjGZgKKE4mIuLZ17
9Fi4eo0/ccpw+oz192skNpZXKoUyVAAAhoGMDDh3npu/gG7cGPfsCRs3wv37kJgIycmQkwtx
cbB/H3h5QUgIN/1rOjISxzwjsXGCwSDwwkvfcFqtQkEB+8cf3OMnfGGhwHGV0w6Nhk9MZG7e
xAmJvNHICsLzX0F8Ar5+nU1L4zDGhIDFgguL2NRU65179Olz7OFDltOn2MibJC6WLSnhhapz
7uxsiLyFo6O5rCyuuFhITcV377GXLtORt3HMMyE3l2OYKuzJsVBYSOLjya1b5OxZ4eRJ4ew5
fOsWPHoEUVHw5AkUFLz+JW6hkn78SHf3jjo39wXGekHbtxt9fEtq1eaWLhOsNI8xAQCWgZws
uHcH/35VKC7CSYn8xfPskSOW69eZjAzCMGCxCIWFXEIiuRFJHz9jPHmWvXqdfxrDa7WEe/n0
t0I0TUpVJDkZR0YyJ06aDhzUX75iTkhk1RqeYSq7x3GkpIRLTRMePcYXLlgvXGD++IOPjWXy
8ziTUXj+NmVmQORNkpTIZ2WxqWnM7zfYs2foqxdpZT5OS8F3b/F/3KAzMzlcFacEgWh15M4d
uHOHJCdhmgaWxaWl1rv38hISSgwGWhCqJDCUqkhqKnf3Hnv+AnfuHH8zUoiLxyUlgvXPjQow
JhSFc3O4uDjh7l187jxz8SJ/+zZJThbUavza9ww8D3o9xMXC2rXQrRvj7Jw1ZXJpbAx5FgOJ
SWxuHsWyGMpDIrFazSUlM/cekvMX4Lff4PxFuP8Ap6UJWm35/Lu8jxhMZkhMJHfuCKpSoaiI
T0zi7t4j58/D8ePwx01ITiZaLa6GIoJAdDouK5N//BBfOA8nT8C5c/D0KWSkc8VFNMf939YR
zGasVAopKeT33+G3o/DgIaSmkeinePZs3KIFqcAVQoDjIDWV3IrEeXlcQQGbls5GPSUXL8Gx
YyQqSlAqeQvFMYxQUiLExuILF+DMWbh6nTx7xpSUcIKAX/sah+eJVsfNnce5uPBDhnKnTlXv
yJZthmYe2ba2iYuXKK0MjQk+eFjXtXtBnTpsWJhAUfzzj1BeHnvgAOXtjbv1yN26I1qlev2f
m6i/Ue8orogWLfofZRFX3kwURUVHR8+bN8/f39/Hx8fPz6979+5btmyJj4//G65OCHAsOXqE
HfY+3boV9vcjCl8cEABjRwsrv+P69eUD/CtxxWCAixdhwkRLjx6qo7+pFy3UtmhuVPgKvr5k
0CBIT4en0aa1a5X9+ytbtDT5+REfX8HXF/v78y1bqsLCjLGxpGwFIyMDhg0DhYI0bozlcqhV
C9zdITAQBg2GqdPINzNh8BDw8gI7W3BwIA0b4oAACA5mBgwwRkbqdbqXxpTk5xmOHS3s0YMZ
O5Y6dsz4fGZ55E3VrJnp7dpRc+eqo6NzKaryLemFi3j0WGvr1nkbNhRZrWZBwI+emCNW5nft
FhsQWOirIN7e2NeXBASwrZrnbtmoMVZdR9q2Hdq25caPK1y9umjdOn337taAQE7hhwMChI4d
DZMmlWRmcpXlCRQWkGXh/ID+QkAA7+ur8/XVKxRUQAAODISgIAgKgs2bgaZfQyz79uHOnfmQ
EH779tdPK7duzfb0fFy7tmX5csKy5RO+wkKIWAaDBtL9+hiOHqbmfKtTKFQ+Pmy3bmTePCgo
gEePjRHLi7t0YfwDtD6++b4Kys/f0Lev+uIFtqT49SssKUnCnp1Mz57WgAC9j6/G25v289P2
7p136JAqO7tyzldSwm3cWDhihC4wiFUoihUKnb+/JTg4Z+Y3yts3TCZj5UBv2wYd2vNLFpYu
Xpj3+ef5rVqZFb5cr5746lXYtcM6bIi+ZQt+40bOSjHPTzd1ehx5i+/blwwaxK1eZS0uwkVF
cO4c7t2bnTaNu3EDG42VbU5KhJ3buZ49CwMC9AoFUSiIfwDfowe9facxMan8qTOb8dNo6/jx
JZ06mgICGIUiU6EobdFc6N/f8OMes0bN8vyrBkelgitXoF8/cHMDZ2cilTINGvDBwRAcDEPf
z12zNqq4mAIAQcAGPb3nx6JefbKat2AUCvDxAYUCAgOtffvqfztqzs2tREaKgmfPYN48tmdP
06mThlWrVN26l4SEcGW/8veHMWOYw4fMWm2VR0Wn406dKBz/lTookFYosK8vKBQQFARDBxet
/i6puOj/Frl176510QJDl86Cvz/4+EBgIIz4kJ093/zVOKplK64CV8oWTFavFrp2te7aWfLd
8tzhw/Nbt2YVfuDjIwQFGRctUkdFl2Rl6zZtNnboQAUEYF8F+PkzwcGZ69crdTpKePnbivIb
ZIH7D8iYMaRhIzJzFrlzt/rtOHpM6NOfqVXbOn0Gm52PGRbWrxcaNmIbNiRr15JquFtYSI4e
xT4+EBzCzppN5ReI0WDvlERcES1a9H9vEVfeTIWFhUuXLm3bti36U87Ozt27d//1119Zlv2r
o8L0Onz6pHn0Z5SPF9uzC/fl53jut2Tcl/ywoXynjoKvD3ZzI717Q1oaAIBOBydOwPvvm+u4
FA17P6df75wO7YomjOPGfcnOnkXl5+Nz5+ixY3WDBqk/H22ZPx/Cl8L8+TB6tNCokeG996il
S0mBkhACJSWwZTNMnw7Dh0OdOqBQwIgRMGsWfP89/PgTHD4C36/FH3/M16tHmjbFPXvimTPJ
3Ln88ghr7DOr0fjSd/satfXSBZ1CYW7TRh++RFdYWPk++df9pg7tVU5ObJ8+5p9+0qjVlV9t
2874BWh9FPkbN5VyHIMxOXGKGvVp6fsjcr/4UlfWixnfwLChfP26moH9zPt/IRp15UVXrAAX
F65li6Ie3UuGDjV88rFlwnhu4gTSpw/n729p1cp46JCQm1teOD+XHP+N9Ogm9O2Np07BYWHU
ggXU2DFM06aMqyvTsiU3dRq5dg2qRbK9qG3bwNMTHB1h+fJXFSMEeAFWr9Y0aJCh8Mvdts2A
y2PBID8fZs2C5s0trvXVQwdrRwwrHTJI/cVYfs4csnOHkJXF7t5t6t5d160bM3asOSJCHxHB
TplinTTJfO0qV1T0qsaVRRUePMAPGcR27MB++ikVEWGJiBCmT6emTtUcPabOyCzHldhY2LRR
6NVLP2AANXkSv3ixMWwxNXUK2+E9TfeuuulTLbFPzRZzOVhGRICzE9+1o6Z9aG7Llln/GWX+
Yiw/dw6OicFnTjETx1GurvxXX1LRTwyUpRJysrK5n/ZaPb2oAQOsv/7KaDSkoACOHAEfH/jw
Q7hwAQwGAACGxulp9JZN3MABfMcO6g8/MM2ZA+Hh8NVX9IABuk8/Lzl9xgQABMOVK3j8OC44
yDh4EL14Mb90aemSMNPkSdjPzzqgP7VlC60qedUBlCYTxMXBdyvwoMHEyws7OVo6d2RmTCff
TIfvvtMcO5Gr07FYIMoCvH4916eP2t0zb/BQ47SvubAl5OvpuFcvg59f8fAR1J49TE4OyzIE
ACwWePIEvvySrVNHN3xYep8+ie3bp8+cySxcQCZOEFq1srRubfnkY+sfNyzq0vLBTEzk9+y2
jhqpG9jf9OEIZuoUMm8ezJnNfzBc0/G9/K6d8tauoWOevtHUnLLg6ChLeJi5/XtUqxbWD0fw
8+aSmTPxsBFc61CmVWu2SROhefNKXFGpYPZswcXFOnhwUb++2V275s34hp0+XRg+nKlTx9Kq
le7Lr4q/nq4cNjy7a7fcb2awkyaTfv3Y2rVVffsU/vxT6fN/uTXKYIDzl+CDjzg3d8vGjYbE
xOrcde13+PIrqO8Kk6dCSjrQDHy3Apxrcf4BRbt2GV68X5GREBAAPr5k/ESSk/vvzDL6x0rE
FdGiRf/3FnHlzZSSktKxY0d7e3v0nCQSycKFC81ms/BX5gJjDOnp/Kf/0fp6GwIU9LrldNRd
XlNEYp6w8+byHh5gawsuLtC3bzmu6PVw9iyMGEHLpJrazlk9umQsX1IQ+5SNiaLu3dGbzcLZ
szBtKln7PXPzJq/Tl6cNREaSDh2EOnWEdu1wXDwWMMEYrBSkpcHefeDlBYMHw8GDUFAAWh2o
NcDzoNHwly6yfgocGiosW8rn5BCNGgryQa8H9uW7WwkCxMUKoaF6L0/Nx//RZ2byhJTl2+C1
a/kGDTh7ey4ggJ88WcjN/TN/gyfhSy21XUr79C85esxcVs+Jk/yEScyPv/CPo3BZLwry4LeD
EBgAjRuRoYNxxnOn0KxZAy4uQp06Bg93Y9++1PGj1vhYLiGO/PQjO3Ag36gRTJ4Mf/xRXviP
34XJ49lmTfH06ZCWCjQNRgPcvY179TIHh5hHjqTjEzD7BuHxu3dDYCC4uMCKFa8qxrKQl4+/
mUFcXOghQ5JPniqq+EqphEWLoFUrq42Npl499WefaH87ZH78UIiPw4mJXHq6acYMS4OG7LSv
uchb5dPWtDS4dg0SE4lW+6pJmyAQvY6bP4+pV4/99GNy6SKUTd9zcuDOHfz4saWwkClLT/rh
BwhtCx7uZM5skpQItJXQVkhPhVXLScf22NuLObBXl/fnUkxEBMhkuI4z5d5U1btXwZnT1kcP
hWdPBZNRyMnCB37F3l5s716GPbs0paWVM9p7D5jZ84xNm+mmTaNSUwWaJoWFcOwY+PjAyJFw
5QqUra5oNMLB/caBAywNGzBfT7NePM+pSwnPQ3Q0tX69+j8fFx06ZBJ40Glh3jxib4+Dg4Tt
27CVAowJy0BMNPTsgV1d2Xbt6GfPBO6VCywcT4pVwq4fcM8enGv94vlz9PnZODcb8nKhuBg4
DowGcuO64O/P161r6tKtdP9BXWY2zTAkK5vftVs/YGBJ7drs++8zJ49byg4JpSiIiYFx43iZ
TO9c62loaNTs2Wm5ObTZRBLiuUWLNG3amJs24ZYv1T+Nosp23vt1P9uti6VhA+vnn7IXzwlp
qUSnBbWKPX8699P/FLnWt4QEsju349diMwAUF/Prvtd07mRo4God94X5wllGpyEFBfya73FA
EDg7g60ttGwJjx9Xrq7MmUPkcrZJY2379sVfTytNT+dzcrgTJ6yhobyTE21jo6tbL6tHz4Tl
3yVn59BJyXjPHj4wiDRqqO/fvzAt7TWRiFod/HacDHmf8vZWHziQn5enr1bg0SNh4UK+cWMy
cTIkJIOFgmXLwMmZavdezL59Nfx3lZhIQkI4D09uzFg+O+dVLCrqb5eIK6JFi/7vLeLKmykp
Kal169YymQxV1fz58/V6/V+KKxQF9++TNq35QL+SL0dnxMbQlJnwHFAWkphAdu0EDw9wcYE+
fSpx5dw5GDECOzny77VltmxiCgtZiiIUhc1mAWOi10NeHhQXE5OJlOV4CAJkZ8Ps2aRFCz4k
hHnyhC+LzscYcnLg11/BywuGD4czZ0Crrcw25nkSE0OCg6F1K7J4ESkoAJ4vT0N/xfyJEMjM
FD75xODtbQoNZeLjOCxgnscqlXXePI29fWHDhsWuDdQdOxpTUgQA4HlSqmHnzOUaNqJnzi66
c6/83apOR3JzsVpNLFT5FVkW4uNg6BBwa8Z3aM+kJFc2Ys0aqF2byOXC6NFCZCQuKcFWKynL
XA8Lww0b4vYdYN++8sJ7fjC1blUaGMBv2lge8SUIkJOD586n2oYybUNxbDy8LtoF4I1xpbgY
r/7e3KEj4+aG12+gExIrp3plR/i1aoXr1eM//ZQ7cYLXagWLhVitoNdzcfGlEydqmzS1Lo0Q
oqLLO0vTYDSC1fqahGyWFQpy9TO+KXV11U6cwN+4UfE5mM1gsWCOIywLBQUwby54uJNJk7jL
lwXaChgDxmClSG66MHMa3djVMnUid/NG+XBERIBEAjIZ/uIL7t49Vq3GFguhKCIIhKKE+/eY
wEAqMNAy4xsqP79yBH/4iWreRtuwsXXFSo6mMcZQI65kZZGPRwnNmugC/QsjIxmDoTzDnqJw
SQmXlUVrtbzBAJcuwkcf8e7u1q1bDcnJdFnAHsGgKsE//UT160f7+Qunz5IS1avGhxDgeHLw
IPcAdGYAACAASURBVPTsVZ5qzzKYZYBly1fVnjwiSxbyTRobR3xYfPqcsqCQZhhMCDAMKS4R
Ll5kFQraw50dPVrIziZQiSvEuRbTvUf+9h2qgnyaZbEggNVKCpT8zFlMrVp0z+7ckcNYEECv
I+FLcMMG1nahGTt3qAx6QtMg8MDzRK9nf/zB2K2LzrU+P38uKX4h/f1FZWaSD0bwzZqqWrTI
vnnTatATgQeWJcpCcvY8tO8ItWpDSEiVYLA5c8DRiYS24zds5PLyeJomLEsyM3H4UtI2FNet
Z/3405xDR4qLimiGxTQN8fHk09GCtw/bujWTmPQagFKryU972T79KB8fw5EjqoICc7UCSUmm
TZtV7u7sF1+RR09Ao4WwMHB0pFq3efbzLzXiChcSomzarHTUx3RWlogr75REXBEtWvR/bxFX
3ky5ubkTJkzw8fGpABV7e/uAgIBt27bRZTOsv0ylpdbz5/UKBd2lk27jupKS4ioB8Q8fQIf2
0Kgh9OpVDVegcSNYMBce3n9pzRwHFgvR6zlVKR0bRy8J50Pb8YGB/IMH2Golf3Yc9u8HLy8Y
MQLOngX9c69BCYH4eAgOhpYtYeFCUCorv6IoUlxMkpMhIQESEyExEeLjISWF6PQ8x+GSEn7j
Zm2XrgZfBXP2nKAqJRaKRD3lvvzKUttF13+gNri5ITDI+uARZ2Ww0YSv36I+/pTy8qJ+3m/I
yqkeN8JyYLKARktUKvbJE+snn3BennyrlnxSUuWUZfVqcHGB+vUhIgJ0uipbGG3aRNzc+Wbu
5o2bmD8/0Xl6Fvgp2O3bKosVFuIlS81t2jLBwRCbAAIBjoPCQpyWRir6mJQEKclEXVoeyvUm
uFKqFq79TvcfoGvRUjN8uPHWbeH542v+XF0BLy/Ytw9yciq/YlicnWOePsNYu465dx9+7QYh
Ok4wUeT5NGeWhfwCnJJa2cLERJKUhEtVAs/xOg0VHqZv1FDXob2wJJzce0DUWvz8moPViuPj
rRMnMg0b4pkzhdOncUpKeT0JCRAXg7+ewtVzoXv1MB05XD50ERFgZwc+PrBhA1TbpQ1jnJzC
9e9v8fax9uvHx8WRsl2nLBSJWM40amLq1M20/wBTNtGsCVdwSgrToX1Jk0YlA/sZ0tNffEGA
AUhJCb9+o7ZzF5OXF7d3r/XxY67i1kRF4Z9/oQYOYjw8ye4fID0DGAaysiApqbJTycmgVIL5
z8nzocPQvQftXCs9IqKk2gz43Bnqo+E6V1fLt3OMhcUGjqtsDyaQlIy7dadcG1CdOrMpKQIA
+RNXoEEDPGmq+Y/I6uuPK1fRdeqYfH34HdsIwwiZmbqvpxkbNqS++UZ1+7apWuH795i5sy2N
GuFxXzExTy0UhQ0GkpNDKvpSdq8zMwlFEQELSUl0+/Y6d3fViA/UmZmVIIsJZGTBmLHg6QVB
QdVxpW5d+HAknDtfeV2Nlj94WDNwkKlpM3bFGn1MbGWCU34++83s/MBgbVAQiYoGlgOWhfx8
nJpKKpqUlERSUgS1GpeWCjt3W3r2Mvv4mI8f1xYVVk+OT0rWbN6S4+5Ojx5D7twDtaYMV6yh
oYl799awY3piIhMSktmkaeGojxkRV94xibgiWrTo/94irryZdDrdiRMnPvnkkwYNGri4uNSv
Xz8oKGjq1Kk3Kt5L/2XKyTXs36/08jKOGM6cPS3o9VX+J85IhyGDwNMDKlLtK3DF1xfOnIKS
4uoVlr0DLijg4+KEO3f433+nzp3X/7xPP2ESE9IcBwTA3buV+wXn5MC+fZWrK8/jiiBAbGzN
uFJYRG7dxjt2wPr1sHEjbNpE1q0ju3bhhATaYORMZv72fc1no/VNm1lXrGZiYgWtlhw+yg8d
xnl6MSu/p4d/wPj4sifOUEUlbFGxsGKtsWMXfUhz090HvOVPjhIEsFhIbh7/LJaPvC1cuiyc
O0v99KN+2DDa3V0ICYHExMr2rFoFdeuCQgE7dlQfjR07wFfBO7uUrlhZPincvVsd0jzb3YOO
iCClpYSiBJNJiIvnJk81tmhl7dCBJCQDBjAYyeUr3J49wvr1sHEj2biRbNpEdu7Ajx9hQSCE
vAZXyrZPuHefW7iY8vDQ9OldtGNHsUpV5T15Ba5U605Z9w0msm4D7eNrrlWL69qDiVhjjbzL
p2fxpWq+LJVcbyDnLvC7dgvr15ONG8tvxLat3MOHnMALWCB7f2Hbv2epX09o31GYPZ+7eIVL
SuZVqvKfm8zCrTv6zz631KsnfPwJWbaM7NhBtmyBLVtg21bYsR1GDIN6dfk2rdU//1Q+wY+I
gNq1oW9fOHq0hi4XFOB58y3NW1j9/PhLl3mtFjMMychkpn3NNmzEfj1Lf+tu+T57L+IKIUJ8
vCk4ONVfUTJtMuTl1lA/AOTls19/kxcQqG3SBJaEw/btsGULbN4C27bBpk14zjy6YyfO0xM2
bCTxCUStJgcPwebNUDY4G9bDtm1w4SLJyi5/xg4egi7daGfn1IiI4moz4H2/6Nu3Vdatz61c
VUMzsrLwfz6hmroZQpobEhNZAFyBK83cYPU6iH1hh471G+lGTQyu9am133MWC/vwoXLsWJWX
F7V3P855obN5efjAAcHbm4waZbp2rdRo5FNSyfHjeOtW2LABKu71/v24QElohouNMwUH5wc3
1307F/ILqlSlVMLCRdCyFVRLtZ8zBxo2hK9nwq07lYUNRubKtfSRo4q8vLm9B0lO3nP1FFIL
wp+2bJMXEAh37oPFCnoDOX9e2L0bVzZpM961m42K5lSl/I7dph69zD4+lmPHdIWF1fdXjI1T
rfk+vVkz65ix5P5D0BsgfCk4OzPtO6Tv31/DulhiIh0SkubmXvjp51xWtphq/05JxBXRokX/
9xZx5c0kCIJOpzt16tSUKVMGDRo0ZsyY9evXx8XFGZ/ftOivUWoqt2077eHBf/45vnOXmKvG
TWRkwPtDwMurBlzx8YUTp0lRyYt9gZxsbv5cde+exsAANijAHBCk9QnUNHFnnGr9b3AlOoas
XEPatAE3N3B3Jx4egrs736EDe+SwNS+X4zhSWMLMms3VqcMM/6DwzFlDQQE/Z562cxdlz17K
x0+Y+fMNjZsoFywufvjYnJnJj/hQ66Mwdu/BJSXhik2BjEZ4EsVPnlrauas6IMAU6E8HB1oD
/ayNGnCODvhFXKlTB3x9a8CVXTvB3x/XrmtZuar8hfet26pvZqQ2barv35/btUuIeWaMvGVc
u84cGGho0YKaMlXIzSMAkJuLJ02xtgll3dyImzvv5s57evLBzflt24WyuKBX4wrHEmUes3QJ
5+Eh+HpTq1ZYVSqu2o5Vr8CVshC+tFR+309sjy7Yw8PctFmpf4D1488Me35Rl6r5shZOmMS0
bsO6uQnubsTdDby8cMuWzI7tLG0VMCY52dzRI/SgAbyPj6VRY73Cj/topHnHDq1KxQOAVkcO
H+cHvy/Y2hEvLxwQKAQF8SHBpFULaNsaQtuCvx/4+ZKPPmDPnC5/YR8RAbVqQZ8+NeOKyYQj
b1KffqJv2kSzfGnp0yhKo+UOHioaOEjj7U3/epjNzS9fo3gRVxiGPHrEBwaa2rdnVq2EoqIa
6geArCwy6j9sk6a8gwO0bAmt20BICGnRElq2ghYtITgEu7mT5i3I3v18ahofFy8MGIi9vIib
G7i7g5sbBAfDV1/hK1eexxXK2flpREQuQJVJ8NYtrKcHVaceXr2mhmbk58PMmTgoSB8SUpiY
SAEIFbji4QE7dkFqevWfbN2OPbxoB4eC5ct1Or1w6iw1bATt5S3sO0hyXvj3ubAIjh4nPj7w
4Ujzxctqg4E/d4F8/BkODIKKvri7kx49yZ17RKvDMTF8cLC1fWdu1Xooqvr+ouzclRYtasKV
RjBjDty5V1nYaGSvXssbNUrt7cMfPELyCp5vEhOxKju0vTogAG7fAbMFcvNg8jTcth1xcwM3
N3BzI97eQrv36J9/YdUa4Zf9XL8BlKen/sefSjKzqi8fPXionrcwq3FjeurXJC0TrDRevpzU
cmHbtc/du08DLygxkQkJyfD2VY2fSF6kO1FvVSKuiBYt+r+3iCv/F+Xl5d28efPEiRNXrlyJ
i4ujKOpvOCkyLY3btYv28OBHjuIvXxUMxipXTE8ngwdxnh5Cjbhy/AwpUj1fngDgB/ep8DB9
107G/n2pSROZ+XPp8KWmeYuMg4dynl4kIADu3ftvcSU3Dy5dgTVrICwMliwh4eFC+BJu/Xru
8UNOrRYwAZrBa9bSHl7GFi21u3+wpGfwQ4dZOnXRTZ2my8vjV62yNm6sGzREc/wElZIidOho
atXaOGMmlZ8vABCMiZXmzl9gx0+wtm5bOHCQauYM08L5dEQ4t2Ae36UzbtiQvAxXtm+vPry7
dkFgIHapZ1m5uhxXrl4zj5+gCgyytGjJDxzET5ig/fQzQ9++dPsO9NfT2QsXcdkRdRotOXCQ
W72GDw/HS8L5JUv4JeF8xHf8H5GY41+zukJZhKRE6/JlJb17Gls0xxFL+SePa0h/egWulMlK
4ZxMfPggWbbMNPqL4tbtSlu00Q4bYT55UsjLA42GHDjIrV7NhS8RwpeQ8DCydClevZq7dav8
lEmaxvl5/InjeHkENXa0vmtnKrStpf8Ay47dOCEJdHrh5Fn9+yPM9evzY8bgsDBhzWr+++/x
+rVk43rYuAE2boQd2+HkCZKaWv6MVeDKb7/V0FqOw8VF9NzZOtd6qqGDtKdOWPPyuKlTi1u2
0r7Xgbv3QLBQ5fW8iCs8T54+xUFBbNu2/NKlUFhDQBAAQHY2N3p0sYenoUlTWLAQ1m8g339P
1q2DMq/fAOvWwe4fSGw8VmsEpRJv207Cw0lYGJT5u+9g3z6SkFDejAOHoNPLcGUr7+nJutQh
q1bX0IzcXBg/gSgUllatdElJVVZXPDxg587yuM3ntWkL38zdXLt28aqVRr0enz5LDx/BeHoJ
e34hGdkvdDOX/LIfe3nBfz6mf79hMpqE2Djy0y9k+XdQ0ZfFYbBxE8nIJGZLOa60CqUXLeOV
hVX+ASkogPnzX4orM6vjCnflqnLkKK23j3DoN5L/3J98UTG34vui9zoaAgLg1h0wW0CrhUNH
yOo1FcNLwpcKa9dx9x/wegM+d4n/4COmSVMqfKnpSVT10LjLV6nPx+rr1efnzidaPeEF8t0K
xqmWyUeh27Gj+lIMRcG9e3xggK5Va8uiMPL8P0Si3gGJuCJatOj/3iKuvPPKzWH377d4eXH9
BzD7fqU1msppE8EkOZnv1dPSrCnTs+cLuKKAE2dJUZXQCYIxv3GD3tNd5a/gwhbhxHhOo+YZ
hi0pYTduxF26wJvjCsbluNKqFV60SFAqK6dBPA80AzQDTHl2MuZYgWUEhiYVKeC/HrR07qZp
3IRZtpx9/IRu1Zrv24/fuUsoLSU7dpDAQN7Pn9qwgX7yhAsKYgYPNh8+YtRqBQDgOFxUbJ09
h3J0NjdvqVq3XleQT+u1HMPgvDyYPp0EBFSf378CV3bvhqAgwaW+YeXq8mnQ/v2kVy+hT1+2
R0+hY0ehRQt9cLClUyf87bdw9RpYLKQsUwljoChCM4TnCcthlsU0g80UZthX5a4QAoJAUpKt
O7ervb2zQkLUs2bg/FxSY7D9a3GlQmqt9d5jddjywvadjI0a4fHjuOu/CxgDRWGaxhyHORY4
BjiGMEwN5ySWqrgH9yybNxj79aVdXXHn7sKvh7DJzEXeLvz0M42XF7tvH8nJIWX5IVV+SQAL
QP58JF+NK4QQQWDXr9U2a1Lk7WHetIGPixM6dtAp/MyffC5UhGBBzbkrJDFRCAmx+PkxU6aS
vLzqlZcdvp6fb505KzE4pLB5c/LsGeZ5UmMaQ9lmdBgDTQNNA8OUm6aBsgD357ZvBw9D5+5W
51oJEREF1XBlzx6ueXPaxQUvW0aYqjuZYwwpKWToUM7dne3UiU9JeX5nMHBzg7VrSXw8eb4x
PA+r1zANGho93EybNzFGk3DjD/PHn1Bubvy6jSThhVv/LI5f9T3brBn54kvh8RPWYiEcBxRF
nu+L1QpWKwgCCAKOjWVDQsw+fqZxU6ic3Codyc8n387igoOFmnFldhVcMRi4K1cKR46sGVdW
rlO172SswBWMgbICZa1oEqFpzLJYEMj/Y++846Mqvv5/5pbtm77pPSQhoUjvvTcFkS5KFVGK
iB0Q6UVAinQB6UiTLk16DSEhPRASEkJ622T7bTO/PxJJCMiX5/XoV3x++3mdP8ju3nvPzJ1d
5n1nzjkmM74dzY0abXNx5d59D/92unYDd+4W23bgXd3EefOlyrKTi5aUOzjnOTnzCxbiWqnj
8/PIoQMkJBh37Spt3iwWF9sDV14r2XHFbnaz2//e7Ljy2qsgX/r1kBgSglu0tCxcVJGXX/0Y
3mYTo6KsDRsUOzuZntZdeWYz2BFSE1ckiRiN0syZNjdXy5t9pF/2YosFCwLGGBcU4OXLSZs2
/zNciY8nkZGkaVPrnDkVubnVjlXOBStnkH8YxhhjqTpp2MVLwsRJZg/P8tFjirdtLwwKLh35
XsXVaxajUTp92vb++wYvL9MHH+h37iwJCrJ8OJFPTRWtVkwIMZnxnbv86DGclzc3cxZ/85bI
cZIoYCyRrCw8caIYGvqnm8FeiCt1IwQn16IFi6p2pCxaRIKCxGmfGn/91ZaSguPiuPh4ITWV
ZGeTiopnSkM+20Ys4ao/q8/8HK6IIjaUi98vLQgKSvPwLPnmG0t29jPlz2vq1XFFECSjScjJ
5b+ZwbvrbOF1CtetNfzhIa5xF6qs9uE8NhmlggJxxTKxQX3ezV2/aInZapVSU00fTrR5eUoz
v8FRt/9kFljj5ZfjCiEEY3zgl4Je3e+7uVZMnyac+U2qG27q1t28aTNfc5b5wlD7pCRLvXrZ
zi5FPXpxaWnPOCNJxGzBHE8KCoRly4vatK0IDRNOn7aUlf2HnFm1RunTPyu1/yDp3svm4Phw
zpzCWthz8KCtV2+jk5M4ZYr4KFOw1biDJhO5fl1s2rTcP8AycCBOTyekBq7odPijj7iLl6rj
3QWBFBbjz78QHR35dq25XTtEi1VISi6ZMKFc5859PAlfulzb7ROnLIOHlzu7iJ9Mw09yMMe/
4BtX40+clCQ1aii6e5j6vKVPe/jMOl56Oj/w7XxPj4rnQ+3dPcgnnz63uvLnuLLwWVyp1b01
/22ziRmZ+kmTSzQafbt24q7dtRu4eInBzb0gtK5h7Tq+smc3bn4SUT9OrTFP+1TIfsLV/Mok
JZDlS7GvrzhmNB8dzZtNdlx5rWTHFbvZzW7/e7PjymsvkwnfvCm1aW0LDbW8PcB65ZJUVioJ
glRUiE+ftkyfrvfwMDg4cM8lMq6MXSE1Y1ckCZvNwjczjA7a8q6dxF/2Vj57xiWl5OJlPHgw
5+cnvDquYEwSE3FkpBgUbBs7zpKRIfCCyPOC9LTM4UuVnGJeubrEz6+seYuy4SNKdbryzz4z
5+XzPI8TEoXvl1l9fa0tW5aNHFng6WmcMYOvqKjKNGUyS9F3LaPHmD08bNOnS9evY0Iwxjgv
Fx8/JnTupHdxsTyPK46Of7IZbAOpG8E7uRYuWFQVhrR8OQ4OFrp0MU6dalu3Tti5s/TYsYoL
F/lr13BSklSQL/D8K82HKnHFwaEaV3ieZGXxK5YVtG+X6+pW+O7IiuMnbBYLNhqJwUAMBlJR
Qczm6gKUL8EVmw2npwtJiXzaA95qFQnBoiiVl1tmzTK7upiaNynZtsX0Et84jjx+TJKScEqy
ZLVKlcsmWBJ+WGEL8DcFBpetWm0RRVxWJi5YIITWETu0l35YjjMzsM2GCcaShDlOyC8Q0jKk
wqLqPHKVuNKly5/iCiHk9i3DN18VeHqaO7TPmzghRef2aMyYspgYyWx+Bld++aX26sqjR9bh
I54Eh5RERHI/7zA8emTBWMBYyMsXb9zC27bjqGhsMEgXLliHDbPqdNaPP644/ZulolwURYwx
FgSpvFzIyBBSksWnDr9ch49Ibw6wOTqVffqpMb9A5DhJECSOkzAm0dHC7Nmcl7fUpYu0foOY
8ehpNwpRUeKMmaKvr6V9B+uKH/iCgpqJjIlKJTVqbJs1i791kxQXSxwnlpSKu/fi3n1Eby9u
7mwuJloUBKm01DxnTrmfX3nz5uLiJTg9XbLZJEJEq01MS+O/m2uNqGfx9xcXLcYm8zMI/UI9
eiS9N9IaGmZ+o7Hl8BEpL1+SJNFsxnfucN9/b6gXqVerLM8nMnb3IFM/JVevVZ+nvJw/fTpv
0KCyF+GKsHBpYYtWhvBwcuUKMdZOTfyMRFGqqLB8v0wfGlYaGMh/Nh3H3cNms4iJaDQK164b
Rr6nd3ErGzq84MSpqhNdvlo26ZPH7u6Gjp3K16wtzc7meV7kOTE3B29cj3t0E/z9ymZ/aywu
FoWXVtSx678uO678j4wiBP3TPrwOhiQJWSxgMiGLBUkS+ld0C8bAc2C1gNUCggCS9BefX5IQ
zyGTCSwW4HmQJMD4n2/1f8vsuPJvUFaWNOEDY2gdm58vnjdHPHOaj4nhjx0Vpkwui4zMdXPl
3dxIp074eVw5cPgZXMEY8wK3eEmpt3d+ZAQ/b66UkiKmpkq/ncHfzRPCwksVClN4OK4Var9t
WxWu/PrrM7hCCElNldq2tbi7cy1b4aPH+Lsx1vgEc2kpz/P/OTlPUXH58RM5deuWObsYfXzN
Op1x6dKqXTiFReToMSk01ObkVO7nV+zjo1+x3Pr08bbNJqWlGadNM3h7m3v1Ftevl1JTxORk
8dgR6esvrCEhGXJ5ca35/YIFRKslQYFkzZrabqxbR8LCBAfnogULq1ZXtu8QWrS0qNUGnc7a
qJGtV6/s997LnzLFOH06v3y57fgxS3a2ZKmdTvkFWr+ehIVhjQbPm1f1SlkpPnPaWjcsnaYK
/fzFhUvMJ05xN2+SK1fIpUvk0iVy4QK5c4c8ekRsNkIqszZ9TRo2fAGuVJTj06dsmzaY168z
RUXZUlPFxEThwu/Fo0aV+XibJowz/37uZQsLlYXAN2+WVq3kb92ypaQIKcliQrz5o4kVTk76
fm/pD/9a1cJDB4W+fWzu7ra3+gnbtkjRd8TkZJyYIN25Yzp0xLJlO3c3li8uqXpgP2cO0Wpx
p054794/vXROjvTLPiG0jsXJMcXb87xWG/vtt4VG4zNZj3NyKnEFDxqEf/utqqp9cbGwZWtJ
nz5Gbx9h6PCirdvKEhPNiYmmg4e5b2bhvv2ln3dgQSAlxWTuXM7P1xASXD51ivHC79b4eCkp
SYyN5S5cMG/bat6w3lZYKL5Krtuz5/kx463uHuI7g4RDh7noaD452ZaZabPZcHEx+e00ad4C
BwWL3XsKu3Zzt2/zyclCUpJp4SJrkyainx+eMpW/G2s1m5/ZDEbTkpOTqX1761dfiidP8NHR
1rPnLO8MksLrWlu3qrh53WI2Vi287Nlj7NSp2M2N79tX3LSJv32bS0qy3b5tWb/B3Lcf7+WF
+/YRDx58pSxYxcXiT1squveweHnjKZ/gg4f4+HjrtWvi3Ln6du3y/f15rRbXr4+fx5Up08iV
2riSP2iQPihI3LkHP67xH0devrBwcXGLlsbwcHLl8n/AlUqdOGkZNqLM18/SpbOwaKF47bot
Mcl2+bJl2meFrduWN2psXbchL/V+VZ2lwiLp+Clb8xZ6H9+C9h3y9x8w342xRUdz+/eK7wzE
Li5cp465e/fULjdp12ug1xFXMKY4TmY0KktLqZISVFZGG00Knmf/kTkxxmCzQWEhpKejzExG
r6f/f5qDvth4niotpaOj0dVr1N27jMHASBL1j3v1HwyDxQzJSXD7FkTfgdxcMJv/spOLIujL
qIx0KvoOdfUq3LgBCQlQXg6i8E+3+r9ndlz5N6iiAp8/xw8dIshkgre3JTTUHBFhqlPH1LHj
k+HDHvTuaY2MkFq0EFNTMSFErydHjkoDBkjBwdIvB3DuszmUMManThnefbfI25v38xObNuXb
tOEaNRYi61t69LwfFp4bHs5fuYJNfzyaf/iQbNqIAwKkt96SDh+WalYFIYTk5AgzZhQ1aWJU
q6U6dawREfoePUrOnLEWFf3nupmCICYkWDp2LHByqnB0sjVvmffz9vI/3sKxsfwbjYpl8goX
F2vXzoX79lbnDpIkYrNJW7fy7dpx3t5CaKjQuiXfvBnXsb3Qq4ehe7erwcEPa83v587FCrnk
7S2tXFk7+mLVSuLrLcrl+jlzqxDtwgXDhA9zdbrcwEB9h47WNm3KWrcuatqswM+v2Ne3pFUr
/Y9r+ZpFXf5Ma3+UgoMEhUKcM6fqovFx0pKFnK+PFSFBJsM+PmKdOlLdujg8vNKksDCpTx+8
aDHJzyekKmsTbtAA16uHk5KeuWJZGT78izByuCUgwNCgoaFVa65tOy4iIju0TknnjsKJo7b8
3JfViSwvJyeO41Hvc/5+xnr1Kpo0tjZrKtSvr/fwKAoNLdyzrzA7p2oE5ORwv/5q6NKtMCSk
PCiQa9SQa9pYbPyGEBlZEhJS1qat+fARU25eFRrNmYM1GqltW2nXrj/tH56TYmNtrVoWadTF
Wq0+PKJo3XpTrdKiOTl43z4pOFgcMEA6dgxXQrIg4OJiYeUqsXETydtHCAw01qtXXK9ecUiI
KbyuNHQ4f+y4WBkHcvmi5dOp5YH+vKensW54WePGwhtvCPXqWerV04fWKenWtezBA65WLMoL
lZFp27azol4Ds6eXJSTEEhFhHTiwfNWqksJCQRBIZib+7jtbq1YmB4eKoKDSevXMjRpx9esX
BgRUhNQRP5ggnjwlms1VNZme4oqTEz/g7fy27Qu9fcrDwyyRkRWhoWXOzmLrNsXfzc3IzrY+
zX2X8UjatZvv3sMaGmoOCDDWrWusV6+sbkSJf0BFg4bc8OH4ymW+MprrP4rj8ONs/qtvTTZV
SwAAIABJREFUODd3zsubCwkxR0YawsNNTRrndO/24MMPzK1aChERws2buBJXiorwZ59J7u7S
pCn48pXq81RUCGfOlAwebAgIEDduxg/Tq9/KzRPnztM3a24ODyeXXw1XCgr4M2dNw4aX1K9v
9PHhw8ON9eoZwsNNHh5c5y6mBYvKH6RZrdaqBvICfpTJz51X3Kp1uUZrCw6uiIgwRESYg4P5
wACxYwfx/Hlrael/qpdp1z+g1w5XMKY4TvX4ceC1a/X27lXv3Ck7dNjp5q2wvDxPQpj/PrHY
bJCeDqtXw4C3qTFjFUePsoLw/9VT8xdYURF9+rSsWzcqPJzp3VseE6uwWpl/3KuXmyRB2gMY
PhQ1egM6doRt2yAt7S87ub6MOnyQGT+WjYxgwsNR3brQqxfcuA6Gin++4f8ts+PKv0E8Twry
pcOHxc+mc2NG6/sPqOjdxzRmbNmKFYW/Hi7cuN48c4Zl9mxLbq5ECLFYcEIit2o1N3WqcOOm
VFpae+KYmckdP26a8Y1txHChb19+0CDjBxOs337H79hZOHt22ZTJXGqqZLNVHfUkG586IX38
kbjyBz7uHmcxP3M2o1G6ft24YoXt/ffxgP7CO4Mqpn9WEhPLGQyv9NA3P1/4/vvisWPLR75n
WbK0NCrqabU4nJcnzJ2nf/fdipEjzT+uroi7V3s5IylJ2rpV/OQTfuDbQo/uwrCh1hnf8Bs3
WLf8lPbVlwVTp0jZ2dWuHj0ijRvLT5lsO3mS54WapRTJ2TNk2hRp9Pvmw4c5USR6Pdm40dyl
S1HLltmTJpVt3yH89JNtw0bzmjWGefMMvXsb/PwNXbua9u7lyH/S7+e5zz8zjR1jPnCArwwO
fpgm7d8nTfsEjxmDx4yVxowRR48WR4+SRo+SRo8SR48WRo8WvvlG2r2blJYSQkhZGT5wQJg1
U/j6KynjoSTU2IRmsZDEOGnLZm7iRMugwZbefYTefYXRY0q/+dq4dQt+nCnabC+7BVYrSU0l
W7fYJnxgGPSOvltXS4cO4rBhxk+mGtasMWY8MlptVQ202cQnT6x791XMmVv2wQf6wYOt3XuI
nTqLw4YZJkwwzZ3H3YvjKiqq5pQHD4qjRtm++9Z27epLYAkXFgirVxnHjrENGYLnL7Tdul37
w3q9GBXFTZ5sXbKYu3lDNBmrG373Llm9Bn/2uThokK1zZ9PbbxvGjrXOmCkdOCimPaxqcn4e
f+WSdcliadonltGjynv2EDt1lHr15CdPsnzztWntj5bCQuFVVlcMRiEhybpwsWX0GFv//vw7
A7mvvzb/+qtRr5cIISYTvn1b+Okn2/TpxuHDn/TqVdatGzdiRN5HH5fPnYfPnpWePKm+xFNc
8fIWZ39XsfT7sunT9W/2s/TqaRjwtn70WPOqNfrbUcUmk1DzkIxHeO8+fvbsivdHFfXqY+zZ
u/jtd3I/mGBatEg8dgyXlYkYv9IXDWPC8fjKVXHBQu7jyaUD3qno2tP87nuFs2blbd1SdPSI
Zeli85dfGB8+FHm+csuotGcPP+FD246dwv371Zcwm6W4ONPKldYpU6Tzv+P8Giu3ZWXSgYOW
b2Zwn02XkpOIpXb6rheI56W8fP7QYdO8+abRYyzduls7drL16s2NG8evX2+7G1O1MPVUJpMU
dce85kfLuHG2wUNMnTtb2rThR74rzpwp7dktlZbaq0O+nnq9cIXn6ZwcxY4d6q+/dh850rtP
H1nPXsybbynfe99j1WqfO9EeJhP7X3bJZILbt2HiRPDwQIFB7PfLaJPpr99HVMtsNsjIhLux
EBUNeYXIYnu9tlrl5lL799PBwYiiqPr1mZs3GYvldV9dkSRIToJWLUEhBz8/+OEHSE7+a87M
8/T9+7KxY2QhQaxcRvv7MiFBTNfO9JWLKD8PcvPg2jWIvUfnF7I8/3rdx7/U7Ljy75HNJhUV
2u5Glx05atiz1xoTU1pcbOZsUtYjc3ycISHeaLFIhBBJkqxW64M0642bXH5+VXh6LXEcfpJt
u3hB+Hm7uG9f+a0oS2ExsVpJaop0+ZJQXl4dfKIvww/ui1cvC6kpNrPJKj23TR5jkpdHbt0i
R46Q336z3o2tMJrEV0zvbLWK91ONV64Yzp0zPUizlZeLNd7CD9Jsly6Zzpw2Zj4STS8KxLBa
pfv3+cOHxNWrpeMnrA8e8BYzLivl7sXwly6IBkONWIgcMfqOLfqO5fFjzmp7+vyaEEIK80lc
DL55XXicJdls+OFD/uOPbTqdecKE/AsXnimqI2G85kcxONiqVOXNnfuf6+0UFtri4ypu3zak
p9vMZixJpFxPMtJJ3D0SE4NjYsW7MXx0tBh9R4q+I0bfEaLv8NHRfEKC9HQzGM/j3FwuKYGP
uysVFUi2Greysu5KWZl0P1U4flzcsBH/uA7fus1nZ4uGimc2Vr1EpaV8YoLpxAnD2rW275fi
389zjx+LAv+CWHxCcEmpMT6h+NgJ6/pN0g+r8e8XhKRkKS+f8DWeaD/KEC5fssTeNRfk8S+Z
Ogo8KSwgN66T48dI5mNifm5qK4piWZnt2jVz9B3rk8dCzbhqjiN6PX6czZ8+La7fQI4dl2Ji
pfxCzD+LPJJITEb85DEfdcu6aZO0ahXZsZ3cT8V6PeG4FzbwxeI4nPmYv3ZdPHIEnzwpRt+R
cnNxzSbzPCkstF28mL19R9mGjcKlS8UpqcaCQlLLH7OZxMWRceNIQADZvIWk3rfl5Rp/2cft
2GE9eswUHWMoKKqdzJf8cZfz8ipu3c7ftdeyc0/p8VO5Scl8UfH/rBVPZbXx99Pyj/5Wvnkn
f+VG7uNsvcmIi4v41GRDzN0yg0GUJEIIJkTMeGS7ds2SmckbjdVf+coFrsRE8dYtnJdHam6J
tNlIeroUfUe8EyWWlWLh1dY5RIkYjTgnh4u+a96yVVq7juzag+/FcS9ZNSoq5uPiLGfPchs3
isuWkevXSGHBi/O/2fV66PXClfx89vhxVceOSp2OVaspb2/a1xe5u4NSCR066VasCikolP+X
XTIa4fo1mDgRvL0hIAAtXozKy0EU/96LlpTCrr0wZz58Nw+u3KQKil+vaW5uLuzfD8HBwLLQ
uBFE3Qar9Z/36j9aSgq0bA5yGfj5werVkJr615zWbGavX1PWDZchxLg404MHKiaMk8/8momP
pVJT4PQZ+OwzWPo9e+GywmB43aHuf2F2XPn3CGMiCNhsEvR6sbRUMpsFQZAwJpxNslhEi6Ua
JSRJsloloxHzPH5hGC7GhOOwwYBLSnBpqWgySYJQmdcVGwy45mRXFInVio0GbLXi51mlUjxP
TCai15PycslsFp+hgZdKkrDVKhoMYkWFZLVhUcQ13qp0Rqoolzjbi1tR+ZmyMlxYSMrLJasV
SxIRBWw2124Fz2OTCZtNEsfhWt7xPDGbidGIOY6YTHxUVMGoUeWBgeK2n/lHmbXnTD/+iEPq
mFx0dxYtyfyPrRN4bLGIJpNo+8N/USQ2GzGbKw2bzdhswmYTMZuwyYRNJmw2Y4sF22xVM1GM
Cc9jiwWbzUTgSa0n6RgTUSBWK9brcVERKSwiJhPmOFxrY9XLPBSwxSKVl4uFhTg/n1RU1E4R
++yHRYtF0JdLRUW4oJBUGLDFivln2cZmwwaDZDZLL89GgDEReGI0kkp4eP7mYoxFERuNkskk
1XKpcgbPcbi8AhcVEb2emM2EF55rMiaSSDgOm0xSUREpLCAlJcRqJa/eOU8vx3HYaMR6PSkv
x5Upg2v5IwjYYOBKSoSiImwwCFar9Lw/VitJSSEfflhVJjL1PuZ5qbQUl5RIer1kMov8nwSI
Y0x4XjSZ+NJSqaRU0JfzFgsWnm/vq0mSsNXG68vF4hJsNPIcJ0oSEQRstYpms1jjC4htNmw0
SpXDqVZjLRZsMhGef+bGYUxsNlI5jF/dPUyIKBGOx2azVFxMCotISSkxW/BLwuUFAZstUkUF
LirCBQXEaHwGmO16/fR64crRI2jgAMrdndLp2BYtVN/N0S5ZKv/kE2jYEFq1UUybrs1+Qv+X
XeJ5KMiHI0dg3jy05Sf6Xiwliujv3gyWlgY9eoKvL7zRCFavgaS/aB3gr7LcXDhw4A9caQxR
Uf8aXGnR7K/HFUMFuniBCgtDNMXUi5T/fl6VlSnLyUEWM5w5AxMmQJ060KoV+uorKifnn++E
v83suPIaSxBIURGJjSVnzpDz58nvv9vtb7QLF8hvv4kbN1b06mVxdZVGjbKtWy+cO1f17qlT
ZNs2PGSI6O5u8Q/MmvZp6eXL5MKFf95tu73+duECOX2abN1K+vYlOnfy8STy83Zy8eI/79j/
MTt3jly4QOLjSVHRP/3bbVe1/ge4YrUwxYXyrHRUmCu3GjV/bXQ1xoi3yX5Yzvr70jIZatWK
njdPdvOmIj6BuXoVfvoJNv+kOXHKrby8ZowEw3GKJ4+Z1GQq/h4kxkH6A7ow75ktNxwH5Xp4
nAlFBWA2IX0JmxBPX7wID+5DViZkZkFGBpSW1o5FKSuD9HR4+BBKSmWCqDYY6bsx6PCv1JWr
qidPlITUDPqnysvkGWmquBgqIQ7S7lNPspWGilo71pDZxOblyhPjqNi7kBCPnjxhjcYXcBeW
kM1KGSqoWzehcWNgWfDxgQUL4NpVKCiA0lJktVZdVxAok5HJy6VSUyA2BpISISMDCotAEGp2
KdisKPsxlZGOcp5UdgWVkU5HR6PEBHicBcXFYLHU9kEUaItJVpBLJSWgqJtwPwlyHjFlhTJR
qO7Vl+OKIKDiYllWJp2SAtHRkBAPmZlQWgo2W+1r8bzMYFBnZcmTk+jYGIi7h9Iforw8yMmB
wgLQl1LlZYrMR2xSEhTmP+OqIEBJCaSlQWIilJSAjXvBiBIEKC2BzAxITkSpyXRRAZWchFq3
AqUC/PxgzRpITQVJArMZ8gvgURaUlEC5ninIl1+/TsXcRTlPEMeB1UqVltBZj6j4OHT7FsTF
w/0HTE6OvHKMiSJVrtek3Zfv2QVBQcDQdIN6svNnFdnZTH4+FBXDrl3Qrx84OkLdcOrjiXRc
HCooQEWFVOVtEgUoK6My0lHMXbh0GWJjIScHTCYkCK/XYtqrmR1XXmOZzeTuXbJyJXn/fTJu
HPngA7v9jTZhAvngA/Luu6R+fULTkqOjqXVr25gx5IMPyPjxZPhw0qSp5KYT5HI+KBj36UMm
Tao6xG52e7lNmEDGjycDB5LwcKJWk5YtyeAhZOLEf96x/2M2diz56COyZg2Jjf2nf7vtqtYr
4YokgdFIJScqTh7VbN9MHd2vib2lKy1S8txfttYhibTZ4DDjaw0CGQAa8DYcO4b0eoaQp1Dk
jLEvIbKnh5SUyO/Favfukq/5gV6yAJYtQpvXyY7/qspIl5mMVQeWlMC9GNi7E34/g1ISmUvn
lMuWsB9/hLZuZvbuYXbspLZsgatXqdJSpnKOiDESRXl0NLN5M2zcCHeitTbBvbhUdvU62raD
3veLNjFJg7G8Eld4HuXk0JcvarZscF40l166CNavpffscoyNUZnNqDK+hePgyRPq9i3lwf2a
ZYvo+d/B90uovXsUd6JUxUVKQWBrNBBEEZWXMfFx9KZNKDIS5HJwd4epU2DjBjh2DG7dovLy
EMYgipCbw966qTy4n16zCs2fC8uXw5YtcPw4JCWh0lJWwnJCkChCYSE6uJ/evo0+cphKTaGv
XmF/2sTO/hYtWwq7d8K5c1RmJoNxVQIDSQKrBWVnyW5fVx3Zz6xYimZ8AWtXoH3bZOdPqDLS
aEMFTQhNCHoJrhgMkJ5OnT6l2rFdtnIlfPstLF0CP2+D335DyUlsuV4uijQhSMJgtaHMTNXl
yy47d2h+WMHOnwuLFlCbN6KDB2HfPvj9PCTcY+Luuh74Rb1iORw/QmWkV2eRNhrRjevUli1o
xQp05QqTl1eTnBEhtMnEZGUy586gn7fAyuVozQ/siaPMiWNU82agVlXjCsdB9hM49zvs2AVX
r1K3bipPHNN+/hk9fx468iuVlQVJifRvJ9ntW+kli9A3X8OixbB2nfzAQU1aGmUwgtnMxt71
3L/X8cvPwdMDGBoFB9CL5jMH9lOnTsHpM/Ddd9CmDWg0EBpCjxwu27EdHTtKXfidMRhoo5HJ
fMT+fo7Z8hM15zv4eBLMnw+HDqDkZLle/7rnLbDjyr9MZWVk/34yeDBxdSVubnb7e02nI25u
xMWFKJUEIULTklqNn77r4kJUKsIwGCEslxNHR+LuXnWI3ez2cqscJ87ORKEgFEXUauLsbB88
f4sFBJA33ySHDv3Tv912VeuVcMVopG5eV0ybKqtThwoMgIhQql935ckDXnmPHf+q6Q7GDG9z
nT3TiQI5AAqtAxMnMI+zXAnR/PEZmhBZ9bIGhh3bUYe2dFgo8vNDvj7g6wMB/qhZU9msmW43
bzoToiKEio2FJUugeTMYOlj+3Sx1l05MSDDy82O6ddW1besSHq4KCqLee09z8JBrWRlDCIii
vKw8ZOEiXUAABATADysdTWbv6GjZtE8hMAjVCaVXrqR4vmozWE4OzJyBOnekAvxpH2/k6wP+
/igoiP78c1lcnNxsRoTAkyfwxRfQoQMVEkz7+iBvb/D1gaAgavA73j9tql9c5EmI6mknCAIU
F6FFC1FAACgVgBAwDLi7Q0AANGsGX30F16+DKEK5HrZsYrt2VtYNp/z8wNsbfH0hIAAi66G+
fWV79nhabSESlttsEBsLXbugpo3pt/ooJox17NlNGRCAvLzA1xfqhlO9e6r27XEVRXeMGULA
akGpyfTCebKWzWRhoZSfL3h5gr8vBAeipo3oTz6SXzrvQIgzIfRLcOXyZZj+KTRtSgUGIj8/
qLxWYCAKDWUmjPc4dTy0XO9MiMxqQ2kP6QULmcZNmZAQys8X+XiDjw8EBEBICAQHw7ix8PM2
2Yrl/gPfdgnwpxo1VG3eqCKkEhRRdjY9fZqqVUtZRF1m3Gi3s6c1NcYSTYhj1G2XOd85tGhB
BwaCny/4+aF6kVSTxpSnJyiV1bhiNMK1qzBpEjRsSE2cqHr/PWX7dqyvLwoPh3794Mc18MF4
FFoHBQYiHx/w9AQfH/D3R40aU9M/gytXIC+XnTfHq2tnR08PYFlACOQy5OON2raBtwdA+3YQ
EgwaDVAUyOXIxQUFBkLjJjBqFJ2Zqb1+ze2bL92aN2MDA8DbG3Tu4O0NzZuzixZ5xMQ4/NPs
YceV/1uqDM/dtYvMmWM3u9nNbnb7D7ZoEdm6lcTH/9O/3XZV65VwJT8fLVnMtmpJAwAA0Aj8
PNkvJ3vfuOz0l013MCWJqs2b1G80UCiVlFYD9SKpqVM169epz55RFBfKBL56JaesDA4egMHv
gJsrhIfB22/Lp0/XjBnNNGqENFqqSRPN+g0qo1kmSSgqCmbMAC8vCPBnmjeVOztRLi7y8HDH
/v2d3+rv0Kq1Uq2hmjRVzJ7jmJurIIQxGBQXLwcMG+7KMEinY5cvVxuN2hs36JEjgaJArYb5
84HnAWPIzKT27KHbtkHOTuDgiLp2kQ8dKuvfn3VxkQ8aJDt5iikvR8kp6Me1VLNmEBAATRoz
H090/nii5s2+jKMj8vVxHPyOd1SUo9FYvV4kiqDXw9Zt0LUruLgATYNSCfUbQMeOMHQoWrmS
jY2li4vRli3sW2/KPHSywAB5h/ayEcPZIYPlDeozSgXS6egPPnC9dMnPYFDZbHRUFEREgEZN
+XixocHKZo01Hdo6NGmk9vRgWQa562QfTdRev+ZsNLKiiLIyYdZMqmVz2knLBAXIO7RjBg2k
endXhQTJFAoUGcbMmaNNTnOx2pgX4orVCg/SYN58qF8f1GoIDqF69aJHjqS6dqED/FmZjAmt
4zBhvGdSkpPVJi8uobb+zPTuQ7m6UR07ykeNcp74oa51K9bdHclkKDBA9umn9Nlz9KHDToMG
qyiE5HLZV19qCgsdBIHmeXl8vLZLZ4WjA+3rwyxf7J4Ur63Rh1R5uWrdOk2zZkqVinJ0pEPD
2M5dqIZv0C4ujEqNGKYaVwwGuHABhg0DhQJFRMiCgxg3N8bXV9mwobzfm9SiRWjIEDakjqL/
AGrcePbDicohw5iISFR5UzZtpoqKFdu26saP1zRrCioVUBQ4OULbNjDqffTFZ/TECUznTpSX
F7AsuLhA/XrQowcMG46+nc1mZzv+tMm5UUMHlZJu0pj5aKJ65kzd5MnqseOYxUt1t29r/5rv
lB1X/kT/3+GKXXbZZZdddv2b9Uq48ugRvPsu8vODp3LUsn26eB3a95etrlTatavsZ9OV4WGs
SkUhBAAQFiof/b7D8aOqRxlyq4WRJEQInf6QHdAfubuDqysaM5o5fsyhsEAXE62cOoV1caUY
Bj6aRKVlMFYbio6G2bPBywsAQCYDf3/UsaN2/Hjd0qWK5SvkUz9VuntQvn708JHy9Aw1xvK8
fNn8Ra7NW6rVarpVS+2OHQqTCW7ehPfeA4YBFxdYsgQEAWFMnzkjf/89hasrpVIzbzRSrl+n
/f139a+/Knv31k78SH7sBNKXy3fvkbfvwGi0qEkTetZM9cP7fg/v6/buUjRuxKiUVGAg2raN
efSoeiOTJIHFCgkJsHYd1K0LMhm4ucGYsbBiBRw6RN28qczOViQlybp3Vzk7s06O9Jt9HVau
0Fy+qDh3RjN5ktrbW86yqFEj5cwZzjk5Wo6T3bkDEREAAAwDbq7U0MEOq1d4fjfTpVsXrVot
pyjUvDk7f74yL481GJhLl5jwcIQAuTgzw95xXPOD8vQJevc256GDHLUaBU1RPfpqt/+iKymV
5eai53AFlZTSu3bLevWmaRo5ONCDh7A7d8muX6M3b1INHeLk4sIAoDqhzMnftCWlysxMevRY
NjCI9vWlly7VRt32TU0OnjNb2bwZ0mqZzp1cNm9W5+aj7Bz6iy8puRwhBO+OVF295mQ00nq9
9uw5XWgYQ1PQsD5z746rYFM/7UOLhUpOVk2YIEeIksmYJk2VH32s2bCJmTSVrd9QoVJTCD2D
K5cvw4gRf4xqR4iIoAe+4/TxJM13c5jtO9C3sxUfTHA4cpS+F69Mue907qJ6+Ei28sMzZ8n0
5dqkZMdDhxSffwYeHsAyKCSYWrSQOnKYuXSBvXRBNncu3aoVqNUQFgYj34WffoKjR6lLl9mi
IodZM1UIMQBo9ChldJS7yRSamel2/nf68BFtUrLin2YPO67YZZdddtlll12vi14JVx5no8lT
6PC61FNccXGWDR8YeOqY61876TEambg41ddfujZtoqJpQAgUcsrNlQ6tQ8+c4ZiS5G61MIQ4
paT4NGkiYxkIC2MuXNDp9Y4CLzObNbt3OfTsoXFwoHr1Ve/a51pSytTEFX9/+PFHuHWbycqS
5edTt2+rv1/u4uvLKFVM69bKuHiVIMjS05m3Bzp6eCrd3ZkpU3VXrmpr4crSpSCKNMYOGza4
hoe7KBTMG43cvvo6KDVVWVFB6fVUWhrz+DGlL5eLYsjixd4arZyiqUmTHNLTPS1mlc2qePhA
NeMrx8ZvKHQ6ZuJEt4sXa25kAkkCiwXu3IHWrUGlAh8fWLgQbt6CsjIwGqmCAu2ZM2716slo
GgUEMD9t1qWkOBgMVEUFdeyYx6hRoa6ucjc3Zb9+Lg8fOvO84u7dKlxxc6XGjVYd/VVRWMDm
5jBr13i0bhGiVssDA1WjR7tkZirvpzr9uFrn78dQFB0RrjxzSpefqykvR6XF7JbNXp3ah2o1
ioh67tM+C8t+os3NpZ/DFVlWluP4D32D6ziq1XTzFs7r1qtLSpDRiIoK3c+eCQsP1yBEBwQy
m7c5pz/S3n/Aduos12qZsDB08SJbrpeXlcrPnaaGDAJHR0WfvhH7D3jxPMPxjqvWqIPq0HI5
atacmjufyctDqanaNWt0fn6Mgxq6tGPup7hgXI0rpaWKffvC+/b1lMkYP3/nufN0jx+7FBUx
sXHyHzdoQsIomv1TXOnbD3btRgmJzOPHdG4uKimB3FwqK4vW65HZQlmt8gqD7uuvNZUf/uRT
VXauS4VB9iiD2rMbgoJAxjKNGyluXNeUlckNBmQwoMOH0JAh4OwMEREweQokJYFeD3o9VVLM
fvkFA4AAYEB/9bEjOr3eleOUFQZUpqct1n9jvmM7rthll1122WWXXX+LXglXSkvp3XsdBr6j
dHSkaBoUSrpePeWalS7JSar/9SynllFGI3vzhnbNauWY0WzbNnIvT6Zydti4kXLWTOfcHCeb
zS0qyq1uXQYA3N3pSZM0c+bI58xBc+bIhg9TREbIFQrUpp1m2UpdQUE1rqjV0KYN3LwJJhOq
DIApKFQcOaoND5cxDBNeV3nsuHd+gVNiEt2ypVyuYIKCZLv2BGQ/cXkRrlCiqP5+qYObq5Zh
6Dff0h48pKsMfSEEKk8uCGxJifvnnzsBMACofXvFzJkOs7+j58yhPv+c7dFN6efLOjkxbw9w
P3r0BTt/7t+Hdu1ApQJfX1i2DBITq17Pzpbv2qUJCqIBIDycvnJFazJWPYm/d89h4UJPHx9W
JmOaNlXGxCjNZiYmpgpXAvzRxvWyh2lVG+ouXtB+NMFdp2OdnGQ9eqjS0tibN5RffK7x9KC1
GqpTB1lKshZLlSVu0IXzTh+O99K5sR6e2rcHeqSny/PyqKe40qQJ3LkDNhuTlqbq1cfV2UXt
5kaNG68+f76qQg7GDinJHq1bK5QKyseHWrBEeS9e+TBd0X+A0t2d9fZB8+dTt26jjAz4YTm0
bwdubuyYMZ7nzjkQQhGiPHFSPXiYytmF8vKmBw+RZ2Q4Xrrk+fHH3jodW7eOfOqH2uwsDSHV
qdjy8tgFCzxbtHBQqag3mqi2bNVURjEZTcy1G/LmLWmFCtXElStXYMQIoCjQaODzzyHrMXBc
ZdIFEEUqP195547DL78wmzejNWuo+fM1nTrJKwfk5CmyzMcqjqPy8+DQQQgJAZnndiE2AAAg
AElEQVSMbd5MnRDvJIrKSmd++w3efRdcXCAiEqZNg+zsP4jUTK1fRzdswCiVKCyMHTZUvXCh
cu9e2a1btMn0b0wLZscVu+yyyy677LLr79Ir4YqNYx5l6VatdujajW7YELVqxY4br4yPpy2W
v2NqhQihi4vZqFuK5cs0/foq3N0phgEAFBkpi411Ly52PntWFhqKEAKWAWdncHEBZ+dnrEdP
1aofnQoL6ae44u4OAwZAenr1hQSBjouXtW4jV6loX1/50mUht6M8rl+nw+sihkGNGyvvxQcJ
olstXPn+exBFZLUy8+exGg1LU2jMWComlq4MrK/uMRtKe0h/9DEFAAiBUvUCJwMD6XdHOJ06
+QLkS02Ftm2rcGXpUkhIqHr9wQO0fj3l7w8AUK8eJCVVJ8vKyKB++okOCEAIQd26cPUqVFRA
bCxERgIAhIbC2bOg11edJzGBXraU8fVFcjm0bAmpqXD+HIwbC25u4OUJgweijHT6acqy2Bh6
3hzW2xtptKhjJ+r+fcjLg4MHa+EKun+fateeValpX19YugwlJFbnek5Lo3v2QM5O4OEJn38N
N26x2dmqaZ+qIyJlKhU0bkLN+hbt3Qs9eoCPDwoORosXQdy9KleTUxQ/rNL6+dFyBdO8ufbO
naCffw7p3Nlbq2V7dtXs2KwrKX4mj1Z2NkyZgurWRVotdOxM7dlX3UX376MOHWm1hnoeV1gW
PDxgxYrqQcjx9JMc2clTzrNmeXTtqmjWjG7YkPLyApWqailmyhTIygKOg5wnsG8PBAeBXM42
b665F+vM81W4cvIkDBsGLi4QEQGffFKFK5V27Srzxefyhg2RszOoVMjLi+7cmZ0xg713j/53
VpO044pddtlll1122fW36JVwBWNk45iCAiYllY6ORvHxdGYWa7FU5er9GwwJAjKZqIIC2ckT
iimTFO7uFACE1kGnTrIJ8fQv+1BwMDA06HTQrx8MHQaDB8OgQTB4MAwZAkOGoBU/0LH3GLO5
OnZFp4O33oKHD2s2isp4xIwaLQsIpF1dqVGjVRs2qrZslQcGIp277K3+mrQ0Dcay53FFEMBg
QDNnIpkMIQTjxkNcPDI/W8CE41BmFjN5CoUQ0Aw0aAhDhsKQIdV+DhoE48ej/b+wGekvSAZd
E1dqrq48eECtW8f4+yMEUL8+JCXVmKY/gd17UFAQUDTUbwC3boPB+AyunDkDZWVVH46Jkc+b
q/H2plRK1LYNSk2Fc2fRmNGUmysE+sPo9yDzUTV9JcShpYuRrw9oHVDnrujBgz/BlQdMx05y
jZbx94f1GyAtrdq3hw9Rv77g5goeHjDtc7h2gykqUq7f5NC5i4KiQKUCLy8ICgIHB/Dxpvr1
Ze5GI4u56tiKCub3C/KwcJqiqKAg9Yb1b3w4IcDNjWUYNG607N4dldn0zOQ+Oxs+/RQiI8HR
kerTT3HosOJpQrmUFGjaHLEyeB5XKjOw1cAVtqBQ88Mql959tV5erNaBiaynfKu/+v33qcaN
a+PKk2yorLsil7PNmqtjYx15vmrJqyauPF1dqTSjkbqfSv+0GQ0dgvz8kEqFtFoUFkZPnqy8
dKlW3Z5/hdlxxS677LLLLrvs+lv0PygTiQmSJMRxIAioZrWQv8QkCVksMr3etbTURxBUhFRO
4qm0By4b1vn6+8sAICyMOn9OlZXpcO6cQ1goTVEQGEitWK4+fFh2/DhU2okTcOIE3LsHZXoQ
RXgJrhCCCgqZVavU7drLVSpo1owaMYIZM5Zxc0NvNHKcMdMrJ0dOCHrR6gpYLOi7OUihRBQF
/fqx+w8oysoYQlBl2RarlamooIuKHT7/XAkIURT0HyDfvlNz5Aj91Mnjx+HcOXj0CBmNL+iN
+/ehfXtQq8HbG+bNhZiYqtezHst27FQFBVEAEBnJxMQ480Ll4gyVlKxesdLJz49Wqdk2bZXx
CUqLhY35I3YlMJDdvt0rK9OVEDkhsrNnHUaPdnF1ZXQ6Zf+3nB4+VF6/ppn+qYOHB+3iAr16
ouREuSBU1mOhL12UffyRXKejfHzZoSMUGY/ovDx4bjMYnfZQ2aevk4ur0t0dJk9Bl68wlZzA
cbLYWFWbNrRKBT4+aMEiNjaOzXwsm/ixKqyuzN2dHT3GaeJE3bhxrl99xSz7njp4gCkrq4Yl
QaCTU9j+Axh3D8rFhR0x3Kt1K0e5HLRqmPkNXVrM1iqqmJfHzJvn2qyZWqWimzZz2PazOyEe
hLBWm+Z2lFv9hgxF/ymuLF/+dDQyaWnKIcO03j5yZ2f0ziB60SL5wYOq06fZ996jnseVvZWx
KzKmaVNVzF0HjqvaCHfqFAwfDi4uEB5OTZ7EPH78NA03RTBjs7EP09CJE7B4MRo2lA4LpVRK
1OgNdsuWv6yckR1XXig7rthll1122WXXv0j/A1z5W43nqYIC1Z07gWfONLh/3zUvV15cDCUl
1N1oz5Urwv18FRSF6tdj70S5WC1eiQleTZvKWBYFBTF7drukp2uNBtZsVhgMstJSKi8PysqA
4wDjl+MKGI30lSsO776rYBhwcoLgYKhbFykU8NZbusOH65Tp5YTAC2JXJBAlasUPtJcPxbJQ
v77ik08cYmPlhYV0QQGdkqJNTFQ8fMgYDLr5C5w0Wpam0YgRmgsXddlPWINBZrEoy/VMQT7K
zQWT6Zk69E/twQPo1hUcHUGng48+gpMnobgY9HqUm6s89ZtDRARD0xAcLNu/PyA93bWklCou
lh056jZmrI+bG+vtoxgyzDkjw5nnFHejq3DFw0Mx/dPIM6eD8vMd8/M1a9c6t2jhqlYz4eFO
kyf7PX7smJTotmK5h78fyzBQty599Ig2+7FSr6cLC2SbNqo7tNdoNXSTZorZcx1y85gXZQZj
M7M048Z7BAVr1Wpo3hz9+KOisFBbUSF/lOmwb79LcDBD0ygsjN61R5X5WJGQxDRuysoVbFiY
ct8+/99Ohx45EpiYKMvKogoLGIuFFcWnU3YqN4+dM1fZtBkrl0NIEOjcQC5HocHM+rXM89hc
UiLfviOkR08dw9BuOsdvvw3IyQktKVYlp7hv/Tk4OESOqBeE2jMM6HTVuCIIVFwc07wFK5fT
gYGwdRv1MF1usagKCpTTp7N/thlMJmOaNFHejdZwtipcOXsWRo0CV1fw92dGDJfHxqCSEqTX
UxYLU1Iiz8lRlpezVitVWEDt2qno3YulaXB2gKVL/nH2sOOKXXbZZZdddtn1uuh1wRWLBRIS
qC+/lL3xhmbku05z5yi2bKF27lB+OEFTJ1gtl1MqJdO2tSI5WSlJmvR07ZAhSm9vRqtFnTsx
ixdpr17xjrkbeemi3549qnlzqQP74fFj4LhncOXNN2vjiiCg4mL6iy8ohkEMAwoFKJVAUWja
NJecXF+el70YV0TAGA4eRr37UY6OoFRSoaHM9Ons2rXMmjXMW/0dPvxQsXsXVVys3r3bsUMH
B42W9vWj+/RlV65iL1zwS4hveOKY67KlstmzIOoWlJW+oDcyMmDoIPDxAqUS6teHDz6AzZvR
sWN0aiqTkMB06sRoHSi1mm7VSvv5F+qduxU/bXUaPkJTuUWqQ0d69Vp5YaGc45iniYxZlvLw
ULwz0HHpUtclSx379lWq1QxFoU6dtOvXuxcVKYqLVadOautHsiyDnJzofn21y753OHZUveoH
ed8+rFZD0xQaPoK6eIUxGF5Y1R4Vl7Dbfnbu3kNVWaCmTx/5qtVOZ854Lf3etVt3hYMD5ehI
d+6iuHfP0WxWxcXTrdqwShXt4MB26qTr399p8GDZxInoyy9g1Uo2IVFXYahOmKbXy3496t1/
gBNCIJdX3ghmxDDXUyfVz3ed1cqmpvp8ONEFIZph6LZtXGZ+7bd9q9PkSZrwcJVCQQG8Iq6w
bdvK1WrGywu+mQG//65NTPJctsylfXtFLVzJy4UDv0BwMMhkbNOm6pgYB/6P1ZXbN9HXXyJP
T5DJUJ06aP482LmDOn6cTU1l9+yRz/hGffo3x9QUVXKSfMUy5/btVDIW/LzR6pX/OHvYccUu
u+yyyy677Hpd9LrgitUKqakwbRrl5sYGBSqaNWW6dUO9erLhYYyMpdQq1KOb47ofvYoK5YQw
JSXy7T+r3hko8/YCT09o1Ur27gjHMWO8hg9z7tNb3qwZvWA+nfmI5mzoThTMmgleXuDqAn36
PBNQQQhgDDyP1q2jIiIohaJyWo/c3OglS9Qc54gxTQgYjXD9OowcCTQNDg6wcGFVmcikFLR2
PdO2LeviQiuVqEEDqmNHqkMHyt1dMWQIe/QopdczcXGO3y9zb9SIdXUFDw/Uvj01bJjz+PE+
A9/WtGnNdOuKzvwGRYUv6I38fHrZIqfWLVU0DY6OULcuvNWf/v57p7t3VQUF9IoV6m7dZa6u
yNmZbdCA7dWb7dZdGRTMKpVUg4aq2XPUcfEKs4XhOFQDV5CHJxMZqWjdStWqlcLXl2ZZ5OUt
nz7d4d49J7OZtdnY+6mqL7/QNG4kUyqRt7esTRv52wPk7dsxvj6UVkt16sBu2EDnFyCeh5wc
+OUXCA4GikL166MbN5DZDFYrnZzi+O1sZVg4UijAx5du314xeLBjmzYqLy/G3UPWs5d21WqX
wkK1JMnSHrLvvifzC6AZhnJzU/r6skFBEB4ODRpA+3b0+A80h48oyiuQKFaODfpBmuPUqSql
ElEUAICvL71sqTYx4QX1SUSRMRhcflzr2PANhVJF6dzkjd5w6NFd2aK5IjBQ4e/PODgiPz9Y
uRKSk8FggAsXYdgwYBhwcYalS6EyHEuSqIwMduJEeWgorVZDq9YwYoT8ww8dunVTN2yo8fVV
y2TU5Mno0SPKZkNPcYVhZI0aaWNjqkPts7NUu3c6h9ZhKhGuVSsYPEg2a5YmKUm9dKmiSWP5
4EHKDz+UTZzIdOuq8vOTubpQo0YyZ36zh9r/vbLjil122WWXXXb9i/S64ArPQ34+rFsn69xZ
GR5O+fnSXp4yb28qwB+Fh0Ob1mjdWp2+NFgU5IQAz1O5uaqfNsvefBPq1YOAAOTjQ3l6sn5+
dEgICg2lFy5gC/JZnkdx9+D7pdCsGbzREI16H2VmPn9pdO4cPWEC3aAB8veHsDDUvbt87145
IXRlfLbJBFFR8MknEBQEERGwejXYbIAx2GxUWho7e7a6ezd5UBDy9ma9vWX+/rLQUPbrr+nE
RMpiAbNFm5DoPvUTtl07CA4GPz/k5UV5etIBAahOHdS9O3Xx9xevrhgN7I3LPlMnOwUHIx9v
1tubadxEvnCxV0yso81GP0x3XLlK2a07RESAry/j6Sn380PBwahFS+bzr5yvXHOqTN1rs0Fl
VXsAcHCgevRUtW0nCwqivb0d/PwU9erT7wx2+PWII8ZqQihCKJNJfvuW85dfqBo0gOBg8PGh
PTxYf38UEkK1b8esXa1MTmT/oCk4fgw6tIfAQKpLFzoqijKbESEUxppzvys+mkQ1bgJBQYyf
v9zbm/X3pyIjqR49lT/+6Poo093GMRzH3H+gmPKJol4DVqOhwsKYBg2oBg0gMhLc3aGy3s7E
j9GDdMpqA0IAY+A4WLGC8vOjZDJE0yiiLnX6JFNa/MJpPUWI8tp1zZffqJs1pwICGB9vuZ8f
07aNathQx6FDZW3aUi1bwk+b4cEDMBrh2nWYNAmCg6BhA7R+HapcOiOEKi1l9uxlR46kgkOQ
jw/r6ysLCWFbtmD69XMYONAtIoKZNYvJypJxHCosgJMnoH17CA6S9eypTUp0FoQqXOFszgnx
vv3flIXWoXx9GS9Punlz1SefOGdmateuVdSrRwcGUj4+rLeXzM8PhQRTXTqzhw/IcrLtsSt/
r+y4Ypdddtlll13/Ir0uuIIx8DwUFani450PHaJXrHCa+Y3vvLmqjRuok8chPg6KChlRkGOM
/vgwVVxMJSWhE8dh82Z20SLN1195rfzB4fBhdOYMnZZG8zzCGIqLISYa7dwBu3dRFy/QBsML
Mi/n51M3b9I7dqANG2DbNvrcWW1WpuJp9ttKjrp0CbZuhd27UVxc1eoKxmC10tmPHa5dU+zc
wc6Z6zlvXsC6dX5nzmgfPmQtFpAkkCTaYmGys9H1G7DvF7RmDT1rluaLL5w3baKPH6PuRDH6
MvTC2BVRRIZyNv4evX8fu2C+9/x5bps2qRIStOXlcoyRzUYXFNDxCejoMVi2wv2Lr0JXrpLv
P0BfuyHLzGKMxqocxDVxJSiI2b3H5cxZ9c6dDnPndlu5MuLXI3RysqNer/oj/ANJEjKZ6PR0
6vIl2L0bFixw/Pwzz7Vr2SO/0lG3ZHm51XmrzWbIfASHD8H2bfSvh2Q5OXRlrRJCqIoK6uFD
OHMWdu12WfNj8OzvPNauU508hWLvMXn5rI1jMEZPnqh+2e/yRiNW5862bqM+dco1OVmdmAgx
sTB1Kmi1QNMwdDicvwQVhqfDgzp4kO7Tm3J0RFoN1bEDk5BQmQzghcOJMhqZjEfM2XNo4wbd
grmhq39wPXta9+CBx51o9tfDsGM7JMSDvgx4HnJy4fx52LwZftlHJSY+xRUQBFRaimLv/T/2
zjMsqqPvw3Panq3swtJ7R4qCWLCjYI8tib0/FjRqolhBBQHFhhWNURN7NGpi7y12xYKF3nvf
hYWtsO28Hw5ZEUv0Mb4an7mv3wev3VPmHNRrbmbmP8jR34nYWKu1a2337rW4ed3o7h3Opcus
X3ahN2+RdVKuVosqFCAvDxw5DHbvRk+exEUihmHhjV6P1dUx7txGfj3AiltrsjhcsHs359kz
hkKBlZSgN29iP+9krYy1XBbhsGkT44/fsUcPGGIR+tfL/HcF6goEAoFAIJCPwueiK3+FoVaz
y8rQlBT2gwTjJ4mM7CxEVPX69egUBTQaUFUFcnKwZ8/IhPv81FRmeTmoqUFVqsYOX0M9qKkG
eXmgIB8RVaGvvU5DA1JTg+Tng6wskJuLikSkSvmiH6zTAZUKVFaC3FxQWAgkEvCifLMe1enI
ujq8sBBLTOQnPhFmZhrX1DAbGpr/1l8mAyUlID0dffiQvHePnZODVlUhCgX6lkrQej2Qy0Bp
Cfb0ieDJE25mJiGVElrtiyur1UhlJUhO4d27b56WhpeWoTI5ptO96Ok21RU3N/TiRXZhEaOw
kJmY6JmaallegarVJEU17/Gr1UAqBUVF4OlT1t27/MwMrKICVSheurJWCxRyUFIMCvLRkmJM
oWictWX4oVRXg8IiTnqG6aPHRhmZDJEY1NcjhiskJfPWxpnb2uJCU7RvP/LRI2OFgq3RoCIR
OyyMwWQCFAWjx4Ibd4C0sWwaSlHsvXs5Ae2ZHA7q4c6ZNUNYWEi+tTwdotEg1TUgO4v7NNE8
PZUjFnF1Oq5MhpWWgrxcIJGAhgag0wGlEpSXg5wcUFyE1NWCZj8RhQKUlWHPnvGTkozz843q
6ph1dURlFZaTi1RW4mo1qdcjWi2Qy0FRIcjLA6WlSH09Sku14V3V1oLCQiI5ifMggZ2TzZDL
UZ0OaLVAJkNyc4hnT40ePxKmpeHlZajy5ff8rwrUFQgEAoFAIB+Fz01XYP6xNNUVV1dw5gwQ
iT59qygKPH3KWxFr7uCAm5uDwEB01y7WnTvE06fY5cvGo0ezMQzwBcicUCQ1A6hUgKKATofJ
ZILYFQIzIRfHsb59BPv32ojF/8bNSb7gQF2BQCAQCATyUYC68sWmvh4kJIAWLRp15eRJUPm6
Zf3//6mo4Jw5a9KpM24iBDwecHREW7RAvLwQd3fMxATlC5CvBjF+O4qpVI1jHTIZevsOd/x4
Fo5jCILOnEHk5TDq6/+loxBfaqCuQCAQCAQC+ShAXflio9GAzExkymSkfz906hTs1k1cLP4s
Sk6pVER+PmfvPqOwcHLsODBwEOjVC/TuDcaMBdO+w5ZEMI7+QWRlv2iqXI4mPORERZN9+iJj
xuCHDzPkMsa/dtLUlxqoKxAIBAKBQD4KUFe+3OhBTTVy4jh66Ffs3BkiO4uU1r1pbfr/f3A9
ZVZSxr1zD/z+B9i9G+zdA27dBumZjIoqtlrzklY1NKAFRexLVxj79iM3bzOKillaLUuv/yzU
C+avQF2BQCAQCATyUYC68iVHqwESCaiuRmprkXoVotV+PiMSCEXhajUmk4OaGiASAbEYyGRA
pULUGpSuzWWIXg8aGtC6OkQsBjIZ0tCAQlf5/AJ1BQKBQCAQyEcB6goMDMyHB+oKBAKBQCCQ
jwLUFRgYmA8P1BUIBAKBQCAfBagrMDAwHx6oKxAIBAKBQD4KUFdgYGA+PFBXIBAIBAKBfBSg
rsDAwHx4oK5AIBAIBAL5KEBdgYGB+fBAXYFAIBAIBPJR+F/VFT0qrUMryhG5DGjUn7ox/2OR
SkFFBZDKgBq++S8nUFcgEAgEAoF8FL4QXdHpgFwBxNWgqgqoVECne/vxCKXDU5LwUyfRpOeg
WvweN9JoGAoFR1yNymRAqwXNdgj5qzFIQwMqkWAyGaHREHo9otGgCgUmlSJ1dYCOVIoqlHiz
rdn1eqBWIwoFfQBoaHjNxbVaIJUCpRLRapHX3v3zT0oKOHUKJD4FVaJ//uJ6PdBqQZ0UVFYC
iQTU13/65/3fCNQVCAQCgUAgH4UvRFfkCvDgMdh/CGzbATIygVz+1uP1iF5DbNqAt22LLlkC
7t17jxuJRI6JT9odOMi5dRuVSFCt9jXHKBR4QT7r9CnBvbuWVVXWGg1RWcl6+pR//Tp25Qq4
cgVcvgxu3OQ8eyaUy/GmyqFWI+VlWOJj9NIlcOMGWljYfFdHnR5IasH16+D5M1RWi39O2z6+
RzZvBv7+4Ic54M/r//zFtVpQI0GuXgVbtoITx0F21qd/3v+NQF2BQCAQCATyUfhCdKW6Bvx2
FA35Dvl2GHL7DiKpbfw8Px/cvY2mpTKrxUST4xG9Dl0WiZqZISEh4Nq197hRaanVuXNeo0az
li9nPUnkKxTYq8fk5LB/OyQcN5a7Y4dxtdhUo8EvXSJ++IE1Zgw6YgQYORIMH46MHk1OmcKN
iMDPnGKVl3LVaoyigFwOHj5A165Bhg8Ho0cjO3ci+QUvjbFI5SDxKZgxE6xfjyQ9R5XK1+uK
Xo+o1Vh+HnH/PpGcglWJPi+riYkBFhZg1Ghw9tw/f3GNBhGLic3xRL9+2Ioo5MH9T/+8/xuB
ugKBQCAQCOSj8IXoiliM7DuAjxmL9+mL3bqF1dY2dtDPnwUL52E/7+QlPWc2OyUqCpiZgWnT
wJ9/vseNKiq4J06YubuT/fry9+6xEIsZFNVcBq5dNZoeYmltTUREEAoFU6dD168HlpaAzQbW
1qBlS8TbG/f0RJ2dESMjbORwo3OnzWolTIpCJRJw6hT4+muAIIBBgG++AcdOgBrJiytXVoET
p4CLKxg6FJw/D2prX99InQ5RKRlnTrOXLGbv2k0kJaOf/AfUNLGxwNYWjB0Dzn0EXdFqEYmE
jItjde7EXLYES7j7eanalxuoKxAIBAKBQD4KX4iuqNVISSkjJYXx7BkhkRAaTWMHfX0ccHdB
vv0GO368eZed1pXp099PV9Rq7rNnFh07Cr29uJMnMQvyWRRFNDvml58Z7dpw3FyJjRswnQ6l
KBAXB6ytgZMTWLoUpKSgScnkw4f4/v3AzQ2xtMAGD2BmZ5pQerZEAk6cAIMHAwYBbG1AmzZg
yhRQUPDiyqIqcPo0cHUFw4eDy5dBXd3rG6nXI+p6YvUqppcXc8FC9M6dT/8DappGXRn7UXRF
p0NUSqy4iJmSxMnOIGqqPy9V+3IDdQUCgUAgEMhH4XPRFZ0OkcuxwkJuRoaxUsHU619Msmpo
wPPzzcvKhAoFm+7906mtZRYUGOXmsqprCK2WqJGw8vKZmZmEUknodAKV0jw3lwidA8xNQZfO
YPNmkJMD0tNBVVXj6bSuzJgBrl8H9fVIVhae9JxMSeYVFdpKpYI3N5WRX8CdPJnTqhWjaxfs
2ROmugFv8hSoUsFasZx0dsLHjEbPnmn81T6tK66uYMsWQFGIXo83NKBZmSA0FLRqCXy8sBvX
jaR1TIOuGBuDoUNBt26gfXtw6hQoL2+8vkgEzpwGrq5gxAhw9errdUWlYlVVCZKeM0Km4kIh
Pm4ccugQyM5GMjNJkehFU/V6VKNlV4kEaenGCQlEYiIrJ4cvlzOavGGkoYEoKjIrLXWurXPV
akmRmJWWJnj8mJGWJiivsFar2RTVfC6cWs2TSCxSU4wePmA8esjIz7etqzNudsxbdKW6mpOR
YfrwIfn4ETst1VhUZaZScV55RqShgSwssHycKLh5h3ieRKal4+npIDkZlJQwVCqOWo1XVOCZ
mYzyUkIua6YraFUVNzlZeP8enpzMLy+3VSgttdqmt0Apil1VJUhKMr5zG3v4gJWVZSyX83U6
8pP/G/m8A3UFAoFAIBDIR+Fz0ZWGBqSkmHH6tOn27fZZWaYKBYv+XKNFysvZhw66nTrlkpZm
rlLRHW6EovBnz/j7D1ge+o2fnMKurydz89jnz5OHDuFVIkKlsisqbLlvH2vIYGBmClq1AtOn
g507wZYtICGh8Y6Nk8FCwNEjyKNH6Pbt5JrV3PVrzQ/s93361EGpIpuV7TKkqgrZ9hPeowfm
5oqdP82uFjGaPAVeXGQy+weOgz346Sck66913obRlc2bX1ynrg5cuYKMGIG4uCDH/yArynGD
rtjZgfh4ZNw4xMkJWbAAvXsXoyiMohCRCJw58ze6IhIJHjywid9MBAUBHg8EBYH588GOnehP
2zmPHjX2uVUqvLKSnZxidvqM3ebNdosXM2NiBDt3Wt25wyksJBQKVKcDFIVIJKzTp13Onevy
6FFQRobRhYuCTZtsYmLY8fE2J056Z2UZS6UvRpa0WkQiYWRkWF6+7LFhveXSJezICPaePb43
b9oXFOCqekKvbzSHV3VFT6H1DXhRMXH5itmWLU4REdxlkcabNtqeOe2clE6c81AAACAASURB
VGReXc2gh8v0ekSrJSsrycePefv3tVgeazM/nLk6jrtpMxkfD+LiwMWLnCqRUKMhHjxAdu1G
Eu5jlRWNN9XrcaWSmZ3NPH3aYt06h8gIxqaNVn8c80144FlSaqrR0GXW0IYGsqjI9Pw5u7i1
dmFhjKhl/O3bbRMSrCqruJ/838jnHagrEAgEAoFAPgqfi64oFCAxEZk9G2/blvvjNte0dDP6
85oaxtVr3G7d2EHB5sui7UvLaDfAKcps0ya+tw8xbCTjxCmithY7ew6dNAnp0QNJTETy861P
nfTu3JklEAAcBywWMDMDjo7A0Rls+ksYYmKAqSkYMggZPBDp2AFxdkZtbVBbW9zJibUo3CY1
w0Wpev0v1BVy7NFD/sSJLGsrRsxSmycPXwzFSOvwa1dMR47gursj1//EpNLGvvJrdUWhQJ4+
JSdPwt3c0PPnWNXVhEFX3N3BtWtg4wakQwDm35q9/Sc+RfEpCnsXXUlPZ/y4jdWmDcrjAQwD
PB6wtATOzkhLX2z7jsb2pKWbbN/h1CPI1M2Na2/PsLNH7ewwRydGy1bk4qWcJ0+5CgVKUaCg
AA0JIcePd/hhTsuhI4zaBTAcHAhXN9TFleHXmjXrB+zanwajQyQS8vgJm8mTzdzdmXa2hLU1
amODOjqy27U3njrNPDPLQq1p7PG/qitaHSs3Xzh7nnnHzgJ7e9LKCrW2xuzsGK6u5Nhx5gcP
OVZXsygK1WrJ2jqnLVvN27UjXFxYfn5E5y6oiwtqZ4fY2QFbWzB3Hp6UQiqV6IYNwM8PLF6M
GMq+qdXC5CTngQPNXV15Li6Mrl0Qf3/C3YPdqQt3y48skZjQaBCKYhcVmf7wg0lAANfFhdGh
I9HKl3BzZwT1In49BCeVvT1QVyAQCAQCgXwUPhddaWjAiouN5841srBkjxtvcf6CgKIIikJS
0/CNmxh2dojQlNV/gElWNpeiCJ0Ol8vNwsN5pqbI5KnolauoRIIcOwYGDQIeHuDOHVBexkt6
brZpE94zGPCNEE9PMGIEiIoC0THgxs3GO65YAfh84OEGegbjk/5DLg7Ho6LImTOZlpZoULBw
23bHqirGa5uq0WBikXHEUoG9Da9/sMnRQ3yKYlEUSlGgtARbuoTfsQOnQwDx/Dmm0bw0GczZ
GcTHv7hOVRW2YwcnKIjRogVx766NSikw6IqnJ3j0CFy5gsz+AXNyZHw33ehpoolCgb+LrlRU
IHfuoOvXI927Ay4XdO0KpkwB0TFgzVpw9y6gKESnQw8d4vbtJ/T1Yw8dyomK4sUsx6KjObNm
CR0cyS5dGbGryNIyRK8HeXlg3DjQvj3Hv41p527k+Il4dDQRu5IxaQqrSze2f1t0zVqsvIJQ
q5HaOpCQgE+YKOjViz1oELZwoVFUFDNyGWP+ArseQZZe3ry49UbPkxr171VdSUphbtgs8GvD
/2qgUeQy7rJlaFQUc948fo8e/I6dhKPHmCYksOrqsLo64vJl84kTjdzd0e+/B+vXgy1bsEXh
/A4dWcbG4Jtvwf4DSFkZ2qAGy5YBc3Mwcya4caPxFg8SOEuXmrq48Hr3JleswLZtQ9avx+bM
YbRuwxg9hvHrQaK6GqmsFJw5YxvQntunD3dpBD9+C7FuPRIdg8bEsm/cev1fBpi/AnUFAoFA
IBDIR+Fz0RWKYlCU7fr1Vo6OPL/WjB07Sb2eRVH4lat4SAjh4IAxSMTTC0t8ItBo2PX1WHa2
YMYMtr09Er8VpGcAuqbWkCHAwwPcuvVi35XVKxE7G2TIEHD8ePM7xsYCHg8IhWDSJMa1axyp
lKQoTkYGv1sg4e7BHT7SJDcXf0NTMYri7txu4udjbG9BrF3J1moEej2m06FpqUT37kxvb9a4
scy8vBe/j1+3DlhbA0dHsGoVEIlAWRlaUIBev44PGcJxdSW7dCYz0twovXkzXSnIR34/inp7
Id27sdevNa4oJ0Ui9G91hY5OByIjgaUlWLQI3G9SzFejQauqWPPmESYmYNRo9Nw5I4oyoyic
okyysh36f8V2ckZ7BIHnSUCtAQUFYNo04O4OzM3BuPHgwkWcolgUxX7wkL94qbGVFT5mLOP2
bZZMhqVnoPFbUHt7MGgQeuwYKZFYUJSRRsMWV/stWepgYYl36YrsP/DizTfRFZSimPt/ZQf2
YDk5M+LW8bV6Uz2FUxSvstJ661bb7oF8Bwd0+3ZGdjZRWoItXUoGBuLBwSAzk34coqraet4C
voMj+GUXyM0DFAX0erBsGbCwALNng1u36I0jkfh44OODBHQgf9lF0iZMUURuLmfESF779qxR
I/HcXCQt1WzjRhc7O3LOHGFpmYNaTVIUUGuwiirjOhn7U/8D+cwDdQUCgUAgEMhH4fPRFYSi
GMeO8QYONLa0ZMbEMDRqpl7P/u030wEDrHv0EDg4kK5uyOmzpEiMV1djhw4a9+/PbtEC3LsH
VKo36sqKGGAuBP36gqNHm98xOhqYCsHQ4eDo74hUimq1CEVhJSXkojBem7astm3xtLQ31cBF
KAq7cI4cP5ptYYaHLWDUVDG1GlSp5N6/Z+rjQwwbip49gzatMrx+PbCyAkIhGDMG7NqNxixn
Tg0hgnsi5uZohwBkWSRSWkpS1Iu1Ky1agLv3QF0dlpJMfPs12sKNEdzDKDPTTCzmnD3797qi
0wGlAiwOB+bm4IcfwK1bL76qFhOHDlj072vk5oaeO8cVV7MpCqfXAlWJ2Dt2Cnv1Znt5gYsX
QXU1KCgAkycDHx8QEACu3wC1dQhFoRSFSmWM6zdYHh54l67Yxk1YRSVx/Dhz4CAmX4AuXMiQ
SDhaLUlRmF6PajTsvXuFXbuaWVriq1Y1tuFlXWFSlOeqVdZOzowffrC8ccNY39gerL6emZsj
nDnDSCgkxo9DL14gcnNZw4dy2rVhjBwOcnMBRQG9HtFoiIgIzNIShIWB+wn0hy/pilYLamvB
kiXAw53cvcstL9fir9rTSFkZa/ly9y6drQPaEelpSEG+5d49LRwdmcOGWl8871NXy6UoVK9H
1BpMq4WTwd4eqCsQCAQCgUA+Cp+PrgCKAomP+dHLrK2tmaGhzPIynlrN3LyJ27YNPzyc3acP
7uiIxcfz0tOZxcXognmcbl2EfXqbZ2Vy6I7+63VlBTA3R/r0AUeONL9X41L76eBak0LG5RXo
2nVkx064tzdISXlbU9NTuPHrzextiXGjje7dNJdJ8bw89u7dxo6O+OzZ7JISAb3zI50NG4CV
FeBwgK8vGDYU/ao/KziI7NWTMXEiJ34z4/79xgYbdMXDA9y+AxQKVCwmD+wz79eX7+RI7tzB
f/bU7NZNcw8P/G90RQtkUhAWBszNwaxZLyZEURQoLSWjIx3btRG2bIk8f07qdC9GkORy9OEj
9oSJDCcncOAAKCwE+flg0iTQujXo3RtkNdkeXq/nJCebtWrFa92aWByOlpRwft5p3LaNSQsP
PD4ep6iX9qK5epUZEsIzM8OWRgC1Guj1L+mKRs2prAyYO9fJzg6L32yUnv5iexydDlWpmFFR
pLk51rsXcuQwVlxMzp/H6dyJGdSDTEoyU2u4ajVeVm4aGsq1tUXj4pjJyQT1iq4olVhKsnHI
VLZQiI8fZx4exouOBnQWLsT79DF3sOf7+GApKUhtLf/uHeuvh/B7BApHjrCMiWEeO0akpTFU
Kpye7Afz5kBdgUAgEAgE8lH4vHSlotzk+DF7Fxdy/AT2/fuC6mpyyRLMxQU5cQKfPx/38GDM
nmV6409+dhbjq36MLh2tZs/yKCo0oSjGm3Rl5SrEyhrp0/eNuvLddy/tu1JRCTZsBp27gr/V
FZnE+OYVu1Y+rB5dTTfGOVZUsP78k/ndTI69Ays21pSibJrux0LrCpsNXF1Br57IkEHkxPHM
ZZGsu3eEItGLKrov6cptIJcDjYYUV7lFLLVysGd8PYRx5De7Rw98PD1Zb9cVrRZIm+jKzZsv
vioqZP4wy8Pby9LPF6SmvnSWWo2UlmFz5qAODmDHdpCdDfLzwX/+A9q2BQMGgOzspgcLU1Od
W7c282vFmh+KFRcZb4m3aell2yOQsX9/88Y8fYquWIHZ2CDhi4FCAXS6l3RFqeSlJAdOneru
5AQO7ANFhU3PRSgKW7MGtbVFAruBAweAWIzu2cPu3Zvl5MT99aBzYqLp48fk7384jRlj6t8G
O33GqLKSSb2iK9I68uoV5xEjzAgCWFsBF2fg7g7c3ICbG3B3B66uwMUF6dsXzcxEKAqvqmRv
22o89BuOmxvu7Ex88w1zSzw7KYlZV4u/uh8oTJNAXYFAIBAIBPJR+Lx0Ralk3r1n1KIFKziY
sWUrmfDAbOZMnqcnIzHRdN8BkwGDeP178n/da56aatm6NaN3L87O7SaiKgZFIW/WFWBpA/r2
BUffNLry8q725RVg7UbQscvf64pWy8hI5Q3pJ2jhwu3bm5WVxd/6I9enJa9de5eff7b4a3VE
48H02hUHB7B0KcjMBDnZaH4+WlqKyWS4YUdL6nW6otdjGg3/6BHLwQOtHOwZixfZXb7g6+72
d7qiA1JZo6788P1LulJczJo3z8fHx9rHp/kD1tdjubnGM2eynZ3B4d9ASclbdMUkNdXJ19e0
rT8zIhwvLRH+tNXR18vZz4/cvr15YxIT2THRAmtrbMkSoFI11xWV0igttee0EE9nJ/DbQVBS
1PRcjKJ4q1axra3x3n2Qw0dATQ36+zH2wEEkSaJOTqSnJ+7pibi4kF274fMXoDk5uFqDUa/q
ipT887rLqFFmFhZg/nywZw84fRocP96YEyfAiZOMa3+ypVKcolCNBq2qxJ4/5xw+bDxsGK9l
S9KzBTZpIvPCBWazUSOYlwN1BQKBQCAQyEfh89IVrRZLzyAGDyE6dyFGjmJtijcfPoLXPgBP
S+feum00fwHP14cZE2Fx/aqjhzs5caLg0UMbuZygqDeuXVm1Gljbgl69kN9+a34vg65cu/bi
w/IKsGYD2rEz8re6QlFoaQkjKsyofWumjw/jxg2HsDBTB0fWnFCHm7dMmh382spgr+ZVXaFX
hCcnCePW2tjaEoMHClZE29hYE++oK2ZmYPr0l32snFi1yjwggNeiBXbnLlehfFGsWSolrl83
HzWK5+ICjh0HFRWNk8H82yB9+mJZWaihs67VsJ4+Efj4sHsEkj9uZlZVcvbtFnQNMHFxZqxb
T+r07KZTpy5f5k/6j5WpKSMiAqG3N2mqK2o1WVHuEhpqZmuDrYnlJz1lGU7U6TCVihcZybaw
wEeORM+cJYpLWAvDjL4ayOrTlzF/Pm/+fOasWdjSxbydO5m3biEyWWPzmumKSoWnp5tOm861
tUXWrWM8eIBXVYGKClBeDioqQEUFqKzE/trapfEK9fVESQn71Cn23LlE1y5ISx9i00ZOvcpI
r2u+LSbMX4G6AoFAIBAI5KPweekKRYHSMiQqGgsMJF1cOd8MFfTuy/v6W2ZODpqXx961S+Do
iI0aZvLjBgc3F3ZEhIVc7kxvN/7GymBrgbUt0qkzum8fotcjWi2i0zV+9WJ05SVdQdauxzp2
Rt9BV0CtBD17jPXNIMLOnhm/xX3kSAsXF/zYcfPyCl6zI1+778qreZ2uAIoCMin39i3zDgHs
Nv5kryCGEQ8ZMQJcufK2pfYyORoejgqF6NhxyIUL9JJ0oNOBmhrk6FF84EDM0YnYt88iP99I
p0P1ekytRgsL8A0bTIODuX5+yMVLL5bat/JFO3QmrlwlqqtxnQ7V6ZDKCuTUCeDqAr79mnH+
NLtWgp49hY4eitlY44vCjCoqzNRqhl6PajSITAZ27uB36Wzt7Mxevx7X6xHq5aX2ej1oaECi
o1FrK3L0cKuTxwT1Klynw/R6VKnA0lJZ06eRVlbYokX4/fuszCx+r14mPYK54UtYz56ZJyfz
7t0jCvMsRZV8aR2i1b5eV7RapE6KL12KOzrhi5dw79xh1tejOh3Q64FOBzQaoFCgUimm1SL1
9ahUiiuVqEaD0OUHrl9HZ8wAZmZIWBhPJjXTad9ULA4G6goEAoFAIJCPwmenKzU12NGjRoMH
s5hM1NQM69vfctNmt4pKZn29+YMHrp6epIsj3r0Lu6WPWXy8QKcj6d+Iv0lX1q5DLKxRB0ds
0yZMq8VqanB6A0TqL12Z/qqurMM7dnonXVGrkbJSPHQOyuGgAQFMJyfC05N4/NhGrRY0OzIu
DlhZAUfHv9eV48dfoys6LVlYKIiIsO3USWDEQzAMDB8OLl9+o67o9Wh9AzMikisQcAJ7YAcP
oRoNJhYjMjnQaPDqarP5C7gCY+ybb3hHj3LlMrZWIygvY506hQQE4L6++OTJWFYWotGAggIQ
EgLc3RETIdq7D/PAryyFnKVSkH8cxYYMBgIB+H4mWpCLN9QjmWnMbZuNHB2wnj25O3eYlpdz
1A2s6mry1i1k0iTM2Zk5d67xrVuNtYBjY4GNzYt9V/R6dPt2RqtWLFtrctF8Xk6miULGUzcw
c3PxuXMxX1/Uyws9dw4Ti5l5eUZjxpp4tGC7e6CzZxORkVhkBLYqlvfLDu61y6S0DqP/MrxS
yBjRaskft7F9/bht2rBWrGBlZzOVSlSjASoVUi0GiYnMa9eMpFIsJ4f75zWz5CSWSERQFEpR
yLVrYFoIMDMDkZF8ndaK0hNv+fH9bwfqCgQCgUAgkI/CZ6crSiWaksKcNo3AMIBhYOgwwbkL
1rW1BEVxMzLMA7sxLcxQZ0fs26H8EydfTByqqUF//4McOJDw8EBu3kQN84KOnUAHf01YWeO9
e2ORkfiSxfjVqyhFITodHhmJmZqikyZhly+/WJBQXg5Wr0U7dHyXyWBAr0caGoi4tVxbayMz
M8zenjFwIC87W0BRzGZHrlkDzMyAnR3YuPFtF5RIwLFjyKBBiIcHeusWYtAVikJlMuadOyYT
JrAJHCAIGDECvXoVk9a9fimFXo9odcSu3ZxOXXjuHtiQr9GoKCwqGrlxA1AUpqe4R38XDB7C
b+XHHDyYDA9jRUYIQkNZI0eiPt7MCeOZx48zJBKEokBBAZg6FbTyBbZ2iK8fMXwEMzycvWQx
OWgg3sIDDQ5Gdu9GFHJEpwN1EvL+Xf7Y0fwunXnBQZzQUM7SpawFC8gxY7CgYMZXA7jnzvHL
y5kUhej0aHQ0am6OjRjBOHOGnluFPE40illu0cKT6NKZMeM77uIw3tKlzO+/x9u2JYOCWGFh
rJwcTK3Gy8pZsSuNOnZimpmhAwYSY8Zgo0aiA/qzB/RnjRnFWL2K8eABqdeTWi0WEYGYmyOz
ZmE3bjSOk9xPECyJsPDxIQMD8RkzicVLkIgIsGQJWLQQRCw13rHdtqqKfPyIu2mjcM5s5oIF
+PLlaHQ0MmE86B6I9+8nOHTQmKJ4FAUng70pUFcgEAgEAoF8FD47XdHpgEIBNm4EXl7AzQ0s
CsOTUxhKJUJRoKgQ/X4ms2MHIqADsm4949nzF8WaJLXY6dP8SZPZPXthCQ8IuaKxW5mRie/8
hezWjXBxwZydMR8f7KefUL0e1WiZGzeSbdrgoXMZN2686INWVYGfdoBvvkX69EGalu59QxCK
Iv/43WTIIEsfb6J3H/byWOOystf0aH/aDlr7g04dwa5db7tgXR24dAkNCcGCg7GHD1CF4sVX
ej2i0WDbtqF+vsDdHYSG4g8SSLn8LSu/kfsPmJFRvIAAzNkZcXNDO3VC9+xpPD43z+jAQcvg
noSHB+riwnBy4ri4MPx8sZHD+b8d4tVKSHpiFb12pUNH0K49+PobpFs3wsWF6exMuLniXbrg
mzejSUmGBuA11ezDh8wnjOO5u6EuLqSzM+niQnh44F9/y90cb1JZyaYoXK9HtFpi40aidWvG
d99xr1xpXDmj0ZpkZdtPnspo3x64uaFOTkxnZ4aHB96+PS8yUvD4MU+hwHQ6pKwc3/Ija8jX
zFa+jAkTODNnMqZOQQf0Z7dpTTo6ok6O5Pp1/Pp6k4YGcsMGtF17NCKCuH+/8cehUAoSn9qM
HEW0bg3c3YGTE3B0BM7OwNMTjBhu9tM2l6oqduJj1qpYbseOmLs76u6OurgAd3cksBtz6xbb
1BTjT/5P4/MO1BUIBAKBQCAfhc9OV/R6oNEgmZnIhQvIuXMgKQmRShGtFlD0wEsy89Il4vRp
kJ2DSGUvOusNDVh+geD2Hc6ly5hYTGi1jZ1UlQovr2DeT2CcOIHt34+cOYNkZwNaV1LTyLPn
8PsJjKaCUV8PsrKRa38i5y8gTfd5fHOQinL84QPi1Cnk2jU8PYOhUr1GITKzwLlz4OJFkJPz
tqup1aCiHL19Czt9ChOLUJ222ZtBysrAwwfg/Hnw7BkurSMNqzVeG5mczC/gXPsTPXoUHDyI
XLmCFhQYlpJjIhHx7Dl69Sryx+/IoYPoyePozRt4Zgavupqp1SJ6PaCoxspg7duDfv3AjRvo
vXvo8WPo0SPIuXPYgwSirAyjNZJ+DxoNWlONpyTjly+jx46hhw8jf/yB3riBp6ayKiu5Gg1O
UYhej2i0jORU4vQZxr37vNJS8q9Hw1X1jIIC9NEjcOE8+PVX9LffkHPnsMeP+UVFHNpVFEr0
wQO8a1eibz/u6jUmT5/yCgsZBQVodhbn2hXmyuWooyMaGmpaVORYX89Kz0DPX8CePGVUVTX+
cHU6TK4gsrOR+/fB+fPg11/Bnj3g4EFw5SqanMKuquJrNLhCgRYXobduIidPgIMHwa+/ggsX
sOfPGBUVLKUSTgN7e6CufDbo9Xq1Wq3Vaj91QyDvgV6v1+l0Op1Or9d/6rZAIBDI58ZnpysU
BfR6oFCA6mogFgO5HNCroikK6HSIUomLxWhFRWNJXMMpOh2qUDCrqxkiMapWY/SSbooCFIXq
dLhCgVVUIoWFoKoKKJWAngwmk2FVIrSmBmsqGPTYjkgMKiuBWvNOrdVogFwOKitBdTWiVKJN
W2WIXAGqREAsBk0HTF774OoGpFqMlJWh6gaE0jc/QKcD9fWguhrIZahe9zc7gegpTKMhJLVI
WRkoKgLVNYiq/uV7qZHaWlBeBoqLQWUFkElRrZbRdL4TrSvt2oGBA0F2NiKXIRXloKwUiMWI
UoHpdK+5e309IpEgFeWgtBSUlwOZDFWr8SZlnRGdDpNKscpKrEZCqlTNV67Xq0BNNSgqAiUl
QCxG6+uZOl2jJ9TVIdf+RN3d0T59OPv2C8ViFkXRi1XIlOfcdat5tjbY7NnGxSV2DQ2kXI6I
xEhdHdbQ8NL2jjodUCpBdTUoKgL5+aCoCNTWIg0NL1qo1QJpHaisAEVFoKgIVFcjajWm16Ow
hPHfBerKh6HVauvr6+vr6zUazYdcRyKRZGdnP3nyJDMzUywWf+DVPh/0f/HxTv/wA/47dDqd
SqUqLi5+/vz58+fPS0pKGhoaoLRAIBBIEz5HXYH5TJKfDyZMAP7+oF8/8A5T4z5u6uqQ69dR
Pz8sKIi9eo3Rw4d4VhaSlYVkZ2FHf+N/N8Xcx4u5fLlRTY1QC+t3fYJAXfkwampqcnNzc3Jy
qqurP+Q6x48fHzZsmL+//+jRo/fs2SMWi/+pFn44Tbvg79sd12g09fX1Wq32v+jH6/V6jUb9
9tP1er1Go1Gr1W8a39Dr9Q0NDRqN5h8Xifr6+qysrKioqJYtW7Zs2TI2NraoqKihoeGfvQsE
AoH8m4G6AvPG5OaBUaNAC0/QvQfIyPzEjdFoiLQ0zsiRRi1asJyc8KBgon9/tF8/9Kt+HH8/
jo8Xd/FC8zu3jLRavMnYGsz/W6CuvCcqlSotLe3EiRMbNmyIiYlZsGDBzJkzZ8yYsWDBghUr
VmzYsOHChQvFxcXv22398ccfXV1dSZJs27ZtTExMWVnZR2r/u1NbW3v+/PktW7YsW7YsOjo6
Ojo6Kipq2bJlsbGxmzdv/u233548eSKVSt80e622tvbMmTMbN26MiIhYuXLlnTt33uvucrni
4cOnu3btXbp0aWRk5NmzZ2tqapreq7a29tmzZ/T1o6Ojt23blpiY2Owi+fn5Z8+eXbVqVXR0
9M6dO0tLS//BYSulUpmcnBwSEoKiKIqis2bNysvLq6+v/6euD4FAIP9+oK7AvDEVFWDjJjBr
Fli8BJSUfOLG6PVYTQ158hRrRSxj+nRs+nTsP/9Bxo9DZkxjzA81W7vK4e5tk6oK8mM3A+YN
gbryPshkstTU1C1btgwePNjS0pIgCPAXCIKQJGlpaTl27NgjR45kZ2fLZDLDiQ0NDYWFhenp
6Wlpafn5+bW1tc2uvG7dOjMzMxzHW7VqFRYWVlJS8v/7ZK8hPz8/JCTE1dUVAED3yBEEAQCw
2Wx7e/ugoKCYmJg7d+40swgDBQUFU6ZMcXZ2xjBMIBCsWbPmve4uElXv2nW4V6+v6NcbEhKS
mpqqUqkMB+Tk5Pz8888ODg4AACaT6eHh8dNPPzW7yMWLF8eNGycUCnk8XmBg4JMnT/7B0Q9a
V6ZOnUq3cNasWfn5+VBXIBAIpAlQV2DeGIUSPHsOrl8Ht28DmezTt4eiAEUhIhGelERcu4Yc
OwYOHwZXLoKcdOsGuY9ex/r4d4d5U6CuvA83b96cO3euj4+PQCAgCILuvjc1FoIghEKhv7//
kiVL7t27ZzixsLDwu+++69y5c7t27caPH3/27NlmV96wYQPtP76+vuHh4Z+DrmRlZfXr18/E
xAS8DIqiDAaDx+NZW1v36tXr+vXrEonk1dNzc3NHjRpla2uLYRiPx1u1atV73b2uTn7pcsLw
4ePpmw4bNuzChQt1dXWGAxITE6OioqytrekmMZnMFStWNLvIzp07W7ZsyWKx7O3tx40bl5OT
8w9OCVMqlSkpKVBXIBAI5M1AXYF5Y3Q6oFACqRTIZOC1JQQ+STQaRKlEpFIgkYDqalBXB+pV
hF7Hoij0Y98a5s2BuvJu6PV6rVa7fft2uvtLkqSDg8OECRMWLVoUO9CPWwAAIABJREFUFRUV
FRU1e/bswYMHCwQCevyhdevWW7ZsMYw8ZGZm9uzZk8/nc7ncbt26/frrr82uv2HDBisrK1pX
Fi9e/DnoiqHNBEFYWloOGjSIftIJEya0a9eOw+EAAKysrCIjIx89evTq6bm5uSNGjLCxscEw
zMjIaPXq1e919/p6dW5u+cyZobQMdO3adfPmzZWVlYYDzpw5M3z4cGNjY4NHzZ49u6SkRK1W
G45Zs2aNQCDAMMzb23vu3LnFxcX/9dt4FagrEAgE8ndAXYGBgfnwQF15N+rr63Nzc2fOnEn3
TR0dHceOHfvgwQOpVEofUFJScuzYsc6dO/P5fPqY//znP4mJiTKZTCwWX7lyJSAggMPhcDic
du3abdy4MS8vLz8/v6amRqfTUU10pXXr1kuWLMnNzS0vL8/MzMzIyMjOzi4uLlYoFK/OudLp
dEqlsri4OCcnJyMjIz09PTs7u6ioqK6urmmvXavV1tbWlpSU5ObmVlRU1NXVSaXSnJyctLQ0
etLaa2dzZWVl9e7dWyAQsFisVq1a/fzzz/TnDx8+XLp0qY2NDYqiXC63a9euv/7666ujFvTo
Cq0rfD7/fXVFr6fUamrZshgcxxEEcXd3nzFjRmFhoeEAw8iJQVdGjRr1559/0j8RumzXkiVL
6K+6desWHx9P245Go6mpqSkqKsrMzExLS8vIyMjKysrOzq6qqmpW2ksul5eXl+fk5JSXl8vl
cqlUWlxcnJaWlpmZKRKJZDJZSkpKSEhIM13RarVKpbK0tDQ3N5d+4QqF4r2eHQKBQL4UoK7A
wMB8eKCuvBuFhYUzZ8708PCg+6ZTpkx5/vx5XV2doaOvVqtLSkoOHTr01VeNyy26dOmybt26
3Nzcffv29e7d29bWlsVi4ThuamraqVOnsWPHTpw48ffff1epVDqdzqArHTp0iIqKunHjRlxc
XHBwcNeuXQcMGDBv3rzHjx83nQpFo1AoUlJSFi5cOGTIkO7du3fs2PGrr74KDQ29fPly08X6
tbW1586dW7Ro0fDhw+Pi4i5duvTnn38OHTq0bdu2AwcOvHPnzqtraagmusJkMr28vHbs2EF/
LpfL796927ZtW5Ik6XUpq1aterV41wfqCkVRej0VF7fO1NQUx3EzM7NBgwZlZ2f/9ZV+/fr1
FhYWTZcPBQYGbt26lXYSlUqVnp4+bdq0V5e+1NTUHD58ePbs2T179mzfvn3Xrl379u07cODA
bdu2NauR8PDhw9WrVw8dOnT16tUJCQnXr19fuHChv79/cHDwzp07KyoqUlJSpk+f3kxXpFLp
s2fPIiIiRo0aNWLEiPXr179aAwACgUD+N4C6AgMD8+GBuvJuZGRkdO3alcPhMBgMGxubuLg4
WjOaHtPQ0FBQUBAaGspkMlEUdXJymjBhQlJS0vLly83MzDgcDj1QwGAwTExM7O3tHR0d16xZ
I5PJmuqKk5NT3759x48f37FjRz6fz+FwTE1Nvb29J0+efP78eUO53oaGhqKioiNHjkybNq1V
q1ZWVlZCoVAgEFhYWHh5eQ0fPvznn3/Oycmh5yaJxeI9e/YMGjTI3t5+8ODBU6ZMGTt2LH07
Dw+Pc+fOvbZuclNd8fT03L59u+Gr9PT0Tp060fZlbGy8Zs2aZq+C+id0haKovXv30qNSTCaz
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
3V9bhbkZOp2uoKAgLCysZ8+eAQEBISEhFy9efO1hcrn8wIEDAwcO9Pf3Hzly5M6dO+nG04UH
xowZ07Zt21GjRp08eZI+5fnz5xs3bgwMDOzYseOUKVOysrL+dgcY+kn379/fs2dPb29vX1/f
oKCgX375xTByQnP16tXvv/++Q4cO3t7eHTp0mDlz5qu7ecpksqSkpOjo6AEDBnj/hZ+fX69e
vbZu3VpcXNx0IY2hqZ07d/7uu+9yc3Ob3o4eXVm2bFmbNm1atmwZGxtbUlJCF0wrLS2Niorq
16+fn59fnz59Dh069LcPCIFAIBAIBAL5t/NZ6Ao9K6y8vDwnJyctLe3p06ePHj1KSkpKS0vL
zs4uKSkx/G7+VWpra/Py8tLS0pKTk1NSUrKzs2tqagxf5efnp6Wl5eXl0eu8DWdVV1dnZWWl
pqYWFBRIJJKmnfv6+vqampqCgoKMjIzk5OTExMRnz56lpqZmZWWVlJQYDtZqtRKJpKCggF7f
IhaL3+VJGxoaSkpKMjMz09PTCwoK6urq3vRCxGJxdnZ2Wlpabm6uofEajUYkEtHPm5uba7As
pVJZUVGRkZFBX/ZdioPRTyoWizMzM1NSUlJTUzMzM0UiUbMxIqlUWlhYmJ6enpKSkp6eXlhY
+GqbdTqdUqksKyv7P/beMyCqLFv/vnfu7TDadvcfJeccJUoGSYpIMgMCKgaQKJIREAvJOScT
GVSiJAmCZMk55xyLWKQCCt4P+/Z5awBpuqd7tGf272Oxa+9z9imqznPWWs/q6elp/QUw4dTU
1C7fYeRQOzs7h4aG8CM5yFRjY2Pt7e1tbW3A3Bm8fWNjY2xsDFy17u7uw4SPIBAIBAKBQCB/
db4KubKLra2tXa6+h2F7e/sPb8exvb29ubl5mEgFBAKBQCAQCAQC+cP5GuUKBAKBQCAQCAQC
gexAuQKBQCAQCAQCgUC+WqBcgUAgEAgEAoFAIF8pUK5AIBAIBAKBQCCQrxQoVyAQCAQCgUAg
EMhXCpQrEAgEAoFAIBAI5CsFyhUIBAKBQCAQCATylQLlCgQCgUAgEAgEAvlKgXIFAoFAIBAI
BAKBfKVAuQKBQCAQCAQCgUC+UqBcgUAgEAgEAoFAIF8pUK5AIBAIBAKBQCCQrxQoVyD//qyv
ry8sLMzPz6+srGxtbW1vb3/pI/rN4HC41dXVxYXF9bX1ra2tP2mV7e3tzc3NhYWF6enpqamp
xcVFLBb7J60FgUAgEAgEchigXIH8+9PT05OdnZ2SklJfX7+0tPTn3e7/SeBwuLW1tebm5vfv
c3o6ehfnl/68hdBodEZGRkhISEBAQH5+/vDw8J+0FgQCgUAgEMhh+I+TKzgcbmVlpaenp7S0
tPxASktLKysrx8fHV1dXsVjs4OBgQ0MDeB2fkpKSoqKi9vb2+fn5fe+DJycna2pqsrOzKysr
x8bGNjY2Dji82dnZtra2wsLCxMTEyMjIlJSUioqKoaGhzz3kXl1dbWtrq6ysLCsrO+BcysrK
qqurOzs719bW1tbWJicnGxsbKyoq9p5LWVlZbW3txMTEH7PdXwcZGRl37ty5fPlydHT02toa
Dof70kf029jc3Jyenn727NnNmzefhz9vbWn7w5cAcZUPHz5YWFhcvnxZUlJSQkLi+vXrKSkp
OBzurxiPgkAgEAgE8u/Bf5xc2djYmJycfPv2rYmJiZmZmfnnefjw4ePHj4uLi6empubn51NT
U93d3c3MzExNTU3wMDY2NjAwiIiI6OnpWV9fx19re3t7a2uruLjY3t5eQ0PD3t4+JydncXFx
3wMDt6QfP3708fHR1dWVl5cXERFRUlKysLBISEgYGhpaW1vb+67p6enw8HBbW1tTU9MDzsXU
1NTOzu7FixczMzNoNLqqqsrT09PKymrvuZiZmbm7u3/69OmAPcThcMvLy7OzszMzMxsbG1//
vWxgYCANDc13332HQqG+9LH8HtbX1/v7+w0NDU+cOHHv3t38/Pw/fImtra25uTlLS8tvv/2W
hISEgYGBg4ODi4srODgYi8Wurq7Oz8+j0ej19fW/nNiDQCAQCATyl+Y/Tq5gsdiBgQFra2vi
XyD5DMTExJycnH5+fq2trUNDQ3p6ejw8PCQkJOTk5KSkpMjbiYiIiIiI9PX1q6url5eX8dfa
2tpaXFx0dnYmJSUlICDg4uIyMDAYGhra98CA8Lh8+TIlJSUhISEpKSkFBcXx48dJSEgEBQXD
w8M7Ozv3vquvr+/atWuMjIwHnAv4EyUlpZycXHd399DQUEJCAj8/PwUFBRUVFTIAQENDIycn
9+bNmwP2cHl5ubKyMjY29uXLl2NjY5ubm//MFfkXEBoaysLCcuzYsadPn37pY/k9YLHYoaGh
Bw8eEBIS6unpffz48Q9fYmVlpaamRktLi4SExNraOj09vbW1ta2tbXp6GkTw0tLSoqKiuru7
d33IIRAIBAKBQP5U/uPkCniKnJWVhfoFOzs7Y2NjAQGBY8eOSUhIaGtrI3/y9vYuLi6emJjo
6+tTVVWloKAgISExMjJycHBA/SMpKSnDw8O7UrZWV1dbWlq0tbW/+eYbEhISCgoKSUnJxsbG
vflgq6urDQ0N165d4+fnl5KSMjMzc3Fx8fDwePr0qY6Ozs2bN2NjY7u7u/eeDhqNjoqKcnV1
RY7E0NCQmpr6hx9+oKWlNTQ0RF5/+vRpeHj49PR0f3//y5cvaWhouLi47t69a2Njg38izs7O
z58/b2xsPGAPZ2dnExIS7t+/r6am1tjYuLq6+s9flz+VsLAwNja2H3/80dHR8Usfy+8Bi8UO
Dw8DuaKvr/9nyJW5ubk3b94oKioyMDCkp6dPT08jf8JgMOXl5XZ2dioqKllZWePj43/46hAI
BAKBQCCf48vLFZAxtba2hsViv4hr0/r6ek9Pj76+Pikpqa2tbXV19d4xQK5QUlJycXG1trYe
8iBnZ2fj4uIUFRUJCAjOnDnDysrKyMiYnZ09Ozu7a+TExERycjI9Pb24uLifn9/U1BTyp7a2
tnfv3tXW1uK/eACdnZ1iYmIkJCRSUlJdXV37nsuLFy+oqalVVVXz8/M/l5x2AFNTU4GBgadP
n2ZiYvr48ePS0hKofNibJoTD4TY3N7FYLBaL3dzc/Ny+gbfhMrPJAAAgAElEQVQjlT/gI7G+
vn6Yj8TW1hYWi11bWzsgyPOrcmV7e3tjYwP5EB508v+46MbGBijtACAHf3C9x9bW1q8m0eFw
OHBIYANHRkaMjY13yRUwBtklMH51dXXXhdje3sZisevr6+vr6+CA9y43OTnp7e0tKirKzs7e
0tKyjcfi4mJeXp6Kigo1NfWzZ896e3vBWn85xwIIBAKBQCB/Rb68XMFisXNzc11dXUNDQwsL
C//6e6CVlZWGhoa7d+8SExObmZmVlZXtHdPX16empkZJSXny5MmGhoZDHmR/f7+GhgYrKysv
L29oaKiamhoZGRkKhaqrq9s1sra2FoVCkZGR3bp1q6qqCj/fBpQNrKysHDLnqqOjQ0RE5MSJ
E6dPn/5c/hiQK5cvX87IyFhYWDjMtPiAvDVpaWlGRsbc3Ny5ubnNzc3Z2dm9aUKrq6vT09OD
g4MjIyNoNPpzp7C5uTk1NbW09H+GVxsbG4uLi/39/cPDw3Nzcwfv9tLS0vDwcEdHB35AYBcH
yxUgliYnJzs7O4eGhg6j38CiXV1dExMTQOQAtre319fXFxcXMRjMARbACwsLExMTB5suLC8v
j42NdXV1zczMgP0xNTXdJVeWl5cnJyeHhobm5+c3NjYmJiY6OjpaWlowGAy+JgG5ZN3d3b29
vRMTEysrK3uXGx8fd3BwOHXqFBsbW1NT08bGBiKE5ufnU1JSLly4QEND8+rVq4GBAbDW7xC6
EAgEAoFAIL+VLylXQHF5amqqhYWFnp6ekZGRs7NzaWnpIcMIfxQrKyu1tbW3b98mJiZ++PBh
aWnp3jFArlBQUHBwcDQ1NR1GrmxsbDQ0NAgJCQkJCVlYWNTX11taWhISEsrJyb19+3bX4Nra
2idPnpCRkSkqKr5582Zubu53n05HR4ewsPDx48fFxcUPliuXLl1KT0+fn58/5MzgmTowj1JS
UqKlpSUgINDU1LS0tHRwcHB1dcVXegsLC9nZ2T4+PmZmZkZGRg8ePDA3N3/8+HFcXFxLSwt+
/tjm5ubQ0JCLi0tcXFxzc3N6enpAQICVlZWBgcGDBw/s7e1fv369N0w0MTFRUlLi7e1tZWX1
4MEDXV1dMzMzkMlWXV29K8JwgFzp6OhISEhwdnY2NTXV1dU1MjKysrLy8PDIyMjo7+/fNXh8
fLyoqMjLywssqqenZ2JiYmtra2dnZ2dn5+7uXlRUlJqa6uXlZWdnl5mZicFg8D8qKysrXV1d
AQEBvr6+aWlp++48qKoPDAx89OjRw4cP9fT0LCwsvL29s7Kybt26tUuulJWVubu7u7u7Z2Rk
VFdXOzg43L9//8GDB3FxcV1dXSCJ68WLF3Z2dkZGRnp6egYGBiYmJq6uromJiVNTU1tbW1tb
WxgMJicnx9TUVEJCgpSUlJCQUFdX9/Hjx15eXpWVlUlJSdbW1ioqKkxMTD///PPFixcfPnxo
b29va2v74cOHQ35yIBAIBAKBQH43X1KuLC0tFRQUqKmp/dcvkJCQWFpalpeX/ytTwg4vV0B0
pa6ubn19fXNzc+MX9s38mZ2dzc7OZmRkVFNTKygoWFpa8vHxoaCgoKCgcHd332Wn29XVFRIS
QktLy8bGpqenV1lZOTs7e0D21AH8JrmSlpYGgh7gRDY3N0FO177rgk6FXl5etLS0RERER44c
+eabb8jIyMBhS0lJxcTEIOdeUlKiqanJxcVFRUXFwMBAT09PRUVFQEBw9uxZX1/f7u5uRLGs
r69XVVWxsrIqKSl5eXmpq6sLCAjQ0NDQ09OTkpKSkZHJy8tHR0cvLi6CW/+tra2lpaW8vLyH
Dx/S0dGRkJDQ0dExMjLS0NDQ0NDw8fE9efJkV0XNvnIFxByCg4NlZWVpaWmpqamZmJgYGBhA
lZGamtrr16+RiBA497y8PCMjI2pqanJycjY2NhYWFnJy8qNHj/7tb3/7+eefBQUFg4ODHz16
JCws/MMPPxgaGg4MDOCbxY2PjycmJtLT04uJifn6+k5OTu7d5IGBgYiICFpa2p9//pmGhoaR
kZGampqVldXIyEhCQoKIiMjAwKCoqAgMDg0N5eLi4uXlvX//vrOz88mTJ8nJyTk5OfX19T98
+DA2NmZnZycuLk5OTs7ExMTKysrExERGRkZHR6egoFBQUADObnp62tnZGYjP77777ttvv6Wk
pAR5iXFxcebm5kxMTKSkpEePHv3mm2+AGQMzMzMXF1dYWNhv/GxCIBAIBAKB/Ga+pFwZGBjQ
0tKioaFB5Mp3331HS0vr5+cH8mr+NYdxeLlCQ0Nz8uTJrKysoaGh6enpiYmJ8fHxqakpDAaz
N7Gnrq4O5HdZWFgA7REfHy8lJUVAQGBoaNjd3Y1vTLyyslJRUSEoKEhAQEBFRaWiopKQkADe
9VtP5/ByRUFBITY2tq+vb2pqanx8fGJiYmpqam5u7oDOJDgcrrOzMy4u7sGDB9zc3CC3LS4u
7t27d+np6chyCQkJZ86cISEhUVJSCg4OzsjISE1NDQ4Ovn79Oi8vLw8Pj4+PT3NzMxiMxWKr
q6tZWVmJiIjY2dnZ2Nhu37794sWLtLQ0Ozs7ERERkCOXl5cHso+WlpY+fvyoo6NDR0cnISFh
ZWX15s2brKysV69emZiYgFv8W7duDQwMIIe9r1wZGhoyNDTk4uKipaXV0dF59uxZfn7+u3fv
LC0tBQUFKSgoLl26FBUVhUajd3Z2VldXW1tbzczMqKmp+fn53dzcmpubP3365OTkJCwsfPTo
UWVl5Tdv3gwODhYWFlpaWpKQkKirqxcXF2MwGGTFlpYWDw8PCgoKHR2d1tbWfS0KQkNDmZmZ
v//+eyUlpYiIiOzsbA8PDyUlJQYGhmPHjhERERkaGiJy5fnz57y8vFRUVBQUFCdPnrx9+7aj
o+OLFy/evn3b3t7e1dUlIyMjLy/v7OxcWFhYV1dXWFj45MkTMTExCgqK+/fvFxQUgES49vb2
qKgoDQ0NRkZGSkpKf3//5OTkrKys7u7ulpaWzMxMa2vrU6dOERMTm5iYvHr1Ki0tLSYmpqGh
4Td8LiEQCAQCgUB+F19SroCi8CNHjiBy5b//+7+//fbbx48fr6ys/MvaOxxSrly/fp2ampqI
iEhNTc3IyMjMzAz0KrGxsYmKimpr2925LzY2VkZGhpmZ2dvbG1RC19TU2Nvbk5KSKikpJSUl
4Wd84XC40dFRd3d3OTk5GhoaOjo6eXl5W1vbV69eNTQ0rK+vH168HV6uMDIyXrp0ycjICOm+
YmZm5uHhMTg4eEBZxcrKSmdnp4+Pz+nTp+np6VNTU/v7+6empiYmJpaWlkBVg52dHQUFBR8f
n6urK6i+mJqa6urqysrK0tDQICEhkZeXT0xMBBNisdiamhpWVtZjx45xcnLa2dllZWUBEVVd
XQ2COXx8fLa2tqOjozs7O6Ojo48ePRIQEGBhYfHz8/v06dPY2BgajR4YGHj//r2KigojIyM3
N3dOTg5QGjv7yZW1tbWamhoRERFmZuZLly6lpqb29vYuLCxMT09XVFR4e3ufPHmSlZX15s2b
vb29OBwO5LZduXKFnJzczc2tqakJdJoHllmkpKTXr18HrgNjY2Nv3ryho6MTEhJyc3PDb7gJ
KkCIiIhsbW2XlpZ2pRQCv2BdXd2ff/5ZVFTUz89vYGBgdna2ubk5IiJCSUmJgoJil1x5+fIl
Hx8fAQEBCwuLpqZmcnJyfX19T09PX1/f3NzczMzMs2fP4uPjGxsbFxcXNzc3l5aWamtrtbW1
CQgIREVFo6OjkWva0tJibm7OycnJzMxcXFw8OTkJdPjKygo4IyUlJSoqqsDAwPr6+qmpqYGB
gX8mZRECgUAgEAjkkHxhuSIuLn706FFErvztb387evQoCoX62uRKf3+/uro6BQUFsCSmoqKi
pqamoqKioqLi4OC4d+9ebm4uMhg8sXZwcDhx4oSMjExCQgJ4fW5uLicnh42NjYeHx9raGtx8
I6yvr/f29j579uzq1ausrKyEhISEhITCwsLOzs6NjY1oNPqA0m18Di9Xjhw5QkhISElJiZwL
NTW1jIxMQ0PDwWtNT0+HhYVJS0szMzOXlpbiV9hjMJjS0lINDQ1iYmJTU9O9vgX+/v40NDQk
JCRubm7AHQuRK2RkZCoqKn19ffjjgaYlIyM7e/ZsV1fX1tZWS0uLmJgYNTW1kpJST08P/uCZ
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
mDg5OZuamqampjIyMhgYGOTl5ePj43eFp0DO1cOHD3ddyr1yJTMzU01NjYCAwMrKam9z0qmp
qYCAAOAlkJycDHpBtrW16ejofP/990CMAddjcnJyDg4OX1/flpYW5IYDuB47ODgQEREJCgpG
RET09PQoKSkxMjKeO3eus7Nz3x8JYCHAxcXFwsLy6dMn/Pw05LwOL1cWFxdLS0ulpaVPnjyp
qKgYFBSUkZFRXFxcWVlpZmZGTk4OBDD+6r8qV2AyGATyu9ne3h4bGwOWgIGBgefOnSsuLu7r
6+vv75+ZmdmVj7qzs9PW1paSkpKTk7NvMHbv4NevX0dERNTX1x9wAGg0OikpKTY2FjFa/Hdi
YGAgLi5OXFzc39//Sx/LHwz4YdXQ0NibAv2bAOWdWlpaqqqq8Jsc8tfiy8uVL85v7btysFyZ
n5/Pz88HN50XL160trZG/SNPnz5VUFAgJiZmYGAICAj4XJMThICAABoamu++++7Ro0eHCQT/
a+QKUrvy4cMH/J+9iYkJNzc3ISGhz9WuxMTEiImJnThxws7ODrhjIXJlr5XWzs5OT0+PoqIi
BQWFsLBwe3v74uJiYWEhExOToKCgi4vLrsHLy8vV1dW3bt0iJyd3cnJCnHb3ypWysjJTU1Ni
YmJ9ff2enp5dzy/HxsZQKBQ/Pz8bGxswIwbf8vLy8rS0tPb29i4uLlZWVjY2Ng4ODmFhYa2t
rXt/+yMjI0VERKioqOzs7AoKCjg5Obm5uc3MzEZGRvbd1cnJSS8vLxERkb21K+DRmra29q7a
lQPkCnKVz5w5Exoa2traOjMzg8Fg1tbWvL29aWlpSUlJPT09kfEHy5XCwkIQXflcJhsEAjkA
YCSYlJRkbGwcGRlpaGgoJSUVEBDg5uZmZ2dXWlqKPKZZW1sbHByMiYkxMTG5evWqoaEhvo/L
vjOvr69HRUUpKCjIyso6OjrW1tbuG2Npb29//vy5iorK+fPnDQ0ND1kM+cUBWQZFRUWjo6MH
F1X29/e/fPmShoZm3+TYvzT9/f0aGhrS0tK6urr/zIWbnJz09fWVlZUVFRXd9/YAAvlqgXLl
sHJFVVUVyJXGxkZErmz/AjKyvb3dz8+PkpJSWVk5OTl5X7PXFy9ecHFxgQppEDCZn58fHBwc
GxvDb9MBXndyciIjIzt+/LiLi8sflQz2/PnzXXJlG49f3THEqIqBgSEjIwPfVmtubi4xMRHU
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
MHJwcDAhIUFMTExGRsbExCQ2NjYwMPD+/fucnJw6Ojq5ubloNLqhocHd3R1YrTx69Ag4HAJ3
tb1bgciVEydOCAsL29rahoaGuru7Ax8XxFNrbGzs8ePH0tLSIiIi4eHh6enpYWFhoFLR1dV1
b9nPzs5OeXm5lZUVMzMzAwODpKSkiYnJ06dPzc3N2dnZzczMkOJAkDQuLCx8+fLlqKiouLg4
FArFycmppaWFxN6BeYy8vLy1tXVSUtKrV6/MzMw4OTlNTEwaGxtXVlZmZmZycnJERETOnDlj
bm4eGBior6/Py8tLSEjIw8NjYmICNnxgYODWrVtnz569ceNGTEzM69evnZ2dOTk5NTU1QY73
zs5Od3f3uXPnBAUFNTU1w8PDTU1NT506RU5OTk5Ofu7cuX2fZkIgXy1QrvxfqWJvb29TU9P0
9PS+Jvebm5szMzODg4OdnZ2dnZ0d/0h7e/v4+Pja2hrozlFbWzs2NnaA//329vba2lpfX19d
XR1SVwAYGhoqLi5+//59Xl5eRUXFwMDAwdm6+848MDDQ3d09NDS0tra2N/VofX19fn5+ZGSk
p6enYz+6u7s/Vw6Oz+rq6sTERH19fUVFRWVlZWdn5y5fAWDcWVlZmZWVVVhY2NLSsrCwsNeo
GpErMjIyz549m5mZ6evry8/PLygoaGhoGBsb+1wnNZBI0NDQ8OHDh48fPzY3N09NTe1rhD03
N9fT09Pa2gpmw98T0PG9tbW1tLS0oKCgqqqqq6trZmYGf57t7e3Ozk4ZGRlOTs6bN28iFfwA
pKckAwNDZmYmGo1G/jQ+Pu7s7CwgIEBPT5+WlrarA+bnAL0RmpqacnNz379/39bWBsTq6Ogo
2BCQn7azswM0YUNDw97KGQQ0Gt3S0pKdnV1SUtLX17e2tra8vDw+Pt7W1oYvSzY2Nqamptra
2hobG/e9Fdje3l5eXm5ubi4vLy8vLwem0oc5HQgEAm7iZ2dnwTP+2NjY27dvl5WVDQ4OTk5O
YjCYvV9cr169+k1yhZmZ+ePHj6mpqfr6+pycnF5eXuC7bmVlpaKigoeH5969ezk5OW/evLl8
+TIiV7BY7MjISG5ubnR0dFNT08jISG9v7+vXry9dusTJyVlRUdHZ2Qnq13V1dUHC887OTldX
l6Sk5LVr12JiYvC/8QA4HM7FxYWIiIiHh+fhw4dpaWmtra0ZGRlmZmbExMS2trYgHPHu3Tt1
dXVBQUFTU9PCwsKBgQHwHO3ChQvS0tIGBgYDAwOzs7O5ubmMjIyKiooxMTF1dXVDQ0OfM/RH
5IqYmJirq2tRUVF7e/unT5+MjY2BKGpoaMBgMI2NjWfPnr127VpYWFhHR8fExERLS8uTJ0/O
nz+vpKTU09Ozd2bESfLMmTOBgYGFhYU1NTUpKSmnTp26cOHCy5cvZ2Zm0Gh0VlYWKyvrxYsX
ExISent7BwcHP378ePfuXSUlJSMjo+Hh4b6+vsjISC4uLh0dneLiYrDb6enpCgoKGhoa4eHh
MzMzJSUlpqamzMzMenp6paWlbW1t79+/t7e3Z2Zm5uPjA3Jlbm4uLy+Pl5f3+vXrqamp/f39
w8PDJSUld+/eVVBQ0NfXHxoa6u/vf/XqFR0dnYqKCuhtXVBQ4OLiAjoQnD17FkZXIH8toFyB
fGEQuSIpKbmr5uQrYXt7u6WlhYuLi52dXV9fv7GxcW5ubmlpaXFxcWZmprGx0cHBQUxMjJOT
88OHD0hMBofDdXZ2Xr58mZqaWkBAABpqQSAQQHV1dUxMTGdn5wFPo36rXGFiYsrPz29tbQUO
H0ZGRoODg6AtYFRUFCsr6+PHj4eHh5OTky9evLirRA0Ef9Bo9NjY2MDAQGtrq56eHnj+Ah4J
8fHxKSsrA3GyurpaUVHBzs5uaGi41wV+Z2cHh8M5OTlRUlLeu3cvLy8PvIi4m1haWs7Pz29s
bDg7O1NRUd24cQPp57vzi3WVuLg4coStra3s7Oyqqqq7TPP3gsiVR48eIfkIGAymrKxMU1MT
yLmRkZG8vDxGRsYHDx709vb29PT09PS0tbUVFhZqamqysbE1NTXtTUkApi/ExMT4VYIgZiUp
KQnqSVpaWry8vCgoKPBnrq2t9ff3P3v2LA8PT1tbW25uro6ODhcXl729fc8vlJWV6enpKSsr
A5Pi8PBwkLL7/PlzZC0QkxEXFzc2Nh4eHu7s7AwKCqKnpzcxMUHmqa2tDQgIOHv2LDc3N1jr
zp07tLS0bm5uyDxjY2N2dnanT5+WlJSEtSuQvxZQrkC+MFgstrq6+muWKzs7O11dXWfOnCEm
JmZmZn769GlycnJRUdGHDx+eP3+ur68PkgSuXr3a2dmJPPZDXJiZmZnv3bs3ODj4ZU8BAoF8
JSwvL6PR6LW1tQNaeP1WucLIyJidnT0xMQGe/oiLi/v5+U1NTb17905DQ0NMTAwUDcbExJw/
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
70pKSjo7O1dXV/fNOt3Y2BgfH6+trc3MzIyLi0tOTi4pKRkZGcG3Utna2pqfn+/t7a2pqSkr
K+vu7v5cP10ELBaLRqMbGhrKy8urq6snJyf3dUfBHz80NFRbWwuMVg4evLy8XF1dnZ6enpCQ
kJyc/PHjx/b2dsRKErC0tFRQUFBaWtrX17e+vn7AbB0dHZmZmWVlZaOjo6Dp8sDAQF1dXXl5
eVlZWXl5eXl5eW1tbU9Pz77zzM3NdXV1ffr0qb6+fnBwcN9YBNjhyspKYEL/O8BiscPDw0FB
Qbdv305NTQVt1P5YgCLKzMw0MjJSVFSUlpY+f/68jo4Ofhfn38Tm5iYajV5eXp6ZmXn58uWt
W7dUVVX7+vqwWOzy8vL6+jr+9cLhcMvLy52dnfn5+YmJiUlJSTk5OQ0NDfs6dUIgEAgEAoF8
nfznypXZ2dnXr1+jUKgnT560tbXta8uIiIq8vDwTE5NLly7JyspeuXLF2Ng4ODi4trZ2dnZ2
11uWlpa6urqSk5OfPHmipqYmJSWlrKxsbGwcHx/f0tKyvLyMb+CYkJDw+PFjU1PT8PDwurq6
A6whd3Z2pqeny8vLXV1dzc3NUShUQUEBvtvjXhYXF3Nyctzd3W1tbSsrK/ce6s7ODg6Hw2Aw
w8PDJSUldnZ2qqqq586dU1JS0tfX9/PzKy4uHhsbQ0TU8PCwkZHRw4cPY2JikGZkuwCumnFx
cerq6vb29qWlpVgsdmRk5N27dw4ODpaWlua/gEKhwsPDKysrBwcHgQ0/MkljY2N4eLi1tbWj
o2N8fPzY2NheMVlSUuLo6GhjY5Ofn3/AJhzA6upqc3PzvXv3yMnJnZycGhoaft88BwBsQ01M
TI4dO0ZOTs7IyMjFxSUpKRkdHY3D4VZXV+fn59FoNBaLPUy15dbWFhqNzs/Pr6qqam5u9vHx
UVBQkJCQaGho6O7uLisra2trQ67LysrK6OhoeXl5UFDQ3bt35eTk5OXlb9686eTklJmZifRh
gEAgEAgEAvnK+c+VKyMjI2ZmZgICAsLCwmVlZcA3fRfz8/Opqan37t1jYmIiJiampqZmZmYm
IiIiIiJiYGA4f/58QkLCrpDIhw8fDAwMuLm5ycjICAkJKSgoSElJiYiIaGlpTU1Nq6urga37
wsJCZmbmrVu3SElJiYmJOTg47ty5MzAwcMABl5eXW1lZsbOzExMTs7KyGhsbFxUVHTB+amrK
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
xMfHP378ODk5eYHwyMzMTE9PD7T9qaysvHHjBpFI3L59e1lZWUVFRWZmZklJycItIwcGBp48
ebJjxw5OTk5vb2+sjgiBQHxXpqen+/r6zp8/r6Ojc+fOHTc3NyUlpfj4eG9v7507dyYkJNTX
10Oupp+f36ZNm0RERAQEBAQEBERERIyNjUkk0gIP8NnZ2QcPHuzYsUNKSkpCQmL9+vWioqJ6
enrnzp2DB0JjY6OZmZmtre3t27dZLFLodHpsbOzevXt37tzZ0NAw91t/LWdnZ2FhYSEhISEh
IWFhYTwer62t7e/v39HRwfzxlpYWW1tbAoGgrKz86NGj3+ne0d/fT6FQ8vLyvnYSD1m7ZDK5
sLBwAbuaP5DQ0FAJCYkzZ84UFxdDb7Fz586JiIjARRMWFhYRESEQCObm5hkZGewtB54/f37w
4EFtbe2bN2/+CUf7ORITEzU0NCQkJJh/aFVV1ZiYGCqVCttkZWXZ2trKyMhg22AI/UZERERH
R4e3t7eZmZmjo+OfYzt58+ZNFRUVdXX1hISEP+HrEH85f6Vcqa2t3bp1K1QMA//4xz/+/e9/
+/r6Yua534/Fy5Wqqqr4+PizZ896e3t7eHjY2tqqqakpKCj4+vpilRgYGRkZ+/btExQU5Ofn
V1BQsLOzu3DhQlZWVldXF/OKEXMy2L1796qqqjIzM4WFhWVlZQMDA5mfbrm5uUeOHOHi4nJy
cqqpqenu7j5+/PgfK1caGxtTUlKCgoK8vb1Pnjzp7Oysrq6+fv16Z2dn9q+or6+/du0aHx/f
tm3boqKimDP34uLiFBUVubi4/Pz8sMALu1yBInUajZabm+vg4IDH43E4XExMTFNTE+wHSu1X
rFgRFBQ0MjKSl5dnZWXFwcFBJBKxgplFyhUYeolEIrgUREdHQ6lJSUlJRESEqqoqBwcHi1w5
d+7c6tWrly1bJiMj4+jo+Pz58/Ly8pqamtbW1r6+vtbW1sjIyLt371IoFLhLBwYGXr9+vXv3
7uXLl5uZmcERgmIpKSnZu3cvyJ7379/T6fTu7u6xsTEGg9HY2Hjx4sWtW7cKCAjcvXu3tra2
q6uro6NjYYswUF+Dg4O9vb3x8fFWVlYmJiaNjY0MBuOL6Qdzv3XOWbdunbS09OPHj9ntoREI
xPcAFrPS0tKOHz/u4eGhoaEhICBAJBLt7Ow8PDzevHlDo9HgYeXj42NiYnL06FEfHx93d3c1
NTUCgWBkZEQmk+dNHIKUWrD0cHBw8PPzCwwMPHbs2PHjxzGRU1tbu3nzZh0dncuXL7PkWsMw
oaqqKisrC2slmLsj+E96enp6enra2dmpqalt3bo1Nja2vr4ePstgMPLz82VlZVesWCEsLOzi
4pKTk/N7rlJ+fn5ISMiJEycWNr1kp7+//+HDh35+fn5+fiyC6g9namqqu7v78OHDUHZIp9Mh
LHby5MmlS5eqqak5ODicPn361KlThoaG0tLS5ubmKSkpLDtJTk7etWuXhITEhQsXvuvRLkxE
RISIiMi6deuIRCK4RxobG0tJSenq6l6/fp1Go01NTVVWVsbFxfn5+Z06dcrd3V1dXX3t2rUc
HBxOTk6nTp2C2+PFixeQLOPo6KikpJSbm7sYr8vfCciV7du3I7nyN+GvlCt1dXXbtm375Zdf
mOXKzz//fPr06S+2eP/9LF6upKSkmJqaCgoKrlq16r///e8vv/wCmT/Z2dmdnZ3T09PM2cCD
g4OFhYUHDhzYtGkTJyfnv//9bzweb2lp+ejRo4aGBvZSe35+/jt37nz8+JFCoSgoKPDy8hoY
GNTW1mIRm4SEBBUVFRwOFxYWBjnNR48e/WPlytu3b48cOSImJrZ69Wro0YHD4fT09O7fvw8d
05lPcGxsrKCgYN26dWJiYvb29s3NzZBFNjU1FRgYyMnJuXHjxhs3bmDbY3IFEpCgXWZxcfGT
J09Onz7Ny8v73//+V01NraSkBBuMmeUKaJvw8HAcDrdmzRp/f3+4N0gkEh8f3xflCjSfUVJS
4ufnj4+Px4Izc3NzXV1dwcHB8vLyLHIlLCxs9erVS5Ys2bdvX25u7uduDIhHTU9Pg42Yt7f3
zz//LCMjExMTg23T0tJiY2MjICAApfbMH+/r67t9+7a2trawsHBWVtbXRs8hTuLv7+/r67vI
4XloaCgnJ2f9+vU4HM7U1LSxsfGrvhGBQPxOuru7s7Ozzc3NwdVw1apV+/bte/r0KeR6DQ8P
v3r1KjEx8eHDhz09PWDIERUVtW3btgW848FjUENDQ1JS8v379xMTE1CiVlxc/PLlS5g1QqKO
rq7u5+SKmpqanJwcyBWY+hsYGODx+Nzc3NHRUQaDUVVVdfDgQW5ubkNDw8ePH8NnW1tb79y5
A2vzioqKsrKy165d+2Kl9fT0NIPB6Onp6ezs7O7uHh0dBfcRBoMRHR2tpKQkIyNz/vz5gYGB
oaEhqIKYnZ0dGxvr6+vr6urq6uqi0+nwKdjh5ORkbW3twYMHFRQUVFVVi4uLBwYGYJgYHx8f
HBxkKbyBbLfR0VFsaINv7+3t7ezshPWgqampz53IyMjI27dv9+3bt27dOjCOh7HAx8cHa+EF
w1ZsbKyiouKyZcu8vb1ZVmCfPHliamoqKSl58eLFhS8XC/BdDAajr6+vs7OTRqPB0WI7B9PL
gYEBsAHo6enp6ekZGhqa18To/Pnz4uLiRCIRE1RpaWlEInHFihVWVlbFxcVwnWGJDUJYwcHB
CgoKUlJS1dXVWAIeXC4YBwUEBGJiYuYdX2CeMDw8zOJdNDk5OTo6iiUBws89NDQEyYGDg4M0
Gq2np4elnfTNmze3bdvGnAw2OTk5MjICtw0cD+wWfl86nU6j0QYGBthXw7FbhUajdXR09Pb2
YlkzYKsDu2X+9omJieHh4bGxMZZbq7+/f2RkBOYGY2Nj2H3Y399Po9H6+vr+tHzF//f4K+VK
W1vb8ePHpaSkMLny888/y8nJxcbGsmiA78Hi5Up5efm1a9dOnDjh6Oi4d+9eGDzWrFkjKysb
GRnJ4qkF/k4tLS3p6emnTp2SlpZeuXLlypUr8Xi8v79/S0sLZmSMyZXbt29//PgR6umlpKTW
rVtXWFgIf1EMBsPX13ft2rU7dux4/PgxVir9x8oVKpV6//59iKvs379fU1MTj8fDMQcEBHz8
+JF5zf7Tp0+1tbVgU7Zp06YPHz6ANXB7ezvkyB07diwvLw/bHpMr//u//7ty5UohIaF169aJ
i4sLCQnx8PCsWrXKwsLi6dOnfX192N8ws1yZm5ubnZ199uwZxGf27t0LyXKXLl0SFBT8opFx
a2urs7MzFJnk5+cz1xEyGIySkpL9+/ezyJXQ0NDVq1evWbPm7NmzC8hmGPPodHpHRwcYBP/6
668bN26MjY3Ftmlubv6cXMFuAGFh4fT0dGYX6cUAtgednZ1Y258v8uzZM2tr69WrV+vr69+7
d+/PSS9GIBDAp0+f8vPz/fz8tLW1RUVF16xZIyIioqWldfLkyfz8/N7eXnik9PX19ff3wwg4
MTHR2Njo7OyMDRPsu/348SNYeigqKlZXV8Pi0fT09OjoKBbihkQGPT29K1eusMuV8+fPq6mp
ycvLs8gVSUnJ8vJy8FweGxu7cePGli1buLm5Q0JC4LMvX750c3Pbvn27nZ2dl5cXPz+/n58f
i+M8O729vSUlJVeuXPH39w8PDy8uLu7r64On8fHjx/F4PB8f34EDB5KTk7OzsxsbG2HeWVVV
lZSUFBgYGBwcfOPGjffv32MjWmtr6/379/X09MTFxeXk5CIjI588eQLDBIVCycjIKC0tZR7+
hoeH37x5U1hYiFXyMBiM4uLihIQEf3//gICA1NTUrq6uzz1Xu7q6QkJCNDQ0tm3bBu2SMbmy
du1azJF/dna2qqrq/PnzPDw8jo6OWHY08M1yBVwTPnz4cPv27YCAABKJlJaW1t7ejlW3Dw0N
1dXVJScnk8nk7u7uy5cvR0VFvXjxYl5TB5Aru3fvxtIWBgcHnz9/LiIiAl2ewekL892GZm6b
N28GucL8Fpzy2bNncTicq6sre6u0ud/cw169egV7xl5vb28vKCjIzc1tbW0FSVNVVfX8+fPe
3l4qlZqamkoikS5fvozZGgHscqW9vT0vL+/Zs2f19fWTk5MtLS2FhYWw5lhaWnr9+vXIyMiU
lJS6ujqWQOX4+DiVSk1PT4+MjDx9+nRcXFxZWRnUJEPB59u3b589e8Z8Devr61++fFlRUUGn
07EX+/v7Hz16lJ+fPzAwQKfTy8vL4dspFMr9+/cjIyMTExOxXuGIr+WvlCvw1Dh+/DiBQBAS
EpKUlNTW1j5//nxpaemf4IW3eLnS29tbXV2dl5eXk5OTlZWVmJh4+vRpAwMDLi4uTU1N9gEA
6OnpKSoqun79urOz85YtW5YtW6ampnb16lXYmF2uDA4Opqen79y5k4eH58KFC9XV1dh8mpub
OygoiEwmQyfKI0eO/LFyZXBwsL6+vqCg4PXr18+ePbt//35ISMju3btXrVolJyfn7+/Pknrb
0dHh4+OzYcMGQUHBhw8fdnV1YfkDAgICiYmJbW1t2MaYXIFy8w0bNqioqOjo6BCJRPCCg9Re
5rGBRa7Mzc21trbevn0bj8fLyMgcP368ra0tKioKj8cvWbJkYbkCSdu8vLwyMjJQVYK9BU8o
R0dHdrnCwcEBvwL7DuGBm56eHhQU5OXldeLEiWPHjrm7u2/evHnp0qWbNm1izkUGucLPzz+v
XImPjwevhW+QK1/F8PBwTk6Om5vb+vXrt2zZEhYW1tzc/OeYtyAQiLm5ObAwSUlJOXLkSGho
qIWFhaysrLu7u5ubm6ura3p6OvMzE2NiYqKhocHZ2RlSRuetDOnu7g4LC1NRUZGSkkpJSZn3
Of9tckVCQqKyshIbi5OSkrZv375q1aqAgAB4BYIhVlZWN27cePTokaCgoK2tbXl5Obu7FABp
VHfv3nV2dnZ0dHR0dHR1dQ0MDMzLy6PT6XFxccbGxmvWrOHk5FRTUzty5EhAQEBubi60VPbw
8AALRHt7exsbmwMHDsTFxUEfs+Li4oCAAAKBAE2H7e3tfXx8rl+/TqfTU1JSnJycQkNDmdO2
QeD5+vo+f/4cPM3y8/Pd3d2tra3t7e2dnJz8/PwWWNBpaWmxs7NTVlY2NzeHGALIFW9vbx4e
nvPnz2O9etva2hITE/n5+e3s7KqqqpgvC8gVKSmpr5IrQ0NDZDI5ODjYxcXF2tp6z549VlZW
jo6OkD4HwaLW1tbk5GRLS0snJ6fTp0+bmppaWlqGhITMm/oLcsXCwoK5LUFVVZWEhMTOnTsz
MjKYXXbmfus9jcmVeXeIx+ONjIwePXrE/i7ED0+ePGljY8Oc6ZCbm+vv7+/m5paeng5pkwkJ
CZaWliQSydvb28LCwszMzMDAgEgkXr9+HfteZrkC4uTGjRuOjo4kEunDhw9gLxEcHGxlZRUe
Hu7l5WVpaWllZWVtbe3p6VlUVIQpn9bW1rS0tGPHjtnb29vb2+/Zs8fCwsLBweHy5ctkMhn6
XIeGhjo5OVGpVFibnp2dvXfvnoWFhbu7OzYNgy2trKyioqJoNFpra2t0dLS1tfXVq1d9fHzM
zMyIRKK5ufnBgwefPXvGXs6E+CJ/fd+Vd+/e+fn52dvbHz169Nq1ay0tLX/OROr3GBm3tLQk
JCTg8fjly5crKytTKJQF9BWZTA4KCuLj4+Pk5NyxYweVSp2dnWWXK7BefuLECWjO+OjRIxqN
RiKRVFVVJSQkoOXid5Ir7NDp9IyMDBkZmSVLloiLi8MaG/YuNJfcuXMnFxeXr6/vhw8f2tra
3N3doSiiqKiI+RfE5MqyZct0dHSOHDly8eLFxMTEV69esS9yAOxyBUI6BgYGYNJVUFBAIpGk
paWh0mmBE6mvr9fX1+fi4iIQCNCoEXtrfHy8pqaGvU0kyBVeXl52uQLePsnJyVZWVuAwJikp
uX79emlpaQ4Ojv/85z/fJlfS0tK+n1xhMBgVFRWHDh0iEAhiYmKnT58uKir6Tt+FQCDmBULl
aWlpwcHBNTU14eHhenp6z549u3fvXmho6PPnz+eVK0NDQ8+fP7ewsJCQkMjIyJj3KTE8PPz6
9Wtra2thYeHjx4+npKTU19ezdIL6Wrny6NEjAwMDcXHxsrKymZkZqMSLjo5WVlaWlJSMjIyE
/BYvLy9ubu6AgICSkpLy8nIZGRktLS3QCfNeBEijsrKygoADlJo4OTmlpKR0d3dHRkbq6Ohw
cHDw8fGpqKjY2tqeOHHi1atXra2tLi4umpqa+vr63t7enp6eRCKRi4vL3Nw8MzNzaGiosLDQ
29t748aNfHx8EhIS1tbWHh4ekPYWGRm5bt06fX39+/fvY4dRXV29bt06DQ0NOFQymRwSEiIu
Lq6pqenj4+Pv7+/p6RkUFPS5CWV9fb2urq6SktLhw4ch3oXJFeboyqdPn2pqakgkEg6HO3To
UFNTE/Ow+G1ypbKyEgTG+vXrTUxMnJycbGxstLS0Vq9e7ebmBl9RVVUFudMcHBwyMjL6+vp7
9uzx8fGZN2f4woUL7NGVFy9eiIiI7N8WYEA8AAAgAElEQVS/H3M9xQC5oqio+Dm5cvXq1Y0b
N27evJk5ywCDTqfHxMRs376dZUC8d++enp6epKRkREQETIQ8PDyWLVu2efNmJSWlzZs3m5iY
KCgo4HA4VVXVO3fuwKdArmhqat68ebOzszMxMZFIJG7YsOHcuXNkMhlb//3555/l5eX19fWJ
RKK1tfWmTZv4+flhRRjikBkZGba2tpKSkhoaGocOHXJ1ddXR0cHj8QQC4cqVK/39/WQy2dbW
VlhYODs7e2BgACtVAlfP8PBw6BMN7R+EhYU9PDxoNFpDQ4OLi8vSpUvV1dXV1dW3bNmya9cu
WVlZISGhQ4cOMbcRRyySv16ujIyMdHZ2trS0tLW19fT0sBvDfyd+j1yZnJysqKgwNDTk4uKS
kpIqKSlZICFnbGzs/fv3SkpKq1atkpeXLy8vh+6TLHIFHnkBAQFLly5dvXr1uXPn6urqtLS0
hISENDU1ocngnyZXpqenqVQqtDgUFRXNzc1lfmxBwbebm9vSpUs1NDTu3btHpVLBNkBTU7O2
tpb5F8TkCgcHh7u7e3Z2NmRwDg8Pf85QgV2uzM3NwfKblpYWLy9vWFjY0aNHobP7F6Mrpqam
a9eulZKS+vDhA/PPND4+XldX97noyrxyhU6nZ2VlKSsrb9iwwdTUND4+/tWrV/n5+W/fvrWx
sVm6dCmBQGBPBvucXImLi/sT5EpZWVlQUJCYmJiCgoKHh0dFRQWKRCMQfz6fPn0aHBzs6uoa
HR0NCwvbunVrSkoKlUrt6uoaGhqa1ySjs7PzzJkzmpqa2traVVVV83oZQwoZPBuFhYXFxMT0
9fUfPHjA7M70bXIFj8cXFhZC4n5+fr6trS0Oh3N0dHz58iX4Fzs4OIiKikLaFZVKNTQ0JBAI
+/bt+5yvV3d397lz57S1tZWVlXNzcyGXtbm5ua+vD8xXLl26pKqqqqysfOHChZaWFujnC5la
Hz58qK+v7+joaG9vz83N1dfXNzIyCg0NhetJJpNdXFxUVFT09PTevXvX3t7e09MzPT199epV
AoGgpqbG7HVLoVDk5OT09fXj4uJ6e3sTExO1tbU3b958/vz5jo6Ozs5OyM0eHx+fdypSXV0t
IyOjqKh49uxZkDTMciU0NLSiogJmtNevX1dQUODk5AwICGDJkfs2uXL16lVZWVl9ff2oqKjG
xsbW1tbm5ubs7GwpKSllZeWwsLDu7m4KhQI9lOEIi4uLm5qaPpczfOHCBQkJCXNz86dPn8Ir
mZmZe/bs+e9//+vi4tLc3MxyW35RriQkJKiqqsrIyFy5coX9XWzawzIgPnjwwMjIaNOmTVFR
UXA/e3h4/Oc//1FUVDx//jyFQmloaLh3756NjQ0Oh8NmBTdv3lRTU9PX14+IiEhPT1dSUjI2
No6KigKTPeiQZmpqCh0U0tPTGxsbm5ubT506JSgoaGxsjGXXnz59WlJSEqJt8NOXlJRcu3YN
j8cfOnSIQqH09/efPHmSm5s7MDCQTCZjDaah1trb2xuKanJzc48ePSosLBwYGDg2Ntbc3Hzw
4EHoKRcXF1dbW9vY2Hjt2jVdXV0hIaHw8PDF/+4I4K+XK38VzHLl7du3XzuHa2hoMDExWbNm
DZg+LRwRqqurgzD6xo0by8vLZ2Zm2OUKbHn//n0tLa3ly5dbWFhcvnxZUFBQUVExMDAQIrnf
JleEhIS+Vq7M/RYxFxcXFxUVff36NbOcg2Ti0NBQXl5eAQEBHx+fzMxMKSkpRUVF9swxTK5w
cnJ6enqye6mxM69cGR8fp1Aobm5uPDw82tra2traGzdu/OmnnxaWKxC4FxISEhMTe/fuHbPo
gmDxvn37Fi9XysvLg4KCuLm5jYyMkpOTm5ubh4aGGAzGyMiIt7f3r7/++rVyRUND49tK7RfD
2NhYVVVVcHCwqqrqpk2boKboq2Q5AoH4w/n06VNeXl5MTAyFQlnAQKm7uzs9PV1TU9PU1JS9
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
--------------030200070401080801070406
Content-Type: image/png;
 name="ghhaeefj.png"
Content-Transfer-Encoding: base64
Content-ID: <part3.00070209.04070808@cisco.com>
Content-Disposition: inline;
 filename="ghhaeefj.png"

iVBORw0KGgoAAAANSUhEUgAAA9UAAAMDCAIAAAAjT6F6AAAgAElEQVR4nOzdZ1tT2QI+/P8X
eNqZM1YghGYZOz2FjohipaU3CB2RJkgREcFKsSCgAoqKoIJYEVQQEVERQRTpvacX0pPN82I7
zoyDig3PmbN+Vy7fGJKVney97r3q/5kCAAAAAAAAAGC2/J+fXQAAAAAAAAAA+B8C8jcAAAAA
AAAAzB6QvwEAAAAAAABg9oD8DQAAAAAAAACzB+RvAAAAAAAAAJg9IH8DAAAAAAAAwOwB+RsA
AAAAAAAAZg/I3wAAAAAAAAAwe0D+BgAAAAAAAIDZA/I3AAAAAAAAAMwekL8BAAAAAAAAYPaA
/A0AAAAAAAAAswfkbwAAAAAAAACYPSB/AwAAAAAAAMDsAfkbAAAAAAAAAGYPyN8AAAAAAAAA
MHtA/gYAAAAAAACA2QPyNwAAAAAAAADMHpC/AQAAAAAAAGD2gPwNAAAAAAAAALMH5G8AAAAA
AAAAmD0gfwMAAAAAAADA7AH5GwAAAAAAAABmD8jfAAAAAAAAADB7QP4GAAAAAAAAgNkD8jcA
AAAAAAAAzB6QvwEAAAAAAABg9oD8DQAAAAAAAACzB+RvAAAAAAAAAJg9IH8DAAAAAAAAwOwB
+RsAAAAAAAAAZg/I3wAAAAAAAAAwe0D+BgAAAAAAAIDZA/I3AAAAAAAAAMwekL8BAAAAAAAA
YPaA/A0AAAAAAAAAswfkbwAAAAAAAACYPSB/AwAAAAAAAMDsAfkbAAAAAAAAAGYPyN8AAAAA
AAAAMHtA/gYAAAAAAACA2QPyNwAAAAAAAADMHpC/gf8ySqVqeJz76PmbC2VVucV3C0ru33rw
rG94QiKV/+yiAQAAAMBHSaWy5tedNyrr8i7fPVdyr6K2sb1vWKZQ/txSiSalXf2jtx48Kyi9
n1t892JZVd2Lt+NsvlKl/rkF+2cD+Rv4LzMpkdW/7EhIv2iD22m2ORjrHkYNO1z9tIXNE/7s
ogEAAADAR42zuGnZRZ7+ieZbtqPdQgP3ZF6+W8sTin9uqUbGuXeqGihhR6w8ws02B9vgIpNP
FDW/7ZPKQKvWDwTyN/BfRjQpra5/xYxOn2+GQ2IpC80JppuCH9Q18X/2JQwAAAAAPgqa6ugZ
diRGITEUPSxF25LoTItNyy0ZZ/N+brlGxjkld2pNNgZpWRCRGMo8E8/gPZlNb7slIH//SN85
f8tk8rcdPfdrX1y+XVN8q+Za+aPK6ifPm1qHRllKlRqCoC96NTaH++pN2+0HT67crim+9bDk
zsO3XX3ft8DAfx2RWFL1pJkWcfiXVa4INHmOscfKdX4P6poEwsnZLAYEQQql6k1Hb2n5w4LS
BwWlD66WP37W3DbO5s5mMQDgvwA09bZj4PKtRwWl98+W3LtQ9uBGZW1n7+BXvBKPL2xp6y66
WZN/9d7Zq5V5xbfrG1+LJyUajea7lxqYmpoSiCVd/cM1T15cr6gtullTdLPm+t1HVTX1L1+1
jbO+/7VOJld09Aw8bnh9u+rplduPim4+vHL7UUV1ffPrtnEWW6lSffd3nFXQ1NuuQYutIfNM
cQg0eb4pzg6/MyXz0tgPOJJfZGScc+X2o+VOPnNNPBEo0v+30jUg7hjI3z/a98zfGo1mbJyT
c67Uf1eai1e8Mz3OzSfeJzw54ciZssq6wVGOQvllJ8+bt+2nzhVTdyS7MOKcabEbGbsuXKtU
fXmOB/5JRJPS6ifNXjtT55p46GGpC8zwa1wCq2c9f6vUGq5AfPbKna3MGCvPSKxn5Bbfvaln
Lr980zmbxQCA/3TQ1JR66urNWjefJGvPSLR7uB1hp2dAwsVrFULRpFr9Zbm5pa37eF7JOlqc
hWsY2i0UtcU/NadwdIyl/MLKBZih1q6B/Kt3QxPSPAP2rKPGOdPiPP3ig3Ym70s/e7f62QSH
r/p+Q4QlMnlX/8jpwptR+3MooQc2eu12psZu8or3CktOz7lY87RRPCn5Xu/1s7T3DGHdw7Qs
iXpWVC0LggMxKuXEpdGJn5+/S8prV633X2iO18NSf13jHrT7RDPI3z/Y98zf4klpfeNbZ0rM
Ilu6gQ3N0Ja+yJax2I6x1N7LMyglp7CcxRV80Qs+fvoiam/6CicfJIaib0Wda+K5O/Ucmyv4
jic88F/nPyR/y+SKjp6hXQdzkViyvhUVgSYvc/IJTz716Pnr2SwGAPyng6Yg9dTl69UulBgj
G4YuhmJgTdPDkH2iDt99+EQo+rLT9vLNhy60uMV2XvDrLHNk7M0429M/JFcoflDx/7dB50oq
rTzDljp4GdrQjGwZRraMxXaMJXZ0Qxv6Vp/E4/nXJzj87/VmTa29R06X2niELbX3WmTnBb+d
oQ1dD0txokSnnLj403PqtwP5G3jve+bvcTbvxr16001BC8zwCDQZiaHoYigINHmhBWGlsz8p
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
64eN/89HVz46bbuy8aT8jWE4nckNTSz69Jrr7/5+7fXDxm8fM3uYpN8+bv76IeOX9l3/+Kxt
Vfsw60cFjnCCgDRaJleYUtj4qaHHOyfMXj1o+NohozeOmLx1zPSd4/oVDvriQmb6PzmvHjT8
3cfX3j1hdsMtsryhh8Hma7XIky9FoLP4Nzxi//rl7Zf3G7603+DvZ21tfZMZe2vD8QQ4QdBZ
/Lvh2ceuuLxxxOS9k5b6amW/23fd3j9tdnn7eTQ3fYLaxpGvjQPeOWb+8kHDN44Yv3vcJCKt
9KnrT0hSp4GRtS1mVFr50YsObxwxeeWg0ZtHTfXzEfqDivdOWr593OzlAwYvfXzlT59ZugZm
t/ZOjc+ufG3l//7JGy/vN/h//nzRwT9t9TEdTEVSRfvA1L5z9i/tN3jtkNF/fXjZzCWqe2hG
sbf8nV3R/tEZ2zePmLx8wPCtY2YnDdxL6nt/fDM1BI/NrvnFFh275Pw/n9547ZDxuycsLtwO
DEurbOgaq2oZrGwZLG/qz63oSCtqjs2p9Youuu2TfsUu4sgV1//9h9UbR0z1B8N/+OzGl6Yu
RbVtmqcVQX8qgiAS8urePm72+mGTVw4avXXM9PhV16K6p5eXwXBiZWP3rKXnO8dN9H/Ef/fx
tf89ZZVW2rK28/R0q9Pp1rdZnxre1X9VvnzQ8I9fWJu6Ru086oLI78JxQq6EhqeWw9OqvrLw
+cMpq5f2Gbym/0N21Oyd4+b6yakHf8iOmLx+yFh/YuHtE2bW95Oa+6eZXNFeuthiGM4TyWs6
xm190z46Y6f/g/jmUdO3j5m/c8L83U/M9WWFXj1o/NJ+g3dPmJ0yck8srJ9d3qCzBRHZdadM
7//3R1f+++9XTxp4hKSUPTl/a1F0h8WLL6j/ytLn4czXw+7O+ktxXj9srD+8P2XsGZRcsbC6
wxdJJ+ZXD1100t/lvz++5h9fLJU9On+zeaKqlsE/fW7933+/9toh4//3LxfveCfOLj+lvbEW
QXfZgryqbivPxH1fO75+2PjlAwavHzbWz8C+++DTd+O9k5b66/EepPP9Bi8fMPifz8w/N3fz
js9icgXkb7Vw+M+Zv0VSRd/Y/GWb4EMXnQ6ed/zojK1jYFr3yOwev6QeUqqg5fXd5MImK8/E
U8b3j1xyPnLZ5VPDe+etA8ub+vVXNz55CySpIwhiZZ1e3tgXnlZh6hx5+ILTx6dvv3/C/KX9
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
FFKpVCaXyeRSqVwsra2sq5dNTAzsbC5ODvVUFOdFhQZFhYZUFBV1t7SUFxTmpqWW5OeMDQ+k
JiV8/NEHvT3dFSKRf0BAZnZuhVgqltYkp2X1jU/aMRT/I+1bOYakvfqd2T5FWW61pLZa3lhV
XZeRmSeV1S4uLkEQaDKZpmdmkpNi0lJiKsryK4pL8rLySkpFO+pjk92u1+m7O7oTomLvfPh5
RNCzrIwcuaJueXXabL6hCMhkOp+ZGcjJSf5v//SfP/j006SsfJFMsbS1b/NhJzdAeXHJ/Y8/
qJOIqyrFcUkZQZFxpdV1nYMj0XGxLc0KzdnOxlxvR1NNUVFZelpWWFikv19QXm7h6uqaD4IP
D48bG1tjYuIf3H+ckpza0FCvVNYkJsRGRoSdqA89Tof26qqxViETV9crlDXyGkmFuEZcu7Cw
fnFtuNaaWjsGquWNYnm9uFYpUSjFdYpyqbRjoF+1vXFyuF1ZnPflR+9npmcuLa04XZ6F5fWy
cnFyQsr60qJLf+XWnLbXyeQyWW1Tq7haWl4pqZIpegZGtnb3zy8ve3p7MzIy/fz9Y19ESyWi
zjZlUmxEXmZCf3eTx227uVSP9LVIy7IlJdnyiiJ5ea5IVCRtaDi80jghn9fr2djckMvk0ZEx
UWHRwwPjOMrctj8hCEyrPexolyfEP8vISCksyC8tLslKz+jp7Lg8Obw+31ZKCx7f/SwgOjer
vEWi6I1Pyo5LSBdVyTWAGcVJFEENBqPZpLeatQeH6s7+8RJJU2N77+6BGsf/2KHxBkNB29Xh
oqQoVlQQr6gpq68Ti0TFxeVl47Pz14DRAfrmF1dzMtM/+e3/+tWv/mdweERdY8vUzKxOp8VR
35l6r6ejOT0l8Yuv771ISlO0dMjqm5KzsmIS42YWZ00Wo9vtnpycLCwoCQ+NzsooWllev10p
4jMc7Y/ExwYEPA2MjsqqqGwoLq9KysqISsjpHlhwODHM5z7amm+Rl5ZkJ1aW5kvEVTGx8U+C
IkJiUjvHFq8N1r9toQkEgl84IX8L3jwcz3I8aHce1ymqX7x48fDhw08//fSLL764f//+kydP
srKy2traxsfHJRLJs2fPAgICgoODw8LC/P39g4ODU1JSBgYGBgYG5HJ5ZGRkUFBQSGhIQHDg
0xD/p+EBIc/DapuVx1enGI7vq9WlVeJf/+/3nsfET07PnZ6czUyOdzYrgZvzhjppeLD/9cXZ
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
iFbUt61uqi32lyvFUPz68kYikpTkFVVXVNaKxY0KZVf3wMzakc7s+tMlznE4hl2eXJSVVj4J
CFtc3XS6vbc/YQmfTX+iqC4rLC4prVbU1jfV1Tc2NLdNz84fHx/fXF0M9nXlpicFPvw6PNiv
rFw0Ob8CWJ3oq920vb1ZLamsKC2SVVU01EjrqsqqxJU1be0nGr3bB3u87s0NVX2tLPZ5xFdf
fBUVHa9o6t4907sgjCRw4OZ0qKe1KDtdVFYulsiqpDUFxWVdXd1Hu9vAxVFbXVXA0wfBGaUD
ixtu0H2wvVSYnfD1Vx+K6xt2zi5wjmd5/uZ0r6tBHBgSVVXfe2FB8bf3jT+vDThYHivNjK8o
zG6qr6uWiEvKK8okNYNTi9d60+08bot+fW4kPj72eWJafmVtc0fP3pbKA5zc7C1M9TQWZaX9
9pM7/pEpspahpa1Tk917expRDOV0OxZX5spFZYEBwU/u+2enFI/2zFoAow+8urwcz0qLighO
ys9oOz83XQOn40ttT549jknM6exc1N2cjw+15KZHNyrEbS31rS3Nbe1dlZLa8qq6g2ONF/rZ
GqoJBALBv4KQvwWCb0Fg18X5do28LD4uyi/Azy8oJDQqNrek6uhM60NeNqfGMdRiNqpWlo6O
Dg1my9Hpxe7hycn5Nfb79tbfjyUx1HA001WTHhseHh3rFx4dEB6dnps/PjXjfNkzNAt6nBOD
XaU5qdHBfslhzxuk9du7RwiK+TD8Qqtvb+zIT8iKfhga9iAoMuJFnqh8/1AFgvZXa+AwDD45
3a9RyIMjo54npjf1jl0YXBhJsyyLQN799eX9rbWry0uTxbZ3cLS0vOrzwTzPIZB7fXaksjgv
JDg4PPxZcXFxc3NzWVlZaWmpRCJpbGzMz88PDQ0NCwsNDAqPepHWO7qsAV6vlEdR7GD3qKGu
Ie55dJifX0piorKxVa21gtifdS9E07TH7lpeWu3s6tXqARTHeZ6/fdhAELhWe9Hc1hYenRj8
LPpFQnKlRHp6fg7odbtb66Li/LjIkFC/+4FPH8TGJ0oULcfXAIS+3AsH+/vVkqpnIYGh/o+j
Q4Niw4Nra+VbhwdeGMYI3GwxDvR3Zmck+T2+HxgQEBgSGZdWOLZ8aLBDt8MkXZ+re9saU5OT
wp5FxsQndfb2Xd3cEDimPT1srq2OfBYek1M2tKgy2y1L0wOluYmhwY9LZbLlAzXE8gzP667U
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
j5zbc83pdIIgiGEY5PPZ7A6TxQpCPvLVAUlRFILALpfTYbc57Da3y4kiMMswPMd5XK6ttY3M
tOyujl6TyWa22Gx2p9sDEiTNshzPcRxD4Sjssts0l2cXZ6carZYgiFfF+Xtj/UOpUbGqqSmH
2fS6uFmWQhHQ4zKajddnaqMJ8OEYf1uQLMtiOOp2O47Ue7l5GbV10q2tDYMB8Pl8LMvetq13
u912ux2CIJIkXx+oHhBCCfI7DcYEAsFfmpC/BW8ejud4nuZ5kmVphqZ9Pt/h4eHe3t7V1dXr
K9nvZ351hb7t9+ObV+vXU17+xfE8z3u93pOTk66ubrm8pqGhYW9v7+bmRq0+qqmpVTa3z61u
QzDC8LwXxdb2T+XN3Sl5pZV1LZNLG1qzk6D+nKe9HIl4DNdnre1DInGTRN4yNbNyowEIkuQ4
jiIRs/Gys1VeW11YIymqEJWMjAxpNBqCIPR63dzcXF9f79zc7NramlKpFIkqFAqlVqt9nQuv
rq4HBgZFIlFRUZFEIpmYGL+6usJxnGXZ0/Od1s6qvPzUmpq6vp7JksK6WmnP/MyuD0J5niVI
SAvs9g/1FRTXSKrb1teOcJT5zqNzjsRJ/ZmiUnw/KHZTb3ydv0kKNVk1/f1tVZXlFeWS5cV9
i9nzsoRxyGs6V033FmXHffrxb/7LP/3jg6CQisa2rpmVPb3JSdMmh2t6Zk5cJVYqlVtbWw6H
Y3l5qaOjo7GxUaVSWSwWnuc5luVu988r39yNNptNtaoqLxfl5uaWlJTU19cfHh7iOH59fTMx
MdHe3n5xcQmCoNfrXV5eHhoan5lagry+izPNYP90V/vIwtzm1sZxtbhBXKns751wOkCPBz47
u+7u7pmanNrd2R0dHVUoFJWVlX39fZeXl69ukzifz7e5uaFQ1GVlZTU3N62vr1mtFoIkNFrN
xMSEXCZra21Vra46HY7NzU2lQlFXW7u7u3v7rKa3tzc9Pf0f/uEfPvjgw5ycnNo6+fbOGoaD
LEuzLI0gvuvrq/7+/vz8wsL8kv6+4asrLYETPM/yHMVz8Ila1dxYmZOdUFCQWSYqSUhJ7R4c
vdSZx2aWu3sHe3u656cnamSS7Jyc3QP18NSCqLZldufc6PTxPzeOYUkffrS9PdjTplqcO9jZ
Wl9dKSkuqampW15Z88Evn5GwHK/XA9PT05WVFWKxuK+v7/ZRFf/qHPS43X19vZWVFfn5eSUl
Jbm5uRUVFQaDgabp25S8uroqlUrLy8ubmhqXl5dh2He7FxiGZhia+0aUf32+cxzHczwMwyqV
SqlUFhQU3B5jMAwzLMtyHAhCS0tLDQ0NxcXFJSUl3d3dh4eHKIKQJGk0GhsaGkZHRo6PT2bm
Fiuqa1OyCyZmlwwm66ujzrK5rmptVMrE5fKq8o5G5cHmOgaBLMMgkO/44CgzNUtaXTcxuVBe
IReJFV39ExqDHcUpjiFJ2H66u9LXopCUF48M9n8zf3/TQEdPjF/IwvCwzQC8mkagiOlga7Sn
tUJSlt/WMKE+AFjmZWzHcPT0bL+9UxkVHfT3/+k//vZ37yZ0COArAAAgAElEQVQmxhcXFy0v
LyMIAkHQ3v5+e0eHRCKZmprS6/VXV1djo6NSqaxvdHb/GvAwPCMEcIHgr0jI34I3EcfxsA8G
Vlbme3t6FHWK/Pz82/ilVCpHR0e3traOj48XFhY6Ojqam5tbW1vb29ubmppaW1sHBga2t7d3
d3eXl5e7urqam5ubm5tbW1taW5vb21r6+7qXluZ3djYHBvvLy0sTEuKyc3KU9Q19/YPFpeVJ
6blFFTKrzaE3WcYXVvIqatILq7LLpJklkkKJsql3VGNxYNQP1TJyLEXDZvX6ZLNMlJZZlp4j
yS2SJabkdfUMGk1mkqQsJu3KwkiNJF9Sli4uy0hKii0sLOzt67fZHDqtfnx8Ii4uPiEhsays
TC6XikRlhYV5NfKazY0tHwQ7Hc7ZmRmRqKy6WlxSUpSRkZ6Wlt7T26/TmwiSPDvfaWguCwl9
lJaSXl/bKRa15mTK8nPkS4ubVquVpHxGy9HoxEh2rtjPP6alqd/jRBj6W4/OWQLDb45qSkV3
/KPXdAbw1XSCQk127ehYb25udsSzF3WybvXh9ctFKJ/Pcb2zNFBRmPzV5+//13/6x4fBYVUt
3d3za7uAxUbTJqezpa0lJDggLTV5fm7O4XAMDw1XVYlFospV1fr2zt78wnJ7R2dLS2t7e3t7
e3tbW1t7e3tfX+/R0aEPhlwux9LSgkxWXV1dLRaLy8tFufl5o+OjRpPx+vpKoah78SJ6dXXZ
4bB7vd7ZmenKCllRoVSntR0cXCqVXcHBMSnJeXW1rbLqxsI8cW6WqLtj7HD//PpaIxZXpKYm
paWnVlZWSCTisrKytLS0jo6Om+trgiAsJtPC3Fx+YWF2Xl5JWVlhYVG1pHpocMhus2u1upmZ
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
rVar1erT01ODwWA2mwEAOD4+Pjw8PDw8VKuPjtUHJ+qDy4tjq8WIIhCKIjt761XSki/v3ams
lmsBi8PhslitBoPBbTc1KeX+Tx51dXaenZ2DEOxweXoGR6OTMvNE1aqt3R/YaAR0b092KUsz
ynLSTo5PzHb3yaVWLKtTNjSrVGswDHtc9sOd9caaqvL89KyU2MCgwPfe/+STz+6trO44naBe
Z8zLKReVimcmp6xWKwi6jo52A/0DcrJKN1QnHje4v6VqqikXl6Vlp0UHBz75r//tn58EJXQO
qNxe+OL0qL1BHhsZ0tPZ7vWAPgjZ3TuqUzSHRbwYGBrheJZhKQz3nZ4chj19WiOSWnVOivxW
/mZwzHt2qCgTB4QmrwOm1/mb4ziaoTEMVak2xJW1JXlS1ewWj3M8y/M8x7E0SaCn+2utteWR
4WGdXT0gjCA4QdAMzXE0y2hujkYHlFnpMdMTI16Xd3hwamJiRX2s8/lQl9t7owWOT86O1Mdq
9e0ePFKrj05Ojy1WEwi5z873ahWiZ5FPS8qzZ5emzU6b1W7zeD0YjlEUNTo2mJISPTbcAegu
KQq3ma6aWzvjM6p2zwxXRvv8uio8IVzeJNEAl16v12V3ry9vffre45rKRsjlXFzoqZJk5BUl
n56rPR63yWQeHBguyMjOTUi23Gj76xvC7z9oGx491uogn8/hcDQpWoIfhzfJ204OziAYPrrS
pJVV/Obuo7rO4YPTa6fLDQAGq83mQ2CKotwel2p95cH9e5WiSiNghiCIokiOZXgcmxsZjg0P
e/roUXJyirROIVY2+D2PeefLO6UNTSubG/ubq5Ehj+ukIiNwA4EeAABm5xai4xI7+wYtLnB5
Y7expS0zLeXRvS8/ev+9Dz78MDAsKrNQ1Ng7uq+xudC/zLuMHKe9OuvrqA8NedTUrHC6nJAP
GpkaTi9M7eprUx9tXZzsx8THpYrE/Rt7RrvD6/VenJ3mJyVWZmfN9PVrzi5FFfLPHwTNb+9Z
3G6bzTY/Py8Wi4uLi61Wq1qtlsvljx8/joyMLC0tLSstjUtMuesX+v7XT+o7+jwwcnmtUR+f
HqmPD4/UR0dHtyf71eUFoNcYjJcNTbKI5yGjk2PX2huLxTozu9jS0NzR0OgwmQiX3XKh7h3o
qaqV5ZQVJWSmffjVZ//0zq9KqqsOTtQe0Ns7OpRdWphZmHd2eQFCkNFoaFHKCzKTq0oLbBa9
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
0QMDAwqFQiAQjI2OFBWXTNG3WDKdFaWwH9XYChDgH52A/g7w4UFSJEF5LHbRyOhAaWlJYmLi
o0ePnj59GhERER8f39DQsLi4eHR0NDQ0lJOTk5aWlpWVlZeXl5aWlp6eXlpaOjc3t7i4ODg4
WFBQkJaenpqampSUlJyUmJ6Wkp+fNzY2enR0OD4+npGR8eWXX375xZdZWdnd3bTExMTnz5+9
eBHe0tISEhL885//rLOzMzc39/bt23HxCUXFJRUVVbFx8cNTM3qXx/f9UZ8UgQE+C3NzrjE3
NTwsMiUupSQ5vfTTLx7U1rUq5CoYRoT8q+G+psSYp0mxj7NSQ0OePw4JDi4qKtZoNDKpdHR0
9Le//c2vf/2r58+f5eTk5OfnZ2ZmxERHTU5MmIxGlVI5MTGRlJySmJQSHZvwPDzy3qNn9S1d
bIHMB8EC0SWtv/r2nU/CwyKryzvys5tDn2U/e5w6PbEqlyth1KnWscZedoQlPPu3//hpUWGN
XGyBoe9E35IQjAhlI/UDMdElHLXhzQQmBDtV2pvxyY7YxLDPbn2ekF64vnOC4hRJUhTh9dpF
R+sDNSXx9+99/LNf/89bT++lVZT1LdKZCqUBQSQabVV1zS9+/rNv7nw9PTVlNBppNFpyckpi
UtLm5iZ9aamltTUvPz8rKys7OzsnJ8f/d0lJyerqqsFgkMvlIyMjiYmJBQX5hYWF2Tk58QkJ
o2NjEqn08uIiPT39X/7lX27d+iopMbGwsCAk5Hl4Qlpl54hSbzGYbafM8+qKsrzMlNz0xNio
F/cePn4YEjO1w1KYPV6X82hlsSY/N/RJUFZmXnpOSWRK7u1nkRllNYvbu85vQ73JsdHRF2Fh
F2enHvcrkYRhiEmvfjnY0VCYVpQWV1Fak5lbE5daXljWvHfIhHywzWAYobU9v/dZ9NM7xcnh
Nbmxd7/54llyQc3Msdzh3T08rC4prstNrctObsjP6qhrKCysjcusreykH13LEerHpr9xwOVe
mJsKDnnw3//7/3X/3pPqyta46KxHD16EhcStrW5qNCqb3bC9Sy8oyr53715KSkpaWnpycnJa
Wur8/JzNZgVBcH//oKio6EnQk9j4yIKizIjIkOCQ57m5+Vqt1gdAEpGirrY1MzMnIzMtvyA9
KTkmKTl+YmqayxNIpbLy8or09PTsnJzU1NSMjIzs7Ozk5OTa2tqVlRWHw8ZhX3e0t927ezcs
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
O8N3P/vZzy+X9KiKXFpZ8ezWrfuffpSWnVkp4Mq2xYdMJrOsrIxEIhUUFOTm5ubm5tbU1Bwc
HAQCgWQyqTxV0ifpJVmlP/n+z3797pW8wpJxOuNEpwMROJmIne7tMdo76u8/+PQn//nD779z
r6C2Y3pBqFS545EgGD6z6oYmhx7nZP/611ff/flnj+89HekaNamlQOxl8fZQwLezLUp7kPHp
jbTHpApy09C6SB6IowiKIwiSTCTCIf/S0lJTS5vqzBBL/uk+PF+Aomg0Gp2bm33y5El+4dPc
p8+eFFfnV9RTZpdPdPpjpaqyqvLff/j9otwsEY8TcpvnKEP37t3/8bsf9dFXuLtyzjr3Ydrd
xw/u1JY/JVeUpWc+fv/TO1fuk5qGaKIjlUgs6enpzsrKKi0tzc/Pf/z4cUFBAZPJtFqtiUTC
bDaurS+Rawqv/u63P/rBT29fzyNXdLAYnGAghOFAOOLYEq43NbTev5tX8LQhp6gmt7i6d5h6
cHwSSyRj8cTCHCsz/d6jtJul+Y8qnj5599e/+vmVa/ee1vP3FZ7gV8XKf9SIhKM4GIEWZxfv
3r3z4x//uLW11Waz2e32vr6+9957Ly0tbX5+3u/3n6rUnT391++k5eTl5+bk5OdkNdVVCXmr
8bAfQxGZXPGio/vqJzfupmWUlj1LT8+4cuXKxx9/zGazLRaL2+2mUqmFhYV3bt+urq5+WlqZ
U1w7uSjRmDyvX7RUCtKdHkwOtj94cPfWgwcZ+UWPi0rbe/uEIkE0GvGY1ZvzIw8f3Ll+6+bj
nOzK2uqcfNJnN65f/eSTzt6eY6WCK9jMf1r0w5/8+FH249yi3Ec5j+49vEOZnvR4XbFIcJZB
S7t1M/PunZLs7NqS4qKs7Bsf3/jwg2u1Na3bkiOL2UmuaswnlZeV1GZnFT1My8l5UkyZYunU
5zgMgtGAmLtaV15y67NPfv2rX733/pWK6roV/pYzGIYR1Oaw8zZ5bfXkax9d+V8/+MH1O2lP
q+qGpmf0DmcCSsTizsPDhaGB0vT77/1///1HV99/0Fg3xJ4XXpzZ0c+TtNfr6e3tzsnNSrt/
u4yUPz00rJIeJOMxDENhCIrFozwBt627g80VGCyON3GUEAiEr0LkbwLhD8BQ3O8272xtLM0x
GdPTTDqLNbO4sSH0ecPI5wN0ITAcDYd0Oo3DYY/FEkaLTW+xO73+L3fY+GM4jqNwNOg7153O
Li1SWEwWe0EgEuoNBhAAcAyLRaJ6rW6OMcOgUFcX5k+2Bcpt3j5/WciZPd7e3BNySU8e5eY8
aWptpTJnmQtLy+s8o8kajydxDAdBSK1WLy0vzs0zOSuLAgF/b1e6ydteWxGrTgw2m9vtdp+f
n21tbTEYjJmZmc3NTbVaHYlEEASBIMhiteyI9+ZpbCZ1lsmYW1xakewdWJ1OFMdQBHYY9VIe
d51KWZyaZtDmR+iLa9tSvdMVSsbjcMIT8oh2RAtsNoM+y2JwFmZW+WsCj00PAS/TJILAfr9P
LN6ZnV+mzSxtimVGqxdGcRRFfV6PVqOWyWS8TcEql+/wBkD4z5e9TH1e+dLn852enCwvc6iM
2enZpa2dQ6PVEUsk3V7f9vY2bZq6xmEbztTJaEAtP1hdXaPPr4qO1Ea7x+vz7UhEnMW5OSaN
vTC/t7unUGmmFze420d6m8vldl/WYNrY2Jidnb3symy32y+LdPr9PqXyeG5hmsWiz88tTU0s
LrOFCrk2HothOIKiUDQa0qjPNtYlM/Pr9NmV5XWB3mKPxhMYhmEY5vd5T+THc8xpNmtasL4k
3NpibwgW+Ds2bxCA36aK6ziGo0lUq9IuLbGZTMb+/r7X6w0Gg1KplMlkrqysKBQKr9cbi8XO
zy+4vE3mDGtudpbP4+r1Z+FwEEORFI7HYnGjyczlbS6wl9hLS3w+f2Njg8vlqlQqv98PQZDT
6dzf35+bm5umUucWloW7R1ZPMAH+2Q2FA8mYy2HZ291ZYC9N0pmzbI5MeRKJRlAURYCIz6kX
iQRz83N0JoOzurK3vydXKlbX1/cPDk5Vp6PjY6T8/Hv3749OTrAW5xdXl6TyQ4fbiSAwhqIu
h0O6t7fIYrGmpzlz8ydHsv3tg7VV3vr65plOn4gDdrvzUCpbXlpn0OcW5jli0Z7T6QaSSRyF
UTCmOTlemp9hL8wyGYxpGp2zsn6iOQvFARTDItHo2dnZIovBmKbMzMxQ6Mw5zprkSOaPxgAE
iEa9Ot2egD8zQxuiTjLp00vLbIFScebzhV5do0EQZLGYRaItJoO2PDurOj5KhEMYiiQTMYfd
tLsnWuWtrmzy5FqjNxR77QYkEAh/Q0T+JhD+AI4hIBBz2swmw4XRYDCbLEaD2Wy2AUnoVU1L
HMNQBEkmExAEoRiWBMAkCMHInxp18CvmAQIJk9VybtAbzCaXxx2Lx/HPq6JDAGg2GPVnZ1aj
Mep3J0LeiN/lshoMapl4Y7EwNysvN6+1o1e4J1Ofm2wOF/SFIQ5isZjT6TAa9Waz0eVyhsNR
nzdot3v8vnAiAaAoAoKgx+M5Pz+/rKP5qhYgiqLRWNRpdxnOTRaTzWyyms1Wh8sdjcfxVArH
sXgk7LFZrednVoPRYrGrzwxmhzuSSIIIDGNIEko6XA6z2WwyWSxmh8lgtZqsiVgYRV4Wfbys
9R0IBM0W27ne5HQHYgkQw3EQghRKJZ3BGB4ZnWcvH5+oIrHE16qzjmFYMpGwWKy6c/2Z3uTx
BZMAiGE4AIJer9dsNtmslkg4iMJgyO91OJxmu8vpDcYSAIogwYDfZjHrz8+MBkMoGAQh2GBx
2FzeSDwBgiAMQ8lk0m63GwwGk8kUCoUuyzGmUikASPp8Xr1BZzYbHXbXmc5kNjr8/jAMQ59X
PsXj8aTL5dMbrOcGs8XuBCD41WphGJpMxEwGvUl/7rJbgsGg0+OzOL1JCMb+UZu6vxqewhE8
HAzbbFaLxeLz+RKJBAAAPp/PbDbb7Xa/3x+PxzEMSySSHo9Hr9cbDAaXywmC4KsSsTiOQxDk
8fosFqvJZHK73R6Px+PxBINBAAAuC6cHg0Gz2azRaAxGk9cfgpC/sM8yjqJwOBSyWK268wuj
yRIKh1+Os4ejCJT0+b1mi/ni4sJisQSDwSSQdLndFrNZfizr7urKzc7OevyYvcKRn55Y7NZo
PAajL0M/DMPRcMRiMunPzswGQzwai4SjbpfXarUHg2EUxXA8FQ5HzGbrxbnBbLb6fAEEQS5L
F+AoHPB5jIYLq9ViNpsMBqPZYvUHQiCMXp4m4VBYf64z6i+sNtuF3mAwW5xeHwgjCIaAUCIQ
cNqs54YLjdlkNRqsRqPN7wt9sdTo5Zd4vV6D/sJsMIT8fhxFUjjmsOq3+Itd3Y0jk8Ncidhg
90ST0FduNQKB8AYQ+ZtAeDsEXNYj8UZHa1N9fePQOFVrdEWBt6mt9I9hGJ4EwN29g96+gabm
1sXlFbPdAf3FpcUJhL+FUCB4qlBSJibra2qf19RK9vY8Xxof8G2E4/oz5cLMcG1tcf9ov0h6
4A6E/sIbTQQC4W+ByN8EwtsAxxEIiEeCHpfL5XJ5/YEkCH+tduJ/QDieQlAsGot7vV6Xyx0K
hyEY/kvvIRAIfxsogiYTSb/f73I6nU5nLB7/5k91/yMAgWQo6HM67V6fNxaPwwhKnGsEwt8R
kb8JhLcCnsKxFP6VVe3fYjj+D/tsIYFAIBAIfytE/iYQCAQCgUAgEN4cIn8TCAQCgUAgEAhv
DpG/CQQCgUAgEAiEN4fI3wQCgUAgEAgEwptD5G8CgUAgEAgEAuHNIfI3gfDWwhAMBmJxOJbA
ADj1lo9G+FeKxyIOq0lxfHh4KFWeqpwuTyKZ/HsvFOGvhOM4gsAAACQSSYQYII9AIHx3Efmb
QHj74DiGQkA84HAZtXKFQWcM+aMp5E0U08BTqb8uEv3VE/5JGIaBQFKvU20sz430d/V0dw+P
Ta7zBHqDiRhH/G2EYWgiETOa9BqN+uzsIhaLo+h3bcBNAoFAuETkb8J3xz9P5EIhIGzVSjlT
w/XFOXnVo3ShwYOBf/PCkVgKR/7aMcjRVAq+3EXfTjs9jgOJ+IXmZGq492l2enNdVWNDQ3lV
7YPM7JGpaYvDDRJ1NN82iUREpTmuqCopKMzv7u6z2RzI3/qa8uWY+t/0iMRx/J/nlw+BQPhW
EPmb8NaDIMhisdhstkAgAEEQhn3328wwBE4GXdptDqO7Ni2jpI+6YQni0N84qyAw6HWY9Oe6
c70RBMGvNS0Mx0Mhp1p9brX6ADD1zXcRjmMBv3eWTpkY7J6hjAo3uWKRaG5x6UleYUllDWNu
MRAMfdN5EN4sEEoYTbrOzpbCwvyamudms/UN5G+v26lVn5otllA4gn2dS0MEQYLB4Pn5+enp
aSKRIPI3gUD4Woj8TXjrxWIxiUSyt7en1+vj8fg3zN84jmMYhqIoiqJf/KovNnFd/oxhGIZh
r37AXv3/Ne1pOI6hCI5hqc9LP+I4/pWfxjAUQWDkD5fh1bdcziFo1e2vMvJLGycWhG4gBWOv
psUwFMUxDMe+XrMcjuMYhqMY9qVJcRzHUCQc9O9srrAXZld4gmAk+sfNhl/cJr9fVBzHcTQY
dCiVu+PjM0KhIhLBEeTlR15N8oUVx/54lXE8heE4+vmy4XgKwzG7zVJd9Yw6MeKwGGAITKVS
Lrenpb0rI5tU/KzKZnf85StO+Ou9LGH6+1MDRRH0q47bL54pf/w1GIYhCBQIeLYEGx3t7XV1
DV/M3xiGIQjy+RegX7fF+nLWCIKg6Ms+5S9fgcGjgx3qxAh/U2AwWUAYQVAM+/1p/vkvAhRF
v5DNL6eNx+MKhYLFYk1OTnq9XvwPfXG9/tQqv9puRHInEP4JEfmb8NaLxWLb29t7e3sXFxcA
AHzDhigYhuPxeCQSiUajiUQCe5mVcQiCEAS5/AyKoiAIJpNJAAAuf7j8OZFIADAMp1J/IiBg
GAomol4IiOF4CkVTCIwhMIqhOI59ufO+g4cZAAAgAElEQVRMPB71eF3+YDABANiX1ghHUhiY
SuFB69nBOqukun1qWeJMvszfGIYlY7FkNArG42ASQpC//GoEh2A0loAi8WQsCYLQyyyC4zgC
Q7FwUHd63EguaW9vXROK3eEYgKfgP1xNGIISsRgQjyOv+n7gGI6CEBRRKnfGx3tIpHIGY8Mf
QBMAiqDY5cN2yWTi1VXTZawBQfCLWwNPpSAUj4NoJAFGEkAsCSIojqCYyWx5WlTUWF8nEvBj
0UgqlfJ4vZ19g6Ti8ur6ZqfL9RevOOGvheM4imIYhOFgKoVjOAbBYCgUDEdCAJD40uUrgiCx
WCwejwMA8KU8imFYMpEIBv0Wq3FnTzw4ONDU1Go2W1+dcbFYzOfzQlASAOKxWATDvl67OIIg
iUTC5/NFIhEYhi+XOplI+Jy2Gep4SUHezMyMUqUJROLhOABAyOUZB4NAPBKKhILhcCgWi6Ff
+FWQTCZtNtvU1FRdXV1LS4vRaARB8OXFAYq+SvkYhr38tfBHq5zCcQyFcQzFUykUT33379kR
CIQ/RORvwlsJT0EgFLJYTCcnJ2KxmEqlTk9PczgcuVx+fn5usVhcLpfJZFKr1aefUygUJycn
Z2dnTqfT6XS+elelUl1+QKVSabVak8mk1+vZbPbg4GBPT8/Kysru7u7Ozs7g4ODg4CCLxdra
2qJSqe3t7RwOh8Fg9Pf3MxiM2dnZGSZzYmJCuLvrjkSAr3pwDIUiAZdGuDI1S+mlT42urfIY
9Pn+vpHRkcn9PWksFsNQDEEQv9+7KeBOTo10dLW2dXbOLrBP1dpoNIaiKALDAY99X7jOGOmk
D3VQ2qu6yaS03PKRRYETSMFYKhAInSpViww6ZbB/anBgnjV/JDv1hBIxCHV6PGrNqVxxpDyR
qdRK5YlMoTw+OZVf6M+CQT+KIpFIUCqTTzLm2roGOvuGhsYmR8Ym9vcPYtFoOOjfFvKbayve
+8W/X716Jbu0rGFwjLN7aAlGIRQNRaKas/O5uYWJ0fHxwSHa6Njq3MLxzn7QHYCTiVjEtbfL
6ewk3779yQ9+8E5a2tOREfYKd9tgtscT8cMjKWuWRaVStVptOBwOBoNra2vT09NsNjsYDGIo
mkgktBfGxXVB5zC1Z3S6rW+ka3BMuCO1Oz2BQJDNZi+x2ceH0lgsGgxHjuQnVXWNNY2tMwtL
wVD473Bc/pPBUBSIho+PxBR63+h479w8c3Vtpaenu7u7c4ZJczgtMAygKBwKuw8P92g0Wn9/
f09Pz8TExMHBgcfjwXEcRdFwOKzRaEZHRzo62zo6mxubaiurKtvaOux2B4piAABoNOfLyyuD
g/3DI73T0+MbGysOhz0Wi0UiEZ1Op1Ao5HK5UqmUy+XHx8cKheLyHAcAMBKJ6PV6DoczOTnZ
39/f2dk5NjbG5XIDgYDfH1AqFFPDvWm3Pvvh//q3x4+zGlpeUGfZGqM9FAdBCHI4nOItPmVk
YHyob3R4iEqlbgmFer0+Go1GIhGZTDYyMnLnzp3f/va3n3zySUtLy9LSkkqlSiQS5+fny8vL
4+PjUqkUgiAAAPb398fHxznLS/qLixSOpVDAZtQJuSvTk6NjI0Mjo2PdA8OLq3ytwQaA0N97
lxIIhDeEyN+EtxKeikWixq0t7uTkZGtrG5lMJpPJjY2NY2NjbDZbJBLJ5XI+n0+lUicmJiYn
JycnJ4eHhycmJubn56VSqVQq3dzcpNFoU1NTFArl8gMUCoXBYIjFYqlU2tzcfPPmzXfeeefB
gwdNTU39/f2ffvrp1atXMzIyurq6bt269a//+q8NDQ1ZWVm/+MUvsrKyCgsL8/Ly7t+7NzQ5
aXC7EzD8x/kbTnis2q2BxqyMz376u3d/XFFKzn7y9OqH1977zdXOjh6j0QSCYCDg290Tl5aS
7qVdu3H7k6uffJZX8HRsgqLTnceisXg0fCBc76guTPvgJ1kfv5P3yc+yPvnlBzfTe2bW7AAe
AVGZQjU2MvEsL/vJnRuPbt8oyMkfGJ4WHZ+Z/XGpUslgUoeGe0fHB6aoY2PjgyNj/ROTw0vL
cxcXWhBMnJ+rRiYm7jzK+83Vz65eu3U7Lf2zG7cnJqY8bpfHaWdOT97+9Or/+L//r//+P/7b
j379m3fvprdMMk9s3iSEWJ0uDneTRCq8fe3mjQ8/uvHeB49v3G6tqNUcqmKBgN9rpNPac3Ju
/uQn3/8v/+X/+dGPPnicRX7RM3EoVwWCAeYMIzcv59atWysrKzabzW63t7S03L17NzMz02g0
wjDkdrspMwu5ZbXv38q8lp73/vX7V2+k9Y5QTzTnKIpGolG3x2O32wOBgFKlZcwtlVXVjlMZ
Or2JiDJvAIogUb+XQe+/fucX//Hz76U9vFlbV33jxo333vtt2v3be/uCYMgdjQWO5YKunua7
d+9ev379s88+u3fvXmtr687OzmXDsEqlGh8f++TTT67+7v07dz+7dv2jjEfpbW0dTqcbgmC7
3UWlsCorqtPT027f/iTz8f3n9eRNwabRaLTZbPPz88PDwwMDA6Ojo0NDQ/39/aOjowsLC1Kp
NBQKGQwGNpudl5d3+/btmzdv3rhxIyMjo6mpyWQyWSxWPo/7NCfjh//ze//yL//nO//5n9fv
pJXWNO2fngdiQDyZVCgUAz0dGXc+u/PZ7z7+3ZVPPv20qKiIzWa7XK5AILC2tlZQUPCjH/3o
e9/73g9/+MNr1641NDRwudxIJCIWi0tLS999993+/v5YLAaCII1Gu/bZZzlPsjbW13AMQhNe
8Rqrpigr/c5nt29cu3bj5rsffFRIbloWSsPR+N97lxIIhDeEyN+EtxGOp6KB0PnC4kxHR3tl
ZWVRUVFeXh6JRKqpqRkdHd3Y2JBKpfPz862trXV1dfX19U1NTc+fP79M0gKBQCgUstnsrq6u
5ubm5ubmtra2tra21tbW1tZWNput0+msVuvm5ubzuuc//Y+fPn1aLBSKjo6O19bWWCyW0Wgc
HBxMu39fIZezWKzi4mIKhbK0vLy6trbMWVFptCAMf7nHyOVCY0g06NjnjtcX37378btTE5T9
vaPDw+P6580v2jrXVtfC4ciWcPNZRfGT7IcTk0NanUqp1vQPj2bnkmjU6TOt2mkxPC8jNRRn
zY50aBWHcsESvbvu6t3HL6hsfQRV2IP9k7TCfBKPPadVHKqUiunJ6ara9rLnvQdqw6Zke2Cw
p6Gxtr6hprmlvrm1oam5vrWtcXhkQC4/DoeDq5y5vqHBruGJHans7MJwdn4hluycnqr8Ph8I
JIMBv3RvJ+fhnafFhZNzc3KN1uUPJiEEw3GPP6jQnO3u7K+yl8e6e3Pu3Hv/33/6u3d+zVvc
8Do8CAIGAu6dHV53d9Od25kDA1MWi8Pt8ccTSRAE9Qb92NhYaWnp1taWy+WKxWJ7e3sdHR3P
nj0zm80QCOr1hqz84sauwV2F9sxg1pwbj0/Pjk51To/vsvUUhuFwOCyVHk5Q6M0dfSsbm+cG
EwBCX7kLCN8uHMdRBDlR7fSPkD/+7JeVVU8FAr5Go5mYnCgsyptfpGq0B2cXR/VNheUV+T09
PXK5XKfTCQSCrKysjo4OpVIZCoWoVOqdO3f6+npFYuHJiXx0dODZs/Lq6jqb3WG3uflcSVXl
87HRSZn8WKM95fJWevs6KyoqV1fX7Hb7xMREfX19VVVVQ0NDY2NjY2NjS0vL+Pi4QCAIBQN7
u7udHR3NLc3LnGWDwaDVand3doRbWw6HIxqNhkNBveakt6Pl/p2bo2Pju/sHdocrmkjCKApC
kNlslu5KOHP0kYHu4qKCD69e/dGPftTe3u71ekEQjEQiKpWqs7OzsrKyra1NLpe7XK5IJIKi
qN1uX11dzc7OplAooVAIQRC5XD4wOPisrIy7sYrC8bBTNz/RTS7IlPDXzrRq3dn51vYeVyLd
U57Fk8Dfe5cSCIQ3hMjfhLcRjqfAJOBXq092dnbW19cnJibGxsYYDAaXyz06Orq4uLDb7Wq1
WiwWCwSCra0tkUh0+e/+/r7BYDAajRqNZnd3VyQSiUQiiUQikUjEYrFYLNZoNMFgEEGQU6Vi
sLfn7u17gwNDDocjHk+4XC6DwQCC4Bpnqbq8eHdbzGQwKqrIzW2dU4w5rnhvV3Zid3tfs9xA
LHS2Oz/WUlBFSjvc3w8Gw36/f3KS0tXZzaAzAoHAxMTYRx9dmZgc1mpVMAKBMLzJW39eWdpa
X8tb48gO9x/dv9XVWK0/OQST8bBDf7Ax+6igfGhu1RAGeDJtCbnut+/+srmqhDLUMzU2UlZG
vvO4NKO8fUdnURnMUum+SLQlFApEYqFYIhKLhRKJSHp44HDak4mw6lAwOTFc8bylb2RqeY17
LFdeGEwery/5shM8breZywue1DfUbUh2I7HYq5VyuNzinb3x0dGJwf6Z0SFqX1f+g/ufvvfh
PHvT4vBffuZMp6RThgrz8pcWOa8eZEMQxOPzz7BYZHKVUCh0u90AAGi12qGhoaqqKpvNhiKI
w+lq7RqoaenpHWPMstd3DmTnJqvL64//vsgOEgq55uYZA5PTU4u8C5MtniDq77xR5/oT+sxg
Hil9cmrE6XTAMMzlccnVlQzm1OGR+OBwKy39s/oG8vHxcSKRQFHUbDZXVVU9f/58fn5eLpd3
dHTcu3dve3s7GAxGo5GtLX77ixd1dfUOh1OpVPf2DH/0u8/y8kijoyPj4yP1TU2P84ruPipi
La6Ho9FjmWxra4vP5wuFwlfn8vHxscGgB5Lxc+3pHJ3yvPpZV0fb4sL8/oFUpdGZrbZINArD
MIaiiWiITp3Mycpc5nCsVlvq80erE4mE8uRkhkHrbGuanhofHhqsrKz6+c9/3tDQYDabIQhK
pVJ+v39iYqKpqWloaMjn873aGpFI5OjoqLCwkEKh+P1+BEG0Oh2dTq+rrdnkc1E4kfCaRUu0
jpqS/vamWSZdKJJsHxyf6AxObxB+I2P4EwiEfwRE/ia89eLx+OHhoUwms1qtl38avxUnsqPx
gd6GukbhlvhLb0l3hP1tz4f7u7o6O6pq6u5mZFc0djLXxXsaoysYfc13QvGQeZ+90EceaCzx
OKw4jodCofn5hf7+gcu/1h0d7e+88/PT0xMEefkIo+Z4l9LTQC7OnZ4a4/G4t27dHBseBONh
HEOhsPviWFxW00Bf5VsiMbZw93Fe/g/+5/fuf/oBKeNu/pPMe+lZaQW1lX0suSMYfd1fdgxH
EmjQwF2ZLyyvvp+ZV1xRMzxB2d0/dDrdyMvBSjC71VhKyqytrVnb2g5HY6nPH75UqTWjo2PZ
menPK0o4jEm9bHei50Xmw4fUtb0zx8tBAHUqBW2sr5T0ZIW9ePlwGp5KwQjqDYZY8/PV1WSh
UOhyuQAA0Gg0g4ODlZWVDocDx/FYLL53qGjrHr3/uDi/tK6zf2ydv2mxmhKJVxcAQCBgpNEH
6Svruxf+GIh87T1N+GbOzjQzM9P19bUCweblK0KhsKm5aWaGub+/I5YIPv3sdwMDfclk8vIZ
RK/X29fX19jY2NfXt7q62tDQkJOTY7VaU6lUIpGQyY5HRkZaWlrcbvfuzl7Fs6qf/OQ/rly5
kpOT/ejRw9v3M64/yM8u714VHr92GBQ8lUITYd+ZYr+jsfopKbu4qKCnr58nlJid3jgAohiO
oWgsGpmaGE9/+GB5edlm+zx/Y3jAH5ybm6usrMjNyZ5lscRi8dLS0vXr15ubm3U6HQAAl2sx
ODhIJpO7uro8Hs/LueJ4LBZTKpX5+fmTk5OX+Vuj0UxPTzc3Ngi3BBgKY4mQ6VS6SB3Ky0wr
ys9ra+8cn2btHyvDUaLeEIHwT4TI34S3XiwWE4lEYrFYq9Ve/mn8VpypTpiTY3Xk55u8rT98
BzdqlTPjvfdufkKuqhyfmr56/e7D/GfDrLVTuz/82lG44UTEJefN95LbK3LtFiOKYqFQaGlp
aXh4mEajBQKBiYmJmzdvSCSSYDB4Ocn+1lpHZV5DReHCLF0sFt+7f390ZDgeCWEomgw4VLu8
vKfllMUVRyyxsSd7Vl374M6N/R2h1WywWix6s0VjcmrtwQiIIq/pjoFhOAzgcX/E7zaarTtS
2RRjtraxtfRZ5SJ7KeD3IwiCY4jVdF6al1lbXb26KQ5HY1gqheIpPJWiMxh3bt/u72o72BGH
fO6k1zIz3v8oI31wUXBieXk3QHsqmx7pLiNlrizOIjCC4ziKp5Iw6guF5xYX6+pqt7e3PR5P
Mpk8OTkZHh5uaGhwuVwIggBAMhaLuz0+7ZmBK9jp7B0qKX82NNKvVB7jLysBAUnApdLsKc71
Fz44CRP9Tt40vV6/sLjQ2Ni0tbV1+YpIJGptbV1YWFQoFDKZLONRxmUj8eV4Ji6Xq6Ghoba2
dmJiYmdnp66u7ubNm0ajMZVKJRKJw8PDkZGRFy9euN1uqVT6ou0FiUSanp62WCxms9lgMp8Z
bad6jzuQeO2OxlM4iqEwkIh7XE6zUb+/t1tVXVNe2zhInVUbbJEEiKJoJBwZGRm5e/fu8vKy
3W6/HKTlsoX+4cOHZDJZIpG43W6fzyeVSm/duvXixQuLxXJ5ke/xeLq6usrLyzs7Oy/z92WH
qEAgcHBw8PTpUzqdHg6HURRVqVQUCqWtpVkiFqVwLIWhUDIeCnisFtP+/h6VxsgvqXzePrC8
tUf0/yYQ/nkQ+Zvw1rvstKDVau12O/yNqx4iYCIWdDtM5/xVdntTfXZmzuTEtNXmSiQh9GXP
CdzrsPCWWB998OtqciVnjZueU5BVTO6fXjR6Q8BrGrBQKBmwn/JoA9U5FTn3tKqTaDRqs9kG
BgbIZHJnZ6fT6eTz+dXV1V3d3Wvra1qNWi07oPa3VWbfo4/1KY4O1Gp1QUFBY33d5jpHrTg6
2Fym9DRe+fh6fe/Yid2vMTt6+voy7t9eX57TnsoM+ovjU7VYrttR24IJCH1NWkEhIOTSbq/s
CdZFOwc7h/LldX7f8HhhcSl1mmazWiEIwjHUYTU1kktLi5+29w1vH50odEaNwZoEISZz5vat
W421VavsWd3J8ckOr7Gi6Le//Q15gMaXnQVjIIphZr2OzRjPun+9t6NNrlQdnp5pLB57CPCH
Y/OLiyXFxYODg0KhUKlUDg0N5eTkZGZmKhQKr9drtVoFQrFoe/9Ifrp9IBueoJRVVrZ3tkil
u5etnxAYspjkIyNtvZPUBbHaEwVed6VB+HbhKRxJHR/Junt6cnJy5ufnQRCMx+Nzc3O5uXnd
3d37+wdms7mt7UVrayuTyTw5OdFqtVtbWyQSqbm5WSgUmkymwcHBO3fuzM7OHh0dHR0dDQ8P
k0ik7OxstVqt0+nYbHZxcXFfX9/+/r5Wq5WfaiRHapHMYnJFXrtgGA7GrBfqfRH/+GBHpz5V
KuSd3T2l1fXPOwaONYZQDMAwLJFI0Gj0hw8ftre3r6+v63Q6g8EQCAQMBkNaWhqJRJqZmVGr
1QqFYmZm5r333issLBQKhZFIBMfxYDDIZDLJZHJZWZlQKFSr1Xq93u/3BwIBpVKZk5PT1NQk
FovVavXMDKu4uDgj/eHC3AwYD7qtFwrptkSwYdSfyWXHs/ML5dX1NW19dM5mIPy6u2cEAuG7
hMjfhLceiqKXw3V/xSC7Xx8Q8Tkv5NsbC0NdrYW52Tev3aqtbeELdt3eMPT5oCaxcEh2sPMk
I623p3v/UNbWM1jfMTA5y/EEw6+bPRyL2jX86a7npHv5D28c7G07nU6tVltVVZWZmUkmk/V6
vU6nm5ufL3r6tKGhgUadpPS/aHmW97wkR74vDgd9Xq+3v6+XXFFWTy6nDnUPt1ZX5KT9/Fe/
za/t2FSaw0lohbNcmPuku7mGNj44N8MYnJjuZ6wwBXJXKPG6ccAxMOw6Xxuq66qvqG3tnqDN
ziyu0FkLLW0di+yll716cNzvddPGBp6VlTwpKH0xTJuY31iXHEViCbFYUl1dXZj3pK2ezBjr
pw+8yH9091e/+s+c2k46d0/vDIIwGvA6dwRrT9JuFhfkDYxODjA5KwcanTseigFcLu/Zs2ek
vLzOzk4ajUYikT788MNPP/10bW3t/PxcqTypbWitaXwxNEGfW14do1Dbu7uotAmVWnm57PGo
RybdSLv/0a3M3IYxjsEbhoj8/abgWApNYALeVklpyaeffTo+Ph4MBt1u98jIyPXr10tLSzc3
NwOBAJ/Pb2lpueySQaPR+vr6CgsLqVSqzWZLJpNcLresrKyqqqq7u3t4eLiwsPCTTz65fv26
SCSy2+06ne758+fl5eVtbW002vTIBP3F0MzY4r7y3P26JcMQLBGQbi73N1X1vWiYoU1trK+N
T1Lauge6RihqvTWWBHEch2GYz+eXl5fn5OQ0NzfPz8+LxWKz2Wy1WpuamkgkUllZGZVKpVKp
zc3NH3744cOHD4eGhpxOJ4qi8XhcKpV2dHQ8fvy4q6uLTqfzeDyLxRKNRk0mU0lJSUFBwYsX
L6hUan19/e3btz94//2x4T6/40J7uEUf7mioKFqcpS+xF6Zp9I6+4UHqzJp4Pxwj2r8JhH8W
RP4mvPUub/t+Zcm9v0Ii7DWo9hnjfS21lSUFBaTcgtKy6t7+Sb3RCQAv+xZDIOBx2oX8DaVC
7vJ4j5Sqban86ET7Z4YvgOMR5zmfOdReVUh+mrfJ4xoMhrOzs8bGxrKyso6ODplM5nK5HA7H
0vJyV1dXdeWzhmdFrIkB9fFuNBRAEQSCQIvZyJ5nPSc/qyzO62msmhroqKlv7hxnru2dhuNJ
p8O+LdqaGu57XlVeSMoj1zfPrgn1nhgAv7ayNo4mIx4Ff3aouy2nuCL36bOicvLzprbZebZW
dwZB0GUxERBIGnUn87MzlTX1adlF/ZPMc4sLgOBoLKY6PW1pqCsrzK0tL5zsa5ubHqfTaGVN
fePzPK3FDUAwAgMuu4k5NVZW/DQzO3d0ZvlQZw6CGIRgDodza2uLTCY/e/asra2NSqX29vY2
Nzez2ewznc5ms/UNjTyrqS94RiaVlFbU1g6NjZxdaOOJly2FYDJkPD/ubK9rHxhdECrd0STR
AfyNwVAcCEMCnrCmtuZJ9hMajeZwOBwOB4vFevr0aUNDw/r6+uWAfWKx+HJYm4qKis7OzoOD
A7fbDUEQiqJut3t3d7erq6uioqKioqKvr6+7u7unp4fH45nN5ng8rtFoKBRKWVlZTU11XWNr
5yB1V2HwBBOvXTQ8hYF6tWyOMlxVUlBVXtxQX1deUTkxzVBoLiLx5OW9LBzHbTYbl8utqKgg
k8mjo6NHR0c+nw8AAKPRyGQyi4uLnzx50tTUxGAwpqamOjs7u7u7DQYDAAAIggQCgZWVlerq
6oqKisuBlUKhEIqi0WhUIpH09/eXlpZWVlYODAwwGIz6+vpZBtWgkXtt5xvsmdpnT5+VFJaV
FFeRq3uHxrZ2DtzBMIwSz18SCP8siPxNIPwBGIgHPDbF0Z5ka5PP3eBxeTze1s7uoT8QgT9v
Q8ZQFEwmvB5XOBQCADAQjnj8QV8wjLx++AIUBqMBg1q2L+KL+FyD/iIQCPj9/u3tbYFAcHBw
4HA4EokEBEFmi0UqlfK4G1vctTOVIh4JYiiaSqVwHIMg0Gi4EAs3uavL+5ItteL44PDo6ER7
bnGBEAyCoN/rOZEfC3gbS2w2f0ukM1jiEPba9J1KpXAESvqs5zLpPmedx+asLa9uCITiswt9
OPz7u/wYhiZiYYP+XCTeZi1ypLKTSDx5WRQwHovt7+5w11b46yty6a7hXGsymQQ7hzL1hTcU
Q1AshWNAMq7XaTf5vPlFtlx95g5GIDyF4SkAAF0ul1gs5vF4EolEp9OdnJwcHh5qtVq/zxeL
xY7lCr5QxNngLnJWuJt8mUIei0exl52/UygChoNu2fHesfJUb/cn4K9R8JPwDeEYDgOoyWAS
i8Xr6+unp6eXd6K0Wq1AINjZ2bm4uIhGoyiKulyuw8PDjY2NjY2Nvb29y5ya+rycpN/vPzw8
5PF4XC73spiOUqnU6/WhUOiyl4hGo+FyuXw+XyAU7x8p3f4I8NoHLVKpVCqFhQLeM5WSv7G6
sbayyedtbHBPVJrQHz7mmEwm7Xa7UCgUCARHR0culyuZTF42jV9cXHC53IWFBZFIpNVqLy4u
jo+P9/f3A4HAZRFNGIZNJpNEIuHxeAcHByaT6bJrOIIgPp9PoVBsbGxwuVyZTGYwGA4ODrTq
U7/HAcTDxgutaJO3trK8wuFwebzDY7nd6YZR7BvW7iUQCG8RIn8TCAQCgUAgEAhvDpG/CQQC
gUAgEAiEN4fI3wQCgUAgEAgEwptD5G8CgUAgEAgEAuHNIfI3gUAgEAgEAoHw5hD5m0AgEAgE
AoFAeHOI/E0gEAgEAoFAILw5RP4mEAgEAoFAIBDeHCJ/EwgEwhuGIwjk93kcdqvDYYvF4whR
+JBAIBD+mRD5m0Ag/JP7U0UHcQxF44l4JB6PJQHkz1YR/YtmhWMoEo0GLebzbfHmxiqbu758
rFTY3T4Awb+NGfyDwnEMRqBIJBqLJkDwr1zVL5eHxHEcRaFkMhoKed1uj8cbDIUgBMFefQzH
UQSORSMBv8/jdnu9vng8gRE1JgkEwj8AIn8TvgswDMMwonoz4evCUykMx9GvPnYwNB4JHxxJ
eXt7EpUmmEii3/j4wlAkEfWLNjmNdWW5j+/lZd0rImU+evJkkLms8SEA8p09gCE46fbYuBsC
iejIqPeAAPJ1vwHHcRRFMezz0vE4hsEQFA2ZVMrNxfm+9vae7t6ZhSWzx5d4mcDxFALGfM4d
wTplfLjjRWv/4PDu4XESQYkITiAQ/u6I/E1468Ew7HK5XC5XKBRCifv4hK8jEglYbSaz1RcK
J7/8Hob6va6xqcnajq4OCt3hD3zz9ulkMq5WSOcYE90vGqhTI/MsGo06kVtYVFDfPbC0Z/RG
v6sRPAlEtWdKclVde+uwaFMRjVssVd0AACAASURBVCT+8mkxDAuFQjabzeVyxWKxl6/iWDIW
Vh3usKlj/c3P+9tfNDY0keubh+nzx9oLCEMRIGo9OxGvLdBG+4Z7OzvbX5SWV7R09rI3Nt2B
MPwdvtdAIBDeBkT+Jrz1EomEXC6Xy+VGoxEAgH/sVvC/ctm+4UrhOP6PvVn+DvAUjmLwhV7F
21wV7aot9uAffQT1eJw9/f2FldW1nb0Ot+ebzzQUDCywaBPDfYuzjFAwmEqlvH7/4Dgl7Wnd
zZIXu2fOMPjd3E1JIKpSy/LyCsmVresru5Fw/PN38NefFDiOwzCs0Wg2NjZOTk78fv+rd0IB
zyJtrKOuvKW6dIOzODk5VVxRfTOzcGp+JZxMJgM2weJ0QzlpsL1xkUVfXVmpq2988Dg3q7Bc
eW5KQMSFOoFA+Hsi8jfhrReLxba3t3d3d8/PzyORCIJ87Vvb35Y/l3ExHEf+wgiO4/irW+1f
vvP+9ZcKQZDLyb+VFP5tR/k/lcDwPxvOvgkUg6Mx+wZ/9kVXy5rg0GwP/OGiYKkUhiCwx+u1
Opw2tweA4G++3l63u7fjRWNN1dTosN/nS6VS0VhctHuYQ27/VVqpRGMPQ990Fm/e66/ucDyF
YRiKIUkgYbXaHA53JBxH0cuDGcNwCMdfF4VxHAdBkMPh1NXVKZXKSCTy6q1gwDdLH58e7+Gt
stxOu9FkWVrbvPaQ1DowdWFxhB36kbbaa7/5OZs+btCpAoGASnvW0NZ948GTXbkqHAe+tfUn
EAiEr4/I34S3FI5hSCwWi0QiTqeTy+Xy+XyZTOZ0OqPRKAiCMAwnk8lIJBKJRMJfEI1GAQAA
ACCZTEaj0VevRyKRaDQai8XC4bDD4RCJRPPz87OzszKZ7Ozs7OTkZHZ2ls1mi8Xiw8PD9fV1
JpMpkUh4PN7CwsLGxgafz+dyubOzs1KZLJRIwF/1rB6OJWNhy+H2qpC7INpclUjEHA6HwWBw
OByNRgOC4GVETiaTKpWKw+FMTEwwmUyxWGwymZLJ5Pn5+erqKovF2tjYkEgks7OzKysrYrF4
fX2dzWbzeLzLNT0/P+dyuQwGY3p6enNz02AwxONxp9N5eHjIZrOZTObW1pZWq9VqtVwul0ql
bm1tWa1WBEHi8Xjkc682SywWAwAAwzAAABwOx+bm5szMzPT09MbGxtnZ2eVbqVQKgiCr1SoU
CqlUKo1G29jYUKlUyWQyGAyq1eqVlRWBQCCVSjc2NhYWFhYWFkQikdVqvdwqiUTI4Tg/ONxZ
WF4anZoeo9DZq+sypSIS9esv5AL+/Dp3+Ux/DiCoKxDePZQvrawrlCf6i3Od+pSzwFqepXPZ
LM4snbu6vLnJZ7Fm+Xy+SqXS6/Xb29uLi4u7u7ubgs35hQXWDGtHvO+0+GAICYc8Ou0+mzNE
Krz/y3d/mVdS29JLYS5v6d2hOIzhGIIkAhqldH52ZnKSwt0UGa1OAIRehUwMBSIh18H+zuLi
IpVKZTKZR0dHkUgERVGHw7G7u8vhcMRisUwmW1laZjGYK+wlm9kKJJKRUGh9eZk6NjbPYAR8
fhRGfF4fa3E1/3nPw+pemcUbf6uaZXEMhxPwqeKUvcQWi8VWqxWGYafTub29zWazNRpNKBSC
Ydjtcezti5kzVCqVdrAvj4ZBCEIxDEsmo4rT7U3BysbGhlKhFQl3WDOzdDp9f38vEAggCOL1
eo+OjlgsVmZm5s9+9rPGxoYpKn2FJ7Z7owCSApIJ9alcdSI1GVQet/PkVMWcW3pcVD3BXHL7
g8mAc2OW0viscH9r3ee2QxBsstq7B8cy8kpkGn0MgP/eG49AIPxTI/I34S0FA0Do7Ex7fHwk
FAonJiYmJibm5uZ2dnY0Go3VavV4PBcXF1KpVCqVHhwc7O/v7+7uHhwcyOVys9lstVr1ev3x
8fH+/v7e3t7BwcHh4eHR0ZFMJlOpVEdHRz09Pdk5OXfu3Glubp6enqbT6VlZWdnZ2fX19RMT
E0VFRR999FFPTw+ZTL5//35ZWVldXV11dfWjR48maDR7MAh83r73RTga9Trkk91l5IJbT3Pu
NjY8LykpTU9Pz8vLo1Aoer0eBEEAAAwGw+DgIIlEunXrVmZmZkNDw8LCgsvl4vF4JSUl165d
Kysr6+7uvnHjBolEam9vLy8vz8/Pr6+vdzgcOp2OyWRWVVVlZmY+ePCgtrZ2eXn5/PxcrVYz
GIzi4uK7d++WlpYODw/Pzc2RyeRr167V1NRsbW35/X6lUvlqc13a29tTqVROpxMEQbvdzuPx
ysvLHz58mJaWlpeXR6PRTCYTBEEgCDocDjabTSaTb9++/fDhw/Ly8vHxcb1ef3Z2trKykpeX
V1hY2NjYWFlZSSKRHj9+TCaTBYItCAJxHLTb1VsCZk9/c15x4ad30z++nZ5XVjk2TbU6zgWb
tLrqh6TCDPbacgiE1WZX7zgtM7dodHySt7G2zp7NuPVR1q2rVTn3s2//rjA7vaysLCMjo7Ky
cnJyUiAQtLS03Lx5s76+vqa2hpRPysjIbK7t4rH3Ap6IzXK2tUmvb8762Tv/7//2f/zv//6r
D67cynlS0S3R2fwAgqMQGLJssGn5OY9/+96HpRV1m6L9aPSyywSewpFo0Hx6vN7aVJv95Mm9
e/cfPHjY09NzGcHlcnlfX9+DBw+ePXs2ODhQ9rQ4415a3qMnvJV1l90BQ7DLZlccHu2Jt0O+
gN/lkR/KX3QN1XRPDS5LLOHY29X8jaFYMgQssBZyc3NramskEkkymVSr1R0dHQ8ePGCxWEaj
EQSBc716fLIvPePW++9f7eoYsxhD8RiEolgo5J1fGqmoynuUkdHfO9Xc2JX9JPfGjRttbW0y
mSyRSOj1+pmZmfz8/O9///v/8i//8rvffZiRRapu7lfoPVHw5TKgCBAJu5UKKXOG0djaUds6
KNg5hjEMh2L2C/XxtsB8rooEfbFYbF961Dcy9fxFn8Huhf7Km0kEAoHw7SDyN+FthOOpiMen
Hh0bKCwsvHnz5pUrVz744IOPP/74wYMHdXV1dDqdz+f39PRkZGQ8evQoPT09LS3t7t276enp
JSUlVCp1ZmZmeHiYRCI9fPjw4cOHmZmZjx8/zsrKevLkyejoqFwuV2s0CwsLJaWlP/3pT3Ny
cmZnZ5eXl/v6+hoaGnZ2dhobGz/55FOJRDI5OZmbm9vf3z8zM7O4uDA+Pn5weAigKPqV9+Nx
NB7xHG5Ol2Z99Isf/tfW5oalpWUej9fS3FxWWtra2uJ2u9Vq9fDw8K1bt1paWnZ3d/l8fktL
C4lEEggEEomESqXeu3evt7dXIpGkp6c3NDRctmHPzs5KJBKfz7e8vPzs2TMWiyUWi7e3tycn
Jzs7O4eGhgwGg8lk2t7e7uzsvHnz1q9//RsKhTI/Pz82NtbS0sJkMrlcblFRUXp6+uXmSk9P
f/jw4f3791taWoRCodfrXVtbKysrKy0tnZ6e5vP5jx49IpFIU1NTfr/fbDbPzc3dvXu3srJy
eXl5a2trcHCwuLi4r6/v4OBAr9dXVVV9+OGHV69enZub43A4Q0NDBQUFFArVajVDkGNvh9Xe
Vtjd18heZR/ITzibkinWHHV2xuYwnci51PHqvMIM5tJiCMbDIMzmCkrI9R1dPSKhQCHduXX1
3fInd2eGWitz0/KzHpSXl01NTXV0dDQ0NJycnPT29r733ntZWVlDQ0MCwebs7FxdRefTR23H
ojOv3evzmU60/Oom0i+v/qKhd4DNkyg1Jk8EABAcxzEUirkcZtGWoKiovIrcPLewHgxFUqlU
CkdSiPdIPNVZdycvK21goF+yvc1isaqqqkgkkkKh0Ov1a2trV69evX7tWkND/cbq2vQ45XlF
bXNN445oG8dxGIIT8UQkFPa7fOuLK43VDX2DFN7OsSUYA5C37alAPIXB2NHhcU9vT1FR0erq
6uWtEiaTmZWVNTU1pdPpMAxLJGJ6g4a9NHP/fkZ767BW5UgmIBxPAUBco9uvJBf94Ac/SE8j
USZndrZ3Gxsbamqqx8bGfD4fAABOp1MgEJSXl3/88ccjIyNbom3NuTkUh+DPA3Qs5tVqdwcG
m0kF2Y+y8yYYK6dnNghN4RgGgclELAqBSRhMOmzWjq7evpGpzd3jUCzxtm1oAoHwXUPkb8Jb
CU8B0bhrb08yPz8/MjLS0NDQ1NTU29tLoVDW1taOjo60Wq1QKKTT6XQ6nUajUalUCoVCo9EW
FxelUunx8fH29vbc3ByNRqPRaAwGg8FgMJlMJpO5t7fncrmisdju7m5zc9PHH3/c1tqmVqut
VqtcLpdIJC6Xi0abLsgnSaUHTCazuLik7cUL6jRtZW2ds7p2dn7xmm7LQDyk2Zvvqn2cdfcK
n7tmNpsdDgefv1lZWfUoM9NgMC4uLmZnZzc1NYlEonA47Ha7WSxWSUlJf3//5ubm3t5eaWkp
lUo9OjoikUjPnz+fn59nMBgSicRkMl1cXLS1tb3//vvPnz8fHBwcGBgoLS3NyMgoKirSarWR
SMRqtVKmJp9kP7l77+729rZer9dqtbu7u0qlUqPRLCws0Gi0y81Fo9Gmp6cpFAqfz1er1SqV
amRkpKCggMVi6XQ6h8MxPj4+ODjI4XDC4bBIJKqpqSkrK5ubm7Pb7T6fTyKRdHZ25uXlLS0t
ud3u7u7uwsLC6upqtVptsVi2t7eLi4vHxycsFhMEWY+kc91dTyvIpM7+7iWuQKbRKzRnJxp1
JBq2mKTrnO68onTa4mwETcF4SrQnbezo6+jq2d0WG3UneWk3+psqZFvskVZyS21lT3ePRCwZ
HhohV5GNRiODznjw4EFrW6tQJHS73UajaaibkXmzdm5SYNDaYDgRSZiHKW3XHn48OjunPDMk
khCIYCieSqVwHEMgMGk2GV+0djfVdzHpy8FAOJVKYUgi7pXPjRUXPfx36mS/QikPBoNGo7Gv
r+9B2oMZ5oxcJpNKpU+eZJOryatra1aLRSY9nh6jlheWr3PWXx0JyUTy5FgxQ2H0d/Zv7xza
3X4I/5t1df+bwlPnujMGnVZaUry6snL52vr6evmzZ9TpaY1Wm0qlMAxLJMIqlYxEetrTNaZV
24AklEqlEATy+sw9vW0fffzR4MCkQq72eDwcDqe9vb29vd3lcl12/rZYLB0dHbdv315fX7da
bQkAQtDfDyAOgjG327i9w2ey6F39Q+TGXhZbYLH7IRhJXe5IMKE9VSzMzoyMT/KEEocnAP39
HhEhEAiES0T+Jrz1EonE8fHxycmJ0+mE4W+tW6dcdjzQ11NZUcHd4P7Bs484tiMW9nS0cpbZ
4+NjlVXkgqclrZ09c8trWztSi8P1mu8E4kHd7uzccM1YV7XX7cDxFAwjDre3rb3r2vVbp2p1
V3f3lStXdnd3Xj1ndnBw8OLFi/Ly8tXVVYvF0tnZSaFQuFxuRUVFWVlZS0vL1NSUXC73+/27
u7uFhYX/9m//lpmZmZ+f/+TJkwcPHty7d6+kpESr1QAAEAwGZpjTTU3P2ztfuD3uv3A7RKPR
ra2t5ubm8vJyk8mEoigIgkajUaVSabXay8bOBw8eMJlMg8FwOYnD4eBwODdv3pycnPR6vVNT
U2NjY1wuNxKJYBhmtVrJZDKFMu1w2GHYbTLtLi0NVdUUFpQ+rWnp5Ar3zw2Wy6EkvR61SDiS
V/yQvsSK4ykslZLKT3pGp7r7+vd3tx3Gs9qnOQsTfU7t8fLU4PTQ4PzMovpEQ5mgkiurbTb7
2tpaVVXV6trK/8/efXa3caV7ov8e9+3ceXHnzlp3zsyc0+7u0z7djrKtaMmysqhESZRIKjHn
nDNIgjmBCQwASDCIOYMRgSQAImeAiIVUhULF+4Ky7G7bsn3MVls9+7e0vLhAYGMjcPlfu556
tsFoOPrkeIML0XeK6krZok0FTRMk7eseaLjx4HIXZ1ihN3zvpZNOu72lvqOqqHGg61X+xlG/
XTVXnx/x4Mp7Gu0+Sb/6YozyRmIfRZeXlC7MzUml0oLiogEux+52Yjh+aLHOT80lx6WPcse/
uS6A8vug2amXvCHu/PSi3+f/mZ/Fb5NereYPDeamp01PvjrAWFhcLCwp6RkYlCuUR7dQNG4y
61KS0xuZHcoDI4KgFEWRJBGEPWx2d3JyouJAjYYwBEH29vba29tLS0stFgtJkgRBeL3eurq6
y5cvr6ysQBD0+nlJkkQQJBQKYRhGUZQ/ENjcEUdEPk3PrlheFQYCMEngoaDPqjvg9LOKC/MX
lldMVlsYJ0ADcAAA/uFA/gbeeT6fb3Jycmpqam9vD0G+18X5P0u+J+5tb8rNzpqdmfn2Voqk
wrBcKGA1Vj15fD81JaWguOzspRvRSdldI7MincMdfNMBABrwaNcGOA2ZTeUZFrOJIMkwjhvt
ntIa5qXrtwRbO6XlFRfOX9je2oCDr/ocr62tHWXfqakpu93e3Nyck5OTlZVVUlISExMTERHB
YrEUCoXX652ZmcnMzIyMjJycnNzZ2dnZ2dnc3BSJREqlEoZhkiQhyM3hsBoaq7r7Ot1u1xvm
+V1er3dkZCQzMzMhIcFkMh01u0BR1GazabVaFEX7+vru3Lnzg/n7qEClq6urrq5uaGjo6Go8
rVabm5vb09NjMZsxDAmjAbfbplBKJ6emq2oa79yNTU3N5fJGIAgymUVj04xnmQ/Yk8MITZM0
Ldzbb2R119TVr6+umNXK1JjHfQ11xj3RUCOTVds00jsmFyp62vpy0vN0Gv3oKD8jK2N67qXZ
aqJpiqIJHmcu5kFxXQVHtK2maZKmQ13dDVcjvhzgDOgMepr+29MWzkNnc2UHI6eF2z4NuXw0
TeMo4tTu1RfH37n+6YFW8frDHhnmxt5/WFtSLlhaOVAokrMz2gd6TW5HGMfNJuPU5GR6StEI
dyaEECRJ0TSGhNxS6YZEsqNVGVD03ar6/ls66f54Z0d1VtbKN38pU7Nz6fmFnVye9JuvBE1T
JpMxPi6hvq5BqVD7fQEcP7oEE2az+xMTE4+O5Y56iba1tb1e/yYIAoIgJpMZERGxsbHx3f4n
R1cqy+Vym82GYRhBknq9ISk5LSU5pb+b5XG7Qz6XXrrV01jV2964OD/rdDodHp/R4fGECBTU
fwMA8A8F8jfwzgsGg0clJXq9Phz+1VGGxGksRKLwvnC9q7kuIy11amqKoij8qAMgRdF42KSW
8npbL5z5PDkpsad/8OrdqHvPUhmsYbUNQt7YvwINeLSrA425j188vC7clfrhMOTzcyfnEjLz
Hsa+2Jcrevv6oqKimhqZErEwHA7BMDw0NBQTE1NWVra5uQlBEI/Hi4+Pv3nzJpvNzsjIOH/+
fHNzs1wuR1FUqVSWlpZev359ZmbGZDJBEGQ0GuVyuUwqgyAPhqEej2OA3VZbV9bV0+FyuzCS
ChE/vak6DMPb29u5ubk3btyYnp62WCzBYNBut+/s7CwsLBzVnxzV/8zNzQUCARRF19fXy8rK
Hj58yOFwnE5nU1NTTU0Nh8OBIAhFUYVCkZKS0traptNpfAGL3anUGnYP7UadTruxLmxvY2dm
Fubk5hkMertLvrTedevJJWZvqx1GPSF0aGziSWJyQXHx6tKSUaVMjYnua6jXS0QDTGZHVQOn
a0S+o+hu6c1OzTXqjUNDQ49iHjW2NexKJSEUkWv2yysbb11PHu5b02tcJEkgIV8nq+HW3a9Z
3e0y2UHQT1hNfsgdInCKIsIkhh4arfWFjTWZzaPtcx6LjwpTZBiDPYf97dWPH1xkcfoP9Nqj
BdpmZuONry71NLftCcWyg4PEzLTGvi61w4LiqEar5HKHM1JLR7gLwQBJEjRNYz6f9eXUAJc7
sLiw5nEH3ultoyxKxXRvd3r047EBdhhBPG53exfrVtTjmo4ukfyApOkwSSLhsFKpjI2Nraio
2N3dhSDvUU/MQCDY1dUVExOzu7sLw/DR33Jzc3NZWZler8cwjCAIj8fT0NAQERExNzdnNps9
Ho9er3e73TabraioqLS0dHx83Ov1QhAkEAjuRUamJSdOjXE9hwbt/uYclzXS27K+NGu1mAJB
eGdXPjQ5L7e4vL98A04AAIBjBPI38M472v/S4XAEg8H/dJPs10g0iLjMFtXeS15/cW7a46gH
He0dBoPR6/eFvylucdktCy9Hrnx1rqy0ZG1zJyWn6Fl6QXVrr83pfnOaRQMezepgacKti6c/
7OVObO0pBZs7idmFsYnpVXWNdodzZ2enurrqSWx0a3PjnkS0s71dWVl5//79oaEhnU4XDAbX
19czMjKuXbu2ubnZ2tp69+7dlpYWqVR61OSbxWLduHGjvb19dXVVKpWura1NT0/Pzs4a9Dqr
xSARb1RVFaSlxxeXFYp2JVY3BIUJ4qdOxeM47nK5mpubr169WlBQwOPxtre3Z2dnBwYGBgcH
nU6nXq8fHx9PTEysq6sTCAQikai9vf3FixdHVew6na6oqCgnJ4fFYjkcDgiCNjY27t2LLCws
2t4RWB3CnV3eyHjj0vKkRCJUKjS7EhWzvjUpKVmlVgQR477y5eXIc2ml+Qti6dKuNKei6tSF
i3EJiaM8rnhzPe7B/dbK8r3lhc6Kitr8snZG59bidkNVY8LTRJ1Wxx5g37p7KykjcWhkSLQn
bO5tjI1LfhiZIdzUB3wEQeBen5vD601IfFRams/jjom2tYJFrU7lwVACD0Fuq2F7cS3rWU5W
bFF72cDeqsJjhggEowh0bXGsMPfFs6zErmH2vky2tLRckJN7P+L2wtTMgVS2vLoa9exJSQNj
S7nvgz0i8WZDQ/2T6LTuzjGHDcExkqKxQ7u2hpGbmZlSV9tsMjixd3kF3GO1rI2PPrxyiVFc
uC/cWVtdzc7LP/XVxbSi0sXNbQQnnMGgSq+fmJi4efNmUlLiyAhPoTjw+XzhMGYymSsrK69c
uTI7O3v09ZicnCwqKkpNTRUKhUctHX0+H4vFun//fnNz89TU1MbGxvLysl6v1+l0ERERFy9e
zMjIEAgEy8vLLS0t169fr6woO9gXQmb5HLezKidhbKBzW7CkOJBJ9qRNnX0p+RVrUq0riP70
CwMAAPi7AfkbeOcd7ZD3eouZXynotsk3Zssy429ePP3Bn373+/f+9ZNPT8Q8fSGRyuDQqz07
ggGfUr7X1lg3NTlxoNINjr7s4Uy8XNrwBoJvHjwc9Oo2+Oz6nIQnkfefJl28G3Pm6p2Ixy+6
Bzh2hxPHcRiGD+Ty0pKie3civjxz8tzZs+lp6RMTE1ar9ajTn1KpHB0d7ejoUCgU6+vrQ0ND
CwsLR720KYoyGAyjo6OxsbFnzpz5+OOPr127xmxokOxKNBplD6vlTsTXn3z073/603sffvrR
vcePByenPDhF/NT691Gy1+v1HA7n8uXLJ0+evHTp0p07d9ra2o7qT466E3I4nLi4uBMnTnz+
+edxcXH9/f0ymUwul09MTERERHz22Wd3797d39/f29trbm7+3e/e+/LLL+uZNWqtYGK6NS45
4rOTf/70xKfnzn795dlruTnFS4vLPp8PJzx682ZaYdyVqLvn7jz4MuLenZinTxKSrt+8mZyY
UJqf++UnH7+4d6eltCg9+tHTW/fjHrxoLG+Mvht9/tQFwYpgYmKioLggOTP57qM7Zy+fO3Xl
TGZe8fysyOMOkgRFURRB4EaTmjvSc+bs5598/Pn9e3HD/Us6tZPAwkGXYaS348HViI/+9eM/
/49PT79/+emt5NHuccjiJjDM7z0UCRcT8tK+jLjy4cnPPvnsRF5u7vb6hsflFggE2Xm5/+uP
v79452bLIEtl2h/ksG7fjvjX//XBk+js5YXdgB8hSMRgkmblPI28fystJVevsRLv8mosEYI1
++LnkXe++uLEpS/PRj969Dj2yZ1H0VcjH7YPcY1e/5ZCVV5bd/bsud/97t9+//vfnz17Njc3
d319HYKgkZGRiIhb//Iv/5KcnLywsKDRaLKysj7//POPPvroqMHlUQmKUCgsKyv7y1/+cuLE
icTERJFI5Pf7g8GgQCAoLCw8f/78Z599dv78+ejo6O7u7v39/YDPc6jfZ5Zmnnz/f5/68I+n
Pv3g1BefnTr75dmvr0fHp0sUerD/JQAA/1ggfwPAX0Fhn02nmOZzWG1N9bXVdbWMeiazjz1o
ttper39jWNgLuQ+ke0aDwQP51DqjQmMwWOzhN179iSG+Q61kvKss6eGVs198Gp2YlVNez2xj
DY1OHKhel8nSwWBwY10wwO5j1tUymcyZmRmLxXJ0XelRLaxOp1MoFB6Px26363Q6s9ns97+6
gO8oCvN4PCaTWVlZ2d7eLhAInE6nx+3a3Fjt6mxuYDLq6mqYjQ2svn7hvgx5ff3gT74tKGo0
Gnt6ehoaGlpaWnp6enZ2do7KyimKCoVCWq12bGyspqaGwWDw+XyVShUMBj0ej0wmY7PZzc3N
/f39NpvNYrGsr6/X1tZ1dHSsri653MYD5fboWF9tXVV1dXVdXSOzvmV+bslhd+A4TlGoL2Bd
Wp/v4w41dvU0drCGRvgz8wsDg4Nj/NHZqZes1hb+0IBgfnaKxx0dGB4b5q8trHEHuC2NrTMv
pwvyC86cPXPt9vW41PjyusrGjubFFYHD7sPxb7NXKBTU6ZXt7S21tfU93UN7Eg3kDlIkEQ56
JFvrve1dDdWN9ZVNzYzOwS6uZHMP9sIkQVIk5vU6ZpbnWru7KhjVNbWMpcVFv89HEITeYJic
elldV8ti962Ltx2QVbK3w+7vr65u4HGm1EozimIkhUFe+9z8GIczND01D3n81DtdjkwSPrdz
ij/S2dLU3MAcYPeP8sf4ky/7hjlbu/seJGQ4dMwuLDY1NdXV1TIYjKampomJCa1WiyDI7u4u
m82uqanh8/lKpdLlcr18+bKlpaWxsXFnZ+f1bvMul2tra6u2tra2tpbH49ntdhzHjyp/Njc3
u7q6joblcrkqlcrv9xMEsBLB9QAAIABJREFUHoDsgsXplrqqBkZlXU0lo6a6rp7Z2sHiv5yx
u734Tx53AgAA/D2B/A0AbwkCWTXCmdaKlBvnP/vwz39htPXtq/SgEcPxoyi/z7+8sBQbHfMv
//N/Xo243jvEdvu9+DtdZA0AAAD8EwH5GwDeEjzkD7gMJrVkT7S+ubkh05odUBD0Qjt2JEGE
QyGv2yOXyZdXVrZFQp3J6ENgnABrngAAAMBvAsjfAPCWkARGhGEsFECRAIzAASQcwn5G/xHg
F6JIkiQIkiBQFA0Eg0EYRtBQGMfJH9yUFAAAAADeOpC/AQAAAAAAAODtAfkbAAAAAAAAAN4e
kL8BAAAAAAAA4O0B+RsAAAAAAAAA3h6QvwEAAAAAAADg7QH5GwD+mZEkiRMESVG/vvlHGA2Z
1fLNtaWxsfGhkYmx6YX1HYkL8mP4W+2rTVE0QZJ/j74xFEWRBEmSJIaiZp1WJFhZGOPN8Hnz
c4vbEgUUCOHv9C45AAAAwG8GyN8A8E+IJAgsjCIwDHl9bo83jOG/Pn8HvJ61iQFmef7z5y+i
XqQm5pY3sgY1JhsSfhubp1MUhYXDCIL4/QG3xw8j6M9/KI7j4TD2Y63WjzaiD4UQn8/ndnlg
GIH9fuHyYj+zqiwhJudpVHZGbm07R2uF0Hd5l3gAAADgtwPkbwD4JwT7vRaDRiIWLiyvLqxu
Qr7Ar9/mx+9xzgw0t9YUVVVXtw+ODk4uzq2LHd4ARr6NZWEsHLaZTPvivZWl9Zn5TY3O/PMe
R1EU4fF4jAaLz4tg4R+YKkHgPr9LJt+bm52bnlpQK3WhAGyQSkTTo7PdDX2M4sK8kpzKTrnB
iWCggTgAAABwDED+Bt55OI47nU6XyxUIBMi3kgV/+wJet1S8VVleWlBc2tk35HB5fv3eM37I
tchp5/U08cf5uwcqtdFmOnQhYeztbOAZRlGjRtPf05eaml1d174l3Ps5jyJIwh+AOFxOZkbu
4vz6oc31/fvgBOaGDoc4A/GJycUljLW1bTyMBVwOl1FjlArFc2MtTe251SyZ3gH/UHwHAAAA
gF8K5G/gnYcgiFQqlUqlZrM5HA7/o6fzmwAHvLs7648e3r/3IKqyrvHQ4Ty6naIoGA66XE6n
ywnD8C8aM+h1C8Z6liYGJbsiBPllj/31sHDYajIxqhnnvvw6OSN/aWX95zwKxzGn67CoqOjD
Dz7t6mBr1Ibv34cgcMjnbGptPnvh0oNHCROT89/+KhyCjAc8Lr+ovk+mdwRB/gYAAACOA8jf
wDsvGAwKBILV1VWpVBoMBt/RJfDj3RydJAi3yznGH61i1FXVNx86nN+MTopF2+1tTS1tLTsi
4S8aMwC5lridi+ODUukuEkKOcbY/x1H9t2B9g1HXUFnbINjc/sn7H/0Xx7EDhWJ+ftGgNweD
PzDto/rvfflBe8/gk4R83tjs61+RGArbNCMj/DwGS6oD+RsAAAA4HiB/A++8YDC4ubm5tbWl
1WpDodCvDLIYhrnd7p2dndXV1a2tLYPB4HA4LBbLwsLCzs6OyWQyGAxisXh1dVUmk8lkMolE
IhKJxGKxSCQSCNZVWm0ARX/kSr9XUDTkcNq3RLtzS2vzS6tS+YHL7Tn6FUUSsN8r2l5fmpua
m5qYm5vd29tzuVw4jnu9XpVKNT8/v7q6qlQqg8GgzWYTikQz84sKtRanKJwgw2jI67KLN1dX
56dnJvmd7W01dcyWrl6DxapSHWyszitk4rGRwbLSguq6qvHpl1KVSiDeVRhM/lCY+KmOIn6P
c26gdWFsQH6wH/pO/qYoiqRIkiY0GsXs7OTi4vTu3o7t0IxhGE3TBEEEIK9WrthcWF6ZmhMs
LIt3RAaT0Rv0I2hQp94Tbs6vLU/L5LtWx6HT7xcdHKzu7GyJRU6XLRxGKIok8ZBKdTA9Ozu/
uNA/OFBdV1dRW7e2ufWGqVIUiWGo22NXqWWLi3OTk5OLi8suJ4Rj5Hfvg2OwTqdYWV1YWF4c
Gh2rbelJK2BOLWy+/vBIDIWt6hHeaF4NS6pzBFGQvwEAAIBjAPI38I4iMAyx2aw6nW5/f5/H
442PjwsEArlcbjAY7Ha72+22WCwqlUqpVKpUqqMflEqlVqt1OBxOp9NqtWo0GpVKpf4OlUql
1+vlcnlXV1d5eXlZWRmbzV5cXFxcXMzJyamurh4dHZ2bm2toaEhPT+dwOH19fXV1dc3NzR0d
He3t7eXlFRMzs4c+f5ggfjDMUhRJYIjFqF5cnKlkNmcWVeQUlTOb2za2tpFQiCRJOOBTy/ba
mNUlOam56QnpaSlt7W3b29t+v99gMExPTxcWFhYUFLS1tYnF4sWFhaamlmeJab3DI3bIB4dQ
s0G3OjvJLMspy04qzEpJTojLLSjq6BtUG4wLcy+bagq57LbWxqqiwiwGs7qtl8XicBndvVPr
W4e+IEb8RLj0eZwz/U0LY2yFUhpCv83fOIEHYL/epBkYYqWlPSsoSG5qrpycHrE5D8MYFkIQ
5Z5son+4Ia+0KjWnKqewqZY5NvVSodc4fY61RU5XU0FpQRyzqYo/O7Us2WWyh7JrGMW11ZK9
Da/HigTcGqWot68jOSM9r6ggJTP9RVJiflnp4upqAA6azGa1Rq1QKhRKpVKpUipUBwcKvV7v
cNr9AbdOL5uZGyksysnISKurZRp0lvA3HUwokkBgv06zy+OxCksy80sLkrJyn6TkZZa2LQh2
yW/zdyhgVvC4I/kMllQL8jcAAABwPED+Bt5FFEV7rTZxUVHunTt3zpw5+4c//PG99957//33
v/jii8ePH1dWVvb09KSmpp48efLEiRNffPHFqVOnPvnkk88+++zatWtMJrOxsTE7O/vChQun
Tp06e/bs2bNnz507d/bs2ZMnTxYVFQkEgpWVFSaTee/evU8//TQ6Orq+vr64uDg6OvrevXts
NjspKenMmTOjo6MMBuP+/ftVVVUsFqu7uzs/P3/s5UsIQbAfaU9NYIjXssvprn4afftZYmpp
TQOjsfXUua9y84ukMjkSCu2Kdlitja0NNd2tzO4WZnZmRlZmZkNDg0aj0el0GxsbQ0ND8fHx
J0+ejIqKKiwsrKqqvnztdmJ6Ln96HvL6erravz7zWVLM3drS3Jb6muhHUQ8fxxaU12iNFpVS
Pj022NlUXpSXFB8fk5AUl5SRnlte0ccblRwo/CH0J9e/fR7nTH/z4gRbpZaiaOj17TAK7yok
zxKjo5/cy81Lrqstevr8/vW7l7hzk7pDi8PuGGT1dFQz+2qahupaG4rKc9IysgvzRxemTV67
TiOZHmMV5Dz99Iv/+PLGlSc5+ak1zIjncZfu3Zqc4RlU67LN0Ud3z0c+iMgtLWljdT1LiPv8
7Om0nOyRyfG17fW4lMRzX1/44NOPPzpx4pNPT33y0ek/v/9hZGRke0ez2aKxO4xiyWZrW0PU
o6jr1yJWFjc8bv/RnFHYr5Lt5KQ9jX/xILcgra6lMTmn8Erk82uPs4bHl16/NBILBSxyHpeX
zwDr3wAAAMCxAfkbeBdRFB30+vSTk/z29vaqqqqUlJTExMSMjIzy8vKenp6ZmZnNzU0ul1tT
U1NVVVVTU8NgMCorK6uqqlpaWhYXF5eWlvh8PpPJZDAYtbW1R3c4+uHly5cGg8FqtfL5/ISE
hDNnzmRlZc3Pzy8tLXG53L6+PpFYXFVVffv27ZWVlY6Ojujo6JKSko729qGhwZ6enh2RCMVx
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
evXSwnhF4fP7d77++uuv09LSSktLc3NzT58+nZiYODs76/f7NzY2iouLHzy4/zTmUXrCs4e3
rkRF3s4vKNSYLPOC7YKK+hcpWc8TkhMSEpITXiQ/f5oZH1dXXrm5Mh/0mizmXR634/mzx3/6
9y9ycpq02iCKHh1FUDSJSTZWmMW5j29ciXv0IDc97fGjRxF378alpGqNxl/Q2xD4O6JoOiyX
iTo7m549i3nw6GF2fqFKbwnjFEngCOR42d8aF3Huy0/efxh5L6+o7HlSesS9qEcxsRLhBux3
YSGfRb0/2M1OSihITc1PSc9Ny8ktqylfXJ0P+J2I1ySY7i+Mu3nqf/xfH7z/7yfvJt7ObKwY
3VkyhyGMImmaIgks6BNurLS3NDDqmwSbO0ffCT/k3FlfjH0cmZmeOjExAXm9Kp2pd2js5r2n
pdXNW2LZ1s56e0djTMyD8xdOx8U9bWpqrK2tj4i4++knJwfYHL3O7HZ6xjjszJT4iGtX4hMS
JqbnYeyfoKkLAADvBpC/gXfeUf4eHzme/E2Fg/5D7drUCKenvbGuOjkpIfbJ02fxSaUV1e2d
rLHxif39/enpaSaTWVVVVVlZWVlZWV1dXV1d3dTUNDs7u76yujwz293U3FBeXlda3FxVXl9e
yCjJba0tXZwc0sk290Rrw4Os1PTk909djErK6x6Z7h0aqW9sYdTV72xvVpXk37jwxeRQZ3tN
4fMHt5+nlpY1j7RyVjIrOrnTArcf+bGSDAIPQ05DV3vd/bs3GIyaIQ6XPcR7GJOYVVA7Ob/l
88POQ83mGq+hrqioJD8tp+DSrehPz924cidmZX3TaDLqtLKlOXZm2tNTJ0/GxsY2NTXx+fyy
srKenh6hUKjValksVnR0dGFhYXdX5+jwQGVRTmLc06ycHK3Jsr2naO3llDIaSytrKisrayrL
akqLmOVlg129UtE2GrR7vZb9/a2uzo7PTlxNT2/c34MQhKBpmsDxgNs12ted/Oh+UWpyT2vz
BH+UUVv7ND7haVLygVaLgt2UfhMomiYcdsvm5lp7R0tCctKLxGSN3oSTFEWSGBLYnuVVJUd+
deJPaUkJ/Ilp3thkVn7x/ajocd6AWS/3uowTPU3lOQXJSSW19V0NLazSmrrImChGY7VUuhXw
HeqVktGexoen/3j31o2U6s6usZUlqVnrJRCComiaoigSCztsFrl0T7IntdkdR3NCQ7BGKS0u
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
lVTVtktP9B6YBIDjKcJ6qdyYHS8ryM7Pza6ormrvEh1JpSiGwZDnaHdrqKtzfnZubml9cHK+
oKSioqJibGTI7bQBjmEZBnY7Npbna8qLy0sLy8oKm1vqJJI9t9sOOIahsZnp4eSkqPaOpvqm
2rzCvJzCguGJGY3eTlIMTcNOh3JzdbCppjAvLWu0d151amQY/rW9G7vNUVZanZ1X3tE37vJ4
r1aP5YHTY5EcrYkq89sqy8dGp1VmL/wqG+Mek1Y8312eEPjVv/3Pf/i//nT97oMXGVl1vZsy
tR1CERjeXFtqqq0szs1Ymp06P5Gfn57WNTWV1lW3D/VKzo6n58ebm6uO9leH+9sL8zNGxkcn
5xYHJxdbB2f25Crylyv2pUjUbFL3D/YUlZdlF5d2j0xJztQwwbAcADThsegm+jvrywtL8zLL
i/OGBnplx1Icx+wO587efn1TQ3Vd+cCgyGi0nMi0I4PLJUU1Y2PDBuMZRUEsRzqd7onRhaay
2srMpIry8LjMrNi8wXO9h2D5V1sU4L/1nQJXhfEsQ1otpu3t7Zq6xtKKupb2/s09mcXu4XnA
c4zTYtjbWK4oK87LzyupqKhtbNzZ28VQmEThc8n+zGDP2OTCzPLO5PxaYXF5XW3t0vws7IN4
wLEMhfrcW2uL1RVF+WU5hYUZzZXlR5vndhtKA5qhrCurAzlFWWWNG+2NU91VlRmFmW2Dg8fn
WpygOJbzulwrM1NttTU1JcVTYxMateb13WYOQA7XjGiwJK+ioKrpKn8Dnmd53uVzyk5225tL
G6rKh3vH7EYPQwEAOI4lcPeFSTYx15SZdPujP/+3//5v14JvhOSklbYv7ZyYbRACwXub2y11
9fmZWVOj43Kp4uxM09AxUNrU0zoyL74wu5B37koNgeDvmZC/Be+9t5u/ORZHILN4f21itL+p
sTY/Lyc9PSMrJ6+5pX1oeHR5efnk5GR1dbWrq6urq0skEnV2dopEIpFI1N/fv729fSTe39ld
HejvFHU0d3W0dbW3d7W2d7e09bW1HSzNGI83N8Zbm8vSUmLCouMyKmpFfYOzmTklCYlpubn5
S4tzhfkZD+5+PjrQ0lCT9yIqOKOwtKKlp7ZzKC6rqGd02mh3UW9scA54njpT7He312RkJGTk
ZOQUF4cmJDV0959oDThFOXTqw7mxruryyvy8/Jzc9IzstKzcqoYmo9lkMut2d5Y6m4tjUpIe
vMgsax9q7B4pr22KCI8oLy7cXl1CYI9EIm5obErLyS/Iy64uSMuIDAwPDY3Pq5Ca7ftKzeDY
tKijraulvqe1vrOtubW1taOzY2p84OJMTKAus+lyeLAvOSkhMzMnPbMgNbM4r7RxY1fCsAwJ
u6Xby6L68vLCnLzcnPTs3NjElOa2drFY4vW4pLsbTWX5wYGB0UlZpU29FXUtGZlZ6ckJc+ND
uoszxOs6lewP9YqKC/JKy0qystKTk2PLygu3t9cIEmUYcmJ8KCQ0KDUtITc/M78wOyMrNaeg
tKljRK2zIKgX8l4e7Ew0VxcmhkWnxRSuzu/y3Ld3HwBvtzkqymtzC6u6Bqeu6k8Az3M88ED2
U/n2cENJWkRYRFjsplTjQl5+LpTXbJEvTrVkRz788Df/4798ei/gaVppWffM7pne4cNQFDna
285Iirnx2YejA93KU/nZ6UlWfl5maWHn+OCxSr66udgpaujqqCsvzkpNis0vKiitrq9u7e0c
W5IoddSbzq38bQGeIxWyvfa2mvSMpLSczMyi4tCElBpRr1ipwQgSdlrO9tc6aourCjLK8zOy
UxOyM1Ia6muNBqPVZj+SSJvampLTYqKin9bWNHa0jTbUDoaHJBQU5C0uj8KwVS4/amtrz8ko
L88qaszPSE68HRQREZ7RLdG6D89OxyYHh7oH+9pbu9urOzqbWltb21vbx4a7zk8OMdRj0Kkm
J0by8vNS0rNTMwoycisy82uX1w8omuUI+ORop7e9saq8NL+wKD0nLyouoa6hYX9v2+dxnB9t
dtWVBYZER6YWlDZ0lFTU5OflluZnT470X6pOCdSnVEgHertyc7PzqwsysmJTX4SWZ7evrZ9C
NE3TtsWl/rjkhKcvWoqzWnurKhJzEqKzMktqO1RqPYrisBfaX19rr63OiItNTUheWlh+vYCI
5SCbY6Ktr6ywurJJZHO6r84T0Tzv8jkVZwdDvQ1p8bEvnseJd05hD84DADiSgjVO1exGV0Gm
3+cf/cM//vv10IcxZUXNozvHWocbRX3IwdZOdkrqvetfdbd3Sg6lxzJlVklDallz4/Di0YVV
yN8CwTtFyN+C995bzt8M4rScDnbXpiaE3b9z/dOP/vLxR598/sWNh/5B0THx5eUVi4uLtbW1
QUFBgYGBAQEBAQEBjx8/DggICAsLa2luGRrq7RTVR4QHPPa/Feh3L/DBg6B7D4Lv3A+5f6+v
vsIk39Yr1hfH2rNTYv7nv/7lXkB0dUNvbUNHZlZ+WnrG7s5mblbSZx/9ZmWur7Uu70nAzZSc
/OqOgY7RuaK69pnVbReEvOkkMsfRGGrt72kIenQzKTGqtb25d3j4pp9/bFbO3PaeD0GN54r1
oa6BhuqO2pr6mtqc3IKHAU/u+gccySRur91qudzdnIzLyPrnTwKuBcSmFNY2i3rTMtKrKkrm
Z8ZtFoOoq/PuA7+4lJzu7p7lqaH0yMCnwU/i8iqOjPaB5a2IxIyAh/cCb38efPfzR/du3b17
96G/X0ZS5NrCsMuqXl4YT0+Nf3D/blNTS2fXQHF5/fU7j1u7BgiKQrz2zcWJ+rK8rraW+vqm
9OzC2/cfR0TGijq73C6X9lTcWZX7D//9v16741/dPbG8td/Q2Bjx/ElGXPjy5JDTdLmxON3d
2VZdW9fY1pFXkP/8eeCX1z9rbm3wwh6WZUfHRx4F+j17HlReXjg+NtDb0xqbkPowMG5pQ2J3
eyjKa9TLl6ZGSjMK7n32pLdthGdfz98Om7O6sqGwtK53dO6b9ScEiTisGvn6bELIs9//9oPR
pSOz5+VpAA734JYTzcFUff6Lh7c+jErPrRuYXTvWXDogmKQpmrKaDAVZqR/+/n8P9rRfqs70
Om1+aXFtR+u69EBr1cvPJJOTA7lZ8REhAQH+9+49uB/yIr6wunV6/fDS4vxRdeRvC8fSOGwd
7G16Eng3KTm2pbOtZ2TkZsDjiPTMkZU1Lwzb9Rd7c8MdtcVttSUdDZX5mSmBjx4GPPI/PDy0
O1wmi2V1YzUzO+na53+6det+TlZFj2gmI62woCBvYKjVZteIulpu376dEJPV39qzMTWUmx3w
JCIiLF20r3WPLM8lpka9CIoMfXjvycOP/B/duHvv7oO7DxOjnyzO9DltmqX58dzs9KCgoLKK
6tqG9tyi2tsPw1pFoz6EpBHX3spMXVlBd2dHU0t7Vn7pXb+gkNCIpoY6p8NkVB71NZX/42//
/Je7Twrr2qcXlttbm1Niw6Of+c+N9SFex+7GWmdHV1FFTX1fe0FxSsTje7c+DqltnDb4KIp1
zs33PY+IuH4/v6yga2dmqq2/5Wlc7E2/kMXlbYfDQ5OU1aBfmZkqzc66+fn19tbO1y+gZTmv
1THW0lNVWt8oGrS5PVf5m+F5GIfN1ssT6VZmUtK1P1+fHdm0m7xXVxTwjJPyKvQH053ZcU+v
XXscXVLcPrt6qDI6UYziSIK8VKlKcvNufnatq61DJlGcK3W5FS2lrYOTW3K1FUKId65TqEDw
90zI34L33tvN34CjSMxrNqjVqlOp5GhkcKijtbOnq//oUKJUqnQ6ncvl0ul0x8fHMplMJpPJ
5XKFQiGTyRQKhUFvsFotZrNeoZAcSw9lUrFMKpFLpAqJVC4+MmvVuM9NYr7T4722xsrPbgWm
5NXuis+NZpvRZNHp9R63Y3K0Jz/9xfHe7NxoS35G9Ivk1Mq23pnNo6m1vRO1gaDYN7VBxFDf
4c5iVWlmQlzY0eGOw2HT6vU1zc0NnaLl7V0YRUmPwyjd7a2trMzLzc3MioyK/eNfPv3tH/+8
uLrkdDtoGkcRY313/4ePUqJyW6ZW9p1ut9lisdusVovx8HAnOzfnvn/g6tah1e6yWwwLwx1F
hQWpxbVqq8PkdMtPz48lYpn4QC4+OJYcSSQSiVR6fiJ3WPQmrbIgJ60wL2t0eNCg11/qjMvr
u2k5RcMTcx4YpyhKo1JMj/fVVNdkZOU/C4v7/R+v3bjxoLiwxGazWTWy+f664CeP6zo6dW4I
QlD1hWp8qO/Zwxu9zZWIXadVKsbGxnMKy+LTc0Ojou7eu/H//uN/yy3Mc0BehmXHJidCo8Jr
6yp3d7e8XrfbbatvEt18+KJ3fPXSaAOApSjcotMvjy8E3YzsbRv5j9nWZrUXF1XkFFT2jvy1
/pvneQ5wDE3giLutoeHhvcdT6wqz59XBRY7lKIT0aSd6K2LD7leL+nfkKhgnSYZlOXBVr7y5
sliWn1FbUXSwt2V32OvbWufXVtyozwE5F1dni4uzstKj/e59+bvf/q+PPvnY/0lIcm556+CM
TKX7RQp4cRSRHazXVeQlxYcfHGzZ7FatwVDd2lLbJZrf2YZQGPPatLKdwfbaqvz0zIQXEc8C
P/rgjx/8+Y8zM7NWm42iaRiBu3vbHj2+nZKcMTez4nJCFrPNZNYZzGcqzW5pWda9e/eWFzYt
BpvTZlhdbS+oqo7NGzgzeEwOx7ny5PT4RC4RH4t3JdJDiUQilUhPFRKHTWc1X5QWZhXmZ/f3
911ealVq/eLqXm5x/ejUitMNMxR2cXI00tNaUlSUmp4bEpH4m99/cu3zm7nZ2VaL2Wu52Jwf
uBsek9vYqdDoXV7IpNeszowE3vqkq76cgBx2i3VuYTO/ojmhNC88OtD/+l9+90/XUzNER2ov
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
+SKnbGx91xuEvzgmQv5KblbirahzuXnJ3X1NabkvU1JLaqvGbRa3Si1sbMt695fvfPrhzReJ
rPa2nrTMhzfvfNDS1KPa05Mk6ff5vB6Pz+vzeXxL88uF+WVFxdWT08vmY+frPoK/PMrnc46M
9tXUlVdWl3I4ve3tHRUV1TnZhfNzyz5vyGy2ri8tsgqzP3n/nSuRtzIrGtsGJrYV+wgcJhD/
vkzU3VIf/+zFtRv3bkTcYecXlmTmxz1Ni0nOGZ5f9YWCRzoVb2mytrzwl+98lFnUpHWSKEET
BOJxG9bXO+Ie3P5f//jejSvpebk11eySGw8/TspMGhhd9PoCYY91TzD/8vHdrBcJzexaVnV1
zIO4M5ciKhrbN3ZUQZQgQR8VAACALwP5GwC+hCaQoNuysTo3wulqrK/Jyc56mZqWnpVTwarr
7uUsLi7u7OzMz883NjbW1dXV1dWx2Ww2m11XV9fU3LS8vCwS8tdXFnrbGpprK5pqKjqb61rq
KhuqitsaqnhLUxadymLUcpcXS4pK3/34+uMXxZOLQr5oc3ZmaXxk+ujQ0FHHfnzjhmxlcbyt
MeVhTEpmYU3HwMDsak1b34pAGoQQ8g+VHtM0hYSDOvV2RUn61Suf9PS0CETrfKEwv4SVnFZe
zuLYHZ4DxVZPY8WTezfSU541Nzd39HCSUzMvX4/My83ZEArCQe/W8lhtSW7806fNzc1LS0sy
mYzH46lUKpfLZTabW1tbo6OjG9hs7jpPvCVLzsjNKSieGJ9wOx0ep10h3+ptYz+4d+vsmdP9
Q8OrXMHi0vpY//jethxHg2HIb7eZudy1ixfuZmY2yOWOcJhgGIbAUJdZ21xZFHH6k7LCwtmZ
ud09FV+8lVlUdvl29Dx33eJwhII+w560Kuf51VMfNHb2rUt3DMf2QAjGcYImcQzyuyxHG7zV
pIT4jKKaEe6uLwgzDEMQuMtp62itvXfrQk113srKlEq9u7S2WFjQ8PhB6dqKULazOjXXeO3a
tadx2Zzu1e0txch4a37xo4K8Kh5384sDC0GQWCjp7uLU1DYvLHH1R8f4m2ykTnu9zoH+tpLi
rPy8jL7eruXlpY0N8dLSqlKpDgSgQCBkPtKtzE3cjriclJLWN722vad2ujwkSdAk7nFYxUJ+
Vl7RjTsP7t6Lmxsd5y6tTkwtdo/Obe4dwBjq93mODerlmdFPPzqXU9ysdVAowVAUGQo5ZbLR
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
f26uyJelRd34/JOb9yPSZBUlDe03w2Mrmzr0VoRhX1RsBASDwvrqUk5WRmjonfsPwh9GxZy9
eFUqK5WrNCRFOy3Hi6M9ydEPEmMjs7MlMQkpUXFJubKi4+Mjp9W4uzZblhF19dKFd05fjkrL
Tc4peZiQ8d4n5yJik0YmptFAYHNjQyrJvnDus7u3rifHPDz38fuXz5/LypYYbY75dUVGftmD
mMSwiKhHjx5FRTyIenAnNuJOTk5i/2Dr8tpkUWnOF7ev/fnUxw9jYlIkuXHpOR+cuXorPKGx
s8/tQfQH20NdjdnpKYlJyQlpWVHJ2fnl9SPTi/4ApjcYBwf606NCL/7p1+/88h+u3rwbmiRN
q26XH1r9JMtznAtxOJ0IGgiwgrCpUJaWVCTFp7Y0tmrUWpr+oUsGX1kn+fvuhZDq6gYnST7J
36IQpH3b64uV5WVxqdnxqVmpmdlJqZn1DY0bGxsEQRxq97ta6uMi7qXFhhdnJSRH3ElPS61u
fawy+xESmOxIe21Z9M3zp37/b+//4bdXboYmF1U3DY+r9XoMdc0NNpZkRd8PuXbmys0bUVkR
OU03Ygo/Ohd6/uyV1dkp1K53GTVlMml6enpGTkFyVl6qtKiwqmluTWGyOxyI43F7W8L9+2f/
8Pb7//G7K2evJafk17QNKrV6HtY/gSDoTQXzNwQ9B3Ak7jKuTA70NNeUF+XHx8aEPQh/EBEt
yZXV1DUMDQ0dHOimp6dLS0vz8/MLCgqKiory8/NzcnJKSkqnp6dXV5dm58Ya6ktLiyUlhVkV
xZLSvIyirOQySepcf5dVrVStzPe2NCXFJvzHu5/eicvsHJ1r6xkor6otK69QbK4XSNLPf/z+
RF9LU6k0IuRKeGxyTkVjfc9IVnH1yMyiF8X5FxQb4TnWaTc111eHhtwsKS7q6u5u7ei6FnI3
ISNndHY5gOF+xLy7PFFdnCPNTE1MSrp07eZ7H3567uLl1eUlp83sMB2ujD+Oio769/dOXw+P
L6hq7ugfy84vaWrv3tja1huNDQ31X9y4Ls3O7GxrHuztSox6EHYnJCMzy2C1r2/vlzd0SArL
JHmy/Px8WZ60MCejtCCjpbl0ZXX82KBaXplLzUx+/+MPLt28lVtS/nh0qrC6ua5jYGZF4ULM
00Od6TH3s9OSS0pKaxtbZZX14fHpYTHJyj2NyWJT76lmRrrTIm9f/Ojt0uqGrtHZyfVtiwel
uC/PA6Boalet6ezpLyyufPx4aHdXjWG48PrOauCe5O9bVVVf5W+eoZyG3Y76svD797NlZTVN
7U2t7akZkriEpKKiQgSxW03HC1MjDRVFssyE1Ee3b57782enT12/Hz22rjF5KV8A29lcbSiW
Roecj7gfWlpRNbm8Id/XOrwehsaP9+XTQx0FkrTfvPfR2Xsp0tbZhr650uqOstJanWr7aGd1
qrc5Kux2akpKfXN7U8fjtNziu1HJ+WU1a4ptjMBV28rWyqrE0HsRN+8W55VMTi5sbGtsLh+s
PwhB0BsL5m8Ieh7PsLjXbjw80qi2FZtjoyMtrW2NzW1r63KN5sBoNHq9XpPJpFQqNzc3t7a2
VCrV7u7uzs6OWq1GEKfH43Y4LFrt7t6uQrUj39+Vq7c31VvrGuUGotexqAcIjF6naWlofOvT
S2nFdQY3xvICSdFeH4pj2PT4cHFOumJpcrKvrSwvKzOvuKqtf3hxc2pNabA6vmXUBI5tLs9l
pyXdCflib2+Xpim3x1NZ11RR3zoxt4JiOOqy6ZTL4/2dTXXVubl5t+89+O1b7/3m938cGxly
OR1BIARZtKW9/eNLtx+l5U4ubeA0b7G7nB6fy+tb29hISU25cvmSanebpqkA6p8a7suTZKan
ZxgsNrPDrVBpN5Sqza1txZZCqdjcUaztba8d6bY9HjPP46LIDQz13Qq99SAmdmhqhuAEP8X6
SM4ToBDTUU1h1sVP3smXZHZ3d49Pz7b3Dd16EPX2R2fGZhZdHn8QCEEe622pjLx9VaU9Jtmv
pWog+Lyu7p7eyprmju4RO+LjXvf1fDx6Mv/k1rP3v0kcVS4OZcY/PHP6dGVD2/jMwtTMbK6s
+HbovbCw+ybjscdp3d/eXJoebastyY4Pf3Dj/LvvvP3bP51qG1kyImgwCIAobK9ON5VktDXV
7al2vzwcCIJgMIi6HYvTo++dOh+eWbGk86OMgJOc10cwZGB9diQvKeKLS+eyMjKGRidmFlfy
y2qu3H74ICZpfGbupGynWq7oqKhqKK1Rbmx9tWeYviEIelPB/A1BzwMAiDzHMgxN+X2+ra2t
2dm5hcVlt8dL0zTLsjzPsyxLkiRBECRJUk/RNM1xHM/zHMfSNEVRJEWRNEXSFEGTBE0SHEMD
gQsC9nB/t625JSQ2q31khuYFEQBRFHlBEAVhX7Xb1dxQkZdZVZBVlJP52aUv4iVFwwubK9v7
NqfnW0bt83q6WhukGSkFeVK7zSaKIsfxTrfH6faiGM6w7NbaQkVuyqPQG4V5kqmpKeWuOiun
4NSZz2emJj0uZxDwQcbb09d7KzKlsWdYc2wSRcByPMcLHq+3q+dxRkZGVma61WoRRZGhSZ16
u7aqPCUlxWqzsxxPUjRBUgT5BEUSFEkwDMXzrChyDIMNj/bFJcXVtrXtarQiAIIIeBGQBHG4
q8hJinznV/90/dL5mJjYtKzch7HJ9x7Fp2Tlbe8dBHAyKPJBwtVZXRB69axcfRBgvnb7n6NQ
xDTY19c3NLWmPMII+rVPdU/zd0h1dQNCPZn/jfk9M/31kaFX3vr970PDo2OS0uOSUiOi4xKS
kmtqqt1u19rKYl5WSuzD0NqygtW5ia3lmaysrM9nC2RmAAAgAElEQVQu3+qblVvcGBAFgUK3
FscaijLqKsuUCsVfHNTjMM1PDd8Mj6toG7SjLCsAUQQ8LwCRWZoaTAy78fF7b127eiUhJSM2
JTMyIT0uJbu8tlG5u3fybuzK5Y1l5SV5xWvL66/9GwRBEPSdYP6GoBeiaXp/f39zU76zoyII
8m9RZxkEg8KhRtXZ0RYpKR+cW/+LPdpt1vHhwRsXPstMiGxrqjt18caN8PjKtl7VkQklqG/e
ZTAoCoLX7Rzu60qKjYx4cN9iMQeDQREAmuNtTo9Ob/aigf6ulsiQS8U5adPjI2az2ePHisqq
Pjl9dnF+zu/1BIEQ5NHu/r7Q2IzJZYXd/VW9ZzQQGBkbT0xMfBB232w2AQBwLLAyP1lUkJuW
nm6z27/9pAAg8jwzOj6UlJbYNTR8aDR9+RBLU6YDVYkk+fMP38qTZHR3dU9Ozw6OTAyPTy+s
btidHprhggInYkhXTWHYzUvbB0cE97V72xxBuE1ri7PL60q1yUOx/Guf7sQAbVhXh12601Df
gvKcAEAwGMRR78Jwc0rU3UsXzje0dgyOTQyPjY+OT0zPzMrlcjyAdrY23bh0tqa0YGN5zmkz
O0260pKSM1dv983JLW4sCESRo+Tzo7V5Sc111bs7O39xUI/DtDQ7Gp6Y3TE0TXJf1pwEwaC4
sTCRE//g6uensjMzxiamhsYmxyZnZxeWV+VKqx05eZ5yY726uKikoGRtdeNlnisIgqBXE8zf
EPRCDMPo9XqtVqvXG0iS+qH9d4AocHTA795cna+qKg9JzG/sn3J6/CTNCU/jDIZhK8uLb//2
V4nRD+emJ+9ExF0MfZScW2JwuL4lVwo8h/rc25sryXFRpz7+cGlx0WK1Wm12nd64sKEcn1+z
OpzNteUh5z/qa6/f21FYrTbdsTElU/rH9z4Y7O83G/R4wOdGjivr6i6GRvVPLR2abBhOcLwA
AKAoakelSklN+ez0qZWVZZvVot3fqymTRT8Kj09IONQb2BeXZBF4liIDbpejrb0pLOJ+dXPb
xrYKxYiTFyxwrA+xdDVUxNy73t/dqdrdtTsQmwOxOpx2lxcjKIpmCCxgP9qrkWXcuXpuZnnN
hHgwguKfKTkOmEDAoVuaGp5aWNnQ2TH66wn9dQGAIPAEhnn1tq3hhS9OXSkpLDciiCfgp1mG
IgKqlbFKWWZCbMzGltJss9vsDpvdYbXa7HY7TWBVpUWffvDO9Eif6Uhrtxi12+tZWZkfnr1a
3z+tMSEMywZQ/1R/e07sncqSwoWFRZfHy3IsAKIo8BTuP95XDPa0hEQkVbX1m50+lORY4cn1
qG5X3l5VEP0gtKO1xWqzOxCnHXHaHE6TDfEHcJ7ncQybHh/NTknOypCMjk063R6SZr6lbCUE
QdBrD+ZvCHohURQpijqZZ8Jx/A/M34AjUIdu8nF1RsK9T09//IvfffJJSFxRU9+WzurDmZPn
MAyrVquvX7koy8neXF8vb+yMl5ZkFlfbnO5vua0LABB4lkDdvZ2tITeuXb9+9VFkZHqWJDYp
raK+ZWlzJ4DhM2MDsfeu3zh/Kvzu7fT0jAxp/pkLV//nv/3HzRs3GqorFqdGagrSz507+4t/
+8OZ6/dySqpnljccHpThhJOT0Pv48Z3bIY8iHiTFRyfHPQq58vmf3nnro48/GZuaQ9zeFw0M
9Vj25BM15VlXLp/6t1/9r4/PXUiUFA7MrjsCBHcybI6Rr8wUS5LuhtyIeBSZlp2XlJmbV1bb
NTRptiE2OyLf3CiRpl748x///Z/++/nrt3MqmmY21V6cEp6eDsZv218aunX+kwvX76ZX9xvd
/m8p0PizBkQB8/k2pufaZRUJV+7/23/55w8/+DQ5L6dtrFdrOhIFlvJZJga74mNjwiLjIhNS
k9KyklIzy8orp6YmAyg62Ndz88r5W1c/T4q8V5SVlBX74NzZz375xw+/iMrsHls4NponBnuT
H9z46H//45mPP7wXHlXa0GaxGTmOpHDPznxflTTm6tkP/+nXb797MTyuuGd822bysycLKGkS
PVBtJEQ+uH/vXlxSekZOYUZecU5pzdDkvO7Y6PG45+dnkuJj3n7r9+++/8HN0AdFVY2Kfb0X
e+HvORAEQa89mL8h6NsAAMSnfuD8E8AFAsj+wlB1TXFKfFLMteiMhznVZd2TGwd2N/ZV/rZa
rY97uhbnpg364/VdzdjS5sTKZgAnvnugAneoVfd2dWRnZ6VnZOYWFJXX1E/OLZpsCMtxeq1q
uLOhND8rT5Ipk8nqmtpKKmuzc/IkWVl93W3ypanmkuzkpPg70SnRGXkVLd1z60qHB2W4J2n2
6OhocKC/pKhAlpddVphTU1qQk50hkeasKnZcvhd1egeYz3SwO95Wn5uRFvkw8kFcelZhQ8fg
0pbJT1JPJnIDxGZcnZ+oqyrPy5dl5RVnFZQ3dg2sKlRef8Dj9anV6vaaUkliRHT4nZiU7OKm
3omNfRdKfHn3lMedFtVCUUZcZn5Jw/imBSXY13QCiijwhN+3t7g6XN1SFpcdeycyLj4lt7qi
a25Ea9UDIAZ5Wn+oGR4ayi+tziksKyytKCqt7B8c1mq1NE1r1arOlvqC7FRZdlK1LLOloqCs
tDizsDyzvGl8RWF1IMtTI3UFaSkPrqXGx2TnF9d3D+gNWory0jiiXujqqczIjA+/HREfmlaW
XD/ZK3ceulnxpIAJEDDUPTM2VFtTI8kvTsspklU1dg6Ob6sP7IjT5XKurixWV5XFxETGJCSm
SvIrmrrkByYP9toWiIQgCPpOMH9D0EsCBJwOGI5VM8q18cWVubF15cimembnWGMP+MgnVb0Z
hg0EMAwL4BiKYwGMYf0Mh9Ks8P1ajAs8F/D7lMqt6dnZyZk59YHO7fMLIgDBIIOjXpvBcLgv
31idn59Xaw8tdqfV4VhfW9Ood+zGg42ZwaWF2cWt3alVxcq2Rmu0+XGS479a70iR5I5SsbY8
r1hfMusPjg61ao3W6vLiNPuiV8xSTrddqVwfX12aWFlbWtzcWtrVKI6tNowjn96mFnmOwlGb
2bixKR8anxmdXVYfGgmaFUXAspzX49Uo17bX5uSrC9PLG7MKjeLQ7sOor2Yv8DjjN+q213Y1
un036eNE7jXN30AUWJLw6E2Hq1tb44vby1srq5szm+ubx/t21A2CIAiCAs+jaGBrT7siV67J
FRtypc3+pGwOQ5MexLqn3FiZn1ieGTlWb1mtJr3duaBUH1gcOEVaDvfV67Obs0Nri/PLG4p1
lcZm05OEm6M9Ds28dm1kY35ianF9YEXdt2ma0xEmn/DVBSkQRZYyGg2zi6tdA+MLG0qry8Px
PMuyfp/PoD/a2VGsrC4tr63PrqzPbW4fIb4A86JK9hAEQa8/mL8h6GUBoiiwDIWRRAAnsABB
ogSNUQzNCV/GawCAIAiCIIiCIAqCAIAgAuF7N74/2ZwkSQzDAhhG0wwvPJmpAUSB51iWoUmC
wHGcphmW4ziOIwiCpiiOpQkMxXEMJymMIAmKpllOeP6WvyiKFEkSOEYSOMvQDEPTNM3xz07G
/vor5nmOJIkAgQdwAsdJEqdokuE44aue6QAAURQ4liUIEg1gAQynGfZknwAAnudpkqAIjCRw
DCcwkiYZThCeGRgQRIFlSIKiGZoXBfAal5QGQBR5hmUIkgzgFE7iBIERBMnQnMA/fQYQBIGk
aIIkT/5w3JOYC0SR5ziKJAgsgGMoQ5McyzIcj5M0zXKiKLIMTRMYiaEEjuMESVA0xzGiyAOR
52icJlACD2A4geKUn2QxRmSF5880EFmWxXDChwZwguR4Hpz0pRcElmEoiiQIHCcIDCcwgmKe
+cxDEAS9gWD+hiAIgiAIgqCXB+ZvCIIgCIIgCHp5YP6GIAiCIAiCoJcH5m8IgiAIgiAIenlg
/oYgCIIgCIKglwfmbwiCIAiCIAh6eWD+hiAIgiAIgqCXB+ZvCIJeYQAAgSMIzO1xuzxufyBA
Mcz3rof+pgMAcLzIcMIPbN0KQRAE/W3B/A1B0KsLCByDIutrc1WN1eUN1f2T46rjY4phfupx
/QwAAFhOcHiII6uf4YTv3gCCIAh6WWD+hqAXOunex/M8z/Pi880gX1UCxxEOxLi6sTw2NWFx
OCj2L5rDg4Dfq9Oox0aH29raG5paunoH1Frd93lhAIiCwLA8xzzTvfJHBESRwnzmw9mB9sqK
/NScjMwCaUp+jqSyclahtHp8fPA1bnX5bSgaN1v1I5MjS/J1q9vF8vzXzwOBoUcH+62t7Q3t
A2OLOwGc+qFHPelTyrM8xwo8/7XvAggGBavNvLq+NjG7pD40kVzw2Q+JKIqCIHAcx3/Dtj8y
IBr1xxPjYw2NjZW19S2dvYo9nduPvdQxQBAEPQ/mbwh6IUEQMAzz+/0oijIsI4riTz2i78SR
lFu5syArlYbFPFrb3fXjxFcPAiAKzIFa2dlUGx8Tee369TPnL1+6eb9ncIz9Hj3uBYENoA7E
57FjNCf82KcCBAFP2g3a2cH8xPCs9LjSmvKalsaIlORPb92KL62c3NrFBFF4IwO4D3WubM7c
eXRHUlG0caDBafrrp8HrtC9MjVy6eOn6najy5iGXF/2hRwVA4FjM5/R7nFgAFYS/uKEOgoDd
2FjJK5RFJGV3jy16qCD/zGeEZdlAIOByuQKBgCC8rPkwAIg8R6De8eGB6MiHn5+/+P4nZ05f
uV3ZMaI+tr6MAUAQBL0AzN8Q9EIMwxweHu7s7Ozv76NogOf5n3pE30mgKP+uarGoPCc8Plqh
1Qbor6ZqiAJHo7bBzrr48DudrU2jo2O9g2PpBRV9E4tOlOK/K1JTZGBXOTmzsTKrtWI0++1P
/sFAMMjpFUsTVfmPaws3lmdcbpfb65nb3Mioqnzn6heZDW2HKMn86JcBryKM8Mh3Fm+Fh0gq
SxTGY5xlvh5meZYyGw5lhUVRSVJpWTvi8v7w41IEvre5uL22cKhVMzT9tcfB2vpqTn7+wyRJ
98SSlw0+e1ve5/Pt7+9PT0/v7+8zDPOS8rfIET7H2sxwRVFOWmry3PxCR+9QRlFNRdfYltbw
MgYAQRD0AjB/Q9AL0TSt02iV8q29nT0cw3/g/W8ARJHnaJIgcIwkiJO9iaKI4wRNMwCIgsDz
HMuxDM8yPMfwLEvTDM2wNMPiBEkzrPgd0z4AxzGBgNdgUC+tzo7PTtk9HoYXgsEgAEGe5/GA
73Bvo6YkN+pB6NLC/NGR/lBvWtnc1h6bMYoTXrRzEBRFkSZJi17XUp1XWl3VMr5sQTw0wwqi
CIJBQRBYlqEpij35iQAAjuNIiiIpimFYluMoiuI4Dpz8P0kQOC6Kz909BUBkWYYkCRzHSZLi
uJOpJeLO6mJdbmZuatzS3NTJM49t1ubBod99dj6usFKNoNSbNK0ZAFEUBYHnUNStO1b3jfQv
yTccqJ8Vnv0ZAIiiQJIkjgUsZlN7R2eGtEhaWIs43V8+g6Ior88XwDD66UpWQRA4juU4VhQF
URQpkiAJnKYoXhBFEAQA8IJAErjx6KC+rKC5pnxhdsbpctEMywuiCAAAQBQEmqR0BwczM7Nj
M4vqYxMlBEUQFIOAF3mWpQ72dgY62/KkeUPDEw6XDydojheCAACB5xiaJAiSIDmOEwFgGIYg
SZIkeJ5lGIokcJqmeJ4DQRAMBjmOo2hK4DkAvvoynmyF4wSG4QzLCU++p4BjSKtB11RZlC9J
r6muNprMh0bLinJvU31kd/te0tsGQRD0TWD+hqDnAVEUOIrE8QDqdjpVW9tr8ysbS+tOhxPD
MJIkeZ6nKApFUb/f73sGiqIURdE0TZIkiqJ+vw/1+/1+n9/nRX3egN9HBnyk32XSqVVbG1vy
Tb3JjLg9DqdLvrW9q9ozmUyIw6Y/1O7vbFn1OvOR5nBftbev0R4ZdHrzpnL3yGAmKPrF1wAi
EGmv267VquTyVe2Bxu31nswMBsGgIAb9Pu/BnrK3rSEpJvLunTvjE9O7exq90UIzLM/zNE1h
gYDf7/f50JM/fj/q96M4hlEkyZCUVX88NdB378r5kFt3MmTVE4vrR2YbTjGCKKJ+n/5IJ99c
12m1Xo+HJEmTxbq1vbuvOTBbrA7EuadW63SHFrNFp9Pt7GxvK7fsNiuOYSdTgQWexTGfQa9T
7e5syZU7O2qLxUFRjCCK29s7lRWVMVERY6PDQBQ5jjs0GDr6hz774q60ukWHoG/UskJR4FmK
8HucB5q99fXVg8NDr9//zLQhAESBJgkX4tje3pYrFCsrq42NjZKcvMLicqfTdXL94/f5NBrN
4vLyulxxcHTs9voYlsVwzG63ajVqg/7IZjXv723vbG2odpQWuxMjaE4QAzhxfKgb7e+5fuGz
+3duVVVWLa+tG612jGI4XhQ5ng5g+gPdjmJ7Z2vX7fIyzJOfRzjABWjUbDkc6W5Me3Dn/GcX
MrKLZ1d3D45t/gAJBIEJ+E06rXxtbWdbZXc4CZo+NBh2VLu7qm0nYrFa9Aca1c7O1uGRzuFE
3F7fkf5Yua041Kp8XufJJSuGBWw2275GK1fsyBU7BpMtgBEiEAWOcVhN89Pj0eH34qKjamrr
1ze3DFaHF6dY4WcwkwyCoNcbzN8Q9DyBplC7Wr60NDUy1ve4va6hNK+wILugt6t/ZmpWoVA4
nc7d3d2hoaHe3t6enp7u7u7Ozs6enp6RkZGTmSpbCsXI8OBAX89Qf09/T8dAd9tQd+t4X4dq
ZUqvmGsrzogMuXT21Cf3o5Pyq5qqWrou3wy9cPnao4iI5rqquPDQM+/9rkKSKIm5e/viqZD7
EYmSwqzimnPXQ/PLa7XHJpr55okfQGRZ3LC+2JuTFfPJJ+/dCr1d29xmcXo5MQhAkOFF5fpy
ZW7qF+dP/fu//vN/+7u/P/X55TsPY3KKKw1WxOlya9R7s5OjA/0DXT2D3d2DPT2DvY8H+3sH
56fn95Uqp8E03NF5++LFX/yf/8c//P0/vv3R+fcvh8kaunVmB8kw62vLGSkJf/jNrx6G3Rsd
HVHuqIrLq89dvpGQkt7W2TMyNnn/wcO7d+/HxsSGhz+4HXLrXujtIln+wvysx+3iec7vMW+t
j+VJkh7euxty487tWxGVVa07e0cYQbu9ft3RsUq1h9htLE0iDnt7Z/fDmMTciqZFxR7BfY9J
668RniH9iHlzcUKSlvjpxx9dunq9u2+QfnoSgCgIJHqwK29tqLlx4/qVK1dCQkIuXLjw8GFE
Q32Dx+NhWdZms/X09CSnpFy9efNa6N2k7OzOvl692bi3r+rsarl08bP7d6/nSZPjI2/funLq
+pUzRdWN6yqdn2SPDOaW5qbrFz//r//P//X//fdfvP/BhyH3I1r7hg0uP07ztD9gValr8opv
nLt++oNzHS39+mPLyZgDHKa2q+vbi0Kv/Pk3f/d//+L//cW//ubjc3fSKlon93RWliKtu/Li
lIQPf/f727fCegYn9kyWrKKiOw/vP4y819fb3P+4sUiW/vnnH98Ju51fVlLT0RmdnPDJqfev
nv/T4ONGUcAJzDs/NyORSO/ef3j1xt2Qu9EllW3ybS3NMD7E1NfecPPyuX/9p3/413/5lz++
+6dPzl1NzS+fXN+1BSgGBnAIgn5SMH9D0HMAR+BO/erUQHdjVXl+Tmps3KO7DyLuRuRLCxvr
m0dGRtRq9cTERElJSX5+fkFBgUwmy83NlUqlxcXFU1NTK8vL01OTFWXFsnxpUb60QJqRn5Ui
y0wslSTP9DYblAvr0wN1pXn3Q2/9/s9n7sVnNvQMl9Q0ZUhys7Ky5ibHshKjz7z/u+H2murc
5NDLp+9HxkvLG6s7hyLTctr7RhxuL/eCOegA8ALjMh4px4a709Lj74WHJWZkH1sdJ/mbE4DZ
cDw/1l+al3nz2pWPP/0st7C8patvcm7J4w/YHc61tbXq8lKpNDdTIsuWFObkFOblFcnyCh93
dO9sKHx2x55cXl9edvrtt86dOhudmC2raZtZ23L6AizPG/SH3e3Npz/6U1z0o9mZab3B2N7d
+yg2sam1Y3VtY2NT/igq+sKFizdv3qypqWlrbaksL3sUEV5SUrS+towHHFsb49UlKQXSpMqy
4pbGtoryxmxJaZ6sZk+j9/pxgqIJkgz4fWb94WB/X1V1bVVd89qWCvH4xTes/onIs1TAZ9Tt
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
40IaSnIy4x+VyfJcTiQYDPr9/r6+voqKipaWFq/X29vbezIpPCMzs7ahoaquvry6pq6pcWF5
yWwxWa2mQpmkvrZka2OeJHAMdco3F26GRzd09ZOcKALAs8zRwX743VvZmWkrKysEQXx9YBtL
66W5ZbVVLYqtPeH528zbyxOVmRGxUY9Gxia55/O3yNJ2/WF+fn6qtKCwvqPp8fDGtgoNYCcl
xnEcW1iYk5WUZkgL7Ajy5VZAFIyGw9CQa9euXEiITygtq6hraK1v6igur+sdGFNrdCc/kiAI
UpArLSsrm19cQTH8jb5wgyDoVQLzNwS9EOBZ+0YAACAASURBVE3T+/v7csXW7t4+TpI/dLUf
AEDgWArdU643NTbcScxtH5rBSIrlv1pH6ETso4N9b/36X+Meho7093x+/faF2xE5FY0mxMN/
94oxkecZrxdZXJrKLyyIT0k/ODwmKJrlhZPehSSOHu1tVpcXR8fGaw4OMYKiWe77viiRsxkO
ksO/SI6P6ewfMdkQFCdwkuKFJzuncXRsZDAq6lFI6L3Onl4UxwVBDAaB24VUlhTmSTNbWpos
VqsfRVVqTUR8akyqpKmze29vsa0xJyHq+vLciMNmoigaw3Cv1+/2+GiGPSn2AgDweT06rWZ9
bc1oML687i2vHiCKDEOjfu/WlvzqF7dKKmpsTi9FM6Io+r3uvpZqSVJ0Vmqi7kDr9/v1en1Z
WZlEImloaHC73ePj47GxsaWlpaurq2ggEMAwn9/v8XkxHKMZ2mo1S7JTK8vy5GuzJBHwe+0r
y1NX7oSXNXQ4/TgvCALP6g+1D++GpCYljE+M2x1IACdxkuaFk6qILE0SSzPzhZLCooLKxaUN
kmb4Zz5bO6uTlVkR4ffvdHT3uPyYF8VwHGcZ6qSMoN/v7x/oj4hPOX/7Uc/onNHmPOm2ynGc
x+2empwsLCnPzi85Mpi+/FSIAmsxHaYkRkmz00dHR61WG4oG/GjA7fGjAZymWVEEPMeZjIa8
HElBQcHQyJjT5eY4/k397EAQ9GqB+RuCXogXBK/P53R7PD4/y3M/NPaJLIu5TXsboz0t6Wlp
f7ryIC6vZn5zz+JGSfbJqkqWZXZ2lB+++1ZCVPjM1HhabvHd2PREaYnBivDfce9ODALS4zZv
yZdq68q+uH3zw1Nnm9p7Nnc0Fpef5QUaR806VW9LzaMH985dvFzX2jO7vrtvQmiW+56jd9pN
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
4YvkhaU1P/5VSFRcRk/fKARBGIqoVbfc8lK+gD89t2CxgjCKESRF/2005mSxWH/N2Pybxfo9
DENTBI7hOOb1ePZ2djdW1o/3T9yQG8Owu+bTFEXhX4JhGIZhOI7Tb1EE8fbH+Jd+kQTB0HQw
SKtvz7q6m8OS85sGZvwYTTMMTdMkSREEsbO1UV8naJGLmmV8YXXF85g3hVWKkYX9hc0Ttd72
jr1WvoQCgZuZqND7nNLa41MQRr7yNbsLgnq6uyq4lbUCscls+XwFJEOgfov6vEdYJKksltY3
Do6MN7d1Fpfznke+bO/uc/kCepO1rasvr4hzcHzq8foQOHB2uNsgFVWUFFotZgxFrCbD4tx0
S0O9oIorF/M72pqnZ2Zu9HqH33+t08TERQv4PJ3qCsdQgiAdTvfq5tG1xhhAEf3NGb8s5+Of
/bAgO0MgFEnqmyr40uySymIe//D8yuMP3EWuv70a7+nKyS8fm1n6/9m7z+62rjRP9N9h1r2v
77rr9tyZO2umu6erq7qryuWqcpRtyQpWzpESJZEUJUqMEnPOOeccwEwwZxIMAIhEAARIIucc
To73BWTZsq0qu9uW3dX7t/xCC8QG9tmA1/qfg+c8m3xVWU9TNBqcHR9LSUqpa+mbW16TyHYm
p8eUe3KSJJwua3Fp/gcf/TH68cP8gqy6uqrauqqMzKLU9Cq+UOnxBnEcMho2K8qS796+qd7T
kgTLsCxNsxTN0KGzHIbyup1jo8PDI6Mb20II+vfegPtjoRFaI9GGX39cVd9tgUK9uGmfzThe
nFIdG9VQWGi32WiW9fp8oxOTJWXlFRUVdrt9dHgw7PqVsGsXUxJjq6srS6oqMwry03Jzmjva
RFKRyawvL8tvqC1eX54KBv1Bv2NnZ+NBUmF936zNRxAUw+CYUaVIirxflpMt3NiGIejbE1tf
2i7OrK2r7BfwlTTz2g0QCv5iW0lSbMyjCS73G6OQgEsp5r14nlRV3zS/IezgTCxvCh1uL0lS
LMtCELS1uZFXWBId90KtMxMUy7IsQ9MMQxsN2sdR4bdvXI2NjS0oLK2saSqvbolPzq+qa1/n
CYIQzLKMzWYpKsitqChfWFrxB4I/2WcCAADww4D8DQBvhCCIVCIV8nf2FOofqf8gw7KUek/U
09MSk10xtrj5jTi9r97r6Wh+cOtK1vOnjTXlpy7eDH+a1tw/JZQfurzfJz04tJqZG5eOpafm
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
dWQg6FSuTXb1NpSW52QkRETGhkcmPYrLT86tr6jjDAyu89aHhoZKS0sLCgoKCgoKCwvz8/Pz
8/PLy8u5XO783OzE2HBjbWVZQXZhdmpFfkZFXmp5zvPKrMS5wVaTSmgzaqU7/Nam5t/8+fTt
xzljS5ItsWJyYZUzNqXVGVoa6yLCr4t3lkc5TakJURW1jb0jc9xF/sD4gkCy54eQN7W3o0jc
Z9fuCpfnJjnLSzNFZSXHz134r//wq2sRMWMrW74gJJcImqoLI+5cbq6tOFCr9vfVtVU1YTfv
dXcOCPmy9VXhiRNXc3PKttY3H4fdTUuK7+zraOhvzWsoKWmptLvsMBSwGfUHm5sF6blXb0cq
dAbiy94iUpmktr7mi4uXklLT5hbnFXI5p70+Pe5hdc/IrPRwW2vNaehJLKxOLqpILSjNLizN
LShKTkluaKjd4K1Cfs/cxGhK3NPm+urlpXn1vkql2tsUbK1srbuDfpTA/QG/RnOYn5XyxWfv
93MGpbsKi8WCIAiJY1jQbVIJFDu8leWl2obm2Ojo858d+dff/DY9r0Rj86AE6vE6dgS8vJSY
588elRSVCAVis9nm9wcoirSYTfMzU3FPn3D6+yAoiGEYXyiurG1+lpTKnZnD0aBWzetqzc9K
ixbweQf76r095Y5EvLOr3NOYUIxgGZZlGJqmZDJpe0d7bn7eyNiY0WINIhj5b6l9/34Y0mY6
LEyJryoumJtf2N3dlar2J9d4d6MeNLdVOsw7GslIXnbsJ2cu5bWMzfCkfL6gvKSkODerv73J
YbPNr2ykFtWk1g4sCfdoioJ8/o2hobqUxMrZjkURTzSzFnb+ekZx+dDK5vPjEUXPy/uW1zra
ylsq0/qbC7W7G4PdzclJcZOTk2KxRCJTDIwvxWdW3Y/NkSsPHHancm+vq6fv0q3wf/nwROvI
4qpQscbbGO5pl/OXELdGsTPP46+NrvJySstv3br7yQefnfz8cnPbkAemcBTxOq0S3lz+/SPp
L2JqR9cEcq3J4Q2gOEUzDENjBGpzWBem58tzKtIeZyxOLL5cDZq0m3SVuRlZiXF1ZaVC/vbB
3v7mylbMw7j8tMKl6UWrwdDT1nj70hePH4b193SqVarVdV5eUVl0XNKhwUyBAA4AwM8K5G8A
eB2N4ZBDqxJJ+etr87MDLW29tS3DLX3LU4v8Df6ubFev18vl8vX19dWvWVlZ4fF4e3t7Bwf7
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
--------------030200070401080801070406--

--------------010109000901070900060505--


From nobody Fri Mar  6 03:05:48 2015
Return-Path: <j.schoenwaelder@jacobs-university.de>
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 82A2B1A913E for <netmod@ietfa.amsl.com>; Fri,  6 Mar 2015 03:05:47 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.859
X-Spam-Level: 
X-Spam-Status: No, score=-3.859 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01, WEIRD_PORT=0.001] 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 JsGfYo3qkO5D for <netmod@ietfa.amsl.com>; Fri,  6 Mar 2015 03:05:45 -0800 (PST)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 662BE1A905E for <netmod@ietf.org>; Fri,  6 Mar 2015 03:05:44 -0800 (PST)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id EB574135A; Fri,  6 Mar 2015 12:05:41 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.220]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id XEJDzimW_Jyw; Fri,  6 Mar 2015 12:05:16 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS; Fri,  6 Mar 2015 12:05:41 +0100 (CET)
Received: from localhost (demetrius3.jacobs-university.de [212.201.44.48]) by hermes.jacobs-university.de (Postfix) with ESMTP id CC5DD20036; Fri,  6 Mar 2015 12:05:40 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius3.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id IfasBYg602lo; Fri,  6 Mar 2015 12:05:39 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id A2B062003A; Fri,  6 Mar 2015 12:05:37 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id CD61F325F35C; Fri,  6 Mar 2015 12:05:36 +0100 (CET)
Date: Fri, 6 Mar 2015 12:05:36 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Benoit Claise <bclaise@cisco.com>
Message-ID: <20150306110536.GA73575@elstar.local>
Mail-Followup-To: Benoit Claise <bclaise@cisco.com>, NETMOD Working Group <netmod@ietf.org>, draft-dong-i2rs-network-inventory@tools.ietf.org, "i2rs-chairs@tools.ietf.org" <i2rs-chairs@tools.ietf.org>
References: <54F985E2.6020304@cisco.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <54F985E2.6020304@cisco.com>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/MpPfJl_LRByhsHe9Jg7EMy5wwAM>
Cc: draft-dong-i2rs-network-inventory@tools.ietf.org, "i2rs-chairs@tools.ietf.org" <i2rs-chairs@tools.ietf.org>, NETMOD Working Group <netmod@ietf.org>
Subject: Re: [netmod] Inventory YANG model (entity-MIB)
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
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: <http://www.ietf.org/mail-archive/web/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, 06 Mar 2015 11:05:47 -0000

On Fri, Mar 06, 2015 at 11:48:02AM +0100, Benoit Claise wrote:
> Dear all,
> 
> The I2RS interim meeting yesterday focused on topology.
> Let me cut/paste a high level slide, with pointers to the relevant drafts.
> 
> 
> If interested, the meeting minutes are at 
> http://etherpad.tools.ietf.org:9000/p/i2rs-interim-march-5-2015-v-bluesheets
> 
> Part of the inventory draft 
> (http://datatracker.ietf.org/doc/draft-dong-i2rs-network-inventory/) 
> discussion, the overlap with the ENTITY-MIB RFC 6933 was discussed (and 
> RFC 7223 btw).
> 
> 
> The message was that I2RS should not re-invent something similar to the 
> ENTITY-MIB
> So, are you aware of any initiatives to "YANGify" the ENTITY-MIB?
> It's true that there is a way to translate MIB into YANG with RFC 6643. 
> This could be a good start. However, I wonder if a hand-written YANG 
> model that closely follows the entPhysical would not be more beneficial.
> Is this something we should take on board in NETMOD?
> 
> What do you think?
> 
> Note: As commented by the I2RS people, indexing is appropriate in the 
> MIB module for its original purpose, but may not be for the topology. 
> I'm not sure we want to change the indexing just for the topology, but 
> the integration within the topology draft should be thought of.
>

My first question is (perhaps not surprising) whether inventory falls
into the I2RS charter, I2RS = interface to the routing system. That
said, RFC 6643 gives you a read-only translation. There are not many
read-write objects in the ENTITY-MIB so perhaps this is good enough
for now. I guess it would help what I2RS needs to know in order to
make the interface to the routing system work.

Anyway, if YANG models overlapping the ENTITY-MIB are done, they they
should at least allow implementation of both in a predictable manner.
Looking at draft-dong-i2rs-network-inventory-00, it seems the whole
interface list is already covered by RFC 7223 and interfaces should be
references not repeated (this is what the ENTITY-MIB does). So what is
left is essentially a (not yet hierarchy) of 'cards' that seem to more
or less match the entPhysicalTable of the ENTITY-MIB (but then the
ENTITY-MIB has a more flexible model that distinguishes between
different kind of hardware components). I also notice that the model
in draft-dong-i2rs-network-inventory-00 is config true - so I am not
sure how this is supposed to use. Is the idea that this model is an
interface to an inventory database where I configure what I have
instead of a model sitting on a device where I can query what the
device actually has?

/js

PS: I personally would have preferred if generic topology and perhaps
    inventory would have split off into a short-lived targeted WG
    instead of doing all of this in I2RS but it seems leadership has
    already decided that I2RS is the home for all of this.

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Fri Mar  6 03:53:47 2015
Return-Path: <shares@ndzh.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 90CB61ACDB6 for <netmod@ietfa.amsl.com>; Fri,  6 Mar 2015 03:53:46 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -99.054
X-Spam-Level: 
X-Spam-Status: No, score=-99.054 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DOS_OUTLOOK_TO_MX=2.845, USER_IN_WHITELIST=-100, WEIRD_PORT=0.001] autolearn=no
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 Bg6l6kutZei2 for <netmod@ietfa.amsl.com>; Fri,  6 Mar 2015 03:53:44 -0800 (PST)
Received: from hickoryhill-consulting.com (hhc-web3.hickoryhill-consulting.com [64.9.205.143]) by ietfa.amsl.com (Postfix) with ESMTP id D0EB81ACDAD for <netmod@ietf.org>; Fri,  6 Mar 2015 03:53:42 -0800 (PST)
X-Default-Received-SPF: pass (skip=forwardok (res=PASS)) x-ip-name=74.43.47.92; 
From: "Susan Hares" <shares@ndzh.com>
To: "'Juergen Schoenwaelder'" <j.schoenwaelder@jacobs-university.de>, "'Benoit Claise'" <bclaise@cisco.com>
References: <54F985E2.6020304@cisco.com> <20150306110536.GA73575@elstar.local>
In-Reply-To: <20150306110536.GA73575@elstar.local>
Date: Fri, 6 Mar 2015 06:53:37 -0500
Message-ID: <0e7201d05804$2ef8dfc0$8cea9f40$@ndzh.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
X-Mailer: Microsoft Outlook 14.0
Content-Language: en-us
Thread-Index: AQC/r0YkLKSuBfrYEPhLebwn/CNVWgGB/IaPnySUmXA=
X-Authenticated-User: skh@ndzh.com 
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/0uXTtf4EHLyO_eWbBvdZNqnLZqw>
Cc: draft-dong-i2rs-network-inventory@tools.ietf.org, i2rs-chairs@tools.ietf.org, 'NETMOD Working Group' <netmod@ietf.org>
Subject: Re: [netmod] Inventory YANG model (entity-MIB)
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: <http://www.ietf.org/mail-archive/web/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, 06 Mar 2015 11:53:46 -0000

Juergen:

<chair hat on> 
Thank you for your input on location of work.  I will discuss this with Alia
and Jeff this morning.  If you do have input where a yang module updating
the Entity-MIB might be worked on, please drop me a note. 
<chair hat off>

Jie Dong, I, and other members of the I2RS topology task simply want to get
the inventory information added to some yang model.  In our multiple vendor
(Cisco, Ericsson, Juniper, Huawei, packet-design),  many people felt it was
reasonable.  

As technical advisor, do you know if the Entity-MIB work scheduled for
upgrading to a yang module?  If not, is there a working group where we could
suggest an equivalent model. 
  
As to config true,  this Data model seems IMHO (jie may correct me) one of
the I2RS model that wants to have ephemeral state but also change things in
the data store.  

<chair hat on> 
I asked the design teams to focus on the functions they desired in the
datastore so that we could see more test cases.  I hope you as the I2RS
technical advisor will help us dive into protocol issues with specific
models. 
<chair hat off> 


 
-----Original Message-----
From: Juergen Schoenwaelder [mailto:j.schoenwaelder@jacobs-university.de] 
Sent: Friday, March 06, 2015 6:06 AM
To: Benoit Claise
Cc: NETMOD Working Group; draft-dong-i2rs-network-inventory@tools.ietf.org;
i2rs-chairs@tools.ietf.org
Subject: Re: [netmod] Inventory YANG model (entity-MIB)

On Fri, Mar 06, 2015 at 11:48:02AM +0100, Benoit Claise wrote:
> Dear all,
> 
> The I2RS interim meeting yesterday focused on topology.
> Let me cut/paste a high level slide, with pointers to the relevant drafts.
> 
> 
> If interested, the meeting minutes are at 
> http://etherpad.tools.ietf.org:9000/p/i2rs-interim-march-5-2015-v-blue
> sheets
> 
> Part of the inventory draft
> (http://datatracker.ietf.org/doc/draft-dong-i2rs-network-inventory/)
> discussion, the overlap with the ENTITY-MIB RFC 6933 was discussed 
> (and RFC 7223 btw).
> 
> 
> The message was that I2RS should not re-invent something similar to 
> the ENTITY-MIB So, are you aware of any initiatives to "YANGify" the 
> ENTITY-MIB?
> It's true that there is a way to translate MIB into YANG with RFC 6643. 
> This could be a good start. However, I wonder if a hand-written YANG 
> model that closely follows the entPhysical would not be more beneficial.
> Is this something we should take on board in NETMOD?
> 
> What do you think?
> 
> Note: As commented by the I2RS people, indexing is appropriate in the 
> MIB module for its original purpose, but may not be for the topology.
> I'm not sure we want to change the indexing just for the topology, but 
> the integration within the topology draft should be thought of.
>

My first question is (perhaps not surprising) whether inventory falls
into the I2RS charter, I2RS = interface to the routing system. That
said, RFC 6643 gives you a read-only translation. There are not many
read-write objects in the ENTITY-MIB so perhaps this is good enough
for now. I guess it would help what I2RS needs to know in order to
make the interface to the routing system work.

Anyway, if YANG models overlapping the ENTITY-MIB are done, they they
should at least allow implementation of both in a predictable manner.
Looking at draft-dong-i2rs-network-inventory-00, it seems the whole
interface list is already covered by RFC 7223 and interfaces should be
references not repeated (this is what the ENTITY-MIB does). So what is
left is essentially a (not yet hierarchy) of 'cards' that seem to more
or less match the entPhysicalTable of the ENTITY-MIB (but then the
ENTITY-MIB has a more flexible model that distinguishes between
different kind of hardware components). I also notice that the model
in draft-dong-i2rs-network-inventory-00 is config true - so I am not
sure how this is supposed to use. Is the idea that this model is an
interface to an inventory database where I configure what I have
instead of a model sitting on a device where I can query what the
device actually has?

/js

PS: I personally would have preferred if generic topology and perhaps
    inventory would have split off into a short-lived targeted WG
    instead of doing all of this in I2RS but it seems leadership has
    already decided that I2RS is the home for all of this.

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Fri Mar  6 04:05:17 2015
Return-Path: <bclaise@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 0A5A81ACDB4 for <netmod@ietfa.amsl.com>; Fri,  6 Mar 2015 04:05:16 -0800 (PST)
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, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01, USER_IN_DEF_DKIM_WL=-7.5, WEIRD_PORT=0.001] 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 9b9EkhdO98CZ for <netmod@ietfa.amsl.com>; Fri,  6 Mar 2015 04:05:14 -0800 (PST)
Received: from aer-iport-2.cisco.com (aer-iport-2.cisco.com [173.38.203.52]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id AC7321ACDAF for <netmod@ietf.org>; Fri,  6 Mar 2015 04:05:13 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=3356; q=dns/txt; s=iport; t=1425643513; x=1426853113; h=message-id:date:from:mime-version:to:subject:references: in-reply-to:content-transfer-encoding; bh=sY5/ccvFY/IfkG2kNEgyLpqV+3F+MzqhaYVJUQUDyY4=; b=GpBz18RGe0qYC3yQIJakEYsSXLjzjcIxliQwEnz/F5QdQSvRk7DC33A5 vFbK22M0Ep4nE4dwyyARZX/EKnQ2Yfv1CljhjQnTJEg/B5NrTyt6XJ6ZT iYQC83LhkVTuJXIvKk5mej3zGl71Lnji5xQF0K1PIsSNDTO3uLoLC/EYY s=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0B5CAAQl/lU/xbLJq1cg1hau3GDNYJLhW4CggoBAQEBAQF8hA8BAQEDATIBBUAGCwsYCRYPCQMCAQIBRQYBDAgBAYgjCA3PLgEBAQEBAQEDAQEBAQEBHIsXhAwRAVeEKwEEk2qCGIFXgXuBGhEohSAhjFsjggIcgVE9MoEKgTgBAQE
X-IronPort-AV: E=Sophos;i="5.11,352,1422921600"; d="scan'208";a="371833849"
Received: from aer-iport-nat.cisco.com (HELO aer-core-1.cisco.com) ([173.38.203.22]) by aer-iport-2.cisco.com with ESMTP; 06 Mar 2015 12:05:12 +0000
Received: from [10.60.67.85] (ams-bclaise-8914.cisco.com [10.60.67.85]) by aer-core-1.cisco.com (8.14.5/8.14.5) with ESMTP id t26C5Br6027249; Fri, 6 Mar 2015 12:05:11 GMT
Message-ID: <54F997F5.8080500@cisco.com>
Date: Fri, 06 Mar 2015 13:05:09 +0100
From: Benoit Claise <bclaise@cisco.com>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0
MIME-Version: 1.0
To: NETMOD Working Group <netmod@ietf.org>, draft-dong-i2rs-network-inventory@tools.ietf.org, "i2rs-chairs@tools.ietf.org" <i2rs-chairs@tools.ietf.org>
References: <54F985E2.6020304@cisco.com> <20150306110536.GA73575@elstar.local>
In-Reply-To: <20150306110536.GA73575@elstar.local>
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 8bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/aRuED6wpS6Yh0c5Ttx6fg3dDmlU>
Subject: Re: [netmod] Inventory YANG model (entity-MIB)
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: <http://www.ietf.org/mail-archive/web/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, 06 Mar 2015 12:05:16 -0000

Hi Jürgen,
> On Fri, Mar 06, 2015 at 11:48:02AM +0100, Benoit Claise wrote:
>> Dear all,
>>
>> The I2RS interim meeting yesterday focused on topology.
>> Let me cut/paste a high level slide, with pointers to the relevant drafts.
>>
>>
>> If interested, the meeting minutes are at
>> http://etherpad.tools.ietf.org:9000/p/i2rs-interim-march-5-2015-v-bluesheets
>>
>> Part of the inventory draft
>> (http://datatracker.ietf.org/doc/draft-dong-i2rs-network-inventory/)
>> discussion, the overlap with the ENTITY-MIB RFC 6933 was discussed (and
>> RFC 7223 btw).
>>
>>
>> The message was that I2RS should not re-invent something similar to the
>> ENTITY-MIB
>> So, are you aware of any initiatives to "YANGify" the ENTITY-MIB?
>> It's true that there is a way to translate MIB into YANG with RFC 6643.
>> This could be a good start. However, I wonder if a hand-written YANG
>> model that closely follows the entPhysical would not be more beneficial.
>> Is this something we should take on board in NETMOD?
>>
>> What do you think?
>>
>> Note: As commented by the I2RS people, indexing is appropriate in the
>> MIB module for its original purpose, but may not be for the topology.
>> I'm not sure we want to change the indexing just for the topology, but
>> the integration within the topology draft should be thought of.
>>
> My first question is (perhaps not surprising) whether inventory falls
> into the I2RS charter, I2RS = interface to the routing system.
No it doesn't.
As mentioned during the interim yesterday by the I2RS people, they would 
be happy if the inventory work be done somewhere else. Hence this email 
thread. I believe this work should be picked up by NETMOD .

> That
> said, RFC 6643 gives you a read-only translation. There are not many
> read-write objects in the ENTITY-MIB so perhaps this is good enough
> for now. I guess it would help what I2RS needs to know in order to
> make the interface to the routing system work.
>
> Anyway, if YANG models overlapping the ENTITY-MIB are done, they they
> should at least allow implementation of both in a predictable manner.
> Looking at draft-dong-i2rs-network-inventory-00, it seems the whole
> interface list is already covered by RFC 7223 and interfaces should be
> references not repeated (this is what the ENTITY-MIB does).
Yes, I made that point.
Similarly, this draft should reference a inventory YANG model

> So what is
> left is essentially a (not yet hierarchy) of 'cards' that seem to more
> or less match the entPhysicalTable of the ENTITY-MIB (but then the
> ENTITY-MIB has a more flexible model that distinguishes between
> different kind of hardware components).
> I also notice that the model
> in draft-dong-i2rs-network-inventory-00 is config true - so I am not
> sure how this is supposed to use.
> Is the idea that this model is an
> interface to an inventory database where I configure what I have
> instead of a model sitting on a device where I can query what the
> device actually has?
>
> /js
Regards, Benoit
>
> PS: I personally would have preferred if generic topology and perhaps
>      inventory would have split off into a short-lived targeted WG
>      instead of doing all of this in I2RS but it seems leadership has
>      already decided that I2RS is the home for all of this.
>


From nobody Fri Mar  6 04:20:40 2015
Return-Path: <tnadeau@lucidvision.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 C40E21ACDCE for <netmod@ietfa.amsl.com>; Fri,  6 Mar 2015 04:20:35 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.896
X-Spam-Level: 
X-Spam-Status: No, score=0.896 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FH_RELAY_NODNS=1.451, HELO_MISMATCH_COM=0.553, RDNS_NONE=0.793, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, WEIRD_PORT=0.001] autolearn=no
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 vI6V0M13lZ20 for <netmod@ietfa.amsl.com>; Fri,  6 Mar 2015 04:20:34 -0800 (PST)
Received: from lucidvision.com (unknown [50.255.148.178]) by ietfa.amsl.com (Postfix) with ESMTP id 2AB151ACDCD for <netmod@ietf.org>; Fri,  6 Mar 2015 04:20:34 -0800 (PST)
Received: from [192.168.1.134] (unknown [50.255.148.177]) by lucidvision.com (Postfix) with ESMTP id 9AC7E2FE0828; Fri,  6 Mar 2015 07:20:33 -0500 (EST)
Content-Type: text/plain; charset=windows-1252
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2070.6\))
From: "Thomas D. Nadeau" <tnadeau@lucidvision.com>
In-Reply-To: <54F997F5.8080500@cisco.com>
Date: Fri, 6 Mar 2015 07:20:32 -0500
Content-Transfer-Encoding: quoted-printable
Message-Id: <2D3BC67E-9B26-488E-BF4D-0FC899C3A8CA@lucidvision.com>
References: <54F985E2.6020304@cisco.com> <20150306110536.GA73575@elstar.local> <54F997F5.8080500@cisco.com>
To: Benoit Claise <bclaise@cisco.com>
X-Mailer: Apple Mail (2.2070.6)
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/fLdspdRXMnoagRGyWPToGsgNhsA>
Cc: draft-dong-i2rs-network-inventory@tools.ietf.org, "i2rs-chairs@tools.ietf.org" <i2rs-chairs@tools.ietf.org>, NETMOD Working Group <netmod@ietf.org>
Subject: Re: [netmod] Inventory YANG model (entity-MIB)
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: <http://www.ietf.org/mail-archive/web/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, 06 Mar 2015 12:20:35 -0000

> On Mar 6, 2015:7:05 AM, at 7:05 AM, Benoit Claise <bclaise@cisco.com> =
wrote:
>=20
> Hi J=FCrgen,
>> On Fri, Mar 06, 2015 at 11:48:02AM +0100, Benoit Claise wrote:
>>> Dear all,
>>>=20
>>> The I2RS interim meeting yesterday focused on topology.
>>> Let me cut/paste a high level slide, with pointers to the relevant =
drafts.
>>>=20
>>>=20
>>> If interested, the meeting minutes are at
>>> =
http://etherpad.tools.ietf.org:9000/p/i2rs-interim-march-5-2015-v-blueshee=
ts
>>>=20
>>> Part of the inventory draft
>>> (http://datatracker.ietf.org/doc/draft-dong-i2rs-network-inventory/)
>>> discussion, the overlap with the ENTITY-MIB RFC 6933 was discussed =
(and
>>> RFC 7223 btw).
>>>=20
>>>=20
>>> The message was that I2RS should not re-invent something similar to =
the
>>> ENTITY-MIB
>>> So, are you aware of any initiatives to "YANGify" the ENTITY-MIB?
>>> It's true that there is a way to translate MIB into YANG with RFC =
6643.
>>> This could be a good start. However, I wonder if a hand-written YANG
>>> model that closely follows the entPhysical would not be more =
beneficial.
>>> Is this something we should take on board in NETMOD?
>>>=20
>>> What do you think?
>>>=20
>>> Note: As commented by the I2RS people, indexing is appropriate in =
the
>>> MIB module for its original purpose, but may not be for the =
topology.
>>> I'm not sure we want to change the indexing just for the topology, =
but
>>> the integration within the topology draft should be thought of.
>>>=20
>> My first question is (perhaps not surprising) whether inventory falls
>> into the I2RS charter, I2RS =3D interface to the routing system.
> No it doesn't.
> As mentioned during the interim yesterday by the I2RS people, they =
would be happy if the inventory work be done somewhere else. Hence this =
email thread. I believe this work should be picked up by NETMOD .

	I agree with Juergen's assessment; this seems like it should be =
done in NETMOD. We should figure out a way to leverage the entity MIB =
but given that module's age, we should also be open to updates because =
the world has changed since that was published. =20

	So there is a wider question as Juergen asked at the end of the =
thread: should here be a concentrated effort to do topology/inventory =
that applies to all areas ?  I'd say yes.  While not a super =
complicated, long effort, this is something that needs to be done in a =
way that it applies to more than just the use cases of a specific =
routing use case.  With that in mind, its important to get the network =
operators involved on this effort so that this is not done in a vendor =
vacuum.

	Speaking as an individual, I will point out that the topology =
model that I've worked on with Jan et al you can see the approach taken =
on network topology. This has been implemented in ODL, which means its =
being tried in production environments right now and works quite well:

http://www.ietf.org/archive/id/draft-medved-i2rs-topology-im-01.txt

	Another data point here. Shane and others have been been clear =
that an inventory is needed and how it is a bit different than network =
topology as specified above, but that it should be consistent in certain =
places too:

https://datatracker.ietf.org/doc/draft-amante-i2rs-topology-use-cases/

	--Tom


> That
>> said, RFC 6643 gives you a read-only translation. There are not many
>> read-write objects in the ENTITY-MIB so perhaps this is good enough
>> for now. I guess it would help what I2RS needs to know in order to
>> make the interface to the routing system work.
>>=20
>> Anyway, if YANG models overlapping the ENTITY-MIB are done, they they
>> should at least allow implementation of both in a predictable manner.
>> Looking at draft-dong-i2rs-network-inventory-00, it seems the whole
>> interface list is already covered by RFC 7223 and interfaces should =
be
>> references not repeated (this is what the ENTITY-MIB does).
> Yes, I made that point.
> Similarly, this draft should reference a inventory YANG model
>=20
>> So what is
>> left is essentially a (not yet hierarchy) of 'cards' that seem to =
more
>> or less match the entPhysicalTable of the ENTITY-MIB (but then the
>> ENTITY-MIB has a more flexible model that distinguishes between
>> different kind of hardware components).
>> I also notice that the model
>> in draft-dong-i2rs-network-inventory-00 is config true - so I am not
>> sure how this is supposed to use.
>> Is the idea that this model is an
>> interface to an inventory database where I configure what I have
>> instead of a model sitting on a device where I can query what the
>> device actually has?
>>=20
>> /js
> Regards, Benoit
>>=20
>> PS: I personally would have preferred if generic topology and perhaps
>>     inventory would have split off into a short-lived targeted WG
>>     instead of doing all of this in I2RS but it seems leadership has
>>     already decided that I2RS is the home for all of this.
>>=20
>=20
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod
>=20


From nobody Fri Mar  6 05:17:53 2015
Return-Path: <j.schoenwaelder@jacobs-university.de>
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 543E91ACE08 for <netmod@ietfa.amsl.com>; Fri,  6 Mar 2015 05:17:52 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.86
X-Spam-Level: 
X-Spam-Status: No, score=-3.86 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] 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 aOU3KqvwCFTg for <netmod@ietfa.amsl.com>; Fri,  6 Mar 2015 05:17:51 -0800 (PST)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 115FD1A1A67 for <netmod@ietf.org>; Fri,  6 Mar 2015 05:17:51 -0800 (PST)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id D4430FE8 for <netmod@ietf.org>; Fri,  6 Mar 2015 14:17:49 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.220]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id Z8LkMDSBerwN for <netmod@ietf.org>; Fri,  6 Mar 2015 14:17:23 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS for <netmod@ietf.org>; Fri,  6 Mar 2015 14:17:49 +0100 (CET)
Received: from localhost (demetrius4.jacobs-university.de [212.201.44.49]) by hermes.jacobs-university.de (Postfix) with ESMTP id 253052003C for <netmod@ietf.org>; Fri,  6 Mar 2015 14:17:49 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius4.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id qK4YCCgqd2GN; Fri,  6 Mar 2015 14:17:48 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id 60D8C2003A; Fri,  6 Mar 2015 14:17:48 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id EC383325F7C9; Fri,  6 Mar 2015 14:17:46 +0100 (CET)
Date: Fri, 6 Mar 2015 14:17:46 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: netmod@ietf.org
Message-ID: <20150306131746.GA74024@elstar.local>
Mail-Followup-To: netmod@ietf.org
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/i5enJGhL5z-QOi9hEkQCfbrBs88>
Subject: [netmod] VRFY :Y18: fix "when" expression context problem
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
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: <http://www.ietf.org/mail-archive/web/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, 06 Mar 2015 13:17:52 -0000

Hi,

the 2015-03-04 virtual interim meeting tasked Martin and Lada to
produce an update of Y18-01 to clarify some corner cases.  This update
has been added to the issues list and the proposal is now to adopt
Y18-01. Please speak up by Friday 2015-03-13 if you disagree with this
proposal.

For more details, see the issues list and the virtual interim meeting
minutes available here:

     http://svn.tools.ietf.org/svn/wg/netmod/yang-1.1/

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Fri Mar  6 05:36:49 2015
Return-Path: <bclaise@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 D37AA1ACDF2 for <netmod@ietfa.amsl.com>; Fri,  6 Mar 2015 05:36:47 -0800 (PST)
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 BRrjfPcJ3MgF for <netmod@ietfa.amsl.com>; Fri,  6 Mar 2015 05:36:46 -0800 (PST)
Received: from aer-iport-4.cisco.com (aer-iport-4.cisco.com [173.38.203.54]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 05A231A1A67 for <netmod@ietf.org>; Fri,  6 Mar 2015 05:36:45 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=2404; q=dns/txt; s=iport; t=1425649006; x=1426858606; h=message-id:date:from:mime-version:to:cc:subject: references:in-reply-to:content-transfer-encoding; bh=02ZpvXMbsPMs2hmpFQWxlorcFxZCO0IkOjWTuDjKTlg=; b=JXWiUjlQy20EvN8jb9FzKuwTOtZkCVmhltbCw8PzSZwWwbxFsVzZQ3oF Eb9vGsn69GT2YFRRs7IN77xPsqSvwJPQPRxRVaVCK4n4vUaBvZkqK1xMA EOT+Y/ZR99uEsb8gf3avIEyMMwwg5574h4V7eQxAHBqbUg55LZNPd2Rv2 4=;
X-IronPort-AV: E=Sophos;i="5.11,352,1422921600"; d="scan'208";a="367505822"
Received: from aer-iport-nat.cisco.com (HELO aer-core-3.cisco.com) ([173.38.203.22]) by aer-iport-4.cisco.com with ESMTP; 06 Mar 2015 13:36:42 +0000
Received: from [10.60.67.85] (ams-bclaise-8914.cisco.com [10.60.67.85]) by aer-core-3.cisco.com (8.14.5/8.14.5) with ESMTP id t26DagXp022257; Fri, 6 Mar 2015 13:36:42 GMT
Message-ID: <54F9AD67.1090506@cisco.com>
Date: Fri, 06 Mar 2015 14:36:39 +0100
From: Benoit Claise <bclaise@cisco.com>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0
MIME-Version: 1.0
To: "Cesar Crusius (ccrusius)" <ccrusius@cisco.com>, RFC Errata System <rfc-editor@rfc-editor.org>, "mbj@tail-f.com" <mbj@tail-f.com>, "joelja@bogus.com" <joelja@bogus.com>, "j.schoenwaelder@jacobs-university.de" <j.schoenwaelder@jacobs-university.de>,  "tnadeau@lucidvision.com" <tnadeau@lucidvision.com>
References: <20150227184159.346B8187A98@rfc-editor.org> <D11658BB.4AEC%ccrusius@cisco.com>
In-Reply-To: <D11658BB.4AEC%ccrusius@cisco.com>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/C8-tIR6O7UkSs7NjSp44hdY8qTI>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] [Technical Errata Reported] RFC6020 (4282)
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: <http://www.ietf.org/mail-archive/web/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, 06 Mar 2015 13:36:48 -0000

Cesar,

Provide me the exact new text, and I'll cut and paste in the errata.

Regards, Benoit
> There is a problem with this errata due to a paste problem (parentheses
> got stripped out). Where it reads
>
> *unknown_statement2 optsep
>
> It should read
>
> *(unknown_statement2 optsep)
>
> Thanks,
>
>
> - Cesar
>
> On 2/27/15, 10:41 AM, "RFC Errata System" <rfc-editor@rfc-editor.org>
> wrote:
>
>> The following errata report has been submitted for RFC6020,
>> "YANG - A Data Modeling Language for the Network Configuration Protocol
>> (NETCONF)".
>>
>> --------------------------------------
>> You may review the report below and at:
>> http://www.rfc-editor.org/errata_search.php?rfc=6020&eid=4282
>>
>> --------------------------------------
>> Type: Technical
>> Reported by: Cesar Crusius <ccrusius@cisco.com>
>>
>> Section: 12
>>
>> Original Text
>> -------------
>> unknown-statement   = prefix ":" identifier [sep string] optsep
>>                       (";" / "{" *unknown-statement2 "}")
>> unknown-statement2   = [prefix ":"] identifier [sep string] optsep
>>                       (";" / "{" *unknown-statement2 "}")
>>
>>
>> Corrected Text
>> --------------
>> unknown-statement   = prefix ":" identifier [sep string] optsep
>>                       (";" / "{" optsep *unknown-statement2 optsep "}")
>> unknown-statement2   = [prefix ":"] identifier [sep string] optsep
>>                       (";" / "{" optsep *unknown-statement2 optsep "}")
>>
>>
>> Notes
>> -----
>>
>>
>> Instructions:
>> -------------
>> This erratum is currently posted as "Reported". If necessary, please
>> use "Reply All" to discuss whether it should be verified or
>> rejected. When a decision is reached, the verifying party (IESG)
>> can log in to change the status and edit the report, if necessary.
>>
>> --------------------------------------
>> RFC6020 (draft-ietf-netmod-yang-13)
>> --------------------------------------
>> Title               : YANG - A Data Modeling Language for the Network
>> Configuration Protocol (NETCONF)
>> Publication Date    : October 2010
>> Author(s)           : M. Bjorklund, Ed.
>> Category            : PROPOSED STANDARD
>> Source              : NETCONF Data Modeling Language
>> Area                : Operations and Management
>> Stream              : IETF
>> Verifying Party     : IESG
>>


From nobody Fri Mar  6 05:38:18 2015
Return-Path: <j.schoenwaelder@jacobs-university.de>
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 2E1F21ACE0F for <netmod@ietfa.amsl.com>; Fri,  6 Mar 2015 05:38:17 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.86
X-Spam-Level: 
X-Spam-Status: No, score=-3.86 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] 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 LAptTNRsa0N8 for <netmod@ietfa.amsl.com>; Fri,  6 Mar 2015 05:38:15 -0800 (PST)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9BCB51ACD4D for <netmod@ietf.org>; Fri,  6 Mar 2015 05:38:15 -0800 (PST)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id 1C816135A; Fri,  6 Mar 2015 14:38:14 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.220]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id YYM2-k9bBUOC; Fri,  6 Mar 2015 14:37:47 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS; Fri,  6 Mar 2015 14:38:13 +0100 (CET)
Received: from localhost (demetrius1.jacobs-university.de [212.201.44.46]) by hermes.jacobs-university.de (Postfix) with ESMTP id 56B5D2003C; Fri,  6 Mar 2015 14:38:13 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius1.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id QqRVkgWD4Les; Fri,  6 Mar 2015 14:38:12 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id 293572003A; Fri,  6 Mar 2015 14:38:12 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id 06A96325F8A6; Fri,  6 Mar 2015 14:38:10 +0100 (CET)
Date: Fri, 6 Mar 2015 14:38:10 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Susan Hares <shares@ndzh.com>
Message-ID: <20150306133808.GB74093@elstar.local>
Mail-Followup-To: Susan Hares <shares@ndzh.com>, 'Benoit Claise' <bclaise@cisco.com>, 'NETMOD Working Group' <netmod@ietf.org>, draft-dong-i2rs-network-inventory@tools.ietf.org, i2rs-chairs@tools.ietf.org
References: <54F985E2.6020304@cisco.com> <20150306110536.GA73575@elstar.local> <0e7201d05804$2ef8dfc0$8cea9f40$@ndzh.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <0e7201d05804$2ef8dfc0$8cea9f40$@ndzh.com>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/NT5KUXuY1g9YAZNy3IqXiVq8foU>
Cc: draft-dong-i2rs-network-inventory@tools.ietf.org, i2rs-chairs@tools.ietf.org, 'NETMOD Working Group' <netmod@ietf.org>
Subject: Re: [netmod] Inventory YANG model (entity-MIB)
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
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: <http://www.ietf.org/mail-archive/web/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, 06 Mar 2015 13:38:17 -0000

On Fri, Mar 06, 2015 at 06:53:37AM -0500, Susan Hares wrote:
> 
> As technical advisor, do you know if the Entity-MIB work scheduled for
> upgrading to a yang module?

No.

> If not, is there a working group where we could suggest an
> equivalent model.

The NETMOD working group would likely be the first stop unless the
IESG wants to proceed with a more targetted approach. The NETMOD
charter says:

   The NETMOD WG may also develop any additional data models written
   in YANG that the WG considers core building blocks and that do not
   fall under the charters of other active IETF working groups.

> As to config true,  this Data model seems IMHO (jie may correct me) one of
> the I2RS model that wants to have ephemeral state but also change things in
> the data store.

Ephemeral is kind of surprising for me.

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Fri Mar  6 05:38:32 2015
Return-Path: <bclaise@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 142ED1ACE14 for <netmod@ietfa.amsl.com>; Fri,  6 Mar 2015 05:38:30 -0800 (PST)
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 S7yeanOmFV6Q for <netmod@ietfa.amsl.com>; Fri,  6 Mar 2015 05:38:28 -0800 (PST)
Received: from aer-iport-2.cisco.com (aer-iport-2.cisco.com [173.38.203.52]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 126341ACD4D for <netmod@ietf.org>; Fri,  6 Mar 2015 05:38:27 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=3333; q=dns/txt; s=iport; t=1425649108; x=1426858708; h=message-id:date:from:mime-version:to:cc:subject: references:in-reply-to:content-transfer-encoding; bh=3d9nqhfXXcgdGUKXDStyQBeSflxA6VxfLqodmvdarmo=; b=Wz55tl2KDWOqbxNijEY3dVgHKPrI1/aHQxYmgAagJlJCb/mG9YDbvhHp T57i5CLHU9DViMR7m+LLr3yGObV0hC1B1KeDwep0UfNTzqqGgU/O0eXey oApajKXAsJt2cbFIY7lrP8XxOnNJIPRF0OdezQ3eSs/2aESJvtS6XJTpj I=;
X-IronPort-AV: E=Sophos;i="5.11,352,1422921600"; d="scan'208";a="371936585"
Received: from aer-iport-nat.cisco.com (HELO aer-core-4.cisco.com) ([173.38.203.22]) by aer-iport-2.cisco.com with ESMTP; 06 Mar 2015 13:38:26 +0000
Received: from [10.60.67.85] (ams-bclaise-8914.cisco.com [10.60.67.85]) by aer-core-4.cisco.com (8.14.5/8.14.5) with ESMTP id t26DcOXt005157; Fri, 6 Mar 2015 13:38:25 GMT
Message-ID: <54F9ADCE.6030407@cisco.com>
Date: Fri, 06 Mar 2015 14:38:22 +0100
From: Benoit Claise <bclaise@cisco.com>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0
MIME-Version: 1.0
To: "Cesar Crusius (ccrusius)" <ccrusius@cisco.com>, Martin Bjorklund <mbj@tail-f.com>, "rfc-editor@rfc-editor.org" <rfc-editor@rfc-editor.org>
References: <20150302211808.54F41180204@rfc-editor.org> <20150303.090531.37030803913631573.mbj@tail-f.com> <D11B25ED.4B34%ccrusius@cisco.com>
In-Reply-To: <D11B25ED.4B34%ccrusius@cisco.com>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/SWeYbqodHQI-u6Vm-kIV0JPIP3A>
Cc: "joelja@bogus.com" <joelja@bogus.com>, "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] [Technical Errata Reported] RFC6020 (4285)
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: <http://www.ietf.org/mail-archive/web/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, 06 Mar 2015 13:38:30 -0000

Cesar,

Provide me the exact new text, and I'll cut and paste in the errata.

Regards, Benoit
> Hi,
>
> I agree with that, and if the goal is to simplify space handling, I would
> also add add a "stmtsep" to the end of "stmtend," which would allow the
> removal of a lot of "stmtsep"s in the syntax (stmtends are usually
> followed by stmtsep, and when they are not it is usually an error).
>
>     stmtend             = optsep (";" / "{" stmtsep "}") stmtsep
>
>
> Best,
>
> - Cesar
>
> On 3/3/15, 12:05 AM, "Martin Bjorklund" <mbj@tail-f.com> wrote:
>
>> Hi,
>>
>> The reported errata is correct.  But there is a bigger issue - maybe
>> half of all usages of "stmtend" are preceded by "optsep" while the
>> rest are not.  Since whitespace should always be allowed before
>> stmtend I suggest another fix:
>>
>> OLD:
>>
>>    stmtend             = ";" / "{" *unknown-statement "}"
>>
>> NEW:
>>
>>    stmtend             = optsep (";" / "{" *unknown-statement "}")
>>
>>
>> Combined with errata 4283 this would be:
>>
>>    stmtend             = optsep (";" / "{" stmtsep "}")
>>
>>
>> Now, we already have rules like this:
>>
>>    namespace-stmt      = namespace-keyword sep uri-str optsep stmtend
>>
>> Together with the proposed new rule for "stmtend" this looks a bit
>> confusing (two consecutive "optsep"s), but it is technically correct,
>> and makes the errata smaller.
>>
>> I also suggest that in 6020bis, we introduce this new rule for
>> "stmtend", but remove all redundant "optsep"s.
>>
>>
>> /martin
>>
>>
>>
>> RFC Errata System <rfc-editor@rfc-editor.org> wrote:
>>> The following errata report has been submitted for RFC6020,
>>> "YANG - A Data Modeling Language for the Network Configuration Protocol
>>> (NETCONF)".
>>>
>>> --------------------------------------
>>> You may review the report below and at:
>>> http://www.rfc-editor.org/errata_search.php?rfc=6020&eid=4285
>>>
>>> --------------------------------------
>>> Type: Technical
>>> Reported by: Cesar Crusius <ccrusius@cisco.com>
>>>
>>> Section: 12
>>>
>>> Original Text
>>> -------------
>>> revision-date-stmt = revision-date-keyword sep revision-date stmtend
>>>
>>> Corrected Text
>>> --------------
>>> revision-date-stmt =
>>>      revision-date-keyword sep revision-date optsep stmtend
>>>
>>> Notes
>>> -----
>>> Allow spaces between the date string and the statement's end.
>>>
>>> Instructions:
>>> -------------
>>> This erratum is currently posted as "Reported". If necessary, please
>>> use "Reply All" to discuss whether it should be verified or
>>> rejected. When a decision is reached, the verifying party (IESG)
>>> can log in to change the status and edit the report, if necessary.
>>>
>>> --------------------------------------
>>> RFC6020 (draft-ietf-netmod-yang-13)
>>> --------------------------------------
>>> Title               : YANG - A Data Modeling Language for the Network
>>> Configuration Protocol (NETCONF)
>>> Publication Date    : October 2010
>>> Author(s)           : M. Bjorklund, Ed.
>>> Category            : PROPOSED STANDARD
>>> Source              : NETCONF Data Modeling Language
>>> Area                : Operations and Management
>>> Stream              : IETF
>>> Verifying Party     : IESG
>>>


From nobody Fri Mar  6 05:47:48 2015
Return-Path: <shares@ndzh.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 9148E1A1A19 for <netmod@ietfa.amsl.com>; Fri,  6 Mar 2015 05:47:47 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -99.055
X-Spam-Level: 
X-Spam-Status: No, score=-99.055 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DOS_OUTLOOK_TO_MX=2.845, USER_IN_WHITELIST=-100] autolearn=no
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 aPCBC7sctpVB for <netmod@ietfa.amsl.com>; Fri,  6 Mar 2015 05:47:46 -0800 (PST)
Received: from hickoryhill-consulting.com (hhc-web3.hickoryhill-consulting.com [64.9.205.143]) by ietfa.amsl.com (Postfix) with ESMTP id 84C731A0636 for <netmod@ietf.org>; Fri,  6 Mar 2015 05:47:46 -0800 (PST)
X-Default-Received-SPF: pass (skip=forwardok (res=PASS)) x-ip-name=74.43.47.92; 
From: "Susan Hares" <shares@ndzh.com>
To: "'Juergen Schoenwaelder'" <j.schoenwaelder@jacobs-university.de>
References: <54F985E2.6020304@cisco.com> <20150306110536.GA73575@elstar.local> <0e7201d05804$2ef8dfc0$8cea9f40$@ndzh.com> <20150306133808.GB74093@elstar.local>
In-Reply-To: <20150306133808.GB74093@elstar.local>
Date: Fri, 6 Mar 2015 08:47:41 -0500
Message-ID: <0f7601d05814$1e26bdb0$5a743910$@ndzh.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
X-Mailer: Microsoft Outlook 14.0
Content-Language: en-us
Thread-Index: AQC/r0YkLKSuBfrYEPhLebwn/CNVWgGB/IaPAYS6mB0CUUc/Mp8GCP2g
X-Authenticated-User: skh@ndzh.com 
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/7ov9MlsLXmIeBNTdWx1KSpn5Y7w>
Cc: draft-dong-i2rs-network-inventory@tools.ietf.org, i2rs-chairs@tools.ietf.org, 'NETMOD Working Group' <netmod@ietf.org>
Subject: Re: [netmod] Inventory YANG model (entity-MIB)
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: <http://www.ietf.org/mail-archive/web/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, 06 Mar 2015 13:47:47 -0000

Juergen:

If you are surprised on Ephemeral, I'll walk through the use case again with
the topology design team.  

Thank you for the feedback, 

Sue 

-----Original Message-----
From: Juergen Schoenwaelder [mailto:j.schoenwaelder@jacobs-university.de] 
Sent: Friday, March 06, 2015 8:38 AM
To: Susan Hares
Cc: 'Benoit Claise'; 'NETMOD Working Group';
draft-dong-i2rs-network-inventory@tools.ietf.org; i2rs-chairs@tools.ietf.org
Subject: Re: [netmod] Inventory YANG model (entity-MIB)

On Fri, Mar 06, 2015 at 06:53:37AM -0500, Susan Hares wrote:
> 
> As technical advisor, do you know if the Entity-MIB work scheduled for 
> upgrading to a yang module?

No.

> If not, is there a working group where we could suggest an equivalent 
> model.

The NETMOD working group would likely be the first stop unless the IESG
wants to proceed with a more targetted approach. The NETMOD charter says:

   The NETMOD WG may also develop any additional data models written
   in YANG that the WG considers core building blocks and that do not
   fall under the charters of other active IETF working groups.

> As to config true,  this Data model seems IMHO (jie may correct me) 
> one of the I2RS model that wants to have ephemeral state but also 
> change things in the data store.

Ephemeral is kind of surprising for me.

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Fri Mar  6 05:59:39 2015
Return-Path: <Tina.Tsou.Zouting@huawei.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 719431ACDF2 for <netmod@ietfa.amsl.com>; Fri,  6 Mar 2015 05:59:38 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.21
X-Spam-Level: 
X-Spam-Status: No, score=-4.21 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01, WEIRD_PORT=0.001] 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 E2yPA_JKJLwo for <netmod@ietfa.amsl.com>; Fri,  6 Mar 2015 05:59:36 -0800 (PST)
Received: from lhrrgout.huawei.com (lhrrgout.huawei.com [194.213.3.17]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9708B1ACD4D for <netmod@ietf.org>; Fri,  6 Mar 2015 05:59:35 -0800 (PST)
Received: from 172.18.7.190 (EHLO lhreml406-hub.china.huawei.com) ([172.18.7.190]) by lhrrg02-dlp.huawei.com (MOS 4.3.7-GA FastPath queued) with ESMTP id BPY68708; Fri, 06 Mar 2015 13:59:34 +0000 (GMT)
Received: from SZXEML433-HUB.china.huawei.com (10.82.67.210) by lhreml406-hub.china.huawei.com (10.201.5.243) with Microsoft SMTP Server (TLS) id 14.3.158.1; Fri, 6 Mar 2015 13:59:33 +0000
Received: from szxeml557-mbs.china.huawei.com ([169.254.6.208]) by szxeml433-hub.china.huawei.com ([10.82.67.210]) with mapi id 14.03.0158.001; Fri, 6 Mar 2015 21:59:20 +0800
From: Tina TSOU <Tina.Tsou.Zouting@huawei.com>
To: "Thomas D. Nadeau" <tnadeau@lucidvision.com>
Thread-Topic: [netmod] Inventory YANG model (entity-MIB)
Thread-Index: AQHQV/sXEhqJTCTBCkS67YH7zjAiAJ0OxN8AgAAQo4CAAARMAIAAobhT
Date: Fri, 6 Mar 2015 13:59:20 +0000
Message-ID: <F2559BE2-0144-4450-B8B2-D4287440A8FB@huawei.com>
References: <54F985E2.6020304@cisco.com> <20150306110536.GA73575@elstar.local> <54F997F5.8080500@cisco.com>, <2D3BC67E-9B26-488E-BF4D-0FC899C3A8CA@lucidvision.com>
In-Reply-To: <2D3BC67E-9B26-488E-BF4D-0FC899C3A8CA@lucidvision.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-CFilter-Loop: Reflected
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/KPGLB3cZpdNcx0tg7J3CuXVW8cE>
Cc: "draft-dong-i2rs-network-inventory@tools.ietf.org" <draft-dong-i2rs-network-inventory@tools.ietf.org>, "i2rs-chairs@tools.ietf.org" <i2rs-chairs@tools.ietf.org>, "draft-contreras-supa-yang-network-topo@tools.ietf.org" <draft-contreras-supa-yang-network-topo@tools.ietf.org>, NETMOD Working Group <netmod@ietf.org>
Subject: Re: [netmod] Inventory YANG model (entity-MIB)
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: <http://www.ietf.org/mail-archive/web/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, 06 Mar 2015 13:59:38 -0000

Dear Tom,

Agree with you.

Topology can be collected from network element, can also be presented at ne=
twork level in network manager/controller.

Inventory has little things collected from network element. It is more at t=
he network manager/controller.=20

Topology is like one active at work in the society, inventory is like one's=
 different roles in his family.

There is an operator (Telefonica) led network topology draft.
http://datatracker.ietf.org/doc/draft-contreras-supa-yang-network-topo/


Thank you,
Tina

> On Mar 6, 2015, at 8:20 PM, Thomas D. Nadeau <tnadeau@lucidvision.com> wr=
ote:
>=20
>=20
>> On Mar 6, 2015:7:05 AM, at 7:05 AM, Benoit Claise <bclaise@cisco.com> wr=
ote:
>>=20
>> Hi J=FCrgen,
>>>> On Fri, Mar 06, 2015 at 11:48:02AM +0100, Benoit Claise wrote:
>>>> Dear all,
>>>>=20
>>>> The I2RS interim meeting yesterday focused on topology.
>>>> Let me cut/paste a high level slide, with pointers to the relevant dra=
fts.
>>>>=20
>>>>=20
>>>> If interested, the meeting minutes are at
>>>> http://etherpad.tools.ietf.org:9000/p/i2rs-interim-march-5-2015-v-blue=
sheets
>>>>=20
>>>> Part of the inventory draft
>>>> (http://datatracker.ietf.org/doc/draft-dong-i2rs-network-inventory/)
>>>> discussion, the overlap with the ENTITY-MIB RFC 6933 was discussed (an=
d
>>>> RFC 7223 btw).
>>>>=20
>>>>=20
>>>> The message was that I2RS should not re-invent something similar to th=
e
>>>> ENTITY-MIB
>>>> So, are you aware of any initiatives to "YANGify" the ENTITY-MIB?
>>>> It's true that there is a way to translate MIB into YANG with RFC 6643=
.
>>>> This could be a good start. However, I wonder if a hand-written YANG
>>>> model that closely follows the entPhysical would not be more beneficia=
l.
>>>> Is this something we should take on board in NETMOD?
>>>>=20
>>>> What do you think?
>>>>=20
>>>> Note: As commented by the I2RS people, indexing is appropriate in the
>>>> MIB module for its original purpose, but may not be for the topology.
>>>> I'm not sure we want to change the indexing just for the topology, but
>>>> the integration within the topology draft should be thought of.
>>> My first question is (perhaps not surprising) whether inventory falls
>>> into the I2RS charter, I2RS =3D interface to the routing system.
>> No it doesn't.
>> As mentioned during the interim yesterday by the I2RS people, they would=
 be happy if the inventory work be done somewhere else. Hence this email th=
read. I believe this work should be picked up by NETMOD .
>=20
>    I agree with Juergen's assessment; this seems like it should be done i=
n NETMOD. We should figure out a way to leverage the entity MIB but given t=
hat module's age, we should also be open to updates because the world has c=
hanged since that was published. =20
>=20
>    So there is a wider question as Juergen asked at the end of the thread=
: should here be a concentrated effort to do topology/inventory that applie=
s to all areas ?  I'd say yes.  While not a super complicated, long effort,=
 this is something that needs to be done in a way that it applies to more t=
han just the use cases of a specific routing use case.  With that in mind, =
its important to get the network operators involved on this effort so that =
this is not done in a vendor vacuum.
>=20
>    Speaking as an individual, I will point out that the topology model th=
at I've worked on with Jan et al you can see the approach taken on network =
topology. This has been implemented in ODL, which means its being tried in =
production environments right now and works quite well:
>=20
> http://www.ietf.org/archive/id/draft-medved-i2rs-topology-im-01.txt
>=20
>    Another data point here. Shane and others have been been clear that an=
 inventory is needed and how it is a bit different than network topology as=
 specified above, but that it should be consistent in certain places too:
>=20
> https://datatracker.ietf.org/doc/draft-amante-i2rs-topology-use-cases/
>=20
>    --Tom
>=20
>=20
>> That
>>> said, RFC 6643 gives you a read-only translation. There are not many
>>> read-write objects in the ENTITY-MIB so perhaps this is good enough
>>> for now. I guess it would help what I2RS needs to know in order to
>>> make the interface to the routing system work.
>>>=20
>>> Anyway, if YANG models overlapping the ENTITY-MIB are done, they they
>>> should at least allow implementation of both in a predictable manner.
>>> Looking at draft-dong-i2rs-network-inventory-00, it seems the whole
>>> interface list is already covered by RFC 7223 and interfaces should be
>>> references not repeated (this is what the ENTITY-MIB does).
>> Yes, I made that point.
>> Similarly, this draft should reference a inventory YANG model
>>=20
>>> So what is
>>> left is essentially a (not yet hierarchy) of 'cards' that seem to more
>>> or less match the entPhysicalTable of the ENTITY-MIB (but then the
>>> ENTITY-MIB has a more flexible model that distinguishes between
>>> different kind of hardware components).
>>> I also notice that the model
>>> in draft-dong-i2rs-network-inventory-00 is config true - so I am not
>>> sure how this is supposed to use.
>>> Is the idea that this model is an
>>> interface to an inventory database where I configure what I have
>>> instead of a model sitting on a device where I can query what the
>>> device actually has?
>>>=20
>>> /js
>> Regards, Benoit
>>>=20
>>> PS: I personally would have preferred if generic topology and perhaps
>>>    inventory would have split off into a short-lived targeted WG
>>>    instead of doing all of this in I2RS but it seems leadership has
>>>    already decided that I2RS is the home for all of this.
>>=20
>> _______________________________________________
>> netmod mailing list
>> netmod@ietf.org
>> https://www.ietf.org/mailman/listinfo/netmod
>=20
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod


From nobody Fri Mar  6 06:08:57 2015
Return-Path: <bclaise@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 5D20A1A0636 for <netmod@ietfa.amsl.com>; Fri,  6 Mar 2015 06:08:56 -0800 (PST)
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 wmqNUp4VQNUl for <netmod@ietfa.amsl.com>; Fri,  6 Mar 2015 06:08:55 -0800 (PST)
Received: from aer-iport-4.cisco.com (aer-iport-4.cisco.com [173.38.203.54]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id BAF9F1A1DBE for <netmod@ietf.org>; Fri,  6 Mar 2015 06:08:54 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=1167; q=dns/txt; s=iport; t=1425650934; x=1426860534; h=message-id:date:from:mime-version:to:subject:references: in-reply-to:content-transfer-encoding; bh=MgXhbM869o3y5HA28vjH+HoObFbAQkUkoLGQ0lWmwLo=; b=UiccHi1/BxDsicon+A0FOfBKvmo9jcuxzmIRCstpTfSP3x3dmtABvz5R JqBFatQ/YLEUxykhPpsFTBPFgz1n25KNeNg6ol5WWdCBcctJxwxBZXskg lYTcQiXlVrkIBsGgZHvZki+altokvuswirXoCid0mYFpbj4kWp/P+cAEy 0=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0DyBACds/lU/xbLJq1cwBiEMYc3AoFzEgEBAQEBAQF8hBABAQQyAQVAEQsOCgkWDwkDAgECAUUGAQwIAQGIK81WAQEBAQEBAQMBAQEBAQEcixKELEmEKwEEmTuGaoxrI4NvPYE1gT8BAQE
X-IronPort-AV: E=Sophos;i="5.11,353,1422921600"; d="scan'208";a="367541199"
Received: from aer-iport-nat.cisco.com (HELO aer-core-4.cisco.com) ([173.38.203.22]) by aer-iport-4.cisco.com with ESMTP; 06 Mar 2015 14:08:51 +0000
Received: from [10.60.67.85] (ams-bclaise-8914.cisco.com [10.60.67.85]) by aer-core-4.cisco.com (8.14.5/8.14.5) with ESMTP id t26E8oR7019959; Fri, 6 Mar 2015 14:08:51 GMT
Message-ID: <54F9B4EF.1060702@cisco.com>
Date: Fri, 06 Mar 2015 15:08:47 +0100
From: Benoit Claise <bclaise@cisco.com>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0
MIME-Version: 1.0
To: Susan Hares <shares@ndzh.com>, "'NETMOD Working Group'" <netmod@ietf.org>,  draft-dong-i2rs-network-inventory@tools.ietf.org, i2rs-chairs@tools.ietf.org
References: <54F985E2.6020304@cisco.com> <20150306110536.GA73575@elstar.local> <0e7201d05804$2ef8dfc0$8cea9f40$@ndzh.com> <20150306133808.GB74093@elstar.local>
In-Reply-To: <20150306133808.GB74093@elstar.local>
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 8bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/SIwfxIfwrIJX5c0b1FhrreRfnc0>
Subject: Re: [netmod] Inventory YANG model (entity-MIB)
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: <http://www.ietf.org/mail-archive/web/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, 06 Mar 2015 14:08:56 -0000

Dear all,
> On Fri, Mar 06, 2015 at 06:53:37AM -0500, Susan Hares wrote:
>> As technical advisor, do you know if the Entity-MIB work scheduled for
>> upgrading to a yang module?
> No.
>
>> If not, is there a working group where we could suggest an
>> equivalent model.
> The NETMOD working group would likely be the first stop unless the
> IESG wants to proceed with a more targetted approach.
Let's make it clear for everybody.
NETMOD is the place where an ENTITY-MIB based YANG model must happen.
As Jürgen points it out below, the charter was modified for this type of 
work.

So we discussed the WHERE, the next question is WHO?

Regards, Benoit (AD hat on)
> The NETMOD
> charter says:
>
>     The NETMOD WG may also develop any additional data models written
>     in YANG that the WG considers core building blocks and that do not
>     fall under the charters of other active IETF working groups.
>
>> As to config true,  this Data model seems IMHO (jie may correct me) one of
>> the I2RS model that wants to have ephemeral state but also change things in
>> the data store.
> Ephemeral is kind of surprising for me.
>
> /js
>


From nobody Fri Mar  6 06:17:56 2015
Return-Path: <shares@ndzh.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 C4CE91ACE29 for <netmod@ietfa.amsl.com>; Fri,  6 Mar 2015 06:17:54 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -99.055
X-Spam-Level: 
X-Spam-Status: No, score=-99.055 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DOS_OUTLOOK_TO_MX=2.845, USER_IN_WHITELIST=-100] autolearn=no
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 T0NPuLX8fA1D for <netmod@ietfa.amsl.com>; Fri,  6 Mar 2015 06:17:54 -0800 (PST)
Received: from hickoryhill-consulting.com (hhc-web3.hickoryhill-consulting.com [64.9.205.143]) by ietfa.amsl.com (Postfix) with ESMTP id D899E1ACDF2 for <netmod@ietf.org>; Fri,  6 Mar 2015 06:17:53 -0800 (PST)
X-Default-Received-SPF: pass (skip=forwardok (res=PASS)) x-ip-name=74.43.47.92; 
From: "Susan Hares" <shares@ndzh.com>
To: "'Benoit Claise'" <bclaise@cisco.com>, "'NETMOD Working Group'" <netmod@ietf.org>, <draft-dong-i2rs-network-inventory@tools.ietf.org>, <i2rs-chairs@tools.ietf.org>
References: <54F985E2.6020304@cisco.com> <20150306110536.GA73575@elstar.local> <0e7201d05804$2ef8dfc0$8cea9f40$@ndzh.com> <20150306133808.GB74093@elstar.local> <54F9B4EF.1060702@cisco.com>
In-Reply-To: <54F9B4EF.1060702@cisco.com>
Date: Fri, 6 Mar 2015 09:17:48 -0500
Message-ID: <0f9701d05818$53779670$fa66c350$@ndzh.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
X-Mailer: Microsoft Outlook 14.0
Content-Language: en-us
Thread-Index: AQC/r0YkLKSuBfrYEPhLebwn/CNVWgGB/IaPAYS6mB0CUUc/MgGyWgUvnvh+QZA=
X-Authenticated-User: skh@ndzh.com 
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/qXyDcfwkyfgqJVGxj9kuk2_sq_g>
Subject: Re: [netmod] Inventory YANG model (entity-MIB)
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: <http://www.ietf.org/mail-archive/web/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, 06 Mar 2015 14:17:54 -0000

Benoit:

Netmod is a great place to work.  Jie Dong mentioned he will be glad to
begin the work there, and he'd be glad to work with any other people on =
a
draft. =20

Sue =20

-----Original Message-----
From: Benoit Claise [mailto:bclaise@cisco.com]=20
Sent: Friday, March 06, 2015 9:09 AM
To: Susan Hares; 'NETMOD Working Group';
draft-dong-i2rs-network-inventory@tools.ietf.org; =
i2rs-chairs@tools.ietf.org
Subject: Re: [netmod] Inventory YANG model (entity-MIB)

Dear all,
> On Fri, Mar 06, 2015 at 06:53:37AM -0500, Susan Hares wrote:
>> As technical advisor, do you know if the Entity-MIB work scheduled=20
>> for upgrading to a yang module?
> No.
>
>> If not, is there a working group where we could suggest an equivalent =

>> model.
> The NETMOD working group would likely be the first stop unless the=20
> IESG wants to proceed with a more targetted approach.
Let's make it clear for everybody.
NETMOD is the place where an ENTITY-MIB based YANG model must happen.
As J=FCrgen points it out below, the charter was modified for this type =
of
work.

So we discussed the WHERE, the next question is WHO?

Regards, Benoit (AD hat on)
> The NETMOD
> charter says:
>
>     The NETMOD WG may also develop any additional data models written
>     in YANG that the WG considers core building blocks and that do not
>     fall under the charters of other active IETF working groups.
>
>> As to config true,  this Data model seems IMHO (jie may correct me)=20
>> one of the I2RS model that wants to have ephemeral state but also=20
>> change things in the data store.
> Ephemeral is kind of surprising for me.
>
> /js
>



From nobody Fri Mar  6 07:53:42 2015
Return-Path: <ccrusius@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 9E2DF1ACED1 for <netmod@ietfa.amsl.com>; Fri,  6 Mar 2015 07:53:40 -0800 (PST)
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 qDUyf5PL6ENs for <netmod@ietfa.amsl.com>; Fri,  6 Mar 2015 07:53:36 -0800 (PST)
Received: from rcdn-iport-4.cisco.com (rcdn-iport-4.cisco.com [173.37.86.75]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id CCB431ACECE for <netmod@ietf.org>; Fri,  6 Mar 2015 07:53:35 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=3992; q=dns/txt; s=iport; t=1425657215; x=1426866815; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=38thzd0x/3OLqHBWYevEmtEvIvTvCYb3sYyOL3quxvo=; b=e14KwSEpaqY6iSbTxlp3U8nQieW9m2NlCZp1cm+kb6WbYGpV2DVi8uKs ONVc/o9jTfOJ5WCME+voz1sEaQqtcO2lr2A+WdtJIKjP5C85nULnkVR/B EN8JxzMdh9iO9lmoJBtbzypRWh4Yl46JWAaREtQ3dNR3mkMT8yjGBrbvo s=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0CPBgBHzPlU/4QNJK1CGoMGUloEgwa+aIVwAhyBHU0BAQEBAQF8hBABAQQjEUUQAgEIGAICJgICAjAVEAIEAQ0FiC4BDTezCppYAQEBAQEBAQEBAQEBAQEBAQEBAQEYgSGJdoE9gn4zB4JogUMFhXeKEIlNgRqDJoJUjFsjggIND4FQbwERgTJ/AQEB
X-IronPort-AV: E=Sophos;i="5.11,353,1422921600"; d="scan'208";a="401547163"
Received: from alln-core-10.cisco.com ([173.36.13.132]) by rcdn-iport-4.cisco.com with ESMTP; 06 Mar 2015 15:53:35 +0000
Received: from xhc-rcd-x07.cisco.com (xhc-rcd-x07.cisco.com [173.37.183.81]) by alln-core-10.cisco.com (8.14.5/8.14.5) with ESMTP id t26FrYJA016313 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Fri, 6 Mar 2015 15:53:35 GMT
Received: from xmb-aln-x03.cisco.com ([169.254.6.153]) by xhc-rcd-x07.cisco.com ([173.37.183.81]) with mapi id 14.03.0195.001; Fri, 6 Mar 2015 09:53:34 -0600
From: "Cesar Crusius (ccrusius)" <ccrusius@cisco.com>
To: "Benoit Claise (bclaise)" <bclaise@cisco.com>, RFC Errata System <rfc-editor@rfc-editor.org>, "mbj@tail-f.com" <mbj@tail-f.com>, "joelja@bogus.com" <joelja@bogus.com>, "j.schoenwaelder@jacobs-university.de" <j.schoenwaelder@jacobs-university.de>, "tnadeau@lucidvision.com" <tnadeau@lucidvision.com>
Thread-Topic: [Technical Errata Reported] RFC6020 (4282)
Thread-Index: AQHQUr0pdaC4e9BJO0O1/iGg52LRSZ0FI+QAgArAXID//6AlAA==
Date: Fri, 6 Mar 2015 15:53:34 +0000
Message-ID: <D11F0D19.4C0E%ccrusius@cisco.com>
References: <20150227184159.346B8187A98@rfc-editor.org> <D11658BB.4AEC%ccrusius@cisco.com> <54F9AD67.1090506@cisco.com>
In-Reply-To: <54F9AD67.1090506@cisco.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [171.71.147.11]
Content-Type: text/plain; charset="utf-8"
Content-ID: <89191745BF444845B617C7C551310616@emea.cisco.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/tIuDHDBGbSUzDUSNUJO-DFbjLdc>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] [Technical Errata Reported] RFC6020 (4282)
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: <http://www.ietf.org/mail-archive/web/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, 06 Mar 2015 15:53:40 -0000

SGkgQmVub2l0LA0KDQpGb3IgNDI4MiwgdGhlIG5ldyB0ZXh0IHNob3VsZCBiZQ0KDQp1bmtub3du
LXN0YXRlbWVudCAgID0gcHJlZml4ICI6IiBpZGVudGlmaWVyIFtzZXAgc3RyaW5nXSBvcHRzZXAN
CiAgICAgICAgICAgICAgICAgICAgKCI7IiAvICJ7IiBvcHRzZXAgKih1bmtub3duLXN0YXRlbWVu
dDIgb3B0c2VwKSAifSIpDQp1bmtub3duLXN0YXRlbWVudDIgICA9IFtwcmVmaXggIjoiXSBpZGVu
dGlmaWVyIFtzZXAgc3RyaW5nXSBvcHRzZXANCiAgICAgICAgICAgICAgICAgICAgICgiOyIgLyAi
eyIgb3B0c2VwICoodW5rbm93bi1zdGF0ZW1lbnQyIG9wdHNlcCkgIn0iKQ0KDQoNCkJlc3QsDQoN
Ci0gQ2VzYXINCg0KT24gMy82LzE1LCA1OjM2IEFNLCAiQmVub2l0IENsYWlzZSAoYmNsYWlzZSki
IDxiY2xhaXNlQGNpc2NvLmNvbT4gd3JvdGU6DQoNCj5DZXNhciwNCj4NCj5Qcm92aWRlIG1lIHRo
ZSBleGFjdCBuZXcgdGV4dCwgYW5kIEknbGwgY3V0IGFuZCBwYXN0ZSBpbiB0aGUgZXJyYXRhLg0K
Pg0KPlJlZ2FyZHMsIEJlbm9pdA0KPj4gVGhlcmUgaXMgYSBwcm9ibGVtIHdpdGggdGhpcyBlcnJh
dGEgZHVlIHRvIGEgcGFzdGUgcHJvYmxlbSAocGFyZW50aGVzZXMNCj4+IGdvdCBzdHJpcHBlZCBv
dXQpLiBXaGVyZSBpdCByZWFkcw0KPj4NCj4+ICp1bmtub3duX3N0YXRlbWVudDIgb3B0c2VwDQo+
Pg0KPj4gSXQgc2hvdWxkIHJlYWQNCj4+DQo+PiAqKHVua25vd25fc3RhdGVtZW50MiBvcHRzZXAp
DQo+Pg0KPj4gVGhhbmtzLA0KPj4NCj4+DQo+PiAtIENlc2FyDQo+Pg0KPj4gT24gMi8yNy8xNSwg
MTA6NDEgQU0sICJSRkMgRXJyYXRhIFN5c3RlbSIgPHJmYy1lZGl0b3JAcmZjLWVkaXRvci5vcmc+
DQo+PiB3cm90ZToNCj4+DQo+Pj4gVGhlIGZvbGxvd2luZyBlcnJhdGEgcmVwb3J0IGhhcyBiZWVu
IHN1Ym1pdHRlZCBmb3IgUkZDNjAyMCwNCj4+PiAiWUFORyAtIEEgRGF0YSBNb2RlbGluZyBMYW5n
dWFnZSBmb3IgdGhlIE5ldHdvcmsgQ29uZmlndXJhdGlvbiBQcm90b2NvbA0KPj4+IChORVRDT05G
KSIuDQo+Pj4NCj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPj4+
IFlvdSBtYXkgcmV2aWV3IHRoZSByZXBvcnQgYmVsb3cgYW5kIGF0Og0KPj4+IGh0dHA6Ly93d3cu
cmZjLWVkaXRvci5vcmcvZXJyYXRhX3NlYXJjaC5waHA/cmZjPTYwMjAmZWlkPTQyODINCj4+Pg0K
Pj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+Pj4gVHlwZTogVGVj
aG5pY2FsDQo+Pj4gUmVwb3J0ZWQgYnk6IENlc2FyIENydXNpdXMgPGNjcnVzaXVzQGNpc2NvLmNv
bT4NCj4+Pg0KPj4+IFNlY3Rpb246IDEyDQo+Pj4NCj4+PiBPcmlnaW5hbCBUZXh0DQo+Pj4gLS0t
LS0tLS0tLS0tLQ0KPj4+IHVua25vd24tc3RhdGVtZW50ICAgPSBwcmVmaXggIjoiIGlkZW50aWZp
ZXIgW3NlcCBzdHJpbmddIG9wdHNlcA0KPj4+ICAgICAgICAgICAgICAgICAgICAgICAoIjsiIC8g
InsiICp1bmtub3duLXN0YXRlbWVudDIgIn0iKQ0KPj4+IHVua25vd24tc3RhdGVtZW50MiAgID0g
W3ByZWZpeCAiOiJdIGlkZW50aWZpZXIgW3NlcCBzdHJpbmddIG9wdHNlcA0KPj4+ICAgICAgICAg
ICAgICAgICAgICAgICAoIjsiIC8gInsiICp1bmtub3duLXN0YXRlbWVudDIgIn0iKQ0KPj4+DQo+
Pj4NCj4+PiBDb3JyZWN0ZWQgVGV4dA0KPj4+IC0tLS0tLS0tLS0tLS0tDQo+Pj4gdW5rbm93bi1z
dGF0ZW1lbnQgICA9IHByZWZpeCAiOiIgaWRlbnRpZmllciBbc2VwIHN0cmluZ10gb3B0c2VwDQo+
Pj4gICAgICAgICAgICAgICAgICAgICAgICgiOyIgLyAieyIgb3B0c2VwICp1bmtub3duLXN0YXRl
bWVudDIgb3B0c2VwICJ9IikNCj4+PiB1bmtub3duLXN0YXRlbWVudDIgICA9IFtwcmVmaXggIjoi
XSBpZGVudGlmaWVyIFtzZXAgc3RyaW5nXSBvcHRzZXANCj4+PiAgICAgICAgICAgICAgICAgICAg
ICAgKCI7IiAvICJ7IiBvcHRzZXAgKnVua25vd24tc3RhdGVtZW50MiBvcHRzZXAgIn0iKQ0KPj4+
DQo+Pj4NCj4+PiBOb3Rlcw0KPj4+IC0tLS0tDQo+Pj4NCj4+Pg0KPj4+IEluc3RydWN0aW9uczoN
Cj4+PiAtLS0tLS0tLS0tLS0tDQo+Pj4gVGhpcyBlcnJhdHVtIGlzIGN1cnJlbnRseSBwb3N0ZWQg
YXMgIlJlcG9ydGVkIi4gSWYgbmVjZXNzYXJ5LCBwbGVhc2UNCj4+PiB1c2UgIlJlcGx5IEFsbCIg
dG8gZGlzY3VzcyB3aGV0aGVyIGl0IHNob3VsZCBiZSB2ZXJpZmllZCBvcg0KPj4+IHJlamVjdGVk
LiBXaGVuIGEgZGVjaXNpb24gaXMgcmVhY2hlZCwgdGhlIHZlcmlmeWluZyBwYXJ0eSAoSUVTRykN
Cj4+PiBjYW4gbG9nIGluIHRvIGNoYW5nZSB0aGUgc3RhdHVzIGFuZCBlZGl0IHRoZSByZXBvcnQs
IGlmIG5lY2Vzc2FyeS4NCj4+Pg0KPj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tDQo+Pj4gUkZDNjAyMCAoZHJhZnQtaWV0Zi1uZXRtb2QteWFuZy0xMykNCj4+PiAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPj4+IFRpdGxlICAgICAgICAgICAg
ICAgOiBZQU5HIC0gQSBEYXRhIE1vZGVsaW5nIExhbmd1YWdlIGZvciB0aGUgTmV0d29yaw0KPj4+
IENvbmZpZ3VyYXRpb24gUHJvdG9jb2wgKE5FVENPTkYpDQo+Pj4gUHVibGljYXRpb24gRGF0ZSAg
ICA6IE9jdG9iZXIgMjAxMA0KPj4+IEF1dGhvcihzKSAgICAgICAgICAgOiBNLiBCam9ya2x1bmQs
IEVkLg0KPj4+IENhdGVnb3J5ICAgICAgICAgICAgOiBQUk9QT1NFRCBTVEFOREFSRA0KPj4+IFNv
dXJjZSAgICAgICAgICAgICAgOiBORVRDT05GIERhdGEgTW9kZWxpbmcgTGFuZ3VhZ2UNCj4+PiBB
cmVhICAgICAgICAgICAgICAgIDogT3BlcmF0aW9ucyBhbmQgTWFuYWdlbWVudA0KPj4+IFN0cmVh
bSAgICAgICAgICAgICAgOiBJRVRGDQo+Pj4gVmVyaWZ5aW5nIFBhcnR5ICAgICA6IElFU0cNCj4+
Pg0KPg0KDQo=


From nobody Fri Mar  6 08:25:06 2015
Return-Path: <ccrusius@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 4B7BF1A0264 for <netmod@ietfa.amsl.com>; Fri,  6 Mar 2015 08:25:05 -0800 (PST)
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 fmsk__IbVRKf for <netmod@ietfa.amsl.com>; Fri,  6 Mar 2015 08:24:57 -0800 (PST)
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 162AC1A0015 for <netmod@ietf.org>; Fri,  6 Mar 2015 08:24:57 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=7312; q=dns/txt; s=iport; t=1425659097; x=1426868697; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=NcwayKrV2vL/zwKDEV0aQqNAT7MhLL9c2kkXIvNOlZ4=; b=VL2EPznI0l+tlKgrvhMBvpJ4VaKMD/3K9316vw2hLbxRtRFVc/WW00gs JuGBK0wx1Qv0E29OmZRigKrZQ2WyddcFj1SOuNA1Llpbw7qKt8nh5o9iG 4finrzOcERQRnleWi/4FQcREP+jIFe5BJI+KIFusD0iQDcuugflpWX/pr 4=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0CPBgCM0/lU/40NJK1CGoMGUloEgwa+aIVwAhyBHU0BAQEBAQF8hBABAQQjEUUQAgEIGAICJgICAjAVEAIEAQ0FiC4BDTeyeZpVAQEBAQEBAQEBAQEBAQEBAQEBAQEYgSGId3+BPYJ+MweCaIFDBYV3ihCFe4NSgRqDJo8vI4ICDQ+BUG8BEYEyfwEBAQ
X-IronPort-AV: E=Sophos;i="5.11,353,1422921600"; d="scan'208";a="129594763"
Received: from alln-core-8.cisco.com ([173.36.13.141]) by alln-iport-3.cisco.com with ESMTP; 06 Mar 2015 16:24:56 +0000
Received: from xhc-aln-x06.cisco.com (xhc-aln-x06.cisco.com [173.36.12.80]) by alln-core-8.cisco.com (8.14.5/8.14.5) with ESMTP id t26GOuaA008063 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Fri, 6 Mar 2015 16:24:56 GMT
Received: from xmb-aln-x03.cisco.com ([169.254.6.153]) by xhc-aln-x06.cisco.com ([173.36.12.80]) with mapi id 14.03.0195.001; Fri, 6 Mar 2015 10:24:55 -0600
From: "Cesar Crusius (ccrusius)" <ccrusius@cisco.com>
To: "Benoit Claise (bclaise)" <bclaise@cisco.com>, Martin Bjorklund <mbj@tail-f.com>, "rfc-editor@rfc-editor.org" <rfc-editor@rfc-editor.org>
Thread-Topic: [Technical Errata Reported] RFC6020 (4285)
Thread-Index: AQHQVS59EZ0VuoEHk0WxdJV/sLoE8J0Ky9qAgAAPogCABQRcAP//qG2A
Date: Fri, 6 Mar 2015 16:24:54 +0000
Message-ID: <D11F0F26.4C13%ccrusius@cisco.com>
References: <20150302211808.54F41180204@rfc-editor.org> <20150303.090531.37030803913631573.mbj@tail-f.com> <D11B25ED.4B34%ccrusius@cisco.com> <54F9ADCE.6030407@cisco.com>
In-Reply-To: <54F9ADCE.6030407@cisco.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [171.71.147.11]
Content-Type: text/plain; charset="utf-8"
Content-ID: <C735271B8B3C654293896D69769C7DE7@emea.cisco.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/BdBfLLF9ca3LCOiIypFSkX6lqK4>
Cc: "joelja@bogus.com" <joelja@bogus.com>, "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] [Technical Errata Reported] RFC6020 (4285)
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: <http://www.ietf.org/mail-archive/web/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, 06 Mar 2015 16:25:05 -0000

SGkgQmVub2l0LA0KDQo0Mjg1IGNhbiBiZSBkaXNjYXJkZWQgd2l0aCB0aGUgbmV3IHRleHQgZm9y
IDQyODMuIEluIDQyODMsIHRoZXJlIGlzIGJvdGggYQ0KbmV3IHJlcGxhY2VtZW50IHRleHQsIGFu
ZCBhIGJpZ2dlciBub3RlOg0KDQpTZWN0aW9uIDEyIHNheXM6DQoNCiAgIHN0bXRlbmQgICAgICAg
ICAgICAgPSAiOyIgLyAieyIgKnVua25vd24tc3RhdGVtZW50ICJ9Ig0KDQoNCg0KSXQgc2hvdWxk
IHNheToNCg0KICAgc3RtdGVuZCA9IG9wdHNlcCAoIjsiIC8gInsiIHN0bXRzZXAgIn0iKSBzdG10
c2VwDQoNCk5vdGVzOjINCg0KDQoNCg0KICAgVGhlIG9yaWdpbmFsICJzdG10ZW5kIiBydWxlIGRv
ZXMgbm90IGFsbG93IGZvciBzcGFjZXMgYmV0d2VlbiB1bmtub3duDQpzdGF0ZW1lbnRzLA0KICAg
d2hpY2ggcmVxdWlyZXMgdGhlICIqdW5rbm93bi1zdGF0ZW1lbnQiIGZpeCBpbiAic3RtdGVuZCIu
DQoNCiAgIFRoZXJlIGlzIGF0IGxlYXN0IG9uZSBwbGFjZSAoInJldmlzaW9uLWRhdGUtc3RtdCIp
IHdoZXJlICJzdG10ZW5kIiBlbmQNCmlzIG5vdA0KICAgcHJlY2VkZWQgYnkgIm9wdHNlcCIuIElu
c3RlYWQgb2YgZml4aW5nIHRob3NlIHJ1bGVzLCBpdCBpcyBiZXR0ZXIgdG8NCmluY2x1ZGUNCiAg
ICJvcHRzZXAiIGluICJzdG10ZW5kIiBpdHNlbGYsIHNpbmNlIGl0IHNob3VsZCBhbHdheXMgYmUg
cHJlc2VudC4NCg0KICAgT24gdGhlIHNhbWUgbm90ZSwgYWxtb3N0IGFsbCAic3RtdGVuZCIgdXNl
cyBhcmUgZm9sbG93ZWQgYnkgYQ0KInN0bXRzZXAiLCBhbmQgYW55IGNhc2VzDQogICB3aGVyZSB0
aGF0IGRvZXMgbm90IGhhcHBlbiBhcmUgcHJvYmFibHkgYW4gZXJyb3IsIHNvIGFnYWluIGl0IGlz
IGJldHRlcg0KdG8gbWFrZSB0aGF0DQogICBleHBsaWNpdCBpbiB0aGUgInN0bXRlbmQiIHJ1bGUg
aXRzZWxmLg0KDQogICBXaXRoIHRoZSBjaGFuZ2UgaW4gdGhpcyBlcnJhdGEsIHRoZXJlIHdpbGwg
YmUgYSBsb3Qgb2YgcnVsZXMgaW4gdGhlDQpBQk5GIHdpdGggcmVkdW5kYW50DQogICAoYnV0IG5v
dCB0ZWNobmljYWxseSBpbmNvcnJlY3QpICJvcHRzZXAiIGFuZCAic3RtdHNlcCIgcGFydHMsIGFz
IGZvcg0KZXhhbXBsZQ0KDQogICAgICBtb2R1bGUtaGVhZGVyLXN0bXRzID0gOzsgdGhlc2Ugc3Rt
dHMgY2FuIGFwcGVhciBpbiBhbnkgb3JkZXINCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBb
eWFuZy12ZXJzaW9uLXN0bXQgc3RtdHNlcF0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBu
YW1lc3BhY2Utc3RtdCBzdG10c2VwDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlZml4
LXN0bXQgc3RtdHNlcA0KDQoNCiAgICAgIG5hbWVzcGFjZS1zdG10ID0gbmFtZXNwYWNlLWtleXdv
cmQgc2VwIHVyaS1zdHIgb3B0c2VwIHN0bXRlbmQNCg0KICAgd2hpY2ggbm93IGNvdWxkIGJlIHJl
cGxhY2VkIHdpdGgNCg0KDQogICAgICBtb2R1bGUtaGVhZGVyLXN0bXRzID0gOzsgdGhlc2Ugc3Rt
dHMgY2FuIGFwcGVhciBpbiBhbnkgb3JkZXINCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBb
eWFuZy12ZXJzaW9uLXN0bXRdDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXNwYWNl
LXN0bXQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVmaXgtc3RtdA0KDQogICAgICBu
YW1lc3BhY2Utc3RtdCA9IG5hbWVzcGFjZS1rZXl3b3JkIHNlcCB1cmktc3RyIHN0bXRlbmQNCg0K
ICAgVGhlc2UgY2hhbmdlcyBzaG91bGQgcHJvYmFibHkgYmUgaW5jb3Jwb3JhdGVkIGludG8gdGhl
IG5leHQgQUJORg0KcmV2aXNpb24uDQoNCg0KQmVzdCwNCg0KLSBDZXNhcg0KDQpPbiAzLzYvMTUs
IDU6MzggQU0sICJCZW5vaXQgQ2xhaXNlIChiY2xhaXNlKSIgPGJjbGFpc2VAY2lzY28uY29tPiB3
cm90ZToNCg0KPkNlc2FyLA0KPg0KPlByb3ZpZGUgbWUgdGhlIGV4YWN0IG5ldyB0ZXh0LCBhbmQg
SSdsbCBjdXQgYW5kIHBhc3RlIGluIHRoZSBlcnJhdGEuDQo+DQo+UmVnYXJkcywgQmVub2l0DQo+
PiBIaSwNCj4+DQo+PiBJIGFncmVlIHdpdGggdGhhdCwgYW5kIGlmIHRoZSBnb2FsIGlzIHRvIHNp
bXBsaWZ5IHNwYWNlIGhhbmRsaW5nLCBJDQo+PndvdWxkDQo+PiBhbHNvIGFkZCBhZGQgYSAic3Rt
dHNlcCIgdG8gdGhlIGVuZCBvZiAic3RtdGVuZCwiIHdoaWNoIHdvdWxkIGFsbG93IHRoZQ0KPj4g
cmVtb3ZhbCBvZiBhIGxvdCBvZiAic3RtdHNlcCJzIGluIHRoZSBzeW50YXggKHN0bXRlbmRzIGFy
ZSB1c3VhbGx5DQo+PiBmb2xsb3dlZCBieSBzdG10c2VwLCBhbmQgd2hlbiB0aGV5IGFyZSBub3Qg
aXQgaXMgdXN1YWxseSBhbiBlcnJvcikuDQo+Pg0KPj4gICAgIHN0bXRlbmQgICAgICAgICAgICAg
PSBvcHRzZXAgKCI7IiAvICJ7IiBzdG10c2VwICJ9Iikgc3RtdHNlcA0KPj4NCj4+DQo+PiBCZXN0
LA0KPj4NCj4+IC0gQ2VzYXINCj4+DQo+PiBPbiAzLzMvMTUsIDEyOjA1IEFNLCAiTWFydGluIEJq
b3JrbHVuZCIgPG1iakB0YWlsLWYuY29tPiB3cm90ZToNCj4+DQo+Pj4gSGksDQo+Pj4NCj4+PiBU
aGUgcmVwb3J0ZWQgZXJyYXRhIGlzIGNvcnJlY3QuICBCdXQgdGhlcmUgaXMgYSBiaWdnZXIgaXNz
dWUgLSBtYXliZQ0KPj4+IGhhbGYgb2YgYWxsIHVzYWdlcyBvZiAic3RtdGVuZCIgYXJlIHByZWNl
ZGVkIGJ5ICJvcHRzZXAiIHdoaWxlIHRoZQ0KPj4+IHJlc3QgYXJlIG5vdC4gIFNpbmNlIHdoaXRl
c3BhY2Ugc2hvdWxkIGFsd2F5cyBiZSBhbGxvd2VkIGJlZm9yZQ0KPj4+IHN0bXRlbmQgSSBzdWdn
ZXN0IGFub3RoZXIgZml4Og0KPj4+DQo+Pj4gT0xEOg0KPj4+DQo+Pj4gICAgc3RtdGVuZCAgICAg
ICAgICAgICA9ICI7IiAvICJ7IiAqdW5rbm93bi1zdGF0ZW1lbnQgIn0iDQo+Pj4NCj4+PiBORVc6
DQo+Pj4NCj4+PiAgICBzdG10ZW5kICAgICAgICAgICAgID0gb3B0c2VwICgiOyIgLyAieyIgKnVu
a25vd24tc3RhdGVtZW50ICJ9IikNCj4+Pg0KPj4+DQo+Pj4gQ29tYmluZWQgd2l0aCBlcnJhdGEg
NDI4MyB0aGlzIHdvdWxkIGJlOg0KPj4+DQo+Pj4gICAgc3RtdGVuZCAgICAgICAgICAgICA9IG9w
dHNlcCAoIjsiIC8gInsiIHN0bXRzZXAgIn0iKQ0KPj4+DQo+Pj4NCj4+PiBOb3csIHdlIGFscmVh
ZHkgaGF2ZSBydWxlcyBsaWtlIHRoaXM6DQo+Pj4NCj4+PiAgICBuYW1lc3BhY2Utc3RtdCAgICAg
ID0gbmFtZXNwYWNlLWtleXdvcmQgc2VwIHVyaS1zdHIgb3B0c2VwIHN0bXRlbmQNCj4+Pg0KPj4+
IFRvZ2V0aGVyIHdpdGggdGhlIHByb3Bvc2VkIG5ldyBydWxlIGZvciAic3RtdGVuZCIgdGhpcyBs
b29rcyBhIGJpdA0KPj4+IGNvbmZ1c2luZyAodHdvIGNvbnNlY3V0aXZlICJvcHRzZXAicyksIGJ1
dCBpdCBpcyB0ZWNobmljYWxseSBjb3JyZWN0LA0KPj4+IGFuZCBtYWtlcyB0aGUgZXJyYXRhIHNt
YWxsZXIuDQo+Pj4NCj4+PiBJIGFsc28gc3VnZ2VzdCB0aGF0IGluIDYwMjBiaXMsIHdlIGludHJv
ZHVjZSB0aGlzIG5ldyBydWxlIGZvcg0KPj4+ICJzdG10ZW5kIiwgYnV0IHJlbW92ZSBhbGwgcmVk
dW5kYW50ICJvcHRzZXAicy4NCj4+Pg0KPj4+DQo+Pj4gL21hcnRpbg0KPj4+DQo+Pj4NCj4+Pg0K
Pj4+IFJGQyBFcnJhdGEgU3lzdGVtIDxyZmMtZWRpdG9yQHJmYy1lZGl0b3Iub3JnPiB3cm90ZToN
Cj4+Pj4gVGhlIGZvbGxvd2luZyBlcnJhdGEgcmVwb3J0IGhhcyBiZWVuIHN1Ym1pdHRlZCBmb3Ig
UkZDNjAyMCwNCj4+Pj4gIllBTkcgLSBBIERhdGEgTW9kZWxpbmcgTGFuZ3VhZ2UgZm9yIHRoZSBO
ZXR3b3JrIENvbmZpZ3VyYXRpb24NCj4+Pj5Qcm90b2NvbA0KPj4+PiAoTkVUQ09ORikiLg0KPj4+
Pg0KPj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPj4+PiBZb3Ug
bWF5IHJldmlldyB0aGUgcmVwb3J0IGJlbG93IGFuZCBhdDoNCj4+Pj4gaHR0cDovL3d3dy5yZmMt
ZWRpdG9yLm9yZy9lcnJhdGFfc2VhcmNoLnBocD9yZmM9NjAyMCZlaWQ9NDI4NQ0KPj4+Pg0KPj4+
PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPj4+PiBUeXBlOiBUZWNo
bmljYWwNCj4+Pj4gUmVwb3J0ZWQgYnk6IENlc2FyIENydXNpdXMgPGNjcnVzaXVzQGNpc2NvLmNv
bT4NCj4+Pj4NCj4+Pj4gU2VjdGlvbjogMTINCj4+Pj4NCj4+Pj4gT3JpZ2luYWwgVGV4dA0KPj4+
PiAtLS0tLS0tLS0tLS0tDQo+Pj4+IHJldmlzaW9uLWRhdGUtc3RtdCA9IHJldmlzaW9uLWRhdGUt
a2V5d29yZCBzZXAgcmV2aXNpb24tZGF0ZSBzdG10ZW5kDQo+Pj4+DQo+Pj4+IENvcnJlY3RlZCBU
ZXh0DQo+Pj4+IC0tLS0tLS0tLS0tLS0tDQo+Pj4+IHJldmlzaW9uLWRhdGUtc3RtdCA9DQo+Pj4+
ICAgICAgcmV2aXNpb24tZGF0ZS1rZXl3b3JkIHNlcCByZXZpc2lvbi1kYXRlIG9wdHNlcCBzdG10
ZW5kDQo+Pj4+DQo+Pj4+IE5vdGVzDQo+Pj4+IC0tLS0tDQo+Pj4+IEFsbG93IHNwYWNlcyBiZXR3
ZWVuIHRoZSBkYXRlIHN0cmluZyBhbmQgdGhlIHN0YXRlbWVudCdzIGVuZC4NCj4+Pj4NCj4+Pj4g
SW5zdHJ1Y3Rpb25zOg0KPj4+PiAtLS0tLS0tLS0tLS0tDQo+Pj4+IFRoaXMgZXJyYXR1bSBpcyBj
dXJyZW50bHkgcG9zdGVkIGFzICJSZXBvcnRlZCIuIElmIG5lY2Vzc2FyeSwgcGxlYXNlDQo+Pj4+
IHVzZSAiUmVwbHkgQWxsIiB0byBkaXNjdXNzIHdoZXRoZXIgaXQgc2hvdWxkIGJlIHZlcmlmaWVk
IG9yDQo+Pj4+IHJlamVjdGVkLiBXaGVuIGEgZGVjaXNpb24gaXMgcmVhY2hlZCwgdGhlIHZlcmlm
eWluZyBwYXJ0eSAoSUVTRykNCj4+Pj4gY2FuIGxvZyBpbiB0byBjaGFuZ2UgdGhlIHN0YXR1cyBh
bmQgZWRpdCB0aGUgcmVwb3J0LCBpZiBuZWNlc3NhcnkuDQo+Pj4+DQo+Pj4+IC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+Pj4+IFJGQzYwMjAgKGRyYWZ0LWlldGYtbmV0
bW9kLXlhbmctMTMpDQo+Pj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
DQo+Pj4+IFRpdGxlICAgICAgICAgICAgICAgOiBZQU5HIC0gQSBEYXRhIE1vZGVsaW5nIExhbmd1
YWdlIGZvciB0aGUgTmV0d29yaw0KPj4+PiBDb25maWd1cmF0aW9uIFByb3RvY29sIChORVRDT05G
KQ0KPj4+PiBQdWJsaWNhdGlvbiBEYXRlICAgIDogT2N0b2JlciAyMDEwDQo+Pj4+IEF1dGhvcihz
KSAgICAgICAgICAgOiBNLiBCam9ya2x1bmQsIEVkLg0KPj4+PiBDYXRlZ29yeSAgICAgICAgICAg
IDogUFJPUE9TRUQgU1RBTkRBUkQNCj4+Pj4gU291cmNlICAgICAgICAgICAgICA6IE5FVENPTkYg
RGF0YSBNb2RlbGluZyBMYW5ndWFnZQ0KPj4+PiBBcmVhICAgICAgICAgICAgICAgIDogT3BlcmF0
aW9ucyBhbmQgTWFuYWdlbWVudA0KPj4+PiBTdHJlYW0gICAgICAgICAgICAgIDogSUVURg0KPj4+
PiBWZXJpZnlpbmcgUGFydHkgICAgIDogSUVTRw0KPj4+Pg0KPg0KDQo=


From nobody Fri Mar  6 08:37:57 2015
Return-Path: <ccrusius@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 141B71A09C9 for <netmod@ietfa.amsl.com>; Fri,  6 Mar 2015 08:37:55 -0800 (PST)
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 03ZHkI6Rceji for <netmod@ietfa.amsl.com>; Fri,  6 Mar 2015 08:37:53 -0800 (PST)
Received: from rcdn-iport-1.cisco.com (rcdn-iport-1.cisco.com [173.37.86.72]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 723331A1B0B for <netmod@ietf.org>; Fri,  6 Mar 2015 08:37:53 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=2484; q=dns/txt; s=iport; t=1425659873; x=1426869473; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=aEaR81EyBsCGG4yy2R9Tfmt+oV8XUusr7n0bO5D5Fws=; b=NkKan7fFoTIWR2Jy0bCan+QJgScGfgOeoXhhWHETgWrTXrp0A0f41MjV 9XMKNQ/nv05tKZOLJ65S0bqyNJUu4AThEP9/hEMOjCfug4B3qV5WxvHyJ CygaMl/9dVJYHqu3Etu4OiWUHU6pq6BNogHBTbm2qutKw8vGY2NuQCj92 g=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0CiCgB41/lU/4sNJK1cgwaBLASDBrhqi24CHIEdTQEBAQEBAXyEEAEBBCMRRRACAQgOCgICJgICAjAVEAIEDgWILgGzNppUAQEBAQEBAQECAQEBAQEBAQEagSGId3+BPYJ+MweCaIFDAQSQB4lNgRqDJo8vI4IPgV9vgUR/AQEB
X-IronPort-AV: E=Sophos;i="5.11,353,1422921600"; d="scan'208";a="398360393"
Received: from alln-core-6.cisco.com ([173.36.13.139]) by rcdn-iport-1.cisco.com with ESMTP; 06 Mar 2015 16:37:53 +0000
Received: from xhc-aln-x11.cisco.com (xhc-aln-x11.cisco.com [173.36.12.85]) by alln-core-6.cisco.com (8.14.5/8.14.5) with ESMTP id t26Gbqvf031699 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Fri, 6 Mar 2015 16:37:52 GMT
Received: from xmb-aln-x03.cisco.com ([169.254.6.153]) by xhc-aln-x11.cisco.com ([173.36.12.85]) with mapi id 14.03.0195.001; Fri, 6 Mar 2015 10:37:52 -0600
From: "Cesar Crusius (ccrusius)" <ccrusius@cisco.com>
To: Martin Bjorklund <mbj@tail-f.com>
Thread-Topic: ABNF in YANG 1.1. (Was: [Technical Errata Reported] RFC6020 (4285))
Thread-Index: AQHQVl/04d55Zg1knUW3cFepcpQkSp0PiYGA
Date: Fri, 6 Mar 2015 16:37:52 +0000
Message-ID: <D11F1557.4C46%ccrusius@cisco.com>
References: <20150302211808.54F41180204@rfc-editor.org> <20150303.090531.37030803913631573.mbj@tail-f.com> <D11B25ED.4B34%ccrusius@cisco.com> <20150304.104527.1218509675714916552.mbj@tail-f.com>
In-Reply-To: <20150304.104527.1218509675714916552.mbj@tail-f.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [171.71.147.11]
Content-Type: text/plain; charset="utf-8"
Content-ID: <AFA4E692EAE98E4885799D1D6B8A450A@emea.cisco.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/sPDW-J-ziIYdbQopQ96RSszp18U>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] ABNF in YANG 1.1. (Was: [Technical Errata Reported] RFC6020 (4285))
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: <http://www.ietf.org/mail-archive/web/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, 06 Mar 2015 16:37:55 -0000

T24gMy80LzE1LCAxOjQ1IEFNLCAiTWFydGluIEJqb3JrbHVuZCIgPG1iakB0YWlsLWYuY29tPiB3
cm90ZToNCg0KPltQcnVuaW5nIENjLCBjaGFuZ2luZyBzdWJqZWN0XQ0KPg0KPiJDZXNhciBDcnVz
aXVzIChjY3J1c2l1cykiIDxjY3J1c2l1c0BjaXNjby5jb20+IHdyb3RlOg0KPj4gSGksDQo+PiAN
Cj4+IEkgYWdyZWUgd2l0aCB0aGF0LCBhbmQgaWYgdGhlIGdvYWwgaXMgdG8gc2ltcGxpZnkgc3Bh
Y2UgaGFuZGxpbmcsIEkNCj4+d291bGQNCj4+IGFsc28gYWRkIGFkZCBhICJzdG10c2VwIiB0byB0
aGUgZW5kIG9mICJzdG10ZW5kLCIgd2hpY2ggd291bGQgYWxsb3cgdGhlDQo+PiByZW1vdmFsIG9m
IGEgbG90IG9mICJzdG10c2VwInMgaW4gdGhlIHN5bnRheCAoc3RtdGVuZHMgYXJlIHVzdWFsbHkN
Cj4+IGZvbGxvd2VkIGJ5IHN0bXRzZXAsIGFuZCB3aGVuIHRoZXkgYXJlIG5vdCBpdCBpcyB1c3Vh
bGx5IGFuIGVycm9yKS4NCj4+IA0KPj4gICAgc3RtdGVuZCAgICAgICAgICAgICA9IG9wdHNlcCAo
IjsiIC8gInsiIHN0bXRzZXAgIn0iKSBzdG10c2VwDQo+DQo+WWVzIHRoaXMgbWFrZXMgc2Vuc2Uu
ICBJdCBtZWFucyB0aGF0IHN0bXRzZXAgbmVlZHMgdG8gYmUgYWRkZWQgdG8NCj5xdWl0ZSBhIGZl
dyBydWxlcywgc3VjaCBhczoNCj4NCj5hcmd1bWVudC1zdG10ICAgICAgID0gYXJndW1lbnQta2V5
d29yZCBzZXAgaWRlbnRpZmllci1hcmctc3RyIG9wdHNlcA0KPiAgICAgICAgICAgICAgICAgICAg
ICAoIjsiIC8NCj4gICAgICAgICAgICAgICAgICAgICAgICJ7IiBzdG10c2VwDQo+ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgW3lpbi1lbGVtZW50LXN0bXRdDQo+ICAgICAgICAgICAgICAgICAg
ICAgICAifSIpIHN0bXRzLg0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICBeXl5eXl5eICBB
RERFRA0KPg0KPkJ1dCB0aGlzIGlzIHN0aWxsIGJldHRlciBhbmQgc29tZXdoYXQgbGVzcyBlcnJv
ci1wcm9uZSB0aGFuIGJlZm9yZS4NCj4NCj5JIHdpbGwgaW5jbHVkZSB0aGlzIGNoYW5nZSAoYW5k
IHRoZSBvdGhlcnMpIGluIHRoZSBuZXh0IHJldmlzaW9uICh0bw0KPmJlIHB1Ymxpc2hlZCBiZWZv
cmUgbW9uZGF5KTsgcGxlYXNlIHJldmlldyENCj4NCj4NCj4vbWFydGluDQoNCkFjdHVhbGx5LCB0
aGF0IHJ1bGUgZG9lcyBub3QgbmVlZCB0byBjaGFuZ2UuIEl0IGlzIHVzZWQgb25seSBpbg0KImV4
dGVuc2lvbi1zdG10IiwgYW5kIGluIHRoZXJlIGl0IGlzIGFscmVhZHkgZm9sbG93ZWQgYnkgYSAi
c3RtdHNlcCIuIFNvbWUNCmZpbmUtdG9vdGggY29tYmluZyBpcyBuZWVkZWQgdG8gc2VlIGlmIGFu
eSAic3RtdHNlcCJzIHJlYWxseSBuZWVkIHRvIGJlDQphZGRlZCwgYW5kIHdoaWNoIG9uZXMgY2Fu
IGJlIHJlbW92ZWQuDQoNCklmIG9uZSBoYXMgdGhlIHN0b21hY2gsIGEgcGVyaGFwcyBzYWZlciB3
YXkgd291bGQgYmUgdG8gaW50cm9kdWNlIG5ldyBydWxlcw0KDQogICBjb2xvbi1lbmQgPSBvcHRz
ZXAgIjsiIHN0bXRzZXANCiAgIG9wZW4tYnJhY2UgPSBvcHRzZXAgInsiIHN0bXRzZXANCiAgIGNs
b3NlLWJyYWNlID0gIn0iIHN0bXRzZXANCg0KKG1heWJlIHdpdGggZGlmZmVyZW50IG5hbWVzKSwg
YW5kIHJlcGxhY2UgdXNlcyBvZiAiOyIsICJ7IiwgYW5kICJ9Ig0KdGhyb3VnaG91dC4gVGhpcywg
dG9nZXRoZXIgd2l0aCB0aGUgbmV3ICJzdG10ZW5kIiBydWxlLCBzaG91bGQgcmVkdWNlIHRoZQ0K
bnVtYmVyIG9mIG9wdHNlcC9zdG10c2VwIHRvIGFsbW9zdCB6ZXJvLCBhbmQgbWFrZSB0aGUgZ3Jh
bW1hciBtb3JlDQpjb25zaXN0ZW50Lg0KDQpCZXN0LA0KDQotIENlc2FyDQoNCg==


From nobody Fri Mar  6 12:58:08 2015
Return-Path: <mbj@tail-f.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 2AB191A854D for <netmod@ietfa.amsl.com>; Fri,  6 Mar 2015 12:58:07 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.911
X-Spam-Level: 
X-Spam-Status: No, score=-1.911 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] 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 kaWdm8Vgqkqe for <netmod@ietfa.amsl.com>; Fri,  6 Mar 2015 12:58:05 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [83.241.162.140]) by ietfa.amsl.com (Postfix) with ESMTP id 6A3C11A8029 for <netmod@ietf.org>; Fri,  6 Mar 2015 12:58:05 -0800 (PST)
Received: from localhost (unknown [213.136.39.104]) by mail.tail-f.com (Postfix) with ESMTPSA id 4A6CE1280AFD; Fri,  6 Mar 2015 21:58:04 +0100 (CET)
Date: Fri, 06 Mar 2015 21:58:23 +0100 (CET)
Message-Id: <20150306.215823.219632313291759982.mbj@tail-f.com>
To: ccrusius@cisco.com
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <D11F1557.4C46%ccrusius@cisco.com>
References: <D11B25ED.4B34%ccrusius@cisco.com> <20150304.104527.1218509675714916552.mbj@tail-f.com> <D11F1557.4C46%ccrusius@cisco.com>
X-Mailer: Mew version 6.5 on Emacs 24.3 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/vxjCj0LeHn_4iK9EDhV5S9R5qj8>
Cc: netmod@ietf.org
Subject: Re: [netmod] ABNF in YANG 1.1.
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: <http://www.ietf.org/mail-archive/web/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, 06 Mar 2015 20:58:07 -0000

"Cesar Crusius (ccrusius)" <ccrusius@cisco.com> wrote:
> On 3/4/15, 1:45 AM, "Martin Bjorklund" <mbj@tail-f.com> wrote:
> 
> >[Pruning Cc, changing subject]
> >
> >"Cesar Crusius (ccrusius)" <ccrusius@cisco.com> wrote:
> >> Hi,
> >> 
> >> I agree with that, and if the goal is to simplify space handling, I
> >>would
> >> also add add a "stmtsep" to the end of "stmtend," which would allow the
> >> removal of a lot of "stmtsep"s in the syntax (stmtends are usually
> >> followed by stmtsep, and when they are not it is usually an error).
> >> 
> >>    stmtend             = optsep (";" / "{" stmtsep "}") stmtsep
> >
> >Yes this makes sense.  It means that stmtsep needs to be added to
> >quite a few rules, such as:
> >
> >argument-stmt       = argument-keyword sep identifier-arg-str optsep
> >                      (";" /
> >                       "{" stmtsep
> >                           [yin-element-stmt]
> >                       "}") stmts.
> >                            ^^^^^^^  ADDED
> >
> >But this is still better and somewhat less error-prone than before.
> >
> >I will include this change (and the others) in the next revision (to
> >be published before monday); please review!
> >
> >
> >/martin
> 
> Actually, that rule does not need to change. It is used only in
> "extension-stmt", and in there it is already followed by a "stmtsep". Some
> fine-tooth combing is needed to see if any "stmtsep"s really need to be
> added, and which ones can be removed.

Sorry, I should have included the updated usage of argument-stmt as
well; the complete rule is now:

extension-stmt      = extension-keyword sep identifier-arg-str optsep
                      (";" /
                       "{" stmtsep
                           ;; these stmts can appear in any order
                           [argument-stmt]
                           [status-stmt]
                           [description-stmt]
                           [reference-stmt]
                       "}") stmtsep


> 
> If one has the stomach, a perhaps safer way would be to introduce new rules
> 
>    colon-end = optsep ";" stmtsep
>    open-brace = optsep "{" stmtsep
>    close-brace = "}" stmtsep

Yes I was thinking about that, but I thought the current style is more
clear.  But maybe this is a better approach.


/martin

> (maybe with different names), and replace uses of ";", "{", and "}"
> throughout. This, together with the new "stmtend" rule, should reduce the
> number of optsep/stmtsep to almost zero, and make the grammar more
> consistent.
> 
> Best,
> 
> - Cesar
> 


From nobody Fri Mar  6 15:25:58 2015
Return-Path: <internet-drafts@ietf.org>
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 045601A8730; Fri,  6 Mar 2015 15:25:56 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level: 
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9] 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 YX3K93yLnuEn; Fri,  6 Mar 2015 15:25:54 -0800 (PST)
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id A8B4D1A00FE; Fri,  6 Mar 2015 15:25:54 -0800 (PST)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: internet-drafts@ietf.org
To: <i-d-announce@ietf.org>
X-Test-IDTracker: no
X-IETF-IDTracker: 5.12.0.p2
Auto-Submitted: auto-generated
Precedence: bulk
Message-ID: <20150306232554.28049.85230.idtracker@ietfa.amsl.com>
Date: Fri, 06 Mar 2015 15:25:54 -0800
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/7Rc3z7Sbd7lzGYJZoww2TwP9mdk>
Cc: netmod@ietf.org
Subject: [netmod] I-D Action: draft-ietf-netmod-syslog-model-02.txt
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
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: <http://www.ietf.org/mail-archive/web/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, 06 Mar 2015 23:25:56 -0000

A New Internet-Draft is available from the on-line Internet-Drafts directories.
 This draft is a work item of the NETCONF Data Modeling Language Working Group of the IETF.

        Title           : SYSLOG YANG model
        Authors         : Clyde Wildes
                          Brocade Communications Systems
	Filename        : draft-ietf-netmod-syslog-model-02.txt
	Pages           : 21
	Date            : 2015-03-06

Abstract:
   This document describes a data model for Syslog
   protocol which is used to convey event notification messages.


The IETF datatracker status page for this draft is:
https://datatracker.ietf.org/doc/draft-ietf-netmod-syslog-model/

There's also a htmlized version available at:
http://tools.ietf.org/html/draft-ietf-netmod-syslog-model-02

A diff from the previous version is available at:
http://www.ietf.org/rfcdiff?url2=draft-ietf-netmod-syslog-model-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/


From nobody Sat Mar  7 03:52:34 2015
Return-Path: <mbj@tail-f.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 82FD01A8BB1 for <netmod@ietfa.amsl.com>; Sat,  7 Mar 2015 03:52:33 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.911
X-Spam-Level: 
X-Spam-Status: No, score=-1.911 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] 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 w66ZtrW8UX-h for <netmod@ietfa.amsl.com>; Sat,  7 Mar 2015 03:52:31 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [83.241.162.140]) by ietfa.amsl.com (Postfix) with ESMTP id 966351A8944 for <netmod@ietf.org>; Sat,  7 Mar 2015 03:52:30 -0800 (PST)
Received: from localhost (unknown [213.136.39.104]) by mail.tail-f.com (Postfix) with ESMTPSA id 9A9751280477 for <netmod@ietf.org>; Sat,  7 Mar 2015 12:52:29 +0100 (CET)
Date: Sat, 07 Mar 2015 12:52:54 +0100 (CET)
Message-Id: <20150307.125254.282397849379655594.mbj@tail-f.com>
To: netmod@ietf.org
From: Martin Bjorklund <mbj@tail-f.com>
X-Mailer: Mew version 6.5 on Emacs 24.3 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/Mp5DKUnI6-lUjtOwY3FK2aNYj-c>
Subject: [netmod] comments on draft-ietf-netmod-acl-model-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: <http://www.ietf.org/mail-archive/web/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: Sat, 07 Mar 2015 11:52:33 -0000

Hi,

I have reviewed draft-ietf-netmod-acl-model-02.txt, and here are my
comments:

o The extensibility model is a bit unclear.

  - Each ACL has a type, an indentityref, which is good, but then this
    type is not really used in the model.  It is just a leaf with a
    value, with no indications of how it is supposed to be implemented
    or used by the operator.

    I would assume that the type restricts what can be configured in
    each ACE.  But that it is not the case, which means that you can
    set the ACL type to be "eth-access-control-list", but still
    configure an ACE with "source-ipv6-network" (for example).

    Also, the type is optional to configure, i.e., you can configure a
    type-less ACL.

    This makes it unclear what the type is supposed to do.

  - Section 3.1 says:

      The "ietf-packet-fields" modules can easily be extended to reuse
      definitions from other modules such as IPFIX [RFC5101] or
      migrate proprietary augmented module definitions into the
      standard module.

    I do not understand this.  What does "easily be extended" refer
    to?  The only way to extend this model - as it is written - is by
    publishing a new revision of the model (in a new RFC).

    Also, I do not understand the last part of the sentence:

      migrate proprietary augmented module definitions into the
      standard module.

  - Section 4.2 says:

    The packet fields module defines the necessary groups for matching on
    fields in the packet including ethernet, ipv4, ipv6, transport layer
    fields and metadata.  These groupings can be augmented to include
    other proprietary matching criteria. 

    This is not correct.  A grouping cannot be augmented.

    This makes me wonder about the design where the generic module
    imports and uses definitions from the special module.  Wouldn't it
    make more sense to do it the other way around?  I.e., let the
    generic module be generic, and augment it from the specific
    module?

  - There are some "choices" in the model that I *think* are supposed
    to be augmented by type-specific parameters.  If this is correct,
    it should be described in the data model (in the description of
    the choice).


o In the container "access-control-list-oper-data" there is something
  called "targets".  This concept needs to be explained.  I *think*
  the idea is that if you want to apply an ACL to interface, you would
  augment /if:interfaces/if:interface with some parameter that points
  out the ACL (as is done in A.3), and then the implementation would
  keep track of this in the "targets" choice.  If this is correct, it
  needs to be explained.

  Further, the model as it is defined is not complete.  Why is the
  special target "interface-name" defined in the standard model, but
  the other part (the augment of if:interface) is not defined in the
  standard?

  Note that the "target" name is not visible in the encoding, so all
  you see if do a GET on an ACL is:

    access-list foo
      access-control-list-oper-data
        interface-name eth0

  It would be better with an explicit name that tells the operator
  that the interface is really the "target":

    access-list foo
      access-control-list-oper-data
        target
          interface-name eth0

  Or maybe "used-by"?


o Why did you change the name from "acl" to "access-control-list" in
  many places between -01 and -02?  I didn't see any comments about
  this on the ML.  The current naming is not consistent, and the names
  are pretty long.  For example, you have "access-control-list",
  "access-list", and "acl".

  I suggest the following names:

  module ietf-access-control-lists

  top-level container access-control-lists  (or just acls)

  then remove redundant "access-control-list-" prefix from the names
  to get something like this:

  module: ietf-access-control-lists
   +--rw access-control-lists
      +--rw acl* [name]
         +--rw name                   string
         +--rw type?                  access-control-list-type
         +--ro oper-data
         |  +--ro (targets)?
         |     +--:(interface-name)
         |        +--ro interface-name*   string
         +--rw access-list-entries
            +--rw ace* [name]
               +--rw name                             string
               +--rw matches

  In general, I think you should review all node names and make sure
  that they are good.  It is often very useful to try out a model in
  one of the generic implementations that are available, to get a
  feeling for the structure and names of the data model.


o Section 3.1

  The tree output is not idented correctly.  (maybe a tooling issue,
  since the lines are so long - if you change the names this issue
  will be solved automatically).


o Section 4.1

   "ietf-acl" is the standard top level module for Access lists.  It has
   a container for "access-list" to store access list information. 
                    ^^^^^^^^^^^

  There is no such container.

   This
   container has information identifying the access list by a name("acl-
   name") and a list("access-list-entries") of rules associated with the
   "acl-name".

  There is no leaf called "acl-name".


o Change the prefix in the module to "acl" - "access-control-list" is
  too long. 


o identity IP-access-control-list

  For constistency, change this name to "ip-access-control-list".

  The description says:

    description "IP-access control list is common name for layer 3 and 4 access
    control list types. It is common among vendors to call 3-tupple or 5 tupple
    IP access control lists";

  I do not understand the last sentence.


o Readability

  The YANG modules are inconsistently indented and formatted, which
  makes them difficult to read.  I suggest you run:

    pyang -f yang --yang-canonical ietf-acl.yang

  and use that output (possibly with some additional hand-editing,
  e.g., put back comments that this tool unfortunately doesn't handle
  properly).

  Do this for all modules in this draft.


o leaf upper-port

  The model has:

      leaf lower-port {
        type inet:port-number;
        mandatory true;
        description "Lower boundary.";
      }
      leaf upper-port {
        type inet:port-number;
        description "Upper boundary. If exist, upper port must be greater or
        equal to lower port.";
      }

  I suggest you add a must statement to cover this requirement:

      leaf upper-port {
        ...
        must ". >= ../lower-port" {
          error-message
            "The upper-port must be greater than or equal to lower-port";
        }
        ...
      }


o descriptions

  Many statements need better description.  For example:

    leaf destination-mac-address-mask {
      type yang:mac-address;
      description "Mac addresses mask.";
    }

  This description doesn't explain anything.  In fact, it tells me
  *less* than the name of the node.


o grouping access-control-list-transport-header-fields

  The way your model is designed, it is not possible to create any
  type of ACE without also specifiying source-port-range/lower-port
  and destination-port-range/lower-port.  I don't think this is
  intentional?  If not, make "source-port-range" and
  "destination-port-range" to presence containers.


o grouping timerange

  The name "absolute" is very generic.  I suggest you change the name
  "absolute" to "absolute-time" or something.

  Is absolute time ranges supported across implementations?  I would
  expect this to be optional to implement (i.e., add if-feature).

  Are such absolute time ranges commonly used by operators?  What
  about periodic times?

  Also, this grouping doesn't really belong to a module called
  "ietf-packet-headers".

  
o leaf active

      leaf active {
        type boolean;
        default "true";
        description

          "Specify the associated function

          active or inactive state when
          starts going into effect";
  
  I do not undertand the description.


o Section 5. Linux nftables

  The purpose of this section is unclear.  It would make sense w/ an
  example that shows how to map this model to nftables, but that is
  not what it is.


o Section 4.3

  These examples are very useful.  Unfortunately, the XML in the
  example has numerous errors.  I suggest you carefully fix it so that
  it matches the CLI snippet and the data model.


o Section 4.4

  This is an example, but it states:

    When only a lower-port presents, it
    represents a single port.
  
  This is an important piece of information that should go into the
  decription of lower-port/upper-port in the data model!


o module std-ext-route-filter doesn't pass YANG validation.


o module newco-acl doesn't pass YANG validation.


o We should have some consistency in how we name our example modules.

  RFC 7223 uses:

    module ex-ethernet-bonding {
      namespace "http://example.com/ethernet-bonding";

  draft-ietf-netmod-routing-cfg-17 uses:

    module example-rip {
     namespace "http://example.com/rip";

  I suggest you use one of these as well (we should put this into the
  guidelines document!).

  Specifically, an example called "std-..." might give people the
  wrong idea...

  Also, remove the "contact" and "organization" statements from the
  example modules.


o  In the example module, remove

    reference " ";

  It looks very weird and doesn't give you anything.


/martin


From nobody Sat Mar  7 09:41:21 2015
Return-Path: <wwwrun@rfc-editor.org>
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 BF5CC1A011D for <netmod@ietfa.amsl.com>; Sat,  7 Mar 2015 09:41:19 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -101.912
X-Spam-Level: 
X-Spam-Status: No, score=-101.912 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01, USER_IN_WHITELIST=-100] 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 BUXYv3VbyaPp for <netmod@ietfa.amsl.com>; Sat,  7 Mar 2015 09:41:18 -0800 (PST)
Received: from rfc-editor.org (rfc-editor.org [IPv6:2001:1900:3001:11::31]) by ietfa.amsl.com (Postfix) with ESMTP id 87A5B1A00F3 for <netmod@ietf.org>; Sat,  7 Mar 2015 09:41:18 -0800 (PST)
Received: by rfc-editor.org (Postfix, from userid 30) id BB018180205; Sat,  7 Mar 2015 09:40:19 -0800 (PST)
To: mbj@tail-f.com, bclaise@cisco.com, joelja@bogus.com, j.schoenwaelder@jacobs-university.de, tnadeau@lucidvision.com
X-PHP-Originating-Script: 6000:errata_mail_lib.php
From: RFC Errata System <rfc-editor@rfc-editor.org>
Message-Id: <20150307174019.BB018180205@rfc-editor.org>
Date: Sat,  7 Mar 2015 09:40:19 -0800 (PST)
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/kzVgwulVvcYIY4wNGFQOB3z5EMw>
Cc: rfc-editor@rfc-editor.org, netmod@ietf.org, ccrusius@cisco.com
Subject: [netmod] [Editorial Errata Reported] RFC6020 (4291)
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: <http://www.ietf.org/mail-archive/web/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: Sat, 07 Mar 2015 17:41:19 -0000

The following errata report has been submitted for RFC6020,
"YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)".

--------------------------------------
You may review the report below and at:
http://www.rfc-editor.org/errata_search.php?rfc=6020&eid=4291

--------------------------------------
Type: Editorial
Reported by: Cesar Crusius <ccrusius@cisco.com>

Section: 12

Original Text
-------------
   deviate-not-supported-stmt =
                         deviate-keyword sep
                         not-supported-keyword optsep
                         (";" /
                          "{" stmtsep
                          "}") 


Corrected Text
--------------
   deviate-not-supported-stmt =
                         deviate-keyword sep
                         not-supported-keyword
                         stmtend


Notes
-----
The rule is not incorrect, but unnecessarily replicates 'stmtend' within it.

Instructions:
-------------
This erratum is currently posted as "Reported". If necessary, please
use "Reply All" to discuss whether it should be verified or
rejected. When a decision is reached, the verifying party (IESG)
can log in to change the status and edit the report, if necessary. 

--------------------------------------
RFC6020 (draft-ietf-netmod-yang-13)
--------------------------------------
Title               : YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)
Publication Date    : October 2010
Author(s)           : M. Bjorklund, Ed.
Category            : PROPOSED STANDARD
Source              : NETCONF Data Modeling Language
Area                : Operations and Management
Stream              : IETF
Verifying Party     : IESG


From nobody Sat Mar  7 09:46:35 2015
Return-Path: <wwwrun@rfc-editor.org>
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 C023B1A016B for <netmod@ietfa.amsl.com>; Sat,  7 Mar 2015 09:46:34 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -101.912
X-Spam-Level: 
X-Spam-Status: No, score=-101.912 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01, USER_IN_WHITELIST=-100] 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 B406QL3wAE5B for <netmod@ietfa.amsl.com>; Sat,  7 Mar 2015 09:46:33 -0800 (PST)
Received: from rfc-editor.org (rfc-editor.org [IPv6:2001:1900:3001:11::31]) by ietfa.amsl.com (Postfix) with ESMTP id DF4371A0111 for <netmod@ietf.org>; Sat,  7 Mar 2015 09:46:32 -0800 (PST)
Received: by rfc-editor.org (Postfix, from userid 30) id 222CC180205; Sat,  7 Mar 2015 09:45:34 -0800 (PST)
To: mbj@tail-f.com, bclaise@cisco.com, joelja@bogus.com, j.schoenwaelder@jacobs-university.de, tnadeau@lucidvision.com
X-PHP-Originating-Script: 6000:errata_mail_lib.php
From: RFC Errata System <rfc-editor@rfc-editor.org>
Message-Id: <20150307174534.222CC180205@rfc-editor.org>
Date: Sat,  7 Mar 2015 09:45:34 -0800 (PST)
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/6tbIqUCO-ov5Y3fqMcrg8Z3t68E>
Cc: rfc-editor@rfc-editor.org, netmod@ietf.org, ccrusius@cisco.com
Subject: [netmod] [Technical Errata Reported] RFC6020 (4292)
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: <http://www.ietf.org/mail-archive/web/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: Sat, 07 Mar 2015 17:46:34 -0000

The following errata report has been submitted for RFC6020,
"YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)".

--------------------------------------
You may review the report below and at:
http://www.rfc-editor.org/errata_search.php?rfc=6020&eid=4292

--------------------------------------
Type: Technical
Reported by: Cesar Crusius <ccrusius@cisco.com>

Section: 12

Original Text
-------------
   type-stmt           = type-keyword sep identifier-ref-arg-str optsep
                         (";" /
                          "{" stmtsep
                              type-body-stmts
                          "}")


Corrected Text
--------------
   type-stmt           = type-keyword sep identifier-ref-arg-str optsep
                         (";" /
                          "{" stmtsep
                              [ type-body-stmts ]
                          "}")


Notes
-----
Every statement that can end with a single ';' should also accept ending with '{ stmtsep }' (that is what the 'stmtend' rule implies). This is the only instance I found so far of a statement that does not follow this rule.

The other option would be to replace all ";" in rules like that with 'stmtend'.

Instructions:
-------------
This erratum is currently posted as "Reported". If necessary, please
use "Reply All" to discuss whether it should be verified or
rejected. When a decision is reached, the verifying party (IESG)
can log in to change the status and edit the report, if necessary. 

--------------------------------------
RFC6020 (draft-ietf-netmod-yang-13)
--------------------------------------
Title               : YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)
Publication Date    : October 2010
Author(s)           : M. Bjorklund, Ed.
Category            : PROPOSED STANDARD
Source              : NETCONF Data Modeling Language
Area                : Operations and Management
Stream              : IETF
Verifying Party     : IESG


From nobody Sat Mar  7 10:27:33 2015
Return-Path: <andy@yumaworks.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 F06821A0162 for <netmod@ietfa.amsl.com>; Sat,  7 Mar 2015 10:27:31 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.979
X-Spam-Level: 
X-Spam-Status: No, score=-1.979 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] 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 NC-tgmuX5WaB for <netmod@ietfa.amsl.com>; Sat,  7 Mar 2015 10:27:30 -0800 (PST)
Received: from mail-la0-f49.google.com (mail-la0-f49.google.com [209.85.215.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C1A7D1A016B for <netmod@ietf.org>; Sat,  7 Mar 2015 10:27:29 -0800 (PST)
Received: by labhs14 with SMTP id hs14so63618610lab.1 for <netmod@ietf.org>; Sat, 07 Mar 2015 10:27:28 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=zPD+pLrdi7jhY0tpEMKIfk3ac/rAHK2KsRAydiyOwX4=; b=miidoPG4tt/fAKrP3jtvPZBELe6EEFu26xXztUz7a6oWPE8OsD8y34/INbBfTQa9pB nNHrn/VT3E1HID/x9WcNWR4fCdrWn+qetaOTbt9PIWJwMzl/UMhuUfDTfuyQELybDP71 rIRNE1xf+4XQ0SB0h1yGOfjwh1khJaFJRlAzMS8yukCUsm99cNq27zrwveOFwla2t0mR 3OkoM6PC13mHG/qImEZ82N8h0L/F21NxO/gXlOdthWyFqcWEfj6Q4oyrPKO+1HgUzdZ/ vyA1mJy+jdD7Onwpvl/ESphMPluHkCDaLJC/9l0tVT0orKBFEmdJBUuQ8mDyGP3IjHA+ vzWw==
X-Gm-Message-State: ALoCoQk4iV71pkTAtfLZSEfGqn1Ru28INPejJlaJIL8kGLxSy3KATRj8/hIXJ4hwcgucrlDwiRMG
MIME-Version: 1.0
X-Received: by 10.152.87.50 with SMTP id u18mr18263603laz.82.1425752847997; Sat, 07 Mar 2015 10:27:27 -0800 (PST)
Received: by 10.112.144.36 with HTTP; Sat, 7 Mar 2015 10:27:27 -0800 (PST)
In-Reply-To: <20150307174534.222CC180205@rfc-editor.org>
References: <20150307174534.222CC180205@rfc-editor.org>
Date: Sat, 7 Mar 2015 10:27:27 -0800
Message-ID: <CABCOCHT2HEJw-EAvoGt37zFZz9S7K3PW_or=mGHtGw3fvPO-zA@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: RFC Errata System <rfc-editor@rfc-editor.org>
Content-Type: text/plain; charset=UTF-8
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/iFrEYcJClGUwAt9_QxoBlXaQQVQ>
Cc: "netmod@ietf.org" <netmod@ietf.org>, joel jaeggli <joelja@bogus.com>, ccrusius@cisco.com
Subject: Re: [netmod] [Technical Errata Reported] RFC6020 (4292)
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: <http://www.ietf.org/mail-archive/web/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: Sat, 07 Mar 2015 18:27:32 -0000

Hi,

I just confirmed that both pyang and yangdump-pro accept "type string {}"
instead of "type string;"

This is because every single place that ";" could be used,
a sub-section of extension statements could be present instead.


Andy



On Sat, Mar 7, 2015 at 9:45 AM, RFC Errata System
<rfc-editor@rfc-editor.org> wrote:
> The following errata report has been submitted for RFC6020,
> "YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)".
>
> --------------------------------------
> You may review the report below and at:
> http://www.rfc-editor.org/errata_search.php?rfc=6020&eid=4292
>
> --------------------------------------
> Type: Technical
> Reported by: Cesar Crusius <ccrusius@cisco.com>
>
> Section: 12
>
> Original Text
> -------------
>    type-stmt           = type-keyword sep identifier-ref-arg-str optsep
>                          (";" /
>                           "{" stmtsep
>                               type-body-stmts
>                           "}")
>
>
> Corrected Text
> --------------
>    type-stmt           = type-keyword sep identifier-ref-arg-str optsep
>                          (";" /
>                           "{" stmtsep
>                               [ type-body-stmts ]
>                           "}")
>
>
> Notes
> -----
> Every statement that can end with a single ';' should also accept ending with '{ stmtsep }' (that is what the 'stmtend' rule implies). This is the only instance I found so far of a statement that does not follow this rule.
>
> The other option would be to replace all ";" in rules like that with 'stmtend'.
>
> Instructions:
> -------------
> This erratum is currently posted as "Reported". If necessary, please
> use "Reply All" to discuss whether it should be verified or
> rejected. When a decision is reached, the verifying party (IESG)
> can log in to change the status and edit the report, if necessary.
>
> --------------------------------------
> RFC6020 (draft-ietf-netmod-yang-13)
> --------------------------------------
> Title               : YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)
> Publication Date    : October 2010
> Author(s)           : M. Bjorklund, Ed.
> Category            : PROPOSED STANDARD
> Source              : NETCONF Data Modeling Language
> Area                : Operations and Management
> Stream              : IETF
> Verifying Party     : IESG
>
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod


From nobody Sat Mar  7 11:21:59 2015
Return-Path: <mbj@tail-f.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 1A0031A026C for <netmod@ietfa.amsl.com>; Sat,  7 Mar 2015 11:21:59 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.911
X-Spam-Level: 
X-Spam-Status: No, score=-1.911 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] 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 1nBO67lu8gdR for <netmod@ietfa.amsl.com>; Sat,  7 Mar 2015 11:21:57 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [83.241.162.140]) by ietfa.amsl.com (Postfix) with ESMTP id 4073C1A01FA for <netmod@ietf.org>; Sat,  7 Mar 2015 11:21:57 -0800 (PST)
Received: from localhost (unknown [213.136.39.104]) by mail.tail-f.com (Postfix) with ESMTPSA id 3E85B1280B6F; Sat,  7 Mar 2015 20:21:56 +0100 (CET)
Date: Sat, 07 Mar 2015 20:22:34 +0100 (CET)
Message-Id: <20150307.202234.554530791169183285.mbj@tail-f.com>
To: rfc-editor@rfc-editor.org
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <20150307174019.BB018180205@rfc-editor.org>
References: <20150307174019.BB018180205@rfc-editor.org>
X-Mailer: Mew version 6.5 on Emacs 24.3 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/dcvHOjO9ZmZEgyr8JIIW2c71ZYc>
Cc: netmod@ietf.org, joelja@bogus.com, ccrusius@cisco.com
Subject: Re: [netmod] [Editorial Errata Reported] RFC6020 (4291)
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: <http://www.ietf.org/mail-archive/web/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: Sat, 07 Mar 2015 19:21:59 -0000

RFC Errata System <rfc-editor@rfc-editor.org> wrote:
> The following errata report has been submitted for RFC6020,
> "YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)".
> 
> --------------------------------------
> You may review the report below and at:
> http://www.rfc-editor.org/errata_search.php?rfc=6020&eid=4291
> 
> --------------------------------------
> Type: Editorial
> Reported by: Cesar Crusius <ccrusius@cisco.com>
> 
> Section: 12
> 
> Original Text
> -------------
>    deviate-not-supported-stmt =
>                          deviate-keyword sep
>                          not-supported-keyword optsep
>                          (";" /
>                           "{" stmtsep
>                           "}") 
> 
> 
> Corrected Text
> --------------
>    deviate-not-supported-stmt =
>                          deviate-keyword sep
>                          not-supported-keyword
>                          stmtend

This is already fixed in the upcoming
draft-ietf-netmod-rfc6020bis-04.

Since this is not really a bug, I don't know if it is worth the effort
to accept this errata.


/martin


> 
> 
> Notes
> -----
> The rule is not incorrect, but unnecessarily replicates 'stmtend' within it.
> 
> Instructions:
> -------------
> This erratum is currently posted as "Reported". If necessary, please
> use "Reply All" to discuss whether it should be verified or
> rejected. When a decision is reached, the verifying party (IESG)
> can log in to change the status and edit the report, if necessary. 
> 
> --------------------------------------
> RFC6020 (draft-ietf-netmod-yang-13)
> --------------------------------------
> Title               : YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)
> Publication Date    : October 2010
> Author(s)           : M. Bjorklund, Ed.
> Category            : PROPOSED STANDARD
> Source              : NETCONF Data Modeling Language
> Area                : Operations and Management
> Stream              : IETF
> Verifying Party     : IESG
> 


From nobody Sat Mar  7 11:23:10 2015
Return-Path: <mbj@tail-f.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 5DB5E1A0277 for <netmod@ietfa.amsl.com>; Sat,  7 Mar 2015 11:23:08 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.911
X-Spam-Level: 
X-Spam-Status: No, score=-1.911 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] 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 VwV1Pcd7wU-7 for <netmod@ietfa.amsl.com>; Sat,  7 Mar 2015 11:23:06 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [83.241.162.140]) by ietfa.amsl.com (Postfix) with ESMTP id 734301A026C for <netmod@ietf.org>; Sat,  7 Mar 2015 11:23:06 -0800 (PST)
Received: from localhost (unknown [213.136.39.104]) by mail.tail-f.com (Postfix) with ESMTPSA id B48DC1280B6F; Sat,  7 Mar 2015 20:23:05 +0100 (CET)
Date: Sat, 07 Mar 2015 20:23:35 +0100 (CET)
Message-Id: <20150307.202335.1396112889606098938.mbj@tail-f.com>
To: rfc-editor@rfc-editor.org
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <20150307174534.222CC180205@rfc-editor.org>
References: <20150307174534.222CC180205@rfc-editor.org>
X-Mailer: Mew version 6.5 on Emacs 24.3 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/Pt3JXRm1v9ESK3s9FP3B21Rv000>
Cc: netmod@ietf.org, joelja@bogus.com, ccrusius@cisco.com
Subject: Re: [netmod] [Technical Errata Reported] RFC6020 (4292)
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: <http://www.ietf.org/mail-archive/web/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: Sat, 07 Mar 2015 19:23:08 -0000

RFC Errata System <rfc-editor@rfc-editor.org> wrote:
> The following errata report has been submitted for RFC6020,
> "YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)".
> 
> --------------------------------------
> You may review the report below and at:
> http://www.rfc-editor.org/errata_search.php?rfc=6020&eid=4292
> 
> --------------------------------------
> Type: Technical
> Reported by: Cesar Crusius <ccrusius@cisco.com>
> 
> Section: 12
> 
> Original Text
> -------------
>    type-stmt           = type-keyword sep identifier-ref-arg-str optsep
>                          (";" /
>                           "{" stmtsep
>                               type-body-stmts
>                           "}")
> 
> 
> Corrected Text
> --------------
>    type-stmt           = type-keyword sep identifier-ref-arg-str optsep
>                          (";" /
>                           "{" stmtsep
>                               [ type-body-stmts ]
>                           "}")

This is ok.  I will fix it also in draft-ietf-netmod-rfc6020bis-04.


/martin


> 
> 
> Notes
> -----
> Every statement that can end with a single ';' should also accept ending with '{ stmtsep }' (that is what the 'stmtend' rule implies). This is the only instance I found so far of a statement that does not follow this rule.
> 
> The other option would be to replace all ";" in rules like that with 'stmtend'.
> 
> Instructions:
> -------------
> This erratum is currently posted as "Reported". If necessary, please
> use "Reply All" to discuss whether it should be verified or
> rejected. When a decision is reached, the verifying party (IESG)
> can log in to change the status and edit the report, if necessary. 
> 
> --------------------------------------
> RFC6020 (draft-ietf-netmod-yang-13)
> --------------------------------------
> Title               : YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)
> Publication Date    : October 2010
> Author(s)           : M. Bjorklund, Ed.
> Category            : PROPOSED STANDARD
> Source              : NETCONF Data Modeling Language
> Area                : Operations and Management
> Stream              : IETF
> Verifying Party     : IESG
> 


From nobody Sun Mar  8 12:08:41 2015
Return-Path: <jhaas@slice.pfrc.org>
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 B625A1A00F8 for <netmod@ietfa.amsl.com>; Sun,  8 Mar 2015 12:08:38 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.122
X-Spam-Level: *
X-Spam-Status: No, score=1.122 tagged_above=-999 required=5 tests=[BAYES_50=0.8, IP_NOT_FRIENDLY=0.334, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=no
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 CLPW-TbEqR-Z for <netmod@ietfa.amsl.com>; Sun,  8 Mar 2015 12:08:38 -0700 (PDT)
Received: from slice.pfrc.org (slice.pfrc.org [67.207.130.108]) by ietfa.amsl.com (Postfix) with ESMTP id 0AE541A00F3 for <netmod@ietf.org>; Sun,  8 Mar 2015 12:08:38 -0700 (PDT)
Received: by slice.pfrc.org (Postfix, from userid 1001) id A29FDC1B4; Sun,  8 Mar 2015 15:08:37 -0400 (EDT)
Date: Sun, 8 Mar 2015 15:08:37 -0400
From: Jeffrey Haas <jhaas@pfrc.org>
To: Benoit Claise <bclaise@cisco.com>, NETMOD Working Group <netmod@ietf.org>,  draft-dong-i2rs-network-inventory@tools.ietf.org, "i2rs-chairs@tools.ietf.org" <i2rs-chairs@tools.ietf.org>
Message-ID: <20150308190837.GA12948@pfrc>
References: <54F985E2.6020304@cisco.com> <20150306110536.GA73575@elstar.local>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20150306110536.GA73575@elstar.local>
User-Agent: Mutt/1.5.21 (2010-09-15)
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/NFy24ef6r46DTn4gB6DaJD9qvks>
Subject: Re: [netmod] Inventory YANG model (entity-MIB)
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: <http://www.ietf.org/mail-archive/web/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: Sun, 08 Mar 2015 19:08:38 -0000

[speaking largely as a contributor and not i2rs-chair]

On Fri, Mar 06, 2015 at 12:05:36PM +0100, Juergen Schoenwaelder wrote:
> My first question is (perhaps not surprising) whether inventory falls
> into the I2RS charter, I2RS = interface to the routing system. That
> said, RFC 6643 gives you a read-only translation. There are not many
> read-write objects in the ENTITY-MIB so perhaps this is good enough
> for now. I guess it would help what I2RS needs to know in order to
> make the interface to the routing system work.

As discussed later in thread, having this work owned by netmod is fine with
I2RS.

The structure of the generic topology draft is leading to interesting
questions about how information present in that model can link to higher and
lower layers.  As seen in the I2RS presentations at the most recent interim,
this eventually leads to questions like "inventory".  I also raised the
question about tunnels which will lead to other models as well.

The fact that the IETF already has good models for some of these things, the
ENTITY-MIB as an example, is good.  However, simple conversion of MIBs to
yang modules are likely to result in models that are good MIB replacements,
but might not be well tailored to re-use elsewhere.  Since much of the
motivation is for re-use, re-use is the discussion I would suggest is most
important.

As an example, SNMP tables probably should be converted into yang groupings.
There's also the matter of indexing of such conversions may not be fully
appropriate for such re-use and alternate indexes may be helpful.

> PS: I personally would have preferred if generic topology and perhaps
>     inventory would have split off into a short-lived targeted WG
>     instead of doing all of this in I2RS but it seems leadership has
>     already decided that I2RS is the home for all of this.

[speaking as one of the i2rs-chairs]

Topology was one of the use cases that was in-charter and we're not looking
to significantly expand our charter work.  But one thing we've noted over
the life of the group is that there has been a lot of push for micro-WG to
be formed for various yang efforts.  I personally believe we're better off
with some owning WG taking on the task but handling it within the context of
a design team.  The overhead of a full WG is likely not merited.

Which WG the design team reports to is, of course, up for discussion.

-- Jeff


From nobody Sun Mar  8 13:02:43 2015
Return-Path: <jhaas@slice.pfrc.org>
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 260C81A012D; Sun,  8 Mar 2015 13:02:42 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.321
X-Spam-Level: 
X-Spam-Status: No, score=0.321 tagged_above=-999 required=5 tests=[BAYES_20=-0.001, IP_NOT_FRIENDLY=0.334, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=no
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 GAoeJ7hBV0hR; Sun,  8 Mar 2015 13:02:41 -0700 (PDT)
Received: from slice.pfrc.org (slice.pfrc.org [67.207.130.108]) by ietfa.amsl.com (Postfix) with ESMTP id 3E31A1A00FA; Sun,  8 Mar 2015 13:02:41 -0700 (PDT)
Received: by slice.pfrc.org (Postfix, from userid 1001) id F1959C1B4; Sun,  8 Mar 2015 16:02:40 -0400 (EDT)
Date: Sun, 8 Mar 2015 16:02:40 -0400
From: Jeffrey Haas <jhaas@pfrc.org>
To: i2rs@ietf.org, netmod@ietf.org, netconf@ietf.org
Message-ID: <20150308200240.GA14435@pfrc>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
User-Agent: Mutt/1.5.21 (2010-09-15)
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/0zwcsVmGajyql0RRoRm5SG6fcXw>
Subject: [netmod] Update to draft-haas-i2rs-netmod-netconf-requirements
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: <http://www.ietf.org/mail-archive/web/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: Sun, 08 Mar 2015 20:02:42 -0000

I've updated my personal tracking draft for I2RS requirements upon NETMOD
and NETCONF.  The primary changes are:
- To correct the NETCONF over SSH case which is believed to be complete - I
   had failed to read that RFC's security considerations section fully.
- I've removed the subscription section and pointed to the separate draft, 
  draft-ietf-i2rs-pub-sub-requirements.

The primary sticking point remains what to do about the ephemeral state.  At
IETF 91, we had volunteers willing to document what their ephemeral
implementations actually did rather than trying to invent our own.  However,
these individuals appear to have been consistently busy during that time
frame.  I'd like to use this email to prod them again to lend their efforts
on documenting their ephemeral implementations.

-- Jeff

----- Forwarded message from IETF Secretariat <ietf-secretariat-reply@ietf.org> -----

Date: Sun, 08 Mar 2015 12:43:40 -0700
From: IETF Secretariat <ietf-secretariat-reply@ietf.org>
To: jhaas@pfrc.org
Subject: Personal ID list of jhaas@pfrc.org notification: Changes on draft-haas-i2rs-netmod-netconf-requirements


Hello,

This is a notification from the Personal ID list of jhaas@pfrc.org.

Document: draft-haas-i2rs-netmod-netconf-requirements,
https://datatracker.ietf.org/doc/draft-haas-i2rs-netmod-netconf-requirements

Change:
New version available: *draft-haas-i2rs-netmod-netconf-requirements-01.txt*

Best regards,

        The datatracker draft tracking service
        (for the IETF Secretariat)

----- End forwarded message -----


From nobody Sun Mar  8 13:29:21 2015
Return-Path: <j.schoenwaelder@jacobs-university.de>
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 070601A00FA for <netmod@ietfa.amsl.com>; Sun,  8 Mar 2015 13:29:21 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.86
X-Spam-Level: 
X-Spam-Status: No, score=-3.86 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] 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 l-ALVZsXT3ED for <netmod@ietfa.amsl.com>; Sun,  8 Mar 2015 13:29:18 -0700 (PDT)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1B8FC1A00D8 for <netmod@ietf.org>; Sun,  8 Mar 2015 13:29:18 -0700 (PDT)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id 62D4AAC1; Sun,  8 Mar 2015 21:29:16 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.220]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id oLdFBFjtR726; Sun,  8 Mar 2015 21:29:06 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS; Sun,  8 Mar 2015 21:29:15 +0100 (CET)
Received: from localhost (demetrius2.jacobs-university.de [212.201.44.47]) by hermes.jacobs-university.de (Postfix) with ESMTP id 095332003D; Sun,  8 Mar 2015 21:29:15 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius2.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id WcvzTFAqn1t2; Sun,  8 Mar 2015 21:29:12 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id 694092003C; Sun,  8 Mar 2015 21:29:12 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id 6D28D32734B7; Sun,  8 Mar 2015 21:29:11 +0100 (CET)
Date: Sun, 8 Mar 2015 21:29:10 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Jeffrey Haas <jhaas@pfrc.org>
Message-ID: <20150308202910.GA2276@elstar.local>
Mail-Followup-To: Jeffrey Haas <jhaas@pfrc.org>, Benoit Claise <bclaise@cisco.com>, NETMOD Working Group <netmod@ietf.org>, draft-dong-i2rs-network-inventory@tools.ietf.org, "i2rs-chairs@tools.ietf.org" <i2rs-chairs@tools.ietf.org>
References: <54F985E2.6020304@cisco.com> <20150306110536.GA73575@elstar.local> <20150308190837.GA12948@pfrc>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20150308190837.GA12948@pfrc>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/cBm3DgZWTdQRGKgIZNaiKJykiaQ>
Cc: draft-dong-i2rs-network-inventory@tools.ietf.org, "i2rs-chairs@tools.ietf.org" <i2rs-chairs@tools.ietf.org>, NETMOD Working Group <netmod@ietf.org>
Subject: Re: [netmod] Inventory YANG model (entity-MIB)
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
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: <http://www.ietf.org/mail-archive/web/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: Sun, 08 Mar 2015 20:29:21 -0000

On Sun, Mar 08, 2015 at 03:08:37PM -0400, Jeffrey Haas wrote:
> [speaking largely as a contributor and not i2rs-chair]
> 
> On Fri, Mar 06, 2015 at 12:05:36PM +0100, Juergen Schoenwaelder wrote:
> > My first question is (perhaps not surprising) whether inventory falls
> > into the I2RS charter, I2RS = interface to the routing system. That
> > said, RFC 6643 gives you a read-only translation. There are not many
> > read-write objects in the ENTITY-MIB so perhaps this is good enough
> > for now. I guess it would help what I2RS needs to know in order to
> > make the interface to the routing system work.
> 
> As discussed later in thread, having this work owned by netmod is fine with
> I2RS.
> 
> The structure of the generic topology draft is leading to interesting
> questions about how information present in that model can link to higher and
> lower layers.  As seen in the I2RS presentations at the most recent interim,
> this eventually leads to questions like "inventory".  I also raised the
> question about tunnels which will lead to other models as well.
> 
> The fact that the IETF already has good models for some of these things, the
> ENTITY-MIB as an example, is good.  However, simple conversion of MIBs to
> yang modules are likely to result in models that are good MIB replacements,
> but might not be well tailored to re-use elsewhere.  Since much of the
> motivation is for re-use, re-use is the discussion I would suggest is most
> important.
> 
> As an example, SNMP tables probably should be converted into yang groupings.
> There's also the matter of indexing of such conversions may not be fully
> appropriate for such re-use and alternate indexes may be helpful.

Nobody is insisting on an SNMP translation but whatever is done better
allows export via the ENTITY-MIB as well - things need to be aligned
at least. I note that many of the things you mention are not part of
draft-dong-i2rs-network-inventory-00.txt either.

> > PS: I personally would have preferred if generic topology and perhaps
> >     inventory would have split off into a short-lived targeted WG
> >     instead of doing all of this in I2RS but it seems leadership has
> >     already decided that I2RS is the home for all of this.
> 
> [speaking as one of the i2rs-chairs]
> 
> Topology was one of the use cases that was in-charter and we're not looking
> to significantly expand our charter work.  But one thing we've noted over
> the life of the group is that there has been a lot of push for micro-WG to
> be formed for various yang efforts.  I personally believe we're better off
> with some owning WG taking on the task but handling it within the context of
> a design team.  The overhead of a full WG is likely not merited.
> 
> Which WG the design team reports to is, of course, up for discussion.
>

What was in the original I2RS charter was routing topology export
(read-only). Going from there to a generic topology model (which
likely should not be limited to config false) is quite a step. I
personally find it sub-optimal to do the generic model in WG A and
several extensions of the generic model in WG B plus some more
extensions in WG C, most likely crossing IETF areas. The coordination
resulting from this will most likely slow things down.

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Sun Mar  8 13:42:06 2015
Return-Path: <andy@yumaworks.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 211171A0137 for <netmod@ietfa.amsl.com>; Sun,  8 Mar 2015 13:42:05 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.979
X-Spam-Level: 
X-Spam-Status: No, score=-1.979 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] 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 NApHM1buk3Am for <netmod@ietfa.amsl.com>; Sun,  8 Mar 2015 13:42:03 -0700 (PDT)
Received: from mail-lb0-f177.google.com (mail-lb0-f177.google.com [209.85.217.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D7EE21A0123 for <netmod@ietf.org>; Sun,  8 Mar 2015 13:42:00 -0700 (PDT)
Received: by lbiz11 with SMTP id z11so41287588lbi.13 for <netmod@ietf.org>; Sun, 08 Mar 2015 13:41:59 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=hPKoBQr0rj//f2H0TFCuK4AGTEUUXK95tFAPG9qfbNA=; b=aP1rpQXSXR89TgpslJAzxi7YUhM/dgFMdcf7CKAbDd0n4aewKe1A+xNDGXwtA/wacK nWEwsZksIfptsAGgT40+zIcI1ChamGDJg1r9bhKwlTXfpXZkdNTLZKhFOWWCQOBdHvwg 1CW1PqhVhdf4mcVElPuR/VZzsxAgBl6GAXcM4FTgrOfPz1JlnzJEQFmGcCYKfiWt2bZX qvOaxVCf32VsISxYQcKEjWTmTIrrm81jdmAteXQL51hlbmnAQDCZ2o3h0Rt4UhluGULT z9F9irzpVffHix36QsysFWYDYhBGUozyq9jHSAmQXS8F8kAmHsqSy1GBCWE7SO0P7Gja Hi7A==
X-Gm-Message-State: ALoCoQn6arsNwaZUhDh5VtMMAZMX7YM73fmxkxUCchZxLr9ef8+ivBhZe4EArSLzdU8UCVMojoYQ
MIME-Version: 1.0
X-Received: by 10.152.243.4 with SMTP id wu4mr22764130lac.33.1425847319294; Sun, 08 Mar 2015 13:41:59 -0700 (PDT)
Received: by 10.112.144.36 with HTTP; Sun, 8 Mar 2015 13:41:59 -0700 (PDT)
In-Reply-To: <54F9B4EF.1060702@cisco.com>
References: <54F985E2.6020304@cisco.com> <20150306110536.GA73575@elstar.local> <0e7201d05804$2ef8dfc0$8cea9f40$@ndzh.com> <20150306133808.GB74093@elstar.local> <54F9B4EF.1060702@cisco.com>
Date: Sun, 8 Mar 2015 13:41:59 -0700
Message-ID: <CABCOCHRBmiarfoSV5E44=JV6U9V1KUbsZE-12r29PS0g3R-ChA@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Benoit Claise <bclaise@cisco.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/hsTOj9J9MHHOxtbTGsQee63FYdM>
Cc: draft-dong-i2rs-network-inventory@tools.ietf.org, "i2rs-chairs@tools.ietf.org" <i2rs-chairs@tools.ietf.org>, NETMOD Working Group <netmod@ietf.org>, Susan Hares <shares@ndzh.com>
Subject: Re: [netmod] Inventory YANG model (entity-MIB)
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: <http://www.ietf.org/mail-archive/web/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: Sun, 08 Mar 2015 20:42:05 -0000

On Fri, Mar 6, 2015 at 6:08 AM, Benoit Claise <bclaise@cisco.com> wrote:
> Dear all,
>>
>> On Fri, Mar 06, 2015 at 06:53:37AM -0500, Susan Hares wrote:
>>>
>>> As technical advisor, do you know if the Entity-MIB work scheduled for
>>> upgrading to a yang module?
>>
>> No.
>>
>>> If not, is there a working group where we could suggest an
>>> equivalent model.
>>
>> The NETMOD working group would likely be the first stop unless the
>> IESG wants to proceed with a more targetted approach.
>
> Let's make it clear for everybody.
> NETMOD is the place where an ENTITY-MIB based YANG model must happen.
> As J=C3=BCrgen points it out below, the charter was modified for this typ=
e of
> work.
>
> So we discussed the WHERE, the next question is WHO?

I would be interested on working on the YANG version of the Entity MIB.
I think it should be updated so that SNMP agents can coexist with
the NETCONF/RESTCONF version with minimal or no impact
on existing instrumentation.

>
> Regards, Benoit (AD hat on)


Andy

>>
>> The NETMOD
>> charter says:
>>
>>     The NETMOD WG may also develop any additional data models written
>>     in YANG that the WG considers core building blocks and that do not
>>     fall under the charters of other active IETF working groups.
>>
>>> As to config true,  this Data model seems IMHO (jie may correct me) one
>>> of
>>> the I2RS model that wants to have ephemeral state but also change thing=
s
>>> in
>>> the data store.
>>
>> Ephemeral is kind of surprising for me.
>>
>> /js
>>
>
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod


From nobody Sun Mar  8 14:41:44 2015
Return-Path: <mjethanandani@gmail.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 277DE1A0173; Sun,  8 Mar 2015 14:41:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level: 
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9,  DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, SPF_PASS=-0.001] 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 TqtR4J3Gcx7T; Sun,  8 Mar 2015 14:41:38 -0700 (PDT)
Received: from mail-pd0-x231.google.com (mail-pd0-x231.google.com [IPv6:2607:f8b0:400e:c02::231]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4B3471A0154; Sun,  8 Mar 2015 14:41:38 -0700 (PDT)
Received: by pdjy10 with SMTP id y10so20285960pdj.12; Sun, 08 Mar 2015 14:41:37 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;  h=references:mime-version:in-reply-to:content-type :content-transfer-encoding:message-id:cc:from:subject:date:to; bh=QK7zVvHlFO0D/t8rjn0eWRs+4slqqkqalwAyOS8HTSc=; b=ynbE3U9lc81pUuQwI/kcEyWSwCq5+/fVwDDxysl0sgc0am+dJndq6rQ2FbiIq1V0lh zFAmqXyZnsUSacBpPgjHZpcDqmn2nPQB6xaGbrMcxxX7G4VONxZy5yKp20DQjQiLNMa9 22I0rrssKOKuVSBvykDPiYmTiyLU2xdjXWsV+gzPcYyT19pPWNeDt1kFb53u96xXoHcD guN3PpEzd+ubfYCX/xx9FWSOdT0v5eq/QpI+5HJ19l6DUUoJ2PbsMJKrz5elJbJS6Gra xZrH7mfFf3BYQmkgJN9dn94lKQVW9mGDICbJjdVuAvbQHdi7VZUNxoZetx3oxLtKfc+e urVA==
X-Received: by 10.66.145.41 with SMTP id sr9mr9687284pab.18.1425850896957; Sun, 08 Mar 2015 14:41:36 -0700 (PDT)
Received: from [10.102.145.87] ([166.170.38.255]) by mx.google.com with ESMTPSA id fx13sm15802652pdb.7.2015.03.08.14.41.35 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Sun, 08 Mar 2015 14:41:36 -0700 (PDT)
References: <20150308200240.GA14435@pfrc>
Mime-Version: 1.0 (1.0)
In-Reply-To: <20150308200240.GA14435@pfrc>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: quoted-printable
Message-Id: <D53C881D-71F3-4C6A-A458-E31F937707A5@gmail.com>
X-Mailer: iPhone Mail (11D257)
From: Mahesh Jethanandani <mjethanandani@gmail.com>
Date: Sun, 8 Mar 2015 14:41:32 -0700
To: Jeffrey Haas <jhaas@pfrc.org>
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/s5R3oGAb6ri25Lyt44RV4ddAbro>
Cc: "i2rs@ietf.org" <i2rs@ietf.org>, "netconf@ietf.org" <netconf@ietf.org>, "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] Update to draft-haas-i2rs-netmod-netconf-requirements
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: <http://www.ietf.org/mail-archive/web/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: Sun, 08 Mar 2015 21:41:40 -0000

[Speaking as contributor]

Jeff,

I must have missed the previous reminder or notification about where to add e=
phemeral requirements.=20

But would like to add the case which I described on the rtg-yang-coord maili=
ng list. Basically there is a requirement that certain configurations should=
 not be stored in a running configuration but could be saved in ephemeral da=
ta store. Example - loop back configuration on a interface. Can be configure=
d but never stored in a startup configuration.=20

This might be different from i2rs requirements in that the configuration is m=
arked for not writable to a startup and remain as part of ephemeral store.=20=


Mahesh Jerhanandani
mjethanandani@gmail.com

> On Mar 8, 2015, at 1:02 PM, Jeffrey Haas <jhaas@pfrc.org> wrote:
>=20
> I've updated my personal tracking draft for I2RS requirements upon NETMOD
> and NETCONF.  The primary changes are:
> - To correct the NETCONF over SSH case which is believed to be complete - I=

>   had failed to read that RFC's security considerations section fully.
> - I've removed the subscription section and pointed to the separate draft,=
=20
>  draft-ietf-i2rs-pub-sub-requirements.
>=20
> The primary sticking point remains what to do about the ephemeral state.  A=
t
> IETF 91, we had volunteers willing to document what their ephemeral
> implementations actually did rather than trying to invent our own.  Howeve=
r,
> these individuals appear to have been consistently busy during that time
> frame.  I'd like to use this email to prod them again to lend their effort=
s
> on documenting their ephemeral implementations.
>=20
> -- Jeff
>=20
> ----- Forwarded message from IETF Secretariat <ietf-secretariat-reply@ietf=
.org> -----
>=20
> Date: Sun, 08 Mar 2015 12:43:40 -0700
> From: IETF Secretariat <ietf-secretariat-reply@ietf.org>
> To: jhaas@pfrc.org
> Subject: Personal ID list of jhaas@pfrc.org notification: Changes on draft=
-haas-i2rs-netmod-netconf-requirements
>=20
>=20
> Hello,
>=20
> This is a notification from the Personal ID list of jhaas@pfrc.org.
>=20
> Document: draft-haas-i2rs-netmod-netconf-requirements,
> https://datatracker.ietf.org/doc/draft-haas-i2rs-netmod-netconf-requiremen=
ts
>=20
> Change:
> New version available: *draft-haas-i2rs-netmod-netconf-requirements-01.txt=
*
>=20
> Best regards,
>=20
>        The datatracker draft tracking service
>        (for the IETF Secretariat)
>=20
> ----- End forwarded message -----
>=20
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod


From nobody Sun Mar  8 20:40:27 2015
Return-Path: <jie.dong@huawei.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 35A141A0AF7 for <netmod@ietfa.amsl.com>; Sun,  8 Mar 2015 20:40:25 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.21
X-Spam-Level: 
X-Spam-Status: No, score=-4.21 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01, WEIRD_PORT=0.001] 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 Dy5xRUFivNr3 for <netmod@ietfa.amsl.com>; Sun,  8 Mar 2015 20:40:23 -0700 (PDT)
Received: from lhrrgout.huawei.com (lhrrgout.huawei.com [194.213.3.17]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 62D101A09CF for <netmod@ietf.org>; Sun,  8 Mar 2015 20:40:21 -0700 (PDT)
Received: from 172.18.7.190 (EHLO lhreml403-hub.china.huawei.com) ([172.18.7.190]) by lhrrg01-dlp.huawei.com (MOS 4.3.7-GA FastPath queued) with ESMTP id BTK47977; Mon, 09 Mar 2015 03:40:19 +0000 (GMT)
Received: from NKGEML410-HUB.china.huawei.com (10.98.56.41) by lhreml403-hub.china.huawei.com (10.201.5.217) with Microsoft SMTP Server (TLS) id 14.3.158.1; Mon, 9 Mar 2015 03:40:18 +0000
Received: from NKGEML512-MBX.china.huawei.com ([169.254.7.106]) by nkgeml410-hub.china.huawei.com ([10.98.56.41]) with mapi id 14.03.0158.001; Mon, 9 Mar 2015 11:40:16 +0800
From: "Dongjie (Jimmy)" <jie.dong@huawei.com>
To: "Thomas D. Nadeau" <tnadeau@lucidvision.com>, Benoit Claise <bclaise@cisco.com>
Thread-Topic: [netmod] Inventory YANG model (entity-MIB)
Thread-Index: AQHQV/sWQ/8m3BSs+0WHTuyrX71fWp0OxN8AgAAQo4CAAARMAIAEor+g
Date: Mon, 9 Mar 2015 03:40:15 +0000
Message-ID: <76CD132C3ADEF848BD84D028D243C92733850607@nkgeml512-mbx.china.huawei.com>
References: <54F985E2.6020304@cisco.com> <20150306110536.GA73575@elstar.local> <54F997F5.8080500@cisco.com> <2D3BC67E-9B26-488E-BF4D-0FC899C3A8CA@lucidvision.com>
In-Reply-To: <2D3BC67E-9B26-488E-BF4D-0FC899C3A8CA@lucidvision.com>
Accept-Language: en-US, zh-CN
Content-Language: zh-CN
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [10.111.97.131]
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-CFilter-Loop: Reflected
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/x6w_q1xuLVg56bn2q5B4SzWXcTk>
Cc: "draft-dong-i2rs-network-inventory@tools.ietf.org" <draft-dong-i2rs-network-inventory@tools.ietf.org>, "i2rs-chairs@tools.ietf.org" <i2rs-chairs@tools.ietf.org>, NETMOD Working Group <netmod@ietf.org>
Subject: Re: [netmod] Inventory YANG model (entity-MIB)
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: <http://www.ietf.org/mail-archive/web/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, 09 Mar 2015 03:40:25 -0000

Hi Tom,=20

Happy to know that Netmod has interests on the inventory Yang model, and we=
 would be glad to move draft-dong-i2rs-network-inventory-00 to Netmod if it=
 is decided by the ADs and chairs.

Could we ask for a time slot of 10 mins to present the current inventory mo=
del draft and discuss the next-steps? Thanks.

Contributions and discussions on this model are welcome.

Best regards,
Jie

> -----Original Message-----
> From: netmod [mailto:netmod-bounces@ietf.org] On Behalf Of Thomas D.
> Nadeau
> Sent: Friday, March 06, 2015 8:21 PM
> To: Benoit Claise
> Cc: draft-dong-i2rs-network-inventory@tools.ietf.org;
> i2rs-chairs@tools.ietf.org; NETMOD Working Group
> Subject: Re: [netmod] Inventory YANG model (entity-MIB)
>=20
>=20
> > On Mar 6, 2015:7:05 AM, at 7:05 AM, Benoit Claise <bclaise@cisco.com>
> wrote:
> >
> > Hi J=FCrgen,
> >> On Fri, Mar 06, 2015 at 11:48:02AM +0100, Benoit Claise wrote:
> >>> Dear all,
> >>>
> >>> The I2RS interim meeting yesterday focused on topology.
> >>> Let me cut/paste a high level slide, with pointers to the relevant dr=
afts.
> >>>
> >>>
> >>> If interested, the meeting minutes are at
> >>> http://etherpad.tools.ietf.org:9000/p/i2rs-interim-march-5-2015-v-bl
> >>> uesheets
> >>>
> >>> Part of the inventory draft
> >>> (http://datatracker.ietf.org/doc/draft-dong-i2rs-network-inventory/)
> >>> discussion, the overlap with the ENTITY-MIB RFC 6933 was discussed
> >>> (and RFC 7223 btw).
> >>>
> >>>
> >>> The message was that I2RS should not re-invent something similar to
> >>> the ENTITY-MIB So, are you aware of any initiatives to "YANGify" the
> >>> ENTITY-MIB?
> >>> It's true that there is a way to translate MIB into YANG with RFC 664=
3.
> >>> This could be a good start. However, I wonder if a hand-written YANG
> >>> model that closely follows the entPhysical would not be more benefici=
al.
> >>> Is this something we should take on board in NETMOD?
> >>>
> >>> What do you think?
> >>>
> >>> Note: As commented by the I2RS people, indexing is appropriate in
> >>> the MIB module for its original purpose, but may not be for the topol=
ogy.
> >>> I'm not sure we want to change the indexing just for the topology,
> >>> but the integration within the topology draft should be thought of.
> >>>
> >> My first question is (perhaps not surprising) whether inventory falls
> >> into the I2RS charter, I2RS =3D interface to the routing system.
> > No it doesn't.
> > As mentioned during the interim yesterday by the I2RS people, they woul=
d be
> happy if the inventory work be done somewhere else. Hence this email thre=
ad. I
> believe this work should be picked up by NETMOD .
>=20
> 	I agree with Juergen's assessment; this seems like it should be done in
> NETMOD. We should figure out a way to leverage the entity MIB but given t=
hat
> module's age, we should also be open to updates because the world has
> changed since that was published.
>=20
> 	So there is a wider question as Juergen asked at the end of the thread:
> should here be a concentrated effort to do topology/inventory that applie=
s to
> all areas ?  I'd say yes.  While not a super complicated, long effort, th=
is is
> something that needs to be done in a way that it applies to more than jus=
t the
> use cases of a specific routing use case.  With that in mind, its importa=
nt to get
> the network operators involved on this effort so that this is not done in=
 a
> vendor vacuum.
>=20
> 	Speaking as an individual, I will point out that the topology model that=
 I've
> worked on with Jan et al you can see the approach taken on network topolo=
gy.
> This has been implemented in ODL, which means its being tried in producti=
on
> environments right now and works quite well:
>=20
> http://www.ietf.org/archive/id/draft-medved-i2rs-topology-im-01.txt
>=20
> 	Another data point here. Shane and others have been been clear that an
> inventory is needed and how it is a bit different than network topology a=
s
> specified above, but that it should be consistent in certain places too:
>=20
> https://datatracker.ietf.org/doc/draft-amante-i2rs-topology-use-cases/
>=20
> 	--Tom
>=20
>=20
> > That
> >> said, RFC 6643 gives you a read-only translation. There are not many
> >> read-write objects in the ENTITY-MIB so perhaps this is good enough
> >> for now. I guess it would help what I2RS needs to know in order to
> >> make the interface to the routing system work.
> >>
> >> Anyway, if YANG models overlapping the ENTITY-MIB are done, they they
> >> should at least allow implementation of both in a predictable manner.
> >> Looking at draft-dong-i2rs-network-inventory-00, it seems the whole
> >> interface list is already covered by RFC 7223 and interfaces should
> >> be references not repeated (this is what the ENTITY-MIB does).
> > Yes, I made that point.
> > Similarly, this draft should reference a inventory YANG model
> >
> >> So what is
> >> left is essentially a (not yet hierarchy) of 'cards' that seem to
> >> more or less match the entPhysicalTable of the ENTITY-MIB (but then
> >> the ENTITY-MIB has a more flexible model that distinguishes between
> >> different kind of hardware components).
> >> I also notice that the model
> >> in draft-dong-i2rs-network-inventory-00 is config true - so I am not
> >> sure how this is supposed to use.
> >> Is the idea that this model is an
> >> interface to an inventory database where I configure what I have
> >> instead of a model sitting on a device where I can query what the
> >> device actually has?
> >>
> >> /js
> > Regards, Benoit
> >>
> >> PS: I personally would have preferred if generic topology and perhaps
> >>     inventory would have split off into a short-lived targeted WG
> >>     instead of doing all of this in I2RS but it seems leadership has
> >>     already decided that I2RS is the home for all of this.
> >>
> >
> > _______________________________________________
> > netmod mailing list
> > netmod@ietf.org
> > https://www.ietf.org/mailman/listinfo/netmod
> >
>=20
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod


From nobody Mon Mar  9 02:05:33 2015
Return-Path: <dromasca@avaya.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 63D271A874C for <netmod@ietfa.amsl.com>; Mon,  9 Mar 2015 02:05:32 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.91
X-Spam-Level: 
X-Spam-Status: No, score=-6.91 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, T_RP_MATCHES_RCVD=-0.01] 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 tBL3D7I9DQND for <netmod@ietfa.amsl.com>; Mon,  9 Mar 2015 02:05:30 -0700 (PDT)
Received: from de307622-de-outbound.net.avaya.com (de307622-de-outbound.net.avaya.com [198.152.71.100]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5F3291A8749 for <netmod@ietf.org>; Mon,  9 Mar 2015 02:05:30 -0700 (PDT)
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AsoKAMxh/VSHCzIm/2dsb2JhbABagmQigSwEgwasRwEBAQEBAQaMeotuAhyBDE0BAQEBAQF8hA8BAQEBAgESERFFDAQCAQgNCAUCBh0DAgICMBQBEAIEAQ0FCBqIBQgBnRiKS5scAQEBAQEBBAEBAQEBAQEBARmBIYRphQ2EPTEHgmgvgRYFkA+QXoxpI4Nub4FEfwEBAQ
X-IronPort-AV: E=Sophos;i="5.11,366,1422939600"; d="scan'208";a="94066594"
Received: from unknown (HELO p-us1-erheast-smtpauth.us1.avaya.com) ([135.11.50.38]) by de307622-de-outbound.net.avaya.com with ESMTP; 09 Mar 2015 05:05:26 -0400
X-OutboundMail_SMTP: 1
Received: from unknown (HELO AZ-FFEXHC03.global.avaya.com) ([135.64.58.13]) by p-us1-erheast-out.us1.avaya.com with ESMTP/TLS/AES128-SHA; 09 Mar 2015 05:05:25 -0400
Received: from AZ-FFEXMB04.global.avaya.com ([fe80::6db7:b0af:8480:c126]) by AZ-FFEXHC03.global.avaya.com ([135.64.58.13]) with mapi id 14.03.0174.001; Mon, 9 Mar 2015 05:05:23 -0400
From: "Romascanu, Dan (Dan)" <dromasca@avaya.com>
To: Andy Bierman <andy@yumaworks.com>, Benoit Claise <bclaise@cisco.com>
Thread-Topic: [netmod] Inventory YANG model (entity-MIB)
Thread-Index: AQHQWeBS2pt+CSiZ10GirYtVmQm4NZ0T3FSA
Date: Mon, 9 Mar 2015 09:05:23 +0000
Message-ID: <9904FB1B0159DA42B0B887B7FA8119CA5C9BB090@AZ-FFEXMB04.global.avaya.com>
References: <54F985E2.6020304@cisco.com> <20150306110536.GA73575@elstar.local> <0e7201d05804$2ef8dfc0$8cea9f40$@ndzh.com> <20150306133808.GB74093@elstar.local> <54F9B4EF.1060702@cisco.com> <CABCOCHRBmiarfoSV5E44=JV6U9V1KUbsZE-12r29PS0g3R-ChA@mail.gmail.com>
In-Reply-To: <CABCOCHRBmiarfoSV5E44=JV6U9V1KUbsZE-12r29PS0g3R-ChA@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [135.64.58.48]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/BibwecUfkoC05dTaOjjBtjiMl6Y>
Cc: "draft-dong-i2rs-network-inventory@tools.ietf.org" <draft-dong-i2rs-network-inventory@tools.ietf.org>, "i2rs-chairs@tools.ietf.org" <i2rs-chairs@tools.ietf.org>, Susan Hares <shares@ndzh.com>, NETMOD Working Group <netmod@ietf.org>
Subject: Re: [netmod] Inventory YANG model (entity-MIB)
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: <http://www.ietf.org/mail-archive/web/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, 09 Mar 2015 09:05:32 -0000

KzENCg0KRGFuDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogbmV0bW9k
IFttYWlsdG86bmV0bW9kLWJvdW5jZXNAaWV0Zi5vcmddIE9uIEJlaGFsZiBPZiBBbmR5DQo+IEJp
ZXJtYW4NCg0KPiANCj4gSSB3b3VsZCBiZSBpbnRlcmVzdGVkIG9uIHdvcmtpbmcgb24gdGhlIFlB
TkcgdmVyc2lvbiBvZiB0aGUgRW50aXR5IE1JQi4NCj4gSSB0aGluayBpdCBzaG91bGQgYmUgdXBk
YXRlZCBzbyB0aGF0IFNOTVAgYWdlbnRzIGNhbiBjb2V4aXN0IHdpdGggdGhlDQo+IE5FVENPTkYv
UkVTVENPTkYgdmVyc2lvbiB3aXRoIG1pbmltYWwgb3Igbm8gaW1wYWN0IG9uIGV4aXN0aW5nDQo+
IGluc3RydW1lbnRhdGlvbi4NCj4gDQoNCg==


From nobody Mon Mar  9 02:29:21 2015
Return-Path: <tnadeau@lucidvision.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 859C41A875E for <netmod@ietfa.amsl.com>; Mon,  9 Mar 2015 02:29:20 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.895
X-Spam-Level: 
X-Spam-Status: No, score=0.895 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FH_RELAY_NODNS=1.451, HELO_MISMATCH_COM=0.553, RDNS_NONE=0.793, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=no
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 6xH6P8iCEjLF for <netmod@ietfa.amsl.com>; Mon,  9 Mar 2015 02:29:19 -0700 (PDT)
Received: from lucidvision.com (unknown [50.255.148.178]) by ietfa.amsl.com (Postfix) with ESMTP id 343CB1A8747 for <netmod@ietf.org>; Mon,  9 Mar 2015 02:29:19 -0700 (PDT)
Received: from [172.100.101.67] (burl-mse-71-255-129-12.static.ngn.east.myfairpoint.net [71.255.129.12]) by lucidvision.com (Postfix) with ESMTP id 7F5053012E86; Mon,  9 Mar 2015 05:29:18 -0400 (EDT)
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0 (1.0)
From: Thomas Nadeau <tnadeau@lucidvision.com>
X-Mailer: iPhone Mail (12B466)
In-Reply-To: <9904FB1B0159DA42B0B887B7FA8119CA5C9BB090@AZ-FFEXMB04.global.avaya.com>
Date: Mon, 9 Mar 2015 05:29:17 -0400
Content-Transfer-Encoding: quoted-printable
Message-Id: <2A12782F-F3D3-4A1E-A35D-501FCF31A7DE@lucidvision.com>
References: <54F985E2.6020304@cisco.com> <20150306110536.GA73575@elstar.local> <0e7201d05804$2ef8dfc0$8cea9f40$@ndzh.com> <20150306133808.GB74093@elstar.local> <54F9B4EF.1060702@cisco.com> <CABCOCHRBmiarfoSV5E44=JV6U9V1KUbsZE-12r29PS0g3R-ChA@mail.gmail.com> <9904FB1B0159DA42B0B887B7FA8119CA5C9BB090@AZ-FFEXMB04.global.avaya.com>
To: "Romascanu, Dan (Dan)" <dromasca@avaya.com>
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/Aiyn85jvZ10CrED806Fz08uSSFU>
Cc: NETMOD Working Group <netmod@ietf.org>, "draft-dong-i2rs-network-inventory@tools.ietf.org" <draft-dong-i2rs-network-inventory@tools.ietf.org>, "i2rs-chairs@tools.ietf.org" <i2rs-chairs@tools.ietf.org>, Susan Hares <shares@ndzh.com>
Subject: Re: [netmod] Inventory YANG model (entity-MIB)
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: <http://www.ietf.org/mail-archive/web/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, 09 Mar 2015 09:29:20 -0000

Speaking as cochair, I'd encourage you to produce a draft. There seems to be=
 good WG support to do this.

 If you need any support beyond andy's help please let me know.

Tom=20



> On Mar 9, 2015, at 5:05 AM, Romascanu, Dan (Dan) <dromasca@avaya.com> wrot=
e:
>=20
> +1
>=20
> Dan
>=20
>> -----Original Message-----
>> From: netmod [mailto:netmod-bounces@ietf.org] On Behalf Of Andy
>> Bierman
>=20
>>=20
>> I would be interested on working on the YANG version of the Entity MIB.
>> I think it should be updated so that SNMP agents can coexist with the
>> NETCONF/RESTCONF version with minimal or no impact on existing
>> instrumentation.
>=20
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod
>=20


From nobody Mon Mar  9 02:31:36 2015
Return-Path: <tnadeau@lucidvision.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 2A6211A8767 for <netmod@ietfa.amsl.com>; Mon,  9 Mar 2015 02:31:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.896
X-Spam-Level: 
X-Spam-Status: No, score=0.896 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FH_RELAY_NODNS=1.451, HELO_MISMATCH_COM=0.553, RDNS_NONE=0.793, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, WEIRD_PORT=0.001] autolearn=no
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 jNJJg745suIY for <netmod@ietfa.amsl.com>; Mon,  9 Mar 2015 02:31:33 -0700 (PDT)
Received: from lucidvision.com (unknown [50.255.148.178]) by ietfa.amsl.com (Postfix) with ESMTP id 4D7BB1A8761 for <netmod@ietf.org>; Mon,  9 Mar 2015 02:31:33 -0700 (PDT)
Received: from [172.100.101.67] (burl-mse-71-255-129-12.static.ngn.east.myfairpoint.net [71.255.129.12]) by lucidvision.com (Postfix) with ESMTP id A209B3012F48; Mon,  9 Mar 2015 05:31:32 -0400 (EDT)
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (1.0)
From: Thomas Nadeau <tnadeau@lucidvision.com>
X-Mailer: iPhone Mail (12B466)
In-Reply-To: <76CD132C3ADEF848BD84D028D243C92733850607@nkgeml512-mbx.china.huawei.com>
Date: Mon, 9 Mar 2015 05:31:31 -0400
Content-Transfer-Encoding: quoted-printable
Message-Id: <3E35D324-B237-43E0-B1B0-9099600A42FA@lucidvision.com>
References: <54F985E2.6020304@cisco.com> <20150306110536.GA73575@elstar.local> <54F997F5.8080500@cisco.com> <2D3BC67E-9B26-488E-BF4D-0FC899C3A8CA@lucidvision.com> <76CD132C3ADEF848BD84D028D243C92733850607@nkgeml512-mbx.china.huawei.com>
To: "Dongjie (Jimmy)" <jie.dong@huawei.com>
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/GNLh-9lj1PdqT1sD7Fl6bSUROc0>
Cc: "draft-dong-i2rs-network-inventory@tools.ietf.org" <draft-dong-i2rs-network-inventory@tools.ietf.org>, "i2rs-chairs@tools.ietf.org" <i2rs-chairs@tools.ietf.org>, NETMOD Working Group <netmod@ietf.org>
Subject: Re: [netmod] Inventory YANG model (entity-MIB)
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: <http://www.ietf.org/mail-archive/web/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, 09 Mar 2015 09:31:35 -0000

I'll add you to the agenda.



> On Mar 8, 2015, at 11:40 PM, Dongjie (Jimmy) <jie.dong@huawei.com> wrote:
>=20
> Hi Tom,=20
>=20
> Happy to know that Netmod has interests on the inventory Yang model, and w=
e would be glad to move draft-dong-i2rs-network-inventory-00 to Netmod if it=
 is decided by the ADs and chairs.
>=20
> Could we ask for a time slot of 10 mins to present the current inventory m=
odel draft and discuss the next-steps? Thanks.
>=20
> Contributions and discussions on this model are welcome.
>=20
> Best regards,
> Jie
>=20
>> -----Original Message-----
>> From: netmod [mailto:netmod-bounces@ietf.org] On Behalf Of Thomas D.
>> Nadeau
>> Sent: Friday, March 06, 2015 8:21 PM
>> To: Benoit Claise
>> Cc: draft-dong-i2rs-network-inventory@tools.ietf.org;
>> i2rs-chairs@tools.ietf.org; NETMOD Working Group
>> Subject: Re: [netmod] Inventory YANG model (entity-MIB)
>>=20
>>=20
>>>> On Mar 6, 2015:7:05 AM, at 7:05 AM, Benoit Claise <bclaise@cisco.com>
>>> wrote:
>>>=20
>>> Hi J=C3=BCrgen,
>>>>> On Fri, Mar 06, 2015 at 11:48:02AM +0100, Benoit Claise wrote:
>>>>> Dear all,
>>>>>=20
>>>>> The I2RS interim meeting yesterday focused on topology.
>>>>> Let me cut/paste a high level slide, with pointers to the relevant dra=
fts.
>>>>>=20
>>>>>=20
>>>>> If interested, the meeting minutes are at
>>>>> http://etherpad.tools.ietf.org:9000/p/i2rs-interim-march-5-2015-v-bl
>>>>> uesheets
>>>>>=20
>>>>> Part of the inventory draft
>>>>> (http://datatracker.ietf.org/doc/draft-dong-i2rs-network-inventory/)
>>>>> discussion, the overlap with the ENTITY-MIB RFC 6933 was discussed
>>>>> (and RFC 7223 btw).
>>>>>=20
>>>>>=20
>>>>> The message was that I2RS should not re-invent something similar to
>>>>> the ENTITY-MIB So, are you aware of any initiatives to "YANGify" the
>>>>> ENTITY-MIB?
>>>>> It's true that there is a way to translate MIB into YANG with RFC 6643=
.
>>>>> This could be a good start. However, I wonder if a hand-written YANG
>>>>> model that closely follows the entPhysical would not be more beneficia=
l.
>>>>> Is this something we should take on board in NETMOD?
>>>>>=20
>>>>> What do you think?
>>>>>=20
>>>>> Note: As commented by the I2RS people, indexing is appropriate in
>>>>> the MIB module for its original purpose, but may not be for the topolo=
gy.
>>>>> I'm not sure we want to change the indexing just for the topology,
>>>>> but the integration within the topology draft should be thought of.
>>>> My first question is (perhaps not surprising) whether inventory falls
>>>> into the I2RS charter, I2RS =3D interface to the routing system.
>>> No it doesn't.
>>> As mentioned during the interim yesterday by the I2RS people, they would=
 be
>> happy if the inventory work be done somewhere else. Hence this email thre=
ad. I
>> believe this work should be picked up by NETMOD .
>>=20
>>    I agree with Juergen's assessment; this seems like it should be done i=
n
>> NETMOD. We should figure out a way to leverage the entity MIB but given t=
hat
>> module's age, we should also be open to updates because the world has
>> changed since that was published.
>>=20
>>    So there is a wider question as Juergen asked at the end of the thread=
:
>> should here be a concentrated effort to do topology/inventory that applie=
s to
>> all areas ?  I'd say yes.  While not a super complicated, long effort, th=
is is
>> something that needs to be done in a way that it applies to more than jus=
t the
>> use cases of a specific routing use case.  With that in mind, its importa=
nt to get
>> the network operators involved on this effort so that this is not done in=
 a
>> vendor vacuum.
>>=20
>>    Speaking as an individual, I will point out that the topology model th=
at I've
>> worked on with Jan et al you can see the approach taken on network topolo=
gy.
>> This has been implemented in ODL, which means its being tried in producti=
on
>> environments right now and works quite well:
>>=20
>> http://www.ietf.org/archive/id/draft-medved-i2rs-topology-im-01.txt
>>=20
>>    Another data point here. Shane and others have been been clear that an=

>> inventory is needed and how it is a bit different than network topology a=
s
>> specified above, but that it should be consistent in certain places too:
>>=20
>> https://datatracker.ietf.org/doc/draft-amante-i2rs-topology-use-cases/
>>=20
>>    --Tom
>>=20
>>=20
>>> That
>>>> said, RFC 6643 gives you a read-only translation. There are not many
>>>> read-write objects in the ENTITY-MIB so perhaps this is good enough
>>>> for now. I guess it would help what I2RS needs to know in order to
>>>> make the interface to the routing system work.
>>>>=20
>>>> Anyway, if YANG models overlapping the ENTITY-MIB are done, they they
>>>> should at least allow implementation of both in a predictable manner.
>>>> Looking at draft-dong-i2rs-network-inventory-00, it seems the whole
>>>> interface list is already covered by RFC 7223 and interfaces should
>>>> be references not repeated (this is what the ENTITY-MIB does).
>>> Yes, I made that point.
>>> Similarly, this draft should reference a inventory YANG model
>>>=20
>>>> So what is
>>>> left is essentially a (not yet hierarchy) of 'cards' that seem to
>>>> more or less match the entPhysicalTable of the ENTITY-MIB (but then
>>>> the ENTITY-MIB has a more flexible model that distinguishes between
>>>> different kind of hardware components).
>>>> I also notice that the model
>>>> in draft-dong-i2rs-network-inventory-00 is config true - so I am not
>>>> sure how this is supposed to use.
>>>> Is the idea that this model is an
>>>> interface to an inventory database where I configure what I have
>>>> instead of a model sitting on a device where I can query what the
>>>> device actually has?
>>>>=20
>>>> /js
>>> Regards, Benoit
>>>>=20
>>>> PS: I personally would have preferred if generic topology and perhaps
>>>>    inventory would have split off into a short-lived targeted WG
>>>>    instead of doing all of this in I2RS but it seems leadership has
>>>>    already decided that I2RS is the home for all of this.
>>>=20
>>> _______________________________________________
>>> netmod mailing list
>>> netmod@ietf.org
>>> https://www.ietf.org/mailman/listinfo/netmod
>>=20
>> _______________________________________________
>> netmod mailing list
>> netmod@ietf.org
>> https://www.ietf.org/mailman/listinfo/netmod
>=20


From nobody Mon Mar  9 02:57:49 2015
Return-Path: <jie.dong@huawei.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 C2B331A876D for <netmod@ietfa.amsl.com>; Mon,  9 Mar 2015 02:57:48 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.21
X-Spam-Level: 
X-Spam-Status: No, score=-4.21 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01, WEIRD_PORT=0.001] 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 gHHpZNjeU6aO for <netmod@ietfa.amsl.com>; Mon,  9 Mar 2015 02:57:46 -0700 (PDT)
Received: from lhrrgout.huawei.com (lhrrgout.huawei.com [194.213.3.17]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 520631A8766 for <netmod@ietf.org>; Mon,  9 Mar 2015 02:57:45 -0700 (PDT)
Received: from 172.18.7.190 (EHLO lhreml401-hub.china.huawei.com) ([172.18.7.190]) by lhrrg02-dlp.huawei.com (MOS 4.3.7-GA FastPath queued) with ESMTP id BQA61581; Mon, 09 Mar 2015 09:57:43 +0000 (GMT)
Received: from NKGEML410-HUB.china.huawei.com (10.98.56.41) by lhreml401-hub.china.huawei.com (10.201.5.240) with Microsoft SMTP Server (TLS) id 14.3.158.1; Mon, 9 Mar 2015 09:57:42 +0000
Received: from NKGEML512-MBX.china.huawei.com ([169.254.7.106]) by nkgeml410-hub.china.huawei.com ([10.98.56.41]) with mapi id 14.03.0158.001; Mon, 9 Mar 2015 17:57:39 +0800
From: "Dongjie (Jimmy)" <jie.dong@huawei.com>
To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>, "Benoit Claise" <bclaise@cisco.com>
Thread-Topic: [netmod] Inventory YANG model (entity-MIB)
Thread-Index: AQHQV/sWQ/8m3BSs+0WHTuyrX71fWp0OxN8AgATBaDA=
Date: Mon, 9 Mar 2015 09:57:38 +0000
Message-ID: <76CD132C3ADEF848BD84D028D243C92733850B55@nkgeml512-mbx.china.huawei.com>
References: <54F985E2.6020304@cisco.com> <20150306110536.GA73575@elstar.local>
In-Reply-To: <20150306110536.GA73575@elstar.local>
Accept-Language: en-US, zh-CN
Content-Language: zh-CN
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [10.111.97.131]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-CFilter-Loop: Reflected
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/g97KP1Ap7jYZESfE9i6a8mvfXrw>
Cc: "draft-dong-i2rs-network-inventory@tools.ietf.org" <draft-dong-i2rs-network-inventory@tools.ietf.org>, "i2rs-chairs@tools.ietf.org" <i2rs-chairs@tools.ietf.org>, NETMOD Working Group <netmod@ietf.org>
Subject: Re: [netmod] Inventory YANG model (entity-MIB)
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: <http://www.ietf.org/mail-archive/web/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, 09 Mar 2015 09:57:49 -0000

Hi Juergen,=20

Thanks a lot for your comments. Please see some replies inline:

> -----Original Message-----
> From: netmod [mailto:netmod-bounces@ietf.org] On Behalf Of Juergen
> Schoenwaelder
> Sent: Friday, March 06, 2015 7:06 PM
> To: Benoit Claise
> Cc: draft-dong-i2rs-network-inventory@tools.ietf.org;
> i2rs-chairs@tools.ietf.org; NETMOD Working Group
> Subject: Re: [netmod] Inventory YANG model (entity-MIB)
>=20
> On Fri, Mar 06, 2015 at 11:48:02AM +0100, Benoit Claise wrote:
> > Dear all,
> >
> > The I2RS interim meeting yesterday focused on topology.
> > Let me cut/paste a high level slide, with pointers to the relevant draf=
ts.
> >
> >
> > If interested, the meeting minutes are at
> > http://etherpad.tools.ietf.org:9000/p/i2rs-interim-march-5-2015-v-blue
> > sheets
> >
> > Part of the inventory draft
> > (http://datatracker.ietf.org/doc/draft-dong-i2rs-network-inventory/)
> > discussion, the overlap with the ENTITY-MIB RFC 6933 was discussed
> > (and RFC 7223 btw).
> >
> >
> > The message was that I2RS should not re-invent something similar to
> > the ENTITY-MIB So, are you aware of any initiatives to "YANGify" the
> > ENTITY-MIB?
> > It's true that there is a way to translate MIB into YANG with RFC 6643.
> > This could be a good start. However, I wonder if a hand-written YANG
> > model that closely follows the entPhysical would not be more beneficial=
.
> > Is this something we should take on board in NETMOD?
> >
> > What do you think?
> >
> > Note: As commented by the I2RS people, indexing is appropriate in the
> > MIB module for its original purpose, but may not be for the topology.
> > I'm not sure we want to change the indexing just for the topology, but
> > the integration within the topology draft should be thought of.
> >
>=20
> My first question is (perhaps not surprising) whether inventory falls
> into the I2RS charter, I2RS =3D interface to the routing system. That
> said, RFC 6643 gives you a read-only translation. There are not many
> read-write objects in the ENTITY-MIB so perhaps this is good enough
> for now. I guess it would help what I2RS needs to know in order to
> make the interface to the routing system work.
>=20
> Anyway, if YANG models overlapping the ENTITY-MIB are done, they they
> should at least allow implementation of both in a predictable manner.

We will take a look at the ENTITY-MIB and see how to re-use and possibly up=
date the materials in that MIB.

> Looking at draft-dong-i2rs-network-inventory-00, it seems the whole
> interface list is already covered by RFC 7223 and interfaces should be
> references not repeated (this is what the ENTITY-MIB does).=20

Agreed, reference or augment the interface module is reasonable and will be=
 considered in next revision.

> So what is
> left is essentially a (not yet hierarchy) of 'cards' that seem to more
> or less match the entPhysicalTable of the ENTITY-MIB (but then the
> ENTITY-MIB has a more flexible model that distinguishes between
> different kind of hardware components).=20

Agree we can make this more generic for different types of network equipmen=
ts/components.

> I also notice that the model
> in draft-dong-i2rs-network-inventory-00 is config true - so I am not
> sure how this is supposed to use. Is the idea that this model is an
> interface to an inventory database where I configure what I have
> instead of a model sitting on a device where I can query what the
> device actually has?

The idea is that the inventory model not only can be used to query the info=
rmation and status of the device/components, but also can be used/augmented=
 to configure some generic and protocol-independent functions on the device=
/components.=20

Best regards,
Jie

>=20
> /js
>=20
> PS: I personally would have preferred if generic topology and perhaps
>     inventory would have split off into a short-lived targeted WG
>     instead of doing all of this in I2RS but it seems leadership has
>     already decided that I2RS is the home for all of this.
>=20
> --
> Juergen Schoenwaelder           Jacobs University Bremen gGmbH
> Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
> Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>
>=20
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod


From nobody Mon Mar  9 02:59:53 2015
Return-Path: <jie.dong@huawei.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 4542D1A8726 for <netmod@ietfa.amsl.com>; Mon,  9 Mar 2015 02:59:51 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.21
X-Spam-Level: 
X-Spam-Status: No, score=-4.21 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01, WEIRD_PORT=0.001] 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 gdtoOivJDmpB for <netmod@ietfa.amsl.com>; Mon,  9 Mar 2015 02:59:44 -0700 (PDT)
Received: from lhrrgout.huawei.com (lhrrgout.huawei.com [194.213.3.17]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 361BD1A8759 for <netmod@ietf.org>; Mon,  9 Mar 2015 02:59:43 -0700 (PDT)
Received: from 172.18.7.190 (EHLO lhreml402-hub.china.huawei.com) ([172.18.7.190]) by lhrrg02-dlp.huawei.com (MOS 4.3.7-GA FastPath queued) with ESMTP id BQA61839; Mon, 09 Mar 2015 09:59:41 +0000 (GMT)
Received: from NKGEML406-HUB.china.huawei.com (10.98.56.37) by lhreml402-hub.china.huawei.com (10.201.5.241) with Microsoft SMTP Server (TLS) id 14.3.158.1; Mon, 9 Mar 2015 09:59:41 +0000
Received: from NKGEML512-MBX.china.huawei.com ([169.254.7.106]) by nkgeml406-hub.china.huawei.com ([10.98.56.37]) with mapi id 14.03.0158.001; Mon, 9 Mar 2015 17:59:36 +0800
From: "Dongjie (Jimmy)" <jie.dong@huawei.com>
To: Thomas Nadeau <tnadeau@lucidvision.com>
Thread-Topic: [netmod] Inventory YANG model (entity-MIB)
Thread-Index: AQHQV/sWQ/8m3BSs+0WHTuyrX71fWp0OxN8AgAAQo4CAAARMAIAEor+g///lB4CAAI200A==
Date: Mon, 9 Mar 2015 09:59:35 +0000
Message-ID: <76CD132C3ADEF848BD84D028D243C92733850B68@nkgeml512-mbx.china.huawei.com>
References: <54F985E2.6020304@cisco.com> <20150306110536.GA73575@elstar.local> <54F997F5.8080500@cisco.com> <2D3BC67E-9B26-488E-BF4D-0FC899C3A8CA@lucidvision.com> <76CD132C3ADEF848BD84D028D243C92733850607@nkgeml512-mbx.china.huawei.com> <3E35D324-B237-43E0-B1B0-9099600A42FA@lucidvision.com>
In-Reply-To: <3E35D324-B237-43E0-B1B0-9099600A42FA@lucidvision.com>
Accept-Language: en-US, zh-CN
Content-Language: zh-CN
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [10.111.97.131]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-CFilter-Loop: Reflected
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/KvFNlKxwrCSHZNn5bX5Y8IGb6cU>
Cc: "draft-dong-i2rs-network-inventory@tools.ietf.org" <draft-dong-i2rs-network-inventory@tools.ietf.org>, "i2rs-chairs@tools.ietf.org" <i2rs-chairs@tools.ietf.org>, NETMOD Working Group <netmod@ietf.org>
Subject: Re: [netmod] Inventory YANG model (entity-MIB)
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: <http://www.ietf.org/mail-archive/web/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, 09 Mar 2015 09:59:51 -0000

SGkgVG9tLA0KDQpUaGFua3MgYSBsb3QuDQoNCi1KaWUNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3Nh
Z2UtLS0tLQ0KPiBGcm9tOiBUaG9tYXMgTmFkZWF1IFttYWlsdG86dG5hZGVhdUBsdWNpZHZpc2lv
bi5jb21dDQo+IFNlbnQ6IE1vbmRheSwgTWFyY2ggMDksIDIwMTUgNTozMiBQTQ0KPiBUbzogRG9u
Z2ppZSAoSmltbXkpDQo+IENjOiBCZW5vaXQgQ2xhaXNlOyBkcmFmdC1kb25nLWkycnMtbmV0d29y
ay1pbnZlbnRvcnlAdG9vbHMuaWV0Zi5vcmc7DQo+IGkycnMtY2hhaXJzQHRvb2xzLmlldGYub3Jn
OyBORVRNT0QgV29ya2luZyBHcm91cA0KPiBTdWJqZWN0OiBSZTogW25ldG1vZF0gSW52ZW50b3J5
IFlBTkcgbW9kZWwgKGVudGl0eS1NSUIpDQo+IA0KPiBJJ2xsIGFkZCB5b3UgdG8gdGhlIGFnZW5k
YS4NCj4gDQo+IA0KPiANCj4gPiBPbiBNYXIgOCwgMjAxNSwgYXQgMTE6NDAgUE0sIERvbmdqaWUg
KEppbW15KSA8amllLmRvbmdAaHVhd2VpLmNvbT4NCj4gd3JvdGU6DQo+ID4NCj4gPiBIaSBUb20s
DQo+ID4NCj4gPiBIYXBweSB0byBrbm93IHRoYXQgTmV0bW9kIGhhcyBpbnRlcmVzdHMgb24gdGhl
IGludmVudG9yeSBZYW5nIG1vZGVsLCBhbmQNCj4gd2Ugd291bGQgYmUgZ2xhZCB0byBtb3ZlIGRy
YWZ0LWRvbmctaTJycy1uZXR3b3JrLWludmVudG9yeS0wMCB0byBOZXRtb2QgaWYNCj4gaXQgaXMg
ZGVjaWRlZCBieSB0aGUgQURzIGFuZCBjaGFpcnMuDQo+ID4NCj4gPiBDb3VsZCB3ZSBhc2sgZm9y
IGEgdGltZSBzbG90IG9mIDEwIG1pbnMgdG8gcHJlc2VudCB0aGUgY3VycmVudCBpbnZlbnRvcnkg
bW9kZWwNCj4gZHJhZnQgYW5kIGRpc2N1c3MgdGhlIG5leHQtc3RlcHM/IFRoYW5rcy4NCj4gPg0K
PiA+IENvbnRyaWJ1dGlvbnMgYW5kIGRpc2N1c3Npb25zIG9uIHRoaXMgbW9kZWwgYXJlIHdlbGNv
bWUuDQo+ID4NCj4gPiBCZXN0IHJlZ2FyZHMsDQo+ID4gSmllDQo+ID4NCj4gPj4gLS0tLS1Pcmln
aW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJvbTogbmV0bW9kIFttYWlsdG86bmV0bW9kLWJvdW5j
ZXNAaWV0Zi5vcmddIE9uIEJlaGFsZiBPZiBUaG9tYXMgRC4NCj4gPj4gTmFkZWF1DQo+ID4+IFNl
bnQ6IEZyaWRheSwgTWFyY2ggMDYsIDIwMTUgODoyMSBQTQ0KPiA+PiBUbzogQmVub2l0IENsYWlz
ZQ0KPiA+PiBDYzogZHJhZnQtZG9uZy1pMnJzLW5ldHdvcmstaW52ZW50b3J5QHRvb2xzLmlldGYu
b3JnOw0KPiA+PiBpMnJzLWNoYWlyc0B0b29scy5pZXRmLm9yZzsgTkVUTU9EIFdvcmtpbmcgR3Jv
dXANCj4gPj4gU3ViamVjdDogUmU6IFtuZXRtb2RdIEludmVudG9yeSBZQU5HIG1vZGVsIChlbnRp
dHktTUlCKQ0KPiA+Pg0KPiA+Pg0KPiA+Pj4+IE9uIE1hciA2LCAyMDE1Ojc6MDUgQU0sIGF0IDc6
MDUgQU0sIEJlbm9pdCBDbGFpc2UNCj4gPj4+PiA8YmNsYWlzZUBjaXNjby5jb20+DQo+ID4+PiB3
cm90ZToNCj4gPj4+DQo+ID4+PiBIaSBKw7xyZ2VuLA0KPiA+Pj4+PiBPbiBGcmksIE1hciAwNiwg
MjAxNSBhdCAxMTo0ODowMkFNICswMTAwLCBCZW5vaXQgQ2xhaXNlIHdyb3RlOg0KPiA+Pj4+PiBE
ZWFyIGFsbCwNCj4gPj4+Pj4NCj4gPj4+Pj4gVGhlIEkyUlMgaW50ZXJpbSBtZWV0aW5nIHllc3Rl
cmRheSBmb2N1c2VkIG9uIHRvcG9sb2d5Lg0KPiA+Pj4+PiBMZXQgbWUgY3V0L3Bhc3RlIGEgaGln
aCBsZXZlbCBzbGlkZSwgd2l0aCBwb2ludGVycyB0byB0aGUgcmVsZXZhbnQgZHJhZnRzLg0KPiA+
Pj4+Pg0KPiA+Pj4+Pg0KPiA+Pj4+PiBJZiBpbnRlcmVzdGVkLCB0aGUgbWVldGluZyBtaW51dGVz
IGFyZSBhdA0KPiA+Pj4+PiBodHRwOi8vZXRoZXJwYWQudG9vbHMuaWV0Zi5vcmc6OTAwMC9wL2ky
cnMtaW50ZXJpbS1tYXJjaC01LTIwMTUtdi0NCj4gPj4+Pj4gYmwNCj4gPj4+Pj4gdWVzaGVldHMN
Cj4gPj4+Pj4NCj4gPj4+Pj4gUGFydCBvZiB0aGUgaW52ZW50b3J5IGRyYWZ0DQo+ID4+Pj4+ICho
dHRwOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2RyYWZ0LWRvbmctaTJycy1uZXR3b3JrLWlu
dmVudG9yeQ0KPiA+Pj4+PiAvKSBkaXNjdXNzaW9uLCB0aGUgb3ZlcmxhcCB3aXRoIHRoZSBFTlRJ
VFktTUlCIFJGQyA2OTMzIHdhcw0KPiA+Pj4+PiBkaXNjdXNzZWQgKGFuZCBSRkMgNzIyMyBidHcp
Lg0KPiA+Pj4+Pg0KPiA+Pj4+Pg0KPiA+Pj4+PiBUaGUgbWVzc2FnZSB3YXMgdGhhdCBJMlJTIHNo
b3VsZCBub3QgcmUtaW52ZW50IHNvbWV0aGluZyBzaW1pbGFyDQo+ID4+Pj4+IHRvIHRoZSBFTlRJ
VFktTUlCIFNvLCBhcmUgeW91IGF3YXJlIG9mIGFueSBpbml0aWF0aXZlcyB0bw0KPiA+Pj4+PiAi
WUFOR2lmeSIgdGhlIEVOVElUWS1NSUI/DQo+ID4+Pj4+IEl0J3MgdHJ1ZSB0aGF0IHRoZXJlIGlz
IGEgd2F5IHRvIHRyYW5zbGF0ZSBNSUIgaW50byBZQU5HIHdpdGggUkZDIDY2NDMuDQo+ID4+Pj4+
IFRoaXMgY291bGQgYmUgYSBnb29kIHN0YXJ0LiBIb3dldmVyLCBJIHdvbmRlciBpZiBhIGhhbmQt
d3JpdHRlbg0KPiA+Pj4+PiBZQU5HIG1vZGVsIHRoYXQgY2xvc2VseSBmb2xsb3dzIHRoZSBlbnRQ
aHlzaWNhbCB3b3VsZCBub3QgYmUgbW9yZQ0KPiBiZW5lZmljaWFsLg0KPiA+Pj4+PiBJcyB0aGlz
IHNvbWV0aGluZyB3ZSBzaG91bGQgdGFrZSBvbiBib2FyZCBpbiBORVRNT0Q/DQo+ID4+Pj4+DQo+
ID4+Pj4+IFdoYXQgZG8geW91IHRoaW5rPw0KPiA+Pj4+Pg0KPiA+Pj4+PiBOb3RlOiBBcyBjb21t
ZW50ZWQgYnkgdGhlIEkyUlMgcGVvcGxlLCBpbmRleGluZyBpcyBhcHByb3ByaWF0ZSBpbg0KPiA+
Pj4+PiB0aGUgTUlCIG1vZHVsZSBmb3IgaXRzIG9yaWdpbmFsIHB1cnBvc2UsIGJ1dCBtYXkgbm90
IGJlIGZvciB0aGUgdG9wb2xvZ3kuDQo+ID4+Pj4+IEknbSBub3Qgc3VyZSB3ZSB3YW50IHRvIGNo
YW5nZSB0aGUgaW5kZXhpbmcganVzdCBmb3IgdGhlIHRvcG9sb2d5LA0KPiA+Pj4+PiBidXQgdGhl
IGludGVncmF0aW9uIHdpdGhpbiB0aGUgdG9wb2xvZ3kgZHJhZnQgc2hvdWxkIGJlIHRob3VnaHQg
b2YuDQo+ID4+Pj4gTXkgZmlyc3QgcXVlc3Rpb24gaXMgKHBlcmhhcHMgbm90IHN1cnByaXNpbmcp
IHdoZXRoZXIgaW52ZW50b3J5DQo+ID4+Pj4gZmFsbHMgaW50byB0aGUgSTJSUyBjaGFydGVyLCBJ
MlJTID0gaW50ZXJmYWNlIHRvIHRoZSByb3V0aW5nIHN5c3RlbS4NCj4gPj4+IE5vIGl0IGRvZXNu
J3QuDQo+ID4+PiBBcyBtZW50aW9uZWQgZHVyaW5nIHRoZSBpbnRlcmltIHllc3RlcmRheSBieSB0
aGUgSTJSUyBwZW9wbGUsIHRoZXkNCj4gPj4+IHdvdWxkIGJlDQo+ID4+IGhhcHB5IGlmIHRoZSBp
bnZlbnRvcnkgd29yayBiZSBkb25lIHNvbWV3aGVyZSBlbHNlLiBIZW5jZSB0aGlzIGVtYWlsDQo+
ID4+IHRocmVhZC4gSSBiZWxpZXZlIHRoaXMgd29yayBzaG91bGQgYmUgcGlja2VkIHVwIGJ5IE5F
VE1PRCAuDQo+ID4+DQo+ID4+ICAgIEkgYWdyZWUgd2l0aCBKdWVyZ2VuJ3MgYXNzZXNzbWVudDsg
dGhpcyBzZWVtcyBsaWtlIGl0IHNob3VsZCBiZQ0KPiA+PiBkb25lIGluIE5FVE1PRC4gV2Ugc2hv
dWxkIGZpZ3VyZSBvdXQgYSB3YXkgdG8gbGV2ZXJhZ2UgdGhlIGVudGl0eSBNSUINCj4gPj4gYnV0
IGdpdmVuIHRoYXQgbW9kdWxlJ3MgYWdlLCB3ZSBzaG91bGQgYWxzbyBiZSBvcGVuIHRvIHVwZGF0
ZXMNCj4gPj4gYmVjYXVzZSB0aGUgd29ybGQgaGFzIGNoYW5nZWQgc2luY2UgdGhhdCB3YXMgcHVi
bGlzaGVkLg0KPiA+Pg0KPiA+PiAgICBTbyB0aGVyZSBpcyBhIHdpZGVyIHF1ZXN0aW9uIGFzIEp1
ZXJnZW4gYXNrZWQgYXQgdGhlIGVuZCBvZiB0aGUgdGhyZWFkOg0KPiA+PiBzaG91bGQgaGVyZSBi
ZSBhIGNvbmNlbnRyYXRlZCBlZmZvcnQgdG8gZG8gdG9wb2xvZ3kvaW52ZW50b3J5IHRoYXQNCj4g
Pj4gYXBwbGllcyB0byBhbGwgYXJlYXMgPyAgSSdkIHNheSB5ZXMuICBXaGlsZSBub3QgYSBzdXBl
ciBjb21wbGljYXRlZCwNCj4gPj4gbG9uZyBlZmZvcnQsIHRoaXMgaXMgc29tZXRoaW5nIHRoYXQg
bmVlZHMgdG8gYmUgZG9uZSBpbiBhIHdheSB0aGF0IGl0DQo+ID4+IGFwcGxpZXMgdG8gbW9yZSB0
aGFuIGp1c3QgdGhlIHVzZSBjYXNlcyBvZiBhIHNwZWNpZmljIHJvdXRpbmcgdXNlDQo+ID4+IGNh
c2UuICBXaXRoIHRoYXQgaW4gbWluZCwgaXRzIGltcG9ydGFudCB0byBnZXQgdGhlIG5ldHdvcmsg
b3BlcmF0b3JzDQo+ID4+IGludm9sdmVkIG9uIHRoaXMgZWZmb3J0IHNvIHRoYXQgdGhpcyBpcyBu
b3QgZG9uZSBpbiBhIHZlbmRvciB2YWN1dW0uDQo+ID4+DQo+ID4+ICAgIFNwZWFraW5nIGFzIGFu
IGluZGl2aWR1YWwsIEkgd2lsbCBwb2ludCBvdXQgdGhhdCB0aGUgdG9wb2xvZ3kNCj4gPj4gbW9k
ZWwgdGhhdCBJJ3ZlIHdvcmtlZCBvbiB3aXRoIEphbiBldCBhbCB5b3UgY2FuIHNlZSB0aGUgYXBw
cm9hY2ggdGFrZW4gb24NCj4gbmV0d29yayB0b3BvbG9neS4NCj4gPj4gVGhpcyBoYXMgYmVlbiBp
bXBsZW1lbnRlZCBpbiBPREwsIHdoaWNoIG1lYW5zIGl0cyBiZWluZyB0cmllZCBpbg0KPiA+PiBw
cm9kdWN0aW9uIGVudmlyb25tZW50cyByaWdodCBub3cgYW5kIHdvcmtzIHF1aXRlIHdlbGw6DQo+
ID4+DQo+ID4+IGh0dHA6Ly93d3cuaWV0Zi5vcmcvYXJjaGl2ZS9pZC9kcmFmdC1tZWR2ZWQtaTJy
cy10b3BvbG9neS1pbS0wMS50eHQNCj4gPj4NCj4gPj4gICAgQW5vdGhlciBkYXRhIHBvaW50IGhl
cmUuIFNoYW5lIGFuZCBvdGhlcnMgaGF2ZSBiZWVuIGJlZW4gY2xlYXINCj4gPj4gdGhhdCBhbiBp
bnZlbnRvcnkgaXMgbmVlZGVkIGFuZCBob3cgaXQgaXMgYSBiaXQgZGlmZmVyZW50IHRoYW4NCj4g
Pj4gbmV0d29yayB0b3BvbG9neSBhcyBzcGVjaWZpZWQgYWJvdmUsIGJ1dCB0aGF0IGl0IHNob3Vs
ZCBiZSBjb25zaXN0ZW50IGluDQo+IGNlcnRhaW4gcGxhY2VzIHRvbzoNCj4gPj4NCj4gPj4gaHR0
cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvZHJhZnQtYW1hbnRlLWkycnMtdG9wb2xvZ3kt
dXNlLWNhc2VzDQo+ID4+IC8NCj4gPj4NCj4gPj4gICAgLS1Ub20NCj4gPj4NCj4gPj4NCj4gPj4+
IFRoYXQNCj4gPj4+PiBzYWlkLCBSRkMgNjY0MyBnaXZlcyB5b3UgYSByZWFkLW9ubHkgdHJhbnNs
YXRpb24uIFRoZXJlIGFyZSBub3QNCj4gPj4+PiBtYW55IHJlYWQtd3JpdGUgb2JqZWN0cyBpbiB0
aGUgRU5USVRZLU1JQiBzbyBwZXJoYXBzIHRoaXMgaXMgZ29vZA0KPiA+Pj4+IGVub3VnaCBmb3Ig
bm93LiBJIGd1ZXNzIGl0IHdvdWxkIGhlbHAgd2hhdCBJMlJTIG5lZWRzIHRvIGtub3cgaW4NCj4g
Pj4+PiBvcmRlciB0byBtYWtlIHRoZSBpbnRlcmZhY2UgdG8gdGhlIHJvdXRpbmcgc3lzdGVtIHdv
cmsuDQo+ID4+Pj4NCj4gPj4+PiBBbnl3YXksIGlmIFlBTkcgbW9kZWxzIG92ZXJsYXBwaW5nIHRo
ZSBFTlRJVFktTUlCIGFyZSBkb25lLCB0aGV5DQo+ID4+Pj4gdGhleSBzaG91bGQgYXQgbGVhc3Qg
YWxsb3cgaW1wbGVtZW50YXRpb24gb2YgYm90aCBpbiBhIHByZWRpY3RhYmxlIG1hbm5lci4NCj4g
Pj4+PiBMb29raW5nIGF0IGRyYWZ0LWRvbmctaTJycy1uZXR3b3JrLWludmVudG9yeS0wMCwgaXQg
c2VlbXMgdGhlIHdob2xlDQo+ID4+Pj4gaW50ZXJmYWNlIGxpc3QgaXMgYWxyZWFkeSBjb3ZlcmVk
IGJ5IFJGQyA3MjIzIGFuZCBpbnRlcmZhY2VzIHNob3VsZA0KPiA+Pj4+IGJlIHJlZmVyZW5jZXMg
bm90IHJlcGVhdGVkICh0aGlzIGlzIHdoYXQgdGhlIEVOVElUWS1NSUIgZG9lcykuDQo+ID4+PiBZ
ZXMsIEkgbWFkZSB0aGF0IHBvaW50Lg0KPiA+Pj4gU2ltaWxhcmx5LCB0aGlzIGRyYWZ0IHNob3Vs
ZCByZWZlcmVuY2UgYSBpbnZlbnRvcnkgWUFORyBtb2RlbA0KPiA+Pj4NCj4gPj4+PiBTbyB3aGF0
IGlzDQo+ID4+Pj4gbGVmdCBpcyBlc3NlbnRpYWxseSBhIChub3QgeWV0IGhpZXJhcmNoeSkgb2Yg
J2NhcmRzJyB0aGF0IHNlZW0gdG8NCj4gPj4+PiBtb3JlIG9yIGxlc3MgbWF0Y2ggdGhlIGVudFBo
eXNpY2FsVGFibGUgb2YgdGhlIEVOVElUWS1NSUIgKGJ1dCB0aGVuDQo+ID4+Pj4gdGhlIEVOVElU
WS1NSUIgaGFzIGEgbW9yZSBmbGV4aWJsZSBtb2RlbCB0aGF0IGRpc3Rpbmd1aXNoZXMgYmV0d2Vl
bg0KPiA+Pj4+IGRpZmZlcmVudCBraW5kIG9mIGhhcmR3YXJlIGNvbXBvbmVudHMpLg0KPiA+Pj4+
IEkgYWxzbyBub3RpY2UgdGhhdCB0aGUgbW9kZWwNCj4gPj4+PiBpbiBkcmFmdC1kb25nLWkycnMt
bmV0d29yay1pbnZlbnRvcnktMDAgaXMgY29uZmlnIHRydWUgLSBzbyBJIGFtDQo+ID4+Pj4gbm90
IHN1cmUgaG93IHRoaXMgaXMgc3VwcG9zZWQgdG8gdXNlLg0KPiA+Pj4+IElzIHRoZSBpZGVhIHRo
YXQgdGhpcyBtb2RlbCBpcyBhbg0KPiA+Pj4+IGludGVyZmFjZSB0byBhbiBpbnZlbnRvcnkgZGF0
YWJhc2Ugd2hlcmUgSSBjb25maWd1cmUgd2hhdCBJIGhhdmUNCj4gPj4+PiBpbnN0ZWFkIG9mIGEg
bW9kZWwgc2l0dGluZyBvbiBhIGRldmljZSB3aGVyZSBJIGNhbiBxdWVyeSB3aGF0IHRoZQ0KPiA+
Pj4+IGRldmljZSBhY3R1YWxseSBoYXM/DQo+ID4+Pj4NCj4gPj4+PiAvanMNCj4gPj4+IFJlZ2Fy
ZHMsIEJlbm9pdA0KPiA+Pj4+DQo+ID4+Pj4gUFM6IEkgcGVyc29uYWxseSB3b3VsZCBoYXZlIHBy
ZWZlcnJlZCBpZiBnZW5lcmljIHRvcG9sb2d5IGFuZCBwZXJoYXBzDQo+ID4+Pj4gICAgaW52ZW50
b3J5IHdvdWxkIGhhdmUgc3BsaXQgb2ZmIGludG8gYSBzaG9ydC1saXZlZCB0YXJnZXRlZCBXRw0K
PiA+Pj4+ICAgIGluc3RlYWQgb2YgZG9pbmcgYWxsIG9mIHRoaXMgaW4gSTJSUyBidXQgaXQgc2Vl
bXMgbGVhZGVyc2hpcCBoYXMNCj4gPj4+PiAgICBhbHJlYWR5IGRlY2lkZWQgdGhhdCBJMlJTIGlz
IHRoZSBob21lIGZvciBhbGwgb2YgdGhpcy4NCj4gPj4+DQo+ID4+PiBfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiA+Pj4gbmV0bW9kIG1haWxpbmcgbGlz
dA0KPiA+Pj4gbmV0bW9kQGlldGYub3JnDQo+ID4+PiBodHRwczovL3d3dy5pZXRmLm9yZy9tYWls
bWFuL2xpc3RpbmZvL25ldG1vZA0KPiA+Pg0KPiA+PiBfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXw0KPiA+PiBuZXRtb2QgbWFpbGluZyBsaXN0DQo+ID4+IG5l
dG1vZEBpZXRmLm9yZw0KPiA+PiBodHRwczovL3d3dy5pZXRmLm9yZy9tYWlsbWFuL2xpc3RpbmZv
L25ldG1vZA0KPiA+DQo=


From nobody Mon Mar  9 10:24:30 2015
Return-Path: <andy@yumaworks.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 30F531A90DE for <netmod@ietfa.amsl.com>; Mon,  9 Mar 2015 10:24:25 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.979
X-Spam-Level: 
X-Spam-Status: No, score=-1.979 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] 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 ilNmZmqraG3e for <netmod@ietfa.amsl.com>; Mon,  9 Mar 2015 10:24:18 -0700 (PDT)
Received: from mail-la0-f53.google.com (mail-la0-f53.google.com [209.85.215.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 00E041A9088 for <netmod@ietf.org>; Mon,  9 Mar 2015 10:24:13 -0700 (PDT)
Received: by lams18 with SMTP id s18so10615255lam.9 for <netmod@ietf.org>; Mon, 09 Mar 2015 10:24:12 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:content-type; bh=h+L8N2cbikNYPwbZtgtLo0kjcqAg30owYVYQBA8N0cg=; b=TAclSTJ6B191zqGX+iVHL7MTU94kmUH+Fpb18ZfrANWqunF7Lz9rn3+ilvcz9PGPSj CJ/H061jsJ8G6msFYx7pOIGHTYC8SBgKZFBoOQVuCc4QDOkBCqzYKIKayr1gpzhCHbbG a0KUk8Fmehpv1r61zKpE6D0kFRkHzeEFhX/cEwN73yHUagXDmBHi+oueLgjmZYvGCQGE 7g9jdSx4+QQiVUbVW/xd99aEkyO8nMBiZcvgtir7Maz+4QQyIqrCzh6zGGisGvc9vTK2 /To1KzdpmcJU8k7Dgxt9N9vj0m526wU8A2KGmZlOdvsxwnUDGdcMF3tYrPubjkHpVrYt F2Hw==
X-Gm-Message-State: ALoCoQnY4AWyZApXEN3XSlP5e+LyjZgAueOfVKR+gdnaOEDEyHjEEUf5C2aKjrgPj5VR0d/z8cId
MIME-Version: 1.0
X-Received: by 10.112.64.193 with SMTP id q1mr26950303lbs.88.1425921852276; Mon, 09 Mar 2015 10:24:12 -0700 (PDT)
Received: by 10.112.144.36 with HTTP; Mon, 9 Mar 2015 10:24:12 -0700 (PDT)
In-Reply-To: <20150308202910.GA2276@elstar.local>
References: <54F985E2.6020304@cisco.com> <20150306110536.GA73575@elstar.local> <20150308190837.GA12948@pfrc> <20150308202910.GA2276@elstar.local>
Date: Mon, 9 Mar 2015 10:24:12 -0700
Message-ID: <CABCOCHTS_t3A1Uyv2pAsNiOEnMOb9KiRYYVa8jiR5ZVSBsO4yQ@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>, Jeffrey Haas <jhaas@pfrc.org>,  Benoit Claise <bclaise@cisco.com>, NETMOD Working Group <netmod@ietf.org>,  draft-dong-i2rs-network-inventory@tools.ietf.org,  "i2rs-chairs@tools.ietf.org" <i2rs-chairs@tools.ietf.org>
Content-Type: text/plain; charset=UTF-8
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/bSk5yNQCONh8Eo-_JooQv-Di5GU>
Subject: Re: [netmod] Inventory YANG model (entity-MIB)
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: <http://www.ietf.org/mail-archive/web/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, 09 Mar 2015 17:24:25 -0000

On Sun, Mar 8, 2015 at 1:29 PM, Juergen Schoenwaelder
<j.schoenwaelder@jacobs-university.de> wrote:
> On Sun, Mar 08, 2015 at 03:08:37PM -0400, Jeffrey Haas wrote:
>> [speaking largely as a contributor and not i2rs-chair]
>>
>> On Fri, Mar 06, 2015 at 12:05:36PM +0100, Juergen Schoenwaelder wrote:
>> > My first question is (perhaps not surprising) whether inventory falls
>> > into the I2RS charter, I2RS = interface to the routing system. That
>> > said, RFC 6643 gives you a read-only translation. There are not many
>> > read-write objects in the ENTITY-MIB so perhaps this is good enough
>> > for now. I guess it would help what I2RS needs to know in order to
>> > make the interface to the routing system work.
>>
>> As discussed later in thread, having this work owned by netmod is fine with
>> I2RS.
>>
>> The structure of the generic topology draft is leading to interesting
>> questions about how information present in that model can link to higher and
>> lower layers.  As seen in the I2RS presentations at the most recent interim,
>> this eventually leads to questions like "inventory".  I also raised the
>> question about tunnels which will lead to other models as well.
>>
>> The fact that the IETF already has good models for some of these things, the
>> ENTITY-MIB as an example, is good.  However, simple conversion of MIBs to
>> yang modules are likely to result in models that are good MIB replacements,
>> but might not be well tailored to re-use elsewhere.  Since much of the
>> motivation is for re-use, re-use is the discussion I would suggest is most
>> important.
>>
>> As an example, SNMP tables probably should be converted into yang groupings.
>> There's also the matter of indexing of such conversions may not be fully
>> appropriate for such re-use and alternate indexes may be helpful.
>
> Nobody is insisting on an SNMP translation but whatever is done better
> allows export via the ENTITY-MIB as well - things need to be aligned
> at least. I note that many of the things you mention are not part of
> draft-dong-i2rs-network-inventory-00.txt either.
>

I start to worry about I2RS boiling the ocean when I see
inventory data models in that WG. I question the value
of converting every OID to a YANG identity, or
making gratuitous name changes to every leaf.

Perhaps an SMI to YANG translation of the ENTITY-MIB will
be a good enough starting point. I prefer to see IETF YANG work
focus on configuration, rather than reinvent monitoring solutions
that have been deployed for many years.



>> > PS: I personally would have preferred if generic topology and perhaps
>> >     inventory would have split off into a short-lived targeted WG
>> >     instead of doing all of this in I2RS but it seems leadership has
>> >     already decided that I2RS is the home for all of this.
>>
>> [speaking as one of the i2rs-chairs]
>>
>> Topology was one of the use cases that was in-charter and we're not looking
>> to significantly expand our charter work.  But one thing we've noted over
>> the life of the group is that there has been a lot of push for micro-WG to
>> be formed for various yang efforts.  I personally believe we're better off
>> with some owning WG taking on the task but handling it within the context of
>> a design team.  The overhead of a full WG is likely not merited.
>>
>> Which WG the design team reports to is, of course, up for discussion.
>>
>
> What was in the original I2RS charter was routing topology export
> (read-only). Going from there to a generic topology model (which
> likely should not be limited to config false) is quite a step. I
> personally find it sub-optimal to do the generic model in WG A and
> several extensions of the generic model in WG B plus some more
> extensions in WG C, most likely crossing IETF areas. The coordination
> resulting from this will most likely slow things down.
>
> /js
>

Andy

> --
> Juergen Schoenwaelder           Jacobs University Bremen gGmbH
> Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
> Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>
>
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod


From nobody Mon Mar  9 11:00:59 2015
Return-Path: <shares@ndzh.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 C77531A911A for <netmod@ietfa.amsl.com>; Mon,  9 Mar 2015 11:00:57 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -99.055
X-Spam-Level: 
X-Spam-Status: No, score=-99.055 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DOS_OUTLOOK_TO_MX=2.845, USER_IN_WHITELIST=-100] autolearn=no
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 EL7iTIX3Z5MF for <netmod@ietfa.amsl.com>; Mon,  9 Mar 2015 11:00:56 -0700 (PDT)
Received: from hickoryhill-consulting.com (hhc-web3.hickoryhill-consulting.com [64.9.205.143]) by ietfa.amsl.com (Postfix) with ESMTP id 0CAB31A90FA for <netmod@ietf.org>; Mon,  9 Mar 2015 11:00:45 -0700 (PDT)
X-Default-Received-SPF: pass (skip=loggedin (res=PASS)) x-ip-name=74.43.47.92; 
From: "Susan Hares" <shares@ndzh.com>
To: "'Andy Bierman'" <andy@yumaworks.com>, "'Juergen Schoenwaelder'" <j.schoenwaelder@jacobs-university.de>, "'Jeffrey Haas'" <jhaas@pfrc.org>, "'Benoit Claise'" <bclaise@cisco.com>, "'NETMOD Working Group'" <netmod@ietf.org>, <draft-dong-i2rs-network-inventory@tools.ietf.org>, <i2rs-chairs@tools.ietf.org>
References: <54F985E2.6020304@cisco.com>	<20150306110536.GA73575@elstar.local>	<20150308190837.GA12948@pfrc>	<20150308202910.GA2276@elstar.local> <CABCOCHTS_t3A1Uyv2pAsNiOEnMOb9KiRYYVa8jiR5ZVSBsO4yQ@mail.gmail.com>
In-Reply-To: <CABCOCHTS_t3A1Uyv2pAsNiOEnMOb9KiRYYVa8jiR5ZVSBsO4yQ@mail.gmail.com>
Date: Mon, 9 Mar 2015 14:00:41 -0400
Message-ID: <02fb01d05a92$f6379ff0$e2a6dfd0$@ndzh.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Mailer: Microsoft Outlook 14.0
Content-Language: en-us
Thread-Index: AQC/r0YkLKSuBfrYEPhLebwn/CNVWgGB/IaPApXYN5sBhcoABAGZrBSDnvwL0PA=
X-Authenticated-User: skh@ndzh.com 
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/SkiY7RzDymW8u5_lSIPRLU27vL0>
Subject: Re: [netmod] Inventory YANG model (entity-MIB)
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: <http://www.ietf.org/mail-archive/web/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, 09 Mar 2015 18:00:57 -0000

Andy:=20

The I2RS chairs and others suggested these features from the L2 topology =
draft get moved to an inventory draft, and that the draft get moved to =
netmod.=20

Jie Dong (who originated the draft) is looking for co-authors or looking =
to collaborate.  The  vendors (Cisco, Huawei and others) are looking for =
a solution.  I hope you will help them find a solution that revises the =
right things from the ENTITY MIB for a solution that allows combines =
topology and Entity MIB information for their solutions. =20

Sue=20

-----Original Message-----
From: Andy Bierman [mailto:andy@yumaworks.com]=20
Sent: Monday, March 09, 2015 1:24 PM
To: Juergen Schoenwaelder; Jeffrey Haas; Benoit Claise; NETMOD Working =
Group; draft-dong-i2rs-network-inventory@tools.ietf.org; =
i2rs-chairs@tools.ietf.org
Subject: Re: [netmod] Inventory YANG model (entity-MIB)

On Sun, Mar 8, 2015 at 1:29 PM, Juergen Schoenwaelder =
<j.schoenwaelder@jacobs-university.de> wrote:
> On Sun, Mar 08, 2015 at 03:08:37PM -0400, Jeffrey Haas wrote:
>> [speaking largely as a contributor and not i2rs-chair]
>>
>> On Fri, Mar 06, 2015 at 12:05:36PM +0100, Juergen Schoenwaelder =
wrote:
>> > My first question is (perhaps not surprising) whether inventory=20
>> > falls into the I2RS charter, I2RS =3D interface to the routing=20
>> > system. That said, RFC 6643 gives you a read-only translation.=20
>> > There are not many read-write objects in the ENTITY-MIB so perhaps=20
>> > this is good enough for now. I guess it would help what I2RS needs=20
>> > to know in order to make the interface to the routing system work.
>>
>> As discussed later in thread, having this work owned by netmod is=20
>> fine with I2RS.
>>
>> The structure of the generic topology draft is leading to interesting =

>> questions about how information present in that model can link to=20
>> higher and lower layers.  As seen in the I2RS presentations at the=20
>> most recent interim, this eventually leads to questions like=20
>> "inventory".  I also raised the question about tunnels which will =
lead to other models as well.
>>
>> The fact that the IETF already has good models for some of these=20
>> things, the ENTITY-MIB as an example, is good.  However, simple=20
>> conversion of MIBs to yang modules are likely to result in models=20
>> that are good MIB replacements, but might not be well tailored to=20
>> re-use elsewhere.  Since much of the motivation is for re-use, re-use =

>> is the discussion I would suggest is most important.
>>
>> As an example, SNMP tables probably should be converted into yang =
groupings.
>> There's also the matter of indexing of such conversions may not be=20
>> fully appropriate for such re-use and alternate indexes may be =
helpful.
>
> Nobody is insisting on an SNMP translation but whatever is done better =

> allows export via the ENTITY-MIB as well - things need to be aligned=20
> at least. I note that many of the things you mention are not part of=20
> draft-dong-i2rs-network-inventory-00.txt either.
>

I start to worry about I2RS boiling the ocean when I see inventory data =
models in that WG. I question the value of converting every OID to a =
YANG identity, or making gratuitous name changes to every leaf.

Perhaps an SMI to YANG translation of the ENTITY-MIB will be a good =
enough starting point. I prefer to see IETF YANG work focus on =
configuration, rather than reinvent monitoring solutions that have been =
deployed for many years.



>> > PS: I personally would have preferred if generic topology and =
perhaps
>> >     inventory would have split off into a short-lived targeted WG
>> >     instead of doing all of this in I2RS but it seems leadership =
has
>> >     already decided that I2RS is the home for all of this.
>>
>> [speaking as one of the i2rs-chairs]
>>
>> Topology was one of the use cases that was in-charter and we're not=20
>> looking to significantly expand our charter work.  But one thing=20
>> we've noted over the life of the group is that there has been a lot=20
>> of push for micro-WG to be formed for various yang efforts.  I=20
>> personally believe we're better off with some owning WG taking on the =

>> task but handling it within the context of a design team.  The =
overhead of a full WG is likely not merited.
>>
>> Which WG the design team reports to is, of course, up for discussion.
>>
>
> What was in the original I2RS charter was routing topology export=20
> (read-only). Going from there to a generic topology model (which=20
> likely should not be limited to config false) is quite a step. I=20
> personally find it sub-optimal to do the generic model in WG A and=20
> several extensions of the generic model in WG B plus some more=20
> extensions in WG C, most likely crossing IETF areas. The coordination=20
> resulting from this will most likely slow things down.
>
> /js
>

Andy

> --
> Juergen Schoenwaelder           Jacobs University Bremen gGmbH
> Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
> Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>
>
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod


From nobody Mon Mar  9 12:21:20 2015
Return-Path: <asechoud@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 3C56F1AC44E for <netmod@ietfa.amsl.com>; Mon,  9 Mar 2015 12:21:18 -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 rEY818s4dj-I for <netmod@ietfa.amsl.com>; Mon,  9 Mar 2015 12:21:16 -0700 (PDT)
Received: from alln-iport-5.cisco.com (alln-iport-5.cisco.com [173.37.142.92]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C48571A87BC for <netmod@ietf.org>; Mon,  9 Mar 2015 12:19:23 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=1239; q=dns/txt; s=iport; t=1425928763; x=1427138363; h=from:to:subject:date:message-id:in-reply-to:content-id: content-transfer-encoding:mime-version; bh=WvfJ2P+PgJD5/sSJ7y/2tTWo7IDlYUvhvOHdZNo77xc=; b=ebqAZwR2ETM35qHE7vxJ++s8IhpiGRPUQhHhVp5dzsnWRUeGOMy2k9qj 9up5jkCs7b/H+dlPxYGvtH4HwXQX9e9bvIZgUWTS6j8gHDKCUqRwf4XYn h8pQaneuHObpvBuEqSVmqOJpUxydCeZ7/kfBMhCEeML01SpoUiQqveimi c=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0AtDQBF8f1U/4kNJK1cgwZSVQUEwDOCOIVuAoEqTQEBAQEBAXyEEAIEOj0UAQg2QhsBBgMCBBMJiCYIBZZqqwoBAQEBBgEBAQEBARyLF4R1hC0FkA+DZIVvgRo5gm+LcINCI4Nub4FEfwEBAQ
X-IronPort-AV: E=Sophos;i="5.11,369,1422921600"; d="scan'208";a="130326352"
Received: from alln-core-4.cisco.com ([173.36.13.137]) by alln-iport-5.cisco.com with ESMTP; 09 Mar 2015 19:19:23 +0000
Received: from xhc-rcd-x11.cisco.com (xhc-rcd-x11.cisco.com [173.37.183.85]) by alln-core-4.cisco.com (8.14.5/8.14.5) with ESMTP id t29JJMkB023001 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL) for <netmod@ietf.org>; Mon, 9 Mar 2015 19:19:23 GMT
Received: from xmb-rcd-x07.cisco.com ([169.254.7.249]) by xhc-rcd-x11.cisco.com ([173.37.183.85]) with mapi id 14.03.0195.001; Mon, 9 Mar 2015 14:19:22 -0500
From: "Aseem Choudhary (asechoud)" <asechoud@cisco.com>
To: "netmod@ietf.org" <netmod@ietf.org>
Thread-Topic: New Version Notification for draft-asechoud-netmod-diffserv-model-01.txt
Thread-Index: AQHQV4chJgbvdy1AZEik7I0bQeaxUp0UfBaA
Date: Mon, 9 Mar 2015 19:19:22 +0000
Message-ID: <D1233E79.B113C%asechoud@cisco.com>
In-Reply-To: <20150305205811.28375.10309.idtracker@ietfa.amsl.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/14.2.3.120616
x-originating-ip: [10.154.208.186]
Content-Type: text/plain; charset="us-ascii"
Content-ID: <A0AA9DC8B4D6644A9C81EB0061B59AD2@emea.cisco.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/5kUsA6qLnk3Pm92yEEBEVTFuYCg>
Subject: [netmod] FW: New Version Notification for draft-asechoud-netmod-diffserv-model-01.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: <http://www.ietf.org/mail-archive/web/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, 09 Mar 2015 19:21:18 -0000

Hi,

For everyone reference. Please provide your comments.

-thanks,
Aseem



On 3/5/15, 12:58 PM, "internet-drafts@ietf.org" <internet-drafts@ietf.org>
wrote:

>
>A new version of I-D, draft-asechoud-netmod-diffserv-model-01.txt
>has been successfully submitted by Aseem Choudhary and posted to the
>IETF repository.
>
>Name:		draft-asechoud-netmod-diffserv-model
>Revision:	01
>Title:		YANG Model for Diffserv
>Document date:	2015-03-04
>Group:		Individual Submission
>Pages:		34
>URL:           =20
>http://www.ietf.org/internet-drafts/draft-asechoud-netmod-diffserv-model-0
>1.txt
>Status:        =20
>https://datatracker.ietf.org/doc/draft-asechoud-netmod-diffserv-model/
>Htmlized:      =20
>http://tools.ietf.org/html/draft-asechoud-netmod-diffserv-model-01
>Diff:          =20
>http://www.ietf.org/rfcdiff?url2=3Ddraft-asechoud-netmod-diffserv-model-01
>
>Abstract:
>   This document describes a YANG model of Differentiated Services for
>   configuration and operations.
>
>                 =20
>       =20
>
>
>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.
>
>The IETF Secretariat


From nobody Mon Mar  9 13:36:18 2015
Return-Path: <internet-drafts@ietf.org>
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 2CC151A8F34; Mon,  9 Mar 2015 13:36:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level: 
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9] 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 YA4oztHnaq_N; Mon,  9 Mar 2015 13:36:13 -0700 (PDT)
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id BB90E1AC431; Mon,  9 Mar 2015 13:36:05 -0700 (PDT)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: internet-drafts@ietf.org
To: <i-d-announce@ietf.org>
X-Test-IDTracker: no
X-IETF-IDTracker: 5.12.0.p3
Auto-Submitted: auto-generated
Precedence: bulk
Message-ID: <20150309203605.19407.5685.idtracker@ietfa.amsl.com>
Date: Mon, 09 Mar 2015 13:36:05 -0700
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/_xbyK3y9n2txtXjvIi_0IeoNAFk>
Cc: netmod@ietf.org
Subject: [netmod] I-D Action: draft-ietf-netmod-rfc6020bis-04.txt
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
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: <http://www.ietf.org/mail-archive/web/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, 09 Mar 2015 20:36:17 -0000

A New Internet-Draft is available from the on-line Internet-Drafts directories.
 This draft is a work item of the NETCONF Data Modeling Language Working Group of the IETF.

        Title           : YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)
        Author          : Martin Bjorklund
	Filename        : draft-ietf-netmod-rfc6020bis-04.txt
	Pages           : 187
	Date            : 2015-03-09

Abstract:
   YANG is a data modeling language used to model configuration and
   state data manipulated by the Network Configuration Protocol
   (NETCONF), NETCONF remote procedure calls, and NETCONF notifications.
   This document obsoletes RFC 6020.


The IETF datatracker status page for this draft is:
https://datatracker.ietf.org/doc/draft-ietf-netmod-rfc6020bis/

There's also a htmlized version available at:
http://tools.ietf.org/html/draft-ietf-netmod-rfc6020bis-04

A diff from the previous version is available at:
http://www.ietf.org/rfcdiff?url2=draft-ietf-netmod-rfc6020bis-04


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/


From nobody Mon Mar  9 13:42:40 2015
Return-Path: <mbj@tail-f.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 289211ACD02 for <netmod@ietfa.amsl.com>; Mon,  9 Mar 2015 13:42:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.911
X-Spam-Level: 
X-Spam-Status: No, score=-1.911 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] 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 5NRUBtPg3ZQE for <netmod@ietfa.amsl.com>; Mon,  9 Mar 2015 13:42:37 -0700 (PDT)
Received: from mail.tail-f.com (mail.tail-f.com [83.241.162.140]) by ietfa.amsl.com (Postfix) with ESMTP id 4BAF81AC442 for <netmod@ietf.org>; Mon,  9 Mar 2015 13:42:37 -0700 (PDT)
Received: from localhost (unknown [213.136.39.104]) by mail.tail-f.com (Postfix) with ESMTPSA id 527B01280A11 for <netmod@ietf.org>; Mon,  9 Mar 2015 21:42:36 +0100 (CET)
Date: Mon, 09 Mar 2015 21:43:27 +0100 (CET)
Message-Id: <20150309.214327.308467630218465898.mbj@tail-f.com>
To: netmod@ietf.org
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <20150309203605.19407.5685.idtracker@ietfa.amsl.com>
References: <20150309203605.19407.5685.idtracker@ietfa.amsl.com>
X-Mailer: Mew version 6.5 on Emacs 24.3 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/_ecpm-DAz9xDnmrYT8PRVpKn4PE>
Subject: Re: [netmod] I-D Action: draft-ietf-netmod-rfc6020bis-04.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: <http://www.ietf.org/mail-archive/web/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, 09 Mar 2015 20:42:39 -0000

Hi,

This version addresses all current EDITs (except one - Y12);
specifically:

   o  Included solution Y16-03.
   o  Included solution Y49-04.
   o  Included solution Y58-01.
   o  Included solution Y59-01.

I also fixed the grammar according to the discussion about the latest
errata.  Please verify that everything is correct!

The issues list has also been updated.


/martin



internet-drafts@ietf.org wrote:
> 
> A New Internet-Draft is available from the on-line Internet-Drafts directories.
>  This draft is a work item of the NETCONF Data Modeling Language Working Group of the IETF.
> 
>         Title           : YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)
>         Author          : Martin Bjorklund
> 	Filename        : draft-ietf-netmod-rfc6020bis-04.txt
> 	Pages           : 187
> 	Date            : 2015-03-09
> 
> Abstract:
>    YANG is a data modeling language used to model configuration and
>    state data manipulated by the Network Configuration Protocol
>    (NETCONF), NETCONF remote procedure calls, and NETCONF notifications.
>    This document obsoletes RFC 6020.
> 
> 
> The IETF datatracker status page for this draft is:
> https://datatracker.ietf.org/doc/draft-ietf-netmod-rfc6020bis/
> 
> There's also a htmlized version available at:
> http://tools.ietf.org/html/draft-ietf-netmod-rfc6020bis-04
> 
> A diff from the previous version is available at:
> http://www.ietf.org/rfcdiff?url2=draft-ietf-netmod-rfc6020bis-04
> 
> 
> 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/
> 
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod
> 


From nobody Mon Mar  9 13:53:01 2015
Return-Path: <internet-drafts@ietf.org>
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 AA7E21ACD4A; Mon,  9 Mar 2015 13:52:57 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level: 
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9] 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 QEaX5ag4khtx; Mon,  9 Mar 2015 13:52:55 -0700 (PDT)
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id AB5651ACCE2; Mon,  9 Mar 2015 13:52:55 -0700 (PDT)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: internet-drafts@ietf.org
To: <i-d-announce@ietf.org>
X-Test-IDTracker: no
X-IETF-IDTracker: 5.12.0.p3
Auto-Submitted: auto-generated
Precedence: bulk
Message-ID: <20150309205255.31824.82614.idtracker@ietfa.amsl.com>
Date: Mon, 09 Mar 2015 13:52:55 -0700
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/5lpN5WdZcHfWm8pBtgMz-80i5jo>
Cc: netmod@ietf.org
Subject: [netmod] I-D Action: draft-ietf-netmod-syslog-model-03.txt
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
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: <http://www.ietf.org/mail-archive/web/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, 09 Mar 2015 20:52:57 -0000

A New Internet-Draft is available from the on-line Internet-Drafts directories.
 This draft is a work item of the NETCONF Data Modeling Language Working Group of the IETF.

        Title           : SYSLOG YANG model
        Authors         : Clyde Wildes
                          Brocade Communications Systems
	Filename        : draft-ietf-netmod-syslog-model-03.txt
	Pages           : 21
	Date            : 2015-03-09

Abstract:
   This document describes a data model for Syslog
   protocol which is used to convey event notification messages.


The IETF datatracker status page for this draft is:
https://datatracker.ietf.org/doc/draft-ietf-netmod-syslog-model/

There's also a htmlized version available at:
http://tools.ietf.org/html/draft-ietf-netmod-syslog-model-03

A diff from the previous version is available at:
http://www.ietf.org/rfcdiff?url2=draft-ietf-netmod-syslog-model-03


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/


From nobody Mon Mar  9 16:58:16 2015
Return-Path: <asechoud@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 D09421ACE94 for <netmod@ietfa.amsl.com>; Mon,  9 Mar 2015 16:58:11 -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 8C-6eN0nHk42 for <netmod@ietfa.amsl.com>; Mon,  9 Mar 2015 16:58:07 -0700 (PDT)
Received: from alln-iport-4.cisco.com (alln-iport-4.cisco.com [173.37.142.91]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 39C991ACDCC for <netmod@ietf.org>; Mon,  9 Mar 2015 16:58:04 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=200; q=dns/txt; s=iport; t=1425945484; x=1427155084; h=from:to:cc:subject:date:message-id:in-reply-to: content-id:content-transfer-encoding:mime-version; bh=QbFo59FU0vG4K8F3q56QSd0FiNLB7S+Tr3Wkz3//wRE=; b=OnIL7erZB7/OrlBd04qjhK7aeeVDrq8r2S1xcwAWwLIBuxgak003Ji96 32LQJ8EqVmqyTubvhJLlTbD8d05+WOJom84Izce1Lku4aLHEAb15jyDc3 S8fxN87OtNKjp/cjnncXSjtSZgOrWOC1XPOkJUIWK0xsbY0s0n7TWstZt I=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0ADDQAeM/5U/4QNJK1cgwZSWgTAOYI2hXACgSlNAQEBAQEBfIQWOj8SAT5CJQIEAQ2INA3BZgEBAQEBAQEBAQEBAQEBAQEBAQEBARMEkAUHhC0FkA+DZIVvk3Qjg25vAYFDfwEBAQ
X-IronPort-AV: E=Sophos;i="5.11,371,1422921600"; d="scan'208";a="130411864"
Received: from alln-core-10.cisco.com ([173.36.13.132]) by alln-iport-4.cisco.com with ESMTP; 09 Mar 2015 23:58:03 +0000
Received: from xhc-aln-x08.cisco.com (xhc-aln-x08.cisco.com [173.36.12.82]) by alln-core-10.cisco.com (8.14.5/8.14.5) with ESMTP id t29Nw37n005558 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Mon, 9 Mar 2015 23:58:03 GMT
Received: from xmb-rcd-x07.cisco.com ([169.254.7.249]) by xhc-aln-x08.cisco.com ([173.36.12.82]) with mapi id 14.03.0195.001; Mon, 9 Mar 2015 18:58:03 -0500
From: "Aseem Choudhary (asechoud)" <asechoud@cisco.com>
To: "Thomas D. Nadeau" <tnadeau@lucidvision.com>, NETMOD Working Group <netmod@ietf.org>
Thread-Topic: IETF92 Netmod Agenda
Thread-Index: AQHQWsTgJPbh1xGhGU2vn68i+My02g==
Date: Mon, 9 Mar 2015 23:58:02 +0000
Message-ID: <D1238033.B1B39%asechoud@cisco.com>
In-Reply-To: <D07E9674.7F949%asechoud@cisco.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/14.2.3.120616
x-originating-ip: [10.154.208.186]
Content-Type: text/plain; charset="us-ascii"
Content-ID: <F788D6FCDFE02D4EA746BC8EE1AC576E@emea.cisco.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/XjBSxjVH-GZT6VUaVAOe4maCC8E>
Cc: "netmod-chairs@tools.ietf.org" <netmod-chairs@tools.ietf.org>
Subject: [netmod] IETF92 Netmod Agenda
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: <http://www.ietf.org/mail-archive/web/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, 09 Mar 2015 23:58:12 -0000

Hi Tom,

We need 10 minutes to present Diffserv Yang Model version-01:

https://tools.ietf.org/id/draft-asechoud-netmod-diffserv-model-01.txt

Presenter: Mahesh Jethanandani

-thanks,
Aseem


From nobody Mon Mar  9 19:44:21 2015
Return-Path: <jie.dong@huawei.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 D3E281A0052 for <netmod@ietfa.amsl.com>; Mon,  9 Mar 2015 19:44:20 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.211
X-Spam-Level: 
X-Spam-Status: No, score=-4.211 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] 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 lUtIbSegwVQI for <netmod@ietfa.amsl.com>; Mon,  9 Mar 2015 19:44:18 -0700 (PDT)
Received: from lhrrgout.huawei.com (lhrrgout.huawei.com [194.213.3.17]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6DC811A005C for <netmod@ietf.org>; Mon,  9 Mar 2015 19:44:17 -0700 (PDT)
Received: from 172.18.7.190 (EHLO lhreml401-hub.china.huawei.com) ([172.18.7.190]) by lhrrg01-dlp.huawei.com (MOS 4.3.7-GA FastPath queued) with ESMTP id BTL54556; Tue, 10 Mar 2015 02:44:14 +0000 (GMT)
Received: from NKGEML402-HUB.china.huawei.com (10.98.56.33) by lhreml401-hub.china.huawei.com (10.201.5.240) with Microsoft SMTP Server (TLS) id 14.3.158.1; Tue, 10 Mar 2015 02:44:13 +0000
Received: from NKGEML512-MBX.china.huawei.com ([169.254.7.106]) by nkgeml402-hub.china.huawei.com ([10.98.56.33]) with mapi id 14.03.0158.001; Tue, 10 Mar 2015 10:44:07 +0800
From: "Dongjie (Jimmy)" <jie.dong@huawei.com>
To: Andy Bierman <andy@yumaworks.com>, Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>, Jeffrey Haas <jhaas@pfrc.org>, Benoit Claise <bclaise@cisco.com>, NETMOD Working Group <netmod@ietf.org>, "draft-dong-i2rs-network-inventory@tools.ietf.org" <draft-dong-i2rs-network-inventory@tools.ietf.org>, "i2rs-chairs@tools.ietf.org" <i2rs-chairs@tools.ietf.org>
Thread-Topic: [netmod] Inventory YANG model (entity-MIB)
Thread-Index: AQHQV/sWQ/8m3BSs+0WHTuyrX71fWp0OxN8AgAOrnYCAABaCAIABXqcAgAEaUPA=
Date: Tue, 10 Mar 2015 02:44:06 +0000
Message-ID: <76CD132C3ADEF848BD84D028D243C92733851CD7@nkgeml512-mbx.china.huawei.com>
References: <54F985E2.6020304@cisco.com> <20150306110536.GA73575@elstar.local> <20150308190837.GA12948@pfrc> <20150308202910.GA2276@elstar.local> <CABCOCHTS_t3A1Uyv2pAsNiOEnMOb9KiRYYVa8jiR5ZVSBsO4yQ@mail.gmail.com>
In-Reply-To: <CABCOCHTS_t3A1Uyv2pAsNiOEnMOb9KiRYYVa8jiR5ZVSBsO4yQ@mail.gmail.com>
Accept-Language: en-US, zh-CN
Content-Language: zh-CN
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [10.111.97.131]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-CFilter-Loop: Reflected
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/7x6KeVIfc0htMyFatA-q1EAXr6I>
Subject: Re: [netmod] Inventory YANG model (entity-MIB)
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: <http://www.ietf.org/mail-archive/web/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: Tue, 10 Mar 2015 02:44:21 -0000

SGkgQW5keSwNCg0KVGhhbmtzIGZvciB5b3VyIGZlZWRiYWNrLiBQbGVhc2Ugc2VlIG15IHJlcGxp
ZXMgaW5saW5lOg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEFuZHkg
Qmllcm1hbiBbbWFpbHRvOmFuZHlAeXVtYXdvcmtzLmNvbV0NCj4gU2VudDogVHVlc2RheSwgTWFy
Y2ggMTAsIDIwMTUgMToyNCBBTQ0KPiBUbzogSnVlcmdlbiBTY2hvZW53YWVsZGVyOyBKZWZmcmV5
IEhhYXM7IEJlbm9pdCBDbGFpc2U7IE5FVE1PRCBXb3JraW5nDQo+IEdyb3VwOyBkcmFmdC1kb25n
LWkycnMtbmV0d29yay1pbnZlbnRvcnlAdG9vbHMuaWV0Zi5vcmc7DQo+IGkycnMtY2hhaXJzQHRv
b2xzLmlldGYub3JnDQo+IFN1YmplY3Q6IFJlOiBbbmV0bW9kXSBJbnZlbnRvcnkgWUFORyBtb2Rl
bCAoZW50aXR5LU1JQikNCj4gDQo+IE9uIFN1biwgTWFyIDgsIDIwMTUgYXQgMToyOSBQTSwgSnVl
cmdlbiBTY2hvZW53YWVsZGVyDQo+IDxqLnNjaG9lbndhZWxkZXJAamFjb2JzLXVuaXZlcnNpdHku
ZGU+IHdyb3RlOg0KPiA+IE9uIFN1biwgTWFyIDA4LCAyMDE1IGF0IDAzOjA4OjM3UE0gLTA0MDAs
IEplZmZyZXkgSGFhcyB3cm90ZToNCj4gPj4gW3NwZWFraW5nIGxhcmdlbHkgYXMgYSBjb250cmli
dXRvciBhbmQgbm90IGkycnMtY2hhaXJdDQo+ID4+DQo+ID4+IE9uIEZyaSwgTWFyIDA2LCAyMDE1
IGF0IDEyOjA1OjM2UE0gKzAxMDAsIEp1ZXJnZW4gU2Nob2Vud2FlbGRlciB3cm90ZToNCj4gPj4g
PiBNeSBmaXJzdCBxdWVzdGlvbiBpcyAocGVyaGFwcyBub3Qgc3VycHJpc2luZykgd2hldGhlciBp
bnZlbnRvcnkNCj4gPj4gPiBmYWxscyBpbnRvIHRoZSBJMlJTIGNoYXJ0ZXIsIEkyUlMgPSBpbnRl
cmZhY2UgdG8gdGhlIHJvdXRpbmcNCj4gPj4gPiBzeXN0ZW0uIFRoYXQgc2FpZCwgUkZDIDY2NDMg
Z2l2ZXMgeW91IGEgcmVhZC1vbmx5IHRyYW5zbGF0aW9uLg0KPiA+PiA+IFRoZXJlIGFyZSBub3Qg
bWFueSByZWFkLXdyaXRlIG9iamVjdHMgaW4gdGhlIEVOVElUWS1NSUIgc28gcGVyaGFwcw0KPiA+
PiA+IHRoaXMgaXMgZ29vZCBlbm91Z2ggZm9yIG5vdy4gSSBndWVzcyBpdCB3b3VsZCBoZWxwIHdo
YXQgSTJSUyBuZWVkcw0KPiA+PiA+IHRvIGtub3cgaW4gb3JkZXIgdG8gbWFrZSB0aGUgaW50ZXJm
YWNlIHRvIHRoZSByb3V0aW5nIHN5c3RlbSB3b3JrLg0KPiA+Pg0KPiA+PiBBcyBkaXNjdXNzZWQg
bGF0ZXIgaW4gdGhyZWFkLCBoYXZpbmcgdGhpcyB3b3JrIG93bmVkIGJ5IG5ldG1vZCBpcw0KPiA+
PiBmaW5lIHdpdGggSTJSUy4NCj4gPj4NCj4gPj4gVGhlIHN0cnVjdHVyZSBvZiB0aGUgZ2VuZXJp
YyB0b3BvbG9neSBkcmFmdCBpcyBsZWFkaW5nIHRvIGludGVyZXN0aW5nDQo+ID4+IHF1ZXN0aW9u
cyBhYm91dCBob3cgaW5mb3JtYXRpb24gcHJlc2VudCBpbiB0aGF0IG1vZGVsIGNhbiBsaW5rIHRv
DQo+ID4+IGhpZ2hlciBhbmQgbG93ZXIgbGF5ZXJzLiAgQXMgc2VlbiBpbiB0aGUgSTJSUyBwcmVz
ZW50YXRpb25zIGF0IHRoZQ0KPiA+PiBtb3N0IHJlY2VudCBpbnRlcmltLCB0aGlzIGV2ZW50dWFs
bHkgbGVhZHMgdG8gcXVlc3Rpb25zIGxpa2UNCj4gPj4gImludmVudG9yeSIuICBJIGFsc28gcmFp
c2VkIHRoZSBxdWVzdGlvbiBhYm91dCB0dW5uZWxzIHdoaWNoIHdpbGwgbGVhZCB0bw0KPiBvdGhl
ciBtb2RlbHMgYXMgd2VsbC4NCj4gPj4NCj4gPj4gVGhlIGZhY3QgdGhhdCB0aGUgSUVURiBhbHJl
YWR5IGhhcyBnb29kIG1vZGVscyBmb3Igc29tZSBvZiB0aGVzZQ0KPiA+PiB0aGluZ3MsIHRoZSBF
TlRJVFktTUlCIGFzIGFuIGV4YW1wbGUsIGlzIGdvb2QuICBIb3dldmVyLCBzaW1wbGUNCj4gPj4g
Y29udmVyc2lvbiBvZiBNSUJzIHRvIHlhbmcgbW9kdWxlcyBhcmUgbGlrZWx5IHRvIHJlc3VsdCBp
biBtb2RlbHMNCj4gPj4gdGhhdCBhcmUgZ29vZCBNSUIgcmVwbGFjZW1lbnRzLCBidXQgbWlnaHQg
bm90IGJlIHdlbGwgdGFpbG9yZWQgdG8NCj4gPj4gcmUtdXNlIGVsc2V3aGVyZS4gIFNpbmNlIG11
Y2ggb2YgdGhlIG1vdGl2YXRpb24gaXMgZm9yIHJlLXVzZSwgcmUtdXNlDQo+ID4+IGlzIHRoZSBk
aXNjdXNzaW9uIEkgd291bGQgc3VnZ2VzdCBpcyBtb3N0IGltcG9ydGFudC4NCj4gPj4NCj4gPj4g
QXMgYW4gZXhhbXBsZSwgU05NUCB0YWJsZXMgcHJvYmFibHkgc2hvdWxkIGJlIGNvbnZlcnRlZCBp
bnRvIHlhbmcNCj4gZ3JvdXBpbmdzLg0KPiA+PiBUaGVyZSdzIGFsc28gdGhlIG1hdHRlciBvZiBp
bmRleGluZyBvZiBzdWNoIGNvbnZlcnNpb25zIG1heSBub3QgYmUNCj4gPj4gZnVsbHkgYXBwcm9w
cmlhdGUgZm9yIHN1Y2ggcmUtdXNlIGFuZCBhbHRlcm5hdGUgaW5kZXhlcyBtYXkgYmUgaGVscGZ1
bC4NCj4gPg0KPiA+IE5vYm9keSBpcyBpbnNpc3Rpbmcgb24gYW4gU05NUCB0cmFuc2xhdGlvbiBi
dXQgd2hhdGV2ZXIgaXMgZG9uZSBiZXR0ZXINCj4gPiBhbGxvd3MgZXhwb3J0IHZpYSB0aGUgRU5U
SVRZLU1JQiBhcyB3ZWxsIC0gdGhpbmdzIG5lZWQgdG8gYmUgYWxpZ25lZA0KPiA+IGF0IGxlYXN0
LiBJIG5vdGUgdGhhdCBtYW55IG9mIHRoZSB0aGluZ3MgeW91IG1lbnRpb24gYXJlIG5vdCBwYXJ0
IG9mDQo+ID4gZHJhZnQtZG9uZy1pMnJzLW5ldHdvcmstaW52ZW50b3J5LTAwLnR4dCBlaXRoZXIu
DQo+ID4NCj4gDQo+IEkgc3RhcnQgdG8gd29ycnkgYWJvdXQgSTJSUyBib2lsaW5nIHRoZSBvY2Vh
biB3aGVuIEkgc2VlIGludmVudG9yeSBkYXRhIG1vZGVscw0KPiBpbiB0aGF0IFdHLiBJIHF1ZXN0
aW9uIHRoZSB2YWx1ZSBvZiBjb252ZXJ0aW5nIGV2ZXJ5IE9JRCB0byBhIFlBTkcgaWRlbnRpdHks
IG9yDQo+IG1ha2luZyBncmF0dWl0b3VzIG5hbWUgY2hhbmdlcyB0byBldmVyeSBsZWFmLg0KDQpU
aGUgaW52ZW50b3J5IG1vZGVsIHdhcyBtb3RpdmF0ZWQgYnkgc29tZSBkaXNjdXNzaW9uIGluIHRo
ZSBJMlJTIGludGVyaW0sIGFuZCB3ZSBhcmUgb3BlbiB0byBtb3ZlIHRoaXMgd29yayB0byBOZXRt
b2QgaWYgcGVvcGxlIGFyZSBtb3JlIGludGVyZXN0ZWQgdG8gZG8gdGhpcyB3b3JrIGhlcmUuDQpB
cyBKZWZmIHNhaWQsIHNpbXBsZSBjb252ZXJzaW9uIG9mIE1JQiB0byBZYW5nIGlzIG5vdCBleGFj
dGx5IG91ciBnb2FsLiBIb3BlZnVsbHkgd2UgY2FuIG1ha2UgZ29vZCB1c2Ugb2YgWWFuZyB0byBi
dWlsZCBhIGJhc2UgaW52ZW50b3J5IG1vZGVsLCB3aGljaCBpcyBleHRlbnNpYmxlIHdpdGggYXVn
bWVudGF0aW9uIHRvIGJ1aWxkIG1vcmUgc3BlY2lmaWMgbW9kZWxzLg0KDQo+IFBlcmhhcHMgYW4g
U01JIHRvIFlBTkcgdHJhbnNsYXRpb24gb2YgdGhlIEVOVElUWS1NSUIgd2lsbCBiZSBhIGdvb2Qg
ZW5vdWdoDQo+IHN0YXJ0aW5nIHBvaW50LiBJIHByZWZlciB0byBzZWUgSUVURiBZQU5HIHdvcmsg
Zm9jdXMgb24gY29uZmlndXJhdGlvbiwgcmF0aGVyDQo+IHRoYW4gcmVpbnZlbnQgbW9uaXRvcmlu
ZyBzb2x1dGlvbnMgdGhhdCBoYXZlIGJlZW4gZGVwbG95ZWQgZm9yIG1hbnkgeWVhcnMuDQoNClRv
IG15IHVuZGVyc3RhbmRpbmcsIFNNSSB0byBZYW5nIHRyYW5zbGF0aW9uIGdpdmVzIHlvdSByZWFk
LW9ubHkgbW9kZWxzLCB3aGlsZSB3aXRoIFlhbmcgd2UgY2FuIGRvIGJvdGggcmVhZCBhbmQgd3Jp
dGUuIEknZCBhZ3JlZSB0aGF0IHRoZSBpbnZlbnRvcnkgeWFuZyBtb2RlbCBzaG91bGQgbm90IGxp
bWl0IGl0cyBzY29wZSBmb3IgbW9uaXRvcmluZywgYW5kIHdlIG5lZWQgdG8gZGlzY3VzcyB3aGF0
IGNvbmZpZ3VyYXRpb25zIHNob3VsZCBiZSBjb25zaWRlcmVkIGFzIHBhcnQgb2YgdGhlIGludmVu
dG9yeSBtb2RlbC4gV2UnZCBhcHByZWNpYXRlIHlvdXIgY29udHJpYnV0aW9ucyBvbiBib3RoIGFz
cGVjdHMuIFRoYW5rcy4NCg0KQmVzdCByZWdhcmRzLA0KSmllDQoNCj4gPj4gPiBQUzogSSBwZXJz
b25hbGx5IHdvdWxkIGhhdmUgcHJlZmVycmVkIGlmIGdlbmVyaWMgdG9wb2xvZ3kgYW5kIHBlcmhh
cHMNCj4gPj4gPiAgICAgaW52ZW50b3J5IHdvdWxkIGhhdmUgc3BsaXQgb2ZmIGludG8gYSBzaG9y
dC1saXZlZCB0YXJnZXRlZCBXRw0KPiA+PiA+ICAgICBpbnN0ZWFkIG9mIGRvaW5nIGFsbCBvZiB0
aGlzIGluIEkyUlMgYnV0IGl0IHNlZW1zIGxlYWRlcnNoaXAgaGFzDQo+ID4+ID4gICAgIGFscmVh
ZHkgZGVjaWRlZCB0aGF0IEkyUlMgaXMgdGhlIGhvbWUgZm9yIGFsbCBvZiB0aGlzLg0KPiA+Pg0K
PiA+PiBbc3BlYWtpbmcgYXMgb25lIG9mIHRoZSBpMnJzLWNoYWlyc10NCj4gPj4NCj4gPj4gVG9w
b2xvZ3kgd2FzIG9uZSBvZiB0aGUgdXNlIGNhc2VzIHRoYXQgd2FzIGluLWNoYXJ0ZXIgYW5kIHdl
J3JlIG5vdA0KPiA+PiBsb29raW5nIHRvIHNpZ25pZmljYW50bHkgZXhwYW5kIG91ciBjaGFydGVy
IHdvcmsuICBCdXQgb25lIHRoaW5nDQo+ID4+IHdlJ3ZlIG5vdGVkIG92ZXIgdGhlIGxpZmUgb2Yg
dGhlIGdyb3VwIGlzIHRoYXQgdGhlcmUgaGFzIGJlZW4gYSBsb3QNCj4gPj4gb2YgcHVzaCBmb3Ig
bWljcm8tV0cgdG8gYmUgZm9ybWVkIGZvciB2YXJpb3VzIHlhbmcgZWZmb3J0cy4gIEkNCj4gPj4g
cGVyc29uYWxseSBiZWxpZXZlIHdlJ3JlIGJldHRlciBvZmYgd2l0aCBzb21lIG93bmluZyBXRyB0
YWtpbmcgb24gdGhlDQo+ID4+IHRhc2sgYnV0IGhhbmRsaW5nIGl0IHdpdGhpbiB0aGUgY29udGV4
dCBvZiBhIGRlc2lnbiB0ZWFtLiAgVGhlIG92ZXJoZWFkIG9mIGENCj4gZnVsbCBXRyBpcyBsaWtl
bHkgbm90IG1lcml0ZWQuDQo+ID4+DQo+ID4+IFdoaWNoIFdHIHRoZSBkZXNpZ24gdGVhbSByZXBv
cnRzIHRvIGlzLCBvZiBjb3Vyc2UsIHVwIGZvciBkaXNjdXNzaW9uLg0KPiA+Pg0KPiA+DQo+ID4g
V2hhdCB3YXMgaW4gdGhlIG9yaWdpbmFsIEkyUlMgY2hhcnRlciB3YXMgcm91dGluZyB0b3BvbG9n
eSBleHBvcnQNCj4gPiAocmVhZC1vbmx5KS4gR29pbmcgZnJvbSB0aGVyZSB0byBhIGdlbmVyaWMg
dG9wb2xvZ3kgbW9kZWwgKHdoaWNoDQo+ID4gbGlrZWx5IHNob3VsZCBub3QgYmUgbGltaXRlZCB0
byBjb25maWcgZmFsc2UpIGlzIHF1aXRlIGEgc3RlcC4gSQ0KPiA+IHBlcnNvbmFsbHkgZmluZCBp
dCBzdWItb3B0aW1hbCB0byBkbyB0aGUgZ2VuZXJpYyBtb2RlbCBpbiBXRyBBIGFuZA0KPiA+IHNl
dmVyYWwgZXh0ZW5zaW9ucyBvZiB0aGUgZ2VuZXJpYyBtb2RlbCBpbiBXRyBCIHBsdXMgc29tZSBt
b3JlDQo+ID4gZXh0ZW5zaW9ucyBpbiBXRyBDLCBtb3N0IGxpa2VseSBjcm9zc2luZyBJRVRGIGFy
ZWFzLiBUaGUgY29vcmRpbmF0aW9uDQo+ID4gcmVzdWx0aW5nIGZyb20gdGhpcyB3aWxsIG1vc3Qg
bGlrZWx5IHNsb3cgdGhpbmdzIGRvd24uDQo+ID4NCj4gPiAvanMNCj4gPg0KPiANCj4gQW5keQ0K
PiANCj4gPiAtLQ0KPiA+IEp1ZXJnZW4gU2Nob2Vud2FlbGRlciAgICAgICAgICAgSmFjb2JzIFVu
aXZlcnNpdHkgQnJlbWVuIGdHbWJIDQo+ID4gUGhvbmU6ICs0OSA0MjEgMjAwIDM1ODcgICAgICAg
ICBDYW1wdXMgUmluZyAxIHwgMjg3NTkgQnJlbWVuIHwNCj4gR2VybWFueQ0KPiA+IEZheDogICAr
NDkgNDIxIDIwMCAzMTAzICAgICAgICAgPGh0dHA6Ly93d3cuamFjb2JzLXVuaXZlcnNpdHkuZGUv
Pg0KPiA+DQo+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18NCj4gPiBuZXRtb2QgbWFpbGluZyBsaXN0DQo+ID4gbmV0bW9kQGlldGYub3JnDQo+ID4gaHR0
cHM6Ly93d3cuaWV0Zi5vcmcvbWFpbG1hbi9saXN0aW5mby9uZXRtb2QNCg==


From nobody Mon Mar  9 20:09:11 2015
Return-Path: <andy@yumaworks.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 61FA21A008F for <netmod@ietfa.amsl.com>; Mon,  9 Mar 2015 20:09:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.979
X-Spam-Level: 
X-Spam-Status: No, score=-1.979 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] 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 fPrLxePfcQYw for <netmod@ietfa.amsl.com>; Mon,  9 Mar 2015 20:09:08 -0700 (PDT)
Received: from mail-la0-f50.google.com (mail-la0-f50.google.com [209.85.215.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1064D1A00E5 for <netmod@ietf.org>; Mon,  9 Mar 2015 20:09:06 -0700 (PDT)
Received: by labge10 with SMTP id ge10so8112605lab.7 for <netmod@ietf.org>; Mon, 09 Mar 2015 20:09:04 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=WddIXL75ajqo3R+DLFjfH5R/7OvvEihasTwg2O38U64=; b=Yxv8PbK5LW5V3bp3Ol1oCp3llPO/fXDqg+/g9WyM5dOj7la1W1o7dpXV589X5+5afO xG+GNR0pvkYImCUPqtoqI3YUlSKqUZdrQhsNpOiHLQ3JzSoegTKgRgmDUh8bdnZpSET5 ic/xuqP2vQ7ubik4E0Q6RdCKHEgd2neio9ihqkwxXZCoJSxCmU15j5a/b+2wGKS7u4mW NdgYAIDUa5Y2XRg3PJzUhjbdQYPezBV6N094QP8yMbXJD+wfanxzWH22UG1YIQqS6rbo qDFX4j207W0er6nBIFPQTkMDpH1aCG5gbObdISvLJV3n4jDGwP5SvFqQ6MlBwdXcvQ53 WYQA==
X-Gm-Message-State: ALoCoQkbkpAWnvaEFYM0UMZ69YyAbY5J06mnaxvf9rrpNpiSC3jWe5x4k0xIyKwB4+e06lg6KI7c
MIME-Version: 1.0
X-Received: by 10.112.133.225 with SMTP id pf1mr28692529lbb.33.1425956944398;  Mon, 09 Mar 2015 20:09:04 -0700 (PDT)
Received: by 10.112.144.36 with HTTP; Mon, 9 Mar 2015 20:09:04 -0700 (PDT)
In-Reply-To: <76CD132C3ADEF848BD84D028D243C92733851CD7@nkgeml512-mbx.china.huawei.com>
References: <54F985E2.6020304@cisco.com> <20150306110536.GA73575@elstar.local> <20150308190837.GA12948@pfrc> <20150308202910.GA2276@elstar.local> <CABCOCHTS_t3A1Uyv2pAsNiOEnMOb9KiRYYVa8jiR5ZVSBsO4yQ@mail.gmail.com> <76CD132C3ADEF848BD84D028D243C92733851CD7@nkgeml512-mbx.china.huawei.com>
Date: Mon, 9 Mar 2015 20:09:04 -0700
Message-ID: <CABCOCHQMTthQ59-yhqAaKzxY3OMoKFUkHQ_5t6xHgE4NtrQvcQ@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: "Dongjie (Jimmy)" <jie.dong@huawei.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/xP4VfG87POsZWg1u6Fd8To3jvjs>
Cc: NETMOD Working Group <netmod@ietf.org>, "draft-dong-i2rs-network-inventory@tools.ietf.org" <draft-dong-i2rs-network-inventory@tools.ietf.org>, "i2rs-chairs@tools.ietf.org" <i2rs-chairs@tools.ietf.org>
Subject: Re: [netmod] Inventory YANG model (entity-MIB)
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: <http://www.ietf.org/mail-archive/web/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: Tue, 10 Mar 2015 03:09:10 -0000

On Mon, Mar 9, 2015 at 7:44 PM, Dongjie (Jimmy) <jie.dong@huawei.com> wrote=
:
> Hi Andy,
>
> Thanks for your feedback. Please see my replies inline:
>....
>>
>> I start to worry about I2RS boiling the ocean when I see inventory data =
models
>> in that WG. I question the value of converting every OID to a YANG ident=
ity, or
>> making gratuitous name changes to every leaf.
>
> The inventory model was motivated by some discussion in the I2RS interim,=
 and we are open to move this work to Netmod if people are more interested =
to do this work here.
> As Jeff said, simple conversion of MIB to Yang is not exactly our goal. H=
opefully we can make good use of Yang to build a base inventory model, whic=
h is extensible with augmentation to build more specific models.
>


I am not that concerned where the work gets done, but rather with
SNMP integration.  Some vendors have invested quite a lot of resources
supporting that particular classification system.  The overhead and complex=
ity
of supporting 2 inventory systems seems rather unjustified.


>> Perhaps an SMI to YANG translation of the ENTITY-MIB will be a good enou=
gh
>> starting point. I prefer to see IETF YANG work focus on configuration, r=
ather
>> than reinvent monitoring solutions that have been deployed for many year=
s.
>
> To my understanding, SMI to Yang translation gives you read-only models, =
while with Yang we can do both read and write. I'd agree that the inventory=
 yang model should not limit its scope for monitoring, and we need to discu=
ss what configurations should be considered as part of the inventory model.=
 We'd appreciate your contributions on both aspects. Thanks.
>

Inventory is usually read-only.
Annotations can be added with indexing (not directly within the
operational data).

I would suggest starting by explaining why the
existing SMIv2 data cannot be used (via SMI to YANG translation)
and explain what new features that are needed by I2RS
in order to write to the RIB.

> Best regards,
> Jie

Andy

>
>> >> > PS: I personally would have preferred if generic topology and perha=
ps
>> >> >     inventory would have split off into a short-lived targeted WG
>> >> >     instead of doing all of this in I2RS but it seems leadership ha=
s
>> >> >     already decided that I2RS is the home for all of this.
>> >>
>> >> [speaking as one of the i2rs-chairs]
>> >>
>> >> Topology was one of the use cases that was in-charter and we're not
>> >> looking to significantly expand our charter work.  But one thing
>> >> we've noted over the life of the group is that there has been a lot
>> >> of push for micro-WG to be formed for various yang efforts.  I
>> >> personally believe we're better off with some owning WG taking on the
>> >> task but handling it within the context of a design team.  The overhe=
ad of a
>> full WG is likely not merited.
>> >>
>> >> Which WG the design team reports to is, of course, up for discussion.
>> >>
>> >
>> > What was in the original I2RS charter was routing topology export
>> > (read-only). Going from there to a generic topology model (which
>> > likely should not be limited to config false) is quite a step. I
>> > personally find it sub-optimal to do the generic model in WG A and
>> > several extensions of the generic model in WG B plus some more
>> > extensions in WG C, most likely crossing IETF areas. The coordination
>> > resulting from this will most likely slow things down.
>> >
>> > /js
>> >
>>
>> Andy
>>
>> > --
>> > Juergen Schoenwaelder           Jacobs University Bremen gGmbH
>> > Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen |
>> Germany
>> > Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>
>> >
>> > _______________________________________________
>> > netmod mailing list
>> > netmod@ietf.org
>> > https://www.ietf.org/mailman/listinfo/netmod


From nobody Tue Mar 10 00:11:24 2015
Return-Path: <j.schoenwaelder@jacobs-university.de>
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 0A1391B2A06 for <netmod@ietfa.amsl.com>; Tue, 10 Mar 2015 00:11:23 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.86
X-Spam-Level: 
X-Spam-Status: No, score=-3.86 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] 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 Ad6Sv6td7o5G for <netmod@ietfa.amsl.com>; Tue, 10 Mar 2015 00:11:20 -0700 (PDT)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C24571B2A01 for <netmod@ietf.org>; Tue, 10 Mar 2015 00:11:19 -0700 (PDT)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id 4089778A; Tue, 10 Mar 2015 08:11:18 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.220]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id 9MzuyIQwkckG; Tue, 10 Mar 2015 08:11:10 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS; Tue, 10 Mar 2015 08:11:17 +0100 (CET)
Received: from localhost (demetrius1.jacobs-university.de [212.201.44.46]) by hermes.jacobs-university.de (Postfix) with ESMTP id C9B7E2003D; Tue, 10 Mar 2015 08:11:16 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius1.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id MDfMHNB-Lt2N; Tue, 10 Mar 2015 08:11:14 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id 74DBC2003C; Tue, 10 Mar 2015 08:11:14 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id AB8EB327572F; Tue, 10 Mar 2015 08:11:13 +0100 (CET)
Date: Tue, 10 Mar 2015 08:11:12 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: "Dongjie (Jimmy)" <jie.dong@huawei.com>
Message-ID: <20150310071110.GA5901@elstar.local>
Mail-Followup-To: "Dongjie (Jimmy)" <jie.dong@huawei.com>, Andy Bierman <andy@yumaworks.com>, Jeffrey Haas <jhaas@pfrc.org>, Benoit Claise <bclaise@cisco.com>, NETMOD Working Group <netmod@ietf.org>, "draft-dong-i2rs-network-inventory@tools.ietf.org" <draft-dong-i2rs-network-inventory@tools.ietf.org>,  "i2rs-chairs@tools.ietf.org" <i2rs-chairs@tools.ietf.org>
References: <54F985E2.6020304@cisco.com> <20150306110536.GA73575@elstar.local> <20150308190837.GA12948@pfrc> <20150308202910.GA2276@elstar.local> <CABCOCHTS_t3A1Uyv2pAsNiOEnMOb9KiRYYVa8jiR5ZVSBsO4yQ@mail.gmail.com> <76CD132C3ADEF848BD84D028D243C92733851CD7@nkgeml512-mbx.china.huawei.com>
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="GvXjxJ+pjyke8COw"
Content-Disposition: inline
In-Reply-To: <76CD132C3ADEF848BD84D028D243C92733851CD7@nkgeml512-mbx.china.huawei.com>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/oDy7jNdEY2H9l4LJAGhFP_7WZ4w>
Cc: NETMOD Working Group <netmod@ietf.org>, "draft-dong-i2rs-network-inventory@tools.ietf.org" <draft-dong-i2rs-network-inventory@tools.ietf.org>, "i2rs-chairs@tools.ietf.org" <i2rs-chairs@tools.ietf.org>
Subject: Re: [netmod] Inventory YANG model (entity-MIB)
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
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: <http://www.ietf.org/mail-archive/web/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: Tue, 10 Mar 2015 07:11:23 -0000

--GvXjxJ+pjyke8COw
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

On Tue, Mar 10, 2015 at 02:44:06AM +0000, Dongjie (Jimmy) wrote:

> To my understanding, SMI to Yang translation gives you read-only
> models, while with Yang we can do both read and write. I'd agree
> that the inventory yang model should not limit its scope for
> monitoring, and we need to discuss what configurations should be
> considered as part of the inventory model. We'd appreciate your
> contributions on both aspects.

Perhaps it helps if people can explain which problem is to be solved
with the inventory data model. The ENTITY-MIB primarily exports the
internal structure of a physical device (a containment hierarchy of
physical components) to management applications. Some extensions
provide access to more detailed state information and to sensors often
attached to hardware components. Most of this is not configurable
(although you can attach deployment specific identifiers and
descriptions).

Can someone provide a concise description which problems the inventory
data model is trying to solve? Is it essentially adressing the same
functionality as the ENTITY-MIB or something different? If so, I
assume there is not much too configure - a few 'postit' objects and
perhaps an administrative state object.

/js

PS: I am attaching the combined tree of the ENTITY*MIB modules
    published by the IETF.

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>

--GvXjxJ+pjyke8COw
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="entity-mibs-tree.txt"

# united registration tree (generated by smidump 0.4.8)

--mib-2(1.3.6.1.2.1)
  +--entityMIB(47)
  |  +--entityMIBObjects(1)
  |  |  +--entityPhysical(1)
  |  |  |  +--entPhysicalTable(1)
  |  |  |     +--entPhysicalEntry(1) [entPhysicalIndex]
  |  |  |        +-- --- PhysicalIndex       entPhysicalIndex(1)
  |  |  |        +-- r-n SnmpAdminString     entPhysicalDescr(2)
  |  |  |        +-- r-n AutonomousType      entPhysicalVendorType(3)
  |  |  |        +-- r-n PhysicalIndexOrZero entPhysicalContainedIn(4)
  |  |  |        +-- r-n IANAPhysicalClass   entPhysicalClass(5)
  |  |  |        +-- r-n Integer32           entPhysicalParentRelPos(6)
  |  |  |        +-- r-n SnmpAdminString     entPhysicalName(7)
  |  |  |        +-- r-n SnmpAdminString     entPhysicalHardwareRev(8)
  |  |  |        +-- r-n SnmpAdminString     entPhysicalFirmwareRev(9)
  |  |  |        +-- r-n SnmpAdminString     entPhysicalSoftwareRev(10)
  |  |  |        +-- rwn SnmpAdminString     entPhysicalSerialNum(11)
  |  |  |        +-- r-n SnmpAdminString     entPhysicalMfgName(12)
  |  |  |        +-- r-n SnmpAdminString     entPhysicalModelName(13)
  |  |  |        +-- rwn SnmpAdminString     entPhysicalAlias(14)
  |  |  |        +-- rwn SnmpAdminString     entPhysicalAssetID(15)
  |  |  |        +-- r-n TruthValue          entPhysicalIsFRU(16)
  |  |  |        +-- r-n DateAndTime         entPhysicalMfgDate(17)
  |  |  |        +-- rwn OctetString         entPhysicalUris(18)
  |  |  |        +-- r-n UUIDorZero          entPhysicalUUID(19)
  |  |  +--entityLogical(2)
  |  |  |  +--entLogicalTable(1)
  |  |  |     +--entLogicalEntry(1) [entLogicalIndex]
  |  |  |        +-- --- Integer32          entLogicalIndex(1)
  |  |  |        +-- r-n SnmpAdminString    entLogicalDescr(2)
  |  |  |        +-- r-n AutonomousType     entLogicalType(3)
  |  |  |        x-- r-n OctetString        entLogicalCommunity(4)
  |  |  |        +-- r-n TAddress           entLogicalTAddress(5)
  |  |  |        +-- r-n TDomain            entLogicalTDomain(6)
  |  |  |        +-- r-n SnmpEngineIdOrNone entLogicalContextEngineID(7)
  |  |  |        +-- r-n SnmpAdminString    entLogicalContextName(8)
  |  |  +--entityMapping(3)
  |  |  |  +--entLPMappingTable(1)
  |  |  |  |  +--entLPMappingEntry(1) [entLogicalIndex,entLPPhysicalIndex]
  |  |  |  |     +-- r-n PhysicalIndex entLPPhysicalIndex(1)
  |  |  |  +--entAliasMappingTable(2)
  |  |  |  |  +--entAliasMappingEntry(1) [entPhysicalIndex,entAliasLogicalIndexOrZero]
  |  |  |  |     +-- --- Integer32  entAliasLogicalIndexOrZero(1)
  |  |  |  |     +-- r-n RowPointer entAliasMappingIdentifier(2)
  |  |  |  +--entPhysicalContainsTable(3)
  |  |  |     +--entPhysicalContainsEntry(1) [entPhysicalIndex,entPhysicalChildIndex]
  |  |  |        +-- r-n PhysicalIndex entPhysicalChildIndex(1)
  |  |  +--entityGeneral(4)
  |  |     +-- r-n TimeStamp entLastChangeTime(1)
  |  +--entityMIBTraps(2)
  |     +--entityMIBTrapPrefix(0)
  |        +--entConfigChange(1) []
  +--entitySensorMIB(99)
  |  +--entitySensorObjects(1)
  |     +--entPhySensorTable(1)
  |        +--entPhySensorEntry(1) [entPhysicalIndex]
  |           +-- r-n EntitySensorDataType  entPhySensorType(1)
  |           +-- r-n EntitySensorDataScale entPhySensorScale(2)
  |           +-- r-n EntitySensorPrecision entPhySensorPrecision(3)
  |           +-- r-n EntitySensorValue     entPhySensorValue(4)
  |           +-- r-n EntitySensorStatus    entPhySensorOperStatus(5)
  |           +-- r-n SnmpAdminString       entPhySensorUnitsDisplay(6)
  |           +-- r-n TimeStamp             entPhySensorValueTimeStamp(7)
  |           +-- r-n Unsigned32            entPhySensorValueUpdateRate(8)
  +--entityStateMIB(131)
     +--entStateNotifications(0)
     |  +--entStateOperEnabled(1) [entStateAdmin,entStateAlarm]
     |  +--entStateOperDisabled(2) [entStateAdmin,entStateAlarm]
     +--entStateObjects(1)
        +--entStateTable(1)
           +--entStateEntry(1) [entPhysicalIndex]
              +-- r-n DateAndTime         entStateLastChanged(1)
              +-- rwn EntityAdminState    entStateAdmin(2)
              +-- r-n EntityOperState     entStateOper(3)
              +-- r-n EntityUsageState    entStateUsage(4)
              +-- r-n EntityAlarmStatus   entStateAlarm(5)
              +-- r-n EntityStandbyStatus entStateStandby(6)

--GvXjxJ+pjyke8COw--


From nobody Tue Mar 10 04:26:40 2015
Return-Path: <balazs.lengyel@ericsson.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 126DC1A879B for <netmod@ietfa.amsl.com>; Tue, 10 Mar 2015 04:26:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.201
X-Spam-Level: 
X-Spam-Status: No, score=-4.201 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001] 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 NCcav_HdOEOV for <netmod@ietfa.amsl.com>; Tue, 10 Mar 2015 04:26:37 -0700 (PDT)
Received: from sesbmg23.ericsson.net (sesbmg23.ericsson.net [193.180.251.37]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9B53B1A00CF for <netmod@ietf.org>; Tue, 10 Mar 2015 04:26:36 -0700 (PDT)
X-AuditID: c1b4fb25-f79b76d00000113a-e1-54fed4ea78dd
Received: from ESESSHC015.ericsson.se (Unknown_Domain [153.88.253.124]) by sesbmg23.ericsson.net (Symantec Mail Security) with SMTP id 9A.42.04410.AE4DEF45; Tue, 10 Mar 2015 12:26:34 +0100 (CET)
Received: from [159.107.197.215] (153.88.183.153) by smtp.internal.ericsson.com (153.88.183.65) with Microsoft SMTP Server id 14.3.210.2; Tue, 10 Mar 2015 12:26:34 +0100
Message-ID: <54FED4E9.5080503@ericsson.com>
Date: Tue, 10 Mar 2015 12:26:33 +0100
From: Balazs Lengyel <balazs.lengyel@ericsson.com>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0
MIME-Version: 1.0
To: "netmod@ietf.org" <netmod@ietf.org>
Content-Type: text/plain; charset="utf-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrGJMWRmVeSWpSXmKPExsUyM+Jvje6rK/9CDI5etLSYf7GR1YHRY8mS n0wBjFFcNimpOZllqUX6dglcGd+aGpkKetkquu49Y2pgPMXSxcjJISFgIrF2xW92CFtM4sK9 9WxdjFwcQgJHGCV2dJ5iBUkICaxllDh1zbKLkYODV0Bb4sKRYpAwi4CqRMP8T2C9bAJGElP7 z4PNFBWIkuj5080GYvMKCEqcnPkELC4ioC4xc+d6sLiwgKXEwaaHTCA2s4CFxMz55xkhbHmJ 7W/nMEOs1ZB4eOEv6wRGvllIRs1C0jILScsCRuZVjKLFqcVJuelGxnqpRZnJxcX5eXp5qSWb GIEBdXDLb9UdjJffOB5iFOBgVOLhNYj7FyLEmlhWXJl7iFGag0VJnNfO+FCIkEB6Yklqdmpq QWpRfFFpTmrxIUYmDk6pBsZS4cTUHPPsafMvpk33C8s4LmRpf/yb9TOH13d/9+T5TPPfNcFz NmeuilW/pPRhe+2FsexFzn3qK8O+tjx+dHh2rU7v1q7569pvf1jK2rt53aO+sh9NdrO/7BDv 2r809OQapsUPBV4l7G18YHaCoyDz2kSW49JHdN61BOwJeP/3ps3Xz3PqhO4osRRnJBpqMRcV JwIAPzTPMgkCAAA=
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/wDYaaGjgAL29MwtB_0Zz_AqeWhY>
Subject: [netmod] Is it possible to change a list enty's key/keys?
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: <http://www.ietf.org/mail-archive/web/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: Tue, 10 Mar 2015 11:26:39 -0000

Hello,
Is it possible to change a list entry's key or keys without deleting and 
re-creating the entry. Can the replace operation be applied somehow on 
key leafs?

I only found this in the mailing list:
http://www.ietf.org/mail-archive/web/netmod/current/msg01194.html
"

No, you are right, this is what Sec. 7.8.6 says. The edit-config
operations (including default-operation) probably must not be applied to
keys in any way. But it also means there is no way for changing values
of leafs that happen to be part of the key.

"

regards Balazs

-- 
Balazs Lengyel                       Ericsson Hungary Ltd.
Senior Specialist
ECN: 831 7320                        Tel: +36-1-437-7320
Mobile: +36-70-330-7909              email: Balazs.Lengyel@ericsson.com


From nobody Tue Mar 10 04:49:24 2015
Return-Path: <mbj@tail-f.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 6A2B21A87B8; Tue, 10 Mar 2015 04:49:21 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.911
X-Spam-Level: 
X-Spam-Status: No, score=-1.911 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] 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 iuML88tOdfJH; Tue, 10 Mar 2015 04:49:20 -0700 (PDT)
Received: from mail.tail-f.com (mail.tail-f.com [83.241.162.140]) by ietfa.amsl.com (Postfix) with ESMTP id DD2C11A8784; Tue, 10 Mar 2015 04:49:19 -0700 (PDT)
Received: from localhost (173-38-208-170.cisco.com [173.38.208.170]) by mail.tail-f.com (Postfix) with ESMTPSA id C5D0D1280984; Tue, 10 Mar 2015 12:49:18 +0100 (CET)
Date: Tue, 10 Mar 2015 12:49:18 +0100 (CET)
Message-Id: <20150310.124918.1580857159128244873.mbj@tail-f.com>
To: balazs.lengyel@ericsson.com
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <54FED4E9.5080503@ericsson.com>
References: <54FED4E9.5080503@ericsson.com>
X-Mailer: Mew version 6.5 on Emacs 23.4 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/2SPTR8qguYS7I3d3eH24YWRCrnQ>
Cc: netconf@ietf.org, netmod@ietf.org
Subject: Re: [netmod] Is it possible to change a list enty's key/keys?
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: <http://www.ietf.org/mail-archive/web/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: Tue, 10 Mar 2015 11:49:21 -0000

Hi,

This is a protocol issue.  I am sending the reply to netconf as well.
New replies should remove netmod from cc.

Balazs Lengyel <balazs.lengyel@ericsson.com> wrote:
> Hello,
> Is it possible to change a list entry's key or keys without deleting
> and re-creating the entry. Can the replace operation be applied
> somehow on key leafs?

No.  This is an side-effect of the way edit-config works, where the
identification of *what* is changed it mixed with *how* to change it.

> I only found this in the mailing list:
> http://www.ietf.org/mail-archive/web/netmod/current/msg01194.html
> "
> 
> No, you are right, this is what Sec. 7.8.6 says. The edit-config
> operations (including default-operation) probably must not be applied
> to
> keys in any way. But it also means there is no way for changing values
> of leafs that happen to be part of the key.

The last sentence says the same.


/martin


From nobody Tue Mar 10 06:15:19 2015
Return-Path: <sunqi.csnet.thu@gmail.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 F0C871A885F for <netmod@ietfa.amsl.com>; Tue, 10 Mar 2015 06:15:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level: 
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9,  DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, SPF_PASS=-0.001] 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 MUpQvkgRhhao for <netmod@ietfa.amsl.com>; Tue, 10 Mar 2015 06:15:11 -0700 (PDT)
Received: from mail-wg0-x236.google.com (mail-wg0-x236.google.com [IPv6:2a00:1450:400c:c00::236]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 8DCF81A883A for <netmod@ietf.org>; Tue, 10 Mar 2015 06:15:11 -0700 (PDT)
Received: by wghl18 with SMTP id l18so1713410wgh.5 for <netmod@ietf.org>; Tue, 10 Mar 2015 06:15:10 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;  h=from:content-type:content-transfer-encoding:subject:date:references :to:message-id:mime-version; bh=h/KTPtWvlaLZEODDXQi3WkiBJKELxOW/E8IKHar03gI=; b=eYzs7fxNY5iwMSTRjsUmkwWK9yLM6uUz0FBzXXPapgjAyTLAMPBbEDSitReBikdTIk BJVJ1fMWQBKUPE2w6qBT3lMqmfD3TYbC03eKtLJtVLtyS3oKFOgrdAUK7Eg5WVl9V5Zc NndayJCxIvOIwIcJDMG6NXvgv5DbXC5jBiIwJ9rw4Ia/rchuxjB5iFmWcLbKl0WG6y/t SUwVjtGB/BLXqaZPBGEmRab4yG9Gbx9qjLN/onzYDaIA6BQDB56kwiH8/OEafbbbrlj2 mt3WDTjPz/yRioe8IiVE2wx61uiS2zg++ci1a5OI8PyYtkHXJurYNCI3wqWIriqyjLjd zKhg==
X-Received: by 10.194.110.69 with SMTP id hy5mr69545046wjb.121.1425993310274;  Tue, 10 Mar 2015 06:15:10 -0700 (PDT)
Received: from host-2003-1c09-0021-0d00-04f2-2029-0652-c529.1c09-h.de.terastrm.net (host-2003-1c09-0021-0d00-04f2-2029-0652-c529.1c09-h.de.terastrm.net. [2003:1c09:21:d00:4f2:2029:652:c529]) by mx.google.com with ESMTPSA id a13sm843291wjx.30.2015.03.10.06.15.09 for <netmod@ietf.org> (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Tue, 10 Mar 2015 06:15:09 -0700 (PDT)
From: Qi Sun <sunqi.csnet.thu@gmail.com>
Content-Type: text/plain; charset=windows-1252
Content-Transfer-Encoding: quoted-printable
Date: Tue, 10 Mar 2015 14:15:06 +0100
References: <2D14ACF76AC6BD459665F2FE98ECB831BD66E20BB4@HE101452.emea1.cds.t-internal.com>
To: netmod@ietf.org
Message-Id: <12E9E6B9-F79E-4091-9709-E216BB335A40@gmail.com>
Mime-Version: 1.0 (Mac OS X Mail 7.2 \(1874\))
X-Mailer: Apple Mail (2.1874)
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/SxF2NukUc4-gZgtPvAqu4qV7zU4>
Subject: [netmod] Fwd: New Version Notification for draft-sf-netmod-file-transfer-yang-00.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: <http://www.ietf.org/mail-archive/web/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: Tue, 10 Mar 2015 13:15:18 -0000

Dear all,=20

We=92ve developed a YANG model for file transfer. This model supports =
both upload and download process. It can be used in various scenarios, =
including HGW software/firmware upgrading, remote file backup, etc.

Please can you review this document.

Thanks,
Qi


Begin forwarded message:
>=20
> -----Original Message-----
> From: internet-drafts@ietf.org [mailto:internet-drafts@ietf.org]=20
> Sent: Montag, 9. M=E4rz 2015 17:02
> To: Sun, Qui; Farrer, Ian; Farrer, Ian; Sun, Qui
> Subject: New Version Notification for =
draft-sf-netmod-file-transfer-yang-00.txt
>=20
>=20
> A new version of I-D, draft-sf-netmod-file-transfer-yang-00.txt
> has been successfully submitted by Qi Sun and posted to the IETF =
repository.
>=20
> Name:		draft-sf-netmod-file-transfer-yang
> Revision:	00
> Title:		A YANG Data Model for Transferring Files
> Document date:	2015-03-09
> Group:		Individual Submission
> Pages:		13
> URL:            =
http://www.ietf.org/internet-drafts/draft-sf-netmod-file-transfer-yang-00.=
txt
> Status:         =
https://datatracker.ietf.org/doc/draft-sf-netmod-file-transfer-yang/
> Htmlized:       =
http://tools.ietf.org/html/draft-sf-netmod-file-transfer-yang-00
>=20
>=20
> Abstract:
>   This document defines a YANG data model for the transfer of files
>   between devices.  The data model includes operation data and state
>   data.
>=20
>=20
>=20
>=20
>=20
> 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.
>=20
> The IETF Secretariat
>=20


From nobody Tue Mar 10 06:50:18 2015
Return-Path: <j.schoenwaelder@jacobs-university.de>
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 04E001B2A47 for <netmod@ietfa.amsl.com>; Tue, 10 Mar 2015 06:50:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.86
X-Spam-Level: 
X-Spam-Status: No, score=-3.86 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] 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 PCnFJwBXlDdb for <netmod@ietfa.amsl.com>; Tue, 10 Mar 2015 06:50:15 -0700 (PDT)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A52761A70FD for <netmod@ietf.org>; Tue, 10 Mar 2015 06:50:11 -0700 (PDT)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id 736039E4; Tue, 10 Mar 2015 14:50:10 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.220]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id CB3TwcSvN363; Tue, 10 Mar 2015 14:50:01 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS; Tue, 10 Mar 2015 14:50:09 +0100 (CET)
Received: from localhost (demetrius1.jacobs-university.de [212.201.44.46]) by hermes.jacobs-university.de (Postfix) with ESMTP id 9FFFC2003D; Tue, 10 Mar 2015 14:50:09 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius1.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id Myn1EA8k-Rug; Tue, 10 Mar 2015 14:50:08 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id 269E02003C; Tue, 10 Mar 2015 14:50:08 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id D3D3C327606C; Tue, 10 Mar 2015 14:50:06 +0100 (CET)
Date: Tue, 10 Mar 2015 14:50:05 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Qi Sun <sunqi.csnet.thu@gmail.com>
Message-ID: <20150310135005.GA7164@elstar.local>
Mail-Followup-To: Qi Sun <sunqi.csnet.thu@gmail.com>, netmod@ietf.org
References: <2D14ACF76AC6BD459665F2FE98ECB831BD66E20BB4@HE101452.emea1.cds.t-internal.com> <12E9E6B9-F79E-4091-9709-E216BB335A40@gmail.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <12E9E6B9-F79E-4091-9709-E216BB335A40@gmail.com>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/jFeswynFqhDudPD2YX0XMu2DCCo>
Cc: netmod@ietf.org
Subject: Re: [netmod] Fwd: New Version Notification for draft-sf-netmod-file-transfer-yang-00.txt
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
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: <http://www.ietf.org/mail-archive/web/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: Tue, 10 Mar 2015 13:50:17 -0000

On Tue, Mar 10, 2015 at 02:15:06PM +0100, Qi Sun wrote:
> Dear all, 
> 
> Weâ€™ve developed a YANG model for file transfer. This model supports both upload and download process. It can be used in various scenarios, including HGW software/firmware upgrading, remote file backup, etc.
> 
> Please can you review this document.
>

Quick questions while browsing the YANG: Since the URIs already
contain information how to access a resource, why do I also have to
define a trans-method?  This seems to be be redundant (and what
happens if things do not line up?). I do not know why
credential-lifetime is needed (the transfer will fail anyway when the
credentials are not valid anymore), I do not understand the timeframe
leaf and some of the other retry parameters, they likely lack units
and descriptions. Assuming that 'index' in fact is a key of list
"file-transfered", I would actually define it to be a list key. I am
not sure why it is needed to have credential-method in the state
tree. What is the value of knowing the retry count while not exposing
the max number of retries? And should there be a cancel mechanism as
well? I am also not sure how the md5 checksum is supposed to work -
does this imply another transfer for the checksum to be verified
against?

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Tue Mar 10 07:33:34 2015
Return-Path: <tnadeau@lucidvision.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 D9A811A88F0 for <netmod@ietfa.amsl.com>; Tue, 10 Mar 2015 07:33:31 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.895
X-Spam-Level: 
X-Spam-Status: No, score=0.895 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FH_RELAY_NODNS=1.451, HELO_MISMATCH_COM=0.553, RDNS_NONE=0.793, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=no
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 VWwwx1WiuEd8 for <netmod@ietfa.amsl.com>; Tue, 10 Mar 2015 07:33:26 -0700 (PDT)
Received: from lucidvision.com (unknown [50.255.148.178]) by ietfa.amsl.com (Postfix) with ESMTP id 6AA081AC42D for <netmod@ietf.org>; Tue, 10 Mar 2015 07:32:48 -0700 (PDT)
Received: from [192.168.1.120] (unknown [50.255.148.177]) by lucidvision.com (Postfix) with ESMTP id EE4E830282CC; Tue, 10 Mar 2015 10:32:47 -0400 (EDT)
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2070.6\))
From: "Thomas D. Nadeau" <tnadeau@lucidvision.com>
In-Reply-To: <D1238033.B1B39%asechoud@cisco.com>
Date: Tue, 10 Mar 2015 10:32:50 -0400
Content-Transfer-Encoding: quoted-printable
Message-Id: <5391380E-DA7D-4EB3-BE50-C9F59DC8FF49@lucidvision.com>
References: <D1238033.B1B39%asechoud@cisco.com>
To: "Aseem Choudhary (asechoud)" <asechoud@cisco.com>
X-Mailer: Apple Mail (2.2070.6)
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/YzL_DEEMJlqUIPJpbOxsFWZxMOg>
Cc: "netmod-chairs@tools.ietf.org" <netmod-chairs@tools.ietf.org>, NETMOD Working Group <netmod@ietf.org>
Subject: Re: [netmod] IETF92 Netmod Agenda
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: <http://www.ietf.org/mail-archive/web/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: Tue, 10 Mar 2015 14:33:32 -0000

ack

> On Mar 9, 2015:7:58 PM, at 7:58 PM, Aseem Choudhary (asechoud) =
<asechoud@cisco.com> wrote:
>=20
> Hi Tom,
>=20
> We need 10 minutes to present Diffserv Yang Model version-01:
>=20
> https://tools.ietf.org/id/draft-asechoud-netmod-diffserv-model-01.txt
>=20
> Presenter: Mahesh Jethanandani
>=20
> -thanks,
> Aseem
>=20
>=20


From nobody Tue Mar 10 07:56:26 2015
Return-Path: <bclaise@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 175831A87C3 for <netmod@ietfa.amsl.com>; Tue, 10 Mar 2015 07:56:25 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.509
X-Spam-Level: 
X-Spam-Status: No, score=-14.509 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, WEIRD_PORT=0.001] 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 URU1TgUEsQIC for <netmod@ietfa.amsl.com>; Tue, 10 Mar 2015 07:56:21 -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 779881A8946 for <netmod@ietf.org>; Tue, 10 Mar 2015 07:56:20 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=16822; q=dns/txt; s=iport; t=1425999380; x=1427208980; h=message-id:date:from:mime-version:to:cc:subject: references:in-reply-to; bh=UBIq7ilvNt5fGNeGixCqjw9Fc2ofbZbb37g0PfDDhQA=; b=CQ7IYfzT1loGlwQkAfQQlyc7UBufen49oXtt87hLb7dmTuYLanSf+tLy Pf0HjEabaCvF39x1j67iHfdpL04F+Oh+dbiva40wcOEfU0EIU2pjLtx1s /bDAXGFVXXlk2gqtMM6z7yKFk+0dOXA50Qnlt+vrB3ffEe4l5LHjsN3hG Q=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0BDBQCnBP9U/xbLJq1cg1hawF+CPwEJhSdJAoF+AQEBAQEBfIQPAQEBBAEBAWsKAQwECxEEAQEBCRYIBwkDAgECARUfCQgGAQwBBQIBAQWIJg3DYwEBAQEBAQEBAQEBAQEBAQEBAQEBAReLF4QMEQFQBwaEJwWTc4FbP4FagXuBGhEohSIhjF4jggIcgVE9MQGBCoE4AQEB
X-IronPort-AV: E=Sophos;i="5.11,375,1422921600";  d="scan'208,217";a="388088169"
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; 10 Mar 2015 14:56:18 +0000
Received: from [10.60.67.85] (ams-bclaise-8914.cisco.com [10.60.67.85]) by aer-core-2.cisco.com (8.14.5/8.14.5) with ESMTP id t2AEuC7L027389; Tue, 10 Mar 2015 14:56:13 GMT
Message-ID: <54FF05EE.2070607@cisco.com>
Date: Tue, 10 Mar 2015 15:55:42 +0100
From: Benoit Claise <bclaise@cisco.com>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0
MIME-Version: 1.0
To: "Dongjie (Jimmy)" <jie.dong@huawei.com>, "Thomas D. Nadeau" <tnadeau@lucidvision.com>
References: <54F985E2.6020304@cisco.com> <20150306110536.GA73575@elstar.local> <54F997F5.8080500@cisco.com> <2D3BC67E-9B26-488E-BF4D-0FC899C3A8CA@lucidvision.com> <76CD132C3ADEF848BD84D028D243C92733850607@nkgeml512-mbx.china.huawei.com>
In-Reply-To: <76CD132C3ADEF848BD84D028D243C92733850607@nkgeml512-mbx.china.huawei.com>
Content-Type: multipart/alternative; boundary="------------070302010905020405000402"
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/kKROJzIjNl6PDtkkQk2RG5yDuVw>
Cc: "draft-dong-i2rs-network-inventory@tools.ietf.org" <draft-dong-i2rs-network-inventory@tools.ietf.org>, "i2rs-chairs@tools.ietf.org" <i2rs-chairs@tools.ietf.org>, NETMOD Working Group <netmod@ietf.org>
Subject: Re: [netmod] Inventory YANG model (entity-MIB)
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: <http://www.ietf.org/mail-archive/web/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: Tue, 10 Mar 2015 14:56:25 -0000

This is a multi-part message in MIME format.
--------------070302010905020405000402
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 8bit

Hi Jie,
> Hi Tom,
>
> Happy to know that Netmod has interests on the inventory Yang model, and we would be glad to move draft-dong-i2rs-network-inventory-00 to Netmod if it is decided by the ADs and chairs.
There are two different work items.
1. a YANG version of the ENTITY-MIB. This should be done in NETMOD

2. the mapping between the topology work and inventories. I like the way 
Jeff expressed it

    The structure of the generic topology draft is leading to interesting
    questions about how information present in that model can link to higher and
    lower layers.  As seen in the I2RS presentations at the most recent interim,
    this eventually leads to questions like "inventory".  I also raised the
    question about tunnels which will lead to other models as well.

This item 2 should be done in I2RS. I understood that 
draft-dong-i2rs-network-inventory was covering this item 2, with links 
to the interface, to the ENTITY YANG model, and I guess others.

Regards, Benoit
>
> Could we ask for a time slot of 10 mins to present the current inventory model draft and discuss the next-steps? Thanks.
>
> Contributions and discussions on this model are welcome.
>
> Best regards,
> Jie
>
>> -----Original Message-----
>> From: netmod [mailto:netmod-bounces@ietf.org] On Behalf Of Thomas D.
>> Nadeau
>> Sent: Friday, March 06, 2015 8:21 PM
>> To: Benoit Claise
>> Cc: draft-dong-i2rs-network-inventory@tools.ietf.org;
>> i2rs-chairs@tools.ietf.org; NETMOD Working Group
>> Subject: Re: [netmod] Inventory YANG model (entity-MIB)
>>
>>
>>> On Mar 6, 2015:7:05 AM, at 7:05 AM, Benoit Claise <bclaise@cisco.com>
>> wrote:
>>> Hi Jürgen,
>>>> On Fri, Mar 06, 2015 at 11:48:02AM +0100, Benoit Claise wrote:
>>>>> Dear all,
>>>>>
>>>>> The I2RS interim meeting yesterday focused on topology.
>>>>> Let me cut/paste a high level slide, with pointers to the relevant drafts.
>>>>>
>>>>>
>>>>> If interested, the meeting minutes are at
>>>>> http://etherpad.tools.ietf.org:9000/p/i2rs-interim-march-5-2015-v-bl
>>>>> uesheets
>>>>>
>>>>> Part of the inventory draft
>>>>> (http://datatracker.ietf.org/doc/draft-dong-i2rs-network-inventory/)
>>>>> discussion, the overlap with the ENTITY-MIB RFC 6933 was discussed
>>>>> (and RFC 7223 btw).
>>>>>
>>>>>
>>>>> The message was that I2RS should not re-invent something similar to
>>>>> the ENTITY-MIB So, are you aware of any initiatives to "YANGify" the
>>>>> ENTITY-MIB?
>>>>> It's true that there is a way to translate MIB into YANG with RFC 6643.
>>>>> This could be a good start. However, I wonder if a hand-written YANG
>>>>> model that closely follows the entPhysical would not be more beneficial.
>>>>> Is this something we should take on board in NETMOD?
>>>>>
>>>>> What do you think?
>>>>>
>>>>> Note: As commented by the I2RS people, indexing is appropriate in
>>>>> the MIB module for its original purpose, but may not be for the topology.
>>>>> I'm not sure we want to change the indexing just for the topology,
>>>>> but the integration within the topology draft should be thought of.
>>>>>
>>>> My first question is (perhaps not surprising) whether inventory falls
>>>> into the I2RS charter, I2RS = interface to the routing system.
>>> No it doesn't.
>>> As mentioned during the interim yesterday by the I2RS people, they would be
>> happy if the inventory work be done somewhere else. Hence this email thread. I
>> believe this work should be picked up by NETMOD .
>>
>> 	I agree with Juergen's assessment; this seems like it should be done in
>> NETMOD. We should figure out a way to leverage the entity MIB but given that
>> module's age, we should also be open to updates because the world has
>> changed since that was published.
>>
>> 	So there is a wider question as Juergen asked at the end of the thread:
>> should here be a concentrated effort to do topology/inventory that applies to
>> all areas ?  I'd say yes.  While not a super complicated, long effort, this is
>> something that needs to be done in a way that it applies to more than just the
>> use cases of a specific routing use case.  With that in mind, its important to get
>> the network operators involved on this effort so that this is not done in a
>> vendor vacuum.
>>
>> 	Speaking as an individual, I will point out that the topology model that I've
>> worked on with Jan et al you can see the approach taken on network topology.
>> This has been implemented in ODL, which means its being tried in production
>> environments right now and works quite well:
>>
>> http://www.ietf.org/archive/id/draft-medved-i2rs-topology-im-01.txt
>>
>> 	Another data point here. Shane and others have been been clear that an
>> inventory is needed and how it is a bit different than network topology as
>> specified above, but that it should be consistent in certain places too:
>>
>> https://datatracker.ietf.org/doc/draft-amante-i2rs-topology-use-cases/
>>
>> 	--Tom
>>
>>
>>> That
>>>> said, RFC 6643 gives you a read-only translation. There are not many
>>>> read-write objects in the ENTITY-MIB so perhaps this is good enough
>>>> for now. I guess it would help what I2RS needs to know in order to
>>>> make the interface to the routing system work.
>>>>
>>>> Anyway, if YANG models overlapping the ENTITY-MIB are done, they they
>>>> should at least allow implementation of both in a predictable manner.
>>>> Looking at draft-dong-i2rs-network-inventory-00, it seems the whole
>>>> interface list is already covered by RFC 7223 and interfaces should
>>>> be references not repeated (this is what the ENTITY-MIB does).
>>> Yes, I made that point.
>>> Similarly, this draft should reference a inventory YANG model
>>>
>>>> So what is
>>>> left is essentially a (not yet hierarchy) of 'cards' that seem to
>>>> more or less match the entPhysicalTable of the ENTITY-MIB (but then
>>>> the ENTITY-MIB has a more flexible model that distinguishes between
>>>> different kind of hardware components).
>>>> I also notice that the model
>>>> in draft-dong-i2rs-network-inventory-00 is config true - so I am not
>>>> sure how this is supposed to use.
>>>> Is the idea that this model is an
>>>> interface to an inventory database where I configure what I have
>>>> instead of a model sitting on a device where I can query what the
>>>> device actually has?
>>>>
>>>> /js
>>> Regards, Benoit
>>>> PS: I personally would have preferred if generic topology and perhaps
>>>>      inventory would have split off into a short-lived targeted WG
>>>>      instead of doing all of this in I2RS but it seems leadership has
>>>>      already decided that I2RS is the home for all of this.
>>>>
>>> _______________________________________________
>>> netmod mailing list
>>> netmod@ietf.org
>>> https://www.ietf.org/mailman/listinfo/netmod
>>>
>> _______________________________________________
>> netmod mailing list
>> netmod@ietf.org
>> https://www.ietf.org/mailman/listinfo/netmod
> .
>


--------------070302010905020405000402
Content-Type: text/html; charset=windows-1252
Content-Transfer-Encoding: 8bit

<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">Hi Jie,<br>
    </div>
    <blockquote
cite="mid:76CD132C3ADEF848BD84D028D243C92733850607@nkgeml512-mbx.china.huawei.com"
      type="cite">
      <pre wrap="">Hi Tom, 

Happy to know that Netmod has interests on the inventory Yang model, and we would be glad to move draft-dong-i2rs-network-inventory-00 to Netmod if it is decided by the ADs and chairs.</pre>
    </blockquote>
    There are two different work items.<br>
    1. a YANG version of the ENTITY-MIB. This should be done in NETMOD<br>
    <br>
    2. the mapping between the topology work and inventories. I like the
    way Jeff expressed it<br>
    <blockquote>
      <pre wrap="">The structure of the generic topology draft is leading to interesting
questions about how information present in that model can link to higher and
lower layers.  As seen in the I2RS presentations at the most recent interim,
this eventually leads to questions like "inventory".  I also raised the
question about tunnels which will lead to other models as well.</pre>
    </blockquote>
    This item 2 should be done in I2RS. I understood that
    draft-dong-i2rs-network-inventory was covering this item 2, with
    links to the interface, to the ENTITY YANG model, and I guess
    others.<br>
    <br>
    Regards, Benoit<br>
    <blockquote
cite="mid:76CD132C3ADEF848BD84D028D243C92733850607@nkgeml512-mbx.china.huawei.com"
      type="cite">
      <pre wrap="">

Could we ask for a time slot of 10 mins to present the current inventory model draft and discuss the next-steps? Thanks.

Contributions and discussions on this model are welcome.

Best regards,
Jie

</pre>
      <blockquote type="cite">
        <pre wrap="">-----Original Message-----
From: netmod [<a class="moz-txt-link-freetext" href="mailto:netmod-bounces@ietf.org">mailto:netmod-bounces@ietf.org</a>] On Behalf Of Thomas D.
Nadeau
Sent: Friday, March 06, 2015 8:21 PM
To: Benoit Claise
Cc: <a class="moz-txt-link-abbreviated" href="mailto:draft-dong-i2rs-network-inventory@tools.ietf.org">draft-dong-i2rs-network-inventory@tools.ietf.org</a>;
<a class="moz-txt-link-abbreviated" href="mailto:i2rs-chairs@tools.ietf.org">i2rs-chairs@tools.ietf.org</a>; NETMOD Working Group
Subject: Re: [netmod] Inventory YANG model (entity-MIB)


</pre>
        <blockquote type="cite">
          <pre wrap="">On Mar 6, 2015:7:05 AM, at 7:05 AM, Benoit Claise <a class="moz-txt-link-rfc2396E" href="mailto:bclaise@cisco.com">&lt;bclaise@cisco.com&gt;</a>
</pre>
        </blockquote>
        <pre wrap="">wrote:
</pre>
        <blockquote type="cite">
          <pre wrap="">
Hi Jürgen,
</pre>
          <blockquote type="cite">
            <pre wrap="">On Fri, Mar 06, 2015 at 11:48:02AM +0100, Benoit Claise wrote:
</pre>
            <blockquote type="cite">
              <pre wrap="">Dear all,

The I2RS interim meeting yesterday focused on topology.
Let me cut/paste a high level slide, with pointers to the relevant drafts.


If interested, the meeting minutes are at
<a class="moz-txt-link-freetext" href="http://etherpad.tools.ietf.org:9000/p/i2rs-interim-march-5-2015-v-bl">http://etherpad.tools.ietf.org:9000/p/i2rs-interim-march-5-2015-v-bl</a>
uesheets

Part of the inventory draft
(<a class="moz-txt-link-freetext" href="http://datatracker.ietf.org/doc/draft-dong-i2rs-network-inventory/">http://datatracker.ietf.org/doc/draft-dong-i2rs-network-inventory/</a>)
discussion, the overlap with the ENTITY-MIB RFC 6933 was discussed
(and RFC 7223 btw).


The message was that I2RS should not re-invent something similar to
the ENTITY-MIB So, are you aware of any initiatives to "YANGify" the
ENTITY-MIB?
It's true that there is a way to translate MIB into YANG with RFC 6643.
This could be a good start. However, I wonder if a hand-written YANG
model that closely follows the entPhysical would not be more beneficial.
Is this something we should take on board in NETMOD?

What do you think?

Note: As commented by the I2RS people, indexing is appropriate in
the MIB module for its original purpose, but may not be for the topology.
I'm not sure we want to change the indexing just for the topology,
but the integration within the topology draft should be thought of.

</pre>
            </blockquote>
            <pre wrap="">My first question is (perhaps not surprising) whether inventory falls
into the I2RS charter, I2RS = interface to the routing system.
</pre>
          </blockquote>
          <pre wrap="">No it doesn't.
As mentioned during the interim yesterday by the I2RS people, they would be
</pre>
        </blockquote>
        <pre wrap="">happy if the inventory work be done somewhere else. Hence this email thread. I
believe this work should be picked up by NETMOD .

	I agree with Juergen's assessment; this seems like it should be done in
NETMOD. We should figure out a way to leverage the entity MIB but given that
module's age, we should also be open to updates because the world has
changed since that was published.

	So there is a wider question as Juergen asked at the end of the thread:
should here be a concentrated effort to do topology/inventory that applies to
all areas ?  I'd say yes.  While not a super complicated, long effort, this is
something that needs to be done in a way that it applies to more than just the
use cases of a specific routing use case.  With that in mind, its important to get
the network operators involved on this effort so that this is not done in a
vendor vacuum.

	Speaking as an individual, I will point out that the topology model that I've
worked on with Jan et al you can see the approach taken on network topology.
This has been implemented in ODL, which means its being tried in production
environments right now and works quite well:

<a class="moz-txt-link-freetext" href="http://www.ietf.org/archive/id/draft-medved-i2rs-topology-im-01.txt">http://www.ietf.org/archive/id/draft-medved-i2rs-topology-im-01.txt</a>

	Another data point here. Shane and others have been been clear that an
inventory is needed and how it is a bit different than network topology as
specified above, but that it should be consistent in certain places too:

<a class="moz-txt-link-freetext" href="https://datatracker.ietf.org/doc/draft-amante-i2rs-topology-use-cases/">https://datatracker.ietf.org/doc/draft-amante-i2rs-topology-use-cases/</a>

	--Tom


</pre>
        <blockquote type="cite">
          <pre wrap="">That
</pre>
          <blockquote type="cite">
            <pre wrap="">said, RFC 6643 gives you a read-only translation. There are not many
read-write objects in the ENTITY-MIB so perhaps this is good enough
for now. I guess it would help what I2RS needs to know in order to
make the interface to the routing system work.

Anyway, if YANG models overlapping the ENTITY-MIB are done, they they
should at least allow implementation of both in a predictable manner.
Looking at draft-dong-i2rs-network-inventory-00, it seems the whole
interface list is already covered by RFC 7223 and interfaces should
be references not repeated (this is what the ENTITY-MIB does).
</pre>
          </blockquote>
          <pre wrap="">Yes, I made that point.
Similarly, this draft should reference a inventory YANG model

</pre>
          <blockquote type="cite">
            <pre wrap="">So what is
left is essentially a (not yet hierarchy) of 'cards' that seem to
more or less match the entPhysicalTable of the ENTITY-MIB (but then
the ENTITY-MIB has a more flexible model that distinguishes between
different kind of hardware components).
I also notice that the model
in draft-dong-i2rs-network-inventory-00 is config true - so I am not
sure how this is supposed to use.
Is the idea that this model is an
interface to an inventory database where I configure what I have
instead of a model sitting on a device where I can query what the
device actually has?

/js
</pre>
          </blockquote>
          <pre wrap="">Regards, Benoit
</pre>
          <blockquote type="cite">
            <pre wrap="">
PS: I personally would have preferred if generic topology and perhaps
    inventory would have split off into a short-lived targeted WG
    instead of doing all of this in I2RS but it seems leadership has
    already decided that I2RS is the home for all of this.

</pre>
          </blockquote>
          <pre wrap="">
_______________________________________________
netmod mailing list
<a class="moz-txt-link-abbreviated" href="mailto:netmod@ietf.org">netmod@ietf.org</a>
<a class="moz-txt-link-freetext" href="https://www.ietf.org/mailman/listinfo/netmod">https://www.ietf.org/mailman/listinfo/netmod</a>

</pre>
        </blockquote>
        <pre wrap="">
_______________________________________________
netmod mailing list
<a class="moz-txt-link-abbreviated" href="mailto:netmod@ietf.org">netmod@ietf.org</a>
<a class="moz-txt-link-freetext" href="https://www.ietf.org/mailman/listinfo/netmod">https://www.ietf.org/mailman/listinfo/netmod</a>
</pre>
      </blockquote>
      <pre wrap="">.

</pre>
    </blockquote>
    <br>
  </body>
</html>

--------------070302010905020405000402--


From nobody Tue Mar 10 08:10:25 2015
Return-Path: <wwwrun@rfc-editor.org>
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 540591A0097; Tue, 10 Mar 2015 08:10:25 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -101.912
X-Spam-Level: 
X-Spam-Status: No, score=-101.912 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01, USER_IN_WHITELIST=-100] 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 Pmj3n3_j0CLl; Tue, 10 Mar 2015 08:10:24 -0700 (PDT)
Received: from rfc-editor.org (rfc-editor.org [IPv6:2001:1900:3001:11::31]) by ietfa.amsl.com (Postfix) with ESMTP id E14181A00C8; Tue, 10 Mar 2015 08:10:14 -0700 (PDT)
Received: by rfc-editor.org (Postfix, from userid 30) id EF86E180207; Tue, 10 Mar 2015 08:09:29 -0700 (PDT)
To: ccrusius@cisco.com, mbj@tail-f.com
X-PHP-Originating-Script: 1005:errata_mail_lib.php
From: RFC Errata System <rfc-editor@rfc-editor.org>
Message-Id: <20150310150929.EF86E180207@rfc-editor.org>
Date: Tue, 10 Mar 2015 08:09:29 -0700 (PDT)
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/Q_SwpDSf2CAZLjZRKsu-Z7sjbSU>
Cc: iesg@ietf.org, netmod@ietf.org, rfc-editor@rfc-editor.org
Subject: [netmod] [Errata Rejected] RFC6020 (4291)
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: <http://www.ietf.org/mail-archive/web/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: Tue, 10 Mar 2015 15:10:25 -0000

The following errata report has been rejected for RFC6020,
"YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)".

--------------------------------------
You may review the report below and at:
http://www.rfc-editor.org/errata_search.php?rfc=6020&eid=4291

--------------------------------------
Status: Rejected
Type: Editorial

Reported by: Cesar Crusius <ccrusius@cisco.com>
Date Reported: 2015-03-07
Rejected by: Benoit Claise (IESG)

Section: 12

Original Text
-------------
   deviate-not-supported-stmt =
                         deviate-keyword sep
                         not-supported-keyword optsep
                         (";" /
                          "{" stmtsep
                          "}") 


Corrected Text
--------------
   deviate-not-supported-stmt =
                         deviate-keyword sep
                         not-supported-keyword
                         stmtend


Notes
-----
The rule is not incorrect, but unnecessarily replicates 'stmtend' within it.
 --VERIFIER NOTES-- 
This is already fixed in draft-ietf-netmod-rfc6020bis-04.

Since this is not really a bug, I don't know if it is worth the effort
to accept this errata.


--------------------------------------
RFC6020 (draft-ietf-netmod-yang-13)
--------------------------------------
Title               : YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)
Publication Date    : October 2010
Author(s)           : M. Bjorklund, Ed.
Category            : PROPOSED STANDARD
Source              : NETCONF Data Modeling Language
Area                : Operations and Management
Stream              : IETF
Verifying Party     : IESG


From nobody Tue Mar 10 08:18:27 2015
Return-Path: <wwwrun@rfc-editor.org>
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 A6C1D1A005F; Tue, 10 Mar 2015 08:18:24 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -101.912
X-Spam-Level: 
X-Spam-Status: No, score=-101.912 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01, USER_IN_WHITELIST=-100] 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 zI88qojGBms0; Tue, 10 Mar 2015 08:18:23 -0700 (PDT)
Received: from rfc-editor.org (rfc-editor.org [IPv6:2001:1900:3001:11::31]) by ietfa.amsl.com (Postfix) with ESMTP id 55F621A008A; Tue, 10 Mar 2015 08:17:44 -0700 (PDT)
Received: by rfc-editor.org (Postfix, from userid 30) id 671AD180207; Tue, 10 Mar 2015 08:16:59 -0700 (PDT)
To: ccrusius@cisco.com, mbj@tail-f.com
X-PHP-Originating-Script: 1005:errata_mail_lib.php
From: RFC Errata System <rfc-editor@rfc-editor.org>
Message-Id: <20150310151659.671AD180207@rfc-editor.org>
Date: Tue, 10 Mar 2015 08:16:59 -0700 (PDT)
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/iEF9y5pzpBWBRWGEElJyma4RjGI>
Cc: iesg@ietf.org, netmod@ietf.org, rfc-editor@rfc-editor.org
Subject: [netmod] [Errata Verified] RFC6020 (4292)
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: <http://www.ietf.org/mail-archive/web/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: Tue, 10 Mar 2015 15:18:24 -0000

The following errata report has been verified for RFC6020,
"YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)". 

--------------------------------------
You may review the report below and at:
http://www.rfc-editor.org/errata_search.php?rfc=6020&eid=4292

--------------------------------------
Status: Verified
Type: Technical

Reported by: Cesar Crusius <ccrusius@cisco.com>
Date Reported: 2015-03-07
Verified by: Benoit Claise (IESG)

Section: 12

Original Text
-------------
   type-stmt           = type-keyword sep identifier-ref-arg-str optsep
                         (";" /
                          "{" stmtsep
                              type-body-stmts
                          "}")


Corrected Text
--------------
   type-stmt           = type-keyword sep identifier-ref-arg-str optsep
                         (";" /
                          "{" stmtsep
                              [ type-body-stmts ]
                          "}")


Notes
-----
Every statement that can end with a single ';' should also accept ending with '{ stmtsep }' (that is what the 'stmtend' rule implies). This is the only instance I found so far of a statement that does not follow this rule.

The other option would be to replace all ";" in rules like that with 'stmtend'.

--------------------------------------
RFC6020 (draft-ietf-netmod-yang-13)
--------------------------------------
Title               : YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)
Publication Date    : October 2010
Author(s)           : M. Bjorklund, Ed.
Category            : PROPOSED STANDARD
Source              : NETCONF Data Modeling Language
Area                : Operations and Management
Stream              : IETF
Verifying Party     : IESG


From nobody Tue Mar 10 08:30:17 2015
Return-Path: <bclaise@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 490261A004E for <netmod@ietfa.amsl.com>; Tue, 10 Mar 2015 08:30:15 -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 fRA6yDhmEVnw for <netmod@ietfa.amsl.com>; Tue, 10 Mar 2015 08:30:14 -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 C97961A016C for <netmod@ietf.org>; Tue, 10 Mar 2015 08:29:55 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=1790; q=dns/txt; s=iport; t=1426001396; x=1427210996; h=message-id:date:from:mime-version:to:cc:subject: references:in-reply-to:content-transfer-encoding; bh=haAGbQm0SyJiBJjUWRrsrBHq9polyz5EN3gW//Z6ZXA=; b=O+CqxD/dL449mzozK8Qgv01AdNSBzOoTwmuH8ic10nbxVvnQZxK5SLuK YYlwbaTd2Yk43mMLz4SAs/ggolmSb/3yAB5Q24VVdjCo/TpuT2uDZadj2 WFrAMSq2l8zpz1Wl/bjh0eZyogcOC0CAzpj6qvKf7HL0R+89Z2XN/6fie 8=;
X-IronPort-AV: E=Sophos;i="5.11,375,1422921600"; d="scan'208";a="388131890"
Received: from aer-iport-nat.cisco.com (HELO aer-core-3.cisco.com) ([173.38.203.22]) by aer-iport-1.cisco.com with ESMTP; 10 Mar 2015 15:29:54 +0000
Received: from [10.60.67.85] (ams-bclaise-8914.cisco.com [10.60.67.85]) by aer-core-3.cisco.com (8.14.5/8.14.5) with ESMTP id t2AFTr8q006620; Tue, 10 Mar 2015 15:29:53 GMT
Message-ID: <54FF0DD4.3020007@cisco.com>
Date: Tue, 10 Mar 2015 16:29:24 +0100
From: Benoit Claise <bclaise@cisco.com>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0
MIME-Version: 1.0
To: RFC Errata System <rfc-editor@rfc-editor.org>, mbj@tail-f.com, joelja@bogus.com, j.schoenwaelder@jacobs-university.de, tnadeau@lucidvision.com
References: <20150228234122.D9FD5181D1B@rfc-editor.org>
In-Reply-To: <20150228234122.D9FD5181D1B@rfc-editor.org>
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/gxHzuLgvAeN5YZZlr2b8Hm7QTTI>
Cc: netmod@ietf.org, ccrusius@cisco.com
Subject: Re: [netmod] [Technical Errata Reported] RFC6020 (4283)
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: <http://www.ietf.org/mail-archive/web/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: Tue, 10 Mar 2015 15:30:15 -0000

Dear all,

This errata has been updated according to Cesar's latest update.
See http://www.rfc-editor.org/errata_search.php?eid=4283
Let me know if this errata should be accepted.

Regards, Benoit
> The following errata report has been submitted for RFC6020,
> "YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)".
>
> --------------------------------------
> You may review the report below and at:
> http://www.rfc-editor.org/errata_search.php?rfc=6020&eid=4283
>
> --------------------------------------
> Type: Technical
> Reported by: Cesar Crusius <ccrusius@cisco.com>
>
> Section: 12
>
> Original Text
> -------------
> stmtend = ";" / "{" *unknown_statement "}"
>
> Corrected Text
> --------------
> stmtend = ";" / "{" stmtsep "}"
>
> Notes
> -----
> As specified, there are no spaces allowed between the unknown statements, and between the braces and the unknown statements.
>
> Instructions:
> -------------
> This erratum is currently posted as "Reported". If necessary, please
> use "Reply All" to discuss whether it should be verified or
> rejected. When a decision is reached, the verifying party (IESG)
> can log in to change the status and edit the report, if necessary.
>
> --------------------------------------
> RFC6020 (draft-ietf-netmod-yang-13)
> --------------------------------------
> Title               : YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)
> Publication Date    : October 2010
> Author(s)           : M. Bjorklund, Ed.
> Category            : PROPOSED STANDARD
> Source              : NETCONF Data Modeling Language
> Area                : Operations and Management
> Stream              : IETF
> Verifying Party     : IESG
>
> .
>


From nobody Tue Mar 10 08:31:29 2015
Return-Path: <wwwrun@rfc-editor.org>
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 09D6D1A0149; Tue, 10 Mar 2015 08:31:25 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -101.912
X-Spam-Level: 
X-Spam-Status: No, score=-101.912 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01, USER_IN_WHITELIST=-100] 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 nXlNqDsCwkiF; Tue, 10 Mar 2015 08:31:23 -0700 (PDT)
Received: from rfc-editor.org (rfc-editor.org [IPv6:2001:1900:3001:11::31]) by ietfa.amsl.com (Postfix) with ESMTP id C56711A0267; Tue, 10 Mar 2015 08:31:13 -0700 (PDT)
Received: by rfc-editor.org (Postfix, from userid 30) id D101F180207; Tue, 10 Mar 2015 08:30:28 -0700 (PDT)
To: ccrusius@cisco.com, mbj@tail-f.com
X-PHP-Originating-Script: 1005:errata_mail_lib.php
From: RFC Errata System <rfc-editor@rfc-editor.org>
Message-Id: <20150310153028.D101F180207@rfc-editor.org>
Date: Tue, 10 Mar 2015 08:30:28 -0700 (PDT)
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/tQVb_oTzs1QRH3RfJmQjW15TJQI>
Cc: iesg@ietf.org, netmod@ietf.org, rfc-editor@rfc-editor.org
Subject: [netmod] [Errata Rejected] RFC6020 (4285)
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: <http://www.ietf.org/mail-archive/web/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: Tue, 10 Mar 2015 15:31:25 -0000

The following errata report has been rejected for RFC6020,
"YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)".

--------------------------------------
You may review the report below and at:
http://www.rfc-editor.org/errata_search.php?rfc=6020&eid=4285

--------------------------------------
Status: Rejected
Type: Technical

Reported by: Cesar Crusius <ccrusius@cisco.com>
Date Reported: 2015-03-02
Rejected by: Benoit Claise (IESG)

Section: 12

Original Text
-------------
revision-date-stmt = revision-date-keyword sep revision-date stmtend

Corrected Text
--------------
revision-date-stmt =
    revision-date-keyword sep revision-date optsep stmtend

Notes
-----
Allow spaces between the date string and the statement's end.
 --VERIFIER NOTES-- 
This errata is now covered by the updated errata 4283

--------------------------------------
RFC6020 (draft-ietf-netmod-yang-13)
--------------------------------------
Title               : YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)
Publication Date    : October 2010
Author(s)           : M. Bjorklund, Ed.
Category            : PROPOSED STANDARD
Source              : NETCONF Data Modeling Language
Area                : Operations and Management
Stream              : IETF
Verifying Party     : IESG


From nobody Tue Mar 10 09:51:56 2015
Return-Path: <sunqi.csnet.thu@gmail.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 8C74A1A1BA7 for <netmod@ietfa.amsl.com>; Tue, 10 Mar 2015 09:51:54 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level: 
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9,  DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, SPF_PASS=-0.001] 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 wMppWM0i_NGr for <netmod@ietfa.amsl.com>; Tue, 10 Mar 2015 09:51:51 -0700 (PDT)
Received: from mail-wi0-x22a.google.com (mail-wi0-x22a.google.com [IPv6:2a00:1450:400c:c05::22a]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2843E1A6F17 for <netmod@ietf.org>; Tue, 10 Mar 2015 09:51:49 -0700 (PDT)
Received: by widex7 with SMTP id ex7so4675221wid.1 for <netmod@ietf.org>; Tue, 10 Mar 2015 09:51:48 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;  h=content-type:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=gqcQKEr8xTXGavJ9y1zHK5TjIMAHiaAScZIb1oOSZqE=; b=eT+wEW18nFY28i3aj7qrM00xF17HYM57HmmOqCOcmlk9g8kGGodApI33w4YqYycXKt 4ZspEnPMVB6yi+kq6cSt6OxfuHZJ+eAXQ4NPV7zKFiYpmMBvBdKJvNyukcMQLCMrn10D 54qhmnyYGUQXXAY6aHs+kLRTaLqf/1NcGgOfx99qn7IzCLwYUQzg/sCYEySxy0/V5iuU TVe06rjJZo97rLN6Ku4yguX3lALrNQ3DUXzFQvpp8D7ennu1eUZMe/ElRgskYpz72IrV aSiCNF5nIgUIqRPjLCKP1sL8EURE48okoAIdxyg4RRGGLFeXxuKL8jqLx89QIC7fOgYf t8DA==
X-Received: by 10.194.63.206 with SMTP id i14mr71131474wjs.107.1426006307822;  Tue, 10 Mar 2015 09:51:47 -0700 (PDT)
Received: from host-2003-1c09-0021-0d00-a5a9-9344-9d21-2eb5.1c09-h.de.terastrm.net (host-2003-1c09-0021-0d00-a5a9-9344-9d21-2eb5.1c09-h.de.terastrm.net. [2003:1c09:21:d00:a5a9:9344:9d21:2eb5]) by mx.google.com with ESMTPSA id fs8sm21054454wib.8.2015.03.10.09.51.44 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Tue, 10 Mar 2015 09:51:47 -0700 (PDT)
Content-Type: text/plain; charset=windows-1252
Mime-Version: 1.0 (Mac OS X Mail 7.2 \(1874\))
From: Qi Sun <sunqi.csnet.thu@gmail.com>
In-Reply-To: <20150310135005.GA7164@elstar.local>
Date: Tue, 10 Mar 2015 17:51:42 +0100
Content-Transfer-Encoding: quoted-printable
Message-Id: <A1B27702-F2D1-499B-894A-9CCE5385798D@gmail.com>
References: <2D14ACF76AC6BD459665F2FE98ECB831BD66E20BB4@HE101452.emea1.cds.t-internal.com> <12E9E6B9-F79E-4091-9709-E216BB335A40@gmail.com> <20150310135005.GA7164@elstar.local>
To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
X-Mailer: Apple Mail (2.1874)
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/krLRuhvDxRDn20qutbDOPzRLFRs>
Cc: netmod@ietf.org
Subject: Re: [netmod] Fwd: New Version Notification for draft-sf-netmod-file-transfer-yang-00.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: <http://www.ietf.org/mail-archive/web/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: Tue, 10 Mar 2015 16:51:54 -0000

Hi Juergen,

Thanks for comments. Please see inline.

On Mar 10, 2015, at 2:50 PM, Juergen Schoenwaelder =
<j.schoenwaelder@jacobs-university.de> wrote:

> On Tue, Mar 10, 2015 at 02:15:06PM +0100, Qi Sun wrote:
>> Dear all,=20
>>=20
>> We=92ve developed a YANG model for file transfer. This model supports =
both upload and download process. It can be used in various scenarios, =
including HGW software/firmware upgrading, remote file backup, etc.
>>=20
>> Please can you review this document.
>>=20
>=20
> Quick questions while browsing the YANG: Since the URIs already
> contain information how to access a resource, why do I also have to
> define a trans-method?  This seems to be be redundant (and what
> happens if things do not line up?).

[Qi] The intention was to restrict the type of URI for =
=93remote-file-path=94. I hope the description provides this =
information?
Or should the trans-method be put inside =93remote-file-path=94?

> I do not know why
> credential-lifetime is needed (the transfer will fail anyway when the
> credentials are not valid anymore),

[Qi] Yeah=85 But IMHO, this might be useful for trouble-shouting when =
transfer failed. And when the credential expires, the device could =
negotiate to have a second option.=20

> I do not understand the timeframe
> leaf

[Qi] Will delete.

> and some of the other retry parameters, they likely lack units
> and descriptions.

[Qi] How about the following:
            leaf retry-times {
                description
                    "Number of times a failed transfer is retried.";
                type uint8;
            }
            leaf retry-interval {
                description
                    "Number of seconds to wait before a retry.";
                type uint32;
                units seconds;
            }
            leaf retry-interval-increment {
                description
                    "Maximum percentage to alter the retry-interval.";
                type percent;
            }

> Assuming that 'index' in fact is a key of list
> "file-transfered", I would actually define it to be a list key.

[Qi] OK.

> I am
> not sure why it is needed to have credential-method in the state
> tree.

[Qi] Will remove.=20

> What is the value of knowing the retry count while not exposing
> the max number of retries?

[Qi] I just think it would be helpful for maintaining devices if more =
information could be provide. This can be used for trouble-shooting.

> And should there be a cancel mechanism as
> well?

[Qi] That makes sense. Such that the client is able to instruct the =
server to cancel a specific transfer. I think it would work with another =
RPC?

> I am also not sure how the md5 checksum is supposed to work -
> does this imply another transfer for the checksum to be verified
> against?

[Qi] I=92m thinking the device generates a md5 checksum, and uses the =
generated checksum to verify against the configured checksum. Would that =
work?=20
Anyway, this is an optional parameter. Would it help to put a feature =
about the function (since not all the devices support md5 checking)?

Thanks,
Qi

>=20
> /js
>=20
> --=20
> Juergen Schoenwaelder           Jacobs University Bremen gGmbH
> Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
> Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Tue Mar 10 10:19:13 2015
Return-Path: <j.schoenwaelder@jacobs-university.de>
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 5B8611A6FCB for <netmod@ietfa.amsl.com>; Tue, 10 Mar 2015 10:19:12 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.86
X-Spam-Level: 
X-Spam-Status: No, score=-3.86 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] 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 LxU8eq2we_sA for <netmod@ietfa.amsl.com>; Tue, 10 Mar 2015 10:19:08 -0700 (PDT)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9CE3F1A6FEF for <netmod@ietf.org>; Tue, 10 Mar 2015 10:19:07 -0700 (PDT)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id 71227772; Tue, 10 Mar 2015 18:19:06 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.220]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id EwDbTGGpkgKq; Tue, 10 Mar 2015 18:18:56 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS; Tue, 10 Mar 2015 18:19:05 +0100 (CET)
Received: from localhost (demetrius2.jacobs-university.de [212.201.44.47]) by hermes.jacobs-university.de (Postfix) with ESMTP id 89B912003F; Tue, 10 Mar 2015 18:19:05 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius2.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id XqqfefaXj2AZ; Tue, 10 Mar 2015 18:19:04 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id D1B062003D; Tue, 10 Mar 2015 18:19:03 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id 02A173276276; Tue, 10 Mar 2015 18:19:01 +0100 (CET)
Date: Tue, 10 Mar 2015 18:19:01 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Qi Sun <sunqi.csnet.thu@gmail.com>
Message-ID: <20150310171901.GA7526@elstar.local>
Mail-Followup-To: Qi Sun <sunqi.csnet.thu@gmail.com>, netmod@ietf.org
References: <2D14ACF76AC6BD459665F2FE98ECB831BD66E20BB4@HE101452.emea1.cds.t-internal.com> <12E9E6B9-F79E-4091-9709-E216BB335A40@gmail.com> <20150310135005.GA7164@elstar.local> <A1B27702-F2D1-499B-894A-9CCE5385798D@gmail.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <A1B27702-F2D1-499B-894A-9CCE5385798D@gmail.com>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/Bgs5Zl8X0SehOijpB0SCufRaUsA>
Cc: netmod@ietf.org
Subject: Re: [netmod] Fwd: New Version Notification for draft-sf-netmod-file-transfer-yang-00.txt
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
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: <http://www.ietf.org/mail-archive/web/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: Tue, 10 Mar 2015 17:19:12 -0000

On Tue, Mar 10, 2015 at 05:51:42PM +0100, Qi Sun wrote:
> > 
> > Quick questions while browsing the YANG: Since the URIs already
> > contain information how to access a resource, why do I also have to
> > define a trans-method?  This seems to be be redundant (and what
> > happens if things do not line up?).
> 
> [Qi] The intention was to restrict the type of URI for â€œremote-file-pathâ€. I hope the description provides this information?
> Or should the trans-method be put inside â€œremote-file-pathâ€?
>

I am not sure this is a feature. The namespace in my http URIs is very
different from the file system namespace I get when I use ftp or scp.

> > I do not know why
> > credential-lifetime is needed (the transfer will fail anyway when the
> > credentials are not valid anymore),
> 
> [Qi] Yeahâ€¦ But IMHO, this might be useful for trouble-shouting when transfer failed. And when the credential expires, the device could negotiate to have a second option.

Then I prefer to have more detailed error codes in the state tree.

> > and some of the other retry parameters, they likely lack units
> > and descriptions.
> 
> [Qi] How about the following:
>             leaf retry-times {
>                 description
>                     "Number of times a failed transfer is retried.";
>                 type uint8;
>             }
>             leaf retry-interval {
>                 description
>                     "Number of seconds to wait before a retry.";
>                 type uint32;
>                 units seconds;
>             }
>             leaf retry-interval-increment {
>                 description
>                     "Maximum percentage to alter the retry-interval.";
>                 type percent;
>             }

The last one still is a bit vague...
 
> > And should there be a cancel mechanism as
> > well?
> 
> [Qi] That makes sense. Such that the client is able to instruct the server to cancel a specific transfer. I think it would work with another RPC?
>

Likely. I also assume that transfers do not persist.

> > I am also not sure how the md5 checksum is supposed to work -
> > does this imply another transfer for the checksum to be verified
> > against?
> 
> [Qi] Iâ€™m thinking the device generates a md5 checksum, and uses the generated checksum to verify against the configured checksum. Would that work? 
> Anyway, this is an optional parameter. Would it help to put a feature about the function (since not all the devices support md5 checking)?
>

So whoever calls the RPC needs to pass the checksum? But then, if I
upload a file, how do I obtain the checksum in the first place and how
is the checksum passed to the receiver? And depending on the transfer
protocol, you might already get internal checksums so you would only
safeguard against errors that occur between receiving the data and
writing it to disk. I am not sure yet this is really needed.

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Tue Mar 10 10:23:58 2015
Return-Path: <j.schoenwaelder@jacobs-university.de>
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 EA11E1A6FEE for <netmod@ietfa.amsl.com>; Tue, 10 Mar 2015 10:23:57 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.86
X-Spam-Level: 
X-Spam-Status: No, score=-3.86 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] 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 iYJBjevwlMT1 for <netmod@ietfa.amsl.com>; Tue, 10 Mar 2015 10:23:56 -0700 (PDT)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 385391A2130 for <netmod@ietf.org>; Tue, 10 Mar 2015 10:23:56 -0700 (PDT)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id 0981B903; Tue, 10 Mar 2015 18:23:55 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.220]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id 5Z1PSsK3JQEg; Tue, 10 Mar 2015 18:23:45 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS; Tue, 10 Mar 2015 18:23:54 +0100 (CET)
Received: from localhost (demetrius2.jacobs-university.de [212.201.44.47]) by hermes.jacobs-university.de (Postfix) with ESMTP id 1C46120043; Tue, 10 Mar 2015 18:23:54 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius2.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id pD5MAdGAxkDn; Tue, 10 Mar 2015 18:23:53 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id A08042003D; Tue, 10 Mar 2015 18:23:52 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id 8FFA032762E3; Tue, 10 Mar 2015 18:23:52 +0100 (CET)
Date: Tue, 10 Mar 2015 18:23:52 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Benoit Claise <bclaise@cisco.com>
Message-ID: <20150310172352.GB7526@elstar.local>
Mail-Followup-To: Benoit Claise <bclaise@cisco.com>, "Dongjie (Jimmy)" <jie.dong@huawei.com>, "Thomas D. Nadeau" <tnadeau@lucidvision.com>, "draft-dong-i2rs-network-inventory@tools.ietf.org" <draft-dong-i2rs-network-inventory@tools.ietf.org>,  "i2rs-chairs@tools.ietf.org" <i2rs-chairs@tools.ietf.org>, NETMOD Working Group <netmod@ietf.org>
References: <54F985E2.6020304@cisco.com> <20150306110536.GA73575@elstar.local> <54F997F5.8080500@cisco.com> <2D3BC67E-9B26-488E-BF4D-0FC899C3A8CA@lucidvision.com> <76CD132C3ADEF848BD84D028D243C92733850607@nkgeml512-mbx.china.huawei.com> <54FF05EE.2070607@cisco.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <54FF05EE.2070607@cisco.com>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/SO7N6DZggDzgPqi3FS4Wc7i3ULw>
Cc: "draft-dong-i2rs-network-inventory@tools.ietf.org" <draft-dong-i2rs-network-inventory@tools.ietf.org>, "i2rs-chairs@tools.ietf.org" <i2rs-chairs@tools.ietf.org>, NETMOD Working Group <netmod@ietf.org>
Subject: Re: [netmod] Inventory YANG model (entity-MIB)
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
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: <http://www.ietf.org/mail-archive/web/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: Tue, 10 Mar 2015 17:23:58 -0000

On Tue, Mar 10, 2015 at 03:55:42PM +0100, Benoit Claise wrote:
> Hi Jie,
> >Hi Tom,
> >
> >Happy to know that Netmod has interests on the inventory Yang model, and 
> >we would be glad to move draft-dong-i2rs-network-inventory-00 to Netmod if 
> >it is decided by the ADs and chairs.
> There are two different work items.
> 1. a YANG version of the ENTITY-MIB. This should be done in NETMOD
> 
> 2. the mapping between the topology work and inventories. I like the way 
> Jeff expressed it
> 
>    The structure of the generic topology draft is leading to interesting
>    questions about how information present in that model can link to higher 
>    and
>    lower layers.  As seen in the I2RS presentations at the most recent 
>    interim,
>    this eventually leads to questions like "inventory".  I also raised the
>    question about tunnels which will lead to other models as well.
> 
> This item 2 should be done in I2RS. I understood that 
> draft-dong-i2rs-network-inventory was covering this item 2, with links 
> to the interface, to the ENTITY YANG model, and I guess others.

It does not link, it repeats information. If the generic data model is
done well, linkage to other pieces should be handles quite naturally.
I also do not understand the 'tunnels' question (what precisly is the
question?).

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Tue Mar 10 10:55:44 2015
Return-Path: <bclaise@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 A7FE81A0122 for <netmod@ietfa.amsl.com>; Tue, 10 Mar 2015 10:55:43 -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 K-pj3GpYSCIQ for <netmod@ietfa.amsl.com>; Tue, 10 Mar 2015 10:55:39 -0700 (PDT)
Received: from aer-iport-2.cisco.com (aer-iport-2.cisco.com [173.38.203.52]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id ECFB81A003B for <netmod@ietf.org>; Tue, 10 Mar 2015 10:55:38 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=1560; q=dns/txt; s=iport; t=1426010139; x=1427219739; h=message-id:date:from:mime-version:to:subject:references: in-reply-to:content-transfer-encoding; bh=RFA1D/f0FG5jdUjAUydQPLs8c90gMP7W6ssRstY1sas=; b=SG6DDgLxdT92azf8nsRp8Yt4w9IBxhcINlSEPu9x0s00s67+QCjLBOQG a8Qad2F5LLo5RzaTTeCS6YpOCpojxntcr/gEGcKugXhCnDsxQR4ERx7Er O/sZq0n2Ajr4F6+QsLXyfPC8Hd/Y/gXbMOn3kAhL580sN/GXy/ifiUGOr Y=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0AxCgCnL/9U/xbLJq1cwV+JHYJRAoICAQEBAQEBfIQQAQEEOEARCxgJFg8JAwIBAgFFBgEMCAEBiCvEXgEBAQEBAQEBAgEBAQEBARyLF4R1hC0BBJlihnWMfyODbz2CdAEBAQ
X-IronPort-AV: E=Sophos;i="5.11,376,1422921600"; d="scan'208";a="378313973"
Received: from aer-iport-nat.cisco.com (HELO aer-core-3.cisco.com) ([173.38.203.22]) by aer-iport-2.cisco.com with ESMTP; 10 Mar 2015 17:55:33 +0000
Received: from [10.60.67.85] (ams-bclaise-8914.cisco.com [10.60.67.85]) by aer-core-3.cisco.com (8.14.5/8.14.5) with ESMTP id t2AHtXE8024460; Tue, 10 Mar 2015 17:55:33 GMT
Message-ID: <54FF3005.4040209@cisco.com>
Date: Tue, 10 Mar 2015 18:55:17 +0100
From: Benoit Claise <bclaise@cisco.com>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0
MIME-Version: 1.0
To: "Dongjie (Jimmy)" <jie.dong@huawei.com>, "Thomas D. Nadeau" <tnadeau@lucidvision.com>, "draft-dong-i2rs-network-inventory@tools.ietf.org" <draft-dong-i2rs-network-inventory@tools.ietf.org>,  "i2rs-chairs@tools.ietf.org" <i2rs-chairs@tools.ietf.org>, NETMOD Working Group <netmod@ietf.org>
References: <54F985E2.6020304@cisco.com> <20150306110536.GA73575@elstar.local> <54F997F5.8080500@cisco.com> <2D3BC67E-9B26-488E-BF4D-0FC899C3A8CA@lucidvision.com> <76CD132C3ADEF848BD84D028D243C92733850607@nkgeml512-mbx.china.huawei.com> <54FF05EE.2070607@cisco.com> <20150310172352.GB7526@elstar.local>
In-Reply-To: <20150310172352.GB7526@elstar.local>
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/zQ2OuSTgMSp5Ma2r7ketr2fUiY4>
Subject: Re: [netmod] Inventory YANG model (entity-MIB)
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: <http://www.ietf.org/mail-archive/web/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: Tue, 10 Mar 2015 17:55:43 -0000

On 10/03/2015 18:23, Juergen Schoenwaelder wrote:
> On Tue, Mar 10, 2015 at 03:55:42PM +0100, Benoit Claise wrote:
>> Hi Jie,
>>> Hi Tom,
>>>
>>> Happy to know that Netmod has interests on the inventory Yang model, and
>>> we would be glad to move draft-dong-i2rs-network-inventory-00 to Netmod if
>>> it is decided by the ADs and chairs.
>> There are two different work items.
>> 1. a YANG version of the ENTITY-MIB. This should be done in NETMOD
>>
>> 2. the mapping between the topology work and inventories. I like the way
>> Jeff expressed it
>>
>>     The structure of the generic topology draft is leading to interesting
>>     questions about how information present in that model can link to higher
>>     and
>>     lower layers.  As seen in the I2RS presentations at the most recent
>>     interim,
>>     this eventually leads to questions like "inventory".  I also raised the
>>     question about tunnels which will lead to other models as well.
>>
>> This item 2 should be done in I2RS. I understood that
>> draft-dong-i2rs-network-inventory was covering this item 2, with links
>> to the interface, to the ENTITY YANG model, and I guess others.
> It does not link, it repeats information.
I know. It should not, as mentioned to I2RS.
> If the generic data model is
> done well, linkage to other pieces should be handles quite naturally.
> I also do not understand the 'tunnels' question (what precisly is the
> question?).
That's a different story. I should have not copied this one.

Regards, B.
>
> /js
>


From nobody Tue Mar 10 22:59:32 2015
Return-Path: <jie.dong@huawei.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 BD27B1A0397 for <netmod@ietfa.amsl.com>; Tue, 10 Mar 2015 22:59:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.209
X-Spam-Level: 
X-Spam-Status: No, score=-4.209 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01, WEIRD_PORT=0.001] 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 W6TbQcdNpHKp for <netmod@ietfa.amsl.com>; Tue, 10 Mar 2015 22:59:24 -0700 (PDT)
Received: from lhrrgout.huawei.com (lhrrgout.huawei.com [194.213.3.17]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0F1181A0393 for <netmod@ietf.org>; Tue, 10 Mar 2015 22:59:22 -0700 (PDT)
Received: from 172.18.7.190 (EHLO lhreml404-hub.china.huawei.com) ([172.18.7.190]) by lhrrg02-dlp.huawei.com (MOS 4.3.7-GA FastPath queued) with ESMTP id BQC55107; Wed, 11 Mar 2015 05:59:21 +0000 (GMT)
Received: from NKGEML403-HUB.china.huawei.com (10.98.56.34) by lhreml404-hub.china.huawei.com (10.201.5.218) with Microsoft SMTP Server (TLS) id 14.3.158.1; Wed, 11 Mar 2015 05:59:20 +0000
Received: from NKGEML512-MBX.china.huawei.com ([169.254.7.106]) by nkgeml403-hub.china.huawei.com ([10.98.56.34]) with mapi id 14.03.0158.001; Wed, 11 Mar 2015 13:59:13 +0800
From: "Dongjie (Jimmy)" <jie.dong@huawei.com>
To: Benoit Claise <bclaise@cisco.com>, "Thomas D. Nadeau" <tnadeau@lucidvision.com>
Thread-Topic: [netmod] Inventory YANG model (entity-MIB)
Thread-Index: AQHQV/sWQ/8m3BSs+0WHTuyrX71fWp0OxN8AgAAQo4CAAARMAIAEor+ggAHR7wCAAVWLQA==
Date: Wed, 11 Mar 2015 05:59:13 +0000
Message-ID: <76CD132C3ADEF848BD84D028D243C927338526B1@nkgeml512-mbx.china.huawei.com>
References: <54F985E2.6020304@cisco.com> <20150306110536.GA73575@elstar.local> <54F997F5.8080500@cisco.com> <2D3BC67E-9B26-488E-BF4D-0FC899C3A8CA@lucidvision.com> <76CD132C3ADEF848BD84D028D243C92733850607@nkgeml512-mbx.china.huawei.com> <54FF05EE.2070607@cisco.com>
In-Reply-To: <54FF05EE.2070607@cisco.com>
Accept-Language: en-US, zh-CN
Content-Language: zh-CN
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [10.111.97.131]
Content-Type: multipart/alternative; boundary="_000_76CD132C3ADEF848BD84D028D243C927338526B1nkgeml512mbxchi_"
MIME-Version: 1.0
X-CFilter-Loop: Reflected
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/moRDMsZfJ5xTaIkHqvuECu2cL-c>
Cc: "draft-dong-i2rs-network-inventory@tools.ietf.org" <draft-dong-i2rs-network-inventory@tools.ietf.org>, "i2rs-chairs@tools.ietf.org" <i2rs-chairs@tools.ietf.org>, NETMOD Working Group <netmod@ietf.org>
Subject: Re: [netmod] Inventory YANG model (entity-MIB)
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: <http://www.ietf.org/mail-archive/web/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: Wed, 11 Mar 2015 05:59:30 -0000

--_000_76CD132C3ADEF848BD84D028D243C927338526B1nkgeml512mbxchi_
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Hi Benoit,

Thanks for your comments.

So now we all agree that the inventory yang model work is needed. As for in=
 which way to build that model, currently there are different opinions, and=
 we are open to discuss this.

The intention of draft-dong-i2rs-network-inventory was to describe the feat=
ures and capabilities of the network nodes and their components, as during =
the discussion of the L2 topology model, we realized that such information =
should be specified in a separate model.  So in our opinion this inventory =
model would include both the information listed in the ENTITY-MIB, and also=
 a set of generic features and capabilities of the nodes and components, fo=
r which some configurations could apply.  Thus it would be more than the tr=
anslation of MIB. As you said, this model could have links to the interface=
 Yang model and some other models. Whether a Yang version of the ENTITY-MIB=
 should be linked or integrated needs further discussion.

Best regards,
Jie

From: Benoit Claise [mailto:bclaise@cisco.com]
Sent: Tuesday, March 10, 2015 10:56 PM
To: Dongjie (Jimmy); Thomas D. Nadeau
Cc: draft-dong-i2rs-network-inventory@tools.ietf.org; i2rs-chairs@tools.iet=
f.org; NETMOD Working Group
Subject: Re: [netmod] Inventory YANG model (entity-MIB)

Hi Jie,

Hi Tom,



Happy to know that Netmod has interests on the inventory Yang model, and we=
 would be glad to move draft-dong-i2rs-network-inventory-00 to Netmod if it=
 is decided by the ADs and chairs.
There are two different work items.
1. a YANG version of the ENTITY-MIB. This should be done in NETMOD

2. the mapping between the topology work and inventories. I like the way Je=
ff expressed it

The structure of the generic topology draft is leading to interesting

questions about how information present in that model can link to higher an=
d

lower layers.  As seen in the I2RS presentations at the most recent interim=
,

this eventually leads to questions like "inventory".  I also raised the

question about tunnels which will lead to other models as well.
This item 2 should be done in I2RS. I understood that draft-dong-i2rs-netwo=
rk-inventory was covering this item 2, with links to the interface, to the =
ENTITY YANG model, and I guess others.

Regards, Benoit






Could we ask for a time slot of 10 mins to present the current inventory mo=
del draft and discuss the next-steps? Thanks.



Contributions and discussions on this model are welcome.



Best regards,

Jie



-----Original Message-----

From: netmod [mailto:netmod-bounces@ietf.org] On Behalf Of Thomas D.

Nadeau

Sent: Friday, March 06, 2015 8:21 PM

To: Benoit Claise

Cc: draft-dong-i2rs-network-inventory@tools.ietf.org<mailto:draft-dong-i2rs=
-network-inventory@tools.ietf.org>;

i2rs-chairs@tools.ietf.org<mailto:i2rs-chairs@tools.ietf.org>; NETMOD Worki=
ng Group

Subject: Re: [netmod] Inventory YANG model (entity-MIB)





On Mar 6, 2015:7:05 AM, at 7:05 AM, Benoit Claise <bclaise@cisco.com><mailt=
o:bclaise@cisco.com>

wrote:



Hi J=FCrgen,

On Fri, Mar 06, 2015 at 11:48:02AM +0100, Benoit Claise wrote:

Dear all,



The I2RS interim meeting yesterday focused on topology.

Let me cut/paste a high level slide, with pointers to the relevant drafts.





If interested, the meeting minutes are at

http://etherpad.tools.ietf.org:9000/p/i2rs-interim-march-5-2015-v-bl

uesheets



Part of the inventory draft

(http://datatracker.ietf.org/doc/draft-dong-i2rs-network-inventory/)

discussion, the overlap with the ENTITY-MIB RFC 6933 was discussed

(and RFC 7223 btw).





The message was that I2RS should not re-invent something similar to

the ENTITY-MIB So, are you aware of any initiatives to "YANGify" the

ENTITY-MIB?

It's true that there is a way to translate MIB into YANG with RFC 6643.

This could be a good start. However, I wonder if a hand-written YANG

model that closely follows the entPhysical would not be more beneficial.

Is this something we should take on board in NETMOD?



What do you think?



Note: As commented by the I2RS people, indexing is appropriate in

the MIB module for its original purpose, but may not be for the topology.

I'm not sure we want to change the indexing just for the topology,

but the integration within the topology draft should be thought of.



My first question is (perhaps not surprising) whether inventory falls

into the I2RS charter, I2RS =3D interface to the routing system.

No it doesn't.

As mentioned during the interim yesterday by the I2RS people, they would be

happy if the inventory work be done somewhere else. Hence this email thread=
. I

believe this work should be picked up by NETMOD .



 I agree with Juergen's assessment; this seems like it should be done in

NETMOD. We should figure out a way to leverage the entity MIB but given tha=
t

module's age, we should also be open to updates because the world has

changed since that was published.



 So there is a wider question as Juergen asked at the end of the thread:

should here be a concentrated effort to do topology/inventory that applies =
to

all areas ?  I'd say yes.  While not a super complicated, long effort, this=
 is

something that needs to be done in a way that it applies to more than just =
the

use cases of a specific routing use case.  With that in mind, its important=
 to get

the network operators involved on this effort so that this is not done in a

vendor vacuum.



 Speaking as an individual, I will point out that the topology model that I=
've

worked on with Jan et al you can see the approach taken on network topology=
.

This has been implemented in ODL, which means its being tried in production

environments right now and works quite well:



http://www.ietf.org/archive/id/draft-medved-i2rs-topology-im-01.txt



 Another data point here. Shane and others have been been clear that an

inventory is needed and how it is a bit different than network topology as

specified above, but that it should be consistent in certain places too:



https://datatracker.ietf.org/doc/draft-amante-i2rs-topology-use-cases/



 --Tom





That

said, RFC 6643 gives you a read-only translation. There are not many

read-write objects in the ENTITY-MIB so perhaps this is good enough

for now. I guess it would help what I2RS needs to know in order to

make the interface to the routing system work.



Anyway, if YANG models overlapping the ENTITY-MIB are done, they they

should at least allow implementation of both in a predictable manner.

Looking at draft-dong-i2rs-network-inventory-00, it seems the whole

interface list is already covered by RFC 7223 and interfaces should

be references not repeated (this is what the ENTITY-MIB does).

Yes, I made that point.

Similarly, this draft should reference a inventory YANG model



So what is

left is essentially a (not yet hierarchy) of 'cards' that seem to

more or less match the entPhysicalTable of the ENTITY-MIB (but then

the ENTITY-MIB has a more flexible model that distinguishes between

different kind of hardware components).

I also notice that the model

in draft-dong-i2rs-network-inventory-00 is config true - so I am not

sure how this is supposed to use.

Is the idea that this model is an

interface to an inventory database where I configure what I have

instead of a model sitting on a device where I can query what the

device actually has?



/js

Regards, Benoit



PS: I personally would have preferred if generic topology and perhaps

    inventory would have split off into a short-lived targeted WG

    instead of doing all of this in I2RS but it seems leadership has

    already decided that I2RS is the home for all of this.





_______________________________________________

netmod mailing list

netmod@ietf.org<mailto:netmod@ietf.org>

https://www.ietf.org/mailman/listinfo/netmod





_______________________________________________

netmod mailing list

netmod@ietf.org<mailto:netmod@ietf.org>

https://www.ietf.org/mailman/listinfo/netmod

.




--_000_76CD132C3ADEF848BD84D028D243C927338526B1nkgeml512mbxchi_
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Diso-8859-=
1">
<meta name=3D"Generator" content=3D"Microsoft Word 12 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:SimSun;
	panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
	{font-family:SimSun;
	panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0cm;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:"Times New Roman","serif";
	color:black;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
pre
	{mso-style-priority:99;
	mso-style-link:"HTML \9884\8BBE\683C\5F0F Char";
	margin:0cm;
	margin-bottom:.0001pt;
	font-size:10.0pt;
	font-family:"Courier New";
	color:black;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
	{mso-style-priority:99;
	mso-style-link:"\6279\6CE8\6846\6587\672C Char";
	margin:0cm;
	margin-bottom:.0001pt;
	font-size:9.0pt;
	font-family:"Times New Roman","serif";
	color:black;}
span.HTMLChar
	{mso-style-name:"HTML \9884\8BBE\683C\5F0F Char";
	mso-style-priority:99;
	mso-style-link:"HTML \9884\8BBE\683C\5F0F";
	font-family:"Courier New";
	color:black;}
span.Char
	{mso-style-name:"\6279\6CE8\6846\6587\672C Char";
	mso-style-priority:99;
	mso-style-link:\6279\6CE8\6846\6587\672C;
	font-family:SimSun;
	color:black;}
span.EmailStyle21
	{mso-style-type:personal-reply;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;}
@page WordSection1
	{size:612.0pt 792.0pt;
	margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body bgcolor=3D"white" lang=3D"ZH-CN" link=3D"blue" vlink=3D"purple">
<div class=3D"WordSection1">
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:10.5pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">Hi Benoit,
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:10.5pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D"><o:p>&nbsp=
;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:10.5pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">Thanks for=
 your comments.
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:10.5pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D"><o:p>&nbsp=
;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:10.5pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">So now we =
all agree that the inventory yang model work is needed. As for in which way=
 to build that model, currently there are different opinions,
 and we are open to discuss this. <o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:10.5pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D"><o:p>&nbsp=
;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:10.5pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">The intent=
ion of draft-dong-i2rs-network-inventory was to describe the features and c=
apabilities of the network nodes and their components, as
 during the discussion of the L2 topology model, we realized that such info=
rmation should be specified in a separate model. &nbsp;So in our opinion th=
is inventory model would include both the information listed in the ENTITY-=
MIB, and also a set of generic features
 and capabilities of the nodes and components, for which some configuration=
s could apply. &nbsp;Thus it would be more than the translation of MIB. As =
you said, this model could have links to the interface Yang model and some =
other models. Whether a Yang version
 of the ENTITY-MIB should be linked or integrated needs further discussion.=
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:10.5pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D"><o:p>&nbsp=
;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:10.5pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">Best regar=
ds,<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:10.5pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">Jie<o:p></=
o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:10.5pt;font-=
family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D"><o:p>&nbsp=
;</o:p></span></p>
<div style=3D"border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm =
4.0pt">
<div>
<div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm =
0cm 0cm">
<p class=3D"MsoNormal"><b><span lang=3D"EN-US" style=3D"font-size:10.0pt;fo=
nt-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:windowtext">From:=
</span></b><span lang=3D"EN-US" style=3D"font-size:10.0pt;font-family:&quot=
;Tahoma&quot;,&quot;sans-serif&quot;;color:windowtext"> Benoit Claise [mail=
to:bclaise@cisco.com]
<br>
<b>Sent:</b> Tuesday, March 10, 2015 10:56 PM<br>
<b>To:</b> Dongjie (Jimmy); Thomas D. Nadeau<br>
<b>Cc:</b> draft-dong-i2rs-network-inventory@tools.ietf.org; i2rs-chairs@to=
ols.ietf.org; NETMOD Working Group<br>
<b>Subject:</b> Re: [netmod] Inventory YANG model (entity-MIB)<o:p></o:p></=
span></p>
</div>
</div>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-US">Hi Jie,<o:p></o:p></span></p>
</div>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<pre><span lang=3D"EN-US">Hi Tom, <o:p></o:p></span></pre>
<pre><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></pre>
<pre><span lang=3D"EN-US">Happy to know that Netmod has interests on the in=
ventory Yang model, and we would be glad to move draft-dong-i2rs-network-in=
ventory-00 to Netmod if it is decided by the ADs and chairs.<o:p></o:p></sp=
an></pre>
</blockquote>
<p class=3D"MsoNormal"><span lang=3D"EN-US">There are two different work it=
ems.<br>
1. a YANG version of the ENTITY-MIB. This should be done in NETMOD<br>
<br>
2. the mapping between the topology work and inventories. I like the way Je=
ff expressed it<o:p></o:p></span></p>
<pre><span lang=3D"EN-US">The structure of the generic topology draft is le=
ading to interesting<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">questions about how information present in that m=
odel can link to higher and<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">lower layers.&nbsp; As seen in the I2RS presentat=
ions at the most recent interim,<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">this eventually leads to questions like &quot;inv=
entory&quot;.&nbsp; I also raised the<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">question about tunnels which will lead to other m=
odels as well.<o:p></o:p></span></pre>
<p class=3D"MsoNormal"><span lang=3D"EN-US">This item 2 should be done in I=
2RS. I understood that draft-dong-i2rs-network-inventory was covering this =
item 2, with links to the interface, to the ENTITY YANG model, and I guess =
others.<br>
<br>
Regards, Benoit<br>
<br>
<o:p></o:p></span></p>
<pre><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></pre>
<pre><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></pre>
<pre><span lang=3D"EN-US">Could we ask for a time slot of 10 mins to presen=
t the current inventory model draft and discuss the next-steps? Thanks.<o:p=
></o:p></span></pre>
<pre><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></pre>
<pre><span lang=3D"EN-US">Contributions and discussions on this model are w=
elcome.<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></pre>
<pre><span lang=3D"EN-US">Best regards,<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">Jie<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></pre>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<pre><span lang=3D"EN-US">-----Original Message-----<o:p></o:p></span></pre=
>
<pre><span lang=3D"EN-US">From: netmod [<a href=3D"mailto:netmod-bounces@ie=
tf.org">mailto:netmod-bounces@ietf.org</a>] On Behalf Of Thomas D.<o:p></o:=
p></span></pre>
<pre><span lang=3D"EN-US">Nadeau<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">Sent: Friday, March 06, 2015 8:21 PM<o:p></o:p></=
span></pre>
<pre><span lang=3D"EN-US">To: Benoit Claise<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">Cc: <a href=3D"mailto:draft-dong-i2rs-network-inv=
entory@tools.ietf.org">draft-dong-i2rs-network-inventory@tools.ietf.org</a>=
;<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US"><a href=3D"mailto:i2rs-chairs@tools.ietf.org">i2r=
s-chairs@tools.ietf.org</a>; NETMOD Working Group<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">Subject: Re: [netmod] Inventory YANG model (entit=
y-MIB)<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></pre>
<pre><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></pre>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<pre><span lang=3D"EN-US">On Mar 6, 2015:7:05 AM, at 7:05 AM, Benoit Claise=
 <a href=3D"mailto:bclaise@cisco.com">&lt;bclaise@cisco.com&gt;</a><o:p></o=
:p></span></pre>
</blockquote>
<pre><span lang=3D"EN-US">wrote:<o:p></o:p></span></pre>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<pre><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></pre>
<pre><span lang=3D"EN-US">Hi J=FCrgen,<o:p></o:p></span></pre>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<pre><span lang=3D"EN-US">On Fri, Mar 06, 2015 at 11:48:02AM &#43;0100, Ben=
oit Claise wrote:<o:p></o:p></span></pre>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<pre><span lang=3D"EN-US">Dear all,<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></pre>
<pre><span lang=3D"EN-US">The I2RS interim meeting yesterday focused on top=
ology.<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">Let me cut/paste a high level slide, with pointer=
s to the relevant drafts.<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></pre>
<pre><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></pre>
<pre><span lang=3D"EN-US">If interested, the meeting minutes are at<o:p></o=
:p></span></pre>
<pre><span lang=3D"EN-US"><a href=3D"http://etherpad.tools.ietf.org:9000/p/=
i2rs-interim-march-5-2015-v-bl">http://etherpad.tools.ietf.org:9000/p/i2rs-=
interim-march-5-2015-v-bl</a><o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">uesheets<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></pre>
<pre><span lang=3D"EN-US">Part of the inventory draft<o:p></o:p></span></pr=
e>
<pre><span lang=3D"EN-US">(<a href=3D"http://datatracker.ietf.org/doc/draft=
-dong-i2rs-network-inventory/">http://datatracker.ietf.org/doc/draft-dong-i=
2rs-network-inventory/</a>)<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">discussion, the overlap with the ENTITY-MIB RFC 6=
933 was discussed<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">(and RFC 7223 btw).<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></pre>
<pre><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></pre>
<pre><span lang=3D"EN-US">The message was that I2RS should not re-invent so=
mething similar to<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">the ENTITY-MIB So, are you aware of any initiativ=
es to &quot;YANGify&quot; the<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">ENTITY-MIB?<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">It's true that there is a way to translate MIB in=
to YANG with RFC 6643.<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">This could be a good start. However, I wonder if =
a hand-written YANG<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">model that closely follows the entPhysical would =
not be more beneficial.<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">Is this something we should take on board in NETM=
OD?<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></pre>
<pre><span lang=3D"EN-US">What do you think?<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></pre>
<pre><span lang=3D"EN-US">Note: As commented by the I2RS people, indexing i=
s appropriate in<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">the MIB module for its original purpose, but may =
not be for the topology.<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">I'm not sure we want to change the indexing just =
for the topology,<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">but the integration within the topology draft sho=
uld be thought of.<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></pre>
</blockquote>
<pre><span lang=3D"EN-US">My first question is (perhaps not surprising) whe=
ther inventory falls<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">into the I2RS charter, I2RS =3D interface to the =
routing system.<o:p></o:p></span></pre>
</blockquote>
<pre><span lang=3D"EN-US">No it doesn't.<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">As mentioned during the interim yesterday by the =
I2RS people, they would be<o:p></o:p></span></pre>
</blockquote>
<pre><span lang=3D"EN-US">happy if the inventory work be done somewhere els=
e. Hence this email thread. I<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">believe this work should be picked up by NETMOD .=
<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></pre>
<pre><span lang=3D"EN-US"> I agree with Juergen's assessment; this seems li=
ke it should be done in<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">NETMOD. We should figure out a way to leverage th=
e entity MIB but given that<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">module's age, we should also be open to updates b=
ecause the world has<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">changed since that was published.<o:p></o:p></spa=
n></pre>
<pre><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></pre>
<pre><span lang=3D"EN-US"> So there is a wider question as Juergen asked at=
 the end of the thread:<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">should here be a concentrated effort to do topolo=
gy/inventory that applies to<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">all areas ?&nbsp; I'd say yes.&nbsp; While not a =
super complicated, long effort, this is<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">something that needs to be done in a way that it =
applies to more than just the<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">use cases of a specific routing use case.&nbsp; W=
ith that in mind, its important to get<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">the network operators involved on this effort so =
that this is not done in a<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">vendor vacuum.<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></pre>
<pre><span lang=3D"EN-US"> Speaking as an individual, I will point out that=
 the topology model that I've<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">worked on with Jan et al you can see the approach=
 taken on network topology.<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">This has been implemented in ODL, which means its=
 being tried in production<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">environments right now and works quite well:<o:p>=
</o:p></span></pre>
<pre><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></pre>
<pre><span lang=3D"EN-US"><a href=3D"http://www.ietf.org/archive/id/draft-m=
edved-i2rs-topology-im-01.txt">http://www.ietf.org/archive/id/draft-medved-=
i2rs-topology-im-01.txt</a><o:p></o:p></span></pre>
<pre><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></pre>
<pre><span lang=3D"EN-US"> Another data point here. Shane and others have b=
een been clear that an<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">inventory is needed and how it is a bit different=
 than network topology as<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">specified above, but that it should be consistent=
 in certain places too:<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></pre>
<pre><span lang=3D"EN-US"><a href=3D"https://datatracker.ietf.org/doc/draft=
-amante-i2rs-topology-use-cases/">https://datatracker.ietf.org/doc/draft-am=
ante-i2rs-topology-use-cases/</a><o:p></o:p></span></pre>
<pre><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></pre>
<pre><span lang=3D"EN-US"> --Tom<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></pre>
<pre><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></pre>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<pre><span lang=3D"EN-US">That<o:p></o:p></span></pre>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<pre><span lang=3D"EN-US">said, RFC 6643 gives you a read-only translation.=
 There are not many<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">read-write objects in the ENTITY-MIB so perhaps t=
his is good enough<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">for now. I guess it would help what I2RS needs to=
 know in order to<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">make the interface to the routing system work.<o:=
p></o:p></span></pre>
<pre><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></pre>
<pre><span lang=3D"EN-US">Anyway, if YANG models overlapping the ENTITY-MIB=
 are done, they they<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">should at least allow implementation of both in a=
 predictable manner.<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">Looking at draft-dong-i2rs-network-inventory-00, =
it seems the whole<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">interface list is already covered by RFC 7223 and=
 interfaces should<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">be references not repeated (this is what the ENTI=
TY-MIB does).<o:p></o:p></span></pre>
</blockquote>
<pre><span lang=3D"EN-US">Yes, I made that point.<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">Similarly, this draft should reference a inventor=
y YANG model<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></pre>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<pre><span lang=3D"EN-US">So what is<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">left is essentially a (not yet hierarchy) of 'car=
ds' that seem to<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">more or less match the entPhysicalTable of the EN=
TITY-MIB (but then<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">the ENTITY-MIB has a more flexible model that dis=
tinguishes between<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">different kind of hardware components).<o:p></o:p=
></span></pre>
<pre><span lang=3D"EN-US">I also notice that the model<o:p></o:p></span></p=
re>
<pre><span lang=3D"EN-US">in draft-dong-i2rs-network-inventory-00 is config=
 true - so I am not<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">sure how this is supposed to use.<o:p></o:p></spa=
n></pre>
<pre><span lang=3D"EN-US">Is the idea that this model is an<o:p></o:p></spa=
n></pre>
<pre><span lang=3D"EN-US">interface to an inventory database where I config=
ure what I have<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">instead of a model sitting on a device where I ca=
n query what the<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">device actually has?<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></pre>
<pre><span lang=3D"EN-US">/js<o:p></o:p></span></pre>
</blockquote>
<pre><span lang=3D"EN-US">Regards, Benoit<o:p></o:p></span></pre>
<blockquote style=3D"margin-top:5.0pt;margin-bottom:5.0pt">
<pre><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></pre>
<pre><span lang=3D"EN-US">PS: I personally would have preferred if generic =
topology and perhaps<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">&nbsp;&nbsp;&nbsp; inventory would have split off=
 into a short-lived targeted WG<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">&nbsp;&nbsp;&nbsp; instead of doing all of this i=
n I2RS but it seems leadership has<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US">&nbsp;&nbsp;&nbsp; already decided that I2RS is t=
he home for all of this.<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></pre>
</blockquote>
<pre><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></pre>
<pre><span lang=3D"EN-US">_______________________________________________<o=
:p></o:p></span></pre>
<pre><span lang=3D"EN-US">netmod mailing list<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US"><a href=3D"mailto:netmod@ietf.org">netmod@ietf.or=
g</a><o:p></o:p></span></pre>
<pre><span lang=3D"EN-US"><a href=3D"https://www.ietf.org/mailman/listinfo/=
netmod">https://www.ietf.org/mailman/listinfo/netmod</a><o:p></o:p></span><=
/pre>
<pre><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></pre>
</blockquote>
<pre><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></pre>
<pre><span lang=3D"EN-US">_______________________________________________<o=
:p></o:p></span></pre>
<pre><span lang=3D"EN-US">netmod mailing list<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US"><a href=3D"mailto:netmod@ietf.org">netmod@ietf.or=
g</a><o:p></o:p></span></pre>
<pre><span lang=3D"EN-US"><a href=3D"https://www.ietf.org/mailman/listinfo/=
netmod">https://www.ietf.org/mailman/listinfo/netmod</a><o:p></o:p></span><=
/pre>
</blockquote>
<pre><span lang=3D"EN-US">.<o:p></o:p></span></pre>
<pre><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></pre>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
</div>
</div>
</body>
</html>

--_000_76CD132C3ADEF848BD84D028D243C927338526B1nkgeml512mbxchi_--


From nobody Wed Mar 11 00:01:42 2015
Return-Path: <j.schoenwaelder@jacobs-university.de>
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 B45F91A6EE4 for <netmod@ietfa.amsl.com>; Wed, 11 Mar 2015 00:01:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.86
X-Spam-Level: 
X-Spam-Status: No, score=-3.86 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] 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 52hNNQFI7JEt for <netmod@ietfa.amsl.com>; Wed, 11 Mar 2015 00:01:38 -0700 (PDT)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 73EC11A1F70 for <netmod@ietf.org>; Wed, 11 Mar 2015 00:01:38 -0700 (PDT)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id E57362F2C; Wed, 11 Mar 2015 08:01:36 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.220]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id 3fObQ--1b0Ea; Wed, 11 Mar 2015 08:01:23 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS; Wed, 11 Mar 2015 08:01:35 +0100 (CET)
Received: from localhost (demetrius4.jacobs-university.de [212.201.44.49]) by hermes.jacobs-university.de (Postfix) with ESMTP id 3A7942003F; Wed, 11 Mar 2015 08:01:35 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius4.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id m9uWyyOWTltK; Wed, 11 Mar 2015 08:01:34 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id 41E4B2003D; Wed, 11 Mar 2015 08:01:34 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id CA0D732768EA; Wed, 11 Mar 2015 08:01:32 +0100 (CET)
Date: Wed, 11 Mar 2015 08:01:31 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: "Dongjie (Jimmy)" <jie.dong@huawei.com>
Message-ID: <20150311070131.GA8717@elstar.local>
Mail-Followup-To: "Dongjie (Jimmy)" <jie.dong@huawei.com>, Benoit Claise <bclaise@cisco.com>, "Thomas D. Nadeau" <tnadeau@lucidvision.com>, "draft-dong-i2rs-network-inventory@tools.ietf.org" <draft-dong-i2rs-network-inventory@tools.ietf.org>,  "i2rs-chairs@tools.ietf.org" <i2rs-chairs@tools.ietf.org>, NETMOD Working Group <netmod@ietf.org>
References: <54F985E2.6020304@cisco.com> <20150306110536.GA73575@elstar.local> <54F997F5.8080500@cisco.com> <2D3BC67E-9B26-488E-BF4D-0FC899C3A8CA@lucidvision.com> <76CD132C3ADEF848BD84D028D243C92733850607@nkgeml512-mbx.china.huawei.com> <54FF05EE.2070607@cisco.com> <76CD132C3ADEF848BD84D028D243C927338526B1@nkgeml512-mbx.china.huawei.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <76CD132C3ADEF848BD84D028D243C927338526B1@nkgeml512-mbx.china.huawei.com>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/rYEn7UwvJrkatn4b0QwjiL38FjQ>
Cc: "i2rs-chairs@tools.ietf.org" <i2rs-chairs@tools.ietf.org>, "draft-dong-i2rs-network-inventory@tools.ietf.org" <draft-dong-i2rs-network-inventory@tools.ietf.org>, NETMOD Working Group <netmod@ietf.org>
Subject: Re: [netmod] Inventory YANG model (entity-MIB)
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
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: <http://www.ietf.org/mail-archive/web/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: Wed, 11 Mar 2015 07:01:40 -0000

On Wed, Mar 11, 2015 at 05:59:13AM +0000, Dongjie (Jimmy) wrote:
 
> The intention of draft-dong-i2rs-network-inventory was to describe
> the features and capabilities of the network nodes and their
> components, as during the discussion of the L2 topology model, we
> realized that such information should be specified in a separate
> model.  So in our opinion this inventory model would include both
> the information listed in the ENTITY-MIB, and also a set of generic
> features and capabilities of the nodes and components, for which
> some configurations could apply.  Thus it would be more than the
> translation of MIB.

You need to detail what these 'generic features and capabilities of
the nodes and components' would be. Note that there is already RFC
7317.

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Wed Mar 11 01:00:12 2015
Return-Path: <mbj@tail-f.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 2258B1AC409 for <netmod@ietfa.amsl.com>; Wed, 11 Mar 2015 01:00:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.911
X-Spam-Level: 
X-Spam-Status: No, score=-1.911 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] 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 T-ixqjWW-JyW for <netmod@ietfa.amsl.com>; Wed, 11 Mar 2015 01:00:04 -0700 (PDT)
Received: from mail.tail-f.com (mail.tail-f.com [83.241.162.140]) by ietfa.amsl.com (Postfix) with ESMTP id 6FA511AC408 for <netmod@ietf.org>; Wed, 11 Mar 2015 01:00:04 -0700 (PDT)
Received: from localhost (x15.tail-f.com [192.168.1.60]) by mail.tail-f.com (Postfix) with ESMTPSA id 2483D1280A81; Wed, 11 Mar 2015 09:00:02 +0100 (CET)
Date: Wed, 11 Mar 2015 09:00:00 +0100 (CET)
Message-Id: <20150311.090000.1480344010123088631.mbj@tail-f.com>
To: ccrusius@cisco.com
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <D11F0D19.4C0E%ccrusius@cisco.com>
References: <D11658BB.4AEC%ccrusius@cisco.com> <54F9AD67.1090506@cisco.com> <D11F0D19.4C0E%ccrusius@cisco.com>
X-Mailer: Mew version 6.5 on Emacs 23.4 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/3QmPAoodtcD0E4uiavEhZQEWwcE>
Cc: netmod@ietf.org, joelja@bogus.com, rfc-editor@rfc-editor.org
Subject: Re: [netmod] [Technical Errata Reported] RFC6020 (4282)
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: <http://www.ietf.org/mail-archive/web/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: Wed, 11 Mar 2015 08:00:11 -0000

Hi,

"Cesar Crusius (ccrusius)" <ccrusius@cisco.com> wrote:
> Hi Benoit,
> 
> For 4282, the new text should be
> 
> unknown-statement   = prefix ":" identifier [sep string] optsep
>                     (";" / "{" optsep *(unknown-statement2 optsep) "}")
> unknown-statement2   = [prefix ":"] identifier [sep string] optsep
>                      (";" / "{" optsep *(unknown-statement2 optsep) "}")

This errata can be accepted.

In draft-ietf-netmod-rfc6020bis this rule has been rewritten a bit.


/martin


> 
> 
> Best,
> 
> - Cesar
> 
> On 3/6/15, 5:36 AM, "Benoit Claise (bclaise)" <bclaise@cisco.com> wrote:
> 
> >Cesar,
> >
> >Provide me the exact new text, and I'll cut and paste in the errata.
> >
> >Regards, Benoit
> >> There is a problem with this errata due to a paste problem (parentheses
> >> got stripped out). Where it reads
> >>
> >> *unknown_statement2 optsep
> >>
> >> It should read
> >>
> >> *(unknown_statement2 optsep)
> >>
> >> Thanks,
> >>
> >>
> >> - Cesar
> >>
> >> On 2/27/15, 10:41 AM, "RFC Errata System" <rfc-editor@rfc-editor.org>
> >> wrote:
> >>
> >>> The following errata report has been submitted for RFC6020,
> >>> "YANG - A Data Modeling Language for the Network Configuration Protocol
> >>> (NETCONF)".
> >>>
> >>> --------------------------------------
> >>> You may review the report below and at:
> >>> http://www.rfc-editor.org/errata_search.php?rfc=6020&eid=4282
> >>>
> >>> --------------------------------------
> >>> Type: Technical
> >>> Reported by: Cesar Crusius <ccrusius@cisco.com>
> >>>
> >>> Section: 12
> >>>
> >>> Original Text
> >>> -------------
> >>> unknown-statement   = prefix ":" identifier [sep string] optsep
> >>>                       (";" / "{" *unknown-statement2 "}")
> >>> unknown-statement2   = [prefix ":"] identifier [sep string] optsep
> >>>                       (";" / "{" *unknown-statement2 "}")
> >>>
> >>>
> >>> Corrected Text
> >>> --------------
> >>> unknown-statement   = prefix ":" identifier [sep string] optsep
> >>>                       (";" / "{" optsep *unknown-statement2 optsep "}")
> >>> unknown-statement2   = [prefix ":"] identifier [sep string] optsep
> >>>                       (";" / "{" optsep *unknown-statement2 optsep "}")
> >>>
> >>>
> >>> Notes
> >>> -----
> >>>
> >>>
> >>> Instructions:
> >>> -------------
> >>> This erratum is currently posted as "Reported". If necessary, please
> >>> use "Reply All" to discuss whether it should be verified or
> >>> rejected. When a decision is reached, the verifying party (IESG)
> >>> can log in to change the status and edit the report, if necessary.
> >>>
> >>> --------------------------------------
> >>> RFC6020 (draft-ietf-netmod-yang-13)
> >>> --------------------------------------
> >>> Title               : YANG - A Data Modeling Language for the Network
> >>> Configuration Protocol (NETCONF)
> >>> Publication Date    : October 2010
> >>> Author(s)           : M. Bjorklund, Ed.
> >>> Category            : PROPOSED STANDARD
> >>> Source              : NETCONF Data Modeling Language
> >>> Area                : Operations and Management
> >>> Stream              : IETF
> >>> Verifying Party     : IESG
> >>>
> >
> 


From nobody Wed Mar 11 01:02:09 2015
Return-Path: <mbj@tail-f.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 5DA291A8AF9 for <netmod@ietfa.amsl.com>; Wed, 11 Mar 2015 01:02:07 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.911
X-Spam-Level: 
X-Spam-Status: No, score=-1.911 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] 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 F7wXaLyfceDC for <netmod@ietfa.amsl.com>; Wed, 11 Mar 2015 01:02:04 -0700 (PDT)
Received: from mail.tail-f.com (mail.tail-f.com [83.241.162.140]) by ietfa.amsl.com (Postfix) with ESMTP id 351501A1AB1 for <netmod@ietf.org>; Wed, 11 Mar 2015 01:02:04 -0700 (PDT)
Received: from localhost (x15.tail-f.com [192.168.1.60]) by mail.tail-f.com (Postfix) with ESMTPSA id 79AD31280A81; Wed, 11 Mar 2015 09:02:03 +0100 (CET)
Date: Wed, 11 Mar 2015 09:02:03 +0100 (CET)
Message-Id: <20150311.090203.1652143352880688566.mbj@tail-f.com>
To: bclaise@cisco.com
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <54FF0DD4.3020007@cisco.com>
References: <20150228234122.D9FD5181D1B@rfc-editor.org> <54FF0DD4.3020007@cisco.com>
X-Mailer: Mew version 6.5 on Emacs 23.4 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/pG5xHUuKH7qTi9BUvLG23Zu-4Us>
Cc: netmod@ietf.org, joelja@bogus.com, rfc-editor@rfc-editor.org, ccrusius@cisco.com
Subject: Re: [netmod] [Technical Errata Reported] RFC6020 (4283)
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: <http://www.ietf.org/mail-archive/web/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: Wed, 11 Mar 2015 08:02:07 -0000

Benoit Claise <bclaise@cisco.com> wrote:
> Dear all,
> 
> This errata has been updated according to Cesar's latest update.
> See http://www.rfc-editor.org/errata_search.php?eid=4283
> Let me know if this errata should be accepted.

Yes, it can be accepted.


/martin



> 
> Regards, Benoit
> > The following errata report has been submitted for RFC6020,
> > "YANG - A Data Modeling Language for the Network Configuration
> > Protocol (NETCONF)".
> >
> > --------------------------------------
> > You may review the report below and at:
> > http://www.rfc-editor.org/errata_search.php?rfc=6020&eid=4283
> >
> > --------------------------------------
> > Type: Technical
> > Reported by: Cesar Crusius <ccrusius@cisco.com>
> >
> > Section: 12
> >
> > Original Text
> > -------------
> > stmtend = ";" / "{" *unknown_statement "}"
> >
> > Corrected Text
> > --------------
> > stmtend = ";" / "{" stmtsep "}"
> >
> > Notes
> > -----
> > As specified, there are no spaces allowed between the unknown
> > statements, and between the braces and the unknown statements.
> >
> > Instructions:
> > -------------
> > This erratum is currently posted as "Reported". If necessary, please
> > use "Reply All" to discuss whether it should be verified or
> > rejected. When a decision is reached, the verifying party (IESG)
> > can log in to change the status and edit the report, if necessary.
> >
> > --------------------------------------
> > RFC6020 (draft-ietf-netmod-yang-13)
> > --------------------------------------
> > Title : YANG - A Data Modeling Language for the Network Configuration
> > Protocol (NETCONF)
> > Publication Date    : October 2010
> > Author(s)           : M. Bjorklund, Ed.
> > Category            : PROPOSED STANDARD
> > Source              : NETCONF Data Modeling Language
> > Area                : Operations and Management
> > Stream              : IETF
> > Verifying Party     : IESG
> >
> > .
> >
> 


From nobody Wed Mar 11 01:47:04 2015
Return-Path: <wwwrun@rfc-editor.org>
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 6AA6E1A6F3C; Wed, 11 Mar 2015 01:47:00 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -101.912
X-Spam-Level: 
X-Spam-Status: No, score=-101.912 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01, USER_IN_WHITELIST=-100] 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 b0qwEawTw9P0; Wed, 11 Mar 2015 01:46:59 -0700 (PDT)
Received: from rfc-editor.org (rfc-editor.org [IPv6:2001:1900:3001:11::31]) by ietfa.amsl.com (Postfix) with ESMTP id 2F3011A010C; Wed, 11 Mar 2015 01:46:59 -0700 (PDT)
Received: by rfc-editor.org (Postfix, from userid 30) id ED6BE180205; Wed, 11 Mar 2015 01:46:11 -0700 (PDT)
To: ccrusius@cisco.com, mbj@tail-f.com
X-PHP-Originating-Script: 1005:errata_mail_lib.php
From: RFC Errata System <rfc-editor@rfc-editor.org>
Message-Id: <20150311084611.ED6BE180205@rfc-editor.org>
Date: Wed, 11 Mar 2015 01:46:11 -0700 (PDT)
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/8SIS-ur8IvUXzu1_wXLPC8-TDjU>
Cc: iesg@ietf.org, netmod@ietf.org, rfc-editor@rfc-editor.org
Subject: [netmod] [Errata Verified] RFC6020 (4282)
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: <http://www.ietf.org/mail-archive/web/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: Wed, 11 Mar 2015 08:47:00 -0000

The following errata report has been verified for RFC6020,
"YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)". 

--------------------------------------
You may review the report below and at:
http://www.rfc-editor.org/errata_search.php?rfc=6020&eid=4282

--------------------------------------
Status: Verified
Type: Technical

Reported by: Cesar Crusius <ccrusius@cisco.com>
Date Reported: 2015-02-27
Verified by: Benoit Claise (IESG)

Section: 12

Original Text
-------------
unknown-statement   = prefix ":" identifier [sep string] optsep
                      (";" / "{" *unknown-statement2 "}") 
unknown-statement2   = [prefix ":"] identifier [sep string] optsep
                      (";" / "{" *unknown-statement2 "}") 


Corrected Text
--------------
unknown-statement   = prefix ":" identifier [sep string] optsep
                    (";" / "{" optsep *(unknown-statement2 optsep) "}")
unknown-statement2   = [prefix ":"] identifier [sep string] optsep
                     (";" / "{" optsep *(unknown-statement2 optsep) "}")


Notes
-----


--------------------------------------
RFC6020 (draft-ietf-netmod-yang-13)
--------------------------------------
Title               : YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)
Publication Date    : October 2010
Author(s)           : M. Bjorklund, Ed.
Category            : PROPOSED STANDARD
Source              : NETCONF Data Modeling Language
Area                : Operations and Management
Stream              : IETF
Verifying Party     : IESG


From nobody Wed Mar 11 01:47:53 2015
Return-Path: <wwwrun@rfc-editor.org>
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 8FDF71A86F7; Wed, 11 Mar 2015 01:47:48 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -106.912
X-Spam-Level: 
X-Spam-Status: No, score=-106.912 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01, USER_IN_WHITELIST=-100] 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 bRSOBC17SsGi; Wed, 11 Mar 2015 01:47:47 -0700 (PDT)
Received: from rfc-editor.org (rfc-editor.org [4.31.198.49]) by ietfa.amsl.com (Postfix) with ESMTP id 23C9B1A7030; Wed, 11 Mar 2015 01:47:47 -0700 (PDT)
Received: by rfc-editor.org (Postfix, from userid 30) id EA1CF180205; Wed, 11 Mar 2015 01:46:59 -0700 (PDT)
To: ccrusius@cisco.com, mbj@tail-f.com
X-PHP-Originating-Script: 1005:errata_mail_lib.php
From: RFC Errata System <rfc-editor@rfc-editor.org>
Message-Id: <20150311084659.EA1CF180205@rfc-editor.org>
Date: Wed, 11 Mar 2015 01:46:59 -0700 (PDT)
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/-F96Z9EB4Hh8UWrhVfoHtcl9W8Q>
Cc: iesg@ietf.org, netmod@ietf.org, rfc-editor@rfc-editor.org
Subject: [netmod] [Errata Verified] RFC6020 (4283)
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: <http://www.ietf.org/mail-archive/web/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: Wed, 11 Mar 2015 08:47:48 -0000

The following errata report has been verified for RFC6020,
"YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)". 

--------------------------------------
You may review the report below and at:
http://www.rfc-editor.org/errata_search.php?rfc=6020&eid=4283

--------------------------------------
Status: Verified
Type: Technical

Reported by: Cesar Crusius <ccrusius@cisco.com>
Date Reported: 2015-02-28
Verified by: Benoit Claise (IESG)

Section: 12

Original Text
-------------
stmtend = ";" / "{" *unknown_statement "}"

Corrected Text
--------------
stmtend = optsep (";" / "{" stmtsep "}") stmtsep

Notes
-----
Note1: As specified, there are no spaces allowed between the unknown statements, and between the braces and the unknown statements.

Notes2:
The original "stmtend" rule does not allow for spaces between unknown
statements, which requires the "*unknown-statement" fix in "stmtend".

There is at least one place ("revision-date-stmt") where "stmtend" end
is not preceded by "optsep". Instead of fixing those rules, it is better to
include "optsep" in "stmtend" itself, since it should always be present.

On the same note, almost all "stmtend" uses are followed by a
"stmtsep", and any cases where that does not happen are probably an error, so again it is better to make that explicit in the "stmtend" rule itself.

With the change in this errata, there will be a lot of rules in the
ABNF with redundant (but not technically incorrect) "optsep" and "stmtsep" parts, as for example

      module-header-stmts = ;; these stmts can appear in any order
                            [yang-version-stmt stmtsep]
                            namespace-stmt stmtsep
                            prefix-stmt stmtsep

      namespace-stmt = namespace-keyword sep uri-str optsep stmtend

which now could be replaced with

      module-header-stmts = ;; these stmts can appear in any order
                            [yang-version-stmt]
                            namespace-stmt
                            prefix-stmt

      namespace-stmt = namespace-keyword sep uri-str stmtend

These changes should probably be incorporated into the next ABNF
revision.

--------------------------------------
RFC6020 (draft-ietf-netmod-yang-13)
--------------------------------------
Title               : YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)
Publication Date    : October 2010
Author(s)           : M. Bjorklund, Ed.
Category            : PROPOSED STANDARD
Source              : NETCONF Data Modeling Language
Area                : Operations and Management
Stream              : IETF
Verifying Party     : IESG


From nobody Wed Mar 11 02:43:36 2015
Return-Path: <jie.dong@huawei.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 2DCD81AC39D for <netmod@ietfa.amsl.com>; Wed, 11 Mar 2015 02:43:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.211
X-Spam-Level: 
X-Spam-Status: No, score=-4.211 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] 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 zF4y4-DdVXzs for <netmod@ietfa.amsl.com>; Wed, 11 Mar 2015 02:43:33 -0700 (PDT)
Received: from lhrrgout.huawei.com (lhrrgout.huawei.com [194.213.3.17]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3ADAA1A9046 for <netmod@ietf.org>; Wed, 11 Mar 2015 02:43:31 -0700 (PDT)
Received: from 172.18.7.190 (EHLO lhreml402-hub.china.huawei.com) ([172.18.7.190]) by lhrrg02-dlp.huawei.com (MOS 4.3.7-GA FastPath queued) with ESMTP id BQC79508; Wed, 11 Mar 2015 09:43:27 +0000 (GMT)
Received: from NKGEML408-HUB.china.huawei.com (10.98.56.39) by lhreml402-hub.china.huawei.com (10.201.5.241) with Microsoft SMTP Server (TLS) id 14.3.158.1; Wed, 11 Mar 2015 09:43:27 +0000
Received: from NKGEML512-MBX.china.huawei.com ([169.254.7.106]) by nkgeml408-hub.china.huawei.com ([10.98.56.39]) with mapi id 14.03.0158.001; Wed, 11 Mar 2015 17:43:22 +0800
From: "Dongjie (Jimmy)" <jie.dong@huawei.com>
To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
Thread-Topic: [netmod] Inventory YANG model (entity-MIB)
Thread-Index: AQHQV/sWQ/8m3BSs+0WHTuyrX71fWp0OxN8AgAAQo4CAAARMAIAEor+ggAHR7wCAAVWLQP//uE6AgACn4HA=
Date: Wed, 11 Mar 2015 09:43:21 +0000
Message-ID: <76CD132C3ADEF848BD84D028D243C92733852AD5@nkgeml512-mbx.china.huawei.com>
References: <54F985E2.6020304@cisco.com> <20150306110536.GA73575@elstar.local> <54F997F5.8080500@cisco.com> <2D3BC67E-9B26-488E-BF4D-0FC899C3A8CA@lucidvision.com> <76CD132C3ADEF848BD84D028D243C92733850607@nkgeml512-mbx.china.huawei.com> <54FF05EE.2070607@cisco.com> <76CD132C3ADEF848BD84D028D243C927338526B1@nkgeml512-mbx.china.huawei.com> <20150311070131.GA8717@elstar.local>
In-Reply-To: <20150311070131.GA8717@elstar.local>
Accept-Language: en-US, zh-CN
Content-Language: zh-CN
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [10.111.97.131]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-CFilter-Loop: Reflected
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/_Errva9ocQp9r7-ov7G1o8U6V1A>
Cc: "i2rs-chairs@tools.ietf.org" <i2rs-chairs@tools.ietf.org>, "draft-dong-i2rs-network-inventory@tools.ietf.org" <draft-dong-i2rs-network-inventory@tools.ietf.org>, NETMOD Working Group <netmod@ietf.org>
Subject: Re: [netmod] Inventory YANG model (entity-MIB)
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: <http://www.ietf.org/mail-archive/web/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: Wed, 11 Mar 2015 09:43:35 -0000

Hi Juergen,=20

We did checked RFC7317 when we wrote this draft, and found that (please cor=
rect me if I'm wrong) the features described in that RFC are mainly for the=
 management of the device.=20

As described in the -00 version of draft-dong-inventory, the "generic featu=
res and capabilities" means the networking functions and services that the =
network nodes and components can provide, e.g. IP unicast, multicast, ether=
net bridging, mpls, traffic-engineering, etc. The set of the functions will=
 be completed in future revision. Our intention is to abstract those contro=
l plane independent functions in this model, and let the protocol specific =
models to cover the details of each protocol.

Best regards,
Jie

> -----Original Message-----
> From: Juergen Schoenwaelder [mailto:j.schoenwaelder@jacobs-university.de]
> Sent: Wednesday, March 11, 2015 3:02 PM
> To: Dongjie (Jimmy)
> Cc: Benoit Claise; Thomas D. Nadeau;
> draft-dong-i2rs-network-inventory@tools.ietf.org; i2rs-chairs@tools.ietf.=
org;
> NETMOD Working Group
> Subject: Re: [netmod] Inventory YANG model (entity-MIB)
>=20
> On Wed, Mar 11, 2015 at 05:59:13AM +0000, Dongjie (Jimmy) wrote:
>=20
> > The intention of draft-dong-i2rs-network-inventory was to describe the
> > features and capabilities of the network nodes and their components,
> > as during the discussion of the L2 topology model, we realized that
> > such information should be specified in a separate model.  So in our
> > opinion this inventory model would include both the information listed
> > in the ENTITY-MIB, and also a set of generic features and capabilities
> > of the nodes and components, for which some configurations could
> > apply.  Thus it would be more than the translation of MIB.
>=20
> You need to detail what these 'generic features and capabilities of the n=
odes
> and components' would be. Note that there is already RFC 7317.
>=20
> /js
>=20
> --
> Juergen Schoenwaelder           Jacobs University Bremen gGmbH
> Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
> Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Wed Mar 11 03:33:34 2015
Return-Path: <j.schoenwaelder@jacobs-university.de>
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 A00571ACD96 for <netmod@ietfa.amsl.com>; Wed, 11 Mar 2015 03:33:32 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.86
X-Spam-Level: 
X-Spam-Status: No, score=-3.86 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] 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 llCitlmHeYnO for <netmod@ietfa.amsl.com>; Wed, 11 Mar 2015 03:33:30 -0700 (PDT)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6AC0D1ACD6D for <netmod@ietf.org>; Wed, 11 Mar 2015 03:22:31 -0700 (PDT)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id 3800E2EBF; Wed, 11 Mar 2015 11:22:30 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.220]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id Ddr6uqxH3Xex; Wed, 11 Mar 2015 11:22:16 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS; Wed, 11 Mar 2015 11:22:29 +0100 (CET)
Received: from localhost (demetrius4.jacobs-university.de [212.201.44.49]) by hermes.jacobs-university.de (Postfix) with ESMTP id 695502003D; Wed, 11 Mar 2015 11:22:29 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius4.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id BgYf7r9QpCvE; Wed, 11 Mar 2015 11:22:29 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id 5AF4C20043; Wed, 11 Mar 2015 11:22:28 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id 537503276C63; Wed, 11 Mar 2015 11:22:24 +0100 (CET)
Date: Wed, 11 Mar 2015 11:22:24 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: "Dongjie (Jimmy)" <jie.dong@huawei.com>
Message-ID: <20150311102224.GA9314@elstar.local>
Mail-Followup-To: "Dongjie (Jimmy)" <jie.dong@huawei.com>, Benoit Claise <bclaise@cisco.com>, "Thomas D. Nadeau" <tnadeau@lucidvision.com>, "draft-dong-i2rs-network-inventory@tools.ietf.org" <draft-dong-i2rs-network-inventory@tools.ietf.org>,  "i2rs-chairs@tools.ietf.org" <i2rs-chairs@tools.ietf.org>, NETMOD Working Group <netmod@ietf.org>
References: <54F985E2.6020304@cisco.com> <20150306110536.GA73575@elstar.local> <54F997F5.8080500@cisco.com> <2D3BC67E-9B26-488E-BF4D-0FC899C3A8CA@lucidvision.com> <76CD132C3ADEF848BD84D028D243C92733850607@nkgeml512-mbx.china.huawei.com> <54FF05EE.2070607@cisco.com> <76CD132C3ADEF848BD84D028D243C927338526B1@nkgeml512-mbx.china.huawei.com> <20150311070131.GA8717@elstar.local> <76CD132C3ADEF848BD84D028D243C92733852AD5@nkgeml512-mbx.china.huawei.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <76CD132C3ADEF848BD84D028D243C92733852AD5@nkgeml512-mbx.china.huawei.com>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/-z8Zukdc8o3yWL17QV_IUDWxiJg>
Cc: "i2rs-chairs@tools.ietf.org" <i2rs-chairs@tools.ietf.org>, "draft-dong-i2rs-network-inventory@tools.ietf.org" <draft-dong-i2rs-network-inventory@tools.ietf.org>, NETMOD Working Group <netmod@ietf.org>
Subject: Re: [netmod] Inventory YANG model (entity-MIB)
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
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: <http://www.ietf.org/mail-archive/web/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: Wed, 11 Mar 2015 10:33:32 -0000

On Wed, Mar 11, 2015 at 09:43:21AM +0000, Dongjie (Jimmy) wrote:
 
> As described in the -00 version of draft-dong-inventory, the "generic features and capabilities" means the networking functions and services that the network nodes and components can provide, e.g. IP unicast, multicast, ethernet bridging, mpls, traffic-engineering, etc. The set of the functions will be completed in future revision. Our intention is to abstract those control plane independent functions in this model, and let the protocol specific models to cover the details of each protocol.

I think this is not how we organize work in the IETF. If a device
supports ethernet briding (for example), it will announce an ethernet
bridging data model that is extending the generic interface data model
with ethernet bridging specific configuration and state objects. This
has already been done for IP and it follows the way the IETF
previously organized MIB modules. This is also largely how routing
data models that are currently written are organized (a core routing
data model plus routing protocol specific extensions).

I do not think that what you are describing fits into the scope of an
inventory data model given the way the IETF used partion work so far.

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Wed Mar 11 05:13:45 2015
Return-Path: <tnadeau@lucidvision.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 E20731A8885 for <netmod@ietfa.amsl.com>; Wed, 11 Mar 2015 05:13:43 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.897
X-Spam-Level: 
X-Spam-Status: No, score=0.897 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FH_RELAY_NODNS=1.451, HELO_MISMATCH_COM=0.553, HTML_MESSAGE=0.001, RDNS_NONE=0.793, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, WEIRD_PORT=0.001] autolearn=no
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 jHJnIm53WEMU for <netmod@ietfa.amsl.com>; Wed, 11 Mar 2015 05:13:40 -0700 (PDT)
Received: from lucidvision.com (unknown [50.255.148.178]) by ietfa.amsl.com (Postfix) with ESMTP id 2FC891A8725 for <netmod@ietf.org>; Wed, 11 Mar 2015 05:13:39 -0700 (PDT)
Received: from [192.168.1.120] (unknown [50.255.148.177]) by lucidvision.com (Postfix) with ESMTP id 6BC493038769; Wed, 11 Mar 2015 08:13:39 -0400 (EDT)
Content-Type: multipart/alternative; boundary="Apple-Mail=_8CDDB873-BCC5-4DF2-8C4A-868B8341E9BA"
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2070.6\))
From: "Thomas D. Nadeau" <tnadeau@lucidvision.com>
In-Reply-To: <76CD132C3ADEF848BD84D028D243C927338526B1@nkgeml512-mbx.china.huawei.com>
Date: Wed, 11 Mar 2015 08:13:42 -0400
Message-Id: <E89914AB-1BDD-44E1-9B42-57ED83A04F3D@lucidvision.com>
References: <54F985E2.6020304@cisco.com> <20150306110536.GA73575@elstar.local> <54F997F5.8080500@cisco.com> <2D3BC67E-9B26-488E-BF4D-0FC899C3A8CA@lucidvision.com> <76CD132C3ADEF848BD84D028D243C92733850607@nkgeml512-mbx.china.huawei.com> <54FF05EE.2070607@cisco.com> <76CD132C3ADEF848BD84D028D243C927338526B1@nkgeml512-mbx.china.huawei.com>
To: "Dongjie (Jimmy)" <jie.dong@huawei.com>
X-Mailer: Apple Mail (2.2070.6)
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/tqAq8yAes1KjrqdATGk_G7gZUH0>
Cc: "draft-dong-i2rs-network-inventory@tools.ietf.org" <draft-dong-i2rs-network-inventory@tools.ietf.org>, "i2rs-chairs@tools.ietf.org" <i2rs-chairs@tools.ietf.org>, NETMOD Working Group <netmod@ietf.org>
Subject: Re: [netmod] Inventory YANG model (entity-MIB)
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: <http://www.ietf.org/mail-archive/web/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: Wed, 11 Mar 2015 12:13:44 -0000

--Apple-Mail=_8CDDB873-BCC5-4DF2-8C4A-868B8341E9BA
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=iso-8859-1


> On Mar 11, 2015:1:59 AM, at 1:59 AM, Dongjie (Jimmy) =
<jie.dong@huawei.com> wrote:
>=20
> Hi Benoit,
> =20
> Thanks for your comments.
> =20
> So now we all agree that the inventory yang model work is needed. As =
for in which way to build that model, currently there are different =
opinions, and we are open to discuss this.=20
> =20
> The intention of draft-dong-i2rs-network-inventory was to describe the =
features and capabilities of the network nodes and their components, as =
during the discussion of the L2 topology model, we realized that such =
information should be specified in a separate model.  So in our opinion =
this inventory model would include both the information listed in the =
ENTITY-MIB, and also a set of generic features and capabilities of the =
nodes and components, for which some configurations could apply.  Thus =
it would be more than the translation of MIB. As you said, this model =
could have links to the interface Yang model and some other models. =
Whether a Yang version of the ENTITY-MIB should be linked or integrated =
needs further discussion.

	Having spoken with a variety of people on this now, it seems =
fairly clear that we need to separate out the Entity MIB from the =
inventory. Juergen gave a very straight-forward explanation of why this =
is the case: if its done an a separate component, the inventory and =
other models are free to include it. This encourages reuse of those =
components and doesn't glue them only to inventory.  To this end, I'd =
like to as you to take this approach with your model.  I am also going =
to direct a few interested people to start a design team which I will =
manage, to construct the Entity MIB model. I will send email out in a =
second explaining this.=20

	--Tom


> =20
> Best regards,
> Jie
> =20
> From: Benoit Claise [mailto:bclaise@cisco.com =
<mailto:bclaise@cisco.com>]=20
> Sent: Tuesday, March 10, 2015 10:56 PM
> To: Dongjie (Jimmy); Thomas D. Nadeau
> Cc: draft-dong-i2rs-network-inventory@tools.ietf.org =
<mailto:draft-dong-i2rs-network-inventory@tools.ietf.org>; =
i2rs-chairs@tools.ietf.org <mailto:i2rs-chairs@tools.ietf.org>; NETMOD =
Working Group
> Subject: Re: [netmod] Inventory YANG model (entity-MIB)
> =20
> Hi Jie,
> Hi Tom,=20
> =20
> Happy to know that Netmod has interests on the inventory Yang model, =
and we would be glad to move draft-dong-i2rs-network-inventory-00 to =
Netmod if it is decided by the ADs and chairs.
> There are two different work items.
> 1. a YANG version of the ENTITY-MIB. This should be done in NETMOD
>=20
> 2. the mapping between the topology work and inventories. I like the =
way Jeff expressed it
> The structure of the generic topology draft is leading to interesting
> questions about how information present in that model can link to =
higher and
> lower layers.  As seen in the I2RS presentations at the most recent =
interim,
> this eventually leads to questions like "inventory".  I also raised =
the
> question about tunnels which will lead to other models as well.
> This item 2 should be done in I2RS. I understood that =
draft-dong-i2rs-network-inventory was covering this item 2, with links =
to the interface, to the ENTITY YANG model, and I guess others.
>=20
> Regards, Benoit
>=20
> =20
> =20
> Could we ask for a time slot of 10 mins to present the current =
inventory model draft and discuss the next-steps? Thanks.
> =20
> Contributions and discussions on this model are welcome.
> =20
> Best regards,
> Jie
> =20
> -----Original Message-----
> From: netmod [mailto:netmod-bounces@ietf.org =
<mailto:netmod-bounces@ietf.org>] On Behalf Of Thomas D.
> Nadeau
> Sent: Friday, March 06, 2015 8:21 PM
> To: Benoit Claise
> Cc: draft-dong-i2rs-network-inventory@tools.ietf.org =
<mailto:draft-dong-i2rs-network-inventory@tools.ietf.org>;
> i2rs-chairs@tools.ietf.org <mailto:i2rs-chairs@tools.ietf.org>; NETMOD =
Working Group
> Subject: Re: [netmod] Inventory YANG model (entity-MIB)
> =20
> =20
> On Mar 6, 2015:7:05 AM, at 7:05 AM, Benoit Claise <bclaise@cisco.com> =
<mailto:bclaise@cisco.com>
> wrote:
> =20
> Hi J=FCrgen,
> On Fri, Mar 06, 2015 at 11:48:02AM +0100, Benoit Claise wrote:
> Dear all,
> =20
> The I2RS interim meeting yesterday focused on topology.
> Let me cut/paste a high level slide, with pointers to the relevant =
drafts.
> =20
> =20
> If interested, the meeting minutes are at
> http://etherpad.tools.ietf.org:9000/p/i2rs-interim-march-5-2015-v-bl =
<http://etherpad.tools.ietf.org:9000/p/i2rs-interim-march-5-2015-v-bl>
> uesheets
> =20
> Part of the inventory draft
> (http://datatracker.ietf.org/doc/draft-dong-i2rs-network-inventory/ =
<http://datatracker.ietf.org/doc/draft-dong-i2rs-network-inventory/>)
> discussion, the overlap with the ENTITY-MIB RFC 6933 was discussed
> (and RFC 7223 btw).
> =20
> =20
> The message was that I2RS should not re-invent something similar to
> the ENTITY-MIB So, are you aware of any initiatives to "YANGify" the
> ENTITY-MIB?
> It's true that there is a way to translate MIB into YANG with RFC =
6643.
> This could be a good start. However, I wonder if a hand-written YANG
> model that closely follows the entPhysical would not be more =
beneficial.
> Is this something we should take on board in NETMOD?
> =20
> What do you think?
> =20
> Note: As commented by the I2RS people, indexing is appropriate in
> the MIB module for its original purpose, but may not be for the =
topology.
> I'm not sure we want to change the indexing just for the topology,
> but the integration within the topology draft should be thought of.
> =20
> My first question is (perhaps not surprising) whether inventory falls
> into the I2RS charter, I2RS =3D interface to the routing system.
> No it doesn't.
> As mentioned during the interim yesterday by the I2RS people, they =
would be
> happy if the inventory work be done somewhere else. Hence this email =
thread. I
> believe this work should be picked up by NETMOD .
> =20
>  I agree with Juergen's assessment; this seems like it should be done =
in
> NETMOD. We should figure out a way to leverage the entity MIB but =
given that
> module's age, we should also be open to updates because the world has
> changed since that was published.
> =20
>  So there is a wider question as Juergen asked at the end of the =
thread:
> should here be a concentrated effort to do topology/inventory that =
applies to
> all areas ?  I'd say yes.  While not a super complicated, long effort, =
this is
> something that needs to be done in a way that it applies to more than =
just the
> use cases of a specific routing use case.  With that in mind, its =
important to get
> the network operators involved on this effort so that this is not done =
in a
> vendor vacuum.
> =20
>  Speaking as an individual, I will point out that the topology model =
that I've
> worked on with Jan et al you can see the approach taken on network =
topology.
> This has been implemented in ODL, which means its being tried in =
production
> environments right now and works quite well:
> =20
> http://www.ietf.org/archive/id/draft-medved-i2rs-topology-im-01.txt =
<http://www.ietf.org/archive/id/draft-medved-i2rs-topology-im-01.txt>
> =20
>  Another data point here. Shane and others have been been clear that =
an
> inventory is needed and how it is a bit different than network =
topology as
> specified above, but that it should be consistent in certain places =
too:
> =20
> https://datatracker.ietf.org/doc/draft-amante-i2rs-topology-use-cases/ =
<https://datatracker.ietf.org/doc/draft-amante-i2rs-topology-use-cases/>
> =20
>  --Tom
> =20
> =20
> That
> said, RFC 6643 gives you a read-only translation. There are not many
> read-write objects in the ENTITY-MIB so perhaps this is good enough
> for now. I guess it would help what I2RS needs to know in order to
> make the interface to the routing system work.
> =20
> Anyway, if YANG models overlapping the ENTITY-MIB are done, they they
> should at least allow implementation of both in a predictable manner.
> Looking at draft-dong-i2rs-network-inventory-00, it seems the whole
> interface list is already covered by RFC 7223 and interfaces should
> be references not repeated (this is what the ENTITY-MIB does).
> Yes, I made that point.
> Similarly, this draft should reference a inventory YANG model
> =20
> So what is
> left is essentially a (not yet hierarchy) of 'cards' that seem to
> more or less match the entPhysicalTable of the ENTITY-MIB (but then
> the ENTITY-MIB has a more flexible model that distinguishes between
> different kind of hardware components).
> I also notice that the model
> in draft-dong-i2rs-network-inventory-00 is config true - so I am not
> sure how this is supposed to use.
> Is the idea that this model is an
> interface to an inventory database where I configure what I have
> instead of a model sitting on a device where I can query what the
> device actually has?
> =20
> /js
> Regards, Benoit
> =20
> PS: I personally would have preferred if generic topology and perhaps
>     inventory would have split off into a short-lived targeted WG
>     instead of doing all of this in I2RS but it seems leadership has
>     already decided that I2RS is the home for all of this.
> =20
> =20
> _______________________________________________
> netmod mailing list
> netmod@ietf.org <mailto:netmod@ietf.org>
> https://www.ietf.org/mailman/listinfo/netmod =
<https://www.ietf.org/mailman/listinfo/netmod>
> =20
> =20
> _______________________________________________
> netmod mailing list
> netmod@ietf.org <mailto:netmod@ietf.org>
> https://www.ietf.org/mailman/listinfo/netmod =
<https://www.ietf.org/mailman/listinfo/netmod>
> .
> =20
> =20


--Apple-Mail=_8CDDB873-BCC5-4DF2-8C4A-868B8341E9BA
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=iso-8859-1

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Diso-8859-1"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" =
class=3D""><br class=3D""><div><blockquote type=3D"cite" class=3D""><div =
class=3D"">On Mar 11, 2015:1:59 AM, at 1:59 AM, Dongjie (Jimmy) &lt;<a =
href=3D"mailto:jie.dong@huawei.com" class=3D"">jie.dong@huawei.com</a>&gt;=
 wrote:</div><br class=3D"Apple-interchange-newline"><div class=3D""><div =
class=3D"WordSection1" style=3D"page: WordSection1; font-family: =
Helvetica; font-size: 16px; font-style: normal; font-variant: normal; =
font-weight: normal; letter-spacing: normal; line-height: normal; =
orphans: auto; text-align: start; text-indent: 0px; text-transform: =
none; white-space: normal; widows: auto; word-spacing: 0px; =
-webkit-text-stroke-width: 0px; background-color: rgb(255, 255, =
255);"><div style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; =
font-family: 'Times New Roman', serif;" class=3D""><span lang=3D"EN-US" =
style=3D"font-size: 10.5pt; font-family: Calibri, sans-serif; color: =
rgb(31, 73, 125);" class=3D"">Hi Benoit,<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
lang=3D"EN-US" style=3D"font-size: 10.5pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span></div><div =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span lang=3D"EN-US" style=3D"font-size: =
10.5pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">Thanks for your comments.<o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
lang=3D"EN-US" style=3D"font-size: 10.5pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span></div><div =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span lang=3D"EN-US" style=3D"font-size: =
10.5pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">So now we all agree that the inventory yang model work is =
needed. As for in which way to build that model, currently there are =
different opinions, and we are open to discuss this.<span =
class=3D"Apple-converted-space">&nbsp;</span><o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
lang=3D"EN-US" style=3D"font-size: 10.5pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span></div><div =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span lang=3D"EN-US" style=3D"font-size: =
10.5pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">The intention of draft-dong-i2rs-network-inventory was to =
describe the features and capabilities of the network nodes and their =
components, as during the discussion of the L2 topology model, we =
realized that such information should be specified in a separate model. =
&nbsp;So in our opinion this inventory model would include both the =
information listed in the ENTITY-MIB, and also a set of generic features =
and capabilities of the nodes and components, for which some =
configurations could apply. &nbsp;Thus it would be more than the =
translation of MIB. As you said, this model could have links to the =
interface Yang model and some other models. Whether a Yang version of =
the ENTITY-MIB should be linked or integrated needs further =
discussion.</span></div></div></div></blockquote><div><br =
class=3D""></div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">	</span>Having spoken with a variety of =
people on this now, it seems fairly clear that we need to separate out =
the Entity MIB from the inventory. Juergen gave a very straight-forward =
explanation of why this is the case: if its done an a separate =
component, the inventory and other models are free to include it. This =
encourages reuse of those components and doesn't glue them only to =
inventory. &nbsp;To this end, I'd like to as you to take this approach =
with your model. &nbsp;I am also going to direct a few interested people =
to start a design team which I will manage, to construct the Entity MIB =
model. I will send email out in a second explaining =
this.&nbsp;</div><div><br class=3D""></div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>--Tom</div><div><br class=3D""></div><br class=3D""><blockquote =
type=3D"cite" class=3D""><div class=3D""><div class=3D"WordSection1" =
style=3D"page: WordSection1; font-family: Helvetica; font-size: 16px; =
font-style: normal; font-variant: normal; font-weight: normal; =
letter-spacing: normal; line-height: normal; orphans: auto; text-align: =
start; text-indent: 0px; text-transform: none; white-space: normal; =
widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
background-color: rgb(255, 255, 255);"><div style=3D"margin: 0cm 0cm =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span lang=3D"EN-US" style=3D"font-size: 10.5pt; font-family: =
Calibri, sans-serif; color: rgb(31, 73, 125);" class=3D""><o:p =
class=3D""></o:p></span></div><div style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
lang=3D"EN-US" style=3D"font-size: 10.5pt; font-family: Calibri, =
sans-serif; color: rgb(31, 73, 125);" class=3D"">&nbsp;</span></div><div =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span lang=3D"EN-US" style=3D"font-size: =
10.5pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">Best regards,<o:p class=3D""></o:p></span></div><div =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span lang=3D"EN-US" style=3D"font-size: =
10.5pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">Jie<o:p class=3D""></o:p></span></div><div style=3D"margin: =
0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', =
serif;" class=3D""><span lang=3D"EN-US" style=3D"font-size: 10.5pt; =
font-family: Calibri, sans-serif; color: rgb(31, 73, 125);" =
class=3D"">&nbsp;</span></div><div style=3D"border-style: none none none =
solid; border-left-color: blue; border-left-width: 1.5pt; padding: 0cm =
0cm 0cm 4pt;" class=3D""><div class=3D""><div style=3D"border-style: =
solid none none; border-top-color: rgb(181, 196, 223); border-top-width: =
1pt; padding: 3pt 0cm 0cm;" class=3D""><div style=3D"margin: 0cm 0cm =
0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><b class=3D""><span lang=3D"EN-US" style=3D"font-size: 10pt; =
font-family: Tahoma, sans-serif; color: windowtext;" =
class=3D"">From:</span></b><span lang=3D"EN-US" style=3D"font-size: =
10pt; font-family: Tahoma, sans-serif; color: windowtext;" =
class=3D""><span class=3D"Apple-converted-space">&nbsp;</span>Benoit =
Claise [<a href=3D"mailto:bclaise@cisco.com" style=3D"color: purple; =
text-decoration: underline;" class=3D"">mailto:bclaise@cisco.com</a>]<span=
 class=3D"Apple-converted-space">&nbsp;</span><br class=3D""><b =
class=3D"">Sent:</b><span =
class=3D"Apple-converted-space">&nbsp;</span>Tuesday, March 10, 2015 =
10:56 PM<br class=3D""><b class=3D"">To:</b><span =
class=3D"Apple-converted-space">&nbsp;</span>Dongjie (Jimmy); Thomas D. =
Nadeau<br class=3D""><b class=3D"">Cc:</b><span =
class=3D"Apple-converted-space">&nbsp;</span><a =
href=3D"mailto:draft-dong-i2rs-network-inventory@tools.ietf.org" =
style=3D"color: purple; text-decoration: underline;" =
class=3D"">draft-dong-i2rs-network-inventory@tools.ietf.org</a>;<span =
class=3D"Apple-converted-space">&nbsp;</span><a =
href=3D"mailto:i2rs-chairs@tools.ietf.org" style=3D"color: purple; =
text-decoration: underline;" class=3D"">i2rs-chairs@tools.ietf.org</a>; =
NETMOD Working Group<br class=3D""><b class=3D"">Subject:</b><span =
class=3D"Apple-converted-space">&nbsp;</span>Re: [netmod] Inventory YANG =
model (entity-MIB)<o:p class=3D""></o:p></span></div></div></div><div =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span lang=3D"EN-US" =
class=3D"">&nbsp;</span></div><div class=3D""><div style=3D"margin: 0cm =
0cm 0.0001pt; font-size: 12pt; font-family: 'Times New Roman', serif;" =
class=3D""><span lang=3D"EN-US" class=3D"">Hi Jie,<o:p =
class=3D""></o:p></span></div></div><blockquote style=3D"margin-top: =
5pt; margin-bottom: 5pt;" class=3D""><pre style=3D"margin: 0cm 0cm =
0.0001pt; font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">Hi Tom, <o:p class=3D""></o:p></span></pre><pre =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 10pt; font-family: =
'Courier New';" class=3D""><span lang=3D"EN-US" =
class=3D"">&nbsp;</span></pre><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">Happy to know that Netmod has interests on the =
inventory Yang model, and we would be glad to move =
draft-dong-i2rs-network-inventory-00 to Netmod if it is decided by the =
ADs and chairs.<o:p class=3D""></o:p></span></pre></blockquote><div =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span lang=3D"EN-US" class=3D"">There are =
two different work items.<br class=3D"">1. a YANG version of the =
ENTITY-MIB. This should be done in NETMOD<br class=3D""><br class=3D"">2. =
the mapping between the topology work and inventories. I like the way =
Jeff expressed it<o:p class=3D""></o:p></span></div><pre style=3D"margin: =
0cm 0cm 0.0001pt; font-size: 10pt; font-family: 'Courier New';" =
class=3D""><span lang=3D"EN-US" class=3D"">The structure of the generic =
topology draft is leading to interesting<o:p =
class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">questions about how information present in =
that model can link to higher and<o:p class=3D""></o:p></span></pre><pre =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 10pt; font-family: =
'Courier New';" class=3D""><span lang=3D"EN-US" class=3D"">lower =
layers.&nbsp; As seen in the I2RS presentations at the most recent =
interim,<o:p class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm =
0.0001pt; font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">this eventually leads to questions like =
"inventory".&nbsp; I also raised the<o:p =
class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">question about tunnels which will lead to =
other models as well.<o:p class=3D""></o:p></span></pre><div =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 12pt; font-family: 'Times =
New Roman', serif;" class=3D""><span lang=3D"EN-US" class=3D"">This item =
2 should be done in I2RS. I understood that =
draft-dong-i2rs-network-inventory was covering this item 2, with links =
to the interface, to the ENTITY YANG model, and I guess others.<br =
class=3D""><br class=3D"">Regards, Benoit<br class=3D""><br =
class=3D""><o:p class=3D""></o:p></span></div><pre style=3D"margin: 0cm =
0cm 0.0001pt; font-size: 10pt; font-family: 'Courier New';" =
class=3D""><span lang=3D"EN-US" class=3D"">&nbsp;</span></pre><pre =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 10pt; font-family: =
'Courier New';" class=3D""><span lang=3D"EN-US" =
class=3D"">&nbsp;</span></pre><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">Could we ask for a time slot of 10 mins to =
present the current inventory model draft and discuss the next-steps? =
Thanks.<o:p class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm =
0.0001pt; font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">&nbsp;</span></pre><pre style=3D"margin: 0cm =
0cm 0.0001pt; font-size: 10pt; font-family: 'Courier New';" =
class=3D""><span lang=3D"EN-US" class=3D"">Contributions and discussions =
on this model are welcome.<o:p class=3D""></o:p></span></pre><pre =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 10pt; font-family: =
'Courier New';" class=3D""><span lang=3D"EN-US" =
class=3D"">&nbsp;</span></pre><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">Best regards,<o:p =
class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">Jie<o:p class=3D""></o:p></span></pre><pre =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 10pt; font-family: =
'Courier New';" class=3D""><span lang=3D"EN-US" =
class=3D"">&nbsp;</span></pre><blockquote style=3D"margin-top: 5pt; =
margin-bottom: 5pt;" class=3D""><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">-----Original Message-----<o:p =
class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">From: netmod [<a =
href=3D"mailto:netmod-bounces@ietf.org" style=3D"color: purple; =
text-decoration: underline;" =
class=3D"">mailto:netmod-bounces@ietf.org</a>] On Behalf Of Thomas =
D.<o:p class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm =
0.0001pt; font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">Nadeau<o:p class=3D""></o:p></span></pre><pre =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 10pt; font-family: =
'Courier New';" class=3D""><span lang=3D"EN-US" class=3D"">Sent: Friday, =
March 06, 2015 8:21 PM<o:p class=3D""></o:p></span></pre><pre =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 10pt; font-family: =
'Courier New';" class=3D""><span lang=3D"EN-US" class=3D"">To: Benoit =
Claise<o:p class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm =
0.0001pt; font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">Cc: <a =
href=3D"mailto:draft-dong-i2rs-network-inventory@tools.ietf.org" =
style=3D"color: purple; text-decoration: underline;" =
class=3D"">draft-dong-i2rs-network-inventory@tools.ietf.org</a>;<o:p =
class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D""><a href=3D"mailto:i2rs-chairs@tools.ietf.org" =
style=3D"color: purple; text-decoration: underline;" =
class=3D"">i2rs-chairs@tools.ietf.org</a>; NETMOD Working Group<o:p =
class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">Subject: Re: [netmod] Inventory YANG model =
(entity-MIB)<o:p class=3D""></o:p></span></pre><pre style=3D"margin: 0cm =
0cm 0.0001pt; font-size: 10pt; font-family: 'Courier New';" =
class=3D""><span lang=3D"EN-US" class=3D"">&nbsp;</span></pre><pre =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 10pt; font-family: =
'Courier New';" class=3D""><span lang=3D"EN-US" =
class=3D"">&nbsp;</span></pre><blockquote style=3D"margin-top: 5pt; =
margin-bottom: 5pt;" class=3D""><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">On Mar 6, 2015:7:05 AM, at 7:05 AM, Benoit =
Claise <a href=3D"mailto:bclaise@cisco.com" style=3D"color: purple; =
text-decoration: underline;" class=3D"">&lt;bclaise@cisco.com&gt;</a><o:p =
class=3D""></o:p></span></pre></blockquote><pre style=3D"margin: 0cm 0cm =
0.0001pt; font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">wrote:<o:p =
class=3D""></o:p></span></pre><blockquote style=3D"margin-top: 5pt; =
margin-bottom: 5pt;" class=3D""><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">&nbsp;</span></pre><pre style=3D"margin: 0cm =
0cm 0.0001pt; font-size: 10pt; font-family: 'Courier New';" =
class=3D""><span lang=3D"EN-US" class=3D"">Hi J=FCrgen,<o:p =
class=3D""></o:p></span></pre><blockquote style=3D"margin-top: 5pt; =
margin-bottom: 5pt;" class=3D""><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">On Fri, Mar 06, 2015 at 11:48:02AM +0100, =
Benoit Claise wrote:<o:p class=3D""></o:p></span></pre><blockquote =
style=3D"margin-top: 5pt; margin-bottom: 5pt;" class=3D""><pre =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 10pt; font-family: =
'Courier New';" class=3D""><span lang=3D"EN-US" class=3D"">Dear all,<o:p =
class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">&nbsp;</span></pre><pre style=3D"margin: 0cm =
0cm 0.0001pt; font-size: 10pt; font-family: 'Courier New';" =
class=3D""><span lang=3D"EN-US" class=3D"">The I2RS interim meeting =
yesterday focused on topology.<o:p class=3D""></o:p></span></pre><pre =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 10pt; font-family: =
'Courier New';" class=3D""><span lang=3D"EN-US" class=3D"">Let me =
cut/paste a high level slide, with pointers to the relevant drafts.<o:p =
class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">&nbsp;</span></pre><pre style=3D"margin: 0cm =
0cm 0.0001pt; font-size: 10pt; font-family: 'Courier New';" =
class=3D""><span lang=3D"EN-US" class=3D"">&nbsp;</span></pre><pre =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 10pt; font-family: =
'Courier New';" class=3D""><span lang=3D"EN-US" class=3D"">If =
interested, the meeting minutes are at<o:p =
class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D""><a =
href=3D"http://etherpad.tools.ietf.org:9000/p/i2rs-interim-march-5-2015-v-=
bl" style=3D"color: purple; text-decoration: underline;" =
class=3D"">http://etherpad.tools.ietf.org:9000/p/i2rs-interim-march-5-2015=
-v-bl</a><o:p class=3D""></o:p></span></pre><pre style=3D"margin: 0cm =
0cm 0.0001pt; font-size: 10pt; font-family: 'Courier New';" =
class=3D""><span lang=3D"EN-US" class=3D"">uesheets<o:p =
class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">&nbsp;</span></pre><pre style=3D"margin: 0cm =
0cm 0.0001pt; font-size: 10pt; font-family: 'Courier New';" =
class=3D""><span lang=3D"EN-US" class=3D"">Part of the inventory =
draft<o:p class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm =
0.0001pt; font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">(<a =
href=3D"http://datatracker.ietf.org/doc/draft-dong-i2rs-network-inventory/=
" style=3D"color: purple; text-decoration: underline;" =
class=3D"">http://datatracker.ietf.org/doc/draft-dong-i2rs-network-invento=
ry/</a>)<o:p class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm =
0.0001pt; font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">discussion, the overlap with the ENTITY-MIB =
RFC 6933 was discussed<o:p class=3D""></o:p></span></pre><pre =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 10pt; font-family: =
'Courier New';" class=3D""><span lang=3D"EN-US" class=3D"">(and RFC 7223 =
btw).<o:p class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm =
0.0001pt; font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">&nbsp;</span></pre><pre style=3D"margin: 0cm =
0cm 0.0001pt; font-size: 10pt; font-family: 'Courier New';" =
class=3D""><span lang=3D"EN-US" class=3D"">&nbsp;</span></pre><pre =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 10pt; font-family: =
'Courier New';" class=3D""><span lang=3D"EN-US" class=3D"">The message =
was that I2RS should not re-invent something similar to<o:p =
class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">the ENTITY-MIB So, are you aware of any =
initiatives to "YANGify" the<o:p class=3D""></o:p></span></pre><pre =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 10pt; font-family: =
'Courier New';" class=3D""><span lang=3D"EN-US" class=3D"">ENTITY-MIB?<o:p=
 class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">It's true that there is a way to translate MIB =
into YANG with RFC 6643.<o:p class=3D""></o:p></span></pre><pre =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 10pt; font-family: =
'Courier New';" class=3D""><span lang=3D"EN-US" class=3D"">This could be =
a good start. However, I wonder if a hand-written YANG<o:p =
class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">model that closely follows the entPhysical =
would not be more beneficial.<o:p class=3D""></o:p></span></pre><pre =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 10pt; font-family: =
'Courier New';" class=3D""><span lang=3D"EN-US" class=3D"">Is this =
something we should take on board in NETMOD?<o:p =
class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">&nbsp;</span></pre><pre style=3D"margin: 0cm =
0cm 0.0001pt; font-size: 10pt; font-family: 'Courier New';" =
class=3D""><span lang=3D"EN-US" class=3D"">What do you think?<o:p =
class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">&nbsp;</span></pre><pre style=3D"margin: 0cm =
0cm 0.0001pt; font-size: 10pt; font-family: 'Courier New';" =
class=3D""><span lang=3D"EN-US" class=3D"">Note: As commented by the =
I2RS people, indexing is appropriate in<o:p =
class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">the MIB module for its original purpose, but =
may not be for the topology.<o:p class=3D""></o:p></span></pre><pre =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 10pt; font-family: =
'Courier New';" class=3D""><span lang=3D"EN-US" class=3D"">I'm not sure =
we want to change the indexing just for the topology,<o:p =
class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">but the integration within the topology draft =
should be thought of.<o:p class=3D""></o:p></span></pre><pre =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 10pt; font-family: =
'Courier New';" class=3D""><span lang=3D"EN-US" =
class=3D"">&nbsp;</span></pre></blockquote><pre style=3D"margin: 0cm 0cm =
0.0001pt; font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">My first question is (perhaps not surprising) =
whether inventory falls<o:p class=3D""></o:p></span></pre><pre =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 10pt; font-family: =
'Courier New';" class=3D""><span lang=3D"EN-US" class=3D"">into the I2RS =
charter, I2RS =3D interface to the routing system.<o:p =
class=3D""></o:p></span></pre></blockquote><pre style=3D"margin: 0cm 0cm =
0.0001pt; font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">No it doesn't.<o:p =
class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">As mentioned during the interim yesterday by =
the I2RS people, they would be<o:p =
class=3D""></o:p></span></pre></blockquote><pre style=3D"margin: 0cm 0cm =
0.0001pt; font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">happy if the inventory work be done somewhere =
else. Hence this email thread. I<o:p class=3D""></o:p></span></pre><pre =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 10pt; font-family: =
'Courier New';" class=3D""><span lang=3D"EN-US" class=3D"">believe this =
work should be picked up by NETMOD .<o:p =
class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">&nbsp;</span></pre><pre style=3D"margin: 0cm =
0cm 0.0001pt; font-size: 10pt; font-family: 'Courier New';" =
class=3D""><span lang=3D"EN-US" class=3D""> I agree with Juergen's =
assessment; this seems like it should be done in<o:p =
class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">NETMOD. We should figure out a way to leverage =
the entity MIB but given that<o:p class=3D""></o:p></span></pre><pre =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 10pt; font-family: =
'Courier New';" class=3D""><span lang=3D"EN-US" class=3D"">module's age, =
we should also be open to updates because the world has<o:p =
class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">changed since that was published.<o:p =
class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">&nbsp;</span></pre><pre style=3D"margin: 0cm =
0cm 0.0001pt; font-size: 10pt; font-family: 'Courier New';" =
class=3D""><span lang=3D"EN-US" class=3D""> So there is a wider question =
as Juergen asked at the end of the thread:<o:p =
class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">should here be a concentrated effort to do =
topology/inventory that applies to<o:p class=3D""></o:p></span></pre><pre =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 10pt; font-family: =
'Courier New';" class=3D""><span lang=3D"EN-US" class=3D"">all areas =
?&nbsp; I'd say yes.&nbsp; While not a super complicated, long effort, =
this is<o:p class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm =
0.0001pt; font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">something that needs to be done in a way that =
it applies to more than just the<o:p class=3D""></o:p></span></pre><pre =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 10pt; font-family: =
'Courier New';" class=3D""><span lang=3D"EN-US" class=3D"">use cases of =
a specific routing use case.&nbsp; With that in mind, its important to =
get<o:p class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm =
0.0001pt; font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">the network operators involved on this effort =
so that this is not done in a<o:p class=3D""></o:p></span></pre><pre =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 10pt; font-family: =
'Courier New';" class=3D""><span lang=3D"EN-US" class=3D"">vendor =
vacuum.<o:p class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm =
0.0001pt; font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">&nbsp;</span></pre><pre style=3D"margin: 0cm =
0cm 0.0001pt; font-size: 10pt; font-family: 'Courier New';" =
class=3D""><span lang=3D"EN-US" class=3D""> Speaking as an individual, I =
will point out that the topology model that I've<o:p =
class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">worked on with Jan et al you can see the =
approach taken on network topology.<o:p class=3D""></o:p></span></pre><pre=
 style=3D"margin: 0cm 0cm 0.0001pt; font-size: 10pt; font-family: =
'Courier New';" class=3D""><span lang=3D"EN-US" class=3D"">This has been =
implemented in ODL, which means its being tried in production<o:p =
class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">environments right now and works quite =
well:<o:p class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm =
0.0001pt; font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">&nbsp;</span></pre><pre style=3D"margin: 0cm =
0cm 0.0001pt; font-size: 10pt; font-family: 'Courier New';" =
class=3D""><span lang=3D"EN-US" class=3D""><a =
href=3D"http://www.ietf.org/archive/id/draft-medved-i2rs-topology-im-01.tx=
t" style=3D"color: purple; text-decoration: underline;" =
class=3D"">http://www.ietf.org/archive/id/draft-medved-i2rs-topology-im-01=
.txt</a><o:p class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm =
0.0001pt; font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">&nbsp;</span></pre><pre style=3D"margin: 0cm =
0cm 0.0001pt; font-size: 10pt; font-family: 'Courier New';" =
class=3D""><span lang=3D"EN-US" class=3D""> Another data point here. =
Shane and others have been been clear that an<o:p =
class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">inventory is needed and how it is a bit =
different than network topology as<o:p class=3D""></o:p></span></pre><pre =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 10pt; font-family: =
'Courier New';" class=3D""><span lang=3D"EN-US" class=3D"">specified =
above, but that it should be consistent in certain places too:<o:p =
class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">&nbsp;</span></pre><pre style=3D"margin: 0cm =
0cm 0.0001pt; font-size: 10pt; font-family: 'Courier New';" =
class=3D""><span lang=3D"EN-US" class=3D""><a =
href=3D"https://datatracker.ietf.org/doc/draft-amante-i2rs-topology-use-ca=
ses/" style=3D"color: purple; text-decoration: underline;" =
class=3D"">https://datatracker.ietf.org/doc/draft-amante-i2rs-topology-use=
-cases/</a><o:p class=3D""></o:p></span></pre><pre style=3D"margin: 0cm =
0cm 0.0001pt; font-size: 10pt; font-family: 'Courier New';" =
class=3D""><span lang=3D"EN-US" class=3D"">&nbsp;</span></pre><pre =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 10pt; font-family: =
'Courier New';" class=3D""><span lang=3D"EN-US" class=3D""> --Tom<o:p =
class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">&nbsp;</span></pre><pre style=3D"margin: 0cm =
0cm 0.0001pt; font-size: 10pt; font-family: 'Courier New';" =
class=3D""><span lang=3D"EN-US" class=3D"">&nbsp;</span></pre><blockquote =
style=3D"margin-top: 5pt; margin-bottom: 5pt;" class=3D""><pre =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 10pt; font-family: =
'Courier New';" class=3D""><span lang=3D"EN-US" class=3D"">That<o:p =
class=3D""></o:p></span></pre><blockquote style=3D"margin-top: 5pt; =
margin-bottom: 5pt;" class=3D""><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">said, RFC 6643 gives you a read-only =
translation. There are not many<o:p class=3D""></o:p></span></pre><pre =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 10pt; font-family: =
'Courier New';" class=3D""><span lang=3D"EN-US" class=3D"">read-write =
objects in the ENTITY-MIB so perhaps this is good enough<o:p =
class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">for now. I guess it would help what I2RS needs =
to know in order to<o:p class=3D""></o:p></span></pre><pre =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 10pt; font-family: =
'Courier New';" class=3D""><span lang=3D"EN-US" class=3D"">make the =
interface to the routing system work.<o:p =
class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">&nbsp;</span></pre><pre style=3D"margin: 0cm =
0cm 0.0001pt; font-size: 10pt; font-family: 'Courier New';" =
class=3D""><span lang=3D"EN-US" class=3D"">Anyway, if YANG models =
overlapping the ENTITY-MIB are done, they they<o:p =
class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">should at least allow implementation of both =
in a predictable manner.<o:p class=3D""></o:p></span></pre><pre =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 10pt; font-family: =
'Courier New';" class=3D""><span lang=3D"EN-US" class=3D"">Looking at =
draft-dong-i2rs-network-inventory-00, it seems the whole<o:p =
class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">interface list is already covered by RFC 7223 =
and interfaces should<o:p class=3D""></o:p></span></pre><pre =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 10pt; font-family: =
'Courier New';" class=3D""><span lang=3D"EN-US" class=3D"">be references =
not repeated (this is what the ENTITY-MIB does).<o:p =
class=3D""></o:p></span></pre></blockquote><pre style=3D"margin: 0cm 0cm =
0.0001pt; font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">Yes, I made that point.<o:p =
class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">Similarly, this draft should reference a =
inventory YANG model<o:p class=3D""></o:p></span></pre><pre =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 10pt; font-family: =
'Courier New';" class=3D""><span lang=3D"EN-US" =
class=3D"">&nbsp;</span></pre><blockquote style=3D"margin-top: 5pt; =
margin-bottom: 5pt;" class=3D""><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">So what is<o:p =
class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">left is essentially a (not yet hierarchy) of =
'cards' that seem to<o:p class=3D""></o:p></span></pre><pre =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 10pt; font-family: =
'Courier New';" class=3D""><span lang=3D"EN-US" class=3D"">more or less =
match the entPhysicalTable of the ENTITY-MIB (but then<o:p =
class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">the ENTITY-MIB has a more flexible model that =
distinguishes between<o:p class=3D""></o:p></span></pre><pre =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 10pt; font-family: =
'Courier New';" class=3D""><span lang=3D"EN-US" class=3D"">different =
kind of hardware components).<o:p class=3D""></o:p></span></pre><pre =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 10pt; font-family: =
'Courier New';" class=3D""><span lang=3D"EN-US" class=3D"">I also notice =
that the model<o:p class=3D""></o:p></span></pre><pre style=3D"margin: =
0cm 0cm 0.0001pt; font-size: 10pt; font-family: 'Courier New';" =
class=3D""><span lang=3D"EN-US" class=3D"">in =
draft-dong-i2rs-network-inventory-00 is config true - so I am not<o:p =
class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">sure how this is supposed to use.<o:p =
class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">Is the idea that this model is an<o:p =
class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">interface to an inventory database where I =
configure what I have<o:p class=3D""></o:p></span></pre><pre =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 10pt; font-family: =
'Courier New';" class=3D""><span lang=3D"EN-US" class=3D"">instead of a =
model sitting on a device where I can query what the<o:p =
class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">device actually has?<o:p =
class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">&nbsp;</span></pre><pre style=3D"margin: 0cm =
0cm 0.0001pt; font-size: 10pt; font-family: 'Courier New';" =
class=3D""><span lang=3D"EN-US" class=3D"">/js<o:p =
class=3D""></o:p></span></pre></blockquote><pre style=3D"margin: 0cm 0cm =
0.0001pt; font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">Regards, Benoit<o:p =
class=3D""></o:p></span></pre><blockquote style=3D"margin-top: 5pt; =
margin-bottom: 5pt;" class=3D""><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">&nbsp;</span></pre><pre style=3D"margin: 0cm =
0cm 0.0001pt; font-size: 10pt; font-family: 'Courier New';" =
class=3D""><span lang=3D"EN-US" class=3D"">PS: I personally would have =
preferred if generic topology and perhaps<o:p =
class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">&nbsp;&nbsp;&nbsp; inventory would have split =
off into a short-lived targeted WG<o:p class=3D""></o:p></span></pre><pre =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 10pt; font-family: =
'Courier New';" class=3D""><span lang=3D"EN-US" =
class=3D"">&nbsp;&nbsp;&nbsp; instead of doing all of this in I2RS but =
it seems leadership has<o:p class=3D""></o:p></span></pre><pre =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 10pt; font-family: =
'Courier New';" class=3D""><span lang=3D"EN-US" =
class=3D"">&nbsp;&nbsp;&nbsp; already decided that I2RS is the home for =
all of this.<o:p class=3D""></o:p></span></pre><pre style=3D"margin: 0cm =
0cm 0.0001pt; font-size: 10pt; font-family: 'Courier New';" =
class=3D""><span lang=3D"EN-US" =
class=3D"">&nbsp;</span></pre></blockquote><pre style=3D"margin: 0cm 0cm =
0.0001pt; font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">&nbsp;</span></pre><pre style=3D"margin: 0cm =
0cm 0.0001pt; font-size: 10pt; font-family: 'Courier New';" =
class=3D""><span lang=3D"EN-US" =
class=3D"">_______________________________________________<o:p =
class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">netmod mailing list<o:p =
class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D""><a href=3D"mailto:netmod@ietf.org" =
style=3D"color: purple; text-decoration: underline;" =
class=3D"">netmod@ietf.org</a><o:p class=3D""></o:p></span></pre><pre =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 10pt; font-family: =
'Courier New';" class=3D""><span lang=3D"EN-US" class=3D""><a =
href=3D"https://www.ietf.org/mailman/listinfo/netmod" style=3D"color: =
purple; text-decoration: underline;" =
class=3D"">https://www.ietf.org/mailman/listinfo/netmod</a><o:p =
class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">&nbsp;</span></pre></blockquote><pre =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 10pt; font-family: =
'Courier New';" class=3D""><span lang=3D"EN-US" =
class=3D"">&nbsp;</span></pre><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" =
class=3D"">_______________________________________________<o:p =
class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">netmod mailing list<o:p =
class=3D""></o:p></span></pre><pre style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D""><a href=3D"mailto:netmod@ietf.org" =
style=3D"color: purple; text-decoration: underline;" =
class=3D"">netmod@ietf.org</a><o:p class=3D""></o:p></span></pre><pre =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 10pt; font-family: =
'Courier New';" class=3D""><span lang=3D"EN-US" class=3D""><a =
href=3D"https://www.ietf.org/mailman/listinfo/netmod" style=3D"color: =
purple; text-decoration: underline;" =
class=3D"">https://www.ietf.org/mailman/listinfo/netmod</a><o:p =
class=3D""></o:p></span></pre></blockquote><pre style=3D"margin: 0cm 0cm =
0.0001pt; font-size: 10pt; font-family: 'Courier New';" class=3D""><span =
lang=3D"EN-US" class=3D"">.<o:p class=3D""></o:p></span></pre><pre =
style=3D"margin: 0cm 0cm 0.0001pt; font-size: 10pt; font-family: =
'Courier New';" class=3D""><span lang=3D"EN-US" =
class=3D"">&nbsp;</span></pre><div style=3D"margin: 0cm 0cm 0.0001pt; =
font-size: 12pt; font-family: 'Times New Roman', serif;" class=3D""><span =
lang=3D"EN-US" =
class=3D"">&nbsp;</span></div></div></div></div></blockquote></div><br =
class=3D""></body></html>=

--Apple-Mail=_8CDDB873-BCC5-4DF2-8C4A-868B8341E9BA--


From nobody Wed Mar 11 05:19:06 2015
Return-Path: <tnadeau@lucidvision.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 D44281A8843 for <netmod@ietfa.amsl.com>; Wed, 11 Mar 2015 05:19:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.895
X-Spam-Level: 
X-Spam-Status: No, score=0.895 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FH_RELAY_NODNS=1.451, HELO_MISMATCH_COM=0.553, RDNS_NONE=0.793, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=no
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 JI_v5ZZMcVXd for <netmod@ietfa.amsl.com>; Wed, 11 Mar 2015 05:19:04 -0700 (PDT)
Received: from lucidvision.com (unknown [50.255.148.178]) by ietfa.amsl.com (Postfix) with ESMTP id 334F61A8725 for <netmod@ietf.org>; Wed, 11 Mar 2015 05:19:04 -0700 (PDT)
Received: from [192.168.1.120] (unknown [50.255.148.177]) by lucidvision.com (Postfix) with ESMTP id 8C6343038895; Wed, 11 Mar 2015 08:19:03 -0400 (EDT)
From: "Thomas D. Nadeau" <tnadeau@lucidvision.com>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: quoted-printable
Date: Wed, 11 Mar 2015 08:19:06 -0400
Message-Id: <3F5C3595-7313-493C-A8B9-302A1ABFFC45@lucidvision.com>
To: NETMOD Working Group <netmod@ietf.org>
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2070.6\))
X-Mailer: Apple Mail (2.2070.6)
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/pQBCoTX-nXlz3fY3-YVT6WSwxAI>
Cc: netmod-chairs@tools.ietf.org
Subject: [netmod] Entity-MIB Yang Model Design Team Created
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: <http://www.ietf.org/mail-archive/web/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: Wed, 11 Mar 2015 12:19:05 -0000

	NETMOD WG:

	I have created a design team to produce a Yang model =
representing the latest version of The Entity MIB. I will lightly =
shepherd this design team by facilitating weekly meetings as I've done =
with other official DTs with a number of short-term milestone target =
dates, as well as a target completion date for a WG LC of the work at =
the Prague meeting. =20

	The DT consists of Andy Bierman, Martin Bjorklund, Dan Romascanu =
and Jie Dong.=20

	Tom (as NETMOD co-chair)=20



From nobody Wed Mar 11 05:25:54 2015
Return-Path: <sunqi.csnet.thu@gmail.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 956B81A878B for <netmod@ietfa.amsl.com>; Wed, 11 Mar 2015 05:25:52 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level: 
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9,  DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, SPF_PASS=-0.001] 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 NlVYSHPUUWkd for <netmod@ietfa.amsl.com>; Wed, 11 Mar 2015 05:25:50 -0700 (PDT)
Received: from mail-wi0-x22e.google.com (mail-wi0-x22e.google.com [IPv6:2a00:1450:400c:c05::22e]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 481821A6EF4 for <netmod@ietf.org>; Wed, 11 Mar 2015 05:25:50 -0700 (PDT)
Received: by wibbs8 with SMTP id bs8so11257920wib.4 for <netmod@ietf.org>; Wed, 11 Mar 2015 05:25:49 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;  h=content-type:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=CFowGjsvppr0bKLRtfO8xp/O6ImxCXCz3TZdJLKtU7c=; b=Rcje08u7IRvCkChK6A/BhcEuvw1wOniDT2CZOG/jTGByqIBUa5EEvw7DZgsgYh/+xL gY14xPFRumNrk1qb9X07XIJsryo5crvsVPqRlWuRpY3FGEb+wr0/PX2i7d+pLg4YggJA sWXyJGWhPuSDnMPs25+Tp1X7qdyegp7P17mzoXVbJCiaM18Xd5BuYKSRe3uL595C2wM0 Gh9DTkg404Am0aKNIfMk4S3EQE673Ax1IEin1+TsfkjoXDhLWbM16OGKIuaBykRCRro3 giKqw16KI3ZyplZVwry4bbYWvqSm3ykEf4YR22yCND34PrbhKaMS1Yy6rYZhBGA9sTN7 s5Rg==
X-Received: by 10.194.75.168 with SMTP id d8mr78427383wjw.87.1426076748925; Wed, 11 Mar 2015 05:25:48 -0700 (PDT)
Received: from host-2003-1c09-0021-0d00-40a6-67e3-cd12-0b3f.1c09-h.de.terastrm.net (host-2003-1c09-0021-0d00-40a6-67e3-cd12-0b3f.1c09-h.de.terastrm.net. [2003:1c09:21:d00:40a6:67e3:cd12:b3f]) by mx.google.com with ESMTPSA id n3sm5205469wja.36.2015.03.11.05.25.47 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Wed, 11 Mar 2015 05:25:47 -0700 (PDT)
Content-Type: text/plain; charset=windows-1252
Mime-Version: 1.0 (Mac OS X Mail 7.2 \(1874\))
From: Qi Sun <sunqi.csnet.thu@gmail.com>
In-Reply-To: <20150310171901.GA7526@elstar.local>
Date: Wed, 11 Mar 2015 13:25:45 +0100
Content-Transfer-Encoding: quoted-printable
Message-Id: <481DDC4F-E541-415F-9FFC-C24659BF0E31@gmail.com>
References: <2D14ACF76AC6BD459665F2FE98ECB831BD66E20BB4@HE101452.emea1.cds.t-internal.com> <12E9E6B9-F79E-4091-9709-E216BB335A40@gmail.com> <20150310135005.GA7164@elstar.local> <A1B27702-F2D1-499B-894A-9CCE5385798D@gmail.com> <20150310171901.GA7526@elstar.local>
To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
X-Mailer: Apple Mail (2.1874)
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/w2v36t2QTdsAi6GjDRqyfHjO2p8>
Cc: netmod@ietf.org
Subject: Re: [netmod] New Version Notification for draft-sf-netmod-file-transfer-yang-00.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: <http://www.ietf.org/mail-archive/web/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: Wed, 11 Mar 2015 12:25:52 -0000

Hi Juergen,

Thanks for comments. Please see inline.


On Mar 10, 2015, at 6:19 PM, Juergen Schoenwaelder =
<j.schoenwaelder@jacobs-university.de> wrote:

> On Tue, Mar 10, 2015 at 05:51:42PM +0100, Qi Sun wrote:
>>>=20
>>> Quick questions while browsing the YANG: Since the URIs already
>>> contain information how to access a resource, why do I also have to
>>> define a trans-method?  This seems to be be redundant (and what
>>> happens if things do not line up?).
>>=20
>> [Qi] The intention was to restrict the type of URI for =
=93remote-file-path=94. I hope the description provides this =
information?
>> Or should the trans-method be put inside =93remote-file-path=94?
>>=20
>=20
> I am not sure this is a feature. The namespace in my http URIs is very
> different from the file system namespace I get when I use ftp or scp.

I have no problem of removing the =93trans-method=94 parameter. But what =
we would like to achieve is to link the =93credential=94 to a specific =
URI according to the URI=92s type. For example, if using scp URI then =
(username, password) or (username, ssh-key) is required, but (username, =
certificate) is not. But for https URI, the certificate is required but =
not the username (typically), and the certificate is not part of the =
https URI.

How about turning the remote-file-path to a container, including the URI =
and the related credentials for different methods (as a choice), like =
this:

container remote-file-path {
    leaf file-path-uri {
        type inet:uri;
    }
    choice credentials {
        case https {
            leaf certificate {
                type string;
            }
        }
        case scp {
            leaf username {
                type string;
            }
            choice scp-credential {
                case password {
                    =85
                }
                case ssh-key {
                    ...
                }
            }
        }
    }
}

And we could put description saying that the transfer protocol indicated =
in the URI MUST match the one specified in the choice. Would that work?

Another option might be that the model provide the information like =
username/password/path in string/protocol etc., and let the device to =
construct URI.=20

Or could you please give us some guidance on this? Thanks!

>=20
>>> I do not know why
>>> credential-lifetime is needed (the transfer will fail anyway when =
the
>>> credentials are not valid anymore),
>>=20
>> [Qi] Yeah=85 But IMHO, this might be useful for trouble-shouting when =
transfer failed. And when the credential expires, the device could =
negotiate to have a second option.
>=20
> Then I prefer to have more detailed error codes in the state tree.

OK.

>=20
>>> and some of the other retry parameters, they likely lack units
>>> and descriptions.
>>=20
>> [Qi] How about the following:
>>            leaf retry-times {
>>                description
>>                    "Number of times a failed transfer is retried.";
>>                type uint8;
>>            }
>>            leaf retry-interval {
>>                description
>>                    "Number of seconds to wait before a retry.";
>>                type uint32;
>>                units seconds;
>>            }
>>            leaf retry-interval-increment {
>>                description
>>                    "Maximum percentage to alter the retry-interval.";
>>                type percent;
>>            }
>=20
> The last one still is a bit vague=85

To simplify the structure, maybe removing that parameter would be =
better?

>=20
>>> And should there be a cancel mechanism as
>>> well?
>>=20
>> [Qi] That makes sense. Such that the client is able to instruct the =
server to cancel a specific transfer. I think it would work with another =
RPC?
>>=20
>=20
> Likely. I also assume that transfers do not persist.

Yes. The =93transfer-status/status=94 in the state tree indicates the =
whether the transfer is done.=20

>=20
>>> I am also not sure how the md5 checksum is supposed to work -
>>> does this imply another transfer for the checksum to be verified
>>> against?
>>=20
>> [Qi] I=92m thinking the device generates a md5 checksum, and uses the =
generated checksum to verify against the configured checksum. Would that =
work?=20
>> Anyway, this is an optional parameter. Would it help to put a feature =
about the function (since not all the devices support md5 checking)?
>>=20
>=20
> So whoever calls the RPC needs to pass the checksum? But then, if I
> upload a file, how do I obtain the checksum in the first place and how
> is the checksum passed to the receiver? And depending on the transfer
> protocol, you might already get internal checksums so you would only
> safeguard against errors that occur between receiving the data and
> writing it to disk. I am not sure yet this is really needed.

OK. I will remove that parameter.

Cheers,
Qi

>=20
> /js
>=20
> --=20
> Juergen Schoenwaelder           Jacobs University Bremen gGmbH
> Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
> Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Wed Mar 11 05:37:26 2015
Return-Path: <cwildes@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 1EEBC1A878B for <netmod@ietfa.amsl.com>; Wed, 11 Mar 2015 05:37:25 -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 HS-frb-mxBzw for <netmod@ietfa.amsl.com>; Wed, 11 Mar 2015 05:37:24 -0700 (PDT)
Received: from rcdn-iport-6.cisco.com (rcdn-iport-6.cisco.com [173.37.86.77]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id ACD241A8725 for <netmod@ietf.org>; Wed, 11 Mar 2015 05:37:23 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=2900; q=dns/txt; s=iport; t=1426077444; x=1427287044; h=from:to:subject:date:message-id:content-id: content-transfer-encoding:mime-version; bh=RjQC7FF89bWKmJ9iyO2aOb3TMyVzV6AcvpeYO0VQpwA=; b=l4V+pW3mGls2Pt2hurDKoeul5iQAy4K0rO+6cTYHqZCulXDN2OO7TO6O RBnuixezw5YpcYj8SNtaH0PGaA2jRQdMc56YUM/Tw1KcyklisJ03h9AYt MJl532L63rbBIuk1nJytQ7lCbLIweyfhgKzAskCEtKvtc10xYJqrEc1RU Q=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0AnBQAUNgBV/4kNJK1cgwaBMIMHxj4egRdNAQEBAQEBfIQQAgQjEUMUAQgaAiYCBDAVEgSIQp0Vj0qbDQEBAQEBBQEBAQEBAQEBGoEhiXaEO4MiL4EWBZAbiV2TdyODboIzfwEBAQ
X-IronPort-AV: E=Sophos;i="5.11,381,1422921600"; d="scan'208";a="402714082"
Received: from alln-core-4.cisco.com ([173.36.13.137]) by rcdn-iport-6.cisco.com with ESMTP; 11 Mar 2015 12:37:24 +0000
Received: from xhc-rcd-x12.cisco.com (xhc-rcd-x12.cisco.com [173.37.183.86]) by alln-core-4.cisco.com (8.14.5/8.14.5) with ESMTP id t2BCbN13025136 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL) for <netmod@ietf.org>; Wed, 11 Mar 2015 12:37:23 GMT
Received: from xmb-aln-x13.cisco.com ([169.254.15.92]) by xhc-rcd-x12.cisco.com ([173.37.183.86]) with mapi id 14.03.0195.001; Wed, 11 Mar 2015 07:37:22 -0500
From: "Clyde Wildes (cwildes)" <cwildes@cisco.com>
To: "netmod@ietf.org" <netmod@ietf.org>
Thread-Topic: New Version Notification for draft-ietf-netmod-syslog-model-03.txt
Thread-Index: AQHQW/ge0jdMMlk7+0S3Tzzclz/IOg==
Date: Wed, 11 Mar 2015 12:37:22 +0000
Message-ID: <1AB074BC-0E3F-4671-A93A-B0D1C2050429@cisco.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [10.27.7.180]
Content-Type: text/plain; charset="utf-8"
Content-ID: <410BD2F10056B94D9B023D3EF259B2EF@emea.cisco.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/trANLBtbCpcrswzL_9JIGIbCH74>
Subject: Re: [netmod] New Version Notification for draft-ietf-netmod-syslog-model-03.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: <http://www.ietf.org/mail-archive/web/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: Wed, 11 Mar 2015 12:37:25 -0000

SGksDQoNCkR1cmluZyB0aGUgSUVURiA5MS1IYXdhaWkgTmV0bW9kIFN5c2xvZyBwcmVzZW50YXRp
b24gZ2l2ZW4gYnkgS2lyYW4gQWdyYWhhcmEgU3JlZW5pdmFzYSB3ZSByZWNlaXZlZCB0aGVzZSBx
dWVzdGlvbnM6DQoNClExOiBXaHkgZG9uJ3Qgd2UgaGF2ZSAibG9nZ2luZyBidWZmZXJlZCI/DQpB
OiAgVGhpcyB3YXMgb25seSBpbiB0d28gb2YgdGhlIGZpdmUgb3BlcmF0aW5nIHN5c3RlbXMgdGhh
dCB3ZSBjb25zaWRlcmVkLiBXZSB3aWxsIGFkZCBpdCBhcyBhIGZlYXR1cmUuDQoNClEyOiBXaHkg
aXNuJ3QgImxvZ2dpbmcgZmlsZSIgYSBsaXN0Pw0KQTogIEl0IHNob3VsZCBiZSBhbmQgd2Ugd2ls
bCBtYWtlIHRoYXQgY2hhbmdlLg0KDQpRMzogQ2FuIHdlIGFkZCAicG9ydCIgdG8gbG9nZ2luZyBm
aWxlPw0KQTogIFllcy4NCg0KUTQ6IFdoYXQgZG9lcyB0aGUgbG9nZ2luZyBtYXRjaCBwcm9jZXNz
aW5nIHNlYXJjaD8gRG9lcyBpdCBzZWFyY2ggc3RydWN0dXJlZCBkYXRhPw0KQTogIEl0IHNlYXJj
aGVzIHRoZSBSRkMgNTQyNCBTWVNMT0ctTVNHIGZpZWxkLiBXZSB3aWxsIGNsYXJpZnkgdGhlIGRl
c2NyaXB0aW9uIGZvciB0aGUgcGF0dGVybi1tYXRjaCBmaWVsZC4gUmVndWxhciBleHByZXNzaW9u
IHBhdHRlcm5zIGNhbiBiZSBkZXZlbG9wZWQgdG8gc2VhcmNoIHNwZWNpZmljIHN0cnVjdHVyZWQg
ZGF0YSBmaWVsZHMgaW4gdGhlIFNZU0xPRy1NU0cgZmllbGQuDQoNClE1OiBDYW4gdGhlIHJlbW90
ZS1sb2dnaW5nLWFjdGlvbiBzdXBwb3J0IHN0cnVjdHVyZWQgZGF0YT8NCkE6ICBXZSB3aWxsIGFk
ZCB0aGUgYWJpbGl0eSB0byBzZW5kIGxvZyBtZXNzYWdlcyBpbiBzdHJ1Y3R1cmVkIGRhdGEgZm9y
bWF0IHRvIHJlbW90ZSBzZXJ2ZXJzLg0KDQpUaGUgZm9sbG93aW5nIGNoYW5nZXMgaGF2ZSBiZWVu
IG1hZGUgdG8gdGhlIHByb3Bvc2VkIGRyYWZ0LWlldGYtbmV0bW9kLXN5c2xvZy1tb2RlbCBSRkMg
dG8gYWRkcmVzcyB0aGlzIGZlZWRiYWNrOg0KDQoxLiBUaGUgYWRkaXRpb24gb2YgImJ1ZmZlcmVk
LWxvZ2dpbmctYWN0aW9uIiBmb3IgbG9nZ2luZyB0byBtZW1vcnkuIEluIGFkZGl0aW9uIHRvIHRo
ZSBzeXNsb2ctc2VsZWN0b3IgdGhlcmUgaXMgYSBidWZmZXItc2l6ZSBmaWVsZC4gVGhpcyBhZGRy
ZXNzZXMgUTEgYWJvdmUuDQoyLiBUaGUgZmlsZS1sb2dnaW5nLWFjdGlvbiBoYXMgYmVlbiBtb2Rp
ZmllZCB0byBiZSBhIGxpc3QuIFRoaXMgYWRkcmVzc2VzIFEyIGFib3ZlLg0KMy4gQSBkZXN0aW5h
dGlvbi1wb3J0IGZpZWxkIGhhcyBiZWVuIGFkZGVkIHRvIHJlbW90ZS1sb2dnaW5nLWFjdGlvbiB3
aXRoIGEgZGVmYXVsdCB2YWx1ZSBvZiA1MTQuIFRoaXMgYWRkcmVzc2VzIFEzIGFib3ZlLg0KNC4g
VGhlIGRlc2NyaXB0aW9uIGZvciBsb2dnaW5nLW1hdGNoLXByb2Nlc3NpbmcgaGFzIGJlZW4gdXBk
YXRlZCB0byBpbmRpY2F0ZSB0aGF0IHRoZSBSRkMgNTQyNCBTWVNMT0ctTVNHIGZpZWxkIHdpbGwg
YmUgc2VhcmNoZWQgZm9yIGEgcGF0dGVybiBtYXRjaC4gVGhpcyBhZGRyZXNzZXMgUTQgYWJvdmUu
IFVzZXJzIGFyZSBmcmVlIHRvIGNvbnN0cnVjdCByZWdleCBleHByZXNzaW9ucyB0aGF0IG1hdGNo
IG9uIHN0cnVjdHVyZWQtZGF0YSB0YWdzIGlmIG5lZWRlZC4NCjUuIEEgbmV3IGZlYXR1cmUgYW5k
IGJvb2xlYW4gaGF2ZSBiZWVuIGFkZGVkIHRvIHJlbW90ZS1sb2dnaW5nLWFjdGlvbiB0byBzdXBw
b3J0IGRpc3RyaWJ1dGlvbiBvZiBtZXNzYWdlcyBpbiBzdHJ1Y3R1cmVkLWRhdGEgZm9ybWF0LiBU
aGlzIGFkZHJlc3NlcyBRNSBhYm92ZS4NCg0KQSByZXZpZXcgYnkgSmFuIExpbmRibGFkLCBZQU5H
IERyLiBmcm9tIHRhaWwtZiBTeXN0ZW1zLCByZXN1bHRlZCBpbiB0aGUgZm9sbG93IGNoYW5nZXM6
DQotIHNpbXBsaWZ5IHRoZSBzeXNsb2ctc2VsZWN0b3IgZ3JvdXBpbmcNCi0gYWRkIGRlZmF1bHRz
IHdoZXJlIG5lY2Vzc2FyeQ0KLSBhZGQgYW5kIHJlbW92ZSBtYW5kYXRvcnkgZmllbGRzIHdoZXJl
IG5lY2Vzc2FyeQ0KLSBpbXByb3ZlIGRlc2NyaXB0aW9uIGZpZWxkcw0KLSB1c2UgdGhlIElFVEYg
bG93ZXIgY2FzZSBuYW1pbmcgY29udmVudGlvbi4NCg0KDQpUaGFua3MsDQoNCkNseWRlICYgS2ly
YW4NCg0KDQo=


From nobody Wed Mar 11 05:55:49 2015
Return-Path: <tnadeau@lucidvision.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 C39A01A8843 for <netmod@ietfa.amsl.com>; Wed, 11 Mar 2015 05:55:48 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.895
X-Spam-Level: 
X-Spam-Status: No, score=0.895 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FH_RELAY_NODNS=1.451, HELO_MISMATCH_COM=0.553, RDNS_NONE=0.793, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=no
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 k46Q09--gdqK for <netmod@ietfa.amsl.com>; Wed, 11 Mar 2015 05:55:47 -0700 (PDT)
Received: from lucidvision.com (unknown [50.255.148.178]) by ietfa.amsl.com (Postfix) with ESMTP id 734F91A8824 for <netmod@ietf.org>; Wed, 11 Mar 2015 05:55:47 -0700 (PDT)
Received: from [192.168.1.120] (unknown [50.255.148.177]) by lucidvision.com (Postfix) with ESMTP id 9653C3038FA9; Wed, 11 Mar 2015 08:55:46 -0400 (EDT)
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2070.6\))
From: "Thomas D. Nadeau" <tnadeau@lucidvision.com>
In-Reply-To: <1AB074BC-0E3F-4671-A93A-B0D1C2050429@cisco.com>
Date: Wed, 11 Mar 2015 08:55:49 -0400
Content-Transfer-Encoding: quoted-printable
Message-Id: <51B3FA94-AACE-4A6A-A308-B201F1483467@lucidvision.com>
References: <1AB074BC-0E3F-4671-A93A-B0D1C2050429@cisco.com>
To: "Clyde Wildes (cwildes)" <cwildes@cisco.com>
X-Mailer: Apple Mail (2.2070.6)
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/iZt7k_og36d3wvWyp0vmVzHkzJs>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] New Version Notification for draft-ietf-netmod-syslog-model-03.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: <http://www.ietf.org/mail-archive/web/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: Wed, 11 Mar 2015 12:55:48 -0000

	WG please review and comment on the updated draft ASAP. If there =
are an pressing issues we can discuss on the list or in person in =
Dallas.=20
Given that we are so close to the meeting now, we will begin a WG LC on =
the draft the Monday after the Dallas meeting.

	--Tom



> On Mar 11, 2015:8:37 AM, at 8:37 AM, Clyde Wildes (cwildes) =
<cwildes@cisco.com> wrote:
>=20
> Hi,
>=20
> During the IETF 91-Hawaii Netmod Syslog presentation given by Kiran =
Agrahara Sreenivasa we received these questions:
>=20
> Q1: Why don't we have "logging buffered"?
> A:  This was only in two of the five operating systems that we =
considered. We will add it as a feature.
>=20
> Q2: Why isn't "logging file" a list?
> A:  It should be and we will make that change.
>=20
> Q3: Can we add "port" to logging file?
> A:  Yes.
>=20
> Q4: What does the logging match processing search? Does it search =
structured data?
> A:  It searches the RFC 5424 SYSLOG-MSG field. We will clarify the =
description for the pattern-match field. Regular expression patterns can =
be developed to search specific structured data fields in the SYSLOG-MSG =
field.
>=20
> Q5: Can the remote-logging-action support structured data?
> A:  We will add the ability to send log messages in structured data =
format to remote servers.
>=20
> The following changes have been made to the proposed =
draft-ietf-netmod-syslog-model RFC to address this feedback:
>=20
> 1. The addition of "buffered-logging-action" for logging to memory. In =
addition to the syslog-selector there is a buffer-size field. This =
addresses Q1 above.
> 2. The file-logging-action has been modified to be a list. This =
addresses Q2 above.
> 3. A destination-port field has been added to remote-logging-action =
with a default value of 514. This addresses Q3 above.
> 4. The description for logging-match-processing has been updated to =
indicate that the RFC 5424 SYSLOG-MSG field will be searched for a =
pattern match. This addresses Q4 above. Users are free to construct =
regex expressions that match on structured-data tags if needed.
> 5. A new feature and boolean have been added to remote-logging-action =
to support distribution of messages in structured-data format. This =
addresses Q5 above.
>=20
> A review by Jan Lindblad, YANG Dr. from tail-f Systems, resulted in =
the follow changes:
> - simplify the syslog-selector grouping
> - add defaults where necessary
> - add and remove mandatory fields where necessary
> - improve description fields
> - use the IETF lower case naming convention.
>=20
>=20
> Thanks,
>=20
> Clyde & Kiran
>=20
>=20
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod
>=20


From nobody Wed Mar 11 07:16:47 2015
Return-Path: <lhotka@nic.cz>
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 BADA81ACD77 for <netmod@ietfa.amsl.com>; Wed, 11 Mar 2015 07:16:46 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.5
X-Spam-Level: 
X-Spam-Status: No, score=-0.5 tagged_above=-999 required=5 tests=[BAYES_05=-0.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 uINHG52UfBl7 for <netmod@ietfa.amsl.com>; Wed, 11 Mar 2015 07:16:44 -0700 (PDT)
Received: from trail.lhotka.name (trail.lhotka.name [77.48.224.143]) by ietfa.amsl.com (Postfix) with ESMTP id 338571ACD1C for <netmod@ietf.org>; Wed, 11 Mar 2015 07:16:43 -0700 (PDT)
Received: from localhost (unknown [195.113.220.110]) by trail.lhotka.name (Postfix) with ESMTPSA id 163D61CC0046 for <netmod@ietf.org>; Wed, 11 Mar 2015 15:16:45 +0100 (CET)
From: Ladislav Lhotka <lhotka@nic.cz>
To: netmod@ietf.org
User-Agent: Notmuch/0.19 (http://notmuchmail.org) Emacs/24.4.51.2 (x86_64-apple-darwin14.0.0)
Date: Wed, 11 Mar 2015 15:16:40 +0100
Message-ID: <m2bnjz39h3.fsf@birdie.labs.nic.cz>
MIME-Version: 1.0
Content-Type: text/plain
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/PvMzWfzpYa0bg-S2jErX975Y3Jk>
Subject: [netmod] LL review of 6020bis-04
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: <http://www.ietf.org/mail-archive/web/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: Wed, 11 Mar 2015 14:16:46 -0000

Hi,

here are my comments to the lastest revision of the 6020bis draft:

**** General
     Apart from "data node" and "schema node" that are defined in
     Sec. 3, the term "node" is used with at least two other meanings:
     - node in the data tree, i.e. an element in XML encoding,
     - XPath node.
     I have seen more than once that this confused people. Perhaps we
     should always use qualified terms such as "instance node" for the
     former and "XPath node" for the latter.

**** Sec. 5.1
     Circular includes are impossible because "include"
     statements in submodules are ignored.
      
     - OLD
       There MUST NOT be any circular chains of imports or includes.

     + NEW
       There MUST NOT be any circular chains of imports.

**** Sec. 7.1.6

     - OLD
       For backwards compatibility with YANG version 1, a submodule is
       allowed to include another submodule belonging to the same
       module, but this is not necessary in YANG version 1.1.

     + NEW
       For backwards compatibility with YANG version 1, "include"
       statements are permitted in submodules but they are ignored in
       YANG version 1.1.

     Also, s/backwards compatibility/backward compatibility/.

**** Sec. 7.2.2
     Can a submodule refer to definitions in the main module or other
     submodules without using a prefix?

**** Sec. 7.5.3
     
     - OLD
       When a datastore is validated, all "must" constraints are
       conceptually evaluated once for each data node in the
       accessible tree (see Section 6.4.1).

     + NEW When a datastore is validated, all "must" constraints are
       conceptually evaluated once for each instance node in the
       accessible tree (see Section 6.4.1).

**** Sec. 7.7.10
     If the definition of "cipher" leaf-list contained

       default "3des-cbc";

     and no instances of "cipher" existed in running, is the
     <edit-config> at the top of p. 70 still valid? If it is, what
     will be the final content of "cipher" leaf-list?

**** Sec. 9.6.4.2

     - OLD
       When an existing enumeration type is restricted, the "value"
       statement MUST either have the same value as the in the base
       type or not be present, in which case the value is the same as
       in the base type.

     + NEW
       When an existing enumeration type is restricted, the "value"
       statement MUST either have the same value as in the base type
       or not be present, in which case the value is the same as in
       the base type.

Lada

-- 
Ladislav Lhotka, CZ.NIC Labs
PGP Key ID: E74E8C0C


From nobody Wed Mar 11 07:30:37 2015
Return-Path: <j.schoenwaelder@jacobs-university.de>
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 D51E31ACE11 for <netmod@ietfa.amsl.com>; Wed, 11 Mar 2015 07:30:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.86
X-Spam-Level: 
X-Spam-Status: No, score=-3.86 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] 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 7F5rjV1Nkhx1 for <netmod@ietfa.amsl.com>; Wed, 11 Mar 2015 07:30:31 -0700 (PDT)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5873B1ACDC1 for <netmod@ietf.org>; Wed, 11 Mar 2015 07:30:31 -0700 (PDT)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id A4E372997; Wed, 11 Mar 2015 15:30:29 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.220]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id U7xfsG2Ldg_9; Wed, 11 Mar 2015 15:30:13 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS; Wed, 11 Mar 2015 15:30:28 +0100 (CET)
Received: from localhost (demetrius2.jacobs-university.de [212.201.44.47]) by hermes.jacobs-university.de (Postfix) with ESMTP id AF87B20044; Wed, 11 Mar 2015 15:30:27 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius2.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id XT9khSAs0w6e; Wed, 11 Mar 2015 15:30:27 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id E11BB20045; Wed, 11 Mar 2015 15:30:23 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id 59EF33276FBA; Wed, 11 Mar 2015 15:30:22 +0100 (CET)
Date: Wed, 11 Mar 2015 15:30:21 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Qi Sun <sunqi.csnet.thu@gmail.com>
Message-ID: <20150311143019.GD9429@elstar.local>
Mail-Followup-To: Qi Sun <sunqi.csnet.thu@gmail.com>, netmod@ietf.org
References: <2D14ACF76AC6BD459665F2FE98ECB831BD66E20BB4@HE101452.emea1.cds.t-internal.com> <12E9E6B9-F79E-4091-9709-E216BB335A40@gmail.com> <20150310135005.GA7164@elstar.local> <A1B27702-F2D1-499B-894A-9CCE5385798D@gmail.com> <20150310171901.GA7526@elstar.local> <481DDC4F-E541-415F-9FFC-C24659BF0E31@gmail.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <481DDC4F-E541-415F-9FFC-C24659BF0E31@gmail.com>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/JlSYGJh_ISRDiBc16uCPzqATb1g>
Cc: netmod@ietf.org
Subject: Re: [netmod] New Version Notification for draft-sf-netmod-file-transfer-yang-00.txt
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
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: <http://www.ietf.org/mail-archive/web/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: Wed, 11 Mar 2015 14:30:34 -0000

On Wed, Mar 11, 2015 at 01:25:45PM +0100, Qi Sun wrote:
> 
> I have no problem of removing the â€œtrans-methodâ€ parameter. But what we would like to achieve is to link the â€œcredentialâ€ to a specific URI according to the URIâ€™s type. For example, if using scp URI then (username, password) or (username, ssh-key) is required, but (username, certificate) is not. But for https URI, the certificate is required but not the username (typically), and the certificate is not part of the https URI.
> 
> How about turning the remote-file-path to a container, including the URI and the related credentials for different methods (as a choice), like this:
> 
> container remote-file-path {
>     leaf file-path-uri {
>         type inet:uri;
>     }
>     choice credentials {
>         case https {
>             leaf certificate {
>                 type string;
>             }
>         }
>         case scp {
>             leaf username {
>                 type string;
>             }
>             choice scp-credential {
>                 case password {
>                     â€¦
>                 }
>                 case ssh-key {
>                     ...
>                 }
>             }
>         }
>     }
> }
> 
> And we could put description saying that the transfer protocol indicated in the URI MUST match the one specified in the choice. Would that work?
> 
> Another option might be that the model provide the information like username/password/path in string/protocol etc., and let the device to construct URI. 
> 
> Or could you please give us some guidance on this? Thanks!
>

All I can say is that this is a nasty problem to solve. I general,
many protocols support multiple authentication mechanisms and then
there is the difference of validating the remote servers credentials
and how to select or provide local credentials. I predict that you
will spent most of the time to sort this aspect out, the rest looks
rather straight-forward.

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Wed Mar 11 09:15:20 2015
Return-Path: <mjethanandani@gmail.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 710401AC3CB for <netmod@ietfa.amsl.com>; Wed, 11 Mar 2015 09:15:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level: 
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9,  DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, SPF_PASS=-0.001] 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 VyKVi25Q_sZW for <netmod@ietfa.amsl.com>; Wed, 11 Mar 2015 09:15:16 -0700 (PDT)
Received: from mail-wg0-x22f.google.com (mail-wg0-x22f.google.com [IPv6:2a00:1450:400c:c00::22f]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 19D251AC402 for <netmod@ietf.org>; Wed, 11 Mar 2015 09:15:14 -0700 (PDT)
Received: by wghk14 with SMTP id k14so10424972wgh.3 for <netmod@ietf.org>; Wed, 11 Mar 2015 09:15:12 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;  h=references:mime-version:in-reply-to:content-type :content-transfer-encoding:message-id:cc:from:subject:date:to; bh=Eo2MYV6VFjkvEnJhCTc1+Ovv1YTlhbxT1ukveBW6fFQ=; b=zONq7C6R16aXEs2afcT+zCh3RcKbB3Uk2QnuWJw6vEYYbanD7CxgEsZ0LWmYolM6Z/ t5qA0vECLXmOgXFKWoWCyEI3r8496eQiGuk632dPVWY8pOCw/PKJ9xJc42naUkfBP4R6 6Kbp81lMw58l+jBsFsFvEG7rcCrk61hET8v1v62+6wL0+1L8E4sGqa6L90LIV6Np98Y/ ZCbESEIAOxbuZMspgOHUOm/XT8yIIF0T88jekY03AQcoh9l5Pq5X4pz78HuQ+8IKmCZd kyChHf+44ScbvNE6CtH/obNFwNUGAvHpmrdJwf0J5qQXAp+cl8Ur9gE9dXqjJP/xsA4E ZB+g==
X-Received: by 10.194.62.52 with SMTP id v20mr79334134wjr.137.1426090512714; Wed, 11 Mar 2015 09:15:12 -0700 (PDT)
Received: from [10.100.11.62] ([217.243.173.240]) by mx.google.com with ESMTPSA id k1sm6081821wjn.9.2015.03.11.09.15.11 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Wed, 11 Mar 2015 09:15:11 -0700 (PDT)
References: <54F985E2.6020304@cisco.com> <20150306110536.GA73575@elstar.local> <54F997F5.8080500@cisco.com> <2D3BC67E-9B26-488E-BF4D-0FC899C3A8CA@lucidvision.com> <76CD132C3ADEF848BD84D028D243C92733850607@nkgeml512-mbx.china.huawei.com> <54FF05EE.2070607@cisco.com> <76CD132C3ADEF848BD84D028D243C927338526B1@nkgeml512-mbx.china.huawei.com> <20150311070131.GA8717@elstar.local> <76CD132C3ADEF848BD84D028D243C92733852AD5@nkgeml512-mbx.china.huawei.com> <20150311102224.GA9314@elstar.local>
Mime-Version: 1.0 (1.0)
In-Reply-To: <20150311102224.GA9314@elstar.local>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: quoted-printable
Message-Id: <98F9C087-BF45-46DD-8DCF-A4E52F58D484@gmail.com>
X-Mailer: iPad Mail (12B466)
From: Mahesh Jethanandani <mjethanandani@gmail.com>
Date: Wed, 11 Mar 2015 17:15:19 +0100
To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/G1MDee4L1FpdGyiekWWCqa-WR1s>
Cc: "draft-dong-i2rs-network-inventory@tools.ietf.org" <draft-dong-i2rs-network-inventory@tools.ietf.org>, "i2rs-chairs@tools.ietf.org" <i2rs-chairs@tools.ietf.org>, NETMOD Working Group <netmod@ietf.org>
Subject: Re: [netmod] Inventory YANG model (entity-MIB)
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: <http://www.ietf.org/mail-archive/web/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: Wed, 11 Mar 2015 16:15:18 -0000

And I would suggest that Ethernet Bridging Model is something that needs to b=
e modeled by IEEE 802.1Q WG, where I have just submitted a PAR for discussio=
n to develop just that.

Mahesh Jethanandani
mjethanandani@gmail.com

> On Mar 11, 2015, at 11:22 AM, Juergen Schoenwaelder <j.schoenwaelder@jacob=
s-university.de> wrote:
>=20
>> On Wed, Mar 11, 2015 at 09:43:21AM +0000, Dongjie (Jimmy) wrote:
>>=20
>> As described in the -00 version of draft-dong-inventory, the "generic fea=
tures and capabilities" means the networking functions and services that the=
 network nodes and components can provide, e.g. IP unicast, multicast, ether=
net bridging, mpls, traffic-engineering, etc. The set of the functions will b=
e completed in future revision. Our intention is to abstract those control p=
lane independent functions in this model, and let the protocol specific mode=
ls to cover the details of each protocol.
>=20
> I think this is not how we organize work in the IETF. If a device
> supports ethernet briding (for example), it will announce an ethernet
> bridging data model that is extending the generic interface data model
> with ethernet bridging specific configuration and state objects. This
> has already been done for IP and it follows the way the IETF
> previously organized MIB modules. This is also largely how routing
> data models that are currently written are organized (a core routing
> data model plus routing protocol specific extensions).
>=20
> I do not think that what you are describing fits into the scope of an
> inventory data model given the way the IETF used partion work so far.
>=20
> /js
>=20
> --=20
> Juergen Schoenwaelder           Jacobs University Bremen gGmbH
> Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
> Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>
>=20
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod


From nobody Thu Mar 12 03:07:43 2015
Return-Path: <mbj@tail-f.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 F362E1A7015 for <netmod@ietfa.amsl.com>; Thu, 12 Mar 2015 03:07:41 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.911
X-Spam-Level: 
X-Spam-Status: No, score=-1.911 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] 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 e5wkRSF0d0ew for <netmod@ietfa.amsl.com>; Thu, 12 Mar 2015 03:07:40 -0700 (PDT)
Received: from mail.tail-f.com (mail.tail-f.com [83.241.162.140]) by ietfa.amsl.com (Postfix) with ESMTP id EA78B1A90D7 for <netmod@ietf.org>; Thu, 12 Mar 2015 03:07:39 -0700 (PDT)
Received: from localhost (173-38-208-169.cisco.com [173.38.208.169]) by mail.tail-f.com (Postfix) with ESMTPSA id A7CDA1280A90; Thu, 12 Mar 2015 11:07:38 +0100 (CET)
Date: Thu, 12 Mar 2015 11:07:38 +0100 (CET)
Message-Id: <20150312.110738.546321195957032954.mbj@tail-f.com>
To: lhotka@nic.cz
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <m2bnjz39h3.fsf@birdie.labs.nic.cz>
References: <m2bnjz39h3.fsf@birdie.labs.nic.cz>
X-Mailer: Mew version 6.5 on Emacs 23.4 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/HbMVWr_IE_ByZkLl4kxw2dhcOLU>
Cc: netmod@ietf.org
Subject: Re: [netmod] LL review of 6020bis-04
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: <http://www.ietf.org/mail-archive/web/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: Thu, 12 Mar 2015 10:07:42 -0000

Hi Lada,

Thank you for reviewing this document!

Ladislav Lhotka <lhotka@nic.cz> wrote:
> Hi,
> 
> here are my comments to the lastest revision of the 6020bis draft:
> 
> **** General
>      Apart from "data node" and "schema node" that are defined in
>      Sec. 3, the term "node" is used with at least two other meanings:
>      - node in the data tree, i.e. an element in XML encoding,
>      - XPath node.
>      I have seen more than once that this confused people. Perhaps we
>      should always use qualified terms such as "instance node" for the
>      former and "XPath node" for the latter.

Do you have an example of what you mean with "XPath node"?


> **** Sec. 5.1
>      Circular includes are impossible because "include"
>      statements in submodules are ignored.
>       
>      - OLD
>        There MUST NOT be any circular chains of imports or includes.
> 
>      + NEW
>        There MUST NOT be any circular chains of imports.

See below.

> **** Sec. 7.1.6
> 
>      - OLD
>        For backwards compatibility with YANG version 1, a submodule is
>        allowed to include another submodule belonging to the same
>        module, but this is not necessary in YANG version 1.1.
> 
>      + NEW
>        For backwards compatibility with YANG version 1, "include"
>        statements are permitted in submodules but they are ignored in
>        YANG version 1.1.

I don't think they are ignored.  *If* they are present they must be
valid - the submodule that is included must belong to the same module,
and the revision date must match.

This is illegal in YANG 1.1 IMO:

  module x {
    ...
    include ietf-yang-types {
        revision-date 9999-04-01;
    }
    ...
 }

>      Also, s/backwards compatibility/backward compatibility/.

Fixed.


> **** Sec. 7.2.2
>      Can a submodule refer to definitions in the main module or other
>      submodules without using a prefix?

Yes, and this hasn't changed from 6020.


> **** Sec. 7.5.3
>      
>      - OLD
>        When a datastore is validated, all "must" constraints are
>        conceptually evaluated once for each data node in the
>        accessible tree (see Section 6.4.1).

Ok, this is also unchanged from 6020.  But I agree that "data node" is
not correct here.

>      + NEW When a datastore is validated, all "must" constraints are
>        conceptually evaluated once for each instance node in the
>        accessible tree (see Section 6.4.1).

I suggest just "each node in the accessible tree", which is the
language we use in all other places.


> **** Sec. 7.7.10
>      If the definition of "cipher" leaf-list contained
> 
>        default "3des-cbc";
> 
>      and no instances of "cipher" existed in running, is the
>      <edit-config> at the top of p. 70 still valid? If it is, what
>      will be the final content of "cipher" leaf-list?

I think this depends on the with-default's basic-mode.

Hmm.  This is a very good observation!

Actually, basic-mode "trim" doesn't work well with defaults in
leaf-lists.  Suppose basic-mode is trim, and we have:

     leaf-list cipher  {
         type string;
         ordered-by user;
         default "3des-cbc";
         description "A list of ciphers";
     }

Now assume that the leaf-list is empty.  The client wants to set it
to:

   3des-cbc, blowfish-cbc

So the client sends:

  <cipher>3des-cbc</cipher>
  <cipher>blowfish-cbc</cipher>

When the server sees the first value for the cipher, chances are it
will just ignore it, since it matches the default value.

If we keep this new feature, we have to make sure implementors
understand that they must handle this.

Next, assume the implementation does handle this, and correctly stores
the two values in the leaf-list.  If the client removes blowfish-cbc,
a trimming server must now also delete the remaining leaf 3des-cbc.
Note that a server with basic-mode explicit would not do this.

So the basic-mode has quite large impact on the behavior in this
case.

> **** Sec. 9.6.4.2
> 
>      - OLD
>        When an existing enumeration type is restricted, the "value"
>        statement MUST either have the same value as the in the base
>        type or not be present, in which case the value is the same as
>        in the base type.
> 
>      + NEW
>        When an existing enumeration type is restricted, the "value"
>        statement MUST either have the same value as in the base type
>        or not be present, in which case the value is the same as in
>        the base type.

Fixed.


/martin


From nobody Thu Mar 12 04:07:14 2015
Return-Path: <lhotka@nic.cz>
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 C864E1A916A for <netmod@ietfa.amsl.com>; Thu, 12 Mar 2015 04:07:12 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.361
X-Spam-Level: 
X-Spam-Status: No, score=-0.361 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HELO_EQ_CZ=0.445, HOST_EQ_CZ=0.904, MIME_8BIT_HEADER=0.3, T_RP_MATCHES_RCVD=-0.01] autolearn=no
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 u3P4EGBPuYYv for <netmod@ietfa.amsl.com>; Thu, 12 Mar 2015 04:07:10 -0700 (PDT)
Received: from mail.nic.cz (mail.nic.cz [IPv6:2001:1488:800:400::400]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5259D1A9152 for <netmod@ietf.org>; Thu, 12 Mar 2015 04:07:09 -0700 (PDT)
Received: from birdie.labs.nic.cz (unknown [195.113.220.110]) by mail.nic.cz (Postfix) with ESMTPSA id 63DD913F797; Thu, 12 Mar 2015 12:07:07 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=nic.cz; s=default; t=1426158427; bh=P8jD7u43Guf6hIKjfjmcZTS8LYzg0UVjk4JX2C+VkLk=; h=Content-Type:Mime-Version:Subject:From:In-Reply-To:Date:Cc: Content-Transfer-Encoding:Message-Id:References:To; b=Wp1WCnV3iyHV4KtN7ExLcSbDhvFaa7FTup4L/1gy0xwII42jAj5gqAd9dw77ZB20M IMtfzIXRo/IZWoqJiQIhLoDyn3ijkh1mGWePcO+7AN9MUhYvICvRF0nxmdKPnArr3s Hr0xAAMog873JCzDbdyHFU3hl31diDatWgmOHtmA=
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2070.6\))
From: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <20150312.110738.546321195957032954.mbj@tail-f.com>
Date: Thu, 12 Mar 2015 12:07:06 +0100
Content-Transfer-Encoding: quoted-printable
Message-Id: <FC80943F-000C-41F7-A231-B9FAD8A24CC9@nic.cz>
References: <m2bnjz39h3.fsf@birdie.labs.nic.cz> <20150312.110738.546321195957032954.mbj@tail-f.com>
To: =?utf-8?Q?Martin_Bj=C3=B6rklund?= <mbj@tail-f.com>
X-Mailer: Apple Mail (2.2070.6)
X-Virus-Scanned: clamav-milter 0.98.6 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/xvTHQtG3ti-7u16rQtKijS6Dzqo>
Cc: netmod@ietf.org
Subject: Re: [netmod] LL review of 6020bis-04
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: <http://www.ietf.org/mail-archive/web/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: Thu, 12 Mar 2015 11:07:13 -0000

> On 12 Mar 2015, at 11:07, Martin Bjorklund <mbj@tail-f.com> wrote:
>=20
> Hi Lada,
>=20
> Thank you for reviewing this document!
>=20
> Ladislav Lhotka <lhotka@nic.cz> wrote:
>> Hi,
>>=20
>> here are my comments to the lastest revision of the 6020bis draft:
>>=20
>> **** General
>>     Apart from "data node" and "schema node" that are defined in
>>     Sec. 3, the term "node" is used with at least two other meanings:
>>     - node in the data tree, i.e. an element in XML encoding,
>>     - XPath node.
>>     I have seen more than once that this confused people. Perhaps we
>>     should always use qualified terms such as "instance node" for the
>>     former and "XPath node" for the latter.
>=20
> Do you have an example of what you mean with "XPath node=E2=80=9D?

In =E2=80=9Ccontext node=E2=80=9D or =E2=80=9Cnode set=E2=80=9D, for =
example. But maybe in our case it is no different from =E2=80=9Cinstance =
node=E2=80=9D. =46rom my experience, what=E2=80=99s really confusing for =
YANG newbies is that a data node is *not* a node in the data tree.

>=20
>=20
>> **** Sec. 5.1
>>     Circular includes are impossible because "include"
>>     statements in submodules are ignored.
>>=20
>>     - OLD
>>       There MUST NOT be any circular chains of imports or includes.
>>=20
>>     + NEW
>>       There MUST NOT be any circular chains of imports.
>=20
> See below.
>=20
>> **** Sec. 7.1.6
>>=20
>>     - OLD
>>       For backwards compatibility with YANG version 1, a submodule is
>>       allowed to include another submodule belonging to the same
>>       module, but this is not necessary in YANG version 1.1.
>>=20
>>     + NEW
>>       For backwards compatibility with YANG version 1, "include"
>>       statements are permitted in submodules but they are ignored in
>>       YANG version 1.1.
>=20
> I don't think they are ignored.  *If* they are present they must be
> valid - the submodule that is included must belong to the same module,
> and the revision date must match.

Such an include statement has no effect so what=E2=80=99s the point of =
performing these checks? Yes, it means that a YANG 1.1 submodule =
needn=E2=80=99t be valid in 1.0 but that doesn=E2=80=99t violate the =
charter.

>=20
> This is illegal in YANG 1.1 IMO:
>=20
>  module x {
>    ...
>    include ietf-yang-types {
>        revision-date 9999-04-01;
>    }
>    ...
> }
>=20
>>     Also, s/backwards compatibility/backward compatibility/.
>=20
> Fixed.
>=20
>=20
>> **** Sec. 7.2.2
>>     Can a submodule refer to definitions in the main module or other
>>     submodules without using a prefix?
>=20
> Yes, and this hasn't changed from 6020.

OK, then maybe the =E2=80=9Cprefix=E2=80=9D statement under =
=E2=80=9Cbelongs-to=E2=80=9D could be made optional - except in very =
rare cases the same prefix could and should be used in the main module =
and all submodules.

>=20
>=20
>> **** Sec. 7.5.3
>>=20
>>     - OLD
>>       When a datastore is validated, all "must" constraints are
>>       conceptually evaluated once for each data node in the
>>       accessible tree (see Section 6.4.1).
>=20
> Ok, this is also unchanged from 6020.  But I agree that "data node" is
> not correct here.
>=20
>>     + NEW When a datastore is validated, all "must" constraints are
>>       conceptually evaluated once for each instance node in the
>>       accessible tree (see Section 6.4.1).
>=20
> I suggest just "each node in the accessible tree", which is the
> language we use in all other places.

OK. One alternative that just came to my mind would be to change =
=E2=80=9Cdata/schema node=E2=80=9D in the sense of Sec. 3 to =
=E2=80=9Cdata/schema vertex=E2=80=9D. Then =E2=80=9C(data) node=E2=80=9D =
could be freely used to denoted nodes in the data tree and XPath.
 =20
>=20
>=20
>> **** Sec. 7.7.10
>>     If the definition of "cipher" leaf-list contained
>>=20
>>       default "3des-cbc";
>>=20
>>     and no instances of "cipher" existed in running, is the
>>     <edit-config> at the top of p. 70 still valid? If it is, what
>>     will be the final content of "cipher" leaf-list?
>=20
> I think this depends on the with-default's basic-mode.

It is the questionable what this statement really means:

   When the default values are in use, the server MUST operationally
   behave as if the leaf-list was present in the data tree with the
   default values as its values.

Lada

>=20
> Hmm.  This is a very good observation!
>=20
> Actually, basic-mode "trim" doesn't work well with defaults in
> leaf-lists.  Suppose basic-mode is trim, and we have:
>=20
>     leaf-list cipher  {
>         type string;
>         ordered-by user;
>         default "3des-cbc";
>         description "A list of ciphers";
>     }
>=20
> Now assume that the leaf-list is empty.  The client wants to set it
> to:
>=20
>   3des-cbc, blowfish-cbc
>=20
> So the client sends:
>=20
>  <cipher>3des-cbc</cipher>
>  <cipher>blowfish-cbc</cipher>
>=20
> When the server sees the first value for the cipher, chances are it
> will just ignore it, since it matches the default value.
>=20
> If we keep this new feature, we have to make sure implementors
> understand that they must handle this.
>=20
> Next, assume the implementation does handle this, and correctly stores
> the two values in the leaf-list.  If the client removes blowfish-cbc,
> a trimming server must now also delete the remaining leaf 3des-cbc.
> Note that a server with basic-mode explicit would not do this.
>=20
> So the basic-mode has quite large impact on the behavior in this
> case.
>=20
>> **** Sec. 9.6.4.2
>>=20
>>     - OLD
>>       When an existing enumeration type is restricted, the "value"
>>       statement MUST either have the same value as the in the base
>>       type or not be present, in which case the value is the same as
>>       in the base type.
>>=20
>>     + NEW
>>       When an existing enumeration type is restricted, the "value"
>>       statement MUST either have the same value as in the base type
>>       or not be present, in which case the value is the same as in
>>       the base type.
>=20
> Fixed.
>=20
>=20
> /martin

--
Ladislav Lhotka, CZ.NIC Labs
PGP Key ID: E74E8C0C





From nobody Thu Mar 12 04:10:53 2015
Return-Path: <mbj@tail-f.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 9B5461A9131 for <netmod@ietfa.amsl.com>; Thu, 12 Mar 2015 04:10:51 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.911
X-Spam-Level: 
X-Spam-Status: No, score=-1.911 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] 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 UjYAHNLXlf-K for <netmod@ietfa.amsl.com>; Thu, 12 Mar 2015 04:10:50 -0700 (PDT)
Received: from mail.tail-f.com (mail.tail-f.com [83.241.162.140]) by ietfa.amsl.com (Postfix) with ESMTP id CA3711A9101 for <netmod@ietf.org>; Thu, 12 Mar 2015 04:10:49 -0700 (PDT)
Received: from localhost (173-38-208-169.cisco.com [173.38.208.169]) by mail.tail-f.com (Postfix) with ESMTPSA id 79B3F1280A90; Thu, 12 Mar 2015 12:10:48 +0100 (CET)
Date: Thu, 12 Mar 2015 12:10:47 +0100 (CET)
Message-Id: <20150312.121047.1695177370838551805.mbj@tail-f.com>
To: lhotka@nic.cz
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <FC80943F-000C-41F7-A231-B9FAD8A24CC9@nic.cz>
References: <m2bnjz39h3.fsf@birdie.labs.nic.cz> <20150312.110738.546321195957032954.mbj@tail-f.com> <FC80943F-000C-41F7-A231-B9FAD8A24CC9@nic.cz>
X-Mailer: Mew version 6.5 on Emacs 23.4 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=utf-8
Content-Transfer-Encoding: base64
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/iwdCW1YjBGpDJJ8bDY3lbbpMdGM>
Cc: netmod@ietf.org
Subject: Re: [netmod] LL review of 6020bis-04
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: <http://www.ietf.org/mail-archive/web/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: Thu, 12 Mar 2015 11:10:51 -0000

TGFkaXNsYXYgTGhvdGthIDxsaG90a2FAbmljLmN6PiB3cm90ZToNCj4gDQo+ID4gT24gMTIgTWFy
IDIwMTUsIGF0IDExOjA3LCBNYXJ0aW4gQmpvcmtsdW5kIDxtYmpAdGFpbC1mLmNvbT4gd3JvdGU6
DQo+ID4gDQo+ID4gSGkgTGFkYSwNCj4gPiANCj4gPiBUaGFuayB5b3UgZm9yIHJldmlld2luZyB0
aGlzIGRvY3VtZW50IQ0KPiA+IA0KPiA+IExhZGlzbGF2IExob3RrYSA8bGhvdGthQG5pYy5jej4g
d3JvdGU6DQo+ID4+IEhpLA0KPiA+PiANCj4gPj4gaGVyZSBhcmUgbXkgY29tbWVudHMgdG8gdGhl
IGxhc3Rlc3QgcmV2aXNpb24gb2YgdGhlIDYwMjBiaXMgZHJhZnQ6DQo+ID4+IA0KPiA+PiAqKioq
IEdlbmVyYWwNCj4gPj4gICAgIEFwYXJ0IGZyb20gImRhdGEgbm9kZSIgYW5kICJzY2hlbWEgbm9k
ZSIgdGhhdCBhcmUgZGVmaW5lZCBpbg0KPiA+PiAgICAgU2VjLiAzLCB0aGUgdGVybSAibm9kZSIg
aXMgdXNlZCB3aXRoIGF0IGxlYXN0IHR3byBvdGhlciBtZWFuaW5nczoNCj4gPj4gICAgIC0gbm9k
ZSBpbiB0aGUgZGF0YSB0cmVlLCBpLmUuIGFuIGVsZW1lbnQgaW4gWE1MIGVuY29kaW5nLA0KPiA+
PiAgICAgLSBYUGF0aCBub2RlLg0KPiA+PiAgICAgSSBoYXZlIHNlZW4gbW9yZSB0aGFuIG9uY2Ug
dGhhdCB0aGlzIGNvbmZ1c2VkIHBlb3BsZS4gUGVyaGFwcyB3ZQ0KPiA+PiAgICAgc2hvdWxkIGFs
d2F5cyB1c2UgcXVhbGlmaWVkIHRlcm1zIHN1Y2ggYXMgImluc3RhbmNlIG5vZGUiIGZvciB0aGUN
Cj4gPj4gICAgIGZvcm1lciBhbmQgIlhQYXRoIG5vZGUiIGZvciB0aGUgbGF0dGVyLg0KPiA+IA0K
PiA+IERvIHlvdSBoYXZlIGFuIGV4YW1wbGUgb2Ygd2hhdCB5b3UgbWVhbiB3aXRoICJYUGF0aCBu
b2Rl4oCdPw0KPiANCj4gSW4g4oCcY29udGV4dCBub2Rl4oCdIG9yIOKAnG5vZGUgc2V04oCdLCBm
b3IgZXhhbXBsZS4gQnV0IG1heWJlIGluIG91ciBjYXNlIGl0DQo+IGlzIG5vIGRpZmZlcmVudCBm
cm9tIOKAnGluc3RhbmNlIG5vZGXigJ0uIEZyb20gbXkgZXhwZXJpZW5jZSwgd2hhdOKAmXMNCj4g
cmVhbGx5IGNvbmZ1c2luZyBmb3IgWUFORyBuZXdiaWVzIGlzIHRoYXQgYSBkYXRhIG5vZGUgaXMg
Km5vdCogYSBub2RlDQo+IGluIHRoZSBkYXRhIHRyZWUuDQoNCkkgYWdyZWUuICBUaGlzIGlzIHVu
Zm9ydHVuYXRlLg0KDQo+ID4+ICoqKiogU2VjLiA1LjENCj4gPj4gICAgIENpcmN1bGFyIGluY2x1
ZGVzIGFyZSBpbXBvc3NpYmxlIGJlY2F1c2UgImluY2x1ZGUiDQo+ID4+ICAgICBzdGF0ZW1lbnRz
IGluIHN1Ym1vZHVsZXMgYXJlIGlnbm9yZWQuDQo+ID4+IA0KPiA+PiAgICAgLSBPTEQNCj4gPj4g
ICAgICAgVGhlcmUgTVVTVCBOT1QgYmUgYW55IGNpcmN1bGFyIGNoYWlucyBvZiBpbXBvcnRzIG9y
IGluY2x1ZGVzLg0KPiA+PiANCj4gPj4gICAgICsgTkVXDQo+ID4+ICAgICAgIFRoZXJlIE1VU1Qg
Tk9UIGJlIGFueSBjaXJjdWxhciBjaGFpbnMgb2YgaW1wb3J0cy4NCj4gPiANCj4gPiBTZWUgYmVs
b3cuDQo+ID4gDQo+ID4+ICoqKiogU2VjLiA3LjEuNg0KPiA+PiANCj4gPj4gICAgIC0gT0xEDQo+
ID4+ICAgICAgIEZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSB3aXRoIFlBTkcgdmVyc2lvbiAx
LCBhIHN1Ym1vZHVsZSBpcw0KPiA+PiAgICAgICBhbGxvd2VkIHRvIGluY2x1ZGUgYW5vdGhlciBz
dWJtb2R1bGUgYmVsb25naW5nIHRvIHRoZSBzYW1lDQo+ID4+ICAgICAgIG1vZHVsZSwgYnV0IHRo
aXMgaXMgbm90IG5lY2Vzc2FyeSBpbiBZQU5HIHZlcnNpb24gMS4xLg0KPiA+PiANCj4gPj4gICAg
ICsgTkVXDQo+ID4+ICAgICAgIEZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSB3aXRoIFlBTkcg
dmVyc2lvbiAxLCAiaW5jbHVkZSINCj4gPj4gICAgICAgc3RhdGVtZW50cyBhcmUgcGVybWl0dGVk
IGluIHN1Ym1vZHVsZXMgYnV0IHRoZXkgYXJlIGlnbm9yZWQgaW4NCj4gPj4gICAgICAgWUFORyB2
ZXJzaW9uIDEuMS4NCj4gPiANCj4gPiBJIGRvbid0IHRoaW5rIHRoZXkgYXJlIGlnbm9yZWQuICAq
SWYqIHRoZXkgYXJlIHByZXNlbnQgdGhleSBtdXN0IGJlDQo+ID4gdmFsaWQgLSB0aGUgc3VibW9k
dWxlIHRoYXQgaXMgaW5jbHVkZWQgbXVzdCBiZWxvbmcgdG8gdGhlIHNhbWUgbW9kdWxlLA0KPiA+
IGFuZCB0aGUgcmV2aXNpb24gZGF0ZSBtdXN0IG1hdGNoLg0KPiANCj4gU3VjaCBhbiBpbmNsdWRl
IHN0YXRlbWVudCBoYXMgbm8gZWZmZWN0IHNvIHdoYXTigJlzIHRoZSBwb2ludCBvZg0KPiBwZXJm
b3JtaW5nIHRoZXNlIGNoZWNrcz8gWWVzLCBpdCBtZWFucyB0aGF0IGEgWUFORyAxLjEgc3VibW9k
dWxlDQo+IG5lZWRu4oCZdCBiZSB2YWxpZCBpbiAxLjAgYnV0IHRoYXQgZG9lc27igJl0IHZpb2xh
dGUgdGhlIGNoYXJ0ZXIuDQoNCklmIGl0IGlzIHRoZXJlIGl0IHNob3VsZCBtYWtlIHNvbWUgc2Vu
c2UgSU1PLiAgT3RoZXJ3aXNlIGl0IHdpbGwganVzdA0KYmUgY29uZnVzaW5nIHRvIHJlYWRlcnMu
DQoNCj4gPiBUaGlzIGlzIGlsbGVnYWwgaW4gWUFORyAxLjEgSU1POg0KPiA+IA0KPiA+ICBtb2R1
bGUgeCB7DQo+ID4gICAgLi4uDQo+ID4gICAgaW5jbHVkZSBpZXRmLXlhbmctdHlwZXMgew0KPiA+
ICAgICAgICByZXZpc2lvbi1kYXRlIDk5OTktMDQtMDE7DQo+ID4gICAgfQ0KPiA+ICAgIC4uLg0K
PiA+IH0NCj4gPiANCj4gPj4gICAgIEFsc28sIHMvYmFja3dhcmRzIGNvbXBhdGliaWxpdHkvYmFj
a3dhcmQgY29tcGF0aWJpbGl0eS8uDQo+ID4gDQo+ID4gRml4ZWQuDQo+ID4gDQo+ID4gDQo+ID4+
ICoqKiogU2VjLiA3LjIuMg0KPiA+PiAgICAgQ2FuIGEgc3VibW9kdWxlIHJlZmVyIHRvIGRlZmlu
aXRpb25zIGluIHRoZSBtYWluIG1vZHVsZSBvciBvdGhlcg0KPiA+PiAgICAgc3VibW9kdWxlcyB3
aXRob3V0IHVzaW5nIGEgcHJlZml4Pw0KPiA+IA0KPiA+IFllcywgYW5kIHRoaXMgaGFzbid0IGNo
YW5nZWQgZnJvbSA2MDIwLg0KPiANCj4gT0ssIHRoZW4gbWF5YmUgdGhlIOKAnHByZWZpeOKAnSBz
dGF0ZW1lbnQgdW5kZXIg4oCcYmVsb25ncy10b+KAnSBjb3VsZCBiZSBtYWRlDQo+IG9wdGlvbmFs
IC0gZXhjZXB0IGluIHZlcnkgcmFyZSBjYXNlcyB0aGUgc2FtZSBwcmVmaXggY291bGQgYW5kIHNo
b3VsZA0KPiBiZSB1c2VkIGluIHRoZSBtYWluIG1vZHVsZSBhbmQgYWxsIHN1Ym1vZHVsZXMuDQoN
CkJ1dCB3ZSBoYXZlIHRoZSBzYW1lIHJ1bGUgZm9yICJwcmVmaXgiIHVuZGVyICJtb2R1bGUiIC0g
aXQgaXMNCm1hbmRhdG9yeSB0byBzcGVjaWZ5IGV2ZW4gaWYgeW91IGRvbid0IHVzZSBpdCBpbiB5
b3VyIG1vZHVsZS4NCg0KDQo+ID4+ICoqKiogU2VjLiA3LjUuMw0KPiA+PiANCj4gPj4gICAgIC0g
T0xEDQo+ID4+ICAgICAgIFdoZW4gYSBkYXRhc3RvcmUgaXMgdmFsaWRhdGVkLCBhbGwgIm11c3Qi
IGNvbnN0cmFpbnRzIGFyZQ0KPiA+PiAgICAgICBjb25jZXB0dWFsbHkgZXZhbHVhdGVkIG9uY2Ug
Zm9yIGVhY2ggZGF0YSBub2RlIGluIHRoZQ0KPiA+PiAgICAgICBhY2Nlc3NpYmxlIHRyZWUgKHNl
ZSBTZWN0aW9uIDYuNC4xKS4NCj4gPiANCj4gPiBPaywgdGhpcyBpcyBhbHNvIHVuY2hhbmdlZCBm
cm9tIDYwMjAuICBCdXQgSSBhZ3JlZSB0aGF0ICJkYXRhIG5vZGUiIGlzDQo+ID4gbm90IGNvcnJl
Y3QgaGVyZS4NCj4gPiANCj4gPj4gICAgICsgTkVXIFdoZW4gYSBkYXRhc3RvcmUgaXMgdmFsaWRh
dGVkLCBhbGwgIm11c3QiIGNvbnN0cmFpbnRzIGFyZQ0KPiA+PiAgICAgICBjb25jZXB0dWFsbHkg
ZXZhbHVhdGVkIG9uY2UgZm9yIGVhY2ggaW5zdGFuY2Ugbm9kZSBpbiB0aGUNCj4gPj4gICAgICAg
YWNjZXNzaWJsZSB0cmVlIChzZWUgU2VjdGlvbiA2LjQuMSkuDQo+ID4gDQo+ID4gSSBzdWdnZXN0
IGp1c3QgImVhY2ggbm9kZSBpbiB0aGUgYWNjZXNzaWJsZSB0cmVlIiwgd2hpY2ggaXMgdGhlDQo+
ID4gbGFuZ3VhZ2Ugd2UgdXNlIGluIGFsbCBvdGhlciBwbGFjZXMuDQo+IA0KPiBPSy4gT25lIGFs
dGVybmF0aXZlIHRoYXQganVzdCBjYW1lIHRvIG15IG1pbmQgd291bGQgYmUgdG8gY2hhbmdlDQo+
IOKAnGRhdGEvc2NoZW1hIG5vZGXigJ0gaW4gdGhlIHNlbnNlIG9mIFNlYy4gMyB0byDigJxkYXRh
L3NjaGVtYQ0KPiB2ZXJ0ZXjigJ0uIFRoZW4g4oCcKGRhdGEpIG5vZGXigJ0gY291bGQgYmUgZnJl
ZWx5IHVzZWQgdG8gZGVub3RlZCBub2RlcyBpbg0KPiB0aGUgZGF0YSB0cmVlIGFuZCBYUGF0aC4N
Cj4gICANCj4gPiANCj4gPiANCj4gPj4gKioqKiBTZWMuIDcuNy4xMA0KPiA+PiAgICAgSWYgdGhl
IGRlZmluaXRpb24gb2YgImNpcGhlciIgbGVhZi1saXN0IGNvbnRhaW5lZA0KPiA+PiANCj4gPj4g
ICAgICAgZGVmYXVsdCAiM2Rlcy1jYmMiOw0KPiA+PiANCj4gPj4gICAgIGFuZCBubyBpbnN0YW5j
ZXMgb2YgImNpcGhlciIgZXhpc3RlZCBpbiBydW5uaW5nLCBpcyB0aGUNCj4gPj4gICAgIDxlZGl0
LWNvbmZpZz4gYXQgdGhlIHRvcCBvZiBwLiA3MCBzdGlsbCB2YWxpZD8gSWYgaXQgaXMsIHdoYXQN
Cj4gPj4gICAgIHdpbGwgYmUgdGhlIGZpbmFsIGNvbnRlbnQgb2YgImNpcGhlciIgbGVhZi1saXN0
Pw0KPiA+IA0KPiA+IEkgdGhpbmsgdGhpcyBkZXBlbmRzIG9uIHRoZSB3aXRoLWRlZmF1bHQncyBi
YXNpYy1tb2RlLg0KPiANCj4gSXQgaXMgdGhlIHF1ZXN0aW9uYWJsZSB3aGF0IHRoaXMgc3RhdGVt
ZW50IHJlYWxseSBtZWFuczoNCj4gDQo+ICAgIFdoZW4gdGhlIGRlZmF1bHQgdmFsdWVzIGFyZSBp
biB1c2UsIHRoZSBzZXJ2ZXIgTVVTVCBvcGVyYXRpb25hbGx5DQo+ICAgIGJlaGF2ZSBhcyBpZiB0
aGUgbGVhZi1saXN0IHdhcyBwcmVzZW50IGluIHRoZSBkYXRhIHRyZWUgd2l0aCB0aGUNCj4gICAg
ZGVmYXVsdCB2YWx1ZXMgYXMgaXRzIHZhbHVlcy4NCg0KV2h5IGlzIHRoaXMgcXVlc3Rpb25hYmxl
Pw0KDQoNCi9tYXJ0aW4NCg==


From nobody Thu Mar 12 04:55:33 2015
Return-Path: <lhotka@nic.cz>
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 B959D1A92AD for <netmod@ietfa.amsl.com>; Thu, 12 Mar 2015 04:55:31 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.361
X-Spam-Level: 
X-Spam-Status: No, score=-0.361 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HELO_EQ_CZ=0.445, HOST_EQ_CZ=0.904, MIME_8BIT_HEADER=0.3, T_RP_MATCHES_RCVD=-0.01] autolearn=no
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 NYslZn7xAsDm for <netmod@ietfa.amsl.com>; Thu, 12 Mar 2015 04:55:29 -0700 (PDT)
Received: from mail.nic.cz (mail.nic.cz [IPv6:2001:1488:800:400::400]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 281D31A92A9 for <netmod@ietf.org>; Thu, 12 Mar 2015 04:55:29 -0700 (PDT)
Received: from [IPv6:2001:718:1a02:1:d1e9:55f2:16cf:2a] (unknown [IPv6:2001:718:1a02:1:d1e9:55f2:16cf:2a]) by mail.nic.cz (Postfix) with ESMTPSA id BC58C13FA24; Thu, 12 Mar 2015 12:55:27 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=nic.cz; s=default; t=1426161327; bh=ETwr41pFZiJwKMSey1NJnUxvB2H55M0pv/ralJHogVo=; h=Content-Type:Mime-Version:Subject:From:In-Reply-To:Date:Cc: Content-Transfer-Encoding:Message-Id:References:To; b=stRzqnmVVNqqxZVrIEFRZhGFAgNPPW55JAFlVExWl00Z4g2s6gZmv7nRaOip8HGNL aLXB+AEXjY5xPrgjjVTYuo7dUDK5TTYIdBy0uBXHt3gd0RCjechCAk53jkuTBjeLp4 r96UTcyj9ft2r+HR5TBiyJu5CtpIgHAzu25dNh6k=
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2070.6\))
From: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <20150312.121047.1695177370838551805.mbj@tail-f.com>
Date: Thu, 12 Mar 2015 12:55:26 +0100
Content-Transfer-Encoding: quoted-printable
Message-Id: <5EBE2598-CEC8-4D00-AC14-9DF84D6CEB21@nic.cz>
References: <m2bnjz39h3.fsf@birdie.labs.nic.cz> <20150312.110738.546321195957032954.mbj@tail-f.com> <FC80943F-000C-41F7-A231-B9FAD8A24CC9@nic.cz> <20150312.121047.1695177370838551805.mbj@tail-f.com>
To: =?utf-8?Q?Martin_Bj=C3=B6rklund?= <mbj@tail-f.com>
X-Mailer: Apple Mail (2.2070.6)
X-Virus-Scanned: clamav-milter 0.98.6 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/u-0OpAOVemwEH6kK4KOlcxzuE5g>
Cc: netmod@ietf.org
Subject: Re: [netmod] LL review of 6020bis-04
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: <http://www.ietf.org/mail-archive/web/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: Thu, 12 Mar 2015 11:55:31 -0000

> On 12 Mar 2015, at 12:10, Martin Bjorklund <mbj@tail-f.com> wrote:
>=20
> Ladislav Lhotka <lhotka@nic.cz> wrote:
>>=20
>>> On 12 Mar 2015, at 11:07, Martin Bjorklund <mbj@tail-f.com> wrote:
>>>=20
>>> Hi Lada,
>>>=20
>>> Thank you for reviewing this document!
>>>=20
>>> Ladislav Lhotka <lhotka@nic.cz> wrote:
>>>> Hi,
>>>>=20
>>>> here are my comments to the lastest revision of the 6020bis draft:
>>>>=20
>>>> **** General
>>>>    Apart from "data node" and "schema node" that are defined in
>>>>    Sec. 3, the term "node" is used with at least two other =
meanings:
>>>>    - node in the data tree, i.e. an element in XML encoding,
>>>>    - XPath node.
>>>>    I have seen more than once that this confused people. Perhaps we
>>>>    should always use qualified terms such as "instance node" for =
the
>>>>    former and "XPath node" for the latter.
>>>=20
>>> Do you have an example of what you mean with "XPath node=E2=80=9D?
>>=20
>> In =E2=80=9Ccontext node=E2=80=9D or =E2=80=9Cnode set=E2=80=9D, for =
example. But maybe in our case it
>> is no different from =E2=80=9Cinstance node=E2=80=9D. =46rom my =
experience, what=E2=80=99s
>> really confusing for YANG newbies is that a data node is *not* a node
>> in the data tree.
>=20
> I agree.  This is unfortunate.
>=20
>>>> **** Sec. 5.1
>>>>    Circular includes are impossible because "include"
>>>>    statements in submodules are ignored.
>>>>=20
>>>>    - OLD
>>>>      There MUST NOT be any circular chains of imports or includes.
>>>>=20
>>>>    + NEW
>>>>      There MUST NOT be any circular chains of imports.
>>>=20
>>> See below.
>>>=20
>>>> **** Sec. 7.1.6
>>>>=20
>>>>    - OLD
>>>>      For backwards compatibility with YANG version 1, a submodule =
is
>>>>      allowed to include another submodule belonging to the same
>>>>      module, but this is not necessary in YANG version 1.1.
>>>>=20
>>>>    + NEW
>>>>      For backwards compatibility with YANG version 1, "include"
>>>>      statements are permitted in submodules but they are ignored in
>>>>      YANG version 1.1.
>>>=20
>>> I don't think they are ignored.  *If* they are present they must be
>>> valid - the submodule that is included must belong to the same =
module,
>>> and the revision date must match.
>>=20
>> Such an include statement has no effect so what=E2=80=99s the point =
of
>> performing these checks? Yes, it means that a YANG 1.1 submodule
>> needn=E2=80=99t be valid in 1.0 but that doesn=E2=80=99t violate the =
charter.
>=20
> If it is there it should make some sense IMO.  Otherwise it will just
> be confusing to readers.

Well, writers shouldn=E2=80=99t use it in the first place. If it is a =
no-op, then insisting on any rules doesn=E2=80=99t make much sense to =
me. I assume it could be there only as a left-over from reused 1.0 =
submodules.=20

>=20
>>> This is illegal in YANG 1.1 IMO:
>>>=20
>>> module x {
>>>   ...
>>>   include ietf-yang-types {
>>>       revision-date 9999-04-01;
>>>   }
>>>   ...
>>> }
>>>=20
>>>>    Also, s/backwards compatibility/backward compatibility/.
>>>=20
>>> Fixed.
>>>=20
>>>=20
>>>> **** Sec. 7.2.2
>>>>    Can a submodule refer to definitions in the main module or other
>>>>    submodules without using a prefix?
>>>=20
>>> Yes, and this hasn't changed from 6020.
>>=20
>> OK, then maybe the =E2=80=9Cprefix=E2=80=9D statement under =
=E2=80=9Cbelongs-to=E2=80=9D could be made
>> optional - except in very rare cases the same prefix could and should
>> be used in the main module and all submodules.
>=20
> But we have the same rule for "prefix" under "module" - it is
> mandatory to specify even if you don't use it in your module.

Modules are different because =E2=80=9Cprefix=E2=80=9D is also an =
information for other modules that=E2=80=99s not available elsewhere. =
Submodules are supposed to use the same prefix that=E2=80=99s defined in =
the main module - unless there is a collision with a prefix from an =
imported module.

>=20
>=20
>>>> **** Sec. 7.5.3
>>>>=20
>>>>    - OLD
>>>>      When a datastore is validated, all "must" constraints are
>>>>      conceptually evaluated once for each data node in the
>>>>      accessible tree (see Section 6.4.1).
>>>=20
>>> Ok, this is also unchanged from 6020.  But I agree that "data node" =
is
>>> not correct here.
>>>=20
>>>>    + NEW When a datastore is validated, all "must" constraints are
>>>>      conceptually evaluated once for each instance node in the
>>>>      accessible tree (see Section 6.4.1).
>>>=20
>>> I suggest just "each node in the accessible tree", which is the
>>> language we use in all other places.
>>=20
>> OK. One alternative that just came to my mind would be to change
>> =E2=80=9Cdata/schema node=E2=80=9D in the sense of Sec. 3 to =
=E2=80=9Cdata/schema
>> vertex=E2=80=9D. Then =E2=80=9C(data) node=E2=80=9D could be freely =
used to denoted nodes in
>> the data tree and XPath.
>>=20
>>>=20
>>>=20
>>>> **** Sec. 7.7.10
>>>>    If the definition of "cipher" leaf-list contained
>>>>=20
>>>>      default "3des-cbc";
>>>>=20
>>>>    and no instances of "cipher" existed in running, is the
>>>>    <edit-config> at the top of p. 70 still valid? If it is, what
>>>>    will be the final content of "cipher" leaf-list?
>>>=20
>>> I think this depends on the with-default's basic-mode.
>>=20
>> It is the questionable what this statement really means:
>>=20
>>   When the default values are in use, the server MUST operationally
>>   behave as if the leaf-list was present in the data tree with the
>>   default values as its values.
>=20
> Why is this questionable?

It=E2=80=99s unclear what =E2=80=9Coperationally=E2=80=9D means. It =
would seem that NETCONF is not part of operational behaviour, but then =
the term server in fact refers only to a NETCONF server (RFC 6241: =
"server: Executes protocol operations invoked by a client. In addition, =
a server can send notifications to a client.=E2=80=9D).

Lada

>=20
>=20
> /martin

--
Ladislav Lhotka, CZ.NIC Labs
PGP Key ID: E74E8C0C





From nobody Thu Mar 12 06:05:46 2015
Return-Path: <anton.tkacik@pantheon.sk>
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 4980C1A0113; Thu, 12 Mar 2015 06:05:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 2.194
X-Spam-Level: **
X-Spam-Status: No, score=2.194 tagged_above=-999 required=5 tests=[BAYES_20=-0.001, HELO_EQ_SK=1.35, HOST_EQ_SK=0.555, HTML_MESSAGE=0.001, MIME_8BIT_HEADER=0.3, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=no
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 ubIAjTzioMYw; Thu, 12 Mar 2015 06:05:42 -0700 (PDT)
Received: from amalka.pantheon.sk (amalka.pantheon.sk [81.89.59.174]) by ietfa.amsl.com (Postfix) with ESMTP id BCD571A00F7; Thu, 12 Mar 2015 06:05:41 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by amalka.pantheon.sk (Postfix) with ESMTP id E5DD825043; Thu, 12 Mar 2015 14:05:39 +0100 (CET)
X-Virus-Scanned: amavisd-new at pantheon.sk
Received: from amalka.pantheon.sk ([127.0.0.1]) by localhost (amalka.pantheon.sk [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id bT4RueZCRZXf; Thu, 12 Mar 2015 14:05:36 +0100 (CET)
Received: from XMBX1.pantheon.local (fw.pantheon.sk [81.89.59.166]) by amalka.pantheon.sk (Postfix) with ESMTPS; Thu, 12 Mar 2015 14:05:36 +0100 (CET)
Received: from XMBX1.pantheon.local (10.10.4.5) by XMBX1.pantheon.local (10.10.4.5) with Microsoft SMTP Server (TLS) id 15.0.847.32; Thu, 12 Mar 2015 14:05:36 +0100
Received: from XMBX1.pantheon.local ([10.10.4.5]) by XMBX1.pantheon.local ([10.10.4.5]) with mapi id 15.00.0847.030; Thu, 12 Mar 2015 14:05:29 +0100
From: =?iso-8859-2?Q?Anton_Tk=E1=E8ik?= <anton.tkacik@pantheon.sk>
To: "netmod@ietf.org" <netmod@ietf.org>, "netconf@ietf.org" <netconf@ietf.org>
Thread-Topic: draft-ietf-netconf-restconf-04 - Inconsistent JSON serialization between PUT and GET of list item
Thread-Index: AQHQXMSLJ1GMJpx7X0eD/fwfwl/RQw==
Date: Thu, 12 Mar 2015 13:05:29 +0000
Message-ID: <2fe89c1a458e42d88b6c7871f72e8aa8@XMBX1.pantheon.local>
Accept-Language: sk-SK, en-US
Content-Language: sk-SK
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [173.38.208.170]
Content-Type: multipart/alternative; boundary="_000_2fe89c1a458e42d88b6c7871f72e8aa8XMBX1pantheonlocal_"
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/kgyWPXRsEJay2r11EuZ_Ui0b570>
Subject: [netmod] draft-ietf-netconf-restconf-04 - Inconsistent JSON serialization between PUT and GET of list item
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: <http://www.ietf.org/mail-archive/web/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: Thu, 12 Mar 2015 13:05:44 -0000

--_000_2fe89c1a458e42d88b6c7871f72e8aa8XMBX1pantheonlocal_
Content-Type: text/plain; charset="iso-8859-2"
Content-Transfer-Encoding: quoted-printable

Hi,

I noticed in draft-ietf-netconf-restconf-04 and draft-ietf-netmod-yang-json=
-03 some inconsistencies

regarding reading (GET) and writing (PUT) list item:


ietf-netmod-yang-json-03, clearly says that list is serialized as array of =
objects,

but draft-ietf-netconf-restconf-04 showcases different serializations:


https://tools.ietf.org/html/draft-ietf-netconf-restconf-04#section-4.5


     PUT /restconf/data/example-jukebox:jukebox/
         library/artist=3DFoo%20Fighters/album=3DWasting%20Light   HTTP/1.1
      Host: example.com
      Content-Type: application/yang.data+json

      {
        "example-jukebox:album" : {
          "name" : "Wasting Light",
          "genre" : "example-jukebox:alternative",
          "year" : 2011
        }
      }

Here list-item is serialized as object, no array around it (this is inconsi=
stent with referenced ietf-netmod-yang-json-03)




The GET example for one list item (https://tools.ietf.org/html/draft-ietf-n=
etconf-restconf-04#appendix-D.3.9) shows:


      GET /restconf/data/interfaces/interface=3Deth1 HTTP/1.1
      Host: example.com
      Accept: application/yang.data+json

   The server might respond as follows.


      HTTP/1.1 200 OK
      Date: Mon, 23 Apr 2012 17:01:00 GMT
      Server: example-server
      Content-Type: application/yang.data+json

      {
        "example:interface": [
          {
            "name" : "eth1",
            "status" : "up"
          }
        ]
      }


Here is serialized according ietf-netmod-yang-json-03.



This behaviour is confusing - since you it seems that data retrieved via GE=
T to same URL should not be used for PUT to same URL.




This inconsistency was uncovered during bug analysis in Opendaylight (https=
://bugs.opendaylight.org/show_bug.cgi?id=3D2818) this was for 02 versions, =
but analysis shows it still

present in latest drafts.

AntonTk=E1=E8ik
Head of Java office

Mlynsk=E9 Nivy 56 / 821 05 Bratislava / Slovakia
+421 911 309 249 / anton.tkacik@pantheon.sk
reception: +421 2 206 65 111 / www.pantheon.sk
[logo]

--_000_2fe89c1a458e42d88b6c7871f72e8aa8XMBX1pantheonlocal_
Content-Type: text/html; charset="iso-8859-2"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Diso-8859-=
2">
<style type=3D"text/css" style=3D"display:none"><!--P{margin-top:0;margin-b=
ottom:0;} .ms-cui-menu {background-color:#ffffff;border:1px rgb(171, 171, 1=
71) solid;font-family:'Segoe UI WPC', 'Segoe UI', Tahoma, 'Microsoft Sans S=
erif', Verdana, sans-serif;font-size:11pt;color:rgb(51, 51, 51);} .ms-cui-m=
enusection-title {display:none;} .ms-cui-ctl {vertical-align:text-top;text-=
decoration:none;color:rgb(51, 51, 51);} .ms-cui-ctl-on {background-color:rg=
b(223, 237, 250);opacity: 0.8;} .ms-cui-img-cont-float {display:inline-bloc=
k;margin-top:2px} .ms-cui-smenu-inner {padding-top:0px;} .ms-owa-paste-opti=
on-icon {margin: 2px 4px 0px 4px;vertical-align:sub;padding-bottom: 2px;dis=
play:inline-block;} .ms-rtePasteFlyout-option:hover {background-color:rgb(2=
23, 237, 250) !important;opacity:1 !important;} .ms-rtePasteFlyout-option {=
padding:8px 4px 8px 4px;outline:none;} .ms-cui-menusection {float:left; wid=
th:85px;height:24px;overflow:hidden}--></style>
</head>
<body>
<div style=3D"font-size:12pt;color:#000000;background-color:#FFFFFF;font-fa=
mily:Calibri,Arial,Helvetica,sans-serif;">
<p>Hi,<br>
</p>
<p>I noticed in&nbsp;draft-ietf-netconf-restconf-04 and draft-ietf-netmod-y=
ang-json-03 some inconsistencies<br>
</p>
<p>regarding reading (GET)&nbsp;and writing (PUT) list item:<br>
</p>
<p><br>
</p>
<p>ietf-netmod-yang-json-03, clearly says that list is serialized as array =
of objects,</p>
<p>but draft-ietf-netconf-restconf-04 showcases different serializations:</=
p>
<p><br>
</p>
<p><a href=3D"https://tools.ietf.org/html/draft-ietf-netconf-restconf-04#se=
ction-4.5">https://tools.ietf.org/html/draft-ietf-netconf-restconf-04#secti=
on-4.5</a></p>
<p><br>
</p>
<pre class=3D"newpage" data-initialized=3D"true" data-gclp-id=3D"30" style=
=3D"font-size: 1em; margin-top: 0px; margin-bottom: 0px; page-break-before:=
 always;">     PUT /restconf/data/example-jukebox:jukebox/=0A=
         library/artist=3DFoo%20Fighters/album=3DWasting%20Light   HTTP/1.1=
=0A=
      Host: example.com=0A=
      Content-Type: application/yang.data&#43;json=0A=
=0A=
      {=0A=
        &quot;example-jukebox:album&quot; : {=0A=
          &quot;name&quot; : &quot;Wasting Light&quot;,=0A=
          &quot;genre&quot; : &quot;example-jukebox:alternative&quot;,=0A=
          &quot;year&quot; : 2011=0A=
        }=0A=
      }<br></pre>
<p><br>
Here list-item is serialized as object, no array around it (this is inconsi=
stent with referenced ietf-netmod-yang-json-03)</p>
<p><br>
</p>
<p><br>
</p>
<p><br>
</p>
<p>The GET example for one list item (<span style=3D"font-family: calibri, =
arial, helvetica, sans-serif; font-size: 16px; background-color: #ffffff;">=
https://tools.ietf.org/html/draft-ietf-netconf-restconf-04#appendix-D.3.9</=
span>)&nbsp;shows:</p>
<p><br>
</p>
<pre class=3D"newpage" data-initialized=3D"true" data-gclp-id=3D"27" style=
=3D"font-size: 1em; margin-top: 0px; margin-bottom: 0px; page-break-before:=
 always;"></pre>
<pre class=3D"newpage" data-initialized=3D"true" data-gclp-id=3D"98" style=
=3D"font-size: 1em; margin-top: 0px; margin-bottom: 0px; page-break-before:=
 always;"></pre>
<pre class=3D"newpage" data-initialized=3D"true" data-gclp-id=3D"97" style=
=3D"font-size: 1em; margin-top: 0px; margin-bottom: 0px; page-break-before:=
 always;">      GET /restconf/data/interfaces/interface=3Deth1 HTTP/1.1=0A=
      Host: example.com=0A=
      Accept: application/yang.data&#43;json=0A=
=0A=
   The server might respond as follows.<br></pre>
<pre class=3D"newpage" data-initialized=3D"true" data-gclp-id=3D"97" style=
=3D"font-size: 1em; margin-top: 0px; margin-bottom: 0px; page-break-before:=
 always;"><br></pre>
<pre class=3D"newpage" data-initialized=3D"true" data-gclp-id=3D"97" style=
=3D"font-size: 1em; margin-top: 0px; margin-bottom: 0px; page-break-before:=
 always;"><pre class=3D"newpage" data-initialized=3D"true" data-gclp-id=3D"=
98" style=3D"font-size: 1em; margin-top: 0px; margin-bottom: 0px; page-brea=
k-before: always;">      HTTP/1.1 200 OK=0A=
      Date: Mon, 23 Apr 2012 17:01:00 GMT=0A=
      Server: example-server=0A=
      Content-Type: application/yang.data&#43;json=0A=
=0A=
      {=0A=
        &quot;example:interface&quot;: [=0A=
          {=0A=
            &quot;name&quot; : &quot;eth1&quot;,=0A=
            &quot;status&quot; : &quot;up&quot;=0A=
          }=0A=
        ]=0A=
      }<br></pre><br></pre>
<p><br>
Here is serialized according ietf-netmod-yang-json-03.<br>
</p>
<p><br>
<br>
</p>
<p>This behaviour is confusing - since you it seems that data retrieved via=
 GET to same URL should not be used for PUT to same URL<span style=3D"font-=
size: 12pt;">.</span></p>
<p><br>
</p>
<p><br>
</p>
<p><br>
</p>
<p>This inconsistency&nbsp;was uncovered during bug analysis in&nbsp;Openda=
ylight (https://bugs.opendaylight.org/show_bug.cgi?id=3D2818) this was for =
02 versions, but analysis shows it still&nbsp;</p>
<p>present in latest drafts.<br>
</p>
<p><br>
</p>
</div>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/htm=
l4/strict.dtd">
<title>PT_signature</title>
<p style=3D"font-family: Calibri;" class=3D"MsoNormal"><span style=3D"font-=
size: 18pt; line-height: 107%; color: rgb(64, 64, 64);" lang=3D"SK">Anton<s=
pan style=3D"font-weight: bold;">Tk=E1=E8ik</span><o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-bottom: 0.0001pt; line-height: norma=
l; font-family: Calibri;">
<span style=3D"font-size: 10pt; color: rgb(64, 64, 64);" lang=3D"SK">Head o=
f Java office</span></p>
<span style=3D"font-size: 10pt; color: rgb(64, 64, 64);" lang=3D"SK"><o:p><=
/o:p></span><span style=3D"color: rgb(64, 64, 64);" lang=3D"SK"><o:p></o:p>=
</span><br style=3D"font-family: Calibri;">
<span style=3D"color: rgb(64, 64, 64); font-family: Calibri;" lang=3D"SK"><=
o:p></o:p>Mlynsk=E9 Nivy 56
</span><span style=3D"color: red; font-family: Calibri;" lang=3D"SK">/ </sp=
an><span style=3D"color: rgb(64, 64, 64); font-family: Calibri;" lang=3D"SK=
">821 05 Bratislava
</span><span style=3D"color: red; font-family: Calibri;" lang=3D"SK">/ </sp=
an><span style=3D"color: rgb(64, 64, 64); font-family: Calibri;" lang=3D"SK=
">Slovakia<o:p></o:p></span><span style=3D"color: rgb(64, 64, 64);" lang=3D=
"SK"><br>
<span style=3D"font-family: Calibri;">&#43;421 911 309 249</span></span><sp=
an style=3D"color: red; font-family: Calibri;" lang=3D"SK"> /
</span><span style=3D"text-decoration: none ! important; font-family: Calib=
ri;" color=3D"" rgb(6464=3D"" lang=3D"SK">anton.tkacik@pantheon.sk<o:p></o:=
p></span><span style=3D"color: rgb(64, 64, 64); font-family: Calibri;" lang=
=3D"SK"><br>
<span style=3D"font-family: Calibri;">reception: &#43;421 2 206 65 111 </sp=
an></span><span style=3D"color: red; font-family: Calibri;" lang=3D"SK">/
</span><span style=3D"color: rgb(64, 64, 64); font-family: Calibri;" lang=
=3D"SK">www.pantheon.sk</span><span style=3D"font-family: Calibri;">
</span><br>
<p class=3D"MsoNormal" style=3D"margin-bottom: 0.0001pt; line-height: norma=
l;"><img style=3D"width: 200px; height: 42px;" alt=3D"logo" src=3D"http://w=
ww.pantheon.sk/fileadmin/templates/img/logo.png"><span style=3D"color: rgb(=
64, 64, 64);" lang=3D"SK"><span style=3D"font-family: Calibri;"></span><o:p=
></o:p></span></p>
</body>
</html>

--_000_2fe89c1a458e42d88b6c7871f72e8aa8XMBX1pantheonlocal_--


From nobody Thu Mar 12 07:33:02 2015
Return-Path: <j.schoenwaelder@jacobs-university.de>
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 822F51A01CB for <netmod@ietfa.amsl.com>; Thu, 12 Mar 2015 07:33:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.86
X-Spam-Level: 
X-Spam-Status: No, score=-3.86 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] 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 8eL5RtWDZuJA for <netmod@ietfa.amsl.com>; Thu, 12 Mar 2015 07:32:56 -0700 (PDT)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 243FD1A1B00 for <netmod@ietf.org>; Thu, 12 Mar 2015 07:32:41 -0700 (PDT)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id 5215D2F90 for <netmod@ietf.org>; Thu, 12 Mar 2015 15:32:40 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.220]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id AZW2y3dqDV8w for <netmod@ietf.org>; Thu, 12 Mar 2015 15:32:19 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS for <netmod@ietf.org>; Thu, 12 Mar 2015 15:32:39 +0100 (CET)
Received: from localhost (demetrius3.jacobs-university.de [212.201.44.48]) by hermes.jacobs-university.de (Postfix) with ESMTP id 84CED20044 for <netmod@ietf.org>; Thu, 12 Mar 2015 15:32:39 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius3.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id ReFkIbDNMOBZ; Thu, 12 Mar 2015 15:32:38 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id 7BF9520048; Thu, 12 Mar 2015 15:32:38 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id 0D23032785FD; Thu, 12 Mar 2015 15:32:36 +0100 (CET)
Date: Thu, 12 Mar 2015 15:32:36 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: netmod@ietf.org
Message-ID: <20150312143233.GA14539@elstar.local>
Mail-Followup-To: netmod@ietf.org
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/mbobtHJ6--S4P2XzowJJ36OS_xE>
Subject: [netmod] draft agenda for the upcoming ietf 92 meetings
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
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: <http://www.ietf.org/mail-archive/web/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: Thu, 12 Mar 2015 14:33:01 -0000

Hi,

a draft agenda for the upcoming meetings in Dallas can be found here:

http://www.ietf.org/proceedings/92/agenda/agenda-92-netmod

Let us know if any changes should be made to the agenda.

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Thu Mar 12 07:42:07 2015
Return-Path: <evoit@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 E15351A0191 for <netmod@ietfa.amsl.com>; Thu, 12 Mar 2015 07:42:05 -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 dG92CnYssaja for <netmod@ietfa.amsl.com>; Thu, 12 Mar 2015 07:42:03 -0700 (PDT)
Received: from alln-iport-5.cisco.com (alln-iport-5.cisco.com [173.37.142.92]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7513C1A1BCC for <netmod@ietf.org>; Thu, 12 Mar 2015 07:42:03 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=1227; q=dns/txt; s=iport; t=1426171323; x=1427380923; h=from:to:cc:subject:date:message-id: content-transfer-encoding:mime-version; bh=BDOqDxufJQSqGJjeMgapsM0pqsfDeSDCUmFrgiy6RMY=; b=AyE6nLK4lDNsN9V/VKeJjdABXfllasSjZKKccFRr2GY3Syx/bOkF17OJ GByHHYKWYvzAHLdiV1EqFZIFvZ8iCmAhpdQ7DqYRzQtkBkuyXEUQCAeY7 Rd5JeqdIVMzCuYKJtyvWqMBWQIrkNhDloAHw7k4j1eUutjpekCTKNU62P Y=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0AkBQAjpQFV/5RdJa1bgwaBMMlCAoEyTAEBAQEBAX2EEQEEOjQJAhIBKhRCJgEEDg2IJ8s3AQEBAQEBAQMBAQEBAQEBAQEZixeEQDGDHoEWAQSQJIlik3wjg26CM38BAQE
X-IronPort-AV: E=Sophos;i="5.11,389,1422921600"; d="scan'208";a="131399183"
Received: from rcdn-core-12.cisco.com ([173.37.93.148]) by alln-iport-5.cisco.com with ESMTP; 12 Mar 2015 14:42:02 +0000
Received: from xhc-aln-x03.cisco.com (xhc-aln-x03.cisco.com [173.36.12.77]) by rcdn-core-12.cisco.com (8.14.5/8.14.5) with ESMTP id t2CEg2gt009957 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Thu, 12 Mar 2015 14:42:02 GMT
Received: from xmb-aln-x11.cisco.com ([169.254.6.70]) by xhc-aln-x03.cisco.com ([173.36.12.77]) with mapi id 14.03.0195.001; Thu, 12 Mar 2015 09:42:02 -0500
From: "Eric Voit (evoit)" <evoit@cisco.com>
To: "netmod@ietf.org" <netmod@ietf.org>
Thread-Topic: New Version Notification for draft-voit-netmod-peer-mount-requirements-02
Thread-Index: AdBc0rCpEqkK7mM7QbCFjJQkR33CPQ==
Date: Thu, 12 Mar 2015 14:42:01 +0000
Message-ID: <EF64FF31F4C4384DBCE5D513A791C2B121A1BDD8@xmb-aln-x11.cisco.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [10.116.134.140]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/B458ui2sPUCStf4crm6DDbo6RtI>
Subject: [netmod] New Version Notification for draft-voit-netmod-peer-mount-requirements-02
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: <http://www.ietf.org/mail-archive/web/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: Thu, 12 Mar 2015 14:42:06 -0000

At IETF 91, there was much good discussion on Peer Mount.  Based on these d=
iscussions we authors have split embodied concepts into two separate IETF p=
aths:

(1) YANG Pub/Sub
        draft-ietf-i2rs-pub-sub-requirements
        draft-clemm-netconf-yang-push  (was draft-netmod-clemm-datastore-pu=
sh)
(2) YANG Peer Mount
        draft-voit-netmod-peer-mount-requirements
        draft-clemm-netmod-mount

These two concepts can stand on their own, but can also work well together.=
  Why?   Peer Mount is made more effective when remote object changes can b=
e pushed to local applications without fetching.

At this point we authors are spending more time progressing (1) YANG Pub/Su=
b as it can be used standalone without Peer Mount, and also because the I2R=
S WG has immediate need.  But (2) YANG Peer Mount is being shown effective =
in OpenDaylight as Network Element changes are being pushed into SDN applic=
ations.   Therefore we will continue to revise the Peer Mount drafts.  But =
we will be doing at a slower pace.

I will be at IETF 92.  Reach out to me if you want to discuss.  Mailing lis=
t comments to any of the drafts are also very appreciated.

Thanks,
Eric=20

Eric Voit


From nobody Thu Mar 12 07:48:10 2015
Return-Path: <bclaise@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 C81CA1A702D for <netmod@ietfa.amsl.com>; Thu, 12 Mar 2015 07:48:07 -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 bg3_HubNJJDF for <netmod@ietfa.amsl.com>; Thu, 12 Mar 2015 07:48:06 -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 4354F1A7021 for <netmod@ietf.org>; Thu, 12 Mar 2015 07:48:05 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=6665; q=dns/txt; s=iport; t=1426171685; x=1427381285; h=message-id:date:from:mime-version:to:subject:references: in-reply-to; bh=HKxkWMKrzvIauKpVee0UE/E1xW8bI1Ef8cSLl78eVaE=; b=OyforE1zLFBwAcjru2YuO50L6xTCsd0EeHDzDi03mKC+83mwSns+vjJS 2Zcg/q/nWUr+vVBz1dsG2xldzarmnDN1h8t2woyJV/SaUwIdcZEfh5Lqm TkA/5IFp9DR8yyJGBEXrCyCfnDqjkt7dRi5HNDdfH8wAv4lhZCV+ReOYh 8=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0CqBADBpgFV/xbLJq1bg1hagwvATYVuAoF+AQEBAQEBfYQPAQEBBCNUAREcAwECChYLAgIJAwIBAgE9CAYNBgIBAQWIJg2wLJsIAQEBAQEBAQEBAQEBAQEBAQEBGosXhGAYBoJigUUFlAyFeYEaOYJvgjOJQ4NFI4IygT09MQGCQgEBAQ
X-IronPort-AV: E=Sophos;i="5.11,389,1422921600";  d="scan'208,217";a="394273807"
Received: from aer-iport-nat.cisco.com (HELO aer-core-4.cisco.com) ([173.38.203.22]) by aer-iport-1.cisco.com with ESMTP; 12 Mar 2015 14:48:03 +0000
Received: from [10.60.67.85] (ams-bclaise-8914.cisco.com [10.60.67.85]) by aer-core-4.cisco.com (8.14.5/8.14.5) with ESMTP id t2CEm2mO014082 for <netmod@ietf.org>; Thu, 12 Mar 2015 14:48:02 GMT
Message-ID: <5501A722.5020402@cisco.com>
Date: Thu, 12 Mar 2015 15:48:02 +0100
From: Benoit Claise <bclaise@cisco.com>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0
MIME-Version: 1.0
To: NETMOD Working Group <netmod@ietf.org>
References: <20150309224605.8142.81816.idtracker@ietfa.amsl.com>
In-Reply-To: <20150309224605.8142.81816.idtracker@ietfa.amsl.com>
X-Forwarded-Message-Id: <20150309224605.8142.81816.idtracker@ietfa.amsl.com>
Content-Type: multipart/alternative; boundary="------------070204000002030509050305"
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/jWhvT_b4Em75Xb2h3wQ5VpilSV0>
Subject: [netmod] New Version Notification for draft-bogdanovic-netmod-yang-model-classification-01.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: <http://www.ietf.org/mail-archive/web/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: Thu, 12 Mar 2015 14:48:08 -0000

This is a multi-part message in MIME format.
--------------070204000002030509050305
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit

Dear all,

We would appreciate your review on this new draft version.

Regards, Benoit


-------- Forwarded Message --------
Subject: 	New Version Notification for 
draft-bogdanovic-netmod-yang-model-classification-01.txt
Date: 	Mon, 9 Mar 2015 15:46:05 -0700
From: 	internet-drafts@ietf.org
To: 	Dean Bogdanovic <deanb@juniper.net>, Dean Bogdanovic 
<deanb@juniper.net>, Benoit Claise <bclaise@cisco.com>, Carl Moberg 
<camoberg@cisco.com>, Carl Moberg <camoberg@cisco.com>, Benoit Claise 
<bclaise@cisco.com>



A new version of I-D, draft-bogdanovic-netmod-yang-model-classification-01.txt
has been successfully submitted by Dean Bogdanovic and posted to the
IETF repository.

Name:		draft-bogdanovic-netmod-yang-model-classification
Revision:	01
Title:		YANG model classification
Document date:	2015-03-09
Group:		Individual Submission
Pages:		12
URL:            http://www.ietf.org/internet-drafts/draft-bogdanovic-netmod-yang-model-classification-01.txt
Status:         https://datatracker.ietf.org/doc/draft-bogdanovic-netmod-yang-model-classification/
Htmlized:       http://tools.ietf.org/html/draft-bogdanovic-netmod-yang-model-classification-01
Diff:           http://www.ietf.org/rfcdiff?url2=draft-bogdanovic-netmod-yang-model-classification-01

Abstract:
    YANG became de facto standard language for data modeling in the
    industry.  More and more groups uses YANG to create protocol and
    service models, both for configuration and operational models.
    Currently there is a lack of consistent terminology to categorize
    those models.  A consistent terminology would help models
    categorization, assist in the analysis the YANG data modeling effort
    in the IETF and in the industry, and facilitate the YANG-related
    discussions between different groups.

                                                                                   


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.

The IETF Secretariat

.




--------------070204000002030509050305
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 7bit

<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Dear all,<br>
    <br>
    We would appreciate your review on this new draft version.<br>
    <br>
    Regards, Benoit<br>
    <div class="moz-forward-container"><br>
      <br>
      -------- Forwarded Message --------
      <table class="moz-email-headers-table" border="0" cellpadding="0"
        cellspacing="0">
        <tbody>
          <tr>
            <th align="RIGHT" nowrap="nowrap" valign="BASELINE">Subject:
            </th>
            <td>New Version Notification for
              draft-bogdanovic-netmod-yang-model-classification-01.txt</td>
          </tr>
          <tr>
            <th align="RIGHT" nowrap="nowrap" valign="BASELINE">Date: </th>
            <td>Mon, 9 Mar 2015 15:46:05 -0700</td>
          </tr>
          <tr>
            <th align="RIGHT" nowrap="nowrap" valign="BASELINE">From: </th>
            <td><a class="moz-txt-link-abbreviated" href="mailto:internet-drafts@ietf.org">internet-drafts@ietf.org</a></td>
          </tr>
          <tr>
            <th align="RIGHT" nowrap="nowrap" valign="BASELINE">To: </th>
            <td>Dean Bogdanovic <a class="moz-txt-link-rfc2396E" href="mailto:deanb@juniper.net">&lt;deanb@juniper.net&gt;</a>, Dean
              Bogdanovic <a class="moz-txt-link-rfc2396E" href="mailto:deanb@juniper.net">&lt;deanb@juniper.net&gt;</a>, Benoit Claise
              <a class="moz-txt-link-rfc2396E" href="mailto:bclaise@cisco.com">&lt;bclaise@cisco.com&gt;</a>, Carl Moberg
              <a class="moz-txt-link-rfc2396E" href="mailto:camoberg@cisco.com">&lt;camoberg@cisco.com&gt;</a>, Carl Moberg
              <a class="moz-txt-link-rfc2396E" href="mailto:camoberg@cisco.com">&lt;camoberg@cisco.com&gt;</a>, Benoit Claise
              <a class="moz-txt-link-rfc2396E" href="mailto:bclaise@cisco.com">&lt;bclaise@cisco.com&gt;</a></td>
          </tr>
        </tbody>
      </table>
      <br>
      <br>
      <pre>A new version of I-D, draft-bogdanovic-netmod-yang-model-classification-01.txt
has been successfully submitted by Dean Bogdanovic and posted to the
IETF repository.

Name:		draft-bogdanovic-netmod-yang-model-classification
Revision:	01
Title:		YANG model classification
Document date:	2015-03-09
Group:		Individual Submission
Pages:		12
URL:            <a class="moz-txt-link-freetext" href="http://www.ietf.org/internet-drafts/draft-bogdanovic-netmod-yang-model-classification-01.txt">http://www.ietf.org/internet-drafts/draft-bogdanovic-netmod-yang-model-classification-01.txt</a>
Status:         <a class="moz-txt-link-freetext" href="https://datatracker.ietf.org/doc/draft-bogdanovic-netmod-yang-model-classification/">https://datatracker.ietf.org/doc/draft-bogdanovic-netmod-yang-model-classification/</a>
Htmlized:       <a class="moz-txt-link-freetext" href="http://tools.ietf.org/html/draft-bogdanovic-netmod-yang-model-classification-01">http://tools.ietf.org/html/draft-bogdanovic-netmod-yang-model-classification-01</a>
Diff:           <a class="moz-txt-link-freetext" href="http://www.ietf.org/rfcdiff?url2=draft-bogdanovic-netmod-yang-model-classification-01">http://www.ietf.org/rfcdiff?url2=draft-bogdanovic-netmod-yang-model-classification-01</a>

Abstract:
   YANG became de facto standard language for data modeling in the
   industry.  More and more groups uses YANG to create protocol and
   service models, both for configuration and operational models.
   Currently there is a lack of consistent terminology to categorize
   those models.  A consistent terminology would help models
   categorization, assist in the analysis the YANG data modeling effort
   in the IETF and in the industry, and facilitate the YANG-related
   discussions between different groups.

                                                                                  


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.

The IETF Secretariat

.

</pre>
      <br>
    </div>
    <br>
  </body>
</html>

--------------070204000002030509050305--


From nobody Thu Mar 12 18:18:47 2015
Return-Path: <jie.dong@huawei.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 CFDC61AC408 for <netmod@ietfa.amsl.com>; Thu, 12 Mar 2015 18:18:46 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.211
X-Spam-Level: 
X-Spam-Status: No, score=-4.211 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] 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 eOkx9HZQAt0Z for <netmod@ietfa.amsl.com>; Thu, 12 Mar 2015 18:18:45 -0700 (PDT)
Received: from lhrrgout.huawei.com (lhrrgout.huawei.com [194.213.3.17]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5073C1AC407 for <netmod@ietf.org>; Thu, 12 Mar 2015 18:18:44 -0700 (PDT)
Received: from 172.18.7.190 (EHLO lhreml403-hub.china.huawei.com) ([172.18.7.190]) by lhrrg01-dlp.huawei.com (MOS 4.3.7-GA FastPath queued) with ESMTP id BTO89834; Fri, 13 Mar 2015 01:18:42 +0000 (GMT)
Received: from NKGEML408-HUB.china.huawei.com (10.98.56.39) by lhreml403-hub.china.huawei.com (10.201.5.217) with Microsoft SMTP Server (TLS) id 14.3.158.1; Fri, 13 Mar 2015 01:18:42 +0000
Received: from NKGEML512-MBX.china.huawei.com ([169.254.7.106]) by nkgeml408-hub.china.huawei.com ([10.98.56.39]) with mapi id 14.03.0158.001; Fri, 13 Mar 2015 09:18:37 +0800
From: "Dongjie (Jimmy)" <jie.dong@huawei.com>
To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
Thread-Topic: [netmod] Inventory YANG model (entity-MIB)
Thread-Index: AQHQV/sWQ/8m3BSs+0WHTuyrX71fWp0OxN8AgAAQo4CAAARMAIAEor+ggAHR7wCAAVWLQP//uE6AgACn4HD//5BAAIADERIw
Date: Fri, 13 Mar 2015 01:18:37 +0000
Message-ID: <76CD132C3ADEF848BD84D028D243C9273385367E@nkgeml512-mbx.china.huawei.com>
References: <54F985E2.6020304@cisco.com> <20150306110536.GA73575@elstar.local> <54F997F5.8080500@cisco.com> <2D3BC67E-9B26-488E-BF4D-0FC899C3A8CA@lucidvision.com> <76CD132C3ADEF848BD84D028D243C92733850607@nkgeml512-mbx.china.huawei.com> <54FF05EE.2070607@cisco.com> <76CD132C3ADEF848BD84D028D243C927338526B1@nkgeml512-mbx.china.huawei.com> <20150311070131.GA8717@elstar.local> <76CD132C3ADEF848BD84D028D243C92733852AD5@nkgeml512-mbx.china.huawei.com> <20150311102224.GA9314@elstar.local>
In-Reply-To: <20150311102224.GA9314@elstar.local>
Accept-Language: en-US, zh-CN
Content-Language: zh-CN
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [10.111.97.131]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-CFilter-Loop: Reflected
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/bLOYHmXboMNADf2YzoCMRXgH-MU>
Cc: "i2rs-chairs@tools.ietf.org" <i2rs-chairs@tools.ietf.org>, "draft-dong-i2rs-network-inventory@tools.ietf.org" <draft-dong-i2rs-network-inventory@tools.ietf.org>, NETMOD Working Group <netmod@ietf.org>
Subject: Re: [netmod] Inventory YANG model (entity-MIB)
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: <http://www.ietf.org/mail-archive/web/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, 13 Mar 2015 01:18:47 -0000

Hi Juergen,=20

> -----Original Message-----
> From: Juergen Schoenwaelder [mailto:j.schoenwaelder@jacobs-university.de]
> Sent: Wednesday, March 11, 2015 6:22 PM
> To: Dongjie (Jimmy)
> Cc: Benoit Claise; Thomas D. Nadeau;
> draft-dong-i2rs-network-inventory@tools.ietf.org; i2rs-chairs@tools.ietf.=
org;
> NETMOD Working Group
> Subject: Re: [netmod] Inventory YANG model (entity-MIB)
>=20
> On Wed, Mar 11, 2015 at 09:43:21AM +0000, Dongjie (Jimmy) wrote:
>=20
> > As described in the -00 version of draft-dong-inventory, the "generic f=
eatures
> and capabilities" means the networking functions and services that the ne=
twork
> nodes and components can provide, e.g. IP unicast, multicast, ethernet br=
idging,
> mpls, traffic-engineering, etc. The set of the functions will be complete=
d in
> future revision. Our intention is to abstract those control plane indepen=
dent
> functions in this model, and let the protocol specific models to cover th=
e details
> of each protocol.
>=20
> I think this is not how we organize work in the IETF. If a device support=
s
> ethernet briding (for example), it will announce an ethernet bridging dat=
a model
> that is extending the generic interface data model with ethernet bridging
> specific configuration and state objects. This has already been done for =
IP and it
> follows the way the IETF previously organized MIB modules. This is also l=
argely
> how routing data models that are currently written are organized (a core
> routing data model plus routing protocol specific extensions).

Agree that for each network protocol or function, specific model is needed =
for the detailed states and configurations of that technology.=20

What the inventory model intends to cover is a summary of the capability se=
t that the networks nodes and components can support. Such summary informat=
ion may be helpful to the upper layers.

Best regards,
Jie

>=20
> /js
>=20
> --
> Juergen Schoenwaelder           Jacobs University Bremen gGmbH
> Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
> Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Thu Mar 12 18:24:43 2015
Return-Path: <jie.dong@huawei.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 D659C1AC415 for <netmod@ietfa.amsl.com>; Thu, 12 Mar 2015 18:24:41 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.211
X-Spam-Level: 
X-Spam-Status: No, score=-4.211 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] 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 0t-tNp3G_lNJ for <netmod@ietfa.amsl.com>; Thu, 12 Mar 2015 18:24:40 -0700 (PDT)
Received: from lhrrgout.huawei.com (lhrrgout.huawei.com [194.213.3.17]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id F39061AC3E8 for <netmod@ietf.org>; Thu, 12 Mar 2015 18:24:39 -0700 (PDT)
Received: from 172.18.7.190 (EHLO lhreml401-hub.china.huawei.com) ([172.18.7.190]) by lhrrg01-dlp.huawei.com (MOS 4.3.7-GA FastPath queued) with ESMTP id BTO90100; Fri, 13 Mar 2015 01:24:38 +0000 (GMT)
Received: from NKGEML408-HUB.china.huawei.com (10.98.56.39) by lhreml401-hub.china.huawei.com (10.201.5.240) with Microsoft SMTP Server (TLS) id 14.3.158.1; Fri, 13 Mar 2015 01:24:37 +0000
Received: from NKGEML512-MBX.china.huawei.com ([169.254.7.106]) by nkgeml408-hub.china.huawei.com ([10.98.56.39]) with mapi id 14.03.0158.001; Fri, 13 Mar 2015 09:24:34 +0800
From: "Dongjie (Jimmy)" <jie.dong@huawei.com>
To: Mahesh Jethanandani <mjethanandani@gmail.com>, Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
Thread-Topic: [netmod] Inventory YANG model (entity-MIB)
Thread-Index: AQHQV/sWQ/8m3BSs+0WHTuyrX71fWp0OxN8AgAAQo4CAAARMAIAEor+ggAHR7wCAAVWLQP//uE6AgACn4HD//5BAAIAAYpuAgAKwQyA=
Date: Fri, 13 Mar 2015 01:24:33 +0000
Message-ID: <76CD132C3ADEF848BD84D028D243C927338536A4@nkgeml512-mbx.china.huawei.com>
References: <54F985E2.6020304@cisco.com> <20150306110536.GA73575@elstar.local> <54F997F5.8080500@cisco.com> <2D3BC67E-9B26-488E-BF4D-0FC899C3A8CA@lucidvision.com> <76CD132C3ADEF848BD84D028D243C92733850607@nkgeml512-mbx.china.huawei.com> <54FF05EE.2070607@cisco.com> <76CD132C3ADEF848BD84D028D243C927338526B1@nkgeml512-mbx.china.huawei.com> <20150311070131.GA8717@elstar.local> <76CD132C3ADEF848BD84D028D243C92733852AD5@nkgeml512-mbx.china.huawei.com> <20150311102224.GA9314@elstar.local> <98F9C087-BF45-46DD-8DCF-A4E52F58D484@gmail.com>
In-Reply-To: <98F9C087-BF45-46DD-8DCF-A4E52F58D484@gmail.com>
Accept-Language: en-US, zh-CN
Content-Language: zh-CN
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [10.111.97.131]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-CFilter-Loop: Reflected
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/4jeQNIFllAmZB9pYpc9y7-8k5Lk>
Cc: "draft-dong-i2rs-network-inventory@tools.ietf.org" <draft-dong-i2rs-network-inventory@tools.ietf.org>, "i2rs-chairs@tools.ietf.org" <i2rs-chairs@tools.ietf.org>, NETMOD Working Group <netmod@ietf.org>
Subject: Re: [netmod] Inventory YANG model (entity-MIB)
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: <http://www.ietf.org/mail-archive/web/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, 13 Mar 2015 01:24:42 -0000

Hi Mahesh,=20

Agree that the detailed data model for Ethernet Bridging would belong to IE=
EE 802.1Q.

The inventory model just provide a summary of the functions and capabilitie=
s the network nodes and components can support, and Ethernet Bridging is ju=
st listed as one of the capabilities.

Best regards,
Jie

> -----Original Message-----
> From: Mahesh Jethanandani [mailto:mjethanandani@gmail.com]
> Sent: Thursday, March 12, 2015 12:15 AM
> To: Juergen Schoenwaelder
> Cc: Dongjie (Jimmy); i2rs-chairs@tools.ietf.org;
> draft-dong-i2rs-network-inventory@tools.ietf.org; NETMOD Working Group
> Subject: Re: [netmod] Inventory YANG model (entity-MIB)
>=20
> And I would suggest that Ethernet Bridging Model is something that needs =
to be
> modeled by IEEE 802.1Q WG, where I have just submitted a PAR for discussi=
on
> to develop just that.
>=20
> Mahesh Jethanandani
> mjethanandani@gmail.com
>=20
> > On Mar 11, 2015, at 11:22 AM, Juergen Schoenwaelder
> <j.schoenwaelder@jacobs-university.de> wrote:
> >
> >> On Wed, Mar 11, 2015 at 09:43:21AM +0000, Dongjie (Jimmy) wrote:
> >>
> >> As described in the -00 version of draft-dong-inventory, the "generic =
features
> and capabilities" means the networking functions and services that the ne=
twork
> nodes and components can provide, e.g. IP unicast, multicast, ethernet br=
idging,
> mpls, traffic-engineering, etc. The set of the functions will be complete=
d in
> future revision. Our intention is to abstract those control plane indepen=
dent
> functions in this model, and let the protocol specific models to cover th=
e details
> of each protocol.
> >
> > I think this is not how we organize work in the IETF. If a device
> > supports ethernet briding (for example), it will announce an ethernet
> > bridging data model that is extending the generic interface data model
> > with ethernet bridging specific configuration and state objects. This
> > has already been done for IP and it follows the way the IETF
> > previously organized MIB modules. This is also largely how routing
> > data models that are currently written are organized (a core routing
> > data model plus routing protocol specific extensions).
> >
> > I do not think that what you are describing fits into the scope of an
> > inventory data model given the way the IETF used partion work so far.
> >
> > /js
> >
> > --
> > Juergen Schoenwaelder           Jacobs University Bremen gGmbH
> > Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen |
> Germany
> > Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>
> >
> > _______________________________________________
> > netmod mailing list
> > netmod@ietf.org
> > https://www.ietf.org/mailman/listinfo/netmod


From nobody Thu Mar 12 23:46:37 2015
Return-Path: <j.schoenwaelder@jacobs-university.de>
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 6DA8C1A8A4A for <netmod@ietfa.amsl.com>; Thu, 12 Mar 2015 23:46:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.86
X-Spam-Level: 
X-Spam-Status: No, score=-3.86 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] 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 3E12qC4dce1L for <netmod@ietfa.amsl.com>; Thu, 12 Mar 2015 23:46:34 -0700 (PDT)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 634ED1A8A79 for <netmod@ietf.org>; Thu, 12 Mar 2015 23:46:33 -0700 (PDT)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id DEE932C7B; Fri, 13 Mar 2015 07:46:31 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.220]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id 6-feVwQX2urD; Fri, 13 Mar 2015 07:46:07 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS; Fri, 13 Mar 2015 07:46:31 +0100 (CET)
Received: from localhost (demetrius4.jacobs-university.de [212.201.44.49]) by hermes.jacobs-university.de (Postfix) with ESMTP id 507FB2004A; Fri, 13 Mar 2015 07:46:31 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius4.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id 84SG_q5i3OdY; Fri, 13 Mar 2015 07:46:31 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id 271042004E; Fri, 13 Mar 2015 07:46:29 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id E15303278DBB; Fri, 13 Mar 2015 07:46:26 +0100 (CET)
Date: Fri, 13 Mar 2015 07:46:26 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: "Dongjie (Jimmy)" <jie.dong@huawei.com>
Message-ID: <20150313064626.GA17106@elstar.local>
Mail-Followup-To: "Dongjie (Jimmy)" <jie.dong@huawei.com>, Mahesh Jethanandani <mjethanandani@gmail.com>, "i2rs-chairs@tools.ietf.org" <i2rs-chairs@tools.ietf.org>, "draft-dong-i2rs-network-inventory@tools.ietf.org" <draft-dong-i2rs-network-inventory@tools.ietf.org>,  NETMOD Working Group <netmod@ietf.org>
References: <54F997F5.8080500@cisco.com> <2D3BC67E-9B26-488E-BF4D-0FC899C3A8CA@lucidvision.com> <76CD132C3ADEF848BD84D028D243C92733850607@nkgeml512-mbx.china.huawei.com> <54FF05EE.2070607@cisco.com> <76CD132C3ADEF848BD84D028D243C927338526B1@nkgeml512-mbx.china.huawei.com> <20150311070131.GA8717@elstar.local> <76CD132C3ADEF848BD84D028D243C92733852AD5@nkgeml512-mbx.china.huawei.com> <20150311102224.GA9314@elstar.local> <98F9C087-BF45-46DD-8DCF-A4E52F58D484@gmail.com> <76CD132C3ADEF848BD84D028D243C927338536A4@nkgeml512-mbx.china.huawei.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <76CD132C3ADEF848BD84D028D243C927338536A4@nkgeml512-mbx.china.huawei.com>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/TJqGLc5Ih3NDVHoHk1UIyPjY4mc>
Cc: "draft-dong-i2rs-network-inventory@tools.ietf.org" <draft-dong-i2rs-network-inventory@tools.ietf.org>, "i2rs-chairs@tools.ietf.org" <i2rs-chairs@tools.ietf.org>, NETMOD Working Group <netmod@ietf.org>
Subject: Re: [netmod] Inventory YANG model (entity-MIB)
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
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: <http://www.ietf.org/mail-archive/web/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, 13 Mar 2015 06:46:36 -0000

On Fri, Mar 13, 2015 at 01:24:33AM +0000, Dongjie (Jimmy) wrote:
> Hi Mahesh, 
> 
> Agree that the detailed data model for Ethernet Bridging would belong to IEEE 802.1Q.
> 
> The inventory model just provide a summary of the functions and capabilities the network nodes and components can support, and Ethernet Bridging is just listed as one of the capabilities.
>

I do not see why summary information would be worth additional
complexity. The interface model tells a management application what
kind of interfaces there are. The data models announced by a device
tells a management application what it can work with.

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Fri Mar 13 00:34:35 2015
Return-Path: <j.schoenwaelder@jacobs-university.de>
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 102361A0389 for <netmod@ietfa.amsl.com>; Fri, 13 Mar 2015 00:34:34 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.86
X-Spam-Level: 
X-Spam-Status: No, score=-3.86 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] 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 n5zEf7PYeR5j for <netmod@ietfa.amsl.com>; Fri, 13 Mar 2015 00:34:32 -0700 (PDT)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1452A1A0385 for <netmod@ietf.org>; Fri, 13 Mar 2015 00:34:32 -0700 (PDT)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id CF2622EA1; Fri, 13 Mar 2015 08:34:30 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.220]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id N58FXH4FzMSO; Fri, 13 Mar 2015 08:34:04 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS; Fri, 13 Mar 2015 08:34:29 +0100 (CET)
Received: from localhost (demetrius2.jacobs-university.de [212.201.44.47]) by hermes.jacobs-university.de (Postfix) with ESMTP id 09D102004E; Fri, 13 Mar 2015 08:34:29 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius2.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id icMJxpIw0cT6; Fri, 13 Mar 2015 08:34:27 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id 710A72004A; Fri, 13 Mar 2015 08:34:27 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id 44A1C3278E65; Fri, 13 Mar 2015 08:34:26 +0100 (CET)
Date: Fri, 13 Mar 2015 08:34:24 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Benoit Claise <bclaise@cisco.com>
Message-ID: <20150313073423.GA17182@elstar.local>
Mail-Followup-To: Benoit Claise <bclaise@cisco.com>, NETMOD Working Group <netmod@ietf.org>
References: <20150309224605.8142.81816.idtracker@ietfa.amsl.com> <5501A722.5020402@cisco.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <5501A722.5020402@cisco.com>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/yOVPxLFtxyI7Gt_lMZKuoM0F4GA>
Cc: NETMOD Working Group <netmod@ietf.org>
Subject: Re: [netmod] New Version Notification for draft-bogdanovic-netmod-yang-model-classification-01.txt
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
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: <http://www.ietf.org/mail-archive/web/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, 13 Mar 2015 07:34:34 -0000

On Thu, Mar 12, 2015 at 03:48:02PM +0100, Benoit Claise wrote:
> Dear all,
> 
> We would appreciate your review on this new draft version.
>

Speaking as technical contributor...

- I am confused by section 3.2 which talks about differences between
  vendor models and standard models. It says: "Key difference between
  those two is what is implemented. Vendor device model will always
  describe what is implemented, which can ber more or even less then
  in standard model." This kind of implies that standard models do not
  describe what is implemented. If this is true, we should perhaps
  stop wasting our time. And I think the discussion of vendor model
  vs. standard model does not really belong into this section or does
  this only apply to NE (Network Element) YANG models?

- It would perhaps be a good idea if the document would clearly define
  terms (and maybe acronyms) that can be reused such as

  Network Element Model (NEM): ...

  Network Service Model (NSM): ...

  [...]

- The second dimension is a bit confusing for me because it seems to
  make multiple distinctions and perhaps this is really multiple
  dimensions merged into one. On the distinction standard
  vs. proprietary: It sounds like binary while I believe in reality it
  is a continuum. There is surely the dimension "who has change
  control and what are the procedures to make updates" but there is
  also the dimension "what became a pratically largely deployed
  model". (I find it interesting that ITU is mentioned, I would expect
  or hope that IEEE is going to produce YANG data models way earlier.)

- I find the classification in section 4 a bit confusing:

      Standard YANG Model
      Standard Extension YANG Model
      Proprietary Extension to Standard YANG Model
      Vendor Configuration Model
      Proprietary YANG Model

   What is the distinction between Vendor Configuration Model and
   Proprietary YANG Model - are they not the same? See also next item
   below...

   I am not sure whether it would be useful to classify the first two
   into three categories. We tend to have some:

   - Standard Core YANG Models (SCM) (e.g., interfaces),
   - Standard Technology Base YANG Models (STBM) that are technology
     specific extensions of core models (e.g., interface type specific
     models), and
   - Standard Technology Extension YANG Models (STEM) that are
     extensions of the basic technology specific models (that are
     usually added over time).

   Perhaps it is not worth distinguishing these but clearly building
   the core models is a rather complicated exercise since errors or
   limitations in the core models impact potentially many other
   models.

- The text in section 4.4 seems to be more about implementation
  aspects, e.g., how can a vendor support both proprietary and
  standard models or migrate from proprietary models to standard
  models or how to map standard and prorietary models to the
  underlying internal configuration model. I think this is a topic
  worthwhile to discuss somewhere but I do not think this belongs into
  the classification. The vendor internal model is an implementation
  concern, not a classification concern.

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Fri Mar 13 08:06:43 2015
Return-Path: <j.schoenwaelder@jacobs-university.de>
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 B2B931A8A56 for <netmod@ietfa.amsl.com>; Fri, 13 Mar 2015 08:06:41 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.86
X-Spam-Level: 
X-Spam-Status: No, score=-3.86 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] 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 JbN_-jcr-fng for <netmod@ietfa.amsl.com>; Fri, 13 Mar 2015 08:06:39 -0700 (PDT)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 84CF71A1B14 for <netmod@ietf.org>; Fri, 13 Mar 2015 08:06:39 -0700 (PDT)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id 211002EC4 for <netmod@ietf.org>; Fri, 13 Mar 2015 16:06:38 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.220]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id bX7WxOpdV25v for <netmod@ietf.org>; Fri, 13 Mar 2015 16:06:11 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS for <netmod@ietf.org>; Fri, 13 Mar 2015 16:06:37 +0100 (CET)
Received: from localhost (demetrius2.jacobs-university.de [212.201.44.47]) by hermes.jacobs-university.de (Postfix) with ESMTP id 6774F20050 for <netmod@ietf.org>; Fri, 13 Mar 2015 16:06:37 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius2.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id bA8ygHSiF0Zi; Fri, 13 Mar 2015 16:06:36 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id 9602C2004E; Fri, 13 Mar 2015 16:06:36 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id 5D3643279526; Fri, 13 Mar 2015 16:06:35 +0100 (CET)
Date: Fri, 13 Mar 2015 16:06:34 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: netmod@ietf.org
Message-ID: <20150313150634.GA18658@elstar.local>
Mail-Followup-To: netmod@ietf.org
References: <20150312143233.GA14539@elstar.local>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20150312143233.GA14539@elstar.local>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/f4zZAWsB27xUtfqURpOAIRn0tgs>
Subject: Re: [netmod] draft agenda for the upcoming ietf 92 meetings
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
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: <http://www.ietf.org/mail-archive/web/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, 13 Mar 2015 15:06:41 -0000

Hi,

we (the chairs plus Benoit) just our meeting preparation call and as
part of that we have modified the agenda a bit. We likely do not fill
the full morning on Monday with 'YANG Language and Infrastructure'
work and thus we will already start Monday to discuss some of the data
models. We will make sure that the data models relevant for routing
people remain scheduled for Tuesday (since Monday has a parallel OSPF
meeting). So please take note of the revised agenda:

http://www.ietf.org/proceedings/92/agenda/agenda-92-netmod

/js

On Thu, Mar 12, 2015 at 03:32:36PM +0100, Juergen Schoenwaelder wrote:
> Hi,
> 
> a draft agenda for the upcoming meetings in Dallas can be found here:
> 
> http://www.ietf.org/proceedings/92/agenda/agenda-92-netmod
> 
> Let us know if any changes should be made to the agenda.
> 
> /js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Fri Mar 13 09:09:13 2015
Return-Path: <xufeng.liu@ericsson.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 B786F1A8AB3 for <netmod@ietfa.amsl.com>; Fri, 13 Mar 2015 09:09:12 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.2
X-Spam-Level: 
X-Spam-Status: No, score=-4.2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001] 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 iLh7IJA2--Yn for <netmod@ietfa.amsl.com>; Fri, 13 Mar 2015 09:09:10 -0700 (PDT)
Received: from usevmg21.ericsson.net (usevmg21.ericsson.net [198.24.6.65]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0F8461A8AAF for <netmod@ietf.org>; Fri, 13 Mar 2015 09:09:10 -0700 (PDT)
X-AuditID: c6180641-f790b6d000004359-87-5502aa4f4d8b
Received: from EUSAAHC007.ericsson.se (Unknown_Domain [147.117.188.93]) by usevmg21.ericsson.net (Symantec Mail Security) with SMTP id 8D.F5.17241.F4AA2055; Fri, 13 Mar 2015 10:13:51 +0100 (CET)
Received: from EUSAAMB107.ericsson.se ([147.117.188.124]) by EUSAAHC007.ericsson.se ([147.117.188.93]) with mapi id 14.03.0210.002; Fri, 13 Mar 2015 12:09:07 -0400
From: Xufeng Liu <xufeng.liu@ericsson.com>
To: "netmod@ietf.org" <netmod@ietf.org>
Thread-Topic: YANG augmentation question
Thread-Index: AdBdp2unQYKinC5pSpKkRd7KwM/a9w==
Date: Fri, 13 Mar 2015 16:09:07 +0000
Message-ID: <AAB1CC9C17CBA440BDFA169056B93B9EB6D43F@eusaamb107.ericsson.se>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [147.117.188.10]
Content-Type: multipart/alternative; boundary="_000_AAB1CC9C17CBA440BDFA169056B93B9EB6D43Feusaamb107ericsso_"
MIME-Version: 1.0
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrGLMWRmVeSWpSXmKPExsUyuXRPrK7/KqZQgz1LdSzmX2xkdWD0WLLk J1MAYxSXTUpqTmZZapG+XQJXxq3G+ewFf2wqvh1Wb2D8atLFyMkhIWAi8f/+FVYIW0ziwr31 bF2MXBxCAkcYJbp+dDBBOMsZJW5sWwHkcHCwCWhJXH7qCNIgIqAuMXMnSAMnh7CAssS0Q8vY QUpEBDQkLkyMhSjRk2iacYoFJMwioCpx/Y8IiMkr4C1xfakySAUj0Nbvp9YwgdjMAuISt57M Z4K4RkBiyZ7zzBC2qMTLx/+grlSSmLT0HCtEfb7E55unwGp4BQQlTs58wjKBUWgWklGzkJTN QlIGEdeRWLD7ExuErS2xbOFrZhj7zIHHTMjiCxjZVzFylBanluWmGxluYgQG/DEJNscdjAs+ WR5iFOBgVOLhLZBiChViTSwrrsw9xCjNwaIkzlt25WCIkEB6YklqdmpqQWpRfFFpTmrxIUYm Dk6pBsb566a4HD7JLrJ5+swvG5ce4nBesDxxtWWeatemFee/l756vdV9+Ze5u/16js6oecP7 ToCbLdXpfXf26k9rDkrGLHu1cppGg6ftfsWAeZzTShSMfH9UqUwzj5p779PnwtfXnxg/7LFh Cj2WG+7czvpsbsadOpFOrZR/FvtmMH5V2hL0yeQDy+NjSizFGYmGWsxFxYkAvoWKS1kCAAA=
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/UkAhIchhS20tMDIuRorYUqu8ngE>
Subject: [netmod] YANG augmentation question
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: <http://www.ietf.org/mail-archive/web/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, 13 Mar 2015 16:09:12 -0000

--_000_AAB1CC9C17CBA440BDFA169056B93B9EB6D43Feusaamb107ericsso_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

During the discussion of YANG TE models, the following question was raised:

Let's say that there are three protocols: A, B, and C. A is the base protoc=
ol; B and C are extensions based on A.  If we describe them from inheritanc=
e perspective, A is the base class, while B and C are derived classes. In t=
his case, B is pretty much the same as A, with only ONE additional attribut=
e.

When we model the 3 classes in YANG, the approaches can be:

1)      Model A as a base module, containing all attributes of class A. Mod=
el B and C as separate modules. A doubt was brought up because B has only o=
ne attribute. Does it make sense to build a module for it?

2)      Alternatively, we can create a module A-B, containing all attribute=
s of class A, plus the one attribute in class B. When we build module C, we=
 need to suppress the one attribute of class B, and augment with C's attrib=
utes. To do the suppression, do we have better ways other than "deviation" =
statement?
Your preference and comments are appreciated.

- Xufeng


--_000_AAB1CC9C17CBA440BDFA169056B93B9EB6D43Feusaamb107ericsso_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
	{mso-style-priority:34;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:10.0pt;
	margin-left:.5in;
	mso-add-space:auto;
	line-height:115%;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
p.MsoListParagraphCxSpFirst, li.MsoListParagraphCxSpFirst, div.MsoListParag=
raphCxSpFirst
	{mso-style-priority:34;
	mso-style-type:export-only;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:.5in;
	margin-bottom:.0001pt;
	mso-add-space:auto;
	line-height:115%;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
p.MsoListParagraphCxSpMiddle, li.MsoListParagraphCxSpMiddle, div.MsoListPar=
agraphCxSpMiddle
	{mso-style-priority:34;
	mso-style-type:export-only;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:.5in;
	margin-bottom:.0001pt;
	mso-add-space:auto;
	line-height:115%;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagra=
phCxSpLast
	{mso-style-priority:34;
	mso-style-type:export-only;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:10.0pt;
	margin-left:.5in;
	mso-add-space:auto;
	line-height:115%;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
span.EmailStyle17
	{mso-style-type:personal-compose;
	font-family:"Calibri","sans-serif";
	color:windowtext;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-family:"Calibri","sans-serif";}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
/* List Definitions */
@list l0
	{mso-list-id:1830053868;
	mso-list-type:hybrid;
	mso-list-template-ids:-310627746 67698705 67698713 67698715 67698703 67698=
713 67698715 67698703 67698713 67698715;}
@list l0:level1
	{mso-level-text:"%1\)";
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level2
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level3
	{mso-level-number-format:roman-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:right;
	text-indent:-9.0pt;}
@list l0:level4
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level5
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level6
	{mso-level-number-format:roman-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:right;
	text-indent:-9.0pt;}
@list l0:level7
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level8
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level9
	{mso-level-number-format:roman-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:right;
	text-indent:-9.0pt;}
ol
	{margin-bottom:0in;}
ul
	{margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-US" link=3D"blue" vlink=3D"purple">
<div class=3D"WordSection1">
<p class=3D"MsoNormal">During the discussion of YANG TE models, the followi=
ng question was raised:<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Let&#8217;s say that there are three protocols: A, B=
, and C. A is the base protocol; B and C are extensions based on A.&nbsp; I=
f we describe them from inheritance perspective, A is the base class, while=
 B and C are derived classes. In this case, B
 is pretty much the same as A, with only ONE additional attribute. <o:p></o=
:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">When we model the 3 classes in YANG, the approaches =
can be:<o:p></o:p></p>
<p class=3D"MsoListParagraphCxSpFirst" style=3D"text-indent:-.25in;mso-list=
:l0 level1 lfo1">
<![if !supportLists]><span style=3D"mso-list:Ignore">1)<span style=3D"font:=
7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>Model A as a base module, containing all attributes=
 of class A. Model B and C as separate modules. A doubt was brought up beca=
use B has only one attribute. Does it make sense to build a module for it?<=
o:p></o:p></p>
<p class=3D"MsoListParagraphCxSpLast" style=3D"text-indent:-.25in;mso-list:=
l0 level1 lfo1">
<![if !supportLists]><span style=3D"mso-list:Ignore">2)<span style=3D"font:=
7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>Alternatively, we can create a module A-B, containi=
ng all attributes of class A, plus the one attribute in class B. When we bu=
ild module C, we need to suppress the one attribute of class B, and augment=
 with C&#8217;s attributes. To do the
 suppression, do we have better ways other than &#8220;deviation&#8221; sta=
tement? <o:p></o:p></p>
<p class=3D"MsoNormal">Your preference and comments are appreciated.<o:p></=
o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">- Xufeng<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
</body>
</html>

--_000_AAB1CC9C17CBA440BDFA169056B93B9EB6D43Feusaamb107ericsso_--


From nobody Fri Mar 13 09:36:17 2015
Return-Path: <j.schoenwaelder@jacobs-university.de>
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 6952C1A0111 for <netmod@ietfa.amsl.com>; Fri, 13 Mar 2015 09:36:15 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.86
X-Spam-Level: 
X-Spam-Status: No, score=-3.86 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] 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 ESevYTDMBKsd for <netmod@ietfa.amsl.com>; Fri, 13 Mar 2015 09:36:13 -0700 (PDT)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3AF171A010F for <netmod@ietf.org>; Fri, 13 Mar 2015 09:36:13 -0700 (PDT)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id 0DC7B2EAF; Fri, 13 Mar 2015 17:36:12 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.220]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id fVIP55vitZe2; Fri, 13 Mar 2015 17:35:44 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS; Fri, 13 Mar 2015 17:36:11 +0100 (CET)
Received: from localhost (demetrius3.jacobs-university.de [212.201.44.48]) by hermes.jacobs-university.de (Postfix) with ESMTP id 14DE020054; Fri, 13 Mar 2015 17:36:11 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius3.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id hBRy4QdON_w1; Fri, 13 Mar 2015 17:36:09 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id 8035420050; Fri, 13 Mar 2015 17:36:09 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id 362943279835; Fri, 13 Mar 2015 17:36:07 +0100 (CET)
Date: Fri, 13 Mar 2015 17:36:07 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Xufeng Liu <xufeng.liu@ericsson.com>
Message-ID: <20150313163605.GA18991@elstar.local>
Mail-Followup-To: Xufeng Liu <xufeng.liu@ericsson.com>, "netmod@ietf.org" <netmod@ietf.org>
References: <AAB1CC9C17CBA440BDFA169056B93B9EB6D43F@eusaamb107.ericsson.se>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <AAB1CC9C17CBA440BDFA169056B93B9EB6D43F@eusaamb107.ericsson.se>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/BAOhO99XPVhSUX64uu1Nv8sgFjg>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] YANG augmentation question
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
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: <http://www.ietf.org/mail-archive/web/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, 13 Mar 2015 16:36:15 -0000

On Fri, Mar 13, 2015 at 04:09:07PM +0000, Xufeng Liu wrote:
> During the discussion of YANG TE models, the following question was raised:
> 
> Let's say that there are three protocols: A, B, and C. A is the base protocol; B and C are extensions based on A.  If we describe them from inheritance perspective, A is the base class, while B and C are derived classes. In this case, B is pretty much the same as A, with only ONE additional attribute.
> 
> When we model the 3 classes in YANG, the approaches can be:
> 
> 1)      Model A as a base module, containing all attributes of class A. Model B and C as separate modules. A doubt was brought up because B has only one attribute. Does it make sense to build a module for it?
> 
> 2)      Alternatively, we can create a module A-B, containing all attributes of class A, plus the one attribute in class B. When we build module C, we need to suppress the one attribute of class B, and augment with C's attributes. To do the suppression, do we have better ways other than "deviation" statement?
> Your preference and comments are appreciated.
>

If you were doing 2), you would make the B extension a feature. A box
implementing A and C would then not announce this feature.

It might also be worthwhile to look at the extended future of the
protocols. Could it be that B only has one attribute but perhaps many
more in the future? Or, alternatively, could it be that B is dying out
because everybody loves C? This might also impact the decision how you
group things together.

Note that a separate module is not a bit thing, just one more
namespace. If RFC processes are the concern, you can have modules A
and B in one RFC (but they might have different lifes in the future).

I would suggest to avoid a design that uses deviations. Deviations are
meant to document implementation specific deviations, they are not
meant to indicate that some object in another data model conflicts and
is thus eliminated via deviation. Features should be used instead to
make portions of a data model optional.

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Fri Mar 13 09:56:40 2015
Return-Path: <tnadeau@lucidvision.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 998F21A8961 for <netmod@ietfa.amsl.com>; Fri, 13 Mar 2015 09:56:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 2.794
X-Spam-Level: **
X-Spam-Status: No, score=2.794 tagged_above=-999 required=5 tests=[BAYES_20=-0.001, FH_RELAY_NODNS=1.451, HELO_MISMATCH_COM=0.553, RDNS_NONE=0.793, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=no
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 yOtXsnkqIWoS for <netmod@ietfa.amsl.com>; Fri, 13 Mar 2015 09:56:39 -0700 (PDT)
Received: from lucidvision.com (unknown [50.255.148.178]) by ietfa.amsl.com (Postfix) with ESMTP id E55B11A8913 for <netmod@ietf.org>; Fri, 13 Mar 2015 09:56:38 -0700 (PDT)
Received: from [192.168.1.120] (unknown [50.255.148.177]) by lucidvision.com (Postfix) with ESMTP id 6B40C305FFBC; Fri, 13 Mar 2015 12:56:38 -0400 (EDT)
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2070.6\))
From: Thomas D. Nadeau <tnadeau@lucidvision.com>
In-Reply-To: <YangModels/yang/pull/13/c78988705@github.com>
Date: Fri, 13 Mar 2015 12:56:36 -0400
Content-Transfer-Encoding: quoted-printable
Message-Id: <BBFDDF91-F15E-4688-8849-C9C5428CCF1C@lucidvision.com>
References: <YangModels/yang/pull/13@github.com> <YangModels/yang/pull/13/c78988705@github.com>
To: NETMOD Working Group <netmod@ietf.org>
X-Mailer: Apple Mail (2.2070.6)
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/A-9OeQtZfrdWVSSJBHp78AyrFo0>
Cc: draft-openconfig-netmod-model-structure@tools.ietf.org
Subject: [netmod] draft-openconfig-netmod-model-structure-00
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: <http://www.ietf.org/mail-archive/web/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, 13 Mar 2015 16:56:39 -0000

=09
	I wanted to kick off a discussion on this draft ahead of the =
meeting
as I have a few questions around this after reading the draft.

	First off, this kind of operational feedback is important for =
NETMOD=20
and the IETF's Yang modeling efforts to be grounded in reality. Thank =
you for
pushing this draft out.=20

	Second, my questions:

	1) how we address these issues in models that are already =
in-flight (or are RFCs) ?
=09
	2) should existing models hold and be retrofit ?

	3) the recommendations that are in this draft might be best =
pushed into a "best practices of design" draft much like we have for =
SNMP MIBs on the MIB Doctor's wiki.

	--Tom



From nobody Fri Mar 13 09:57:57 2015
Return-Path: <andy@yumaworks.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 C199E1A888C for <netmod@ietfa.amsl.com>; Fri, 13 Mar 2015 09:57:54 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.979
X-Spam-Level: 
X-Spam-Status: No, score=-1.979 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] 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 67hJaSSbKqeM for <netmod@ietfa.amsl.com>; Fri, 13 Mar 2015 09:57:50 -0700 (PDT)
Received: from mail-la0-f41.google.com (mail-la0-f41.google.com [209.85.215.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 94BC51A88A9 for <netmod@ietf.org>; Fri, 13 Mar 2015 09:57:45 -0700 (PDT)
Received: by lams18 with SMTP id s18so23904303lam.9 for <netmod@ietf.org>; Fri, 13 Mar 2015 09:57:44 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:content-type:content-transfer-encoding; bh=wGlsPcZ15IUo9oSGYe9aVdXE8e/ElawcdC4WHjesR6E=; b=Yc6SVDYRkjAR3E8Pxhcs+voB+QydGwPq7yO0XZYVN9uVdpn3Qz/O4JL940LHBDe8Tx Jy7RqzOH/pqlcpp3rnyXZQ5SFFM+51NSMnaRyabfPWIc0NEbh0oFaZ8S/l4wTiSK42yI Wnj9ynfOfVWD8p1HzXEa7ewpFofRPztx5ECHKjhEO7e2Y1TI8dhoxfb/5s6MMQVsk7yT AShePuYiuK+hKUkIb9zXSe+OgED1U3Wyknu0jSFvc6getAjfOgVDa/rApCVAIMq/7rng ICLWef3QNTnGBTDu59LECEtJLbinC4Jy14wiEvJBivjbotY9ApmMCtr4fIOyIzq2SE4M k9yA==
X-Gm-Message-State: ALoCoQmwvYGElvG04yZqScQuwhW8XlHc88JGIdNi8Buo4lTLa/sgS4UEv5JxlnXbMtaJzdJsmhKA
MIME-Version: 1.0
X-Received: by 10.112.8.68 with SMTP id p4mr43200989lba.37.1426265864047; Fri, 13 Mar 2015 09:57:44 -0700 (PDT)
Received: by 10.112.144.36 with HTTP; Fri, 13 Mar 2015 09:57:44 -0700 (PDT)
In-Reply-To: <20150313163605.GA18991@elstar.local>
References: <AAB1CC9C17CBA440BDFA169056B93B9EB6D43F@eusaamb107.ericsson.se> <20150313163605.GA18991@elstar.local>
Date: Fri, 13 Mar 2015 09:57:44 -0700
Message-ID: <CABCOCHSgK8YRWm_d2XButFC=RiafQ+GAhZECxkb869OnFetfug@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>,  Xufeng Liu <xufeng.liu@ericsson.com>, "netmod@ietf.org" <netmod@ietf.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/RBHfAtnpMAcsZNbRQTNmojxW1LM>
Subject: Re: [netmod] YANG augmentation question
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: <http://www.ietf.org/mail-archive/web/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, 13 Mar 2015 16:57:54 -0000

On Fri, Mar 13, 2015 at 9:36 AM, Juergen Schoenwaelder
<j.schoenwaelder@jacobs-university.de> wrote:
> On Fri, Mar 13, 2015 at 04:09:07PM +0000, Xufeng Liu wrote:
>> During the discussion of YANG TE models, the following question was rais=
ed:
>>
>> Let's say that there are three protocols: A, B, and C. A is the base pro=
tocol; B and C are extensions based on A.  If we describe them from inherit=
ance perspective, A is the base class, while B and C are derived classes. I=
n this case, B is pretty much the same as A, with only ONE additional attri=
bute.
>>
>> When we model the 3 classes in YANG, the approaches can be:
>>
>> 1)      Model A as a base module, containing all attributes of class A. =
Model B and C as separate modules. A doubt was brought up because B has onl=
y one attribute. Does it make sense to build a module for it?
>>
>> 2)      Alternatively, we can create a module A-B, containing all attrib=
utes of class A, plus the one attribute in class B. When we build module C,=
 we need to suppress the one attribute of class B, and augment with C's att=
ributes. To do the suppression, do we have better ways other than "deviatio=
n" statement?
>> Your preference and comments are appreciated.
>>
>
> If you were doing 2), you would make the B extension a feature. A box
> implementing A and C would then not announce this feature.
>
> It might also be worthwhile to look at the extended future of the
> protocols. Could it be that B only has one attribute but perhaps many
> more in the future? Or, alternatively, could it be that B is dying out
> because everybody loves C? This might also impact the decision how you
> group things together.
>
> Note that a separate module is not a bit thing, just one more
> namespace. If RFC processes are the concern, you can have modules A
> and B in one RFC (but they might have different lifes in the future).
>
> I would suggest to avoid a design that uses deviations. Deviations are
> meant to document implementation specific deviations, they are not
> meant to indicate that some object in another data model conflicts and
> is thus eliminated via deviation. Features should be used instead to
> make portions of a data model optional.
>

Agreed.

YANG conformance is directly coupled to the YANG module structure you selec=
t.
(Not that I am a fan of this approach).  You need to think
about the conformance requirements carefully when you
create YANG modules.


> /js


Andy

>
> --
> Juergen Schoenwaelder           Jacobs University Bremen gGmbH
> Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
> Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>
>
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod


From nobody Fri Mar 13 11:12:13 2015
Return-Path: <andy@yumaworks.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 75E0A1A19F8 for <netmod@ietfa.amsl.com>; Fri, 13 Mar 2015 11:12:12 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.979
X-Spam-Level: 
X-Spam-Status: No, score=-1.979 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] 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 bKxhMP_Wq605 for <netmod@ietfa.amsl.com>; Fri, 13 Mar 2015 11:12:10 -0700 (PDT)
Received: from mail-lb0-f182.google.com (mail-lb0-f182.google.com [209.85.217.182]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 48A231A0379 for <netmod@ietf.org>; Fri, 13 Mar 2015 11:12:10 -0700 (PDT)
Received: by lbiz12 with SMTP id z12so24589753lbi.5 for <netmod@ietf.org>; Fri, 13 Mar 2015 11:12:08 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=Mx7nP16KVWombNP4AmAPEz20zi95GTrS7usNlOdHAco=; b=gYPEuLp9yE0USY+gyl6zkepPLebXObE1sYI4nON6yu5ebIY3J/iR1+pvDyZiPd6ISQ apJtr9UiaM3ljFI5We6+TjVJJzYpK2xYJ5FMdsgvGNAk7I3Mrm2wztCb6BS9JVNn84Eo KivksAPZeiBSSMPznvau5DU1MDRxwUlLpChTPSeMLrjfGwXClpwlYDtNGRvwhKAXHVr0 kzjl10ifbb/EvD2TZ695dgVAydOqRxOrG5BDUbzHZJIJjtHfJRMZk+gmoN+U9cmZURlo FfkMHsOedvqqIoStG/3TXERIqp64uTNdAESGp8Cww1sqCfatVWVZmRmmkHbWTH4yeYva ZhyA==
X-Gm-Message-State: ALoCoQlreqxshTJHHMJxNtp00AYJglORVxVf/KtE2xC2fKoYW1vaijhzzCeqwy8MMyytkpsY3Bmp
MIME-Version: 1.0
X-Received: by 10.112.148.38 with SMTP id tp6mr44209349lbb.82.1426270328723; Fri, 13 Mar 2015 11:12:08 -0700 (PDT)
Received: by 10.112.144.36 with HTTP; Fri, 13 Mar 2015 11:12:08 -0700 (PDT)
In-Reply-To: <BBFDDF91-F15E-4688-8849-C9C5428CCF1C@lucidvision.com>
References: <YangModels/yang/pull/13@github.com> <YangModels/yang/pull/13/c78988705@github.com> <BBFDDF91-F15E-4688-8849-C9C5428CCF1C@lucidvision.com>
Date: Fri, 13 Mar 2015 11:12:08 -0700
Message-ID: <CABCOCHRJe2Ud0U0Y1G9TT9gxYQikLYEDhjY1LZ6AUpygjO=dOA@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: "Thomas D. Nadeau" <tnadeau@lucidvision.com>
Content-Type: text/plain; charset=UTF-8
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/9xfUffKb6pgjcrpmBKR0UnnfeZ4>
Cc: draft-openconfig-netmod-model-structure@tools.ietf.org, NETMOD Working Group <netmod@ietf.org>
Subject: Re: [netmod] draft-openconfig-netmod-model-structure-00
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: <http://www.ietf.org/mail-archive/web/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, 13 Mar 2015 18:12:12 -0000

Hi,

I did not see the value in defining a set of NP containers to use for
structuring other data.  When new modules are added, the location(s)
within the conceptual data tree should be considered,
but publishing modules that just contain NP containers
as place-holders should not be done.

Is there some assumption that discovery is improved by picking
containers in advance of any content for those containers?
Is there some assumption that the client does not
need to analyse the module advertisements from the server
if these containers are used for data organization?

IMO, we would be better off with a YANG conformance model
and classification system that used schema information rather
than ad-hoc NP-containers that happen to be named in
a way that connotes functional cohesion.


Andy


On Fri, Mar 13, 2015 at 9:56 AM, Thomas D. Nadeau
<tnadeau@lucidvision.com> wrote:
>
>         I wanted to kick off a discussion on this draft ahead of the meeting
> as I have a few questions around this after reading the draft.
>
>         First off, this kind of operational feedback is important for NETMOD
> and the IETF's Yang modeling efforts to be grounded in reality. Thank you for
> pushing this draft out.
>
>         Second, my questions:
>
>         1) how we address these issues in models that are already in-flight (or are RFCs) ?
>
>         2) should existing models hold and be retrofit ?
>
>         3) the recommendations that are in this draft might be best pushed into a "best practices of design" draft much like we have for SNMP MIBs on the MIB Doctor's wiki.
>
>         --Tom
>
>
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod


From nobody Sat Mar 14 21:14:25 2015
Return-Path: <aashaikh@google.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 A208A1A1A9C for <netmod@ietfa.amsl.com>; Sat, 14 Mar 2015 21:14:23 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.388
X-Spam-Level: 
X-Spam-Status: No, score=-1.388 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=no
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 kG6G4AdHB4h6 for <netmod@ietfa.amsl.com>; Sat, 14 Mar 2015 21:14:22 -0700 (PDT)
Received: from mail-oi0-x22d.google.com (mail-oi0-x22d.google.com [IPv6:2607:f8b0:4003:c06::22d]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id F16D01A001C for <netmod@ietf.org>; Sat, 14 Mar 2015 21:14:21 -0700 (PDT)
Received: by oiag65 with SMTP id g65so14362770oia.2 for <netmod@ietf.org>; Sat, 14 Mar 2015 21:14:21 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=oaBTi4tEFwtg2KOza0YTvQBN+bY/HqqwPKdRbmsjjGU=; b=ocM98eyEvVdw/o0TdykJHeE1d/9ejdAx7KkqVq+r5wQhktlh/JHTUgGXc5ds3AFnw/ hiJ1njBFzvLiO569TXJXx+uewn8lLAH4aN9c0mh9KkM7XC+qFerjRKztUcqx4nM81Q0t 0liHZnW49mSC1ICCiaapq5wBdoKtwPIeu7eG22q9pN7+MclkatlUO5RXKTmA0VxIlq9W MEv0B+G4VTj15UihV2/SgUFggEGg+YPO+pLRofm0EVDtPEHedzSu6M0ghyeAjTXU2WFP XFyinhMZtWJD7b8KgRDHTJ+JizIFWrwU+4zmrPwEJkO/u9/8PnXZCf3IkxDaInehMdhp ZQtg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=oaBTi4tEFwtg2KOza0YTvQBN+bY/HqqwPKdRbmsjjGU=; b=fq4s7LMoa0waQi9AadxntpfX3qnKJujF3Bp7vrt1AHSFXzLFuauaEVdtJOMneIQee8 DuS0fTTadIOj3AC6eAV65nRPBHlDROJOd6xYWC8w2kwPoHVcTu0P3zRuDLnawjMv3obw 0vrYwU3CsQQedIC4l0Q8ebV6xsE8kLF+nDU7oH2yAarNLK6mCaTTs51QlXYlOs6mtMPS iw+NmhKq74QwtfjOfBDZizGSB7us4r9dPtbLAGB50c3O3IATv+DFN7UjPUBcE7nammt8 i5DWDtg9x6RwG82oDvfgGumbY2Tc3JyFIMdiYtIT1g4L5Gt4oOOUGKOS9DNtTa2WvQuS oHnA==
X-Gm-Message-State: ALoCoQnwMwKmlOPtFvmBRtWQmT8EUKRNnmkHwrplG3+3hp2tUFkYxZngMhH7udDD8uy/6gwf5X8P
MIME-Version: 1.0
X-Received: by 10.60.46.66 with SMTP id t2mr7159795oem.60.1426392861191; Sat, 14 Mar 2015 21:14:21 -0700 (PDT)
Received: by 10.182.73.137 with HTTP; Sat, 14 Mar 2015 21:14:21 -0700 (PDT)
In-Reply-To: <BBFDDF91-F15E-4688-8849-C9C5428CCF1C@lucidvision.com>
References: <YangModels/yang/pull/13@github.com> <YangModels/yang/pull/13/c78988705@github.com> <BBFDDF91-F15E-4688-8849-C9C5428CCF1C@lucidvision.com>
Date: Sun, 15 Mar 2015 00:14:21 -0400
Message-ID: <CAJK7ZqJu-pMEifDwxHT0sOixrXzC2qhBy+Tj9YCd17P3fnfaFg@mail.gmail.com>
From: Anees Shaikh <aashaikh@google.com>
To: "Thomas D. Nadeau" <tnadeau@lucidvision.com>
Content-Type: multipart/alternative; boundary=089e01493cbccd5bac05114bf7db
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/VgwRe_2JrOM-4AtqvZmeWFkO6v4>
Cc: draft-openconfig-netmod-model-structure@tools.ietf.org, NETMOD Working Group <netmod@ietf.org>
Subject: Re: [netmod] draft-openconfig-netmod-model-structure-00
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: <http://www.ietf.org/mail-archive/web/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: Sun, 15 Mar 2015 04:14:23 -0000

--089e01493cbccd5bac05114bf7db
Content-Type: text/plain; charset=UTF-8

Tom, thanks for the comments.  The current draft develops a common
structure that composes existing models, but we don't specifically address
how existing models should be refactored to enable this.  We describe a few
options in the draft which would require (re)writing individual modules to
enable this sort of composition so that there is a well-known root.  We'd
certainly like to see existing in-flight models take this problem into
account, though I think we need to first define what a device tree looks
like.

I think part of the draft on how to write composable modules would be a
good fit for a best practices draft (along with parts of
draft-bierman-netmod-yang-conformance-04).  But we also would like to see a
common structure that enables clients to have well-defined paths to address
data for the entire device -- this latter part may be better as a separate
model.  Our current draft motivates and proposes a structure for models but
does not (yet) define an actual data model.

thanks.
-- Anees

On Fri, Mar 13, 2015 at 12:56 PM, Thomas D. Nadeau <tnadeau@lucidvision.com>
wrote:

>
>         I wanted to kick off a discussion on this draft ahead of the
> meeting
> as I have a few questions around this after reading the draft.
>
>         First off, this kind of operational feedback is important for
> NETMOD
> and the IETF's Yang modeling efforts to be grounded in reality. Thank you
> for
> pushing this draft out.
>
>         Second, my questions:
>
>         1) how we address these issues in models that are already
> in-flight (or are RFCs) ?
>
>         2) should existing models hold and be retrofit ?
>
>         3) the recommendations that are in this draft might be best pushed
> into a "best practices of design" draft much like we have for SNMP MIBs on
> the MIB Doctor's wiki.
>
>         --Tom
>
>
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod
>

--089e01493cbccd5bac05114bf7db
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Tom, thanks for the comments.=C2=A0 The current draft deve=
lops a common structure that composes existing models, but we don&#39;t spe=
cifically address how existing models should be refactored to enable this.=
=C2=A0 We describe a few options in the draft which would require (re)writi=
ng individual modules to enable this sort of composition so that there is a=
 well-known root.=C2=A0 We&#39;d certainly like to see existing in-flight m=
odels take this problem into account, though I think we need to first defin=
e what a device tree looks like.<div><br></div><div>I think part of the dra=
ft on how to write composable modules would be a good fit for a best practi=
ces draft (along with parts of draft-bierman-netmod-yang-conformance-04).=
=C2=A0 But we also would like to see a common structure that enables client=
s to have well-defined paths to address data for the entire device -- this =
latter part may be better as a separate model.=C2=A0 Our current draft moti=
vates and proposes a structure for models but does not (yet) define an actu=
al data model.</div><div><br></div><div>thanks.</div><div>-- Anees</div></d=
iv><div class=3D"gmail_extra"><br><div class=3D"gmail_quote">On Fri, Mar 13=
, 2015 at 12:56 PM, Thomas D. Nadeau <span dir=3D"ltr">&lt;<a href=3D"mailt=
o:tnadeau@lucidvision.com" target=3D"_blank">tnadeau@lucidvision.com</a>&gt=
;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 =
.8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 I wanted to kick off a discussion on this draft=
 ahead of the meeting<br>
as I have a few questions around this after reading the draft.<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 First off, this kind of operational feedback is=
 important for NETMOD<br>
and the IETF&#39;s Yang modeling efforts to be grounded in reality. Thank y=
ou for<br>
pushing this draft out.<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Second, my questions:<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 1) how we address these issues in models that a=
re already in-flight (or are RFCs) ?<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 2) should existing models hold and be retrofit =
?<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 3) the recommendations that are in this draft m=
ight be best pushed into a &quot;best practices of design&quot; draft much =
like we have for SNMP MIBs on the MIB Doctor&#39;s wiki.<br>
<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 --Tom<br>
<br>
<br>
_______________________________________________<br>
netmod mailing list<br>
<a href=3D"mailto:netmod@ietf.org">netmod@ietf.org</a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/netmod" target=3D"_blank">=
https://www.ietf.org/mailman/listinfo/netmod</a><br>
</blockquote></div><br></div>

--089e01493cbccd5bac05114bf7db--


From nobody Sat Mar 14 23:33:13 2015
Return-Path: <aashaikh@google.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 1D8AD1A1AD9 for <netmod@ietfa.amsl.com>; Sat, 14 Mar 2015 23:33:12 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.388
X-Spam-Level: 
X-Spam-Status: No, score=-1.388 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=no
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 XdiQrqyBxT0U for <netmod@ietfa.amsl.com>; Sat, 14 Mar 2015 23:33:10 -0700 (PDT)
Received: from mail-ob0-x22b.google.com (mail-ob0-x22b.google.com [IPv6:2607:f8b0:4003:c01::22b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 226781A1AB8 for <netmod@ietf.org>; Sat, 14 Mar 2015 23:33:10 -0700 (PDT)
Received: by obfv9 with SMTP id v9so15591080obf.2 for <netmod@ietf.org>; Sat, 14 Mar 2015 23:33:09 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=hHByEfA/s98BAn5miZRVuw3g/8u19pPwoJogLc7NHfs=; b=bZ8ks9OUG8M/m/PZ5HSkIGdvMAhyHDItiDfTQZNLc7+UAJJfQhUQbjkS1A9bm9Giid V106gW6wcSEk/a6AMOkwvpiWeC89FUAUTUxQVGQaX1TETokBeeM4DXOL1d5P9gbEzzy0 ss4DiVvnBN9abN/pf3xHfeaHNkPa8EPrM7CvsEQqKcJ6ofnZK0pxW44cSQhfmqDoUSU0 3Nf2wH9cN1ixgytvEKEGE2WxgeHt0LSKTlpbGg2+cbxPvVJ1WuvN6wpgxT4ENTftLCZS yl53TqsHeHtAESaBcFFu2CF5tF8m7CbIPreZt4uJB2edsoLMs7lCT4HssvzTxVdLw/A3 wHrw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=hHByEfA/s98BAn5miZRVuw3g/8u19pPwoJogLc7NHfs=; b=SNKOD2inEv3Bv+dN3j78M4Kwccf+8b6s/jZCxzVta2WIRiZahV1yPkVqd2FE8JeM75 rSh4jq2CZ2KOnGELWTqhbKQXVrLsycOzDq/ZoWcze6jv963FfyeIOeIjy8NY+4r3xOoP Tg0ppf1s42hFCL1suxvi1aAwJl3hc4/0PfljjfeP7k6H9sjpd9B7lMTIXQE2P/uEqqvI Mu2hj99gDzAAd8rRIwAE7lIS6gfs1Ihp9aJvmHOP/T8yGdv5JBDstZMyq74kbIFIXhI9 tsda8CKULzqgIsmjJGVcw1hIIIARcKJ928lasouXYuAivk/FMyUQu97G2aeqNhGMbrJv kIkg==
X-Gm-Message-State: ALoCoQlPsXyCte4h1rHn1QxBVhwK/QdL1uCuL/fU+13AtbHb2PIwgudQe6VQhj6zgehG9STByu0D
MIME-Version: 1.0
X-Received: by 10.202.13.203 with SMTP id 194mr6140100oin.130.1426401189484; Sat, 14 Mar 2015 23:33:09 -0700 (PDT)
Received: by 10.182.73.137 with HTTP; Sat, 14 Mar 2015 23:33:09 -0700 (PDT)
In-Reply-To: <CABCOCHRJe2Ud0U0Y1G9TT9gxYQikLYEDhjY1LZ6AUpygjO=dOA@mail.gmail.com>
References: <YangModels/yang/pull/13@github.com> <YangModels/yang/pull/13/c78988705@github.com> <BBFDDF91-F15E-4688-8849-C9C5428CCF1C@lucidvision.com> <CABCOCHRJe2Ud0U0Y1G9TT9gxYQikLYEDhjY1LZ6AUpygjO=dOA@mail.gmail.com>
Date: Sun, 15 Mar 2015 02:33:09 -0400
Message-ID: <CAJK7ZqJUWDYZFU1OBTuNR5j3UiwBH2Ht1y70TaY=URZrkdNZfA@mail.gmail.com>
From: Anees Shaikh <aashaikh@google.com>
To: Andy Bierman <andy@yumaworks.com>
Content-Type: multipart/alternative; boundary=001a113d149c3507d705114de864
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/3EKY_pWdAt0ZbfDPBHLkNMC2cOs>
Cc: NETMOD Working Group <netmod@ietf.org>, draft-openconfig-netmod-model-structure@tools.ietf.org
Subject: Re: [netmod] draft-openconfig-netmod-model-structure-00
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: <http://www.ietf.org/mail-archive/web/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: Sun, 15 Mar 2015 06:33:12 -0000

--001a113d149c3507d705114de864
Content-Type: text/plain; charset=UTF-8

Andy, my comments inline.   thanks.
-- Anees

On Fri, Mar 13, 2015 at 2:12 PM, Andy Bierman <andy@yumaworks.com> wrote:

>
> I did not see the value in defining a set of NP containers to use for
> structuring other data.  When new modules are added, the location(s)
> within the conceptual data tree should be considered,
> but publishing modules that just contain NP containers
> as place-holders should not be done.
>

As we say in the draft, the module described in the draft is not meant to
be an actual full device data model, but rather an illustration of a
structure for models to be composed into a usable whole.  A next step would
be to define the data model where models can be fit.


>
> Is there some assumption that discovery is improved by picking
> containers in advance of any content for those containers?
> Is there some assumption that the client does not
> need to analyse the module advertisements from the server
> if these containers are used for data organization?
>

Not necessarily -- discovery and advertisements are still important for a
client to understand capabilities of various individual models.  But the
premise here is that individual models, with no common way to use them
together aren't operationally useful for users who want to manage a
complete system.  And yes, I would say having a structure for the tree in
advance, and supported across implementations, is as important as defining
the content of individual models / containers.

>
> IMO, we would be better off with a YANG conformance model
> and classification system that used schema information rather
> than ad-hoc NP-containers that happen to be named in
> a way that connotes functional cohesion.
>

YANG conformance is important but does not address the problem of having a
common structure for the set of models comprising a managed device (for
example).  Section 4.1 in draft-bierman-netmod-yang-conformance-04 talks
about the related problem of defining revisions for a set of models -- we
are addressing the problem of what the structure of the set is.  Model
classification is also not addressing this problem -- the focus of that
work is on categorizing individual models. Our draft also discusses some
related issues of using a meta-model like this to categorize models
(functionally), and also build subsets of the device tree that are relevant
for different types of services.



> On Fri, Mar 13, 2015 at 9:56 AM, Thomas D. Nadeau
> <tnadeau@lucidvision.com> wrote:
> >
> >         I wanted to kick off a discussion on this draft ahead of the
> meeting
> > as I have a few questions around this after reading the draft.
> >
> >         First off, this kind of operational feedback is important for
> NETMOD
> > and the IETF's Yang modeling efforts to be grounded in reality. Thank
> you for
> > pushing this draft out.
> >
> >         Second, my questions:
> >
> >         1) how we address these issues in models that are already
> in-flight (or are RFCs) ?
> >
> >         2) should existing models hold and be retrofit ?
> >
> >         3) the recommendations that are in this draft might be best
> pushed into a "best practices of design" draft much like we have for SNMP
> MIBs on the MIB Doctor's wiki.
> >
> >         --Tom
> >
> >
> > _______________________________________________
> > netmod mailing list
> > netmod@ietf.org
> > https://www.ietf.org/mailman/listinfo/netmod
>
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod
>

--001a113d149c3507d705114de864
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Andy, my comments inline. =C2=A0 thanks.<div>-- Anees<br><=
div class=3D"gmail_extra"><br><div class=3D"gmail_quote">On Fri, Mar 13, 20=
15 at 2:12 PM, Andy Bierman <span dir=3D"ltr">&lt;<a href=3D"mailto:andy@yu=
maworks.com" target=3D"_blank">andy@yumaworks.com</a>&gt;</span> wrote:<br>=
<blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-=
left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;p=
adding-left:1ex"><br>
I did not see the value in defining a set of NP containers to use for<br>
structuring other data.=C2=A0 When new modules are added, the location(s)<b=
r>
within the conceptual data tree should be considered,<br>
but publishing modules that just contain NP containers<br>
as place-holders should not be done.<br></blockquote><div><br></div><div>As=
 we say in the draft, the module described in the draft is not meant to be =
an actual full device data model, but rather an illustration of a structure=
 for models to be composed into a usable whole.=C2=A0 A next step would be =
to define the data model where models can be fit.</div><div>=C2=A0</div><bl=
ockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-lef=
t-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padd=
ing-left:1ex">
<br>
Is there some assumption that discovery is improved by picking<br>
containers in advance of any content for those containers?<br>
Is there some assumption that the client does not<br>
need to analyse the module advertisements from the server<br>
if these containers are used for data organization?<br></blockquote><div><b=
r></div><div>Not necessarily -- discovery and advertisements are still impo=
rtant for a client to understand capabilities of various individual models.=
=C2=A0 But the premise here is that individual models, with no common way t=
o use them together aren&#39;t operationally useful for users who want to m=
anage a complete system.=C2=A0 And yes, I would say having a structure for =
the tree in advance, and supported across implementations, is as important =
as defining the content of individual models / containers.</div><blockquote=
 class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left-width:=
1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left=
:1ex">
<br>
IMO, we would be better off with a YANG conformance model<br>
and classification system that used schema information rather<br>
than ad-hoc NP-containers that happen to be named in<br>
a way that connotes functional cohesion.<br></blockquote><div><br></div><di=
v>YANG conformance is important but does not address the problem of having =
a common structure for the set of models comprising a managed device (for e=
xample).=C2=A0 Section 4.1 in=C2=A0draft-bierman-netmod-yang-conformance-04=
 talks about the related problem of defining revisions for a set of models =
-- we are addressing the problem of what the structure of the set is.=C2=A0=
 Model classification is also not addressing this problem -- the focus of t=
hat work is on categorizing individual models. Our draft also discusses som=
e related issues of using a meta-model like this to categorize models (func=
tionally), and also build subsets of the device tree that are relevant for =
different types of services.</div><div><br></div><div><br></div><blockquote=
 class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left-width:=
1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left=
:1ex"><div class=3D""><div class=3D"h5">
<br>
On Fri, Mar 13, 2015 at 9:56 AM, Thomas D. Nadeau<br>
&lt;<a href=3D"mailto:tnadeau@lucidvision.com">tnadeau@lucidvision.com</a>&=
gt; wrote:<br>
&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0I wanted to kick off a discussion on =
this draft ahead of the meeting<br>
&gt; as I have a few questions around this after reading the draft.<br>
&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0First off, this kind of operational f=
eedback is important for NETMOD<br>
&gt; and the IETF&#39;s Yang modeling efforts to be grounded in reality. Th=
ank you for<br>
&gt; pushing this draft out.<br>
&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Second, my questions:<br>
&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A01) how we address these issues in mod=
els that are already in-flight (or are RFCs) ?<br>
&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A02) should existing models hold and be=
 retrofit ?<br>
&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A03) the recommendations that are in th=
is draft might be best pushed into a &quot;best practices of design&quot; d=
raft much like we have for SNMP MIBs on the MIB Doctor&#39;s wiki.<br>
&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0--Tom<br>
&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; netmod mailing list<br>
&gt; <a href=3D"mailto:netmod@ietf.org">netmod@ietf.org</a><br>
&gt; <a href=3D"https://www.ietf.org/mailman/listinfo/netmod" target=3D"_bl=
ank">https://www.ietf.org/mailman/listinfo/netmod</a><br>
<br>
_______________________________________________<br>
netmod mailing list<br>
<a href=3D"mailto:netmod@ietf.org">netmod@ietf.org</a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/netmod" target=3D"_blank">=
https://www.ietf.org/mailman/listinfo/netmod</a><br>
</div></div></blockquote></div><br></div></div></div>

--001a113d149c3507d705114de864--


From nobody Sun Mar 15 02:12:00 2015
Return-Path: <j.schoenwaelder@jacobs-university.de>
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 BEE3D1A0058 for <netmod@ietfa.amsl.com>; Sun, 15 Mar 2015 02:11:58 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.86
X-Spam-Level: 
X-Spam-Status: No, score=-3.86 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] 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 KeU3LyMyEZG5 for <netmod@ietfa.amsl.com>; Sun, 15 Mar 2015 02:11:56 -0700 (PDT)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0C7B91A004D for <netmod@ietf.org>; Sun, 15 Mar 2015 02:11:55 -0700 (PDT)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id 7498A1ACE; Sun, 15 Mar 2015 10:11:53 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.220]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id mqR227OIArZn; Sun, 15 Mar 2015 10:11:15 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS; Sun, 15 Mar 2015 10:11:52 +0100 (CET)
Received: from localhost (demetrius1.jacobs-university.de [212.201.44.46]) by hermes.jacobs-university.de (Postfix) with ESMTP id B24C120053; Sun, 15 Mar 2015 10:11:52 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius1.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id 4EWwO9XPaZoD; Sun, 15 Mar 2015 10:11:51 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id 382942004E; Sun, 15 Mar 2015 10:11:50 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id 37AB3327A228; Sun, 15 Mar 2015 10:11:48 +0100 (CET)
Date: Sun, 15 Mar 2015 10:11:48 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Anees Shaikh <aashaikh@google.com>
Message-ID: <20150315091148.GA24497@elstar.local>
Mail-Followup-To: Anees Shaikh <aashaikh@google.com>, "Thomas D. Nadeau" <tnadeau@lucidvision.com>, draft-openconfig-netmod-model-structure@tools.ietf.org, NETMOD Working Group <netmod@ietf.org>
References: <YangModels/yang/pull/13@github.com> <YangModels/yang/pull/13/c78988705@github.com> <BBFDDF91-F15E-4688-8849-C9C5428CCF1C@lucidvision.com> <CAJK7ZqJu-pMEifDwxHT0sOixrXzC2qhBy+Tj9YCd17P3fnfaFg@mail.gmail.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <CAJK7ZqJu-pMEifDwxHT0sOixrXzC2qhBy+Tj9YCd17P3fnfaFg@mail.gmail.com>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/49e-D92_bt55SYrc8s0bhol7FiQ>
Cc: NETMOD Working Group <netmod@ietf.org>, draft-openconfig-netmod-model-structure@tools.ietf.org
Subject: Re: [netmod] draft-openconfig-netmod-model-structure-00
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
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: <http://www.ietf.org/mail-archive/web/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: Sun, 15 Mar 2015 09:11:58 -0000

On Sun, Mar 15, 2015 at 12:14:21AM -0400, Anees Shaikh wrote:
> Tom, thanks for the comments.  The current draft develops a common
> structure that composes existing models, but we don't specifically address
> how existing models should be refactored to enable this.  We describe a few
> options in the draft which would require (re)writing individual modules to
> enable this sort of composition so that there is a well-known root.  We'd
> certainly like to see existing in-flight models take this problem into
> account, though I think we need to first define what a device tree looks
> like.
>

Which problem is solved by having a common root such as 'device'?

Note, this is what we have today to terms of published RFCs (in the
order of publication date):

+-- netconf-state (RFC 6022)
+-- nacm (RFC 6536)
+-- ipfix (RFC 6728)
+-- system (RFC 7317)
+-- system-state (RFC 7317)
+-- interfaces (RFC 7223)
+-- interfaces-state (RFC 7223)
+-- snmp (RFC 7407)

There is a certain 'foo' (config true) and 'foo-state' (config false)
pattern of top-level nodes evolving, you see it in some I-Ds as well
(but surely not all of them).

When it comes to which models form together a meaningful unit, I
believe we are talking about explicit conformance statements like Andy
proposed a while back. Such 'package' statements require to cut
through the schema tree (or forrest), I do not think that finding a
single nesting structure will be sufficient to solve that problem.

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Sun Mar 15 09:10:28 2015
Return-Path: <andy@yumaworks.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 0C1631A1B30 for <netmod@ietfa.amsl.com>; Sun, 15 Mar 2015 09:10:28 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.979
X-Spam-Level: 
X-Spam-Status: No, score=-1.979 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] 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 7hDaQ5Gki-1l for <netmod@ietfa.amsl.com>; Sun, 15 Mar 2015 09:10:26 -0700 (PDT)
Received: from mail-la0-f54.google.com (mail-la0-f54.google.com [209.85.215.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 63F0A1A019B for <netmod@ietf.org>; Sun, 15 Mar 2015 09:10:26 -0700 (PDT)
Received: by lamx15 with SMTP id x15so22259275lam.3 for <netmod@ietf.org>; Sun, 15 Mar 2015 09:10:24 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:date:message-id:subject:from:to :content-type; bh=FR6ZdvvcRKJgk1Qyqm9GTxp5IYB0ceZxIUZ+LlKbmCo=; b=D5eL3DrQt/V8p60tqiHFMbV0KnovWmkBNEH7BsTP4ltDajdgjGFSacSmpR0v/3XmJB nnoGnlVaiwoEsHRSmSk2im+AB/D2/5oqiJ4E438mTJtlYuC85hyj7W0VRmd47lEee80/ 0s2VXj4JyB4XXKnn8rL6+7KlXTPMbIedv7dKpJHcT++IE1tbLZxspS3VY/CxrMLS9lYG llaP43kxtlnjGLsACslPbRHb1u2JhgNUiEVZNGJP7c5KLz28Ian8RCwJ2SPwjVFXdGeT /d5N2ZfqobHVtAH22Ift2O6dgX1s5K9mPY9YGbYz6ph9QKMgSCMpmzzTZ86IrmueCAVV eLKg==
X-Gm-Message-State: ALoCoQmt8saSyaPX3684qKbY6LL6VmukmmKIyh1eeOW0pyvJprl3jSTMjHAuyzvWNReE7B+x6gS/
MIME-Version: 1.0
X-Received: by 10.152.23.233 with SMTP id p9mr6850402laf.123.1426435824598; Sun, 15 Mar 2015 09:10:24 -0700 (PDT)
Received: by 10.112.144.36 with HTTP; Sun, 15 Mar 2015 09:10:24 -0700 (PDT)
Date: Sun, 15 Mar 2015 09:10:24 -0700
Message-ID: <CABCOCHSPMs-Ub882Becw=8=PQmW5V_A6wwVuBHvGMhR-dwASLQ@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: "netmod@ietf.org" <netmod@ietf.org>
Content-Type: text/plain; charset=UTF-8
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/DgsOqfcmz99QjuW_Qh1_HVqlFYc>
Subject: [netmod] YANG conformance for augments
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: <http://www.ietf.org/mail-archive/web/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: Sun, 15 Mar 2015 16:10:28 -0000

Hi,

Assume 3 simple YANG modules, aug1, aug2, and aug3.


module aug1 {
    namespace "http://yumaworks.com/ns/aug1";
    prefix "aug1";
    revision 2015-03-15;

    container A { }
    leaf L1 { type string; }
}

module aug2 {
    namespace "http://yumaworks.com/ns/aug2";
    prefix "aug2";
    import aug1 { prefix aug1; }
    revision 2015-03-15;

    augment /aug1:A {
      container B { }
    }
    leaf L2 { type string; }
     /* could also have aug2 augmenting more modules
      *  augment /foo:X {  .... }
      */
}

module aug3 {
    namespace "http://yumaworks.com/ns/aug3";
    prefix "aug3";
    import aug1 { prefix aug1; }
    import aug2 { prefix aug2; }
    revision 2015-03-15;

    augment /aug1:A/aug2:B {
      container C { }
    }
}


According to some proposals, a server MUST implement all of aug1
in order to advertise conformance to aug2 and aug3.  So in order for
module aug2 to extend the NP container /aug1:A it MUST implement
/aug1:L1 as well.

Module aug3 MUST implement all of module aug1 and aug2,
adding 'B' and 'C'.  If aug2 augmented another external module
like 'foo:/X' then aug3 MUST implement the entire foo module.

IMO the direct coupling of YANG module contents to conformance
is not a good idea.  The simplistic conformance rules for augment
(especially for NP containers) are not going to work.


Andy


From nobody Mon Mar 16 05:56:13 2015
Return-Path: <deanb@juniper.net>
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 CF0E41A871C for <netmod@ietfa.amsl.com>; Mon, 16 Mar 2015 05:56:12 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level: 
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] 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 AB5_D4NzLmOP for <netmod@ietfa.amsl.com>; Mon, 16 Mar 2015 05:56:07 -0700 (PDT)
Received: from na01-bl2-obe.outbound.protection.outlook.com (mail-bl2on0113.outbound.protection.outlook.com [65.55.169.113]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3108C1A8718 for <netmod@ietf.org>; Mon, 16 Mar 2015 05:56:06 -0700 (PDT)
Received: from CO1PR05MB427.namprd05.prod.outlook.com (10.141.74.12) by CO1PR05MB427.namprd05.prod.outlook.com (10.141.74.12) with Microsoft SMTP Server (TLS) id 15.1.99.14; Mon, 16 Mar 2015 12:56:04 +0000
Received: from CO1PR05MB427.namprd05.prod.outlook.com ([169.254.12.208]) by CO1PR05MB427.namprd05.prod.outlook.com ([169.254.12.208]) with mapi id 15.01.0099.004; Mon, 16 Mar 2015 12:56:04 +0000
From: Dean Bogdanovic <deanb@juniper.net>
To: Martin Bjorklund <mbj@tail-f.com>
Thread-Topic: [netmod] comments on draft-ietf-netmod-acl-model-02.txt
Thread-Index: AQHQWM04RH2vxtzCvkq5eEsnUNbRVJ0fH4IA
Date: Mon, 16 Mar 2015 12:56:03 +0000
Message-ID: <C454584D-712E-4DDF-BF08-3218113B496A@juniper.net>
References: <20150307.125254.282397849379655594.mbj@tail-f.com>
In-Reply-To: <20150307.125254.282397849379655594.mbj@tail-f.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-mailer: Apple Mail (2.1510)
x-originating-ip: [66.129.241.14]
authentication-results: tail-f.com; dkim=none (message not signed) header.d=none;
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CO1PR05MB427;
x-forefront-antispam-report: BMV:0; SFV:NSPM; SFS:(10019020)(24454002)(377454003)(33656002)(99286002)(40100003)(19617315012)(122556002)(106116001)(36756003)(50226001)(92566002)(76176999)(50986999)(62966003)(77156002)(57306001)(82746002)(19580395003)(19580405001)(230783001)(46102003)(102836002)(66066001)(2900100001)(2950100001)(86362001)(15975445007)(15395725005)(110136001)(83716003)(87936001)(2656002)(104396002); DIR:OUT; SFP:1102; SCL:1; SRVR:CO1PR05MB427; H:CO1PR05MB427.namprd05.prod.outlook.com; FPR:; SPF:None; MLV:sfv; LANG:en; 
x-microsoft-antispam-prvs: <CO1PR05MB427D2E9A3FEDF200DFF8E19A3020@CO1PR05MB427.namprd05.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:;
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(5001010)(5005006); SRVR:CO1PR05MB427; BCL:0; PCL:0; RULEID:; SRVR:CO1PR05MB427; 
x-forefront-prvs: 05177D47DC
Content-Type: multipart/alternative; boundary="_000_C454584D712E4DDFBF083218113B496Ajunipernet_"
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Mar 2015 12:56:03.8116 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR05MB427
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/TPWHOTHr53pvEveWrXPxHpQlKa8>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] comments on draft-ietf-netmod-acl-model-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: <http://www.ietf.org/mail-archive/web/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, 16 Mar 2015 12:56:13 -0000

--_000_C454584D712E4DDFBF083218113B496Ajunipernet_
Content-Type: text/plain; charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable

Martin,

Thank you for the review of the draft.
On Mar 7, 2015, at 6:52 AM, Martin Bjorklund <mbj@tail-f.com<mailto:mbj@tai=
l-f.com>> wrote:

Hi,

I have reviewed draft-ietf-netmod-acl-model-02.txt, and here are my
comments:

o The extensibility model is a bit unclear.

 - Each ACL has a type, an indentityref, which is good, but then this
   type is not really used in the model.  It is just a leaf with a
   value, with no indications of how it is supposed to be implemented
   or used by the operator.

   I would assume that the type restricts what can be configured in
   each ACE.  But that it is not the case, which means that you can
   set the ACL type to be "eth-access-control-list", but still
   configure an ACE with "source-ipv6-network" (for example).
instead of this
leaf access-control-list-type {
type access-control-list-type;
description "Type of access control list. When this type is not explicitely=
 specified, if vendor implementation permits, the access control
entires in the list can be mixed, by containing L2, L3 and L4 entries";
}

does this description answer your concern
description "It is recommended to have a access control list with uniform a=
ccess list entries, all of the same type. When this type is not explicitely=
 specified, if vendor implementation permits, the access control entries in=
 the list can be mixed, by containing L2, L3 and L4 entries";



   Also, the type is optional to configure, i.e., you can configure a
   type-less ACL.

   This makes it unclear what the type is supposed to do.

With typeless ACL we are future proofing the model, as you can put anything=
 in the model.

 - Section 3.1 says:

     The "ietf-packet-fields" modules can easily be extended to reuse
     definitions from other modules such as IPFIX [RFC5101] or
     migrate proprietary augmented module definitions into the
     standard module.

   I do not understand this.  What does "easily be extended" refer
   to?  The only way to extend this model - as it is written - is by
   publishing a new revision of the model (in a new RFC).

We have changed the wording and replaced extended with augmented, so it rea=
ds now

"...can be easily augmented."

   Also, I do not understand the last part of the sentence:

     migrate proprietary augmented module definitions into the
     standard module.

We have deleted the above part for clarity.

 - Section 4.2 says:

   The packet fields module defines the necessary groups for matching on
   fields in the packet including ethernet, ipv4, ipv6, transport layer
   fields and metadata.  These groupings can be augmented to include
   other proprietary matching criteria.

Thank you for catching our mistake. We meant choices within container match=
es can be augmented with new matching criteria.

   This is not correct.  A grouping cannot be augmented.

   This makes me wonder about the design where the generic module
   imports and uses definitions from the special module.  Wouldn't it
   make more sense to do it the other way around?  I.e., let the
   generic module be generic, and augment it from the specific
   module?

 - There are some "choices" in the model that I *think* are supposed
   to be augmented by type-specific parameters.  If this is correct,
   it should be described in the data model (in the description of
   the choice).
Please see above, as we have corrected the wording.



o In the container "access-control-list-oper-data" there is something
 called "targets".  This concept needs to be explained.  I *think*
 the idea is that if you want to apply an ACL to interface, you would
 augment /if:interfaces/if:interface with some parameter that points
 out the ACL (as is done in A.3), and then the implementation would
 keep track of this in the "targets" choice.  If this is correct, it
 needs to be explained.

Yes, your comment explains our intention and we have clarified this in the =
new version.

 Further, the model as it is defined is not complete.  Why is the
 special target "interface-name" defined in the standard model, but
 the other part (the augment of if:interface) is not defined in the
 standard?

We wanted to add operational data to the standard model and have an option =
to add choice of targets.  We will leave the empty container in the standar=
d model and move the target as example in the appendix


 Note that the "target" name is not visible in the encoding, so all
 you see if do a GET on an ACL is:

   access-list foo
     access-control-list-oper-data
       interface-name eth0

 It would be better with an explicit name that tells the operator
 that the interface is really the "target":

   access-list foo
     access-control-list-oper-data
       target
         interface-name eth0

 Or maybe "used-by"?


o Why did you change the name from "acl" to "access-control-list" in
 many places between -01 and -02?  I didn't see any comments about
 this on the ML.  The current naming is not consistent, and the names
 are pretty long.  For example, you have "access-control-list",
 "access-list", and "acl".

 I suggest the following names:

 module ietf-access-control-lists

 top-level container access-control-lists  (or just acls)

 then remove redundant "access-control-list-" prefix from the names
 to get something like this:

 module: ietf-access-control-lists
  +--rw access-control-lists
     +--rw acl* [name]
        +--rw name                   string
        +--rw type?                  access-control-list-type
        +--ro oper-data
        |  +--ro (targets)?
        |     +--:(interface-name)
        |        +--ro interface-name*   string
        +--rw access-list-entries
           +--rw ace* [name]
              +--rw name                             string
              +--rw matches

 In general, I think you should review all node names and make sure
 that they are good.  It is often very useful to try out a model in
 one of the generic implementations that are available, to get a
 feeling for the structure and names of the data model.

In general, we prefer to use fully extended names, instead of abbreviations=
 as it removes ambiguity and it is easier to read. Your suggestion is a pre=
tty good compromise, but would like to hear more from other people on this =
topic as well.



o Section 3.1

 The tree output is not idented correctly.  (maybe a tooling issue,
 since the lines are so long - if you change the names this issue
 will be solved automatically).

This is corrected.


o Section 4.1

  "ietf-acl" is the standard top level module for Access lists.  It has
  a container for "access-list" to store access list information.

This is corrected.

                   ^^^^^^^^^^^

 There is no such container.

  This
  container has information identifying the access list by a name("acl-
  name") and a list("access-list-entries") of rules associated with the
  "acl-name".

 There is no leaf called "acl-name".


o Change the prefix in the module to "acl" - "access-control-list" is
 too long.


o identity IP-access-control-list

 For constistency, change this name to "ip-access-control-list".
done

 The description says:

   description "IP-access control list is common name for layer 3 and 4 acc=
ess
   control list types. It is common among vendors to call 3-tupple or 5 tup=
ple
   IP access control lists";

 I do not understand the last sentence.

We rewrote this paragraph.


o Readability

 The YANG modules are inconsistently indented and formatted, which
 makes them difficult to read.  I suggest you run:

   pyang -f yang --yang-canonical ietf-acl.yang

 and use that output (possibly with some additional hand-editing,
 e.g., put back comments that this tool unfortunately doesn't handle
 properly).

We have updated the yang models according to your suggestion

 Do this for all modules in this draft.


o leaf upper-port

 The model has:

     leaf lower-port {
       type inet:port-number;
       mandatory true;
       description "Lower boundary.";
     }
     leaf upper-port {
       type inet:port-number;
       description "Upper boundary. If exist, upper port must be greater or
       equal to lower port.";
     }

 I suggest you add a must statement to cover this requirement:

     leaf upper-port {
       ...
       must ". >=3D ../lower-port" {
         error-message
           "The upper-port must be greater than or equal to lower-port";
       }
       ...
     }


thank you for suggestion and we did changed it accordingly
o descriptions

 Many statements need better description.  For example:

   leaf destination-mac-address-mask {
     type yang:mac-address;
     description "Mac addresses mask.";
   }

 This description doesn't explain anything.  In fact, it tells me
 *less* than the name of the node.

Descriptions have been improved.


o grouping access-control-list-transport-header-fields

 The way your model is designed, it is not possible to create any
 type of ACE without also specifiying source-port-range/lower-port
 and destination-port-range/lower-port.  I don't think this is
 intentional?  If not, make "source-port-range" and
 "destination-port-range" to presence containers.

the source-port-range and destination-port-range are containers within grou=
ping access-control-list-transport-header-fields in ietf-packet-fields.yang=
 . Are you saying if containers are used within groupings, they are forced?

o grouping timerange

 The name "absolute" is very generic.  I suggest you change the name
 "absolute" to "absolute-time" or something.

agree with you and changed it.

 Is absolute time ranges supported across implementations?  I would
 expect this to be optional to implement (i.e., add if-feature).

Juniper, Cisco, Brocade support absolute and periodic/relative time ranges =
and from our experience it is pretty common across implementations.

 Are such absolute time ranges commonly used by operators?  What
 about periodic times?
from my experience, for packet filtering it is mostly used with absolute ti=
mes. When filters are used for packet counting, then periodic/relative time=
s are preferred.

 Also, this grouping doesn't really belong to a module called
 "ietf-packet-headers".


o leaf active

     leaf active {
       type boolean;
       default "true";
       description

         "Specify the associated function

         active or inactive state when
         starts going into effect";

 I do not undertand the description.

description has been improved


o Section 5. Linux nftables

 The purpose of this section is unclear.  It would make sense w/ an
 example that shows how to map this model to nftables, but that is
 not what it is.

We took this suggestion and changed it in the next version


o Section 4.3

 These examples are very useful.  Unfortunately, the XML in the
 example has numerous errors.  I suggest you carefully fix it so that
 it matches the CLI snippet and the data model.

done


o Section 4.4

 This is an example, but it states:

   When only a lower-port presents, it
   represents a single port.

 This is an important piece of information that should go into the
 decription of lower-port/upper-port in the data model!

we changed it


o module std-ext-route-filter doesn't pass YANG validation.

fixed


o module newco-acl doesn't pass YANG validation.

fixed


o We should have some consistency in how we name our example modules.

 RFC 7223 uses:

   module ex-ethernet-bonding {
     namespace "http://example.com/ethernet-bonding";

 draft-ietf-netmod-routing-cfg-17 uses:

   module example-rip {
    namespace "http://example.com/rip";

 I suggest you use one of these as well (we should put this into the
 guidelines document!).

And we should fix the pyang compiler as well, as it puts out warning when w=
riting YANG as you mentioned above

pyang --ietf example-newco-acl.yang
example-newco-acl.yang:4: warning: IETF rule (RFC 6087: 4.8): namespace val=
ue should be "urn:ietf:params:xml:ns:yang:example-newco-acl"

 Specifically, an example called "std-..." might give people the
 wrong idea=85

I wanted to show how to do a standard extension, but the naming is ambiguou=
s.

 Also, remove the "contact" and "organization" statements from the
 example modules.

I would, but then have problems with compiling the yang module
pyang --ietf example-newco-acl.yang
example-newco-acl.yang:1: error: IETF rule (RFC 6087: 4.7): statement "modu=
le" must have a "contact" substatement
example-newco-acl.yang:1: error: IETF rule (RFC 6087: 4.7): statement "modu=
le" must have a "organization" substatement
example-newco-acl.yang:4: warning: IETF rule (RFC 6087: 4.8): namespace val=
ue should be "urn:ietf:params:xml:ns:yang:example-newco-acl"
example-newco-acl.yang:21: error: IETF rule (RFC 6087: 4.7): statement "rev=
ision" must have a "reference" substatement



o  In the example module, remove

   reference " ";

 It looks very weird and doesn't give you anything.

Please see above


/martin

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


--_000_C454584D712E4DDFBF083218113B496Ajunipernet_
Content-Type: text/html; charset="Windows-1252"
Content-ID: <634799E28F359E4B9D8B4D82E1004248@namprd05.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3DWindows-1=
252">
</head>
<body style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-lin=
e-break: after-white-space; ">
Martin,
<div><br>
</div>
<div>Thank you for the review of the draft.&nbsp;</div>
<div>
<div>
<div>On Mar 7, 2015, at 6:52 AM, Martin Bjorklund &lt;<a href=3D"mailto:mbj=
@tail-f.com">mbj@tail-f.com</a>&gt; wrote:</div>
<br class=3D"Apple-interchange-newline">
<blockquote type=3D"cite">Hi,<br>
<br>
I have reviewed draft-ietf-netmod-acl-model-02.txt, and here are my<br>
comments:<br>
<br>
o The extensibility model is a bit unclear.<br>
<br>
&nbsp;- Each ACL has a type, an indentityref, which is good, but then this<=
br>
&nbsp;&nbsp;&nbsp;type is not really used in the model. &nbsp;It is just a =
leaf with a<br>
&nbsp;&nbsp;&nbsp;value, with no indications of how it is supposed to be im=
plemented<br>
&nbsp;&nbsp;&nbsp;or used by the operator.<br>
<br>
&nbsp;&nbsp;&nbsp;I would assume that the type restricts what can be config=
ured in<br>
&nbsp;&nbsp;&nbsp;each ACE. &nbsp;But that it is not the case, which means =
that you can<br>
&nbsp;&nbsp;&nbsp;set the ACL type to be &quot;eth-access-control-list&quot=
;, but still<br>
&nbsp;&nbsp;&nbsp;configure an ACE with &quot;source-ipv6-network&quot; (fo=
r example).<br>
</blockquote>
<div>instead of this</div>
<div>leaf access-control-list-type {</div>
<div><span class=3D"Apple-tab-span" style=3D"white-space:pre"></span>type a=
ccess-control-list-type;</div>
<div><span class=3D"Apple-tab-span" style=3D"white-space:pre"></span>descri=
ption &quot;Type of access control list. When this type is not explicitely =
specified, if vendor implementation permits, the access control&nbsp;</div>
<div><span class=3D"Apple-tab-span" style=3D"white-space:pre"></span>entire=
s in the list can be mixed, by containing L2, L3 and L4 entries&quot;;</div=
>
<div>}</div>
<div>&nbsp;</div>
<div>does this description answer your concern</div>
<div>description &quot;It is recommended to have a access control list with=
 uniform access list entries, all of the same type. When this type is not e=
xplicitely specified, if vendor implementation permits, the access control =
entries in the list can be mixed, by
 containing L2, L3 and L4 entries&quot;;</div>
<div><br>
</div>
<div><br>
</div>
<blockquote type=3D"cite"><br>
&nbsp;&nbsp;&nbsp;Also, the type is optional to configure, i.e., you can co=
nfigure a<br>
&nbsp;&nbsp;&nbsp;type-less ACL.<br>
<br>
&nbsp;&nbsp;&nbsp;This makes it unclear what the type is supposed to do.<br=
>
</blockquote>
<div><br>
</div>
With typeless ACL we are future proofing the model, as you can put anything=
 in the model.
<blockquote type=3D"cite">
<div style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line=
-break: after-white-space; ">
<blockquote type=3D"cite">
<div style=3D"background-color: rgb(255, 255, 255); font-family: HelveticaN=
eue-Light, 'Helvetica Neue Light', 'Helvetica Neue', Helvetica, Arial, 'Luc=
ida Grande', sans-serif; font-size: 13px; position: static; z-index: auto; =
">
<div class=3D"yahoo_quoted">
<div style=3D"font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Aria=
l, 'Lucida Grande', sans-serif; font-size: 16px; ">
<blockquote style=3D"border-left-width: 2px; border-left-style: solid; bord=
er-left-color: rgb(16, 16, 255); margin-left: 5px; margin-top: 5px; padding=
-left: 5px; position: static; z-index: auto; ">
<div class=3D"y_msg_container">
<div id=3D"yiv0941976299">
<div class=3D"yiv0941976299yqt8020171554" id=3D"yiv0941976299yqt09165">
<div lang=3D"EN-US">
<div class=3D"yiv0941976299WordSection1">
<blockquote id=3D"yiv0941976299MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE" style=3D=
"border-style: none none none solid; border-left-width: 4.5pt; border-left-=
color: rgb(181, 196, 223); padding: 0in 0in 0in 4pt; margin-left: 3.75pt; m=
argin-right: 0in; position: static; z-index: auto; ">
<div></div>
</blockquote>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</blockquote>
</div>
</blockquote>
<blockquote type=3D"cite"><br>
&nbsp;- Section 3.1 says:<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The &quot;ietf-packet-fields&quot; modules ca=
n easily be extended to reuse<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;definitions from other modules such as IPFIX =
[RFC5101] or<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;migrate proprietary augmented module definiti=
ons into the<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;standard module.<br>
<br>
&nbsp;&nbsp;&nbsp;I do not understand this. &nbsp;What does &quot;easily be=
 extended&quot; refer<br>
&nbsp;&nbsp;&nbsp;to? &nbsp;The only way to extend this model - as it is wr=
itten - is by<br>
&nbsp;&nbsp;&nbsp;publishing a new revision of the model (in a new RFC).<br=
>
</blockquote>
<div><br>
</div>
We have changed the wording and replaced extended with augmented, so it rea=
ds now&nbsp;</div>
<div><br>
</div>
<div>&quot;...can be easily augmented.&quot;<br>
<blockquote type=3D"cite"><br>
&nbsp;&nbsp;&nbsp;Also, I do not understand the last part of the sentence:<=
br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;migrate proprietary augmented module definiti=
ons into the<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;standard module.<br>
</blockquote>
<div><br>
</div>
We have deleted the above part for clarity.<br>
<blockquote type=3D"cite"><br>
&nbsp;- Section 4.2 says:<br>
<br>
&nbsp;&nbsp;&nbsp;The packet fields module defines the necessary groups for=
 matching on<br>
&nbsp;&nbsp;&nbsp;fields in the packet including ethernet, ipv4, ipv6, tran=
sport layer<br>
&nbsp;&nbsp;&nbsp;fields and metadata. &nbsp;These groupings can be augment=
ed to include<br>
&nbsp;&nbsp;&nbsp;other proprietary matching criteria. <br>
</blockquote>
<div><br>
</div>
Thank you for catching our mistake. We meant choices within container match=
es can be augmented with new matching criteria.<font face=3D"Calibri, sans-=
serif" size=3D"4">&nbsp;</font></div>
<div>
<blockquote type=3D"cite"><br>
&nbsp;&nbsp;&nbsp;This is not correct. &nbsp;A grouping cannot be augmented=
.<br>
<br>
&nbsp;&nbsp;&nbsp;This makes me wonder about the design where the generic m=
odule<br>
&nbsp;&nbsp;&nbsp;imports and uses definitions from the special module. &nb=
sp;Wouldn't it<br>
&nbsp;&nbsp;&nbsp;make more sense to do it the other way around? &nbsp;I.e.=
, let the<br>
&nbsp;&nbsp;&nbsp;generic module be generic, and augment it from the specif=
ic<br>
&nbsp;&nbsp;&nbsp;module?<br>
<br>
&nbsp;- There are some &quot;choices&quot; in the model that I *think* are =
supposed<br>
&nbsp;&nbsp;&nbsp;to be augmented by type-specific parameters. &nbsp;If thi=
s is correct,<br>
&nbsp;&nbsp;&nbsp;it should be described in the data model (in the descript=
ion of<br>
&nbsp;&nbsp;&nbsp;the choice).<br>
</blockquote>
Please see above, as we have corrected the wording.</div>
<div><br>
<blockquote type=3D"cite"><br>
<br>
o In the container &quot;access-control-list-oper-data&quot; there is somet=
hing<br>
&nbsp;called &quot;targets&quot;. &nbsp;This concept needs to be explained.=
 &nbsp;I *think*<br>
&nbsp;the idea is that if you want to apply an ACL to interface, you would<=
br>
&nbsp;augment /if:interfaces/if:interface with some parameter that points<b=
r>
&nbsp;out the ACL (as is done in A.3), and then the implementation would<br=
>
&nbsp;keep track of this in the &quot;targets&quot; choice. &nbsp;If this i=
s correct, it<br>
&nbsp;needs to be explained.<br>
</blockquote>
<div><br>
</div>
Yes, your comment explains our intention and we have clarified this in the =
new version.<br>
<blockquote type=3D"cite"><br>
&nbsp;Further, the model as it is defined is not complete. &nbsp;Why is the=
<br>
&nbsp;special target &quot;interface-name&quot; defined in the standard mod=
el, but<br>
&nbsp;the other part (the augment of if:interface) is not defined in the<br=
>
&nbsp;standard?</blockquote>
<div><br>
</div>
<div>
<div>We wanted to add operational data to the standard model and have an op=
tion to add choice of targets. &nbsp;We will leave the empty container in t=
he standard model and move the target as example in the appendix</div>
<div><br>
</div>
</div>
<div><br>
</div>
<blockquote type=3D"cite">&nbsp;Note that the &quot;target&quot; name is no=
t visible in the encoding, so all<br>
&nbsp;you see if do a GET on an ACL is:<br>
<br>
&nbsp;&nbsp;&nbsp;access-list foo<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;access-control-list-oper-data<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;interface-name eth0<br>
<br>
&nbsp;It would be better with an explicit name that tells the operator<br>
&nbsp;that the interface is really the &quot;target&quot;:<br>
<br>
&nbsp;&nbsp;&nbsp;access-list foo<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;access-control-list-oper-data<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;interface-name eth0<b=
r>
<br>
&nbsp;Or maybe &quot;used-by&quot;?<br>
<br>
<br>
o Why did you change the name from &quot;acl&quot; to &quot;access-control-=
list&quot; in<br>
&nbsp;many places between -01 and -02? &nbsp;I didn't see any comments abou=
t<br>
&nbsp;this on the ML. &nbsp;The current naming is not consistent, and the n=
ames<br>
&nbsp;are pretty long. &nbsp;For example, you have &quot;access-control-lis=
t&quot;,<br>
&nbsp;&quot;access-list&quot;, and &quot;acl&quot;.<br>
<br>
&nbsp;I suggest the following names:<br>
<br>
&nbsp;module ietf-access-control-lists<br>
<br>
&nbsp;top-level container access-control-lists &nbsp;(or just acls)<br>
<br>
&nbsp;then remove redundant &quot;access-control-list-&quot; prefix from th=
e names<br>
&nbsp;to get something like this:<br>
<br>
&nbsp;module: ietf-access-control-lists<br>
&nbsp;&nbsp;&#43;--rw access-control-lists<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#43;--rw acl* [name]<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#43;--rw name &nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;string<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#43;--rw type? &nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;access-control-list-type<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#43;--ro oper-data<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| &nbsp;&#43;--ro (targets)=
?<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| &nbsp;&nbsp;&nbsp;&nbsp;&=
#43;--:(interface-name)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| &nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&#43;--ro interface-name* &nbsp;&nbsp;string<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#43;--rw access-list-entri=
es<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#43;--rw=
 ace* [name]<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&#43;--rw name &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&#43;--rw matches<br>
<br>
&nbsp;In general, I think you should review all node names and make sure<br=
>
&nbsp;that they are good. &nbsp;It is often very useful to try out a model =
in<br>
&nbsp;one of the generic implementations that are available, to get a<br>
&nbsp;feeling for the structure and names of the data model.<br>
</blockquote>
<div><br>
</div>
In general, we prefer to use fully extended names, instead of abbreviations=
 as it removes ambiguity and it is easier to read. Your suggestion is a pre=
tty good compromise, but would like to hear more from other people on this =
topic as well.</div>
<div><br>
<blockquote type=3D"cite"><br>
<br>
o Section 3.1<br>
<br>
&nbsp;The tree output is not idented correctly. &nbsp;(maybe a tooling issu=
e,<br>
&nbsp;since the lines are so long - if you change the names this issue<br>
&nbsp;will be solved automatically).<br>
</blockquote>
<div><br>
</div>
This is corrected.<br>
<blockquote type=3D"cite"><br>
<br>
o Section 4.1<br>
<br>
&nbsp;&nbsp;&quot;ietf-acl&quot; is the standard top level module for Acces=
s lists. &nbsp;It has<br>
&nbsp;&nbsp;a container for &quot;access-list&quot; to store access list in=
formation. <br>
</blockquote>
<div><br>
</div>
This is corrected.</div>
<div><br>
<blockquote type=3D"cite">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;^^^^^^^^^^=
^<br>
<br>
&nbsp;There is no such container.<br>
<br>
&nbsp;&nbsp;This<br>
&nbsp;&nbsp;container has information identifying the access list by a name=
(&quot;acl-<br>
&nbsp;&nbsp;name&quot;) and a list(&quot;access-list-entries&quot;) of rule=
s associated with the<br>
&nbsp;&nbsp;&quot;acl-name&quot;.<br>
<br>
&nbsp;There is no leaf called &quot;acl-name&quot;.<br>
<br>
<br>
o Change the prefix in the module to &quot;acl&quot; - &quot;access-control=
-list&quot; is<br>
&nbsp;too long. <br>
<br>
<br>
o identity IP-access-control-list<br>
<br>
&nbsp;For constistency, change this name to &quot;ip-access-control-list&qu=
ot;.</blockquote>
<div>done</div>
<blockquote type=3D"cite"><br>
&nbsp;The description says:<br>
<br>
&nbsp;&nbsp;&nbsp;description &quot;IP-access control list is common name f=
or layer 3 and 4 access<br>
&nbsp;&nbsp;&nbsp;control list types. It is common among vendors to call 3-=
tupple or 5 tupple<br>
&nbsp;&nbsp;&nbsp;IP access control lists&quot;;<br>
<br>
&nbsp;I do not understand the last sentence.<br>
</blockquote>
<div><br>
</div>
We rewrote this paragraph.<br>
<blockquote type=3D"cite"><br>
<br>
o Readability<br>
<br>
&nbsp;The YANG modules are inconsistently indented and formatted, which<br>
&nbsp;makes them difficult to read. &nbsp;I suggest you run:<br>
<br>
&nbsp;&nbsp;&nbsp;pyang -f yang --yang-canonical ietf-acl.yang<br>
<br>
&nbsp;and use that output (possibly with some additional hand-editing,<br>
&nbsp;e.g., put back comments that this tool unfortunately doesn't handle<b=
r>
&nbsp;properly).<br>
</blockquote>
<div><br>
</div>
We have updated the yang models according to your suggestion<br>
<blockquote type=3D"cite"><br>
&nbsp;Do this for all modules in this draft.<br>
<br>
<br>
o leaf upper-port<br>
<br>
&nbsp;The model has:<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;leaf lower-port {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type inet:port-number;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mandatory true;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;description &quot;Lower boundary.=
&quot;;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;leaf upper-port {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type inet:port-number;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;description &quot;Upper boundary.=
 If exist, upper port must be greater or<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;equal to lower port.&quot;;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>
<br>
&nbsp;I suggest you add a must statement to cover this requirement:<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;leaf upper-port {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;must &quot;. &gt;=3D ../lower-por=
t&quot; {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;error-message<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;The=
 upper-port must be greater than or equal to lower-port&quot;;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>
<br>
<br>
</blockquote>
thank you for suggestion and we did changed it accordingly<br>
<blockquote type=3D"cite">o descriptions<br>
<br>
&nbsp;Many statements need better description. &nbsp;For example:<br>
<br>
&nbsp;&nbsp;&nbsp;leaf destination-mac-address-mask {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type yang:mac-address;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;description &quot;Mac addresses mask.&quot;;<=
br>
&nbsp;&nbsp;&nbsp;}</blockquote>
<blockquote type=3D"cite"><br>
&nbsp;This description doesn't explain anything. &nbsp;In fact, it tells me=
<br>
&nbsp;*less* than the name of the node.<br>
</blockquote>
<div><br>
</div>
Descriptions have been improved.<br>
<blockquote type=3D"cite"><br>
<br>
o grouping access-control-list-transport-header-fields<br>
<br>
&nbsp;The way your model is designed, it is not possible to create any<br>
&nbsp;type of ACE without also specifiying source-port-range/lower-port<br>
&nbsp;and destination-port-range/lower-port. &nbsp;I don't think this is<br=
>
&nbsp;intentional? &nbsp;If not, make &quot;source-port-range&quot; and<br>
&nbsp;&quot;destination-port-range&quot; to presence containers.<br>
<br>
</blockquote>
the source-port-range and destination-port-range are containers within grou=
ping access-control-list-transport-header-fields in ietf-packet-fields.yang=
 . Are you saying if containers are used within groupings, they are forced?=
<br>
<blockquote type=3D"cite">
<div style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line=
-break: after-white-space; ">
<blockquote type=3D"cite">
<div style=3D"background-color: rgb(255, 255, 255); font-family: HelveticaN=
eue-Light, 'Helvetica Neue Light', 'Helvetica Neue', Helvetica, Arial, 'Luc=
ida Grande', sans-serif; font-size: 13px; position: static; z-index: auto; =
">
<div class=3D"yahoo_quoted">
<div style=3D"font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Aria=
l, 'Lucida Grande', sans-serif; font-size: 16px; ">
<blockquote style=3D"border-left-width: 2px; border-left-style: solid; bord=
er-left-color: rgb(16, 16, 255); margin-left: 5px; margin-top: 5px; padding=
-left: 5px; position: static; z-index: auto; ">
<div class=3D"y_msg_container">
<div id=3D"yiv0941976299">
<div class=3D"yiv0941976299yqt8020171554" id=3D"yiv0941976299yqt09165">
<div lang=3D"EN-US">
<div class=3D"yiv0941976299WordSection1">
<blockquote id=3D"yiv0941976299MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE" style=3D=
"border-style: none none none solid; border-left-width: 4.5pt; border-left-=
color: rgb(181, 196, 223); padding: 0in 0in 0in 4pt; margin-left: 3.75pt; m=
argin-right: 0in; position: static; z-index: auto; ">
<blockquote id=3D"yiv0941976299MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE" style=3D=
"margin-top: 5pt; margin-bottom: 5pt; ">
<blockquote style=3D"border-style: none none none solid; border-left-width:=
 4.5pt; border-left-color: rgb(181, 196, 223); padding: 0in 0in 0in 4pt; ma=
rgin-left: 3.75pt; margin-right: 0in; position: relative; z-index: 0; ">
<blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt; ">
<div></div>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</blockquote>
</div>
</blockquote>
<blockquote type=3D"cite"><br>
o grouping timerange<br>
<br>
&nbsp;The name &quot;absolute&quot; is very generic. &nbsp;I suggest you ch=
ange the name<br>
&nbsp;&quot;absolute&quot; to &quot;absolute-time&quot; or something.<br>
</blockquote>
<div><br>
</div>
agree with you and changed it.<br>
<blockquote type=3D"cite"><br>
&nbsp;Is absolute time ranges supported across implementations? &nbsp;I wou=
ld<br>
&nbsp;expect this to be optional to implement (i.e., add if-feature).<br>
</blockquote>
<div><br>
</div>
Juniper, Cisco, Brocade support absolute and periodic/relative time ranges =
and from our experience it is pretty common across implementations.<br>
<blockquote type=3D"cite">
<div style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line=
-break: after-white-space; ">
<blockquote type=3D"cite">
<div style=3D"background-color: rgb(255, 255, 255); font-family: HelveticaN=
eue-Light, 'Helvetica Neue Light', 'Helvetica Neue', Helvetica, Arial, 'Luc=
ida Grande', sans-serif; font-size: 13px; position: static; z-index: auto; =
">
<div class=3D"yahoo_quoted">
<div style=3D"font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Aria=
l, 'Lucida Grande', sans-serif; font-size: 16px; ">
<blockquote style=3D"border-left-width: 2px; border-left-style: solid; bord=
er-left-color: rgb(16, 16, 255); margin-left: 5px; margin-top: 5px; padding=
-left: 5px; position: static; z-index: auto; ">
<div class=3D"y_msg_container">
<div id=3D"yiv0941976299">
<div class=3D"yiv0941976299yqt8020171554" id=3D"yiv0941976299yqt09165">
<div lang=3D"EN-US">
<div class=3D"yiv0941976299WordSection1">
<blockquote id=3D"yiv0941976299MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE" style=3D=
"border-style: none none none solid; border-left-width: 4.5pt; border-left-=
color: rgb(181, 196, 223); padding: 0in 0in 0in 4pt; margin-left: 3.75pt; m=
argin-right: 0in; position: static; z-index: auto; ">
<blockquote id=3D"yiv0941976299MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE" style=3D=
"margin-top: 5pt; margin-bottom: 5pt; ">
<blockquote style=3D"border-style: none none none solid; border-left-width:=
 4.5pt; border-left-color: rgb(181, 196, 223); padding: 0in 0in 0in 4pt; ma=
rgin-left: 3.75pt; margin-right: 0in; position: relative; z-index: 0; ">
<blockquote style=3D"margin-top: 5pt; margin-bottom: 5pt; ">
<div></div>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</blockquote>
</div>
</blockquote>
<blockquote type=3D"cite"><br>
&nbsp;Are such absolute time ranges commonly used by operators? &nbsp;What<=
br>
&nbsp;about periodic times?<br>
</blockquote>
from my experience, for packet filtering it is mostly used with absolute ti=
mes. When filters are used for packet counting, then periodic/relative time=
s are preferred.<br>
<blockquote type=3D"cite"><br>
&nbsp;Also, this grouping doesn't really belong to a module called<br>
&nbsp;&quot;ietf-packet-headers&quot;.<br>
<br>
<br>
o leaf active<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;leaf active {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type boolean;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default &quot;true&quot;;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;description<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;Specify the ass=
ociated function<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;active or inactive st=
ate when<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;starts going into eff=
ect&quot;;<br>
<br>
&nbsp;I do not undertand the description.<br>
</blockquote>
<div><br>
</div>
description has been improved<br>
<blockquote type=3D"cite"><br>
<br>
o Section 5. Linux nftables<br>
<br>
&nbsp;The purpose of this section is unclear. &nbsp;It would make sense w/ =
an<br>
&nbsp;example that shows how to map this model to nftables, but that is<br>
&nbsp;not what it is.<br>
</blockquote>
<div><br>
</div>
We took this suggestion and changed it in the next version<br>
<blockquote type=3D"cite"><br>
<br>
o Section 4.3<br>
<br>
&nbsp;These examples are very useful. &nbsp;Unfortunately, the XML in the<b=
r>
&nbsp;example has numerous errors. &nbsp;I suggest you carefully fix it so =
that<br>
&nbsp;it matches the CLI snippet and the data model.<br>
</blockquote>
<div><br>
</div>
done<br>
<blockquote type=3D"cite"><br>
<br>
o Section 4.4<br>
<br>
&nbsp;This is an example, but it states:<br>
<br>
&nbsp;&nbsp;&nbsp;When only a lower-port presents, it<br>
&nbsp;&nbsp;&nbsp;represents a single port.<br>
<br>
&nbsp;This is an important piece of information that should go into the<br>
&nbsp;decription of lower-port/upper-port in the data model!<br>
</blockquote>
<div><br>
</div>
we changed it<br>
<blockquote type=3D"cite"><br>
<br>
o module std-ext-route-filter doesn't pass YANG validation.<br>
</blockquote>
<div><br>
</div>
fixed<br>
<blockquote type=3D"cite"><br>
<br>
o module newco-acl doesn't pass YANG validation.<br>
</blockquote>
<div><br>
</div>
fixed<br>
<blockquote type=3D"cite"><br>
<br>
o We should have some consistency in how we name our example modules.<br>
<br>
&nbsp;RFC 7223 uses:<br>
<br>
&nbsp;&nbsp;&nbsp;module ex-ethernet-bonding {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;namespace &quot;<a href=3D"http://example.com=
/ethernet-bonding">http://example.com/ethernet-bonding</a>&quot;;<br>
<br>
&nbsp;draft-ietf-netmod-routing-cfg-17 uses:<br>
<br>
&nbsp;&nbsp;&nbsp;module example-rip {<br>
&nbsp;&nbsp;&nbsp;&nbsp;namespace &quot;<a href=3D"http://example.com/rip">=
http://example.com/rip</a>&quot;;<br>
<br>
&nbsp;I suggest you use one of these as well (we should put this into the<b=
r>
&nbsp;guidelines document!).<br>
</blockquote>
<div><br>
</div>
<div>And we should fix the pyang compiler as well, as it puts out warning w=
hen writing YANG as you mentioned above</div>
<div><br>
</div>
<div>
<div>pyang --ietf example-newco-acl.yang</div>
<div>example-newco-acl.yang:4: warning: IETF rule (RFC 6087: 4.8): namespac=
e value should be &quot;urn:ietf:params:xml:ns:yang:example-newco-acl&quot;=
</div>
</div>
<blockquote type=3D"cite"><br>
&nbsp;Specifically, an example called &quot;std-...&quot; might give people=
 the<br>
&nbsp;wrong idea=85</blockquote>
<div><br>
</div>
I wanted to show how to do a standard extension, but the naming is ambiguou=
s.&nbsp;<br>
<blockquote type=3D"cite"><br>
&nbsp;Also, remove the &quot;contact&quot; and &quot;organization&quot; sta=
tements from the<br>
&nbsp;example modules.<br>
</blockquote>
<div><br>
</div>
<div>I would, but then have problems with compiling the yang module</div>
<div>pyang --ietf example-newco-acl.yang</div>
<div>example-newco-acl.yang:1: error: IETF rule (RFC 6087: 4.7): statement =
&quot;module&quot; must have a &quot;contact&quot; substatement</div>
<div>example-newco-acl.yang:1: error: IETF rule (RFC 6087: 4.7): statement =
&quot;module&quot; must have a &quot;organization&quot; substatement</div>
<div>example-newco-acl.yang:4: warning: IETF rule (RFC 6087: 4.8): namespac=
e value should be &quot;urn:ietf:params:xml:ns:yang:example-newco-acl&quot;=
</div>
<div>example-newco-acl.yang:21: error: IETF rule (RFC 6087: 4.7): statement=
 &quot;revision&quot; must have a &quot;reference&quot; substatement</div>
</div>
<div><br>
<blockquote type=3D"cite"><br>
<br>
o &nbsp;In the example module, remove<br>
<br>
&nbsp;&nbsp;&nbsp;reference &quot; &quot;;<br>
<br>
&nbsp;It looks very weird and doesn't give you anything.<br>
</blockquote>
<div><br>
</div>
Please see above<br>
<blockquote type=3D"cite"><br>
<br>
/martin<br>
<br>
_______________________________________________<br>
netmod mailing list<br>
<a href=3D"mailto:netmod@ietf.org">netmod@ietf.org</a><br>
https://www.ietf.org/mailman/listinfo/netmod<br>
</blockquote>
</div>
<br>
</div>
</body>
</html>

--_000_C454584D712E4DDFBF083218113B496Ajunipernet_--


From nobody Mon Mar 16 08:45:08 2015
Return-Path: <nagrawal@Brocade.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 A8D481A879C for <netmod@ietfa.amsl.com>; Mon, 16 Mar 2015 08:45:07 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.266
X-Spam-Level: 
X-Spam-Status: No, score=-2.266 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, IP_NOT_FRIENDLY=0.334, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] 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 Wc20Xq7L0PN6 for <netmod@ietfa.amsl.com>; Mon, 16 Mar 2015 08:45:05 -0700 (PDT)
Received: from mx0a-000f0801.pphosted.com (mx0a-000f0801.pphosted.com [67.231.144.122]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 758CC1A8757 for <netmod@ietf.org>; Mon, 16 Mar 2015 08:45:05 -0700 (PDT)
Received: from pps.filterd (m0000542.ppops.net [127.0.0.1]) by mx0a-000f0801.pphosted.com (8.14.7/8.14.7) with SMTP id t2GAUlUx016046 for <netmod@ietf.org>; Mon, 16 Mar 2015 08:45:03 -0700
Received: from hq1wp-exchub02.corp.brocade.com ([144.49.131.13]) by mx0a-000f0801.pphosted.com with ESMTP id 1t4j2ne19u-1 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NOT) for <netmod@ietf.org>; Mon, 16 Mar 2015 08:45:02 -0700
Received: from BRMWP-EXCHUB01.corp.brocade.com (172.16.186.99) by HQ1WP-EXCHUB02.corp.brocade.com (10.70.38.101) with Microsoft SMTP Server (TLS) id 14.3.123.3; Mon, 16 Mar 2015 08:44:57 -0700
Received: from BRMWP-EXMB11.corp.brocade.com (172.16.59.77) by BRMWP-EXCHUB01.corp.brocade.com (172.16.186.99) with Microsoft SMTP Server (TLS) id 14.3.123.3; Mon, 16 Mar 2015 09:44:52 -0600
Received: from BRMWP-EXMB11.corp.brocade.com (172.16.59.77) by BRMWP-EXMB11.corp.brocade.com (172.16.59.77) with Microsoft SMTP Server (TLS) id 15.0.1044.25; Mon, 16 Mar 2015 09:44:51 -0600
Received: from BRMWP-EXMB11.corp.brocade.com ([fe80::39a0:e6f2:6a5c:18a9]) by BRMWP-EXMB11.corp.brocade.com ([fe80::39a0:e6f2:6a5c:18a9%23]) with mapi id 15.00.1044.021; Mon, 16 Mar 2015 09:44:51 -0600
From: Navin Agrawal <nagrawal@Brocade.COM>
To: "netmod@ietf.org" <netmod@ietf.org>
Thread-Topic: Few errors/typo in RFC 6021
Thread-Index: AdBf/uo/DZ3IB6yeSbiEYsvVkIgD3w==
Date: Mon, 16 Mar 2015 15:44:50 +0000
Message-ID: <ac67d5fab7dd4b9c9b41c693ec55f4e8@BRMWP-EXMB11.corp.brocade.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.72.16.36]
Content-Type: multipart/alternative; boundary="_000_ac67d5fab7dd4b9c9b41c693ec55f4e8BRMWPEXMB11corpbrocadec_"
MIME-Version: 1.0
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:5.13.68, 1.0.33,  0.0.0000 definitions=2015-03-05_07:2015-03-05,2015-03-05,1970-01-01 signatures=0
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 suspectscore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=7.0.1-1402240000 definitions=main-1503050223
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/TK1H-h07wanNO3nyGcgIdmydgyU>
Subject: [netmod] Few errors/typo in RFC 6021
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: <http://www.ietf.org/mail-archive/web/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, 16 Mar 2015 15:45:07 -0000

--_000_ac67d5fab7dd4b9c9b41c693ec55f4e8BRMWPEXMB11corpbrocadec_
Content-Type: text/plain; charset="us-ascii"

Hello All,

I am new to yang and stuff. However, while browsing through the above RFC, I thought typedef for ip-version needs few corrections.

------------------------------------------------------------------------
  /*** collection of types related to protocol fields ***/

  typedef ip-version {
    type enumeration {
      enum unknown {
        value "0";
        description
         "An unknown or unspecified version of the Internet
          protocol.";
      }
      enum ipv4 {
        value "1";
        description
         "The IPv4 protocol as defined in RFC 791.";
      }
      enum ipv6 {
        value "2";
        description
         "The IPv6 protocol as defined in RFC 2460.";
      }
    }
    description
     "This value represents the version of the IP protocol.

      In the value set and its semantics, this type is equivalent
      to the InetVersion textual convention of the SMIv2.";
    reference
     "RFC  791: Internet Protocol
      RFC 2460: Internet Protocol, Version 6 (IPv6) Specification
      RFC 4001: Textual Conventions for Internet Network Addresses";
  }
------------------------------------------------------------------------


1.  Values "1" and "2": The values specified here should match with correct version values (i.e. 4 and 6 for ipv4 and ipv6 respectively).

2.  Also as RFC intends to refer to IP version and *not* the IP address type, the following text should be removed too.

a.  Text "In the value set and its semantics,..."

b.  Reference to RFC 4001


BR/Navin


--_000_ac67d5fab7dd4b9c9b41c693ec55f4e8BRMWPEXMB11corpbrocadec_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:#0563C1;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:#954F72;
	text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
	{mso-style-priority:34;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:.5in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
span.EmailStyle17
	{mso-style-type:personal-compose;
	font-family:"Courier New";
	color:windowtext;
	font-weight:normal;
	font-style:normal;
	text-decoration:none none;}
.MsoChpDefault
	{mso-style-type:export-only;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
/* List Definitions */
@list l0
	{mso-list-id:1627202106;
	mso-list-type:hybrid;
	mso-list-template-ids:236073274 67698703 67698713 67698715 67698703 676987=
13 67698715 67698703 67698713 67698715;}
@list l0:level1
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level2
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level3
	{mso-level-number-format:roman-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:right;
	text-indent:-9.0pt;}
@list l0:level4
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level5
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level6
	{mso-level-number-format:roman-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:right;
	text-indent:-9.0pt;}
@list l0:level7
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level8
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level9
	{mso-level-number-format:roman-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:right;
	text-indent:-9.0pt;}
ol
	{margin-bottom:0in;}
ul
	{margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-US" link=3D"#0563C1" vlink=3D"#954F72">
<div class=3D"WordSection1">
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;">=
Hello All,<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;">=
<o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;">=
I am new to yang and stuff. However, while browsing through the above RFC, =
I thought typedef for ip-version needs few corrections.<o:p></o:p></span></=
p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;">=
<o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;">=
------------------------------------------------------------------------<o:=
p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;">=
&nbsp; /*** collection of types related to protocol fields ***/<o:p></o:p><=
/span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;">=
<o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;">=
&nbsp; typedef ip-version {<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;">=
&nbsp;&nbsp;&nbsp; type enumeration {<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;">=
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;enum unknown {<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;">=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; value &quot;0&quot;;<o:p></o:p><=
/span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;">=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; description<o:p></o:p></span></p=
>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;">=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;An unknown or unspec=
ified version of the Internet<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;">=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; protocol.&quot;;<o:p=
></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;">=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;">=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; enum ipv4 {<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;">=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; value <span style=3D"background:=
yellow;mso-highlight:yellow">
&quot;1&quot;</span>;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;">=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; description<o:p></o:p></span></p=
>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;">=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;The IPv4 protocol as=
 defined in RFC 791.&quot;;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;">=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;">=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; enum ipv6 {<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;">=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; value <span style=3D"background:=
yellow;mso-highlight:yellow">
&quot;2&quot;</span>;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;">=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; description<o:p></o:p></span></p=
>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;">=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;The IPv6 protocol as=
 defined in RFC 2460.&quot;;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;">=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;">=
&nbsp;&nbsp;&nbsp; } <o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;">=
&nbsp;&nbsp;&nbsp;&nbsp;description<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;">=
&nbsp;&nbsp;&nbsp;&nbsp; &quot;This value represents the version of the IP =
protocol.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;">=
<o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;">=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style=3D"background:yellow;mso-highlig=
ht:yellow">
In the value set and its semantics, this type is equivalent<o:p></o:p></spa=
n></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;;b=
ackground:yellow;mso-highlight:yellow">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; to th=
e InetVersion textual convention of the SMIv2.&quot;;</span><span style=3D"=
font-family:&quot;Courier New&quot;"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;">=
&nbsp;&nbsp;&nbsp; reference<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;">=
&nbsp;&nbsp;&nbsp;&nbsp; &quot;RFC&nbsp; 791: Internet Protocol<o:p></o:p><=
/span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;">=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RFC 2460: Internet Protocol, Version 6 (IPv6=
) Specification<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;">=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style=3D"background:yellow;mso-highlig=
ht:yellow">
RFC 4001: Textual Conventions for Internet Network Addresses&quot;;</span><=
o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;">=
&nbsp; }<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;">=
------------------------------------------------------------------------<o:=
p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;">=
<o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in;mso-list:l0 level=
1 lfo1"><![if !supportLists]><span style=3D"font-family:&quot;Courier New&q=
uot;"><span style=3D"mso-list:Ignore">1.<span style=3D"font:7.0pt &quot;Tim=
es New Roman&quot;">&nbsp;
</span></span></span><![endif]><span style=3D"font-family:&quot;Courier New=
&quot;">Values &#8220;1&#8221; and &#8220;2&#8221;:
</span><span style=3D"font-family:&quot;Courier New&quot;">The values speci=
fied here should match with correct version values (i.e. 4 and 6 for ipv4 a=
nd ipv6 respectively).</span><span style=3D"font-family:&quot;Courier New&q=
uot;"><o:p></o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"text-indent:-.25in;mso-list:l0 level=
1 lfo1"><![if !supportLists]><span style=3D"font-family:&quot;Courier New&q=
uot;"><span style=3D"mso-list:Ignore">2.<span style=3D"font:7.0pt &quot;Tim=
es New Roman&quot;">&nbsp;
</span></span></span><![endif]><span style=3D"font-family:&quot;Courier New=
&quot;">Also as RFC intends to refer to IP version and *<b>not</b>* the IP =
address type, the following text should be removed too.</span><span style=
=3D"font-family:&quot;Courier New&quot;"><o:p></o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:1.0in;text-indent:-.25in=
;mso-list:l0 level2 lfo1">
<![if !supportLists]><span style=3D"font-family:&quot;Courier New&quot;"><s=
pan style=3D"mso-list:Ignore">a.<span style=3D"font:7.0pt &quot;Times New R=
oman&quot;">&nbsp;
</span></span></span><![endif]><span style=3D"font-family:&quot;Courier New=
&quot;">Text &#8220;In the value set and its semantics,&#8230;&#8221;</span=
><span style=3D"font-family:&quot;Courier New&quot;"><o:p></o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:1.0in;text-indent:-.25in=
;mso-list:l0 level2 lfo1">
<![if !supportLists]><span style=3D"font-family:&quot;Courier New&quot;"><s=
pan style=3D"mso-list:Ignore">b.<span style=3D"font:7.0pt &quot;Times New R=
oman&quot;">&nbsp;
</span></span></span><![endif]><span style=3D"font-family:&quot;Courier New=
&quot;">Reference to RFC 4001</span><span style=3D"font-family:&quot;Courie=
r New&quot;"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;">=
<o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;">=
<o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;">=
BR/Navin<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-family:&quot;Courier New&quot;">=
<o:p>&nbsp;</o:p></span></p>
</div>
</body>
</html>

--_000_ac67d5fab7dd4b9c9b41c693ec55f4e8BRMWPEXMB11corpbrocadec_--


From nobody Mon Mar 16 09:26:13 2015
Return-Path: <j.schoenwaelder@jacobs-university.de>
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 4B3C31A8898 for <netmod@ietfa.amsl.com>; Mon, 16 Mar 2015 09:26:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.86
X-Spam-Level: 
X-Spam-Status: No, score=-3.86 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] 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 ZrcKdPO8bOoJ for <netmod@ietfa.amsl.com>; Mon, 16 Mar 2015 09:26:06 -0700 (PDT)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 801561A8897 for <netmod@ietf.org>; Mon, 16 Mar 2015 09:26:06 -0700 (PDT)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id 52A4FF85; Mon, 16 Mar 2015 17:26:05 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.220]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id 0P3mn28Ptyz9; Mon, 16 Mar 2015 17:26:02 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS; Mon, 16 Mar 2015 17:26:04 +0100 (CET)
Received: from localhost (demetrius4.jacobs-university.de [212.201.44.49]) by hermes.jacobs-university.de (Postfix) with ESMTP id 6DC5F20054; Mon, 16 Mar 2015 17:26:04 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius4.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id Waj2kUlKz5II; Mon, 16 Mar 2015 17:26:04 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id 6DDDC20050; Mon, 16 Mar 2015 17:26:03 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id 35B79327AFFD; Mon, 16 Mar 2015 17:26:03 +0100 (CET)
Date: Mon, 16 Mar 2015 17:26:03 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Navin Agrawal <nagrawal@Brocade.COM>
Message-ID: <20150316162603.GA29347@elstar.local>
Mail-Followup-To: Navin Agrawal <nagrawal@Brocade.COM>, "netmod@ietf.org" <netmod@ietf.org>
References: <ac67d5fab7dd4b9c9b41c693ec55f4e8@BRMWP-EXMB11.corp.brocade.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <ac67d5fab7dd4b9c9b41c693ec55f4e8@BRMWP-EXMB11.corp.brocade.com>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/xVxIIKNrrfk287Y8avXcKnfDlTQ>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] Few errors/typo in RFC 6021
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
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: <http://www.ietf.org/mail-archive/web/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, 16 Mar 2015 16:26:11 -0000

On Mon, Mar 16, 2015 at 03:44:50PM +0000, Navin Agrawal wrote:
> Hello All,
> 
> I am new to yang and stuff. However, while browsing through the above RFC, I thought typedef for ip-version needs few corrections.
> 
> ------------------------------------------------------------------------
>   /*** collection of types related to protocol fields ***/
> 
>   typedef ip-version {
>     type enumeration {
>       enum unknown {
>         value "0";
>         description
>          "An unknown or unspecified version of the Internet
>           protocol.";
>       }
>       enum ipv4 {
>         value "1";
>         description
>          "The IPv4 protocol as defined in RFC 791.";
>       }
>       enum ipv6 {
>         value "2";
>         description
>          "The IPv6 protocol as defined in RFC 2460.";
>       }
>     }
>     description
>      "This value represents the version of the IP protocol.
> 
>       In the value set and its semantics, this type is equivalent
>       to the InetVersion textual convention of the SMIv2.";
>     reference
>      "RFC  791: Internet Protocol
>       RFC 2460: Internet Protocol, Version 6 (IPv6) Specification
>       RFC 4001: Textual Conventions for Internet Network Addresses";
>   }
> ------------------------------------------------------------------------
> 
> 
> 1.  Values "1" and "2": The values specified here should match with correct version values (i.e. 4 and 6 for ipv4 and ipv6 respectively).
> 
> 2.  Also as RFC intends to refer to IP version and *not* the IP address type, the following text should be removed too.
> 
> a.  Text "In the value set and its semantics,..."
> 
> b.  Reference to RFC 4001
> 

Being compatible to the equivalent SNMP definition was considered
important by the WG when this definition was written. Perhaps
InetVersion should have used 4 and 6 instead of 1 and 2 but its too
late for that.

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Tue Mar 17 05:29:37 2015
Return-Path: <xufeng.liu@ericsson.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 660A21A010C for <netmod@ietfa.amsl.com>; Tue, 17 Mar 2015 05:29:34 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.2
X-Spam-Level: 
X-Spam-Status: No, score=-4.2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001] 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 8jIK43agtLYz for <netmod@ietfa.amsl.com>; Tue, 17 Mar 2015 05:29:31 -0700 (PDT)
Received: from usevmg20.ericsson.net (usevmg20.ericsson.net [198.24.6.45]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 496061A008A for <netmod@ietf.org>; Tue, 17 Mar 2015 05:29:31 -0700 (PDT)
X-AuditID: c618062d-f79686d0000030a8-64-5507c8cbeacd
Received: from EUSAAHC002.ericsson.se (Unknown_Domain [147.117.188.78]) by usevmg20.ericsson.net (Symantec Mail Security) with SMTP id 5F.68.12456.BC8C7055; Tue, 17 Mar 2015 07:25:15 +0100 (CET)
Received: from EUSAAMB107.ericsson.se ([147.117.188.124]) by EUSAAHC002.ericsson.se ([147.117.188.78]) with mapi id 14.03.0210.002; Tue, 17 Mar 2015 08:29:28 -0400
From: Xufeng Liu <xufeng.liu@ericsson.com>
To: Andy Bierman <andy@yumaworks.com>, Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>, "netmod@ietf.org" <netmod@ietf.org>
Thread-Topic: [netmod] YANG augmentation question
Thread-Index: AdBgrgL3GXjOF0PvR+6F1s59O5j00g==
Date: Tue, 17 Mar 2015 12:29:28 +0000
Message-ID: <wgq68ie4enluh7rumubowt9p.1426595342521@email.android.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Content-Type: multipart/alternative; boundary="_000_wgq68ie4enluh7rumubowt9p1426595342521emailandroidcom_"
MIME-Version: 1.0
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrLLMWRmVeSWpSXmKPExsUyuXSPn+7pE+yhBkcWmFs8ODKL3eLqxp+M FvMvNrI6MHssWfKTyWPDAU+Plv6LLAHMUVw2Kak5mWWpRfp2CVwZ2xe9Yy2YFFXReOM3SwPj 1fAuRk4OCQETifaLNxghbDGJC/fWs3UxcnEICRxhlDjy9D4rhLOcUWLlnG/MXYwcHGwCWhKX nzqCxEUEuhglZjV9YgLpFhYwkHhw7D8biC0iYCixZud3dghbT2Lrot1gcRYBVYkd9w+B2bwC bhJXe/vBNjMCbf5+ag3YHGYBcYlbT+YzQVwkILFkz3lmCFtU4uXjf6wQNTkS/ae2sULMEZQ4 OfMJywRGwVlI2mchKZuFpGwW0AvMApoS63fpQ5QoSkzpfsgOYWtItM6ZC2VbS3Qd6mVBVrOA kWMVI0dpcWpZbrqRwSZGYHwck2DT3cG456XlIUYBDkYlHl4DDfZQIdbEsuLK3EOM0hwsSuK8 ix4cDBESSE8sSc1OTS1ILYovKs1JLT7EyMTBKdXAWNFza4PKMc8J7o+nlL1ZOXlhcaeR0Ou+ jIypXy9JMF26wHPsa0dkqq2teNJRtvNeqxwLdfR1e7L5bKfEN5rJnrPju/LTeMMUxxU+exYE /OG1/NMjzPJbjfO3i/dbr+dpmpmxIn72a3iajTUmzxEWS1xjlpfOLine6Li92UPwYWGs2Xzv rUuUWIozEg21mIuKEwEGLGcdcAIAAA==
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/qwNrjk4dJM1XPGXdQ-UnIu6ja4c>
Subject: Re: [netmod] YANG augmentation question
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: <http://www.ietf.org/mail-archive/web/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: Tue, 17 Mar 2015 12:29:34 -0000

--_000_wgq68ie4enluh7rumubowt9p1426595342521emailandroidcom_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

SGkgSnVlcmdlbiBhbmQgQW5keSwNClRuYW5rcyBmb3IgeW91ciB2YWx1YWJsZSBjb21tZW50cy4g
QWdyZWUgd2l0aCB3aGF0IHlvdSBzYWlkLg0KDQpCZXN0LA0KLSBYdWZlbmcNCg0KDQoNCi0tLS0t
LS0tIE9yaWdpbmFsIG1lc3NhZ2UgLS0tLS0tLS0NCkZyb206IEFuZHkgQmllcm1hbiA8YW5keUB5
dW1hd29ya3MuY29tPg0KRGF0ZTowMy8xMy8yMDE1IDEyOjU3IFBNIChHTVQtMDU6MDApDQpUbzog
SnVlcmdlbiBTY2hvZW53YWVsZGVyIDxqLnNjaG9lbndhZWxkZXJAamFjb2JzLXVuaXZlcnNpdHku
ZGU+LFh1ZmVuZyBMaXUgPHh1ZmVuZy5saXVAZXJpY3Nzb24uY29tPixuZXRtb2RAaWV0Zi5vcmcN
CkNjOg0KU3ViamVjdDogUmU6IFtuZXRtb2RdIFlBTkcgYXVnbWVudGF0aW9uIHF1ZXN0aW9uDQoN
Ck9uIEZyaSwgTWFyIDEzLCAyMDE1IGF0IDk6MzYgQU0sIEp1ZXJnZW4gU2Nob2Vud2FlbGRlcg0K
PGouc2Nob2Vud2FlbGRlckBqYWNvYnMtdW5pdmVyc2l0eS5kZT4gd3JvdGU6DQo+IE9uIEZyaSwg
TWFyIDEzLCAyMDE1IGF0IDA0OjA5OjA3UE0gKzAwMDAsIFh1ZmVuZyBMaXUgd3JvdGU6DQo+PiBE
dXJpbmcgdGhlIGRpc2N1c3Npb24gb2YgWUFORyBURSBtb2RlbHMsIHRoZSBmb2xsb3dpbmcgcXVl
c3Rpb24gd2FzIHJhaXNlZDoNCj4+DQo+PiBMZXQncyBzYXkgdGhhdCB0aGVyZSBhcmUgdGhyZWUg
cHJvdG9jb2xzOiBBLCBCLCBhbmQgQy4gQSBpcyB0aGUgYmFzZSBwcm90b2NvbDsgQiBhbmQgQyBh
cmUgZXh0ZW5zaW9ucyBiYXNlZCBvbiBBLiAgSWYgd2UgZGVzY3JpYmUgdGhlbSBmcm9tIGluaGVy
aXRhbmNlIHBlcnNwZWN0aXZlLCBBIGlzIHRoZSBiYXNlIGNsYXNzLCB3aGlsZSBCIGFuZCBDIGFy
ZSBkZXJpdmVkIGNsYXNzZXMuIEluIHRoaXMgY2FzZSwgQiBpcyBwcmV0dHkgbXVjaCB0aGUgc2Ft
ZSBhcyBBLCB3aXRoIG9ubHkgT05FIGFkZGl0aW9uYWwgYXR0cmlidXRlLg0KPj4NCj4+IFdoZW4g
d2UgbW9kZWwgdGhlIDMgY2xhc3NlcyBpbiBZQU5HLCB0aGUgYXBwcm9hY2hlcyBjYW4gYmU6DQo+
Pg0KPj4gMSkgICAgICBNb2RlbCBBIGFzIGEgYmFzZSBtb2R1bGUsIGNvbnRhaW5pbmcgYWxsIGF0
dHJpYnV0ZXMgb2YgY2xhc3MgQS4gTW9kZWwgQiBhbmQgQyBhcyBzZXBhcmF0ZSBtb2R1bGVzLiBB
IGRvdWJ0IHdhcyBicm91Z2h0IHVwIGJlY2F1c2UgQiBoYXMgb25seSBvbmUgYXR0cmlidXRlLiBE
b2VzIGl0IG1ha2Ugc2Vuc2UgdG8gYnVpbGQgYSBtb2R1bGUgZm9yIGl0Pw0KPj4NCj4+IDIpICAg
ICAgQWx0ZXJuYXRpdmVseSwgd2UgY2FuIGNyZWF0ZSBhIG1vZHVsZSBBLUIsIGNvbnRhaW5pbmcg
YWxsIGF0dHJpYnV0ZXMgb2YgY2xhc3MgQSwgcGx1cyB0aGUgb25lIGF0dHJpYnV0ZSBpbiBjbGFz
cyBCLiBXaGVuIHdlIGJ1aWxkIG1vZHVsZSBDLCB3ZSBuZWVkIHRvIHN1cHByZXNzIHRoZSBvbmUg
YXR0cmlidXRlIG9mIGNsYXNzIEIsIGFuZCBhdWdtZW50IHdpdGggQydzIGF0dHJpYnV0ZXMuIFRv
IGRvIHRoZSBzdXBwcmVzc2lvbiwgZG8gd2UgaGF2ZSBiZXR0ZXIgd2F5cyBvdGhlciB0aGFuICJk
ZXZpYXRpb24iIHN0YXRlbWVudD8NCj4+IFlvdXIgcHJlZmVyZW5jZSBhbmQgY29tbWVudHMgYXJl
IGFwcHJlY2lhdGVkLg0KPj4NCj4NCj4gSWYgeW91IHdlcmUgZG9pbmcgMiksIHlvdSB3b3VsZCBt
YWtlIHRoZSBCIGV4dGVuc2lvbiBhIGZlYXR1cmUuIEEgYm94DQo+IGltcGxlbWVudGluZyBBIGFu
ZCBDIHdvdWxkIHRoZW4gbm90IGFubm91bmNlIHRoaXMgZmVhdHVyZS4NCj4NCj4gSXQgbWlnaHQg
YWxzbyBiZSB3b3J0aHdoaWxlIHRvIGxvb2sgYXQgdGhlIGV4dGVuZGVkIGZ1dHVyZSBvZiB0aGUN
Cj4gcHJvdG9jb2xzLiBDb3VsZCBpdCBiZSB0aGF0IEIgb25seSBoYXMgb25lIGF0dHJpYnV0ZSBi
dXQgcGVyaGFwcyBtYW55DQo+IG1vcmUgaW4gdGhlIGZ1dHVyZT8gT3IsIGFsdGVybmF0aXZlbHks
IGNvdWxkIGl0IGJlIHRoYXQgQiBpcyBkeWluZyBvdXQNCj4gYmVjYXVzZSBldmVyeWJvZHkgbG92
ZXMgQz8gVGhpcyBtaWdodCBhbHNvIGltcGFjdCB0aGUgZGVjaXNpb24gaG93IHlvdQ0KPiBncm91
cCB0aGluZ3MgdG9nZXRoZXIuDQo+DQo+IE5vdGUgdGhhdCBhIHNlcGFyYXRlIG1vZHVsZSBpcyBu
b3QgYSBiaXQgdGhpbmcsIGp1c3Qgb25lIG1vcmUNCj4gbmFtZXNwYWNlLiBJZiBSRkMgcHJvY2Vz
c2VzIGFyZSB0aGUgY29uY2VybiwgeW91IGNhbiBoYXZlIG1vZHVsZXMgQQ0KPiBhbmQgQiBpbiBv
bmUgUkZDIChidXQgdGhleSBtaWdodCBoYXZlIGRpZmZlcmVudCBsaWZlcyBpbiB0aGUgZnV0dXJl
KS4NCj4NCj4gSSB3b3VsZCBzdWdnZXN0IHRvIGF2b2lkIGEgZGVzaWduIHRoYXQgdXNlcyBkZXZp
YXRpb25zLiBEZXZpYXRpb25zIGFyZQ0KPiBtZWFudCB0byBkb2N1bWVudCBpbXBsZW1lbnRhdGlv
biBzcGVjaWZpYyBkZXZpYXRpb25zLCB0aGV5IGFyZSBub3QNCj4gbWVhbnQgdG8gaW5kaWNhdGUg
dGhhdCBzb21lIG9iamVjdCBpbiBhbm90aGVyIGRhdGEgbW9kZWwgY29uZmxpY3RzIGFuZA0KPiBp
cyB0aHVzIGVsaW1pbmF0ZWQgdmlhIGRldmlhdGlvbi4gRmVhdHVyZXMgc2hvdWxkIGJlIHVzZWQg
aW5zdGVhZCB0bw0KPiBtYWtlIHBvcnRpb25zIG9mIGEgZGF0YSBtb2RlbCBvcHRpb25hbC4NCj4N
Cg0KQWdyZWVkLg0KDQpZQU5HIGNvbmZvcm1hbmNlIGlzIGRpcmVjdGx5IGNvdXBsZWQgdG8gdGhl
IFlBTkcgbW9kdWxlIHN0cnVjdHVyZSB5b3Ugc2VsZWN0Lg0KKE5vdCB0aGF0IEkgYW0gYSBmYW4g
b2YgdGhpcyBhcHByb2FjaCkuICBZb3UgbmVlZCB0byB0aGluaw0KYWJvdXQgdGhlIGNvbmZvcm1h
bmNlIHJlcXVpcmVtZW50cyBjYXJlZnVsbHkgd2hlbiB5b3UNCmNyZWF0ZSBZQU5HIG1vZHVsZXMu
DQoNCg0KPiAvanMNCg0KDQpBbmR5DQoNCj4NCj4gLS0NCj4gSnVlcmdlbiBTY2hvZW53YWVsZGVy
ICAgICAgICAgICBKYWNvYnMgVW5pdmVyc2l0eSBCcmVtZW4gZ0dtYkgNCj4gUGhvbmU6ICs0OSA0
MjEgMjAwIDM1ODcgICAgICAgICBDYW1wdXMgUmluZyAxIHwgMjg3NTkgQnJlbWVuIHwgR2VybWFu
eQ0KPiBGYXg6ICAgKzQ5IDQyMSAyMDAgMzEwMyAgICAgICAgIDxodHRwOi8vd3d3LmphY29icy11
bml2ZXJzaXR5LmRlLz4NCj4NCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18NCj4gbmV0bW9kIG1haWxpbmcgbGlzdA0KPiBuZXRtb2RAaWV0Zi5vcmcNCj4g
aHR0cHM6Ly93d3cuaWV0Zi5vcmcvbWFpbG1hbi9saXN0aW5mby9uZXRtb2QNCg==

--_000_wgq68ie4enluh7rumubowt9p1426595342521emailandroidcom_
Content-Type: text/html; charset="utf-8"
Content-ID: <B4E141AE95FD1349AB2BD6690F4C3748@ericsson.com>
Content-Transfer-Encoding: base64

PGh0bWw+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0i
dGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjwvaGVhZD4NCjxib2R5Pg0KSGkmbmJzcDs8c3Bh
biBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgc3R5bGU9ImZvbnQtc2l6ZTogMTMuMzMzMzMzMDE1
NDQxODk1cHg7ICI+SnVlcmdlbiBhbmQgQW5keSw8L3NwYW4+DQo8ZGl2PjxzcGFuIGNsYXNzPSJB
cHBsZS1zdHlsZS1zcGFuIiBzdHlsZT0iZm9udC1zaXplOiAxMy4zMzMzMzMwMTU0NDE4OTVweDsg
Ij5UbmFua3MgZm9yIHlvdXIgdmFsdWFibGUgY29tbWVudHMuIEFncmVlIHdpdGggd2hhdCB5b3Ug
c2FpZC48L3NwYW4+PC9kaXY+DQo8ZGl2PjxzcGFuIGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFuIiBz
dHlsZT0iZm9udC1zaXplOiAxMy4zMzMzMzMwMTU0NDE4OTVweDsgIj48YnI+DQo8L3NwYW4+PC9k
aXY+DQo8ZGl2PjxzcGFuIGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFuIiBzdHlsZT0iZm9udC1zaXpl
OiAxMy4zMzMzMzMwMTU0NDE4OTVweDsgIj5CZXN0LDwvc3Bhbj48L2Rpdj4NCjxkaXY+PHNwYW4g
Y2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iIHN0eWxlPSJmb250LXNpemU6IDEzLjMzMzMzMzAxNTQ0
MTg5NXB4OyAiPi0gWHVmZW5nPC9zcGFuPjwvZGl2Pg0KPGRpdj48c3BhbiBjbGFzcz0iQXBwbGUt
c3R5bGUtc3BhbiIgc3R5bGU9ImZvbnQtc2l6ZTogMTMuMzMzMzMzMDE1NDQxODk1cHg7ICI+PGJy
Pg0KPC9zcGFuPjwvZGl2Pg0KPGJyPg0KPGJyPg0KPGRpdj4tLS0tLS0tLSBPcmlnaW5hbCBtZXNz
YWdlIC0tLS0tLS0tPC9kaXY+DQo8ZGl2PkZyb206IEFuZHkgQmllcm1hbiAmbHQ7YW5keUB5dW1h
d29ya3MuY29tJmd0OyA8L2Rpdj4NCjxkaXY+RGF0ZTowMy8xMy8yMDE1IDEyOjU3IFBNIChHTVQt
MDU6MDApIDwvZGl2Pg0KPGRpdj5UbzogSnVlcmdlbiBTY2hvZW53YWVsZGVyICZsdDtqLnNjaG9l
bndhZWxkZXJAamFjb2JzLXVuaXZlcnNpdHkuZGUmZ3Q7LFh1ZmVuZyBMaXUgJmx0O3h1ZmVuZy5s
aXVAZXJpY3Nzb24uY29tJmd0OyxuZXRtb2RAaWV0Zi5vcmcNCjwvZGl2Pg0KPGRpdj5DYzogPC9k
aXY+DQo8ZGl2PlN1YmplY3Q6IFJlOiBbbmV0bW9kXSBZQU5HIGF1Z21lbnRhdGlvbiBxdWVzdGlv
biA8L2Rpdj4NCjxkaXY+PGJyPg0KPC9kaXY+DQo8Zm9udCBzaXplPSIyIj48c3BhbiBzdHlsZT0i
Zm9udC1zaXplOjEwcHQ7Ij4NCjxkaXYgY2xhc3M9IlBsYWluVGV4dCI+T24gRnJpLCBNYXIgMTMs
IDIwMTUgYXQgOTozNiBBTSwgSnVlcmdlbiBTY2hvZW53YWVsZGVyPGJyPg0KJmx0O2ouc2Nob2Vu
d2FlbGRlckBqYWNvYnMtdW5pdmVyc2l0eS5kZSZndDsgd3JvdGU6PGJyPg0KJmd0OyBPbiBGcmks
IE1hciAxMywgMjAxNSBhdCAwNDowOTowN1BNICYjNDM7MDAwMCwgWHVmZW5nIExpdSB3cm90ZTo8
YnI+DQomZ3Q7Jmd0OyBEdXJpbmcgdGhlIGRpc2N1c3Npb24gb2YgWUFORyBURSBtb2RlbHMsIHRo
ZSBmb2xsb3dpbmcgcXVlc3Rpb24gd2FzIHJhaXNlZDo8YnI+DQomZ3Q7Jmd0Ozxicj4NCiZndDsm
Z3Q7IExldCdzIHNheSB0aGF0IHRoZXJlIGFyZSB0aHJlZSBwcm90b2NvbHM6IEEsIEIsIGFuZCBD
LiBBIGlzIHRoZSBiYXNlIHByb3RvY29sOyBCIGFuZCBDIGFyZSBleHRlbnNpb25zIGJhc2VkIG9u
IEEuJm5ic3A7IElmIHdlIGRlc2NyaWJlIHRoZW0gZnJvbSBpbmhlcml0YW5jZSBwZXJzcGVjdGl2
ZSwgQSBpcyB0aGUgYmFzZSBjbGFzcywgd2hpbGUgQiBhbmQgQyBhcmUgZGVyaXZlZCBjbGFzc2Vz
LiBJbiB0aGlzIGNhc2UsIEIgaXMgcHJldHR5IG11Y2ggdGhlDQogc2FtZSBhcyBBLCB3aXRoIG9u
bHkgT05FIGFkZGl0aW9uYWwgYXR0cmlidXRlLjxicj4NCiZndDsmZ3Q7PGJyPg0KJmd0OyZndDsg
V2hlbiB3ZSBtb2RlbCB0aGUgMyBjbGFzc2VzIGluIFlBTkcsIHRoZSBhcHByb2FjaGVzIGNhbiBi
ZTo8YnI+DQomZ3Q7Jmd0Ozxicj4NCiZndDsmZ3Q7IDEpJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7IE1vZGVsIEEgYXMgYSBiYXNlIG1vZHVsZSwgY29udGFpbmluZyBhbGwgYXR0cmlidXRl
cyBvZiBjbGFzcyBBLiBNb2RlbCBCIGFuZCBDIGFzIHNlcGFyYXRlIG1vZHVsZXMuIEEgZG91YnQg
d2FzIGJyb3VnaHQgdXAgYmVjYXVzZSBCIGhhcyBvbmx5IG9uZSBhdHRyaWJ1dGUuIERvZXMgaXQg
bWFrZSBzZW5zZSB0byBidWlsZCBhIG1vZHVsZSBmb3IgaXQ/PGJyPg0KJmd0OyZndDs8YnI+DQom
Z3Q7Jmd0OyAyKSZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBBbHRlcm5hdGl2ZWx5LCB3
ZSBjYW4gY3JlYXRlIGEgbW9kdWxlIEEtQiwgY29udGFpbmluZyBhbGwgYXR0cmlidXRlcyBvZiBj
bGFzcyBBLCBwbHVzIHRoZSBvbmUgYXR0cmlidXRlIGluIGNsYXNzIEIuIFdoZW4gd2UgYnVpbGQg
bW9kdWxlIEMsIHdlIG5lZWQgdG8gc3VwcHJlc3MgdGhlIG9uZSBhdHRyaWJ1dGUgb2YgY2xhc3Mg
QiwgYW5kIGF1Z21lbnQgd2l0aCBDJ3MgYXR0cmlidXRlcy4gVG8gZG8gdGhlIHN1cHByZXNzaW9u
LA0KIGRvIHdlIGhhdmUgYmV0dGVyIHdheXMgb3RoZXIgdGhhbiAmcXVvdDtkZXZpYXRpb24mcXVv
dDsgc3RhdGVtZW50Pzxicj4NCiZndDsmZ3Q7IFlvdXIgcHJlZmVyZW5jZSBhbmQgY29tbWVudHMg
YXJlIGFwcHJlY2lhdGVkLjxicj4NCiZndDsmZ3Q7PGJyPg0KJmd0Ozxicj4NCiZndDsgSWYgeW91
IHdlcmUgZG9pbmcgMiksIHlvdSB3b3VsZCBtYWtlIHRoZSBCIGV4dGVuc2lvbiBhIGZlYXR1cmUu
IEEgYm94PGJyPg0KJmd0OyBpbXBsZW1lbnRpbmcgQSBhbmQgQyB3b3VsZCB0aGVuIG5vdCBhbm5v
dW5jZSB0aGlzIGZlYXR1cmUuPGJyPg0KJmd0Ozxicj4NCiZndDsgSXQgbWlnaHQgYWxzbyBiZSB3
b3J0aHdoaWxlIHRvIGxvb2sgYXQgdGhlIGV4dGVuZGVkIGZ1dHVyZSBvZiB0aGU8YnI+DQomZ3Q7
IHByb3RvY29scy4gQ291bGQgaXQgYmUgdGhhdCBCIG9ubHkgaGFzIG9uZSBhdHRyaWJ1dGUgYnV0
IHBlcmhhcHMgbWFueTxicj4NCiZndDsgbW9yZSBpbiB0aGUgZnV0dXJlPyBPciwgYWx0ZXJuYXRp
dmVseSwgY291bGQgaXQgYmUgdGhhdCBCIGlzIGR5aW5nIG91dDxicj4NCiZndDsgYmVjYXVzZSBl
dmVyeWJvZHkgbG92ZXMgQz8gVGhpcyBtaWdodCBhbHNvIGltcGFjdCB0aGUgZGVjaXNpb24gaG93
IHlvdTxicj4NCiZndDsgZ3JvdXAgdGhpbmdzIHRvZ2V0aGVyLjxicj4NCiZndDs8YnI+DQomZ3Q7
IE5vdGUgdGhhdCBhIHNlcGFyYXRlIG1vZHVsZSBpcyBub3QgYSBiaXQgdGhpbmcsIGp1c3Qgb25l
IG1vcmU8YnI+DQomZ3Q7IG5hbWVzcGFjZS4gSWYgUkZDIHByb2Nlc3NlcyBhcmUgdGhlIGNvbmNl
cm4sIHlvdSBjYW4gaGF2ZSBtb2R1bGVzIEE8YnI+DQomZ3Q7IGFuZCBCIGluIG9uZSBSRkMgKGJ1
dCB0aGV5IG1pZ2h0IGhhdmUgZGlmZmVyZW50IGxpZmVzIGluIHRoZSBmdXR1cmUpLjxicj4NCiZn
dDs8YnI+DQomZ3Q7IEkgd291bGQgc3VnZ2VzdCB0byBhdm9pZCBhIGRlc2lnbiB0aGF0IHVzZXMg
ZGV2aWF0aW9ucy4gRGV2aWF0aW9ucyBhcmU8YnI+DQomZ3Q7IG1lYW50IHRvIGRvY3VtZW50IGlt
cGxlbWVudGF0aW9uIHNwZWNpZmljIGRldmlhdGlvbnMsIHRoZXkgYXJlIG5vdDxicj4NCiZndDsg
bWVhbnQgdG8gaW5kaWNhdGUgdGhhdCBzb21lIG9iamVjdCBpbiBhbm90aGVyIGRhdGEgbW9kZWwg
Y29uZmxpY3RzIGFuZDxicj4NCiZndDsgaXMgdGh1cyBlbGltaW5hdGVkIHZpYSBkZXZpYXRpb24u
IEZlYXR1cmVzIHNob3VsZCBiZSB1c2VkIGluc3RlYWQgdG88YnI+DQomZ3Q7IG1ha2UgcG9ydGlv
bnMgb2YgYSBkYXRhIG1vZGVsIG9wdGlvbmFsLjxicj4NCiZndDs8YnI+DQo8YnI+DQpBZ3JlZWQu
PGJyPg0KPGJyPg0KWUFORyBjb25mb3JtYW5jZSBpcyBkaXJlY3RseSBjb3VwbGVkIHRvIHRoZSBZ
QU5HIG1vZHVsZSBzdHJ1Y3R1cmUgeW91IHNlbGVjdC48YnI+DQooTm90IHRoYXQgSSBhbSBhIGZh
biBvZiB0aGlzIGFwcHJvYWNoKS4mbmJzcDsgWW91IG5lZWQgdG8gdGhpbms8YnI+DQphYm91dCB0
aGUgY29uZm9ybWFuY2UgcmVxdWlyZW1lbnRzIGNhcmVmdWxseSB3aGVuIHlvdTxicj4NCmNyZWF0
ZSBZQU5HIG1vZHVsZXMuPGJyPg0KPGJyPg0KPGJyPg0KJmd0OyAvanM8YnI+DQo8YnI+DQo8YnI+
DQpBbmR5PGJyPg0KPGJyPg0KJmd0Ozxicj4NCiZndDsgLS08YnI+DQomZ3Q7IEp1ZXJnZW4gU2No
b2Vud2FlbGRlciZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyBKYWNvYnMgVW5pdmVyc2l0eSBCcmVtZW4gZ0dtYkg8YnI+DQomZ3Q7IFBo
b25lOiAmIzQzOzQ5IDQyMSAyMDAgMzU4NyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyBDYW1wdXMgUmluZyAxIHwgMjg3NTkgQnJlbWVuIHwgR2VybWFueTxi
cj4NCiZndDsgRmF4OiZuYnNwOyZuYnNwOyAmIzQzOzQ5IDQyMSAyMDAgMzEwMyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmbHQ7PGEgaHJlZj0iaHR0cDov
L3d3dy5qYWNvYnMtdW5pdmVyc2l0eS5kZS8iIHRhcmdldD0iX0JMQU5LIj5odHRwOi8vd3d3Lmph
Y29icy11bml2ZXJzaXR5LmRlLzwvYT4mZ3Q7PGJyPg0KJmd0Ozxicj4NCiZndDsgX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX188YnI+DQomZ3Q7IG5ldG1vZCBt
YWlsaW5nIGxpc3Q8YnI+DQomZ3Q7IG5ldG1vZEBpZXRmLm9yZzxicj4NCiZndDsgPGEgaHJlZj0i
aHR0cHM6Ly93d3cuaWV0Zi5vcmcvbWFpbG1hbi9saXN0aW5mby9uZXRtb2QiIHRhcmdldD0iX0JM
QU5LIj5odHRwczovL3d3dy5pZXRmLm9yZy9tYWlsbWFuL2xpc3RpbmZvL25ldG1vZDwvYT48YnI+
DQo8L2Rpdj4NCjwvc3Bhbj48L2ZvbnQ+DQo8L2JvZHk+DQo8L2h0bWw+DQo=

--_000_wgq68ie4enluh7rumubowt9p1426595342521emailandroidcom_--


From nobody Wed Mar 18 02:24:41 2015
Return-Path: <mbj@tail-f.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 DB0B01A8028 for <netmod@ietfa.amsl.com>; Wed, 18 Mar 2015 02:24:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.91
X-Spam-Level: 
X-Spam-Status: No, score=-1.91 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, T_RP_MATCHES_RCVD=-0.01] 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 BJcVWgT40waX for <netmod@ietfa.amsl.com>; Wed, 18 Mar 2015 02:24:37 -0700 (PDT)
Received: from mail.tail-f.com (mail.tail-f.com [83.241.162.140]) by ietfa.amsl.com (Postfix) with ESMTP id 2FC0D1A0167 for <netmod@ietf.org>; Wed, 18 Mar 2015 02:24:37 -0700 (PDT)
Received: from localhost (unknown [213.136.39.104]) by mail.tail-f.com (Postfix) with ESMTPSA id 11B2A1280477; Wed, 18 Mar 2015 10:24:36 +0100 (CET)
Date: Wed, 18 Mar 2015 10:24:51 +0100 (CET)
Message-Id: <20150318.102451.1461439291751362391.mbj@tail-f.com>
To: deanb@juniper.net
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <C454584D-712E-4DDF-BF08-3218113B496A@juniper.net>
References: <20150307.125254.282397849379655594.mbj@tail-f.com> <C454584D-712E-4DDF-BF08-3218113B496A@juniper.net>
X-Mailer: Mew version 6.5 on Emacs 24.3 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/KTeq4NzOQC6CzUMhhMI0j12M94k>
Cc: netmod@ietf.org
Subject: Re: [netmod] comments on draft-ietf-netmod-acl-model-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: <http://www.ietf.org/mail-archive/web/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: Wed, 18 Mar 2015 09:24:40 -0000

Hi,

Comments inline.

Dean Bogdanovic <deanb@juniper.net> wrote:
> Martin,
> 
> Thank you for the review of the draft.
> On Mar 7, 2015, at 6:52 AM, Martin Bjorklund <mbj@tail-f.com<mailto:mbj@tail-f.com>> wrote:
> 
> Hi,
> 
> I have reviewed draft-ietf-netmod-acl-model-02.txt, and here are my
> comments:
> 
> o The extensibility model is a bit unclear.
> 
>  - Each ACL has a type, an indentityref, which is good, but then this
>    type is not really used in the model.  It is just a leaf with a
>    value, with no indications of how it is supposed to be implemented
>    or used by the operator.
> 
>    I would assume that the type restricts what can be configured in
>    each ACE.  But that it is not the case, which means that you can
>    set the ACL type to be "eth-access-control-list", but still
>    configure an ACE with "source-ipv6-network" (for example).
> instead of this
> leaf access-control-list-type {
> type access-control-list-type;
> description "Type of access control list. When this type is not explicitely specified, if vendor implementation permits, the access control
> entires in the list can be mixed, by containing L2, L3 and L4 entries";
> }
> 
> does this description answer your concern
> description "It is recommended to have a access control list with uniform access list entries, all of the same type. When this type is not explicitely specified, if vendor implementation permits, the access control entries in the list can be mixed, by containing L2, L3 and L4 entries";


No not really.  It is clear from the design that each ACE has its own
type:
            choice access-list-entries-type {
              description "Type of access list entry.";

But this type is not in any way tied to the ACL type.  I think you are
saying that depending on implementation, there MAY be some unknown
connection between the ACL type and the ACE type.  Some
implementations may be ok with not setting the ACL type, some may be
ok with having an ACL type but then allows mixed ACEs anyway, and some
may require the ACL type to match the ACE type.  How will a client
know?  How can this be interoperable?


>    Also, the type is optional to configure, i.e., you can configure a
>    type-less ACL.
> 
>    This makes it unclear what the type is supposed to do.
> 
> With typeless ACL we are future proofing the model, as you can put anything in the model.
> 
>  - Section 3.1 says:
> 
>      The "ietf-packet-fields" modules can easily be extended to reuse
>      definitions from other modules such as IPFIX [RFC5101] or
>      migrate proprietary augmented module definitions into the
>      standard module.
> 
>    I do not understand this.  What does "easily be extended" refer
>    to?  The only way to extend this model - as it is written - is by
>    publishing a new revision of the model (in a new RFC).
> 
> We have changed the wording and replaced extended with augmented, so it reads now
> 
> "...can be easily augmented."

But this is not correct.   This module contains a bunch of groupings,
and groupings cannot be augmented.

[...]

>    This makes me wonder about the design where the generic module
>    imports and uses definitions from the special module.  Wouldn't it
>    make more sense to do it the other way around?  I.e., let the
>    generic module be generic, and augment it from the specific
>    module?

Did you consider this alternative design?

[...]

> o Why did you change the name from "acl" to "access-control-list" in
>  many places between -01 and -02?  I didn't see any comments about
>  this on the ML.  The current naming is not consistent, and the names
>  are pretty long.  For example, you have "access-control-list",
>  "access-list", and "acl".
> 
>  I suggest the following names:
> 
>  module ietf-access-control-lists
> 
>  top-level container access-control-lists  (or just acls)
> 
>  then remove redundant "access-control-list-" prefix from the names
>  to get something like this:
> 
>  module: ietf-access-control-lists
>   +--rw access-control-lists
>      +--rw acl* [name]
>         +--rw name                   string
>         +--rw type?                  access-control-list-type
>         +--ro oper-data
>         |  +--ro (targets)?
>         |     +--:(interface-name)
>         |        +--ro interface-name*   string
>         +--rw access-list-entries
>            +--rw ace* [name]
>               +--rw name                             string
>               +--rw matches
> 
>  In general, I think you should review all node names and make sure
>  that they are good.  It is often very useful to try out a model in
>  one of the generic implementations that are available, to get a
>  feeling for the structure and names of the data model.
> 
> In general, we prefer to use fully extended names, instead of abbreviations as it removes ambiguity and it is easier to read. Your suggestion is a pretty good compromise, but would like to hear more from other people on this topic as well.

Ok.

[...]

>  The way your model is designed, it is not possible to create any
>  type of ACE without also specifiying source-port-range/lower-port
>  and destination-port-range/lower-port.

Actually, I was wrong here.  If the ACE type is access-list-entries-ip
then these leafs MUST be set.

>  I don't think this is
>  intentional?  If not, make "source-port-range" and
>  "destination-port-range" to presence containers.
> 
> the source-port-range and destination-port-range are containers within grouping access-control-list-transport-header-fields in ietf-packet-fields.yang . Are you saying if containers are used within groupings, they are forced?

No fact that they are defined in groupings doesn't matter.  The
problem is that source-port-range is a non-presence container, and
lower-port is marked as mandatory.  This means that lower-port MUST be
configured (... if any node in the same access-list-entries-ip case is
set).



> o grouping timerange
> 
>  The name "absolute" is very generic.  I suggest you change the name
>  "absolute" to "absolute-time" or something.
> 
> agree with you and changed it.
> 
>  Is absolute time ranges supported across implementations?  I would
>  expect this to be optional to implement (i.e., add if-feature).
> 
> Juniper, Cisco, Brocade support absolute and periodic/relative time ranges and from our experience it is pretty common across implementations.
> 
>  Are such absolute time ranges commonly used by operators?  What
>  about periodic times?
> from my experience, for packet filtering it is mostly used with
> absolute times.

So you create it once for a certain absolute time, and once that has
passed, the filter is removed?


>  Also, this grouping doesn't really belong to a module called
>  "ietf-packet-headers".

Did you consider moving it?

[...]

> o We should have some consistency in how we name our example modules.
> 
>  RFC 7223 uses:
> 
>    module ex-ethernet-bonding {
>      namespace "http://example.com/ethernet-bonding";
> 
>  draft-ietf-netmod-routing-cfg-17 uses:
> 
>    module example-rip {
>     namespace "http://example.com/rip";
> 
>  I suggest you use one of these as well (we should put this into the
>  guidelines document!).
> 
> And we should fix the pyang compiler as well, as it puts out warning when writing YANG as you mentioned above
> 
> pyang --ietf example-newco-acl.yang
> example-newco-acl.yang:4: warning: IETF rule (RFC 6087: 4.8): namespace value should be "urn:ietf:params:xml:ns:yang:example-newco-acl"

Well, the --ietf flag to pyang is not intended to be used for
examples.  All rules in 6087 are indented for standard modules, not
for examples.  I think we need to clarify this in 6087bis.


>  Also, remove the "contact" and "organization" statements from the
>  example modules.
> 
> I would, but then have problems with compiling the yang module
> pyang --ietf example-newco-acl.yang

See above.


> o  In the example module, remove
> 
>    reference " ";
> 
>  It looks very weird and doesn't give you anything.
> 
> Please see above

Since --ietf doesn't apply to example modules, it is safe to remove
this unnecessary statement.



/martin


From nobody Wed Mar 18 05:06:32 2015
Return-Path: <lhotka@nic.cz>
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 37F331A00DB for <netmod@ietfa.amsl.com>; Wed, 18 Mar 2015 05:06:31 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level: 
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9] 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 dvdhzagdS08T for <netmod@ietfa.amsl.com>; Wed, 18 Mar 2015 05:06:29 -0700 (PDT)
Received: from trail.lhotka.name (trail.lhotka.name [77.48.224.143]) by ietfa.amsl.com (Postfix) with ESMTP id 07EF61A0060 for <netmod@ietf.org>; Wed, 18 Mar 2015 05:06:29 -0700 (PDT)
Received: from localhost (unknown [195.113.220.110]) by trail.lhotka.name (Postfix) with ESMTPSA id 11DF81CC0A86; Wed, 18 Mar 2015 13:06:26 +0100 (CET)
From: Ladislav Lhotka <lhotka@nic.cz>
To: Andy Bierman <andy@yumaworks.com>, "netmod\@ietf.org" <netmod@ietf.org>
In-Reply-To: <CABCOCHSPMs-Ub882Becw=8=PQmW5V_A6wwVuBHvGMhR-dwASLQ@mail.gmail.com>
References: <CABCOCHSPMs-Ub882Becw=8=PQmW5V_A6wwVuBHvGMhR-dwASLQ@mail.gmail.com>
User-Agent: Notmuch/0.19 (http://notmuchmail.org) Emacs/24.4.51.2 (x86_64-apple-darwin14.0.0)
Date: Wed, 18 Mar 2015 13:06:26 +0100
Message-ID: <m2lhiutsql.fsf@birdie.labs.nic.cz>
MIME-Version: 1.0
Content-Type: text/plain
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/LSGWHLPLjKd9cVfnOR3UEH0cjzQ>
Subject: Re: [netmod] YANG conformance for augments
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: <http://www.ietf.org/mail-archive/web/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: Wed, 18 Mar 2015 12:06:31 -0000

Andy Bierman <andy@yumaworks.com> writes:

> Hi,
>
> Assume 3 simple YANG modules, aug1, aug2, and aug3.
>
>
> module aug1 {
>     namespace "http://yumaworks.com/ns/aug1";
>     prefix "aug1";
>     revision 2015-03-15;
>
>     container A { }
>     leaf L1 { type string; }
> }
>
> module aug2 {
>     namespace "http://yumaworks.com/ns/aug2";
>     prefix "aug2";
>     import aug1 { prefix aug1; }
>     revision 2015-03-15;
>
>     augment /aug1:A {
>       container B { }
>     }
>     leaf L2 { type string; }
>      /* could also have aug2 augmenting more modules
>       *  augment /foo:X {  .... }
>       */
> }
>
> module aug3 {
>     namespace "http://yumaworks.com/ns/aug3";
>     prefix "aug3";
>     import aug1 { prefix aug1; }
>     import aug2 { prefix aug2; }
>     revision 2015-03-15;
>
>     augment /aug1:A/aug2:B {
>       container C { }
>     }
> }
>
>
> According to some proposals, a server MUST implement all of aug1
> in order to advertise conformance to aug2 and aug3.  So in order for
> module aug2 to extend the NP container /aug1:A it MUST implement
> /aug1:L1 as well.

An augment makes sense only if the augmented module is included in hello
or otherwise declared to be a part of the data model. And yes, this then
implies that the augmented module must be implemented.

Lada

>
> Module aug3 MUST implement all of module aug1 and aug2,
> adding 'B' and 'C'.  If aug2 augmented another external module
> like 'foo:/X' then aug3 MUST implement the entire foo module.
>
> IMO the direct coupling of YANG module contents to conformance
> is not a good idea.  The simplistic conformance rules for augment
> (especially for NP containers) are not going to work.
>
>
> Andy
>
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod

-- 
Ladislav Lhotka, CZ.NIC Labs
PGP Key ID: E74E8C0C


From nobody Wed Mar 18 06:53:21 2015
Return-Path: <andy@yumaworks.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 B37A01A01A9 for <netmod@ietfa.amsl.com>; Wed, 18 Mar 2015 06:53:20 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.979
X-Spam-Level: 
X-Spam-Status: No, score=-1.979 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] 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 1nyl0VDWVxJl for <netmod@ietfa.amsl.com>; Wed, 18 Mar 2015 06:53:18 -0700 (PDT)
Received: from mail-la0-f42.google.com (mail-la0-f42.google.com [209.85.215.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6DD291A01EA for <netmod@ietf.org>; Wed, 18 Mar 2015 06:53:16 -0700 (PDT)
Received: by labjg1 with SMTP id jg1so36539891lab.2 for <netmod@ietf.org>; Wed, 18 Mar 2015 06:53:14 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=8n3lB/algOThjO2AikSd3sawKLNOlNqmS34LRmKFOBM=; b=Cw2IvZUzohC1jnaY7djs9KNSM2i2axxdqh7JiF0q1xhiLnLYVksdq5tCBpR0QumFP9 vS5SGs9x374lB6cbezTlxaS26OTgd/+2CHoPprYAkEuL/dMxOW2bBDzFqt2gUV+mY4g3 5tbGZfNPlFftZwf7HNU1UtxE+r+fiwIcU46T63F1lPU0BlshISUP3SszrapUWHbz3GuX oHjAHw9SpcvN64ABbIkF+5h8ThyvufsKZ/6fXWf3tWnv5hqmVF3WYQhDviMsogdmaJK0 woaWZ1krDf2gef3JymJA/0a+lmeJ1IOhw/NHnKAfjXmbuN/MEkl6if0b2hJ/8nk7/mZT c1UQ==
X-Gm-Message-State: ALoCoQnW6oDUlAoVmIHVJs+HyGp13GAgbhv8zlfXVUSYPypIfXdu2Q9yZCfxvW1NyqmsnSdQJMwi
MIME-Version: 1.0
X-Received: by 10.112.42.164 with SMTP id p4mr57615617lbl.119.1426686794700; Wed, 18 Mar 2015 06:53:14 -0700 (PDT)
Received: by 10.112.144.36 with HTTP; Wed, 18 Mar 2015 06:53:14 -0700 (PDT)
In-Reply-To: <m2lhiutsql.fsf@birdie.labs.nic.cz>
References: <CABCOCHSPMs-Ub882Becw=8=PQmW5V_A6wwVuBHvGMhR-dwASLQ@mail.gmail.com> <m2lhiutsql.fsf@birdie.labs.nic.cz>
Date: Wed, 18 Mar 2015 06:53:14 -0700
Message-ID: <CABCOCHSojC4R69j8Sv3EMS_712wGgmipvCBxJpPS7MX1r1JsuQ@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Ladislav Lhotka <lhotka@nic.cz>
Content-Type: text/plain; charset=UTF-8
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/Zesc4gDKCXXA3at1FS5AufXytAU>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] YANG conformance for augments
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: <http://www.ietf.org/mail-archive/web/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: Wed, 18 Mar 2015 13:53:20 -0000

On Wed, Mar 18, 2015 at 5:06 AM, Ladislav Lhotka <lhotka@nic.cz> wrote:
> Andy Bierman <andy@yumaworks.com> writes:
>
>> Hi,
>>
>> Assume 3 simple YANG modules, aug1, aug2, and aug3.
>>
>>
>> module aug1 {
>>     namespace "http://yumaworks.com/ns/aug1";
>>     prefix "aug1";
>>     revision 2015-03-15;
>>
>>     container A { }
>>     leaf L1 { type string; }
>> }
>>
>> module aug2 {
>>     namespace "http://yumaworks.com/ns/aug2";
>>     prefix "aug2";
>>     import aug1 { prefix aug1; }
>>     revision 2015-03-15;
>>
>>     augment /aug1:A {
>>       container B { }
>>     }
>>     leaf L2 { type string; }
>>      /* could also have aug2 augmenting more modules
>>       *  augment /foo:X {  .... }
>>       */
>> }
>>
>> module aug3 {
>>     namespace "http://yumaworks.com/ns/aug3";
>>     prefix "aug3";
>>     import aug1 { prefix aug1; }
>>     import aug2 { prefix aug2; }
>>     revision 2015-03-15;
>>
>>     augment /aug1:A/aug2:B {
>>       container C { }
>>     }
>> }
>>
>>
>> According to some proposals, a server MUST implement all of aug1
>> in order to advertise conformance to aug2 and aug3.  So in order for
>> module aug2 to extend the NP container /aug1:A it MUST implement
>> /aug1:L1 as well.
>
> An augment makes sense only if the augmented module is included in hello
> or otherwise declared to be a part of the data model. And yes, this then
> implies that the augmented module must be implemented.
>

Why is the advertisement of aug1 or aug2 required, instead
of just the import-stmt in the augmenting module?

Are you suggesting the way that new functionality is attached to
old functionality changes the YANG conformance?

Let's say to fiztest module provides some config parameters
to run some packet tests over an interface.

   container fizbin-parms { .... }

There are 3 ways I can attach this container to an interface

1) augment

    augment /if:interfaces/if:interface {
        container fizbin-parms { ... }
    }

2) leafref coupling

   container fizbin-parms {
        leaf itf-name { type if:interface-ref; }
        ...
    }

3) type coupling

    container fizbin-parms {
        leaf itf-name { type stringf; }
         ...
    }


Note that (2) only requires importing a typedef and (3) does not require
an import-stmt at all.  In every case (1 - 3) the implementation
requirements for fizbin-parms are exactly the same (i.e.,
ability to send and receive packets on the specified interface.
Probably needs to understand the 'type' and 'enabled' leafs).

IMO the conformance requirements to implement the fizbin module
should not depend on how it is coupled to the interfaces module.


> Lada

Andy

>
>>
>> Module aug3 MUST implement all of module aug1 and aug2,
>> adding 'B' and 'C'.  If aug2 augmented another external module
>> like 'foo:/X' then aug3 MUST implement the entire foo module.
>>
>> IMO the direct coupling of YANG module contents to conformance
>> is not a good idea.  The simplistic conformance rules for augment
>> (especially for NP containers) are not going to work.
>>
>>
>> Andy
>>
>> _______________________________________________
>> netmod mailing list
>> netmod@ietf.org
>> https://www.ietf.org/mailman/listinfo/netmod
>
> --
> Ladislav Lhotka, CZ.NIC Labs
> PGP Key ID: E74E8C0C


From nobody Wed Mar 18 07:52:27 2015
Return-Path: <deanb@juniper.net>
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 7FB661A066C for <netmod@ietfa.amsl.com>; Wed, 18 Mar 2015 07:52:25 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.902
X-Spam-Level: 
X-Spam-Status: No, score=-1.902 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] 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 EvTteVykMW-1 for <netmod@ietfa.amsl.com>; Wed, 18 Mar 2015 07:52:23 -0700 (PDT)
Received: from na01-bl2-obe.outbound.protection.outlook.com (mail-bl2on0109.outbound.protection.outlook.com [65.55.169.109]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id BEE311A00B0 for <netmod@ietf.org>; Wed, 18 Mar 2015 07:52:22 -0700 (PDT)
Received: from BN1PR05MB424.namprd05.prod.outlook.com (10.141.58.148) by BN1PR05MB421.namprd05.prod.outlook.com (10.141.58.139) with Microsoft SMTP Server (TLS) id 15.1.112.19; Wed, 18 Mar 2015 14:52:20 +0000
Received: from BN1PR05MB424.namprd05.prod.outlook.com ([169.254.8.141]) by BN1PR05MB424.namprd05.prod.outlook.com ([169.254.8.141]) with mapi id 15.01.0112.000; Wed, 18 Mar 2015 14:52:20 +0000
From: Dean Bogdanovic <deanb@juniper.net>
To: Martin Bjorklund <mbj@tail-f.com>
Thread-Topic: [netmod] comments on draft-ietf-netmod-acl-model-02.txt
Thread-Index: AQHQWM04RH2vxtzCvkq5eEsnUNbRVJ0fH4IAgALpqYCAAFt9AA==
Date: Wed, 18 Mar 2015 14:52:19 +0000
Message-ID: <104E9EDF-2B1C-46FB-9383-0DB68EB2DA3F@juniper.net>
References: <20150307.125254.282397849379655594.mbj@tail-f.com> <C454584D-712E-4DDF-BF08-3218113B496A@juniper.net> <20150318.102451.1461439291751362391.mbj@tail-f.com>
In-Reply-To: <20150318.102451.1461439291751362391.mbj@tail-f.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-mailer: Apple Mail (2.1510)
x-originating-ip: [66.129.241.12]
authentication-results: tail-f.com; dkim=none (message not signed) header.d=none;
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN1PR05MB421;
x-forefront-antispam-report: BMV:1; SFV:NSPM; SFS:(10019020)(6009001)(24454002)(52314003)(377454003)(51704005)(46034005)(99286002)(46102003)(33656002)(110136001)(50226001)(86362001)(40100003)(106116001)(230783001)(92566002)(19580405001)(19580395003)(15395725005)(2950100001)(62966003)(15975445007)(77156002)(102836002)(82746002)(2656002)(50986999)(66066001)(122556002)(76176999)(36756003)(87936001)(83716003)(104396002); DIR:OUT; SFP:1102; SCL:1; SRVR:BN1PR05MB421; H:BN1PR05MB424.namprd05.prod.outlook.com; FPR:; SPF:None; MLV:sfv; LANG:en; 
x-microsoft-antispam-prvs: <BN1PR05MB421C42B069253F81DB24E42B8000@BN1PR05MB421.namprd05.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:;
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(5002010)(5005006); SRVR:BN1PR05MB421; BCL:0; PCL:0; RULEID:; SRVR:BN1PR05MB421; 
x-forefront-prvs: 051900244E
Content-Type: text/plain; charset="us-ascii"
Content-ID: <297958456F25704E8F90021433A288B1@namprd05.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Mar 2015 14:52:19.7546 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN1PR05MB421
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/htQpeGrGtmcwHJtYKlZ0o8y5pk8>
Cc: "<netmod@ietf.org>" <netmod@ietf.org>
Subject: Re: [netmod] comments on draft-ietf-netmod-acl-model-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: <http://www.ietf.org/mail-archive/web/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: Wed, 18 Mar 2015 14:52:25 -0000

Martin,

Will you be present at the YANG Doctor session this Sunday? If so, lets hav=
e a discussion on your comments there

Dean

On Mar 18, 2015, at 5:24 AM, Martin Bjorklund <mbj@tail-f.com> wrote:

> Hi,
>=20
> Comments inline.
>=20
> Dean Bogdanovic <deanb@juniper.net> wrote:
>> Martin,
>>=20
>> Thank you for the review of the draft.
>> On Mar 7, 2015, at 6:52 AM, Martin Bjorklund <mbj@tail-f.com<mailto:mbj@=
tail-f.com>> wrote:
>>=20
>> Hi,
>>=20
>> I have reviewed draft-ietf-netmod-acl-model-02.txt, and here are my
>> comments:
>>=20
>> o The extensibility model is a bit unclear.
>>=20
>> - Each ACL has a type, an indentityref, which is good, but then this
>>   type is not really used in the model.  It is just a leaf with a
>>   value, with no indications of how it is supposed to be implemented
>>   or used by the operator.
>>=20
>>   I would assume that the type restricts what can be configured in
>>   each ACE.  But that it is not the case, which means that you can
>>   set the ACL type to be "eth-access-control-list", but still
>>   configure an ACE with "source-ipv6-network" (for example).
>> instead of this
>> leaf access-control-list-type {
>> type access-control-list-type;
>> description "Type of access control list. When this type is not explicit=
ely specified, if vendor implementation permits, the access control
>> entires in the list can be mixed, by containing L2, L3 and L4 entries";
>> }
>>=20
>> does this description answer your concern
>> description "It is recommended to have a access control list with unifor=
m access list entries, all of the same type. When this type is not explicit=
ely specified, if vendor implementation permits, the access control entries=
 in the list can be mixed, by containing L2, L3 and L4 entries";
>=20
>=20
> No not really.  It is clear from the design that each ACE has its own
> type:
>            choice access-list-entries-type {
>              description "Type of access list entry.";
>=20
> But this type is not in any way tied to the ACL type.  I think you are
> saying that depending on implementation, there MAY be some unknown
> connection between the ACL type and the ACE type.  Some
> implementations may be ok with not setting the ACL type, some may be
> ok with having an ACL type but then allows mixed ACEs anyway, and some
> may require the ACL type to match the ACE type.  How will a client
> know?  How can this be interoperable?
>=20
>=20
>>   Also, the type is optional to configure, i.e., you can configure a
>>   type-less ACL.
>>=20
>>   This makes it unclear what the type is supposed to do.
>>=20
>> With typeless ACL we are future proofing the model, as you can put anyth=
ing in the model.
>>=20
>> - Section 3.1 says:
>>=20
>>     The "ietf-packet-fields" modules can easily be extended to reuse
>>     definitions from other modules such as IPFIX [RFC5101] or
>>     migrate proprietary augmented module definitions into the
>>     standard module.
>>=20
>>   I do not understand this.  What does "easily be extended" refer
>>   to?  The only way to extend this model - as it is written - is by
>>   publishing a new revision of the model (in a new RFC).
>>=20
>> We have changed the wording and replaced extended with augmented, so it =
reads now
>>=20
>> "...can be easily augmented."
>=20
> But this is not correct.   This module contains a bunch of groupings,
> and groupings cannot be augmented.
>=20
> [...]
>=20
>>   This makes me wonder about the design where the generic module
>>   imports and uses definitions from the special module.  Wouldn't it
>>   make more sense to do it the other way around?  I.e., let the
>>   generic module be generic, and augment it from the specific
>>   module?
>=20
> Did you consider this alternative design?
>=20
> [...]
>=20
>> o Why did you change the name from "acl" to "access-control-list" in
>> many places between -01 and -02?  I didn't see any comments about
>> this on the ML.  The current naming is not consistent, and the names
>> are pretty long.  For example, you have "access-control-list",
>> "access-list", and "acl".
>>=20
>> I suggest the following names:
>>=20
>> module ietf-access-control-lists
>>=20
>> top-level container access-control-lists  (or just acls)
>>=20
>> then remove redundant "access-control-list-" prefix from the names
>> to get something like this:
>>=20
>> module: ietf-access-control-lists
>>  +--rw access-control-lists
>>     +--rw acl* [name]
>>        +--rw name                   string
>>        +--rw type?                  access-control-list-type
>>        +--ro oper-data
>>        |  +--ro (targets)?
>>        |     +--:(interface-name)
>>        |        +--ro interface-name*   string
>>        +--rw access-list-entries
>>           +--rw ace* [name]
>>              +--rw name                             string
>>              +--rw matches
>>=20
>> In general, I think you should review all node names and make sure
>> that they are good.  It is often very useful to try out a model in
>> one of the generic implementations that are available, to get a
>> feeling for the structure and names of the data model.
>>=20
>> In general, we prefer to use fully extended names, instead of abbreviati=
ons as it removes ambiguity and it is easier to read. Your suggestion is a =
pretty good compromise, but would like to hear more from other people on th=
is topic as well.
>=20
> Ok.
>=20
> [...]
>=20
>> The way your model is designed, it is not possible to create any
>> type of ACE without also specifiying source-port-range/lower-port
>> and destination-port-range/lower-port.
>=20
> Actually, I was wrong here.  If the ACE type is access-list-entries-ip
> then these leafs MUST be set.
>=20
>> I don't think this is
>> intentional?  If not, make "source-port-range" and
>> "destination-port-range" to presence containers.
>>=20
>> the source-port-range and destination-port-range are containers within g=
rouping access-control-list-transport-header-fields in ietf-packet-fields.y=
ang . Are you saying if containers are used within groupings, they are forc=
ed?
>=20
> No fact that they are defined in groupings doesn't matter.  The
> problem is that source-port-range is a non-presence container, and
> lower-port is marked as mandatory.  This means that lower-port MUST be
> configured (... if any node in the same access-list-entries-ip case is
> set).
>=20
>=20
>=20
>> o grouping timerange
>>=20
>> The name "absolute" is very generic.  I suggest you change the name
>> "absolute" to "absolute-time" or something.
>>=20
>> agree with you and changed it.
>>=20
>> Is absolute time ranges supported across implementations?  I would
>> expect this to be optional to implement (i.e., add if-feature).
>>=20
>> Juniper, Cisco, Brocade support absolute and periodic/relative time rang=
es and from our experience it is pretty common across implementations.
>>=20
>> Are such absolute time ranges commonly used by operators?  What
>> about periodic times?
>> from my experience, for packet filtering it is mostly used with
>> absolute times.
>=20
> So you create it once for a certain absolute time, and once that has
> passed, the filter is removed?
>=20
>=20
>> Also, this grouping doesn't really belong to a module called
>> "ietf-packet-headers".
>=20
> Did you consider moving it?
>=20
> [...]
>=20
>> o We should have some consistency in how we name our example modules.
>>=20
>> RFC 7223 uses:
>>=20
>>   module ex-ethernet-bonding {
>>     namespace "http://example.com/ethernet-bonding";
>>=20
>> draft-ietf-netmod-routing-cfg-17 uses:
>>=20
>>   module example-rip {
>>    namespace "http://example.com/rip";
>>=20
>> I suggest you use one of these as well (we should put this into the
>> guidelines document!).
>>=20
>> And we should fix the pyang compiler as well, as it puts out warning whe=
n writing YANG as you mentioned above
>>=20
>> pyang --ietf example-newco-acl.yang
>> example-newco-acl.yang:4: warning: IETF rule (RFC 6087: 4.8): namespace =
value should be "urn:ietf:params:xml:ns:yang:example-newco-acl"
>=20
> Well, the --ietf flag to pyang is not intended to be used for
> examples.  All rules in 6087 are indented for standard modules, not
> for examples.  I think we need to clarify this in 6087bis.
>=20
>=20
>> Also, remove the "contact" and "organization" statements from the
>> example modules.
>>=20
>> I would, but then have problems with compiling the yang module
>> pyang --ietf example-newco-acl.yang
>=20
> See above.
>=20
>=20
>> o  In the example module, remove
>>=20
>>   reference " ";
>>=20
>> It looks very weird and doesn't give you anything.
>>=20
>> Please see above
>=20
> Since --ietf doesn't apply to example modules, it is safe to remove
> this unnecessary statement.
>=20
>=20
>=20
> /martin


From nobody Wed Mar 18 08:25:38 2015
Return-Path: <lhotka@nic.cz>
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 40EFB1A1A96 for <netmod@ietfa.amsl.com>; Wed, 18 Mar 2015 08:25:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level: 
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9] 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 OC_C97R7ETDk for <netmod@ietfa.amsl.com>; Wed, 18 Mar 2015 08:25:34 -0700 (PDT)
Received: from trail.lhotka.name (trail.lhotka.name [77.48.224.143]) by ietfa.amsl.com (Postfix) with ESMTP id 5DCA91A1A6F for <netmod@ietf.org>; Wed, 18 Mar 2015 08:25:34 -0700 (PDT)
Received: from localhost (unknown [195.113.220.110]) by trail.lhotka.name (Postfix) with ESMTPSA id 87D4C1CC0A86; Wed, 18 Mar 2015 16:25:32 +0100 (CET)
From: Ladislav Lhotka <lhotka@nic.cz>
To: Andy Bierman <andy@yumaworks.com>
In-Reply-To: <CABCOCHSojC4R69j8Sv3EMS_712wGgmipvCBxJpPS7MX1r1JsuQ@mail.gmail.com>
References: <CABCOCHSPMs-Ub882Becw=8=PQmW5V_A6wwVuBHvGMhR-dwASLQ@mail.gmail.com> <m2lhiutsql.fsf@birdie.labs.nic.cz> <CABCOCHSojC4R69j8Sv3EMS_712wGgmipvCBxJpPS7MX1r1JsuQ@mail.gmail.com>
User-Agent: Notmuch/0.19 (http://notmuchmail.org) Emacs/24.4.51.2 (x86_64-apple-darwin14.0.0)
Date: Wed, 18 Mar 2015 16:25:32 +0100
Message-ID: <m2bnjqqqdv.fsf@birdie.labs.nic.cz>
MIME-Version: 1.0
Content-Type: text/plain
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/oUkKQtmLG4kiyJ198gIn0hlQarU>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] YANG conformance for augments
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: <http://www.ietf.org/mail-archive/web/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: Wed, 18 Mar 2015 15:25:37 -0000

Andy Bierman <andy@yumaworks.com> writes:

> On Wed, Mar 18, 2015 at 5:06 AM, Ladislav Lhotka <lhotka@nic.cz> wrote:
>> Andy Bierman <andy@yumaworks.com> writes:
>>
>>> Hi,
>>>
>>> Assume 3 simple YANG modules, aug1, aug2, and aug3.
>>>
>>>
>>> module aug1 {
>>>     namespace "http://yumaworks.com/ns/aug1";
>>>     prefix "aug1";
>>>     revision 2015-03-15;
>>>
>>>     container A { }
>>>     leaf L1 { type string; }
>>> }
>>>
>>> module aug2 {
>>>     namespace "http://yumaworks.com/ns/aug2";
>>>     prefix "aug2";
>>>     import aug1 { prefix aug1; }
>>>     revision 2015-03-15;
>>>
>>>     augment /aug1:A {
>>>       container B { }
>>>     }
>>>     leaf L2 { type string; }
>>>      /* could also have aug2 augmenting more modules
>>>       *  augment /foo:X {  .... }
>>>       */
>>> }
>>>
>>> module aug3 {
>>>     namespace "http://yumaworks.com/ns/aug3";
>>>     prefix "aug3";
>>>     import aug1 { prefix aug1; }
>>>     import aug2 { prefix aug2; }
>>>     revision 2015-03-15;
>>>
>>>     augment /aug1:A/aug2:B {
>>>       container C { }
>>>     }
>>> }
>>>
>>>
>>> According to some proposals, a server MUST implement all of aug1
>>> in order to advertise conformance to aug2 and aug3.  So in order for
>>> module aug2 to extend the NP container /aug1:A it MUST implement
>>> /aug1:L1 as well.
>>
>> An augment makes sense only if the augmented module is included in hello
>> or otherwise declared to be a part of the data model. And yes, this then
>> implies that the augmented module must be implemented.
>>
>
> Why is the advertisement of aug1 or aug2 required, instead
> of just the import-stmt in the augmenting module?

Because the server has to implement the augment's target node, otherwise
the augment doesn't make sense. An import only gives the importing module
access to (some) nodes in the imported module, without side effects.

>
> Are you suggesting the way that new functionality is attached to
> old functionality changes the YANG conformance?

I don't think so.

>
> Let's say to fiztest module provides some config parameters
> to run some packet tests over an interface.
>
>    container fizbin-parms { .... }
>
> There are 3 ways I can attach this container to an interface
>
> 1) augment
>
>     augment /if:interfaces/if:interface {
>         container fizbin-parms { ... }
>     }
>
> 2) leafref coupling
>
>    container fizbin-parms {
>         leaf itf-name { type if:interface-ref; }
>         ...
>     }
>
> 3) type coupling
>
>     container fizbin-parms {
>         leaf itf-name { type stringf; }
>          ...
>     }
>
>
> Note that (2) only requires importing a typedef and (3) does not require
> an import-stmt at all.  In every case (1 - 3) the implementation
> requirements for fizbin-parms are exactly the same (i.e.,
> ability to send and receive packets on the specified interface.
> Probably needs to understand the 'type' and 'enabled' leafs).
>
> IMO the conformance requirements to implement the fizbin module
> should not depend on how it is coupled to the interfaces module.

If the server doesn't implement ietf-interfaces, then IMO both (1) and
(2) mean that fiztest alone is invalid. I believe pyang will emit an
error message in both cases.

Lada

>
>
>> Lada
>
> Andy
>
>>
>>>
>>> Module aug3 MUST implement all of module aug1 and aug2,
>>> adding 'B' and 'C'.  If aug2 augmented another external module
>>> like 'foo:/X' then aug3 MUST implement the entire foo module.
>>>
>>> IMO the direct coupling of YANG module contents to conformance
>>> is not a good idea.  The simplistic conformance rules for augment
>>> (especially for NP containers) are not going to work.
>>>
>>>
>>> Andy
>>>
>>> _______________________________________________
>>> netmod mailing list
>>> netmod@ietf.org
>>> https://www.ietf.org/mailman/listinfo/netmod
>>
>> --
>> Ladislav Lhotka, CZ.NIC Labs
>> PGP Key ID: E74E8C0C

-- 
Ladislav Lhotka, CZ.NIC Labs
PGP Key ID: E74E8C0C


From nobody Wed Mar 18 09:18:17 2015
Return-Path: <bclaise@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 1A3ED1A6F28 for <netmod@ietfa.amsl.com>; Wed, 18 Mar 2015 09:18:17 -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 IHLGxAo_2yt5 for <netmod@ietfa.amsl.com>; Wed, 18 Mar 2015 09:18:15 -0700 (PDT)
Received: from aer-iport-3.cisco.com (aer-iport-3.cisco.com [173.38.203.53]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B0ACE1A1AFC for <netmod@ietf.org>; Wed, 18 Mar 2015 09:18:14 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=4229; q=dns/txt; s=iport; t=1426695494; x=1427905094; h=message-id:date:from:mime-version:to:subject:references: in-reply-to:content-transfer-encoding; bh=nI7sG0DNgDDY16Stkk9QiSrFSp64R61lgFHjAdTU8Sc=; b=UbEfnCFsglbuXVJ9ysKQidFPpQp3cFeDNS3XsMv47rMFvkBdze+VldEp Dm91xQuBCKYyCC2+eyCWRJOpOl0KoZNELjVzNWXRI/wApPouunD2iyz9g ozF9Htqv7Ff7B7FCZfyL3ZfGsbUIBdFYKdFObI6oybabGW0lN+vbxsXY+ 0=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0CmBAAcpAlV/xbLJq1c0DUCgg8RAQEBAQEBAXyEDwEBAQMBMgEFPwERCxgJFg8JAwIBAgFFBgEMCAEBiCMIzHoBAQEBAQEBAwEBAQEBARyLF4R4hC0BBJotgRuFZolcg0cjgjKBPT2CdAEBAQ
X-IronPort-AV: E=Sophos;i="5.11,423,1422921600"; d="scan'208";a="386727768"
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; 18 Mar 2015 16:18:12 +0000
Received: from [10.60.67.85] (ams-bclaise-8914.cisco.com [10.60.67.85]) by aer-core-2.cisco.com (8.14.5/8.14.5) with ESMTP id t2IGICTd030263; Wed, 18 Mar 2015 16:18:12 GMT
Message-ID: <5509A544.7010605@cisco.com>
Date: Wed, 18 Mar 2015 17:18:12 +0100
From: Benoit Claise <bclaise@cisco.com>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0
MIME-Version: 1.0
To: NETMOD Working Group <netmod@ietf.org>, Dean Bogdanovic <deanb@juniper.net>, Carl Moberg <calle@tail-f.com>
References: <20150309224605.8142.81816.idtracker@ietfa.amsl.com> <5501A722.5020402@cisco.com> <20150313073423.GA17182@elstar.local>
In-Reply-To: <20150313073423.GA17182@elstar.local>
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 8bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/G0lw6dwKtXIMNO7zfb3CoyNrf7Q>
Subject: Re: [netmod] New Version Notification for draft-bogdanovic-netmod-yang-model-classification-01.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: <http://www.ietf.org/mail-archive/web/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: Wed, 18 Mar 2015 16:18:17 -0000

Hi Jürgen,
> On Thu, Mar 12, 2015 at 03:48:02PM +0100, Benoit Claise wrote:
>> Dear all,
>>
>> We would appreciate your review on this new draft version.
>>
> Speaking as technical contributor...
>
> - I am confused by section 3.2 which talks about differences between
>    vendor models and standard models. It says: "Key difference between
>    those two is what is implemented. Vendor device model will always
>    describe what is implemented, which can ber more or even less then
>    in standard model." This kind of implies that standard models do not
>    describe what is implemented. If this is true, we should perhaps
>    stop wasting our time. And I think the discussion of vendor model
>    vs. standard model does not really belong into this section or does
>    this only apply to NE (Network Element) YANG models?
You're right. Will be corrected.
>
> - It would perhaps be a good idea if the document would clearly define
>    terms (and maybe acronyms) that can be reused such as
>
>    Network Element Model (NEM): ...
>
>    Network Service Model (NSM): ...
>
>    [...]
I thought we introduced those definitions before submitting. Now 
corrected in our temp version.
>
> - The second dimension is a bit confusing for me because it seems to
>    make multiple distinctions and perhaps this is really multiple
>    dimensions merged into one. On the distinction standard
>    vs. proprietary: It sounds like binary while I believe in reality it
>    is a continuum. There is surely the dimension "who has change
>    control and what are the procedures to make updates" but there is
>    also the dimension "what became a pratically largely deployed
>    model". (I find it interesting that ITU is mentioned, I would expect
>    or hope that IEEE is going to produce YANG data models way earlier.)
Or the fact that vendors have to use proprietary models while waiting 
for SDO to develop the standard ones.
>
> - I find the classification in section 4 a bit confusing:
>
>        Standard YANG Model
>        Standard Extension YANG Model
>        Proprietary Extension to Standard YANG Model
>        Vendor Configuration Model
>        Proprietary YANG Model
>
>     What is the distinction between Vendor Configuration Model and
>     Proprietary YANG Model - are they not the same? See also next item
>     below...
Not really. Most vendors still use CLI.

   Vendor Configuration Model: It describes all configurable
       capabilities of the device and what device vendor exposes for
       configuration.  The vendor configuration model can be CLI or YANG-
       based.


>
>     I am not sure whether it would be useful to classify the first two
>     into three categories. We tend to have some:
>
>     - Standard Core YANG Models (SCM) (e.g., interfaces),
>     - Standard Technology Base YANG Models (STBM) that are technology
>       specific extensions of core models (e.g., interface type specific
>       models), and
>     - Standard Technology Extension YANG Models (STEM) that are
>       extensions of the basic technology specific models (that are
>       usually added over time).
We tried to clarify.
>
>     Perhaps it is not worth distinguishing these but clearly building
>     the core models is a rather complicated exercise since errors or
>     limitations in the core models impact potentially many other
>     models.
Agreed.  Now, what we consider a non-core model now can become a core 
model for someone else in the future.
So the boundary is not clear.

Thanks for your review. We're actively working on the next version.

Regards, Benoit
>
> - The text in section 4.4 seems to be more about implementation
>    aspects, e.g., how can a vendor support both proprietary and
>    standard models or migrate from proprietary models to standard
>    models or how to map standard and prorietary models to the
>    underlying internal configuration model. I think this is a topic
>    worthwhile to discuss somewhere but I do not think this belongs into
>    the classification. The vendor internal model is an implementation
>    concern, not a classification concern.
>
> /js
>


From nobody Wed Mar 18 09:39:50 2015
Return-Path: <andy@yumaworks.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 2CFDA1A6FF1 for <netmod@ietfa.amsl.com>; Wed, 18 Mar 2015 09:39:49 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.979
X-Spam-Level: 
X-Spam-Status: No, score=-1.979 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] 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 h5DrbQCvhe6C for <netmod@ietfa.amsl.com>; Wed, 18 Mar 2015 09:39:47 -0700 (PDT)
Received: from mail-lb0-f175.google.com (mail-lb0-f175.google.com [209.85.217.175]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C1ABB1A86FE for <netmod@ietf.org>; Wed, 18 Mar 2015 09:39:46 -0700 (PDT)
Received: by lbcgn8 with SMTP id gn8so33932901lbc.2 for <netmod@ietf.org>; Wed, 18 Mar 2015 09:39:45 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=wdc2tybbtJzsnscs4o7G1AlgqWuGOsJaGFfl8qFpEY4=; b=enILffG+TasOLv0mWKD0B75crX2ACqp0Z3zG9BTwS9DCVl5b+vOi12xGilFlePvCq5 gCeOYEtSfiErm9Ada69aP/b/5g/V4njbGMrVX8qyIFicgnmLJ8fsDJ3DM2qSLk7qiiLt iU895EpD+oncmclRigi/RWcVcr3ozKm95ACsooPey68IrN2z/fOmJmxDpnElWJVfzJnW P+D/fT1hbtkLXkTg8qflcjznt8cng+nI7ydM75/NgUObQUCCeFxWWZgCtDlJl/twLitL CHMhOpB516yUQRqM+Ll5eEOwtFYTLeh37FrZ5/bhBNJtmmIvGg9GhMLv2nifAxUC2eQm GwSw==
X-Gm-Message-State: ALoCoQmDxpcgVUUPdwR9/GilBT+AbJs77o2MxgMc6ljhzyLGk6Cxa1ct6Ad8AZFqaZBXz4qsJUcq
MIME-Version: 1.0
X-Received: by 10.112.64.193 with SMTP id q1mr65314534lbs.88.1426696784924; Wed, 18 Mar 2015 09:39:44 -0700 (PDT)
Received: by 10.112.144.36 with HTTP; Wed, 18 Mar 2015 09:39:44 -0700 (PDT)
In-Reply-To: <m2bnjqqqdv.fsf@birdie.labs.nic.cz>
References: <CABCOCHSPMs-Ub882Becw=8=PQmW5V_A6wwVuBHvGMhR-dwASLQ@mail.gmail.com> <m2lhiutsql.fsf@birdie.labs.nic.cz> <CABCOCHSojC4R69j8Sv3EMS_712wGgmipvCBxJpPS7MX1r1JsuQ@mail.gmail.com> <m2bnjqqqdv.fsf@birdie.labs.nic.cz>
Date: Wed, 18 Mar 2015 09:39:44 -0700
Message-ID: <CABCOCHQmfGie=S2bGY5h+3aGdPu5+NaDN522Q4bLy1o-Mkb1Dw@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Ladislav Lhotka <lhotka@nic.cz>
Content-Type: text/plain; charset=UTF-8
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/KcPmfs0LSyQPH9iBmAJnSh_yPls>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] YANG conformance for augments
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: <http://www.ietf.org/mail-archive/web/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: Wed, 18 Mar 2015 16:39:49 -0000

On Wed, Mar 18, 2015 at 8:25 AM, Ladislav Lhotka <lhotka@nic.cz> wrote:
> Andy Bierman <andy@yumaworks.com> writes:
>
>> On Wed, Mar 18, 2015 at 5:06 AM, Ladislav Lhotka <lhotka@nic.cz> wrote:
>>> Andy Bierman <andy@yumaworks.com> writes:
>>>
>>>> Hi,
>>>>
>>>> Assume 3 simple YANG modules, aug1, aug2, and aug3.
>>>>
>>>>
>>>> module aug1 {
>>>>     namespace "http://yumaworks.com/ns/aug1";
>>>>     prefix "aug1";
>>>>     revision 2015-03-15;
>>>>
>>>>     container A { }
>>>>     leaf L1 { type string; }
>>>> }
>>>>
>>>> module aug2 {
>>>>     namespace "http://yumaworks.com/ns/aug2";
>>>>     prefix "aug2";
>>>>     import aug1 { prefix aug1; }
>>>>     revision 2015-03-15;
>>>>
>>>>     augment /aug1:A {
>>>>       container B { }
>>>>     }
>>>>     leaf L2 { type string; }
>>>>      /* could also have aug2 augmenting more modules
>>>>       *  augment /foo:X {  .... }
>>>>       */
>>>> }
>>>>
>>>> module aug3 {
>>>>     namespace "http://yumaworks.com/ns/aug3";
>>>>     prefix "aug3";
>>>>     import aug1 { prefix aug1; }
>>>>     import aug2 { prefix aug2; }
>>>>     revision 2015-03-15;
>>>>
>>>>     augment /aug1:A/aug2:B {
>>>>       container C { }
>>>>     }
>>>> }
>>>>
>>>>
>>>> According to some proposals, a server MUST implement all of aug1
>>>> in order to advertise conformance to aug2 and aug3.  So in order for
>>>> module aug2 to extend the NP container /aug1:A it MUST implement
>>>> /aug1:L1 as well.
>>>
>>> An augment makes sense only if the augmented module is included in hello
>>> or otherwise declared to be a part of the data model. And yes, this then
>>> implies that the augmented module must be implemented.
>>>
>>
>> Why is the advertisement of aug1 or aug2 required, instead
>> of just the import-stmt in the augmenting module?
>
> Because the server has to implement the augment's target node, otherwise
> the augment doesn't make sense. An import only gives the importing module
> access to (some) nodes in the imported module, without side effects.
>
>>
>> Are you suggesting the way that new functionality is attached to
>> old functionality changes the YANG conformance?
>
> I don't think so.
>
>>
>> Let's say to fiztest module provides some config parameters
>> to run some packet tests over an interface.
>>
>>    container fizbin-parms { .... }
>>
>> There are 3 ways I can attach this container to an interface
>>
>> 1) augment
>>
>>     augment /if:interfaces/if:interface {
>>         container fizbin-parms { ... }
>>     }
>>
>> 2) leafref coupling
>>
>>    container fizbin-parms {
>>         leaf itf-name { type if:interface-ref; }
>>         ...
>>     }
>>
>> 3) type coupling
>>
>>     container fizbin-parms {
>>         leaf itf-name { type stringf; }
>>          ...
>>     }
>>
>>
>> Note that (2) only requires importing a typedef and (3) does not require
>> an import-stmt at all.  In every case (1 - 3) the implementation
>> requirements for fizbin-parms are exactly the same (i.e.,
>> ability to send and receive packets on the specified interface.
>> Probably needs to understand the 'type' and 'enabled' leafs).
>>
>> IMO the conformance requirements to implement the fizbin module
>> should not depend on how it is coupled to the interfaces module.
>
> If the server doesn't implement ietf-interfaces, then IMO both (1) and
> (2) mean that fiztest alone is invalid. I believe pyang will emit an
> error message in both cases.
>

How does pyang know what the server is advertising, just from the YANG module?
What is the error?

In all cases the example module needs to identify which interface
to apply the fiztest parameters. The "augment",  "leafref"
and "type string" mechanisms do not really change the
implementation relationship between these 2 modules.
However, it seems the conformance specification is directly coupled
to the particular YANG statements used.


> Lada

Andy

>
>>
>>
>>> Lada
>>
>> Andy
>>
>>>
>>>>
>>>> Module aug3 MUST implement all of module aug1 and aug2,
>>>> adding 'B' and 'C'.  If aug2 augmented another external module
>>>> like 'foo:/X' then aug3 MUST implement the entire foo module.
>>>>
>>>> IMO the direct coupling of YANG module contents to conformance
>>>> is not a good idea.  The simplistic conformance rules for augment
>>>> (especially for NP containers) are not going to work.
>>>>
>>>>
>>>> Andy
>>>>
>>>> _______________________________________________
>>>> netmod mailing list
>>>> netmod@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/netmod
>>>
>>> --
>>> Ladislav Lhotka, CZ.NIC Labs
>>> PGP Key ID: E74E8C0C
>
> --
> Ladislav Lhotka, CZ.NIC Labs
> PGP Key ID: E74E8C0C


From nobody Wed Mar 18 10:28:05 2015
Return-Path: <mbj@tail-f.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 C6AEC1A8ABC for <netmod@ietfa.amsl.com>; Wed, 18 Mar 2015 10:28:03 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.91
X-Spam-Level: 
X-Spam-Status: No, score=-1.91 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, T_RP_MATCHES_RCVD=-0.01] 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 eJhOfIPa8KnO for <netmod@ietfa.amsl.com>; Wed, 18 Mar 2015 10:28:01 -0700 (PDT)
Received: from mail.tail-f.com (mail.tail-f.com [83.241.162.140]) by ietfa.amsl.com (Postfix) with ESMTP id 7BC1C1A8ADB for <netmod@ietf.org>; Wed, 18 Mar 2015 10:27:57 -0700 (PDT)
Received: from localhost (unknown [213.136.39.104]) by mail.tail-f.com (Postfix) with ESMTPSA id 87B971280477; Wed, 18 Mar 2015 18:27:54 +0100 (CET)
Date: Wed, 18 Mar 2015 18:27:44 +0100 (CET)
Message-Id: <20150318.182744.1735018183670474714.mbj@tail-f.com>
To: deanb@juniper.net
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <104E9EDF-2B1C-46FB-9383-0DB68EB2DA3F@juniper.net>
References: <C454584D-712E-4DDF-BF08-3218113B496A@juniper.net> <20150318.102451.1461439291751362391.mbj@tail-f.com> <104E9EDF-2B1C-46FB-9383-0DB68EB2DA3F@juniper.net>
X-Mailer: Mew version 6.5 on Emacs 24.3 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/lw6o6fsa4vgD-mu4UV4XRjs7XaA>
Cc: netmod@ietf.org
Subject: Re: [netmod] comments on draft-ietf-netmod-acl-model-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: <http://www.ietf.org/mail-archive/web/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: Wed, 18 Mar 2015 17:28:04 -0000

Dean Bogdanovic <deanb@juniper.net> wrote:
> Martin,
> 
> Will you be present at the YANG Doctor session this Sunday? If so,
> lets have a discussion on your comments there

Yes I will be there, let's talk then.


/martin


> 
> Dean
> 
> On Mar 18, 2015, at 5:24 AM, Martin Bjorklund <mbj@tail-f.com> wrote:
> 
> > Hi,
> > 
> > Comments inline.
> > 
> > Dean Bogdanovic <deanb@juniper.net> wrote:
> >> Martin,
> >> 
> >> Thank you for the review of the draft.
> >> On Mar 7, 2015, at 6:52 AM, Martin Bjorklund
> >> <mbj@tail-f.com<mailto:mbj@tail-f.com>> wrote:
> >> 
> >> Hi,
> >> 
> >> I have reviewed draft-ietf-netmod-acl-model-02.txt, and here are my
> >> comments:
> >> 
> >> o The extensibility model is a bit unclear.
> >> 
> >> - Each ACL has a type, an indentityref, which is good, but then this
> >>   type is not really used in the model.  It is just a leaf with a
> >>   value, with no indications of how it is supposed to be implemented
> >>   or used by the operator.
> >> 
> >>   I would assume that the type restricts what can be configured in
> >>   each ACE.  But that it is not the case, which means that you can
> >>   set the ACL type to be "eth-access-control-list", but still
> >>   configure an ACE with "source-ipv6-network" (for example).
> >> instead of this
> >> leaf access-control-list-type {
> >> type access-control-list-type;
> >> description "Type of access control list. When this type is not
> >> explicitely specified, if vendor implementation permits, the access
> >> control
> >> entires in the list can be mixed, by containing L2, L3 and L4
> >> entries";
> >> }
> >> 
> >> does this description answer your concern
> >> description "It is recommended to have a access control list with
> >> uniform access list entries, all of the same type. When this type is
> >> not explicitely specified, if vendor implementation permits, the
> >> access control entries in the list can be mixed, by containing L2, L3
> >> and L4 entries";
> > 
> > 
> > No not really.  It is clear from the design that each ACE has its own
> > type:
> >            choice access-list-entries-type {
> >              description "Type of access list entry.";
> > 
> > But this type is not in any way tied to the ACL type.  I think you are
> > saying that depending on implementation, there MAY be some unknown
> > connection between the ACL type and the ACE type.  Some
> > implementations may be ok with not setting the ACL type, some may be
> > ok with having an ACL type but then allows mixed ACEs anyway, and some
> > may require the ACL type to match the ACE type.  How will a client
> > know?  How can this be interoperable?
> > 
> > 
> >>   Also, the type is optional to configure, i.e., you can configure a
> >>   type-less ACL.
> >> 
> >>   This makes it unclear what the type is supposed to do.
> >> 
> >> With typeless ACL we are future proofing the model, as you can put
> >> anything in the model.
> >> 
> >> - Section 3.1 says:
> >> 
> >>     The "ietf-packet-fields" modules can easily be extended to reuse
> >>     definitions from other modules such as IPFIX [RFC5101] or
> >>     migrate proprietary augmented module definitions into the
> >>     standard module.
> >> 
> >>   I do not understand this.  What does "easily be extended" refer
> >>   to?  The only way to extend this model - as it is written - is by
> >>   publishing a new revision of the model (in a new RFC).
> >> 
> >> We have changed the wording and replaced extended with augmented, so
> >> it reads now
> >> 
> >> "...can be easily augmented."
> > 
> > But this is not correct.   This module contains a bunch of groupings,
> > and groupings cannot be augmented.
> > 
> > [...]
> > 
> >>   This makes me wonder about the design where the generic module
> >>   imports and uses definitions from the special module.  Wouldn't it
> >>   make more sense to do it the other way around?  I.e., let the
> >>   generic module be generic, and augment it from the specific
> >>   module?
> > 
> > Did you consider this alternative design?
> > 
> > [...]
> > 
> >> o Why did you change the name from "acl" to "access-control-list" in
> >> many places between -01 and -02?  I didn't see any comments about
> >> this on the ML.  The current naming is not consistent, and the names
> >> are pretty long.  For example, you have "access-control-list",
> >> "access-list", and "acl".
> >> 
> >> I suggest the following names:
> >> 
> >> module ietf-access-control-lists
> >> 
> >> top-level container access-control-lists  (or just acls)
> >> 
> >> then remove redundant "access-control-list-" prefix from the names
> >> to get something like this:
> >> 
> >> module: ietf-access-control-lists
> >>  +--rw access-control-lists
> >>     +--rw acl* [name]
> >>        +--rw name                   string
> >>        +--rw type?                  access-control-list-type
> >>        +--ro oper-data
> >>        |  +--ro (targets)?
> >>        |     +--:(interface-name)
> >>        |        +--ro interface-name*   string
> >>        +--rw access-list-entries
> >>           +--rw ace* [name]
> >>              +--rw name                             string
> >>              +--rw matches
> >> 
> >> In general, I think you should review all node names and make sure
> >> that they are good.  It is often very useful to try out a model in
> >> one of the generic implementations that are available, to get a
> >> feeling for the structure and names of the data model.
> >> 
> >> In general, we prefer to use fully extended names, instead of
> >> abbreviations as it removes ambiguity and it is easier to read. Your
> >> suggestion is a pretty good compromise, but would like to hear more
> >> from other people on this topic as well.
> > 
> > Ok.
> > 
> > [...]
> > 
> >> The way your model is designed, it is not possible to create any
> >> type of ACE without also specifiying source-port-range/lower-port
> >> and destination-port-range/lower-port.
> > 
> > Actually, I was wrong here.  If the ACE type is access-list-entries-ip
> > then these leafs MUST be set.
> > 
> >> I don't think this is
> >> intentional?  If not, make "source-port-range" and
> >> "destination-port-range" to presence containers.
> >> 
> >> the source-port-range and destination-port-range are containers within
> >> grouping access-control-list-transport-header-fields in
> >> ietf-packet-fields.yang . Are you saying if containers are used within
> >> groupings, they are forced?
> > 
> > No fact that they are defined in groupings doesn't matter.  The
> > problem is that source-port-range is a non-presence container, and
> > lower-port is marked as mandatory.  This means that lower-port MUST be
> > configured (... if any node in the same access-list-entries-ip case is
> > set).
> > 
> > 
> > 
> >> o grouping timerange
> >> 
> >> The name "absolute" is very generic.  I suggest you change the name
> >> "absolute" to "absolute-time" or something.
> >> 
> >> agree with you and changed it.
> >> 
> >> Is absolute time ranges supported across implementations?  I would
> >> expect this to be optional to implement (i.e., add if-feature).
> >> 
> >> Juniper, Cisco, Brocade support absolute and periodic/relative time
> >> ranges and from our experience it is pretty common across
> >> implementations.
> >> 
> >> Are such absolute time ranges commonly used by operators?  What
> >> about periodic times?
> >> from my experience, for packet filtering it is mostly used with
> >> absolute times.
> > 
> > So you create it once for a certain absolute time, and once that has
> > passed, the filter is removed?
> > 
> > 
> >> Also, this grouping doesn't really belong to a module called
> >> "ietf-packet-headers".
> > 
> > Did you consider moving it?
> > 
> > [...]
> > 
> >> o We should have some consistency in how we name our example modules.
> >> 
> >> RFC 7223 uses:
> >> 
> >>   module ex-ethernet-bonding {
> >>     namespace "http://example.com/ethernet-bonding";
> >> 
> >> draft-ietf-netmod-routing-cfg-17 uses:
> >> 
> >>   module example-rip {
> >>    namespace "http://example.com/rip";
> >> 
> >> I suggest you use one of these as well (we should put this into the
> >> guidelines document!).
> >> 
> >> And we should fix the pyang compiler as well, as it puts out warning
> >> when writing YANG as you mentioned above
> >> 
> >> pyang --ietf example-newco-acl.yang
> >> example-newco-acl.yang:4: warning: IETF rule (RFC 6087: 4.8):
> >> namespace value should be
> >> "urn:ietf:params:xml:ns:yang:example-newco-acl"
> > 
> > Well, the --ietf flag to pyang is not intended to be used for
> > examples.  All rules in 6087 are indented for standard modules, not
> > for examples.  I think we need to clarify this in 6087bis.
> > 
> > 
> >> Also, remove the "contact" and "organization" statements from the
> >> example modules.
> >> 
> >> I would, but then have problems with compiling the yang module
> >> pyang --ietf example-newco-acl.yang
> > 
> > See above.
> > 
> > 
> >> o  In the example module, remove
> >> 
> >>   reference " ";
> >> 
> >> It looks very weird and doesn't give you anything.
> >> 
> >> Please see above
> > 
> > Since --ietf doesn't apply to example modules, it is safe to remove
> > this unnecessary statement.
> > 
> > 
> > 
> > /martin
> 


From nobody Wed Mar 18 11:25:29 2015
Return-Path: <lhotka@nic.cz>
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 3BE2C1A900A for <netmod@ietfa.amsl.com>; Wed, 18 Mar 2015 11:25:28 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.661
X-Spam-Level: 
X-Spam-Status: No, score=-0.661 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HELO_EQ_CZ=0.445, HOST_EQ_CZ=0.904, T_RP_MATCHES_RCVD=-0.01] autolearn=no
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 No4Ba39hTj0E for <netmod@ietfa.amsl.com>; Wed, 18 Mar 2015 11:25:26 -0700 (PDT)
Received: from mail.nic.cz (mail.nic.cz [IPv6:2001:1488:800:400::400]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D9FF51A900B for <netmod@ietf.org>; Wed, 18 Mar 2015 11:25:25 -0700 (PDT)
Received: from [IPv6:2a01:5e0:29:ffff:1889:630b:a713:2b00] (unknown [IPv6:2a01:5e0:29:ffff:1889:630b:a713:2b00]) by mail.nic.cz (Postfix) with ESMTPSA id 419E613F941; Wed, 18 Mar 2015 19:25:23 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=nic.cz; s=default; t=1426703123; bh=ClHO5MpCkRk81crHALhr68967JrYgLMXdiq+gP0UYBo=; h=Content-Type:Mime-Version:Subject:From:In-Reply-To:Date:Cc: Content-Transfer-Encoding:Message-Id:References:To; b=IfxTznpNIJYEuGWhgQ9GlXdcY6sN7AqidWD+j8yMi9oUUYwrQFGiYFr76etTz2uGa fETulGtnd5R/BPgHSrSejW23hMH5+nWcxGLXuJfQVa06eXbwIP93xkZga6BBewd1AM kThl5TQh/c3RZxQvbKY4zf9q+0XtnFuvPPsX3Dqs=
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2070.6\))
From: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <CABCOCHQmfGie=S2bGY5h+3aGdPu5+NaDN522Q4bLy1o-Mkb1Dw@mail.gmail.com>
Date: Wed, 18 Mar 2015 19:25:25 +0100
Content-Transfer-Encoding: quoted-printable
Message-Id: <12574439-E42B-4475-A49E-CC10B6BD5C37@nic.cz>
References: <CABCOCHSPMs-Ub882Becw=8=PQmW5V_A6wwVuBHvGMhR-dwASLQ@mail.gmail.com> <m2lhiutsql.fsf@birdie.labs.nic.cz> <CABCOCHSojC4R69j8Sv3EMS_712wGgmipvCBxJpPS7MX1r1JsuQ@mail.gmail.com> <m2bnjqqqdv.fsf@birdie.labs.nic.cz> <CABCOCHQmfGie=S2bGY5h+3aGdPu5+NaDN522Q4bLy1o-Mkb1Dw@mail.gmail.com>
To: Andy Bierman <andy@yumaworks.com>
X-Mailer: Apple Mail (2.2070.6)
X-Virus-Scanned: clamav-milter 0.98.6 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/ewcjTeguXnqD4MhAsqAUFD4sSQ8>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] YANG conformance for augments
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: <http://www.ietf.org/mail-archive/web/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: Wed, 18 Mar 2015 18:25:28 -0000

> On 18 Mar 2015, at 17:39, Andy Bierman <andy@yumaworks.com> wrote:
>=20
> On Wed, Mar 18, 2015 at 8:25 AM, Ladislav Lhotka <lhotka@nic.cz> =
wrote:
>> Andy Bierman <andy@yumaworks.com> writes:
>>=20
>>> On Wed, Mar 18, 2015 at 5:06 AM, Ladislav Lhotka <lhotka@nic.cz> =
wrote:
>>>> Andy Bierman <andy@yumaworks.com> writes:
>>>>=20
>>>>> Hi,
>>>>>=20
>>>>> Assume 3 simple YANG modules, aug1, aug2, and aug3.
>>>>>=20
>>>>>=20
>>>>> module aug1 {
>>>>>    namespace "http://yumaworks.com/ns/aug1";
>>>>>    prefix "aug1";
>>>>>    revision 2015-03-15;
>>>>>=20
>>>>>    container A { }
>>>>>    leaf L1 { type string; }
>>>>> }
>>>>>=20
>>>>> module aug2 {
>>>>>    namespace "http://yumaworks.com/ns/aug2";
>>>>>    prefix "aug2";
>>>>>    import aug1 { prefix aug1; }
>>>>>    revision 2015-03-15;
>>>>>=20
>>>>>    augment /aug1:A {
>>>>>      container B { }
>>>>>    }
>>>>>    leaf L2 { type string; }
>>>>>     /* could also have aug2 augmenting more modules
>>>>>      *  augment /foo:X {  .... }
>>>>>      */
>>>>> }
>>>>>=20
>>>>> module aug3 {
>>>>>    namespace "http://yumaworks.com/ns/aug3";
>>>>>    prefix "aug3";
>>>>>    import aug1 { prefix aug1; }
>>>>>    import aug2 { prefix aug2; }
>>>>>    revision 2015-03-15;
>>>>>=20
>>>>>    augment /aug1:A/aug2:B {
>>>>>      container C { }
>>>>>    }
>>>>> }
>>>>>=20
>>>>>=20
>>>>> According to some proposals, a server MUST implement all of aug1
>>>>> in order to advertise conformance to aug2 and aug3.  So in order =
for
>>>>> module aug2 to extend the NP container /aug1:A it MUST implement
>>>>> /aug1:L1 as well.
>>>>=20
>>>> An augment makes sense only if the augmented module is included in =
hello
>>>> or otherwise declared to be a part of the data model. And yes, this =
then
>>>> implies that the augmented module must be implemented.
>>>>=20
>>>=20
>>> Why is the advertisement of aug1 or aug2 required, instead
>>> of just the import-stmt in the augmenting module?
>>=20
>> Because the server has to implement the augment's target node, =
otherwise
>> the augment doesn't make sense. An import only gives the importing =
module
>> access to (some) nodes in the imported module, without side effects.
>>=20
>>>=20
>>> Are you suggesting the way that new functionality is attached to
>>> old functionality changes the YANG conformance?
>>=20
>> I don't think so.
>>=20
>>>=20
>>> Let's say to fiztest module provides some config parameters
>>> to run some packet tests over an interface.
>>>=20
>>>   container fizbin-parms { .... }
>>>=20
>>> There are 3 ways I can attach this container to an interface
>>>=20
>>> 1) augment
>>>=20
>>>    augment /if:interfaces/if:interface {
>>>        container fizbin-parms { ... }
>>>    }
>>>=20
>>> 2) leafref coupling
>>>=20
>>>   container fizbin-parms {
>>>        leaf itf-name { type if:interface-ref; }
>>>        ...
>>>    }
>>>=20
>>> 3) type coupling
>>>=20
>>>    container fizbin-parms {
>>>        leaf itf-name { type stringf; }
>>>         ...
>>>    }
>>>=20
>>>=20
>>> Note that (2) only requires importing a typedef and (3) does not =
require
>>> an import-stmt at all.  In every case (1 - 3) the implementation
>>> requirements for fizbin-parms are exactly the same (i.e.,
>>> ability to send and receive packets on the specified interface.
>>> Probably needs to understand the 'type' and 'enabled' leafs).
>>>=20
>>> IMO the conformance requirements to implement the fizbin module
>>> should not depend on how it is coupled to the interfaces module.
>>=20
>> If the server doesn't implement ietf-interfaces, then IMO both (1) =
and
>> (2) mean that fiztest alone is invalid. I believe pyang will emit an
>> error message in both cases.
>>=20
>=20
> How does pyang know what the server is advertising, just from the YANG =
module?
> What is the error?

See https://github.com/mbj4668/pyang/wiki/Tutorial#yang-data-model

In fact, I think we should talk about a data model, which is the =
substance of the contract between the server and client, rather than =
about what the server implements or not.

The error is that (1) the target node for an augment doesn=E2=80=99t =
exist in the data model, and (2) a leafref=E2=80=99s path doesn=E2=80=99t =
exist in the data model.

Lada

>=20
> In all cases the example module needs to identify which interface
> to apply the fiztest parameters. The "augment",  "leafref"
> and "type string" mechanisms do not really change the
> implementation relationship between these 2 modules.
> However, it seems the conformance specification is directly coupled
> to the particular YANG statements used.
>=20
>=20
>> Lada
>=20
> Andy
>=20
>>=20
>>>=20
>>>=20
>>>> Lada
>>>=20
>>> Andy
>>>=20
>>>>=20
>>>>>=20
>>>>> Module aug3 MUST implement all of module aug1 and aug2,
>>>>> adding 'B' and 'C'.  If aug2 augmented another external module
>>>>> like 'foo:/X' then aug3 MUST implement the entire foo module.
>>>>>=20
>>>>> IMO the direct coupling of YANG module contents to conformance
>>>>> is not a good idea.  The simplistic conformance rules for augment
>>>>> (especially for NP containers) are not going to work.
>>>>>=20
>>>>>=20
>>>>> Andy
>>>>>=20
>>>>> _______________________________________________
>>>>> netmod mailing list
>>>>> netmod@ietf.org
>>>>> https://www.ietf.org/mailman/listinfo/netmod
>>>>=20
>>>> --
>>>> Ladislav Lhotka, CZ.NIC Labs
>>>> PGP Key ID: E74E8C0C
>>=20
>> --
>> Ladislav Lhotka, CZ.NIC Labs
>> PGP Key ID: E74E8C0C

--
Ladislav Lhotka, CZ.NIC Labs
PGP Key ID: E74E8C0C





From nobody Wed Mar 18 12:29:32 2015
Return-Path: <andy@yumaworks.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 4A6281A9093 for <netmod@ietfa.amsl.com>; Wed, 18 Mar 2015 12:29:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.979
X-Spam-Level: 
X-Spam-Status: No, score=-1.979 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] 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 Kyzu2iY0nIx2 for <netmod@ietfa.amsl.com>; Wed, 18 Mar 2015 12:29:27 -0700 (PDT)
Received: from mail-la0-f43.google.com (mail-la0-f43.google.com [209.85.215.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E52361A909F for <netmod@ietf.org>; Wed, 18 Mar 2015 12:29:24 -0700 (PDT)
Received: by labjg1 with SMTP id jg1so44691655lab.2 for <netmod@ietf.org>; Wed, 18 Mar 2015 12:29:23 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=x5Sf7/dM74bcSd0txjmRgfOmvgMLzyr7sBd5W0NceZY=; b=MfOot6kr0faXrWaJGQsNmKuJ8vLTUs+eB+LwPXL5o9egmZYYiBbw0oGRVuyVNPnWHl C/5eJ63P3K1ayP3CdCpuWWvsIC4rzQ07mwU3nIpaphK5PnuCdHafpsfOFc57TWyiuXbX +X1eVwmpF6A/YOgmq+FkUFVLdap5My5O9BSMkLOHZ0D5iU2WwphE9jgJVomrehjBnKKa JdpQIU7PqkCJswmfVpscRDVLfkPKil3qqWmCCXI5tGrK303fuzRtPBP9qi+m27bTnsmf KaCQLNPX10uX+0hTWUh7Z6plsTYZ3p4Hb7I9Dg5cuTExWnErVtRx/wtpVC1WubCFZkKa FXRg==
X-Gm-Message-State: ALoCoQmTh3Mld1NjRqWLPoQMo+odb/BceAjRlgPL53F9XVfBhNwy/1xjJXCjBWMptS15Jbx2nOWC
MIME-Version: 1.0
X-Received: by 10.112.167.231 with SMTP id zr7mr66244390lbb.123.1426706963431;  Wed, 18 Mar 2015 12:29:23 -0700 (PDT)
Received: by 10.112.144.36 with HTTP; Wed, 18 Mar 2015 12:29:23 -0700 (PDT)
In-Reply-To: <12574439-E42B-4475-A49E-CC10B6BD5C37@nic.cz>
References: <CABCOCHSPMs-Ub882Becw=8=PQmW5V_A6wwVuBHvGMhR-dwASLQ@mail.gmail.com> <m2lhiutsql.fsf@birdie.labs.nic.cz> <CABCOCHSojC4R69j8Sv3EMS_712wGgmipvCBxJpPS7MX1r1JsuQ@mail.gmail.com> <m2bnjqqqdv.fsf@birdie.labs.nic.cz> <CABCOCHQmfGie=S2bGY5h+3aGdPu5+NaDN522Q4bLy1o-Mkb1Dw@mail.gmail.com> <12574439-E42B-4475-A49E-CC10B6BD5C37@nic.cz>
Date: Wed, 18 Mar 2015 12:29:23 -0700
Message-ID: <CABCOCHQPgRj0QQmNWOb1rtRFm5rDLvuvMpGeYrMrbVhre3CErQ@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Ladislav Lhotka <lhotka@nic.cz>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/t7vOdCXRo52oKCp4-yJ3HP4fXEo>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] YANG conformance for augments
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: <http://www.ietf.org/mail-archive/web/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: Wed, 18 Mar 2015 19:29:30 -0000

On Wed, Mar 18, 2015 at 11:25 AM, Ladislav Lhotka <lhotka@nic.cz> wrote:
>
>> On 18 Mar 2015, at 17:39, Andy Bierman <andy@yumaworks.com> wrote:
>>
>> On Wed, Mar 18, 2015 at 8:25 AM, Ladislav Lhotka <lhotka@nic.cz> wrote:
>>> Andy Bierman <andy@yumaworks.com> writes:
>>>
>>>> On Wed, Mar 18, 2015 at 5:06 AM, Ladislav Lhotka <lhotka@nic.cz> wrote=
:
>>>>> Andy Bierman <andy@yumaworks.com> writes:
>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> Assume 3 simple YANG modules, aug1, aug2, and aug3.
>>>>>>
>>>>>>
>>>>>> module aug1 {
>>>>>>    namespace "http://yumaworks.com/ns/aug1";
>>>>>>    prefix "aug1";
>>>>>>    revision 2015-03-15;
>>>>>>
>>>>>>    container A { }
>>>>>>    leaf L1 { type string; }
>>>>>> }
>>>>>>
>>>>>> module aug2 {
>>>>>>    namespace "http://yumaworks.com/ns/aug2";
>>>>>>    prefix "aug2";
>>>>>>    import aug1 { prefix aug1; }
>>>>>>    revision 2015-03-15;
>>>>>>
>>>>>>    augment /aug1:A {
>>>>>>      container B { }
>>>>>>    }
>>>>>>    leaf L2 { type string; }
>>>>>>     /* could also have aug2 augmenting more modules
>>>>>>      *  augment /foo:X {  .... }
>>>>>>      */
>>>>>> }
>>>>>>
>>>>>> module aug3 {
>>>>>>    namespace "http://yumaworks.com/ns/aug3";
>>>>>>    prefix "aug3";
>>>>>>    import aug1 { prefix aug1; }
>>>>>>    import aug2 { prefix aug2; }
>>>>>>    revision 2015-03-15;
>>>>>>
>>>>>>    augment /aug1:A/aug2:B {
>>>>>>      container C { }
>>>>>>    }
>>>>>> }
>>>>>>
>>>>>>
>>>>>> According to some proposals, a server MUST implement all of aug1
>>>>>> in order to advertise conformance to aug2 and aug3.  So in order for
>>>>>> module aug2 to extend the NP container /aug1:A it MUST implement
>>>>>> /aug1:L1 as well.
>>>>>
>>>>> An augment makes sense only if the augmented module is included in he=
llo
>>>>> or otherwise declared to be a part of the data model. And yes, this t=
hen
>>>>> implies that the augmented module must be implemented.
>>>>>
>>>>
>>>> Why is the advertisement of aug1 or aug2 required, instead
>>>> of just the import-stmt in the augmenting module?
>>>
>>> Because the server has to implement the augment's target node, otherwis=
e
>>> the augment doesn't make sense. An import only gives the importing modu=
le
>>> access to (some) nodes in the imported module, without side effects.
>>>
>>>>
>>>> Are you suggesting the way that new functionality is attached to
>>>> old functionality changes the YANG conformance?
>>>
>>> I don't think so.
>>>
>>>>
>>>> Let's say to fiztest module provides some config parameters
>>>> to run some packet tests over an interface.
>>>>
>>>>   container fizbin-parms { .... }
>>>>
>>>> There are 3 ways I can attach this container to an interface
>>>>
>>>> 1) augment
>>>>
>>>>    augment /if:interfaces/if:interface {
>>>>        container fizbin-parms { ... }
>>>>    }
>>>>
>>>> 2) leafref coupling
>>>>
>>>>   container fizbin-parms {
>>>>        leaf itf-name { type if:interface-ref; }
>>>>        ...
>>>>    }
>>>>
>>>> 3) type coupling
>>>>
>>>>    container fizbin-parms {
>>>>        leaf itf-name { type stringf; }
>>>>         ...
>>>>    }
>>>>
>>>>
>>>> Note that (2) only requires importing a typedef and (3) does not requi=
re
>>>> an import-stmt at all.  In every case (1 - 3) the implementation
>>>> requirements for fizbin-parms are exactly the same (i.e.,
>>>> ability to send and receive packets on the specified interface.
>>>> Probably needs to understand the 'type' and 'enabled' leafs).
>>>>
>>>> IMO the conformance requirements to implement the fizbin module
>>>> should not depend on how it is coupled to the interfaces module.
>>>
>>> If the server doesn't implement ietf-interfaces, then IMO both (1) and
>>> (2) mean that fiztest alone is invalid. I believe pyang will emit an
>>> error message in both cases.
>>>
>>
>> How does pyang know what the server is advertising, just from the YANG m=
odule?
>> What is the error?
>
> See https://github.com/mbj4668/pyang/wiki/Tutorial#yang-data-model
>
> In fact, I think we should talk about a data model, which is the substanc=
e of the contract between the server and client, rather than about what the=
 server implements or not.
>
> The error is that (1) the target node for an augment doesn=E2=80=99t exis=
t in the data model, and (2) a leafref=E2=80=99s path doesn=E2=80=99t exist=
 in the data model.
>
> Lada
>
>>
>> In all cases the example module needs to identify which interface
>> to apply the fiztest parameters. The "augment",  "leafref"
>> and "type string" mechanisms do not really change the
>> implementation relationship between these 2 modules.
>> However, it seems the conformance specification is directly coupled
>> to the particular YANG statements used.
>>
>>

OK -- I am ready to drop the whole issue of YANG conformance.
My experience on IETF and Cisco MIB Police has been that
if a developer wants to reuse existing objects, but the conformance
required more than what the new application really needed,
then the new work cut-and-paste or did something else to
avoid proper reuse.

It is fairly difficult to reliably predict 2 - 5 years in advance how a mod=
ule
will be reused later for new use-cases that were never considered
in the initial module.  Perhaps YANG developers will be better at that
than SMIv2 developers have been in the past.


>>> Lada
>>
>> Andy
>>
>>>


Andy

>>>>
>>>>
>>>>> Lada
>>>>
>>>> Andy
>>>>
>>>>>
>>>>>>
>>>>>> Module aug3 MUST implement all of module aug1 and aug2,
>>>>>> adding 'B' and 'C'.  If aug2 augmented another external module
>>>>>> like 'foo:/X' then aug3 MUST implement the entire foo module.
>>>>>>
>>>>>> IMO the direct coupling of YANG module contents to conformance
>>>>>> is not a good idea.  The simplistic conformance rules for augment
>>>>>> (especially for NP containers) are not going to work.
>>>>>>
>>>>>>
>>>>>> Andy
>>>>>>
>>>>>> _______________________________________________
>>>>>> netmod mailing list
>>>>>> netmod@ietf.org
>>>>>> https://www.ietf.org/mailman/listinfo/netmod
>>>>>
>>>>> --
>>>>> Ladislav Lhotka, CZ.NIC Labs
>>>>> PGP Key ID: E74E8C0C
>>>
>>> --
>>> Ladislav Lhotka, CZ.NIC Labs
>>> PGP Key ID: E74E8C0C
>
> --
> Ladislav Lhotka, CZ.NIC Labs
> PGP Key ID: E74E8C0C
>
>
>
>


From nobody Thu Mar 19 07:33:56 2015
Return-Path: <lhotka@nic.cz>
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 7C69F1ACCF4 for <netmod@ietfa.amsl.com>; Thu, 19 Mar 2015 07:33:56 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level: 
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9] 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 JOuB02iznujW for <netmod@ietfa.amsl.com>; Thu, 19 Mar 2015 07:33:54 -0700 (PDT)
Received: from trail.lhotka.name (trail.lhotka.name [77.48.224.143]) by ietfa.amsl.com (Postfix) with ESMTP id 5E83C1ACCF0 for <netmod@ietf.org>; Thu, 19 Mar 2015 07:33:53 -0700 (PDT)
Received: from localhost (unknown [195.113.220.110]) by trail.lhotka.name (Postfix) with ESMTPSA id 8CE121CC044E for <netmod@ietf.org>; Thu, 19 Mar 2015 15:33:52 +0100 (CET)
From: Ladislav Lhotka <lhotka@nic.cz>
To: netmod@ietf.org
User-Agent: Notmuch/0.19 (http://notmuchmail.org) Emacs/24.4.51.2 (x86_64-apple-darwin14.0.0)
Date: Thu, 19 Mar 2015 15:33:52 +0100
Message-ID: <m2wq2d83an.fsf@birdie.labs.nic.cz>
MIME-Version: 1.0
Content-Type: text/plain
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/ShROtXH7aMNDs5HoIiTUa99X0JY>
Subject: [netmod] ACL example and module issues
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: <http://www.ietf.org/mail-archive/web/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: Thu, 19 Mar 2015 14:33:56 -0000

Hi,

I tried to validate the example in the acl-model draft against the
ietf-acl module and found several issues with this example:

- As Martin pointed out in his review, the example contains several
  trivial errors, in particular the XML namespaces are completely wrong.

- Such an example probably shouldn't be an <edit-config> message, a
  reply to <get-config> makes more sense here.

- The data model contains no <top> element, it was probably copied by
  mistake from an example in RFC 6241.

- Elements <destination-ipv4-address> and <source-ipv4-address> should
  in fact be <destination-ipv4-network> and <source-ipv4-network>,
  respectively.

After correcting the above validity problems I ran into the following,
which is most likely a data model issue:

- Containers "source-port-range" and "destination-port-range" are both
  mandatory because the child leaf "lower-port" in each is mandatory. I
  think this wasn't intended. One solution would be to make both of them
  containers with presence.

BTW, my GitHub project YANG-I-D is intended to aid the development of an
I-D along with a set of YANG modules described therein, and it also
provides a make target for validating examples. It would discover all
the problems above.

https://github.com/llhotka/YANG-I-D

Lada
-- 
Ladislav Lhotka, CZ.NIC Labs
PGP Key ID: E74E8C0C


From nobody Thu Mar 19 10:17:06 2015
Return-Path: <bclaise@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 3F63E1A6EE9 for <netmod@ietfa.amsl.com>; Thu, 19 Mar 2015 10:17:04 -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 QM63pbAlygSR for <netmod@ietfa.amsl.com>; Thu, 19 Mar 2015 10:17:01 -0700 (PDT)
Received: from aer-iport-3.cisco.com (aer-iport-3.cisco.com [173.38.203.53]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D0BE41A3BA6 for <netmod@ietf.org>; Thu, 19 Mar 2015 10:17:00 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=52118; q=dns/txt; s=iport; t=1426785421; x=1427995021; h=message-id:date:from:mime-version:to:cc:subject: references:in-reply-to; bh=IMjsCSbGJteIj7HpX8T4EBqnUkJaWQFqs1dwa3EcOlQ=; b=OfjKA1TYLOHB8AkMl+LE9b13xsUdnqRE+G7xwrUa8i0XmMbm7Wv+I9sa UR2hzXxYEJgTg5M/HQuMf8FZHrM5JyXwjUaW+5dOydhMbyjpZViViGlQ9 h2LqZXAyhn9qWu5Guj8+i+TKgp2n3SKGERkrEwKTQtMEXGQPOeZF9aMem E=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0CuBAC0AwtV/xbLJq1cgkOBFVrGHAEJhSxJAoIIEAEBAQEBAQF8hBABAQQBAQEqQQoBEAshFgEBDQkDAgECARUwBgEMAQUCAQGIKw3OKgEBAQEBAQEBAQEBAQEBAQEBAQEBARMEihh/hHEHhC0FhzGTBYEbhWiJXoNHIoNvPTGCQwEBAQ
X-IronPort-AV: E=Sophos;i="5.11,430,1422921600";  d="scan'208,217";a="388416540"
Received: from aer-iport-nat.cisco.com (HELO aer-core-3.cisco.com) ([173.38.203.22]) by aer-iport-3.cisco.com with ESMTP; 19 Mar 2015 17:16:58 +0000
Received: from [10.60.67.85] (ams-bclaise-8914.cisco.com [10.60.67.85]) by aer-core-3.cisco.com (8.14.5/8.14.5) with ESMTP id t2JHGw2o013239; Thu, 19 Mar 2015 17:16:58 GMT
Message-ID: <550B048A.2030203@cisco.com>
Date: Thu, 19 Mar 2015 18:16:58 +0100
From: Benoit Claise <bclaise@cisco.com>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0
MIME-Version: 1.0
To: "Thomas D. Nadeau" <tnadeau@lucidvision.com>, draft-openconfig-netmod-model-structure@tools.ietf.org
References: <YangModels/yang/pull/13@github.com> <YangModels/yang/pull/13/c78988705@github.com> <BBFDDF91-F15E-4688-8849-C9C5428CCF1C@lucidvision.com>
In-Reply-To: <BBFDDF91-F15E-4688-8849-C9C5428CCF1C@lucidvision.com>
Content-Type: multipart/alternative; boundary="------------060201030506000306030008"
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/Cxfi3J36zOYwuQpdsN6TalnHzKE>
Cc: NETMOD Working Group <netmod@ietf.org>
Subject: Re: [netmod] draft-openconfig-netmod-model-structure-00
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: <http://www.ietf.org/mail-archive/web/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: Thu, 19 Mar 2015 17:17:04 -0000

This is a multi-part message in MIME format.
--------------060201030506000306030008
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 7bit

Dear authors,

A couple of high level points, next to Tom's questions.

With some many new YANG models these days, it's about time that we start 
organizing how all these models fit together. So thanks for this draft.
And it's great that this feedback come from operators.

I believe that you have some good points in your section 4.1 service 
catalog.

Note: the following tree hierarchy would have helped me reviewing the 
draft (even if I understand this is just an illustration at this point)

$ pyang -f tree model-structure.yang
module: model-structure
    +--rw device
       +--rw info
       |  +--rw device-type?   enumeration
       +--rw hardware
       +--rw system
       |  +--rw dns
       |  +--rw ntp
       |  +--rw dhcp
       |  +--rw syslog
       |  +--rw ssh
       |  +--rw stat-coll
       |  +--rw oam
       |  |  +--rw snmp
       |  |  +--rw cfm
       |  |  +--rw twamp
       |  +--rw aaa
       |  |  +--rw tacacs
       |  |  +--rw radius
       |  +--rw users
       +--rw interfaces
       |  +--rw ethernet
       |  |  +--rw aggregates
       |  |  +--rw vlans
       |  |  +--rw lfm
       |  +--rw sonet-sdh
       |  +--rw addressing
       |  |  +--rw ipv4
       |  |  |  +--rw vrrp
       |  |  +--rw ipv6
       |  |     +--rw vrrp
       |  +--rw tunnels
       +--rw acl
       +--rw qos
       +--rw logical-routers
          +--rw logical-router* [router-id]
             +--rw router-id            uint8
             +--rw router-name?         string
             +--rw layer-2-protocols
             |  +--rw vsi
             |  +--rw ipv6-ndp
             |  +--rw arp
             |  +--rw rstp
             |  +--rw lldp
             |  +--rw ptp
             +--rw layer-3-protocols
                +--rw global
                |  +--rw bgp
                |  +--rw igp
                |  |  +--rw is-is
                |  |  +--rw ospf
                |  |  |  +--rw ospf2
                |  |  |  +--rw ospf3
                |  |  +--rw igp-common
                |  +--rw bfd
                |  +--rw pim
                |  +--rw igmp
                |  +--rw static-routes
                |  +--rw mpls-te
                |     +--rw global
                |     +--rw signaling
                |     |  +--rw rsvp
                |     |  +--rw segment-routing
                |     |  +--rw ldp
                |     +--rw label-switched-paths
                |        +--rw constrained-path
                |        +--rw igp-congruent
                |        +--rw static
                +--rw vrf* [vrf-name]
                |  +--rw vrf-name         string
                |  +--rw bgp
                |  +--rw igp
                |  |  +--rw is-is
                |  |  +--rw ospf
                |  |  |  +--rw ospf2
                |  |  |  +--rw ospf3
                |  |  +--rw igp-common
                |  +--rw bfd
                |  +--rw pim
                |  +--rw igmp
                |  +--rw static-routes
                +--rw routing-policy
                   +--rw common
                   +--rw bgp-policy
                   +--rw igp-policy
                   +--rw vrf-policy

Regards, Benoit
> 	
> 	I wanted to kick off a discussion on this draft ahead of the meeting
> as I have a few questions around this after reading the draft.
>
> 	First off, this kind of operational feedback is important for NETMOD
> and the IETF's Yang modeling efforts to be grounded in reality. Thank you for
> pushing this draft out.
>
> 	Second, my questions:
>
> 	1) how we address these issues in models that are already in-flight (or are RFCs) ?
> 	
> 	2) should existing models hold and be retrofit ?
>
> 	3) the recommendations that are in this draft might be best pushed into a "best practices of design" draft much like we have for SNMP MIBs on the MIB Doctor's wiki.
>
> 	--Tom
>
>
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod
>


--------------060201030506000306030008
Content-Type: text/html; charset=windows-1252
Content-Transfer-Encoding: 8bit

<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">Dear authors,<br>
      <br>
      A couple of high level points, next to Tom's questions.<br>
      <br>
      With some many new YANG models these days, it's about time that we
      start organizing how all these models fit together. So thanks for
      this draft. <br>
      And it's great that this feedback come from operators.<br>
      <br>
      I believe that you have some good points in your section
      <meta http-equiv="Content-Type" content="text/html;
        charset=windows-1252">
      <meta name="ProgId" content="Word.Document">
      <meta name="Generator" content="Microsoft Word 14">
      <meta name="Originator" content="Microsoft Word 14">
      <link rel="File-List"
href="file:///C:%5CUsers%5Cbclaise%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml">
      <!--[if gte mso 9]><xml>
 <o:OfficeDocumentSettings>
  <o:RelyOnVML/>
  <o:AllowPNG/>
 </o:OfficeDocumentSettings>
</xml><![endif]-->
      <link rel="themeData"
href="file:///C:%5CUsers%5Cbclaise%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx">
      <link rel="colorSchemeMapping"
href="file:///C:%5CUsers%5Cbclaise%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml">
      <!--[if gte mso 9]><xml>
 <w:WordDocument>
  <w:View>Normal</w:View>
  <w:Zoom>0</w:Zoom>
  <w:TrackMoves/>
  <w:TrackFormatting/>
  <w:HyphenationZone>21</w:HyphenationZone>
  <w:PunctuationKerning/>
  <w:ValidateAgainstSchemas/>
  <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
  <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
  <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
  <w:DoNotPromoteQF/>
  <w:LidThemeOther>FR-BE</w:LidThemeOther>
  <w:LidThemeAsian>X-NONE</w:LidThemeAsian>
  <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
  <w:Compatibility>
   <w:BreakWrappedTables/>
   <w:SnapToGridInCell/>
   <w:WrapTextWithPunct/>
   <w:UseAsianBreakRules/>
   <w:DontGrowAutofit/>
   <w:SplitPgBreakAndParaMark/>
   <w:EnableOpenTypeKerning/>
   <w:DontFlipMirrorIndents/>
   <w:OverrideTableStyleHps/>
  </w:Compatibility>
  <m:mathPr>
   <m:mathFont m:val="Cambria Math"/>
   <m:brkBin m:val="before"/>
   <m:brkBinSub m:val="&#45;-"/>
   <m:smallFrac m:val="off"/>
   <m:dispDef/>
   <m:lMargin m:val="0"/>
   <m:rMargin m:val="0"/>
   <m:defJc m:val="centerGroup"/>
   <m:wrapIndent m:val="1440"/>
   <m:intLim m:val="subSup"/>
   <m:naryLim m:val="undOvr"/>
  </m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
  DefSemiHidden="true" DefQFormat="false" DefPriority="99"
  LatentStyleCount="267">
  <w:LsdException Locked="false" Priority="0" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
  <w:LsdException Locked="false" Priority="9" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 1"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 2"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 3"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 4"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 5"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 6"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 7"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 8"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 9"/>
  <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
  <w:LsdException Locked="false" Priority="10" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Title"/>
  <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
  <w:LsdException Locked="false" Priority="11" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
  <w:LsdException Locked="false" Priority="22" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
  <w:LsdException Locked="false" Priority="20" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
  <w:LsdException Locked="false" Priority="59" SemiHidden="false"
   UnhideWhenUsed="false" Name="Table Grid"/>
  <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
  <w:LsdException Locked="false" Priority="1" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 1"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
  <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
  <w:LsdException Locked="false" Priority="34" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
  <w:LsdException Locked="false" Priority="29" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
  <w:LsdException Locked="false" Priority="30" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 1"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 2"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 2"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 3"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 3"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 4"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 4"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 5"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 5"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 6"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 6"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
  <w:LsdException Locked="false" Priority="19" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
  <w:LsdException Locked="false" Priority="21" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
  <w:LsdException Locked="false" Priority="31" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
  <w:LsdException Locked="false" Priority="32" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
  <w:LsdException Locked="false" Priority="33" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
  <w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
  <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
 </w:LatentStyles>
</xml><![endif]-->
      <style>
<!--
 /* Font Definitions */
 @font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;
	mso-font-alt:"Device Font 10cpi";
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:1 1073786111 9 0 415 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-unhide:no;
	mso-style-qformat:yes;
	mso-style-parent:"";
	margin-top:0cm;
	margin-right:0cm;
	margin-bottom:10.0pt;
	margin-left:0cm;
	line-height:115%;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:Calibri;
	mso-fareast-theme-font:minor-latin;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;
	mso-ansi-language:FR-BE;
	mso-fareast-language:EN-US;}
.MsoChpDefault
	{mso-style-type:export-only;
	mso-default-props:yes;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:Calibri;
	mso-fareast-theme-font:minor-latin;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;
	mso-ansi-language:FR-BE;
	mso-fareast-language:EN-US;}
.MsoPapDefault
	{mso-style-type:export-only;
	margin-bottom:10.0pt;
	line-height:115%;}
@page WordSection1
	{size:612.0pt 792.0pt;
	margin:72.0pt 72.0pt 72.0pt 72.0pt;
	mso-header-margin:36.0pt;
	mso-footer-margin:36.0pt;
	mso-paper-source:0;}
div.WordSection1
	{page:WordSection1;}
-->
</style><!--[if gte mso 10]>
<style>
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-parent:"";
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
	mso-para-margin-top:0cm;
	mso-para-margin-right:0cm;
	mso-para-margin-bottom:10.0pt;
	mso-para-margin-left:0cm;
	line-height:115%;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;
	mso-ansi-language:FR-BE;
	mso-fareast-language:EN-US;}
</style>
<![endif]-->4.1 service catalog. <br>
      <br>
      Note: the following tree hierarchy would have helped me reviewing
      the draft (even if I understand this is just an illustration at
      this point)<br>
      <p class="MsoNormal"
        style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:
        normal;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt
        320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt
        687.0pt 732.8pt"><span
          style="font-size:10.0pt;font-family:&quot;Courier
          New&quot;;mso-fareast-font-family:
          &quot;Times New
          Roman&quot;;color:red;mso-ansi-language:EN-US;mso-fareast-language:FR"
          lang="EN-US"><o:p></o:p></span></p>
      <meta name="ProgId" content="Word.Document">
      <meta name="Generator" content="Microsoft Word 14">
      <meta name="Originator" content="Microsoft Word 14">
      <link rel="File-List"
href="file:///C:%5CUsers%5Cbclaise%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml">
      <!--[if gte mso 9]><xml>
 <o:OfficeDocumentSettings>
  <o:RelyOnVML/>
  <o:AllowPNG/>
 </o:OfficeDocumentSettings>
</xml><![endif]-->
      <link rel="themeData"
href="file:///C:%5CUsers%5Cbclaise%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx">
      <link rel="colorSchemeMapping"
href="file:///C:%5CUsers%5Cbclaise%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml">
      <!--[if gte mso 9]><xml>
 <w:WordDocument>
  <w:View>Normal</w:View>
  <w:Zoom>0</w:Zoom>
  <w:TrackMoves/>
  <w:TrackFormatting/>
  <w:HyphenationZone>21</w:HyphenationZone>
  <w:PunctuationKerning/>
  <w:ValidateAgainstSchemas/>
  <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
  <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
  <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
  <w:DoNotPromoteQF/>
  <w:LidThemeOther>FR-BE</w:LidThemeOther>
  <w:LidThemeAsian>X-NONE</w:LidThemeAsian>
  <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
  <w:Compatibility>
   <w:BreakWrappedTables/>
   <w:SnapToGridInCell/>
   <w:WrapTextWithPunct/>
   <w:UseAsianBreakRules/>
   <w:DontGrowAutofit/>
   <w:SplitPgBreakAndParaMark/>
   <w:EnableOpenTypeKerning/>
   <w:DontFlipMirrorIndents/>
   <w:OverrideTableStyleHps/>
  </w:Compatibility>
  <m:mathPr>
   <m:mathFont m:val="Cambria Math"/>
   <m:brkBin m:val="before"/>
   <m:brkBinSub m:val="&#45;-"/>
   <m:smallFrac m:val="off"/>
   <m:dispDef/>
   <m:lMargin m:val="0"/>
   <m:rMargin m:val="0"/>
   <m:defJc m:val="centerGroup"/>
   <m:wrapIndent m:val="1440"/>
   <m:intLim m:val="subSup"/>
   <m:naryLim m:val="undOvr"/>
  </m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
  DefSemiHidden="true" DefQFormat="false" DefPriority="99"
  LatentStyleCount="267">
  <w:LsdException Locked="false" Priority="0" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
  <w:LsdException Locked="false" Priority="9" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
  <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 1"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 2"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 3"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 4"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 5"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 6"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 7"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 8"/>
  <w:LsdException Locked="false" Priority="39" Name="toc 9"/>
  <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
  <w:LsdException Locked="false" Priority="10" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Title"/>
  <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
  <w:LsdException Locked="false" Priority="11" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
  <w:LsdException Locked="false" Priority="22" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
  <w:LsdException Locked="false" Priority="20" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
  <w:LsdException Locked="false" Priority="59" SemiHidden="false"
   UnhideWhenUsed="false" Name="Table Grid"/>
  <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
  <w:LsdException Locked="false" Priority="1" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 1"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
  <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
  <w:LsdException Locked="false" Priority="34" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
  <w:LsdException Locked="false" Priority="29" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
  <w:LsdException Locked="false" Priority="30" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 1"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 2"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 2"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 3"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 3"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 4"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 4"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 5"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 5"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
  <w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
  <w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 6"/>
  <w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
  <w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
  <w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
  <w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
  <w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
  <w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
  <w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
  <w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
  <w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 6"/>
  <w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
  <w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
  <w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
  <w:LsdException Locked="false" Priority="19" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
  <w:LsdException Locked="false" Priority="21" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
  <w:LsdException Locked="false" Priority="31" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
  <w:LsdException Locked="false" Priority="32" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
  <w:LsdException Locked="false" Priority="33" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
  <w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
  <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
 </w:LatentStyles>
</xml><![endif]-->
      <style>
<!--
 /* Font Definitions */
 @font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;
	mso-font-alt:"Device Font 10cpi";
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:1 1073786111 9 0 415 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-unhide:no;
	mso-style-qformat:yes;
	mso-style-parent:"";
	margin-top:0cm;
	margin-right:0cm;
	margin-bottom:10.0pt;
	margin-left:0cm;
	line-height:115%;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:Calibri;
	mso-fareast-theme-font:minor-latin;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;
	mso-ansi-language:FR-BE;
	mso-fareast-language:EN-US;}
.MsoChpDefault
	{mso-style-type:export-only;
	mso-default-props:yes;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:Calibri;
	mso-fareast-theme-font:minor-latin;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;
	mso-ansi-language:FR-BE;
	mso-fareast-language:EN-US;}
.MsoPapDefault
	{mso-style-type:export-only;
	margin-bottom:10.0pt;
	line-height:115%;}
@page WordSection1
	{size:612.0pt 792.0pt;
	margin:72.0pt 72.0pt 72.0pt 72.0pt;
	mso-header-margin:36.0pt;
	mso-footer-margin:36.0pt;
	mso-paper-source:0;}
div.WordSection1
	{page:WordSection1;}
-->
</style><!--[if gte mso 10]>
<style>
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-parent:"";
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
	mso-para-margin-top:0cm;
	mso-para-margin-right:0cm;
	mso-para-margin-bottom:10.0pt;
	mso-para-margin-left:0cm;
	line-height:115%;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;
	mso-ansi-language:FR-BE;
	mso-fareast-language:EN-US;}
</style>
<![endif]-->
      $ pyang -f tree model-structure.yang <br>
      module: model-structure<br>
         +--rw device<br>
            +--rw info<br>
            |  +--rw device-type?   enumeration<br>
            +--rw hardware<br>
            +--rw system<br>
            |  +--rw dns<br>
            |  +--rw ntp<br>
            |  +--rw dhcp<br>
            |  +--rw syslog<br>
            |  +--rw ssh<br>
            |  +--rw stat-coll<br>
            |  +--rw oam<br>
            |  |  +--rw snmp<br>
            |  |  +--rw cfm<br>
            |  |  +--rw twamp<br>
            |  +--rw aaa<br>
            |  |  +--rw tacacs<br>
            |  |  +--rw radius<br>
            |  +--rw users<br>
            +--rw interfaces<br>
            |  +--rw ethernet<br>
            |  |  +--rw aggregates<br>
            |  |  +--rw vlans<br>
            |  |  +--rw lfm<br>
            |  +--rw sonet-sdh<br>
            |  +--rw addressing<br>
            |  |  +--rw ipv4<br>
            |  |  |  +--rw vrrp<br>
            |  |  +--rw ipv6<br>
            |  |     +--rw vrrp<br>
            |  +--rw tunnels<br>
            +--rw acl<br>
            +--rw qos<br>
            +--rw logical-routers<br>
               +--rw logical-router* [router-id]<br>
                  +--rw router-id            uint8<br>
                  +--rw router-name?         string<br>
                  +--rw layer-2-protocols<br>
                  |  +--rw vsi<br>
                  |  +--rw ipv6-ndp<br>
                  |  +--rw arp<br>
                  |  +--rw rstp<br>
                  |  +--rw lldp<br>
                  |  +--rw ptp<br>
                  +--rw layer-3-protocols<br>
                     +--rw global<br>
                     |  +--rw bgp<br>
                     |  +--rw igp<br>
                     |  |  +--rw is-is<br>
                     |  |  +--rw ospf<br>
                     |  |  |  +--rw ospf2<br>
                     |  |  |  +--rw ospf3<br>
                     |  |  +--rw igp-common<br>
                     |  +--rw bfd<br>
                     |  +--rw pim<br>
                     |  +--rw igmp<br>
                     |  +--rw static-routes<br>
                     |  +--rw mpls-te<br>
                     |     +--rw global<br>
                     |     +--rw signaling<br>
                     |     |  +--rw rsvp<br>
                     |     |  +--rw segment-routing<br>
                     |     |  +--rw ldp<br>
                     |     +--rw label-switched-paths<br>
                     |        +--rw constrained-path<br>
                     |        +--rw igp-congruent<br>
                     |        +--rw static<br>
                     +--rw vrf* [vrf-name]<br>
                     |  +--rw vrf-name         string<br>
                     |  +--rw bgp<br>
                     |  +--rw igp<br>
                     |  |  +--rw is-is<br>
                     |  |  +--rw ospf<br>
                     |  |  |  +--rw ospf2<br>
                     |  |  |  +--rw ospf3<br>
                     |  |  +--rw igp-common<br>
                     |  +--rw bfd<br>
                     |  +--rw pim<br>
                     |  +--rw igmp<br>
                     |  +--rw static-routes<br>
                     +--rw routing-policy<br>
                        +--rw common<br>
                        +--rw bgp-policy<br>
                        +--rw igp-policy<br>
                        +--rw vrf-policy<br>
      <br>
      Regards, Benoit<br>
    </div>
    <blockquote
      cite="mid:BBFDDF91-F15E-4688-8849-C9C5428CCF1C@lucidvision.com"
      type="cite">
      <pre wrap="">	
	I wanted to kick off a discussion on this draft ahead of the meeting
as I have a few questions around this after reading the draft.

	First off, this kind of operational feedback is important for NETMOD 
and the IETF's Yang modeling efforts to be grounded in reality. Thank you for
pushing this draft out. 

	Second, my questions:

	1) how we address these issues in models that are already in-flight (or are RFCs) ?
	
	2) should existing models hold and be retrofit ?

	3) the recommendations that are in this draft might be best pushed into a "best practices of design" draft much like we have for SNMP MIBs on the MIB Doctor's wiki.

	--Tom


_______________________________________________
netmod mailing list
<a class="moz-txt-link-abbreviated" href="mailto:netmod@ietf.org">netmod@ietf.org</a>
<a class="moz-txt-link-freetext" href="https://www.ietf.org/mailman/listinfo/netmod">https://www.ietf.org/mailman/listinfo/netmod</a>

</pre>
    </blockquote>
    <br>
  </body>
</html>

--------------060201030506000306030008--


From nobody Thu Mar 19 12:42:52 2015
Return-Path: <phil@juniper.net>
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 374261A8873 for <netmod@ietfa.amsl.com>; Thu, 19 Mar 2015 12:42:51 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.902
X-Spam-Level: 
X-Spam-Status: No, score=-1.902 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] 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 6BPI0HetmCwK for <netmod@ietfa.amsl.com>; Thu, 19 Mar 2015 12:42:49 -0700 (PDT)
Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1on0765.outbound.protection.outlook.com [IPv6:2a01:111:f400:fc10::765]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E59771A8866 for <netmod@ietf.org>; Thu, 19 Mar 2015 12:42:48 -0700 (PDT)
Received: from BL2PR05CA0012.namprd05.prod.outlook.com (10.255.226.12) by BN3PR0501MB1572.namprd05.prod.outlook.com (25.161.217.15) with Microsoft SMTP Server (TLS) id 15.1.112.19; Thu, 19 Mar 2015 19:42:30 +0000
Received: from BN1AFFO11FD040.protection.gbl (2a01:111:f400:7c10::140) by BL2PR05CA0012.outlook.office365.com (2a01:111:e400:c04::12) with Microsoft SMTP Server (TLS) id 15.1.118.21 via Frontend Transport; Thu, 19 Mar 2015 19:42:29 +0000
Received: from P-EMF03-SAC.jnpr.net (66.129.239.17) by BN1AFFO11FD040.mail.protection.outlook.com (10.58.52.251) with Microsoft SMTP Server (TLS) id 15.1.125.13 via Frontend Transport; Thu, 19 Mar 2015 19:42:29 +0000
Received: from magenta.juniper.net (172.17.27.123) by P-EMF03-SAC.jnpr.net (172.24.192.21) with Microsoft SMTP Server (TLS) id 14.3.146.0; Thu, 19 Mar 2015 12:42:00 -0700
Received: from idle.juniper.net (idleski.juniper.net [172.25.4.26])	by magenta.juniper.net (8.11.3/8.11.3) with ESMTP id t2JJfxD63206	for <netmod@ietf.org>; Thu, 19 Mar 2015 12:41:59 -0700 (PDT)	(envelope-from phil@juniper.net)
Received: from idle.juniper.net (localhost [127.0.0.1])	by idle.juniper.net (8.14.4/8.14.3) with ESMTP id t2JJf4Ag082264	for <netmod@ietf.org>; Thu, 19 Mar 2015 15:41:04 -0400 (EDT)	(envelope-from phil@idle.juniper.net)
Message-ID: <201503191941.t2JJf4Ag082264@idle.juniper.net>
To: <netmod@ietf.org>
Date: Thu, 19 Mar 2015 15:41:04 -0400
From: Phil Shafer <phil@juniper.net>
MIME-Version: 1.0
Content-Type: text/plain
X-EOPAttributedMessage: 0
Received-SPF: SoftFail (protection.outlook.com: domain of transitioning juniper.net discourages use of 66.129.239.17 as permitted sender)
Authentication-Results: spf=softfail (sender IP is 66.129.239.17) smtp.mailfrom=phil@juniper.net; ietf.org; dkim=none (message not signed) header.d=none;
X-Forefront-Antispam-Report: CIP:66.129.239.17; CTRY:US; IPV:NLI; EFV:NLI; BMV:1; SFV:NSPM; SFS:(10019020)(6009001)(189002)(199003)(164054003)(86362001)(6806004)(87936001)(221733001)(47776003)(50466002)(48376002)(46102003)(558084003)(53416004)(76506005)(92566002)(77156002)(62966003)(450100001)(77096005)(50986999)(54356999)(106466001)(110136001)(105596002)(107886001)(229853001)(2351001); DIR:OUT; SFP:1102; SCL:1; SRVR:BN3PR0501MB1572; H:P-EMF03-SAC.jnpr.net; FPR:;  SPF:SoftFail; MLV:sfv; MX:1; A:1; LANG:en; 
X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN3PR0501MB1572;
X-Microsoft-Antispam-PRVS: <BN3PR0501MB15726ADF6D057963E2C423D4C9010@BN3PR0501MB1572.namprd05.prod.outlook.com>
X-Exchange-Antispam-Report-Test: UriScan:;
X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(5002010)(5005006); SRVR:BN3PR0501MB1572; BCL:0; PCL:0; RULEID:; SRVR:BN3PR0501MB1572; 
X-Forefront-PRVS: 052017CAF1
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Mar 2015 19:42:29.2947 (UTC)
X-MS-Exchange-CrossTenant-Id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=bea78b3c-4cdb-4130-854a-1d193232e5f4; Ip=[66.129.239.17];  Helo=[P-EMF03-SAC.jnpr.net]
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR0501MB1572
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/7xKg-7a8v0gL1i64wBKhymztI3U>
Subject: [netmod] rfc error
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: <http://www.ietf.org/mail-archive/web/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: Thu, 19 Mar 2015 19:42:51 -0000

RFC6020 section 9.7.5 has the example "10-Mb-only", which is 
an invalid identifier.  Also "Mb" should be "mb"; mixing case
makes life worse for everyone.

Thanks,
 Phil


From nobody Thu Mar 19 12:52:13 2015
Return-Path: <aashaikh@google.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 1DC6A1A8850 for <netmod@ietfa.amsl.com>; Thu, 19 Mar 2015 12:52:12 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.388
X-Spam-Level: 
X-Spam-Status: No, score=-1.388 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=no
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 zccHxnKJke0o for <netmod@ietfa.amsl.com>; Thu, 19 Mar 2015 12:52:08 -0700 (PDT)
Received: from mail-ob0-x229.google.com (mail-ob0-x229.google.com [IPv6:2607:f8b0:4003:c01::229]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B75C51A8859 for <netmod@ietf.org>; Thu, 19 Mar 2015 12:52:07 -0700 (PDT)
Received: by obcjt1 with SMTP id jt1so42703123obc.2 for <netmod@ietf.org>; Thu, 19 Mar 2015 12:52:07 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=jsIHsJyZoyoUVx0ujtp4yUobj5GuK7br3YKk7DY/3oU=; b=QRAKm/hmNRlSgdxkrjAhzw3B1KahcYrsdxyFLJStG9TryKeCGYXCQibLQkdrq/sYHf cs9io+WhgTH/LVubLNzISCnXyZczORr/5T26+MNUkvXwHvHW4j2p3oLzh3R06KoH1/Gn CQjkUOjSav9Cv8eAXNCFYJ6b6ZWaRHiSz2ZVeB3WXw+RvAvdbbSv5Vfe/OyEJxKatAAU jtcpwNTiaDDcWnA6N4pUdd8jtiGcnrpLA+5fXGX+7TTTa5YMo2NMFEFL5P+FQwtUeMX/ W9D3OfXB3o4PvPI/cHDGoHl3df/VPgs3KdmYNJXzeVt8x9/rXnyQGTeBJ3Ie73y0eMKA S57g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=jsIHsJyZoyoUVx0ujtp4yUobj5GuK7br3YKk7DY/3oU=; b=m0phd9zJ0CQfbVafQ9epE1/N3hb5ZyAwI53P40MERONNiMk4pCEBAHuXGz3wAr2XsP /bujXbVuyQjrdH6S4hxYYcL3z7xHC1r2OfYV7Ycr+cLwiNxdVZ7kq3fLR8XTq+/1SGbi Xm8S9xXadKXV2OkuZCLMHQ7zCknGUu6AH5xmDcuP+9XVaEKCFEygjoQQMkFjAHLmh0uT SC+lF1GYn+XbVQFHI6gz1iHLjxKbyHuhOgP1X/HWQgM+4WM8n2+4k57EGWYZPw7phk4M Ajb3/JqHh/NZry9lolt0t9K5sf6vPsIDOuW3vGOQjvCMVzUreLKGh/zd/3doBl+5w1Z+ Ze6w==
X-Gm-Message-State: ALoCoQlae7yRUkaoChc17OFuR7o6demMgMl3idXwsWfQKaJsCaXdlStqXRWg1VuUZOnCjRhTBjhq
MIME-Version: 1.0
X-Received: by 10.60.46.66 with SMTP id t2mr26772564oem.60.1426794727195; Thu, 19 Mar 2015 12:52:07 -0700 (PDT)
Received: by 10.182.73.137 with HTTP; Thu, 19 Mar 2015 12:52:07 -0700 (PDT)
In-Reply-To: <550B048A.2030203@cisco.com>
References: <YangModels/yang/pull/13@github.com> <YangModels/yang/pull/13/c78988705@github.com> <BBFDDF91-F15E-4688-8849-C9C5428CCF1C@lucidvision.com> <550B048A.2030203@cisco.com>
Date: Thu, 19 Mar 2015 15:52:07 -0400
Message-ID: <CAJK7Zq+4uyTY335PyeG0iaRheKn_7SU8heSVd6SX=__GXYy26w@mail.gmail.com>
From: Anees Shaikh <aashaikh@google.com>
To: Benoit Claise <bclaise@cisco.com>
Content-Type: multipart/alternative; boundary=089e01493cbce1f2610511a98814
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/1iwAS6o_MOJ29hWxuP8dNnsEgqM>
Cc: NETMOD Working Group <netmod@ietf.org>, draft-openconfig-netmod-model-structure@tools.ietf.org
Subject: Re: [netmod] draft-openconfig-netmod-model-structure-00
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: <http://www.ietf.org/mail-archive/web/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: Thu, 19 Mar 2015 19:52:12 -0000

--089e01493cbce1f2610511a98814
Content-Type: text/plain; charset=UTF-8

Benoit, thanks for the comments -- I think you understand the motivation.
BTW, apologies, we only included snippets of each section of the tree in
the draft to make it easier to read.  We can add the full tree in an
appendix, per your suggestion.

For anyone else interested, the YANG code is also available in the
YangModels repo:
https://github.com/YangModels/yang/tree/master/experimental/openconfig/structure

thanks.
-- Anees

On Thu, Mar 19, 2015 at 1:16 PM, Benoit Claise <bclaise@cisco.com> wrote:

>  Dear authors,
>
> A couple of high level points, next to Tom's questions.
>
> With some many new YANG models these days, it's about time that we start
> organizing how all these models fit together. So thanks for this draft.
> And it's great that this feedback come from operators.
>
> I believe that you have some good points in your section 4.1 service
> catalog.
>
> Note: the following tree hierarchy would have helped me reviewing the
> draft (even if I understand this is just an illustration at this point)
>
>  $ pyang -f tree model-structure.yang
> module: model-structure
>    +--rw device
>       +--rw info
>       |  +--rw device-type?   enumeration
>       +--rw hardware
>       +--rw system
>       |  +--rw dns
>       |  +--rw ntp
>       |  +--rw dhcp
>       |  +--rw syslog
>       |  +--rw ssh
>       |  +--rw stat-coll
>       |  +--rw oam
>       |  |  +--rw snmp
>       |  |  +--rw cfm
>       |  |  +--rw twamp
>       |  +--rw aaa
>       |  |  +--rw tacacs
>       |  |  +--rw radius
>       |  +--rw users
>       +--rw interfaces
>       |  +--rw ethernet
>       |  |  +--rw aggregates
>       |  |  +--rw vlans
>       |  |  +--rw lfm
>       |  +--rw sonet-sdh
>       |  +--rw addressing
>       |  |  +--rw ipv4
>       |  |  |  +--rw vrrp
>       |  |  +--rw ipv6
>       |  |     +--rw vrrp
>       |  +--rw tunnels
>       +--rw acl
>       +--rw qos
>       +--rw logical-routers
>          +--rw logical-router* [router-id]
>             +--rw router-id            uint8
>             +--rw router-name?         string
>             +--rw layer-2-protocols
>             |  +--rw vsi
>             |  +--rw ipv6-ndp
>             |  +--rw arp
>             |  +--rw rstp
>             |  +--rw lldp
>             |  +--rw ptp
>             +--rw layer-3-protocols
>                +--rw global
>                |  +--rw bgp
>                |  +--rw igp
>                |  |  +--rw is-is
>                |  |  +--rw ospf
>                |  |  |  +--rw ospf2
>                |  |  |  +--rw ospf3
>                |  |  +--rw igp-common
>                |  +--rw bfd
>                |  +--rw pim
>                |  +--rw igmp
>                |  +--rw static-routes
>                |  +--rw mpls-te
>                |     +--rw global
>                |     +--rw signaling
>                |     |  +--rw rsvp
>                |     |  +--rw segment-routing
>                |     |  +--rw ldp
>                |     +--rw label-switched-paths
>                |        +--rw constrained-path
>                |        +--rw igp-congruent
>                |        +--rw static
>                +--rw vrf* [vrf-name]
>                |  +--rw vrf-name         string
>                |  +--rw bgp
>                |  +--rw igp
>                |  |  +--rw is-is
>                |  |  +--rw ospf
>                |  |  |  +--rw ospf2
>                |  |  |  +--rw ospf3
>                |  |  +--rw igp-common
>                |  +--rw bfd
>                |  +--rw pim
>                |  +--rw igmp
>                |  +--rw static-routes
>                +--rw routing-policy
>                   +--rw common
>                   +--rw bgp-policy
>                   +--rw igp-policy
>                   +--rw vrf-policy
>
> Regards, Benoit
>
> 	
> 	I wanted to kick off a discussion on this draft ahead of the meeting
> as I have a few questions around this after reading the draft.
>
> 	First off, this kind of operational feedback is important for NETMOD
> and the IETF's Yang modeling efforts to be grounded in reality. Thank you for
> pushing this draft out.
>
> 	Second, my questions:
>
> 	1) how we address these issues in models that are already in-flight (or are RFCs) ?
> 	
> 	2) should existing models hold and be retrofit ?
>
> 	3) the recommendations that are in this draft might be best pushed into a "best practices of design" draft much like we have for SNMP MIBs on the MIB Doctor's wiki.
>
> 	--Tom
>
>
> _______________________________________________
> netmod mailing listnetmod@ietf.orghttps://www.ietf.org/mailman/listinfo/netmod
>
>
>
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod
>
>

--089e01493cbce1f2610511a98814
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: base64

PGRpdiBkaXI9Imx0ciI+QmVub2l0LCB0aGFua3MgZm9yIHRoZSBjb21tZW50cyAtLSBJIHRoaW5r
IHlvdSB1bmRlcnN0YW5kIHRoZSBtb3RpdmF0aW9uLiDCoCBCVFcsIGFwb2xvZ2llcywgd2Ugb25s
eSBpbmNsdWRlZCBzbmlwcGV0cyBvZiBlYWNoIHNlY3Rpb24gb2YgdGhlIHRyZWUgaW4gdGhlIGRy
YWZ0IHRvIG1ha2UgaXQgZWFzaWVyIHRvIHJlYWQuwqAgV2UgY2FuIGFkZCB0aGUgZnVsbCB0cmVl
IGluIGFuIGFwcGVuZGl4LCBwZXIgeW91ciBzdWdnZXN0aW9uLjxkaXY+PGJyPjwvZGl2PjxkaXY+
Rm9yIGFueW9uZSBlbHNlIGludGVyZXN0ZWQsIHRoZSBZQU5HIGNvZGUgaXMgYWxzbyBhdmFpbGFi
bGUgaW4gdGhlIFlhbmdNb2RlbHMgcmVwbzo8L2Rpdj48ZGl2PjxhIGhyZWY9Imh0dHBzOi8vZ2l0
aHViLmNvbS9ZYW5nTW9kZWxzL3lhbmcvdHJlZS9tYXN0ZXIvZXhwZXJpbWVudGFsL29wZW5jb25m
aWcvc3RydWN0dXJlIj5odHRwczovL2dpdGh1Yi5jb20vWWFuZ01vZGVscy95YW5nL3RyZWUvbWFz
dGVyL2V4cGVyaW1lbnRhbC9vcGVuY29uZmlnL3N0cnVjdHVyZTwvYT48YnI+PC9kaXY+PGRpdj48
YnI+PC9kaXY+PGRpdj50aGFua3MuPC9kaXY+PGRpdj4tLSBBbmVlczwvZGl2PjwvZGl2PjxkaXYg
Y2xhc3M9ImdtYWlsX2V4dHJhIj48YnI+PGRpdiBjbGFzcz0iZ21haWxfcXVvdGUiPk9uIFRodSwg
TWFyIDE5LCAyMDE1IGF0IDE6MTYgUE0sIEJlbm9pdCBDbGFpc2UgPHNwYW4gZGlyPSJsdHIiPiZs
dDs8YSBocmVmPSJtYWlsdG86YmNsYWlzZUBjaXNjby5jb20iIHRhcmdldD0iX2JsYW5rIj5iY2xh
aXNlQGNpc2NvLmNvbTwvYT4mZ3Q7PC9zcGFuPiB3cm90ZTo8YnI+PGJsb2NrcXVvdGUgY2xhc3M9
ImdtYWlsX3F1b3RlIiBzdHlsZT0ibWFyZ2luOjAgMCAwIC44ZXg7Ym9yZGVyLWxlZnQ6MXB4ICNj
Y2Mgc29saWQ7cGFkZGluZy1sZWZ0OjFleCI+DQogIA0KICAgIA0KICANCiAgPGRpdiBiZ2NvbG9y
PSIjRkZGRkZGIiB0ZXh0PSIjMDAwMDAwIj4NCiAgICA8ZGl2PkRlYXIgYXV0aG9ycyw8YnI+DQog
ICAgICA8YnI+DQogICAgICBBIGNvdXBsZSBvZiBoaWdoIGxldmVsIHBvaW50cywgbmV4dCB0byBU
b20mIzM5O3MgcXVlc3Rpb25zLjxicj4NCiAgICAgIDxicj4NCiAgICAgIFdpdGggc29tZSBtYW55
IG5ldyBZQU5HIG1vZGVscyB0aGVzZSBkYXlzLCBpdCYjMzk7cyBhYm91dCB0aW1lIHRoYXQgd2UN
CiAgICAgIHN0YXJ0IG9yZ2FuaXppbmcgaG93IGFsbCB0aGVzZSBtb2RlbHMgZml0IHRvZ2V0aGVy
LiBTbyB0aGFua3MgZm9yDQogICAgICB0aGlzIGRyYWZ0LiA8YnI+DQogICAgICBBbmQgaXQmIzM5
O3MgZ3JlYXQgdGhhdCB0aGlzIGZlZWRiYWNrIGNvbWUgZnJvbSBvcGVyYXRvcnMuPGJyPg0KICAg
ICAgPGJyPg0KICAgICAgSSBiZWxpZXZlIHRoYXQgeW91IGhhdmUgc29tZSBnb29kIHBvaW50cyBp
biB5b3VyIHNlY3Rpb24NCiAgICAgIA0KICAgICAgDQogICAgICANCiAgICAgIA0KICAgICAgDQog
ICAgICANCiAgICAgIA0KICAgICAgDQogICAgICANCiAgICAgIDQuMSBzZXJ2aWNlIGNhdGFsb2cu
IDxicj4NCiAgICAgIDxicj4NCiAgICAgIE5vdGU6IHRoZSBmb2xsb3dpbmcgdHJlZSBoaWVyYXJj
aHkgd291bGQgaGF2ZSBoZWxwZWQgbWUgcmV2aWV3aW5nDQogICAgICB0aGUgZHJhZnQgKGV2ZW4g
aWYgSSB1bmRlcnN0YW5kIHRoaXMgaXMganVzdCBhbiBpbGx1c3RyYXRpb24gYXQNCiAgICAgIHRo
aXMgcG9pbnQpPGJyPg0KICAgICAgPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1i
b3R0b206MGNtO21hcmdpbi1ib3R0b206LjAwMDFwdDtsaW5lLWhlaWdodDpub3JtYWwiPjxzcGFu
IGxhbmc9IkVOLVVTIj48dT48L3U+PHU+PC91Pjwvc3Bhbj48L3A+DQogICAgICANCiAgICAgIA0K
ICAgICAgDQogICAgICANCiAgICAgIA0KICAgICAgDQogICAgICANCiAgICAgIA0KICAgICAgDQog
ICAgICAkIHB5YW5nIC1mIHRyZWUgbW9kZWwtc3RydWN0dXJlLnlhbmcgPGJyPg0KICAgICAgbW9k
dWxlOiBtb2RlbC1zdHJ1Y3R1cmU8YnI+DQogICAgICDCoMKgICstLXJ3IGRldmljZTxicj4NCiAg
ICAgIMKgwqDCoMKgwqAgKy0tcncgaW5mbzxicj4NCiAgICAgIMKgwqDCoMKgwqAgfMKgICstLXJ3
IGRldmljZS10eXBlP8KgwqAgZW51bWVyYXRpb248YnI+DQogICAgICDCoMKgwqDCoMKgICstLXJ3
IGhhcmR3YXJlPGJyPg0KICAgICAgwqDCoMKgwqDCoCArLS1ydyBzeXN0ZW08YnI+DQogICAgICDC
oMKgwqDCoMKgIHzCoCArLS1ydyBkbnM8YnI+DQogICAgICDCoMKgwqDCoMKgIHzCoCArLS1ydyBu
dHA8YnI+DQogICAgICDCoMKgwqDCoMKgIHzCoCArLS1ydyBkaGNwPGJyPg0KICAgICAgwqDCoMKg
wqDCoCB8wqAgKy0tcncgc3lzbG9nPGJyPg0KICAgICAgwqDCoMKgwqDCoCB8wqAgKy0tcncgc3No
PGJyPg0KICAgICAgwqDCoMKgwqDCoCB8wqAgKy0tcncgc3RhdC1jb2xsPGJyPg0KICAgICAgwqDC
oMKgwqDCoCB8wqAgKy0tcncgb2FtPGJyPg0KICAgICAgwqDCoMKgwqDCoCB8wqAgfMKgICstLXJ3
IHNubXA8YnI+DQogICAgICDCoMKgwqDCoMKgIHzCoCB8wqAgKy0tcncgY2ZtPGJyPg0KICAgICAg
wqDCoMKgwqDCoCB8wqAgfMKgICstLXJ3IHR3YW1wPGJyPg0KICAgICAgwqDCoMKgwqDCoCB8wqAg
Ky0tcncgYWFhPGJyPg0KICAgICAgwqDCoMKgwqDCoCB8wqAgfMKgICstLXJ3IHRhY2Fjczxicj4N
CiAgICAgIMKgwqDCoMKgwqAgfMKgIHzCoCArLS1ydyByYWRpdXM8YnI+DQogICAgICDCoMKgwqDC
oMKgIHzCoCArLS1ydyB1c2Vyczxicj4NCiAgICAgIMKgwqDCoMKgwqAgKy0tcncgaW50ZXJmYWNl
czxicj4NCiAgICAgIMKgwqDCoMKgwqAgfMKgICstLXJ3IGV0aGVybmV0PGJyPg0KICAgICAgwqDC
oMKgwqDCoCB8wqAgfMKgICstLXJ3IGFnZ3JlZ2F0ZXM8YnI+DQogICAgICDCoMKgwqDCoMKgIHzC
oCB8wqAgKy0tcncgdmxhbnM8YnI+DQogICAgICDCoMKgwqDCoMKgIHzCoCB8wqAgKy0tcncgbGZt
PGJyPg0KICAgICAgwqDCoMKgwqDCoCB8wqAgKy0tcncgc29uZXQtc2RoPGJyPg0KICAgICAgwqDC
oMKgwqDCoCB8wqAgKy0tcncgYWRkcmVzc2luZzxicj4NCiAgICAgIMKgwqDCoMKgwqAgfMKgIHzC
oCArLS1ydyBpcHY0PGJyPg0KICAgICAgwqDCoMKgwqDCoCB8wqAgfMKgIHzCoCArLS1ydyB2cnJw
PGJyPg0KICAgICAgwqDCoMKgwqDCoCB8wqAgfMKgICstLXJ3IGlwdjY8YnI+DQogICAgICDCoMKg
wqDCoMKgIHzCoCB8wqDCoMKgwqAgKy0tcncgdnJycDxicj4NCiAgICAgIMKgwqDCoMKgwqAgfMKg
ICstLXJ3IHR1bm5lbHM8YnI+DQogICAgICDCoMKgwqDCoMKgICstLXJ3IGFjbDxicj4NCiAgICAg
IMKgwqDCoMKgwqAgKy0tcncgcW9zPGJyPg0KICAgICAgwqDCoMKgwqDCoCArLS1ydyBsb2dpY2Fs
LXJvdXRlcnM8YnI+DQogICAgICDCoMKgwqDCoMKgwqDCoMKgICstLXJ3IGxvZ2ljYWwtcm91dGVy
KiBbcm91dGVyLWlkXTxicj4NCiAgICAgIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKy0tcncgcm91
dGVyLWlkwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1aW50ODxicj4NCiAgICAgIMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqAgKy0tcncgcm91dGVyLW5hbWU/wqDCoMKgwqDCoMKgwqDCoCBzdHJpbmc8YnI+
DQogICAgICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICstLXJ3IGxheWVyLTItcHJvdG9jb2xzPGJy
Pg0KICAgICAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgKy0tcncgdnNpPGJyPg0KICAgICAg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgKy0tcncgaXB2Ni1uZHA8YnI+DQogICAgICDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgIHzCoCArLS1ydyBhcnA8YnI+DQogICAgICDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgIHzCoCArLS1ydyByc3RwPGJyPg0KICAgICAgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oCB8wqAgKy0tcncgbGxkcDxicj4NCiAgICAgIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgICst
LXJ3IHB0cDxicj4NCiAgICAgIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKy0tcncgbGF5ZXItMy1w
cm90b2NvbHM8YnI+DQogICAgICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICstLXJ3IGds
b2JhbDxicj4NCiAgICAgIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgICstLXJ3IGJn
cDxicj4NCiAgICAgIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgICstLXJ3IGlncDxi
cj4NCiAgICAgIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgIHzCoCArLS1ydyBpcy1p
czxicj4NCiAgICAgIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgIHzCoCArLS1ydyBv
c3BmPGJyPg0KICAgICAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgfMKgIHzCoCAr
LS1ydyBvc3BmMjxicj4NCiAgICAgIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgIHzC
oCB8wqAgKy0tcncgb3NwZjM8YnI+DQogICAgICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
IHzCoCB8wqAgKy0tcncgaWdwLWNvbW1vbjxicj4NCiAgICAgIMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqAgfMKgICstLXJ3IGJmZDxicj4NCiAgICAgIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqAgfMKgICstLXJ3IHBpbTxicj4NCiAgICAgIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqAgfMKgICstLXJ3IGlnbXA8YnI+DQogICAgICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
IHzCoCArLS1ydyBzdGF0aWMtcm91dGVzPGJyPg0KICAgICAgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoCB8wqAgKy0tcncgbXBscy10ZTxicj4NCiAgICAgIMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqAgfMKgwqDCoMKgICstLXJ3IGdsb2JhbDxicj4NCiAgICAgIMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqAgfMKgwqDCoMKgICstLXJ3IHNpZ25hbGluZzxicj4NCiAgICAgIMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgwqDCoMKgIHzCoCArLS1ydyByc3ZwPGJyPg0KICAg
ICAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqDCoMKgwqAgfMKgICstLXJ3IHNlZ21l
bnQtcm91dGluZzxicj4NCiAgICAgIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgwqDC
oMKgIHzCoCArLS1ydyBsZHA8YnI+DQogICAgICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
IHzCoMKgwqDCoCArLS1ydyBsYWJlbC1zd2l0Y2hlZC1wYXRoczxicj4NCiAgICAgIMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgwqDCoMKgwqDCoMKgICstLXJ3IGNvbnN0cmFpbmVkLXBh
dGg8YnI+DQogICAgICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKgwqDCoMKgwqDC
oCArLS1ydyBpZ3AtY29uZ3J1ZW50PGJyPg0KICAgICAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoCB8wqDCoMKgwqDCoMKgwqAgKy0tcncgc3RhdGljPGJyPg0KICAgICAgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoCArLS1ydyB2cmYqIFt2cmYtbmFtZV08YnI+DQogICAgICDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCArLS1ydyB2cmYtbmFtZcKgwqDCoMKgwqDCoMKgwqAg
c3RyaW5nPGJyPg0KICAgICAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgKy0tcncg
YmdwPGJyPg0KICAgICAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgKy0tcncgaWdw
PGJyPg0KICAgICAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgfMKgICstLXJ3IGlz
LWlzPGJyPg0KICAgICAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgfMKgICstLXJ3
IG9zcGY8YnI+DQogICAgICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCB8wqAgfMKg
ICstLXJ3IG9zcGYyPGJyPg0KICAgICAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAg
fMKgIHzCoCArLS1ydyBvc3BmMzxicj4NCiAgICAgIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqAgfMKgIHzCoCArLS1ydyBpZ3AtY29tbW9uPGJyPg0KICAgICAgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoCB8wqAgKy0tcncgYmZkPGJyPg0KICAgICAgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoCB8wqAgKy0tcncgcGltPGJyPg0KICAgICAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoCB8wqAgKy0tcncgaWdtcDxicj4NCiAgICAgIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqAgfMKgICstLXJ3IHN0YXRpYy1yb3V0ZXM8YnI+DQogICAgICDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgICstLXJ3IHJvdXRpbmctcG9saWN5PGJyPg0KICAgICAgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoCArLS1ydyBjb21tb248YnI+DQogICAgICDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgICstLXJ3IGJncC1wb2xpY3k8YnI+DQogICAgICDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICstLXJ3IGlncC1wb2xpY3k8YnI+DQogICAgICDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICstLXJ3IHZyZi1wb2xpY3k8YnI+DQog
ICAgICA8YnI+DQogICAgICBSZWdhcmRzLCBCZW5vaXQ8YnI+DQogICAgPC9kaXY+PGRpdj48ZGl2
IGNsYXNzPSJoNSI+DQogICAgPGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+DQogICAgICA8cHJlPgkN
CglJIHdhbnRlZCB0byBraWNrIG9mZiBhIGRpc2N1c3Npb24gb24gdGhpcyBkcmFmdCBhaGVhZCBv
ZiB0aGUgbWVldGluZw0KYXMgSSBoYXZlIGEgZmV3IHF1ZXN0aW9ucyBhcm91bmQgdGhpcyBhZnRl
ciByZWFkaW5nIHRoZSBkcmFmdC4NCg0KCUZpcnN0IG9mZiwgdGhpcyBraW5kIG9mIG9wZXJhdGlv
bmFsIGZlZWRiYWNrIGlzIGltcG9ydGFudCBmb3IgTkVUTU9EIA0KYW5kIHRoZSBJRVRGJiMzOTtz
IFlhbmcgbW9kZWxpbmcgZWZmb3J0cyB0byBiZSBncm91bmRlZCBpbiByZWFsaXR5LiBUaGFuayB5
b3UgZm9yDQpwdXNoaW5nIHRoaXMgZHJhZnQgb3V0LiANCg0KCVNlY29uZCwgbXkgcXVlc3Rpb25z
Og0KDQoJMSkgaG93IHdlIGFkZHJlc3MgdGhlc2UgaXNzdWVzIGluIG1vZGVscyB0aGF0IGFyZSBh
bHJlYWR5IGluLWZsaWdodCAob3IgYXJlIFJGQ3MpID8NCgkNCgkyKSBzaG91bGQgZXhpc3Rpbmcg
bW9kZWxzIGhvbGQgYW5kIGJlIHJldHJvZml0ID8NCg0KCTMpIHRoZSByZWNvbW1lbmRhdGlvbnMg
dGhhdCBhcmUgaW4gdGhpcyBkcmFmdCBtaWdodCBiZSBiZXN0IHB1c2hlZCBpbnRvIGEgJnF1b3Q7
YmVzdCBwcmFjdGljZXMgb2YgZGVzaWduJnF1b3Q7IGRyYWZ0IG11Y2ggbGlrZSB3ZSBoYXZlIGZv
ciBTTk1QIE1JQnMgb24gdGhlIE1JQiBEb2N0b3ImIzM5O3Mgd2lraS4NCg0KCS0tVG9tDQoNCg0K
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCm5ldG1vZCBt
YWlsaW5nIGxpc3QNCjxhIGhyZWY9Im1haWx0bzpuZXRtb2RAaWV0Zi5vcmciIHRhcmdldD0iX2Js
YW5rIj5uZXRtb2RAaWV0Zi5vcmc8L2E+DQo8YSBocmVmPSJodHRwczovL3d3dy5pZXRmLm9yZy9t
YWlsbWFuL2xpc3RpbmZvL25ldG1vZCIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOi8vd3d3LmlldGYu
b3JnL21haWxtYW4vbGlzdGluZm8vbmV0bW9kPC9hPg0KDQo8L3ByZT4NCiAgICA8L2Jsb2NrcXVv
dGU+DQogICAgPGJyPg0KICA8L2Rpdj48L2Rpdj48L2Rpdj4NCg0KPGJyPl9fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fPGJyPg0KbmV0bW9kIG1haWxpbmcgbGlz
dDxicj4NCjxhIGhyZWY9Im1haWx0bzpuZXRtb2RAaWV0Zi5vcmciPm5ldG1vZEBpZXRmLm9yZzwv
YT48YnI+DQo8YSBocmVmPSJodHRwczovL3d3dy5pZXRmLm9yZy9tYWlsbWFuL2xpc3RpbmZvL25l
dG1vZCIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOi8vd3d3LmlldGYub3JnL21haWxtYW4vbGlzdGlu
Zm8vbmV0bW9kPC9hPjxicj4NCjxicj48L2Jsb2NrcXVvdGU+PC9kaXY+PGJyPjwvZGl2Pg0K
--089e01493cbce1f2610511a98814--


From nobody Thu Mar 19 13:29:03 2015
Return-Path: <andy@yumaworks.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 2E1721A901F for <netmod@ietfa.amsl.com>; Thu, 19 Mar 2015 13:29:02 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.979
X-Spam-Level: 
X-Spam-Status: No, score=-1.979 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] 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 XHnB_fE5biDt for <netmod@ietfa.amsl.com>; Thu, 19 Mar 2015 13:29:00 -0700 (PDT)
Received: from mail-lb0-f170.google.com (mail-lb0-f170.google.com [209.85.217.170]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D59161A8822 for <netmod@ietf.org>; Thu, 19 Mar 2015 13:28:59 -0700 (PDT)
Received: by lbcgn8 with SMTP id gn8so61357035lbc.2 for <netmod@ietf.org>; Thu, 19 Mar 2015 13:28:58 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=J68JAltJRTGVQ0+hDZkt7JaOk0i1dv2KR/RSz0GGnAA=; b=G3CBirH9oi3XXXI88intjySsh3XSBZyJ0n0MQFZI/a7pcCTGTQ5R3hZ7FeRyG3V0MM tCZ77RyHdC8KKU37u80gAy0ZvMMWxTI1e+1sBRXfFVG2HwNOfAjSwPMcMfxfUVxftKIO u7ysB4wnHVFGtiNtuRLLuylXCM6cpstO+WqGlsTvU0fDPqTowD8c5ELvG109P9mY8Lad Ya665CEBAK+u3JOtGIqB8nsQecSLal6VpTA4VuGezk1tQu6uQQztyPtkFIXaDs83sT7V frsiRijqGCGU/mGe8UvhSLv+BdqB+OYwgiBcKOOhkQazoclmUPUgm88FQs25611V0wbl S4zg==
X-Gm-Message-State: ALoCoQmCSAIWOaputXKQjVtzk+XyVB1zIEYli3XXuhUoR0KUp3eK4qNsOthYsbvFjD8jXd3veCBU
MIME-Version: 1.0
X-Received: by 10.152.243.4 with SMTP id wu4mr70774477lac.33.1426796938313; Thu, 19 Mar 2015 13:28:58 -0700 (PDT)
Received: by 10.112.144.36 with HTTP; Thu, 19 Mar 2015 13:28:58 -0700 (PDT)
In-Reply-To: <CAJK7Zq+4uyTY335PyeG0iaRheKn_7SU8heSVd6SX=__GXYy26w@mail.gmail.com>
References: <YangModels/yang/pull/13@github.com> <YangModels/yang/pull/13/c78988705@github.com> <BBFDDF91-F15E-4688-8849-C9C5428CCF1C@lucidvision.com> <550B048A.2030203@cisco.com> <CAJK7Zq+4uyTY335PyeG0iaRheKn_7SU8heSVd6SX=__GXYy26w@mail.gmail.com>
Date: Thu, 19 Mar 2015 13:28:58 -0700
Message-ID: <CABCOCHRfGu-3Fk5zbhnQPraQenhQpA7gb-oeThRf0N8+T=R=qg@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Anees Shaikh <aashaikh@google.com>
Content-Type: text/plain; charset=UTF-8
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/EzdEYqgHp5o_KGFAGFRiRyU-X_c>
Cc: draft-openconfig-netmod-model-structure@tools.ietf.org, NETMOD Working Group <netmod@ietf.org>
Subject: Re: [netmod] draft-openconfig-netmod-model-structure-00
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: <http://www.ietf.org/mail-archive/web/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: Thu, 19 Mar 2015 20:29:02 -0000

Hi,

I agree with Juergen that NP containers for 'device' and 'hardware'
seem too generic.

I am not in favor of moving any published modules.

Also curious why we would want a special "placeholder module"
with its own namespace and collection of mandatory top-level
NP-containers.

A server would implement this module and
then every other module in the world will augment this module?

The server will return all the empty NP-containers that
are not populated?  (Yes, according to the YANG module)

Every time somebody wants to add a new top-level node,
they have to update this module (and RFC)?


Andy







On Thu, Mar 19, 2015 at 12:52 PM, Anees Shaikh <aashaikh@google.com> wrote:
> Benoit, thanks for the comments -- I think you understand the motivation.
> BTW, apologies, we only included snippets of each section of the tree in the
> draft to make it easier to read.  We can add the full tree in an appendix,
> per your suggestion.
>
> For anyone else interested, the YANG code is also available in the
> YangModels repo:
> https://github.com/YangModels/yang/tree/master/experimental/openconfig/structure
>
> thanks.
> -- Anees
>
> On Thu, Mar 19, 2015 at 1:16 PM, Benoit Claise <bclaise@cisco.com> wrote:
>>
>> Dear authors,
>>
>> A couple of high level points, next to Tom's questions.
>>
>> With some many new YANG models these days, it's about time that we start
>> organizing how all these models fit together. So thanks for this draft.
>> And it's great that this feedback come from operators.
>>
>> I believe that you have some good points in your section 4.1 service
>> catalog.
>>
>> Note: the following tree hierarchy would have helped me reviewing the
>> draft (even if I understand this is just an illustration at this point)
>>
>> $ pyang -f tree model-structure.yang
>> module: model-structure
>>    +--rw device
>>       +--rw info
>>       |  +--rw device-type?   enumeration
>>       +--rw hardware
>>       +--rw system
>>       |  +--rw dns
>>       |  +--rw ntp
>>       |  +--rw dhcp
>>       |  +--rw syslog
>>       |  +--rw ssh
>>       |  +--rw stat-coll
>>       |  +--rw oam
>>       |  |  +--rw snmp
>>       |  |  +--rw cfm
>>       |  |  +--rw twamp
>>       |  +--rw aaa
>>       |  |  +--rw tacacs
>>       |  |  +--rw radius
>>       |  +--rw users
>>       +--rw interfaces
>>       |  +--rw ethernet
>>       |  |  +--rw aggregates
>>       |  |  +--rw vlans
>>       |  |  +--rw lfm
>>       |  +--rw sonet-sdh
>>       |  +--rw addressing
>>       |  |  +--rw ipv4
>>       |  |  |  +--rw vrrp
>>       |  |  +--rw ipv6
>>       |  |     +--rw vrrp
>>       |  +--rw tunnels
>>       +--rw acl
>>       +--rw qos
>>       +--rw logical-routers
>>          +--rw logical-router* [router-id]
>>             +--rw router-id            uint8
>>             +--rw router-name?         string
>>             +--rw layer-2-protocols
>>             |  +--rw vsi
>>             |  +--rw ipv6-ndp
>>             |  +--rw arp
>>             |  +--rw rstp
>>             |  +--rw lldp
>>             |  +--rw ptp
>>             +--rw layer-3-protocols
>>                +--rw global
>>                |  +--rw bgp
>>                |  +--rw igp
>>                |  |  +--rw is-is
>>                |  |  +--rw ospf
>>                |  |  |  +--rw ospf2
>>                |  |  |  +--rw ospf3
>>                |  |  +--rw igp-common
>>                |  +--rw bfd
>>                |  +--rw pim
>>                |  +--rw igmp
>>                |  +--rw static-routes
>>                |  +--rw mpls-te
>>                |     +--rw global
>>                |     +--rw signaling
>>                |     |  +--rw rsvp
>>                |     |  +--rw segment-routing
>>                |     |  +--rw ldp
>>                |     +--rw label-switched-paths
>>                |        +--rw constrained-path
>>                |        +--rw igp-congruent
>>                |        +--rw static
>>                +--rw vrf* [vrf-name]
>>                |  +--rw vrf-name         string
>>                |  +--rw bgp
>>                |  +--rw igp
>>                |  |  +--rw is-is
>>                |  |  +--rw ospf
>>                |  |  |  +--rw ospf2
>>                |  |  |  +--rw ospf3
>>                |  |  +--rw igp-common
>>                |  +--rw bfd
>>                |  +--rw pim
>>                |  +--rw igmp
>>                |  +--rw static-routes
>>                +--rw routing-policy
>>                   +--rw common
>>                   +--rw bgp-policy
>>                   +--rw igp-policy
>>                   +--rw vrf-policy
>>
>> Regards, Benoit
>>
>>
>> I wanted to kick off a discussion on this draft ahead of the meeting
>> as I have a few questions around this after reading the draft.
>>
>> First off, this kind of operational feedback is important for NETMOD
>> and the IETF's Yang modeling efforts to be grounded in reality. Thank you
>> for
>> pushing this draft out.
>>
>> Second, my questions:
>>
>> 1) how we address these issues in models that are already in-flight (or
>> are RFCs) ?
>>
>> 2) should existing models hold and be retrofit ?
>>
>> 3) the recommendations that are in this draft might be best pushed into a
>> "best practices of design" draft much like we have for SNMP MIBs on the MIB
>> Doctor's wiki.
>>
>> --Tom
>>
>>
>> _______________________________________________
>> netmod mailing list
>> netmod@ietf.org
>> https://www.ietf.org/mailman/listinfo/netmod
>>
>>
>>
>> _______________________________________________
>> netmod mailing list
>> netmod@ietf.org
>> https://www.ietf.org/mailman/listinfo/netmod
>>
>
>
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod
>


From nobody Thu Mar 19 14:00:28 2015
Return-Path: <lhotka@nic.cz>
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 29B991ACEC0 for <netmod@ietfa.amsl.com>; Thu, 19 Mar 2015 14:00:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.661
X-Spam-Level: 
X-Spam-Status: No, score=-0.661 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HELO_EQ_CZ=0.445, HOST_EQ_CZ=0.904, T_RP_MATCHES_RCVD=-0.01] autolearn=no
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 Krm7qOVVSbhi for <netmod@ietfa.amsl.com>; Thu, 19 Mar 2015 14:00:25 -0700 (PDT)
Received: from mail.nic.cz (mail.nic.cz [IPv6:2001:1488:800:400::400]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0690E1ACEA9 for <netmod@ietf.org>; Thu, 19 Mar 2015 14:00:25 -0700 (PDT)
Received: from [IPv6:2a01:5e0:29:ffff:c4b6:7195:a2c3:ed20] (unknown [IPv6:2a01:5e0:29:ffff:c4b6:7195:a2c3:ed20]) by mail.nic.cz (Postfix) with ESMTPSA id 603041408D2; Thu, 19 Mar 2015 22:00:23 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=nic.cz; s=default; t=1426798823; bh=56iRnc/6OqL5a1tWn5FQtdVFc3q2CG0ByG2cySaJWug=; h=Content-Type:Mime-Version:Subject:From:In-Reply-To:Date:Cc: Content-Transfer-Encoding:Message-Id:References:To; b=wto6eCfXP8di7Dhnls4ZtcEFJnrKQOscZI2GIhIXGm/fGsIS2l5DfMViiLZNBOWSP rUVb9WHHnbVR4jcKmXFUA3qXzmn2iq9P4QSjKKO3UjBq2nTOZlKwOtnnboM881zHMe dYvgk60A3yg2fiPQJQ4648ymiQLnRVLxWCAHkHfw=
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2070.6\))
From: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <201503191941.t2JJf4Ag082264@idle.juniper.net>
Date: Thu, 19 Mar 2015 22:00:22 +0100
Content-Transfer-Encoding: 7bit
Message-Id: <C9D188D6-5BA1-40AE-82C1-C787B14A9C8F@nic.cz>
References: <201503191941.t2JJf4Ag082264@idle.juniper.net>
To: Phil Shafer <phil@juniper.net>
X-Mailer: Apple Mail (2.2070.6)
X-Virus-Scanned: clamav-milter 0.98.6 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/210QgHc93Y06_pAMxAUcqjajZvc>
Cc: netmod@ietf.org
Subject: Re: [netmod] rfc error
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: <http://www.ietf.org/mail-archive/web/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: Thu, 19 Mar 2015 21:00:27 -0000

> On 19 Mar 2015, at 20:41, Phil Shafer <phil@juniper.net> wrote:
> 
> RFC6020 section 9.7.5 has the example "10-Mb-only", which is 
> an invalid identifier.  Also "Mb" should be "mb"; mixing case

Yes, the syntax error is now corrected in 6020bis.

Lada

> makes life worse for everyone.
> 
> Thanks,
> Phil
> 
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod

--
Ladislav Lhotka, CZ.NIC Labs
PGP Key ID: E74E8C0C





From nobody Thu Mar 19 15:34:31 2015
Return-Path: <tnadeau@lucidvision.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 A6CA21A90EB for <netmod@ietfa.amsl.com>; Thu, 19 Mar 2015 15:34:29 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.896
X-Spam-Level: 
X-Spam-Status: No, score=0.896 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FH_RELAY_NODNS=1.451, HELO_MISMATCH_COM=0.553, HTML_MESSAGE=0.001, RDNS_NONE=0.793, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=no
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 qBjQl6xUKUPR for <netmod@ietfa.amsl.com>; Thu, 19 Mar 2015 15:34:28 -0700 (PDT)
Received: from lucidvision.com (unknown [50.255.148.178]) by ietfa.amsl.com (Postfix) with ESMTP id 8F57A1A90E9 for <netmod@ietf.org>; Thu, 19 Mar 2015 15:34:27 -0700 (PDT)
Received: from [192.168.1.120] (unknown [50.255.148.177]) by lucidvision.com (Postfix) with ESMTP id 2FDAD30CB3DF; Thu, 19 Mar 2015 18:34:27 -0400 (EDT)
Content-Type: multipart/alternative; boundary="Apple-Mail=_C2AD4223-EB4A-419C-9902-FDA4740068D7"
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2070.6\))
From: "Thomas D. Nadeau" <tnadeau@lucidvision.com>
In-Reply-To: <550B048A.2030203@cisco.com>
Date: Thu, 19 Mar 2015 18:34:29 -0400
Message-Id: <5C4A507C-21FF-47FC-8223-20004AAE3C16@lucidvision.com>
References: <YangModels/yang/pull/13@github.com> <YangModels/yang/pull/13/c78988705@github.com> <BBFDDF91-F15E-4688-8849-C9C5428CCF1C@lucidvision.com> <550B048A.2030203@cisco.com>
To: Benoit Claise <bclaise@cisco.com>
X-Mailer: Apple Mail (2.2070.6)
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/S-FrnpkIVUHw83gaJoQyvgzF_UM>
Cc: draft-openconfig-netmod-model-structure@tools.ietf.org, NETMOD Working Group <netmod@ietf.org>
Subject: Re: [netmod] draft-openconfig-netmod-model-structure-00
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: <http://www.ietf.org/mail-archive/web/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: Thu, 19 Mar 2015 22:34:29 -0000

--Apple-Mail=_C2AD4223-EB4A-419C-9902-FDA4740068D7
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=windows-1252

That is a good point. I think The Yang Doctors have a best practice that =
suggests this at the top of documents/drafts in the same way we did them =
for MIBs.


> On Mar 19, 2015:1:16 PM, at 1:16 PM, Benoit Claise <bclaise@cisco.com> =
wrote:
>=20
> Dear authors,
>=20
> A couple of high level points, next to Tom's questions.
>=20
> With some many new YANG models these days, it's about time that we =
start organizing how all these models fit together. So thanks for this =
draft.=20
> And it's great that this feedback come from operators.
>=20
> I believe that you have some good points in your section 4.1 service =
catalog.=20
>=20
> Note: the following tree hierarchy would have helped me reviewing the =
draft (even if I understand this is just an illustration at this point)
> $ pyang -f tree model-structure.yang=20
> module: model-structure
>    +--rw device
>       +--rw info
>       |  +--rw device-type?   enumeration
>       +--rw hardware
>       +--rw system
>       |  +--rw dns
>       |  +--rw ntp
>       |  +--rw dhcp
>       |  +--rw syslog
>       |  +--rw ssh
>       |  +--rw stat-coll
>       |  +--rw oam
>       |  |  +--rw snmp
>       |  |  +--rw cfm
>       |  |  +--rw twamp
>       |  +--rw aaa
>       |  |  +--rw tacacs
>       |  |  +--rw radius
>       |  +--rw users
>       +--rw interfaces
>       |  +--rw ethernet
>       |  |  +--rw aggregates
>       |  |  +--rw vlans
>       |  |  +--rw lfm
>       |  +--rw sonet-sdh
>       |  +--rw addressing
>       |  |  +--rw ipv4
>       |  |  |  +--rw vrrp
>       |  |  +--rw ipv6
>       |  |     +--rw vrrp
>       |  +--rw tunnels
>       +--rw acl
>       +--rw qos
>       +--rw logical-routers
>          +--rw logical-router* [router-id]
>             +--rw router-id            uint8
>             +--rw router-name?         string
>             +--rw layer-2-protocols
>             |  +--rw vsi
>             |  +--rw ipv6-ndp
>             |  +--rw arp
>             |  +--rw rstp
>             |  +--rw lldp
>             |  +--rw ptp
>             +--rw layer-3-protocols
>                +--rw global
>                |  +--rw bgp
>                |  +--rw igp
>                |  |  +--rw is-is
>                |  |  +--rw ospf
>                |  |  |  +--rw ospf2
>                |  |  |  +--rw ospf3
>                |  |  +--rw igp-common
>                |  +--rw bfd
>                |  +--rw pim
>                |  +--rw igmp
>                |  +--rw static-routes
>                |  +--rw mpls-te
>                |     +--rw global
>                |     +--rw signaling
>                |     |  +--rw rsvp
>                |     |  +--rw segment-routing
>                |     |  +--rw ldp
>                |     +--rw label-switched-paths
>                |        +--rw constrained-path
>                |        +--rw igp-congruent
>                |        +--rw static
>                +--rw vrf* [vrf-name]
>                |  +--rw vrf-name         string
>                |  +--rw bgp
>                |  +--rw igp
>                |  |  +--rw is-is
>                |  |  +--rw ospf
>                |  |  |  +--rw ospf2
>                |  |  |  +--rw ospf3
>                |  |  +--rw igp-common
>                |  +--rw bfd
>                |  +--rw pim
>                |  +--rw igmp
>                |  +--rw static-routes
>                +--rw routing-policy
>                   +--rw common
>                   +--rw bgp-policy
>                   +--rw igp-policy
>                   +--rw vrf-policy
>=20
> Regards, Benoit
>> =09
>> 	I wanted to kick off a discussion on this draft ahead of the =
meeting
>> as I have a few questions around this after reading the draft.
>>=20
>> 	First off, this kind of operational feedback is important for =
NETMOD=20
>> and the IETF's Yang modeling efforts to be grounded in reality. Thank =
you for
>> pushing this draft out.=20
>>=20
>> 	Second, my questions:
>>=20
>> 	1) how we address these issues in models that are already =
in-flight (or are RFCs) ?
>> =09
>> 	2) should existing models hold and be retrofit ?
>>=20
>> 	3) the recommendations that are in this draft might be best =
pushed into a "best practices of design" draft much like we have for =
SNMP MIBs on the MIB Doctor's wiki.
>>=20
>> 	--Tom
>>=20
>>=20
>> _______________________________________________
>> netmod mailing list
>> netmod@ietf.org <mailto:netmod@ietf.org>
>> https://www.ietf.org/mailman/listinfo/netmod =
<https://www.ietf.org/mailman/listinfo/netmod>
>>=20
>=20
>=20


--Apple-Mail=_C2AD4223-EB4A-419C-9902-FDA4740068D7
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=windows-1252

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dwindows-1252"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" =
class=3D"">That is a good point. I think The Yang Doctors have a best =
practice that suggests this at the top of documents/drafts in the same =
way we did them for MIBs.<div class=3D""><br class=3D""></div><div =
class=3D""><br class=3D""><div><blockquote type=3D"cite" class=3D""><div =
class=3D"">On Mar 19, 2015:1:16 PM, at 1:16 PM, Benoit Claise &lt;<a =
href=3D"mailto:bclaise@cisco.com" class=3D"">bclaise@cisco.com</a>&gt; =
wrote:</div><br class=3D"Apple-interchange-newline"><div class=3D""><div =
class=3D"moz-cite-prefix" style=3D"font-family: Helvetica; font-size: =
16px; font-style: normal; font-variant: normal; font-weight: normal; =
letter-spacing: normal; line-height: normal; orphans: auto; text-align: =
start; text-indent: 0px; text-transform: none; white-space: normal; =
widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
background-color: rgb(255, 255, 255);">Dear authors,<br class=3D""><br =
class=3D"">A couple of high level points, next to Tom's questions.<br =
class=3D""><br class=3D"">With some many new YANG models these days, =
it's about time that we start organizing how all these models fit =
together. So thanks for this draft.<span =
class=3D"Apple-converted-space">&nbsp;</span><br class=3D"">And it's =
great that this feedback come from operators.<br class=3D""><br =
class=3D"">I believe that you have some good points in your section<span =
class=3D"Apple-converted-space">&nbsp;</span>4.1 service catalog.<span =
class=3D"Apple-converted-space">&nbsp;</span><br class=3D""><br =
class=3D"">Note: the following tree hierarchy would have helped me =
reviewing the draft (even if I understand this is just an illustration =
at this point)<br class=3D""><div style=3D"margin: 0cm 0cm 0.0001pt; =
line-height: normal; font-size: 11pt; font-family: Calibri, sans-serif;" =
class=3D""><span lang=3D"EN-US" style=3D"font-size: 10pt;" class=3D""><o:p=
 class=3D""></o:p></span></div>$ pyang -f tree model-structure.yang<span =
class=3D"Apple-converted-space">&nbsp;</span><br class=3D"">module: =
model-structure<br class=3D"">&nbsp;&nbsp; +--rw device<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; +--rw info<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; +--rw =
device-type?&nbsp;&nbsp; enumeration<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; +--rw hardware<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; +--rw system<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; +--rw dns<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; +--rw ntp<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; +--rw dhcp<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; +--rw syslog<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; +--rw ssh<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; +--rw stat-coll<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; +--rw oam<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; |&nbsp; +--rw snmp<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; |&nbsp; +--rw cfm<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; |&nbsp; +--rw twamp<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; +--rw aaa<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; |&nbsp; +--rw =
tacacs<br class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; |&nbsp; =
+--rw radius<br class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; +--rw =
users<br class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; +--rw interfaces<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; +--rw ethernet<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; |&nbsp; +--rw =
aggregates<br class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; |&nbsp; =
+--rw vlans<br class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; |&nbsp; =
+--rw lfm<br class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; +--rw =
sonet-sdh<br class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; +--rw =
addressing<br class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; |&nbsp; =
+--rw ipv4<br class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; |&nbsp; =
|&nbsp; +--rw vrrp<br class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; =
|&nbsp; +--rw ipv6<br class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; =
|&nbsp;&nbsp;&nbsp;&nbsp; +--rw vrrp<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; +--rw tunnels<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; +--rw acl<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; +--rw qos<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; +--rw logical-routers<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; +--rw =
logical-router* [router-id]<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp; +--rw =
router-id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
; uint8<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp; +--rw router-name?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
string<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp; +--rw layer-2-protocols<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp; |&nbsp; +--rw vsi<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp; |&nbsp; +--rw ipv6-ndp<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp; |&nbsp; +--rw arp<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp; |&nbsp; +--rw rstp<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp; |&nbsp; +--rw lldp<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp; |&nbsp; +--rw ptp<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp; +--rw layer-3-protocols<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; +--rw global<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; |&nbsp; +--rw bgp<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; |&nbsp; +--rw igp<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; |&nbsp; |&nbsp; +--rw is-is<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; |&nbsp; |&nbsp; +--rw ospf<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; |&nbsp; |&nbsp; |&nbsp; +--rw ospf2<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; |&nbsp; |&nbsp; |&nbsp; +--rw ospf3<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; |&nbsp; |&nbsp; +--rw igp-common<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; |&nbsp; +--rw bfd<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; |&nbsp; +--rw pim<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; |&nbsp; +--rw igmp<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; |&nbsp; +--rw static-routes<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; |&nbsp; +--rw mpls-te<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; +--rw global<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; +--rw signaling<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; +--rw rsvp<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; +--rw =
segment-routing<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; +--rw ldp<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; +--rw =
label-switched-paths<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; +--rw =
constrained-path<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; +--rw =
igp-congruent<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; +--rw =
static<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; +--rw vrf* [vrf-name]<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; |&nbsp; +--rw =
vrf-name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; |&nbsp; +--rw bgp<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; |&nbsp; +--rw igp<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; |&nbsp; |&nbsp; +--rw is-is<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; |&nbsp; |&nbsp; +--rw ospf<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; |&nbsp; |&nbsp; |&nbsp; +--rw ospf2<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; |&nbsp; |&nbsp; |&nbsp; +--rw ospf3<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; |&nbsp; |&nbsp; +--rw igp-common<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; |&nbsp; +--rw bfd<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; |&nbsp; +--rw pim<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; |&nbsp; +--rw igmp<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; |&nbsp; +--rw static-routes<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; +--rw routing-policy<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; +--rw common<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; +--rw bgp-policy<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; +--rw igp-policy<br =
class=3D"">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; +--rw vrf-policy<br class=3D""><br=
 class=3D"">Regards, Benoit<br class=3D""></div><blockquote =
cite=3D"mid:BBFDDF91-F15E-4688-8849-C9C5428CCF1C@lucidvision.com" =
type=3D"cite" style=3D"font-family: Helvetica; font-size: 16px; =
font-style: normal; font-variant: normal; font-weight: normal; =
letter-spacing: normal; line-height: normal; orphans: auto; text-align: =
start; text-indent: 0px; text-transform: none; white-space: normal; =
widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
background-color: rgb(255, 255, 255);" class=3D""><pre wrap=3D"" =
class=3D"">=09
	I wanted to kick off a discussion on this draft ahead of the =
meeting
as I have a few questions around this after reading the draft.

	First off, this kind of operational feedback is important for =
NETMOD=20
and the IETF's Yang modeling efforts to be grounded in reality. Thank =
you for
pushing this draft out.=20

	Second, my questions:

	1) how we address these issues in models that are already =
in-flight (or are RFCs) ?
=09
	2) should existing models hold and be retrofit ?

	3) the recommendations that are in this draft might be best =
pushed into a "best practices of design" draft much like we have for =
SNMP MIBs on the MIB Doctor's wiki.

	--Tom


_______________________________________________
netmod mailing list
<a class=3D"moz-txt-link-abbreviated" =
href=3D"mailto:netmod@ietf.org">netmod@ietf.org</a>
<a class=3D"moz-txt-link-freetext" =
href=3D"https://www.ietf.org/mailman/listinfo/netmod">https://www.ietf.org=
/mailman/listinfo/netmod</a>

</pre></blockquote><br style=3D"font-family: Helvetica; font-size: 16px; =
font-style: normal; font-variant: normal; font-weight: normal; =
letter-spacing: normal; line-height: normal; orphans: auto; text-align: =
start; text-indent: 0px; text-transform: none; white-space: normal; =
widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; =
background-color: rgb(255, 255, 255);" class=3D""><br =
class=3D"Apple-interchange-newline"></div></blockquote></div><br =
class=3D""></div></body></html>=

--Apple-Mail=_C2AD4223-EB4A-419C-9902-FDA4740068D7--


From nobody Fri Mar 20 11:19:08 2015
Return-Path: <j.schoenwaelder@jacobs-university.de>
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 13BCC1A3BA5 for <netmod@ietfa.amsl.com>; Fri, 20 Mar 2015 11:19:07 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.86
X-Spam-Level: 
X-Spam-Status: No, score=-3.86 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] 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 FkzNExtiaVPC for <netmod@ietfa.amsl.com>; Fri, 20 Mar 2015 11:19:05 -0700 (PDT)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id F3AA91A3B9C for <netmod@ietf.org>; Fri, 20 Mar 2015 11:19:04 -0700 (PDT)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id 78E317F8 for <netmod@ietf.org>; Fri, 20 Mar 2015 19:19:03 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.220]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id S14nno1qKznI for <netmod@ietf.org>; Fri, 20 Mar 2015 19:18:36 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS for <netmod@ietf.org>; Fri, 20 Mar 2015 19:19:03 +0100 (CET)
Received: from localhost (demetrius4.jacobs-university.de [212.201.44.49]) by hermes.jacobs-university.de (Postfix) with ESMTP id DE2E12002B for <netmod@ietf.org>; Fri, 20 Mar 2015 19:19:02 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius4.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id Db2WljNl_eBD; Fri, 20 Mar 2015 19:19:02 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id 3945520013; Fri, 20 Mar 2015 19:19:02 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id 0BE8B327EC62; Fri, 20 Mar 2015 19:19:02 +0100 (CET)
Date: Fri, 20 Mar 2015 19:19:01 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: netmod@ietf.org
Message-ID: <20150320181901.GB44859@elstar.local>
Mail-Followup-To: netmod@ietf.org
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/35X2Z3fr_moyyBYjGfrDhIGXukA>
Subject: [netmod] ietf 92 presentation slides
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
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: <http://www.ietf.org/mail-archive/web/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, 20 Mar 2015 18:19:07 -0000

Hi,

if you have a slot in the IETF 92 NETMOD meeting agenda and you want
to use slides, please send them to the chairs by lets say Sunday lunch
time (Dallas time) so that we can upload them well ahead of the
meeting on Monday morning (Dallas time).

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Sun Mar 22 03:42:15 2015
Return-Path: <tnadeau@lucidvision.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 A08BC1A88B1 for <netmod@ietfa.amsl.com>; Sun, 22 Mar 2015 03:42:13 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 2.295
X-Spam-Level: **
X-Spam-Status: No, score=2.295 tagged_above=-999 required=5 tests=[BAYES_05=-0.5, FH_RELAY_NODNS=1.451, HELO_MISMATCH_COM=0.553, RDNS_NONE=0.793, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=no
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 B8YeYWuqoDP2 for <netmod@ietfa.amsl.com>; Sun, 22 Mar 2015 03:42:13 -0700 (PDT)
Received: from lucidvision.com (unknown [50.255.148.178]) by ietfa.amsl.com (Postfix) with ESMTP id F240D1A8893 for <netmod@ietf.org>; Sun, 22 Mar 2015 03:42:12 -0700 (PDT)
Received: from [10.125.116.17] (mobile-107-107-60-52.mycingular.net [107.107.60.52]) by lucidvision.com (Postfix) with ESMTP id E3BF430F70CA for <netmod@ietf.org>; Sun, 22 Mar 2015 06:42:11 -0400 (EDT)
From: Thomas Nadeau <tnadeau@lucidvision.com>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: quoted-printable
Mime-Version: 1.0 (1.0)
Message-Id: <4DF62253-B1DB-45AF-9674-87E4F06E589E@lucidvision.com>
Date: Sun, 22 Mar 2015 06:42:10 -0400
To: NETMOD Working Group <netmod@ietf.org>
X-Mailer: iPhone Mail (12D508)
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/PdmS8Ufgi-f0vesCLZT5WGENphs>
Subject: [netmod] Slides for netmod wg meetings
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: <http://www.ietf.org/mail-archive/web/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: Sun, 22 Mar 2015 10:42:13 -0000

If you are on the agenda for netmod Monday or Tuesday please send us your sl=
ides by COB today (Sunday).

Tom and Juergen




From nobody Sun Mar 22 06:33:58 2015
Return-Path: <j.schoenwaelder@jacobs-university.de>
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 B71651A90C8 for <netmod@ietfa.amsl.com>; Sun, 22 Mar 2015 06:33:55 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.86
X-Spam-Level: 
X-Spam-Status: No, score=-3.86 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] 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 N964db5XE2dL for <netmod@ietfa.amsl.com>; Sun, 22 Mar 2015 06:33:53 -0700 (PDT)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4F7BF1A90C2 for <netmod@ietf.org>; Sun, 22 Mar 2015 06:33:53 -0700 (PDT)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id D2F6CAC4 for <netmod@ietf.org>; Sun, 22 Mar 2015 14:33:51 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.220]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id 29XWVIATMXY1 for <netmod@ietf.org>; Sun, 22 Mar 2015 14:33:13 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS for <netmod@ietf.org>; Sun, 22 Mar 2015 14:33:51 +0100 (CET)
Received: from localhost (demetrius2.jacobs-university.de [212.201.44.47]) by hermes.jacobs-university.de (Postfix) with ESMTP id 1F9AC2002B for <netmod@ietf.org>; Sun, 22 Mar 2015 14:33:51 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius2.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id 4VFu6Qh-4sLG; Sun, 22 Mar 2015 14:33:48 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id 0E93F20013; Sun, 22 Mar 2015 14:33:49 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id 705D2327FA36; Sun, 22 Mar 2015 14:33:47 +0100 (CET)
Date: Sun, 22 Mar 2015 14:33:46 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: netmod@ietf.org
Message-ID: <20150322133344.GC51674@elstar.local>
Mail-Followup-To: netmod@ietf.org
References: <20150306131746.GA74024@elstar.local>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20150306131746.GA74024@elstar.local>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/d4t_XtpQ8OGkj-Rv3M5Wc1TxASM>
Subject: Re: [netmod] VRFY :Y18: fix "when" expression context problem
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
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: <http://www.ietf.org/mail-archive/web/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: Sun, 22 Mar 2015 13:33:55 -0000

On Fri, Mar 06, 2015 at 02:17:46PM +0100, Juergen Schoenwaelder wrote:
> Hi,
> 
> the 2015-03-04 virtual interim meeting tasked Martin and Lada to
> produce an update of Y18-01 to clarify some corner cases.  This update
> has been added to the issues list and the proposal is now to adopt
> Y18-01. Please speak up by Friday 2015-03-13 if you disagree with this
> proposal.

Since there were no comments on the mailing list, I have moved this
issue to EDIT.

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Sun Mar 22 06:38:53 2015
Return-Path: <j.schoenwaelder@jacobs-university.de>
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 23CEB1A90CA for <netmod@ietfa.amsl.com>; Sun, 22 Mar 2015 06:38:51 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.86
X-Spam-Level: 
X-Spam-Status: No, score=-3.86 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] 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 S4hk7WdosaGR for <netmod@ietfa.amsl.com>; Sun, 22 Mar 2015 06:38:49 -0700 (PDT)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 219371A90C3 for <netmod@ietf.org>; Sun, 22 Mar 2015 06:38:49 -0700 (PDT)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id 02119A85 for <netmod@ietf.org>; Sun, 22 Mar 2015 14:38:48 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.220]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id oBHuL8tABdDC for <netmod@ietf.org>; Sun, 22 Mar 2015 14:38:09 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS for <netmod@ietf.org>; Sun, 22 Mar 2015 14:38:47 +0100 (CET)
Received: from localhost (demetrius3.jacobs-university.de [212.201.44.48]) by hermes.jacobs-university.de (Postfix) with ESMTP id 6F01F2002B for <netmod@ietf.org>; Sun, 22 Mar 2015 14:38:47 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius3.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id rChk4ZkZkhwn; Sun, 22 Mar 2015 14:38:46 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id 6BCD420013; Sun, 22 Mar 2015 14:38:46 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id 60CE3327FA79; Sun, 22 Mar 2015 14:38:46 +0100 (CET)
Date: Sun, 22 Mar 2015 14:38:46 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: netmod@ietf.org
Message-ID: <20150322133846.GD51674@elstar.local>
Mail-Followup-To: netmod@ietf.org
References: <20150305215936.GA71881@elstar.local>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20150305215936.GA71881@elstar.local>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/o-2TzHlxBjwbqsF0LK6roj9rZcE>
Subject: Re: [netmod] VRFY :Y25: make enum numbering purely informative and optional
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
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: <http://www.ietf.org/mail-archive/web/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: Sun, 22 Mar 2015 13:38:51 -0000

On Thu, Mar 05, 2015 at 10:59:36PM +0100, Juergen Schoenwaelder wrote:
> Hi,
> 
> Following the mailing list discussions and the 2015-03-04 virtual
> interim meeting discussions, the proposal is to adopt Y25-02. Please
> speak up by Friday 2015-03-13 if you disagree with this proposal.
> 
> For more details, see the issues list and the virtual interim meeting
> minutes available here:
> 
>      http://svn.tools.ietf.org/svn/wg/netmod/yang-1.1/
>

Since there were no comments on the mailing list, I have moved this
issue to EDIT.

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Sun Mar 22 09:07:57 2015
Return-Path: <tnadeau@lucidvision.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 13F651AC39A for <netmod@ietfa.amsl.com>; Sun, 22 Mar 2015 09:07:56 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.895
X-Spam-Level: 
X-Spam-Status: No, score=0.895 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FH_RELAY_NODNS=1.451, HELO_MISMATCH_COM=0.553, RDNS_NONE=0.793, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=no
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 lKooAE50DGAT for <netmod@ietfa.amsl.com>; Sun, 22 Mar 2015 09:07:55 -0700 (PDT)
Received: from lucidvision.com (unknown [50.255.148.178]) by ietfa.amsl.com (Postfix) with ESMTP id 3B2B71A8A7C for <netmod@ietf.org>; Sun, 22 Mar 2015 09:07:54 -0700 (PDT)
Received: from [172.19.131.166] (unknown [12.130.116.54]) by lucidvision.com (Postfix) with ESMTP id 15C0A30FAF4E for <netmod@ietf.org>; Sun, 22 Mar 2015 12:07:53 -0400 (EDT)
From: "Thomas D. Nadeau" <tnadeau@lucidvision.com>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: quoted-printable
Message-Id: <F82D0F30-B78F-4A5F-9238-CEA8C0C78412@lucidvision.com>
Date: Sun, 22 Mar 2015 11:07:52 -0500
To: NETMOD Working Group <netmod@ietf.org>
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2070.6\))
X-Mailer: Apple Mail (2.2070.6)
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/kCuvi4hRf--G1MFgBygx7EziuFY>
Subject: [netmod] need scribes for NETMOD meeting Monday
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: <http://www.ietf.org/mail-archive/web/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: Sun, 22 Mar 2015 16:07:56 -0000

	We need some volunteers to scribe during NETMOD on Monday. If =
you can, please let me know.=20

	Thanks,

	--Tom


From nobody Mon Mar 23 04:01:09 2015
Return-Path: <j.schoenwaelder@jacobs-university.de>
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 D5D571A8869 for <netmod@ietfa.amsl.com>; Mon, 23 Mar 2015 04:01:07 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.961
X-Spam-Level: 
X-Spam-Status: No, score=-1.961 tagged_above=-999 required=5 tests=[BAYES_40=-0.001, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] 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 OoELQBmxDQcO for <netmod@ietfa.amsl.com>; Mon, 23 Mar 2015 04:01:05 -0700 (PDT)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4E4671A887A for <netmod@ietf.org>; Mon, 23 Mar 2015 04:01:05 -0700 (PDT)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id DCFF09E4 for <netmod@ietf.org>; Mon, 23 Mar 2015 12:01:03 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.220]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id OuqRrd_NK8Jg for <netmod@ietf.org>; Mon, 23 Mar 2015 12:01:02 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS for <netmod@ietf.org>; Mon, 23 Mar 2015 12:01:03 +0100 (CET)
Received: from localhost (demetrius2.jacobs-university.de [212.201.44.47]) by hermes.jacobs-university.de (Postfix) with ESMTP id DF5AD20033 for <netmod@ietf.org>; Mon, 23 Mar 2015 12:01:02 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius2.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id TrwITnN-pY_J; Mon, 23 Mar 2015 12:01:01 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id 6FF5F2002B; Mon, 23 Mar 2015 12:01:01 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id E02E332804A4; Mon, 23 Mar 2015 12:00:59 +0100 (CET)
Date: Mon, 23 Mar 2015 12:00:59 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: netmod@ietf.org
Message-ID: <20150323110059.GA55206@elstar.local>
Mail-Followup-To: netmod@ietf.org
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/oUI_ZYnVj7wff0f_GxSZBu6hyFE>
Subject: [netmod] yang 1.1 status summary (pre IETF 92)
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
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: <http://www.ietf.org/mail-archive/web/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, 23 Mar 2015 11:01:08 -0000

Hi,

here is where we are with the YANG 1.1 effort right before the start
of IETF 92:

  | Status | Description                            | Count |
  |--------+----------------------------------------+-------|
  | NEW    | new issue                              |     1 |
  | DEAD   | issue has been rejected                |    26 |
  | OPEN   | open to discuss                        |     3 |
  | VRFY   | proposal to verify on the list         |     2 |
  | EDIT   | waiting for Martin to do the edits     |     3 |
  | REVIEW | waiting for the WG to review the edits |    25 |
  | DONE   | review has completed                   |     0 |
  |--------+----------------------------------------+-------|

Here is the list of issues that we should resolve during the IETF-92
meeting. Ideally, we leave Dallas will no issues left in NEW or OPEN
state.

* VRFY :Y34: remove/deprecate/replace the 'anyxml' statement

  The first question is whether we want to support alternate encodings
  (JSON/CBOR). If so, we need to have a mechanism that can handle any
  data that can be defined in YANG and that can be encoded in and
  interoperable way in all encodings without having to resort to an
  XML parser. It seems Y34-05 is the obvious answer if we want to
  support alternate encodings and people on the last virtual interim
  meeting seemed to be fine with it.

* VRFY :Y45: better conformance mechanism

  It seems Y45-02 is the best solution we could find so far and people
  on the last virtual interim meeting seemed to be fine with it. There
  are two corner cases to think about, namely enumerations and bits,
  where Y45-02 would be stricter than SMIv2 (and hence RFC 6643 would
  not easily work with YANG 1.1). Need to discuss what to do about it
  (e.g., whether we treat enums and bits similar to identities where
  the type also does not give you the precise value set).

* OPEN :Y26: allow mandatory nodes in augment

  This is waiting for someone to draft text to relax the current rules
  in situations where this is safe.

* OPEN :Y36: associate a notification with a data node

  This was reopened as a consequence of adopting Y58-02. This is
  waiting for someone to draft concrete proposal text.

* OPEN :Y57: non-unique leaf-list

  This has seen several revisions and discussions on the mailing
  list. The latest solution proposal is Y57-03.

* NEW :Y60: coexistence with YANG 1.0

  This was added during the discussions and it is right now a place
  holder to collect things we need discuss in a YANG 1.0 / YANG 1.1
  coexistence section. This should be moved to OPEN and we should work
  out what this section needs to cover.

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Mon Mar 23 08:38:31 2015
Return-Path: <bclaise@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 4DAD21A89B4 for <netmod@ietfa.amsl.com>; Mon, 23 Mar 2015 08:38:29 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -13.005
X-Spam-Level: 
X-Spam-Status: No, score=-13.005 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, SUBJ_ALL_CAPS=1.506, 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 EkrhKUppT_Nd for <netmod@ietfa.amsl.com>; Mon, 23 Mar 2015 08:38:28 -0700 (PDT)
Received: from alln-iport-4.cisco.com (alln-iport-4.cisco.com [173.37.142.91]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id BFA301A90D0 for <netmod@ietf.org>; Mon, 23 Mar 2015 08:38:27 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=130; q=dns/txt; s=iport; t=1427125107; x=1428334707; h=message-id:date:from:mime-version:to:subject: content-transfer-encoding; bh=VsIKYPDx0SnaRggiHZSo4MEun4SvXrRHfUzu3WvsP7o=; b=E69BUrIxqMmZqnxz1uz9tzXKo1OPbXJkhCh5L2qlbilJ0nF76HDLZm0B eWGaCEq9gf2jpO0W4PFLffPFv9IuhMLSqMKXcISt/jXBoh7mrraNOg7hS xKUtZtYhM9NUx6Hq/q5UM4MFxVVp7cJX6wTkjFHdNGK8gikj6HQk8Rds/ g=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0AKBQAoMxBV/5tdJa1cgwZSWoMQw0CHIEwBAQEBAQFpFIQ+FXYCBSECEQJMDQgBAYgrDZ55j0yZZCyBIZFkgUUFixKJLIV/gVWFLoQXiRAihAwgMQGCQgEBAQ
X-IronPort-AV: E=Sophos;i="5.11,452,1422921600"; d="scan'208";a="134609504"
Received: from rcdn-core-4.cisco.com ([173.37.93.155]) by alln-iport-4.cisco.com with ESMTP; 23 Mar 2015 15:38:27 +0000
Received: from [10.82.241.197] (rtp-vpn2-453.cisco.com [10.82.241.197]) by rcdn-core-4.cisco.com (8.14.5/8.14.5) with ESMTP id t2NFcQKT030855 for <netmod@ietf.org>; Mon, 23 Mar 2015 15:38:26 GMT
Message-ID: <55103371.20301@cisco.com>
Date: Mon, 23 Mar 2015 10:38:25 -0500
From: Benoit Claise <bclaise@cisco.com>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0
MIME-Version: 1.0
To: NETMOD Working Group <netmod@ietf.org>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/XVwRvzkPKAG6qZvshqTFu4l0OfI>
Subject: [netmod] <CODE BEGINS>
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: <http://www.ietf.org/mail-archive/web/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, 23 Mar 2015 15:38:29 -0000

Dear all,

As discussed during the meeting today, see 
http://trustee.ietf.org/license-info/IETF-TLP-4.htm

Regards, Benoit


From nobody Mon Mar 23 09:08:49 2015
Return-Path: <deanb@juniper.net>
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 511FF1AC3EA for <netmod@ietfa.amsl.com>; Mon, 23 Mar 2015 09:08:47 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.398
X-Spam-Level: 
X-Spam-Status: No, score=0.398 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, MANGLED_LOOK=2.3, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=no
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 ysTIFN57Vqc0 for <netmod@ietfa.amsl.com>; Mon, 23 Mar 2015 09:08:43 -0700 (PDT)
Received: from na01-bl2-obe.outbound.protection.outlook.com (mail-bl2on0137.outbound.protection.outlook.com [65.55.169.137]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id CF62B1A92F1 for <netmod@ietf.org>; Mon, 23 Mar 2015 09:08:42 -0700 (PDT)
Received: from BN1PR05MB424.namprd05.prod.outlook.com (10.141.58.148) by BN1PR05MB938.namprd05.prod.outlook.com (10.255.205.25) with Microsoft SMTP Server (TLS) id 15.1.118.21; Mon, 23 Mar 2015 16:08:42 +0000
Received: from BN1PR05MB424.namprd05.prod.outlook.com (10.141.58.148) by BN1PR05MB424.namprd05.prod.outlook.com (10.141.58.148) with Microsoft SMTP Server (TLS) id 15.1.112.19; Mon, 23 Mar 2015 16:08:40 +0000
Received: from BN1PR05MB424.namprd05.prod.outlook.com ([169.254.8.141]) by BN1PR05MB424.namprd05.prod.outlook.com ([169.254.8.141]) with mapi id 15.01.0112.000; Mon, 23 Mar 2015 16:08:40 +0000
From: Dean Bogdanovic <deanb@juniper.net>
To: Ladislav Lhotka <lhotka@nic.cz>
Thread-Topic: [netmod] ACL example and module issues
Thread-Index: AQHQYlG+VQVwEHjTqUa0yvaCyElzwp0qQpoA
Date: Mon, 23 Mar 2015 16:08:40 +0000
Message-ID: <C228B44F-70B2-4D5B-8E33-35FFD6877363@juniper.net>
References: <m2wq2d83an.fsf@birdie.labs.nic.cz>
In-Reply-To: <m2wq2d83an.fsf@birdie.labs.nic.cz>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-mailer: Apple Mail (2.1510)
x-originating-ip: [66.129.241.10]
authentication-results: nic.cz; dkim=none (message not signed) header.d=none;
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:; SRVR:BN1PR05MB424; UriScan:; BCL:0; PCL:0; RULEID:; SRVR:BN1PR05MB938; 
x-microsoft-antispam-prvs: <BN1PR05MB424C54B398E2E997BCE4480B80D0@BN1PR05MB424.namprd05.prod.outlook.com>
x-forefront-antispam-report: BMV:1; SFV:NSPM; SFS:(10019020)(6009001)(24454002)(51914003)(51704005)(377454003)(2950100001)(122556002)(57306001)(2900100001)(50226001)(110136001)(46102003)(92566002)(66066001)(82746002)(19580405001)(19580395003)(86362001)(15975445007)(102836002)(76176999)(83716003)(50986999)(77156002)(62966003)(87936001)(33656002)(2656002)(99286002)(40100003)(106116001)(36756003)(104396002); DIR:OUT; SFP:1102; SCL:1; SRVR:BN1PR05MB424; H:BN1PR05MB424.namprd05.prod.outlook.com; FPR:; SPF:None; MLV:sfv; LANG:en; 
x-exchange-antispam-report-test: UriScan:;
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(5005006)(5002010); SRVR:BN1PR05MB424; BCL:0; PCL:0; RULEID:; SRVR:BN1PR05MB424; 
x-forefront-prvs: 05245CA661
Content-Type: text/plain; charset="us-ascii"
Content-ID: <2FE7EBA49B14734DB591AFA6D136E5FD@namprd05.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Mar 2015 16:08:40.5262 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN1PR05MB424
X-OriginatorOrg: juniper.net
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/TkkI-CN_eEWf61IenqqZE3ikL20>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] ACL example and module issues
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: <http://www.ietf.org/mail-archive/web/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, 23 Mar 2015 16:08:47 -0000

Lada,

Please see inline
On Mar 19, 2015, at 10:33 AM, Ladislav Lhotka <lhotka@nic.cz> wrote:

> Hi,
>=20
> I tried to validate the example in the acl-model draft against the
> ietf-acl module and found several issues with this example:
>=20
> - As Martin pointed out in his review, the example contains several
>  trivial errors, in particular the XML namespaces are completely wrong.

fixed
>=20
> - Such an example probably shouldn't be an <edit-config> message, a
>  reply to <get-config> makes more sense here.

Why is that? Will an xml response help here?
<?xml version=3D"1.0" encoding=3D"UTF-8"?>
  <rpc-reply message-id=3D"101"
xmlns=3D"urn:ietf:params:xml:ns:netconf:base:1.0">
    <ok/>
  </rpc-reply>

>=20
> - The data model contains no <top> element, it was probably copied by
>  mistake from an example in RFC 6241.
fixed
>=20
> - Elements <destination-ipv4-address> and <source-ipv4-address> should
>  in fact be <destination-ipv4-network> and <source-ipv4-network>,
>  respectively.
fixed
>=20
> After correcting the above validity problems I ran into the following,
> which is most likely a data model issue:
>=20
> - Containers "source-port-range" and "destination-port-range" are both
>  mandatory because the child leaf "lower-port" in each is mandatory. I
>  think this wasn't intended. One solution would be to make both of them
>  containers with presence.

actually we have fixed that by removing 'must' statement from the lower-por=
t leaf and with upper-port leaf having=20
      must ". >=3D ../lower-port" {
makes ports not mandatory.
>=20
> BTW, my GitHub project YANG-I-D is intended to aid the development of an
> I-D along with a set of YANG modules described therein, and it also
> provides a make target for validating examples. It would discover all
> the problems above.
>=20
> https://github.com/llhotka/YANG-I-D

thanks for the good tool.
>=20
> Lada
> --=20
> Ladislav Lhotka, CZ.NIC Labs
> PGP Key ID: E74E8C0C
>=20
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod


From nobody Mon Mar 23 10:39:38 2015
Return-Path: <j.schoenwaelder@jacobs-university.de>
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 A86291ACECD for <netmod@ietfa.amsl.com>; Mon, 23 Mar 2015 10:39:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.86
X-Spam-Level: 
X-Spam-Status: No, score=-3.86 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] 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 8sLGQKivr5_S for <netmod@ietfa.amsl.com>; Mon, 23 Mar 2015 10:39:35 -0700 (PDT)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 077681ACEC6 for <netmod@ietf.org>; Mon, 23 Mar 2015 10:39:34 -0700 (PDT)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id C09E4A85; Mon, 23 Mar 2015 18:39:33 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.220]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id UuhP7kaBCt3i; Mon, 23 Mar 2015 18:39:30 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS; Mon, 23 Mar 2015 18:39:33 +0100 (CET)
Received: from localhost (demetrius1.jacobs-university.de [212.201.44.46]) by hermes.jacobs-university.de (Postfix) with ESMTP id 046B62002B; Mon, 23 Mar 2015 18:39:33 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius1.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id cA6SnCLqUGqU; Mon, 23 Mar 2015 18:39:32 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id B29C320013; Mon, 23 Mar 2015 18:39:31 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id C9AF5328097D; Mon, 23 Mar 2015 18:39:30 +0100 (CET)
Date: Mon, 23 Mar 2015 18:39:30 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Benoit Claise <bclaise@cisco.com>
Message-ID: <20150323173930.GD56224@elstar.local>
Mail-Followup-To: Benoit Claise <bclaise@cisco.com>, NETMOD Working Group <netmod@ietf.org>
References: <55103371.20301@cisco.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <55103371.20301@cisco.com>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/RQsmDI7p-WO5HV_PjkD_Fx-TC9I>
Cc: NETMOD Working Group <netmod@ietf.org>
Subject: Re: [netmod] <CODE BEGINS>
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
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: <http://www.ietf.org/mail-archive/web/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, 23 Mar 2015 17:39:37 -0000

On Mon, Mar 23, 2015 at 10:38:25AM -0500, Benoit Claise wrote:
> Dear all,
> 
> As discussed during the meeting today, see 
> http://trustee.ietf.org/license-info/IETF-TLP-4.htm
>

Interesting. A grep through the RFCs reveals that <CODE BEGINS> <CODE
ENDS> has a longer history, smallest RFC number I found is RFC 5403.
Anyway, in the light of this, we may need to add an explicit pointer
to the above to the Guidelines Document since apparently this marker
has certain implications.

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Mon Mar 23 11:19:50 2015
Return-Path: <j.schoenwaelder@jacobs-university.de>
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 16FD31AD0CD for <netmod@ietfa.amsl.com>; Mon, 23 Mar 2015 11:19:50 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.86
X-Spam-Level: 
X-Spam-Status: No, score=-3.86 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] 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 fwxrwVzPwUnB for <netmod@ietfa.amsl.com>; Mon, 23 Mar 2015 11:19:49 -0700 (PDT)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id EEA951AD0CC for <netmod@ietf.org>; Mon, 23 Mar 2015 11:19:48 -0700 (PDT)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id C0339E71 for <netmod@ietf.org>; Mon, 23 Mar 2015 19:19:47 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.220]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id VR2wv0jRhf3B for <netmod@ietf.org>; Mon, 23 Mar 2015 19:19:44 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS for <netmod@ietf.org>; Mon, 23 Mar 2015 19:19:47 +0100 (CET)
Received: from localhost (demetrius3.jacobs-university.de [212.201.44.48]) by hermes.jacobs-university.de (Postfix) with ESMTP id 2081D2002B for <netmod@ietf.org>; Mon, 23 Mar 2015 19:19:47 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius3.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id eSf4UgTry600; Mon, 23 Mar 2015 19:19:46 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id E3A1920013; Mon, 23 Mar 2015 19:19:45 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id 112873280A7F; Mon, 23 Mar 2015 19:19:44 +0100 (CET)
Date: Mon, 23 Mar 2015 19:19:44 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: netmod@ietf.org
Message-ID: <20150323181944.GA56545@elstar.local>
Mail-Followup-To: netmod@ietf.org
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/Y-MeKrAWNB2a3mbstparlD9VhVg>
Subject: [netmod] yang 1.1 notification encoding meeting
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
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: <http://www.ietf.org/mail-archive/web/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, 23 Mar 2015 18:19:50 -0000

Hi,

people interested to work on an encoding for Y36 are invited to meet
today after the afternoon break (15:20) at the registration desk.

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Mon Mar 23 14:52:08 2015
Return-Path: <lhotka@nic.cz>
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 DB5521B2AC4 for <netmod@ietfa.amsl.com>; Mon, 23 Mar 2015 14:52:00 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.661
X-Spam-Level: 
X-Spam-Status: No, score=-0.661 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HELO_EQ_CZ=0.445, HOST_EQ_CZ=0.904, T_RP_MATCHES_RCVD=-0.01] autolearn=no
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 xXe4MN4HnJIy for <netmod@ietfa.amsl.com>; Mon, 23 Mar 2015 14:51:59 -0700 (PDT)
Received: from mail.nic.cz (mail.nic.cz [IPv6:2001:1488:800:400::400]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id EDED51B2AC2 for <netmod@ietf.org>; Mon, 23 Mar 2015 14:51:58 -0700 (PDT)
Received: from dhcp-93ca.meeting.ietf.org (dhcp-93ca.meeting.ietf.org [31.133.147.202]) by mail.nic.cz (Postfix) with ESMTPSA id 3D16C14002D for <netmod@ietf.org>; Mon, 23 Mar 2015 22:51:57 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=nic.cz; s=default; t=1427147517; bh=Uf4KUlIw0JG4c6xbfyfu1nc26ZxtbAsyj+HBtpVBwps=; h=From:Content-Type:Content-Transfer-Encoding:Subject:Message-Id: Date:To:Mime-Version; b=Um4iDYm4ADmrtXfHIRTlou9/b2qC3EhYOq/k7cfbSDIlSNcUxV0PR6jPXu906nM0K gvrwuzv4mLGh84gBPmHktdVHHPJr3J75IcybUCpYYycxUWDmWgcPhIqSIPWrI5Gf3J ggK/XAoMf+bi5sZS3g/A5WuWZbCw/925PUrX1vbQ=
From: Ladislav Lhotka <lhotka@nic.cz>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Message-Id: <04E4C79C-6D87-4A0F-A1BA-0ABBE1DCD1E4@nic.cz>
Date: Mon, 23 Mar 2015 16:51:53 -0500
To: NETMOD Working Group <netmod@ietf.org>
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2070.6\))
X-Mailer: Apple Mail (2.2070.6)
X-Virus-Scanned: clamav-milter 0.98.6 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/0IaQ8iFmLExaIX7F4lP6WUCEdPE>
Subject: [netmod] Y45 - imports
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: <http://www.ietf.org/mail-archive/web/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, 23 Mar 2015 21:52:01 -0000

Hi,

as a follow-up to today=E2=80=99s discussion about Y45, I propose the =
following change to the semantics of imports:

Sec. 7.1.5:

OLD

   When the optional "revision-date" substatement is present, any
   typedef, grouping, extension, feature, and identity referenced by
   definitions in the local module are taken from the specified revision
   of the imported module.  It is an error if the specified revision of
   the imported module does not exist.  If no "revision-date"
   substatement is present, it is undefined from which revision of the
   module they are taken.

NEW

   When the optional "revision-date" substatement is present, all
   typedefs and groupings referenced by definitions in the local module
   are taken from the specified revision of the imported module. It is
   an error if the specified revision of the imported module does not =
exist.
   If no "revision-date=E2=80=9D substatement is present, they are taken =
from the highest
   revision of the imported module that is less or equal to the revision
   of the importing module.

   When referencing extensions, features, identities and target nodes =
for augments,
   the =E2=80=9Crevision-date=E2=80=9D statement, if present, is ignored =
- the revision of the
   imported module that is implemented by the server is always used.=20

In other words, for groupings and typedefs the revision is always fixed =
and controlled by the importing module. For other entities the revision =
is determined from the server=E2=80=99s advertisement.

As a consequence, if a module is imported only for groupings and =
typedefs, it needn=E2=80=99t be advertised by the server. In all other =
cases (augments, =E2=80=A6) the imported module must also be advertised. =
In the latter case, the import statement is only used for defining a =
prefix corresponding to the imported module.

Lada

--
Ladislav Lhotka, CZ.NIC Labs
PGP Key ID: E74E8C0C





From nobody Mon Mar 23 15:12:13 2015
Return-Path: <randy_presuhn@mindspring.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 604D61B2ACC for <netmod@ietfa.amsl.com>; Mon, 23 Mar 2015 15:12:12 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.101
X-Spam-Level: 
X-Spam-Status: No, score=-0.101 tagged_above=-999 required=5 tests=[BAYES_20=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_NONE=-0.0001] 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 lNR6kFQ8N9l0 for <netmod@ietfa.amsl.com>; Mon, 23 Mar 2015 15:12:10 -0700 (PDT)
Received: from elasmtp-mealy.atl.sa.earthlink.net (elasmtp-mealy.atl.sa.earthlink.net [209.86.89.69]) by ietfa.amsl.com (Postfix) with ESMTP id 9C4A01B2AC3 for <netmod@ietf.org>; Mon, 23 Mar 2015 15:12:10 -0700 (PDT)
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=dk20050327; d=mindspring.com; b=P90f2YBXPlvj6MVifKYHakvOuovifNhQh634Bt/43iu2s56mLXkj3nPZ+nkKJ0B4; h=Message-ID:Date:From:Reply-To:To:Subject:Mime-Version:Content-Type:Content-Transfer-Encoding:X-Mailer:X-ELNK-Trace:X-Originating-IP;
Received: from [209.86.224.35] (helo=elwamui-huard.atl.sa.earthlink.net) by elasmtp-mealy.atl.sa.earthlink.net with esmtpa (Exim 4.67) (envelope-from <randy_presuhn@mindspring.com>) id 1YaAZt-0004jF-Cz; Mon, 23 Mar 2015 18:12:09 -0400
Received: from 76.254.48.64 by webmail.earthlink.net with HTTP; Mon, 23 Mar 2015 18:12:08 -0400
Message-ID: <24155413.1427148729327.JavaMail.root@elwamui-huard.atl.sa.earthlink.net>
Date: Mon, 23 Mar 2015 15:12:09 -0700 (GMT-07:00)
From: Randy Presuhn <randy_presuhn@mindspring.com>
To: Ladislav Lhotka <lhotka@nic.cz>, NETMOD Working Group <netmod@ietf.org>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-Mailer: EarthLink Zoo Mail 1.0
X-ELNK-Trace: 4488c18417c9426da92b9037bc8bcf44d4c20f6b8d69d888b65b6112f8911537ec22eef7980b0d909f395e08d453921d350badd9bab72f9c350badd9bab72f9c
X-Originating-IP: 209.86.224.35
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/rezrR9oUBP8FmsSXLly6zJR9yNk>
Subject: Re: [netmod] Y45 - imports
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Randy Presuhn <randy_presuhn@mindspring.com>
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: <http://www.ietf.org/mail-archive/web/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, 23 Mar 2015 22:12:12 -0000

Hi -

>From: Ladislav Lhotka <lhotka@nic.cz>
>Sent: Mar 23, 2015 2:51 PM
>To: NETMOD Working Group <netmod@ietf.org>
>Subject: [netmod] Y45 - imports
>
>Hi,
>
>as a follow-up to today=E2=80=99s discussion about Y45, I propose the foll=
owing change to the semantics of imports:
>
>Sec. 7.1.5:
>
>OLD
>
>   When the optional "revision-date" substatement is present, any
>   typedef, grouping, extension, feature, and identity referenced by
>   definitions in the local module are taken from the specified revision
>   of the imported module.  It is an error if the specified revision of
>   the imported module does not exist.  If no "revision-date"
>   substatement is present, it is undefined from which revision of the
>   module they are taken.
>
>NEW
>
>   When the optional "revision-date" substatement is present, all
>   typedefs and groupings referenced by definitions in the local module
>   are taken from the specified revision of the imported module. It is
>   an error if the specified revision of the imported module does not exis=
t.
>   If no "revision-date=E2=80=9D substatement is present, they are taken f=
rom the highest
>   revision of the imported module that is less or equal to the revision
>   of the importing module.
...

Just to be clear:

  (1) this is an admission that a server may end up implement multiple
      revisions of an imported module.  (Could happen when importing
      modules have different dates...)

  (2) "highest revision of the imported module" means the highest
      revision *known* *to* *the* *server*; there may be other ones
      out there, but only the ones the server is aware of count.

Randy


From nobody Mon Mar 23 15:20:46 2015
Return-Path: <andy@yumaworks.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 5F3741A1BE4 for <netmod@ietfa.amsl.com>; Mon, 23 Mar 2015 15:20:45 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.979
X-Spam-Level: 
X-Spam-Status: No, score=-1.979 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] 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 MZQJGuwQzX38 for <netmod@ietfa.amsl.com>; Mon, 23 Mar 2015 15:20:43 -0700 (PDT)
Received: from mail-lb0-f170.google.com (mail-lb0-f170.google.com [209.85.217.170]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 32DBB1A1BCB for <netmod@ietf.org>; Mon, 23 Mar 2015 15:20:43 -0700 (PDT)
Received: by lbcgn8 with SMTP id gn8so128572505lbc.2 for <netmod@ietf.org>; Mon, 23 Mar 2015 15:20:41 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=emSjd5uxiFErNWasCfJOFuVYjhk2ShxQYYDP4VnNRR0=; b=WmZsu94ftiGzm+kBMDZPaddP4Y7BKMpei7D8VUkR45x6g0A8hkfcGS7O0MEOXostTB azEurapUvvUyx+TFuuC3Sin9keLPWa0HuvaM/SF60qPoAcKg/KZ7POtEfm0a56oLDYX9 5EdUew0lmtlVoTgeVzcKz9C29QMNdZjYA14x/bI23aUQ2Gjp/YX5RZOPtdsU4GR+yXEI MEgfjLYd3HMbdqEbGFHtffbK9a2I9ygEpPMhfkO5w1tSmzaMUVWg+W6cZ/QFfLPGiEjw 2fJGRVRgkICqVE3bzEJeSVw2MPZ4IXIMPAeho36XKBqsuNBKH/IRp1US9cZDkOjbsy15 olkw==
X-Gm-Message-State: ALoCoQkVGZexRxYouLdOWIgyhHly3mH62U3Kv9v+ESxQH/dFvuMEaCIo/fODtOXMRkDkZH60pSW0
MIME-Version: 1.0
X-Received: by 10.152.1.194 with SMTP id 2mr1170897lao.38.1427149241669; Mon, 23 Mar 2015 15:20:41 -0700 (PDT)
Received: by 10.112.144.36 with HTTP; Mon, 23 Mar 2015 15:20:41 -0700 (PDT)
In-Reply-To: <04E4C79C-6D87-4A0F-A1BA-0ABBE1DCD1E4@nic.cz>
References: <04E4C79C-6D87-4A0F-A1BA-0ABBE1DCD1E4@nic.cz>
Date: Mon, 23 Mar 2015 17:20:41 -0500
Message-ID: <CABCOCHQ-WYFzzW_+=E5Ur0_x+6zx-wuYJH+391sdL=trUpH8cA@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Ladislav Lhotka <lhotka@nic.cz>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/m53D6M5KUev13C1z-elEtDKpieA>
Cc: NETMOD Working Group <netmod@ietf.org>
Subject: Re: [netmod] Y45 - imports
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: <http://www.ietf.org/mail-archive/web/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, 23 Mar 2015 22:20:45 -0000

On Mon, Mar 23, 2015 at 4:51 PM, Ladislav Lhotka <lhotka@nic.cz> wrote:
> Hi,
>
> as a follow-up to today=E2=80=99s discussion about Y45, I propose the fol=
lowing change to the semantics of imports:
>
> Sec. 7.1.5:
>
> OLD
>
>    When the optional "revision-date" substatement is present, any
>    typedef, grouping, extension, feature, and identity referenced by
>    definitions in the local module are taken from the specified revision
>    of the imported module.  It is an error if the specified revision of
>    the imported module does not exist.  If no "revision-date"
>    substatement is present, it is undefined from which revision of the
>    module they are taken.
>
> NEW
>
>    When the optional "revision-date" substatement is present, all
>    typedefs and groupings referenced by definitions in the local module
>    are taken from the specified revision of the imported module. It is
>    an error if the specified revision of the imported module does not exi=
st.
>    If no "revision-date=E2=80=9D substatement is present, they are taken =
from the highest
>    revision of the imported module that is less or equal to the revision
>    of the importing module.
>
>    When referencing extensions, features, identities and target nodes for=
 augments,
>    the =E2=80=9Crevision-date=E2=80=9D statement, if present, is ignored =
- the revision of the
>    imported module that is implemented by the server is always used.
>

IMO this does not work because there is no requirement that
the server have all available revisions of all imported modules.
The best match revision may be different from server to server.
Even within 1 server, the best match can change from 1 day
to the next.

The problem cannot be fixed with import-by-revision because
the revision must apply to the whole module:

module A {
    ...
   revision 2015-01-01;
   ...

   typedef foo-range {
      type int32 { range "1..10"; }
   }
}

module B {
   ...
   import A {
      prefix A;
      revision-date 2015-01-01;
   }

  leaf X { type A:foo-range; }
}

Great -- now leaf X is always "1..10".  Problem solved.
But later the designer of module B needs to use the
new 'bar-type' that was added to module A.
Unfortunately, 'foo-range' was also changed.



module A {
    ...
   revision 2015-03-01;
   ...

   typedef foo-range {
      type int32 { range "1..20"; }
   }


   typedef bar-type {
     type string;
   }

}

module B {
   ...
   import A {
      prefix A;
      revision-date 2015-03-03;
   }

  leaf X { type A:foo-range; }
  leaf Y { type A:bar-type; }


}


Now the conformance for leaf X  changed from 1..10
to 1..20.  Import by revision does not really work 100%
unless each YANG module has only 1 exported definition in it.
This is unworkable, especially if the designer of module A
has no reason to separate foo-range and bar-type (because
they don't know or care about module B)


Andy



> In other words, for groupings and typedefs the revision is always fixed a=
nd controlled by the importing module. For other entities the revision is d=
etermined from the server=E2=80=99s advertisement.
>
> As a consequence, if a module is imported only for groupings and typedefs=
, it needn=E2=80=99t be advertised by the server. In all other cases (augme=
nts, =E2=80=A6) the imported module must also be advertised. In the latter =
case, the import statement is only used for defining a prefix corresponding=
 to the imported module.
>
> Lada
>
> --
> Ladislav Lhotka, CZ.NIC Labs
> PGP Key ID: E74E8C0C
>
>
>
>
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod


From nobody Mon Mar 23 15:24:30 2015
Return-Path: <mbj@tail-f.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 B2CD41A1BF3 for <netmod@ietfa.amsl.com>; Mon, 23 Mar 2015 15:24:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.91
X-Spam-Level: 
X-Spam-Status: No, score=-1.91 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, T_RP_MATCHES_RCVD=-0.01] 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 4U6MMND0nqfj for <netmod@ietfa.amsl.com>; Mon, 23 Mar 2015 15:24:23 -0700 (PDT)
Received: from mail.tail-f.com (mail.tail-f.com [83.241.162.140]) by ietfa.amsl.com (Postfix) with ESMTP id 311A51A1BFF for <netmod@ietf.org>; Mon, 23 Mar 2015 15:24:21 -0700 (PDT)
Received: from localhost (dhcp-a1fb.meeting.ietf.org [31.133.161.251]) by mail.tail-f.com (Postfix) with ESMTPSA id 588AF1280AC6 for <netmod@ietf.org>; Mon, 23 Mar 2015 23:24:18 +0100 (CET)
Date: Mon, 23 Mar 2015 17:24:12 -0500 (CDT)
Message-Id: <20150323.172412.2158362343560646679.mbj@tail-f.com>
To: netmod@ietf.org
From: Martin Bjorklund <mbj@tail-f.com>
X-Mailer: Mew version 6.5 on Emacs 24.3 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/on5AR_SY1lOLXaoA1yfDt20armg>
Subject: [netmod] Y36: associate a notification with a data node
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: <http://www.ietf.org/mail-archive/web/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, 23 Mar 2015 22:24:27 -0000

Hi,

A few of us sat down and looked at the encoding options for inline
notifications.  As a result, we have updated Y36 and added solution
Y36-03, which is a variant of the second alternative in Y36-02.

The issues file is updated, and Y36-03 is included below:

** Solution Y36-03

  Allow "inline" notification definitions.

    #+BEGIN_EXAMPLE
    container interfaces {
      list interface {
        ...
        notification interface-enabled {
          ...
        }
      }
    }
    #+END_EXAMPLE

  Notifications are scoped like other data nodes, and are encoded as
  below:

    #+BEGIN_EXAMPLE
    <notification ...>
      <eventTime>2014-04-01T10:00:00Z</eventTime>
      <event xmlns="urn:ietf:params:xml:ns:yang:1">
        <interfaces ...>
          <interface>
            <name>eth1</name>
            <interface-enabled>
              ...
            </interface-enabled>
          </interface>
        </interfaces>
      </event>
    </notification>
    #+END_EXAMPLE

  This encoding is preferred over the first alternative in Y36-02
  because it is simpler to parse.  If the first alternative in Y36-02
  is parsed, the parser has to peek into the contents of the
  notification and parse the yang:data-node element before it can
  validate the notification name.  It also makes it more difficult to
  handle the case where there is a top-level notification and an
  inline notification with the same name.



/martin


From nobody Mon Mar 23 15:26:31 2015
Return-Path: <lhotka@nic.cz>
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 86BA71A1BE5 for <netmod@ietfa.amsl.com>; Mon, 23 Mar 2015 15:26:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.661
X-Spam-Level: 
X-Spam-Status: No, score=-0.661 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HELO_EQ_CZ=0.445, HOST_EQ_CZ=0.904, T_RP_MATCHES_RCVD=-0.01] autolearn=no
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 UsmXtIZTaWCD for <netmod@ietfa.amsl.com>; Mon, 23 Mar 2015 15:26:29 -0700 (PDT)
Received: from mail.nic.cz (mail.nic.cz [IPv6:2001:1488:800:400::400]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id BC4C51A1BDD for <netmod@ietf.org>; Mon, 23 Mar 2015 15:26:28 -0700 (PDT)
Received: from [IPv6:2001:67c:370:176:3d11:3759:73c4:40ce] (unknown [IPv6:2001:67c:370:176:3d11:3759:73c4:40ce]) by mail.nic.cz (Postfix) with ESMTPSA id EBDE114002D; Mon, 23 Mar 2015 23:26:26 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=nic.cz; s=default; t=1427149587; bh=XhaVaU3bv96nILOOEX+I0zEtR003xeZ/9Mp8qgTI3Gk=; h=Content-Type:Mime-Version:Subject:From:In-Reply-To:Date:Cc: Content-Transfer-Encoding:Message-Id:References:To; b=MfQmUsCUucOUj1fem+3psZnWps+YzT4P6i1ElfZaFxDf+0YvJhUY16uM7ibU+bT10 OxM0kNC70Qt9uMni21bZ7Mc0b2jGHWRLSXzTES6eSVLa6MWHsnSLUUxV+ll6K1JiZ0 RucaNCHPr6YHnqtP+Zv5hxHmPKfr5EJkiSS8G22k=
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2070.6\))
From: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <24155413.1427148729327.JavaMail.root@elwamui-huard.atl.sa.earthlink.net>
Date: Mon, 23 Mar 2015 17:26:24 -0500
Content-Transfer-Encoding: quoted-printable
Message-Id: <E70380E0-4A9A-4B7D-9A58-12CFDA053BA0@nic.cz>
References: <24155413.1427148729327.JavaMail.root@elwamui-huard.atl.sa.earthlink.net>
To: Randy Presuhn <randy_presuhn@mindspring.com>
X-Mailer: Apple Mail (2.2070.6)
X-Virus-Scanned: clamav-milter 0.98.6 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/IWhcwr9Ag7wxKVWA57kLviYuicQ>
Cc: NETMOD Working Group <netmod@ietf.org>
Subject: Re: [netmod] Y45 - imports
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: <http://www.ietf.org/mail-archive/web/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, 23 Mar 2015 22:26:30 -0000

> On 23 Mar 2015, at 17:12, Randy Presuhn <randy_presuhn@mindspring.com> =
wrote:
>=20
> Hi -
>=20
>> From: Ladislav Lhotka <lhotka@nic.cz>
>> Sent: Mar 23, 2015 2:51 PM
>> To: NETMOD Working Group <netmod@ietf.org>
>> Subject: [netmod] Y45 - imports
>>=20
>> Hi,
>>=20
>> as a follow-up to today=E2=80=99s discussion about Y45, I propose the =
following change to the semantics of imports:
>>=20
>> Sec. 7.1.5:
>>=20
>> OLD
>>=20
>>  When the optional "revision-date" substatement is present, any
>>  typedef, grouping, extension, feature, and identity referenced by
>>  definitions in the local module are taken from the specified =
revision
>>  of the imported module.  It is an error if the specified revision of
>>  the imported module does not exist.  If no "revision-date"
>>  substatement is present, it is undefined from which revision of the
>>  module they are taken.
>>=20
>> NEW
>>=20
>>  When the optional "revision-date" substatement is present, all
>>  typedefs and groupings referenced by definitions in the local module
>>  are taken from the specified revision of the imported module. It is
>>  an error if the specified revision of the imported module does not =
exist.
>>  If no "revision-date=E2=80=9D substatement is present, they are =
taken from the highest
>>  revision of the imported module that is less or equal to the =
revision
>>  of the importing module.
> ...
>=20
> Just to be clear:
>=20
>  (1) this is an admission that a server may end up implement multiple
>      revisions of an imported module.  (Could happen when importing
>      modules have different dates=E2=80=A6)

Yes, and I think it is better than admitting ripple efects caused by =
updating the imported module.

>=20
>  (2) "highest revision of the imported module" means the highest
>      revision *known* *to* *the* *server*; there may be other ones
>      out there, but only the ones the server is aware of count.

For IETF-published modules this should=E2=80=99t be an issue, and in any =
case it might be advisable to always use =E2=80=9Crevision-date=E2=80=9D.

Lada

>=20
> Randy

--
Ladislav Lhotka, CZ.NIC Labs
PGP Key ID: E74E8C0C





From nobody Mon Mar 23 15:37:20 2015
Return-Path: <lhotka@nic.cz>
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 1F2761A0006 for <netmod@ietfa.amsl.com>; Mon, 23 Mar 2015 15:37:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.661
X-Spam-Level: 
X-Spam-Status: No, score=-0.661 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HELO_EQ_CZ=0.445, HOST_EQ_CZ=0.904, T_RP_MATCHES_RCVD=-0.01] autolearn=no
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 Lp-bBYIaT1jl for <netmod@ietfa.amsl.com>; Mon, 23 Mar 2015 15:37:17 -0700 (PDT)
Received: from mail.nic.cz (mail.nic.cz [IPv6:2001:1488:800:400::400]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 795631A000E for <netmod@ietf.org>; Mon, 23 Mar 2015 15:37:17 -0700 (PDT)
Received: from [IPv6:2001:67c:370:176:3d11:3759:73c4:40ce] (unknown [IPv6:2001:67c:370:176:3d11:3759:73c4:40ce]) by mail.nic.cz (Postfix) with ESMTPSA id 8C0401401C9; Mon, 23 Mar 2015 23:37:15 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=nic.cz; s=default; t=1427150236; bh=d2Kd1yKsC01qMoLDC+1p2k7FNwJUANxJeiKDO+WMSQg=; h=Content-Type:Mime-Version:Subject:From:In-Reply-To:Date:Cc: Content-Transfer-Encoding:Message-Id:References:To; b=tvHqMidd9SrctCXpwqkDVc/SrAz0f9jA+v93ncwgcxWwr1xjbnkKngeLaK8TNE8GW YiZZlPZf6lY6e/2gVALtZzksXlb73v3ta7/a3JJuAbcM50v+JAKZOwX157gkqwDtoj MHuPUDP1lSllWAKruKd1htgRmCfW+Z9kJyC/FUlQ=
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2070.6\))
From: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <CABCOCHQ-WYFzzW_+=E5Ur0_x+6zx-wuYJH+391sdL=trUpH8cA@mail.gmail.com>
Date: Mon, 23 Mar 2015 17:37:12 -0500
Content-Transfer-Encoding: quoted-printable
Message-Id: <F9E306F2-7B4A-4531-A683-837D996DF838@nic.cz>
References: <04E4C79C-6D87-4A0F-A1BA-0ABBE1DCD1E4@nic.cz> <CABCOCHQ-WYFzzW_+=E5Ur0_x+6zx-wuYJH+391sdL=trUpH8cA@mail.gmail.com>
To: Andy Bierman <andy@yumaworks.com>
X-Mailer: Apple Mail (2.2070.6)
X-Virus-Scanned: clamav-milter 0.98.6 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/KRX9I2bb7Xvwx2WRb1_-sszAdqo>
Cc: NETMOD Working Group <netmod@ietf.org>
Subject: Re: [netmod] Y45 - imports
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: <http://www.ietf.org/mail-archive/web/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, 23 Mar 2015 22:37:19 -0000

> On 23 Mar 2015, at 17:20, Andy Bierman <andy@yumaworks.com> wrote:
>=20
> On Mon, Mar 23, 2015 at 4:51 PM, Ladislav Lhotka <lhotka@nic.cz> =
wrote:
>> Hi,
>>=20
>> as a follow-up to today=E2=80=99s discussion about Y45, I propose the =
following change to the semantics of imports:
>>=20
>> Sec. 7.1.5:
>>=20
>> OLD
>>=20
>>   When the optional "revision-date" substatement is present, any
>>   typedef, grouping, extension, feature, and identity referenced by
>>   definitions in the local module are taken from the specified =
revision
>>   of the imported module.  It is an error if the specified revision =
of
>>   the imported module does not exist.  If no "revision-date"
>>   substatement is present, it is undefined from which revision of the
>>   module they are taken.
>>=20
>> NEW
>>=20
>>   When the optional "revision-date" substatement is present, all
>>   typedefs and groupings referenced by definitions in the local =
module
>>   are taken from the specified revision of the imported module. It is
>>   an error if the specified revision of the imported module does not =
exist.
>>   If no "revision-date=E2=80=9D substatement is present, they are =
taken from the highest
>>   revision of the imported module that is less or equal to the =
revision
>>   of the importing module.
>>=20
>>   When referencing extensions, features, identities and target nodes =
for augments,
>>   the =E2=80=9Crevision-date=E2=80=9D statement, if present, is =
ignored - the revision of the
>>   imported module that is implemented by the server is always used.
>>=20
>=20
> IMO this does not work because there is no requirement that
> the server have all available revisions of all imported modules.

If the server implements a module that asks for a specific revision of a =
module, then the implementor should have that particular revision. If he =
cannot get it, then something is broken.

> The best match revision may be different from server to server.
> Even within 1 server, the best match can change from 1 day
> to the next.

No, the revision is fixed by the importing module, ideally form the =
revision-date. It doesn=E2=80=99t differ from server to server, and =
server implementors should use that revision.

>=20
> The problem cannot be fixed with import-by-revision because
> the revision must apply to the whole module:
>=20
> module A {
>    ...
>   revision 2015-01-01;
>   ...
>=20
>   typedef foo-range {
>      type int32 { range "1..10"; }
>   }
> }
>=20
> module B {
>   ...
>   import A {
>      prefix A;
>      revision-date 2015-01-01;
>   }
>=20
>  leaf X { type A:foo-range; }
> }
>=20
> Great -- now leaf X is always "1..10".  Problem solved.
> But later the designer of module B needs to use the
> new 'bar-type' that was added to module A.
> Unfortunately, 'foo-range' was also changed.
>=20
>=20
>=20
> module A {
>    ...
>   revision 2015-03-01;
>   ...
>=20
>   typedef foo-range {
>      type int32 { range "1..20"; }
>   }
>=20
>=20
>   typedef bar-type {
>     type string;
>   }
>=20
> }
>=20
> module B {
>   ...
>   import A {
>      prefix A;
>      revision-date 2015-03-03;
>   }
>=20
>  leaf X { type A:foo-range; }
>  leaf Y { type A:bar-type; }
>=20
>=20
> }
>=20
>=20
> Now the conformance for leaf X  changed from 1..10
> to 1..20.  Import by revision does not really work 100%
> unless each YANG module has only 1 exported definition in it.
> This is unworkable, especially if the designer of module A
> has no reason to separate foo-range and bar-type (because
> they don't know or care about module B)

If foo-range changed, then presumably there must have been a reason for =
such a change, and all users should sooner or later accommodate to this =
change. If a server *temporarily* cannot implement the extended range, =
it can copy-and-paste the old version.

Lada

>=20
>=20
> Andy
>=20
>=20
>=20
>> In other words, for groupings and typedefs the revision is always =
fixed and controlled by the importing module. For other entities the =
revision is determined from the server=E2=80=99s advertisement.
>>=20
>> As a consequence, if a module is imported only for groupings and =
typedefs, it needn=E2=80=99t be advertised by the server. In all other =
cases (augments, =E2=80=A6) the imported module must also be advertised. =
In the latter case, the import statement is only used for defining a =
prefix corresponding to the imported module.
>>=20
>> Lada
>>=20
>> --
>> Ladislav Lhotka, CZ.NIC Labs
>> PGP Key ID: E74E8C0C
>>=20
>>=20
>>=20
>>=20
>> _______________________________________________
>> netmod mailing list
>> netmod@ietf.org
>> https://www.ietf.org/mailman/listinfo/netmod

--
Ladislav Lhotka, CZ.NIC Labs
PGP Key ID: E74E8C0C





From nobody Mon Mar 23 15:56:10 2015
Return-Path: <jason.sterne@alcatel-lucent.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 414FA1A0263 for <netmod@ietfa.amsl.com>; Mon, 23 Mar 2015 15:56:08 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.91
X-Spam-Level: 
X-Spam-Status: No, score=-6.91 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, T_RP_MATCHES_RCVD=-0.01] 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 NrB7_lREjdE0 for <netmod@ietfa.amsl.com>; Mon, 23 Mar 2015 15:56:06 -0700 (PDT)
Received: from smtp-fr.alcatel-lucent.com (fr-hpida-esg-02.alcatel-lucent.com [135.245.210.21]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0D8701A01E7 for <netmod@ietf.org>; Mon, 23 Mar 2015 15:56:06 -0700 (PDT)
Received: from us70uusmtp4.zam.alcatel-lucent.com (unknown [135.5.2.66]) by Websense Email Security Gateway with ESMTPS id 6E65F963D93AC for <netmod@ietf.org>; Mon, 23 Mar 2015 22:55:59 +0000 (GMT)
Received: from US70UWXCHHUB02.zam.alcatel-lucent.com (us70uwxchhub02.zam.alcatel-lucent.com [135.5.2.49]) by us70uusmtp4.zam.alcatel-lucent.com (GMO) with ESMTP id t2NMu3gd006807 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL) for <netmod@ietf.org>; Mon, 23 Mar 2015 18:56:03 -0400
Received: from US70TWXCHMBA11.zam.alcatel-lucent.com ([169.254.5.170]) by US70UWXCHHUB02.zam.alcatel-lucent.com ([135.5.2.49]) with mapi id 14.03.0195.001; Mon, 23 Mar 2015 18:56:03 -0400
From: "Sterne, Jason (Jason)" <jason.sterne@alcatel-lucent.com>
To: "netmod@ietf.org" <netmod@ietf.org>
Thread-Topic: comments on acl-model-02
Thread-Index: AdBlvIipRt4iE4pLQ/KdNLvIhglXNw==
Date: Mon, 23 Mar 2015 22:56:02 +0000
Message-ID: <A125E53CE190A749957C19483DC79F9F5C9DFFD4@US70TWXCHMBA11.zam.alcatel-lucent.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [135.5.27.16]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/ECoizV4PB9dY14YkLeJiL5fcFgA>
Subject: [netmod] comments on acl-model-02
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: <http://www.ietf.org/mail-archive/web/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, 23 Mar 2015 22:56:08 -0000

Hi all,

I know there are some updates & discussions happening (maybe right now) aro=
und the ACL model and I wanted to add some input.

A) It would be good to create separate identities for IPv4-access-control-l=
ist and IPv6-access-control-list instead of bundling them into IP-access-co=
ntrol-list. If we're separating into types in the model it should be the 3 =
basic types in the base model:  v4, v6 and enet.

That would also help if we decide to put some constraints that allow/disall=
ow certain matching criteria when the type is a specific value (e.g. don't =
allow a v6 address match in a v4 list).  We'd have to be careful about how =
those constraints are formulated though - especially if we want to allow au=
gmentations of the list-type for "mixed" ACLs. A new "mixed-v4-enet" type (=
identity) would also need to use the destination-ipv4-network matching crit=
eria (can "when" or "must" logic be changed by an augmentation ?  I'm not s=
ure that works).

B) I preferred the type as mandatory in an older version of the draft and w=
ould like to see it as part of the key. That allows the same acl-name to be=
 reused per type.  That maps better to a mix of implementations that have a=
 single global namespace and implementations that have a namespace per acl =
type.=20

If some vendors allow mixing types and have a single global namespace then =
they could augment with a "mixed" type and always use that in their lists. =
Are there actually vendors who mix types in a single list ?  I'd imagine it=
 is more common to use multiple lists on a target (e.g. interface) to achie=
ve mixed-layer ACLs rather than mixing the rules for multiple layers in the=
 same ACL.

C) entries are "ordered-by user" in the current version. Some implementatio=
ns use integers as ACE entry keys. That can work in the current model (e.g.=
 by augmenting the entry name string type with a 'pattern' statement) if we=
 either:
i) remove the "ordered-by user" and let vendors augment with that statement=
, or
ii) make that an if-feature ace-user-ordered

D) The proposed solution of making source-port-range a presence container a=
nd then having 'lower-port' as mandatory (with the constraint that lower-po=
rt < upper-port) seems like a good one.

E) Please make the metadata optional with an if-feature (or make each of in=
put-interface & time-range their own if-features).  Or drop those out of th=
e model and leave them to augmentations.

F) minor editorial:  In section 3 there is a sentence about Metadata that m=
entions 'destination prefix length'.  I'm not sure that makes sense. That i=
s more of a matching criteria (i.e. a rule in a routing filter) than a piec=
e of metadata about a particular packet.

Regards,
Jason


From nobody Mon Mar 23 16:06:14 2015
Return-Path: <randy_presuhn@mindspring.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 049861A03A3 for <netmod@ietfa.amsl.com>; Mon, 23 Mar 2015 16:06:13 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level: 
X-Spam-Status: No, score=-2 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_NONE=-0.0001] 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 Y3LjA37crm2Q for <netmod@ietfa.amsl.com>; Mon, 23 Mar 2015 16:06:10 -0700 (PDT)
Received: from elasmtp-curtail.atl.sa.earthlink.net (elasmtp-curtail.atl.sa.earthlink.net [209.86.89.64]) by ietfa.amsl.com (Postfix) with ESMTP id 170DE1A1A15 for <netmod@ietf.org>; Mon, 23 Mar 2015 16:06:09 -0700 (PDT)
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=dk20050327; d=mindspring.com; b=fse4l9fCNVp+Mxj2K/Ei87GS0mjhDvd11aUqjUl7CUjo+QICRRozhDHOqSCpw/6k; h=Message-ID:Date:From:Reply-To:To:Subject:Cc:Mime-Version:Content-Type:Content-Transfer-Encoding:X-Mailer:X-ELNK-Trace:X-Originating-IP;
Received: from [209.86.224.35] (helo=elwamui-huard.atl.sa.earthlink.net) by elasmtp-curtail.atl.sa.earthlink.net with esmtpa (Exim 4.67) (envelope-from <randy_presuhn@mindspring.com>) id 1YaBQ8-0004PX-Fs; Mon, 23 Mar 2015 19:06:08 -0400
Received: from 76.254.48.64 by webmail.earthlink.net with HTTP; Mon, 23 Mar 2015 19:06:08 -0400
Message-ID: <18169973.1427151968459.JavaMail.root@elwamui-huard.atl.sa.earthlink.net>
Date: Mon, 23 Mar 2015 16:06:08 -0700 (GMT-07:00)
From: Randy Presuhn <randy_presuhn@mindspring.com>
To: Ladislav Lhotka <lhotka@nic.cz>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-Mailer: EarthLink Zoo Mail 1.0
X-ELNK-Trace: 4488c18417c9426da92b9037bc8bcf44d4c20f6b8d69d888b65b6112f8911537dfe3f5fb58efe2df0ccc533b1d4d92f8350badd9bab72f9c350badd9bab72f9c
X-Originating-IP: 209.86.224.35
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/LTCLG5vbVbTlVg2nOe5zXEAw2UA>
Cc: NETMOD Working Group <netmod@ietf.org>
Subject: Re: [netmod] Y45 - imports
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Randy Presuhn <randy_presuhn@mindspring.com>
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: <http://www.ietf.org/mail-archive/web/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, 23 Mar 2015 23:06:13 -0000

Hi -

>From: Ladislav Lhotka <lhotka@nic.cz>
>Sent: Mar 23, 2015 3:37 PM
>To: Andy Bierman <andy@yumaworks.com>
>Cc: NETMOD Working Group <netmod@ietf.org>
>Subject: Re: [netmod] Y45 - imports
...
>> The best match revision may be different from server to server.
>> Even within 1 server, the best match can change from 1 day
>> to the next.
>
>No, the revision is fixed by the importing module, ideally form
>the revision-date. It doesn=E2=80=99t differ from server to server, and
>server implementors should use that revision.

I think the presumes an unrealistic level of omniscience on the
part of the designers / implementors of the importing code.

Consider this case:
  - a series of dates, D1..D5
  - ImporterA[D2], ImporterB[D5]
  - Imported[D1], Imported[D3], Imported[D4]

One would expext ImporterA[D2] to get Imported[D1].

One could *hope* that ImporterB[5] would get Imported[D4],
but I think one should not be surprised to get Imported[D3],
particularly if the organization responsible for the implementation
and maintenance of Imported[] is not tightly integrated with the
organization responsible for the maintenance of Importer[].

Randy


From nobody Mon Mar 23 16:32:06 2015
Return-Path: <lhotka@nic.cz>
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 060941A1BAF for <netmod@ietfa.amsl.com>; Mon, 23 Mar 2015 16:32:05 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.661
X-Spam-Level: 
X-Spam-Status: No, score=-0.661 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HELO_EQ_CZ=0.445, HOST_EQ_CZ=0.904, T_RP_MATCHES_RCVD=-0.01] autolearn=no
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 PjCospd6ELBM for <netmod@ietfa.amsl.com>; Mon, 23 Mar 2015 16:32:04 -0700 (PDT)
Received: from mail.nic.cz (mail.nic.cz [IPv6:2001:1488:800:400::400]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 34C0A1A1EF4 for <netmod@ietf.org>; Mon, 23 Mar 2015 16:32:03 -0700 (PDT)
Received: from [IPv6:2001:67c:370:176:444d:9689:852c:7c27] (unknown [IPv6:2001:67c:370:176:444d:9689:852c:7c27]) by mail.nic.cz (Postfix) with ESMTPSA id D0E0B14002D; Tue, 24 Mar 2015 00:32:00 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=nic.cz; s=default; t=1427153521; bh=4Vl1QRo5Oc1RN66rkqwNcwysNaHUOoTuqSoYJ3wp5n4=; h=Content-Type:Mime-Version:Subject:From:In-Reply-To:Date:Cc: Content-Transfer-Encoding:Message-Id:References:To; b=orIHP/+zej0GRguaI+t8zXHAGgsWpOUhU7Y/OefLzeq4s6pYxWvH4hpTeLgaWeanY UKe3Y15/wOPy4/AQktJW4w8wYQeFDgHEROkNn6ppRTWUM8Udix5EoM90K1KR+Q+Foj 7IYsk8JrhSCWeTD+F3JH32zDqOA5UmMlaM2UlKno=
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2070.6\))
From: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <18169973.1427151968459.JavaMail.root@elwamui-huard.atl.sa.earthlink.net>
Date: Mon, 23 Mar 2015 18:31:59 -0500
Content-Transfer-Encoding: quoted-printable
Message-Id: <18D306C3-434F-46E1-96C4-4C812BA595FC@nic.cz>
References: <18169973.1427151968459.JavaMail.root@elwamui-huard.atl.sa.earthlink.net>
To: Randy Presuhn <randy_presuhn@mindspring.com>
X-Mailer: Apple Mail (2.2070.6)
X-Virus-Scanned: clamav-milter 0.98.6 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/0hspbglgz71m7ElsjSge5OrQ1Es>
Cc: NETMOD Working Group <netmod@ietf.org>
Subject: Re: [netmod] Y45 - imports
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: <http://www.ietf.org/mail-archive/web/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, 23 Mar 2015 23:32:05 -0000

> On 23 Mar 2015, at 18:06, Randy Presuhn <randy_presuhn@mindspring.com> =
wrote:
>=20
> Hi -
>=20
>> From: Ladislav Lhotka <lhotka@nic.cz>
>> Sent: Mar 23, 2015 3:37 PM
>> To: Andy Bierman <andy@yumaworks.com>
>> Cc: NETMOD Working Group <netmod@ietf.org>
>> Subject: Re: [netmod] Y45 - imports
> ...
>>> The best match revision may be different from server to server.
>>> Even within 1 server, the best match can change from 1 day
>>> to the next.
>>=20
>> No, the revision is fixed by the importing module, ideally form
>> the revision-date. It doesn=E2=80=99t differ from server to server, =
and
>> server implementors should use that revision.
>=20
> I think the presumes an unrealistic level of omniscience on the
> part of the designers / implementors of the importing code.

I don=E2=80=99t think so. The developer of the importing module must =
have used a particular revision of the imported module, and this =
revision should be clear from the importing module. All users of the =
importing module have to use that revision.

BTW, this would also solve the issue of upgrading library modules to =
YANG 1.1. Modules importing, e.g., ietf-inet-types that are written =
before ietf-inet-types gets upgraded to 1.1 will stick to the 1.0 =
revision even if they don=E2=80=99t specify revision-date.  =20

>=20
> Consider this case:
>  - a series of dates, D1..D5
>  - ImporterA[D2], ImporterB[D5]
>  - Imported[D1], Imported[D3], Imported[D4]

I assume that if module A imports revision D2, then D2 has to be used =
whenever (that particular revision) of module A is used. Using Di for =
i!=3D2 means that typedefs or groupings may be different from those that =
the author of A used - and this is IMO unacceptable and can lead to =
interoperability problems.

I think that making sure all existing revisions of a module are =
available is not that difficult (although it is not the case for the =
existing GitHub repository).

Lada

>=20
> One would expext ImporterA[D2] to get Imported[D1].
>=20
> One could *hope* that ImporterB[5] would get Imported[D4],
> but I think one should not be surprised to get Imported[D3],
> particularly if the organization responsible for the implementation
> and maintenance of Imported[] is not tightly integrated with the
> organization responsible for the maintenance of Importer[].
>=20
> Randy

--
Ladislav Lhotka, CZ.NIC Labs
PGP Key ID: E74E8C0C





From nobody Mon Mar 23 17:13:41 2015
Return-Path: <deanb@juniper.net>
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 D5FB61A89F1 for <netmod@ietfa.amsl.com>; Mon, 23 Mar 2015 17:13:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level: 
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] 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 nYXuME-L-W9k for <netmod@ietfa.amsl.com>; Mon, 23 Mar 2015 17:13:38 -0700 (PDT)
Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1bon0764.outbound.protection.outlook.com [IPv6:2a01:111:f400:fc10::1:764]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6830B1A702E for <netmod@ietf.org>; Mon, 23 Mar 2015 17:13:38 -0700 (PDT)
Received: from BN1PR05MB424.namprd05.prod.outlook.com (10.141.58.148) by BN1PR05MB422.namprd05.prod.outlook.com (10.141.58.142) with Microsoft SMTP Server (TLS) id 15.1.112.19; Tue, 24 Mar 2015 00:13:20 +0000
Received: from BN1PR05MB424.namprd05.prod.outlook.com ([169.254.8.141]) by BN1PR05MB424.namprd05.prod.outlook.com ([169.254.8.141]) with mapi id 15.01.0112.000; Tue, 24 Mar 2015 00:13:20 +0000
From: Dean Bogdanovic <deanb@juniper.net>
To: "netmod@ietf.org" <netmod@ietf.org>
Thread-Topic: New Version Notification for draft-bogdanovic-netmod-yang-model-classification-02.txt
Thread-Index: AQHQZcc5Xv6rjmNf+UiE6LpcC3r5Eg==
Date: Tue, 24 Mar 2015 00:13:20 +0000
Message-ID: <BEB80BE5-DCCB-43DB-8AAA-7738AFB3A6B6@juniper.net>
References: <20150324001224.12287.12581.idtracker@ietfa.amsl.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-mailer: Apple Mail (2.1510)
x-originating-ip: [66.129.241.10]
authentication-results: ietf.org; dkim=none (message not signed) header.d=none;
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN1PR05MB422;
x-forefront-antispam-report: BMV:1; SFV:NSPM; SFS:(10019020)(377424004)(377454003)(2473001)(19580395003)(77156002)(16601075003)(2656002)(33656002)(230783001)(83716003)(40100003)(87936001)(2501003)(86362001)(450100001)(82746002)(36756003)(62966003)(19580405001)(14971765001)(16236675004)(57306001)(50986999)(76176999)(107886001)(19617315012)(2420400003)(92566002)(106116001)(50226001)(102836002)(66066001)(99286002)(46102003)(2900100001)(110136001)(2351001)(15975445007)(104396002); DIR:OUT; SFP:1102; SCL:1; SRVR:BN1PR05MB422; H:BN1PR05MB424.namprd05.prod.outlook.com; FPR:; SPF:None; MLV:sfv; LANG:en; 
x-microsoft-antispam-prvs: <BN1PR05MB4229D3F1450C548F03E3189B80A0@BN1PR05MB422.namprd05.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:;
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(5002010)(5005006); SRVR:BN1PR05MB422; BCL:0; PCL:0; RULEID:; SRVR:BN1PR05MB422; 
x-forefront-prvs: 0525BB0ADF
Content-Type: multipart/alternative; boundary="_000_BEB80BE5DCCB43DB8AAA7738AFB3A6B6junipernet_"
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Mar 2015 00:13:20.5764 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN1PR05MB422
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/VW6Kw-isROkk4S2gFTjIGdnEmNw>
Subject: [netmod] Fwd: New Version Notification for draft-bogdanovic-netmod-yang-model-classification-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: <http://www.ietf.org/mail-archive/web/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: Tue, 24 Mar 2015 00:13:41 -0000

--_000_BEB80BE5DCCB43DB8AAA7738AFB3A6B6junipernet_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable



Begin forwarded message:

From: <internet-drafts@ietf.org<mailto:internet-drafts@ietf.org>>
Subject: New Version Notification for draft-bogdanovic-netmod-yang-model-cl=
assification-02.txt
Date: March 23, 2015 8:12:24 PM EDT
To: Dean Bogdanovic <deanb@juniper.net<mailto:deanb@juniper.net>>, Dean Bog=
danovic <deanb@juniper.net<mailto:deanb@juniper.net>>, Benoit Claise <bclai=
se@cisco.com<mailto:bclaise@cisco.com>>, Carl Moberg <camoberg@cisco.com<ma=
ilto:camoberg@cisco.com>>, "Carl Moberg" <camoberg@cisco.com<mailto:camober=
g@cisco.com>>, Benoit Claise <bclaise@cisco.com<mailto:bclaise@cisco.com>>


A new version of I-D, draft-bogdanovic-netmod-yang-model-classification-02.=
txt
has been successfully submitted by Dean Bogdanovic and posted to the
IETF repository.

Name: draft-bogdanovic-netmod-yang-model-classification
Revision: 02
Title: YANG model classification
Document date: 2015-03-23
Group: Individual Submission
Pages: 12
URL:            http://www.ietf.org/internet-drafts/draft-bogdanovic-netmod=
-yang-model-classification-02.txt
Status:         https://datatracker.ietf.org/doc/draft-bogdanovic-netmod-ya=
ng-model-classification/
Htmlized:       http://tools.ietf.org/html/draft-bogdanovic-netmod-yang-mod=
el-classification-02
Diff:           http://www.ietf.org/rfcdiff?url2=3Ddraft-bogdanovic-netmod-=
yang-model-classification-02

Abstract:
  YANG became de facto standard language for data modeling in the
  industry.  More and more groups uses YANG to create protocol and
  service models, both for configuration and operational models.
  Currently there is a lack of consistent terminology to categorize
  those models.  A consistent terminology would help models
  categorization, assist in the analysis the YANG data modeling effort
  in the IETF and in the industry, and facilitate the YANG-related
  discussions between different groups.




Please note that it may take a couple of minutes from the time of submissio=
n
until the htmlized version and diff are available at tools.ietf.org<http://=
tools.ietf.org>.

The IETF Secretariat



--_000_BEB80BE5DCCB43DB8AAA7738AFB3A6B6junipernet_
Content-Type: text/html; charset="us-ascii"
Content-ID: <B1441A4317B10943BC38D77E203EB66D@namprd05.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
</head>
<body style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-lin=
e-break: after-white-space; ">
<br>
<div><br>
<div>Begin forwarded message:</div>
<br class=3D"Apple-interchange-newline">
<blockquote type=3D"cite">
<div style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margi=
n-left: 0px;">
<span style=3D"font-family:'Helvetica'; font-size:medium; color:rgba(0, 0, =
0, 1.0);"><b>From:
</b></span><span style=3D"font-family:'Helvetica'; font-size:medium;">&lt;<=
a href=3D"mailto:internet-drafts@ietf.org">internet-drafts@ietf.org</a>&gt;=
<br>
</span></div>
<div style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margi=
n-left: 0px;">
<span style=3D"font-family:'Helvetica'; font-size:medium; color:rgba(0, 0, =
0, 1.0);"><b>Subject:
</b></span><span style=3D"font-family:'Helvetica'; font-size:medium;"><b>Ne=
w Version Notification for draft-bogdanovic-netmod-yang-model-classificatio=
n-02.txt</b><br>
</span></div>
<div style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margi=
n-left: 0px;">
<span style=3D"font-family:'Helvetica'; font-size:medium; color:rgba(0, 0, =
0, 1.0);"><b>Date:
</b></span><span style=3D"font-family:'Helvetica'; font-size:medium;">March=
 23, 2015 8:12:24 PM EDT<br>
</span></div>
<div style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margi=
n-left: 0px;">
<span style=3D"font-family:'Helvetica'; font-size:medium; color:rgba(0, 0, =
0, 1.0);"><b>To:
</b></span><span style=3D"font-family:'Helvetica'; font-size:medium;">Dean =
Bogdanovic &lt;<a href=3D"mailto:deanb@juniper.net">deanb@juniper.net</a>&g=
t;, Dean Bogdanovic &lt;<a href=3D"mailto:deanb@juniper.net">deanb@juniper.=
net</a>&gt;, Benoit Claise &lt;<a href=3D"mailto:bclaise@cisco.com">bclaise=
@cisco.com</a>&gt;,
 Carl Moberg &lt;<a href=3D"mailto:camoberg@cisco.com">camoberg@cisco.com</=
a>&gt;, &quot;Carl Moberg&quot; &lt;<a href=3D"mailto:camoberg@cisco.com">c=
amoberg@cisco.com</a>&gt;, Benoit Claise &lt;<a href=3D"mailto:bclaise@cisc=
o.com">bclaise@cisco.com</a>&gt;<br>
</span></div>
<br>
<div><br>
A new version of I-D, draft-bogdanovic-netmod-yang-model-classification-02.=
txt<br>
has been successfully submitted by Dean Bogdanovic and posted to the<br>
IETF repository.<br>
<br>
Name:<span class=3D"Apple-tab-span" style=3D"white-space:pre"> </span><span=
 class=3D"Apple-tab-span" style=3D"white-space:pre"></span>draft-bogdanovic=
-netmod-yang-model-classification<br>
Revision:<span class=3D"Apple-tab-span" style=3D"white-space:pre"> </span>0=
2<br>
Title:<span class=3D"Apple-tab-span" style=3D"white-space:pre"> </span><spa=
n class=3D"Apple-tab-span" style=3D"white-space:pre"></span>YANG model clas=
sification<br>
Document date:<span class=3D"Apple-tab-span" style=3D"white-space:pre"> </s=
pan>2015-03-23<br>
Group:<span class=3D"Apple-tab-span" style=3D"white-space:pre"> </span><spa=
n class=3D"Apple-tab-span" style=3D"white-space:pre"></span>Individual Subm=
ission<br>
Pages:<span class=3D"Apple-tab-span" style=3D"white-space:pre"> </span><spa=
n class=3D"Apple-tab-span" style=3D"white-space:pre"></span>12<br>
URL: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a h=
ref=3D"http://www.ietf.org/internet-drafts/draft-bogdanovic-netmod-yang-mod=
el-classification-02.txt">http://www.ietf.org/internet-drafts/draft-bogdano=
vic-netmod-yang-model-classification-02.txt</a><br>
Status: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href=3D"https://=
datatracker.ietf.org/doc/draft-bogdanovic-netmod-yang-model-classification/=
">https://datatracker.ietf.org/doc/draft-bogdanovic-netmod-yang-model-class=
ification/</a><br>
Htmlized: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href=3D"http://tools.ietf.=
org/html/draft-bogdanovic-netmod-yang-model-classification-02">http://tools=
.ietf.org/html/draft-bogdanovic-netmod-yang-model-classification-02</a><br>
Diff: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href=
=3D"http://www.ietf.org/rfcdiff?url2=3Ddraft-bogdanovic-netmod-yang-model-c=
lassification-02">http://www.ietf.org/rfcdiff?url2=3Ddraft-bogdanovic-netmo=
d-yang-model-classification-02</a><br>
<br>
Abstract:<br>
&nbsp;&nbsp;YANG became de facto standard language for data modeling in the=
<br>
&nbsp;&nbsp;industry. &nbsp;More and more groups uses YANG to create protoc=
ol and<br>
&nbsp;&nbsp;service models, both for configuration and operational models.<=
br>
&nbsp;&nbsp;Currently there is a lack of consistent terminology to categori=
ze<br>
&nbsp;&nbsp;those models. &nbsp;A consistent terminology would help models<=
br>
&nbsp;&nbsp;categorization, assist in the analysis the YANG data modeling e=
ffort<br>
&nbsp;&nbsp;in the IETF and in the industry, and facilitate the YANG-relate=
d<br>
&nbsp;&nbsp;discussions between different groups.<br>
<br>
<br>
<br>
<br>
Please note that it may take a couple of minutes from the time of submissio=
n<br>
until the htmlized version and diff are available at <a href=3D"http://tool=
s.ietf.org">
tools.ietf.org</a>.<br>
<br>
The IETF Secretariat<br>
<br>
</div>
</blockquote>
</div>
<br>
</body>
</html>

--_000_BEB80BE5DCCB43DB8AAA7738AFB3A6B6junipernet_--


From nobody Mon Mar 23 17:24:26 2015
Return-Path: <randy_presuhn@mindspring.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 2FDBF1A1AC6 for <netmod@ietfa.amsl.com>; Mon, 23 Mar 2015 17:24:24 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level: 
X-Spam-Status: No, score=-2 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_NONE=-0.0001] 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 6GgbygNsKQ5d for <netmod@ietfa.amsl.com>; Mon, 23 Mar 2015 17:24:22 -0700 (PDT)
Received: from elasmtp-scoter.atl.sa.earthlink.net (elasmtp-scoter.atl.sa.earthlink.net [209.86.89.67]) by ietfa.amsl.com (Postfix) with ESMTP id 5B3631A90C7 for <netmod@ietf.org>; Mon, 23 Mar 2015 17:24:21 -0700 (PDT)
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=dk20050327; d=mindspring.com; b=jDEZ2H7fu/2yHXy8MmBoc8rb4UuyNVfTcO1CzUHqKMkAbQpU9u99gBWduiKAf/cY; h=Message-ID:Date:From:Reply-To:To:Subject:Mime-Version:Content-Type:Content-Transfer-Encoding:X-Mailer:X-ELNK-Trace:X-Originating-IP;
Received: from [209.86.224.35] (helo=elwamui-huard.atl.sa.earthlink.net) by elasmtp-scoter.atl.sa.earthlink.net with esmtpa (Exim 4.67) (envelope-from <randy_presuhn@mindspring.com>) id 1YaCdp-0007w6-5H for netmod@ietf.org; Mon, 23 Mar 2015 20:24:21 -0400
Received: from 76.254.48.64 by webmail.earthlink.net with HTTP; Mon, 23 Mar 2015 20:24:20 -0400
Message-ID: <31385987.1427156661197.JavaMail.root@elwamui-huard.atl.sa.earthlink.net>
Date: Mon, 23 Mar 2015 17:24:20 -0700 (GMT-07:00)
From: Randy Presuhn <randy_presuhn@mindspring.com>
To: netmod@ietf.org
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-Mailer: EarthLink Zoo Mail 1.0
X-ELNK-Trace: 4488c18417c9426da92b9037bc8bcf44d4c20f6b8d69d888b65b6112f891153705273dcbe73d88c6bdbe8c4ba08baabe350badd9bab72f9c350badd9bab72f9c
X-Originating-IP: 209.86.224.35
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/rVTr1vYd_rPdt412SmPNg5z3YTs>
Subject: Re: [netmod] Y45 - imports
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Randy Presuhn <randy_presuhn@mindspring.com>
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: <http://www.ietf.org/mail-archive/web/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: Tue, 24 Mar 2015 00:24:24 -0000

Hi -

>From: Ladislav Lhotka <lhotka@nic.cz>
>Sent: Mar 23, 2015 4:31 PM
>To: Randy Presuhn <randy_presuhn@mindspring.com>
>Cc: NETMOD Working Group <netmod@ietf.org>
>Subject: Re: [netmod] Y45 - imports
>
>
>> On 23 Mar 2015, at 18:06, Randy Presuhn <randy_presuhn@mindspring.com> w=
rote:
>>=20
>> Hi -
>>=20
>>> From: Ladislav Lhotka <lhotka@nic.cz>
>>> Sent: Mar 23, 2015 3:37 PM
>>> To: Andy Bierman <andy@yumaworks.com>
>>> Cc: NETMOD Working Group <netmod@ietf.org>
>>> Subject: Re: [netmod] Y45 - imports
>> ...
>>>> The best match revision may be different from server to server.
>>>> Even within 1 server, the best match can change from 1 day
>>>> to the next.
>>>=20
>>> No, the revision is fixed by the importing module, ideally form
>>> the revision-date. It doesn=E2=80=99t differ from server to server, and
>>> server implementors should use that revision.
>>=20
>> I think the presumes an unrealistic level of omniscience on the
>> part of the designers / implementors of the importing code.
>
>I don=E2=80=99t think so. The developer of the importing module must have
>used a particular revision of the imported module, and this revision
>should be clear from the importing module.

Not really, if the importing module doesn't specify a specific
revision.  Under the proposed rules, the latest version prior
to the date of the importer would be used.  What seems vague
about the proposal is that it doesn't make clear that there's
a strong assumption that the developer of the importing module
*must* somehow know that the version they've imported is in
fact the most recent one.

>All users of the importing module have to use that revision.

This makes it a hard requirement for all implementators to
have access to a guaranteed up-to-date repository of all
potentially importable definitions.

...
>> Consider this case:
>>  - a series of dates, D1..D5
>>  - ImporterA[D2], ImporterB[D5]
>>  - Imported[D1], Imported[D3], Imported[D4]
>
>I assume that if module A imports revision D2,

Sorry, I was unclear.  The context of the discussion
was imports which did not specify a revision.
By the notation ImporterA[D2] I meant to
indicate that the *date* of A was D2.

> then D2 has to be used whenever (that particular revision)
> of module A is used. Using Di for i!=3D2 means that typedefs
> or groupings may be different from those that the author of
> A used - and this is IMO unacceptable and can lead to
> interoperability problems.

Agreed, but that's not the scenario I was trying to describe.
I think the issue is still real: the specifier of ImporterB,
time-stamped D5, could potentially have missed the new version
of Imported created at D4.  It's a classic race condition.

>I think that making sure all existing revisions of a module are
> available is not that difficult (although it is not the case for
> the existing GitHub repository).

For *all* vendors?

Randy


From nobody Mon Mar 23 17:35:29 2015
Return-Path: <mbj@tail-f.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 C61211A9119 for <netmod@ietfa.amsl.com>; Mon, 23 Mar 2015 17:35:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.91
X-Spam-Level: 
X-Spam-Status: No, score=-1.91 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, T_RP_MATCHES_RCVD=-0.01] 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 LmG9Vi1josxg for <netmod@ietfa.amsl.com>; Mon, 23 Mar 2015 17:35:26 -0700 (PDT)
Received: from mail.tail-f.com (mail.tail-f.com [83.241.162.140]) by ietfa.amsl.com (Postfix) with ESMTP id BD9BB1A9116 for <netmod@ietf.org>; Mon, 23 Mar 2015 17:35:26 -0700 (PDT)
Received: from localhost (dhcp-a1fb.meeting.ietf.org [31.133.161.251]) by mail.tail-f.com (Postfix) with ESMTPSA id 579461280806 for <netmod@ietf.org>; Tue, 24 Mar 2015 01:35:25 +0100 (CET)
Date: Mon, 23 Mar 2015 19:35:23 -0500 (CDT)
Message-Id: <20150323.193523.1779915941155278856.mbj@tail-f.com>
To: netmod@ietf.org
From: Martin Bjorklund <mbj@tail-f.com>
X-Mailer: Mew version 6.5 on Emacs 24.3 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/W9qSebJtdMzKFLBDmnCGxYuVGBc>
Subject: [netmod] Y12: initialized-by system
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: <http://www.ietf.org/mail-archive/web/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: Tue, 24 Mar 2015 00:35:27 -0000

Hi,

The issue Y12 is in EDIT state.  But looking at the edits and thinking
some more, I am having second thoughts.  I don't think we should add
this new statement, and the issue should be moved to DEAD.

The idea behind this statement is to be able to catch situations where
the device will initialize some leaf when a parent list/container is
created.  By having this marked in the data model, a client knows that
this is happening, and can theoretically react accordingly.

The first observation is that this rarely happens.

The second observation is that this new statement solves only parts of
this (rare) problem.  For example, there are cases where the device
will modify the value that is being written to a leaf (e.g., changing
a clear text password into a hashed or encrypted value).  At the YANG
editing session yesterday, it was mentioned that a certain device
would initialize not just a leaf, but a nested list instance when the
parent node is created.

So, for these reasons, I suggest we do not add this new statement.


/martin


From nobody Mon Mar 23 17:49:13 2015
Return-Path: <phil@juniper.net>
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 BEF051AC39E for <netmod@ietfa.amsl.com>; Mon, 23 Mar 2015 17:49:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.902
X-Spam-Level: 
X-Spam-Status: No, score=-1.902 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] 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 0oBgXCJk8mtO for <netmod@ietfa.amsl.com>; Mon, 23 Mar 2015 17:49:10 -0700 (PDT)
Received: from na01-bl2-obe.outbound.protection.outlook.com (mail-bl2on0111.outbound.protection.outlook.com [65.55.169.111]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3DB1E1AC3AF for <netmod@ietf.org>; Mon, 23 Mar 2015 17:49:08 -0700 (PDT)
Received: from DM2PR0501MB1261.namprd05.prod.outlook.com (25.160.130.14) by DM2PR0501MB1408.namprd05.prod.outlook.com (25.161.224.142) with Microsoft SMTP Server (TLS) id 15.1.118.21; Tue, 24 Mar 2015 00:49:06 +0000
Received: from BY2PR05CA028.namprd05.prod.outlook.com (10.141.250.18) by DM2PR0501MB1261.namprd05.prod.outlook.com (25.160.130.14) with Microsoft SMTP Server (TLS) id 15.1.112.19; Tue, 24 Mar 2015 00:49:06 +0000
Received: from BL2FFO11OLC004.protection.gbl (2a01:111:f400:7c09::154) by BY2PR05CA028.outlook.office365.com (2a01:111:e400:2c5f::18) with Microsoft SMTP Server (TLS) id 15.1.118.21 via Frontend Transport; Tue, 24 Mar 2015 00:49:05 +0000
Received: from P-EMF03-SAC.jnpr.net (66.129.239.17) by BL2FFO11OLC004.mail.protection.outlook.com (10.173.161.188) with Microsoft SMTP Server (TLS) id 15.1.125.13 via Frontend Transport; Tue, 24 Mar 2015 00:49:05 +0000
Received: from magenta.juniper.net (172.17.27.123) by P-EMF03-SAC.jnpr.net (172.24.192.21) with Microsoft SMTP Server (TLS) id 14.3.146.0; Mon, 23 Mar 2015 17:49:03 -0700
Received: from idle.juniper.net (idleski.juniper.net [172.25.4.26])	by magenta.juniper.net (8.11.3/8.11.3) with ESMTP id t2O0n3D83360;	Mon, 23 Mar 2015 17:49:03 -0700 (PDT)	(envelope-from phil@juniper.net)
Received: from idle.juniper.net (localhost [127.0.0.1])	by idle.juniper.net (8.14.4/8.14.3) with ESMTP id t2O0m7bM010865; Mon, 23 Mar 2015 20:48:08 -0400 (EDT)	(envelope-from phil@idle.juniper.net)
Message-ID: <201503240048.t2O0m7bM010865@idle.juniper.net>
To: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <20150323.193523.1779915941155278856.mbj@tail-f.com>
Date: Mon, 23 Mar 2015 20:48:07 -0400
From: Phil Shafer <phil@juniper.net>
MIME-Version: 1.0
Content-Type: text/plain
X-EOPAttributedMessage: 0
Received-SPF: SoftFail (protection.outlook.com: domain of transitioning juniper.net discourages use of 66.129.239.17 as permitted sender)
Authentication-Results: spf=softfail (sender IP is 66.129.239.17) smtp.mailfrom=phil@juniper.net; ietf.org; dkim=none (message not signed) header.d=none;
X-Forefront-Antispam-Report: CIP:66.129.239.17; CTRY:US; IPV:NLI; EFV:NLI; BMV:1; SFV:NSPM; SFS:(10019020)(6009001)(164054003)(189002)(51704005)(199003)(50986999)(6806004)(92566002)(551544002)(77096005)(19580405001)(19580395003)(2950100001)(47776003)(15975445007)(76506005)(48376002)(50466002)(87936001)(53416004)(106466001)(110136001)(62966003)(54356999)(46102003)(86362001)(77156002)(105596002); DIR:OUT; SFP:1102; SCL:1; SRVR:DM2PR0501MB1261; H:P-EMF03-SAC.jnpr.net; FPR:;  SPF:SoftFail; MLV:sfv; MX:1; A:1; LANG:en; 
X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:; SRVR:DM2PR0501MB1261; UriScan:; BCL:0; PCL:0; RULEID:; SRVR:DM2PR0501MB1408; 
X-Microsoft-Antispam-PRVS: <DM2PR0501MB1261B1CC6BF4F49EDC5B0E16C90A0@DM2PR0501MB1261.namprd05.prod.outlook.com>
X-Exchange-Antispam-Report-Test: UriScan:;
X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(5005006)(5002010); SRVR:DM2PR0501MB1261; BCL:0; PCL:0; RULEID:; SRVR:DM2PR0501MB1261; 
X-Forefront-PRVS: 0525BB0ADF
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Mar 2015 00:49:05.1782 (UTC)
X-MS-Exchange-CrossTenant-Id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=bea78b3c-4cdb-4130-854a-1d193232e5f4; Ip=[66.129.239.17];  Helo=[P-EMF03-SAC.jnpr.net]
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR0501MB1261
X-OriginatorOrg: juniper.net
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/dgoZb6t7E4KLu14inLnSjzna8HY>
Cc: netmod@ietf.org
Subject: Re: [netmod] Y12: initialized-by system
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: <http://www.ietf.org/mail-archive/web/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: Tue, 24 Mar 2015 00:49:11 -0000

Would it make sense to have  a simpler "you need to re-read this
data after you create it" flag that's less specific/more useful?

Thanks,
 Phil


Martin Bjorklund writes:
>Hi,
>
>The issue Y12 is in EDIT state.  But looking at the edits and thinking
>some more, I am having second thoughts.  I don't think we should add
>this new statement, and the issue should be moved to DEAD.
>
>The idea behind this statement is to be able to catch situations where
>the device will initialize some leaf when a parent list/container is
>created.  By having this marked in the data model, a client knows that
>this is happening, and can theoretically react accordingly.
>
>The first observation is that this rarely happens.
>
>The second observation is that this new statement solves only parts of
>this (rare) problem.  For example, there are cases where the device
>will modify the value that is being written to a leaf (e.g., changing
>a clear text password into a hashed or encrypted value).  At the YANG
>editing session yesterday, it was mentioned that a certain device
>would initialize not just a leaf, but a nested list instance when the
>parent node is created.
>
>So, for these reasons, I suggest we do not add this new statement.
>
>
>/martin
>
>_______________________________________________
>netmod mailing list
>netmod@ietf.org
>https://www.ietf.org/mailman/listinfo/netmod


From nobody Mon Mar 23 17:56:09 2015
Return-Path: <mbj@tail-f.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 EE2C21ACE3B for <netmod@ietfa.amsl.com>; Mon, 23 Mar 2015 17:56:08 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.91
X-Spam-Level: 
X-Spam-Status: No, score=-1.91 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, T_RP_MATCHES_RCVD=-0.01] 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 EnARPZR16ljS for <netmod@ietfa.amsl.com>; Mon, 23 Mar 2015 17:56:08 -0700 (PDT)
Received: from mail.tail-f.com (mail.tail-f.com [83.241.162.140]) by ietfa.amsl.com (Postfix) with ESMTP id E73A41AC3D9 for <netmod@ietf.org>; Mon, 23 Mar 2015 17:56:07 -0700 (PDT)
Received: from localhost (dhcp-a1fb.meeting.ietf.org [31.133.161.251]) by mail.tail-f.com (Postfix) with ESMTPSA id 641CF1280806; Tue, 24 Mar 2015 01:56:06 +0100 (CET)
Date: Mon, 23 Mar 2015 19:56:04 -0500 (CDT)
Message-Id: <20150323.195604.161046968449760172.mbj@tail-f.com>
To: phil@juniper.net
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <201503240048.t2O0m7bM010865@idle.juniper.net>
References: <20150323.193523.1779915941155278856.mbj@tail-f.com> <201503240048.t2O0m7bM010865@idle.juniper.net>
X-Mailer: Mew version 6.5 on Emacs 24.3 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/_Vq0iwcKSvcFV7_9jWe6gO753Lw>
Cc: netmod@ietf.org
Subject: Re: [netmod] Y12: initialized-by system
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: <http://www.ietf.org/mail-archive/web/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: Tue, 24 Mar 2015 00:56:09 -0000

Phil Shafer <phil@juniper.net> wrote:
> Would it make sense to have  a simpler "you need to re-read this
> data after you create it" flag that's less specific/more useful?

That seems to cover the "cleartext to hash" use case, but not the
original initialized-by system use case (since in that case the data
is created by the server, not the client).

But something like this would be needed.  The question is now if this
falls into the category of being useful enough to be included in YANG
1.1 or not.  I think this could also be done w/ extensions later.


/martin


From nobody Tue Mar 24 07:54:38 2015
Return-Path: <jason.sterne@alcatel-lucent.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 6D4CC1A87CA for <netmod@ietfa.amsl.com>; Tue, 24 Mar 2015 07:54:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.909
X-Spam-Level: 
X-Spam-Status: No, score=-6.909 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, T_RP_MATCHES_RCVD=-0.01] 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 tzdnZXJZcHZp for <netmod@ietfa.amsl.com>; Tue, 24 Mar 2015 07:54:34 -0700 (PDT)
Received: from smtp-fr.alcatel-lucent.com (fr-hpida-esg-02.alcatel-lucent.com [135.245.210.21]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 8F4951A87C8 for <netmod@ietf.org>; Tue, 24 Mar 2015 07:54:29 -0700 (PDT)
Received: from us70uusmtp4.zam.alcatel-lucent.com (unknown [135.5.2.66]) by Websense Email Security Gateway with ESMTPS id 102BEF3FB927B for <netmod@ietf.org>; Tue, 24 Mar 2015 14:54:23 +0000 (GMT)
Received: from US70TWXCHHUB04.zam.alcatel-lucent.com (us70twxchhub04.zam.alcatel-lucent.com [135.5.2.36]) by us70uusmtp4.zam.alcatel-lucent.com (GMO) with ESMTP id t2OEsPkL025241 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL) for <netmod@ietf.org>; Tue, 24 Mar 2015 10:54:25 -0400
Received: from US70TWXCHMBA11.zam.alcatel-lucent.com ([169.254.5.170]) by US70TWXCHHUB04.zam.alcatel-lucent.com ([135.5.2.36]) with mapi id 14.03.0195.001; Tue, 24 Mar 2015 10:54:25 -0400
From: "Sterne, Jason (Jason)" <jason.sterne@alcatel-lucent.com>
To: "netmod@ietf.org" <netmod@ietf.org>
Thread-Topic: full access-control-list name vs acl abbreviation in yang model
Thread-Index: AdBmQmsEsyJK8ja6SC6BUNR9Ehu+vA==
Date: Tue, 24 Mar 2015 14:54:25 +0000
Message-ID: <A125E53CE190A749957C19483DC79F9F5C9E0491@US70TWXCHMBA11.zam.alcatel-lucent.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [135.5.27.16]
Content-Type: multipart/alternative; boundary="_000_A125E53CE190A749957C19483DC79F9F5C9E0491US70TWXCHMBA11z_"
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/cQZ2aj8lOBhW5IRR5VSTcdA5g6A>
Subject: [netmod] full access-control-list name vs acl abbreviation in yang model
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: <http://www.ietf.org/mail-archive/web/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: Tue, 24 Mar 2015 14:54:36 -0000

--_000_A125E53CE190A749957C19483DC79F9F5C9E0491US70TWXCHMBA11z_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

In the NETMOD session today there was a proposal to deal with the full "acc=
ess-control-list" names for lists & other objects vs "acl".

How about use the full "access-control-list" at the top container (as was s=
hown Dean's slides) but then use "acl" everywhere inside ?  i.e. instead of=
 "ace" how about "acl-entry" ?   Once we abbreviate access-control-list to =
"acl" then we can probably leave other words as full words:
-       acl-name
-       acl-type
-       acl-entry
-       etc

Jason


--_000_A125E53CE190A749957C19483DC79F9F5C9E0491US70TWXCHMBA11z_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Exchange Server">
<!-- converted from rtf -->
<style><!-- .EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left:=
 #800000 2px solid; } --></style>
</head>
<body>
<font face=3D"Calibri" size=3D"2"><span style=3D"font-size:11pt;">
<div>In the NETMOD session today there was a proposal to deal with the full=
 &#8220;access-control-list&#8221; names for lists &amp; other objects vs &=
#8220;acl&#8221;.</div>
<div>&nbsp;</div>
<div>How about use the full &#8220;access-control-list&#8221; at the top co=
ntainer (as was shown Dean&#8217;s slides) but then use &#8220;acl&#8221; e=
verywhere inside ?&nbsp; i.e. instead of &#8220;ace&#8221; how about &#8220=
;acl-entry&#8221; ?&nbsp;&nbsp; Once we abbreviate access-control-list to &=
#8220;acl&#8221; then we can probably
leave other words as full words:</div>
<ul style=3D"margin:0;padding-left:36pt;">
<li>acl-name</li><li>acl-type</li><li>acl-entry</li><li>etc</li></ul>
<div>&nbsp;</div>
<div>Jason</div>
<div>&nbsp;</div>
</span></font>
</body>
</html>

--_000_A125E53CE190A749957C19483DC79F9F5C9E0491US70TWXCHMBA11z_--


From nobody Tue Mar 24 08:12:45 2015
Return-Path: <kwatsen@juniper.net>
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 72DB41A88AE for <netmod@ietfa.amsl.com>; Tue, 24 Mar 2015 08:12:34 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.302
X-Spam-Level: 
X-Spam-Status: No, score=-1.302 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, J_CHICKENPOX_65=0.6, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=no
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 vsEYzJZOqhiL for <netmod@ietfa.amsl.com>; Tue, 24 Mar 2015 08:12:28 -0700 (PDT)
Received: from na01-bl2-obe.outbound.protection.outlook.com (mail-bl2on0125.outbound.protection.outlook.com [65.55.169.125]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C66571A8883 for <netmod@ietf.org>; Tue, 24 Mar 2015 08:12:23 -0700 (PDT)
Received: from CO1PR05MB458.namprd05.prod.outlook.com (10.141.72.140) by CO1PR05MB363.namprd05.prod.outlook.com (10.141.51.145) with Microsoft SMTP Server (TLS) id 15.1.118.21; Tue, 24 Mar 2015 15:12:21 +0000
Received: from CO1PR05MB458.namprd05.prod.outlook.com ([169.254.10.152]) by CO1PR05MB458.namprd05.prod.outlook.com ([169.254.10.152]) with mapi id 15.01.0118.021; Tue, 24 Mar 2015 15:12:21 +0000
From: Kent Watsen <kwatsen@juniper.net>
To: Martin Bjorklund <mbj@tail-f.com>, Phil Shafer <phil@juniper.net>
Thread-Topic: [netmod] Y12: initialized-by system
Thread-Index: AQHQZcpyjBtBn0tBWU22tNexLzRG5Z0qzM2AgAACOQCAAKwsAA==
Date: Tue, 24 Mar 2015 15:12:21 +0000
Message-ID: <D136EF6A.9B42F%kwatsen@juniper.net>
References: <20150323.193523.1779915941155278856.mbj@tail-f.com> <201503240048.t2O0m7bM010865@idle.juniper.net> <20150323.195604.161046968449760172.mbj@tail-f.com>
In-Reply-To: <20150323.195604.161046968449760172.mbj@tail-f.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/14.4.4.140807
x-originating-ip: [66.129.239.14]
authentication-results: tail-f.com; dkim=none (message not signed) header.d=none;
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CO1PR05MB363;
x-microsoft-antispam-prvs: <CO1PR05MB363D9D303209A7F72BD3272A50A0@CO1PR05MB363.namprd05.prod.outlook.com>
x-forefront-antispam-report: BMV:1; SFV:NSPM; SFS:(10019020)(6009001)(164054003)(377454003)(51704005)(479174004)(106116001)(40100003)(86362001)(87936001)(54356999)(122556002)(2656002)(50986999)(76176999)(99286002)(83506001)(19580395003)(19580405001)(36756003)(92566002)(46102003)(2900100001)(2950100001)(77156002)(62966003)(15975445007)(102836002)(66066001); DIR:OUT; SFP:1102; SCL:1; SRVR:CO1PR05MB363; H:CO1PR05MB458.namprd05.prod.outlook.com; FPR:; SPF:None; MLV:sfv; LANG:en; 
x-exchange-antispam-report-test: UriScan:;
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(5005006)(5002010); SRVR:CO1PR05MB363; BCL:0; PCL:0; RULEID:; SRVR:CO1PR05MB363; 
x-forefront-prvs: 0525BB0ADF
Content-Type: text/plain; charset="us-ascii"
Content-ID: <6D3311E576BC134D838DABC1E3FC918D@namprd05.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Mar 2015 15:12:21.2468 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR05MB363
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/-7InCZAJBsI2sAiQ_ta0F9h48Mw>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] Y12: initialized-by system
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: <http://www.ietf.org/mail-archive/web/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: Tue, 24 Mar 2015 15:12:34 -0000

Adding to Phil's comment, we tried to do something like this a fews years
back - we called it implicit-changes.  We created three solutions trying
to address the issue:

  1) putting markup into the data-model describing conditions
     that would cause implicit changes  (similar to Y12)

  2) have the device return an roc-error of type warning for
     when any implicit changes occurred, returning an optional
     list of xpaths to the nodes that changed

  3) have the NETCONF client fetch the entire config after each
     update, on the off-chance that an impact change occurred.

In the end, #2 was the winner, as it was easy to implement and covered all
cases.  #1 was not popular with the router engineers.  Sooner or later,
we'll need to update netconf/restconf (not yang) to support this.  FWIW,
ETag solves a related but different problem.


For the example listed in Y12, would it make sense to model it as a
config=3Dfalse value? As a corollary, we many times discuss the configured
MTU value and the running MTU value.

Also, for systems having 'explicit' default handling, would initialized-by
system be treated like user configuration or a default value?   Maybe a
better solution is to give for default statement a special value?  (e.g.
default initialized-by-system)

Thanks,
Kent




On 3/23/15, 8:56 PM, "Martin Bjorklund" <mbj@tail-f.com> wrote:

>Phil Shafer <phil@juniper.net> wrote:
>> Would it make sense to have  a simpler "you need to re-read this
>> data after you create it" flag that's less specific/more useful?
>
>That seems to cover the "cleartext to hash" use case, but not the
>original initialized-by system use case (since in that case the data
>is created by the server, not the client).
>
>But something like this would be needed.  The question is now if this
>falls into the category of being useful enough to be included in YANG
>1.1 or not.  I think this could also be done w/ extensions later.
>
>
>/martin
>
>_______________________________________________
>netmod mailing list
>netmod@ietf.org
>https://www.ietf.org/mailman/listinfo/netmod


From nobody Tue Mar 24 08:23:19 2015
Return-Path: <mbj@tail-f.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 D221F1A88C9 for <netmod@ietfa.amsl.com>; Tue, 24 Mar 2015 08:23:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.31
X-Spam-Level: 
X-Spam-Status: No, score=-1.31 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, J_CHICKENPOX_65=0.6, T_RP_MATCHES_RCVD=-0.01] autolearn=no
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 FXmjDFpnUUG4 for <netmod@ietfa.amsl.com>; Tue, 24 Mar 2015 08:23:17 -0700 (PDT)
Received: from mail.tail-f.com (mail.tail-f.com [83.241.162.140]) by ietfa.amsl.com (Postfix) with ESMTP id 844C41A88AE for <netmod@ietf.org>; Tue, 24 Mar 2015 08:23:17 -0700 (PDT)
Received: from localhost (dhcp-a1fb.meeting.ietf.org [31.133.161.251]) by mail.tail-f.com (Postfix) with ESMTPSA id B8B2B1280008; Tue, 24 Mar 2015 16:23:15 +0100 (CET)
Date: Tue, 24 Mar 2015 10:23:13 -0500 (CDT)
Message-Id: <20150324.102313.2038578803124146079.mbj@tail-f.com>
To: kwatsen@juniper.net
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <D136EF6A.9B42F%kwatsen@juniper.net>
References: <201503240048.t2O0m7bM010865@idle.juniper.net> <20150323.195604.161046968449760172.mbj@tail-f.com> <D136EF6A.9B42F%kwatsen@juniper.net>
X-Mailer: Mew version 6.5 on Emacs 24.3 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/MSe7Ma80clbHWGQ9QP-nQnvNtks>
Cc: netmod@ietf.org
Subject: Re: [netmod] Y12: initialized-by system
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: <http://www.ietf.org/mail-archive/web/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: Tue, 24 Mar 2015 15:23:19 -0000

Kent Watsen <kwatsen@juniper.net> wrote:
> 
> Adding to Phil's comment, we tried to do something like this a fews years
> back - we called it implicit-changes.  We created three solutions trying
> to address the issue:
> 
>   1) putting markup into the data-model describing conditions
>      that would cause implicit changes  (similar to Y12)
> 
>   2) have the device return an roc-error of type warning for
>      when any implicit changes occurred, returning an optional
>      list of xpaths to the nodes that changed
> 
>   3) have the NETCONF client fetch the entire config after each
>      update, on the off-chance that an impact change occurred.
> 
> In the end, #2 was the winner, as it was easy to implement and covered all
> cases.  #1 was not popular with the router engineers.  Sooner or later,
> we'll need to update netconf/restconf (not yang) to support this.  FWIW,
> ETag solves a related but different problem.

So does this mean that you also support moving Y12 to DEAD?

> For the example listed in Y12, would it make sense to model it as a
> config=false value?

I don't think so b/c you want to be able to save the
system-initialized values in your backup and be able to restore the
backup w/ the correct uid values; you don't what the system to assign
different values when the backup is restored.

> Also, for systems having 'explicit' default handling, would initialized-by
> system be treated like user configuration or a default value?

User configuration.


/martin


From nobody Tue Mar 24 08:47:17 2015
Return-Path: <kwatsen@juniper.net>
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 334D91A899A for <netmod@ietfa.amsl.com>; Tue, 24 Mar 2015 08:47:15 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.902
X-Spam-Level: 
X-Spam-Status: No, score=-1.902 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] 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 JekHq4LnT1si for <netmod@ietfa.amsl.com>; Tue, 24 Mar 2015 08:47:13 -0700 (PDT)
Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1on0716.outbound.protection.outlook.com [IPv6:2a01:111:f400:fc10::716]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1EF6F1A8966 for <netmod@ietf.org>; Tue, 24 Mar 2015 08:46:45 -0700 (PDT)
Received: from CO1PR05MB458.namprd05.prod.outlook.com (10.141.72.140) by CO1PR05MB364.namprd05.prod.outlook.com (10.141.51.143) with Microsoft SMTP Server (TLS) id 15.1.118.21; Tue, 24 Mar 2015 15:46:27 +0000
Received: from CO1PR05MB458.namprd05.prod.outlook.com ([169.254.10.152]) by CO1PR05MB458.namprd05.prod.outlook.com ([169.254.10.152]) with mapi id 15.01.0118.021; Tue, 24 Mar 2015 15:46:27 +0000
From: Kent Watsen <kwatsen@juniper.net>
To: Martin Bjorklund <mbj@tail-f.com>
Thread-Topic: [netmod] Y12: initialized-by system
Thread-Index: AQHQZcpyjBtBn0tBWU22tNexLzRG5Z0qzM2AgAACOQCAAKwsAIAARhuA///Da4A=
Date: Tue, 24 Mar 2015 15:46:25 +0000
Message-ID: <D136FD0C.9B48F%kwatsen@juniper.net>
References: <201503240048.t2O0m7bM010865@idle.juniper.net> <20150323.195604.161046968449760172.mbj@tail-f.com> <D136EF6A.9B42F%kwatsen@juniper.net> <20150324.102313.2038578803124146079.mbj@tail-f.com>
In-Reply-To: <20150324.102313.2038578803124146079.mbj@tail-f.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/14.4.4.140807
x-originating-ip: [66.129.239.19]
authentication-results: tail-f.com; dkim=none (message not signed) header.d=none;
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CO1PR05MB364;
x-microsoft-antispam-prvs: <CO1PR05MB364A627868BEC77A5753649A50A0@CO1PR05MB364.namprd05.prod.outlook.com>
x-forefront-antispam-report: BMV:1; SFV:NSPM; SFS:(10019020)(6009001)(164054003)(86362001)(54356999)(83506001)(76176999)(77156002)(62966003)(106116001)(93886004)(87936001)(2656002)(110136001)(99286002)(102836002)(92566002)(36756003)(122556002)(66066001)(46102003)(558084003)(2950100001)(50986999)(2900100001)(40100003); DIR:OUT; SFP:1102; SCL:1; SRVR:CO1PR05MB364; H:CO1PR05MB458.namprd05.prod.outlook.com; FPR:; SPF:None; MLV:sfv; LANG:en; 
x-exchange-antispam-report-test: UriScan:;
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(5005006)(5002010); SRVR:CO1PR05MB364; BCL:0; PCL:0; RULEID:; SRVR:CO1PR05MB364; 
x-forefront-prvs: 0525BB0ADF
Content-Type: text/plain; charset="us-ascii"
Content-ID: <7AC316AB5ECA0E4C9BC8D7044089FD50@namprd05.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Mar 2015 15:46:25.6603 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR05MB364
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/8ivBDL50DPPGBMRgxVkjETT3EfU>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] Y12: initialized-by system
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: <http://www.ietf.org/mail-archive/web/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: Tue, 24 Mar 2015 15:47:15 -0000

>So does this mean that you also support moving Y12 to DEAD?

Yes.  For netconf/restconf clients, the proposed solution is not
comprehensive enough, and the remaining value of the initialized-by
statement can equally by captured in the node's description statement.

Thanks,
Kent


From nobody Tue Mar 24 09:32:20 2015
Return-Path: <lhotka@nic.cz>
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 5FA3B1A90BF for <netmod@ietfa.amsl.com>; Tue, 24 Mar 2015 09:32:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.661
X-Spam-Level: 
X-Spam-Status: No, score=-0.661 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HELO_EQ_CZ=0.445, HOST_EQ_CZ=0.904, T_RP_MATCHES_RCVD=-0.01] autolearn=no
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 lGsM0dKqRwTg for <netmod@ietfa.amsl.com>; Tue, 24 Mar 2015 09:32:15 -0700 (PDT)
Received: from mail.nic.cz (mail.nic.cz [IPv6:2001:1488:800:400::400]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id DA4A01A90C9 for <netmod@ietf.org>; Tue, 24 Mar 2015 09:31:52 -0700 (PDT)
Received: from dhcp-b511.meeting.ietf.org (dhcp-b511.meeting.ietf.org [31.133.181.17]) by mail.nic.cz (Postfix) with ESMTPSA id 0D4E913F9E4; Tue, 24 Mar 2015 17:31:50 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=nic.cz; s=default; t=1427214711; bh=7VGsAEGTK6riED6cz9izdGCeFSM3f1awf1mjZ6xV0YI=; h=Content-Type:Mime-Version:Subject:From:In-Reply-To:Date:Cc: Content-Transfer-Encoding:Message-Id:References:To; b=aJn+cHuI47q29MM5c+8b4Cc/veghUASI0+JQkJXyGtedMMiejreYApjl8vlyZPV5S Xgza9YDONs4e7Raqwf/jmoZv6n1XcHpYyOCo57Hty7fK0CjHGbBKDLGPzMp38/bRs4 yCncv9sY3sOQNngAqmVn0LlaQYtAZrOhsBYv7fjw=
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2070.6\))
From: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <31385987.1427156661197.JavaMail.root@elwamui-huard.atl.sa.earthlink.net>
Date: Tue, 24 Mar 2015 11:31:47 -0500
Content-Transfer-Encoding: quoted-printable
Message-Id: <16060018-2C02-4AAB-89B6-E02701C37A0C@nic.cz>
References: <31385987.1427156661197.JavaMail.root@elwamui-huard.atl.sa.earthlink.net>
To: Randy Presuhn <randy_presuhn@mindspring.com>
X-Mailer: Apple Mail (2.2070.6)
X-Virus-Scanned: clamav-milter 0.98.6 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/FGt9nUELEkawLytXenEzkbvCeCk>
Cc: netmod@ietf.org
Subject: Re: [netmod] Y45 - imports
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: <http://www.ietf.org/mail-archive/web/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: Tue, 24 Mar 2015 16:32:17 -0000

> On 23 Mar 2015, at 19:24, Randy Presuhn <randy_presuhn@mindspring.com> =
wrote:
>=20
> Hi -
>=20
>> From: Ladislav Lhotka <lhotka@nic.cz>
>> Sent: Mar 23, 2015 4:31 PM
>> To: Randy Presuhn <randy_presuhn@mindspring.com>
>> Cc: NETMOD Working Group <netmod@ietf.org>
>> Subject: Re: [netmod] Y45 - imports
>>=20
>>=20
>>> On 23 Mar 2015, at 18:06, Randy Presuhn =
<randy_presuhn@mindspring.com> wrote:
>>>=20
>>> Hi -
>>>=20
>>>> From: Ladislav Lhotka <lhotka@nic.cz>
>>>> Sent: Mar 23, 2015 3:37 PM
>>>> To: Andy Bierman <andy@yumaworks.com>
>>>> Cc: NETMOD Working Group <netmod@ietf.org>
>>>> Subject: Re: [netmod] Y45 - imports
>>> ...
>>>>> The best match revision may be different from server to server.
>>>>> Even within 1 server, the best match can change from 1 day
>>>>> to the next.
>>>>=20
>>>> No, the revision is fixed by the importing module, ideally form
>>>> the revision-date. It doesn=E2=80=99t differ from server to server, =
and
>>>> server implementors should use that revision.
>>>=20
>>> I think the presumes an unrealistic level of omniscience on the
>>> part of the designers / implementors of the importing code.
>>=20
>> I don=E2=80=99t think so. The developer of the importing module must =
have
>> used a particular revision of the imported module, and this revision
>> should be clear from the importing module.
>=20
> Not really, if the importing module doesn't specify a specific
> revision.  Under the proposed rules, the latest version prior
> to the date of the importer would be used.  What seems vague
> about the proposal is that it doesn't make clear that there's
> a strong assumption that the developer of the importing module
> *must* somehow know that the version they've imported is in
> fact the most recent one.

This assumption is acceptable for IETF models, I agree it can be more =
difficult in other cases. So the moral of the story is to always use =
explicit revisions, and my proposed rule is just a fallback for modules =
that don=E2=80=99t do that. I think that rule is better than having the =
revision undefined.

>=20
>> All users of the importing module have to use that revision.
>=20
> This makes it a hard requirement for all implementators to
> have access to a guaranteed up-to-date repository of all
> potentially importable definitions.

Yes, but the alternative is to admit that the data models used on the =
client and server side may be different, or require that groupings and =
typedefs essentially don=E2=80=99t change from one revision to another.

>=20
> ...
>>> Consider this case:
>>> - a series of dates, D1..D5
>>> - ImporterA[D2], ImporterB[D5]
>>> - Imported[D1], Imported[D3], Imported[D4]
>>=20
>> I assume that if module A imports revision D2,
>=20
> Sorry, I was unclear.  The context of the discussion
> was imports which did not specify a revision.
> By the notation ImporterA[D2] I meant to
> indicate that the *date* of A was D2.
>=20
>> then D2 has to be used whenever (that particular revision)
>> of module A is used. Using Di for i!=3D2 means that typedefs
>> or groupings may be different from those that the author of
>> A used - and this is IMO unacceptable and can lead to
>> interoperability problems.
>=20
> Agreed, but that's not the scenario I was trying to describe.
> I think the issue is still real: the specifier of ImporterB,
> time-stamped D5, could potentially have missed the new version
> of Imported created at D4.  It's a classic race condition.
>=20
>> I think that making sure all existing revisions of a module are
>> available is not that difficult (although it is not the case for
>> the existing GitHub repository).
>=20
> For *all* vendors?

Vendors who want to contribute reliable data models should be able to do =
that, otherwise things may break.

Lada
=20

>=20
> Randy
>=20
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod

--
Ladislav Lhotka, CZ.NIC Labs
PGP Key ID: E74E8C0C





From nobody Tue Mar 24 12:06:21 2015
Return-Path: <jason.sterne@alcatel-lucent.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 531491A8A9C for <netmod@ietfa.amsl.com>; Tue, 24 Mar 2015 12:06:20 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.31
X-Spam-Level: 
X-Spam-Status: No, score=-6.31 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, J_CHICKENPOX_65=0.6, RCVD_IN_DNSWL_HI=-5, T_RP_MATCHES_RCVD=-0.01] 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 xXFEAPCJ07RN for <netmod@ietfa.amsl.com>; Tue, 24 Mar 2015 12:06:18 -0700 (PDT)
Received: from smtp-fr.alcatel-lucent.com (fr-hpida-esg-02.alcatel-lucent.com [135.245.210.21]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1D56C1A8A9B for <netmod@ietf.org>; Tue, 24 Mar 2015 12:06:18 -0700 (PDT)
Received: from us70uusmtp4.zam.alcatel-lucent.com (unknown [135.5.2.66]) by Websense Email Security Gateway with ESMTPS id 189B987E2F279; Tue, 24 Mar 2015 19:06:11 +0000 (GMT)
Received: from US70UWXCHHUB01.zam.alcatel-lucent.com (us70uwxchhub01.zam.alcatel-lucent.com [135.5.2.48]) by us70uusmtp4.zam.alcatel-lucent.com (GMO) with ESMTP id t2OJ6AYI014505 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Tue, 24 Mar 2015 15:06:14 -0400
Received: from US70TWXCHMBA11.zam.alcatel-lucent.com ([169.254.5.170]) by US70UWXCHHUB01.zam.alcatel-lucent.com ([135.5.2.48]) with mapi id 14.03.0195.001; Tue, 24 Mar 2015 15:06:12 -0400
From: "Sterne, Jason (Jason)" <jason.sterne@alcatel-lucent.com>
To: Martin Bjorklund <mbj@tail-f.com>, "kwatsen@juniper.net" <kwatsen@juniper.net>
Thread-Topic: [netmod] Y12: initialized-by system
Thread-Index: AQHQZkaBItrBb+IZbU+azd5U3DfCxZ0r++/g
Date: Tue, 24 Mar 2015 19:06:12 +0000
Message-ID: <A125E53CE190A749957C19483DC79F9F5C9E1199@US70TWXCHMBA11.zam.alcatel-lucent.com>
References: <201503240048.t2O0m7bM010865@idle.juniper.net> <20150323.195604.161046968449760172.mbj@tail-f.com> <D136EF6A.9B42F%kwatsen@juniper.net> <20150324.102313.2038578803124146079.mbj@tail-f.com>
In-Reply-To: <20150324.102313.2038578803124146079.mbj@tail-f.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [135.5.27.16]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/jBurhDp8UE_a72EiXJk35XMq2_k>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] Y12: initialized-by system
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: <http://www.ietf.org/mail-archive/web/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: Tue, 24 Mar 2015 19:06:20 -0000

>From below:

>> Also, for systems having 'explicit' default handling, would=20
>> initialized-by system be treated like user configuration or a default va=
lue?
>
>User configuration.

Agree this should be modeled as user config. There may be initialized-by sy=
stem objects that are list entries (not just basic leaves) that can be dele=
ted by the client/operator. You'd want to see those in a <get-config> respo=
nse (for explicit or trim systems).

Jason

-----Original Message-----
From: netmod [mailto:netmod-bounces@ietf.org] On Behalf Of Martin Bjorklund
Sent: Tuesday, March 24, 2015 10:23 AM
To: kwatsen@juniper.net
Cc: netmod@ietf.org
Subject: Re: [netmod] Y12: initialized-by system

Kent Watsen <kwatsen@juniper.net> wrote:
>=20
> Adding to Phil's comment, we tried to do something like this a fews=20
> years back - we called it implicit-changes.  We created three=20
> solutions trying to address the issue:
>=20
>   1) putting markup into the data-model describing conditions
>      that would cause implicit changes  (similar to Y12)
>=20
>   2) have the device return an roc-error of type warning for
>      when any implicit changes occurred, returning an optional
>      list of xpaths to the nodes that changed
>=20
>   3) have the NETCONF client fetch the entire config after each
>      update, on the off-chance that an impact change occurred.
>=20
> In the end, #2 was the winner, as it was easy to implement and covered=20
> all cases.  #1 was not popular with the router engineers.  Sooner or=20
> later, we'll need to update netconf/restconf (not yang) to support=20
> this.  FWIW, ETag solves a related but different problem.

So does this mean that you also support moving Y12 to DEAD?

> For the example listed in Y12, would it make sense to model it as a=20
> config=3Dfalse value?

I don't think so b/c you want to be able to save the system-initialized val=
ues in your backup and be able to restore the backup w/ the correct uid val=
ues; you don't what the system to assign different values when the backup i=
s restored.

> Also, for systems having 'explicit' default handling, would=20
> initialized-by system be treated like user configuration or a default val=
ue?

User configuration.


/martin

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


From nobody Tue Mar 24 12:11:41 2015
Return-Path: <jason.sterne@alcatel-lucent.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 04BF71A8AC1 for <netmod@ietfa.amsl.com>; Tue, 24 Mar 2015 12:11:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.31
X-Spam-Level: 
X-Spam-Status: No, score=-6.31 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, J_CHICKENPOX_65=0.6, RCVD_IN_DNSWL_HI=-5, T_RP_MATCHES_RCVD=-0.01] 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 y9CKSyfSSp9k for <netmod@ietfa.amsl.com>; Tue, 24 Mar 2015 12:11:38 -0700 (PDT)
Received: from smtp-fr.alcatel-lucent.com (fr-hpida-esg-02.alcatel-lucent.com [135.245.210.21]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 092B01A8AC3 for <netmod@ietf.org>; Tue, 24 Mar 2015 12:11:29 -0700 (PDT)
Received: from us70uusmtp4.zam.alcatel-lucent.com (unknown [135.5.2.66]) by Websense Email Security Gateway with ESMTPS id EC9385601E924; Tue, 24 Mar 2015 19:11:23 +0000 (GMT)
Received: from US70UWXCHHUB02.zam.alcatel-lucent.com (us70uwxchhub02.zam.alcatel-lucent.com [135.5.2.49]) by us70uusmtp4.zam.alcatel-lucent.com (GMO) with ESMTP id t2OJBQDC021791 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Tue, 24 Mar 2015 15:11:26 -0400
Received: from US70TWXCHMBA11.zam.alcatel-lucent.com ([169.254.5.170]) by US70UWXCHHUB02.zam.alcatel-lucent.com ([135.5.2.49]) with mapi id 14.03.0195.001; Tue, 24 Mar 2015 15:11:26 -0400
From: "Sterne, Jason (Jason)" <jason.sterne@alcatel-lucent.com>
To: Kent Watsen <kwatsen@juniper.net>, Martin Bjorklund <mbj@tail-f.com>, "Phil Shafer" <phil@juniper.net>
Thread-Topic: using NETCONF error severity=warning
Thread-Index: AQHQZcpyjBtBn0tBWU22tNexLzRG5Z0qzM2AgAACOQCAAKwsAIAAhHyQ
Date: Tue, 24 Mar 2015 19:11:25 +0000
Message-ID: <A125E53CE190A749957C19483DC79F9F5C9E11B5@US70TWXCHMBA11.zam.alcatel-lucent.com>
References: <20150323.193523.1779915941155278856.mbj@tail-f.com> <201503240048.t2O0m7bM010865@idle.juniper.net> <20150323.195604.161046968449760172.mbj@tail-f.com> <D136EF6A.9B42F%kwatsen@juniper.net>
In-Reply-To: <D136EF6A.9B42F%kwatsen@juniper.net>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [135.5.27.16]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/Wu_RNYqDXvNSSs5fi0fzLc6E_i4>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: [netmod] using NETCONF error severity=warning
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: <http://www.ietf.org/mail-archive/web/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: Tue, 24 Mar 2015 19:11:40 -0000

Hi Kent,

Did you end up implementing and deploying with these severity=3Dwarning res=
ponses ? It sounds like it but just checking if it caused any problems with=
 clients (not sure if it has had enough field exposure yet).

We've also looked at using the rpc-error warning severity for some similar =
cases (i.e. somehow indicating side-effects) but we've been hesitant for a =
few reasons:
1) in theory the NETCONF RFC doesn't support them (no standard rpc-error re=
sponses with severity=3Dwarning)
2) not sure if most NETCONF clients might just see the <rpc-error> and not =
check the severity. Many may just implicitly consider any rpc-error as seve=
rity=3Derror.

Jason

-----Original Message-----
From: netmod [mailto:netmod-bounces@ietf.org] On Behalf Of Kent Watsen
Sent: Tuesday, March 24, 2015 10:12 AM
To: Martin Bjorklund; Phil Shafer
Cc: netmod@ietf.org
Subject: Re: [netmod] Y12: initialized-by system


Adding to Phil's comment, we tried to do something like this a fews years b=
ack - we called it implicit-changes.  We created three solutions trying to =
address the issue:

  1) putting markup into the data-model describing conditions
     that would cause implicit changes  (similar to Y12)

  2) have the device return an roc-error of type warning for
     when any implicit changes occurred, returning an optional
     list of xpaths to the nodes that changed

  3) have the NETCONF client fetch the entire config after each
     update, on the off-chance that an impact change occurred.

In the end, #2 was the winner, as it was easy to implement and covered all =
cases.  #1 was not popular with the router engineers.  Sooner or later, we'=
ll need to update netconf/restconf (not yang) to support this.  FWIW, ETag =
solves a related but different problem.


For the example listed in Y12, would it make sense to model it as a config=
=3Dfalse value? As a corollary, we many times discuss the configured MTU va=
lue and the running MTU value.

Also, for systems having 'explicit' default handling, would initialized-by
system be treated like user configuration or a default value?   Maybe a
better solution is to give for default statement a special value?  (e.g.
default initialized-by-system)

Thanks,
Kent




On 3/23/15, 8:56 PM, "Martin Bjorklund" <mbj@tail-f.com> wrote:

>Phil Shafer <phil@juniper.net> wrote:
>> Would it make sense to have  a simpler "you need to re-read this data=20
>> after you create it" flag that's less specific/more useful?
>
>That seems to cover the "cleartext to hash" use case, but not the=20
>original initialized-by system use case (since in that case the data is=20
>created by the server, not the client).
>
>But something like this would be needed.  The question is now if this=20
>falls into the category of being useful enough to be included in YANG
>1.1 or not.  I think this could also be done w/ extensions later.
>
>
>/martin
>
>_______________________________________________
>netmod mailing list
>netmod@ietf.org
>https://www.ietf.org/mailman/listinfo/netmod

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


From nobody Tue Mar 24 12:23:46 2015
Return-Path: <j.schoenwaelder@jacobs-university.de>
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 329821A8AD2 for <netmod@ietfa.amsl.com>; Tue, 24 Mar 2015 12:23:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.86
X-Spam-Level: 
X-Spam-Status: No, score=-3.86 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] 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 rGgGEr0Q60av for <netmod@ietfa.amsl.com>; Tue, 24 Mar 2015 12:23:42 -0700 (PDT)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 732211A8A72 for <netmod@ietf.org>; Tue, 24 Mar 2015 12:23:42 -0700 (PDT)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id 4471114AF; Tue, 24 Mar 2015 20:23:41 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.220]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id Tne8qlXT3KVq; Tue, 24 Mar 2015 20:23:31 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS; Tue, 24 Mar 2015 20:23:40 +0100 (CET)
Received: from localhost (demetrius2.jacobs-university.de [212.201.44.47]) by hermes.jacobs-university.de (Postfix) with ESMTP id 713322002B; Tue, 24 Mar 2015 20:23:40 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius2.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id 9sNZCDJXoRym; Tue, 24 Mar 2015 20:23:39 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id 4F44320013; Tue, 24 Mar 2015 20:23:39 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id 29A21328194F; Tue, 24 Mar 2015 20:23:36 +0100 (CET)
Date: Tue, 24 Mar 2015 20:23:36 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Ladislav Lhotka <lhotka@nic.cz>
Message-ID: <20150324192336.GA60753@elstar.local>
Mail-Followup-To: Ladislav Lhotka <lhotka@nic.cz>, Andy Bierman <andy@yumaworks.com>, NETMOD Working Group <netmod@ietf.org>
References: <04E4C79C-6D87-4A0F-A1BA-0ABBE1DCD1E4@nic.cz> <CABCOCHQ-WYFzzW_+=E5Ur0_x+6zx-wuYJH+391sdL=trUpH8cA@mail.gmail.com> <F9E306F2-7B4A-4531-A683-837D996DF838@nic.cz>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <F9E306F2-7B4A-4531-A683-837D996DF838@nic.cz>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/dgotaAxEoRnQYtmRKY_hJZ6D8iA>
Cc: NETMOD Working Group <netmod@ietf.org>
Subject: Re: [netmod] Y45 - imports
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
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: <http://www.ietf.org/mail-archive/web/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: Tue, 24 Mar 2015 19:23:44 -0000

On Mon, Mar 23, 2015 at 05:37:12PM -0500, Ladislav Lhotka wrote:
> 
> If foo-range changed, then presumably there must have been a reason for such a change, and all users should sooner or later accommodate to this change. If a server *temporarily* cannot implement the extended range, it can copy-and-paste the old version.
>

I believe this is to be avoided for two reasons:

(1) It is unrealistic to expect that model maintainers will go and
    check whether any definition that they *use* was semantically
    modified in the all the modules they import from. (Note that often
    *used* << *defined* - you import yang-types but only use a small
    subset of it.)

(2) The value of common definitions is that tools can understand them.
    For example, tools may know what an inet:ip-address is and so they
    know how to represent such data efficiently. If we have to support
    IPv8, then a copy of inet:ip-address into my-module:ip-address
    will loose all tool support (and having from there on N similar
    definitions that start their own lifecycle will be horrible).

The only robust and backwards compatible way to lets say add IPv8
support to inet:ip-address is to create inet:ip-address-v8. For all
the alternatives considered, see the various meeting notes and the
I-Ds Martin and Andy wrote.

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Tue Mar 24 12:54:45 2015
Return-Path: <acee@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 2F8DD1A89C5 for <netmod@ietfa.amsl.com>; Tue, 24 Mar 2015 12:54: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 Lf6iPlB4ZAG5 for <netmod@ietfa.amsl.com>; Tue, 24 Mar 2015 12:54:37 -0700 (PDT)
Received: from rcdn-iport-7.cisco.com (rcdn-iport-7.cisco.com [173.37.86.78]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5EAED1A8AA8 for <netmod@ietf.org>; Tue, 24 Mar 2015 12:54:24 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=6603; q=dns/txt; s=iport; t=1427226864; x=1428436464; h=from:to:subject:date:message-id:mime-version; bh=IU2lsb76GKLjQu88ECQ5a7RA7sjrV46S+yozio409jE=; b=mmW4N8ZQixbDJbE6Ue7INWRM4oTG9ID5QhwPpb0RI35bGkuGztWtodAE 0XCVlOESqbBs/eFsOQdlhI7POMXb/nAu44GSqP7Zt+2WdVC2YSzIP8AEg +XW8jfpn+inNdjGx4iMDdjcTtAibmILrKmczRlw26DgQ+ugt6yRSo6U1R w=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0AQBQCywBFV/4oNJK1cgkNDgSwEgw7JLR6BJ0wBAQEBAQF9hBQBAgQjCl4BDA0DAQIoAwIEMBQJCgQTiC+fRo9MmhEBAQEBBgEBAQEBARyPc4MTgUUFkFCGE4NclCwig25vgUR/AQEB
X-IronPort-AV: E=Sophos;i="5.11,460,1422921600";  d="scan'208,217";a="406293817"
Received: from alln-core-5.cisco.com ([173.36.13.138]) by rcdn-iport-7.cisco.com with ESMTP; 24 Mar 2015 19:54:23 +0000
Received: from xhc-rcd-x11.cisco.com (xhc-rcd-x11.cisco.com [173.37.183.85]) by alln-core-5.cisco.com (8.14.5/8.14.5) with ESMTP id t2OJsNCd007973 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL) for <netmod@ietf.org>; Tue, 24 Mar 2015 19:54:23 GMT
Received: from xmb-aln-x06.cisco.com ([169.254.1.200]) by xhc-rcd-x11.cisco.com ([173.37.183.85]) with mapi id 14.03.0195.001; Tue, 24 Mar 2015 14:54:23 -0500
From: "Acee Lindem (acee)" <acee@cisco.com>
To: "netmod@ietf.org" <netmod@ietf.org>
Thread-Topic: Access Control List Ordering 
Thread-Index: AQHQZmxTR2hYU2VwmECHfJwN+qoj0g==
Date: Tue, 24 Mar 2015 19:54:22 +0000
Message-ID: <D1372853.134B6%acee@cisco.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [10.24.167.21]
Content-Type: multipart/alternative; boundary="_000_D1372853134B6aceeciscocom_"
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/wk6RfD-WnCqN-V5lUu5Bs9JRN38>
Subject: [netmod] Access Control List Ordering
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: <http://www.ietf.org/mail-archive/web/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: Tue, 24 Mar 2015 19:54:39 -0000

--_000_D1372853134B6aceeciscocom_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

VGhlIHBvaW50IHRoYXQgSSBkaWRu4oCZdCB3YW50IHRvIGJlbGFib3IgaW4gdG9kYXnigJlzIG1l
ZXRpbmcgd2FzIHRoYXQgZmFjdCB0aGF0IHRoZSBvcmRlciBvZiBhcHBsaWNhdGlvbiBvZiBBQ0Vz
IG5lZWRzIHRvIGJlIHNwZWNpZmllZC4gSSBjYW4gYXBwcmVjaWF0ZSB0aGUgZmFjdCB0aGF0IGNj
ZXNzLWNvbnRyb2wtbGlzdC1uYW1lIGlzIHNpbXBseSBhIGhhbmRsZSB0byByZWZlcmVuY2UgYSBn
aXZlbiBBQ0UsIGUuZy4g4oCcQWxsb3ctQVMtMTEzNeKAnS4gSG93ZXZlciwgc2luY2UgYSBnaXZl
biBBQ0UgZW50cnkgbWF0Y2hlcyBvbiBtdWx0aXBsZSAgcGFja2V0IGZpZWxkcywgc2F5aW5nIHlv
dSBqdXN0IOKAnG1hdGNoIG9uIHRoZSBtb3N0IHNwZWNpZmljIEFDReKAnSBkb2VzbuKAmXQgbWFr
ZSBzZW5zZSB1bmxlc3Mgc3RhbmRhcmRpemUgcHJlY2lzZWx5IHdoYXQgY29uc3RpdHV0ZXMgdGhl
IG1vc3Qgc3BlY2lmaWMgbWF0Y2guIEZ1cnRoZXJtb3JlLCBJIGRvbuKAmXQgdGhpbmsgaXQgc2hv
dWxkIGJlIGNhbGxlZCBhbiBhY2Nlc3MtbGlzdCBtb2RlbCB1bmxlc3MgaXQgcmV0YWlucyB0aGUg
c2VtYW50aWNzIG9mIG1hdGNoaW5nIGluIGEgdXNlciBjb250cm9sbGVkIG9yZGVyIChpLmUuLCBh
IHNlcXVlbmNlKS4NCg0KVGhhbmtzLA0KQWNlZQ0KDQpGcm9tOiA8U3Rlcm5lPiwgIkphc29uIChK
YXNvbikiIDxqYXNvbi5zdGVybmVAYWxjYXRlbC1sdWNlbnQuY29tPG1haWx0bzpqYXNvbi5zdGVy
bmVAYWxjYXRlbC1sdWNlbnQuY29tPj4NCkRhdGU6IFR1ZXNkYXksIE1hcmNoIDI0LCAyMDE1IGF0
IDk6NTQgQU0NClRvOiAibmV0bW9kQGlldGYub3JnPG1haWx0bzpuZXRtb2RAaWV0Zi5vcmc+IiA8
bmV0bW9kQGlldGYub3JnPG1haWx0bzpuZXRtb2RAaWV0Zi5vcmc+Pg0KU3ViamVjdDogW25ldG1v
ZF0gZnVsbCBhY2Nlc3MtY29udHJvbC1saXN0IG5hbWUgdnMgYWNsIGFiYnJldmlhdGlvbiBpbiB5
YW5nIG1vZGVsDQoNCkluIHRoZSBORVRNT0Qgc2Vzc2lvbiB0b2RheSB0aGVyZSB3YXMgYSBwcm9w
b3NhbCB0byBkZWFsIHdpdGggdGhlIGZ1bGwg4oCcYWNjZXNzLWNvbnRyb2wtbGlzdOKAnSBuYW1l
cyBmb3IgbGlzdHMgJiBvdGhlciBvYmplY3RzIHZzIOKAnGFjbOKAnS4NCg0KSG93IGFib3V0IHVz
ZSB0aGUgZnVsbCDigJxhY2Nlc3MtY29udHJvbC1saXN04oCdIGF0IHRoZSB0b3AgY29udGFpbmVy
IChhcyB3YXMgc2hvd24gRGVhbuKAmXMgc2xpZGVzKSBidXQgdGhlbiB1c2Ug4oCcYWNs4oCdIGV2
ZXJ5d2hlcmUgaW5zaWRlID8gIGkuZS4gaW5zdGVhZCBvZiDigJxhY2XigJ0gaG93IGFib3V0IOKA
nGFjbC1lbnRyeeKAnSA/ICAgT25jZSB3ZSBhYmJyZXZpYXRlIGFjY2Vzcy1jb250cm9sLWxpc3Qg
dG8g4oCcYWNs4oCdIHRoZW4gd2UgY2FuIHByb2JhYmx5IGxlYXZlIG90aGVyIHdvcmRzIGFzIGZ1
bGwgd29yZHM6DQoNCiAgKiAgIGFjbC1uYW1lDQogICogICBhY2wtdHlwZQ0KICAqICAgYWNsLWVu
dHJ5DQogICogICBldGMNCg0KDQpKYXNvbg0KDQo=

--_000_D1372853134B6aceeciscocom_
Content-Type: text/html; charset="utf-8"
Content-ID: <72D6CD75A55E7143BA7D5EEAD6A10C5E@emea.cisco.com>
Content-Transfer-Encoding: base64

PGh0bWw+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0i
dGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjwvaGVhZD4NCjxib2R5IHN0eWxlPSJ3b3JkLXdy
YXA6IGJyZWFrLXdvcmQ7IC13ZWJraXQtbmJzcC1tb2RlOiBzcGFjZTsgLXdlYmtpdC1saW5lLWJy
ZWFrOiBhZnRlci13aGl0ZS1zcGFjZTsgY29sb3I6IHJnYigwLCAwLCAwKTsgZm9udC1zaXplOiAx
NHB4OyBmb250LWZhbWlseTogQ2FsaWJyaSwgc2Fucy1zZXJpZjsiPg0KPGRpdj5UaGUgcG9pbnQg
dGhhdCBJIGRpZG7igJl0IHdhbnQgdG8gYmVsYWJvciBpbiB0b2RheeKAmXMgbWVldGluZyB3YXMg
dGhhdCBmYWN0IHRoYXQgdGhlIG9yZGVyIG9mIGFwcGxpY2F0aW9uIG9mIEFDRXMgbmVlZHMgdG8g
YmUgc3BlY2lmaWVkLiBJIGNhbiBhcHByZWNpYXRlIHRoZSBmYWN0IHRoYXQgY2Nlc3MtY29udHJv
bC1saXN0LW5hbWUgaXMgc2ltcGx5IGEgaGFuZGxlIHRvIHJlZmVyZW5jZSBhIGdpdmVuIEFDRSwg
ZS5nLiDigJxBbGxvdy1BUy0xMTM14oCdLg0KIEhvd2V2ZXIsIHNpbmNlIGEgZ2l2ZW4gQUNFIGVu
dHJ5IG1hdGNoZXMgb24gbXVsdGlwbGUgJm5ic3A7cGFja2V0IGZpZWxkcywgc2F5aW5nIHlvdSBq
dXN0IOKAnG1hdGNoIG9uIHRoZSBtb3N0IHNwZWNpZmljIEFDReKAnSBkb2VzbuKAmXQgbWFrZSBz
ZW5zZSB1bmxlc3Mgc3RhbmRhcmRpemUgcHJlY2lzZWx5IHdoYXQgY29uc3RpdHV0ZXMgdGhlIG1v
c3Qgc3BlY2lmaWMgbWF0Y2guIEZ1cnRoZXJtb3JlLCBJIGRvbuKAmXQgdGhpbmsgaXQgc2hvdWxk
IGJlIGNhbGxlZCBhbg0KIGFjY2Vzcy1saXN0IG1vZGVsIHVubGVzcyBpdCByZXRhaW5zIHRoZSBz
ZW1hbnRpY3Mgb2YgbWF0Y2hpbmcgaW4gYSB1c2VyIGNvbnRyb2xsZWQgb3JkZXIgKGkuZS4sIGEg
c2VxdWVuY2UpLiZuYnNwOzwvZGl2Pg0KPGRpdj48YnI+DQo8L2Rpdj4NCjxkaXY+VGhhbmtzLDwv
ZGl2Pg0KPGRpdj5BY2VlJm5ic3A7PC9kaXY+DQo8ZGl2Pjxicj4NCjwvZGl2Pg0KPHNwYW4gaWQ9
Ik9MS19TUkNfQk9EWV9TRUNUSU9OIj4NCjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OkNhbGlicmk7
IGZvbnQtc2l6ZToxMXB0OyB0ZXh0LWFsaWduOmxlZnQ7IGNvbG9yOmJsYWNrOyBCT1JERVItQk9U
VE9NOiBtZWRpdW0gbm9uZTsgQk9SREVSLUxFRlQ6IG1lZGl1bSBub25lOyBQQURESU5HLUJPVFRP
TTogMGluOyBQQURESU5HLUxFRlQ6IDBpbjsgUEFERElORy1SSUdIVDogMGluOyBCT1JERVItVE9Q
OiAjYjVjNGRmIDFwdCBzb2xpZDsgQk9SREVSLVJJR0hUOiBtZWRpdW0gbm9uZTsgUEFERElORy1U
T1A6IDNwdCI+DQo8c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+RnJvbTogPC9zcGFuPiZs
dDtTdGVybmUmZ3Q7LCAmcXVvdDtKYXNvbiAoSmFzb24pJnF1b3Q7ICZsdDs8YSBocmVmPSJtYWls
dG86amFzb24uc3Rlcm5lQGFsY2F0ZWwtbHVjZW50LmNvbSI+amFzb24uc3Rlcm5lQGFsY2F0ZWwt
bHVjZW50LmNvbTwvYT4mZ3Q7PGJyPg0KPHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPkRh
dGU6IDwvc3Bhbj5UdWVzZGF5LCBNYXJjaCAyNCwgMjAxNSBhdCA5OjU0IEFNPGJyPg0KPHNwYW4g
c3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPlRvOiA8L3NwYW4+JnF1b3Q7PGEgaHJlZj0ibWFpbHRv
Om5ldG1vZEBpZXRmLm9yZyI+bmV0bW9kQGlldGYub3JnPC9hPiZxdW90OyAmbHQ7PGEgaHJlZj0i
bWFpbHRvOm5ldG1vZEBpZXRmLm9yZyI+bmV0bW9kQGlldGYub3JnPC9hPiZndDs8YnI+DQo8c3Bh
biBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+U3ViamVjdDogPC9zcGFuPltuZXRtb2RdIGZ1bGwg
YWNjZXNzLWNvbnRyb2wtbGlzdCBuYW1lIHZzIGFjbCBhYmJyZXZpYXRpb24gaW4geWFuZyBtb2Rl
bDxicj4NCjwvZGl2Pg0KPGRpdj48YnI+DQo8L2Rpdj4NCjxibG9ja3F1b3RlIGlkPSJNQUNfT1VU
TE9PS19BVFRSSUJVVElPTl9CTE9DS1FVT1RFIiBzdHlsZT0iQk9SREVSLUxFRlQ6ICNiNWM0ZGYg
NSBzb2xpZDsgUEFERElORzowIDAgMCA1OyBNQVJHSU46MCAwIDAgNTsiPg0KPGRpdj4NCjxtZXRh
IG5hbWU9IkdlbmVyYXRvciIgY29udGVudD0iTWljcm9zb2Z0IEV4Y2hhbmdlIFNlcnZlciI+DQo8
IS0tIGNvbnZlcnRlZCBmcm9tIHJ0ZiAtLT48c3R5bGU+PCEtLSAuRW1haWxRdW90ZSB7IG1hcmdp
bi1sZWZ0OiAxcHQ7IHBhZGRpbmctbGVmdDogNHB0OyBib3JkZXItbGVmdDogIzgwMDAwMCAycHgg
c29saWQ7IH0gLS0+PC9zdHlsZT4NCjxkaXY+PGZvbnQgZmFjZT0iQ2FsaWJyaSIgc2l6ZT0iMiI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMXB0OyI+DQo8ZGl2PkluIHRoZSBORVRNT0Qgc2Vzc2lv
biB0b2RheSB0aGVyZSB3YXMgYSBwcm9wb3NhbCB0byBkZWFsIHdpdGggdGhlIGZ1bGwg4oCcYWNj
ZXNzLWNvbnRyb2wtbGlzdOKAnSBuYW1lcyBmb3IgbGlzdHMgJmFtcDsgb3RoZXIgb2JqZWN0cyB2
cyDigJxhY2zigJ0uPC9kaXY+DQo8ZGl2PiZuYnNwOzwvZGl2Pg0KPGRpdj5Ib3cgYWJvdXQgdXNl
IHRoZSBmdWxsIOKAnGFjY2Vzcy1jb250cm9sLWxpc3TigJ0gYXQgdGhlIHRvcCBjb250YWluZXIg
KGFzIHdhcyBzaG93biBEZWFu4oCZcyBzbGlkZXMpIGJ1dCB0aGVuIHVzZSDigJxhY2zigJ0gZXZl
cnl3aGVyZSBpbnNpZGUgPyZuYnNwOyBpLmUuIGluc3RlYWQgb2Yg4oCcYWNl4oCdIGhvdyBhYm91
dCDigJxhY2wtZW50cnnigJ0gPyZuYnNwOyZuYnNwOyBPbmNlIHdlIGFiYnJldmlhdGUgYWNjZXNz
LWNvbnRyb2wtbGlzdCB0byDigJxhY2zigJ0gdGhlbiB3ZSBjYW4gcHJvYmFibHkNCiBsZWF2ZSBv
dGhlciB3b3JkcyBhcyBmdWxsIHdvcmRzOjwvZGl2Pg0KPHVsIHN0eWxlPSJtYXJnaW46MDtwYWRk
aW5nLWxlZnQ6MzZwdDsiPg0KPGxpPmFjbC1uYW1lPC9saT48bGk+YWNsLXR5cGU8L2xpPjxsaT5h
Y2wtZW50cnk8L2xpPjxsaT5ldGM8L2xpPjwvdWw+DQo8ZGl2PiZuYnNwOzwvZGl2Pg0KPGRpdj5K
YXNvbjwvZGl2Pg0KPGRpdj4mbmJzcDs8L2Rpdj4NCjwvc3Bhbj48L2ZvbnQ+PC9kaXY+DQo8L2Rp
dj4NCjwvYmxvY2txdW90ZT4NCjwvc3Bhbj4NCjwvYm9keT4NCjwvaHRtbD4NCg==

--_000_D1372853134B6aceeciscocom_--


From nobody Tue Mar 24 13:53:00 2015
Return-Path: <mbj@tail-f.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 E30101A0364 for <netmod@ietfa.amsl.com>; Tue, 24 Mar 2015 13:52:57 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.91
X-Spam-Level: 
X-Spam-Status: No, score=-1.91 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, T_RP_MATCHES_RCVD=-0.01] 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 jCWwrPf8EVjn for <netmod@ietfa.amsl.com>; Tue, 24 Mar 2015 13:52:56 -0700 (PDT)
Received: from mail.tail-f.com (mail.tail-f.com [83.241.162.140]) by ietfa.amsl.com (Postfix) with ESMTP id 4E7C81A0242 for <netmod@ietf.org>; Tue, 24 Mar 2015 13:52:56 -0700 (PDT)
Received: from localhost (dhcp-893f.meeting.ietf.org [31.133.137.63]) by mail.tail-f.com (Postfix) with ESMTPSA id 82CC81280AC6; Tue, 24 Mar 2015 21:52:54 +0100 (CET)
Date: Tue, 24 Mar 2015 15:52:52 -0500 (CDT)
Message-Id: <20150324.155252.943808584873271570.mbj@tail-f.com>
To: acee@cisco.com
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <D1372853.134B6%acee@cisco.com>
References: <D1372853.134B6%acee@cisco.com>
X-Mailer: Mew version 6.5 on Emacs 24.3 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=utf-8
Content-Transfer-Encoding: base64
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/aW1fMndDXD1apWMI6hCrdftZ1pU>
Cc: netmod@ietf.org
Subject: Re: [netmod] Access Control List Ordering
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: <http://www.ietf.org/mail-archive/web/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: Tue, 24 Mar 2015 20:52:58 -0000

IkFjZWUgTGluZGVtIChhY2VlKSIgPGFjZWVAY2lzY28uY29tPiB3cm90ZToNCj4gVGhlIHBvaW50
IHRoYXQgSSBkaWRu4oCZdCB3YW50IHRvIGJlbGFib3IgaW4gdG9kYXnigJlzIG1lZXRpbmcgd2Fz
IHRoYXQNCj4gZmFjdCB0aGF0IHRoZSBvcmRlciBvZiBhcHBsaWNhdGlvbiBvZiBBQ0VzIG5lZWRz
IHRvIGJlIHNwZWNpZmllZC4NCg0KQWJzb2x1dGVseSENCg0KQW5kIHRoYXQgaXMgZXhhY3RseSB3
aGF0IGFuIG9yZGVyZWQtYnkgdXNlciBsaXN0IGRvZXMuICBUaGUgdXNlcg0KKG9wZXJhdG9yKSBj
b250cm9scyB0aGUgb3JkZXIgb2YgdGhlIGxpc3QgaW5zdGFuY2VzLg0KDQoNCi9tYXJ0aW4NCg0K
PiBJDQo+IGNhbiBhcHByZWNpYXRlIHRoZSBmYWN0IHRoYXQgY2Nlc3MtY29udHJvbC1saXN0LW5h
bWUgaXMgc2ltcGx5IGENCj4gaGFuZGxlIHRvIHJlZmVyZW5jZSBhIGdpdmVuIEFDRSwgZS5nLiDi
gJxBbGxvdy1BUy0xMTM14oCdLiBIb3dldmVyLCBzaW5jZQ0KPiBhIGdpdmVuIEFDRSBlbnRyeSBt
YXRjaGVzIG9uIG11bHRpcGxlIHBhY2tldCBmaWVsZHMsIHNheWluZyB5b3UganVzdA0KPiDigJxt
YXRjaCBvbiB0aGUgbW9zdCBzcGVjaWZpYyBBQ0XigJ0gZG9lc27igJl0IG1ha2Ugc2Vuc2UgdW5s
ZXNzIHN0YW5kYXJkaXplDQo+IHByZWNpc2VseSB3aGF0IGNvbnN0aXR1dGVzIHRoZSBtb3N0IHNw
ZWNpZmljIG1hdGNoLiBGdXJ0aGVybW9yZSwgSQ0KPiBkb27igJl0IHRoaW5rIGl0IHNob3VsZCBi
ZSBjYWxsZWQgYW4gYWNjZXNzLWxpc3QgbW9kZWwgdW5sZXNzIGl0IHJldGFpbnMNCj4gdGhlIHNl
bWFudGljcyBvZiBtYXRjaGluZyBpbiBhIHVzZXIgY29udHJvbGxlZCBvcmRlciAoaS5lLiwgYQ0K
PiBzZXF1ZW5jZSkuDQo+IA0KPiBUaGFua3MsDQo+IEFjZWUNCj4gDQo+IEZyb206IDxTdGVybmU+
LCAiSmFzb24gKEphc29uKSINCj4gPGphc29uLnN0ZXJuZUBhbGNhdGVsLWx1Y2VudC5jb208bWFp
bHRvOmphc29uLnN0ZXJuZUBhbGNhdGVsLWx1Y2VudC5jb20+Pg0KPiBEYXRlOiBUdWVzZGF5LCBN
YXJjaCAyNCwgMjAxNSBhdCA5OjU0IEFNDQo+IFRvOiAibmV0bW9kQGlldGYub3JnPG1haWx0bzpu
ZXRtb2RAaWV0Zi5vcmc+Ig0KPiA8bmV0bW9kQGlldGYub3JnPG1haWx0bzpuZXRtb2RAaWV0Zi5v
cmc+Pg0KPiBTdWJqZWN0OiBbbmV0bW9kXSBmdWxsIGFjY2Vzcy1jb250cm9sLWxpc3QgbmFtZSB2
cyBhY2wgYWJicmV2aWF0aW9uIGluDQo+IHlhbmcgbW9kZWwNCj4gDQo+IEluIHRoZSBORVRNT0Qg
c2Vzc2lvbiB0b2RheSB0aGVyZSB3YXMgYSBwcm9wb3NhbCB0byBkZWFsIHdpdGggdGhlIGZ1bGwN
Cj4g4oCcYWNjZXNzLWNvbnRyb2wtbGlzdOKAnSBuYW1lcyBmb3IgbGlzdHMgJiBvdGhlciBvYmpl
Y3RzIHZzIOKAnGFjbOKAnS4NCj4gDQo+IEhvdyBhYm91dCB1c2UgdGhlIGZ1bGwg4oCcYWNjZXNz
LWNvbnRyb2wtbGlzdOKAnSBhdCB0aGUgdG9wIGNvbnRhaW5lciAoYXMNCj4gd2FzIHNob3duIERl
YW7igJlzIHNsaWRlcykgYnV0IHRoZW4gdXNlIOKAnGFjbOKAnSBldmVyeXdoZXJlIGluc2lkZSA/
DQo+IGkuZS4gaW5zdGVhZCBvZiDigJxhY2XigJ0gaG93IGFib3V0IOKAnGFjbC1lbnRyeeKAnSA/
ICBPbmNlIHdlIGFiYnJldmlhdGUNCj4gYWNjZXNzLWNvbnRyb2wtbGlzdCB0byDigJxhY2zigJ0g
dGhlbiB3ZSBjYW4gcHJvYmFibHkgbGVhdmUgb3RoZXIgd29yZHMgYXMNCj4gZnVsbCB3b3JkczoN
Cj4gDQo+ICAgKiAgIGFjbC1uYW1lDQo+ICAgKiAgIGFjbC10eXBlDQo+ICAgKiAgIGFjbC1lbnRy
eQ0KPiAgICogICBldGMNCj4gDQo+IA0KPiBKYXNvbg0KPiANCg==


From nobody Tue Mar 24 13:59:38 2015
Return-Path: <j.schoenwaelder@jacobs-university.de>
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 A54B41A0364 for <netmod@ietfa.amsl.com>; Tue, 24 Mar 2015 13:59:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.86
X-Spam-Level: 
X-Spam-Status: No, score=-3.86 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] 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 awfFLmQQzgb1 for <netmod@ietfa.amsl.com>; Tue, 24 Mar 2015 13:59:31 -0700 (PDT)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A65AC1A1A22 for <netmod@ietf.org>; Tue, 24 Mar 2015 13:59:30 -0700 (PDT)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id 6F47793B; Tue, 24 Mar 2015 21:59:29 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.220]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id AQOuXWTOwlWD; Tue, 24 Mar 2015 21:59:19 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS; Tue, 24 Mar 2015 21:59:28 +0100 (CET)
Received: from localhost (demetrius4.jacobs-university.de [212.201.44.49]) by hermes.jacobs-university.de (Postfix) with ESMTP id 6E44B2002B; Tue, 24 Mar 2015 21:59:28 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius4.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id VYA7ihydlqCX; Tue, 24 Mar 2015 21:59:27 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id 4552120013; Tue, 24 Mar 2015 21:59:27 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id C91523281A4D; Tue, 24 Mar 2015 21:59:25 +0100 (CET)
Date: Tue, 24 Mar 2015 21:59:24 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: "Acee Lindem (acee)" <acee@cisco.com>
Message-ID: <20150324205924.GA61096@elstar.local>
Mail-Followup-To: "Acee Lindem (acee)" <acee@cisco.com>, "netmod@ietf.org" <netmod@ietf.org>
References: <D1372853.134B6%acee@cisco.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
X-Clacks-Overhead: GNU Terry Pratchett
Content-Transfer-Encoding: 8bit
In-Reply-To: <D1372853.134B6%acee@cisco.com>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/SEgBPpXTwROBgyHmT_I3GtYNGFg>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] Access Control List Ordering
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
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: <http://www.ietf.org/mail-archive/web/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: Tue, 24 Mar 2015 20:59:36 -0000

Acee,

can you please check the document? It says in several places that this
is an ordered list. It will help to work on the document and to find
out what is in the document is unclear.

/js

On Tue, Mar 24, 2015 at 07:54:22PM +0000, Acee Lindem (acee) wrote:
> The point that I didnâ€™t want to belabor in todayâ€™s meeting was that fact that the order of application of ACEs needs to be specified. I can appreciate the fact that ccess-control-list-name is simply a handle to reference a given ACE, e.g. â€œAllow-AS-1135â€. However, since a given ACE entry matches on multiple  packet fields, saying you just â€œmatch on the most specific ACEâ€ doesnâ€™t make sense unless standardize precisely what constitutes the most specific match. Furthermore, I donâ€™t think it should be called an access-list model unless it retains the semantics of matching in a user controlled order (i.e., a sequence).
> 
> Thanks,
> Acee
> 
> From: <Sterne>, "Jason (Jason)" <jason.sterne@alcatel-lucent.com<mailto:jason.sterne@alcatel-lucent.com>>
> Date: Tuesday, March 24, 2015 at 9:54 AM
> To: "netmod@ietf.org<mailto:netmod@ietf.org>" <netmod@ietf.org<mailto:netmod@ietf.org>>
> Subject: [netmod] full access-control-list name vs acl abbreviation in yang model
> 
> In the NETMOD session today there was a proposal to deal with the full â€œaccess-control-listâ€ names for lists & other objects vs â€œaclâ€.
> 
> How about use the full â€œaccess-control-listâ€ at the top container (as was shown Deanâ€™s slides) but then use â€œaclâ€ everywhere inside ?  i.e. instead of â€œaceâ€ how about â€œacl-entryâ€ ?   Once we abbreviate access-control-list to â€œaclâ€ then we can probably leave other words as full words:
> 
>   *   acl-name
>   *   acl-type
>   *   acl-entry
>   *   etc
> 
> 
> Jason
> 

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


-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Tue Mar 24 14:16:14 2015
Return-Path: <acee@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 8D29A1A1A3D for <netmod@ietfa.amsl.com>; Tue, 24 Mar 2015 14:16:11 -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 yrO2KKjlrqQN for <netmod@ietfa.amsl.com>; Tue, 24 Mar 2015 14:16:04 -0700 (PDT)
Received: from alln-iport-2.cisco.com (alln-iport-2.cisco.com [173.37.142.89]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4BD5A1A1A29 for <netmod@ietf.org>; Tue, 24 Mar 2015 14:16:04 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=3754; q=dns/txt; s=iport; t=1427231764; x=1428441364; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=Y5h3b26X5c/ENYHgYoQCsKETWqb4rgKbORKyTY3Ga9g=; b=i1jTEawjJ+PsZdFOH3Qv/ChC5F6F/gig++rETYjrN/6aPRtjgqqL4WHA shYzo74gCaw2I+Q+hT73KxyNOqJTLMM7s/80J6+c5R+DYlnxvYabrP7vX HMT7EpKGSfN3fA624YvN6fth2QVHnzKXQXWBVrMpK6mnHKrvHbioy0vcF I=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0AWBQDr0hFV/4MNJK1ZA4MGUloEgw7DLgqFLEkCHIEqTAEBAQEBAX2EFAEBAQQBAQEgEToLDgICAQgOAgEDAQIBAgIjAwICAhkMCxQBCAgCBA4FiC8NrneaFgEBAQEBAQEBAQEBAQEBAQEBAQEBARcEgR2KAIRDGAsQBwQNgleBRQWQUIYTg1yBG4Mwj2Eig25vgUR/AQEB
X-IronPort-AV: E=Sophos;i="5.11,460,1422921600"; d="scan'208";a="135056714"
Received: from alln-core-1.cisco.com ([173.36.13.131]) by alln-iport-2.cisco.com with ESMTP; 24 Mar 2015 21:16:03 +0000
Received: from xhc-aln-x12.cisco.com (xhc-aln-x12.cisco.com [173.36.12.86]) by alln-core-1.cisco.com (8.14.5/8.14.5) with ESMTP id t2OLG3ra008559 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Tue, 24 Mar 2015 21:16:03 GMT
Received: from xmb-aln-x06.cisco.com ([169.254.1.200]) by xhc-aln-x12.cisco.com ([173.36.12.86]) with mapi id 14.03.0195.001; Tue, 24 Mar 2015 16:16:03 -0500
From: "Acee Lindem (acee)" <acee@cisco.com>
To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
Thread-Topic: [netmod] Access Control List Ordering
Thread-Index: AQHQZnVtFEnXJID4SUqhLEtB13fPPZ0sIo0A
Date: Tue, 24 Mar 2015 21:16:02 +0000
Message-ID: <D1373D6A.134FD%acee@cisco.com>
References: <D1372853.134B6%acee@cisco.com> <20150324205924.GA61096@elstar.local>
In-Reply-To: <20150324205924.GA61096@elstar.local>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [10.24.167.21]
Content-Type: text/plain; charset="utf-8"
Content-ID: <00A2BD5E46752F41BAD8F051626386C2@emea.cisco.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/jzPlWmpGBJWPBD4AKo5a1UpfMXU>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] Access Control List Ordering
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: <http://www.ietf.org/mail-archive/web/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: Tue, 24 Mar 2015 21:16:11 -0000

SnVyZ2VuLA0KVGhlIHBhcnQgSeKAmW0gbWlzc2luZyBpcyBob3cgdGhlIHVzZXIgb3JkZXJzIHRo
ZSBsaXN0IGlmIHRoZXJlIGlzbuKAmXQNCmFueXRoaW5nIGluIHRoZSBBQ0UgdG8gaW5kaWNhdGUg
Z2l2ZSBhIGhpbnQgYXMgdG8gdGhlIG9yZGVyLiBGb3IgZXhhbXBsZSwNCmlmIGEgdXNlciB3YW50
cyB0byBhZGQgQUNFIOKAnGRpc2FsbG93LXRlbG5ldOKAnSBpbiB0aGUgbWlkZGxlIG9mIHRoZSBs
aXN0LA0KaG93IGlzIHRoaXMgYWNjb21wbGlzaGVkIHdpdGhvdXQgcmVzZW5kaW5nIHRoZSB3aG9s
ZSBBQ0wgKG9yIGF0IGxlYXN0IHVwDQp1bnRpbCB0aGUgbmV3IGVudHJ5KSB0byB0aGUgTkVUQ09O
RiBkZXZpY2U/DQoNClRoYW5rcywNCkFjZWUgDQoNCk9uIDMvMjQvMTUsIDM6NTkgUE0sICJKdWVy
Z2VuIFNjaG9lbndhZWxkZXIiDQo8ai5zY2hvZW53YWVsZGVyQGphY29icy11bml2ZXJzaXR5LmRl
PiB3cm90ZToNCg0KPkFjZWUsDQo+DQo+Y2FuIHlvdSBwbGVhc2UgY2hlY2sgdGhlIGRvY3VtZW50
PyBJdCBzYXlzIGluIHNldmVyYWwgcGxhY2VzIHRoYXQgdGhpcw0KPmlzIGFuIG9yZGVyZWQgbGlz
dC4gSXQgd2lsbCBoZWxwIHRvIHdvcmsgb24gdGhlIGRvY3VtZW50IGFuZCB0byBmaW5kDQo+b3V0
IHdoYXQgaXMgaW4gdGhlIGRvY3VtZW50IGlzIHVuY2xlYXIuDQo+DQo+L2pzDQo+DQo+T24gVHVl
LCBNYXIgMjQsIDIwMTUgYXQgMDc6NTQ6MjJQTSArMDAwMCwgQWNlZSBMaW5kZW0gKGFjZWUpIHdy
b3RlOg0KPj4gVGhlIHBvaW50IHRoYXQgSSBkaWRu4oCZdCB3YW50IHRvIGJlbGFib3IgaW4gdG9k
YXnigJlzIG1lZXRpbmcgd2FzIHRoYXQNCj4+ZmFjdCB0aGF0IHRoZSBvcmRlciBvZiBhcHBsaWNh
dGlvbiBvZiBBQ0VzIG5lZWRzIHRvIGJlIHNwZWNpZmllZC4gSSBjYW4NCj4+YXBwcmVjaWF0ZSB0
aGUgZmFjdCB0aGF0IGNjZXNzLWNvbnRyb2wtbGlzdC1uYW1lIGlzIHNpbXBseSBhIGhhbmRsZSB0
bw0KPj5yZWZlcmVuY2UgYSBnaXZlbiBBQ0UsIGUuZy4g4oCcQWxsb3ctQVMtMTEzNeKAnS4gSG93
ZXZlciwgc2luY2UgYSBnaXZlbiBBQ0UNCj4+ZW50cnkgbWF0Y2hlcyBvbiBtdWx0aXBsZSAgcGFj
a2V0IGZpZWxkcywgc2F5aW5nIHlvdSBqdXN0IOKAnG1hdGNoIG9uIHRoZQ0KPj5tb3N0IHNwZWNp
ZmljIEFDReKAnSBkb2VzbuKAmXQgbWFrZSBzZW5zZSB1bmxlc3Mgc3RhbmRhcmRpemUgcHJlY2lz
ZWx5IHdoYXQNCj4+Y29uc3RpdHV0ZXMgdGhlIG1vc3Qgc3BlY2lmaWMgbWF0Y2guIEZ1cnRoZXJt
b3JlLCBJIGRvbuKAmXQgdGhpbmsgaXQNCj4+c2hvdWxkIGJlIGNhbGxlZCBhbiBhY2Nlc3MtbGlz
dCBtb2RlbCB1bmxlc3MgaXQgcmV0YWlucyB0aGUgc2VtYW50aWNzIG9mDQo+Pm1hdGNoaW5nIGlu
IGEgdXNlciBjb250cm9sbGVkIG9yZGVyIChpLmUuLCBhIHNlcXVlbmNlKS4NCj4+IA0KPj4gVGhh
bmtzLA0KPj4gQWNlZQ0KPj4gDQo+PiBGcm9tOiA8U3Rlcm5lPiwgIkphc29uIChKYXNvbikiDQo+
PjxqYXNvbi5zdGVybmVAYWxjYXRlbC1sdWNlbnQuY29tPG1haWx0bzpqYXNvbi5zdGVybmVAYWxj
YXRlbC1sdWNlbnQuY29tPj4NCj4+IERhdGU6IFR1ZXNkYXksIE1hcmNoIDI0LCAyMDE1IGF0IDk6
NTQgQU0NCj4+IFRvOiAibmV0bW9kQGlldGYub3JnPG1haWx0bzpuZXRtb2RAaWV0Zi5vcmc+Ig0K
Pj48bmV0bW9kQGlldGYub3JnPG1haWx0bzpuZXRtb2RAaWV0Zi5vcmc+Pg0KPj4gU3ViamVjdDog
W25ldG1vZF0gZnVsbCBhY2Nlc3MtY29udHJvbC1saXN0IG5hbWUgdnMgYWNsIGFiYnJldmlhdGlv
biBpbg0KPj55YW5nIG1vZGVsDQo+PiANCj4+IEluIHRoZSBORVRNT0Qgc2Vzc2lvbiB0b2RheSB0
aGVyZSB3YXMgYSBwcm9wb3NhbCB0byBkZWFsIHdpdGggdGhlIGZ1bGwNCj4+4oCcYWNjZXNzLWNv
bnRyb2wtbGlzdOKAnSBuYW1lcyBmb3IgbGlzdHMgJiBvdGhlciBvYmplY3RzIHZzIOKAnGFjbOKA
nS4NCj4+IA0KPj4gSG93IGFib3V0IHVzZSB0aGUgZnVsbCDigJxhY2Nlc3MtY29udHJvbC1saXN0
4oCdIGF0IHRoZSB0b3AgY29udGFpbmVyIChhcw0KPj53YXMgc2hvd24gRGVhbuKAmXMgc2xpZGVz
KSBidXQgdGhlbiB1c2Ug4oCcYWNs4oCdIGV2ZXJ5d2hlcmUgaW5zaWRlID8gIGkuZS4NCj4+aW5z
dGVhZCBvZiDigJxhY2XigJ0gaG93IGFib3V0IOKAnGFjbC1lbnRyeeKAnSA/ICAgT25jZSB3ZSBh
YmJyZXZpYXRlDQo+PmFjY2Vzcy1jb250cm9sLWxpc3QgdG8g4oCcYWNs4oCdIHRoZW4gd2UgY2Fu
IHByb2JhYmx5IGxlYXZlIG90aGVyIHdvcmRzIGFzDQo+PmZ1bGwgd29yZHM6DQo+PiANCj4+ICAg
KiAgIGFjbC1uYW1lDQo+PiAgICogICBhY2wtdHlwZQ0KPj4gICAqICAgYWNsLWVudHJ5DQo+PiAg
ICogICBldGMNCj4+IA0KPj4gDQo+PiBKYXNvbg0KPj4gDQo+DQo+PiBfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPj4gbmV0bW9kIG1haWxpbmcgbGlzdA0K
Pj4gbmV0bW9kQGlldGYub3JnDQo+PiBodHRwczovL3d3dy5pZXRmLm9yZy9tYWlsbWFuL2xpc3Rp
bmZvL25ldG1vZA0KPg0KPg0KPi0tIA0KPkp1ZXJnZW4gU2Nob2Vud2FlbGRlciAgICAgICAgICAg
SmFjb2JzIFVuaXZlcnNpdHkgQnJlbWVuIGdHbWJIDQo+UGhvbmU6ICs0OSA0MjEgMjAwIDM1ODcg
ICAgICAgICBDYW1wdXMgUmluZyAxIHwgMjg3NTkgQnJlbWVuIHwgR2VybWFueQ0KPkZheDogICAr
NDkgNDIxIDIwMCAzMTAzICAgICAgICAgPGh0dHA6Ly93d3cuamFjb2JzLXVuaXZlcnNpdHkuZGUv
Pg0KDQo=


From nobody Tue Mar 24 14:21:02 2015
Return-Path: <andy@yumaworks.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 ED1851A19F7 for <netmod@ietfa.amsl.com>; Tue, 24 Mar 2015 14:21:00 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.979
X-Spam-Level: 
X-Spam-Status: No, score=-1.979 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] 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 lYz63tIZoXiz for <netmod@ietfa.amsl.com>; Tue, 24 Mar 2015 14:20:59 -0700 (PDT)
Received: from mail-lb0-f176.google.com (mail-lb0-f176.google.com [209.85.217.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C35A21A0140 for <netmod@ietf.org>; Tue, 24 Mar 2015 14:20:58 -0700 (PDT)
Received: by lbbug6 with SMTP id ug6so4077687lbb.3 for <netmod@ietf.org>; Tue, 24 Mar 2015 14:20:57 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=AJDMcmpAAn5E8injmfpSUXTeu62qbveibyhk6zfVmIs=; b=iNTbYJIRqds2HP5KQzMAxy/wsZSS90Aujzk7v6DklQm+xu30nfPMhmP8IRdY9yK889 BGFUDTCf6dMDX58UKoJLB8eKJzGuuOcgWuKGDa9zz5N70bhY95j7bQwXj/AuUKWgLbii s8xMuY52f4jsJ95xbOQx3wnD6hcgx9eStXOC+x9tydm4DUvcS7d7g6PrNiMNA568WH5S NH0oZ7JRXv5Tt8IEzoGebT3q8dwyvJJJgO80pfDke6e1fzoGVO19tAXvuJOZkk9oYkUy p+XS/rjF29OupwNOyPSYYqc+sOwTWc+KwAZAMWSmgQl1HKVH+IEv3LB/61Vb77WUshLI xlzA==
X-Gm-Message-State: ALoCoQnFYXx7o4WsSo6ztxUR2Whoha6X7HV2tNtKI7oht1Hec721JO3OPfJnPQC6SQwfFo62/g0I
MIME-Version: 1.0
X-Received: by 10.112.141.202 with SMTP id rq10mr5531006lbb.88.1427232057251;  Tue, 24 Mar 2015 14:20:57 -0700 (PDT)
Received: by 10.112.144.36 with HTTP; Tue, 24 Mar 2015 14:20:57 -0700 (PDT)
In-Reply-To: <D1373D6A.134FD%acee@cisco.com>
References: <D1372853.134B6%acee@cisco.com> <20150324205924.GA61096@elstar.local> <D1373D6A.134FD%acee@cisco.com>
Date: Tue, 24 Mar 2015 16:20:57 -0500
Message-ID: <CABCOCHRn-VYrvpY6gYhRGXja4XLXtt5Dy20qUK8UiBFkKL738g@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: "Acee Lindem (acee)" <acee@cisco.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/YUXZHa0ZJ9U1nhI-l9IRx_cIURo>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] Access Control List Ordering
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: <http://www.ietf.org/mail-archive/web/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: Tue, 24 Mar 2015 21:21:01 -0000

On Tue, Mar 24, 2015 at 4:16 PM, Acee Lindem (acee) <acee@cisco.com> wrote:
> Jurgen,
> The part I=E2=80=99m missing is how the user orders the list if there isn=
=E2=80=99t
> anything in the ACE to indicate give a hint as to the order. For example,
> if a user wants to add ACE =E2=80=9Cdisallow-telnet=E2=80=9D in the middl=
e of the list,
> how is this accomplished without resending the whole ACL (or at least up
> until the new entry) to the NETCONF device?
>

The XML document order of the data from the client specifies the
ACE order.   See RFC 6020, sec. 7.7.1 and 7.7.5


> Thanks,
> Acee

Andy

>
> On 3/24/15, 3:59 PM, "Juergen Schoenwaelder"
> <j.schoenwaelder@jacobs-university.de> wrote:
>
>>Acee,
>>
>>can you please check the document? It says in several places that this
>>is an ordered list. It will help to work on the document and to find
>>out what is in the document is unclear.
>>
>>/js
>>
>>On Tue, Mar 24, 2015 at 07:54:22PM +0000, Acee Lindem (acee) wrote:
>>> The point that I didn=E2=80=99t want to belabor in today=E2=80=99s meet=
ing was that
>>>fact that the order of application of ACEs needs to be specified. I can
>>>appreciate the fact that ccess-control-list-name is simply a handle to
>>>reference a given ACE, e.g. =E2=80=9CAllow-AS-1135=E2=80=9D. However, si=
nce a given ACE
>>>entry matches on multiple  packet fields, saying you just =E2=80=9Cmatch=
 on the
>>>most specific ACE=E2=80=9D doesn=E2=80=99t make sense unless standardize=
 precisely what
>>>constitutes the most specific match. Furthermore, I don=E2=80=99t think =
it
>>>should be called an access-list model unless it retains the semantics of
>>>matching in a user controlled order (i.e., a sequence).
>>>
>>> Thanks,
>>> Acee
>>>
>>> From: <Sterne>, "Jason (Jason)"
>>><jason.sterne@alcatel-lucent.com<mailto:jason.sterne@alcatel-lucent.com>=
>
>>> Date: Tuesday, March 24, 2015 at 9:54 AM
>>> To: "netmod@ietf.org<mailto:netmod@ietf.org>"
>>><netmod@ietf.org<mailto:netmod@ietf.org>>
>>> Subject: [netmod] full access-control-list name vs acl abbreviation in
>>>yang model
>>>
>>> In the NETMOD session today there was a proposal to deal with the full
>>>=E2=80=9Caccess-control-list=E2=80=9D names for lists & other objects vs=
 =E2=80=9Cacl=E2=80=9D.
>>>
>>> How about use the full =E2=80=9Caccess-control-list=E2=80=9D at the top=
 container (as
>>>was shown Dean=E2=80=99s slides) but then use =E2=80=9Cacl=E2=80=9D ever=
ywhere inside ?  i.e.
>>>instead of =E2=80=9Cace=E2=80=9D how about =E2=80=9Cacl-entry=E2=80=9D ?=
   Once we abbreviate
>>>access-control-list to =E2=80=9Cacl=E2=80=9D then we can probably leave =
other words as
>>>full words:
>>>
>>>   *   acl-name
>>>   *   acl-type
>>>   *   acl-entry
>>>   *   etc
>>>
>>>
>>> Jason
>>>
>>
>>> _______________________________________________
>>> netmod mailing list
>>> netmod@ietf.org
>>> https://www.ietf.org/mailman/listinfo/netmod
>>
>>
>>--
>>Juergen Schoenwaelder           Jacobs University Bremen gGmbH
>>Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
>>Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>
>
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod


From nobody Tue Mar 24 14:27:47 2015
Return-Path: <rrahman@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 EBAC61A1A29 for <netmod@ietfa.amsl.com>; Tue, 24 Mar 2015 14:27:45 -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 wUWYShx0osix for <netmod@ietfa.amsl.com>; Tue, 24 Mar 2015 14:27:43 -0700 (PDT)
Received: from rcdn-iport-7.cisco.com (rcdn-iport-7.cisco.com [173.37.86.78]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 52AE01A1A32 for <netmod@ietf.org>; Tue, 24 Mar 2015 14:27:34 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=3569; q=dns/txt; s=iport; t=1427232454; x=1428442054; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=USBdU7ikBWeZdp1jtIMq54wGpzws+xa2gDyNarmGjFo=; b=DIo4TtrxOg1v5aCAn4VUzNdZrUWzf0gS4kVdbMacJygwEht0A+qNKKSc MWJeBKKWuhAskCVdztLVd5Rb1Jbr/64uuNbCPU7fG2wqbkXiS0/R2liJN QDpgch8JPB2BqIMHJA6P++IOIHHxvTQVEQQcHYbZkrJAfnBOnjo8K3G2l 4=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0ATBQDA1RFV/4MNJK1ZA4MGUloExjwKhSxJAoFHTAEBAQEBAX2EFAEBAQQBAQFrCw4CAgEIEAEDAQIBJwcbDAsUCQgCBAENBYgvDckSAQEBAQEBAQEBAQEBAQEBAQEBAQEBFwSLHYRDIxAHEYQcBYpjhW2GE4NcgRuDMI9hIoNub4FEfwEBAQ
X-IronPort-AV: E=Sophos;i="5.11,460,1422921600"; d="scan'208";a="406315801"
Received: from alln-core-1.cisco.com ([173.36.13.131]) by rcdn-iport-7.cisco.com with ESMTP; 24 Mar 2015 21:27:33 +0000
Received: from xhc-aln-x10.cisco.com (xhc-aln-x10.cisco.com [173.36.12.84]) by alln-core-1.cisco.com (8.14.5/8.14.5) with ESMTP id t2OLRXw7015345 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Tue, 24 Mar 2015 21:27:33 GMT
Received: from xmb-rcd-x03.cisco.com ([169.254.7.251]) by xhc-aln-x10.cisco.com ([173.36.12.84]) with mapi id 14.03.0195.001; Tue, 24 Mar 2015 16:27:33 -0500
From: "Reshad Rahman (rrahman)" <rrahman@cisco.com>
To: Andy Bierman <andy@yumaworks.com>, "Acee Lindem (acee)" <acee@cisco.com>
Thread-Topic: [netmod] Access Control List Ordering
Thread-Index: AQHQZmxTR2hYU2VwmECHfJwN+qoj0p0scckAgAAEpgCAAAFfgP//rhCA
Date: Tue, 24 Mar 2015 21:27:32 +0000
Message-ID: <D1373FD0.A2FD0%rrahman@cisco.com>
References: <D1372853.134B6%acee@cisco.com> <20150324205924.GA61096@elstar.local> <D1373D6A.134FD%acee@cisco.com> <CABCOCHRn-VYrvpY6gYhRGXja4XLXtt5Dy20qUK8UiBFkKL738g@mail.gmail.com>
In-Reply-To: <CABCOCHRn-VYrvpY6gYhRGXja4XLXtt5Dy20qUK8UiBFkKL738g@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/14.4.8.150116
x-originating-ip: [10.86.246.93]
Content-Type: text/plain; charset="iso-8859-1"
Content-ID: <F53785F954CAFF4CB055EC8F6994607D@emea.cisco.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/Z7jGW7JQhkvWeSHEp_8BAC1_d18>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] Access Control List Ordering
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: <http://www.ietf.org/mail-archive/web/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: Tue, 24 Mar 2015 21:27:46 -0000

Does the insert attribute only for NETCONF or for RESTCONF also?



On 2015-03-24, 4:20 PM, "Andy Bierman" <andy@yumaworks.com> wrote:

>On Tue, Mar 24, 2015 at 4:16 PM, Acee Lindem (acee) <acee@cisco.com>
>wrote:
>> Jurgen,
>> The part I=B9m missing is how the user orders the list if there isn=B9t
>> anything in the ACE to indicate give a hint as to the order. For
>>example,
>> if a user wants to add ACE =B3disallow-telnet=B2 in the middle of the li=
st,
>> how is this accomplished without resending the whole ACL (or at least up
>> until the new entry) to the NETCONF device?
>>
>
>The XML document order of the data from the client specifies the
>ACE order.   See RFC 6020, sec. 7.7.1 and 7.7.5
>
>
>> Thanks,
>> Acee
>
>Andy
>
>>
>> On 3/24/15, 3:59 PM, "Juergen Schoenwaelder"
>> <j.schoenwaelder@jacobs-university.de> wrote:
>>
>>>Acee,
>>>
>>>can you please check the document? It says in several places that this
>>>is an ordered list. It will help to work on the document and to find
>>>out what is in the document is unclear.
>>>
>>>/js
>>>
>>>On Tue, Mar 24, 2015 at 07:54:22PM +0000, Acee Lindem (acee) wrote:
>>>> The point that I didn=B9t want to belabor in today=B9s meeting was tha=
t
>>>>fact that the order of application of ACEs needs to be specified. I can
>>>>appreciate the fact that ccess-control-list-name is simply a handle to
>>>>reference a given ACE, e.g. =B3Allow-AS-1135=B2. However, since a given=
 ACE
>>>>entry matches on multiple  packet fields, saying you just =B3match on t=
he
>>>>most specific ACE=B2 doesn=B9t make sense unless standardize precisely =
what
>>>>constitutes the most specific match. Furthermore, I don=B9t think it
>>>>should be called an access-list model unless it retains the semantics
>>>>of
>>>>matching in a user controlled order (i.e., a sequence).
>>>>
>>>> Thanks,
>>>> Acee
>>>>
>>>> From: <Sterne>, "Jason (Jason)"
>>>><jason.sterne@alcatel-lucent.com<mailto:jason.sterne@alcatel-lucent.com
>>>>>>
>>>> Date: Tuesday, March 24, 2015 at 9:54 AM
>>>> To: "netmod@ietf.org<mailto:netmod@ietf.org>"
>>>><netmod@ietf.org<mailto:netmod@ietf.org>>
>>>> Subject: [netmod] full access-control-list name vs acl abbreviation in
>>>>yang model
>>>>
>>>> In the NETMOD session today there was a proposal to deal with the full
>>>>=B3access-control-list=B2 names for lists & other objects vs =B3acl=B2.
>>>>
>>>> How about use the full =B3access-control-list=B2 at the top container =
(as
>>>>was shown Dean=B9s slides) but then use =B3acl=B2 everywhere inside ?  =
i.e.
>>>>instead of =B3ace=B2 how about =B3acl-entry=B2 ?   Once we abbreviate
>>>>access-control-list to =B3acl=B2 then we can probably leave other words=
 as
>>>>full words:
>>>>
>>>>   *   acl-name
>>>>   *   acl-type
>>>>   *   acl-entry
>>>>   *   etc
>>>>
>>>>
>>>> Jason
>>>>
>>>
>>>> _______________________________________________
>>>> netmod mailing list
>>>> netmod@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/netmod
>>>
>>>
>>>--
>>>Juergen Schoenwaelder           Jacobs University Bremen gGmbH
>>>Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
>>>Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>
>>
>> _______________________________________________
>> netmod mailing list
>> netmod@ietf.org
>> https://www.ietf.org/mailman/listinfo/netmod
>
>_______________________________________________
>netmod mailing list
>netmod@ietf.org
>https://www.ietf.org/mailman/listinfo/netmod


From nobody Tue Mar 24 14:28:49 2015
Return-Path: <j.schoenwaelder@jacobs-university.de>
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 35F8C1A1A19 for <netmod@ietfa.amsl.com>; Tue, 24 Mar 2015 14:28:48 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.86
X-Spam-Level: 
X-Spam-Status: No, score=-3.86 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] 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 KoOVRqz23Irt for <netmod@ietfa.amsl.com>; Tue, 24 Mar 2015 14:28:46 -0700 (PDT)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2C4D91A0404 for <netmod@ietf.org>; Tue, 24 Mar 2015 14:28:46 -0700 (PDT)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id F2D931585; Tue, 24 Mar 2015 22:28:44 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.220]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id gecc6DFlXojO; Tue, 24 Mar 2015 22:28:34 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS; Tue, 24 Mar 2015 22:28:44 +0100 (CET)
Received: from localhost (demetrius3.jacobs-university.de [212.201.44.48]) by hermes.jacobs-university.de (Postfix) with ESMTP id C5A5A2002B; Tue, 24 Mar 2015 22:28:43 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius3.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id E82ZCSuWlcE9; Tue, 24 Mar 2015 22:28:41 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id 5525120013; Tue, 24 Mar 2015 22:28:41 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id 52A7C3281B06; Tue, 24 Mar 2015 22:28:41 +0100 (CET)
Date: Tue, 24 Mar 2015 22:28:41 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: "Acee Lindem (acee)" <acee@cisco.com>
Message-ID: <20150324212841.GB61096@elstar.local>
Mail-Followup-To: "Acee Lindem (acee)" <acee@cisco.com>, "netmod@ietf.org" <netmod@ietf.org>
References: <D1372853.134B6%acee@cisco.com> <20150324205924.GA61096@elstar.local> <D1373D6A.134FD%acee@cisco.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
X-Clacks-Overhead: GNU Terry Pratchett
Content-Transfer-Encoding: 8bit
In-Reply-To: <D1373D6A.134FD%acee@cisco.com>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/Hx6CharkYUuaAAqnvqcJmPMU58Y>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] Access Control List Ordering
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
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: <http://www.ietf.org/mail-archive/web/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: Tue, 24 Mar 2015 21:28:48 -0000

Acee,

for NETCONF, the details how this can be achieved can be found in RFC
6020 section 7.7.7.

/js

On Tue, Mar 24, 2015 at 09:16:02PM +0000, Acee Lindem (acee) wrote:
> Jurgen,
> The part Iâ€™m missing is how the user orders the list if there isnâ€™t
> anything in the ACE to indicate give a hint as to the order. For example,
> if a user wants to add ACE â€œdisallow-telnetâ€ in the middle of the list,
> how is this accomplished without resending the whole ACL (or at least up
> until the new entry) to the NETCONF device?
> 
> Thanks,
> Acee 
> 
> On 3/24/15, 3:59 PM, "Juergen Schoenwaelder"
> <j.schoenwaelder@jacobs-university.de> wrote:
> 
> >Acee,
> >
> >can you please check the document? It says in several places that this
> >is an ordered list. It will help to work on the document and to find
> >out what is in the document is unclear.
> >
> >/js
> >
> >On Tue, Mar 24, 2015 at 07:54:22PM +0000, Acee Lindem (acee) wrote:
> >> The point that I didnâ€™t want to belabor in todayâ€™s meeting was that
> >>fact that the order of application of ACEs needs to be specified. I can
> >>appreciate the fact that ccess-control-list-name is simply a handle to
> >>reference a given ACE, e.g. â€œAllow-AS-1135â€. However, since a given ACE
> >>entry matches on multiple  packet fields, saying you just â€œmatch on the
> >>most specific ACEâ€ doesnâ€™t make sense unless standardize precisely what
> >>constitutes the most specific match. Furthermore, I donâ€™t think it
> >>should be called an access-list model unless it retains the semantics of
> >>matching in a user controlled order (i.e., a sequence).
> >> 
> >> Thanks,
> >> Acee
> >> 
> >> From: <Sterne>, "Jason (Jason)"
> >><jason.sterne@alcatel-lucent.com<mailto:jason.sterne@alcatel-lucent.com>>
> >> Date: Tuesday, March 24, 2015 at 9:54 AM
> >> To: "netmod@ietf.org<mailto:netmod@ietf.org>"
> >><netmod@ietf.org<mailto:netmod@ietf.org>>
> >> Subject: [netmod] full access-control-list name vs acl abbreviation in
> >>yang model
> >> 
> >> In the NETMOD session today there was a proposal to deal with the full
> >>â€œaccess-control-listâ€ names for lists & other objects vs â€œaclâ€.
> >> 
> >> How about use the full â€œaccess-control-listâ€ at the top container (as
> >>was shown Deanâ€™s slides) but then use â€œaclâ€ everywhere inside ?  i.e.
> >>instead of â€œaceâ€ how about â€œacl-entryâ€ ?   Once we abbreviate
> >>access-control-list to â€œaclâ€ then we can probably leave other words as
> >>full words:
> >> 
> >>   *   acl-name
> >>   *   acl-type
> >>   *   acl-entry
> >>   *   etc
> >> 
> >> 
> >> Jason
> >> 
> >
> >> _______________________________________________
> >> netmod mailing list
> >> netmod@ietf.org
> >> https://www.ietf.org/mailman/listinfo/netmod
> >
> >
> >-- 
> >Juergen Schoenwaelder           Jacobs University Bremen gGmbH
> >Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
> >Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>
> 

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Tue Mar 24 14:40:45 2015
Return-Path: <acee@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 95B661A8ADF for <netmod@ietfa.amsl.com>; Tue, 24 Mar 2015 14:40:43 -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 VmqGDlZq20dG for <netmod@ietfa.amsl.com>; Tue, 24 Mar 2015 14:40:41 -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 E2C991A1B25 for <netmod@ietf.org>; Tue, 24 Mar 2015 14:40:40 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=5370; q=dns/txt; s=iport; t=1427233240; x=1428442840; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=K2zGriFAkHfiDEfRbIlib0gDWoV0hdaU3mEtSxVWNEA=; b=dlSHt0MHEBJVwe2PPuqYpmkjaV+YYVf+aXjfi9sz6Uch1ElAzwcPJD/T F8fFPfxmGd2r/1sXd55srfXw7s5N7hBDpn98WWrvgnLkuiwz6qmdFOhK8 CbViy4BuSFQhYBYBC8/R7HwMn3PqlSrW9qQbmMnsk0b/E2r5Yr5zR4AQz I=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0CFBABS2BFV/5tdJa1ZA4MGUloEgw7BYwaBRQqFLEkCHIEsOBQBAQEBAQEBfIQUAQEBBAEBASAROgsOAgIBCA4CAQMBAgECAiMDAgICGQwLFAEICAIEDgWILw2vAZoWAQEBAQEBAQEBAQEBAQEBAQEBAQEBFwSBHYoAhEMYCxAHBA2CV4FFBZBQhhODXIEbgzCPYSKDbm+BRH8BAQE
X-IronPort-AV: E=Sophos;i="5.11,460,1422921600"; d="scan'208";a="135030082"
Received: from rcdn-core-4.cisco.com ([173.37.93.155]) by alln-iport-3.cisco.com with ESMTP; 24 Mar 2015 21:40:40 +0000
Received: from xhc-aln-x09.cisco.com (xhc-aln-x09.cisco.com [173.36.12.83]) by rcdn-core-4.cisco.com (8.14.5/8.14.5) with ESMTP id t2OLed7x005081 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Tue, 24 Mar 2015 21:40:40 GMT
Received: from xmb-aln-x06.cisco.com ([169.254.1.200]) by xhc-aln-x09.cisco.com ([173.36.12.83]) with mapi id 14.03.0195.001; Tue, 24 Mar 2015 16:40:39 -0500
From: "Acee Lindem (acee)" <acee@cisco.com>
To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
Thread-Topic: [netmod] Access Control List Ordering
Thread-Index: AQHQZnVtFEnXJID4SUqhLEtB13fPPZ0sIo0AgABXWID//6+JgA==
Date: Tue, 24 Mar 2015 21:40:38 +0000
Message-ID: <D1374349.13519%acee@cisco.com>
References: <D1372853.134B6%acee@cisco.com> <20150324205924.GA61096@elstar.local> <D1373D6A.134FD%acee@cisco.com> <20150324212841.GB61096@elstar.local>
In-Reply-To: <20150324212841.GB61096@elstar.local>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [10.24.167.21]
Content-Type: text/plain; charset="utf-8"
Content-ID: <E8C70CC80F525946A9142753EA224CDB@emea.cisco.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/9r5dVKFQl8iCD0MBrW46tdhUPcQ>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] Access Control List Ordering
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: <http://www.ietf.org/mail-archive/web/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: Tue, 24 Mar 2015 21:40:43 -0000

SnVlcmdlbiwNCg0KVGhlIHNlbWFudGljcyBjZXJ0YWlubHkgYXJlbuKAmXQgZGVzY3JpYmVkIHZl
cnkgd2VsbCBhcyB5b3UgbmVlZCB0byBpbmZlcg0KdGhlbSBmcm9tIHRoZSBleGFtcGxlOg0KDQog
ICAgICAgICAgICAgICA8c3NoPg0KICAgICAgICAgICAgICAgICA8Y2lwaGVyIG5jOm9wZXJhdGlv
bj0iY3JlYXRlIg0KICAgICAgICAgICAgICAgICAgICAgICAgIHlhbmc6aW5zZXJ0PSJhZnRlciIN
CiAgICAgICAgICAgICAgICAgICAgICAgICB5YW5nOnZhbHVlPSIzZGVzLWNiYyI+Ymxvd2Zpc2gt
Y2JjPC9jaXBoZXI+DQogICAgICAgICAgICAgICA8L3NzaD4NCg0KDQpBcmUgdGhlc2UgZGVzY3Jp
YmVkIGluIGFub3RoZXIgZG9jdW1lbnQ/IEkgZGlkbuKAmXQgZmluZCB0aGVtIHdpdGggYSBzZWFy
Y2gNCm9mIFJGQyA2MjQxLiANCg0KQWNlZSANCg0KDQpPbiAzLzI0LzE1LCA0OjI4IFBNLCAiSnVl
cmdlbiBTY2hvZW53YWVsZGVyIg0KPGouc2Nob2Vud2FlbGRlckBqYWNvYnMtdW5pdmVyc2l0eS5k
ZT4gd3JvdGU6DQoNCj5BY2VlLA0KPg0KPmZvciBORVRDT05GLCB0aGUgZGV0YWlscyBob3cgdGhp
cyBjYW4gYmUgYWNoaWV2ZWQgY2FuIGJlIGZvdW5kIGluIFJGQw0KPjYwMjAgc2VjdGlvbiA3Ljcu
Ny4NCj4NCj4vanMNCj4NCj5PbiBUdWUsIE1hciAyNCwgMjAxNSBhdCAwOToxNjowMlBNICswMDAw
LCBBY2VlIExpbmRlbSAoYWNlZSkgd3JvdGU6DQo+PiBKdXJnZW4sDQo+PiBUaGUgcGFydCBJ4oCZ
bSBtaXNzaW5nIGlzIGhvdyB0aGUgdXNlciBvcmRlcnMgdGhlIGxpc3QgaWYgdGhlcmUgaXNu4oCZ
dA0KPj4gYW55dGhpbmcgaW4gdGhlIEFDRSB0byBpbmRpY2F0ZSBnaXZlIGEgaGludCBhcyB0byB0
aGUgb3JkZXIuIEZvcg0KPj5leGFtcGxlLA0KPj4gaWYgYSB1c2VyIHdhbnRzIHRvIGFkZCBBQ0Ug
4oCcZGlzYWxsb3ctdGVsbmV04oCdIGluIHRoZSBtaWRkbGUgb2YgdGhlIGxpc3QsDQo+PiBob3cg
aXMgdGhpcyBhY2NvbXBsaXNoZWQgd2l0aG91dCByZXNlbmRpbmcgdGhlIHdob2xlIEFDTCAob3Ig
YXQgbGVhc3QgdXANCj4+IHVudGlsIHRoZSBuZXcgZW50cnkpIHRvIHRoZSBORVRDT05GIGRldmlj
ZT8NCj4+IA0KPj4gVGhhbmtzLA0KPj4gQWNlZSANCj4+IA0KPj4gT24gMy8yNC8xNSwgMzo1OSBQ
TSwgIkp1ZXJnZW4gU2Nob2Vud2FlbGRlciINCj4+IDxqLnNjaG9lbndhZWxkZXJAamFjb2JzLXVu
aXZlcnNpdHkuZGU+IHdyb3RlOg0KPj4gDQo+PiA+QWNlZSwNCj4+ID4NCj4+ID5jYW4geW91IHBs
ZWFzZSBjaGVjayB0aGUgZG9jdW1lbnQ/IEl0IHNheXMgaW4gc2V2ZXJhbCBwbGFjZXMgdGhhdCB0
aGlzDQo+PiA+aXMgYW4gb3JkZXJlZCBsaXN0LiBJdCB3aWxsIGhlbHAgdG8gd29yayBvbiB0aGUg
ZG9jdW1lbnQgYW5kIHRvIGZpbmQNCj4+ID5vdXQgd2hhdCBpcyBpbiB0aGUgZG9jdW1lbnQgaXMg
dW5jbGVhci4NCj4+ID4NCj4+ID4vanMNCj4+ID4NCj4+ID5PbiBUdWUsIE1hciAyNCwgMjAxNSBh
dCAwNzo1NDoyMlBNICswMDAwLCBBY2VlIExpbmRlbSAoYWNlZSkgd3JvdGU6DQo+PiA+PiBUaGUg
cG9pbnQgdGhhdCBJIGRpZG7igJl0IHdhbnQgdG8gYmVsYWJvciBpbiB0b2RheeKAmXMgbWVldGlu
ZyB3YXMgdGhhdA0KPj4gPj5mYWN0IHRoYXQgdGhlIG9yZGVyIG9mIGFwcGxpY2F0aW9uIG9mIEFD
RXMgbmVlZHMgdG8gYmUgc3BlY2lmaWVkLiBJDQo+PmNhbg0KPj4gPj5hcHByZWNpYXRlIHRoZSBm
YWN0IHRoYXQgY2Nlc3MtY29udHJvbC1saXN0LW5hbWUgaXMgc2ltcGx5IGEgaGFuZGxlIHRvDQo+
PiA+PnJlZmVyZW5jZSBhIGdpdmVuIEFDRSwgZS5nLiDigJxBbGxvdy1BUy0xMTM14oCdLiBIb3dl
dmVyLCBzaW5jZSBhIGdpdmVuDQo+PkFDRQ0KPj4gPj5lbnRyeSBtYXRjaGVzIG9uIG11bHRpcGxl
ICBwYWNrZXQgZmllbGRzLCBzYXlpbmcgeW91IGp1c3Qg4oCcbWF0Y2ggb24NCj4+dGhlDQo+PiA+
Pm1vc3Qgc3BlY2lmaWMgQUNF4oCdIGRvZXNu4oCZdCBtYWtlIHNlbnNlIHVubGVzcyBzdGFuZGFy
ZGl6ZSBwcmVjaXNlbHkNCj4+d2hhdA0KPj4gPj5jb25zdGl0dXRlcyB0aGUgbW9zdCBzcGVjaWZp
YyBtYXRjaC4gRnVydGhlcm1vcmUsIEkgZG9u4oCZdCB0aGluayBpdA0KPj4gPj5zaG91bGQgYmUg
Y2FsbGVkIGFuIGFjY2Vzcy1saXN0IG1vZGVsIHVubGVzcyBpdCByZXRhaW5zIHRoZSBzZW1hbnRp
Y3MNCj4+b2YNCj4+ID4+bWF0Y2hpbmcgaW4gYSB1c2VyIGNvbnRyb2xsZWQgb3JkZXIgKGkuZS4s
IGEgc2VxdWVuY2UpLg0KPj4gPj4gDQo+PiA+PiBUaGFua3MsDQo+PiA+PiBBY2VlDQo+PiA+PiAN
Cj4+ID4+IEZyb206IDxTdGVybmU+LCAiSmFzb24gKEphc29uKSINCj4+IA0KPj4+PjxqYXNvbi5z
dGVybmVAYWxjYXRlbC1sdWNlbnQuY29tPG1haWx0bzpqYXNvbi5zdGVybmVAYWxjYXRlbC1sdWNl
bnQuY29tDQo+Pj4+Pj4NCj4+ID4+IERhdGU6IFR1ZXNkYXksIE1hcmNoIDI0LCAyMDE1IGF0IDk6
NTQgQU0NCj4+ID4+IFRvOiAibmV0bW9kQGlldGYub3JnPG1haWx0bzpuZXRtb2RAaWV0Zi5vcmc+
Ig0KPj4gPj48bmV0bW9kQGlldGYub3JnPG1haWx0bzpuZXRtb2RAaWV0Zi5vcmc+Pg0KPj4gPj4g
U3ViamVjdDogW25ldG1vZF0gZnVsbCBhY2Nlc3MtY29udHJvbC1saXN0IG5hbWUgdnMgYWNsIGFi
YnJldmlhdGlvbg0KPj5pbg0KPj4gPj55YW5nIG1vZGVsDQo+PiA+PiANCj4+ID4+IEluIHRoZSBO
RVRNT0Qgc2Vzc2lvbiB0b2RheSB0aGVyZSB3YXMgYSBwcm9wb3NhbCB0byBkZWFsIHdpdGggdGhl
DQo+PmZ1bGwNCj4+ID4+4oCcYWNjZXNzLWNvbnRyb2wtbGlzdOKAnSBuYW1lcyBmb3IgbGlzdHMg
JiBvdGhlciBvYmplY3RzIHZzIOKAnGFjbOKAnS4NCj4+ID4+IA0KPj4gPj4gSG93IGFib3V0IHVz
ZSB0aGUgZnVsbCDigJxhY2Nlc3MtY29udHJvbC1saXN04oCdIGF0IHRoZSB0b3AgY29udGFpbmVy
IChhcw0KPj4gPj53YXMgc2hvd24gRGVhbuKAmXMgc2xpZGVzKSBidXQgdGhlbiB1c2Ug4oCcYWNs
4oCdIGV2ZXJ5d2hlcmUgaW5zaWRlID8gIGkuZS4NCj4+ID4+aW5zdGVhZCBvZiDigJxhY2XigJ0g
aG93IGFib3V0IOKAnGFjbC1lbnRyeeKAnSA/ICAgT25jZSB3ZSBhYmJyZXZpYXRlDQo+PiA+PmFj
Y2Vzcy1jb250cm9sLWxpc3QgdG8g4oCcYWNs4oCdIHRoZW4gd2UgY2FuIHByb2JhYmx5IGxlYXZl
IG90aGVyIHdvcmRzIGFzDQo+PiA+PmZ1bGwgd29yZHM6DQo+PiA+PiANCj4+ID4+ICAgKiAgIGFj
bC1uYW1lDQo+PiA+PiAgICogICBhY2wtdHlwZQ0KPj4gPj4gICAqICAgYWNsLWVudHJ5DQo+PiA+
PiAgICogICBldGMNCj4+ID4+IA0KPj4gPj4gDQo+PiA+PiBKYXNvbg0KPj4gPj4gDQo+PiA+DQo+
PiA+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPj4g
Pj4gbmV0bW9kIG1haWxpbmcgbGlzdA0KPj4gPj4gbmV0bW9kQGlldGYub3JnDQo+PiA+PiBodHRw
czovL3d3dy5pZXRmLm9yZy9tYWlsbWFuL2xpc3RpbmZvL25ldG1vZA0KPj4gPg0KPj4gPg0KPj4g
Pi0tIA0KPj4gPkp1ZXJnZW4gU2Nob2Vud2FlbGRlciAgICAgICAgICAgSmFjb2JzIFVuaXZlcnNp
dHkgQnJlbWVuIGdHbWJIDQo+PiA+UGhvbmU6ICs0OSA0MjEgMjAwIDM1ODcgICAgICAgICBDYW1w
dXMgUmluZyAxIHwgMjg3NTkgQnJlbWVuIHwgR2VybWFueQ0KPj4gPkZheDogICArNDkgNDIxIDIw
MCAzMTAzICAgICAgICAgPGh0dHA6Ly93d3cuamFjb2JzLXVuaXZlcnNpdHkuZGUvPg0KPj4gDQo+
DQo+LS0gDQo+SnVlcmdlbiBTY2hvZW53YWVsZGVyICAgICAgICAgICBKYWNvYnMgVW5pdmVyc2l0
eSBCcmVtZW4gZ0dtYkgNCj5QaG9uZTogKzQ5IDQyMSAyMDAgMzU4NyAgICAgICAgIENhbXB1cyBS
aW5nIDEgfCAyODc1OSBCcmVtZW4gfCBHZXJtYW55DQo+RmF4OiAgICs0OSA0MjEgMjAwIDMxMDMg
ICAgICAgICA8aHR0cDovL3d3dy5qYWNvYnMtdW5pdmVyc2l0eS5kZS8+DQoNCg==


From nobody Tue Mar 24 14:50:57 2015
Return-Path: <jason.sterne@alcatel-lucent.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 777011AC41B for <netmod@ietfa.amsl.com>; Tue, 24 Mar 2015 14:50:56 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.91
X-Spam-Level: 
X-Spam-Status: No, score=-6.91 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, T_RP_MATCHES_RCVD=-0.01] 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 er0ca1WUZlhc for <netmod@ietfa.amsl.com>; Tue, 24 Mar 2015 14:50:54 -0700 (PDT)
Received: from smtp-fr.alcatel-lucent.com (fr-hpida-esg-02.alcatel-lucent.com [135.245.210.21]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 07F1D1A8ADF for <netmod@ietf.org>; Tue, 24 Mar 2015 14:50:54 -0700 (PDT)
Received: from us70uusmtp3.zam.alcatel-lucent.com (unknown [135.5.2.65]) by Websense Email Security Gateway with ESMTPS id B73FC7B32EFA; Tue, 24 Mar 2015 21:50:47 +0000 (GMT)
Received: from US70TWXCHHUB04.zam.alcatel-lucent.com (us70twxchhub04.zam.alcatel-lucent.com [135.5.2.36]) by us70uusmtp3.zam.alcatel-lucent.com (GMO) with ESMTP id t2OLooRd008145 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Tue, 24 Mar 2015 17:50:50 -0400
Received: from US70TWXCHMBA11.zam.alcatel-lucent.com ([169.254.5.170]) by US70TWXCHHUB04.zam.alcatel-lucent.com ([135.5.2.36]) with mapi id 14.03.0195.001; Tue, 24 Mar 2015 17:50:50 -0400
From: "Sterne, Jason (Jason)" <jason.sterne@alcatel-lucent.com>
To: Andy Bierman <andy@yumaworks.com>, "Acee Lindem (acee)" <acee@cisco.com>
Thread-Topic: [netmod] Access Control List Ordering
Thread-Index: AQHQZnVoj2WSOQuQ4UyjZc+5fKmQnJ0sZZkAgAABYID//73dQA==
Date: Tue, 24 Mar 2015 21:50:49 +0000
Message-ID: <A125E53CE190A749957C19483DC79F9F5C9E144B@US70TWXCHMBA11.zam.alcatel-lucent.com>
References: <D1372853.134B6%acee@cisco.com> <20150324205924.GA61096@elstar.local> <D1373D6A.134FD%acee@cisco.com> <CABCOCHRn-VYrvpY6gYhRGXja4XLXtt5Dy20qUK8UiBFkKL738g@mail.gmail.com>
In-Reply-To: <CABCOCHRn-VYrvpY6gYhRGXja4XLXtt5Dy20qUK8UiBFkKL738g@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [135.5.27.18]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/nmRD1iyo6Q7Te2IvLttffZsYoZM>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] Access Control List Ordering
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: <http://www.ietf.org/mail-archive/web/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: Tue, 24 Mar 2015 21:50:56 -0000

SGkgZ3V5cywNCg0KSSB0aGluayB0aGVyZSB3YXMgc29tZSBjb25mdXNpb24gaW4gdGhlIG1lZXRp
bmcgd2l0aCBzdGF0ZW1lbnRzIGFib3V0IG1hdGNoaW5nIGEgIm1vcmUgc3BlY2lmaWMgQUNFIi4g
IEknbSBmYWlybHkgY2VydGFpbiB0aGF0IG1vc3QgKGFsbCkgdmVuZG9ycyBhZ3JlZSB0aGF0IEFD
THMgYXJlIGFuIG9yZGVyZWQgbGlzdCBhbmQgdGhlIG5vZGUgdHJpZXMgdG8gbWF0Y2ggYWdhaW5z
dCBlYWNoIGFjbC1lbnRyeSBpbiBvcmRlciB1bnRpbCBpdCBmaW5kcyBhIG1hdGNoIGFuZCB0aGVu
IHN0b3BzIHRoZXJlLiAgDQoNCk5FVENPTkYgY2FuIG1hbmFnZSBvcmRlcmVkIGxpc3RzIHdpdGhv
dXQgYSBzZXF1ZW5jZSBudW1iZXIuICBTZWN0aW9ucyA3LjcuMSBhbmQgNy43LjUgYXJlIGFjdHVh
bGx5IGZvciBsZWFmLWxpc3RzIGJ1dCB0aGVyZSBhcmUgc2ltaWxhciBzZWN0aW9ucyBmb3IgbGlz
dHMuICAgSGVyZSBpcyBhbiBleGFtcGxlIGZyb20gdGhlIFJGQyBvZiBhZGRpbmcgc29tZXRoaW5n
IHRvIHRoZSBtaWRkbGUgb2YgYSBsaXN0Og0KICAgICAgICAgICAgICAgICAgIHlhbmc6aW5zZXJ0
PSJhZnRlciINCiAgICAgICAgICAgICAgICAgICB5YW5nOmtleT0iW2V4Om5hbWU9J2ZyZWQnXSI+
DQoNCkkgZG8gbGlrZSB0aGUgYWJpbGl0eSB0byBhcmJpdHJhcmlseSBpbnNlcnQgYW4gZW50cnkg
YW55d2hlcmUgaW4gYW4gQUNMIHdpdGhvdXQgaGF2aW5nIHRvIGxlYXZlIHNwYWNlIGluIGJldHdl
ZW4gYWNsIGVudHJpZXMgYnV0IG9uIHRoZSBvdGhlciBoYW5kIEknbSBub3QgYSBmYW4gb2YgdXNp
bmcgdGhlIGltcGxpY2l0IG9yZGVyIHRoYXQgYWNsLWVudHJpZXMgYXJyaXZlIGluIGF0IHRoZSBz
ZXJ2ZXIgdG8gZGV0ZXJtaW5lIHRoZSBvcmRlci4gV2hlbiB0aGUgb3JkZXIgaXMgbW9yZSBleHBs
aWNpdCBmcm9tIHRoZSBrZXkgKGUuZy4gdXNpbmcgYSBudW1iZXIgaW5zdGVhZCBvZiBhIHN0cmlu
ZykgaXQgaXMgZWFzaWVyIHRvIHVuZGVyc3RhbmQgJiB1c2UuIFVzaW5nIHNlcXVlbmNlIG51bWJl
cmluZyBhcyBhIGtleSBtZWFucyB5b3Ugc29tZXRpbWVzIHJ1biBvdXQgb2Ygc3BhY2UgYmV0d2Vl
biB0d28gZW50cmllcyBidXQgb3BlcmF0b3JzIGFyZSBwcmV0dHkgdXNlZCB0byBtYW5hZ2luZyB0
aGF0IChsZWF2aW5nIHNwYWNlcyBpbiB0aGUgbnVtYmVyaW5nLCBldGMpLiAgQW4gUlBDIGNvdWxk
IGJlIHVzZWQgdG8gYWRkIHJlbnVtYmVyaW5nIHR5cGUgb3BlcmF0aW9ucyB0byBmcmVlIHVwIHNw
YWNlLg0KDQpNYXliZSBpdCBpc27igJl0IGEgcHJpb3JpdHkgZm9yIHNvbWUgc3lzdGVtcyBidXQg
SSBhbHNvIHdvbmRlciBob3cgU05NUCB3b3VsZCByZXByZXNlbnQgb3JkZXJlZCBhY2wtZW50cmll
cyBpZiB0aGVyZSBpc24ndCBhIHNlcXVlbmNlIG51bWJlciB0aGF0IGNhbiBiZSB1c2VkIGFzIChh
dCBsZWFzdCBwYXJ0IG9mKSB0aGUga2V5Lg0KDQpSZWdhcmRzLA0KSmFzb24NCg0KDQotLS0tLU9y
aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogbmV0bW9kIFttYWlsdG86bmV0bW9kLWJvdW5jZXNA
aWV0Zi5vcmddIE9uIEJlaGFsZiBPZiBBbmR5IEJpZXJtYW4NClNlbnQ6IFR1ZXNkYXksIE1hcmNo
IDI0LCAyMDE1IDQ6MjEgUE0NClRvOiBBY2VlIExpbmRlbSAoYWNlZSkNCkNjOiBuZXRtb2RAaWV0
Zi5vcmcNClN1YmplY3Q6IFJlOiBbbmV0bW9kXSBBY2Nlc3MgQ29udHJvbCBMaXN0IE9yZGVyaW5n
DQoNCk9uIFR1ZSwgTWFyIDI0LCAyMDE1IGF0IDQ6MTYgUE0sIEFjZWUgTGluZGVtIChhY2VlKSA8
YWNlZUBjaXNjby5jb20+IHdyb3RlOg0KPiBKdXJnZW4sDQo+IFRoZSBwYXJ0IEnigJltIG1pc3Np
bmcgaXMgaG93IHRoZSB1c2VyIG9yZGVycyB0aGUgbGlzdCBpZiB0aGVyZSBpc27igJl0IA0KPiBh
bnl0aGluZyBpbiB0aGUgQUNFIHRvIGluZGljYXRlIGdpdmUgYSBoaW50IGFzIHRvIHRoZSBvcmRl
ci4gRm9yIA0KPiBleGFtcGxlLCBpZiBhIHVzZXIgd2FudHMgdG8gYWRkIEFDRSDigJxkaXNhbGxv
dy10ZWxuZXTigJ0gaW4gdGhlIG1pZGRsZSBvZiANCj4gdGhlIGxpc3QsIGhvdyBpcyB0aGlzIGFj
Y29tcGxpc2hlZCB3aXRob3V0IHJlc2VuZGluZyB0aGUgd2hvbGUgQUNMIChvciANCj4gYXQgbGVh
c3QgdXAgdW50aWwgdGhlIG5ldyBlbnRyeSkgdG8gdGhlIE5FVENPTkYgZGV2aWNlPw0KPg0KDQpU
aGUgWE1MIGRvY3VtZW50IG9yZGVyIG9mIHRoZSBkYXRhIGZyb20gdGhlIGNsaWVudCBzcGVjaWZp
ZXMgdGhlDQpBQ0Ugb3JkZXIuICAgU2VlIFJGQyA2MDIwLCBzZWMuIDcuNy4xIGFuZCA3LjcuNQ0K
DQoNCj4gVGhhbmtzLA0KPiBBY2VlDQoNCkFuZHkNCg0KPg0KPiBPbiAzLzI0LzE1LCAzOjU5IFBN
LCAiSnVlcmdlbiBTY2hvZW53YWVsZGVyIg0KPiA8ai5zY2hvZW53YWVsZGVyQGphY29icy11bml2
ZXJzaXR5LmRlPiB3cm90ZToNCj4NCj4+QWNlZSwNCj4+DQo+PmNhbiB5b3UgcGxlYXNlIGNoZWNr
IHRoZSBkb2N1bWVudD8gSXQgc2F5cyBpbiBzZXZlcmFsIHBsYWNlcyB0aGF0IHRoaXMgDQo+Pmlz
IGFuIG9yZGVyZWQgbGlzdC4gSXQgd2lsbCBoZWxwIHRvIHdvcmsgb24gdGhlIGRvY3VtZW50IGFu
ZCB0byBmaW5kIA0KPj5vdXQgd2hhdCBpcyBpbiB0aGUgZG9jdW1lbnQgaXMgdW5jbGVhci4NCj4+
DQo+Pi9qcw0KPj4NCj4+T24gVHVlLCBNYXIgMjQsIDIwMTUgYXQgMDc6NTQ6MjJQTSArMDAwMCwg
QWNlZSBMaW5kZW0gKGFjZWUpIHdyb3RlOg0KPj4+IFRoZSBwb2ludCB0aGF0IEkgZGlkbuKAmXQg
d2FudCB0byBiZWxhYm9yIGluIHRvZGF54oCZcyBtZWV0aW5nIHdhcyB0aGF0IA0KPj4+ZmFjdCB0
aGF0IHRoZSBvcmRlciBvZiBhcHBsaWNhdGlvbiBvZiBBQ0VzIG5lZWRzIHRvIGJlIHNwZWNpZmll
ZC4gSSANCj4+PmNhbiBhcHByZWNpYXRlIHRoZSBmYWN0IHRoYXQgY2Nlc3MtY29udHJvbC1saXN0
LW5hbWUgaXMgc2ltcGx5IGEgDQo+Pj5oYW5kbGUgdG8gcmVmZXJlbmNlIGEgZ2l2ZW4gQUNFLCBl
LmcuIOKAnEFsbG93LUFTLTExMzXigJ0uIEhvd2V2ZXIsIHNpbmNlIA0KPj4+YSBnaXZlbiBBQ0Ug
ZW50cnkgbWF0Y2hlcyBvbiBtdWx0aXBsZSAgcGFja2V0IGZpZWxkcywgc2F5aW5nIHlvdSBqdXN0
IA0KPj4+4oCcbWF0Y2ggb24gdGhlIG1vc3Qgc3BlY2lmaWMgQUNF4oCdIGRvZXNu4oCZdCBtYWtl
IHNlbnNlIHVubGVzcyANCj4+PnN0YW5kYXJkaXplIHByZWNpc2VseSB3aGF0IGNvbnN0aXR1dGVz
IHRoZSBtb3N0IHNwZWNpZmljIG1hdGNoLiANCj4+PkZ1cnRoZXJtb3JlLCBJIGRvbuKAmXQgdGhp
bmsgaXQgc2hvdWxkIGJlIGNhbGxlZCBhbiBhY2Nlc3MtbGlzdCBtb2RlbCANCj4+PnVubGVzcyBp
dCByZXRhaW5zIHRoZSBzZW1hbnRpY3Mgb2YgbWF0Y2hpbmcgaW4gYSB1c2VyIGNvbnRyb2xsZWQg
b3JkZXIgKGkuZS4sIGEgc2VxdWVuY2UpLg0KPj4+DQo+Pj4gVGhhbmtzLA0KPj4+IEFjZWUNCj4+
Pg0KPj4+IEZyb206IDxTdGVybmU+LCAiSmFzb24gKEphc29uKSINCj4+PjxqYXNvbi5zdGVybmVA
YWxjYXRlbC1sdWNlbnQuY29tPG1haWx0bzpqYXNvbi5zdGVybmVAYWxjYXRlbC1sdWNlbnQuYw0K
Pj4+b20+Pg0KPj4+IERhdGU6IFR1ZXNkYXksIE1hcmNoIDI0LCAyMDE1IGF0IDk6NTQgQU0NCj4+
PiBUbzogIm5ldG1vZEBpZXRmLm9yZzxtYWlsdG86bmV0bW9kQGlldGYub3JnPiINCj4+PjxuZXRt
b2RAaWV0Zi5vcmc8bWFpbHRvOm5ldG1vZEBpZXRmLm9yZz4+DQo+Pj4gU3ViamVjdDogW25ldG1v
ZF0gZnVsbCBhY2Nlc3MtY29udHJvbC1saXN0IG5hbWUgdnMgYWNsIGFiYnJldmlhdGlvbiANCj4+
PmluIHlhbmcgbW9kZWwNCj4+Pg0KPj4+IEluIHRoZSBORVRNT0Qgc2Vzc2lvbiB0b2RheSB0aGVy
ZSB3YXMgYSBwcm9wb3NhbCB0byBkZWFsIHdpdGggdGhlIA0KPj4+ZnVsbCDigJxhY2Nlc3MtY29u
dHJvbC1saXN04oCdIG5hbWVzIGZvciBsaXN0cyAmIG90aGVyIG9iamVjdHMgdnMg4oCcYWNs4oCd
Lg0KPj4+DQo+Pj4gSG93IGFib3V0IHVzZSB0aGUgZnVsbCDigJxhY2Nlc3MtY29udHJvbC1saXN0
4oCdIGF0IHRoZSB0b3AgY29udGFpbmVyIA0KPj4+KGFzIHdhcyBzaG93biBEZWFu4oCZcyBzbGlk
ZXMpIGJ1dCB0aGVuIHVzZSDigJxhY2zigJ0gZXZlcnl3aGVyZSBpbnNpZGUgPyAgaS5lLg0KPj4+
aW5zdGVhZCBvZiDigJxhY2XigJ0gaG93IGFib3V0IOKAnGFjbC1lbnRyeeKAnSA/ICAgT25jZSB3
ZSBhYmJyZXZpYXRlDQo+Pj5hY2Nlc3MtY29udHJvbC1saXN0IHRvIOKAnGFjbOKAnSB0aGVuIHdl
IGNhbiBwcm9iYWJseSBsZWF2ZSBvdGhlciB3b3JkcyANCj4+PmFzIGZ1bGwgd29yZHM6DQo+Pj4N
Cj4+PiAgICogICBhY2wtbmFtZQ0KPj4+ICAgKiAgIGFjbC10eXBlDQo+Pj4gICAqICAgYWNsLWVu
dHJ5DQo+Pj4gICAqICAgZXRjDQo+Pj4NCj4+Pg0KPj4+IEphc29uDQo+Pj4NCj4+DQo+Pj4gX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4+PiBuZXRtb2Qg
bWFpbGluZyBsaXN0DQo+Pj4gbmV0bW9kQGlldGYub3JnDQo+Pj4gaHR0cHM6Ly93d3cuaWV0Zi5v
cmcvbWFpbG1hbi9saXN0aW5mby9uZXRtb2QNCj4+DQo+Pg0KPj4tLQ0KPj5KdWVyZ2VuIFNjaG9l
bndhZWxkZXIgICAgICAgICAgIEphY29icyBVbml2ZXJzaXR5IEJyZW1lbiBnR21iSA0KPj5QaG9u
ZTogKzQ5IDQyMSAyMDAgMzU4NyAgICAgICAgIENhbXB1cyBSaW5nIDEgfCAyODc1OSBCcmVtZW4g
fCBHZXJtYW55DQo+PkZheDogICArNDkgNDIxIDIwMCAzMTAzICAgICAgICAgPGh0dHA6Ly93d3cu
amFjb2JzLXVuaXZlcnNpdHkuZGUvPg0KPg0KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fXw0KPiBuZXRtb2QgbWFpbGluZyBsaXN0DQo+IG5ldG1vZEBpZXRm
Lm9yZw0KPiBodHRwczovL3d3dy5pZXRmLm9yZy9tYWlsbWFuL2xpc3RpbmZvL25ldG1vZA0KDQpf
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KbmV0bW9kIG1h
aWxpbmcgbGlzdA0KbmV0bW9kQGlldGYub3JnDQpodHRwczovL3d3dy5pZXRmLm9yZy9tYWlsbWFu
L2xpc3RpbmZvL25ldG1vZA0K


From nobody Tue Mar 24 14:58:32 2015
Return-Path: <andy@yumaworks.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 E53C11A1B84 for <netmod@ietfa.amsl.com>; Tue, 24 Mar 2015 14:58:31 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.979
X-Spam-Level: 
X-Spam-Status: No, score=-1.979 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] 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 Rrie5kFi0T6e for <netmod@ietfa.amsl.com>; Tue, 24 Mar 2015 14:58:29 -0700 (PDT)
Received: from mail-la0-f52.google.com (mail-la0-f52.google.com [209.85.215.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C76DB1A8ADF for <netmod@ietf.org>; Tue, 24 Mar 2015 14:58:27 -0700 (PDT)
Received: by lagg8 with SMTP id g8so5317050lag.1 for <netmod@ietf.org>; Tue, 24 Mar 2015 14:58:26 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=mbJkJdgqfL2To4z4vDTyOYDUZB4om2fzKmmqcNTqvXQ=; b=QsSIto9UU1d4fEu5GXo25J8CRuJcth8Z1+GlxIIxmwdfUDLvt+sMCoS9EUCSIDLhfN QvXDPsK/U3+MAOCYFGHSlysPj8ouNgZW4ofd+e0BhLmdNyv0QnJGAtcsRCJ1+oIxzGyc 25CL/os+AJ0s5GqtTyAoEMG7IQe2FswCFgWKbJba/Pk3OsBP5f+Lg0/32Yt6Z1ojtk+Y tfx4UhOhrCLGiMHXZJ6UuSXbExPgoWFxyWwVyl97uWmjlrP7lXrS12jQeyxCJiWAUHOy YN7E1yZQ1Bb4j+viOk+YHPJAOoiA6m137YLk+n+RkEzszF1CcUqWUZohXTG+z23o25Ge 8PGQ==
X-Gm-Message-State: ALoCoQnd0RFsVXRdsS2+rUzCjv0kGyfHa13aHh790R4AMutBPFUn6KwTMO5BY3bLYkP4pQEhlYw4
MIME-Version: 1.0
X-Received: by 10.152.243.4 with SMTP id wu4mr5604760lac.33.1427234306108; Tue, 24 Mar 2015 14:58:26 -0700 (PDT)
Received: by 10.112.144.36 with HTTP; Tue, 24 Mar 2015 14:58:26 -0700 (PDT)
In-Reply-To: <A125E53CE190A749957C19483DC79F9F5C9E144B@US70TWXCHMBA11.zam.alcatel-lucent.com>
References: <D1372853.134B6%acee@cisco.com> <20150324205924.GA61096@elstar.local> <D1373D6A.134FD%acee@cisco.com> <CABCOCHRn-VYrvpY6gYhRGXja4XLXtt5Dy20qUK8UiBFkKL738g@mail.gmail.com> <A125E53CE190A749957C19483DC79F9F5C9E144B@US70TWXCHMBA11.zam.alcatel-lucent.com>
Date: Tue, 24 Mar 2015 16:58:26 -0500
Message-ID: <CABCOCHR-X9GqRqzWHPWqzCE3MbwLfAPX2khH=dapMU_Q8WvzNQ@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: "Sterne, Jason (Jason)" <jason.sterne@alcatel-lucent.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/0Yd0cUbFU2G-r0VSs2ydbAvjbQA>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] Access Control List Ordering
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: <http://www.ietf.org/mail-archive/web/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: Tue, 24 Mar 2015 21:58:32 -0000

On Tue, Mar 24, 2015 at 4:50 PM, Sterne, Jason (Jason)
<jason.sterne@alcatel-lucent.com> wrote:
> Hi guys,
>
> I think there was some confusion in the meeting with statements about mat=
ching a "more specific ACE".  I'm fairly certain that most (all) vendors ag=
ree that ACLs are an ordered list and the node tries to match against each =
acl-entry in order until it finds a match and then stops there.
>
> NETCONF can manage ordered lists without a sequence number.  Sections 7.7=
.1 and 7.7.5 are actually for leaf-lists but there are similar sections for=
 lists.   Here is an example from the RFC of adding something to the middle=
 of a list:
>                    yang:insert=3D"after"
>                    yang:key=3D"[ex:name=3D'fred']">
>
> I do like the ability to arbitrarily insert an entry anywhere in an ACL w=
ithout having to leave space in between acl entries but on the other hand I=
'm not a fan of using the implicit order that acl-entries arrive in at the =
server to determine the order. When the order is more explicit from the key=
 (e.g. using a number instead of a string) it is easier to understand & use=
. Using sequence numbering as a key means you sometimes run out of space be=
tween two entries but operators are pretty used to managing that (leaving s=
paces in the numbering, etc).  An RPC could be used to add renumbering type=
 operations to free up space.
>
> Maybe it isn=E2=80=99t a priority for some systems but I also wonder how =
SNMP would represent ordered acl-entries if there isn't a sequence number t=
hat can be used as (at least part of) the key.
>

User-ordered lists are YANG-specific.
I advice against using them if you want multiple protocols
like SNMP and CLI to work with the data.


> Regards,
> Jason
>


Andy

>
> -----Original Message-----
> From: netmod [mailto:netmod-bounces@ietf.org] On Behalf Of Andy Bierman
> Sent: Tuesday, March 24, 2015 4:21 PM
> To: Acee Lindem (acee)
> Cc: netmod@ietf.org
> Subject: Re: [netmod] Access Control List Ordering
>
> On Tue, Mar 24, 2015 at 4:16 PM, Acee Lindem (acee) <acee@cisco.com> wrot=
e:
>> Jurgen,
>> The part I=E2=80=99m missing is how the user orders the list if there is=
n=E2=80=99t
>> anything in the ACE to indicate give a hint as to the order. For
>> example, if a user wants to add ACE =E2=80=9Cdisallow-telnet=E2=80=9D in=
 the middle of
>> the list, how is this accomplished without resending the whole ACL (or
>> at least up until the new entry) to the NETCONF device?
>>
>
> The XML document order of the data from the client specifies the
> ACE order.   See RFC 6020, sec. 7.7.1 and 7.7.5
>
>
>> Thanks,
>> Acee
>
> Andy
>
>>
>> On 3/24/15, 3:59 PM, "Juergen Schoenwaelder"
>> <j.schoenwaelder@jacobs-university.de> wrote:
>>
>>>Acee,
>>>
>>>can you please check the document? It says in several places that this
>>>is an ordered list. It will help to work on the document and to find
>>>out what is in the document is unclear.
>>>
>>>/js
>>>
>>>On Tue, Mar 24, 2015 at 07:54:22PM +0000, Acee Lindem (acee) wrote:
>>>> The point that I didn=E2=80=99t want to belabor in today=E2=80=99s mee=
ting was that
>>>>fact that the order of application of ACEs needs to be specified. I
>>>>can appreciate the fact that ccess-control-list-name is simply a
>>>>handle to reference a given ACE, e.g. =E2=80=9CAllow-AS-1135=E2=80=9D. =
However, since
>>>>a given ACE entry matches on multiple  packet fields, saying you just
>>>>=E2=80=9Cmatch on the most specific ACE=E2=80=9D doesn=E2=80=99t make s=
ense unless
>>>>standardize precisely what constitutes the most specific match.
>>>>Furthermore, I don=E2=80=99t think it should be called an access-list m=
odel
>>>>unless it retains the semantics of matching in a user controlled order =
(i.e., a sequence).
>>>>
>>>> Thanks,
>>>> Acee
>>>>
>>>> From: <Sterne>, "Jason (Jason)"
>>>><jason.sterne@alcatel-lucent.com<mailto:jason.sterne@alcatel-lucent.c
>>>>om>>
>>>> Date: Tuesday, March 24, 2015 at 9:54 AM
>>>> To: "netmod@ietf.org<mailto:netmod@ietf.org>"
>>>><netmod@ietf.org<mailto:netmod@ietf.org>>
>>>> Subject: [netmod] full access-control-list name vs acl abbreviation
>>>>in yang model
>>>>
>>>> In the NETMOD session today there was a proposal to deal with the
>>>>full =E2=80=9Caccess-control-list=E2=80=9D names for lists & other obje=
cts vs =E2=80=9Cacl=E2=80=9D.
>>>>
>>>> How about use the full =E2=80=9Caccess-control-list=E2=80=9D at the to=
p container
>>>>(as was shown Dean=E2=80=99s slides) but then use =E2=80=9Cacl=E2=80=9D=
 everywhere inside ?  i.e.
>>>>instead of =E2=80=9Cace=E2=80=9D how about =E2=80=9Cacl-entry=E2=80=9D =
?   Once we abbreviate
>>>>access-control-list to =E2=80=9Cacl=E2=80=9D then we can probably leave=
 other words
>>>>as full words:
>>>>
>>>>   *   acl-name
>>>>   *   acl-type
>>>>   *   acl-entry
>>>>   *   etc
>>>>
>>>>
>>>> Jason
>>>>
>>>
>>>> _______________________________________________
>>>> netmod mailing list
>>>> netmod@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/netmod
>>>
>>>
>>>--
>>>Juergen Schoenwaelder           Jacobs University Bremen gGmbH
>>>Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
>>>Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>
>>
>> _______________________________________________
>> netmod mailing list
>> netmod@ietf.org
>> https://www.ietf.org/mailman/listinfo/netmod
>
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod


From nobody Tue Mar 24 15:06:12 2015
Return-Path: <j.schoenwaelder@jacobs-university.de>
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 25CBA1ACC91 for <netmod@ietfa.amsl.com>; Tue, 24 Mar 2015 15:06:02 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.86
X-Spam-Level: 
X-Spam-Status: No, score=-3.86 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] 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 nTWqqIp7c9Ci for <netmod@ietfa.amsl.com>; Tue, 24 Mar 2015 15:06:00 -0700 (PDT)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id CF1B21A9007 for <netmod@ietf.org>; Tue, 24 Mar 2015 15:05:24 -0700 (PDT)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id 986638B7; Tue, 24 Mar 2015 23:05:23 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.220]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id kmR0Zl2I55Ul; Tue, 24 Mar 2015 23:05:12 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS; Tue, 24 Mar 2015 23:05:22 +0100 (CET)
Received: from localhost (demetrius4.jacobs-university.de [212.201.44.49]) by hermes.jacobs-university.de (Postfix) with ESMTP id 33CEA2002B; Tue, 24 Mar 2015 23:05:22 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius4.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id Z96UPKG_Fd8m; Tue, 24 Mar 2015 23:05:21 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id A0BA920013; Tue, 24 Mar 2015 23:05:20 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id DCC213281B69; Tue, 24 Mar 2015 23:05:19 +0100 (CET)
Date: Tue, 24 Mar 2015 23:05:19 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: "Acee Lindem (acee)" <acee@cisco.com>
Message-ID: <20150324220519.GC61096@elstar.local>
Mail-Followup-To: "Acee Lindem (acee)" <acee@cisco.com>, "netmod@ietf.org" <netmod@ietf.org>
References: <D1372853.134B6%acee@cisco.com> <20150324205924.GA61096@elstar.local> <D1373D6A.134FD%acee@cisco.com> <20150324212841.GB61096@elstar.local> <D1374349.13519%acee@cisco.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
X-Clacks-Overhead: GNU Terry Pratchett
Content-Transfer-Encoding: 8bit
In-Reply-To: <D1374349.13519%acee@cisco.com>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/PdXmMjjphvXG8pOZgGK3fod-FIk>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] Access Control List Ordering
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
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: <http://www.ietf.org/mail-archive/web/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: Tue, 24 Mar 2015 22:06:02 -0000

The relevant text is in RFC 6020 section 7.7.7. (The reason for this
is history; ordered-by-user came along with YANG after NETCONF was
done.) The text may not be perfect but there surely is more than an
example:

   The "insert" attribute can take the values "first", "last", "before",
   and "after".  If the value is "before" or "after", the "value"
   attribute MUST also be used to specify an existing entry in the leaf-
   list.

And there is more text around this. Perhaps we need to improve things
but for sure there is more than an example.

Anyway, bottom line is that NETCONF and insert and delete in an
ordered-by-user list.

/js

On Tue, Mar 24, 2015 at 09:40:38PM +0000, Acee Lindem (acee) wrote:
> Juergen,
> 
> The semantics certainly arenâ€™t described very well as you need to infer
> them from the example:
> 
>                <ssh>
>                  <cipher nc:operation="create"
>                          yang:insert="after"
>                          yang:value="3des-cbc">blowfish-cbc</cipher>
>                </ssh>
> 
> 
> Are these described in another document? I didnâ€™t find them with a search
> of RFC 6241. 
> 
> Acee 
> 
> 
> On 3/24/15, 4:28 PM, "Juergen Schoenwaelder"
> <j.schoenwaelder@jacobs-university.de> wrote:
> 
> >Acee,
> >
> >for NETCONF, the details how this can be achieved can be found in RFC
> >6020 section 7.7.7.
> >
> >/js
> >
> >On Tue, Mar 24, 2015 at 09:16:02PM +0000, Acee Lindem (acee) wrote:
> >> Jurgen,
> >> The part Iâ€™m missing is how the user orders the list if there isnâ€™t
> >> anything in the ACE to indicate give a hint as to the order. For
> >>example,
> >> if a user wants to add ACE â€œdisallow-telnetâ€ in the middle of the list,
> >> how is this accomplished without resending the whole ACL (or at least up
> >> until the new entry) to the NETCONF device?
> >> 
> >> Thanks,
> >> Acee 
> >> 
> >> On 3/24/15, 3:59 PM, "Juergen Schoenwaelder"
> >> <j.schoenwaelder@jacobs-university.de> wrote:
> >> 
> >> >Acee,
> >> >
> >> >can you please check the document? It says in several places that this
> >> >is an ordered list. It will help to work on the document and to find
> >> >out what is in the document is unclear.
> >> >
> >> >/js
> >> >
> >> >On Tue, Mar 24, 2015 at 07:54:22PM +0000, Acee Lindem (acee) wrote:
> >> >> The point that I didnâ€™t want to belabor in todayâ€™s meeting was that
> >> >>fact that the order of application of ACEs needs to be specified. I
> >>can
> >> >>appreciate the fact that ccess-control-list-name is simply a handle to
> >> >>reference a given ACE, e.g. â€œAllow-AS-1135â€. However, since a given
> >>ACE
> >> >>entry matches on multiple  packet fields, saying you just â€œmatch on
> >>the
> >> >>most specific ACEâ€ doesnâ€™t make sense unless standardize precisely
> >>what
> >> >>constitutes the most specific match. Furthermore, I donâ€™t think it
> >> >>should be called an access-list model unless it retains the semantics
> >>of
> >> >>matching in a user controlled order (i.e., a sequence).
> >> >> 
> >> >> Thanks,
> >> >> Acee
> >> >> 
> >> >> From: <Sterne>, "Jason (Jason)"
> >> 
> >>>><jason.sterne@alcatel-lucent.com<mailto:jason.sterne@alcatel-lucent.com
> >>>>>>
> >> >> Date: Tuesday, March 24, 2015 at 9:54 AM
> >> >> To: "netmod@ietf.org<mailto:netmod@ietf.org>"
> >> >><netmod@ietf.org<mailto:netmod@ietf.org>>
> >> >> Subject: [netmod] full access-control-list name vs acl abbreviation
> >>in
> >> >>yang model
> >> >> 
> >> >> In the NETMOD session today there was a proposal to deal with the
> >>full
> >> >>â€œaccess-control-listâ€ names for lists & other objects vs â€œaclâ€.
> >> >> 
> >> >> How about use the full â€œaccess-control-listâ€ at the top container (as
> >> >>was shown Deanâ€™s slides) but then use â€œaclâ€ everywhere inside ?  i.e.
> >> >>instead of â€œaceâ€ how about â€œacl-entryâ€ ?   Once we abbreviate
> >> >>access-control-list to â€œaclâ€ then we can probably leave other words as
> >> >>full words:
> >> >> 
> >> >>   *   acl-name
> >> >>   *   acl-type
> >> >>   *   acl-entry
> >> >>   *   etc
> >> >> 
> >> >> 
> >> >> Jason
> >> >> 
> >> >
> >> >> _______________________________________________
> >> >> netmod mailing list
> >> >> netmod@ietf.org
> >> >> https://www.ietf.org/mailman/listinfo/netmod
> >> >
> >> >
> >> >-- 
> >> >Juergen Schoenwaelder           Jacobs University Bremen gGmbH
> >> >Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
> >> >Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>
> >> 
> >
> >-- 
> >Juergen Schoenwaelder           Jacobs University Bremen gGmbH
> >Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
> >Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>
> 

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Tue Mar 24 15:06:52 2015
Return-Path: <lhotka@nic.cz>
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 188471A1B2B for <netmod@ietfa.amsl.com>; Tue, 24 Mar 2015 15:06:50 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.661
X-Spam-Level: 
X-Spam-Status: No, score=-0.661 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HELO_EQ_CZ=0.445, HOST_EQ_CZ=0.904, T_RP_MATCHES_RCVD=-0.01] autolearn=no
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 LoIattmqYZYZ for <netmod@ietfa.amsl.com>; Tue, 24 Mar 2015 15:06:49 -0700 (PDT)
Received: from mail.nic.cz (mail.nic.cz [IPv6:2001:1488:800:400::400]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5ED4E1A9007 for <netmod@ietf.org>; Tue, 24 Mar 2015 15:06:04 -0700 (PDT)
Received: from [IPv6:2001:67c:370:176:c104:9aed:c1d3:6d5c] (unknown [IPv6:2001:67c:370:176:c104:9aed:c1d3:6d5c]) by mail.nic.cz (Postfix) with ESMTPSA id 8A197140A57; Tue, 24 Mar 2015 23:06:02 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=nic.cz; s=default; t=1427234763; bh=+6l1XXlt3jdir3El9UDga0BAlwzavbi9eEe5yarNpbE=; h=Content-Type:Mime-Version:Subject:From:In-Reply-To:Date:Cc: Content-Transfer-Encoding:Message-Id:References:To; b=F8yJVfnDrVMaALq/OZKqp/9SG6yWAjLgYL7P9DMRuguM1hzcOtRVI7N0YRRjQf3ga dcposRIxLUGDq8wa3yTW+pDKY8uoJ6qWl9DPWDyd7ReAjLCVzCz5CIaZyNtZxF/Grr dCh4v6+EqwEmt99lC5uLXZo+xL0tKQnrzbxlXBwM=
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2070.6\))
From: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <C228B44F-70B2-4D5B-8E33-35FFD6877363@juniper.net>
Date: Tue, 24 Mar 2015 17:06:00 -0500
Content-Transfer-Encoding: quoted-printable
Message-Id: <7C613E3C-B2F2-4FB9-95C6-8BE2E3F05256@nic.cz>
References: <m2wq2d83an.fsf@birdie.labs.nic.cz> <C228B44F-70B2-4D5B-8E33-35FFD6877363@juniper.net>
To: Dean Bogdanovic <deanb@juniper.net>
X-Mailer: Apple Mail (2.2070.6)
X-Virus-Scanned: clamav-milter 0.98.6 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/O2BHekjSHTNd31zKkhqPoBJ8sq4>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] ACL example and module issues
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: <http://www.ietf.org/mail-archive/web/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: Tue, 24 Mar 2015 22:06:50 -0000

> On 23 Mar 2015, at 11:08, Dean Bogdanovic <deanb@juniper.net> wrote:
>=20
> Lada,
>=20
> Please see inline
> On Mar 19, 2015, at 10:33 AM, Ladislav Lhotka <lhotka@nic.cz> wrote:
>=20
>> Hi,
>>=20
>> I tried to validate the example in the acl-model draft against the
>> ietf-acl module and found several issues with this example:
>>=20
>> - As Martin pointed out in his review, the example contains several
>> trivial errors, in particular the XML namespaces are completely =
wrong.
>=20
> fixed
>>=20
>> - Such an example probably shouldn't be an <edit-config> message, a
>> reply to <get-config> makes more sense here.
>=20
> Why is that? Will an xml response help here?

I think what you want to show here is the datastore content, and for =
that a reply to <get-config> is more appropriate. It is also used this =
way in other NETMOD drafts and RFCs.

> <?xml version=3D"1.0" encoding=3D"UTF-8"?>
>  <rpc-reply message-id=3D"101"
> xmlns=3D"urn:ietf:params:xml:ns:netconf:base:1.0">
>    <ok/>
>  </rpc-reply>
>=20
>>=20
>> - The data model contains no <top> element, it was probably copied by
>> mistake from an example in RFC 6241.
> fixed
>>=20
>> - Elements <destination-ipv4-address> and <source-ipv4-address> =
should
>> in fact be <destination-ipv4-network> and <source-ipv4-network>,
>> respectively.
> fixed
>>=20
>> After correcting the above validity problems I ran into the =
following,
>> which is most likely a data model issue:
>>=20
>> - Containers "source-port-range" and "destination-port-range" are =
both
>> mandatory because the child leaf "lower-port" in each is mandatory. I
>> think this wasn't intended. One solution would be to make both of =
them
>> containers with presence.
>=20
> actually we have fixed that by removing 'must' statement from the =
lower-port leaf and with upper-port leaf having=20
>      must ". >=3D ../lower-port" {
> makes ports not mandatory.

I=E2=80=99d suggest to do all three:

- define both port ranges as containers with presence,

- make lower-port mandatory, and

- include that must statement.

I think this conveys the intentions in a clear way.

Lada

>>=20
>> BTW, my GitHub project YANG-I-D is intended to aid the development of =
an
>> I-D along with a set of YANG modules described therein, and it also
>> provides a make target for validating examples. It would discover all
>> the problems above.
>>=20
>> https://github.com/llhotka/YANG-I-D
>=20
> thanks for the good tool.
>>=20
>> Lada
>> --=20
>> Ladislav Lhotka, CZ.NIC Labs
>> PGP Key ID: E74E8C0C
>>=20
>> _______________________________________________
>> netmod mailing list
>> netmod@ietf.org
>> https://www.ietf.org/mailman/listinfo/netmod
>=20

--
Ladislav Lhotka, CZ.NIC Labs
PGP Key ID: E74E8C0C





From nobody Wed Mar 25 06:02:47 2015
Return-Path: <j.schoenwaelder@jacobs-university.de>
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 772951ACEAE for <netmod@ietfa.amsl.com>; Wed, 25 Mar 2015 06:02:45 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.86
X-Spam-Level: 
X-Spam-Status: No, score=-3.86 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] 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 J-OJewQfYHgi for <netmod@ietfa.amsl.com>; Wed, 25 Mar 2015 06:02:39 -0700 (PDT)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 03D151ACEC1 for <netmod@ietf.org>; Wed, 25 Mar 2015 06:02:39 -0700 (PDT)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id 4BF611695; Wed, 25 Mar 2015 14:02:37 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.220]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id CY2DuXlzSupP; Wed, 25 Mar 2015 14:02:22 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS; Wed, 25 Mar 2015 14:02:33 +0100 (CET)
Received: from localhost (demetrius4.jacobs-university.de [212.201.44.49]) by hermes.jacobs-university.de (Postfix) with ESMTP id 29EF320051; Wed, 25 Mar 2015 14:02:31 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius4.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id rE51dAfWGaRm; Wed, 25 Mar 2015 14:02:30 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id 740B82003F; Wed, 25 Mar 2015 14:02:29 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id 850FC32824D7; Wed, 25 Mar 2015 14:02:28 +0100 (CET)
Date: Wed, 25 Mar 2015 14:02:27 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Kent Watsen <kwatsen@juniper.net>
Message-ID: <20150325130227.GA65279@elstar.local>
Mail-Followup-To: Kent Watsen <kwatsen@juniper.net>, Martin Bjorklund <mbj@tail-f.com>, Phil Shafer <phil@juniper.net>, "netmod@ietf.org" <netmod@ietf.org>
References: <20150323.193523.1779915941155278856.mbj@tail-f.com> <201503240048.t2O0m7bM010865@idle.juniper.net> <20150323.195604.161046968449760172.mbj@tail-f.com> <D136EF6A.9B42F%kwatsen@juniper.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <D136EF6A.9B42F%kwatsen@juniper.net>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/PVim4l5pGWW8Toof5frZWZ9T2iY>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] Y12: initialized-by system
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
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: <http://www.ietf.org/mail-archive/web/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: Wed, 25 Mar 2015 13:02:45 -0000

On Tue, Mar 24, 2015 at 03:12:21PM +0000, Kent Watsen wrote:
> 
> Adding to Phil's comment, we tried to do something like this a fews years
> back - we called it implicit-changes.  We created three solutions trying
> to address the issue:
> 
>   1) putting markup into the data-model describing conditions
>      that would cause implicit changes  (similar to Y12)
> 
>   2) have the device return an roc-error of type warning for
>      when any implicit changes occurred, returning an optional
>      list of xpaths to the nodes that changed
> 
>   3) have the NETCONF client fetch the entire config after each
>      update, on the off-chance that an impact change occurred.
>

Another option could be to generate a nc:netconf-config-change
notification. Of course, this requires that clients pay attention to
these notification (but if they really want to always be in sync, I
guess they better do anyway).

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Wed Mar 25 06:03:30 2015
Return-Path: <j.schoenwaelder@jacobs-university.de>
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 E36981ACECE for <netmod@ietfa.amsl.com>; Wed, 25 Mar 2015 06:03:28 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.86
X-Spam-Level: 
X-Spam-Status: No, score=-3.86 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] 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 pwL99p4oPWdG for <netmod@ietfa.amsl.com>; Wed, 25 Mar 2015 06:03:24 -0700 (PDT)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 27B191ACEC4 for <netmod@ietf.org>; Wed, 25 Mar 2015 06:03:24 -0700 (PDT)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id EFC16151A; Wed, 25 Mar 2015 14:03:22 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.220]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id rAoOrJzm3pWd; Wed, 25 Mar 2015 14:03:08 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS; Wed, 25 Mar 2015 14:03:22 +0100 (CET)
Received: from localhost (demetrius1.jacobs-university.de [212.201.44.46]) by hermes.jacobs-university.de (Postfix) with ESMTP id 4060B2002B; Wed, 25 Mar 2015 14:03:22 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius1.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id b3_4UNKHxddY; Wed, 25 Mar 2015 14:03:21 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id D363C20013; Wed, 25 Mar 2015 14:03:20 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id D702B32824EB; Wed, 25 Mar 2015 14:03:20 +0100 (CET)
Date: Wed, 25 Mar 2015 14:03:20 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Martin Bjorklund <mbj@tail-f.com>
Message-ID: <20150325130320.GB65279@elstar.local>
Mail-Followup-To: Martin Bjorklund <mbj@tail-f.com>, netmod@ietf.org
References: <20150323.193523.1779915941155278856.mbj@tail-f.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20150323.193523.1779915941155278856.mbj@tail-f.com>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/ptTowSZFjgGUqKa8pkqd1U2QIMM>
Cc: netmod@ietf.org
Subject: Re: [netmod] Y12: initialized-by system
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
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: <http://www.ietf.org/mail-archive/web/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: Wed, 25 Mar 2015 13:03:29 -0000

On Mon, Mar 23, 2015 at 07:35:23PM -0500, Martin Bjorklund wrote:
> Hi,
> 
> The issue Y12 is in EDIT state.  But looking at the edits and thinking
> some more, I am having second thoughts.  I don't think we should add
> this new statement, and the issue should be moved to DEAD.
> 
> The idea behind this statement is to be able to catch situations where
> the device will initialize some leaf when a parent list/container is
> created.  By having this marked in the data model, a client knows that
> this is happening, and can theoretically react accordingly.
> 
> The first observation is that this rarely happens.
> 
> The second observation is that this new statement solves only parts of
> this (rare) problem.  For example, there are cases where the device
> will modify the value that is being written to a leaf (e.g., changing
> a clear text password into a hashed or encrypted value).  At the YANG
> editing session yesterday, it was mentioned that a certain device
> would initialize not just a leaf, but a nested list instance when the
> parent node is created.
> 
> So, for these reasons, I suggest we do not add this new statement.

Anybody against Martin's proposal to move this to DEAD?

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Wed Mar 25 06:54:49 2015
Return-Path: <lhotka@nic.cz>
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 DC0F51A066B for <netmod@ietfa.amsl.com>; Wed, 25 Mar 2015 06:54:48 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.661
X-Spam-Level: 
X-Spam-Status: No, score=-0.661 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HELO_EQ_CZ=0.445, HOST_EQ_CZ=0.904, T_RP_MATCHES_RCVD=-0.01] autolearn=no
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 TZWe36flbtzo for <netmod@ietfa.amsl.com>; Wed, 25 Mar 2015 06:54:47 -0700 (PDT)
Received: from mail.nic.cz (mail.nic.cz [IPv6:2001:1488:800:400::400]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6597C1A0406 for <netmod@ietf.org>; Wed, 25 Mar 2015 06:54:47 -0700 (PDT)
Received: from [IPv6:2001:67c:370:136:a015:4011:d36a:77a5] (unknown [IPv6:2001:67c:370:136:a015:4011:d36a:77a5]) by mail.nic.cz (Postfix) with ESMTPSA id 522EF140AE4; Wed, 25 Mar 2015 14:54:45 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=nic.cz; s=default; t=1427291685; bh=PpE+cPsibIrJkufv1Ne15v6LP4LuyiS3rRqofaFplGQ=; h=Content-Type:Mime-Version:Subject:From:In-Reply-To:Date:Cc: Content-Transfer-Encoding:Message-Id:References:To; b=oyuNt0UwNzpttqJdX0fWUWejiFoe9QSkT+TXJi3VTK90pcIuWpJgOrm6lOv5b5/X0 ioywf8vR2MN+g35xlKQ2Lb3fEVwh4vA9T8m+g/Oi9hI7CTupMlsO3+BHATcIohwmOT ctWt9qdPMiL4Rnlweh9pp2fgEPO5uWMFNabRV0rc=
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2070.6\))
From: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <D1372FCC.12BE2%lyihuang@juniper.net>
Date: Wed, 25 Mar 2015 08:54:44 -0500
Content-Transfer-Encoding: quoted-printable
Message-Id: <2D091D26-7ACE-42FF-B789-881175595977@nic.cz>
References: <m2wq2d83an.fsf@birdie.labs.nic.cz> <C228B44F-70B2-4D5B-8E33-35FFD6877363@juniper.net> <7C613E3C-B2F2-4FB9-95C6-8BE2E3F05256@nic.cz> <D1372FCC.12BE2%lyihuang@juniper.net>
To: "Lisa (Yi) Huang" <lyihuang@juniper.net>
X-Mailer: Apple Mail (2.2070.6)
X-Virus-Scanned: clamav-milter 0.98.6 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/AHQFBXSq27gKrQ11td0iEelVmyg>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] ACL example and module issues
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: <http://www.ietf.org/mail-archive/web/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: Wed, 25 Mar 2015 13:54:49 -0000

> On 24 Mar 2015, at 17:17, Lisa (Yi) Huang <lyihuang@juniper.net> =
wrote:
>=20
>=20
>=20
> On 3/24/15, 3:06 PM, "Ladislav Lhotka" <lhotka@nic.cz> wrote:
>=20
>>=20
>>> On 23 Mar 2015, at 11:08, Dean Bogdanovic <deanb@juniper.net> wrote:
>>>=20
>>> Lada,
>>>=20
>>> Please see inline
>>> On Mar 19, 2015, at 10:33 AM, Ladislav Lhotka <lhotka@nic.cz> wrote:
>>>=20
>>>> Hi,
>>>>=20
>>>> I tried to validate the example in the acl-model draft against the
>>>> ietf-acl module and found several issues with this example:
>>>>=20
>>>> - As Martin pointed out in his review, the example contains several
>>>> trivial errors, in particular the XML namespaces are completely =
wrong.
>>>=20
>>> fixed
>>>>=20
>>>> - Such an example probably shouldn't be an <edit-config> message, a
>>>> reply to <get-config> makes more sense here.
>>>=20
>>> Why is that? Will an xml response help here?
>>=20
>> I think what you want to show here is the datastore content, and for =
that
>> a reply to <get-config> is more appropriate. It is also used this way =
in
>> other NETMOD drafts and RFCs.
>=20
> We intend to show <edit-config>. What make you think get-config was =
the
> intension? Want to find out so we could add descriptions to avoid the
> confusion.

Validity constraints for <edit-config> are much weaker, for example =
nodes that are defined as mandatory in the data model needn=E2=80=99t be =
present in an <edit-config> (mostly).

Moreover, the =E2=80=9Ctarget=E2=80=9D parameter just adds noise and =
obfuscates the data content, which is what you probably want to =
demonstrate.

Lada

--
Ladislav Lhotka, CZ.NIC Labs
PGP Key ID: E74E8C0C





From nobody Wed Mar 25 07:00:28 2015
Return-Path: <andy@yumaworks.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 EBFF21AD0B8 for <netmod@ietfa.amsl.com>; Wed, 25 Mar 2015 07:00:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.979
X-Spam-Level: 
X-Spam-Status: No, score=-1.979 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] 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 soYNdkXTgsiX for <netmod@ietfa.amsl.com>; Wed, 25 Mar 2015 07:00:20 -0700 (PDT)
Received: from mail-lb0-f173.google.com (mail-lb0-f173.google.com [209.85.217.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9CA881AD0AB for <netmod@ietf.org>; Wed, 25 Mar 2015 07:00:19 -0700 (PDT)
Received: by lbbug6 with SMTP id ug6so18146071lbb.3 for <netmod@ietf.org>; Wed, 25 Mar 2015 07:00:18 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:date:message-id:subject:from:to :content-type; bh=hsyhhBGAdylrOfAa1OSn7TpOS+DM+/hLbs/h10oUEfs=; b=gJjmiUhvwoa3pN7jxnfL5xPC1cP1uFuR3L3s2bNOwVvKd7VAjxeCb/liL1xglmCjMG CIpMZxFp8cn0Xmxm37x5I8RqRbLci2m8fNucsnaZiVkXqTVTnFPB4bZSUsSiGvJ9rMIb dGj71osL5ptUl/pRhRL9q7B8XwBON4ETNrVjuBK0G93BJrJYDL8N3wzAmxT5Af8mZdSy KtD+g/zj0wn4z8FpSD5F4Q9c9CK2ufpPQkGHOmL3tFGHd01SnGfA0tOhCrqTS9fJ7Nh6 X9wcNweKTXYEU7NCM31ial0CIb2owN4Oo62gY+z1jk5mmvoojwIydzOXw0vuQaz2o5S6 BSfg==
X-Gm-Message-State: ALoCoQnbW2d45llJoB5mwSQk+b440FXU5FhI5tpydB7Zqt85+ueqAd7W2ssTr5idQs4kKYoFhcPU
MIME-Version: 1.0
X-Received: by 10.113.4.105 with SMTP id cd9mr7455297lbd.38.1427292018147; Wed, 25 Mar 2015 07:00:18 -0700 (PDT)
Received: by 10.112.144.36 with HTTP; Wed, 25 Mar 2015 07:00:18 -0700 (PDT)
Date: Wed, 25 Mar 2015 09:00:18 -0500
Message-ID: <CABCOCHSXXiuR4pf+anJHWCotDXb8q6z0d+iGNfHsKabdbrtgCw@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: "netmod@ietf.org" <netmod@ietf.org>
Content-Type: text/plain; charset=UTF-8
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/uA8XujwJAo3D-s-UA8yGd8hZyaQ>
Subject: [netmod] Y60: YANG 1.0 coexistence
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: <http://www.ietf.org/mail-archive/web/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: Wed, 25 Mar 2015 14:00:28 -0000

Hi,

I think this new section should provide a complete summary of every
change to the language from 1.0 to 1.1, with examples.  This will
help developers and designers a great deal, because trying to
identify all the changes by diffing RFC 6020 is nearly impossible.


Andy


From nobody Wed Mar 25 07:22:03 2015
Return-Path: <mbj@tail-f.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 7F1361A032D for <netmod@ietfa.amsl.com>; Wed, 25 Mar 2015 07:22:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.91
X-Spam-Level: 
X-Spam-Status: No, score=-1.91 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, T_RP_MATCHES_RCVD=-0.01] 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 chK_ReNwv_8a for <netmod@ietfa.amsl.com>; Wed, 25 Mar 2015 07:22:00 -0700 (PDT)
Received: from mail.tail-f.com (mail.tail-f.com [83.241.162.140]) by ietfa.amsl.com (Postfix) with ESMTP id 0A7651AD2AF for <netmod@ietf.org>; Wed, 25 Mar 2015 07:21:59 -0700 (PDT)
Received: from localhost (dhcp-a1fb.meeting.ietf.org [31.133.161.251]) by mail.tail-f.com (Postfix) with ESMTPSA id 344CE12809A8; Wed, 25 Mar 2015 15:21:57 +0100 (CET)
Date: Wed, 25 Mar 2015 09:21:55 -0500 (CDT)
Message-Id: <20150325.092155.2077607063597838180.mbj@tail-f.com>
To: andy@yumaworks.com
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <CABCOCHSXXiuR4pf+anJHWCotDXb8q6z0d+iGNfHsKabdbrtgCw@mail.gmail.com>
References: <CABCOCHSXXiuR4pf+anJHWCotDXb8q6z0d+iGNfHsKabdbrtgCw@mail.gmail.com>
X-Mailer: Mew version 6.5 on Emacs 24.3 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/6A_t0hhjzvuimzKfG2fXWGVQXb8>
Cc: netmod@ietf.org
Subject: Re: [netmod] Y60: YANG 1.0 coexistence
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: <http://www.ietf.org/mail-archive/web/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: Wed, 25 Mar 2015 14:22:01 -0000

Andy Bierman <andy@yumaworks.com> wrote:
> Hi,
> 
> I think this new section should provide a complete summary of every
> change to the language from 1.0 to 1.1, with examples.  This will
> help developers and designers a great deal, because trying to
> identify all the changes by diffing RFC 6020 is nearly impossible.

There is already a section called "Summary of Changes from RFC 6020".
It can certainly be improved.


/martin


From nobody Wed Mar 25 07:52:35 2015
Return-Path: <phil@juniper.net>
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 C6BDA1A1B2A for <netmod@ietfa.amsl.com>; Wed, 25 Mar 2015 07:52:34 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.902
X-Spam-Level: 
X-Spam-Status: No, score=-1.902 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] 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 cHVc1VeflJE0 for <netmod@ietfa.amsl.com>; Wed, 25 Mar 2015 07:52:32 -0700 (PDT)
Received: from na01-by2-obe.outbound.protection.outlook.com (mail-by2on0120.outbound.protection.outlook.com [207.46.100.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 8450C1A8759 for <netmod@ietf.org>; Wed, 25 Mar 2015 07:52:20 -0700 (PDT)
Received: from DM2PR05MB800.namprd05.prod.outlook.com (10.141.180.26) by DM2PR05MB382.namprd05.prod.outlook.com (10.141.101.146) with Microsoft SMTP Server (TLS) id 15.1.118.21; Wed, 25 Mar 2015 14:52:19 +0000
Received: from BL2PR05CA0043.namprd05.prod.outlook.com (10.255.226.43) by DM2PR05MB800.namprd05.prod.outlook.com (10.141.180.26) with Microsoft SMTP Server (TLS) id 15.1.118.21; Wed, 25 Mar 2015 14:52:17 +0000
Received: from BY2FFO11FD026.protection.gbl (2a01:111:f400:7c0c::173) by BL2PR05CA0043.outlook.office365.com (2a01:111:e400:c04::43) with Microsoft SMTP Server (TLS) id 15.1.118.21 via Frontend Transport; Wed, 25 Mar 2015 14:52:16 +0000
Received: from P-EMF03-SAC.jnpr.net ([66.129.239.17]) by BY2FFO11FD026.mail.protection.outlook.com ([10.1.15.215]) with Microsoft SMTP Server (TLS) id 15.1.130.10 via Frontend Transport; Wed, 25 Mar 2015 14:52:16 +0000
Received: from magenta.juniper.net (172.17.27.123) by P-EMF03-SAC.jnpr.net (172.24.192.21) with Microsoft SMTP Server (TLS) id 14.3.146.0; Wed, 25 Mar 2015 07:51:41 -0700
Received: from idle.juniper.net (idleski.juniper.net [172.25.4.26])	by magenta.juniper.net (8.11.3/8.11.3) with ESMTP id t2PEpeD14369;	Wed, 25 Mar 2015 07:51:40 -0700 (PDT)	(envelope-from phil@juniper.net)
Received: from idle.juniper.net (localhost [127.0.0.1])	by idle.juniper.net (8.14.4/8.14.3) with ESMTP id t2PEojSY034820; Wed, 25 Mar 2015 10:50:45 -0400 (EDT)	(envelope-from phil@idle.juniper.net)
Message-ID: <201503251450.t2PEojSY034820@idle.juniper.net>
To: Andy Bierman <andy@yumaworks.com>
In-Reply-To: <CABCOCHSXXiuR4pf+anJHWCotDXb8q6z0d+iGNfHsKabdbrtgCw@mail.gmail.com>
Date: Wed, 25 Mar 2015 10:50:45 -0400
From: Phil Shafer <phil@juniper.net>
MIME-Version: 1.0
Content-Type: text/plain
X-EOPAttributedMessage: 0
Received-SPF: SoftFail (protection.outlook.com: domain of transitioning juniper.net discourages use of 66.129.239.17 as permitted sender)
Authentication-Results: spf=softfail (sender IP is 66.129.239.17) smtp.mailfrom=phil@juniper.net; ietf.org; dkim=none (message not signed) header.d=none;
X-Forefront-Antispam-Report: CIP:66.129.239.17; CTRY:US; IPV:NLI; EFV:NLI; BMV:1; SFV:NSPM; SFS:(10019020)(6009001)(51704005)(189002)(199003)(106466001)(48376002)(50986999)(54356999)(46102003)(50466002)(15975445007)(77096005)(92566002)(77156002)(53416004)(47776003)(76506005)(86362001)(2950100001)(19580395003)(110136001)(19580405001)(105596002)(62966003)(87936001); DIR:OUT; SFP:1102; SCL:1; SRVR:DM2PR05MB800; H:P-EMF03-SAC.jnpr.net; FPR:; SPF:SoftFail; MLV:sfv; MX:1; A:1; LANG:en; 
X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:; SRVR:DM2PR05MB800; UriScan:; BCL:0; PCL:0; RULEID:; SRVR:DM2PR05MB382; 
X-Microsoft-Antispam-PRVS: <DM2PR05MB8007C35802E0C49F550DFE8C90B0@DM2PR05MB800.namprd05.prod.outlook.com>
X-Exchange-Antispam-Report-Test: UriScan:;
X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(5002010)(5005006); SRVR:DM2PR05MB800; BCL:0; PCL:0; RULEID:; SRVR:DM2PR05MB800; 
X-Forefront-PRVS: 052670E5A4
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2015 14:52:16.3350 (UTC)
X-MS-Exchange-CrossTenant-Id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=bea78b3c-4cdb-4130-854a-1d193232e5f4; Ip=[66.129.239.17];  Helo=[P-EMF03-SAC.jnpr.net]
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR05MB800
X-OriginatorOrg: juniper.net
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/jkJ_0-i2_LaEqfPGYzDK33An9jE>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] Y60: YANG 1.0 coexistence
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: <http://www.ietf.org/mail-archive/web/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: Wed, 25 Mar 2015 14:52:34 -0000

+1


Andy Bierman writes:
>Hi,
>
>I think this new section should provide a complete summary of every
>change to the language from 1.0 to 1.1, with examples.  This will
>help developers and designers a great deal, because trying to
>identify all the changes by diffing RFC 6020 is nearly impossible.
>
>
>Andy
>
>_______________________________________________
>netmod mailing list
>netmod@ietf.org
>https://www.ietf.org/mailman/listinfo/netmod


From nobody Wed Mar 25 15:42:17 2015
Return-Path: <j.schoenwaelder@jacobs-university.de>
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 9F33E1A86F6 for <netmod@ietfa.amsl.com>; Wed, 25 Mar 2015 15:42:15 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.86
X-Spam-Level: 
X-Spam-Status: No, score=-3.86 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] 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 sUslOerNngY1 for <netmod@ietfa.amsl.com>; Wed, 25 Mar 2015 15:42:13 -0700 (PDT)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 8C7BA1A1AD3 for <netmod@ietf.org>; Wed, 25 Mar 2015 15:42:13 -0700 (PDT)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id 605EB1465 for <netmod@ietf.org>; Wed, 25 Mar 2015 23:42:12 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.220]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id R8a_kjCCbv33 for <netmod@ietf.org>; Wed, 25 Mar 2015 23:41:55 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS for <netmod@ietf.org>; Wed, 25 Mar 2015 23:42:11 +0100 (CET)
Received: from localhost (demetrius3.jacobs-university.de [212.201.44.48]) by hermes.jacobs-university.de (Postfix) with ESMTP id 76EDC2002B for <netmod@ietf.org>; Wed, 25 Mar 2015 23:42:11 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius3.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id ohGCLVm9sfMl; Wed, 25 Mar 2015 23:42:10 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id 3B98B20013; Wed, 25 Mar 2015 23:42:10 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id 6A7763282BF7; Wed, 25 Mar 2015 23:42:09 +0100 (CET)
Date: Wed, 25 Mar 2015 23:42:09 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: netmod@ietf.org
Message-ID: <20150325224208.GB67021@elstar.local>
Mail-Followup-To: netmod@ietf.org
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/Jpi_5ypM8mzkOFHoxFgIc-JOknI>
Subject: [netmod] ietf 92 high-level meeting summary
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
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: <http://www.ietf.org/mail-archive/web/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: Wed, 25 Mar 2015 22:42:15 -0000

Hi,

here is a high-level summary of the NETMOD meetings this week.

  The NETMOD working group met twice during IETF 92. The YANG 1.1
  effort has been working on closing the remaining issues. A complete
  revised specification is expected to go to WG last call in
  April. The work on the YANG guidelines document update will follow
  once YANG 1.1 is stable. The JSON mapping will be revised and cover
  YANG 1.0 and 1.1.

  The data models worked on by the NETMOD working group (core routing,
  syslog, ACLs) are progressing with the authors primarily resolving
  review comments. Some routing data model related design issues have
  been resolved. A design team recently formed to work on a data model
  for physical components (based on the SNMP ENTITY-MIB) has met at
  the IETF. Additional working group discussions centered around the
  question how to classify and how to organize data models. Finally,
  work on a data model for Differentiated Services has been presented.

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Thu Mar 26 12:56:03 2015
Return-Path: <mjethanandani@gmail.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 73CB01A00E0 for <netmod@ietfa.amsl.com>; Thu, 26 Mar 2015 12:56:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level: 
X-Spam-Status: No, score=-1.999 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_PASS=-0.001] 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 bSF5E6bj2dCQ for <netmod@ietfa.amsl.com>; Thu, 26 Mar 2015 12:55:58 -0700 (PDT)
Received: from mail-oi0-x230.google.com (mail-oi0-x230.google.com [IPv6:2607:f8b0:4003:c06::230]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A6FEC1B2B87 for <netmod@ietf.org>; Thu, 26 Mar 2015 12:55:58 -0700 (PDT)
Received: by oigz129 with SMTP id z129so14082523oig.1 for <netmod@ietf.org>; Thu, 26 Mar 2015 12:55:58 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;  h=mime-version:references:in-reply-to:from:date:message-id:subject:to :content-type; bh=Tk6m7R8lpDiFe0+L7YjartyWu+fy1WleZm4CdhK38kE=; b=HTIGPIzfPfCF845iCPTYky845kNe6eCKzBJe1M91UlPbg8uSiKk7wHL+C2sLWX6XVx vcRj4ofshx+zIkQSD3duvl+LRR2VtJvuSBrWmvQBKACU0n6erAN4qIM3UjU11g8tG4b2 Vxu2UA0Za9kumM3sNwvLid6Ij57JOO4+gfEV30dkI6XK6lSzZInWglIWZf5LfhLO8C4t CZO21LP0I7lPuwmUTOQGD93n7mVFDJiJWYFiWx33DC9ps6R4LfNjiuDyK3lRw5qPAHam EuKwCV2tBwdvh+S0RPOiGclE3BODn7u7QAeoUwuAiKWZ11P4epvrEPkfWu4rQRl9Qfqb Cb5w==
X-Received: by 10.182.230.132 with SMTP id sy4mr13607949obc.29.1427399758193;  Thu, 26 Mar 2015 12:55:58 -0700 (PDT)
MIME-Version: 1.0
References: <20150324001224.12287.12581.idtracker@ietfa.amsl.com> <BEB80BE5-DCCB-43DB-8AAA-7738AFB3A6B6@juniper.net>
In-Reply-To: <BEB80BE5-DCCB-43DB-8AAA-7738AFB3A6B6@juniper.net>
From: Mahesh Jethanandani <mjethanandani@gmail.com>
Date: Thu, 26 Mar 2015 19:55:57 +0000
Message-ID: <CAAchPMuFQzgd9AfrfqwEw5+Xhew1jTTR6ga0NAS8Lt20tByJ3Q@mail.gmail.com>
To: Dean Bogdanovic <deanb@juniper.net>, "netmod@ietf.org" <netmod@ietf.org>
Content-Type: multipart/alternative; boundary=001a11c336d48a2a2d0512366719
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/Nq0AMh_jDHi_eETpOMI5-kpWv5M>
Subject: Re: [netmod] Fwd: New Version Notification for draft-bogdanovic-netmod-yang-model-classification-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: <http://www.ietf.org/mail-archive/web/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: Thu, 26 Mar 2015 19:56:01 -0000

--001a11c336d48a2a2d0512366719
Content-Type: text/plain; charset=UTF-8

Dean et. all,

I said in the meeting that two levels of models - service and device, would
be sufficient.

After talking to operators, I am not so convinced, and here is why. First
of all, we are misrepresenting the term service models as operators see it.
A service is something that customer orders. That could be "I need 1G link
between these two end points and I want your gold level QoS service on
it.". Period. There is no mention of what IP address or which device this
will get configured on. These parameters, as we know are needed to
configure any service on a device. These service models reside in the BSS
layer.

So we need a modelling layer between the service level model and the device
(NE) level model. These models for the lack of better term can be called
network abstraction level models, which consists of models that constitute*
non-orderable network objects* e.g. the IP address of the end points where
the 1G service would be configured and the device-id where the QoS
parameters need to configured for the gold service. They model parameters
that customers typically do not specify or the BSS layer knows or cares
about. These network abstraction level models reside in the SDN controller
or the NETCONF client.

Then come the device level models that you and me are familiar with and are
the focus of most models being developed in IETF. The device level models
are models of features supported by the device and reside on the device
itself.

If we keep these three levels for model definitions, it will be easier to
classify where any particular model should reside.

On Mon, Mar 23, 2015 at 5:13 PM Dean Bogdanovic <deanb@juniper.net> wrote:

>
>
> Begin forwarded message:
>
>  *From: *<internet-drafts@ietf.org>
>  *Subject: **New Version Notification for
> draft-bogdanovic-netmod-yang-model-classification-02.txt*
>  *Date: *March 23, 2015 8:12:24 PM EDT
>  *To: *Dean Bogdanovic <deanb@juniper.net>, Dean Bogdanovic <
> deanb@juniper.net>, Benoit Claise <bclaise@cisco.com>, Carl Moberg <
> camoberg@cisco.com>, "Carl Moberg" <camoberg@cisco.com>, Benoit Claise <
> bclaise@cisco.com>
>
>
> A new version of I-D,
> draft-bogdanovic-netmod-yang-model-classification-02.txt
> has been successfully submitted by Dean Bogdanovic and posted to the
> IETF repository.
>
> Name: draft-bogdanovic-netmod-yang-model-classification
> Revision: 02
> Title: YANG model classification
> Document date: 2015-03-23
> Group: Individual Submission
> Pages: 12
> URL:
> http://www.ietf.org/internet-drafts/draft-bogdanovic-netmod-yang-model-classification-02.txt
> Status:
> https://datatracker.ietf.org/doc/draft-bogdanovic-netmod-yang-model-classification/
> Htmlized:
> http://tools.ietf.org/html/draft-bogdanovic-netmod-yang-model-classification-02
> Diff:
> http://www.ietf.org/rfcdiff?url2=draft-bogdanovic-netmod-yang-model-classification-02
>
> Abstract:
>   YANG became de facto standard language for data modeling in the
>   industry.  More and more groups uses YANG to create protocol and
>   service models, both for configuration and operational models.
>   Currently there is a lack of consistent terminology to categorize
>   those models.  A consistent terminology would help models
>   categorization, assist in the analysis the YANG data modeling effort
>   in the IETF and in the industry, and facilitate the YANG-related
>   discussions between different groups.
>
>
>
>
> 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.
>
> The IETF Secretariat
>
>
>  _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod
>

--001a11c336d48a2a2d0512366719
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Dean et. all,<br><br><div>I said in the meeting that two l=
evels of models - service and device, would be sufficient.</div><div>=20
=C2=A0<br></div><div>After talking to operators, I am not so convinced, and=
 here is why. First of all, we are misrepresenting the term service models =
as operators see it. A service is something that customer orders. That coul=
d be &quot;I need 1G link between these two end points and I want your gold=
 level QoS service on it.&quot;. Period. There is no mention of what IP add=
ress or which device this will get configured on. These parameters, as we k=
now are needed to configure any service on a device. These service models r=
eside in the BSS layer.</div><div><br></div><div>So we need a modelling lay=
er between the service level model and the device (NE) level model. These m=
odels for the lack of better term can be called network abstraction level m=
odels, which consists of models that constitute<b> non-orderable network ob=
jects</b> e.g. the IP address of the end points where the 1G service would =
be configured and the device-id where the QoS parameters need to configured=
 for the gold service. They model parameters that customers typically do no=
t specify or the BSS layer knows or cares about. These network abstraction =
level models reside in the SDN controller or the NETCONF client.</div><div>=
<br></div><div>Then come the device level models that you and me are famili=
ar with and are the focus of most models being developed in IETF. The devic=
e level models are models of features supported by the device and reside on=
 the device itself.</div><div><br></div><div>If we keep these three levels =
for model definitions, it will be easier to classify where any particular m=
odel should reside.</div><br><div class=3D"gmail_quote">On Mon, Mar 23, 201=
5 at 5:13 PM Dean Bogdanovic &lt;<a href=3D"mailto:deanb@juniper.net">deanb=
@juniper.net</a>&gt; wrote:<br><blockquote class=3D"gmail_quote" style=3D"m=
argin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">



<div style=3D"word-wrap:break-word">
<br>
<div><br>
<div>Begin forwarded message:</div>
<br>
<blockquote type=3D"cite">
<div style=3D"margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left=
:0px">
<span style=3D"font-family:&#39;Helvetica&#39;;font-size:medium;color:rgba(=
0,0,0,1.0)"><b>From:
</b></span><span style=3D"font-family:&#39;Helvetica&#39;;font-size:medium"=
>&lt;<a href=3D"mailto:internet-drafts@ietf.org" target=3D"_blank">internet=
-drafts@ietf.org</a>&gt;<br>
</span></div>
<div style=3D"margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left=
:0px">
<span style=3D"font-family:&#39;Helvetica&#39;;font-size:medium;color:rgba(=
0,0,0,1.0)"><b>Subject:
</b></span><span style=3D"font-family:&#39;Helvetica&#39;;font-size:medium"=
><b>New Version Notification for draft-bogdanovic-netmod-yang-model-classif=
ication-02.txt</b><br>
</span></div>
<div style=3D"margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left=
:0px">
<span style=3D"font-family:&#39;Helvetica&#39;;font-size:medium;color:rgba(=
0,0,0,1.0)"><b>Date:
</b></span><span style=3D"font-family:&#39;Helvetica&#39;;font-size:medium"=
>March 23, 2015 8:12:24 PM EDT<br>
</span></div>
<div style=3D"margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left=
:0px">
<span style=3D"font-family:&#39;Helvetica&#39;;font-size:medium;color:rgba(=
0,0,0,1.0)"><b>To:
</b></span><span style=3D"font-family:&#39;Helvetica&#39;;font-size:medium"=
>Dean Bogdanovic &lt;<a href=3D"mailto:deanb@juniper.net" target=3D"_blank"=
>deanb@juniper.net</a>&gt;, Dean Bogdanovic &lt;<a href=3D"mailto:deanb@jun=
iper.net" target=3D"_blank">deanb@juniper.net</a>&gt;, Benoit Claise &lt;<a=
 href=3D"mailto:bclaise@cisco.com" target=3D"_blank">bclaise@cisco.com</a>&=
gt;,
 Carl Moberg &lt;<a href=3D"mailto:camoberg@cisco.com" target=3D"_blank">ca=
moberg@cisco.com</a>&gt;, &quot;Carl Moberg&quot; &lt;<a href=3D"mailto:cam=
oberg@cisco.com" target=3D"_blank">camoberg@cisco.com</a>&gt;, Benoit Clais=
e &lt;<a href=3D"mailto:bclaise@cisco.com" target=3D"_blank">bclaise@cisco.=
com</a>&gt;<br>
</span></div>
<br>
<div><br>
A new version of I-D, draft-bogdanovic-netmod-yang-model-classification-02.=
txt<br>
has been successfully submitted by Dean Bogdanovic and posted to the<br>
IETF repository.<br>
<br>
Name:<span style=3D"white-space:pre-wrap"> </span><span style=3D"white-spac=
e:pre-wrap"></span>draft-bogdanovic-netmod-yang-model-classification<br>
Revision:<span style=3D"white-space:pre-wrap"> </span>02<br>
Title:<span style=3D"white-space:pre-wrap"> </span><span style=3D"white-spa=
ce:pre-wrap"></span>YANG model classification<br>
Document date:<span style=3D"white-space:pre-wrap"> </span>2015-03-23<br>
Group:<span style=3D"white-space:pre-wrap"> </span><span style=3D"white-spa=
ce:pre-wrap"></span>Individual Submission<br>
Pages:<span style=3D"white-space:pre-wrap"> </span><span style=3D"white-spa=
ce:pre-wrap"></span>12<br>
URL: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0<a h=
ref=3D"http://www.ietf.org/internet-drafts/draft-bogdanovic-netmod-yang-mod=
el-classification-02.txt" target=3D"_blank">http://www.ietf.org/internet-dr=
afts/draft-bogdanovic-netmod-yang-model-classification-02.txt</a><br>
Status: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0<a href=3D"https://=
datatracker.ietf.org/doc/draft-bogdanovic-netmod-yang-model-classification/=
" target=3D"_blank">https://datatracker.ietf.org/doc/draft-bogdanovic-netmo=
d-yang-model-classification/</a><br>
Htmlized: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0<a href=3D"http://tools.ietf.=
org/html/draft-bogdanovic-netmod-yang-model-classification-02" target=3D"_b=
lank">http://tools.ietf.org/html/draft-bogdanovic-netmod-yang-model-classif=
ication-02</a><br>
Diff: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0<a href=
=3D"http://www.ietf.org/rfcdiff?url2=3Ddraft-bogdanovic-netmod-yang-model-c=
lassification-02" target=3D"_blank">http://www.ietf.org/rfcdiff?url2=3Ddraf=
t-bogdanovic-netmod-yang-model-classification-02</a><br>
<br>
Abstract:<br>
=C2=A0=C2=A0YANG became de facto standard language for data modeling in the=
<br>
=C2=A0=C2=A0industry.=C2=A0 More and more groups uses YANG to create protoc=
ol and<br>
=C2=A0=C2=A0service models, both for configuration and operational models.<=
br>
=C2=A0=C2=A0Currently there is a lack of consistent terminology to categori=
ze<br>
=C2=A0=C2=A0those models.=C2=A0 A consistent terminology would help models<=
br>
=C2=A0=C2=A0categorization, assist in the analysis the YANG data modeling e=
ffort<br>
=C2=A0=C2=A0in the IETF and in the industry, and facilitate the YANG-relate=
d<br>
=C2=A0=C2=A0discussions between different groups.<br>
<br>
<br>
<br>
<br>
Please note that it may take a couple of minutes from the time of submissio=
n<br>
until the htmlized version and diff are available at <a href=3D"http://tool=
s.ietf.org" target=3D"_blank">
tools.ietf.org</a>.<br>
<br>
The IETF Secretariat<br>
<br>
</div>
</blockquote>
</div>
<br>
</div>

______________________________<u></u>_________________<br>
netmod mailing list<br>
<a href=3D"mailto:netmod@ietf.org" target=3D"_blank">netmod@ietf.org</a><br=
>
<a href=3D"https://www.ietf.org/mailman/listinfo/netmod" target=3D"_blank">=
https://www.ietf.org/mailman/<u></u>listinfo/netmod</a><br>
</blockquote></div></div>

--001a11c336d48a2a2d0512366719--


From nobody Thu Mar 26 13:58:46 2015
Return-Path: <j.schoenwaelder@jacobs-university.de>
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 E0A081B2F1F for <netmod@ietfa.amsl.com>; Thu, 26 Mar 2015 13:58:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.86
X-Spam-Level: 
X-Spam-Status: No, score=-3.86 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] 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 paADUTPigy-e for <netmod@ietfa.amsl.com>; Thu, 26 Mar 2015 13:58:43 -0700 (PDT)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A81421B2F15 for <netmod@ietf.org>; Thu, 26 Mar 2015 13:58:42 -0700 (PDT)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id 7AA8114D6; Thu, 26 Mar 2015 21:58:41 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.220]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id sGSiuxuO1g_Q; Thu, 26 Mar 2015 21:58:18 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS; Thu, 26 Mar 2015 21:58:40 +0100 (CET)
Received: from localhost (demetrius3.jacobs-university.de [212.201.44.48]) by hermes.jacobs-university.de (Postfix) with ESMTP id 3B8292002B; Thu, 26 Mar 2015 21:58:40 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius3.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id 7yCuPGpnR0CX; Thu, 26 Mar 2015 21:58:39 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id 9A05B20013; Thu, 26 Mar 2015 21:58:38 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id 957AA32836C6; Thu, 26 Mar 2015 21:58:38 +0100 (CET)
Date: Thu, 26 Mar 2015 21:58:38 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Mahesh Jethanandani <mjethanandani@gmail.com>
Message-ID: <20150326205838.GA70255@elstar.local>
Mail-Followup-To: Mahesh Jethanandani <mjethanandani@gmail.com>, Dean Bogdanovic <deanb@juniper.net>, "netmod@ietf.org" <netmod@ietf.org>
References: <20150324001224.12287.12581.idtracker@ietfa.amsl.com> <BEB80BE5-DCCB-43DB-8AAA-7738AFB3A6B6@juniper.net> <CAAchPMuFQzgd9AfrfqwEw5+Xhew1jTTR6ga0NAS8Lt20tByJ3Q@mail.gmail.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <CAAchPMuFQzgd9AfrfqwEw5+Xhew1jTTR6ga0NAS8Lt20tByJ3Q@mail.gmail.com>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/iKVf4rYssc3f2kafnfGuRThggSE>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] Fwd: New Version Notification for draft-bogdanovic-netmod-yang-model-classification-02.txt
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
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: <http://www.ietf.org/mail-archive/web/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: Thu, 26 Mar 2015 20:58:45 -0000

Good old TMN distinguished 'element management', 'network management',
'service management' (+ business management). These last century terms
may not be fancy anymore now that we prefer talking about controllers
and orchestrators but then we do not really seem to invent something
new either.

http://en.wikipedia.org/wiki/Telecommunications_Management_Network

/js

On Thu, Mar 26, 2015 at 07:55:57PM +0000, Mahesh Jethanandani wrote:
> Dean et. all,
> 
> I said in the meeting that two levels of models - service and device, would
> be sufficient.
> 
> After talking to operators, I am not so convinced, and here is why. First
> of all, we are misrepresenting the term service models as operators see it.
> A service is something that customer orders. That could be "I need 1G link
> between these two end points and I want your gold level QoS service on
> it.". Period. There is no mention of what IP address or which device this
> will get configured on. These parameters, as we know are needed to
> configure any service on a device. These service models reside in the BSS
> layer.
> 
> So we need a modelling layer between the service level model and the device
> (NE) level model. These models for the lack of better term can be called
> network abstraction level models, which consists of models that constitute*
> non-orderable network objects* e.g. the IP address of the end points where
> the 1G service would be configured and the device-id where the QoS
> parameters need to configured for the gold service. They model parameters
> that customers typically do not specify or the BSS layer knows or cares
> about. These network abstraction level models reside in the SDN controller
> or the NETCONF client.
> 
> Then come the device level models that you and me are familiar with and are
> the focus of most models being developed in IETF. The device level models
> are models of features supported by the device and reside on the device
> itself.
> 
> If we keep these three levels for model definitions, it will be easier to
> classify where any particular model should reside.
> 
> On Mon, Mar 23, 2015 at 5:13 PM Dean Bogdanovic <deanb@juniper.net> wrote:
> 
> >
> >
> > Begin forwarded message:
> >
> >  *From: *<internet-drafts@ietf.org>
> >  *Subject: **New Version Notification for
> > draft-bogdanovic-netmod-yang-model-classification-02.txt*
> >  *Date: *March 23, 2015 8:12:24 PM EDT
> >  *To: *Dean Bogdanovic <deanb@juniper.net>, Dean Bogdanovic <
> > deanb@juniper.net>, Benoit Claise <bclaise@cisco.com>, Carl Moberg <
> > camoberg@cisco.com>, "Carl Moberg" <camoberg@cisco.com>, Benoit Claise <
> > bclaise@cisco.com>
> >
> >
> > A new version of I-D,
> > draft-bogdanovic-netmod-yang-model-classification-02.txt
> > has been successfully submitted by Dean Bogdanovic and posted to the
> > IETF repository.
> >
> > Name: draft-bogdanovic-netmod-yang-model-classification
> > Revision: 02
> > Title: YANG model classification
> > Document date: 2015-03-23
> > Group: Individual Submission
> > Pages: 12
> > URL:
> > http://www.ietf.org/internet-drafts/draft-bogdanovic-netmod-yang-model-classification-02.txt
> > Status:
> > https://datatracker.ietf.org/doc/draft-bogdanovic-netmod-yang-model-classification/
> > Htmlized:
> > http://tools.ietf.org/html/draft-bogdanovic-netmod-yang-model-classification-02
> > Diff:
> > http://www.ietf.org/rfcdiff?url2=draft-bogdanovic-netmod-yang-model-classification-02
> >
> > Abstract:
> >   YANG became de facto standard language for data modeling in the
> >   industry.  More and more groups uses YANG to create protocol and
> >   service models, both for configuration and operational models.
> >   Currently there is a lack of consistent terminology to categorize
> >   those models.  A consistent terminology would help models
> >   categorization, assist in the analysis the YANG data modeling effort
> >   in the IETF and in the industry, and facilitate the YANG-related
> >   discussions between different groups.
> >
> >
> >
> >
> > 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.
> >
> > The IETF Secretariat
> >
> >
> >  _______________________________________________
> > netmod mailing list
> > netmod@ietf.org
> > https://www.ietf.org/mailman/listinfo/netmod
> >

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


-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Thu Mar 26 14:11:59 2015
Return-Path: <tnadeau@lucidvision.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 ECB7C1B2F14 for <netmod@ietfa.amsl.com>; Thu, 26 Mar 2015 14:11:58 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.896
X-Spam-Level: 
X-Spam-Status: No, score=0.896 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FH_RELAY_NODNS=1.451, HELO_MISMATCH_COM=0.553, HTML_MESSAGE=0.001, RDNS_NONE=0.793, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=no
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 E4LVahBDtH-x for <netmod@ietfa.amsl.com>; Thu, 26 Mar 2015 14:11:57 -0700 (PDT)
Received: from lucidvision.com (unknown [50.255.148.178]) by ietfa.amsl.com (Postfix) with ESMTP id F1A831A89FA for <netmod@ietf.org>; Thu, 26 Mar 2015 14:11:56 -0700 (PDT)
Received: from [192.168.1.120] (unknown [50.255.148.177]) by lucidvision.com (Postfix) with ESMTP id F2CF63145840 for <netmod@ietf.org>; Thu, 26 Mar 2015 17:11:55 -0400 (EDT)
From: "Thomas D. Nadeau" <tnadeau@lucidvision.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_5AEEC52A-CAFC-45E4-8446-F2C69A39068A"
Date: Thu, 26 Mar 2015 17:11:57 -0400
References: <5514729B.70101@cisco.com>
To: NETMOD Working Group <netmod@ietf.org>
Message-Id: <D64FD937-3BF5-44B3-B315-1E2540A03305@lucidvision.com>
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2070.6\))
X-Mailer: Apple Mail (2.2070.6)
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/9Na6jZ_p1rBrK_T-8AOX5JP3MmY>
Subject: [netmod] Fwd: Code posted (was: [Rtg-yang-coord] IETF draft -> YANG module extraction -> compilation )
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: <http://www.ietf.org/mail-archive/web/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: Thu, 26 Mar 2015 21:11:59 -0000

--Apple-Mail=_5AEEC52A-CAFC-45E4-8446-F2C69A39068A
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=windows-1252



> Begin forwarded message:
>=20
> Date: March 26, 2015 at 4:56:59 PM EDT
> From: Benoit Claise <bclaise@cisco.com>
> To: "Thomas D. Nadeau" <tnadeau@lucidvision.com>
> Cc: "Rtg-yang-coord@ietf.org" <rtg-yang-coord@ietf.org>, "jmedved =
Medved (jmedved)" <jmedved@cisco.com>
> Subject: Code posted (was: [Rtg-yang-coord] IETF draft -> YANG module =
extraction -> compilation )
>=20
> Dear all,
>=20
> The extraction function has been posted at =
https://github.com/YangModels/yang/tree/master/tools/xym =
<https://github.com/YangModels/yang/tree/master/tools/xym>
> The page generation function will need some clean up and hence some =
time.
>=20
> Regards, Benoit
>> Tom,=20
>>=20
>>>=20
>>>  When are you going to make the code available? =20
>> Somewhere next week.=20
>>=20
>> Regards, Benoit
>>> There are additions that some have talked about making.
>>>=20
>>>  --Tom
>>>=20
>>>> On Mar 26, 2015:10:37 AM, at 10:37 AM, Benoit Claise =
<bclaise@cisco.com <mailto:bclaise@cisco.com>> wrote:
>>>>=20
>>>> Dear all,
>>>>=20
>>>> Part of the IETF 92 hackathon, Jan Medved and I developed a tool =
for YANG modules extraction and compilation.=20
>>>> The outcome is right now on my private web site at =
http://www.claise.be/IETFYANGPageCompilation.html =
<http://www.claise.be/IETFYANGPageCompilation.html>, but you should =
really bookmark  =
http://www.ietf.org/iesg/directorate/yang-model-coordination-group.html =
<http://www.ietf.org/iesg/directorate/yang-model-coordination-group.html> =
and follow the WIKI link.
>>>>=20
>>>> Please make sure your YANG modules compile. Btw, don't forget the =
pyang --ietf option.
>>>> Some numbers:
>>>> Number of YANG models in IETF drafts that passed compilation: =
28/113
>>>> Number of all YANG models in IETF drafts (good, bad, example, badly =
formatted, etc. ): 189
>>>> There is room for improvement.
>>>> Some of the draft authors have been notified about specific =
mistakes in their module
>>>>=20
>>>> Next steps:=20
>>>>     - include this tool part of the idnits
>>>>     - cron job to create this page
>>>>     - post the code (currently polishing it)
>>>>     - produce a similar page for opendaylight
>>>>=20
>>>> Regards, Benoit
>>>> _______________________________________________
>>>> Rtg-yang-coord mailing list
>>>> Rtg-yang-coord@ietf.org <mailto:Rtg-yang-coord@ietf.org>
>>>> https://www.ietf.org/mailman/listinfo/rtg-yang-coord =
<https://www.ietf.org/mailman/listinfo/rtg-yang-coord>
>>>=20
>>=20
>>=20
>>=20
>> _______________________________________________
>> Rtg-yang-coord mailing list
>> Rtg-yang-coord@ietf.org <mailto:Rtg-yang-coord@ietf.org>
>> https://www.ietf.org/mailman/listinfo/rtg-yang-coord =
<https://www.ietf.org/mailman/listinfo/rtg-yang-coord>
>=20


--Apple-Mail=_5AEEC52A-CAFC-45E4-8446-F2C69A39068A
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=windows-1252

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dwindows-1252"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" =
class=3D""><br class=3D""><div><br class=3D""><blockquote type=3D"cite" =
class=3D""><div class=3D"">Begin forwarded message:</div><br =
class=3D"Apple-interchange-newline"><div style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px;" class=3D""><span=
 style=3D"font-family: -webkit-system-font, Helvetica Neue, Helvetica, =
sans-serif; color:rgba(0, 0, 0, 1.0);" class=3D""><b class=3D"">Date: =
</b></span><span style=3D"font-family: -webkit-system-font, Helvetica =
Neue, Helvetica, sans-serif;" class=3D"">March 26, 2015 at 4:56:59 PM =
EDT<br class=3D""></span></div><div style=3D"margin-top: 0px; =
margin-right: 0px; margin-bottom: 0px; margin-left: 0px;" class=3D""><span=
 style=3D"font-family: -webkit-system-font, Helvetica Neue, Helvetica, =
sans-serif; color:rgba(0, 0, 0, 1.0);" class=3D""><b class=3D"">From: =
</b></span><span style=3D"font-family: -webkit-system-font, Helvetica =
Neue, Helvetica, sans-serif;" class=3D"">Benoit Claise &lt;<a =
href=3D"mailto:bclaise@cisco.com" class=3D"">bclaise@cisco.com</a>&gt;<br =
class=3D""></span></div><div style=3D"margin-top: 0px; margin-right: =
0px; margin-bottom: 0px; margin-left: 0px;" class=3D""><span =
style=3D"font-family: -webkit-system-font, Helvetica Neue, Helvetica, =
sans-serif; color:rgba(0, 0, 0, 1.0);" class=3D""><b class=3D"">To: =
</b></span><span style=3D"font-family: -webkit-system-font, Helvetica =
Neue, Helvetica, sans-serif;" class=3D"">"Thomas D. Nadeau" &lt;<a =
href=3D"mailto:tnadeau@lucidvision.com" =
class=3D"">tnadeau@lucidvision.com</a>&gt;<br class=3D""></span></div><div=
 style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px;" class=3D""><span style=3D"font-family: =
-webkit-system-font, Helvetica Neue, Helvetica, sans-serif; =
color:rgba(0, 0, 0, 1.0);" class=3D""><b class=3D"">Cc: </b></span><span =
style=3D"font-family: -webkit-system-font, Helvetica Neue, Helvetica, =
sans-serif;" class=3D"">"<a href=3D"mailto:Rtg-yang-coord@ietf.org" =
class=3D"">Rtg-yang-coord@ietf.org</a>" &lt;<a =
href=3D"mailto:rtg-yang-coord@ietf.org" =
class=3D"">rtg-yang-coord@ietf.org</a>&gt;, "jmedved Medved (jmedved)" =
&lt;<a href=3D"mailto:jmedved@cisco.com" =
class=3D"">jmedved@cisco.com</a>&gt;<br class=3D""></span></div><div =
style=3D"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; =
margin-left: 0px;" class=3D""><span style=3D"font-family: =
-webkit-system-font, Helvetica Neue, Helvetica, sans-serif; =
color:rgba(0, 0, 0, 1.0);" class=3D""><b class=3D"">Subject: =
</b></span><span style=3D"font-family: -webkit-system-font, Helvetica =
Neue, Helvetica, sans-serif;" class=3D""><b class=3D"">Code posted (was: =
[Rtg-yang-coord] IETF draft -&gt; YANG module extraction -&gt; =
compilation )</b><br class=3D""></span></div><br class=3D""><div =
class=3D"">
 =20
    <meta content=3D"text/html; charset=3Dwindows-1252" =
http-equiv=3D"Content-Type" class=3D"">
 =20
  <div bgcolor=3D"#FFFFFF" text=3D"#000000" class=3D"">
    <div class=3D"moz-cite-prefix">Dear all,<br class=3D"">
      <br class=3D"">
      The extraction function has been posted at
      <a class=3D"moz-txt-link-freetext" =
href=3D"https://github.com/YangModels/yang/tree/master/tools/xym">https://=
github.com/YangModels/yang/tree/master/tools/xym</a><br class=3D"">
      The page generation function will need some clean up and hence
      some time.<br class=3D"">
      <br class=3D"">
      Regards, Benoit<br class=3D"">
    </div>
    <blockquote cite=3D"mid:55141E0E.8020208@cisco.com" type=3D"cite" =
class=3D"">
      <meta http-equiv=3D"Content-Type" content=3D"text/html;
        charset=3Dwindows-1252" class=3D"">
      <div class=3D"moz-cite-prefix">Tom, <br class=3D"">
        <br class=3D"">
      </div>
      <blockquote =
cite=3D"mid:EEEB2A15-4509-4CA2-981C-C866056351A5@lucidvision.com" =
type=3D"cite" class=3D"">
        <div class=3D""><br class=3D"">
        </div>
        <span class=3D"Apple-tab-span" style=3D"white-space:pre"> =
</span>When

        are you going to make the code available?&nbsp; <br class=3D"">
      </blockquote>
      Somewhere next week. <br class=3D"">
      <br class=3D"">
      Regards, Benoit<br class=3D"">
      <blockquote =
cite=3D"mid:EEEB2A15-4509-4CA2-981C-C866056351A5@lucidvision.com" =
type=3D"cite" class=3D"">There are additions that some have talked about
        making.
        <div class=3D""><br class=3D"">
        </div>
        <div class=3D""><span class=3D"Apple-tab-span" =
style=3D"white-space:pre"> </span>--Tom</div>
        <div class=3D""><br class=3D"">
          <div class=3D"">
            <blockquote type=3D"cite" class=3D"">
              <div class=3D"">On Mar 26, 2015:10:37 AM, at 10:37 AM,
                Benoit Claise &lt;<a moz-do-not-send=3D"true" =
href=3D"mailto:bclaise@cisco.com" class=3D"">bclaise@cisco.com</a>&gt;

                wrote:</div>
              <br class=3D"Apple-interchange-newline">
              <div class=3D"">
                <div bgcolor=3D"#FFFFFF" text=3D"#000000" class=3D""> =
Dear
                  all,<br class=3D"">
                  <br class=3D"">
                  Part of the IETF 92 hackathon, Jan Medved and I
                  developed a tool for YANG modules extraction and
                  compilation. <br class=3D"">
                  The outcome is right now on my private web site at <a =
moz-do-not-send=3D"true" class=3D"moz-txt-link-freetext" =
href=3D"http://www.claise.be/IETFYANGPageCompilation.html">http://www.clai=
se.be/IETFYANGPageCompilation.html</a>,
                  but you should really bookmark&nbsp; <a =
moz-do-not-send=3D"true" =
href=3D"http://www.ietf.org/iesg/directorate/yang-model-coordination-group=
.html" =
class=3D"">http://www.ietf.org/iesg/directorate/yang-model-coordination-gr=
oup.html</a>
                  and follow the WIKI link.<br class=3D"">
                  <br class=3D"">
                  Please make sure your YANG modules compile. Btw, don't
                  forget the pyang --ietf option.<br class=3D"">
                  Some numbers:<br class=3D"">
                  <ul class=3D"">
                    <li class=3D"">Number of YANG models in IETF drafts
                      that passed compilation: 28/113 </li>
                    <li class=3D"">Number of all YANG models in IETF
                      drafts (good, bad, example, badly formatted, etc.
                      ): 189 </li>
                  </ul>
                  There is room for improvement.<br class=3D"">
                  Some of the draft authors have been notified about
                  specific mistakes in their module<br class=3D"">
                  <br class=3D"">
                  Next steps: <br class=3D"">
                  &nbsp;&nbsp;&nbsp; - include this tool part of the =
idnits<br class=3D"">
                  &nbsp;&nbsp;&nbsp; - cron job to create this page<br =
class=3D"">
                  &nbsp;&nbsp;&nbsp; - post the code (currently =
polishing it)<br class=3D"">
                  &nbsp;&nbsp;&nbsp; - produce a similar page for =
opendaylight<br class=3D"">
                  <br class=3D"">
                  Regards, Benoit<br class=3D"">
                </div>
                _______________________________________________<br =
class=3D"">
                Rtg-yang-coord mailing list<br class=3D"">
                <a moz-do-not-send=3D"true" =
href=3D"mailto:Rtg-yang-coord@ietf.org" =
class=3D"">Rtg-yang-coord@ietf.org</a><br class=3D"">
                <a moz-do-not-send=3D"true" =
class=3D"moz-txt-link-freetext" =
href=3D"https://www.ietf.org/mailman/listinfo/rtg-yang-coord">https://www.=
ietf.org/mailman/listinfo/rtg-yang-coord</a><br class=3D"">
              </div>
            </blockquote>
          </div>
          <br class=3D"">
        </div>
      </blockquote>
      <br class=3D"">
      <br class=3D"">
      <fieldset class=3D"mimeAttachmentHeader"></fieldset>
      <br class=3D"">
      <pre wrap=3D"" =
class=3D"">_______________________________________________
Rtg-yang-coord mailing list
<a class=3D"moz-txt-link-abbreviated" =
href=3D"mailto:Rtg-yang-coord@ietf.org">Rtg-yang-coord@ietf.org</a>
<a class=3D"moz-txt-link-freetext" =
href=3D"https://www.ietf.org/mailman/listinfo/rtg-yang-coord">https://www.=
ietf.org/mailman/listinfo/rtg-yang-coord</a>
</pre>
    </blockquote>
    <br class=3D"">
  </div>

</div></blockquote></div><br class=3D""></body></html>=

--Apple-Mail=_5AEEC52A-CAFC-45E4-8446-F2C69A39068A--


From nobody Thu Mar 26 17:22:56 2015
Return-Path: <jason.sterne@alcatel-lucent.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 7C7821A874B for <netmod@ietfa.amsl.com>; Thu, 26 Mar 2015 17:22:54 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.909
X-Spam-Level: 
X-Spam-Status: No, score=-6.909 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, T_RP_MATCHES_RCVD=-0.01] 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 qr39KHR4klCQ for <netmod@ietfa.amsl.com>; Thu, 26 Mar 2015 17:22:50 -0700 (PDT)
Received: from smtp-fr.alcatel-lucent.com (fr-hpida-esg-02.alcatel-lucent.com [135.245.210.21]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E08671A01F9 for <netmod@ietf.org>; Thu, 26 Mar 2015 17:22:49 -0700 (PDT)
Received: from us70uusmtp4.zam.alcatel-lucent.com (unknown [135.5.2.66]) by Websense Email Security Gateway with ESMTPS id 7898ACD944414 for <netmod@ietf.org>; Fri, 27 Mar 2015 00:22:43 +0000 (GMT)
Received: from US70UWXCHHUB02.zam.alcatel-lucent.com (us70uwxchhub02.zam.alcatel-lucent.com [135.5.2.49]) by us70uusmtp4.zam.alcatel-lucent.com (GMO) with ESMTP id t2R0Midp010781 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL) for <netmod@ietf.org>; Thu, 26 Mar 2015 20:22:46 -0400
Received: from US70TWXCHMBA11.zam.alcatel-lucent.com ([169.254.5.170]) by US70UWXCHHUB02.zam.alcatel-lucent.com ([135.5.2.49]) with mapi id 14.03.0195.001; Thu, 26 Mar 2015 20:22:45 -0400
From: "Sterne, Jason (Jason)" <jason.sterne@alcatel-lucent.com>
To: "netmod@ietf.org" <netmod@ietf.org>
Thread-Topic: Some feedback on syslog-model-03
Thread-Index: AdBoJCTmg08BM4oORk6SCdlQt/jxCQ==
Date: Fri, 27 Mar 2015 00:22:44 +0000
Message-ID: <A125E53CE190A749957C19483DC79F9F5C9E2CE4@US70TWXCHMBA11.zam.alcatel-lucent.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [135.5.27.16]
Content-Type: multipart/alternative; boundary="_000_A125E53CE190A749957C19483DC79F9F5C9E2CE4US70TWXCHMBA11z_"
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/DXS3cJQ3KTg3Kmob_L1uoCM3cEo>
Subject: [netmod] Some feedback on syslog-model-03
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: <http://www.ietf.org/mail-archive/web/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, 27 Mar 2015 00:22:54 -0000

--_000_A125E53CE190A749957C19483DC79F9F5C9E2CE4US70TWXCHMBA11z_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hi all,

During a number of discussions this week with other vendors and operators I=
 was encouraged to ensure that I raise comments/issues from ALU with some o=
f the YANG models underway including syslog.  Clyde and I met this morning =
and we thought it would be good for me to post the comments to the list.

I'm going to break the comments into a few email threads - it sometimes get=
s confusing if too many issues are combined into a single discussion.

-----------------------------------------------
A) clarify syslog-selector behavior
-----------------------------------------------

It would be good to clarify the behavior of the selector/filter in the draf=
t text & yang module. If we consider the use of the syslog-selector inside =
the message-distributors (buffered-logging-action, file-logging-action, etc=
) I believe the intended behavior is that when a selector is used/configure=
d then it is effectively a "default deny" filter that only allows log event=
s to pass the selector if they match the configured facility+severity (or t=
he configured severity).  In other words -> if there is no <severity> or <f=
acility> tags inside a <buffered-logging-action> (i.e. no selector config) =
then no log events would go to the buffer.

I'm a little less clear on the expected behavior or need for the <none> (ca=
se logging-facility-none) leaf. Isn't it just equivalent to the absence of =
any <severity> or <facility> items configured ?

We should also be explicit that the (basic) severity selection is an 'equal=
s-or-higher' severity decision (note that although lower severity enum valu=
es are actually more critical than higher values, e.g. emergency=3D0, we sh=
ould describe this in terms of severity/criticality IMO).

Is all the behavior above (including <none>) intended to be the exact same =
for the optional global-logging-action ?  If that is the case and the featu=
re is supported on a platform then I think that means that no global config=
 would mean no log messages sent to any distributors.

I'm happy to help construct some specific text/descriptions but wanted to m=
ake sure I understand the intent first.

-----------------------------------------------
B) structured data as a single feature
-----------------------------------------------
There are currently two structured data related features.  Should we combin=
e that into a single feature ?  Do the vendors who support this not tend to=
 then support it for both files and remote destinations anyways ?

-----------------------------------------------
C) max sizes/numbers for logs
-----------------------------------------------
There are a few places where a size is configured (buffer-size, file-size).=
 Implementations will vary on what units are used in a way that isn't reall=
y directly convertible (e.g. bytes vs # of log messages).

For file logging some implementations use a retention time rather than a si=
ze limit or file number limit so I'm glad to see an if-feature around this =
(or remote it and let the vendor augment for that)

It is probably more common to have a size for the memory buffers so that is=
 probably OK to leave in.

Whatever sizes remain in the model:
- remove any default values
- explain in the description that "This leaf specifies the maximum xyz size=
.  The units are not specified in this model and varies by implementation (=
e.g. bytes vs number of log messages)."

-----------------------------------------------
D) terminal distributor and persistency
-----------------------------------------------
Terminal logging is session-specific in several implementations and config =
generally disappears once the session is done.  It is also not clear what l=
ogging to the local session should really mean for a netconf session.  I'm =
not sure this distributor should be in the model.

-----------------------------------------------
E) editorial/minor misc
-----------------------------------------------
- Should we update the WG chair name (David Kessens) ?
- I'd suggest 'list logging-facilities' and 'key "facility"' be changed to =
'list facility' with 'key "facility-name"'.  If a list is in a container th=
en the plural name makes sense for the container but I think singular is be=
tter for the list (like how ietf-interfaces is done).
- The introduction says "We are using definitions of Syslog protocol from [=
RFC3164] in this draft." but the YANG model mostly references 5424.
- In section 3 instead of "group level" perhaps it is better to use "global=
 level" (and in the figure) ?  I'm not sure what group means (which group -=
 implies it isn't necessarily the entire log stream).
- Maybe use the term "Remove Collector(s)" instead of Server(s) ? Collector=
 seems more in line with RFC5424 (or "Remote Receiver" if others prefer tha=
t).
- In the Section 3 figure make all the Distributors have a common use of pl=
ural vs singular "buffer(s)", "Log File(s)", "Remote Collector(s)".   User =
Terminal should probably be singular.
- Document is missing the standard legend for the PYANG tree

Regards,
Jason






--_000_A125E53CE190A749957C19483DC79F9F5C9E2CE4US70TWXCHMBA11z_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Exchange Server">
<!-- converted from rtf -->
<style><!-- .EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left:=
 #800000 2px solid; } --></style>
</head>
<body>
<font face=3D"Consolas" size=3D"2"><span style=3D"font-size:10.5pt;">
<div>Hi all,</div>
<div>&nbsp;</div>
<div>During a number of discussions this week with other vendors and operat=
ors I was encouraged to ensure that I raise comments/issues from ALU with s=
ome of the YANG models underway including syslog.&nbsp; Clyde and I met thi=
s morning and we thought it would be
good for me to post the comments to the list.</div>
<div>&nbsp;</div>
<div>I'm going to break the comments into a few email threads - it sometime=
s gets confusing if too many issues are combined into a single discussion.<=
/div>
<div>&nbsp;</div>
<div>-----------------------------------------------</div>
<div>A) clarify syslog-selector behavior</div>
<div>-----------------------------------------------</div>
<div>&nbsp;</div>
<div>It would be good to clarify the behavior of the selector/filter in the=
 draft text &amp; yang module. If we consider the use of the syslog-selecto=
r inside the message-distributors (buffered-logging-action, file-logging-ac=
tion, etc) I believe the intended behavior
is that when a selector is used/configured then it is effectively a &#8220;=
default deny&#8221; filter that only allows log events to pass the selector=
 if they match the configured facility&#43;severity (or the configured seve=
rity).&nbsp; In other words -&gt; if there is no &lt;severity&gt;
or &lt;facility&gt; tags inside a &lt;buffered-logging-action&gt; (i.e. no =
selector config) then no log events would go to the buffer.</div>
<div>&nbsp;</div>
<div>I'm a little less clear on the expected behavior or need for the &lt;n=
one&gt; (case logging-facility-none) leaf. Isn't it just equivalent to the =
absence of any &lt;severity&gt; or &lt;facility&gt; items configured ?</div=
>
<div>&nbsp;</div>
<div>We should also be explicit that the (basic) severity selection is an '=
equals-or-higher' severity decision (note that although lower severity enum=
 values are actually more critical than higher values, e.g. emergency=3D0, =
we should describe this in terms of
severity/criticality IMO). </div>
<div>&nbsp;</div>
<div>Is all the behavior above (including &lt;none&gt;) intended to be the =
exact same for the optional global-logging-action ?&nbsp; If that is the ca=
se and the feature is supported on a platform then I think that means that =
no global config would mean no log messages
sent to any distributors.</div>
<div>&nbsp;</div>
<div>I'm happy to help construct some specific text/descriptions but wanted=
 to make sure I understand the intent first.</div>
<div>&nbsp;</div>
<div>-----------------------------------------------</div>
<div>B) structured data as a single feature</div>
<div>-----------------------------------------------</div>
<div>There are currently two structured data related features.&nbsp; Should=
 we combine that into a single feature ?&nbsp; Do the vendors who support t=
his not tend to then support it for both files and remote destinations anyw=
ays ?</div>
<div>&nbsp;</div>
<div>-----------------------------------------------</div>
<div>C) max sizes/numbers for logs</div>
<div>-----------------------------------------------</div>
<div>There are a few places where a size is configured (buffer-size, file-s=
ize). Implementations will vary on what units are used in a way that isn't =
really directly convertible (e.g. bytes vs # of log messages). </div>
<div>&nbsp;</div>
<div>For file logging some implementations use a retention time rather than=
 a size limit or file number limit so I'm glad to see an if-feature around =
this (or remote it and let the vendor augment for that)</div>
<div>&nbsp;</div>
<div>It is probably more common to have a size for the memory buffers so th=
at is probably OK to leave in.</div>
<div>&nbsp;</div>
<div>Whatever sizes remain in the model:</div>
<div>- remove any default values</div>
<div>- explain in the description that &quot;This leaf specifies the maximu=
m xyz size.&nbsp; The units are not specified in this model and varies by i=
mplementation (e.g. bytes vs number of log messages).&quot;</div>
<div>&nbsp;</div>
<div>-----------------------------------------------</div>
<div>D) terminal distributor and persistency</div>
<div>-----------------------------------------------</div>
<div>Terminal logging is session-specific in several implementations and co=
nfig generally disappears once the session is done.&nbsp; It is also not cl=
ear what logging to the local session should really mean for a netconf sess=
ion.&nbsp; I'm not sure this distributor should
be in the model.</div>
<div>&nbsp;</div>
<div>-----------------------------------------------</div>
<div>E) editorial/minor misc</div>
<div>-----------------------------------------------</div>
<div>- Should we update the WG chair name (David Kessens) ?</div>
<div>- I'd suggest 'list logging-facilities' and 'key &quot;facility&quot;'=
 be changed to 'list facility' with 'key &quot;facility-name&quot;'.&nbsp; =
If a list is in a container then the plural name makes sense for the contai=
ner but I think singular is better for the list (like how
ietf-interfaces is done).</div>
<div>- The introduction says &quot;We are using definitions of Syslog proto=
col from [RFC3164] in this draft.&quot; but the YANG model mostly reference=
s 5424.</div>
<div>- In section 3 instead of &quot;group level&quot; perhaps it is better=
 to use &quot;global level&quot; (and in the figure) ?&nbsp; I'm not sure w=
hat group means (which group - implies it isn't necessarily the entire log =
stream).</div>
<div>- Maybe use the term &quot;Remove Collector(s)&quot; instead of Server=
(s) ? Collector seems more in line with RFC5424 (or &quot;Remote Receiver&q=
uot; if others prefer that).</div>
<div>- In the Section 3 figure make all the Distributors have a common use =
of plural vs singular &quot;buffer(s)&quot;, &quot;Log File(s)&quot;, &quot=
;Remote Collector(s)&quot;.&nbsp;&nbsp; User Terminal should probably be si=
ngular.</div>
<div>- Document is missing the standard legend for the PYANG tree</div>
<div>&nbsp;</div>
<div>Regards,</div>
<div>Jason</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div><font face=3D"Calibri" size=3D"2"><span style=3D"font-size:11pt;">&nbs=
p;</span></font></div>
<div><font face=3D"Calibri" size=3D"2"><span style=3D"font-size:11pt;">&nbs=
p;</span></font></div>
</span></font>
</body>
</html>

--_000_A125E53CE190A749957C19483DC79F9F5C9E2CE4US70TWXCHMBA11z_--


From nobody Thu Mar 26 17:27:01 2015
Return-Path: <jason.sterne@alcatel-lucent.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 A7FE91A1B78 for <netmod@ietfa.amsl.com>; Thu, 26 Mar 2015 17:27:00 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.909
X-Spam-Level: 
X-Spam-Status: No, score=-6.909 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, T_RP_MATCHES_RCVD=-0.01] 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 uV9BeEiPzsfN for <netmod@ietfa.amsl.com>; Thu, 26 Mar 2015 17:26:59 -0700 (PDT)
Received: from smtp-fr.alcatel-lucent.com (fr-hpida-esg-01.alcatel-lucent.com [135.245.210.20]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 559691A01BA for <netmod@ietf.org>; Thu, 26 Mar 2015 17:26:58 -0700 (PDT)
Received: from us70tusmtp2.zam.alcatel-lucent.com (unknown [135.5.2.64]) by Websense Email Security Gateway with ESMTPS id 1F38EF1C793AB for <netmod@ietf.org>; Fri, 27 Mar 2015 00:26:54 +0000 (GMT)
Received: from US70UWXCHHUB02.zam.alcatel-lucent.com (us70uwxchhub02.zam.alcatel-lucent.com [135.5.2.49]) by us70tusmtp2.zam.alcatel-lucent.com (GMO) with ESMTP id t2R0QtkB009755 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL) for <netmod@ietf.org>; Thu, 26 Mar 2015 20:26:55 -0400
Received: from US70TWXCHMBA11.zam.alcatel-lucent.com ([169.254.5.170]) by US70UWXCHHUB02.zam.alcatel-lucent.com ([135.5.2.49]) with mapi id 14.03.0195.001; Thu, 26 Mar 2015 20:26:55 -0400
From: "Sterne, Jason (Jason)" <jason.sterne@alcatel-lucent.com>
To: "netmod@ietf.org" <netmod@ietf.org>
Thread-Topic: syslog-model-03: list of syslog-selectors vs grouping used in-line
Thread-Index: AdBoJLnvjUWECOS2QAC3KMYeejcWkA==
Date: Fri, 27 Mar 2015 00:26:55 +0000
Message-ID: <A125E53CE190A749957C19483DC79F9F5C9E2D3D@US70TWXCHMBA11.zam.alcatel-lucent.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [135.5.27.16]
Content-Type: multipart/alternative; boundary="_000_A125E53CE190A749957C19483DC79F9F5C9E2D3DUS70TWXCHMBA11z_"
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/BLGafqpgZrAW7SBcJRVNNwvD6YU>
Subject: [netmod] syslog-model-03: list of syslog-selectors vs grouping used in-line
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: <http://www.ietf.org/mail-archive/web/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, 27 Mar 2015 00:27:00 -0000

--_000_A125E53CE190A749957C19483DC79F9F5C9E2D3DUS70TWXCHMBA11z_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hi all,

The current model uses the syslog-selector 'in-line' inside each distributo=
r/action object. Some implementations have a list of selector policies and =
then the distributors/actions reference a selector policy. It would be good=
 if the model can somehow accommodate the latter. Here is a proposal:

Rename the grouping syslog-selector grouping to syslog-selector-parms.

Create a new grouping on top of the current syslog-selector:
    grouping syslog-selector {
        choice profile-or-inline {
            case inline {
                uses syslog-selector-parms;
            }
            case profile {
                ...leafref to a syslog-selector-profile...
            }
        }
    }


Add a syslog selector list:
    list syslog-selector-profile {
        key "syslog-sel-id";
        leaf syslog-sel-id {type uint16;}
        uses syslog-selector-parms;
    }

Having a list of syslog selectors is also nice for augmentations. You can't=
 directly augment a grouping in YANG - you must augment an instance of wher=
e the grouping is used. When the grouping is inline in each syslog distribu=
tor/action you'd have to augment in each of those places to add something t=
o the selector logic.

Regards,
Jason


--_000_A125E53CE190A749957C19483DC79F9F5C9E2D3DUS70TWXCHMBA11z_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Exchange Server">
<!-- converted from rtf -->
<style><!-- .EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left:=
 #800000 2px solid; } --></style>
</head>
<body>
<font face=3D"Consolas" size=3D"2"><span style=3D"font-size:10.5pt;">
<div>Hi all,</div>
<div>&nbsp;</div>
<div>The current model uses the syslog-selector 'in-line' inside each distr=
ibutor/action object. Some implementations have a list of selector policies=
 and then the distributors/actions reference a selector policy. It would be=
 good if the model can somehow accommodate
the latter. Here is a proposal:</div>
<div>&nbsp;</div>
<div>Rename the grouping syslog-selector grouping to syslog-selector-parms.=
</div>
<div>&nbsp;</div>
<div>Create a new grouping on top of the current syslog-selector:</div>
<div>&nbsp;&nbsp;&nbsp; grouping syslog-selector {</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; choice profile-or-inline {<=
/div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cas=
e inline {</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp; uses syslog-selector-parms;</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</=
div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cas=
e profile {</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp; ...leafref to a syslog-selector-profile...</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</=
div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</div>
<div>&nbsp;&nbsp;&nbsp; }</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>Add a syslog selector list:</div>
<div>&nbsp;&nbsp;&nbsp; list syslog-selector-profile {</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; key &quot;syslog-sel-id&quo=
t;;</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; leaf syslog-sel-id {type ui=
nt16;}</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; uses syslog-selector-parms;=
</div>
<div>&nbsp;&nbsp;&nbsp; }</div>
<div>&nbsp;</div>
<div>Having a list of syslog selectors is also nice for augmentations. You =
can't directly augment a grouping in YANG - you must augment an instance of=
 where the grouping is used. When the grouping is inline in each syslog dis=
tributor/action you'd have to augment
in each of those places to add something to the selector logic.</div>
<div><font face=3D"Calibri" size=3D"2"><span style=3D"font-size:11pt;">&nbs=
p;</span></font></div>
<div><font face=3D"Calibri" size=3D"2"><span style=3D"font-size:11pt;">Rega=
rds,</span></font></div>
<div><font face=3D"Calibri" size=3D"2"><span style=3D"font-size:11pt;">Jaso=
n</span></font></div>
<div><font face=3D"Calibri" size=3D"2"><span style=3D"font-size:11pt;">&nbs=
p;</span></font></div>
</span></font>
</body>
</html>

--_000_A125E53CE190A749957C19483DC79F9F5C9E2D3DUS70TWXCHMBA11z_--


From nobody Thu Mar 26 17:27:59 2015
Return-Path: <jason.sterne@alcatel-lucent.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 4961F1A01BA for <netmod@ietfa.amsl.com>; Thu, 26 Mar 2015 17:27:57 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.909
X-Spam-Level: 
X-Spam-Status: No, score=-6.909 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, T_RP_MATCHES_RCVD=-0.01] 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 38xAIfz_0LbS for <netmod@ietfa.amsl.com>; Thu, 26 Mar 2015 17:27:55 -0700 (PDT)
Received: from smtp-fr.alcatel-lucent.com (fr-hpida-esg-02.alcatel-lucent.com [135.245.210.21]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3FBA01A1B78 for <netmod@ietf.org>; Thu, 26 Mar 2015 17:27:55 -0700 (PDT)
Received: from us70uusmtp3.zam.alcatel-lucent.com (unknown [135.5.2.65]) by Websense Email Security Gateway with ESMTPS id 4D92AC7DEE06B for <netmod@ietf.org>; Fri, 27 Mar 2015 00:27:49 +0000 (GMT)
Received: from US70UWXCHHUB02.zam.alcatel-lucent.com (us70uwxchhub02.zam.alcatel-lucent.com [135.5.2.49]) by us70uusmtp3.zam.alcatel-lucent.com (GMO) with ESMTP id t2R0RqC3021333 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL) for <netmod@ietf.org>; Thu, 26 Mar 2015 20:27:52 -0400
Received: from US70TWXCHMBA11.zam.alcatel-lucent.com ([169.254.5.170]) by US70UWXCHHUB02.zam.alcatel-lucent.com ([135.5.2.49]) with mapi id 14.03.0195.001; Thu, 26 Mar 2015 20:27:52 -0400
From: "Sterne, Jason (Jason)" <jason.sterne@alcatel-lucent.com>
To: "netmod@ietf.org" <netmod@ietf.org>
Thread-Topic: syslog-model-03: Severity enum values vs identity
Thread-Index: AdBoJNwyYE1MKeifQUmJ+9xS2gAl6g==
Date: Fri, 27 Mar 2015 00:27:52 +0000
Message-ID: <A125E53CE190A749957C19483DC79F9F5C9E2D62@US70TWXCHMBA11.zam.alcatel-lucent.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [135.5.27.16]
Content-Type: multipart/alternative; boundary="_000_A125E53CE190A749957C19483DC79F9F5C9E2D62US70TWXCHMBA11z_"
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/dbAt9E-UfJ44cGqY0D7BPumHXwU>
Subject: [netmod] syslog-model-03: Severity enum values vs identity
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: <http://www.ietf.org/mail-archive/web/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, 27 Mar 2015 00:27:57 -0000

--_000_A125E53CE190A749957C19483DC79F9F5C9E2D62US70TWXCHMBA11z_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hi all,

Should we consider removing the enum values (if we want to keep this as an =
enum) ?  Those are values that are only visible when they are used to encod=
e severity when sending to a remote syslog receiver and I'm not sure if tho=
se should really be in the config model. There has also been some debate ab=
out the use of enum values in general in netmod (considered removing that f=
rom the YANG language altogether).

It may also be useful to change the severity enum to a set of identities.  =
That leaves it a bit more flexible for potential augmentation.

We should add a description that clarifies/defines what "increasing severit=
y" is (since that is the default for how severity 'matches' in the selector=
/filter.  i.e. say that the order of severity amongst the values is the fol=
lowing in increasing severity order: debug (least severe)->info...->emergen=
cy(most severe).

Perhaps reference RFC 5424 again here like is done in the facility identiti=
es.

Regards,
Jason


--_000_A125E53CE190A749957C19483DC79F9F5C9E2D62US70TWXCHMBA11z_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Exchange Server">
<!-- converted from rtf -->
<style><!-- .EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left:=
 #800000 2px solid; } --></style>
</head>
<body>
<font face=3D"Consolas" size=3D"2"><span style=3D"font-size:10.5pt;">
<div>Hi all,</div>
<div>&nbsp;</div>
<div>Should we consider removing the enum values (if we want to keep this a=
s an enum) ?&nbsp; Those are values that are only visible when they are use=
d to encode severity when sending to a remote syslog receiver and I'm not s=
ure if those should really be in the
config model. There has also been some debate about the use of enum values =
in general in netmod (considered removing that from the YANG language altog=
ether). </div>
<div>&nbsp;</div>
<div>It may also be useful to change the severity enum to a set of identiti=
es.&nbsp; That leaves it a bit more flexible for potential augmentation.</d=
iv>
<div>&nbsp;</div>
<div>We should add a description that clarifies/defines what &quot;increasi=
ng severity&quot; is (since that is the default for how severity 'matches' =
in the selector/filter.&nbsp; i.e. say that the order of severity amongst t=
he values is the following in increasing severity
order: debug (least severe)-&gt;info...-&gt;emergency(most severe).</div>
<div>&nbsp;</div>
<div>Perhaps reference RFC 5424 again here like is done in the facility ide=
ntities.</div>
<div><font face=3D"Calibri" size=3D"2"><span style=3D"font-size:11pt;">&nbs=
p;</span></font></div>
<div><font face=3D"Calibri" size=3D"2"><span style=3D"font-size:11pt;">Rega=
rds,</span></font></div>
<div><font face=3D"Calibri" size=3D"2"><span style=3D"font-size:11pt;">Jaso=
n</span></font></div>
<div><font face=3D"Calibri" size=3D"2"><span style=3D"font-size:11pt;">&nbs=
p;</span></font></div>
</span></font>
</body>
</html>

--_000_A125E53CE190A749957C19483DC79F9F5C9E2D62US70TWXCHMBA11z_--


From nobody Thu Mar 26 17:29:12 2015
Return-Path: <jason.sterne@alcatel-lucent.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 B482C1A1B78 for <netmod@ietfa.amsl.com>; Thu, 26 Mar 2015 17:29:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.909
X-Spam-Level: 
X-Spam-Status: No, score=-6.909 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, T_RP_MATCHES_RCVD=-0.01] 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 kKsG4dIho7ZH for <netmod@ietfa.amsl.com>; Thu, 26 Mar 2015 17:29:09 -0700 (PDT)
Received: from smtp-fr.alcatel-lucent.com (fr-hpgre-esg-01.alcatel-lucent.com [135.245.210.22]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5BC231A01BA for <netmod@ietf.org>; Thu, 26 Mar 2015 17:29:09 -0700 (PDT)
Received: from us70tusmtp1.zam.alcatel-lucent.com (unknown [135.5.2.63]) by Websense Email Security Gateway with ESMTPS id 02C7980E6A29A for <netmod@ietf.org>; Fri, 27 Mar 2015 00:29:03 +0000 (GMT)
Received: from US70UWXCHHUB02.zam.alcatel-lucent.com (us70uwxchhub02.zam.alcatel-lucent.com [135.5.2.49]) by us70tusmtp1.zam.alcatel-lucent.com (GMO) with ESMTP id t2R0T6rD005756 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL) for <netmod@ietf.org>; Thu, 26 Mar 2015 20:29:06 -0400
Received: from US70TWXCHMBA11.zam.alcatel-lucent.com ([169.254.5.170]) by US70UWXCHHUB02.zam.alcatel-lucent.com ([135.5.2.49]) with mapi id 14.03.0195.001; Thu, 26 Mar 2015 20:29:06 -0400
From: "Sterne, Jason (Jason)" <jason.sterne@alcatel-lucent.com>
To: "netmod@ietf.org" <netmod@ietf.org>
Thread-Topic: syslog-model-03: buffered-logging-action as a list
Thread-Index: AdBoJQgWMS3JzPj8QYeR1iqKEMgQYw==
Date: Fri, 27 Mar 2015 00:29:06 +0000
Message-ID: <A125E53CE190A749957C19483DC79F9F5C9E2D80@US70TWXCHMBA11.zam.alcatel-lucent.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [135.5.27.16]
Content-Type: multipart/alternative; boundary="_000_A125E53CE190A749957C19483DC79F9F5C9E2D80US70TWXCHMBA11z_"
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/5OcEoafE-E67NbYRYHSUTK8Hs5Y>
Subject: [netmod] syslog-model-03: buffered-logging-action as a list
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: <http://www.ietf.org/mail-archive/web/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, 27 Mar 2015 00:29:10 -0000

--_000_A125E53CE190A749957C19483DC79F9F5C9E2D80US70TWXCHMBA11z_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hi all,

Last one for this round of review...

Several other distributors are already lists. Some implementations also sup=
port multiple memory buffers (e.g. one for critical log events, one for eve=
rything, etc). Can we make buffered-logging-action a list ?

    container buffered-logging-action {
        list buffer {
            key "buffer-name";
            leaf buffer-name {type string;}
            uses syslog-selector;
            ...
Regards,
Jason


--_000_A125E53CE190A749957C19483DC79F9F5C9E2D80US70TWXCHMBA11z_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Exchange Server">
<!-- converted from rtf -->
<style><!-- .EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left:=
 #800000 2px solid; } --></style>
</head>
<body>
<font face=3D"Consolas" size=3D"2"><span style=3D"font-size:10.5pt;">
<div>Hi all,</div>
<div>&nbsp;</div>
<div>Last one for this round of review&#8230;</div>
<div>&nbsp;</div>
<div>Several other distributors are already lists. Some implementations als=
o support multiple memory buffers (e.g. one for critical log events, one fo=
r everything, etc). Can we make buffered-logging-action a list ?</div>
<div>&nbsp;</div>
<div>&nbsp;&nbsp;&nbsp; container buffered-logging-action {</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; list buffer {</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; key=
 &quot;buffer-name&quot;;</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lea=
f buffer-name {type string;}</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; use=
s syslog-selector;</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...=
</div>
<div>Regards,</div>
<div>Jason</div>
<div>&nbsp;</div>
</span></font>
</body>
</html>

--_000_A125E53CE190A749957C19483DC79F9F5C9E2D80US70TWXCHMBA11z_--


From nobody Thu Mar 26 18:12:40 2015
Return-Path: <j.schoenwaelder@jacobs-university.de>
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 815011A038D for <netmod@ietfa.amsl.com>; Thu, 26 Mar 2015 18:12:38 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.86
X-Spam-Level: 
X-Spam-Status: No, score=-3.86 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] 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 bDxt4N4wYNLm for <netmod@ietfa.amsl.com>; Thu, 26 Mar 2015 18:12:36 -0700 (PDT)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id BCAC61A0179 for <netmod@ietf.org>; Thu, 26 Mar 2015 18:12:36 -0700 (PDT)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id 8BD931206; Fri, 27 Mar 2015 02:12:35 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.220]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id AXy37bGg-cN3; Fri, 27 Mar 2015 02:12:11 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS; Fri, 27 Mar 2015 02:12:34 +0100 (CET)
Received: from localhost (demetrius2.jacobs-university.de [212.201.44.47]) by hermes.jacobs-university.de (Postfix) with ESMTP id 182502002B; Fri, 27 Mar 2015 02:12:34 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius2.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id EzOa5jPcwylL; Fri, 27 Mar 2015 02:12:33 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id 5297620013; Fri, 27 Mar 2015 02:12:32 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id 2DF4E3283A82; Fri, 27 Mar 2015 02:12:32 +0100 (CET)
Date: Fri, 27 Mar 2015 02:12:32 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: "Sterne, Jason (Jason)" <jason.sterne@alcatel-lucent.com>
Message-ID: <20150327011232.GB70967@elstar.local>
Mail-Followup-To: "Sterne, Jason (Jason)" <jason.sterne@alcatel-lucent.com>, "netmod@ietf.org" <netmod@ietf.org>
References: <A125E53CE190A749957C19483DC79F9F5C9E2CE4@US70TWXCHMBA11.zam.alcatel-lucent.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <A125E53CE190A749957C19483DC79F9F5C9E2CE4@US70TWXCHMBA11.zam.alcatel-lucent.com>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/EgvYuY_zXdAZj-NS9-CTFq8hZPE>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] Some feedback on syslog-model-03
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
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: <http://www.ietf.org/mail-archive/web/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, 27 Mar 2015 01:12:38 -0000

On Fri, Mar 27, 2015 at 12:22:44AM +0000, Sterne, Jason (Jason) wrote:
> 
> -----------------------------------------------
> C) max sizes/numbers for logs
> -----------------------------------------------
> There are a few places where a size is configured (buffer-size, file-size). Implementations will vary on what units are used in a way that isn't really directly convertible (e.g. bytes vs # of log messages).
> 
> For file logging some implementations use a retention time rather than a size limit or file number limit so I'm glad to see an if-feature around this (or remote it and let the vendor augment for that)
> 
> It is probably more common to have a size for the memory buffers so that is probably OK to leave in.
> 
> Whatever sizes remain in the model:
> - remove any default values
> - explain in the description that "This leaf specifies the maximum xyz size.  The units are not specified in this model and varies by implementation (e.g. bytes vs number of log messages)."
>

Assuming that the number of widely used differences is small, I think
this should be modeled properly and features may be used to announce
which of the options is supported. This way, I can write a robust
network management application that does not simply configure 42 and
then hopes something meaningful will happen. An API contract needs to
be tight to be useful.

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Thu Mar 26 18:15:19 2015
Return-Path: <j.schoenwaelder@jacobs-university.de>
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 201131A03FF for <netmod@ietfa.amsl.com>; Thu, 26 Mar 2015 18:15:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.86
X-Spam-Level: 
X-Spam-Status: No, score=-3.86 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] 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 wuGEQc03Xyj5 for <netmod@ietfa.amsl.com>; Thu, 26 Mar 2015 18:15:16 -0700 (PDT)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 8C45C1A039F for <netmod@ietf.org>; Thu, 26 Mar 2015 18:15:16 -0700 (PDT)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id 603AF6F7; Fri, 27 Mar 2015 02:15:15 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.220]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id 5RD2b8O6-KtJ; Fri, 27 Mar 2015 02:14:51 +0100 (CET)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS; Fri, 27 Mar 2015 02:15:14 +0100 (CET)
Received: from localhost (demetrius4.jacobs-university.de [212.201.44.49]) by hermes.jacobs-university.de (Postfix) with ESMTP id 9AEDC2002C; Fri, 27 Mar 2015 02:15:14 +0100 (CET)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius4.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id dfwdwT30Cxix; Fri, 27 Mar 2015 02:15:14 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id 4C1B820013; Fri, 27 Mar 2015 02:15:13 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id 476113283AB7; Fri, 27 Mar 2015 02:15:13 +0100 (CET)
Date: Fri, 27 Mar 2015 02:15:13 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: "Sterne, Jason (Jason)" <jason.sterne@alcatel-lucent.com>
Message-ID: <20150327011513.GC70967@elstar.local>
Mail-Followup-To: "Sterne, Jason (Jason)" <jason.sterne@alcatel-lucent.com>, "netmod@ietf.org" <netmod@ietf.org>
References: <A125E53CE190A749957C19483DC79F9F5C9E2D62@US70TWXCHMBA11.zam.alcatel-lucent.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <A125E53CE190A749957C19483DC79F9F5C9E2D62@US70TWXCHMBA11.zam.alcatel-lucent.com>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/5oLG-digMK4NPpWxFrXE2rRI7xk>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] syslog-model-03: Severity enum values vs identity
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
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: <http://www.ietf.org/mail-archive/web/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, 27 Mar 2015 01:15:18 -0000

On Fri, Mar 27, 2015 at 12:27:52AM +0000, Sterne, Jason (Jason) wrote:
> Hi all,
> 
> Should we consider removing the enum values (if we want to keep this as an enum) ?  Those are values that are only visible when they are used to encode severity when sending to a remote syslog receiver and I'm not sure if those should really be in the config model. There has also been some debate about the use of enum values in general in netmod (considered removing that from the YANG language altogether).

Removing enums from YANG was never a concrete proposal.
 
> It may also be useful to change the severity enum to a set of identities.  That leaves it a bit more flexible for potential augmentation.
> 
> We should add a description that clarifies/defines what "increasing severity" is (since that is the default for how severity 'matches' in the selector/filter.  i.e. say that the order of severity amongst the values is the following in increasing severity order: debug (least severe)->info...->emergency(most severe).
> 
> Perhaps reference RFC 5424 again here like is done in the facility identities.
>

My understanding is that severity values are limited due to the way
the protocol works and hence making them extensible in the
configuration data model may not really be meaningful. Am I missing
something?

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Fri Mar 27 03:24:15 2015
Return-Path: <janl@tail-f.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 3C6411ACD46 for <netmod@ietfa.amsl.com>; Fri, 27 Mar 2015 03:24:14 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.909
X-Spam-Level: 
X-Spam-Status: No, score=-1.909 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, T_RP_MATCHES_RCVD=-0.01] 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 bgq42CH3qAOy for <netmod@ietfa.amsl.com>; Fri, 27 Mar 2015 03:24:12 -0700 (PDT)
Received: from mail.tail-f.com (mail.tail-f.com [83.241.162.140]) by ietfa.amsl.com (Postfix) with ESMTP id D56B21ACD48 for <netmod@ietf.org>; Fri, 27 Mar 2015 03:24:11 -0700 (PDT)
Received: from [10.148.226.151] (unknown [10.148.226.151]) by mail.tail-f.com (Postfix) with ESMTPSA id 941F31280B68; Fri, 27 Mar 2015 11:24:10 +0100 (CET)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2070.6\))
Content-Type: multipart/signed; boundary="Apple-Mail=_78756382-8480-4D40-94F4-806480DC94B8"; protocol="application/pgp-signature"; micalg=pgp-sha512
X-Pgp-Agent: GPGMail 2.5b6
From: Jan Lindblad <janl@tail-f.com>
In-Reply-To: <CAAchPMuFQzgd9AfrfqwEw5+Xhew1jTTR6ga0NAS8Lt20tByJ3Q@mail.gmail.com>
Date: Fri, 27 Mar 2015 11:23:09 +0100
Message-Id: <9BE295B9-6889-4AE2-8644-871CC0FC06E1@tail-f.com>
References: <20150324001224.12287.12581.idtracker@ietfa.amsl.com> <BEB80BE5-DCCB-43DB-8AAA-7738AFB3A6B6@juniper.net> <CAAchPMuFQzgd9AfrfqwEw5+Xhew1jTTR6ga0NAS8Lt20tByJ3Q@mail.gmail.com>
To: Mahesh Jethanandani <mjethanandani@gmail.com>
X-Mailer: Apple Mail (2.2070.6)
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/vTYm08evTR2su1MJlruWmbXpi6M>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] New Version Notification for draft-bogdanovic-netmod-yang-model-classification-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: <http://www.ietf.org/mail-archive/web/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, 27 Mar 2015 10:24:14 -0000

--Apple-Mail=_78756382-8480-4D40-94F4-806480DC94B8
Content-Type: multipart/alternative;
	boundary="Apple-Mail=_FF68B570-6329-40A3-9E66-6E2D723EB502"


--Apple-Mail=_FF68B570-6329-40A3-9E66-6E2D723EB502
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

Mahesh, Dean, all,

The word =E2=80=9Cservice=E2=80=9D has many meanings, of course. Service =
providers often understand the terms used in TM Forum: Customer Facing =
Service (CFS) and Resource Facing Service (RFS). CFS=E2=80=99 are what =
customers orders, e.g. =E2=80=9Ctriple play=E2=80=9D. They map to the =
=E2=80=9Ctechnical services=E2=80=9D in the network. Like a package of =
Connectivity, mail, voip, video and Spotify. Each RFS may in turn be =
composed of lower level RFS=E2=80=99. Connectivity might consist of DNS, =
DHCP, NAT, basic firewall and internet access.

I think there isn=E2=80=99t much point in us starting to standardize the =
CFS structure. To the extent that this needs to be standardized, other =
organizations are already on to that. Instead, we should focus on the =
more common RFS types.

/jan


> I said in the meeting that two levels of models - service and device, =
would be sufficient.
>=20
> After talking to operators, I am not so convinced, and here is why. =
First of all, we are misrepresenting the term service models as =
operators see it. A service is something that customer orders. That =
could be "I need 1G link between these two end points and I want your =
gold level QoS service on it.". Period. There is no mention of what IP =
address or which device this will get configured on. These parameters, =
as we know are needed to configure any service on a device. These =
service models reside in the BSS layer.
>=20
> So we need a modelling layer between the service level model and the =
device (NE) level model. These models for the lack of better term can be =
called network abstraction level models, which consists of models that =
constitute non-orderable network objects e.g. the IP address of the end =
points where the 1G service would be configured and the device-id where =
the QoS parameters need to configured for the gold service. They model =
parameters that customers typically do not specify or the BSS layer =
knows or cares about. These network abstraction level models reside in =
the SDN controller or the NETCONF client.
>=20
> Then come the device level models that you and me are familiar with =
and are the focus of most models being developed in IETF. The device =
level models are models of features supported by the device and reside =
on the device itself.
>=20
> If we keep these three levels for model definitions, it will be easier =
to classify where any particular model should reside.


--Apple-Mail=_FF68B570-6329-40A3-9E66-6E2D723EB502
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" =
class=3D"">Mahesh, Dean, all,<div class=3D""><br class=3D""></div><div =
class=3D"">The word =E2=80=9Cservice=E2=80=9D has many meanings, of =
course. Service providers often understand the terms used in TM Forum: =
Customer Facing Service (CFS) and Resource Facing Service (RFS). CFS=E2=80=
=99 are what customers orders, e.g. =E2=80=9Ctriple play=E2=80=9D. They =
map to the =E2=80=9Ctechnical services=E2=80=9D in the network. Like a =
package of Connectivity, mail, voip, video and Spotify. Each RFS may in =
turn be composed of lower level RFS=E2=80=99. Connectivity might consist =
of DNS, DHCP, NAT, basic firewall and internet access.</div><div =
class=3D""><br class=3D""></div><div class=3D"">I think there isn=E2=80=99=
t much point in us starting to standardize the CFS structure. To the =
extent that this needs to be standardized, other organizations are =
already on to that. Instead, we should focus on the more common RFS =
types.</div><div class=3D""><br class=3D""></div><div =
class=3D"">/jan</div><div class=3D""><br class=3D""></div><div =
class=3D""><br class=3D""></div><div class=3D""><div><blockquote =
type=3D"cite" class=3D""><div class=3D""><div dir=3D"ltr" class=3D""><div =
class=3D"">I said in the meeting that two levels of models - service and =
device, would be sufficient.</div><div class=3D"">=20
&nbsp;<br class=3D""></div><div class=3D"">After talking to operators, I =
am not so convinced, and here is why. First of all, we are =
misrepresenting the term service models as operators see it. A service =
is something that customer orders. That could be "I need 1G link between =
these two end points and I want your gold level QoS service on it.". =
Period. There is no mention of what IP address or which device this will =
get configured on. These parameters, as we know are needed to configure =
any service on a device. These service models reside in the BSS =
layer.</div><div class=3D""><br class=3D""></div><div class=3D"">So we =
need a modelling layer between the service level model and the device =
(NE) level model. These models for the lack of better term can be called =
network abstraction level models, which consists of models that =
constitute<b class=3D""> non-orderable network objects</b> e.g. the IP =
address of the end points where the 1G service would be configured and =
the device-id where the QoS parameters need to configured for the gold =
service. They model parameters that customers typically do not specify =
or the BSS layer knows or cares about. These network abstraction level =
models reside in the SDN controller or the NETCONF client.</div><div =
class=3D""><br class=3D""></div><div class=3D"">Then come the device =
level models that you and me are familiar with and are the focus of most =
models being developed in IETF. The device level models are models of =
features supported by the device and reside on the device =
itself.</div><div class=3D""><br class=3D""></div><div class=3D"">If we =
keep these three levels for model definitions, it will be easier to =
classify where any particular model should =
reside.</div></div></div></blockquote></div><br =
class=3D""></div></body></html>=

--Apple-Mail=_FF68B570-6329-40A3-9E66-6E2D723EB502--

--Apple-Mail=_78756382-8480-4D40-94F4-806480DC94B8
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
	filename=signature.asc
Content-Type: application/pgp-signature;
	name=signature.asc
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQEcBAEBCgAGBQJVFS+NAAoJEBSCnbqufIisnUMIAIa3eXI+axnjMIKNcgu/3EpV
wcWEvuCiVhF5WeLSqlsGGIBk+xUqt43mt4Eby9CyIPLUPnf8T6B5E6n94EuasnK0
ApU0jsLPauQwQ2znOI6Qbjs0L4/BuRWbCS2flacUDn8+rWdlBA5YSKzQZVP+2YT9
d5mj7DCMtesEYyPDZ4uJGw0p7FIqO1Dx6Mgcw0j1sbSFpFfDqLQ2vObM18qskyzk
d4/+nSVsJ3QaG4xTUSJGIlyXqeYbkz1GEadDDYTB4ojDae+4egGN7nkT+GUyib9j
Rp02QWRMHmcZn039D/c4+8t4tOu6Fs2JgbWX9v4eIOThUc3++A7jRf3wV2fH6Us=
=h9zp
-----END PGP SIGNATURE-----

--Apple-Mail=_78756382-8480-4D40-94F4-806480DC94B8--


From nobody Sat Mar 28 08:08:37 2015
Return-Path: <mbj@tail-f.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 6BEFA1A887A for <netmod@ietfa.amsl.com>; Sat, 28 Mar 2015 08:08:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.79
X-Spam-Level: 
X-Spam-Status: No, score=0.79 tagged_above=-999 required=5 tests=[BAYES_50=0.8, T_RP_MATCHES_RCVD=-0.01] 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 9Uj8KUxyO8iN for <netmod@ietfa.amsl.com>; Sat, 28 Mar 2015 08:08:35 -0700 (PDT)
Received: from mail.tail-f.com (mail.tail-f.com [83.241.162.140]) by ietfa.amsl.com (Postfix) with ESMTP id 984901A8879 for <netmod@ietf.org>; Sat, 28 Mar 2015 08:08:34 -0700 (PDT)
Received: from localhost (unknown [213.136.39.104]) by mail.tail-f.com (Postfix) with ESMTPSA id A85911280008 for <netmod@ietf.org>; Sat, 28 Mar 2015 16:08:33 +0100 (CET)
Date: Sat, 28 Mar 2015 16:08:37 +0100 (CET)
Message-Id: <20150328.160837.891193389716580490.mbj@tail-f.com>
To: netmod@ietf.org
From: Martin Bjorklund <mbj@tail-f.com>
X-Mailer: Mew version 6.5 on Emacs 24.3 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/HIO8-LB1IMGawm6IXwg1ADl9Cek>
Subject: [netmod] Y45 again
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: <http://www.ietf.org/mail-archive/web/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: Sat, 28 Mar 2015 15:08:36 -0000

Hi,

This is another attempt to solve the conformance problem, building on
the idea that Lada suggested.

The proposed solution does not require any changes to the upgrade
rules from 6020 (specifically, a typedef/grouping can expand its value
space).

The solution relies on the observation that import may or may not
indicate a run-time dependency between modules.  If module A imports
module B, and A just uses a typedef from B, there is no requirement
that a server that implements all protocol accessible nodes in A also
implements all protocol accessible nodes in B.

In the rest of the description, "implement a module" means "implements
all protocol accessible nodes from a module".

Some constructs imply a run-time dependency.  If module A augments
module B, there is a run-time dependency, meaning that a server that
implements A must also implement B (modulo features).  A leafref also
imply a run-time dependency.  (must and when expressions do not)

So, the idea is this:

  If a server implements a module A that imports B, and A augments B
  or has a leafref to a node in B, the server MUST implement *some
  version* of module B that has the nodes A references.  This is
  regardless of A imports B by revision or not.

  If a module A imports B by revision, any typedefs or a groupings
  from B are picked from the specified revision of B, regardless of
  which revision (if any!) of B the server implements.

  If a module A imports B without revision, and A uses typedefs and/or
  groupings from B, the server MUST pick and advertise one revision of
  B that has the used typedefs and groupings.  This requires a way to
  advertise a module with "conformance=no-protocol-accessible-nodes",
  so that the server can advertise the module w/o implementing its
  protocol accessible nodes.

All this taken together means that by looking at the advertised
modules and their import revisions, a client knows the exact types
and groupings used everywhere.

A module writer can choose to import by revision (thus locking down
the typedefs and groupings used), or import without revision (allowing
future updated typedefs and groupings to be incorporated).

Repeating the example in P1 from
draft-bjorklund-yang-conformance-problem-01:

  module mod-a {
    ...
    revision 2001-01-01;        // initial version
    typedef foo {
      type enumeration {
        enum q;
      }
    }
    grouping bar {
      leaf x { type string; }
    }
  }

  module mod-a {
    ...
    revision 2002-01-01;        // new version
    typedef foo {
      type enumeration {
        enum q;
        enum w;                 // enum added
      }
    }
    grouping bar {
      leaf x { type string; }
      leaf y { type string; }   // grouping extended
    }
  }

  module mod-b {
    ...
    revision 2001-01-01;
    import mod-a {
      prefix a;
      revision 2001-01-01;      // uses initial vsn of mod-a
    }
    leaf b {
      type a:foo;
    }
    container b2 {
      uses a:bar;
    }
  }

  module mod-c {
    ...
    revision 2002-01-01;
    import mod-a {
      prefix a;
      revision 2002-01-01;      // uses new vsn of mod-a
    }
    leaf c {
      type a:foo;
    }
    container c2 {
      uses a:bar;
    }
  }

  module mod-d {
    ...
    revision 2002-01-01;
    import mod-a                // uses unknown vsn of mod-a
      prefix a;
    }
    leaf d {
      type a:foo;
    }
    container d2 {
      uses a:bar;
    }
  }

A server might advertise:

  mod-a 2002-01-01
  mod-b 2001-01-01 // uses mod-a 2001-01-01, since import by revision
  mod-c 2002-01-01 // uses mod-a 2002-01-01, since import by revision
  mod-d 2002-01-01 // uses mod-a 2002-01-01, since it is advertised

Another server might advertise:

  mod-a 2001-01-01 conformance=no-protocol-accessible-nodes
  mod-c 2002-01-01 // uses mod-a 2002-01-01, since import by revision
  mod-d 2002-01-01 // uses mod-a 2001-01-01, since it is advertised

Note that it is also ok to advertise:

  mod-b 2001-01-01 // uses mod-a 2001-01-01, since import by revision
  mod-c 2002-01-01 // uses mod-a 2002-01-01, since import by revision

I.e., if import-by revision is used everywhere, a server may not
advertise the imported module.  Assume this was not the case.  Then
a server might advertise the following, which is unclear:

  mod-a 2001-01-01 conformance=no-protocol-accessible-nodes
  mod-a 2002-01-01 conformance=no-protocol-accessible-nodes
  mod-b 2001-01-01 // uses mod-a 2001-01-01, since import by revision
  mod-c 2002-01-01 // uses mod-a 2002-01-01, since import by revision
  mod-d 2002-01-01 // which version of a is used???


This solution solves the conformance drift problem (P1 in
draft-bjorklund-yang-conformance-problem-01) and conformance ambiguity
(P2) by having clear rules what import with and without revision
means.



/martin


From nobody Sat Mar 28 11:21:21 2015
Return-Path: <andy@yumaworks.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 CFB511A8996 for <netmod@ietfa.amsl.com>; Sat, 28 Mar 2015 11:21:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.979
X-Spam-Level: 
X-Spam-Status: No, score=-1.979 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] 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 akxQlozrvNIy for <netmod@ietfa.amsl.com>; Sat, 28 Mar 2015 11:21:17 -0700 (PDT)
Received: from mail-la0-f54.google.com (mail-la0-f54.google.com [209.85.215.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 675911A8ABD for <netmod@ietf.org>; Sat, 28 Mar 2015 11:21:17 -0700 (PDT)
Received: by labe2 with SMTP id e2so91632443lab.3 for <netmod@ietf.org>; Sat, 28 Mar 2015 11:21:14 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=P6WzK10xsMIZZ7EZZMy5mCq7w0C8dQ0JIOX69GwlVsY=; b=bb+wZRZzuoT1CNt3cgK79qx9N4OgwVzkcEtSqoPSKC/7Xl8F6yHZ8lgWIGet44KyMT HZ/s7+3/Ao6WTU+sW/weNUl9bvjTYwg8cNFcp7DT5Hj//DJ97fsgkZqzYAMrwhTkLIUk qRbeynW2eWxYMqOnrvPZl12tD22xI1LPPMIznvNL+VGXOdSDSUdiF3JMcS1Xdf21GsgN Srg855zGTVixPfHAVn3ypZLB7zQuUb8U9udeG9/25pIYC/nWHyi59w0zNrDfBweEDB0J M3kqhyiQQGMMR1hllmTDcPEfSHorDO3JPaNtJ+E8PjyxjJcCeiWqvJit7tuOQhPcr4CD 0C+g==
X-Gm-Message-State: ALoCoQngMrNX+LKKNh7j/8bCQVA9nWVRHVthE63G0SVN2v7jZM6slWE7Ra70ttX2wFg5ofOq/GSU
MIME-Version: 1.0
X-Received: by 10.113.4.105 with SMTP id cd9mr21097402lbd.38.1427566874604; Sat, 28 Mar 2015 11:21:14 -0700 (PDT)
Received: by 10.112.98.168 with HTTP; Sat, 28 Mar 2015 11:21:14 -0700 (PDT)
In-Reply-To: <20150328.160837.891193389716580490.mbj@tail-f.com>
References: <20150328.160837.891193389716580490.mbj@tail-f.com>
Date: Sat, 28 Mar 2015 11:21:14 -0700
Message-ID: <CABCOCHSJ4+rJerLO4f0i-vO-zmMD2Bs+SepnXQVmQn9N+3FE+g@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Martin Bjorklund <mbj@tail-f.com>
Content-Type: text/plain; charset=UTF-8
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/9SmuVYBIr1kzc36JnrAJj-lv-Gw>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] Y45 again
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: <http://www.ietf.org/mail-archive/web/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: Sat, 28 Mar 2015 18:21:19 -0000

Hi,

Some concerns:

1) the specific revisions of implemented protocol accessible objects
come from the protocol-specific advertisement mechanisms.
I would prefer that all YANG conformance requirements be
derivable from a single solution, based on the ietf-yang-library.
We are headed that way with YANG 1.1 for NETCONF.
RESTCONF and CoMI will both use the library exclusively to
announce conformance.

2) Off-line validation mechanisms that validate protocol messages
need to figure out the library contents somehow.  We should
not have to force all readers and writers to deal with import-by-revision
everywhere.  Instead, tool developers need to write smarter code.

3) This is complicated, but the simple solution of ad-hoc cut-and-pasting
of definitions was a disaster.  As Juergen pointed out to me yesterday,
this would lead to a situation where we had a nice clean ietf-yang-types,
but there would be copies of its various typedefs scattered over all the other
modules. Repeat for every module and the result is even much worse.

4) Now it will be OK to extend typedefs and groupings, but
the this leads to a scenario where essentially every single
definition has its own revision.  IMO it is very confusing
that modules base, A, and B are all using different revisions
of the "foo" typedef.


module T {
    ...
   revision 2013-01-01;
    typedef foo {
        type int32 { range "1..10"; }
     }
}

module T {
   ...
   revision 2014-01-01;
    typedef foo {
        type int32 { range "1..20"; }
     }
}

module T {
   ...
   revision 2015-01-01;
    typedef foo {
        type int32 { range "1..30"; }
     }
}


module base {
   ...
   import T {
        prefix T;
        revision-date 2015-01-01;
   }

   list some-list {
       key i;
       leaf i { type int32; }
       leaf foo-leaf { type T:foo; }
   }
}


module A {
   ...
   import T {
        prefix T;
        revision-date 2013-01-01;
   }
   import base { prefix b; }

    augment base:/some-list {
         leaf my-foo-leaf { type T:foo; }
    }
    list my-list {
       must "a >= b";
       key a;
       leaf a { type T:foo; }
       leaf b {
          type leafref { path /b:some-list/b:foo-leaf; }
       }
    }
}


module B {
   ...
   import T {
        prefix T;
        revision-date 2014-01-01;
   }
   import base { prefix b; }

    augment base:/some-list {
         leaf another-foo-leaf { type T:foo; }
    }
}



Andy


On Sat, Mar 28, 2015 at 8:08 AM, Martin Bjorklund <mbj@tail-f.com> wrote:
> Hi,
>
> This is another attempt to solve the conformance problem, building on
> the idea that Lada suggested.
>
> The proposed solution does not require any changes to the upgrade
> rules from 6020 (specifically, a typedef/grouping can expand its value
> space).
>
> The solution relies on the observation that import may or may not
> indicate a run-time dependency between modules.  If module A imports
> module B, and A just uses a typedef from B, there is no requirement
> that a server that implements all protocol accessible nodes in A also
> implements all protocol accessible nodes in B.
>
> In the rest of the description, "implement a module" means "implements
> all protocol accessible nodes from a module".
>
> Some constructs imply a run-time dependency.  If module A augments
> module B, there is a run-time dependency, meaning that a server that
> implements A must also implement B (modulo features).  A leafref also
> imply a run-time dependency.  (must and when expressions do not)
>
> So, the idea is this:
>
>   If a server implements a module A that imports B, and A augments B
>   or has a leafref to a node in B, the server MUST implement *some
>   version* of module B that has the nodes A references.  This is
>   regardless of A imports B by revision or not.
>
>   If a module A imports B by revision, any typedefs or a groupings
>   from B are picked from the specified revision of B, regardless of
>   which revision (if any!) of B the server implements.
>
>   If a module A imports B without revision, and A uses typedefs and/or
>   groupings from B, the server MUST pick and advertise one revision of
>   B that has the used typedefs and groupings.  This requires a way to
>   advertise a module with "conformance=no-protocol-accessible-nodes",
>   so that the server can advertise the module w/o implementing its
>   protocol accessible nodes.
>
> All this taken together means that by looking at the advertised
> modules and their import revisions, a client knows the exact types
> and groupings used everywhere.
>
> A module writer can choose to import by revision (thus locking down
> the typedefs and groupings used), or import without revision (allowing
> future updated typedefs and groupings to be incorporated).
>
> Repeating the example in P1 from
> draft-bjorklund-yang-conformance-problem-01:
>
>   module mod-a {
>     ...
>     revision 2001-01-01;        // initial version
>     typedef foo {
>       type enumeration {
>         enum q;
>       }
>     }
>     grouping bar {
>       leaf x { type string; }
>     }
>   }
>
>   module mod-a {
>     ...
>     revision 2002-01-01;        // new version
>     typedef foo {
>       type enumeration {
>         enum q;
>         enum w;                 // enum added
>       }
>     }
>     grouping bar {
>       leaf x { type string; }
>       leaf y { type string; }   // grouping extended
>     }
>   }
>
>   module mod-b {
>     ...
>     revision 2001-01-01;
>     import mod-a {
>       prefix a;
>       revision 2001-01-01;      // uses initial vsn of mod-a
>     }
>     leaf b {
>       type a:foo;
>     }
>     container b2 {
>       uses a:bar;
>     }
>   }
>
>   module mod-c {
>     ...
>     revision 2002-01-01;
>     import mod-a {
>       prefix a;
>       revision 2002-01-01;      // uses new vsn of mod-a
>     }
>     leaf c {
>       type a:foo;
>     }
>     container c2 {
>       uses a:bar;
>     }
>   }
>
>   module mod-d {
>     ...
>     revision 2002-01-01;
>     import mod-a                // uses unknown vsn of mod-a
>       prefix a;
>     }
>     leaf d {
>       type a:foo;
>     }
>     container d2 {
>       uses a:bar;
>     }
>   }
>
> A server might advertise:
>
>   mod-a 2002-01-01
>   mod-b 2001-01-01 // uses mod-a 2001-01-01, since import by revision
>   mod-c 2002-01-01 // uses mod-a 2002-01-01, since import by revision
>   mod-d 2002-01-01 // uses mod-a 2002-01-01, since it is advertised
>
> Another server might advertise:
>
>   mod-a 2001-01-01 conformance=no-protocol-accessible-nodes
>   mod-c 2002-01-01 // uses mod-a 2002-01-01, since import by revision
>   mod-d 2002-01-01 // uses mod-a 2001-01-01, since it is advertised
>
> Note that it is also ok to advertise:
>
>   mod-b 2001-01-01 // uses mod-a 2001-01-01, since import by revision
>   mod-c 2002-01-01 // uses mod-a 2002-01-01, since import by revision
>
> I.e., if import-by revision is used everywhere, a server may not
> advertise the imported module.  Assume this was not the case.  Then
> a server might advertise the following, which is unclear:
>
>   mod-a 2001-01-01 conformance=no-protocol-accessible-nodes
>   mod-a 2002-01-01 conformance=no-protocol-accessible-nodes
>   mod-b 2001-01-01 // uses mod-a 2001-01-01, since import by revision
>   mod-c 2002-01-01 // uses mod-a 2002-01-01, since import by revision
>   mod-d 2002-01-01 // which version of a is used???
>
>
> This solution solves the conformance drift problem (P1 in
> draft-bjorklund-yang-conformance-problem-01) and conformance ambiguity
> (P2) by having clear rules what import with and without revision
> means.
>
>
>
> /martin
>
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod


From nobody Sun Mar 29 00:43:32 2015
Return-Path: <mbj@tail-f.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 523191AC3A0 for <netmod@ietfa.amsl.com>; Sun, 29 Mar 2015 00:43:32 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.91
X-Spam-Level: 
X-Spam-Status: No, score=-1.91 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, T_RP_MATCHES_RCVD=-0.01] 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 o7MA3hYi4sxN for <netmod@ietfa.amsl.com>; Sun, 29 Mar 2015 00:43:31 -0700 (PDT)
Received: from mail.tail-f.com (mail.tail-f.com [83.241.162.140]) by ietfa.amsl.com (Postfix) with ESMTP id DC1EA1AC39F for <netmod@ietf.org>; Sun, 29 Mar 2015 00:43:30 -0700 (PDT)
Received: from localhost (unknown [213.136.39.104]) by mail.tail-f.com (Postfix) with ESMTPSA id 819C81280008; Sun, 29 Mar 2015 09:43:29 +0200 (CEST)
Date: Sun, 29 Mar 2015 09:43:43 +0200 (CEST)
Message-Id: <20150329.094343.625878615822690247.mbj@tail-f.com>
To: andy@yumaworks.com
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <CABCOCHSJ4+rJerLO4f0i-vO-zmMD2Bs+SepnXQVmQn9N+3FE+g@mail.gmail.com>
References: <20150328.160837.891193389716580490.mbj@tail-f.com> <CABCOCHSJ4+rJerLO4f0i-vO-zmMD2Bs+SepnXQVmQn9N+3FE+g@mail.gmail.com>
X-Mailer: Mew version 6.5 on Emacs 24.3 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/kZLLAM85A4zg41nHo-Qe1YNZh8c>
Cc: netmod@ietf.org
Subject: Re: [netmod] Y45 again
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: <http://www.ietf.org/mail-archive/web/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: Sun, 29 Mar 2015 07:43:32 -0000

Andy Bierman <andy@yumaworks.com> wrote:
> Hi,
> 
> Some concerns:
> 
> 1) the specific revisions of implemented protocol accessible objects
> come from the protocol-specific advertisement mechanisms.
> I would prefer that all YANG conformance requirements be
> derivable from a single solution, based on the ietf-yang-library.
> We are headed that way with YANG 1.1 for NETCONF.
> RESTCONF and CoMI will both use the library exclusively to
> announce conformance.

Agree.  The ietf-yang-library text is already in 6020bis-04, so I
think this concern is addressed.

> 2) Off-line validation mechanisms that validate protocol messages
> need to figure out the library contents somehow.  We should
> not have to force all readers and writers to deal with import-by-revision
> everywhere.  Instead, tool developers need to write smarter code.

I am not sure this is a concern with the proposal?  Or did you mean
that such off-line validation would be simpler if we didn't have
import-by revision at all?

> 3) This is complicated, but the simple solution of ad-hoc cut-and-pasting
> of definitions was a disaster.  As Juergen pointed out to me yesterday,
> this would lead to a situation where we had a nice clean ietf-yang-types,
> but there would be copies of its various typedefs scattered over all the other
> modules. Repeat for every module and the result is even much worse.

Ok.

> 4) Now it will be OK to extend typedefs and groupings, but
> the this leads to a scenario where essentially every single
> definition has its own revision.  IMO it is very confusing
> that modules base, A, and B are all using different revisions
> of the "foo" typedef.

Agreed.  But as you noted in 3 the alternative is also pretty bad.

I think that data model designers should be very careful about using
import-by-revision, and at the other end, be very careful when
revising typedefs and groupings.


/martin


From nobody Sun Mar 29 04:09:05 2015
Return-Path: <lhotka@nic.cz>
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 F3F871A6EF1 for <netmod@ietfa.amsl.com>; Sun, 29 Mar 2015 04:09:03 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.361
X-Spam-Level: 
X-Spam-Status: No, score=-0.361 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HELO_EQ_CZ=0.445, HOST_EQ_CZ=0.904, MIME_8BIT_HEADER=0.3, T_RP_MATCHES_RCVD=-0.01] autolearn=no
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 Xt9prinkD8su for <netmod@ietfa.amsl.com>; Sun, 29 Mar 2015 04:09:02 -0700 (PDT)
Received: from mail.nic.cz (mail.nic.cz [IPv6:2001:1488:800:400::400]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C1D471A3B9F for <netmod@ietf.org>; Sun, 29 Mar 2015 04:09:01 -0700 (PDT)
Received: from [172.29.2.202] (unknown [77.48.225.14]) by mail.nic.cz (Postfix) with ESMTPSA id 1FAF813F9B1; Sun, 29 Mar 2015 13:09:00 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=nic.cz; s=default; t=1427627340; bh=/Zl/sjblsq+tOo3iXiGggv7Np0kKKJrVg2eQNuLYtN8=; h=Content-Type:Mime-Version:Subject:From:In-Reply-To:Date:Cc: Content-Transfer-Encoding:Message-Id:References:To; b=b7kwwif8oMxtKpl2/GHov0XQwNBGjM9RjPUNx4ADYpylvrgcbmxj0YTyoAlcH/6fz IyKrfPSOvu/CVJOuf590mnBNdhrvN63WVuqksUc/VTosh/IGmg+Othutmvi+SxsW0r gROd3DVluzWDUTcgifXZOw2QPybl2yOvKO3Z7Rao=
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2070.6\))
From: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <20150328.160837.891193389716580490.mbj@tail-f.com>
Date: Sun, 29 Mar 2015 13:08:59 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <8566519D-497E-49D4-BDBF-CA3230509F6B@nic.cz>
References: <20150328.160837.891193389716580490.mbj@tail-f.com>
To: =?utf-8?Q?Martin_Bj=C3=B6rklund?= <mbj@tail-f.com>
X-Mailer: Apple Mail (2.2070.6)
X-Virus-Scanned: clamav-milter 0.98.6 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/K04RpH0y4-KLOI86kIYJB4_vVTY>
Cc: netmod@ietf.org
Subject: Re: [netmod] Y45 again
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: <http://www.ietf.org/mail-archive/web/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: Sun, 29 Mar 2015 11:09:04 -0000

Hi,

I like it, comments inline.

> On 28 Mar 2015, at 16:08, Martin Bjorklund <mbj@tail-f.com> wrote:
>=20
> Hi,
>=20
> This is another attempt to solve the conformance problem, building on
> the idea that Lada suggested.
>=20
> The proposed solution does not require any changes to the upgrade
> rules from 6020 (specifically, a typedef/grouping can expand its value
> space).
>=20
> The solution relies on the observation that import may or may not
> indicate a run-time dependency between modules.  If module A imports
> module B, and A just uses a typedef from B, there is no requirement
> that a server that implements all protocol accessible nodes in A also
> implements all protocol accessible nodes in B.
>=20
> In the rest of the description, "implement a module" means "implements
> all protocol accessible nodes from a module=E2=80=9D.

I think it is more important to know what modules a server *advertises* =
(via hello or yang-library) because modules like ietf-inet-types define =
no protocol-accessible nodes, and yet they will have to be advertised.

Maybe we should instead introduce a term like =E2=80=9Cdata model =
specification=E2=80=9D because sometimes we deal with data models off =
line, outside the server-client context.

>=20
> Some constructs imply a run-time dependency.  If module A augments
> module B, there is a run-time dependency, meaning that a server that
> implements A must also implement B (modulo features).  A leafref also
> imply a run-time dependency.  (must and when expressions do not)

How about identities? I think they should also belong to this category, =
i.e. the set of permitted values is determined from the modules (and =
revisions) a server advertises rather than from the imported revisions.=20=


>=20
> So, the idea is this:
>=20
>  If a server implements a module A that imports B, and A augments B
>  or has a leafref to a node in B, the server MUST implement *some
>  version* of module B that has the nodes A references.  This is
>  regardless of A imports B by revision or not.
>=20
>  If a module A imports B by revision, any typedefs or a groupings
>  from B are picked from the specified revision of B, regardless of
>  which revision (if any!) of B the server implements.

=E2=80=A6 advertises.

>=20
>  If a module A imports B without revision, and A uses typedefs and/or
>  groupings from B, the server MUST pick and advertise one revision of
>  B that has the used typedefs and groupings.  This requires a way to
>  advertise a module with "conformance=3Dno-protocol-accessible-nodes",
>  so that the server can advertise the module w/o implementing its
>  protocol accessible nodes.

OK, I think this is both more flexible and more reliable than my =
previous proposal.

A related question is what to do with includes. Now that =
ietf-yang-library (as opposed to hello) allows for specifying submodules =
and their revisions, I think revision-date in includes should be always =
ignored.

Lada

>=20
> All this taken together means that by looking at the advertised
> modules and their import revisions, a client knows the exact types
> and groupings used everywhere.
>=20
> A module writer can choose to import by revision (thus locking down
> the typedefs and groupings used), or import without revision (allowing
> future updated typedefs and groupings to be incorporated).
>=20
> Repeating the example in P1 from
> draft-bjorklund-yang-conformance-problem-01:
>=20
>  module mod-a {
>    ...
>    revision 2001-01-01;        // initial version
>    typedef foo {
>      type enumeration {
>        enum q;
>      }
>    }
>    grouping bar {
>      leaf x { type string; }
>    }
>  }
>=20
>  module mod-a {
>    ...
>    revision 2002-01-01;        // new version
>    typedef foo {
>      type enumeration {
>        enum q;
>        enum w;                 // enum added
>      }
>    }
>    grouping bar {
>      leaf x { type string; }
>      leaf y { type string; }   // grouping extended
>    }
>  }
>=20
>  module mod-b {
>    ...
>    revision 2001-01-01;
>    import mod-a {
>      prefix a;
>      revision 2001-01-01;      // uses initial vsn of mod-a
>    }
>    leaf b {
>      type a:foo;
>    }
>    container b2 {
>      uses a:bar;
>    }
>  }
>=20
>  module mod-c {
>    ...
>    revision 2002-01-01;
>    import mod-a {
>      prefix a;
>      revision 2002-01-01;      // uses new vsn of mod-a
>    }
>    leaf c {
>      type a:foo;
>    }
>    container c2 {
>      uses a:bar;
>    }
>  }
>=20
>  module mod-d {
>    ...
>    revision 2002-01-01;
>    import mod-a                // uses unknown vsn of mod-a
>      prefix a;
>    }
>    leaf d {
>      type a:foo;
>    }
>    container d2 {
>      uses a:bar;
>    }
>  }
>=20
> A server might advertise:
>=20
>  mod-a 2002-01-01
>  mod-b 2001-01-01 // uses mod-a 2001-01-01, since import by revision
>  mod-c 2002-01-01 // uses mod-a 2002-01-01, since import by revision
>  mod-d 2002-01-01 // uses mod-a 2002-01-01, since it is advertised
>=20
> Another server might advertise:
>=20
>  mod-a 2001-01-01 conformance=3Dno-protocol-accessible-nodes
>  mod-c 2002-01-01 // uses mod-a 2002-01-01, since import by revision
>  mod-d 2002-01-01 // uses mod-a 2001-01-01, since it is advertised
>=20
> Note that it is also ok to advertise:
>=20
>  mod-b 2001-01-01 // uses mod-a 2001-01-01, since import by revision
>  mod-c 2002-01-01 // uses mod-a 2002-01-01, since import by revision
>=20
> I.e., if import-by revision is used everywhere, a server may not
> advertise the imported module.  Assume this was not the case.  Then
> a server might advertise the following, which is unclear:
>=20
>  mod-a 2001-01-01 conformance=3Dno-protocol-accessible-nodes
>  mod-a 2002-01-01 conformance=3Dno-protocol-accessible-nodes
>  mod-b 2001-01-01 // uses mod-a 2001-01-01, since import by revision
>  mod-c 2002-01-01 // uses mod-a 2002-01-01, since import by revision
>  mod-d 2002-01-01 // which version of a is used???
>=20
>=20
> This solution solves the conformance drift problem (P1 in
> draft-bjorklund-yang-conformance-problem-01) and conformance ambiguity
> (P2) by having clear rules what import with and without revision
> means.
>=20
>=20
>=20
> /martin
>=20
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod

--
Ladislav Lhotka, CZ.NIC Labs
PGP Key ID: E74E8C0C





From nobody Sun Mar 29 05:50:18 2015
Return-Path: <lhotka@nic.cz>
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 6C7E41A8F45 for <netmod@ietfa.amsl.com>; Sun, 29 Mar 2015 05:50:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.361
X-Spam-Level: 
X-Spam-Status: No, score=-0.361 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HELO_EQ_CZ=0.445, HOST_EQ_CZ=0.904, MIME_8BIT_HEADER=0.3, T_RP_MATCHES_RCVD=-0.01] autolearn=no
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 kLmvZoEpbcvg for <netmod@ietfa.amsl.com>; Sun, 29 Mar 2015 05:50:15 -0700 (PDT)
Received: from mail.nic.cz (mail.nic.cz [IPv6:2001:1488:800:400::400]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 710C61A8F41 for <netmod@ietf.org>; Sun, 29 Mar 2015 05:50:14 -0700 (PDT)
Received: from [172.29.2.202] (unknown [77.48.225.14]) by mail.nic.cz (Postfix) with ESMTPSA id C94C413FA1B; Sun, 29 Mar 2015 14:50:11 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=nic.cz; s=default; t=1427633411; bh=FVmcdoWcUUFB31WgwWX3zVTWORncnJ3BtcE8yGS2DvA=; h=Content-Type:Mime-Version:Subject:From:In-Reply-To:Date:Cc: Content-Transfer-Encoding:Message-Id:References:To; b=USc4J5goD2VNbr0Uhwip/YxZ0b2kq8jtDDitwKeFsjnQhaiJiOFr4EVmCZOsVixSz lQJdJr0566s/ICF5/l/DBQKE1dHFOvCcvDBhm0oxZNwvE5PNwOPEibA39oldZumay/ 3vKNpAM49US7s9uVU/MPF0y6pWlXYxjMnYsXVWjE=
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2070.6\))
From: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <20150329.094343.625878615822690247.mbj@tail-f.com>
Date: Sun, 29 Mar 2015 14:50:10 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <EA7B975C-7909-4C45-97A1-A5100B35C3B0@nic.cz>
References: <20150328.160837.891193389716580490.mbj@tail-f.com> <CABCOCHSJ4+rJerLO4f0i-vO-zmMD2Bs+SepnXQVmQn9N+3FE+g@mail.gmail.com> <20150329.094343.625878615822690247.mbj@tail-f.com>
To: =?utf-8?Q?Martin_Bj=C3=B6rklund?= <mbj@tail-f.com>
X-Mailer: Apple Mail (2.2070.6)
X-Virus-Scanned: clamav-milter 0.98.6 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/LCn_ZtfKPc_xj3He2_cBq3cPdmk>
Cc: netmod@ietf.org
Subject: Re: [netmod] Y45 again
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: <http://www.ietf.org/mail-archive/web/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: Sun, 29 Mar 2015 12:50:17 -0000

> On 29 Mar 2015, at 09:43, Martin Bjorklund <mbj@tail-f.com> wrote:
>=20
> Andy Bierman <andy@yumaworks.com> wrote:
>> Hi,
>>=20
>> Some concerns:
>>=20
>> 1) the specific revisions of implemented protocol accessible objects
>> come from the protocol-specific advertisement mechanisms.
>> I would prefer that all YANG conformance requirements be
>> derivable from a single solution, based on the ietf-yang-library.
>> We are headed that way with YANG 1.1 for NETCONF.
>> RESTCONF and CoMI will both use the library exclusively to
>> announce conformance.
>=20
> Agree.  The ietf-yang-library text is already in 6020bis-04, so I
> think this concern is addressed.

+1

>=20
>> 2) Off-line validation mechanisms that validate protocol messages
>> need to figure out the library contents somehow.  We should
>> not have to force all readers and writers to deal with =
import-by-revision
>> everywhere.  Instead, tool developers need to write smarter code.
>=20
> I am not sure this is a concern with the proposal?  Or did you mean
> that such off-line validation would be simpler if we didn't have
> import-by revision at all?

I think it is about the =E2=80=9Cdata model specification=E2=80=9D as I =
wrote in my previous mail. For example, in pyang we would need to figure =
out how to pass the "conformance=3Dno-protocol-accessible-nodes=E2=80=9D =
flag on the command line. Actually, a better option might be to allow =
for passing this information in the ietf-yang-library format, perhaps =
replacing the --hello option.

>=20
>> 3) This is complicated, but the simple solution of ad-hoc =
cut-and-pasting
>> of definitions was a disaster.  As Juergen pointed out to me =
yesterday,
>> this would lead to a situation where we had a nice clean =
ietf-yang-types,
>> but there would be copies of its various typedefs scattered over all =
the other
>> modules. Repeat for every module and the result is even much worse.
>=20
> Ok.

On the other hand, Y45-02 would move all the mess to the modules that =
are designed for being imported. If module *readers* have the highest =
priority, we are actually obliged to keep modules like ietf-yang-types =
clean, lean and mean.=20

>=20
>> 4) Now it will be OK to extend typedefs and groupings, but
>> the this leads to a scenario where essentially every single
>> definition has its own revision.  IMO it is very confusing

I don=E2=80=99t think so, it would be the case only if we introduced =
something like

uses foo {
    revision-date 2015-04-01;
}

>> that modules base, A, and B are all using different revisions
>> of the "foo" typedef.
>=20
> Agreed.  But as you noted in 3 the alternative is also pretty bad.
>=20
> I think that data model designers should be very careful about using
> import-by-revision, and at the other end, be very careful when
> revising typedefs and groupings.

Typedefs and groupings defined and used in the same module have their =
revision effectively fixed. If one wants to put such definitions to a =
separate module, e.g. to increase readability, I think an =
import-by-revision might be fully appropriate. Open-ended schemas =
needn=E2=80=99t be everybody=E2=80=99s preference.

Also, for enumeration typedefs that are based on IANA or ISO registries, =
regular revisions are pretty much necessary.

So I don=E2=80=99t think import-by-revision and updated definitions have =
to be labelled as obnoxious.

Lada
=20

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

--
Ladislav Lhotka, CZ.NIC Labs
PGP Key ID: E74E8C0C





From nobody Sun Mar 29 06:38:10 2015
Return-Path: <andy@yumaworks.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 5B00B1A1BD1 for <netmod@ietfa.amsl.com>; Sun, 29 Mar 2015 06:38:09 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.979
X-Spam-Level: 
X-Spam-Status: No, score=-1.979 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] 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 GnQYs9d4R3sB for <netmod@ietfa.amsl.com>; Sun, 29 Mar 2015 06:38:05 -0700 (PDT)
Received: from mail-la0-f47.google.com (mail-la0-f47.google.com [209.85.215.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B59C41A1BCA for <netmod@ietf.org>; Sun, 29 Mar 2015 06:38:04 -0700 (PDT)
Received: by lahp7 with SMTP id p7so81101204lah.2 for <netmod@ietf.org>; Sun, 29 Mar 2015 06:38:03 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=va0REJ/Fd4oT0yks9PX41kBdT8Lm25k3YS5l7377jM4=; b=af/nOkLk+a5Cp+51cKOtb4k26HvM6/jGBeOOxM36yPxJIckcrnqSW9Q8EnEVI1Sg1X hhFJVFjGUNlcRGt7lrjQtaAflLBYiFrRXYEhV7SOltgPQh6lmgp0L8xdhf8Wo6S7GqTN NsjAtgqDqwB/2XYY1MJpwSmt1dQSmqOyIUNrKpvooaBWaa9NDuH9LmFYONHpy/OujWYT wtUxHZvpXafawDVXr+HJDlKLCuiaREEttHhuNXVFJv8/O3HVuLsWlx+tnJsrLdjg2gZP s+i5CHW68SNyHzWZBqcxIq2P0ckYv8Y6u0lJn63ZZpBlDkZJPqyHSybGRE6goUPIDCsb nNrA==
X-Gm-Message-State: ALoCoQkjhPCf83nGOF4JuV+fd3oufdiQQVuT1tiye24CfYweQikMtFsPn1A7b7aBIRanYxSA6co7
MIME-Version: 1.0
X-Received: by 10.112.205.103 with SMTP id lf7mr24463301lbc.37.1427636282926;  Sun, 29 Mar 2015 06:38:02 -0700 (PDT)
Received: by 10.112.98.168 with HTTP; Sun, 29 Mar 2015 06:38:02 -0700 (PDT)
In-Reply-To: <20150329.094343.625878615822690247.mbj@tail-f.com>
References: <20150328.160837.891193389716580490.mbj@tail-f.com> <CABCOCHSJ4+rJerLO4f0i-vO-zmMD2Bs+SepnXQVmQn9N+3FE+g@mail.gmail.com> <20150329.094343.625878615822690247.mbj@tail-f.com>
Date: Sun, 29 Mar 2015 06:38:02 -0700
Message-ID: <CABCOCHR_ps6iNiaNwFbXth5i2Sc3_FtaJdZY2PBe4g16NQH=FQ@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Martin Bjorklund <mbj@tail-f.com>
Content-Type: text/plain; charset=UTF-8
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/-ibFGel5XZjUmP2ywi6IW4TcHUQ>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] Y45 again
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: <http://www.ietf.org/mail-archive/web/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: Sun, 29 Mar 2015 13:38:09 -0000

On Sun, Mar 29, 2015 at 12:43 AM, Martin Bjorklund <mbj@tail-f.com> wrote:
> Andy Bierman <andy@yumaworks.com> wrote:
>> Hi,
>>
>> Some concerns:
>>
>> 1) the specific revisions of implemented protocol accessible objects
>> come from the protocol-specific advertisement mechanisms.
>> I would prefer that all YANG conformance requirements be
>> derivable from a single solution, based on the ietf-yang-library.
>> We are headed that way with YANG 1.1 for NETCONF.
>> RESTCONF and CoMI will both use the library exclusively to
>> announce conformance.
>
> Agree.  The ietf-yang-library text is already in 6020bis-04, so I
> think this concern is addressed.
>

OK --  this needs to be followed as a general solution.
The library still needs the full inventory of YANG modules and
submodules so they can be pre-fetched (via the 'schema' URI
for each YANG file)


>> 2) Off-line validation mechanisms that validate protocol messages
>> need to figure out the library contents somehow.  We should
>> not have to force all readers and writers to deal with import-by-revision
>> everywhere.  Instead, tool developers need to write smarter code.
>
> I am not sure this is a concern with the proposal?  Or did you mean
> that such off-line validation would be simpler if we didn't have
> import-by revision at all?

Just agreeing with you -- and making it clear that import-by-revision
SHOULD NOT be used just to make it easier for an off-line validation
tool to pick YANG revisions.

>
>> 3) This is complicated, but the simple solution of ad-hoc cut-and-pasting
>> of definitions was a disaster.  As Juergen pointed out to me yesterday,
>> this would lead to a situation where we had a nice clean ietf-yang-types,
>> but there would be copies of its various typedefs scattered over all the other
>> modules. Repeat for every module and the result is even much worse.
>
> Ok.
>
>> 4) Now it will be OK to extend typedefs and groupings, but
>> the this leads to a scenario where essentially every single
>> definition has its own revision.  IMO it is very confusing
>> that modules base, A, and B are all using different revisions
>> of the "foo" typedef.
>
> Agreed.  But as you noted in 3 the alternative is also pretty bad.

Yes but the original solution of forbidding typedef and groupings
to be expanded (but not forbid corrections) is a much better solution.
This leads to maintenance being localized to the source of the definitions,
which is the correct design (same as yours).  But it also leads a
massive increase in the probability that programmer or operator errors
will be introduced because modules are just too hard to read.



>
> I think that data model designers should be very careful about using
> import-by-revision, and at the other end, be very careful when
> revising typedefs and groupings.
>

IMO the YANG guidelines MUST forbid the expansion of typedefs
and groupings in RFC published modules.  (Note I-D to I-D changes do
not count -- only RFC to RFC changes actually count).


>
> /martin

Andy


From nobody Sun Mar 29 07:23:29 2015
Return-Path: <mbj@tail-f.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 13F171AC420 for <netmod@ietfa.amsl.com>; Sun, 29 Mar 2015 07:23:28 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.91
X-Spam-Level: 
X-Spam-Status: No, score=-1.91 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, T_RP_MATCHES_RCVD=-0.01] 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 w0D_0Y0XefWX for <netmod@ietfa.amsl.com>; Sun, 29 Mar 2015 07:23:26 -0700 (PDT)
Received: from mail.tail-f.com (mail.tail-f.com [83.241.162.140]) by ietfa.amsl.com (Postfix) with ESMTP id 44F251AC41F for <netmod@ietf.org>; Sun, 29 Mar 2015 07:23:26 -0700 (PDT)
Received: from localhost (unknown [213.136.39.104]) by mail.tail-f.com (Postfix) with ESMTPSA id 25943128097C; Sun, 29 Mar 2015 16:23:25 +0200 (CEST)
Date: Sun, 29 Mar 2015 16:23:09 +0200 (CEST)
Message-Id: <20150329.162309.1020711590655619598.mbj@tail-f.com>
To: lhotka@nic.cz
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <8566519D-497E-49D4-BDBF-CA3230509F6B@nic.cz>
References: <20150328.160837.891193389716580490.mbj@tail-f.com> <8566519D-497E-49D4-BDBF-CA3230509F6B@nic.cz>
X-Mailer: Mew version 6.5 on Emacs 24.3 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=utf-8
Content-Transfer-Encoding: base64
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/RM95K0h_6rKQFS7zy14qIn5ZEfE>
Cc: netmod@ietf.org
Subject: Re: [netmod] Y45 again
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: <http://www.ietf.org/mail-archive/web/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: Sun, 29 Mar 2015 14:23:28 -0000

TGFkaXNsYXYgTGhvdGthIDxsaG90a2FAbmljLmN6PiB3cm90ZToNCj4gSGksDQo+IA0KPiBJIGxp
a2UgaXQsIGNvbW1lbnRzIGlubGluZS4NCj4gDQo+ID4gT24gMjggTWFyIDIwMTUsIGF0IDE2OjA4
LCBNYXJ0aW4gQmpvcmtsdW5kIDxtYmpAdGFpbC1mLmNvbT4gd3JvdGU6DQo+ID4gDQo+ID4gSGks
DQo+ID4gDQo+ID4gVGhpcyBpcyBhbm90aGVyIGF0dGVtcHQgdG8gc29sdmUgdGhlIGNvbmZvcm1h
bmNlIHByb2JsZW0sIGJ1aWxkaW5nIG9uDQo+ID4gdGhlIGlkZWEgdGhhdCBMYWRhIHN1Z2dlc3Rl
ZC4NCj4gPiANCj4gPiBUaGUgcHJvcG9zZWQgc29sdXRpb24gZG9lcyBub3QgcmVxdWlyZSBhbnkg
Y2hhbmdlcyB0byB0aGUgdXBncmFkZQ0KPiA+IHJ1bGVzIGZyb20gNjAyMCAoc3BlY2lmaWNhbGx5
LCBhIHR5cGVkZWYvZ3JvdXBpbmcgY2FuIGV4cGFuZCBpdHMgdmFsdWUNCj4gPiBzcGFjZSkuDQo+
ID4gDQo+ID4gVGhlIHNvbHV0aW9uIHJlbGllcyBvbiB0aGUgb2JzZXJ2YXRpb24gdGhhdCBpbXBv
cnQgbWF5IG9yIG1heSBub3QNCj4gPiBpbmRpY2F0ZSBhIHJ1bi10aW1lIGRlcGVuZGVuY3kgYmV0
d2VlbiBtb2R1bGVzLiAgSWYgbW9kdWxlIEEgaW1wb3J0cw0KPiA+IG1vZHVsZSBCLCBhbmQgQSBq
dXN0IHVzZXMgYSB0eXBlZGVmIGZyb20gQiwgdGhlcmUgaXMgbm8gcmVxdWlyZW1lbnQNCj4gPiB0
aGF0IGEgc2VydmVyIHRoYXQgaW1wbGVtZW50cyBhbGwgcHJvdG9jb2wgYWNjZXNzaWJsZSBub2Rl
cyBpbiBBIGFsc28NCj4gPiBpbXBsZW1lbnRzIGFsbCBwcm90b2NvbCBhY2Nlc3NpYmxlIG5vZGVz
IGluIEIuDQo+ID4gDQo+ID4gSW4gdGhlIHJlc3Qgb2YgdGhlIGRlc2NyaXB0aW9uLCAiaW1wbGVt
ZW50IGEgbW9kdWxlIiBtZWFucyAiaW1wbGVtZW50cw0KPiA+IGFsbCBwcm90b2NvbCBhY2Nlc3Np
YmxlIG5vZGVzIGZyb20gYSBtb2R1bGXigJ0uDQo+IA0KPiBJIHRoaW5rIGl0IGlzIG1vcmUgaW1w
b3J0YW50IHRvIGtub3cgd2hhdCBtb2R1bGVzIGEgc2VydmVyDQo+ICphZHZlcnRpc2VzKiAodmlh
IGhlbGxvIG9yIHlhbmctbGlicmFyeSkgYmVjYXVzZSBtb2R1bGVzIGxpa2UNCj4gaWV0Zi1pbmV0
LXR5cGVzIGRlZmluZSBubyBwcm90b2NvbC1hY2Nlc3NpYmxlIG5vZGVzLCBhbmQgeWV0IHRoZXkg
d2lsbA0KPiBoYXZlIHRvIGJlIGFkdmVydGlzZWQuDQoNCkkgdGhpbmsgdGhlIHR3byB0ZXJtcyBu
ZWVkIHRvIGJlIHNlcGFyYXRlZC4gIElmIGEgc2VydmVyIGltcGxlbWVudHMNCnRoZSBwcm90b2Nv
bC1hY2Nlc3NpYmxlIG5vZGVzIHRoZSBtb2R1bGUgbXVzdCBiZSBhZHZlcnRpc2VkDQoibm9ybWFs
bHkiLiAgSWYgYSBzZXJ2ZXIgaW1wbGVtZW50cyB0eXBlZGVmcy9ncm91cGluZ3MgdGhlIG1vZHVs
ZSBNQVkNCm5lZWQgdG8gYmUgYWR2ZXJ0aXNlZCwgYW5kIGluIHRoYXQgY2FzZSBpdCBpcyBhZHZl
cnRpc2VkIHdpdGgNCmNvbmZvcm1hbmNlPW5vLXByb3RvY29sLWFjY2Vzc2libGUtbm9kZXMuDQoN
Cj4gTWF5YmUgd2Ugc2hvdWxkIGluc3RlYWQgaW50cm9kdWNlIGEgdGVybSBsaWtlIOKAnGRhdGEg
bW9kZWwNCj4gc3BlY2lmaWNhdGlvbuKAnSBiZWNhdXNlIHNvbWV0aW1lcyB3ZSBkZWFsIHdpdGgg
ZGF0YSBtb2RlbHMgb2ZmIGxpbmUsDQo+IG91dHNpZGUgdGhlIHNlcnZlci1jbGllbnQgY29udGV4
dC4NCj4gDQo+ID4gDQo+ID4gU29tZSBjb25zdHJ1Y3RzIGltcGx5IGEgcnVuLXRpbWUgZGVwZW5k
ZW5jeS4gIElmIG1vZHVsZSBBIGF1Z21lbnRzDQo+ID4gbW9kdWxlIEIsIHRoZXJlIGlzIGEgcnVu
LXRpbWUgZGVwZW5kZW5jeSwgbWVhbmluZyB0aGF0IGEgc2VydmVyIHRoYXQNCj4gPiBpbXBsZW1l
bnRzIEEgbXVzdCBhbHNvIGltcGxlbWVudCBCIChtb2R1bG8gZmVhdHVyZXMpLiAgQSBsZWFmcmVm
IGFsc28NCj4gPiBpbXBseSBhIHJ1bi10aW1lIGRlcGVuZGVuY3kuICAobXVzdCBhbmQgd2hlbiBl
eHByZXNzaW9ucyBkbyBub3QpDQo+IA0KPiBIb3cgYWJvdXQgaWRlbnRpdGllcz8gSSB0aGluayB0
aGV5IHNob3VsZCBhbHNvIGJlbG9uZyB0byB0aGlzDQo+IGNhdGVnb3J5LCBpLmUuIHRoZSBzZXQg
b2YgcGVybWl0dGVkIHZhbHVlcyBpcyBkZXRlcm1pbmVkIGZyb20gdGhlDQo+IG1vZHVsZXMgKGFu
ZCByZXZpc2lvbnMpIGEgc2VydmVyIGFkdmVydGlzZXMgcmF0aGVyIHRoYW4gZnJvbSB0aGUNCj4g
aW1wb3J0ZWQgcmV2aXNpb25zLg0KDQpXZWxsLCB5b3UgYXJlIHJpZ2h0IHRoYXQgdGhlIHNldCBv
ZiBzdXBwb3J0ZWQgaWRlbnRpdGllcyBhcmUNCmRldGVybWluZWQgZnJvbSB0aGUgYWR2ZXJ0aXNl
ZCBtb2R1bGVzLCBidXQgdGhpcyBoYXMgbm90aGluZyB0byBkbw0Kd2l0aCBpbXBvcnRzLg0KDQoN
Cj4gPiBTbywgdGhlIGlkZWEgaXMgdGhpczoNCj4gPiANCj4gPiAgSWYgYSBzZXJ2ZXIgaW1wbGVt
ZW50cyBhIG1vZHVsZSBBIHRoYXQgaW1wb3J0cyBCLCBhbmQgQSBhdWdtZW50cyBCDQo+ID4gIG9y
IGhhcyBhIGxlYWZyZWYgdG8gYSBub2RlIGluIEIsIHRoZSBzZXJ2ZXIgTVVTVCBpbXBsZW1lbnQg
KnNvbWUNCj4gPiAgdmVyc2lvbiogb2YgbW9kdWxlIEIgdGhhdCBoYXMgdGhlIG5vZGVzIEEgcmVm
ZXJlbmNlcy4gIFRoaXMgaXMNCj4gPiAgcmVnYXJkbGVzcyBvZiBBIGltcG9ydHMgQiBieSByZXZp
c2lvbiBvciBub3QuDQo+ID4gDQo+ID4gIElmIGEgbW9kdWxlIEEgaW1wb3J0cyBCIGJ5IHJldmlz
aW9uLCBhbnkgdHlwZWRlZnMgb3IgYSBncm91cGluZ3MNCj4gPiAgZnJvbSBCIGFyZSBwaWNrZWQg
ZnJvbSB0aGUgc3BlY2lmaWVkIHJldmlzaW9uIG9mIEIsIHJlZ2FyZGxlc3Mgb2YNCj4gPiAgd2hp
Y2ggcmV2aXNpb24gKGlmIGFueSEpIG9mIEIgdGhlIHNlcnZlciBpbXBsZW1lbnRzLg0KPiANCj4g
4oCmIGFkdmVydGlzZXMuDQoNCk5vIEkgbWVhbnQgaW1wbGVtZW50cyAoaS5lLiwgaW1wbGVtZW50
cyBwcm90b2NvbC1hY2Nlc3NpYmxlIG5vZGVzLA0Kd2hpY2ggbWVhbnMgdGhhdCBpdCBpcyBhbHNv
IGFkdmVydGlzZWQpLg0KDQo+ID4gIElmIGEgbW9kdWxlIEEgaW1wb3J0cyBCIHdpdGhvdXQgcmV2
aXNpb24sIGFuZCBBIHVzZXMgdHlwZWRlZnMgYW5kL29yDQo+ID4gIGdyb3VwaW5ncyBmcm9tIEIs
IHRoZSBzZXJ2ZXIgTVVTVCBwaWNrIGFuZCBhZHZlcnRpc2Ugb25lIHJldmlzaW9uIG9mDQo+ID4g
IEIgdGhhdCBoYXMgdGhlIHVzZWQgdHlwZWRlZnMgYW5kIGdyb3VwaW5ncy4gIFRoaXMgcmVxdWly
ZXMgYSB3YXkgdG8NCj4gPiAgYWR2ZXJ0aXNlIGEgbW9kdWxlIHdpdGggImNvbmZvcm1hbmNlPW5v
LXByb3RvY29sLWFjY2Vzc2libGUtbm9kZXMiLA0KPiA+ICBzbyB0aGF0IHRoZSBzZXJ2ZXIgY2Fu
IGFkdmVydGlzZSB0aGUgbW9kdWxlIHcvbyBpbXBsZW1lbnRpbmcgaXRzDQo+ID4gIHByb3RvY29s
IGFjY2Vzc2libGUgbm9kZXMuDQo+IA0KPiBPSywgSSB0aGluayB0aGlzIGlzIGJvdGggbW9yZSBm
bGV4aWJsZSBhbmQgbW9yZSByZWxpYWJsZSB0aGFuIG15DQo+IHByZXZpb3VzIHByb3Bvc2FsLg0K
PiANCj4gQSByZWxhdGVkIHF1ZXN0aW9uIGlzIHdoYXQgdG8gZG8gd2l0aCBpbmNsdWRlcy4gTm93
IHRoYXQNCj4gaWV0Zi15YW5nLWxpYnJhcnkgKGFzIG9wcG9zZWQgdG8gaGVsbG8pIGFsbG93cyBm
b3Igc3BlY2lmeWluZw0KPiBzdWJtb2R1bGVzIGFuZCB0aGVpciByZXZpc2lvbnMsIEkgdGhpbmsg
cmV2aXNpb24tZGF0ZSBpbiBpbmNsdWRlcw0KPiBzaG91bGQgYmUgYWx3YXlzIGlnbm9yZWQuDQoN
Ckkgd291bGQgYmUgb2sgd2l0aCAqcmVxdWlyaW5nKiBpbmNsdWRlLWJ5IHJldmlzaW9uLiAgSWYg
aW5jbHVkZQ0Kd2l0aG91dCByZXZpc2lvbiBpcyB1c2VkLCB0aGVuIGlldGYteWFuZy1saWJyYXJ5
IGlzIG5lZWRlZC4NCg0KQW55d2F5LCBJIGRvbid0IHRoaW5rIHRoZSByZXZpc2lvbiBzaG91bGQg
YmUgaWdub3JlZCwgdGhhdCB3b3VsZCBqdXN0DQpiZSBjb25mdXNpbmcuICBXaGF0IHByb2JsZW0g
ZG9lcyBpdCBzb2x2ZT8gIFdoeSBzaG91bGQgaXQgYmUgb2sgZm9yIGENCnNlcnZlciB0byBpbmNs
dWRlIHNvbWUgb3RoZXIgcmV2aXNpb24gdGhhbiB0aGUgc3BlY2lmaWVkIG9uZT8NCg0KDQovbWFy
dGluDQo=


From nobody Sun Mar 29 07:33:11 2015
Return-Path: <lhotka@nic.cz>
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 4E03A1AC428 for <netmod@ietfa.amsl.com>; Sun, 29 Mar 2015 07:33:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.661
X-Spam-Level: 
X-Spam-Status: No, score=-0.661 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HELO_EQ_CZ=0.445, HOST_EQ_CZ=0.904, T_RP_MATCHES_RCVD=-0.01] autolearn=no
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 FozUdI4o8yMX for <netmod@ietfa.amsl.com>; Sun, 29 Mar 2015 07:33:08 -0700 (PDT)
Received: from mail.nic.cz (mail.nic.cz [IPv6:2001:1488:800:400::400]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5D8F11A87C3 for <netmod@ietf.org>; Sun, 29 Mar 2015 07:33:07 -0700 (PDT)
Received: from [IPv6:2a01:5e0:29:ffff:d9b1:9b03:2100:553] (unknown [IPv6:2a01:5e0:29:ffff:d9b1:9b03:2100:553]) by mail.nic.cz (Postfix) with ESMTPSA id CBA5D13F8CF; Sun, 29 Mar 2015 16:33:05 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=nic.cz; s=default; t=1427639585; bh=R6DlYBPwlECxyJ8vILHuxnKlCEZBckyXMtpx4F8fReU=; h=Content-Type:Mime-Version:Subject:From:In-Reply-To:Date:Cc: Content-Transfer-Encoding:Message-Id:References:To; b=nchGLIn43ThgfkZGUQOWZ0ALPipBogNa0xPptRpNp/k7tV/SyR3HjFlj9ltVnyHcq L5fI/EkyYqQ3vPrffZIQZAPlSc8kXKFbKiNLQLTZlb5XOf+02uvI1iD7y3saA67XBB ay6yoRKTgbgnOhYZzSXaFm6Tzdl4yCqmYKpXRHm0=
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2070.6\))
From: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <CABCOCHR_ps6iNiaNwFbXth5i2Sc3_FtaJdZY2PBe4g16NQH=FQ@mail.gmail.com>
Date: Sun, 29 Mar 2015 16:33:04 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <9740B743-97E7-4161-B123-2AFBE4EBE2D3@nic.cz>
References: <20150328.160837.891193389716580490.mbj@tail-f.com> <CABCOCHSJ4+rJerLO4f0i-vO-zmMD2Bs+SepnXQVmQn9N+3FE+g@mail.gmail.com> <20150329.094343.625878615822690247.mbj@tail-f.com> <CABCOCHR_ps6iNiaNwFbXth5i2Sc3_FtaJdZY2PBe4g16NQH=FQ@mail.gmail.com>
To: Andy Bierman <andy@yumaworks.com>
X-Mailer: Apple Mail (2.2070.6)
X-Virus-Scanned: clamav-milter 0.98.6 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/42yQdKHMyebZnuOyDrDOrTyYZ28>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] Y45 again
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: <http://www.ietf.org/mail-archive/web/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: Sun, 29 Mar 2015 14:33:10 -0000

> On 29 Mar 2015, at 15:38, Andy Bierman <andy@yumaworks.com> wrote:
>=20
> On Sun, Mar 29, 2015 at 12:43 AM, Martin Bjorklund <mbj@tail-f.com> =
wrote:
>> Andy Bierman <andy@yumaworks.com> wrote:
>>> Hi,
>>>=20
>>> Some concerns:
>>>=20
>>> 1) the specific revisions of implemented protocol accessible objects
>>> come from the protocol-specific advertisement mechanisms.
>>> I would prefer that all YANG conformance requirements be
>>> derivable from a single solution, based on the ietf-yang-library.
>>> We are headed that way with YANG 1.1 for NETCONF.
>>> RESTCONF and CoMI will both use the library exclusively to
>>> announce conformance.
>>=20
>> Agree.  The ietf-yang-library text is already in 6020bis-04, so I
>> think this concern is addressed.
>>=20
>=20
> OK --  this needs to be followed as a general solution.
> The library still needs the full inventory of YANG modules and
> submodules so they can be pre-fetched (via the 'schema' URI
> for each YANG file)
>=20
>=20
>>> 2) Off-line validation mechanisms that validate protocol messages
>>> need to figure out the library contents somehow.  We should
>>> not have to force all readers and writers to deal with =
import-by-revision
>>> everywhere.  Instead, tool developers need to write smarter code.
>>=20
>> I am not sure this is a concern with the proposal?  Or did you mean
>> that such off-line validation would be simpler if we didn't have
>> import-by revision at all?
>=20
> Just agreeing with you -- and making it clear that import-by-revision
> SHOULD NOT be used just to make it easier for an off-line validation
> tool to pick YANG revisions.
>=20
>>=20
>>> 3) This is complicated, but the simple solution of ad-hoc =
cut-and-pasting
>>> of definitions was a disaster.  As Juergen pointed out to me =
yesterday,
>>> this would lead to a situation where we had a nice clean =
ietf-yang-types,
>>> but there would be copies of its various typedefs scattered over all =
the other
>>> modules. Repeat for every module and the result is even much worse.
>>=20
>> Ok.
>>=20
>>> 4) Now it will be OK to extend typedefs and groupings, but
>>> the this leads to a scenario where essentially every single
>>> definition has its own revision.  IMO it is very confusing
>>> that modules base, A, and B are all using different revisions
>>> of the "foo" typedef.
>>=20
>> Agreed.  But as you noted in 3 the alternative is also pretty bad.
>=20
> Yes but the original solution of forbidding typedef and groupings
> to be expanded (but not forbid corrections) is a much better solution.
> This leads to maintenance being localized to the source of the =
definitions,
> which is the correct design (same as yours).  But it also leads a
> massive increase in the probability that programmer or operator errors
> will be introduced because modules are just too hard to read.
>=20
>=20
>=20
>>=20
>> I think that data model designers should be very careful about using
>> import-by-revision, and at the other end, be very careful when
>> revising typedefs and groupings.
>>=20
>=20
> IMO the YANG guidelines MUST forbid the expansion of typedefs
> and groupings in RFC published modules.  (Note I-D to I-D changes do
> not count -- only RFC to RFC changes actually count).

I strongly disagree. Especially at this stage when many things are under =
development we need to remain flexible. Keeping modules in I-D stage for =
extended periods is not a solution either.

Lada

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

--
Ladislav Lhotka, CZ.NIC Labs
PGP Key ID: E74E8C0C





From nobody Sun Mar 29 07:40:53 2015
Return-Path: <andy@yumaworks.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 C609D1A87CB for <netmod@ietfa.amsl.com>; Sun, 29 Mar 2015 07:40:52 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.979
X-Spam-Level: 
X-Spam-Status: No, score=-1.979 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] 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 Moo83EWeIjTN for <netmod@ietfa.amsl.com>; Sun, 29 Mar 2015 07:40:51 -0700 (PDT)
Received: from mail-la0-f51.google.com (mail-la0-f51.google.com [209.85.215.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E945D1AC43C for <netmod@ietf.org>; Sun, 29 Mar 2015 07:40:50 -0700 (PDT)
Received: by lagg8 with SMTP id g8so100665739lag.1 for <netmod@ietf.org>; Sun, 29 Mar 2015 07:40:49 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=YEHnz1R3SCDAF7NTh4s7IAeKLfzybo8l/2fC4rjeObE=; b=O5mXrCJlpvFdJ3uFyzXst69NTflaEGM46XrrYcaPpXabcuyj6b31j8e4afJKvJlZnO eoSMbj8vkVpdWp+sKw/oV9ndCaD3CEB3CZzxSqNRwBmqbJFgWxJPQyPysNnAVctCX8Es lf/eb8QcAN+k72EciZ3Pa2tVoZAZiq6h7D5PCBeblnLrZyBLACgIBdwcc8LkRPqF7s2p ln56huJLPbgHpWSufAJeOsSrWl+cqkzo85qyYqrpLy5nZdVBoR7U3R96wvoEsU0r6hEY xmHHIpvSs75rqwGZhCALhqztW6yYUAbnHWMFfPgOt+m934Gy3gWqWV/y4UNjrzsSQ+2D pGEQ==
X-Gm-Message-State: ALoCoQkrPX/7l8xyNNR8M+G9A5hQzttjHMUkyUNejZtl6ga/mgl+AiQSZPVaxjcNb7yB8aoNxxtg
MIME-Version: 1.0
X-Received: by 10.152.37.40 with SMTP id v8mr25349696laj.123.1427640049291; Sun, 29 Mar 2015 07:40:49 -0700 (PDT)
Received: by 10.112.98.168 with HTTP; Sun, 29 Mar 2015 07:40:49 -0700 (PDT)
In-Reply-To: <20150329.162309.1020711590655619598.mbj@tail-f.com>
References: <20150328.160837.891193389716580490.mbj@tail-f.com> <8566519D-497E-49D4-BDBF-CA3230509F6B@nic.cz> <20150329.162309.1020711590655619598.mbj@tail-f.com>
Date: Sun, 29 Mar 2015 07:40:49 -0700
Message-ID: <CABCOCHTh542XZ3y3YZ_S4y589VZpWkoaQdwj5vwWg2jTq5k-wA@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Martin Bjorklund <mbj@tail-f.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/ogH4RgMjH8ot9ieElk3hKBJhxWI>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] Y45 again
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: <http://www.ietf.org/mail-archive/web/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: Sun, 29 Mar 2015 14:40:53 -0000

On Sun, Mar 29, 2015 at 7:23 AM, Martin Bjorklund <mbj@tail-f.com> wrote:
> Ladislav Lhotka <lhotka@nic.cz> wrote:
>> Hi,
>>
>> I like it, comments inline.
>>
>> > On 28 Mar 2015, at 16:08, Martin Bjorklund <mbj@tail-f.com> wrote:
>> >
>> > Hi,
>> >
>> > This is another attempt to solve the conformance problem, building on
>> > the idea that Lada suggested.
>> >
>> > The proposed solution does not require any changes to the upgrade
>> > rules from 6020 (specifically, a typedef/grouping can expand its value
>> > space).
>> >
>> > The solution relies on the observation that import may or may not
>> > indicate a run-time dependency between modules.  If module A imports
>> > module B, and A just uses a typedef from B, there is no requirement
>> > that a server that implements all protocol accessible nodes in A also
>> > implements all protocol accessible nodes in B.
>> >
>> > In the rest of the description, "implement a module" means "implements
>> > all protocol accessible nodes from a module=E2=80=9D.
>>
>> I think it is more important to know what modules a server
>> *advertises* (via hello or yang-library) because modules like
>> ietf-inet-types define no protocol-accessible nodes, and yet they will
>> have to be advertised.
>
> I think the two terms need to be separated.  If a server implements
> the protocol-accessible nodes the module must be advertised
> "normally".  If a server implements typedefs/groupings the module MAY
> need to be advertised, and in that case it is advertised with
> conformance=3Dno-protocol-accessible-nodes.
>


Yes -- there are two completely different uses of the YANG library:

1) reconstruction of the server YANG file set
    -- all modules, submodules and their revisions
        -- includes all YANG files, even meta-data like ietf-restconf or
            deviations modules
   -- <get-schema> or GET  /path/to/schema is required
   -- caching mechanisms are required
   -- support for shared YANG library servers is required for CoMI


2) determination of the server YANG conformance claims
    -- all modules, submodules and their revisions
    -- all enabled features
    -- all deviations



Andy


>> Maybe we should instead introduce a term like =E2=80=9Cdata model
>> specification=E2=80=9D because sometimes we deal with data models off li=
ne,
>> outside the server-client context.
>>
>> >
>> > Some constructs imply a run-time dependency.  If module A augments
>> > module B, there is a run-time dependency, meaning that a server that
>> > implements A must also implement B (modulo features).  A leafref also
>> > imply a run-time dependency.  (must and when expressions do not)
>>
>> How about identities? I think they should also belong to this
>> category, i.e. the set of permitted values is determined from the
>> modules (and revisions) a server advertises rather than from the
>> imported revisions.
>
> Well, you are right that the set of supported identities are
> determined from the advertised modules, but this has nothing to do
> with imports.
>
>
>> > So, the idea is this:
>> >
>> >  If a server implements a module A that imports B, and A augments B
>> >  or has a leafref to a node in B, the server MUST implement *some
>> >  version* of module B that has the nodes A references.  This is
>> >  regardless of A imports B by revision or not.
>> >
>> >  If a module A imports B by revision, any typedefs or a groupings
>> >  from B are picked from the specified revision of B, regardless of
>> >  which revision (if any!) of B the server implements.
>>
>> =E2=80=A6 advertises.
>
> No I meant implements (i.e., implements protocol-accessible nodes,
> which means that it is also advertised).
>
>> >  If a module A imports B without revision, and A uses typedefs and/or
>> >  groupings from B, the server MUST pick and advertise one revision of
>> >  B that has the used typedefs and groupings.  This requires a way to
>> >  advertise a module with "conformance=3Dno-protocol-accessible-nodes",
>> >  so that the server can advertise the module w/o implementing its
>> >  protocol accessible nodes.
>>
>> OK, I think this is both more flexible and more reliable than my
>> previous proposal.
>>
>> A related question is what to do with includes. Now that
>> ietf-yang-library (as opposed to hello) allows for specifying
>> submodules and their revisions, I think revision-date in includes
>> should be always ignored.
>
> I would be ok with *requiring* include-by revision.  If include
> without revision is used, then ietf-yang-library is needed.
>
> Anyway, I don't think the revision should be ignored, that would just
> be confusing.  What problem does it solve?  Why should it be ok for a
> server to include some other revision than the specified one?
>
>
> /martin
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod


From nobody Sun Mar 29 07:45:23 2015
Return-Path: <andy@yumaworks.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 B0F201AC445 for <netmod@ietfa.amsl.com>; Sun, 29 Mar 2015 07:45:22 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.979
X-Spam-Level: 
X-Spam-Status: No, score=-1.979 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] 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 bN-HPwLPb4iE for <netmod@ietfa.amsl.com>; Sun, 29 Mar 2015 07:45:21 -0700 (PDT)
Received: from mail-lb0-f178.google.com (mail-lb0-f178.google.com [209.85.217.178]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2C66E1AC43C for <netmod@ietf.org>; Sun, 29 Mar 2015 07:45:21 -0700 (PDT)
Received: by lbcmq2 with SMTP id mq2so91534860lbc.0 for <netmod@ietf.org>; Sun, 29 Mar 2015 07:45:19 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=Bzd1ZFCls96dA50F1tX5UjkcEAtSNM3IF0RSsTrWAgM=; b=CZMDfhfMbi+hWQolKPpRDdOhYe+figGSgeUcoHZ+/hZ1cb7328t7Yo+GCNz+KZD0Vu TbmEPAqLCJapUNqBxznz9jVz1/y9do4mPuItrwNFjCwzrjo0AeIzgeijnr//BOwwGnPV vVnTkqFigJyWckbwic55RfKkrern5uu59YU91BI9nzoQjUhIp6kqxnJt4cUd/Su6SWiL h5t5CJmU7+Xu7KeOfEIpChrg2LR6wwXY33pHjY3zzY0/LiYUnrP7+U86KYMmVFOHUguQ JFAcjjMz4fknRQM8KtsOSsO9a1hp4HYWZZnABGPQop2GOYSytYWoa0qb1Rd8BLkomMYm Xzhg==
X-Gm-Message-State: ALoCoQlbwsh9aLCEYh1a5iV/QQbPuDxO4ptrn8s3Xmix3uV+40n4B+hyfj+bzq2PENeV4fUz81O2
MIME-Version: 1.0
X-Received: by 10.113.4.105 with SMTP id cd9mr23996927lbd.38.1427640319653; Sun, 29 Mar 2015 07:45:19 -0700 (PDT)
Received: by 10.112.98.168 with HTTP; Sun, 29 Mar 2015 07:45:19 -0700 (PDT)
In-Reply-To: <9740B743-97E7-4161-B123-2AFBE4EBE2D3@nic.cz>
References: <20150328.160837.891193389716580490.mbj@tail-f.com> <CABCOCHSJ4+rJerLO4f0i-vO-zmMD2Bs+SepnXQVmQn9N+3FE+g@mail.gmail.com> <20150329.094343.625878615822690247.mbj@tail-f.com> <CABCOCHR_ps6iNiaNwFbXth5i2Sc3_FtaJdZY2PBe4g16NQH=FQ@mail.gmail.com> <9740B743-97E7-4161-B123-2AFBE4EBE2D3@nic.cz>
Date: Sun, 29 Mar 2015 07:45:19 -0700
Message-ID: <CABCOCHS7=udBhZDcJKSo_sQq1HDbFVKscsFRuf9M10-HOt_D0Q@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Ladislav Lhotka <lhotka@nic.cz>
Content-Type: text/plain; charset=UTF-8
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/MAToqlv-3TERdaXcSkKvUcForcw>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] Y45 again
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: <http://www.ietf.org/mail-archive/web/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: Sun, 29 Mar 2015 14:45:22 -0000

....
>> IMO the YANG guidelines MUST forbid the expansion of typedefs
>> and groupings in RFC published modules.  (Note I-D to I-D changes do
>> not count -- only RFC to RFC changes actually count).
>
> I strongly disagree. Especially at this stage when many things are under development we need to remain flexible. Keeping modules in I-D stage for extended periods is not a solution either.
>


I don't think we have any examples at all of any IETF RFC YANG modules that
are churning or are incapable of being updated in a responsible way.
The ietf-routing module does not count.  It is still an I-D.
The MIB Doctors have been able to oversee SMIv2 usage for a couple decades.
I think the YANG Doctors will be able to do the same for YANG.


Andy

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


From nobody Sun Mar 29 08:02:00 2015
Return-Path: <lhotka@nic.cz>
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 31C0B1ACC89 for <netmod@ietfa.amsl.com>; Sun, 29 Mar 2015 08:01:58 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.661
X-Spam-Level: 
X-Spam-Status: No, score=-0.661 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HELO_EQ_CZ=0.445, HOST_EQ_CZ=0.904, T_RP_MATCHES_RCVD=-0.01] autolearn=no
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 K5NKUMX9pXx5 for <netmod@ietfa.amsl.com>; Sun, 29 Mar 2015 08:01:57 -0700 (PDT)
Received: from mail.nic.cz (mail.nic.cz [IPv6:2001:1488:800:400::400]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E87EC1ACC88 for <netmod@ietf.org>; Sun, 29 Mar 2015 08:01:56 -0700 (PDT)
Received: from [IPv6:2001:1488:fffe:6:ffff:ffff:ffff:11] (unknown [IPv6:2001:1488:fffe:6:ffff:ffff:ffff:11]) by mail.nic.cz (Postfix) with ESMTPSA id 780DA13F7AD; Sun, 29 Mar 2015 17:01:55 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=nic.cz; s=default; t=1427641315; bh=ud3Sv1r2iH7OVmQ/sUtvbfQWUNXmDr2E6RaDeIY3x6c=; h=Content-Type:Mime-Version:Subject:From:In-Reply-To:Date:Cc: Content-Transfer-Encoding:Message-Id:References:To; b=KzLI9o28/kOeVMLSU60tJ0jGJveyx0jUZaejFrSFX4H4AYlOlDOhgi+MaK2B+JO7s uG2/YQccEffHXM8FYYq7PWRTBNO49aW9EZ71DaRzOaj6YryT0BiXcMhjPxlVdK24Uc SPeH3HvsHCjJjfAnTiDxT+Ei/tlnFN6UJQBD1kx0=
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2070.6\))
From: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <CABCOCHS7=udBhZDcJKSo_sQq1HDbFVKscsFRuf9M10-HOt_D0Q@mail.gmail.com>
Date: Sun, 29 Mar 2015 17:01:54 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <409DC5C8-D609-4BA5-A17D-F5F508C24AB6@nic.cz>
References: <20150328.160837.891193389716580490.mbj@tail-f.com> <CABCOCHSJ4+rJerLO4f0i-vO-zmMD2Bs+SepnXQVmQn9N+3FE+g@mail.gmail.com> <20150329.094343.625878615822690247.mbj@tail-f.com> <CABCOCHR_ps6iNiaNwFbXth5i2Sc3_FtaJdZY2PBe4g16NQH=FQ@mail.gmail.com> <9740B743-97E7-4161-B123-2AFBE4EBE2D3@nic.cz> <CABCOCHS7=udBhZDcJKSo_sQq1HDbFVKscsFRuf9M10-HOt_D0Q@mail.gmail.com>
To: Andy Bierman <andy@yumaworks.com>
X-Mailer: Apple Mail (2.2070.6)
X-Virus-Scanned: clamav-milter 0.98.6 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/pru5VE-K3zFx8iIEddFPEMqWVP0>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] Y45 again
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: <http://www.ietf.org/mail-archive/web/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: Sun, 29 Mar 2015 15:01:58 -0000

> On 29 Mar 2015, at 16:45, Andy Bierman <andy@yumaworks.com> wrote:
>=20
> ....
>>> IMO the YANG guidelines MUST forbid the expansion of typedefs
>>> and groupings in RFC published modules.  (Note I-D to I-D changes do
>>> not count -- only RFC to RFC changes actually count).
>>=20
>> I strongly disagree. Especially at this stage when many things are =
under development we need to remain flexible. Keeping modules in I-D =
stage for extended periods is not a solution either.
>>=20
>=20
>=20
> I don't think we have any examples at all of any IETF RFC YANG modules =
that
> are churning or are incapable of being updated in a responsible way.

Because we don=E2=80=99t have many such modules in the first place, and =
those few that exist haven=E2=80=99t been heavily tested in many =
implementations so far. For example, I bet ietf-system will need to be =
changed before long.=20

> The ietf-routing module does not count.  It is still an I-D.
> The MIB Doctors have been able to oversee SMIv2 usage for a couple =
decades.
> I think the YANG Doctors will be able to do the same for YANG.

So why all the fuss with YANG, why aren=E2=80=99t we using SMIv2?

Lada

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

--
Ladislav Lhotka, CZ.NIC Labs
PGP Key ID: E74E8C0C





From nobody Sun Mar 29 08:36:25 2015
Return-Path: <andy@yumaworks.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 2E6FD1A887E for <netmod@ietfa.amsl.com>; Sun, 29 Mar 2015 08:36:23 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.979
X-Spam-Level: 
X-Spam-Status: No, score=-1.979 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] 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 rTGl-d_CuSXF for <netmod@ietfa.amsl.com>; Sun, 29 Mar 2015 08:36:18 -0700 (PDT)
Received: from mail-la0-f47.google.com (mail-la0-f47.google.com [209.85.215.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 649DA1A8883 for <netmod@ietf.org>; Sun, 29 Mar 2015 08:36:18 -0700 (PDT)
Received: by lajy8 with SMTP id y8so219934laj.0 for <netmod@ietf.org>; Sun, 29 Mar 2015 08:36:17 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=j1sWqdROxJxmqpKjicmvG2PVHvwLzJ412vWUZsOj28g=; b=eG3f6yuQylEaGaJ98JtcyAzfJJOBNLB2cYnRirMsFVMm3rVwaPCQ4mo2pKNtWyzWm9 CkNO2va9pZzuDQgmYz+N+fNVedwMSb5k8AX55bofVG0FgDI8RPvlM+hbVIElEQN4H0HN yE7Dv2oZDAshq/OJCJ3IJJQSeHo5VEq6LL08e9TyPG5mkCn8UNSvn1qEiWfF//mmobt3 WyTAVfq0QfseXD1SweaEefYaiWRvurpPCN0mQ7JqX7U4++oqcxtolAo8BqY7WYiPIAqZ wMSRCmczi4eNGSkKiuDRn4FOu50wrVII83CqhZx44LUrMjaoTdfA3xUDRToPFQCH2Ebd xkLg==
X-Gm-Message-State: ALoCoQnKSjdS511WKAdBmWiFlV3DjizgNFpU9A9cuE92f+xoDVc+Uh0MnYDzz1oVDmlMBcUt0GyX
MIME-Version: 1.0
X-Received: by 10.112.133.225 with SMTP id pf1mr25489008lbb.33.1427643376936;  Sun, 29 Mar 2015 08:36:16 -0700 (PDT)
Received: by 10.112.98.168 with HTTP; Sun, 29 Mar 2015 08:36:16 -0700 (PDT)
In-Reply-To: <409DC5C8-D609-4BA5-A17D-F5F508C24AB6@nic.cz>
References: <20150328.160837.891193389716580490.mbj@tail-f.com> <CABCOCHSJ4+rJerLO4f0i-vO-zmMD2Bs+SepnXQVmQn9N+3FE+g@mail.gmail.com> <20150329.094343.625878615822690247.mbj@tail-f.com> <CABCOCHR_ps6iNiaNwFbXth5i2Sc3_FtaJdZY2PBe4g16NQH=FQ@mail.gmail.com> <9740B743-97E7-4161-B123-2AFBE4EBE2D3@nic.cz> <CABCOCHS7=udBhZDcJKSo_sQq1HDbFVKscsFRuf9M10-HOt_D0Q@mail.gmail.com> <409DC5C8-D609-4BA5-A17D-F5F508C24AB6@nic.cz>
Date: Sun, 29 Mar 2015 08:36:16 -0700
Message-ID: <CABCOCHTGdnPwmHy+9OTt-tAP6q0R-+Ao27KiEAPBbniWKS5kAw@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Ladislav Lhotka <lhotka@nic.cz>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/x_BniPM6HH0zZsQp7PavLqBfdCc>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] Y45 again
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: <http://www.ietf.org/mail-archive/web/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: Sun, 29 Mar 2015 15:36:23 -0000

On Sun, Mar 29, 2015 at 8:01 AM, Ladislav Lhotka <lhotka@nic.cz> wrote:
>
>> On 29 Mar 2015, at 16:45, Andy Bierman <andy@yumaworks.com> wrote:
>>
>> ....
>>>> IMO the YANG guidelines MUST forbid the expansion of typedefs
>>>> and groupings in RFC published modules.  (Note I-D to I-D changes do
>>>> not count -- only RFC to RFC changes actually count).
>>>
>>> I strongly disagree. Especially at this stage when many things are unde=
r development we need to remain flexible. Keeping modules in I-D stage for =
extended periods is not a solution either.
>>>
>>
>>
>> I don't think we have any examples at all of any IETF RFC YANG modules t=
hat
>> are churning or are incapable of being updated in a responsible way.
>
> Because we don=E2=80=99t have many such modules in the first place, and t=
hose few that exist haven=E2=80=99t been heavily tested in many implementat=
ions so far. For example, I bet ietf-system will need to be changed before =
long.
>


Changing is fine. Adding new functionality in a way that does not break
the existing functionality is fine.  Those of us who have to deal with the
tech-support requests for a living understand why updating APIs in
a way that breaks existing functionality is a bad idea.


>> The ietf-routing module does not count.  It is still an I-D.
>> The MIB Doctors have been able to oversee SMIv2 usage for a couple decad=
es.
>> I think the YANG Doctors will be able to do the same for YANG.
>
> So why all the fuss with YANG, why aren=E2=80=99t we using SMIv2?
>

Because YANG is way better, just like the stuff 20 years from now
will be way better than YANG.

It would be unwise to ignore the experience gained from SNMP evolution
and deployment.  NETCONF/YANG has leap-frogged SNMP/SMIv2
in many ways, but not all.

> Lada
>


Andy


From nobody Sun Mar 29 09:20:25 2015
Return-Path: <lhotka@nic.cz>
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 8FF7F1A8924 for <netmod@ietfa.amsl.com>; Sun, 29 Mar 2015 09:20:24 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.661
X-Spam-Level: 
X-Spam-Status: No, score=-0.661 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HELO_EQ_CZ=0.445, HOST_EQ_CZ=0.904, T_RP_MATCHES_RCVD=-0.01] autolearn=no
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 kHatDePc82fd for <netmod@ietfa.amsl.com>; Sun, 29 Mar 2015 09:20:22 -0700 (PDT)
Received: from mail.nic.cz (mail.nic.cz [IPv6:2001:1488:800:400::400]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 891AC1A891B for <netmod@ietf.org>; Sun, 29 Mar 2015 09:20:22 -0700 (PDT)
Received: from [172.29.2.202] (unknown [77.48.225.14]) by mail.nic.cz (Postfix) with ESMTPSA id 90B0713F7AD; Sun, 29 Mar 2015 18:20:20 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=nic.cz; s=default; t=1427646020; bh=Ndo7CzYcwzeL0e3y3E6NufstmbHzCAcBnrxvd/rzzis=; h=Content-Type:Mime-Version:Subject:From:In-Reply-To:Date:Cc: Content-Transfer-Encoding:Message-Id:References:To; b=VPOjcm5SNno4HaL3m35addz8aEyp0lIMC5eXeSYVsw7Aw2msS12c8Cr9jyZoR9JpV fYj8Pa4l8C8sGcIqwavwp2zl2pPEGokIbGhaZ3kTzLMEDO5z/h8bBwHqE/MCy8uxUn 5YlCE8Yb3PUy2e7QChGYEyYCpdzGZNqUD8Jk5Xmo=
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2070.6\))
From: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <CABCOCHTGdnPwmHy+9OTt-tAP6q0R-+Ao27KiEAPBbniWKS5kAw@mail.gmail.com>
Date: Sun, 29 Mar 2015 18:20:19 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <19C3B31F-35A3-43CA-8977-4CAE13E34A36@nic.cz>
References: <20150328.160837.891193389716580490.mbj@tail-f.com> <CABCOCHSJ4+rJerLO4f0i-vO-zmMD2Bs+SepnXQVmQn9N+3FE+g@mail.gmail.com> <20150329.094343.625878615822690247.mbj@tail-f.com> <CABCOCHR_ps6iNiaNwFbXth5i2Sc3_FtaJdZY2PBe4g16NQH=FQ@mail.gmail.com> <9740B743-97E7-4161-B123-2AFBE4EBE2D3@nic.cz> <CABCOCHS7=udBhZDcJKSo_sQq1HDbFVKscsFRuf9M10-HOt_D0Q@mail.gmail.com> <409DC5C8-D609-4BA5-A17D-F5F508C24AB6@nic.cz> <CABCOCHTGdnPwmHy+9OTt-tAP6q0R-+Ao27KiEAPBbniWKS5kAw@mail.gmail.com>
To: Andy Bierman <andy@yumaworks.com>
X-Mailer: Apple Mail (2.2070.6)
X-Virus-Scanned: clamav-milter 0.98.6 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/m3nzztm0PJQ0gvmNIricat6S3aY>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] Y45 again
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: <http://www.ietf.org/mail-archive/web/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: Sun, 29 Mar 2015 16:20:24 -0000

> On 29 Mar 2015, at 17:36, Andy Bierman <andy@yumaworks.com> wrote:
>=20
> On Sun, Mar 29, 2015 at 8:01 AM, Ladislav Lhotka <lhotka@nic.cz> =
wrote:
>>=20
>>> On 29 Mar 2015, at 16:45, Andy Bierman <andy@yumaworks.com> wrote:
>>>=20
>>> ....
>>>>> IMO the YANG guidelines MUST forbid the expansion of typedefs
>>>>> and groupings in RFC published modules.  (Note I-D to I-D changes =
do
>>>>> not count -- only RFC to RFC changes actually count).
>>>>=20
>>>> I strongly disagree. Especially at this stage when many things are =
under development we need to remain flexible. Keeping modules in I-D =
stage for extended periods is not a solution either.
>>>>=20
>>>=20
>>>=20
>>> I don't think we have any examples at all of any IETF RFC YANG =
modules that
>>> are churning or are incapable of being updated in a responsible way.
>>=20
>> Because we don=E2=80=99t have many such modules in the first place, =
and those few that exist haven=E2=80=99t been heavily tested in many =
implementations so far. For example, I bet ietf-system will need to be =
changed before long.
>>=20
>=20
>=20
> Changing is fine. Adding new functionality in a way that does not =
break
> the existing functionality is fine.  Those of us who have to deal with =
the

Regarding typedefs and groupings, Y45-02 doesn=E2=80=99t leave much =
space for changes or additions.=20

> tech-support requests for a living understand why updating APIs in
> a way that breaks existing functionality is a bad idea.

If you start a software project and fix all APIs in version 0.1, then =
you usually don=E2=80=99t get very far. And I=E2=80=99d argue the YANG =
module ecosystem is in version 0.001.

>=20
>=20
>>> The ietf-routing module does not count.  It is still an I-D.
>>> The MIB Doctors have been able to oversee SMIv2 usage for a couple =
decades.
>>> I think the YANG Doctors will be able to do the same for YANG.
>>=20
>> So why all the fuss with YANG, why aren=E2=80=99t we using SMIv2?
>>=20
>=20
> Because YANG is way better, just like the stuff 20 years from now
> will be way better than YANG.

I=E2=80=99d hope that people in 20 years will be using YANG 3.0 and =
modules with an ancestry line to the stuff we are doing now. But if YANG =
and its modules aren=E2=80=99t sufficiently adaptable, then at some =
moment it will become necessary to abandon it and start something =
completely new.

Lada
=20
>=20
> It would be unwise to ignore the experience gained from SNMP evolution
> and deployment.  NETCONF/YANG has leap-frogged SNMP/SMIv2
> in many ways, but not all.
>=20
>> Lada
>>=20
>=20
>=20
> Andy

--
Ladislav Lhotka, CZ.NIC Labs
PGP Key ID: E74E8C0C





From nobody Sun Mar 29 09:28:28 2015
Return-Path: <andy@yumaworks.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 8F1D21A008A for <netmod@ietfa.amsl.com>; Sun, 29 Mar 2015 09:28:26 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.979
X-Spam-Level: 
X-Spam-Status: No, score=-1.979 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] 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 tlT32q7jIbCD for <netmod@ietfa.amsl.com>; Sun, 29 Mar 2015 09:28:25 -0700 (PDT)
Received: from mail-la0-f45.google.com (mail-la0-f45.google.com [209.85.215.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id DC3E31A0040 for <netmod@ietf.org>; Sun, 29 Mar 2015 09:28:24 -0700 (PDT)
Received: by labe2 with SMTP id e2so101555568lab.3 for <netmod@ietf.org>; Sun, 29 Mar 2015 09:28:23 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=bU6hwRBXwVocoTw9ASOYZ8ijK3THkwobDZqvfMEe/hE=; b=HzduYFyp7u/ZNqOodzBfjpzvbY0pz5LbDDxXIUltSlSIHdXuIPK1ZzJrtqRxuNj637 4wkfR5YDno/z6xwzCd5QyAdfAc81lp08WZn1PfvurlQ9uUVcqr2ruOq76MrIxjKzZmRw s3wbPwxz88u9D0fIxz3sJycXGoMDwvZgM8tzFRIEcj2ZkGrEgGcoYSyD64UPixZ4S4Yg bOxy5Vmp7LJ40Ph0A9vhGZKtAdVRvxBN8jmh4QGcwzmeQd5T+hMRPzfbzDfjunxKcKOd fHXMQiqOySl/Ghai2raZqmLXypi+1bjQTLy8AuHMXu4ABwj8vjAR7AIDKyMrvoWBZseB l8UQ==
X-Gm-Message-State: ALoCoQkJNbYv9AnA3JNvI/w+mHR/qe2Mkrx7jlJajjbWoF3v22ep354TaRDmfH3cyI/pPP5V4nk9
MIME-Version: 1.0
X-Received: by 10.152.244.161 with SMTP id xh1mr25065851lac.119.1427646503326;  Sun, 29 Mar 2015 09:28:23 -0700 (PDT)
Received: by 10.112.98.168 with HTTP; Sun, 29 Mar 2015 09:28:23 -0700 (PDT)
In-Reply-To: <19C3B31F-35A3-43CA-8977-4CAE13E34A36@nic.cz>
References: <20150328.160837.891193389716580490.mbj@tail-f.com> <CABCOCHSJ4+rJerLO4f0i-vO-zmMD2Bs+SepnXQVmQn9N+3FE+g@mail.gmail.com> <20150329.094343.625878615822690247.mbj@tail-f.com> <CABCOCHR_ps6iNiaNwFbXth5i2Sc3_FtaJdZY2PBe4g16NQH=FQ@mail.gmail.com> <9740B743-97E7-4161-B123-2AFBE4EBE2D3@nic.cz> <CABCOCHS7=udBhZDcJKSo_sQq1HDbFVKscsFRuf9M10-HOt_D0Q@mail.gmail.com> <409DC5C8-D609-4BA5-A17D-F5F508C24AB6@nic.cz> <CABCOCHTGdnPwmHy+9OTt-tAP6q0R-+Ao27KiEAPBbniWKS5kAw@mail.gmail.com> <19C3B31F-35A3-43CA-8977-4CAE13E34A36@nic.cz>
Date: Sun, 29 Mar 2015 09:28:23 -0700
Message-ID: <CABCOCHQW27hWVr6bOa28xkPZX78whK198cp_gO-DGbLUwJC2fg@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Ladislav Lhotka <lhotka@nic.cz>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/_xH0maiQkPaE_kbEX5xaxgxpi08>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] Y45 again
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: <http://www.ietf.org/mail-archive/web/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: Sun, 29 Mar 2015 16:28:26 -0000

On Sun, Mar 29, 2015 at 9:20 AM, Ladislav Lhotka <lhotka@nic.cz> wrote:
>
>> On 29 Mar 2015, at 17:36, Andy Bierman <andy@yumaworks.com> wrote:
>>
>> On Sun, Mar 29, 2015 at 8:01 AM, Ladislav Lhotka <lhotka@nic.cz> wrote:
>>>
>>>> On 29 Mar 2015, at 16:45, Andy Bierman <andy@yumaworks.com> wrote:
>>>>
>>>> ....
>>>>>> IMO the YANG guidelines MUST forbid the expansion of typedefs
>>>>>> and groupings in RFC published modules.  (Note I-D to I-D changes do
>>>>>> not count -- only RFC to RFC changes actually count).
>>>>>
>>>>> I strongly disagree. Especially at this stage when many things are un=
der development we need to remain flexible. Keeping modules in I-D stage fo=
r extended periods is not a solution either.
>>>>>
>>>>
>>>>
>>>> I don't think we have any examples at all of any IETF RFC YANG modules=
 that
>>>> are churning or are incapable of being updated in a responsible way.
>>>
>>> Because we don=E2=80=99t have many such modules in the first place, and=
 those few that exist haven=E2=80=99t been heavily tested in many implement=
ations so far. For example, I bet ietf-system will need to be changed befor=
e long.
>>>
>>
>>
>> Changing is fine. Adding new functionality in a way that does not break
>> the existing functionality is fine.  Those of us who have to deal with t=
he
>
> Regarding typedefs and groupings, Y45-02 doesn=E2=80=99t leave much space=
 for changes or additions.
>

Disagree...
First bullet of Y42-02
    Typedefs must not change their value space or semantics.
    If this is needed, a new typedef needs to be created.
    This does not affect the ability to make bug fixes.

A clarification is needed:

    Any type of sub-statement change, even extending the value range
    can be considered within a bug-fix.  E.g., a range can be extended if t=
he
    original range was wrong. Enums can be added if they were left out by
    mistake, not intent.


Andy


>> tech-support requests for a living understand why updating APIs in
>> a way that breaks existing functionality is a bad idea.
>
> If you start a software project and fix all APIs in version 0.1, then you=
 usually don=E2=80=99t get very far. And I=E2=80=99d argue the YANG module =
ecosystem is in version 0.001.
>
>>
>>
>>>> The ietf-routing module does not count.  It is still an I-D.
>>>> The MIB Doctors have been able to oversee SMIv2 usage for a couple dec=
ades.
>>>> I think the YANG Doctors will be able to do the same for YANG.
>>>
>>> So why all the fuss with YANG, why aren=E2=80=99t we using SMIv2?
>>>
>>
>> Because YANG is way better, just like the stuff 20 years from now
>> will be way better than YANG.
>
> I=E2=80=99d hope that people in 20 years will be using YANG 3.0 and modul=
es with an ancestry line to the stuff we are doing now. But if YANG and its=
 modules aren=E2=80=99t sufficiently adaptable, then at some moment it will=
 become necessary to abandon it and start something completely new.
>
> Lada
>
>>
>> It would be unwise to ignore the experience gained from SNMP evolution
>> and deployment.  NETCONF/YANG has leap-frogged SNMP/SMIv2
>> in many ways, but not all.
>>
>>> Lada
>>>
>>
>>
>> Andy
>
> --
> Ladislav Lhotka, CZ.NIC Labs
> PGP Key ID: E74E8C0C
>
>
>
>


From nobody Sun Mar 29 09:43:24 2015
Return-Path: <lhotka@nic.cz>
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 E0CBE1A019B for <netmod@ietfa.amsl.com>; Sun, 29 Mar 2015 09:43:22 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.661
X-Spam-Level: 
X-Spam-Status: No, score=-0.661 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HELO_EQ_CZ=0.445, HOST_EQ_CZ=0.904, T_RP_MATCHES_RCVD=-0.01] autolearn=no
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 0F-F5jE9GwVb for <netmod@ietfa.amsl.com>; Sun, 29 Mar 2015 09:43:21 -0700 (PDT)
Received: from mail.nic.cz (mail.nic.cz [IPv6:2001:1488:800:400::400]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 87FDB1A0197 for <netmod@ietf.org>; Sun, 29 Mar 2015 09:43:21 -0700 (PDT)
Received: from [IPv6:2a01:5e0:29:ffff:d9b1:9b03:2100:553] (unknown [IPv6:2a01:5e0:29:ffff:d9b1:9b03:2100:553]) by mail.nic.cz (Postfix) with ESMTPSA id 08F8413F865; Sun, 29 Mar 2015 18:43:19 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=nic.cz; s=default; t=1427647399; bh=mv4KQNDABiJd8oFD+zuuxU3bufQZHgurHRCruuW8YbM=; h=Content-Type:Mime-Version:Subject:From:In-Reply-To:Date:Cc: Content-Transfer-Encoding:Message-Id:References:To; b=G2dT3ipV27xeMzVf00YcHIu82y/xAYeZfc80J5iaEcUKcs0BsqDp/MCXZ9XNV1zz1 ajXpOV1TtMWkjRRjdiWQMw2M3bc8/pUtjTtH/uS7eW1vLEdsVNdZy4B28lqFACR6x/ rOM/RpgujvFQd9kNIqr/kwPQXuNkERkTqQgXqjwI=
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2070.6\))
From: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <CABCOCHQW27hWVr6bOa28xkPZX78whK198cp_gO-DGbLUwJC2fg@mail.gmail.com>
Date: Sun, 29 Mar 2015 18:43:17 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <D487C7F4-60D9-4641-AFFE-490A26793F3F@nic.cz>
References: <20150328.160837.891193389716580490.mbj@tail-f.com> <CABCOCHSJ4+rJerLO4f0i-vO-zmMD2Bs+SepnXQVmQn9N+3FE+g@mail.gmail.com> <20150329.094343.625878615822690247.mbj@tail-f.com> <CABCOCHR_ps6iNiaNwFbXth5i2Sc3_FtaJdZY2PBe4g16NQH=FQ@mail.gmail.com> <9740B743-97E7-4161-B123-2AFBE4EBE2D3@nic.cz> <CABCOCHS7=udBhZDcJKSo_sQq1HDbFVKscsFRuf9M10-HOt_D0Q@mail.gmail.com> <409DC5C8-D609-4BA5-A17D-F5F508C24AB6@nic.cz> <CABCOCHTGdnPwmHy+9OTt-tAP6q0R-+Ao27KiEAPBbniWKS5kAw@mail.gmail.com> <19C3B31F-35A3-43CA-8977-4CAE13E34A36@nic.cz> <CABCOCHQW27hWVr6bOa28xkPZX78whK198cp_gO-DGbLUwJC2fg@mail.gmail.com>
To: Andy Bierman <andy@yumaworks.com>
X-Mailer: Apple Mail (2.2070.6)
X-Virus-Scanned: clamav-milter 0.98.6 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/ozFDRC0jxZhRb_wVjA0AmcPMOJY>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] Y45 again
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: <http://www.ietf.org/mail-archive/web/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: Sun, 29 Mar 2015 16:43:23 -0000

> On 29 Mar 2015, at 18:28, Andy Bierman <andy@yumaworks.com> wrote:
>=20
> On Sun, Mar 29, 2015 at 9:20 AM, Ladislav Lhotka <lhotka@nic.cz> =
wrote:
>>=20
>>> On 29 Mar 2015, at 17:36, Andy Bierman <andy@yumaworks.com> wrote:
>>>=20
>>> On Sun, Mar 29, 2015 at 8:01 AM, Ladislav Lhotka <lhotka@nic.cz> =
wrote:
>>>>=20
>>>>> On 29 Mar 2015, at 16:45, Andy Bierman <andy@yumaworks.com> wrote:
>>>>>=20
>>>>> ....
>>>>>>> IMO the YANG guidelines MUST forbid the expansion of typedefs
>>>>>>> and groupings in RFC published modules.  (Note I-D to I-D =
changes do
>>>>>>> not count -- only RFC to RFC changes actually count).
>>>>>>=20
>>>>>> I strongly disagree. Especially at this stage when many things =
are under development we need to remain flexible. Keeping modules in I-D =
stage for extended periods is not a solution either.
>>>>>>=20
>>>>>=20
>>>>>=20
>>>>> I don't think we have any examples at all of any IETF RFC YANG =
modules that
>>>>> are churning or are incapable of being updated in a responsible =
way.
>>>>=20
>>>> Because we don=E2=80=99t have many such modules in the first place, =
and those few that exist haven=E2=80=99t been heavily tested in many =
implementations so far. For example, I bet ietf-system will need to be =
changed before long.
>>>>=20
>>>=20
>>>=20
>>> Changing is fine. Adding new functionality in a way that does not =
break
>>> the existing functionality is fine.  Those of us who have to deal =
with the
>>=20
>> Regarding typedefs and groupings, Y45-02 doesn=E2=80=99t leave much =
space for changes or additions.
>>=20
>=20
> Disagree...
> First bullet of Y42-02
>    Typedefs must not change their value space or semantics.
>    If this is needed, a new typedef needs to be created.
>    This does not affect the ability to make bug fixes.
>=20
> A clarification is needed:
>=20
>    Any type of sub-statement change, even extending the value range
>    can be considered within a bug-fix.  E.g., a range can be extended =
if the
>    original range was wrong. Enums can be added if they were left out =
by
>    mistake, not intent.

IMO registries that do not need *distributed* extensibility, such as =
country codes, should be implemented as enumerations that can change in =
subsequent revisions. Identities have their share of problems, too.

Lada

>=20
>=20
> Andy
>=20
>=20
>>> tech-support requests for a living understand why updating APIs in
>>> a way that breaks existing functionality is a bad idea.
>>=20
>> If you start a software project and fix all APIs in version 0.1, then =
you usually don=E2=80=99t get very far. And I=E2=80=99d argue the YANG =
module ecosystem is in version 0.001.
>>=20
>>>=20
>>>=20
>>>>> The ietf-routing module does not count.  It is still an I-D.
>>>>> The MIB Doctors have been able to oversee SMIv2 usage for a couple =
decades.
>>>>> I think the YANG Doctors will be able to do the same for YANG.
>>>>=20
>>>> So why all the fuss with YANG, why aren=E2=80=99t we using SMIv2?
>>>>=20
>>>=20
>>> Because YANG is way better, just like the stuff 20 years from now
>>> will be way better than YANG.
>>=20
>> I=E2=80=99d hope that people in 20 years will be using YANG 3.0 and =
modules with an ancestry line to the stuff we are doing now. But if YANG =
and its modules aren=E2=80=99t sufficiently adaptable, then at some =
moment it will become necessary to abandon it and start something =
completely new.
>>=20
>> Lada
>>=20
>>>=20
>>> It would be unwise to ignore the experience gained from SNMP =
evolution
>>> and deployment.  NETCONF/YANG has leap-frogged SNMP/SMIv2
>>> in many ways, but not all.
>>>=20
>>>> Lada
>>>>=20
>>>=20
>>>=20
>>> Andy
>>=20
>> --
>> Ladislav Lhotka, CZ.NIC Labs
>> PGP Key ID: E74E8C0C

--
Ladislav Lhotka, CZ.NIC Labs
PGP Key ID: E74E8C0C





From nobody Sun Mar 29 10:54:05 2015
Return-Path: <mbj@tail-f.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 CA68A1A6F2B for <netmod@ietfa.amsl.com>; Sun, 29 Mar 2015 10:54:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.91
X-Spam-Level: 
X-Spam-Status: No, score=-1.91 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, T_RP_MATCHES_RCVD=-0.01] 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 EDArhQJ_9Xps for <netmod@ietfa.amsl.com>; Sun, 29 Mar 2015 10:54:03 -0700 (PDT)
Received: from mail.tail-f.com (mail.tail-f.com [83.241.162.140]) by ietfa.amsl.com (Postfix) with ESMTP id 564141A6F28 for <netmod@ietf.org>; Sun, 29 Mar 2015 10:54:03 -0700 (PDT)
Received: from localhost (unknown [213.136.39.104]) by mail.tail-f.com (Postfix) with ESMTPSA id 46A471280008; Sun, 29 Mar 2015 19:54:02 +0200 (CEST)
Date: Sun, 29 Mar 2015 19:53:51 +0200 (CEST)
Message-Id: <20150329.195351.1707615545765670554.mbj@tail-f.com>
To: andy@yumaworks.com
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <CABCOCHS7=udBhZDcJKSo_sQq1HDbFVKscsFRuf9M10-HOt_D0Q@mail.gmail.com>
References: <CABCOCHR_ps6iNiaNwFbXth5i2Sc3_FtaJdZY2PBe4g16NQH=FQ@mail.gmail.com> <9740B743-97E7-4161-B123-2AFBE4EBE2D3@nic.cz> <CABCOCHS7=udBhZDcJKSo_sQq1HDbFVKscsFRuf9M10-HOt_D0Q@mail.gmail.com>
X-Mailer: Mew version 6.5 on Emacs 24.3 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/X55RdquylXZQQcMbP0QLLhHkUyU>
Cc: netmod@ietf.org
Subject: Re: [netmod] Y45 again
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: <http://www.ietf.org/mail-archive/web/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: Sun, 29 Mar 2015 17:54:04 -0000

Andy Bierman <andy@yumaworks.com> wrote:
> ....
> >> IMO the YANG guidelines MUST forbid the expansion of typedefs
> >> and groupings in RFC published modules.  (Note I-D to I-D changes do
> >> not count -- only RFC to RFC changes actually count).
> >
> > I strongly disagree. Especially at this stage when many things are under development we need to remain flexible. Keeping modules in I-D stage for extended periods is not a solution either.
> >
> 
> 
> I don't think we have any examples at all of any IETF RFC YANG modules that
> are churning or are incapable of being updated in a responsible way.
> The ietf-routing module does not count.  It is still an I-D.
> The MIB Doctors have been able to oversee SMIv2 usage for a couple decades.
> I think the YANG Doctors will be able to do the same for YANG.

Agreed.  And for this reason I don't think the IETF guidelines should
have MUST forbid extended value space for typedefs and groupings - in
some cases it makese sense.  Two such example are IANAifType and
IANAPhysClass.


/martin


From nobody Sun Mar 29 10:56:17 2015
Return-Path: <mbj@tail-f.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 86DD51A6F2B for <netmod@ietfa.amsl.com>; Sun, 29 Mar 2015 10:56:16 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.91
X-Spam-Level: 
X-Spam-Status: No, score=-1.91 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, T_RP_MATCHES_RCVD=-0.01] 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 0_arkF0rLuNZ for <netmod@ietfa.amsl.com>; Sun, 29 Mar 2015 10:56:13 -0700 (PDT)
Received: from mail.tail-f.com (mail.tail-f.com [83.241.162.140]) by ietfa.amsl.com (Postfix) with ESMTP id 68D531A6F28 for <netmod@ietf.org>; Sun, 29 Mar 2015 10:56:13 -0700 (PDT)
Received: from localhost (unknown [213.136.39.104]) by mail.tail-f.com (Postfix) with ESMTPSA id AFB891280008; Sun, 29 Mar 2015 19:56:12 +0200 (CEST)
Date: Sun, 29 Mar 2015 19:56:13 +0200 (CEST)
Message-Id: <20150329.195613.451918779976987135.mbj@tail-f.com>
To: andy@yumaworks.com
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <CABCOCHQW27hWVr6bOa28xkPZX78whK198cp_gO-DGbLUwJC2fg@mail.gmail.com>
References: <CABCOCHTGdnPwmHy+9OTt-tAP6q0R-+Ao27KiEAPBbniWKS5kAw@mail.gmail.com> <19C3B31F-35A3-43CA-8977-4CAE13E34A36@nic.cz> <CABCOCHQW27hWVr6bOa28xkPZX78whK198cp_gO-DGbLUwJC2fg@mail.gmail.com>
X-Mailer: Mew version 6.5 on Emacs 24.3 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=utf-8
Content-Transfer-Encoding: base64
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/6h8CQ7kNTADhcf_D5yc9dd0gnXc>
Cc: netmod@ietf.org
Subject: Re: [netmod] Y45 again
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: <http://www.ietf.org/mail-archive/web/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: Sun, 29 Mar 2015 17:56:16 -0000

QW5keSBCaWVybWFuIDxhbmR5QHl1bWF3b3Jrcy5jb20+IHdyb3RlOg0KPiBPbiBTdW4sIE1hciAy
OSwgMjAxNSBhdCA5OjIwIEFNLCBMYWRpc2xhdiBMaG90a2EgPGxob3RrYUBuaWMuY3o+IHdyb3Rl
Og0KPiA+DQo+ID4+IE9uIDI5IE1hciAyMDE1LCBhdCAxNzozNiwgQW5keSBCaWVybWFuIDxhbmR5
QHl1bWF3b3Jrcy5jb20+IHdyb3RlOg0KPiA+Pg0KPiA+PiBPbiBTdW4sIE1hciAyOSwgMjAxNSBh
dCA4OjAxIEFNLCBMYWRpc2xhdiBMaG90a2EgPGxob3RrYUBuaWMuY3o+IHdyb3RlOg0KPiA+Pj4N
Cj4gPj4+PiBPbiAyOSBNYXIgMjAxNSwgYXQgMTY6NDUsIEFuZHkgQmllcm1hbiA8YW5keUB5dW1h
d29ya3MuY29tPiB3cm90ZToNCj4gPj4+Pg0KPiA+Pj4+IC4uLi4NCj4gPj4+Pj4+IElNTyB0aGUg
WUFORyBndWlkZWxpbmVzIE1VU1QgZm9yYmlkIHRoZSBleHBhbnNpb24gb2YgdHlwZWRlZnMNCj4g
Pj4+Pj4+IGFuZCBncm91cGluZ3MgaW4gUkZDIHB1Ymxpc2hlZCBtb2R1bGVzLiAgKE5vdGUgSS1E
IHRvIEktRCBjaGFuZ2VzIGRvDQo+ID4+Pj4+PiBub3QgY291bnQgLS0gb25seSBSRkMgdG8gUkZD
IGNoYW5nZXMgYWN0dWFsbHkgY291bnQpLg0KPiA+Pj4+Pg0KPiA+Pj4+PiBJIHN0cm9uZ2x5IGRp
c2FncmVlLiBFc3BlY2lhbGx5IGF0IHRoaXMgc3RhZ2Ugd2hlbiBtYW55IHRoaW5ncyBhcmUgdW5k
ZXIgZGV2ZWxvcG1lbnQgd2UgbmVlZCB0byByZW1haW4gZmxleGlibGUuIEtlZXBpbmcgbW9kdWxl
cyBpbiBJLUQgc3RhZ2UgZm9yIGV4dGVuZGVkIHBlcmlvZHMgaXMgbm90IGEgc29sdXRpb24gZWl0
aGVyLg0KPiA+Pj4+Pg0KPiA+Pj4+DQo+ID4+Pj4NCj4gPj4+PiBJIGRvbid0IHRoaW5rIHdlIGhh
dmUgYW55IGV4YW1wbGVzIGF0IGFsbCBvZiBhbnkgSUVURiBSRkMgWUFORyBtb2R1bGVzIHRoYXQN
Cj4gPj4+PiBhcmUgY2h1cm5pbmcgb3IgYXJlIGluY2FwYWJsZSBvZiBiZWluZyB1cGRhdGVkIGlu
IGEgcmVzcG9uc2libGUgd2F5Lg0KPiA+Pj4NCj4gPj4+IEJlY2F1c2Ugd2UgZG9u4oCZdCBoYXZl
IG1hbnkgc3VjaCBtb2R1bGVzIGluIHRoZSBmaXJzdCBwbGFjZSwgYW5kIHRob3NlIGZldyB0aGF0
IGV4aXN0IGhhdmVu4oCZdCBiZWVuIGhlYXZpbHkgdGVzdGVkIGluIG1hbnkgaW1wbGVtZW50YXRp
b25zIHNvIGZhci4gRm9yIGV4YW1wbGUsIEkgYmV0IGlldGYtc3lzdGVtIHdpbGwgbmVlZCB0byBi
ZSBjaGFuZ2VkIGJlZm9yZSBsb25nLg0KPiA+Pj4NCj4gPj4NCj4gPj4NCj4gPj4gQ2hhbmdpbmcg
aXMgZmluZS4gQWRkaW5nIG5ldyBmdW5jdGlvbmFsaXR5IGluIGEgd2F5IHRoYXQgZG9lcyBub3Qg
YnJlYWsNCj4gPj4gdGhlIGV4aXN0aW5nIGZ1bmN0aW9uYWxpdHkgaXMgZmluZS4gIFRob3NlIG9m
IHVzIHdobyBoYXZlIHRvIGRlYWwgd2l0aCB0aGUNCj4gPg0KPiA+IFJlZ2FyZGluZyB0eXBlZGVm
cyBhbmQgZ3JvdXBpbmdzLCBZNDUtMDIgZG9lc27igJl0IGxlYXZlIG11Y2ggc3BhY2UgZm9yIGNo
YW5nZXMgb3IgYWRkaXRpb25zLg0KPiA+DQo+IA0KPiBEaXNhZ3JlZS4uLg0KPiBGaXJzdCBidWxs
ZXQgb2YgWTQyLTAyDQo+ICAgICBUeXBlZGVmcyBtdXN0IG5vdCBjaGFuZ2UgdGhlaXIgdmFsdWUg
c3BhY2Ugb3Igc2VtYW50aWNzLg0KPiAgICAgSWYgdGhpcyBpcyBuZWVkZWQsIGEgbmV3IHR5cGVk
ZWYgbmVlZHMgdG8gYmUgY3JlYXRlZC4NCj4gICAgIFRoaXMgZG9lcyBub3QgYWZmZWN0IHRoZSBh
YmlsaXR5IHRvIG1ha2UgYnVnIGZpeGVzLg0KPiANCg0KTk9URTogdGhpcyBuZXcgcHJvcG9zYWwg
aXMgTk9UIFk0NS0wMjsgdGhlIGlkZWEgd2l0aCB0aGUgbmV3IHByb3Bvc2FsDQppcyB0byBhbGxv
dyB2YWx1ZSBzcGFjZSBleHBhbnNpb24uDQoNCg0KL21hcnRpbg0KDQoNCg0KPiBBIGNsYXJpZmlj
YXRpb24gaXMgbmVlZGVkOg0KPiANCj4gICAgIEFueSB0eXBlIG9mIHN1Yi1zdGF0ZW1lbnQgY2hh
bmdlLCBldmVuIGV4dGVuZGluZyB0aGUgdmFsdWUgcmFuZ2UNCj4gICAgIGNhbiBiZSBjb25zaWRl
cmVkIHdpdGhpbiBhIGJ1Zy1maXguICBFLmcuLCBhIHJhbmdlIGNhbiBiZSBleHRlbmRlZCBpZiB0
aGUNCj4gICAgIG9yaWdpbmFsIHJhbmdlIHdhcyB3cm9uZy4gRW51bXMgY2FuIGJlIGFkZGVkIGlm
IHRoZXkgd2VyZSBsZWZ0IG91dCBieQ0KPiAgICAgbWlzdGFrZSwgbm90IGludGVudC4NCj4gDQo+
IA0KPiBBbmR5DQo+IA0KPiANCj4gPj4gdGVjaC1zdXBwb3J0IHJlcXVlc3RzIGZvciBhIGxpdmlu
ZyB1bmRlcnN0YW5kIHdoeSB1cGRhdGluZyBBUElzIGluDQo+ID4+IGEgd2F5IHRoYXQgYnJlYWtz
IGV4aXN0aW5nIGZ1bmN0aW9uYWxpdHkgaXMgYSBiYWQgaWRlYS4NCj4gPg0KPiA+IElmIHlvdSBz
dGFydCBhIHNvZnR3YXJlIHByb2plY3QgYW5kIGZpeCBhbGwgQVBJcyBpbiB2ZXJzaW9uIDAuMSwg
dGhlbiB5b3UgdXN1YWxseSBkb27igJl0IGdldCB2ZXJ5IGZhci4gQW5kIEnigJlkIGFyZ3VlIHRo
ZSBZQU5HIG1vZHVsZSBlY29zeXN0ZW0gaXMgaW4gdmVyc2lvbiAwLjAwMS4NCj4gPg0KPiA+Pg0K
PiA+Pg0KPiA+Pj4+IFRoZSBpZXRmLXJvdXRpbmcgbW9kdWxlIGRvZXMgbm90IGNvdW50LiAgSXQg
aXMgc3RpbGwgYW4gSS1ELg0KPiA+Pj4+IFRoZSBNSUIgRG9jdG9ycyBoYXZlIGJlZW4gYWJsZSB0
byBvdmVyc2VlIFNNSXYyIHVzYWdlIGZvciBhIGNvdXBsZSBkZWNhZGVzLg0KPiA+Pj4+IEkgdGhp
bmsgdGhlIFlBTkcgRG9jdG9ycyB3aWxsIGJlIGFibGUgdG8gZG8gdGhlIHNhbWUgZm9yIFlBTkcu
DQo+ID4+Pg0KPiA+Pj4gU28gd2h5IGFsbCB0aGUgZnVzcyB3aXRoIFlBTkcsIHdoeSBhcmVu4oCZ
dCB3ZSB1c2luZyBTTUl2Mj8NCj4gPj4+DQo+ID4+DQo+ID4+IEJlY2F1c2UgWUFORyBpcyB3YXkg
YmV0dGVyLCBqdXN0IGxpa2UgdGhlIHN0dWZmIDIwIHllYXJzIGZyb20gbm93DQo+ID4+IHdpbGwg
YmUgd2F5IGJldHRlciB0aGFuIFlBTkcuDQo+ID4NCj4gPiBJ4oCZZCBob3BlIHRoYXQgcGVvcGxl
IGluIDIwIHllYXJzIHdpbGwgYmUgdXNpbmcgWUFORyAzLjAgYW5kIG1vZHVsZXMgd2l0aCBhbiBh
bmNlc3RyeSBsaW5lIHRvIHRoZSBzdHVmZiB3ZSBhcmUgZG9pbmcgbm93LiBCdXQgaWYgWUFORyBh
bmQgaXRzIG1vZHVsZXMgYXJlbuKAmXQgc3VmZmljaWVudGx5IGFkYXB0YWJsZSwgdGhlbiBhdCBz
b21lIG1vbWVudCBpdCB3aWxsIGJlY29tZSBuZWNlc3NhcnkgdG8gYWJhbmRvbiBpdCBhbmQgc3Rh
cnQgc29tZXRoaW5nIGNvbXBsZXRlbHkgbmV3Lg0KPiA+DQo+ID4gTGFkYQ0KPiA+DQo+ID4+DQo+
ID4+IEl0IHdvdWxkIGJlIHVud2lzZSB0byBpZ25vcmUgdGhlIGV4cGVyaWVuY2UgZ2FpbmVkIGZy
b20gU05NUCBldm9sdXRpb24NCj4gPj4gYW5kIGRlcGxveW1lbnQuICBORVRDT05GL1lBTkcgaGFz
IGxlYXAtZnJvZ2dlZCBTTk1QL1NNSXYyDQo+ID4+IGluIG1hbnkgd2F5cywgYnV0IG5vdCBhbGwu
DQo+ID4+DQo+ID4+PiBMYWRhDQo+ID4+Pg0KPiA+Pg0KPiA+Pg0KPiA+PiBBbmR5DQo+ID4NCj4g
PiAtLQ0KPiA+IExhZGlzbGF2IExob3RrYSwgQ1ouTklDIExhYnMNCj4gPiBQR1AgS2V5IElEOiBF
NzRFOEMwQw0KPiA+DQo+ID4NCj4gPg0KPiA+DQo+IA0K


From nobody Mon Mar 30 07:11:06 2015
Return-Path: <tnadeau@lucidvision.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 5A9271ACEFC for <netmod@ietfa.amsl.com>; Mon, 30 Mar 2015 07:11:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.895
X-Spam-Level: 
X-Spam-Status: No, score=0.895 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FH_RELAY_NODNS=1.451, HELO_MISMATCH_COM=0.553, RDNS_NONE=0.793, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=no
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 URia1xt0HyRf for <netmod@ietfa.amsl.com>; Mon, 30 Mar 2015 07:11:02 -0700 (PDT)
Received: from lucidvision.com (unknown [50.255.148.178]) by ietfa.amsl.com (Postfix) with ESMTP id 2AB461ACEE9 for <netmod@ietf.org>; Mon, 30 Mar 2015 07:10:56 -0700 (PDT)
Received: from [172.27.4.165] (75-104-68-124.mobility.exede.net [75.104.68.124]) by lucidvision.com (Postfix) with ESMTP id 164043185F60; Mon, 30 Mar 2015 10:10:52 -0400 (EDT)
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2070.6\))
From: "Thomas D. Nadeau" <tnadeau@lucidvision.com>
In-Reply-To: <CABCOCHS7=udBhZDcJKSo_sQq1HDbFVKscsFRuf9M10-HOt_D0Q@mail.gmail.com>
Date: Mon, 30 Mar 2015 10:10:43 -0400
Content-Transfer-Encoding: quoted-printable
Message-Id: <560BD9B1-A366-4C2E-9595-4EAEBA49FCF1@lucidvision.com>
References: <20150328.160837.891193389716580490.mbj@tail-f.com> <CABCOCHSJ4+rJerLO4f0i-vO-zmMD2Bs+SepnXQVmQn9N+3FE+g@mail.gmail.com> <20150329.094343.625878615822690247.mbj@tail-f.com> <CABCOCHR_ps6iNiaNwFbXth5i2Sc3_FtaJdZY2PBe4g16NQH=FQ@mail.gmail.com> <9740B743-97E7-4161-B123-2AFBE4EBE2D3@nic.cz> <CABCOCHS7=udBhZDcJKSo_sQq1HDbFVKscsFRuf9M10-HOt_D0Q@mail.gmail.com>
To: Andy Bierman <andy@yumaworks.com>
X-Mailer: Apple Mail (2.2070.6)
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/E-WD0OCOSv9GDFt9BnyGI2Owb5A>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] Y45 again
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: <http://www.ietf.org/mail-archive/web/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, 30 Mar 2015 14:11:04 -0000

> On Mar 29, 2015:10:45 AM, at 10:45 AM, Andy Bierman =
<andy@yumaworks.com> wrote:
>=20
> ....
>>> IMO the YANG guidelines MUST forbid the expansion of typedefs
>>> and groupings in RFC published modules.  (Note I-D to I-D changes do
>>> not count -- only RFC to RFC changes actually count).
>>=20
>> I strongly disagree. Especially at this stage when many things are =
under development we need to remain flexible. Keeping modules in I-D =
stage for extended periods is not a solution either.
>>=20
>=20
>=20
> I don't think we have any examples at all of any IETF RFC YANG modules =
that
> are churning or are incapable of being updated in a responsible way.
> The ietf-routing module does not count.  It is still an I-D.
> The MIB Doctors have been able to oversee SMIv2 usage for a couple =
decades.
> I think the YANG Doctors will be able to do the same for YANG.
>=20
>=20
> Andy

While perhaps true for the moment, I heard of a number that might soon. =
If you consider the open config draft and work others are doing, there =
will be cases.  Worse will be cases of existing RFCs that need to be =
updated because other modules depend on them.  This will make for quite =
a "house of cards" scenario unless we are careful.

	--Tom

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


From nobody Mon Mar 30 07:12:39 2015
Return-Path: <jernej.tuljak@mg-soft.si>
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 CB40F1A1BCD for <netmod@ietfa.amsl.com>; Mon, 30 Mar 2015 07:12:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.79
X-Spam-Level: 
X-Spam-Status: No, score=0.79 tagged_above=-999 required=5 tests=[BAYES_50=0.8, HTML_MESSAGE=0.001, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] 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 kVetGc8iTRNh for <netmod@ietfa.amsl.com>; Mon, 30 Mar 2015 07:12:35 -0700 (PDT)
Received: from galileo.mg-soft.si (gate.mg-soft.si [212.30.73.66]) by ietfa.amsl.com (Postfix) with ESMTP id DEE761ACF09 for <netmod@ietf.org>; Mon, 30 Mar 2015 07:12:28 -0700 (PDT)
Received: from [10.0.0.222] (tp-x61t.mg-soft.si [10.0.0.222]) by galileo.mg-soft.si (Postfix) with ESMTP id D3698C0006A5 for <netmod@ietf.org>; Mon, 30 Mar 2015 16:12:27 +0200 (CEST)
Message-ID: <551959C8.6080500@mg-soft.si>
Date: Mon, 30 Mar 2015 16:12:24 +0200
From: Jernej Tuljak <jernej.tuljak@mg-soft.si>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0
MIME-Version: 1.0
To: NETMOD Working Group <netmod@ietf.org>
Content-Type: multipart/alternative; boundary="------------050206040608020802070505"
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/MTnGyIdCw0AYxRwsqgmMRXAnRjQ>
Subject: [netmod] Regular expression implementation issue
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: <http://www.ietf.org/mail-archive/web/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, 30 Mar 2015 14:12:38 -0000

This is a multi-part message in MIME format.
--------------050206040608020802070505
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 8bit

Hi,

we've been advised that our implementation refuses some regular 
expressions in pattern-stmt args, while pyang allows them. For example:

pattern '[[]]'+;

The Java implementation of XSD 1.0 specs (JAXP1.4, Java1.7), which we 
rely on, refuses the above with: "syntax error in pattern: '[' is 
invalid in a character class. Write '\['."

Following the normative reference for XSD-TYPES in RFC6020, you 
eventually end up in 
http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#nt-charRange, which 
specifies the following:

/A single XML character is a ·character range· that identifies the set 
of characters containing only itself. All XML characters are valid 
character ranges, except as follows://
//
//    The [, ], - and \ characters are not valid character ranges;//
//    The ^ character is only valid at the beginning of a ·positive 
character group· if it is part of a ·negative character group·//
//    The - character is a valid character range only at the beginning 
or end of a ·positive character group·. //
//
/This seems consistent with what the error reports.

I'd like to determine whether we need to correct our implementation.

Note that newer XSD specifications change text for regular expressions, 
so one should be very careful when choosing a re engine for YANG 
validation. I remember having to fix a bug in our code due to usage of 
two different regular expression engine implementations (XSD 1.0 vs. 
1.1), which displayed inconsistent behavior.

This might also be relevant for YANG 1.1 if you are considering updates 
to the normative references section (not sure what IETF practice is in 
this regard). If an update is done, valid regexes might become invalid 
and vice versa (YANG 1.0 vs. YANG 1.1).

Jernej


--------------050206040608020802070505
Content-Type: text/html; charset=windows-1252
Content-Transfer-Encoding: 8bit

<html>
  <head>
    <meta http-equiv="content-type" content="text/html;
      charset=windows-1252">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Hi,<br>
    <br>
    we've been advised that our implementation refuses some regular
    expressions in pattern-stmt args, while pyang allows them. For
    example:<br>
    <br>
    pattern '[[]]'+;<br>
    <br>
    The Java implementation of XSD 1.0 specs (JAXP1.4, Java1.7), which
    we rely on, refuses the above with: "syntax error in pattern: '[' is
    invalid in a character class. Write '\['." <br>
    <br>
    Following the normative reference for XSD-TYPES in RFC6020, you
    eventually end up in <a class="moz-txt-link-freetext"
      href="http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#nt-charRange">http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#nt-charRange</a>,
    which specifies the following:<br>
    <br>
    <i>A single XML character is a ·character range· that identifies the
      set of characters containing only itself. All XML characters are
      valid character ranges, except as follows:</i><i><br>
    </i><i><br>
    </i><i>    The [, ], - and \ characters are not valid character
      ranges;</i><i><br>
    </i><i>    The ^ character is only valid at the beginning of a
      ·positive character group· if it is part of a ·negative character
      group·</i><i><br>
    </i><i>    The - character is a valid character range only at the
      beginning or end of a ·positive character group·. </i><i><br>
    </i><i><br>
    </i>This seems consistent with what the error reports.<br>
    <br>
    I'd like to determine whether we need to correct our implementation.<br>
    <br>
    Note that newer XSD specifications change text for regular
    expressions, so one should be very careful when choosing a re engine
    for YANG validation. I remember having to fix a bug in our code due
    to usage of two different regular expression engine implementations
    (XSD 1.0 vs. 1.1), which displayed inconsistent behavior.<br>
    <br>
    This might also be relevant for YANG 1.1 if you are considering
    updates to the normative references section (not sure what IETF
    practice is in this regard). If an update is done, valid regexes
    might become invalid and vice versa (YANG 1.0 vs. YANG 1.1).<br>
    <br>
    Jernej<br>
    <br>
  </body>
</html>

--------------050206040608020802070505--


From nobody Mon Mar 30 08:18:28 2015
Return-Path: <lhotka@nic.cz>
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 A2C461AC43D for <netmod@ietfa.amsl.com>; Mon, 30 Mar 2015 08:18:26 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level: 
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9] 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 VFTTUJnUIdmW for <netmod@ietfa.amsl.com>; Mon, 30 Mar 2015 08:18:24 -0700 (PDT)
Received: from trail.lhotka.name (trail.lhotka.name [77.48.224.143]) by ietfa.amsl.com (Postfix) with ESMTP id 135571AD09B for <netmod@ietf.org>; Mon, 30 Mar 2015 08:18:04 -0700 (PDT)
Received: from localhost (unknown [195.113.220.110]) by trail.lhotka.name (Postfix) with ESMTPSA id 3885E1CC00D5; Mon, 30 Mar 2015 17:18:09 +0200 (CEST)
From: Ladislav Lhotka <lhotka@nic.cz>
To: Jernej Tuljak <jernej.tuljak@mg-soft.si>, NETMOD Working Group <netmod@ietf.org>
In-Reply-To: <551959C8.6080500@mg-soft.si>
References: <551959C8.6080500@mg-soft.si>
User-Agent: Notmuch/0.19 (http://notmuchmail.org) Emacs/24.4.51.2 (x86_64-apple-darwin14.0.0)
Date: Mon, 30 Mar 2015 17:18:01 +0200
Message-ID: <m24mp2345y.fsf@birdie.labs.nic.cz>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/eppKaDgitNI9WX4MDQgc5hutra4>
Subject: Re: [netmod] Regular expression implementation issue
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: <http://www.ietf.org/mail-archive/web/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, 30 Mar 2015 15:18:26 -0000

Jernej Tuljak <jernej.tuljak@mg-soft.si> writes:

> Hi,
>
> we've been advised that our implementation refuses some regular=20
> expressions in pattern-stmt args, while pyang allows them. For
> example:

Pyang uses a function from the libxml2 module (Python bindings for
libxml2) for checking these patterns. However, this module isn't part of
Python distribution and has to be installed separately. For example, in
Debian/Ubuntu it is the package "python-libxml2".

So, if this module is installed, broken regexp patterns such as the one
below will be rejected. If not, patterns are not checked at all and no
error/warning is issued either, presumably because it caused problems
with other users (Martin?).

Note, however, that the RELAX NG schema generated by the DSDL plugin is
then rejected by both xmlllint and jing validators.

Lada

>
> pattern '[[]]'+;
>
> The Java implementation of XSD 1.0 specs (JAXP1.4, Java1.7), which we=20
> rely on, refuses the above with: "syntax error in pattern: '[' is=20
> invalid in a character class. Write '\['."
>
> Following the normative reference for XSD-TYPES in RFC6020, you=20
> eventually end up in=20
> http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#nt-charRange, which=20
> specifies the following:
>
> /A single XML character is a =C2=B7character range=C2=B7 that identifies =
the set=20
> of characters containing only itself. All XML characters are valid=20
> character ranges, except as follows://
> //
> //    The [, ], - and \ characters are not valid character ranges;//
> //    The ^ character is only valid at the beginning of a =C2=B7positive=
=20
> character group=C2=B7 if it is part of a =C2=B7negative character group=
=C2=B7//
> //    The - character is a valid character range only at the beginning=20
> or end of a =C2=B7positive character group=C2=B7. //
> //
> /This seems consistent with what the error reports.
>
> I'd like to determine whether we need to correct our implementation.
>
> Note that newer XSD specifications change text for regular expressions,=20
> so one should be very careful when choosing a re engine for YANG=20
> validation. I remember having to fix a bug in our code due to usage of=20
> two different regular expression engine implementations (XSD 1.0 vs.=20
> 1.1), which displayed inconsistent behavior.
>
> This might also be relevant for YANG 1.1 if you are considering updates=20
> to the normative references section (not sure what IETF practice is in=20
> this regard). If an update is done, valid regexes might become invalid=20
> and vice versa (YANG 1.0 vs. YANG 1.1).
>
> Jernej
>
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod

--=20
Ladislav Lhotka, CZ.NIC Labs
PGP Key ID: E74E8C0C


From nobody Mon Mar 30 08:53:07 2015
Return-Path: <borman@google.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 596231A0118 for <netmod@ietfa.amsl.com>; Mon, 30 Mar 2015 08:53:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.388
X-Spam-Level: 
X-Spam-Status: No, score=-1.388 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=no
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 69BkgMCkhOe6 for <netmod@ietfa.amsl.com>; Mon, 30 Mar 2015 08:53:01 -0700 (PDT)
Received: from mail-ie0-x22a.google.com (mail-ie0-x22a.google.com [IPv6:2607:f8b0:4001:c03::22a]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 68F261A00E6 for <netmod@ietf.org>; Mon, 30 Mar 2015 08:53:01 -0700 (PDT)
Received: by ierf6 with SMTP id f6so54155396ier.2 for <netmod@ietf.org>; Mon, 30 Mar 2015 08:53:00 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=WKSTEbRWMzpGujwO75+62Xw9kxwkdMuQZE8gZat2OJ0=; b=LaMlsqPB6/6JkIaOTwnkRuo9xam+CCelr985Sot75fz4i0wVCuG6P23hR533b7UNfk Klh0q+8E+NFVpNNHfgO4BLVxNSn5uzEgXvVHnT21S9r8yrNS+UNpXXAbtDQdOm8HAv6b Y1YGcLJ/4GyGeV3bfsQpvBLPqEdSMyCbCrlywCIaVWb+eAYM0o4Bx83Z+H9qs7zuKC95 SUzJU6McNBAaEZWdGAuc5da4YjAX9/rGWA1gKkiZ3IBp4X3CiQqJ8O5FWgdT5mvg+ZR3 FTeF4b7oMJwsAka6UuzLXmxerZrx2MtT/2iVDClwVYnFuErISxs0UV7Fw+1KEua+Ncjj /Iaw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=WKSTEbRWMzpGujwO75+62Xw9kxwkdMuQZE8gZat2OJ0=; b=XP9E9sOL8Za7MkiAk7TqzwI1TT/P+RLB9RGXXT+bNkK073GKJv6W4dGHoTtx0TZpwL dXHLi3LuH3JI06BjcDinvnMMJznywldD15NvHU21ge1AxDg5sH8fWOulKoDs1SD4Ewtw 3NURJjxEx5ROh2GQlPc8PS8VQLOkt2LuqtMLDJ6+/kFURgKP9xMNrlf7bKd5OHh9Zt33 rJ3fVyo/YNLWQC8GE0h+59GBh26FS+7z3VcXwR405ANP73gWcNiRJ6AXYvYlGqsGituA K689LWyhSehGpgqbtWV6Y78Dxz9hk7IcIFoIlHRFl63OL5zig3bov3MHCeH436uK0A1G /YAQ==
X-Gm-Message-State: ALoCoQnS9MgoaP8X8XVXgmUc9aTgEf+IUgJcE7HV4FafSwoepwcfKechWNOc82RqS/38DvcVw/dJ
MIME-Version: 1.0
X-Received: by 10.50.254.4 with SMTP id ae4mr18483036igd.10.1427730780686; Mon, 30 Mar 2015 08:53:00 -0700 (PDT)
Received: by 10.64.78.168 with HTTP; Mon, 30 Mar 2015 08:53:00 -0700 (PDT)
In-Reply-To: <m24mp2345y.fsf@birdie.labs.nic.cz>
References: <551959C8.6080500@mg-soft.si> <m24mp2345y.fsf@birdie.labs.nic.cz>
Date: Mon, 30 Mar 2015 08:53:00 -0700
Message-ID: <CAHsVM3nzmhwJrg2Df8cx8t6fuNYaeHqHb5R58g2TOHXQkoMfCg@mail.gmail.com>
From: Paul Borman <borman@google.com>
To: Ladislav Lhotka <lhotka@nic.cz>
Content-Type: multipart/alternative; boundary=001a11343b9204c0a20512837afb
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/5_zjADfME-oQq_ZoR3EPsxfkT-g>
Cc: NETMOD Working Group <netmod@ietf.org>
Subject: Re: [netmod] Regular expression implementation issue
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: <http://www.ietf.org/mail-archive/web/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, 30 Mar 2015 15:53:06 -0000

--001a11343b9204c0a20512837afb
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Does the standard delegate what is a legal RE to an implementation of RE's
or does the standard specify what an RE is and some implementations are
suitably close?  My reading is that no matter what the implementation of
pyang, or any other tool, the acceptable patterns are defined in
http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#regexs.

No valid YANG should contain any pattern that is not defined by the
aforementioned document, even though some implementations might not flag an
invalid pattern as an error.  A tool used to validate YANG would be
required to reject invalid patterns.

    -Paul

On Mon, Mar 30, 2015 at 8:18 AM, Ladislav Lhotka <lhotka@nic.cz> wrote:

> Jernej Tuljak <jernej.tuljak@mg-soft.si> writes:
>
> > Hi,
> >
> > we've been advised that our implementation refuses some regular
> > expressions in pattern-stmt args, while pyang allows them. For
> > example:
>
> Pyang uses a function from the libxml2 module (Python bindings for
> libxml2) for checking these patterns. However, this module isn't part of
> Python distribution and has to be installed separately. For example, in
> Debian/Ubuntu it is the package "python-libxml2".
>
> So, if this module is installed, broken regexp patterns such as the one
> below will be rejected. If not, patterns are not checked at all and no
> error/warning is issued either, presumably because it caused problems
> with other users (Martin?).
>
> Note, however, that the RELAX NG schema generated by the DSDL plugin is
> then rejected by both xmlllint and jing validators.
>
> Lada
>
> >
> > pattern '[[]]'+;
> >
> > The Java implementation of XSD 1.0 specs (JAXP1.4, Java1.7), which we
> > rely on, refuses the above with: "syntax error in pattern: '[' is
> > invalid in a character class. Write '\['."
> >
> > Following the normative reference for XSD-TYPES in RFC6020, you
> > eventually end up in
> > http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#nt-charRange, which
> > specifies the following:
> >
> > /A single XML character is a =C2=B7character range=C2=B7 that identifie=
s the set
> > of characters containing only itself. All XML characters are valid
> > character ranges, except as follows://
> > //
> > //    The [, ], - and \ characters are not valid character ranges;//
> > //    The ^ character is only valid at the beginning of a =C2=B7positiv=
e
> > character group=C2=B7 if it is part of a =C2=B7negative character group=
=C2=B7//
> > //    The - character is a valid character range only at the beginning
> > or end of a =C2=B7positive character group=C2=B7. //
> > //
> > /This seems consistent with what the error reports.
> >
> > I'd like to determine whether we need to correct our implementation.
> >
> > Note that newer XSD specifications change text for regular expressions,
> > so one should be very careful when choosing a re engine for YANG
> > validation. I remember having to fix a bug in our code due to usage of
> > two different regular expression engine implementations (XSD 1.0 vs.
> > 1.1), which displayed inconsistent behavior.
> >
> > This might also be relevant for YANG 1.1 if you are considering updates
> > to the normative references section (not sure what IETF practice is in
> > this regard). If an update is done, valid regexes might become invalid
> > and vice versa (YANG 1.0 vs. YANG 1.1).
> >
> > Jernej
> >
> > _______________________________________________
> > 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
>

--001a11343b9204c0a20512837afb
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Does the standard delegate what is a legal RE to an implem=
entation of RE&#39;s or does the standard specify what an RE is and some im=
plementations are suitably close?=C2=A0 My reading is that no matter what t=
he implementation of pyang, or any other tool, the acceptable patterns are =
defined in=C2=A0<a href=3D"http://www.w3.org/TR/2004/REC-xmlschema-2-200410=
28/#regexs">http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#regexs</a>.=
<div><br></div><div>No valid YANG should contain any pattern that is not de=
fined by the aforementioned document, even though some implementations migh=
t not flag an invalid pattern as an error.=C2=A0 A tool used to validate YA=
NG would be required to reject invalid patterns.</div><div><br></div><div>=
=C2=A0 =C2=A0 -Paul</div></div><div class=3D"gmail_extra"><br><div class=3D=
"gmail_quote">On Mon, Mar 30, 2015 at 8:18 AM, Ladislav Lhotka <span dir=3D=
"ltr">&lt;<a href=3D"mailto:lhotka@nic.cz" target=3D"_blank">lhotka@nic.cz<=
/a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:=
0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=3D"">Je=
rnej Tuljak &lt;<a href=3D"mailto:jernej.tuljak@mg-soft.si">jernej.tuljak@m=
g-soft.si</a>&gt; writes:<br>
<br>
&gt; Hi,<br>
&gt;<br>
&gt; we&#39;ve been advised that our implementation refuses some regular<br=
>
&gt; expressions in pattern-stmt args, while pyang allows them. For<br>
&gt; example:<br>
<br>
</span>Pyang uses a function from the libxml2 module (Python bindings for<b=
r>
libxml2) for checking these patterns. However, this module isn&#39;t part o=
f<br>
Python distribution and has to be installed separately. For example, in<br>
Debian/Ubuntu it is the package &quot;python-libxml2&quot;.<br>
<br>
So, if this module is installed, broken regexp patterns such as the one<br>
below will be rejected. If not, patterns are not checked at all and no<br>
error/warning is issued either, presumably because it caused problems<br>
with other users (Martin?).<br>
<br>
Note, however, that the RELAX NG schema generated by the DSDL plugin is<br>
then rejected by both xmlllint and jing validators.<br>
<br>
Lada<br>
<span class=3D""><br>
&gt;<br>
&gt; pattern &#39;[[]]&#39;+;<br>
&gt;<br>
&gt; The Java implementation of XSD 1.0 specs (JAXP1.4, Java1.7), which we<=
br>
&gt; rely on, refuses the above with: &quot;syntax error in pattern: &#39;[=
&#39; is<br>
&gt; invalid in a character class. Write &#39;\[&#39;.&quot;<br>
&gt;<br>
&gt; Following the normative reference for XSD-TYPES in RFC6020, you<br>
&gt; eventually end up in<br>
&gt; <a href=3D"http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#nt-char=
Range" target=3D"_blank">http://www.w3.org/TR/2004/REC-xmlschema-2-20041028=
/#nt-charRange</a>, which<br>
&gt; specifies the following:<br>
&gt;<br>
</span>&gt; /A single XML character is a =C2=B7character range=C2=B7 that i=
dentifies the set<br>
<span class=3D"">&gt; of characters containing only itself. All XML charact=
ers are valid<br>
</span>&gt; character ranges, except as follows://<br>
&gt; //<br>
&gt; //=C2=A0 =C2=A0 The [, ], - and \ characters are not valid character r=
anges;//<br>
&gt; //=C2=A0 =C2=A0 The ^ character is only valid at the beginning of a =
=C2=B7positive<br>
&gt; character group=C2=B7 if it is part of a =C2=B7negative character grou=
p=C2=B7//<br>
&gt; //=C2=A0 =C2=A0 The - character is a valid character range only at the=
 beginning<br>
&gt; or end of a =C2=B7positive character group=C2=B7. //<br>
&gt; //<br>
&gt; /This seems consistent with what the error reports.<br>
<span class=3D"">&gt;<br>
&gt; I&#39;d like to determine whether we need to correct our implementatio=
n.<br>
&gt;<br>
&gt; Note that newer XSD specifications change text for regular expressions=
,<br>
&gt; so one should be very careful when choosing a re engine for YANG<br>
&gt; validation. I remember having to fix a bug in our code due to usage of=
<br>
&gt; two different regular expression engine implementations (XSD 1.0 vs.<b=
r>
&gt; 1.1), which displayed inconsistent behavior.<br>
&gt;<br>
&gt; This might also be relevant for YANG 1.1 if you are considering update=
s<br>
&gt; to the normative references section (not sure what IETF practice is in=
<br>
&gt; this regard). If an update is done, valid regexes might become invalid=
<br>
&gt; and vice versa (YANG 1.0 vs. YANG 1.1).<br>
&gt;<br>
&gt; Jernej<br>
&gt;<br>
</span>&gt; _______________________________________________<br>
&gt; netmod mailing list<br>
&gt; <a href=3D"mailto:netmod@ietf.org">netmod@ietf.org</a><br>
&gt; <a href=3D"https://www.ietf.org/mailman/listinfo/netmod" target=3D"_bl=
ank">https://www.ietf.org/mailman/listinfo/netmod</a><br>
<span class=3D"HOEnZb"><font color=3D"#888888"><br>
--<br>
Ladislav Lhotka, CZ.NIC Labs<br>
PGP Key ID: E74E8C0C<br>
<br>
_______________________________________________<br>
netmod mailing list<br>
<a href=3D"mailto:netmod@ietf.org">netmod@ietf.org</a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/netmod" target=3D"_blank">=
https://www.ietf.org/mailman/listinfo/netmod</a><br>
</font></span></blockquote></div><br></div>

--001a11343b9204c0a20512837afb--


From jernejt@mg-soft.si  Mon Mar 30 07:18:39 2015
Return-Path: <jernejt@mg-soft.si>
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 B77DD1AD0B3 for <netmod@ietfa.amsl.com>; Mon, 30 Mar 2015 07:18:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.91
X-Spam-Level: 
X-Spam-Status: No, score=-1.91 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] 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 tzEFyesj_15x for <netmod@ietfa.amsl.com>; Mon, 30 Mar 2015 07:18:37 -0700 (PDT)
Received: from galileo.mg-soft.si (gate.mg-soft.si [212.30.73.66]) by ietfa.amsl.com (Postfix) with ESMTP id AB3341AD09B for <netmod@ietf.org>; Mon, 30 Mar 2015 07:18:02 -0700 (PDT)
Received: from [10.0.0.222] (tp-x61t.mg-soft.si [10.0.0.222]) by galileo.mg-soft.si (Postfix) with ESMTP id 1A5F5C461975; Mon, 30 Mar 2015 16:18:02 +0200 (CEST)
Message-ID: <55195B16.3070101@mg-soft.si>
Date: Mon, 30 Mar 2015 16:17:58 +0200
From: Jernej Tuljak <jernejt@mg-soft.si>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0
MIME-Version: 1.0
To: Jernej Tuljak <jernej.tuljak@mg-soft.si>,  NETMOD Working Group <netmod@ietf.org>
References: <551959C8.6080500@mg-soft.si>
In-Reply-To: <551959C8.6080500@mg-soft.si>
Content-Type: multipart/alternative; boundary="------------050300050301080302010003"
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/1o89grg2y7jBqyiKKFkDopWP5RM>
X-Mailman-Approved-At: Mon, 30 Mar 2015 11:02:56 -0700
Subject: Re: [netmod] Regular expression implementation issue
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: <http://www.ietf.org/mail-archive/web/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, 30 Mar 2015 14:23:43 -0000

This is a multi-part message in MIME format.
--------------050300050301080302010003
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 8bit

Dne 30.3.2015 ob 16:12 je Jernej Tuljak zapisal(a):
> Hi,
>
> we've been advised that our implementation refuses some regular 
> expressions in pattern-stmt args, while pyang allows them. For example:
>
> pattern '[[]]'+;

This is a typo, should be:

pattern '[[]]+';

Jernej

>
> The Java implementation of XSD 1.0 specs (JAXP1.4, Java1.7), which we 
> rely on, refuses the above with: "syntax error in pattern: '[' is 
> invalid in a character class. Write '\['."
>
> Following the normative reference for XSD-TYPES in RFC6020, you 
> eventually end up in 
> http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#nt-charRange, 
> which specifies the following:
>
> /A single XML character is a ·character range· that identifies the set 
> of characters containing only itself. All XML characters are valid 
> character ranges, except as follows://
> //
> //    The [, ], - and \ characters are not valid character ranges;//
> //    The ^ character is only valid at the beginning of a ·positive 
> character group· if it is part of a ·negative character group·//
> //    The - character is a valid character range only at the beginning 
> or end of a ·positive character group·. //
> //
> /This seems consistent with what the error reports.
>
> I'd like to determine whether we need to correct our implementation.
>
> Note that newer XSD specifications change text for regular 
> expressions, so one should be very careful when choosing a re engine 
> for YANG validation. I remember having to fix a bug in our code due to 
> usage of two different regular expression engine implementations (XSD 
> 1.0 vs. 1.1), which displayed inconsistent behavior.
>
> This might also be relevant for YANG 1.1 if you are considering 
> updates to the normative references section (not sure what IETF 
> practice is in this regard). If an update is done, valid regexes might 
> become invalid and vice versa (YANG 1.0 vs. YANG 1.1).
>
> Jernej
>
>
>
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod


--------------050300050301080302010003
Content-Type: text/html; charset=windows-1252
Content-Transfer-Encoding: 8bit

<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">Dne 30.3.2015 ob 16:12 je Jernej Tuljak
      zapisal(a):<br>
    </div>
    <blockquote cite="mid:551959C8.6080500@mg-soft.si" type="cite">
      <meta http-equiv="content-type" content="text/html;
        charset=windows-1252">
      Hi,<br>
      <br>
      we've been advised that our implementation refuses some regular
      expressions in pattern-stmt args, while pyang allows them. For
      example:<br>
      <br>
      pattern '[[]]'+;<br>
    </blockquote>
    <br>
    This is a typo, should be:<br>
    <br>
    pattern '[[]]+';<br>
    <br>
    Jernej<br>
    <br>
    <blockquote cite="mid:551959C8.6080500@mg-soft.si" type="cite"> <br>
      The Java implementation of XSD 1.0 specs (JAXP1.4, Java1.7), which
      we rely on, refuses the above with: "syntax error in pattern: '['
      is invalid in a character class. Write '\['." <br>
      <br>
      Following the normative reference for XSD-TYPES in RFC6020, you
      eventually end up in <a moz-do-not-send="true"
        class="moz-txt-link-freetext"
        href="http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#nt-charRange">http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#nt-charRange</a>,
      which specifies the following:<br>
      <br>
      <i>A single XML character is a ·character range· that identifies
        the set of characters containing only itself. All XML characters
        are valid character ranges, except as follows:</i><i><br>
      </i><i><br>
      </i><i>    The [, ], - and \ characters are not valid character
        ranges;</i><i><br>
      </i><i>    The ^ character is only valid at the beginning of a
        ·positive character group· if it is part of a ·negative
        character group·</i><i><br>
      </i><i>    The - character is a valid character range only at the
        beginning or end of a ·positive character group·. </i><i><br>
      </i><i><br>
      </i>This seems consistent with what the error reports.<br>
      <br>
      I'd like to determine whether we need to correct our
      implementation.<br>
      <br>
      Note that newer XSD specifications change text for regular
      expressions, so one should be very careful when choosing a re
      engine for YANG validation. I remember having to fix a bug in our
      code due to usage of two different regular expression engine
      implementations (XSD 1.0 vs. 1.1), which displayed inconsistent
      behavior.<br>
      <br>
      This might also be relevant for YANG 1.1 if you are considering
      updates to the normative references section (not sure what IETF
      practice is in this regard). If an update is done, valid regexes
      might become invalid and vice versa (YANG 1.0 vs. YANG 1.1).<br>
      <br>
      Jernej<br>
      <br>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
netmod mailing list
<a class="moz-txt-link-abbreviated" href="mailto:netmod@ietf.org">netmod@ietf.org</a>
<a class="moz-txt-link-freetext" href="https://www.ietf.org/mailman/listinfo/netmod">https://www.ietf.org/mailman/listinfo/netmod</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>

--------------050300050301080302010003--


From nobody Mon Mar 30 11:50:17 2015
Return-Path: <lhotka@nic.cz>
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 05B1C1AC3B6 for <netmod@ietfa.amsl.com>; Mon, 30 Mar 2015 11:50:16 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.661
X-Spam-Level: 
X-Spam-Status: No, score=-0.661 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HELO_EQ_CZ=0.445, HOST_EQ_CZ=0.904, T_RP_MATCHES_RCVD=-0.01] autolearn=no
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 a_Ye_VOFeyCr for <netmod@ietfa.amsl.com>; Mon, 30 Mar 2015 11:50:14 -0700 (PDT)
Received: from mail.nic.cz (mail.nic.cz [IPv6:2001:1488:800:400::400]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id ED0821A6F3C for <netmod@ietf.org>; Mon, 30 Mar 2015 11:50:13 -0700 (PDT)
Received: from [IPv6:2a01:5e0:29:ffff:3cbb:b816:7f85:991a] (unknown [IPv6:2a01:5e0:29:ffff:3cbb:b816:7f85:991a]) by mail.nic.cz (Postfix) with ESMTPSA id DE68B13F797; Mon, 30 Mar 2015 20:50:11 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=nic.cz; s=default; t=1427741411; bh=r8zFnMPt2+P5UL3YdDFYyFezZANKbuvdnuHOvA2boJE=; h=Content-Type:Mime-Version:Subject:From:In-Reply-To:Date:Cc: Content-Transfer-Encoding:Message-Id:References:To; b=CeFrmDU+T2lM+IVWL3CFfVuvuuVYWsyMaeXoxmiO239inUnwTBb4DK/AQxRgOK3oh 47RcZN2ZzeYWvew7c/WZn+Ul0UIdNUbDmWdLfe+GL75HaUI4BxCfW1jluSSVy8T8Xa sqhXX+kkvtBBFYwP8ze+O/2qRt/BwvEXHG7tNJto=
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2070.6\))
From: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <CAHsVM3nzmhwJrg2Df8cx8t6fuNYaeHqHb5R58g2TOHXQkoMfCg@mail.gmail.com>
Date: Mon, 30 Mar 2015 20:50:12 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <FF0A36EC-B8D2-47EC-989B-2352C4B39EDD@nic.cz>
References: <551959C8.6080500@mg-soft.si> <m24mp2345y.fsf@birdie.labs.nic.cz> <CAHsVM3nzmhwJrg2Df8cx8t6fuNYaeHqHb5R58g2TOHXQkoMfCg@mail.gmail.com>
To: Paul Borman <borman@google.com>
X-Mailer: Apple Mail (2.2070.6)
X-Virus-Scanned: clamav-milter 0.98.6 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/vlvgUWYfpz4o6bF0YkU25O4sLOA>
Cc: NETMOD Working Group <netmod@ietf.org>
Subject: Re: [netmod] Regular expression implementation issue
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: <http://www.ietf.org/mail-archive/web/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, 30 Mar 2015 18:50:16 -0000

> On 30 Mar 2015, at 17:53, Paul Borman <borman@google.com> wrote:
>=20
> Does the standard delegate what is a legal RE to an implementation of =
RE's or does the standard specify what an RE is and some implementations =
are suitably close?  My reading is that no matter what the =
implementation of pyang, or any other tool, the acceptable patterns are =
defined in http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#regexs.

Yes, that=E2=80=99s right.

>=20
> No valid YANG should contain any pattern that is not defined by the =
aforementioned document, even though some implementations might not flag =
an invalid pattern as an error.  A tool used to validate YANG would be =
required to reject invalid patterns.

As I said, just install the libxml2 Python module and all is good. I =
agree pyang should=E2=80=99t be silent if it is not available, we should =
change this behaviour.

Lada

>=20
>     -Paul
>=20
> On Mon, Mar 30, 2015 at 8:18 AM, Ladislav Lhotka <lhotka@nic.cz> =
wrote:
> Jernej Tuljak <jernej.tuljak@mg-soft.si> writes:
>=20
> > Hi,
> >
> > we've been advised that our implementation refuses some regular
> > expressions in pattern-stmt args, while pyang allows them. For
> > example:
>=20
> Pyang uses a function from the libxml2 module (Python bindings for
> libxml2) for checking these patterns. However, this module isn't part =
of
> Python distribution and has to be installed separately. For example, =
in
> Debian/Ubuntu it is the package "python-libxml2".
>=20
> So, if this module is installed, broken regexp patterns such as the =
one
> below will be rejected. If not, patterns are not checked at all and no
> error/warning is issued either, presumably because it caused problems
> with other users (Martin?).
>=20
> Note, however, that the RELAX NG schema generated by the DSDL plugin =
is
> then rejected by both xmlllint and jing validators.
>=20
> Lada
>=20
> >
> > pattern '[[]]'+;
> >
> > The Java implementation of XSD 1.0 specs (JAXP1.4, Java1.7), which =
we
> > rely on, refuses the above with: "syntax error in pattern: '[' is
> > invalid in a character class. Write '\['."
> >
> > Following the normative reference for XSD-TYPES in RFC6020, you
> > eventually end up in
> > http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#nt-charRange, =
which
> > specifies the following:
> >
> > /A single XML character is a =C2=B7character range=C2=B7 that =
identifies the set
> > of characters containing only itself. All XML characters are valid
> > character ranges, except as follows://
> > //
> > //    The [, ], - and \ characters are not valid character ranges;//
> > //    The ^ character is only valid at the beginning of a =C2=B7positi=
ve
> > character group=C2=B7 if it is part of a =C2=B7negative character =
group=C2=B7//
> > //    The - character is a valid character range only at the =
beginning
> > or end of a =C2=B7positive character group=C2=B7. //
> > //
> > /This seems consistent with what the error reports.
> >
> > I'd like to determine whether we need to correct our implementation.
> >
> > Note that newer XSD specifications change text for regular =
expressions,
> > so one should be very careful when choosing a re engine for YANG
> > validation. I remember having to fix a bug in our code due to usage =
of
> > two different regular expression engine implementations (XSD 1.0 vs.
> > 1.1), which displayed inconsistent behavior.
> >
> > This might also be relevant for YANG 1.1 if you are considering =
updates
> > to the normative references section (not sure what IETF practice is =
in
> > this regard). If an update is done, valid regexes might become =
invalid
> > and vice versa (YANG 1.0 vs. YANG 1.1).
> >
> > Jernej
> >
> > _______________________________________________
> > netmod mailing list
> > netmod@ietf.org
> > https://www.ietf.org/mailman/listinfo/netmod
>=20
> --
> Ladislav Lhotka, CZ.NIC Labs
> PGP Key ID: E74E8C0C
>=20
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod
>=20

--
Ladislav Lhotka, CZ.NIC Labs
PGP Key ID: E74E8C0C





From nobody Mon Mar 30 12:55:51 2015
Return-Path: <cwildes@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 535531AD333 for <netmod@ietfa.amsl.com>; Mon, 30 Mar 2015 12:55:50 -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 lfNFu7M94gKC for <netmod@ietfa.amsl.com>; Mon, 30 Mar 2015 12:55:48 -0700 (PDT)
Received: from alln-iport-2.cisco.com (alln-iport-2.cisco.com [173.37.142.89]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id ACEF11A903F for <netmod@ietf.org>; Mon, 30 Mar 2015 12:55:48 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=11784; q=dns/txt; s=iport; t=1427745348; x=1428954948; h=from:to:cc:subject:date:message-id:mime-version; bh=tJuFEmcjHXM0s9VHVVIi+aN3tsqpYpTAcc7os/BdsL4=; b=R40yQzeDnWb3mdaCxSoozAJx5RirWm/Pfiudib9hfB/GfaHps0zlX3t/ EBzO7zWrMzRKdivO1JU9fg9JphHauDrfdp2U9F8q/ioCd4kwS0N8VlC/7 YIcXIP+LjAjY/nkA6ghm2ih8PY1DsE6DfiKVtF8CTUN8l19upCl2mBk6s g=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0AvBQAvqRlV/49dJa1TCYJDQ4EuBIMPyCACHIEeTAEBAQEBAX2EFAECBCMEBkwSAQgRAwECKAMCBDAUCQoEDgWIL7J5mQMBAQEBAQEBAQEBAQEBAQEBAQEBAQEXiymEHTAHExENgmIvgRYFkFyGF4FdggCBLZMIIoNub4FEfwEBAQ
X-IronPort-AV: E=Sophos;i="5.11,496,1422921600";  d="scan'208,217";a="136730615"
Received: from rcdn-core-7.cisco.com ([173.37.93.143]) by alln-iport-2.cisco.com with ESMTP; 30 Mar 2015 19:55:47 +0000
Received: from xhc-rcd-x01.cisco.com (xhc-rcd-x01.cisco.com [173.37.183.75]) by rcdn-core-7.cisco.com (8.14.5/8.14.5) with ESMTP id t2UJtl38002510 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Mon, 30 Mar 2015 19:55:48 GMT
Received: from xmb-aln-x13.cisco.com ([169.254.15.15]) by xhc-rcd-x01.cisco.com ([173.37.183.75]) with mapi id 14.03.0195.001; Mon, 30 Mar 2015 14:55:47 -0500
From: "Clyde Wildes (cwildes)" <cwildes@cisco.com>
To: "Sterne, Jason (Jason)" <jason.sterne@alcatel-lucent.com>
Thread-Topic: [netmod] syslog-model-03: Severity enum values vs identity
Thread-Index: AQHQayODe+tr+aV68kC1pUlrlcT1tA==
Date: Mon, 30 Mar 2015 19:55:36 +0000
Message-ID: <D4055BF0-817D-429A-84C9-3A0C96A6BC13@cisco.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [128.107.157.242]
Content-Type: multipart/alternative; boundary="_000_D4055BF0817D429A84C93A0C96A6BC13ciscocom_"
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/q3ziOHSsq64AWPmVKniw83REzxk>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] syslog-model-03: Severity enum values vs identity
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: <http://www.ietf.org/mail-archive/web/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, 30 Mar 2015 19:55:50 -0000

--_000_D4055BF0817D429A84C93A0C96A6BC13ciscocom_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

SmFzb24sDQoNCkFzIEp1ZXJnZW4gbm90ZWQsIHRoZXJlIGFyZSBubyBwbGFucyB0byByZW1vdmUg
ZW51bSBmcm9tIHRoZSBZQU5HIGxhbmd1YWdlLg0KDQpUaGUgc2V2ZXJpdHkgaXMgY29uc3RyYWlu
ZWQgdG8gdGhlIHNwZWNpZmljYXRpb24gZnJvbSBSRkMgNTQyNCBwYWdlIDEwLCBUYWJsZSAyIGFu
ZCBJTU8gc2hvdWxkIHJlbWFpbiBhbiBlbnVtOg0KDQogICAgICAgICAgTnVtZXJpY2FsICAgICAg
ICAgU2V2ZXJpdHkNCiAgICAgICAgICAgICBDb2RlDQoNCiAgICAgICAgICAgICAgMCAgICAgICBF
bWVyZ2VuY3k6IHN5c3RlbSBpcyB1bnVzYWJsZQ0KICAgICAgICAgICAgICAxICAgICAgIEFsZXJ0
OiBhY3Rpb24gbXVzdCBiZSB0YWtlbiBpbW1lZGlhdGVseQ0KICAgICAgICAgICAgICAyICAgICAg
IENyaXRpY2FsOiBjcml0aWNhbCBjb25kaXRpb25zDQogICAgICAgICAgICAgIDMgICAgICAgRXJy
b3I6IGVycm9yIGNvbmRpdGlvbnMNCiAgICAgICAgICAgICAgNCAgICAgICBXYXJuaW5nOiB3YXJu
aW5nIGNvbmRpdGlvbnMNCiAgICAgICAgICAgICAgNSAgICAgICBOb3RpY2U6IG5vcm1hbCBidXQg
c2lnbmlmaWNhbnQgY29uZGl0aW9uDQogICAgICAgICAgICAgIDYgICAgICAgSW5mb3JtYXRpb25h
bDogaW5mb3JtYXRpb25hbCBtZXNzYWdlcw0KICAgICAgICAgICAgICA3ICAgICAgIERlYnVnOiBk
ZWJ1Zy1sZXZlbCBtZXNzYWdlcw0KDQogICAgICAgICAgICAgIFRhYmxlIDIuIFN5c2xvZyBNZXNz
YWdlIFNldmVyaXRpZXMNCg0KV2Ugd2lsbCBjbGFyaWZ5IHRoZSB0ZXJtICJpbmNyZWFzaW5nIHNl
dmVyaXR5IiBpbiB0aGUgbmV4dCBkcmFmdC4NCg0KVGhhbmtzDQoNCkNseWRlDQoNCkZyb206IDxT
dGVybmU+LCAiSmFzb24gKEphc29uKSINCkRhdGU6IFRodXJzZGF5LCBNYXJjaCAyNiwgMjAxNSBh
dCA1OjI3IFBNDQpUbzogIm5ldG1vZEBpZXRmLm9yZzxtYWlsdG86bmV0bW9kQGlldGYub3JnPiIN
ClN1YmplY3Q6IFtuZXRtb2RdIHN5c2xvZy1tb2RlbC0wMzogU2V2ZXJpdHkgZW51bSB2YWx1ZXMg
dnMgaWRlbnRpdHkNCg0KSGkgYWxsLA0KDQpTaG91bGQgd2UgY29uc2lkZXIgcmVtb3ZpbmcgdGhl
IGVudW0gdmFsdWVzIChpZiB3ZSB3YW50IHRvIGtlZXAgdGhpcyBhcyBhbiBlbnVtKSA/ICBUaG9z
ZSBhcmUgdmFsdWVzIHRoYXQgYXJlIG9ubHkgdmlzaWJsZSB3aGVuIHRoZXkgYXJlIHVzZWQgdG8g
ZW5jb2RlIHNldmVyaXR5IHdoZW4gc2VuZGluZyB0byBhIHJlbW90ZSBzeXNsb2cgcmVjZWl2ZXIg
YW5kIEknbSBub3Qgc3VyZSBpZiB0aG9zZSBzaG91bGQgcmVhbGx5IGJlIGluIHRoZSBjb25maWcg
bW9kZWwuIFRoZXJlIGhhcyBhbHNvIGJlZW4gc29tZSBkZWJhdGUgYWJvdXQgdGhlIHVzZSBvZiBl
bnVtIHZhbHVlcyBpbiBnZW5lcmFsIGluIG5ldG1vZCAoY29uc2lkZXJlZCByZW1vdmluZyB0aGF0
IGZyb20gdGhlIFlBTkcgbGFuZ3VhZ2UgYWx0b2dldGhlcikuDQoNCkl0IG1heSBhbHNvIGJlIHVz
ZWZ1bCB0byBjaGFuZ2UgdGhlIHNldmVyaXR5IGVudW0gdG8gYSBzZXQgb2YgaWRlbnRpdGllcy4g
IFRoYXQgbGVhdmVzIGl0IGEgYml0IG1vcmUgZmxleGlibGUgZm9yIHBvdGVudGlhbCBhdWdtZW50
YXRpb24uDQoNCldlIHNob3VsZCBhZGQgYSBkZXNjcmlwdGlvbiB0aGF0IGNsYXJpZmllcy9kZWZp
bmVzIHdoYXQgImluY3JlYXNpbmcgc2V2ZXJpdHkiIGlzIChzaW5jZSB0aGF0IGlzIHRoZSBkZWZh
dWx0IGZvciBob3cgc2V2ZXJpdHkgJ21hdGNoZXMnIGluIHRoZSBzZWxlY3Rvci9maWx0ZXIuICBp
LmUuIHNheSB0aGF0IHRoZSBvcmRlciBvZiBzZXZlcml0eSBhbW9uZ3N0IHRoZSB2YWx1ZXMgaXMg
dGhlIGZvbGxvd2luZyBpbiBpbmNyZWFzaW5nIHNldmVyaXR5IG9yZGVyOiBkZWJ1ZyAobGVhc3Qg
c2V2ZXJlKS0+aW5mby4uLi0+ZW1lcmdlbmN5KG1vc3Qgc2V2ZXJlKS4NCg0KUGVyaGFwcyByZWZl
cmVuY2UgUkZDIDU0MjQgYWdhaW4gaGVyZSBsaWtlIGlzIGRvbmUgaW4gdGhlIGZhY2lsaXR5IGlk
ZW50aXRpZXMuDQoNClJlZ2FyZHMsDQpKYXNvbg0KDQo=

--_000_D4055BF0817D429A84C93A0C96A6BC13ciscocom_
Content-Type: text/html; charset="utf-8"
Content-ID: <B710A39003112E4D861C5B646C325F53@emea.cisco.com>
Content-Transfer-Encoding: base64

PGh0bWw+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0i
dGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjwvaGVhZD4NCjxib2R5IHN0eWxlPSJ3b3JkLXdy
YXA6IGJyZWFrLXdvcmQ7IC13ZWJraXQtbmJzcC1tb2RlOiBzcGFjZTsgLXdlYmtpdC1saW5lLWJy
ZWFrOiBhZnRlci13aGl0ZS1zcGFjZTsiPg0KPGRpdj4NCjxkaXY+DQo8ZGl2IHN0eWxlPSJjb2xv
cjogcmdiKDAsIDAsIDApOyBmb250LWZhbWlseTogQ2FsaWJyaSwgc2Fucy1zZXJpZjsgZm9udC1z
aXplOiAxNHB4OyI+DQpKYXNvbiw8L2Rpdj4NCjxkaXYgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwg
MCk7IGZvbnQtZmFtaWx5OiBDYWxpYnJpLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE0cHg7Ij4N
Cjxicj4NCjwvZGl2Pg0KPGRpdiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAwKTsgZm9udC1mYW1p
bHk6IENhbGlicmksIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTRweDsiPg0KQXMgSnVlcmdlbiBu
b3RlZCwgdGhlcmUgYXJlIG5vIHBsYW5zIHRvIHJlbW92ZSBlbnVtIGZyb20gdGhlIFlBTkcgbGFu
Z3VhZ2UuPC9kaXY+DQo8ZGl2IHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDApOyBmb250LWZhbWls
eTogQ2FsaWJyaSwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxNHB4OyI+DQo8YnI+DQo8L2Rpdj4N
CjxkaXYgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMCk7IGZvbnQtZmFtaWx5OiBDYWxpYnJpLCBz
YW5zLXNlcmlmOyBmb250LXNpemU6IDE0cHg7Ij4NClRoZSBzZXZlcml0eSBpcyBjb25zdHJhaW5l
ZCB0byB0aGUgc3BlY2lmaWNhdGlvbiBmcm9tIFJGQyA1NDI0IHBhZ2UgMTAsIFRhYmxlIDIgYW5k
IElNTyBzaG91bGQgcmVtYWluIGFuIGVudW06PC9kaXY+DQo8ZGl2IHN0eWxlPSJjb2xvcjogcmdi
KDAsIDAsIDApOyBmb250LWZhbWlseTogQ2FsaWJyaSwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAx
NHB4OyI+DQo8YnI+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pjxmb250IGZhY2U9IkNhbGlicmksc2Fu
cy1zZXJpZiI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBOdW1lcmljYWwgJm5i
c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFNldmVyaXR5PC9mb250PjwvZGl2Pg0KPGRpdj48Zm9u
dCBmYWNlPSJDYWxpYnJpLHNhbnMtc2VyaWYiPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwO0NvZGU8L2ZvbnQ+PC9kaXY+DQo8ZGl2Pjxmb250IGZhY2U9IkNh
bGlicmksc2Fucy1zZXJpZiI+PGJyPg0KPC9mb250PjwvZGl2Pg0KPGRpdj48Zm9udCBmYWNlPSJD
YWxpYnJpLHNhbnMtc2VyaWYiPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i
c3A7ICZuYnNwOyAwICZuYnNwOyAmbmJzcDsgJm5ic3A7IEVtZXJnZW5jeTogc3lzdGVtIGlzIHVu
dXNhYmxlPC9mb250PjwvZGl2Pg0KPGRpdj48Zm9udCBmYWNlPSJDYWxpYnJpLHNhbnMtc2VyaWYi
PiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAxICZuYnNw
OyAmbmJzcDsgJm5ic3A7IEFsZXJ0OiBhY3Rpb24gbXVzdCBiZSB0YWtlbiBpbW1lZGlhdGVseTwv
Zm9udD48L2Rpdj4NCjxkaXY+PGZvbnQgZmFjZT0iQ2FsaWJyaSxzYW5zLXNlcmlmIj4mbmJzcDsg
Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgMiAmbmJzcDsgJm5ic3A7
ICZuYnNwOyBDcml0aWNhbDogY3JpdGljYWwgY29uZGl0aW9uczwvZm9udD48L2Rpdj4NCjxkaXY+
PGZvbnQgZmFjZT0iQ2FsaWJyaSxzYW5zLXNlcmlmIj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgMyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBFcnJvcjogZXJy
b3IgY29uZGl0aW9uczwvZm9udD48L2Rpdj4NCjxkaXY+PGZvbnQgZmFjZT0iQ2FsaWJyaSxzYW5z
LXNlcmlmIj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
NCAmbmJzcDsgJm5ic3A7ICZuYnNwOyBXYXJuaW5nOiB3YXJuaW5nIGNvbmRpdGlvbnM8L2ZvbnQ+
PC9kaXY+DQo8ZGl2Pjxmb250IGZhY2U9IkNhbGlicmksc2Fucy1zZXJpZiI+Jm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IDUgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgTm90aWNlOiBub3JtYWwgYnV0IHNpZ25pZmljYW50IGNvbmRpdGlvbjwvZm9udD48L2Rpdj4N
CjxkaXY+PGZvbnQgZmFjZT0iQ2FsaWJyaSxzYW5zLXNlcmlmIj4mbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgNiAmbmJzcDsgJm5ic3A7ICZuYnNwOyBJbmZv
cm1hdGlvbmFsOiBpbmZvcm1hdGlvbmFsIG1lc3NhZ2VzPC9mb250PjwvZGl2Pg0KPGRpdj48Zm9u
dCBmYWNlPSJDYWxpYnJpLHNhbnMtc2VyaWYiPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyA3ICZuYnNwOyAmbmJzcDsgJm5ic3A7IERlYnVnOiBkZWJ1Zy1s
ZXZlbCBtZXNzYWdlczwvZm9udD48L2Rpdj4NCjxkaXY+PGZvbnQgZmFjZT0iQ2FsaWJyaSxzYW5z
LXNlcmlmIj48YnI+DQo8L2ZvbnQ+PC9kaXY+DQo8ZGl2Pjxmb250IGZhY2U9IkNhbGlicmksc2Fu
cy1zZXJpZiI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
IFRhYmxlIDIuIFN5c2xvZyBNZXNzYWdlIFNldmVyaXRpZXM8L2ZvbnQ+PC9kaXY+DQo8L2Rpdj4N
CjxkaXYgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMCk7IGZvbnQtZmFtaWx5OiBDYWxpYnJpLCBz
YW5zLXNlcmlmOyBmb250LXNpemU6IDE0cHg7Ij4NCjxicj4NCjwvZGl2Pg0KPGRpdiBzdHlsZT0i
Y29sb3I6IHJnYigwLCAwLCAwKTsgZm9udC1mYW1pbHk6IENhbGlicmksIHNhbnMtc2VyaWY7IGZv
bnQtc2l6ZTogMTRweDsiPg0KV2Ugd2lsbCBjbGFyaWZ5IHRoZSB0ZXJtICZxdW90O2luY3JlYXNp
bmcgc2V2ZXJpdHkmcXVvdDsgaW4gdGhlIG5leHQgZHJhZnQuPC9kaXY+DQo8ZGl2IHN0eWxlPSJj
b2xvcjogcmdiKDAsIDAsIDApOyBmb250LWZhbWlseTogQ2FsaWJyaSwgc2Fucy1zZXJpZjsgZm9u
dC1zaXplOiAxNHB4OyI+DQo8YnI+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9ImNvbG9yOiByZ2IoMCwg
MCwgMCk7IGZvbnQtZmFtaWx5OiBDYWxpYnJpLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE0cHg7
Ij4NClRoYW5rczwvZGl2Pg0KPGRpdiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAwKTsgZm9udC1m
YW1pbHk6IENhbGlicmksIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTRweDsiPg0KPGJyPg0KPC9k
aXY+DQo8ZGl2IHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDApOyBmb250LWZhbWlseTogQ2FsaWJy
aSwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxNHB4OyI+DQpDbHlkZTwvZGl2Pg0KPGRpdiBzdHls
ZT0iY29sb3I6IHJnYigwLCAwLCAwKTsgZm9udC1mYW1pbHk6IENhbGlicmksIHNhbnMtc2VyaWY7
IGZvbnQtc2l6ZTogMTRweDsiPg0KPGRpdiBpZD0iTUFDX09VVExPT0tfU0lHTkFUVVJFIj48L2Rp
dj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwg
MCk7IGZvbnQtZmFtaWx5OiBDYWxpYnJpLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE0cHg7Ij4N
Cjxicj4NCjwvZGl2Pg0KPHNwYW4gaWQ9Ik9MS19TUkNfQk9EWV9TRUNUSU9OIiBzdHlsZT0iY29s
b3I6IHJnYigwLCAwLCAwKTsgZm9udC1mYW1pbHk6IENhbGlicmksIHNhbnMtc2VyaWY7IGZvbnQt
c2l6ZTogMTRweDsiPg0KPGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6Q2FsaWJyaTsgZm9udC1zaXpl
OjEycHQ7IHRleHQtYWxpZ246bGVmdDsgY29sb3I6YmxhY2s7IEJPUkRFUi1CT1RUT006IG1lZGl1
bSBub25lOyBCT1JERVItTEVGVDogbWVkaXVtIG5vbmU7IFBBRERJTkctQk9UVE9NOiAwaW47IFBB
RERJTkctTEVGVDogMGluOyBQQURESU5HLVJJR0hUOiAwaW47IEJPUkRFUi1UT1A6ICNiNWM0ZGYg
MXB0IHNvbGlkOyBCT1JERVItUklHSFQ6IG1lZGl1bSBub25lOyBQQURESU5HLVRPUDogM3B0Ij4N
CjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5Gcm9tOiA8L3NwYW4+Jmx0O1N0ZXJuZSZn
dDssICZxdW90O0phc29uIChKYXNvbikmcXVvdDs8YnI+DQo8c3BhbiBzdHlsZT0iZm9udC13ZWln
aHQ6Ym9sZCI+RGF0ZTogPC9zcGFuPlRodXJzZGF5LCBNYXJjaCAyNiwgMjAxNSBhdCA1OjI3IFBN
PGJyPg0KPHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPlRvOiA8L3NwYW4+JnF1b3Q7PGEg
aHJlZj0ibWFpbHRvOm5ldG1vZEBpZXRmLm9yZyI+bmV0bW9kQGlldGYub3JnPC9hPiZxdW90Ozxi
cj4NCjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5TdWJqZWN0OiA8L3NwYW4+W25ldG1v
ZF0gc3lzbG9nLW1vZGVsLTAzOiBTZXZlcml0eSBlbnVtIHZhbHVlcyB2cyBpZGVudGl0eTxicj4N
CjwvZGl2Pg0KPGRpdj48YnI+DQo8L2Rpdj4NCjxkaXY+DQo8bWV0YSBuYW1lPSJHZW5lcmF0b3Ii
IGNvbnRlbnQ9Ik1pY3Jvc29mdCBFeGNoYW5nZSBTZXJ2ZXIiPg0KPCEtLSBjb252ZXJ0ZWQgZnJv
bSBydGYgLS0+PHN0eWxlPjwhLS0gLkVtYWlsUXVvdGUgeyBtYXJnaW4tbGVmdDogMXB0OyBwYWRk
aW5nLWxlZnQ6IDRwdDsgYm9yZGVyLWxlZnQ6ICM4MDAwMDAgMnB4IHNvbGlkOyB9IC0tPjwvc3R5
bGU+DQo8ZGl2Pjxmb250IGZhY2U9IkNvbnNvbGFzIiBzaXplPSIyIj48c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjEwLjVwdDsiPg0KPGRpdj5IaSBhbGwsPC9kaXY+DQo8ZGl2PiZuYnNwOzwvZGl2Pg0K
PGRpdj5TaG91bGQgd2UgY29uc2lkZXIgcmVtb3ZpbmcgdGhlIGVudW0gdmFsdWVzIChpZiB3ZSB3
YW50IHRvIGtlZXAgdGhpcyBhcyBhbiBlbnVtKSA/Jm5ic3A7IFRob3NlIGFyZSB2YWx1ZXMgdGhh
dCBhcmUgb25seSB2aXNpYmxlIHdoZW4gdGhleSBhcmUgdXNlZCB0byBlbmNvZGUgc2V2ZXJpdHkg
d2hlbiBzZW5kaW5nIHRvIGEgcmVtb3RlIHN5c2xvZyByZWNlaXZlciBhbmQgSSdtIG5vdCBzdXJl
IGlmIHRob3NlIHNob3VsZCByZWFsbHkgYmUgaW4gdGhlDQogY29uZmlnIG1vZGVsLiBUaGVyZSBo
YXMgYWxzbyBiZWVuIHNvbWUgZGViYXRlIGFib3V0IHRoZSB1c2Ugb2YgZW51bSB2YWx1ZXMgaW4g
Z2VuZXJhbCBpbiBuZXRtb2QgKGNvbnNpZGVyZWQgcmVtb3ZpbmcgdGhhdCBmcm9tIHRoZSBZQU5H
IGxhbmd1YWdlIGFsdG9nZXRoZXIpLg0KPC9kaXY+DQo8ZGl2PiZuYnNwOzwvZGl2Pg0KPGRpdj5J
dCBtYXkgYWxzbyBiZSB1c2VmdWwgdG8gY2hhbmdlIHRoZSBzZXZlcml0eSBlbnVtIHRvIGEgc2V0
IG9mIGlkZW50aXRpZXMuJm5ic3A7IFRoYXQgbGVhdmVzIGl0IGEgYml0IG1vcmUgZmxleGlibGUg
Zm9yIHBvdGVudGlhbCBhdWdtZW50YXRpb24uPC9kaXY+DQo8ZGl2PiZuYnNwOzwvZGl2Pg0KPGRp
dj5XZSBzaG91bGQgYWRkIGEgZGVzY3JpcHRpb24gdGhhdCBjbGFyaWZpZXMvZGVmaW5lcyB3aGF0
ICZxdW90O2luY3JlYXNpbmcgc2V2ZXJpdHkmcXVvdDsgaXMgKHNpbmNlIHRoYXQgaXMgdGhlIGRl
ZmF1bHQgZm9yIGhvdyBzZXZlcml0eSAnbWF0Y2hlcycgaW4gdGhlIHNlbGVjdG9yL2ZpbHRlci4m
bmJzcDsgaS5lLiBzYXkgdGhhdCB0aGUgb3JkZXIgb2Ygc2V2ZXJpdHkgYW1vbmdzdCB0aGUgdmFs
dWVzIGlzIHRoZSBmb2xsb3dpbmcgaW4gaW5jcmVhc2luZyBzZXZlcml0eQ0KIG9yZGVyOiBkZWJ1
ZyAobGVhc3Qgc2V2ZXJlKS0mZ3Q7aW5mby4uLi0mZ3Q7ZW1lcmdlbmN5KG1vc3Qgc2V2ZXJlKS48
L2Rpdj4NCjxkaXY+Jm5ic3A7PC9kaXY+DQo8ZGl2PlBlcmhhcHMgcmVmZXJlbmNlIFJGQyA1NDI0
IGFnYWluIGhlcmUgbGlrZSBpcyBkb25lIGluIHRoZSBmYWNpbGl0eSBpZGVudGl0aWVzLjwvZGl2
Pg0KPGRpdj48Zm9udCBmYWNlPSJDYWxpYnJpIiBzaXplPSIyIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjExcHQ7Ij4mbmJzcDs8L3NwYW4+PC9mb250PjwvZGl2Pg0KPGRpdj48Zm9udCBmYWNlPSJD
YWxpYnJpIiBzaXplPSIyIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExcHQ7Ij5SZWdhcmRzLDwv
c3Bhbj48L2ZvbnQ+PC9kaXY+DQo8ZGl2Pjxmb250IGZhY2U9IkNhbGlicmkiIHNpemU9IjIiPjxz
cGFuIHN0eWxlPSJmb250LXNpemU6MTFwdDsiPkphc29uPC9zcGFuPjwvZm9udD48L2Rpdj4NCjxk
aXY+PGZvbnQgZmFjZT0iQ2FsaWJyaSIgc2l6ZT0iMiI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MXB0OyI+Jm5ic3A7PC9zcGFuPjwvZm9udD48L2Rpdj4NCjwvc3Bhbj48L2ZvbnQ+PC9kaXY+DQo8
L2Rpdj4NCjwvc3Bhbj4NCjwvYm9keT4NCjwvaHRtbD4NCg==

--_000_D4055BF0817D429A84C93A0C96A6BC13ciscocom_--


From nobody Mon Mar 30 14:40:09 2015
Return-Path: <j.schoenwaelder@jacobs-university.de>
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 E7AB81A03AB for <netmod@ietfa.amsl.com>; Mon, 30 Mar 2015 14:40:07 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.86
X-Spam-Level: 
X-Spam-Status: No, score=-3.86 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] 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 3emoFUaxZbbD for <netmod@ietfa.amsl.com>; Mon, 30 Mar 2015 14:40:05 -0700 (PDT)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 88B9A1A037E for <netmod@ietf.org>; Mon, 30 Mar 2015 14:40:05 -0700 (PDT)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id 3524B10B0; Mon, 30 Mar 2015 23:40:04 +0200 (CEST)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.220]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id dftWDgcOOPay; Mon, 30 Mar 2015 23:39:59 +0200 (CEST)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS; Mon, 30 Mar 2015 23:40:03 +0200 (CEST)
Received: from localhost (demetrius4.jacobs-university.de [212.201.44.49]) by hermes.jacobs-university.de (Postfix) with ESMTP id 8576A20031; Mon, 30 Mar 2015 23:40:03 +0200 (CEST)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius4.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id BKjRhlvCxuW1; Mon, 30 Mar 2015 23:40:03 +0200 (CEST)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id 5F55A2002B; Mon, 30 Mar 2015 23:40:02 +0200 (CEST)
Received: by elstar.local (Postfix, from userid 501) id 665FB329AB47; Mon, 30 Mar 2015 23:40:00 +0200 (CEST)
Date: Mon, 30 Mar 2015 23:39:59 +0200
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Ladislav Lhotka <lhotka@nic.cz>
Message-ID: <20150330213959.GA68892@elstar.local>
Mail-Followup-To: Ladislav Lhotka <lhotka@nic.cz>, Martin =?iso-8859-1?Q?Bj=F6rklund?= <mbj@tail-f.com>, netmod@ietf.org
References: <20150328.160837.891193389716580490.mbj@tail-f.com> <CABCOCHSJ4+rJerLO4f0i-vO-zmMD2Bs+SepnXQVmQn9N+3FE+g@mail.gmail.com> <20150329.094343.625878615822690247.mbj@tail-f.com> <EA7B975C-7909-4C45-97A1-A5100B35C3B0@nic.cz>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
X-Clacks-Overhead: GNU Terry Pratchett
Content-Transfer-Encoding: 8bit
In-Reply-To: <EA7B975C-7909-4C45-97A1-A5100B35C3B0@nic.cz>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/jINHju7uQf1U3oRYywxm1E5AW5E>
Cc: netmod@ietf.org
Subject: Re: [netmod] Y45 again
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
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: <http://www.ietf.org/mail-archive/web/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, 30 Mar 2015 21:40:08 -0000

On Sun, Mar 29, 2015 at 02:50:10PM +0200, Ladislav Lhotka wrote:
 
> >> 4) Now it will be OK to extend typedefs and groupings, but
> >> the this leads to a scenario where essentially every single
> >> definition has its own revision.  IMO it is very confusing
> 
> I donâ€™t think so, it would be the case only if we introduced something like
> 
> uses foo {
>     revision-date 2015-04-01;
> }
>

So how is this any different than defining

    grouping foo-2015-04-01 {
        // ...
    }

and then later expand things using this:

    uses foo-2015-04-01;

The main simplification of versioning groupings and typedefs by giving
them different names is that I do not have to import multiple versions
of the same module in order to resolve all things used properly.

Note, I am not suggesting to tag definition with version numbers
because not all definitions change when a module is revised. Authors
of reusable stuff should be able to distinguish between editorial and
semantic changes. Users of reusable stuff should be safe from never
inheriting changes as a side effect of an updated import. Moving to a
new semantically different version must require explicit action. The
counter proposal that module maintainers need to check everything they
depend on whenever publishing a new model is a broken idea if you ask
me. I am not sure we really make progress.

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Mon Mar 30 14:46:55 2015
Return-Path: <j.schoenwaelder@jacobs-university.de>
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 B7C161A0368 for <netmod@ietfa.amsl.com>; Mon, 30 Mar 2015 14:46:53 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.86
X-Spam-Level: 
X-Spam-Status: No, score=-3.86 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] 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 C-xLu_5-eSWx for <netmod@ietfa.amsl.com>; Mon, 30 Mar 2015 14:46:51 -0700 (PDT)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7B0FE1A0377 for <netmod@ietf.org>; Mon, 30 Mar 2015 14:46:51 -0700 (PDT)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id 4DFA0105D; Mon, 30 Mar 2015 23:46:50 +0200 (CEST)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.220]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id eYchZGGyL7S3; Mon, 30 Mar 2015 23:46:44 +0200 (CEST)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS; Mon, 30 Mar 2015 23:46:48 +0200 (CEST)
Received: from localhost (demetrius4.jacobs-university.de [212.201.44.49]) by hermes.jacobs-university.de (Postfix) with ESMTP id E59342002B; Mon, 30 Mar 2015 23:46:48 +0200 (CEST)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius4.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id 05cDPmdOVPeN; Mon, 30 Mar 2015 23:46:47 +0200 (CEST)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id 2CCBA20013; Mon, 30 Mar 2015 23:46:47 +0200 (CEST)
Received: by elstar.local (Postfix, from userid 501) id 180B9329AB7A; Mon, 30 Mar 2015 23:46:47 +0200 (CEST)
Date: Mon, 30 Mar 2015 23:46:46 +0200
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Martin Bjorklund <mbj@tail-f.com>
Message-ID: <20150330214646.GB68892@elstar.local>
Mail-Followup-To: Martin Bjorklund <mbj@tail-f.com>, netmod@ietf.org
References: <20150328.160837.891193389716580490.mbj@tail-f.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20150328.160837.891193389716580490.mbj@tail-f.com>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/OrUKXG1JObBa3Ub89bVsM2HXUbU>
Cc: netmod@ietf.org
Subject: Re: [netmod] Y45 again
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
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: <http://www.ietf.org/mail-archive/web/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, 30 Mar 2015 21:46:53 -0000

Martin,

if I understand things correctly, your proposal still requires that I
update all definitions to the one I import from. If a grouping/typedef
got expanded, I can't use the original and the expanded version in the
same module, right? This may not be workable with bigger modules.

Here is a scenario. Lets take something like yang-types. In a future
revision, a typedef 'duration' might be added. At the same time, some
other definition gets expanded. If I now want to use 'duration', I
have to update all my usages of the expanded typedef (or worse copy
the old one into my module)?

/js

On Sat, Mar 28, 2015 at 04:08:37PM +0100, Martin Bjorklund wrote:
> Hi,
> 
> This is another attempt to solve the conformance problem, building on
> the idea that Lada suggested.
> 
> The proposed solution does not require any changes to the upgrade
> rules from 6020 (specifically, a typedef/grouping can expand its value
> space).
> 
> The solution relies on the observation that import may or may not
> indicate a run-time dependency between modules.  If module A imports
> module B, and A just uses a typedef from B, there is no requirement
> that a server that implements all protocol accessible nodes in A also
> implements all protocol accessible nodes in B.
> 
> In the rest of the description, "implement a module" means "implements
> all protocol accessible nodes from a module".
> 
> Some constructs imply a run-time dependency.  If module A augments
> module B, there is a run-time dependency, meaning that a server that
> implements A must also implement B (modulo features).  A leafref also
> imply a run-time dependency.  (must and when expressions do not)
> 
> So, the idea is this:
> 
>   If a server implements a module A that imports B, and A augments B
>   or has a leafref to a node in B, the server MUST implement *some
>   version* of module B that has the nodes A references.  This is
>   regardless of A imports B by revision or not.
> 
>   If a module A imports B by revision, any typedefs or a groupings
>   from B are picked from the specified revision of B, regardless of
>   which revision (if any!) of B the server implements.
> 
>   If a module A imports B without revision, and A uses typedefs and/or
>   groupings from B, the server MUST pick and advertise one revision of
>   B that has the used typedefs and groupings.  This requires a way to
>   advertise a module with "conformance=no-protocol-accessible-nodes",
>   so that the server can advertise the module w/o implementing its
>   protocol accessible nodes.
> 
> All this taken together means that by looking at the advertised
> modules and their import revisions, a client knows the exact types
> and groupings used everywhere.
> 
> A module writer can choose to import by revision (thus locking down
> the typedefs and groupings used), or import without revision (allowing
> future updated typedefs and groupings to be incorporated).
> 
> Repeating the example in P1 from
> draft-bjorklund-yang-conformance-problem-01:
> 
>   module mod-a {
>     ...
>     revision 2001-01-01;        // initial version
>     typedef foo {
>       type enumeration {
>         enum q;
>       }
>     }
>     grouping bar {
>       leaf x { type string; }
>     }
>   }
> 
>   module mod-a {
>     ...
>     revision 2002-01-01;        // new version
>     typedef foo {
>       type enumeration {
>         enum q;
>         enum w;                 // enum added
>       }
>     }
>     grouping bar {
>       leaf x { type string; }
>       leaf y { type string; }   // grouping extended
>     }
>   }
> 
>   module mod-b {
>     ...
>     revision 2001-01-01;
>     import mod-a {
>       prefix a;
>       revision 2001-01-01;      // uses initial vsn of mod-a
>     }
>     leaf b {
>       type a:foo;
>     }
>     container b2 {
>       uses a:bar;
>     }
>   }
> 
>   module mod-c {
>     ...
>     revision 2002-01-01;
>     import mod-a {
>       prefix a;
>       revision 2002-01-01;      // uses new vsn of mod-a
>     }
>     leaf c {
>       type a:foo;
>     }
>     container c2 {
>       uses a:bar;
>     }
>   }
> 
>   module mod-d {
>     ...
>     revision 2002-01-01;
>     import mod-a                // uses unknown vsn of mod-a
>       prefix a;
>     }
>     leaf d {
>       type a:foo;
>     }
>     container d2 {
>       uses a:bar;
>     }
>   }
> 
> A server might advertise:
> 
>   mod-a 2002-01-01
>   mod-b 2001-01-01 // uses mod-a 2001-01-01, since import by revision
>   mod-c 2002-01-01 // uses mod-a 2002-01-01, since import by revision
>   mod-d 2002-01-01 // uses mod-a 2002-01-01, since it is advertised
> 
> Another server might advertise:
> 
>   mod-a 2001-01-01 conformance=no-protocol-accessible-nodes
>   mod-c 2002-01-01 // uses mod-a 2002-01-01, since import by revision
>   mod-d 2002-01-01 // uses mod-a 2001-01-01, since it is advertised
> 
> Note that it is also ok to advertise:
> 
>   mod-b 2001-01-01 // uses mod-a 2001-01-01, since import by revision
>   mod-c 2002-01-01 // uses mod-a 2002-01-01, since import by revision
> 
> I.e., if import-by revision is used everywhere, a server may not
> advertise the imported module.  Assume this was not the case.  Then
> a server might advertise the following, which is unclear:
> 
>   mod-a 2001-01-01 conformance=no-protocol-accessible-nodes
>   mod-a 2002-01-01 conformance=no-protocol-accessible-nodes
>   mod-b 2001-01-01 // uses mod-a 2001-01-01, since import by revision
>   mod-c 2002-01-01 // uses mod-a 2002-01-01, since import by revision
>   mod-d 2002-01-01 // which version of a is used???
> 
> 
> This solution solves the conformance drift problem (P1 in
> draft-bjorklund-yang-conformance-problem-01) and conformance ambiguity
> (P2) by having clear rules what import with and without revision
> means.
> 
> 
> 
> /martin
> 
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Mon Mar 30 15:21:10 2015
Return-Path: <j.schoenwaelder@jacobs-university.de>
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 509A81A6EF4 for <netmod@ietfa.amsl.com>; Mon, 30 Mar 2015 15:21:08 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.56
X-Spam-Level: 
X-Spam-Status: No, score=-3.56 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, MIME_8BIT_HEADER=0.3, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] 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 fdFuVKlR6KEy for <netmod@ietfa.amsl.com>; Mon, 30 Mar 2015 15:21:05 -0700 (PDT)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C4D0E1A6EF2 for <netmod@ietf.org>; Mon, 30 Mar 2015 15:21:04 -0700 (PDT)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id 7D82C114C; Tue, 31 Mar 2015 00:21:03 +0200 (CEST)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.220]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id G9x9TnNJMtLb; Tue, 31 Mar 2015 00:20:58 +0200 (CEST)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS; Tue, 31 Mar 2015 00:21:02 +0200 (CEST)
Received: from localhost (demetrius4.jacobs-university.de [212.201.44.49]) by hermes.jacobs-university.de (Postfix) with ESMTP id 7919F20031; Tue, 31 Mar 2015 00:21:02 +0200 (CEST)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius4.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id Tdt2Gc3MZh3l; Tue, 31 Mar 2015 00:21:01 +0200 (CEST)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id 8CA192002B; Tue, 31 Mar 2015 00:21:00 +0200 (CEST)
Received: by elstar.local (Postfix, from userid 501) id 46B41329AC55; Tue, 31 Mar 2015 00:20:57 +0200 (CEST)
Date: Tue, 31 Mar 2015 00:20:57 +0200
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Ladislav Lhotka <lhotka@nic.cz>, Martin =?iso-8859-1?Q?Bj=F6rklund?= <mbj@tail-f.com>, netmod@ietf.org
Message-ID: <20150330222057.GD68892@elstar.local>
Mail-Followup-To: Ladislav Lhotka <lhotka@nic.cz>, Martin =?iso-8859-1?Q?Bj=F6rklund?= <mbj@tail-f.com>, netmod@ietf.org
References: <20150328.160837.891193389716580490.mbj@tail-f.com> <CABCOCHSJ4+rJerLO4f0i-vO-zmMD2Bs+SepnXQVmQn9N+3FE+g@mail.gmail.com> <20150329.094343.625878615822690247.mbj@tail-f.com> <EA7B975C-7909-4C45-97A1-A5100B35C3B0@nic.cz> <20150330213959.GA68892@elstar.local>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
X-Clacks-Overhead: GNU Terry Pratchett
Content-Transfer-Encoding: 8bit
In-Reply-To: <20150330213959.GA68892@elstar.local>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/eeP-N0oq-Z-1N76zfL1AqYMOVh0>
Subject: Re: [netmod] Y45 again
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
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: <http://www.ietf.org/mail-archive/web/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, 30 Mar 2015 22:21:08 -0000

On Mon, Mar 30, 2015 at 11:39:59PM +0200, Juergen Schoenwaelder wrote:
> On Sun, Mar 29, 2015 at 02:50:10PM +0200, Ladislav Lhotka wrote:
>  
> > >> 4) Now it will be OK to extend typedefs and groupings, but
> > >> the this leads to a scenario where essentially every single
> > >> definition has its own revision.  IMO it is very confusing
> > 
> > I donâ€™t think so, it would be the case only if we introduced something like
> > 
> > uses foo {
> >     revision-date 2015-04-01;
> > }
> >
> 
> So how is this any different than defining
> 
>     grouping foo-2015-04-01 {
>         // ...
>     }
> 
> and then later expand things using this:
> 
>     uses foo-2015-04-01;
> 
> The main simplification of versioning groupings and typedefs by giving
> them different names is that I do not have to import multiple versions
> of the same module in order to resolve all things used properly.

In other words, if we want to explore this option, then we have
to treat

module m {
  revision 2015-04-01;

  typedef t {}
  grouping g {}
}

module m {
  revision 2015-04-02;

  typedef t {}
  grouping g {}
}

as defining t@2015-04-01 and g@2015-04-01. Modules simply resolve
the shorthand name to a versioned name:

module x {
  import m { revision 2015-04-01; }

  leaf l { type t; }   // resolves to t@2015-04-01
  uses g;              // resolves to g@2015-04-01
}

module y {
  import m;

  leaf l { type t; }   // resolves to t@2015-04-?? (depends on advertisements)
  uses g;	       // resolves to g@2015-04-?? (depends on advertisements)
}

module z {
  import m;

  // this requires to load two versions of m...
  leaf l { type t@2015-04-01; }  // use explicit version
  uses g@2015-04-02;             // use explicit version
}

Module z is perhaps ugly but completely future proof since the
definitions used are always clear. This requires to be able to load
multiple versions of m. Otherwise, this is functionally equivalent
with explicit version numbering.

Module x is reasonably future proof but requires that the module
maintainer is careful with import revision updates. It is necessary to
examine all imported symbols and to check that the new version is what
is really needed/wanted.

Module y is short but ambiguous without access to external information
once m gets updated. Until m gets updated in an incompatible way,
module y is however OK (and this is where we are with most of our
modules).

Note that this should then also be allowed:

module v {
  import m { revision 2015-04-01; }

  leaf l { type t; }   // resolves to t@2015-04-01
  uses g@2015-04-02;   // resolves to g@2015-04-02
}

This may look odd but the revision date in the import really just
sets a default.

Personally, I do not like to rely on external information to determine
what a module means. Anyway, this all boils down to the question
whether we want to require that tools can deal with multiple revisions
of the same module in order resolve definitions. This is the price to
pay for anything that does a bit more than the simple rule "whenever
you make a semantic change, give the definition a new name".

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Mon Mar 30 17:47:29 2015
Return-Path: <andy@yumaworks.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 EB0D41A1F1D for <netmod@ietfa.amsl.com>; Mon, 30 Mar 2015 17:47:28 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.679
X-Spam-Level: 
X-Spam-Status: No, score=-1.679 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, MIME_8BIT_HEADER=0.3, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=no
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 wzXf7AOzcXNO for <netmod@ietfa.amsl.com>; Mon, 30 Mar 2015 17:47:27 -0700 (PDT)
Received: from mail-la0-f52.google.com (mail-la0-f52.google.com [209.85.215.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0DC681A1EF4 for <netmod@ietf.org>; Mon, 30 Mar 2015 17:47:27 -0700 (PDT)
Received: by lahf3 with SMTP id f3so936894lah.2 for <netmod@ietf.org>; Mon, 30 Mar 2015 17:47:25 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:content-type:content-transfer-encoding; bh=iDUkEU+Fu3/aVQVy1Suqbo9gIYISngCurENBGPL6B3E=; b=PGSYQK3jz8npT7JC98Ef8thVlkjRLEwCSJjZP4SzM3Kq+Ym3IIBs45+v/8YPe754GE sSUJO6cXuEpeCmemrPJeS43NGtWF/L6AJdELYrXbwcrV7F4PHojoeZ4xvU8NUwuh4+l2 b9LHISHQFwc634X4N/0QeXTg3RaviaRjVkXJuL9OMA/pTRP2TJeU9KBmxV1/nDQmw8tz aZXciIOVROrw/HTOZSk9Vjxaf2P+H6GuPzIkjmkm5BFgYGCM5CTPzG782GYfWfxDWyf2 afkJEnTXyqaAOwvcF04OAv3GhfF79ZKFahqfKSrTNwGtrwXKufLXN7e3aUb4ALzIJnc8 f0lw==
X-Gm-Message-State: ALoCoQkrvP71rWdHPAg/05X7Wj9WJZLks4Ue97VAw9eiVpfyzpyvNoMEqIFD6xlYTWMtKQ5viZ9K
MIME-Version: 1.0
X-Received: by 10.152.37.40 with SMTP id v8mr28970123laj.123.1427762845391; Mon, 30 Mar 2015 17:47:25 -0700 (PDT)
Received: by 10.112.98.168 with HTTP; Mon, 30 Mar 2015 17:47:25 -0700 (PDT)
In-Reply-To: <20150330222057.GD68892@elstar.local>
References: <20150328.160837.891193389716580490.mbj@tail-f.com> <CABCOCHSJ4+rJerLO4f0i-vO-zmMD2Bs+SepnXQVmQn9N+3FE+g@mail.gmail.com> <20150329.094343.625878615822690247.mbj@tail-f.com> <EA7B975C-7909-4C45-97A1-A5100B35C3B0@nic.cz> <20150330213959.GA68892@elstar.local> <20150330222057.GD68892@elstar.local>
Date: Mon, 30 Mar 2015 17:47:25 -0700
Message-ID: <CABCOCHQpWzrmOBKL-kLwE_6rYDfrngGRZTaGcnTBdkdNF6q36w@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>, Ladislav Lhotka <lhotka@nic.cz>,  =?UTF-8?Q?Martin_Bj=C3=B6rklund?= <mbj@tail-f.com>,  "netmod@ietf.org" <netmod@ietf.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/5-pqCFHJhNFmCvFii26s0CIW6EE>
Subject: Re: [netmod] Y45 again
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: <http://www.ietf.org/mail-archive/web/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: Tue, 31 Mar 2015 00:47:29 -0000

Hi,

This is getting way too complicated for real deployment.
All the solutions seem way more complicated than just not
changing the intended value set of a released typedef or grouping.

    typedef acme-type { ... }
    typedef acme-type.2 { ... }
    typedef acme-knob.3 { ... }

    grouping acme-grp { ... }

    grouping acme-grp.2 {
         uses acme-grp;
         // add new nodes here
    }
    grouping acme-grp.3 {
         uses acme-grp.2;
         // add new nodes here
    }


IMO it is not a burden to put the version in the name.
Just moving the version to a different encoding is not really solving
the problem.
It just makes it much worse.  The current solution allows each subscriber
to the typedef to decide when to change to a new version.  The publisher
cannot decide for everybody.  Cut-and-paste into N private versions
violates coupling and cohesion principles so it cannot be considered.

This is the least painful solution that works for everything.


Andy



On Mon, Mar 30, 2015 at 3:20 PM, Juergen Schoenwaelder
<j.schoenwaelder@jacobs-university.de> wrote:
> On Mon, Mar 30, 2015 at 11:39:59PM +0200, Juergen Schoenwaelder wrote:
>> On Sun, Mar 29, 2015 at 02:50:10PM +0200, Ladislav Lhotka wrote:
>>
>> > >> 4) Now it will be OK to extend typedefs and groupings, but
>> > >> the this leads to a scenario where essentially every single
>> > >> definition has its own revision.  IMO it is very confusing
>> >
>> > I don=E2=80=99t think so, it would be the case only if we introduced s=
omething like
>> >
>> > uses foo {
>> >     revision-date 2015-04-01;
>> > }
>> >
>>
>> So how is this any different than defining
>>
>>     grouping foo-2015-04-01 {
>>         // ...
>>     }
>>
>> and then later expand things using this:
>>
>>     uses foo-2015-04-01;
>>
>> The main simplification of versioning groupings and typedefs by giving
>> them different names is that I do not have to import multiple versions
>> of the same module in order to resolve all things used properly.
>
> In other words, if we want to explore this option, then we have
> to treat
>
> module m {
>   revision 2015-04-01;
>
>   typedef t {}
>   grouping g {}
> }
>
> module m {
>   revision 2015-04-02;
>
>   typedef t {}
>   grouping g {}
> }
>
> as defining t@2015-04-01 and g@2015-04-01. Modules simply resolve
> the shorthand name to a versioned name:
>
> module x {
>   import m { revision 2015-04-01; }
>
>   leaf l { type t; }   // resolves to t@2015-04-01
>   uses g;              // resolves to g@2015-04-01
> }
>
> module y {
>   import m;
>
>   leaf l { type t; }   // resolves to t@2015-04-?? (depends on advertisem=
ents)
>   uses g;              // resolves to g@2015-04-?? (depends on advertisem=
ents)
> }
>
> module z {
>   import m;
>
>   // this requires to load two versions of m...
>   leaf l { type t@2015-04-01; }  // use explicit version
>   uses g@2015-04-02;             // use explicit version
> }
>
> Module z is perhaps ugly but completely future proof since the
> definitions used are always clear. This requires to be able to load
> multiple versions of m. Otherwise, this is functionally equivalent
> with explicit version numbering.
>
> Module x is reasonably future proof but requires that the module
> maintainer is careful with import revision updates. It is necessary to
> examine all imported symbols and to check that the new version is what
> is really needed/wanted.
>
> Module y is short but ambiguous without access to external information
> once m gets updated. Until m gets updated in an incompatible way,
> module y is however OK (and this is where we are with most of our
> modules).
>
> Note that this should then also be allowed:
>
> module v {
>   import m { revision 2015-04-01; }
>
>   leaf l { type t; }   // resolves to t@2015-04-01
>   uses g@2015-04-02;   // resolves to g@2015-04-02
> }
>
> This may look odd but the revision date in the import really just
> sets a default.
>
> Personally, I do not like to rely on external information to determine
> what a module means. Anyway, this all boils down to the question
> whether we want to require that tools can deal with multiple revisions
> of the same module in order resolve definitions. This is the price to
> pay for anything that does a bit more than the simple rule "whenever
> you make a semantic change, give the definition a new name".
>
> /js
>
> --
> Juergen Schoenwaelder           Jacobs University Bremen gGmbH
> Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
> Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>
>
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod


From nobody Tue Mar 31 00:20:57 2015
Return-Path: <j.schoenwaelder@jacobs-university.de>
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 EDBC51B2B16 for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 00:20:56 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.56
X-Spam-Level: 
X-Spam-Status: No, score=-3.56 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, MIME_8BIT_HEADER=0.3, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] 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 Fk-k_E4c6ZYB for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 00:20:54 -0700 (PDT)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5420E1B2B14 for <netmod@ietf.org>; Tue, 31 Mar 2015 00:20:54 -0700 (PDT)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id CB9CCAB6; Tue, 31 Mar 2015 09:20:52 +0200 (CEST)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.220]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id pzVykUAV_cwZ; Tue, 31 Mar 2015 09:20:44 +0200 (CEST)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS; Tue, 31 Mar 2015 09:20:51 +0200 (CEST)
Received: from localhost (demetrius4.jacobs-university.de [212.201.44.49]) by hermes.jacobs-university.de (Postfix) with ESMTP id 7E41820033; Tue, 31 Mar 2015 09:20:51 +0200 (CEST)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius4.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id YmBckuitwDYS; Tue, 31 Mar 2015 09:20:50 +0200 (CEST)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id BA6232002B; Tue, 31 Mar 2015 09:20:49 +0200 (CEST)
Received: by elstar.local (Postfix, from userid 501) id 5A92D329AEEF; Tue, 31 Mar 2015 09:20:47 +0200 (CEST)
Date: Tue, 31 Mar 2015 09:20:47 +0200
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Ladislav Lhotka <lhotka@nic.cz>, Martin =?iso-8859-1?Q?Bj=F6rklund?= <mbj@tail-f.com>, netmod@ietf.org
Message-ID: <20150331072047.GA70057@elstar.local>
Mail-Followup-To: Ladislav Lhotka <lhotka@nic.cz>, Martin =?iso-8859-1?Q?Bj=F6rklund?= <mbj@tail-f.com>, netmod@ietf.org
References: <20150328.160837.891193389716580490.mbj@tail-f.com> <CABCOCHSJ4+rJerLO4f0i-vO-zmMD2Bs+SepnXQVmQn9N+3FE+g@mail.gmail.com> <20150329.094343.625878615822690247.mbj@tail-f.com> <EA7B975C-7909-4C45-97A1-A5100B35C3B0@nic.cz> <20150330213959.GA68892@elstar.local> <20150330222057.GD68892@elstar.local>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20150330222057.GD68892@elstar.local>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/tYJm8ti13hqdBoStRFcpQo5a3O0>
Subject: Re: [netmod] Y45 again
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
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: <http://www.ietf.org/mail-archive/web/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: Tue, 31 Mar 2015 07:20:57 -0000

Hi,

even this type of solution is kind of broken since it does not provide
the very import information which versions and compatible and which are
semantically not compatible.

If I implement a tool that supports say ietf-inet-types:ip-address and
I ship this tool based on a certain revision of this definition, I
can't be sure this tool does the correct thing with a future revision
of the ietf-inet-tyeps module. In other words, I constantly need to
update tools to include information which revisions are semantically
equivalent. In other words, while I have lots of versioned definitions,
I do miss the most important bit that tells me which ones are
semantically equivalent and which ones are not.

Bottom line: Assigning a new name when a definition is updated in an
incompatible way remains the simplest and most predictable of all
solutions we came up with.

/js

On Tue, Mar 31, 2015 at 12:20:57AM +0200, Juergen Schoenwaelder wrote:
> 
> In other words, if we want to explore this option, then we have
> to treat
> 
> module m {
>   revision 2015-04-01;
> 
>   typedef t {}
>   grouping g {}
> }
> 
> module m {
>   revision 2015-04-02;
> 
>   typedef t {}
>   grouping g {}
> }
> 
> as defining t@2015-04-01 and g@2015-04-01. Modules simply resolve
> the shorthand name to a versioned name:
> 
> module x {
>   import m { revision 2015-04-01; }
> 
>   leaf l { type t; }   // resolves to t@2015-04-01
>   uses g;              // resolves to g@2015-04-01
> }
> 
> module y {
>   import m;
> 
>   leaf l { type t; }   // resolves to t@2015-04-?? (depends on advertisements)
>   uses g;	       // resolves to g@2015-04-?? (depends on advertisements)
> }
> 
> module z {
>   import m;
> 
>   // this requires to load two versions of m...
>   leaf l { type t@2015-04-01; }  // use explicit version
>   uses g@2015-04-02;             // use explicit version
> }
> 
> Module z is perhaps ugly but completely future proof since the
> definitions used are always clear. This requires to be able to load
> multiple versions of m. Otherwise, this is functionally equivalent
> with explicit version numbering.
> 
> Module x is reasonably future proof but requires that the module
> maintainer is careful with import revision updates. It is necessary to
> examine all imported symbols and to check that the new version is what
> is really needed/wanted.
> 
> Module y is short but ambiguous without access to external information
> once m gets updated. Until m gets updated in an incompatible way,
> module y is however OK (and this is where we are with most of our
> modules).
> 
> Note that this should then also be allowed:
> 
> module v {
>   import m { revision 2015-04-01; }
> 
>   leaf l { type t; }   // resolves to t@2015-04-01
>   uses g@2015-04-02;   // resolves to g@2015-04-02
> }
> 
> This may look odd but the revision date in the import really just
> sets a default.
> 
> Personally, I do not like to rely on external information to determine
> what a module means. Anyway, this all boils down to the question
> whether we want to require that tools can deal with multiple revisions
> of the same module in order resolve definitions. This is the price to
> pay for anything that does a bit more than the simple rule "whenever
> you make a semantic change, give the definition a new name".
> 
> /js
> 
> -- 
> Juergen Schoenwaelder           Jacobs University Bremen gGmbH
> Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
> Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Tue Mar 31 00:28:00 2015
Return-Path: <j.schoenwaelder@jacobs-university.de>
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 069DC1A90FE for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 00:27:59 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.86
X-Spam-Level: 
X-Spam-Status: No, score=-3.86 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] 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 nZ8dMrOGu4Pw for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 00:27:58 -0700 (PDT)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id CD1DE1A875A for <netmod@ietf.org>; Tue, 31 Mar 2015 00:27:57 -0700 (PDT)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id A1665FC1; Tue, 31 Mar 2015 09:27:56 +0200 (CEST)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.220]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id rX0q8J8-_LnV; Tue, 31 Mar 2015 09:27:49 +0200 (CEST)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS; Tue, 31 Mar 2015 09:27:56 +0200 (CEST)
Received: from localhost (demetrius1.jacobs-university.de [212.201.44.46]) by hermes.jacobs-university.de (Postfix) with ESMTP id D6AA32002C; Tue, 31 Mar 2015 09:27:55 +0200 (CEST)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius1.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id i4F-TY5UXscJ; Tue, 31 Mar 2015 09:27:55 +0200 (CEST)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id 922CA20013; Tue, 31 Mar 2015 09:27:54 +0200 (CEST)
Received: by elstar.local (Postfix, from userid 501) id 79CB7329AF26; Tue, 31 Mar 2015 09:27:54 +0200 (CEST)
Date: Tue, 31 Mar 2015 09:27:54 +0200
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Andy Bierman <andy@yumaworks.com>
Message-ID: <20150331072754.GB70057@elstar.local>
Mail-Followup-To: Andy Bierman <andy@yumaworks.com>, Ladislav Lhotka <lhotka@nic.cz>, Martin =?iso-8859-1?Q?Bj=F6rklund?= <mbj@tail-f.com>, "netmod@ietf.org" <netmod@ietf.org>
References: <20150328.160837.891193389716580490.mbj@tail-f.com> <CABCOCHSJ4+rJerLO4f0i-vO-zmMD2Bs+SepnXQVmQn9N+3FE+g@mail.gmail.com> <20150329.094343.625878615822690247.mbj@tail-f.com> <EA7B975C-7909-4C45-97A1-A5100B35C3B0@nic.cz> <20150330213959.GA68892@elstar.local> <20150330222057.GD68892@elstar.local> <CABCOCHQpWzrmOBKL-kLwE_6rYDfrngGRZTaGcnTBdkdNF6q36w@mail.gmail.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <CABCOCHQpWzrmOBKL-kLwE_6rYDfrngGRZTaGcnTBdkdNF6q36w@mail.gmail.com>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/Ys8yRdNuRy7eB027vNc4hd0vN3o>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] Y45 again
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
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: <http://www.ietf.org/mail-archive/web/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: Tue, 31 Mar 2015 07:27:59 -0000

On Mon, Mar 30, 2015 at 05:47:25PM -0700, Andy Bierman wrote:
> Hi,
> 
> This is getting way too complicated for real deployment.
> All the solutions seem way more complicated than just not
> changing the intended value set of a released typedef or grouping.

[...]

> This is the least painful solution that works for everything.

I tend to agree.

The only variation to consider is to be less strict for enums and
bits, that is allow additions since enums and bits are often used for
(controlled) extensions. In other words, to learn the actual value set
supported by an implementation, one has to ask the implementation
(similar to identities). (This is what SMIv2 allowed, you can add
named numbers to BITS and enumerated INTEGER types, but no other
changes to types are allowed.)

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Tue Mar 31 00:57:53 2015
Return-Path: <mbj@tail-f.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 728E51A1A2D for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 00:57:50 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.91
X-Spam-Level: 
X-Spam-Status: No, score=-1.91 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, T_RP_MATCHES_RCVD=-0.01] 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 kqA_9gOLdZy4 for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 00:57:48 -0700 (PDT)
Received: from mail.tail-f.com (mail.tail-f.com [83.241.162.140]) by ietfa.amsl.com (Postfix) with ESMTP id A6A271B2B21 for <netmod@ietf.org>; Tue, 31 Mar 2015 00:57:44 -0700 (PDT)
Received: from localhost (x15.tail-f.com [192.168.1.60]) by mail.tail-f.com (Postfix) with ESMTPSA id 7FFD21280008; Tue, 31 Mar 2015 09:57:43 +0200 (CEST)
Date: Tue, 31 Mar 2015 09:57:43 +0200 (CEST)
Message-Id: <20150331.095743.2118495811324746063.mbj@tail-f.com>
To: j.schoenwaelder@jacobs-university.de
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <20150330214646.GB68892@elstar.local>
References: <20150328.160837.891193389716580490.mbj@tail-f.com> <20150330214646.GB68892@elstar.local>
X-Mailer: Mew version 6.5 on Emacs 23.4 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/EcghwAT8j_FsE7X9RwKUUCFE9OU>
Cc: netmod@ietf.org
Subject: Re: [netmod] Y45 again
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: <http://www.ietf.org/mail-archive/web/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: Tue, 31 Mar 2015 07:57:50 -0000

Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote:
> Martin,
> 
> if I understand things correctly, your proposal still requires that I
> update all definitions to the one I import from. If a grouping/typedef
> got expanded, I can't use the original and the expanded version in the
> same module, right?

Correct.

> This may not be workable with bigger modules.
> 
> Here is a scenario. Lets take something like yang-types. In a future
> revision, a typedef 'duration' might be added. At the same time, some
> other definition gets expanded. If I now want to use 'duration', I
> have to update all my usages of the expanded typedef (or worse copy
> the old one into my module)?

Correct.

You have to be careful if you expand an existing typedef/grouping.  I
think this is ok.


/martin



> 
> /js
> 
> On Sat, Mar 28, 2015 at 04:08:37PM +0100, Martin Bjorklund wrote:
> > Hi,
> > 
> > This is another attempt to solve the conformance problem, building on
> > the idea that Lada suggested.
> > 
> > The proposed solution does not require any changes to the upgrade
> > rules from 6020 (specifically, a typedef/grouping can expand its value
> > space).
> > 
> > The solution relies on the observation that import may or may not
> > indicate a run-time dependency between modules.  If module A imports
> > module B, and A just uses a typedef from B, there is no requirement
> > that a server that implements all protocol accessible nodes in A also
> > implements all protocol accessible nodes in B.
> > 
> > In the rest of the description, "implement a module" means "implements
> > all protocol accessible nodes from a module".
> > 
> > Some constructs imply a run-time dependency.  If module A augments
> > module B, there is a run-time dependency, meaning that a server that
> > implements A must also implement B (modulo features).  A leafref also
> > imply a run-time dependency.  (must and when expressions do not)
> > 
> > So, the idea is this:
> > 
> >   If a server implements a module A that imports B, and A augments B
> >   or has a leafref to a node in B, the server MUST implement *some
> >   version* of module B that has the nodes A references.  This is
> >   regardless of A imports B by revision or not.
> > 
> >   If a module A imports B by revision, any typedefs or a groupings
> >   from B are picked from the specified revision of B, regardless of
> >   which revision (if any!) of B the server implements.
> > 
> >   If a module A imports B without revision, and A uses typedefs and/or
> >   groupings from B, the server MUST pick and advertise one revision of
> >   B that has the used typedefs and groupings.  This requires a way to
> >   advertise a module with "conformance=no-protocol-accessible-nodes",
> >   so that the server can advertise the module w/o implementing its
> >   protocol accessible nodes.
> > 
> > All this taken together means that by looking at the advertised
> > modules and their import revisions, a client knows the exact types
> > and groupings used everywhere.
> > 
> > A module writer can choose to import by revision (thus locking down
> > the typedefs and groupings used), or import without revision (allowing
> > future updated typedefs and groupings to be incorporated).
> > 
> > Repeating the example in P1 from
> > draft-bjorklund-yang-conformance-problem-01:
> > 
> >   module mod-a {
> >     ...
> >     revision 2001-01-01;        // initial version
> >     typedef foo {
> >       type enumeration {
> >         enum q;
> >       }
> >     }
> >     grouping bar {
> >       leaf x { type string; }
> >     }
> >   }
> > 
> >   module mod-a {
> >     ...
> >     revision 2002-01-01;        // new version
> >     typedef foo {
> >       type enumeration {
> >         enum q;
> >         enum w;                 // enum added
> >       }
> >     }
> >     grouping bar {
> >       leaf x { type string; }
> >       leaf y { type string; }   // grouping extended
> >     }
> >   }
> > 
> >   module mod-b {
> >     ...
> >     revision 2001-01-01;
> >     import mod-a {
> >       prefix a;
> >       revision 2001-01-01;      // uses initial vsn of mod-a
> >     }
> >     leaf b {
> >       type a:foo;
> >     }
> >     container b2 {
> >       uses a:bar;
> >     }
> >   }
> > 
> >   module mod-c {
> >     ...
> >     revision 2002-01-01;
> >     import mod-a {
> >       prefix a;
> >       revision 2002-01-01;      // uses new vsn of mod-a
> >     }
> >     leaf c {
> >       type a:foo;
> >     }
> >     container c2 {
> >       uses a:bar;
> >     }
> >   }
> > 
> >   module mod-d {
> >     ...
> >     revision 2002-01-01;
> >     import mod-a                // uses unknown vsn of mod-a
> >       prefix a;
> >     }
> >     leaf d {
> >       type a:foo;
> >     }
> >     container d2 {
> >       uses a:bar;
> >     }
> >   }
> > 
> > A server might advertise:
> > 
> >   mod-a 2002-01-01
> >   mod-b 2001-01-01 // uses mod-a 2001-01-01, since import by revision
> >   mod-c 2002-01-01 // uses mod-a 2002-01-01, since import by revision
> >   mod-d 2002-01-01 // uses mod-a 2002-01-01, since it is advertised
> > 
> > Another server might advertise:
> > 
> >   mod-a 2001-01-01 conformance=no-protocol-accessible-nodes
> >   mod-c 2002-01-01 // uses mod-a 2002-01-01, since import by revision
> >   mod-d 2002-01-01 // uses mod-a 2001-01-01, since it is advertised
> > 
> > Note that it is also ok to advertise:
> > 
> >   mod-b 2001-01-01 // uses mod-a 2001-01-01, since import by revision
> >   mod-c 2002-01-01 // uses mod-a 2002-01-01, since import by revision
> > 
> > I.e., if import-by revision is used everywhere, a server may not
> > advertise the imported module.  Assume this was not the case.  Then
> > a server might advertise the following, which is unclear:
> > 
> >   mod-a 2001-01-01 conformance=no-protocol-accessible-nodes
> >   mod-a 2002-01-01 conformance=no-protocol-accessible-nodes
> >   mod-b 2001-01-01 // uses mod-a 2001-01-01, since import by revision
> >   mod-c 2002-01-01 // uses mod-a 2002-01-01, since import by revision
> >   mod-d 2002-01-01 // which version of a is used???
> > 
> > 
> > This solution solves the conformance drift problem (P1 in
> > draft-bjorklund-yang-conformance-problem-01) and conformance ambiguity
> > (P2) by having clear rules what import with and without revision
> > means.
> > 
> > 
> > 
> > /martin
> > 
> > _______________________________________________
> > netmod mailing list
> > netmod@ietf.org
> > https://www.ietf.org/mailman/listinfo/netmod
> 
> -- 
> Juergen Schoenwaelder           Jacobs University Bremen gGmbH
> Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
> Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>
> 


From nobody Tue Mar 31 01:04:40 2015
Return-Path: <mbj@tail-f.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 1E1221ACEC0 for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 01:04:38 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.91
X-Spam-Level: 
X-Spam-Status: No, score=-1.91 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, T_RP_MATCHES_RCVD=-0.01] 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 i454e3oUtBYx for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 01:04:37 -0700 (PDT)
Received: from mail.tail-f.com (mail.tail-f.com [83.241.162.140]) by ietfa.amsl.com (Postfix) with ESMTP id EB5B31A90E1 for <netmod@ietf.org>; Tue, 31 Mar 2015 01:04:36 -0700 (PDT)
Received: from localhost (x15.tail-f.com [192.168.1.60]) by mail.tail-f.com (Postfix) with ESMTPSA id 3CB991280AD0; Tue, 31 Mar 2015 10:04:36 +0200 (CEST)
Date: Tue, 31 Mar 2015 10:04:36 +0200 (CEST)
Message-Id: <20150331.100436.116540299614168962.mbj@tail-f.com>
To: j.schoenwaelder@jacobs-university.de
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <20150331072754.GB70057@elstar.local>
References: <20150330222057.GD68892@elstar.local> <CABCOCHQpWzrmOBKL-kLwE_6rYDfrngGRZTaGcnTBdkdNF6q36w@mail.gmail.com> <20150331072754.GB70057@elstar.local>
X-Mailer: Mew version 6.5 on Emacs 23.4 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/n880r3k1e_mAMpf7b4tjTeEhUeI>
Cc: netmod@ietf.org
Subject: Re: [netmod] Y45 again
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: <http://www.ietf.org/mail-archive/web/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: Tue, 31 Mar 2015 08:04:38 -0000

Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote:
> On Mon, Mar 30, 2015 at 05:47:25PM -0700, Andy Bierman wrote:
> > Hi,
> > 
> > This is getting way too complicated for real deployment.
> > All the solutions seem way more complicated than just not
> > changing the intended value set of a released typedef or grouping.
> 
> [...]
> 
> > This is the least painful solution that works for everything.
> 
> I tend to agree.
> 
> The only variation to consider is to be less strict for enums and
> bits, that is allow additions since enums and bits are often used for
> (controlled) extensions. In other words, to learn the actual value set
> supported by an implementation, one has to ask the implementation
> (similar to identities). (This is what SMIv2 allowed, you can add
> named numbers to BITS and enumerated INTEGER types, but no other
> changes to types are allowed.)

Why are enums and bits special in this regard?  Why are "controlled
extensions" easier to handle than an expanded string pattern?

If we can get this to work for enums and bits, the same mechanism
should imo work for the other types as well.  Either the exact type is
important or the client or it is not.


/martin


From nobody Tue Mar 31 01:29:13 2015
Return-Path: <j.schoenwaelder@jacobs-university.de>
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 42E1C1B2B38 for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 01:29:12 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.86
X-Spam-Level: 
X-Spam-Status: No, score=-3.86 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] 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 GWRc5clrE_DA for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 01:29:10 -0700 (PDT)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5D1141B2B36 for <netmod@ietf.org>; Tue, 31 Mar 2015 01:29:10 -0700 (PDT)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id 2D8EE1040; Tue, 31 Mar 2015 10:29:09 +0200 (CEST)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.220]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id vi4mPRamG_ot; Tue, 31 Mar 2015 10:29:01 +0200 (CEST)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS; Tue, 31 Mar 2015 10:29:08 +0200 (CEST)
Received: from localhost (demetrius2.jacobs-university.de [212.201.44.47]) by hermes.jacobs-university.de (Postfix) with ESMTP id 223A82002B; Tue, 31 Mar 2015 10:29:08 +0200 (CEST)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius2.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id dTot4CzWJ1hi; Tue, 31 Mar 2015 10:29:07 +0200 (CEST)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id EF32420013; Tue, 31 Mar 2015 10:29:06 +0200 (CEST)
Received: by elstar.local (Postfix, from userid 501) id 66659329AFEF; Tue, 31 Mar 2015 10:29:05 +0200 (CEST)
Date: Tue, 31 Mar 2015 10:29:04 +0200
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Martin Bjorklund <mbj@tail-f.com>
Message-ID: <20150331082904.GA70321@elstar.local>
Mail-Followup-To: Martin Bjorklund <mbj@tail-f.com>, andy@yumaworks.com, lhotka@nic.cz, netmod@ietf.org
References: <20150330222057.GD68892@elstar.local> <CABCOCHQpWzrmOBKL-kLwE_6rYDfrngGRZTaGcnTBdkdNF6q36w@mail.gmail.com> <20150331072754.GB70057@elstar.local> <20150331.100436.116540299614168962.mbj@tail-f.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20150331.100436.116540299614168962.mbj@tail-f.com>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/kryNfd-XU2Dtr1-1jnLZW96rB-o>
Cc: netmod@ietf.org
Subject: Re: [netmod] Y45 again
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
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: <http://www.ietf.org/mail-archive/web/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: Tue, 31 Mar 2015 08:29:12 -0000

On Tue, Mar 31, 2015 at 10:04:36AM +0200, Martin Bjorklund wrote:
> Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote:
> > On Mon, Mar 30, 2015 at 05:47:25PM -0700, Andy Bierman wrote:
> > > Hi,
> > > 
> > > This is getting way too complicated for real deployment.
> > > All the solutions seem way more complicated than just not
> > > changing the intended value set of a released typedef or grouping.
> > 
> > [...]
> > 
> > > This is the least painful solution that works for everything.
> > 
> > I tend to agree.
> > 
> > The only variation to consider is to be less strict for enums and
> > bits, that is allow additions since enums and bits are often used for
> > (controlled) extensions. In other words, to learn the actual value set
> > supported by an implementation, one has to ask the implementation
> > (similar to identities). (This is what SMIv2 allowed, you can add
> > named numbers to BITS and enumerated INTEGER types, but no other
> > changes to types are allowed.)
> 
> Why are enums and bits special in this regard?  Why are "controlled
> extensions" easier to handle than an expanded string pattern?
> 
> If we can get this to work for enums and bits, the same mechanism
> should imo work for the other types as well.  Either the exact type is
> important or the client or it is not.

Yes, we make different promises:

- If my tool uses yang:date-and-time (e.g., it knows how parse it, how
  to store it efficiently internally, how to produce the canonical
  representation), I can rely on it to not change. This is reasonable
  and goodness.

- If my data model uses an identity, we make a different promise,
  namely that the set of identities is open ended and I will need
  runtime information to find out which set of identities can actually
  be used for a certain leaf in the data model. This is reasonable and
  goodness.

I argue that bits and enumerations are often used to model something
that is by design extensible in protocols. If you agree with that,
allowing this extensibility in data models is reasonable and goodness.

What are the alternatives? Translate all enums into identities for the
sake of being extensible? What do we do with bits then?

I understand the fundamental argument that either all types should be
strict or flexible. But I do not think either extreme leads to
something that is practically useful.

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Tue Mar 31 01:40:58 2015
Return-Path: <balazs.lengyel@ericsson.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 D5FAF1B2B4F for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 01:40:57 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.201
X-Spam-Level: 
X-Spam-Status: No, score=-4.201 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001] 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 dyM3I6o9AUgs for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 01:40:56 -0700 (PDT)
Received: from sessmg22.ericsson.net (sessmg22.ericsson.net [193.180.251.58]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id CB6B11B2B4B for <netmod@ietf.org>; Tue, 31 Mar 2015 01:40:50 -0700 (PDT)
X-AuditID: c1b4fb3a-f79146d0000070a3-dc-551a5d903ad9
Received: from ESESSHC011.ericsson.se (Unknown_Domain [153.88.253.124]) by sessmg22.ericsson.net (Symantec Mail Security) with SMTP id 15.5D.28835.09D5A155; Tue, 31 Mar 2015 10:40:49 +0200 (CEST)
Received: from [159.107.198.14] (153.88.183.153) by smtp.internal.ericsson.com (153.88.183.53) with Microsoft SMTP Server id 14.3.210.2; Tue, 31 Mar 2015 10:40:48 +0200
Message-ID: <551A5D90.8050007@ericsson.com>
Date: Tue, 31 Mar 2015 10:40:48 +0200
From: Balazs Lengyel <balazs.lengyel@ericsson.com>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0
MIME-Version: 1.0
To: <netmod@ietf.org>
References: <20150107143343.GB13482@elstar.local>
In-Reply-To: <20150107143343.GB13482@elstar.local>
Content-Type: text/plain; charset="windows-1252"; format=flowed
Content-Transfer-Encoding: 7bit
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFuplluLIzCtJLcpLzFFi42KZGfG3RndirFSoweYGXov5FxtZHRg9liz5 yRTAGMVlk5Kak1mWWqRvl8CVsad5C2PBZM6K55NPszUwTmLvYuTkkBAwkWi6togNwhaTuHBv PZDNxSEkcJRRonfFSxYIZw2jxLkHPawgVbwC2hJLNj9lBLFZBFQlJu1bC9bNJmAkMbX/PAuI LSoQJdHzp5sNol5Q4uTMJ2BxEQFRib0fzoPNERZIltjYcx/MFhIwlHg7swtoJgcHJ9CcI59d QExmAXuJB1vLQCqYBeQltr+dwwxRrSHx8MJf1gmMArOQLJiF0DELSccCRuZVjKLFqcXFuelG RnqpRZnJxcX5eXp5qSWbGIHhd3DLb6sdjAefOx5iFOBgVOLhXfBfMlSINbGsuDL3EKM0B4uS OK+d8aEQIYH0xJLU7NTUgtSi+KLSnNTiQ4xMHJxSDYxWTewiYk4u2TyKT/WfaUtrd3wSMq3m TvF6Ir6rI2dx9pnOV3kLp/xeyLeBs6w9N4Xp/VK7V305MQbXfKQmfjy7ds25hTzzXGbeiWd3 KRM4/LuVcZeH9xMe4eK3Rbmmjxw/syf29X9boPL6mY1Lyylng00mV+7aGP198P+GvE/R4z9a ihrHc5RYijMSDbWYi4oTAafJuKggAgAA
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/hpoa7nYxzVAwaASaPne1e-CjovE>
Subject: [netmod] Y16: module advertisement optimization - What happens with YANG 1.0 modules and clients?
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: <http://www.ietf.org/mail-archive/web/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: Tue, 31 Mar 2015 08:40:58 -0000

Hello Martin,
In the virtual interim minutes about Y16 I read:

   - AB: YANG 1.0 modules will continue to be advertised as before.

However I don't see this mentioned in
https://tools.ietf.org/html/draft-ietf-netmod-rfc6020bis-04#section-5.6.4

Is it just not yet added or is the above statement  reversed, or what 
will happen with YANG 1.0 modules?

Just a wild idea: would it be possible to update existing IETF YAMs 
(modules) to yang 1.1 using an errata? It only needs to change the YANG 
revision and the revision date. The only real effect would be on 
hello-advertising.
regards Balazs

On 2015-01-07 15:33, Juergen Schoenwaelder wrote:
> The 2014-12-03 virtual interim meeting proposal is to adopt Y16-03.
> Please speak up by Wednesday 2015-01-14 if you disagree with this
> proposal.
>
> For more details, see the issues list and the virtual interim meeting
> minutes available here:
>
>       http://svn.tools.ietf.org/svn/wg/netmod/yang-1.1/
>
> /js
>

-- 
Balazs Lengyel                       Ericsson Hungary Ltd.
Senior Specialist
ECN: 831 7320
Mobile: +36-70-330-7909              email: Balazs.Lengyel@ericsson.com


From nobody Tue Mar 31 02:15:14 2015
Return-Path: <balazs.lengyel@ericsson.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 6632D1A1ABB for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 02:15:12 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.201
X-Spam-Level: 
X-Spam-Status: No, score=-4.201 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001] 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 8c9QOEo_BhcS for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 02:15:08 -0700 (PDT)
Received: from sessmg23.ericsson.net (sessmg23.ericsson.net [193.180.251.45]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 265F91A1AAA for <netmod@ietf.org>; Tue, 31 Mar 2015 02:15:07 -0700 (PDT)
X-AuditID: c1b4fb2d-f79a46d0000006b4-8d-551a659a8771
Received: from ESESSHC011.ericsson.se (Unknown_Domain [153.88.253.124]) by sessmg23.ericsson.net (Symantec Mail Security) with SMTP id 07.E2.01716.A956A155; Tue, 31 Mar 2015 11:15:06 +0200 (CEST)
Received: from [159.107.198.14] (153.88.183.153) by smtp.internal.ericsson.com (153.88.183.53) with Microsoft SMTP Server id 14.3.210.2; Tue, 31 Mar 2015 11:15:05 +0200
Message-ID: <551A6599.8020404@ericsson.com>
Date: Tue, 31 Mar 2015 11:15:05 +0200
From: Balazs Lengyel <balazs.lengyel@ericsson.com>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0
MIME-Version: 1.0
To: "netmod@ietf.org" <netmod@ietf.org>
Content-Type: text/plain; charset="utf-8"; format=flowed
Content-Transfer-Encoding: 7bit
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrGJMWRmVeSWpSXmKPExsUyM+Jvje6sVKlQgz3PZC3mX2xkdWD0WLLk J1MAYxSXTUpqTmZZapG+XQJXxoU1W5gK7jBVnJn0k62B8Q9jFyMnh4SAicSG19fZIWwxiQv3 1rN1MXJxCAkcZZRY+WYGWJGQwBpGiY1nhEFsXgFtidZ1M1hBbBYBVYk/+2eANbMJGElM7T/P AmKLCkRJ9PzpZoOoF5Q4OfMJWFxEQF1i5k6QBRwcwgJqEuuOlYCEmQUsJGbOP88IYctLbH87 hxlirYbEwwt/WScw8s1CMmkWkpZZSFoWMDKvYhQtTi0uzk03MtZLLcpMLi7Oz9PLSy3ZxAgM qINbfuvuYFz92vEQowAHoxIP74L/kqFCrIllxZW5hxilOViUxHntjA+FCAmkJ5akZqemFqQW xReV5qQWH2Jk4uCUamA00vf8J6ol6LK3T3Dttm6+d0/6WD5tli2s/Vq1faK2g/E5fRFO87kJ 37nCn7/ZY/v8ZI7Zky5no49lzj88l//vDFD882zrJcdTx3wWO4Z68bMcy1+hdjEth8WWRdql MMLrlsraE1LnntpO6V/5hYM7w0D8021untXdOgc2OYU/8WJ7qlY195MSS3FGoqEWc1FxIgA/ WCe1CQIAAA==
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/Co5pmtgYOtj03mr9XoX4qdr7Dbo>
Subject: [netmod] new functions in path or when
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: <http://www.ietf.org/mail-archive/web/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: Tue, 31 Mar 2015 09:15:12 -0000

Hello,
Is it the intention to allow the newly defined XPath functions e.g. 
deref() to be used in when or path, or are they only for the must statement?
regards Balazs

-- 
Balazs Lengyel                       Ericsson Hungary Ltd.
Senior Specialist
ECN: 831 7320
Mobile: +36-70-330-7909              email: Balazs.Lengyel@ericsson.com


From nobody Tue Mar 31 03:41:29 2015
Return-Path: <mbj@tail-f.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 799D51A8BC2 for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 03:41:28 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.91
X-Spam-Level: 
X-Spam-Status: No, score=-1.91 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, T_RP_MATCHES_RCVD=-0.01] 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 qkQjwX5Z9Q3i for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 03:41:27 -0700 (PDT)
Received: from mail.tail-f.com (mail.tail-f.com [83.241.162.140]) by ietfa.amsl.com (Postfix) with ESMTP id 08F2F1A8AF5 for <netmod@ietf.org>; Tue, 31 Mar 2015 03:41:27 -0700 (PDT)
Received: from localhost (x15.tail-f.com [192.168.1.60]) by mail.tail-f.com (Postfix) with ESMTPSA id D0FB51280457; Tue, 31 Mar 2015 12:41:25 +0200 (CEST)
Date: Tue, 31 Mar 2015 12:41:25 +0200 (CEST)
Message-Id: <20150331.124125.1207659562949097491.mbj@tail-f.com>
To: balazs.lengyel@ericsson.com
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <551A5D90.8050007@ericsson.com>
References: <20150107143343.GB13482@elstar.local> <551A5D90.8050007@ericsson.com>
X-Mailer: Mew version 6.5 on Emacs 23.4 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/ZpHAmax4ukkmtuTUVfuRftxR0pk>
Cc: netmod@ietf.org
Subject: Re: [netmod] Y16: module advertisement optimization - What happens with YANG 1.0 modules and clients?
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: <http://www.ietf.org/mail-archive/web/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: Tue, 31 Mar 2015 10:41:28 -0000

Balazs Lengyel <balazs.lengyel@ericsson.com> wrote:
> Hello Martin,
> In the virtual interim minutes about Y16 I read:
> 
>   - AB: YANG 1.0 modules will continue to be advertised as before.
> 
> However I don't see this mentioned in
> https://tools.ietf.org/html/draft-ietf-netmod-rfc6020bis-04#section-5.6.4
> 
> Is it just not yet added or is the above statement reversed, or what
> will happen with YANG 1.0 modules?

YANG 1.0 modules follow RFC 6020 procedures.

I guess we could say something like this: Note that a server that
implements YANG 1.0 modules MUST advertise these modules as specified
in section 5.6.4 in RFC 6020.

> Just a wild idea: would it be possible to update existing IETF YAMs
> (modules) to yang 1.1 using an errata? It only needs to change the
> YANG revision and the revision date. The only real effect would be on
> hello-advertising.

We discussed this briefly in Dallas.  I do not know the answer, but I
think it would be confusing to most people searching for a specific
version of a YANG modules.


/martin


From nobody Tue Mar 31 03:43:15 2015
Return-Path: <j.schoenwaelder@jacobs-university.de>
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 193811A8AF4 for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 03:43:14 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.86
X-Spam-Level: 
X-Spam-Status: No, score=-3.86 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] 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 80Qh7rfhyah2 for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 03:43:12 -0700 (PDT)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0C2CF1A8AEB for <netmod@ietf.org>; Tue, 31 Mar 2015 03:43:12 -0700 (PDT)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id D35C11020; Tue, 31 Mar 2015 12:43:10 +0200 (CEST)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.220]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id 2vbmV6GB6Z1C; Tue, 31 Mar 2015 12:43:02 +0200 (CEST)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS; Tue, 31 Mar 2015 12:43:10 +0200 (CEST)
Received: from localhost (demetrius1.jacobs-university.de [212.201.44.46]) by hermes.jacobs-university.de (Postfix) with ESMTP id 284FD2002B; Tue, 31 Mar 2015 12:43:10 +0200 (CEST)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius1.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id gEmG-fzzA61c; Tue, 31 Mar 2015 12:43:09 +0200 (CEST)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id 116F720013; Tue, 31 Mar 2015 12:43:08 +0200 (CEST)
Received: by elstar.local (Postfix, from userid 501) id EFDAB329B3FE; Tue, 31 Mar 2015 12:43:07 +0200 (CEST)
Date: Tue, 31 Mar 2015 12:43:07 +0200
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Martin Bjorklund <mbj@tail-f.com>
Message-ID: <20150331104307.GC70747@elstar.local>
Mail-Followup-To: Martin Bjorklund <mbj@tail-f.com>, balazs.lengyel@ericsson.com, netmod@ietf.org
References: <20150107143343.GB13482@elstar.local> <551A5D90.8050007@ericsson.com> <20150331.124125.1207659562949097491.mbj@tail-f.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20150331.124125.1207659562949097491.mbj@tail-f.com>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/B4tdeuO9Y-2JsxbwUrJJ9Y1_EOs>
Cc: netmod@ietf.org
Subject: Re: [netmod] Y16: module advertisement optimization - What happens with YANG 1.0 modules and clients?
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
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: <http://www.ietf.org/mail-archive/web/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: Tue, 31 Mar 2015 10:43:14 -0000

On Tue, Mar 31, 2015 at 12:41:25PM +0200, Martin Bjorklund wrote:
> 
> > Just a wild idea: would it be possible to update existing IETF YAMs
> > (modules) to yang 1.1 using an errata? It only needs to change the
> > YANG revision and the revision date. The only real effect would be on
> > hello-advertising.
> 
> We discussed this briefly in Dallas.  I do not know the answer, but I
> think it would be confusing to most people searching for a specific
> version of a YANG modules.
>

I think this would be a misuse of the errata system.

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Tue Mar 31 03:54:28 2015
Return-Path: <lhotka@nic.cz>
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 2084C1A8AD7 for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 03:54:28 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.361
X-Spam-Level: 
X-Spam-Status: No, score=-0.361 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HELO_EQ_CZ=0.445, HOST_EQ_CZ=0.904, MIME_8BIT_HEADER=0.3, T_RP_MATCHES_RCVD=-0.01] autolearn=no
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 WA1iC4-Nw6U2 for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 03:54:26 -0700 (PDT)
Received: from mail.nic.cz (mail.nic.cz [IPv6:2001:1488:800:400::400]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5A2FC1A90A7 for <netmod@ietf.org>; Tue, 31 Mar 2015 03:54:26 -0700 (PDT)
Received: from [IPv6:2001:718:1a02:1:1005:4889:a58c:2f39] (unknown [IPv6:2001:718:1a02:1:1005:4889:a58c:2f39]) by mail.nic.cz (Postfix) with ESMTPSA id D61DC13F86E; Tue, 31 Mar 2015 12:54:24 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=nic.cz; s=default; t=1427799264; bh=PnrbSyirGGmrBRqaB1mDPM8eMQXlvvqaU59sbJk+W/s=; h=Content-Type:Mime-Version:Subject:From:In-Reply-To:Date:Cc: Content-Transfer-Encoding:Message-Id:References:To; b=O5roQ5Hsbr5h98oW+wTX+F5jbfM9UGqRjtgeIsHdEThC55W3NCr1FslPIgw0XBNlI 0db/DdkvNgU9J1o9CWv84WNoWEbxbr1pMQD9urn2wIPD6qF2wqzhRsiyu6vLciDJ5k Jq3+Fxmt3SNHvnqa0BF+mYTweHlp77VA45g8lcGY=
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2070.6\))
From: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <20150331104307.GC70747@elstar.local>
Date: Tue, 31 Mar 2015 12:54:24 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <AA657D06-2D3E-4E4A-88D3-C7A1250CACA1@nic.cz>
References: <20150107143343.GB13482@elstar.local> <551A5D90.8050007@ericsson.com> <20150331.124125.1207659562949097491.mbj@tail-f.com> <20150331104307.GC70747@elstar.local>
To: =?utf-8?Q?J=C3=BCrgen_Sch=C3=B6nw=C3=A4lder?= <j.schoenwaelder@jacobs-university.de>
X-Mailer: Apple Mail (2.2070.6)
X-Virus-Scanned: clamav-milter 0.98.6 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/mKI-FxP3ZPtBpw8yXrIx-PmF-2E>
Cc: netmod@ietf.org
Subject: Re: [netmod] Y16: module advertisement optimization - What happens with YANG 1.0 modules and clients?
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: <http://www.ietf.org/mail-archive/web/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: Tue, 31 Mar 2015 10:54:28 -0000

> On 31 Mar 2015, at 12:43, Juergen Schoenwaelder =
<j.schoenwaelder@jacobs-university.de> wrote:
>=20
> On Tue, Mar 31, 2015 at 12:41:25PM +0200, Martin Bjorklund wrote:
>>=20
>>> Just a wild idea: would it be possible to update existing IETF YAMs
>>> (modules) to yang 1.1 using an errata? It only needs to change the
>>> YANG revision and the revision date. The only real effect would be =
on
>>> hello-advertising.
>>=20
>> We discussed this briefly in Dallas.  I do not know the answer, but I
>> think it would be confusing to most people searching for a specific
>> version of a YANG modules.
>>=20
>=20
> I think this would be a misuse of the errata system.

+1

Lada

>=20
> /js
>=20
> --=20
> Juergen Schoenwaelder           Jacobs University Bremen gGmbH
> Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
> Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>
>=20
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod

--
Ladislav Lhotka, CZ.NIC Labs
PGP Key ID: E74E8C0C





From nobody Tue Mar 31 03:54:54 2015
Return-Path: <mbj@tail-f.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 D98AE1A909C for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 03:54:52 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.91
X-Spam-Level: 
X-Spam-Status: No, score=-1.91 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, T_RP_MATCHES_RCVD=-0.01] 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 MRQj-dY_DJvA for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 03:54:51 -0700 (PDT)
Received: from mail.tail-f.com (mail.tail-f.com [83.241.162.140]) by ietfa.amsl.com (Postfix) with ESMTP id BF4811A8AF9 for <netmod@ietf.org>; Tue, 31 Mar 2015 03:54:51 -0700 (PDT)
Received: from localhost (x15.tail-f.com [192.168.1.60]) by mail.tail-f.com (Postfix) with ESMTPSA id DC19F1280457; Tue, 31 Mar 2015 12:54:50 +0200 (CEST)
Date: Tue, 31 Mar 2015 12:54:50 +0200 (CEST)
Message-Id: <20150331.125450.1857945907512431262.mbj@tail-f.com>
To: balazs.lengyel@ericsson.com
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <551A6599.8020404@ericsson.com>
References: <551A6599.8020404@ericsson.com>
X-Mailer: Mew version 6.5 on Emacs 23.4 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/1AnS3dxEQiRmMraQTCwGzpz-Vhk>
Cc: netmod@ietf.org
Subject: Re: [netmod] new functions in path or when
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: <http://www.ietf.org/mail-archive/web/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: Tue, 31 Mar 2015 10:54:53 -0000

Balazs Lengyel <balazs.lengyel@ericsson.com> wrote:
> Hello,
> Is it the intention to allow the newly defined XPath functions
> e.g. deref() to be used in when or path, or are they only for the must
> statement?

Hmm, do you think this is unclear in the current spec?

Specifically, what makes you think they would be allowed in "path" and
why would they not be allowed in "when"?


/martin


From nobody Tue Mar 31 04:23:05 2015
Return-Path: <mbj@tail-f.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 AFADE1A8F44 for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 04:23:03 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.91
X-Spam-Level: 
X-Spam-Status: No, score=-1.91 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, T_RP_MATCHES_RCVD=-0.01] 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 Q5cRmItZjlDu for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 04:23:02 -0700 (PDT)
Received: from mail.tail-f.com (mail.tail-f.com [83.241.162.140]) by ietfa.amsl.com (Postfix) with ESMTP id 893001A8BC2 for <netmod@ietf.org>; Tue, 31 Mar 2015 04:23:01 -0700 (PDT)
Received: from localhost (x15.tail-f.com [192.168.1.60]) by mail.tail-f.com (Postfix) with ESMTPSA id C129B1280008; Tue, 31 Mar 2015 13:23:00 +0200 (CEST)
Date: Tue, 31 Mar 2015 13:23:00 +0200 (CEST)
Message-Id: <20150331.132300.1653483257526034966.mbj@tail-f.com>
To: j.schoenwaelder@jacobs-university.de
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <20150331082904.GA70321@elstar.local>
References: <20150331072754.GB70057@elstar.local> <20150331.100436.116540299614168962.mbj@tail-f.com> <20150331082904.GA70321@elstar.local>
X-Mailer: Mew version 6.5 on Emacs 23.4 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/7DJ8YY2XtLAAEMBw4MsIJANmuEY>
Cc: netmod@ietf.org
Subject: Re: [netmod] Y45 again
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: <http://www.ietf.org/mail-archive/web/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: Tue, 31 Mar 2015 11:23:03 -0000

Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote:
> On Tue, Mar 31, 2015 at 10:04:36AM +0200, Martin Bjorklund wrote:
> > Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote:
> > > On Mon, Mar 30, 2015 at 05:47:25PM -0700, Andy Bierman wrote:
> > > > Hi,
> > > > 
> > > > This is getting way too complicated for real deployment.
> > > > All the solutions seem way more complicated than just not
> > > > changing the intended value set of a released typedef or grouping.
> > > 
> > > [...]
> > > 
> > > > This is the least painful solution that works for everything.
> > > 
> > > I tend to agree.
> > > 
> > > The only variation to consider is to be less strict for enums and
> > > bits, that is allow additions since enums and bits are often used for
> > > (controlled) extensions. In other words, to learn the actual value set
> > > supported by an implementation, one has to ask the implementation
> > > (similar to identities). (This is what SMIv2 allowed, you can add
> > > named numbers to BITS and enumerated INTEGER types, but no other
> > > changes to types are allowed.)
> > 
> > Why are enums and bits special in this regard?  Why are "controlled
> > extensions" easier to handle than an expanded string pattern?
> > 
> > If we can get this to work for enums and bits, the same mechanism
> > should imo work for the other types as well.  Either the exact type is
> > important or the client or it is not.
> 
> Yes, we make different promises:
> 
> - If my tool uses yang:date-and-time (e.g., it knows how parse it, how
>   to store it efficiently internally, how to produce the canonical
>   representation), I can rely on it to not change. This is reasonable
>   and goodness.

Agreed.  One would think that this typedef is not changed easily.

But OTOH, if we have this:

  typedef timeout {
    type uint32 {
      range "0 | 10..180";
    }
  }

and then in the next version we realize that this was too short so we
do:

  typedef timeout {
    type uint32 {
      range "0 | 10..3600";
    }
  }

this is probably easier to deal with in the code than the case where
additional enums are defined.  For example, how do you translate
between JSON and CoMI if you get an enum you don't know the definition
for?

> - If my data model uses an identity, we make a different promise,
>   namely that the set of identities is open ended and I will need
>   runtime information to find out which set of identities can actually
>   be used for a certain leaf in the data model. This is reasonable and
>   goodness.
> 
> I argue that bits and enumerations are often used to model something
> that is by design extensible in protocols. If you agree with that,
> allowing this extensibility in data models is reasonable and goodness.

Right.  My new proposal allows this of course.

> What are the alternatives? Translate all enums into identities for the
> sake of being extensible? What do we do with bits then?
> 
> I understand the fundamental argument that either all types should be
> strict or flexible. But I do not think either extreme leads to
> something that is practically useful.

I agree that all strict has its problems, but I do not understand how
making enums/bit flexible is easier to deal with than making all types
flexible.


/martin


From nobody Tue Mar 31 04:55:05 2015
Return-Path: <j.schoenwaelder@jacobs-university.de>
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 3065C1A90F7 for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 04:55:03 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.86
X-Spam-Level: 
X-Spam-Status: No, score=-3.86 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] 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 1Qws_ni1L7Qz for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 04:55:01 -0700 (PDT)
Received: from atlas3.jacobs-university.de (atlas3.jacobs-university.de [212.201.44.18]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id F2F551A905C for <netmod@ietf.org>; Tue, 31 Mar 2015 04:55:00 -0700 (PDT)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id BE455115A; Tue, 31 Mar 2015 13:54:59 +0200 (CEST)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from atlas3.jacobs-university.de ([10.70.0.220]) by localhost (demetrius5.jacobs-university.de [10.70.0.222]) (amavisd-new, port 10030) with ESMTP id 3EGcdeB4I7xS; Tue, 31 Mar 2015 13:54:50 +0200 (CEST)
Received: from hermes.jacobs-university.de (hermes.jacobs-university.de [212.201.44.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "hermes.jacobs-university.de", Issuer "Jacobs University CA - G01" (verified OK)) by atlas3.jacobs-university.de (Postfix) with ESMTPS; Tue, 31 Mar 2015 13:54:58 +0200 (CEST)
Received: from localhost (demetrius1.jacobs-university.de [212.201.44.46]) by hermes.jacobs-university.de (Postfix) with ESMTP id 5D46320035; Tue, 31 Mar 2015 13:54:58 +0200 (CEST)
X-Virus-Scanned: amavisd-new at jacobs-university.de
Received: from hermes.jacobs-university.de ([212.201.44.23]) by localhost (demetrius1.jacobs-university.de [212.201.44.32]) (amavisd-new, port 10024) with ESMTP id T6mqVtn9iy8p; Tue, 31 Mar 2015 13:54:57 +0200 (CEST)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id 5455D2002C; Tue, 31 Mar 2015 13:54:56 +0200 (CEST)
Received: by elstar.local (Postfix, from userid 501) id 9C615329B7AA; Tue, 31 Mar 2015 13:54:55 +0200 (CEST)
Date: Tue, 31 Mar 2015 13:54:55 +0200
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Martin Bjorklund <mbj@tail-f.com>
Message-ID: <20150331115454.GA71187@elstar.local>
Mail-Followup-To: Martin Bjorklund <mbj@tail-f.com>, andy@yumaworks.com, lhotka@nic.cz, netmod@ietf.org
References: <20150331072754.GB70057@elstar.local> <20150331.100436.116540299614168962.mbj@tail-f.com> <20150331082904.GA70321@elstar.local> <20150331.132300.1653483257526034966.mbj@tail-f.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20150331.132300.1653483257526034966.mbj@tail-f.com>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/UW2Zu2nFTvuadHUX2zKvlqMa5gY>
Cc: netmod@ietf.org
Subject: Re: [netmod] Y45 again
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
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: <http://www.ietf.org/mail-archive/web/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: Tue, 31 Mar 2015 11:55:03 -0000

On Tue, Mar 31, 2015 at 01:23:00PM +0200, Martin Bjorklund wrote:
> Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote:
> > On Tue, Mar 31, 2015 at 10:04:36AM +0200, Martin Bjorklund wrote:
> > > Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote:
> > > > On Mon, Mar 30, 2015 at 05:47:25PM -0700, Andy Bierman wrote:
> > > > > Hi,
> > > > > 
> > > > > This is getting way too complicated for real deployment.
> > > > > All the solutions seem way more complicated than just not
> > > > > changing the intended value set of a released typedef or grouping.
> > > > 
> > > > [...]
> > > > 
> > > > > This is the least painful solution that works for everything.
> > > > 
> > > > I tend to agree.
> > > > 
> > > > The only variation to consider is to be less strict for enums and
> > > > bits, that is allow additions since enums and bits are often used for
> > > > (controlled) extensions. In other words, to learn the actual value set
> > > > supported by an implementation, one has to ask the implementation
> > > > (similar to identities). (This is what SMIv2 allowed, you can add
> > > > named numbers to BITS and enumerated INTEGER types, but no other
> > > > changes to types are allowed.)
> > > 
> > > Why are enums and bits special in this regard?  Why are "controlled
> > > extensions" easier to handle than an expanded string pattern?
> > > 
> > > If we can get this to work for enums and bits, the same mechanism
> > > should imo work for the other types as well.  Either the exact type is
> > > important or the client or it is not.
> > 
> > Yes, we make different promises:
> > 
> > - If my tool uses yang:date-and-time (e.g., it knows how parse it, how
> >   to store it efficiently internally, how to produce the canonical
> >   representation), I can rely on it to not change. This is reasonable
> >   and goodness.
> 
> Agreed.  One would think that this typedef is not changed easily.
> 
> But OTOH, if we have this:
> 
>   typedef timeout {
>     type uint32 {
>       range "0 | 10..180";
>     }
>   }
> 
> and then in the next version we realize that this was too short so we
> do:
> 
>   typedef timeout {
>     type uint32 {
>       range "0 | 10..3600";
>     }
>   }
> 
> this is probably easier to deal with in the code than the case where
> additional enums are defined.  For example, how do you translate
> between JSON and CoMI if you get an enum you don't know the definition
> for?
> 
> > - If my data model uses an identity, we make a different promise,
> >   namely that the set of identities is open ended and I will need
> >   runtime information to find out which set of identities can actually
> >   be used for a certain leaf in the data model. This is reasonable and
> >   goodness.
> > 
> > I argue that bits and enumerations are often used to model something
> > that is by design extensible in protocols. If you agree with that,
> > allowing this extensibility in data models is reasonable and goodness.
> 
> Right.  My new proposal allows this of course.
> 
> > What are the alternatives? Translate all enums into identities for the
> > sake of being extensible? What do we do with bits then?
> > 
> > I understand the fundamental argument that either all types should be
> > strict or flexible. But I do not think either extreme leads to
> > something that is practically useful.
> 
> I agree that all strict has its problems, but I do not understand how
> making enums/bit flexible is easier to deal with than making all types
> flexible.

So you are saying typedef drift is not an issue anymore? Or are you
saying typedef drift is an issue for all types except identityref and
you just do not like enums and bits be treated differently?

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Tue Mar 31 05:17:05 2015
Return-Path: <janl@tail-f.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 7E8071A9152 for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 05:17:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.909
X-Spam-Level: 
X-Spam-Status: No, score=-1.909 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, T_RP_MATCHES_RCVD=-0.01] 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 Df2XTxa6YFKW for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 05:17:02 -0700 (PDT)
Received: from mail.tail-f.com (mail.tail-f.com [83.241.162.140]) by ietfa.amsl.com (Postfix) with ESMTP id 75AC51A9154 for <netmod@ietf.org>; Tue, 31 Mar 2015 05:17:02 -0700 (PDT)
Received: from [10.148.226.151] (unknown [10.148.226.151]) by mail.tail-f.com (Postfix) with ESMTPSA id 681D71280457; Tue, 31 Mar 2015 14:17:01 +0200 (CEST)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2070.6\))
Content-Type: multipart/signed; boundary="Apple-Mail=_8C1D2980-57B5-4657-8D4F-7483F0727FF6"; protocol="application/pgp-signature"; micalg=pgp-sha512
X-Pgp-Agent: GPGMail 2.5b6
From: Jan Lindblad <janl@tail-f.com>
In-Reply-To: <20150331.132300.1653483257526034966.mbj@tail-f.com>
Date: Tue, 31 Mar 2015 14:16:00 +0200
Message-Id: <D8A04691-5368-4053-AFCE-CFBA9E8A26F2@tail-f.com>
References: <20150331072754.GB70057@elstar.local> <20150331.100436.116540299614168962.mbj@tail-f.com> <20150331082904.GA70321@elstar.local> <20150331.132300.1653483257526034966.mbj@tail-f.com>
To: Martin Bjorklund <mbj@tail-f.com>
X-Mailer: Apple Mail (2.2070.6)
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/8kgiXIZTmK8poL3Soi1FFzIDOJs>
Cc: netmod@ietf.org
Subject: Re: [netmod] Y45 again
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: <http://www.ietf.org/mail-archive/web/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: Tue, 31 Mar 2015 12:17:04 -0000

--Apple-Mail=_8C1D2980-57B5-4657-8D4F-7483F0727FF6
Content-Type: multipart/alternative;
	boundary="Apple-Mail=_651F13B5-F29A-4E10-A7A5-53279690F9B5"


--Apple-Mail=_651F13B5-F29A-4E10-A7A5-53279690F9B5
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8

> On 31 mar 2015, at 13:23, Martin Bjorklund <mbj@tail-f.com> wrote:
...
> Agreed.  One would think that this typedef is not changed easily.
>=20
> But OTOH, if we have this:
>=20
>  typedef timeout {
>    type uint32 {
>      range "0 | 10..180";
>    }
>  }
>=20
> and then in the next version we realize that this was too short so we
> do:
>=20
>  typedef timeout {
>    type uint32 {
>      range "0 | 10..3600";
>    }
>  }
>=20
> this is probably easier to deal with in the code than the case where
> additional enums are defined.

Another mechanism that=E2=80=99s been used quite often for =
=E2=80=9Cimplementation constants=E2=80=9D, like max values that vary =
between implementations or over time, is to have a section of the model =
containing such constants as config true values, but with access control =
rules effectively preventing any operator from ever changing them. Like =
this:

module some-application {
  container somethings {
    must =E2=80=9Ccount(something) < =
/somethings/constants/max-somethings=E2=80=9D {
      error-message =E2=80=9CToo much of something=E2=80=9D;
    }
    list something {
      key name;
      leaf name { type string; }
      leaf timeout {
        type uint32;
        must =E2=80=9Ccurrent() < /somethings/constants/max-timeout=E2=80=9D=
 {
          error-message =E2=80=9CTimeout too long=E2=80=9D;
        }
      }
    }
    container constants {
      // Access control rules prevent operators from changing these
      leaf max-somethings {
        type uint32;
        mandatory true;
      }
      leaf max-timeout {
        type uint32;
        mandatory true;
      }
    }
  }
}

With this approach, IETF could standardize the model, yet allow =
implementations to pick reasonable constants for a variety of high- and =
low-end products, and change them over time.

/jan


--Apple-Mail=_651F13B5-F29A-4E10-A7A5-53279690F9B5
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" =
class=3D""><div><blockquote type=3D"cite" class=3D""><div class=3D"">On =
31 mar 2015, at 13:23, Martin Bjorklund &lt;<a =
href=3D"mailto:mbj@tail-f.com" class=3D"">mbj@tail-f.com</a>&gt; =
wrote:</div></blockquote>...<br class=3D""><blockquote type=3D"cite" =
class=3D"">Agreed. &nbsp;One would think that this typedef is not =
changed easily.<br class=3D""><div class=3D""><br class=3D"">But OTOH, =
if we have this:<br class=3D""><br class=3D""> &nbsp;typedef timeout =
{<br class=3D""> &nbsp;&nbsp;&nbsp;type uint32 {<br class=3D""> =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;range "0 | 10..180";<br class=3D""> =
&nbsp;&nbsp;&nbsp;}<br class=3D""> &nbsp;}<br class=3D""><br =
class=3D"">and then in the next version we realize that this was too =
short so we<br class=3D"">do:<br class=3D""><br class=3D""> =
&nbsp;typedef timeout {<br class=3D""> &nbsp;&nbsp;&nbsp;type uint32 =
{<br class=3D""> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;range "0 | 10..3600";<br =
class=3D""> &nbsp;&nbsp;&nbsp;}<br class=3D""> &nbsp;}<br class=3D""><br =
class=3D"">this is probably easier to deal with in the code than the =
case where<br class=3D"">additional enums are =
defined.</div></blockquote><div><br class=3D""></div><div>Another =
mechanism that=E2=80=99s been used quite often for =E2=80=9Cimplementation=
 constants=E2=80=9D, like max values that vary between implementations =
or over time, is to have a section of the model containing such =
constants as config true values, but with access control rules =
effectively preventing any operator from ever changing them. Like =
this:</div><div><br class=3D""></div><div><font face=3D"Courier" =
class=3D"">module some-application {</font></div><div><font =
face=3D"Courier" class=3D"">&nbsp; container somethings =
{</font></div><div><font face=3D"Courier" class=3D"">&nbsp; &nbsp; must =
=E2=80=9Ccount(something) &lt; /somethings/constants/max-somethings=E2=80=9D=
 {</font></div><div><font face=3D"Courier" class=3D"">&nbsp; &nbsp; =
&nbsp; error-message =E2=80=9CToo much of =
something=E2=80=9D;</font></div><div><font face=3D"Courier" =
class=3D"">&nbsp; &nbsp; }</font></div><div><font face=3D"Courier" =
class=3D"">&nbsp; &nbsp; list something {</font></div><div><font =
face=3D"Courier" class=3D"">&nbsp; &nbsp; &nbsp; key =
name;</font></div><div><font face=3D"Courier" class=3D"">&nbsp; &nbsp; =
&nbsp; leaf name { type string; }</font></div><div><font face=3D"Courier" =
class=3D"">&nbsp; &nbsp; &nbsp; leaf timeout {</font></div><div><font =
face=3D"Courier" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; type =
uint32;</font></div><div><font face=3D"Courier" class=3D"">&nbsp; &nbsp; =
&nbsp; &nbsp; must =E2=80=9Ccurrent() &lt; =
/somethings/constants/max-timeout=E2=80=9D {</font></div><div><font =
face=3D"Courier" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
error-message =E2=80=9CTimeout too long=E2=80=9D;</font></div><div><font =
face=3D"Courier" class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; =
}</font></div><div><font face=3D"Courier" class=3D"">&nbsp; &nbsp; =
&nbsp; }</font></div><div><font face=3D"Courier" class=3D"">&nbsp; =
&nbsp; }</font></div><div><div><font face=3D"Courier" class=3D"">&nbsp; =
&nbsp; container constants {</font></div><div><font face=3D"Courier" =
class=3D"">&nbsp; &nbsp; &nbsp; // Access control rules prevent =
operators from changing these</font></div><div><font face=3D"Courier" =
class=3D"">&nbsp; &nbsp; &nbsp; leaf max-somethings =
{</font></div><div><font face=3D"Courier" class=3D"">&nbsp; &nbsp; =
&nbsp; &nbsp; type uint32;</font></div><div><font face=3D"Courier" =
class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; mandatory =
true;</font></div><div><font face=3D"Courier" class=3D"">&nbsp; &nbsp; =
&nbsp; }</font></div><div><font face=3D"Courier" class=3D"">&nbsp; =
&nbsp; &nbsp; leaf max-timeout {</font></div><div><font face=3D"Courier" =
class=3D"">&nbsp; &nbsp; &nbsp; &nbsp; type =
uint32;</font></div><div><font face=3D"Courier" class=3D"">&nbsp; &nbsp; =
&nbsp; &nbsp; mandatory true;</font></div><div><font face=3D"Courier" =
class=3D"">&nbsp; &nbsp; &nbsp; }</font></div><div><font face=3D"Courier" =
class=3D"">&nbsp; &nbsp; }</font></div><div class=3D""><font =
face=3D"Courier" class=3D"">&nbsp; }</font></div><div class=3D""><font =
face=3D"Courier" class=3D"">}</font></div></div><div><br =
class=3D""></div><div>With this approach, IETF could standardize the =
model, yet allow implementations to pick reasonable constants for a =
variety of high- and low-end products, and change them over =
time.</div><div><br class=3D""></div><div>/jan</div><div><br =
class=3D""></div></div></body></html>=

--Apple-Mail=_651F13B5-F29A-4E10-A7A5-53279690F9B5--

--Apple-Mail=_8C1D2980-57B5-4657-8D4F-7483F0727FF6
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
	filename=signature.asc
Content-Type: application/pgp-signature;
	name=signature.asc
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org

iQEcBAEBCgAGBQJVGpAAAAoJEBSCnbqufIisiRkH/RXQY2+IYqsLK36L5zquRl7C
AKyvfcNEOzWFtvYMpI4d42MqFzb8kF4a2ry9Xt1H8E/6gx8/1jGfhc9EE4Z4xtrk
WIZnDIgvYcWIIHom5kzU3jLrxvmZ8r0fvNIBKfYETuUOHHvhXb+42cJN9vfeLBJD
0DjnnMBc0FsWiYKL06hy0rXlJEbSWxpzheDmU8KChjVFoEhgIxplX4AIjhXHUVSu
kescAcnENeGgoaX3D3hJ+gqqON+YtdBTBFYB75Mr+HQ4Ajc/YNhqKhjDi4kN9Dmg
uTpt0Cd92ycZn/Kcbkq+kqmM4YABPz9HGuXOvG2Rx65ARHKm+6vZBauOEd7/dew=
=a6l0
-----END PGP SIGNATURE-----

--Apple-Mail=_8C1D2980-57B5-4657-8D4F-7483F0727FF6--


From nobody Tue Mar 31 05:21:13 2015
Return-Path: <lhotka@nic.cz>
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 8A0271A9144 for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 05:21:12 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.6
X-Spam-Level: 
X-Spam-Status: No, score=-1.6 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, MIME_8BIT_HEADER=0.3] autolearn=no
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 K-P7URvvDb4k for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 05:21:10 -0700 (PDT)
Received: from trail.lhotka.name (trail.lhotka.name [77.48.224.143]) by ietfa.amsl.com (Postfix) with ESMTP id 0CBE71A916B for <netmod@ietf.org>; Tue, 31 Mar 2015 05:21:10 -0700 (PDT)
Received: from localhost (unknown [195.113.220.110]) by trail.lhotka.name (Postfix) with ESMTPSA id 40CF91CC01DA; Tue, 31 Mar 2015 14:21:07 +0200 (CEST)
From: Ladislav Lhotka <lhotka@nic.cz>
To: Andy Bierman <andy@yumaworks.com>, Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>, Martin =?utf-8?Q?Bj=C3=B6rklund?= <mbj@tail-f.com>, "netmod\@ietf.org" <netmod@ietf.org>
In-Reply-To: <CABCOCHQpWzrmOBKL-kLwE_6rYDfrngGRZTaGcnTBdkdNF6q36w@mail.gmail.com>
References: <20150328.160837.891193389716580490.mbj@tail-f.com> <CABCOCHSJ4+rJerLO4f0i-vO-zmMD2Bs+SepnXQVmQn9N+3FE+g@mail.gmail.com> <20150329.094343.625878615822690247.mbj@tail-f.com> <EA7B975C-7909-4C45-97A1-A5100B35C3B0@nic.cz> <20150330213959.GA68892@elstar.local> <20150330222057.GD68892@elstar.local> <CABCOCHQpWzrmOBKL-kLwE_6rYDfrngGRZTaGcnTBdkdNF6q36w@mail.gmail.com>
User-Agent: Notmuch/0.19 (http://notmuchmail.org) Emacs/24.4.51.2 (x86_64-apple-darwin14.0.0)
Date: Tue, 31 Mar 2015 14:21:06 +0200
Message-ID: <m2iodhl5n1.fsf@birdie.labs.nic.cz>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/AU9HYuA4nJt-uPTjSCmkcvNJuQ8>
Subject: Re: [netmod] Y45 again
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: <http://www.ietf.org/mail-archive/web/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: Tue, 31 Mar 2015 12:21:12 -0000

Andy Bierman <andy@yumaworks.com> writes:

> Hi,
>
> This is getting way too complicated for real deployment.
> All the solutions seem way more complicated than just not
> changing the intended value set of a released typedef or grouping.
>
>     typedef acme-type { ... }
>     typedef acme-type.2 { ... }
>     typedef acme-knob.3 { ... }
>
>     grouping acme-grp { ... }
>
>     grouping acme-grp.2 {
>          uses acme-grp;
>          // add new nodes here
>     }
>     grouping acme-grp.3 {
>          uses acme-grp.2;
>          // add new nodes here
>     }

In effect, this is really no different from allowing each "uses" and
"type" specify a particular revision, except that readability of modules
with typedefs/groupings will deteriorate in time.

Also, the relationship among different revisions of acme-type can be
inferred only from the similarity in names, which is brittle.=20=20

Lada

>
>
> IMO it is not a burden to put the version in the name.
> Just moving the version to a different encoding is not really solving
> the problem.
> It just makes it much worse.  The current solution allows each subscriber
> to the typedef to decide when to change to a new version.  The publisher
> cannot decide for everybody.  Cut-and-paste into N private versions
> violates coupling and cohesion principles so it cannot be considered.
>
> This is the least painful solution that works for everything.
>
>
> Andy
>
>
>
> On Mon, Mar 30, 2015 at 3:20 PM, Juergen Schoenwaelder
> <j.schoenwaelder@jacobs-university.de> wrote:
>> On Mon, Mar 30, 2015 at 11:39:59PM +0200, Juergen Schoenwaelder wrote:
>>> On Sun, Mar 29, 2015 at 02:50:10PM +0200, Ladislav Lhotka wrote:
>>>
>>> > >> 4) Now it will be OK to extend typedefs and groupings, but
>>> > >> the this leads to a scenario where essentially every single
>>> > >> definition has its own revision.  IMO it is very confusing
>>> >
>>> > I don=E2=80=99t think so, it would be the case only if we introduced =
something like
>>> >
>>> > uses foo {
>>> >     revision-date 2015-04-01;
>>> > }
>>> >
>>>
>>> So how is this any different than defining
>>>
>>>     grouping foo-2015-04-01 {
>>>         // ...
>>>     }
>>>
>>> and then later expand things using this:
>>>
>>>     uses foo-2015-04-01;
>>>
>>> The main simplification of versioning groupings and typedefs by giving
>>> them different names is that I do not have to import multiple versions
>>> of the same module in order to resolve all things used properly.
>>
>> In other words, if we want to explore this option, then we have
>> to treat
>>
>> module m {
>>   revision 2015-04-01;
>>
>>   typedef t {}
>>   grouping g {}
>> }
>>
>> module m {
>>   revision 2015-04-02;
>>
>>   typedef t {}
>>   grouping g {}
>> }
>>
>> as defining t@2015-04-01 and g@2015-04-01. Modules simply resolve
>> the shorthand name to a versioned name:
>>
>> module x {
>>   import m { revision 2015-04-01; }
>>
>>   leaf l { type t; }   // resolves to t@2015-04-01
>>   uses g;              // resolves to g@2015-04-01
>> }
>>
>> module y {
>>   import m;
>>
>>   leaf l { type t; }   // resolves to t@2015-04-?? (depends on advertise=
ments)
>>   uses g;              // resolves to g@2015-04-?? (depends on advertise=
ments)
>> }
>>
>> module z {
>>   import m;
>>
>>   // this requires to load two versions of m...
>>   leaf l { type t@2015-04-01; }  // use explicit version
>>   uses g@2015-04-02;             // use explicit version
>> }
>>
>> Module z is perhaps ugly but completely future proof since the
>> definitions used are always clear. This requires to be able to load
>> multiple versions of m. Otherwise, this is functionally equivalent
>> with explicit version numbering.
>>
>> Module x is reasonably future proof but requires that the module
>> maintainer is careful with import revision updates. It is necessary to
>> examine all imported symbols and to check that the new version is what
>> is really needed/wanted.
>>
>> Module y is short but ambiguous without access to external information
>> once m gets updated. Until m gets updated in an incompatible way,
>> module y is however OK (and this is where we are with most of our
>> modules).
>>
>> Note that this should then also be allowed:
>>
>> module v {
>>   import m { revision 2015-04-01; }
>>
>>   leaf l { type t; }   // resolves to t@2015-04-01
>>   uses g@2015-04-02;   // resolves to g@2015-04-02
>> }
>>
>> This may look odd but the revision date in the import really just
>> sets a default.
>>
>> Personally, I do not like to rely on external information to determine
>> what a module means. Anyway, this all boils down to the question
>> whether we want to require that tools can deal with multiple revisions
>> of the same module in order resolve definitions. This is the price to
>> pay for anything that does a bit more than the simple rule "whenever
>> you make a semantic change, give the definition a new name".
>>
>> /js
>>
>> --
>> Juergen Schoenwaelder           Jacobs University Bremen gGmbH
>> Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
>> Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>
>>
>> _______________________________________________
>> netmod mailing list
>> netmod@ietf.org
>> https://www.ietf.org/mailman/listinfo/netmod

--=20
Ladislav Lhotka, CZ.NIC Labs
PGP Key ID: E74E8C0C


From nobody Tue Mar 31 05:27:04 2015
Return-Path: <balazs.lengyel@ericsson.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 78D5D1A916E for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 05:27:02 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.201
X-Spam-Level: 
X-Spam-Status: No, score=-4.201 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001] 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 2yiyechi5owb for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 05:27:01 -0700 (PDT)
Received: from sesbmg23.ericsson.net (sesbmg23.ericsson.net [193.180.251.37]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 317B51A9244 for <netmod@ietf.org>; Tue, 31 Mar 2015 05:27:00 -0700 (PDT)
X-AuditID: c1b4fb25-f79126d000004b89-9c-551a929194be
Received: from ESESSHC001.ericsson.se (Unknown_Domain [153.88.253.124]) by sesbmg23.ericsson.net (Symantec Mail Security) with SMTP id A2.EF.19337.1929A155; Tue, 31 Mar 2015 14:26:58 +0200 (CEST)
Received: from [159.107.198.14] (153.88.183.153) by smtp.internal.ericsson.com (153.88.183.23) with Microsoft SMTP Server id 14.3.210.2; Tue, 31 Mar 2015 14:26:57 +0200
Message-ID: <551A9290.7000302@ericsson.com>
Date: Tue, 31 Mar 2015 14:26:56 +0200
From: Balazs Lengyel <balazs.lengyel@ericsson.com>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0
MIME-Version: 1.0
To: Martin Bjorklund <mbj@tail-f.com>
References: <20150107143343.GB13482@elstar.local>	<551A5D90.8050007@ericsson.com> <20150331.124125.1207659562949097491.mbj@tail-f.com>
In-Reply-To: <20150331.124125.1207659562949097491.mbj@tail-f.com>
Content-Type: text/plain; charset="windows-1252"; format=flowed
Content-Transfer-Encoding: 7bit
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrCLMWRmVeSWpSXmKPExsUyM+Jvje6kSVKhBjumsFh0dz9jt5h/sZHV gcljyZKfTB4bfy1mCWCK4rJJSc3JLEst0rdL4Mo4+LeBpWALe8WkkwsZGxifsnYxcnJICJhI LD7yiBnCFpO4cG89G4gtJHCUUeLOlfwuRi4gew2jxK3Za9hBErwC2hKdE/6CNbMIqEps2HyS EcRmEzCSmNp/ngXEFhWIkuj5080GUS8ocXLmE7C4CFD9k51rwWxmAVGJ9RcvMYHYwgIFEv9a W5khlrUxSmydOhvsIk4BR4l9n7YCDeIAarCXeLC1DKJXXmL72znMEIdqSDy88Jd1AqPgLCTr ZiF0zELSsYCReRWjaHFqcVJuupGxXmpRZnJxcX6eXl5qySZGYLAe3PJbdQfj5TeOhxgFOBiV eHgX/JcMFWJNLCuuzD3EKM3BoiTOa2d8KERIID2xJDU7NbUgtSi+qDQntfgQIxMHp1QDY321 ZrY0y/3AjdFO0R58PBd+PBeIbsuxTwj97d7qoq/7Wcv76f/JFrpWkVdeJJ54pdR355z0NUH2 mzcefni76oVUOgcvw/67po03uR39k1Ifb1d6wnn4guCPfy2bFQNFLKJTjvq+ZGrczv/Hj2Xf 1rq/Ezc+nLNp49OirBTLoEurc9b/eb+FWYmlOCPRUIu5qDgRAFwLyYE3AgAA
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/bAssypa4yP8nNQHjdJfNbcncKjI>
Cc: netmod@ietf.org
Subject: Re: [netmod] Y16: module advertisement optimization - What happens with YANG 1.0 modules and clients?
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: <http://www.ietf.org/mail-archive/web/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: Tue, 31 Mar 2015 12:27:02 -0000

On 2015-03-31 12:41, Martin Bjorklund wrote:
> Balazs Lengyel<balazs.lengyel@ericsson.com>  wrote:
>> >Hello Martin,
>> >In the virtual interim minutes about Y16 I read:
>> >
>> >   - AB: YANG 1.0 modules will continue to be advertised as before.
>> >
>> >However I don't see this mentioned in
>> >https://tools.ietf.org/html/draft-ietf-netmod-rfc6020bis-04#section-5.6.4
>> >
>> >Is it just not yet added or is the above statement reversed, or what
>> >will happen with YANG 1.0 modules?
> YANG 1.0 modules follow RFC 6020 procedures.
>
> I guess we could say something like this: Note that a server that
> implements YANG 1.0 modules MUST advertise these modules as specified
> in section 5.6.4 in RFC 6020.
>
IMO adding this would be needed.
Balazs

-- 
Balazs Lengyel                       Ericsson Hungary Ltd.
Senior Specialist
ECN: 831 7320
Mobile: +36-70-330-7909              email: Balazs.Lengyel@ericsson.com


From nobody Tue Mar 31 05:40:07 2015
Return-Path: <lhotka@nic.cz>
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 C49ED1A92AD for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 05:40:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level: 
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9] 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 WbflNFm5s7ZW for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 05:40:04 -0700 (PDT)
Received: from trail.lhotka.name (trail.lhotka.name [77.48.224.143]) by ietfa.amsl.com (Postfix) with ESMTP id 5F2B71A9244 for <netmod@ietf.org>; Tue, 31 Mar 2015 05:40:04 -0700 (PDT)
Received: from localhost (unknown [195.113.220.110]) by trail.lhotka.name (Postfix) with ESMTPSA id 718F91CC01DA; Tue, 31 Mar 2015 14:40:03 +0200 (CEST)
From: Ladislav Lhotka <lhotka@nic.cz>
To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>, Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <20150330214646.GB68892@elstar.local>
References: <20150328.160837.891193389716580490.mbj@tail-f.com> <20150330214646.GB68892@elstar.local>
User-Agent: Notmuch/0.19 (http://notmuchmail.org) Emacs/24.4.51.2 (x86_64-apple-darwin14.0.0)
Date: Tue, 31 Mar 2015 14:40:02 +0200
Message-ID: <m2ego5l4rh.fsf@birdie.labs.nic.cz>
MIME-Version: 1.0
Content-Type: text/plain
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/P_gM72EAggsYaQ1Xt9TiBEhdTDg>
Cc: netmod@ietf.org
Subject: Re: [netmod] Y45 again
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: <http://www.ietf.org/mail-archive/web/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: Tue, 31 Mar 2015 12:40:06 -0000

Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> writes:

> Martin,
>
> if I understand things correctly, your proposal still requires that I
> update all definitions to the one I import from. If a grouping/typedef
> got expanded, I can't use the original and the expanded version in the
> same module, right? This may not be workable with bigger modules.

A workaround is to import different revisions in the main module and a
submodule, or two submodules.

BTW, does RFC 6020 forbid importing different revisions of the same
module using different prefixes? If not, it might solve this issue.

>
> Here is a scenario. Lets take something like yang-types. In a future
> revision, a typedef 'duration' might be added. At the same time, some
> other definition gets expanded. If I now want to use 'duration', I
> have to update all my usages of the expanded typedef (or worse copy
> the old one into my module)?

This is a fair argument, such situations should be avoided. In systems
offering cheap revisions, such as git, it is easily solved by using
fine-grained revisions, essentially one change per
revision. Unfortunately, the IETF process is not of this sort.

Lada

>
> /js
>
> On Sat, Mar 28, 2015 at 04:08:37PM +0100, Martin Bjorklund wrote:
>> Hi,
>> 
>> This is another attempt to solve the conformance problem, building on
>> the idea that Lada suggested.
>> 
>> The proposed solution does not require any changes to the upgrade
>> rules from 6020 (specifically, a typedef/grouping can expand its value
>> space).
>> 
>> The solution relies on the observation that import may or may not
>> indicate a run-time dependency between modules.  If module A imports
>> module B, and A just uses a typedef from B, there is no requirement
>> that a server that implements all protocol accessible nodes in A also
>> implements all protocol accessible nodes in B.
>> 
>> In the rest of the description, "implement a module" means "implements
>> all protocol accessible nodes from a module".
>> 
>> Some constructs imply a run-time dependency.  If module A augments
>> module B, there is a run-time dependency, meaning that a server that
>> implements A must also implement B (modulo features).  A leafref also
>> imply a run-time dependency.  (must and when expressions do not)
>> 
>> So, the idea is this:
>> 
>>   If a server implements a module A that imports B, and A augments B
>>   or has a leafref to a node in B, the server MUST implement *some
>>   version* of module B that has the nodes A references.  This is
>>   regardless of A imports B by revision or not.
>> 
>>   If a module A imports B by revision, any typedefs or a groupings
>>   from B are picked from the specified revision of B, regardless of
>>   which revision (if any!) of B the server implements.
>> 
>>   If a module A imports B without revision, and A uses typedefs and/or
>>   groupings from B, the server MUST pick and advertise one revision of
>>   B that has the used typedefs and groupings.  This requires a way to
>>   advertise a module with "conformance=no-protocol-accessible-nodes",
>>   so that the server can advertise the module w/o implementing its
>>   protocol accessible nodes.
>> 
>> All this taken together means that by looking at the advertised
>> modules and their import revisions, a client knows the exact types
>> and groupings used everywhere.
>> 
>> A module writer can choose to import by revision (thus locking down
>> the typedefs and groupings used), or import without revision (allowing
>> future updated typedefs and groupings to be incorporated).
>> 
>> Repeating the example in P1 from
>> draft-bjorklund-yang-conformance-problem-01:
>> 
>>   module mod-a {
>>     ...
>>     revision 2001-01-01;        // initial version
>>     typedef foo {
>>       type enumeration {
>>         enum q;
>>       }
>>     }
>>     grouping bar {
>>       leaf x { type string; }
>>     }
>>   }
>> 
>>   module mod-a {
>>     ...
>>     revision 2002-01-01;        // new version
>>     typedef foo {
>>       type enumeration {
>>         enum q;
>>         enum w;                 // enum added
>>       }
>>     }
>>     grouping bar {
>>       leaf x { type string; }
>>       leaf y { type string; }   // grouping extended
>>     }
>>   }
>> 
>>   module mod-b {
>>     ...
>>     revision 2001-01-01;
>>     import mod-a {
>>       prefix a;
>>       revision 2001-01-01;      // uses initial vsn of mod-a
>>     }
>>     leaf b {
>>       type a:foo;
>>     }
>>     container b2 {
>>       uses a:bar;
>>     }
>>   }
>> 
>>   module mod-c {
>>     ...
>>     revision 2002-01-01;
>>     import mod-a {
>>       prefix a;
>>       revision 2002-01-01;      // uses new vsn of mod-a
>>     }
>>     leaf c {
>>       type a:foo;
>>     }
>>     container c2 {
>>       uses a:bar;
>>     }
>>   }
>> 
>>   module mod-d {
>>     ...
>>     revision 2002-01-01;
>>     import mod-a                // uses unknown vsn of mod-a
>>       prefix a;
>>     }
>>     leaf d {
>>       type a:foo;
>>     }
>>     container d2 {
>>       uses a:bar;
>>     }
>>   }
>> 
>> A server might advertise:
>> 
>>   mod-a 2002-01-01
>>   mod-b 2001-01-01 // uses mod-a 2001-01-01, since import by revision
>>   mod-c 2002-01-01 // uses mod-a 2002-01-01, since import by revision
>>   mod-d 2002-01-01 // uses mod-a 2002-01-01, since it is advertised
>> 
>> Another server might advertise:
>> 
>>   mod-a 2001-01-01 conformance=no-protocol-accessible-nodes
>>   mod-c 2002-01-01 // uses mod-a 2002-01-01, since import by revision
>>   mod-d 2002-01-01 // uses mod-a 2001-01-01, since it is advertised
>> 
>> Note that it is also ok to advertise:
>> 
>>   mod-b 2001-01-01 // uses mod-a 2001-01-01, since import by revision
>>   mod-c 2002-01-01 // uses mod-a 2002-01-01, since import by revision
>> 
>> I.e., if import-by revision is used everywhere, a server may not
>> advertise the imported module.  Assume this was not the case.  Then
>> a server might advertise the following, which is unclear:
>> 
>>   mod-a 2001-01-01 conformance=no-protocol-accessible-nodes
>>   mod-a 2002-01-01 conformance=no-protocol-accessible-nodes
>>   mod-b 2001-01-01 // uses mod-a 2001-01-01, since import by revision
>>   mod-c 2002-01-01 // uses mod-a 2002-01-01, since import by revision
>>   mod-d 2002-01-01 // which version of a is used???
>> 
>> 
>> This solution solves the conformance drift problem (P1 in
>> draft-bjorklund-yang-conformance-problem-01) and conformance ambiguity
>> (P2) by having clear rules what import with and without revision
>> means.
>> 
>> 
>> 
>> /martin
>> 
>> _______________________________________________
>> netmod mailing list
>> netmod@ietf.org
>> https://www.ietf.org/mailman/listinfo/netmod
>
> -- 
> Juergen Schoenwaelder           Jacobs University Bremen gGmbH
> Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
> Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>
>
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod

-- 
Ladislav Lhotka, CZ.NIC Labs
PGP Key ID: E74E8C0C


From nobody Tue Mar 31 06:21:09 2015
Return-Path: <andy@yumaworks.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 50B9B1ACD31 for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 06:21:03 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.979
X-Spam-Level: 
X-Spam-Status: No, score=-1.979 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] 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 4_UNNWnhzuJp for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 06:21:01 -0700 (PDT)
Received: from mail-lb0-f177.google.com (mail-lb0-f177.google.com [209.85.217.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id BA5651ACD2E for <netmod@ietf.org>; Tue, 31 Mar 2015 06:21:00 -0700 (PDT)
Received: by lbbug6 with SMTP id ug6so12154524lbb.3 for <netmod@ietf.org>; Tue, 31 Mar 2015 06:20:59 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=PLxv3yB2I1rMgpVYzlqzKM5t+6KzEu6OoGTzczFObMc=; b=PMEMNeMOOKMGaSKZ3KwozT+R9z5mwjuFdOaZGgkvggNzkCcD9KDMF6oOMqv0eD969w 89Q5iPZJEclRxgfYtUrVAYAqpdoQh8Ie6WT6dSENPK5ffmudmfWl44Q552nnRfqeiNA3 k2BAH8ky+Mket1gv+XAH0Oj9WQViabC++M9qW98RdtS8m/tGJFcyk+iDWFbtDN465JxL ERAxqSYVqzA5rTb9vCHgN6F5ZSU5ggY5/UJpGSP0UcIPksbw6BX+7tVgL2IDaNCISq6k Tlp7tDrF3uiTXeWBnIeTePFwwiv7m2Tj55me1HEg+iUDmSilst19kUPLlyDVQWNMh8ov 2BCg==
X-Gm-Message-State: ALoCoQlGOXrtPLuuc9EG3zpoIUF7mSkdB/Z+tr73ZANPBCFp/aBd4GfUpmJuM8rfvy7yKsaGZvdu
MIME-Version: 1.0
X-Received: by 10.112.141.202 with SMTP id rq10mr31070959lbb.88.1427808059230;  Tue, 31 Mar 2015 06:20:59 -0700 (PDT)
Received: by 10.112.98.168 with HTTP; Tue, 31 Mar 2015 06:20:59 -0700 (PDT)
In-Reply-To: <m2iodhl5n1.fsf@birdie.labs.nic.cz>
References: <20150328.160837.891193389716580490.mbj@tail-f.com> <CABCOCHSJ4+rJerLO4f0i-vO-zmMD2Bs+SepnXQVmQn9N+3FE+g@mail.gmail.com> <20150329.094343.625878615822690247.mbj@tail-f.com> <EA7B975C-7909-4C45-97A1-A5100B35C3B0@nic.cz> <20150330213959.GA68892@elstar.local> <20150330222057.GD68892@elstar.local> <CABCOCHQpWzrmOBKL-kLwE_6rYDfrngGRZTaGcnTBdkdNF6q36w@mail.gmail.com> <m2iodhl5n1.fsf@birdie.labs.nic.cz>
Date: Tue, 31 Mar 2015 06:20:59 -0700
Message-ID: <CABCOCHREqDWKG-d9pfdCCG38-7zeNHRcFX+WGZu9x20J7g3OJw@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Ladislav Lhotka <lhotka@nic.cz>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/1IyjMkU_RJueG7l8IY1CN0sIT2k>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] Y45 again
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: <http://www.ietf.org/mail-archive/web/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: Tue, 31 Mar 2015 13:21:03 -0000

On Tue, Mar 31, 2015 at 5:21 AM, Ladislav Lhotka <lhotka@nic.cz> wrote:
> Andy Bierman <andy@yumaworks.com> writes:
>
>> Hi,
>>
>> This is getting way too complicated for real deployment.
>> All the solutions seem way more complicated than just not
>> changing the intended value set of a released typedef or grouping.
>>
>>     typedef acme-type { ... }
>>     typedef acme-type.2 { ... }
>>     typedef acme-knob.3 { ... }
>>
>>     grouping acme-grp { ... }
>>
>>     grouping acme-grp.2 {
>>          uses acme-grp;
>>          // add new nodes here
>>     }
>>     grouping acme-grp.3 {
>>          uses acme-grp.2;
>>          // add new nodes here
>>     }
>
> In effect, this is really no different from allowing each "uses" and
> "type" specify a particular revision, except that readability of modules
> with typedefs/groupings will deteriorate in time.
>

This does not introduce any new YANG statements that are confusing to read.
I totally disagree that this makes the module unreadable.
I think it makes the changes to typedefs and groupings very easy
to see and understand over time.  These new names will match the
protocol names that are introducing a new version
(eg. ssh-parms, ssh2-parms, http1.1-parms, http2.0-parms)

I find the new uses@214-01-01 to be very unreadable and very hard
to follow.  SMIv2 does not need this insane complexity, which tells
me the YANG crowd is really on the wrong track here.


> Also, the relationship among different revisions of acme-type can be
> inferred only from the similarity in names, which is brittle.
>

I disagree -- having new names means that the old and new ranges
can still be used together in the same data model quite easilty
(e.g., SSH1 and SSH2 bother supported leafs of both types still exist).


> Lada
>

Andy

>>
>>
>> IMO it is not a burden to put the version in the name.
>> Just moving the version to a different encoding is not really solving
>> the problem.
>> It just makes it much worse.  The current solution allows each subscribe=
r
>> to the typedef to decide when to change to a new version.  The publisher
>> cannot decide for everybody.  Cut-and-paste into N private versions
>> violates coupling and cohesion principles so it cannot be considered.
>>
>> This is the least painful solution that works for everything.
>>
>>
>> Andy
>>
>>
>>
>> On Mon, Mar 30, 2015 at 3:20 PM, Juergen Schoenwaelder
>> <j.schoenwaelder@jacobs-university.de> wrote:
>>> On Mon, Mar 30, 2015 at 11:39:59PM +0200, Juergen Schoenwaelder wrote:
>>>> On Sun, Mar 29, 2015 at 02:50:10PM +0200, Ladislav Lhotka wrote:
>>>>
>>>> > >> 4) Now it will be OK to extend typedefs and groupings, but
>>>> > >> the this leads to a scenario where essentially every single
>>>> > >> definition has its own revision.  IMO it is very confusing
>>>> >
>>>> > I don=E2=80=99t think so, it would be the case only if we introduced=
 something like
>>>> >
>>>> > uses foo {
>>>> >     revision-date 2015-04-01;
>>>> > }
>>>> >
>>>>
>>>> So how is this any different than defining
>>>>
>>>>     grouping foo-2015-04-01 {
>>>>         // ...
>>>>     }
>>>>
>>>> and then later expand things using this:
>>>>
>>>>     uses foo-2015-04-01;
>>>>
>>>> The main simplification of versioning groupings and typedefs by giving
>>>> them different names is that I do not have to import multiple versions
>>>> of the same module in order to resolve all things used properly.
>>>
>>> In other words, if we want to explore this option, then we have
>>> to treat
>>>
>>> module m {
>>>   revision 2015-04-01;
>>>
>>>   typedef t {}
>>>   grouping g {}
>>> }
>>>
>>> module m {
>>>   revision 2015-04-02;
>>>
>>>   typedef t {}
>>>   grouping g {}
>>> }
>>>
>>> as defining t@2015-04-01 and g@2015-04-01. Modules simply resolve
>>> the shorthand name to a versioned name:
>>>
>>> module x {
>>>   import m { revision 2015-04-01; }
>>>
>>>   leaf l { type t; }   // resolves to t@2015-04-01
>>>   uses g;              // resolves to g@2015-04-01
>>> }
>>>
>>> module y {
>>>   import m;
>>>
>>>   leaf l { type t; }   // resolves to t@2015-04-?? (depends on advertis=
ements)
>>>   uses g;              // resolves to g@2015-04-?? (depends on advertis=
ements)
>>> }
>>>
>>> module z {
>>>   import m;
>>>
>>>   // this requires to load two versions of m...
>>>   leaf l { type t@2015-04-01; }  // use explicit version
>>>   uses g@2015-04-02;             // use explicit version
>>> }
>>>
>>> Module z is perhaps ugly but completely future proof since the
>>> definitions used are always clear. This requires to be able to load
>>> multiple versions of m. Otherwise, this is functionally equivalent
>>> with explicit version numbering.
>>>
>>> Module x is reasonably future proof but requires that the module
>>> maintainer is careful with import revision updates. It is necessary to
>>> examine all imported symbols and to check that the new version is what
>>> is really needed/wanted.
>>>
>>> Module y is short but ambiguous without access to external information
>>> once m gets updated. Until m gets updated in an incompatible way,
>>> module y is however OK (and this is where we are with most of our
>>> modules).
>>>
>>> Note that this should then also be allowed:
>>>
>>> module v {
>>>   import m { revision 2015-04-01; }
>>>
>>>   leaf l { type t; }   // resolves to t@2015-04-01
>>>   uses g@2015-04-02;   // resolves to g@2015-04-02
>>> }
>>>
>>> This may look odd but the revision date in the import really just
>>> sets a default.
>>>
>>> Personally, I do not like to rely on external information to determine
>>> what a module means. Anyway, this all boils down to the question
>>> whether we want to require that tools can deal with multiple revisions
>>> of the same module in order resolve definitions. This is the price to
>>> pay for anything that does a bit more than the simple rule "whenever
>>> you make a semantic change, give the definition a new name".
>>>
>>> /js
>>>
>>> --
>>> Juergen Schoenwaelder           Jacobs University Bremen gGmbH
>>> Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
>>> Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>
>>>
>>> _______________________________________________
>>> netmod mailing list
>>> netmod@ietf.org
>>> https://www.ietf.org/mailman/listinfo/netmod
>
> --
> Ladislav Lhotka, CZ.NIC Labs
> PGP Key ID: E74E8C0C


From nobody Tue Mar 31 06:53:42 2015
Return-Path: <andy@yumaworks.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 2DDF01ACD3E for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 06:53:41 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.679
X-Spam-Level: 
X-Spam-Status: No, score=-1.679 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, MIME_8BIT_HEADER=0.3, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=no
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 2fiNXiwks6jJ for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 06:53:40 -0700 (PDT)
Received: from mail-la0-f43.google.com (mail-la0-f43.google.com [209.85.215.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id CA7221A1B6A for <netmod@ietf.org>; Tue, 31 Mar 2015 06:53:39 -0700 (PDT)
Received: by labe2 with SMTP id e2so13161906lab.3 for <netmod@ietf.org>; Tue, 31 Mar 2015 06:53:38 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:content-type; bh=ZobWryYQPT1ew1Qp58pMPrJzrc+lmjxk82NPdseTqX8=; b=j41FDNdrKLGfDECxwn0BX+lZvMNQtekgj1XDCnvhh30OVDC0TM15qXh6FmP4koPm21 Dd1i2wtoOIJ1999RRvXMQ/v2fJsRN+paK/OT5Zh1Yft5FrbwiLmubK0O43HnB1qkzaWC W4lGLSiaDtAkB3ai0noeulhiGG9oRQslJUASsJxd2fTqVnJ3p94lDXt20ZIVvQ76GTp0 Um30z3vJix/LhP3TXbOeLy36N5eLHWMDN5RJmRvAbqXZv33lZSBaTx+ydbrT5gOqOKQq Sd3Km/fRSiT/RBO38W0ULCPgqR6QoabPZRsLFRbzYxtJgJrfG9hjLYdnpRfa+V6w4eYL zznw==
X-Gm-Message-State: ALoCoQmHRDqINtfxPTNmnkPtxUNCl4/QLDeTpH2V9B1Q2c8uRrA5cj5je2w7MY0eFkZ3Ui5CZp7g
MIME-Version: 1.0
X-Received: by 10.152.206.72 with SMTP id lm8mr10832424lac.33.1427810018007; Tue, 31 Mar 2015 06:53:38 -0700 (PDT)
Received: by 10.112.98.168 with HTTP; Tue, 31 Mar 2015 06:53:37 -0700 (PDT)
In-Reply-To: <20150330222057.GD68892@elstar.local>
References: <20150328.160837.891193389716580490.mbj@tail-f.com> <CABCOCHSJ4+rJerLO4f0i-vO-zmMD2Bs+SepnXQVmQn9N+3FE+g@mail.gmail.com> <20150329.094343.625878615822690247.mbj@tail-f.com> <EA7B975C-7909-4C45-97A1-A5100B35C3B0@nic.cz> <20150330213959.GA68892@elstar.local> <20150330222057.GD68892@elstar.local>
Date: Tue, 31 Mar 2015 06:53:37 -0700
Message-ID: <CABCOCHSoWSun2OQd3TLd58fng_gGjC4+_2vKuUFq=KaxHAz2aA@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>, Ladislav Lhotka <lhotka@nic.cz>,  =?UTF-8?Q?Martin_Bj=C3=B6rklund?= <mbj@tail-f.com>,  "netmod@ietf.org" <netmod@ietf.org>
Content-Type: text/plain; charset=UTF-8
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/r4qyP4tJoPtNuBYLoROr2K1DrNc>
Subject: Re: [netmod] Y45 again
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: <http://www.ietf.org/mail-archive/web/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: Tue, 31 Mar 2015 13:53:41 -0000

.....
> module z {
>   import m;
>
>   // this requires to load two versions of m...
>   leaf l { type t@2015-04-01; }  // use explicit version
>   uses g@2015-04-02;             // use explicit version
> }
>
> Module z is perhaps ugly but completely future proof since the
> definitions used are always clear. This requires to be able to load
> multiple versions of m. Otherwise, this is functionally equivalent
> with explicit version numbering.
>


I am curious -- if import-by-revision is such a great way to manage
external dependencies, then why aren't there any programming languages
that work this way?

Can you name a single programming language in the entire world
that requires the programmer to remember the history of every
single function, class, or typedef, and allow multiple revisions
to be accessed at once?

IMO import-by-revision, especially uses-by-revision, is way too complicated,
and not proven over time to be the way dependencies are managed.
It is not proven at all, with good reason.

....
> /js

Andy

>
> --
> Juergen Schoenwaelder           Jacobs University Bremen gGmbH
> Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
> Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>
>
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod


From nobody Tue Mar 31 07:06:45 2015
Return-Path: <lhotka@nic.cz>
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 1B3531ACD66 for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 07:06:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.661
X-Spam-Level: 
X-Spam-Status: No, score=-0.661 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HELO_EQ_CZ=0.445, HOST_EQ_CZ=0.904, T_RP_MATCHES_RCVD=-0.01] autolearn=no
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 EuJ4xcND3QQq for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 07:06:39 -0700 (PDT)
Received: from mail.nic.cz (mail.nic.cz [IPv6:2001:1488:800:400::400]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3C1E71ACD62 for <netmod@ietf.org>; Tue, 31 Mar 2015 07:06:39 -0700 (PDT)
Received: from [IPv6:2001:718:1a02:1:1005:4889:a58c:2f39] (unknown [IPv6:2001:718:1a02:1:1005:4889:a58c:2f39]) by mail.nic.cz (Postfix) with ESMTPSA id 72AA213F64F; Tue, 31 Mar 2015 16:06:37 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=nic.cz; s=default; t=1427810797; bh=pER/iZ8Niy5ip0/RmGqrH60a7YobhKDbv6db4enLVAI=; h=Content-Type:Mime-Version:Subject:From:In-Reply-To:Date:Cc: Content-Transfer-Encoding:Message-Id:References:To; b=o7OiAKBMnsltt8GKxM7jJRo/XPNttwk04DwRxTiC48dm0cCRMNVQklYyJpaRW1rnw GLjD5ng8ZJtg4wMsw5DDeM+ajYnYnlAoCK4MrA7jAEm2BrM2HNvccsU6JsMS1n9Yo4 zaH/MdLdYla5agxLTqNT7u9QU+5yGWgHyK6RR5fM=
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2070.6\))
From: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <CABCOCHSoWSun2OQd3TLd58fng_gGjC4+_2vKuUFq=KaxHAz2aA@mail.gmail.com>
Date: Tue, 31 Mar 2015 16:06:36 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <620ED4D9-FCCC-4047-B632-8E3D6537F199@nic.cz>
References: <20150328.160837.891193389716580490.mbj@tail-f.com> <CABCOCHSJ4+rJerLO4f0i-vO-zmMD2Bs+SepnXQVmQn9N+3FE+g@mail.gmail.com> <20150329.094343.625878615822690247.mbj@tail-f.com> <EA7B975C-7909-4C45-97A1-A5100B35C3B0@nic.cz> <20150330213959.GA68892@elstar.local> <20150330222057.GD68892@elstar.local> <CABCOCHSoWSun2OQd3TLd58fng_gGjC4+_2vKuUFq=KaxHAz2aA@mail.gmail.com>
To: Andy Bierman <andy@yumaworks.com>
X-Mailer: Apple Mail (2.2070.6)
X-Virus-Scanned: clamav-milter 0.98.6 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/_b4OH8YrhL3Pb7aJjclh7IzQks0>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] Y45 again
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: <http://www.ietf.org/mail-archive/web/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: Tue, 31 Mar 2015 14:06:44 -0000

> On 31 Mar 2015, at 15:53, Andy Bierman <andy@yumaworks.com> wrote:
>=20
> .....
>> module z {
>>  import m;
>>=20
>>  // this requires to load two versions of m...
>>  leaf l { type t@2015-04-01; }  // use explicit version
>>  uses g@2015-04-02;             // use explicit version
>> }
>>=20
>> Module z is perhaps ugly but completely future proof since the
>> definitions used are always clear. This requires to be able to load
>> multiple versions of m. Otherwise, this is functionally equivalent
>> with explicit version numbering.
>>=20
>=20
>=20
> I am curious -- if import-by-revision is such a great way to manage
> external dependencies, then why aren't there any programming languages
> that work this way?

Because you always use the locally-installed package version, and =
package managers take care of installing the dependencies - pip for =
Python, npm for JavaScript, cabal for Haskell, =E2=80=A6

It is not that such systems are free of the problems we are facing, see

http://en.wikipedia.org/wiki/Dependency_hell

Lada

>=20
> Can you name a single programming language in the entire world
> that requires the programmer to remember the history of every
> single function, class, or typedef, and allow multiple revisions
> to be accessed at once?
>=20
> IMO import-by-revision, especially uses-by-revision, is way too =
complicated,
> and not proven over time to be the way dependencies are managed.
> It is not proven at all, with good reason.
>=20
> ....
>> /js
>=20
> Andy
>=20
>>=20
>> --
>> Juergen Schoenwaelder           Jacobs University Bremen gGmbH
>> Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | =
Germany
>> Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>
>>=20
>> _______________________________________________
>> netmod mailing list
>> netmod@ietf.org
>> https://www.ietf.org/mailman/listinfo/netmod

--
Ladislav Lhotka, CZ.NIC Labs
PGP Key ID: E74E8C0C





From nobody Tue Mar 31 07:14:12 2015
Return-Path: <andy@yumaworks.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 405C01ACD68 for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 07:14:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.979
X-Spam-Level: 
X-Spam-Status: No, score=-1.979 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] 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 e_J-oEGIBNaQ for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 07:14:09 -0700 (PDT)
Received: from mail-la0-f48.google.com (mail-la0-f48.google.com [209.85.215.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E327D1ACD5F for <netmod@ietf.org>; Tue, 31 Mar 2015 07:14:08 -0700 (PDT)
Received: by lahf3 with SMTP id f3so13227533lah.2 for <netmod@ietf.org>; Tue, 31 Mar 2015 07:14:07 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:content-type; bh=1CLODCPKCTz8tn4Ci/PTN5D+ZFG9waIkOmkGY7rfEa4=; b=Z8ehLzZAXAa2sMJVpKlVy7NZq37U3sy1mPEeMQLbTogHtl9T7h3T7C11IR+plKGTbP 5BwGpg01j9R6pGqJXhBvz50D6ClbLPsC/+hTpMNC0FDF8ck3/kqwYRscTcnic8u2pBCh po3EEoRRvch6TGbBEHCbB3xGAvEtmt8NWygCZlJSAaOJsE409nJlGy0A+4G8o3L+UMrr FupOJMx3gbF65/vVTwLFYPgkDGU9VLtJicHWBYXb2EaRPhqR52HQ5dykSdiQXixlU9iI VZ5IOrpNgWGzH5tsKMKgj2KvfiPHn+zBKlr9luj4/4c8ybKBTF53fcQVjfwpLk78Z6he kNiQ==
X-Gm-Message-State: ALoCoQmEPJw7m08BLWBC+9llkItqTd8Hs/cw+ywsPnMxprVTUDwQS3l70XJRx4ZI0B3hIO00jJxB
MIME-Version: 1.0
X-Received: by 10.112.17.36 with SMTP id l4mr26379614lbd.123.1427811247330; Tue, 31 Mar 2015 07:14:07 -0700 (PDT)
Received: by 10.112.98.168 with HTTP; Tue, 31 Mar 2015 07:14:07 -0700 (PDT)
In-Reply-To: <20150331115454.GA71187@elstar.local>
References: <20150331072754.GB70057@elstar.local> <20150331.100436.116540299614168962.mbj@tail-f.com> <20150331082904.GA70321@elstar.local> <20150331.132300.1653483257526034966.mbj@tail-f.com> <20150331115454.GA71187@elstar.local>
Date: Tue, 31 Mar 2015 07:14:07 -0700
Message-ID: <CABCOCHT8S+GvKY2ykhWVrivCic_sGyd8XMZ==y5z8bWge80DUg@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>, Martin Bjorklund <mbj@tail-f.com>,  Andy Bierman <andy@yumaworks.com>, Ladislav Lhotka <lhotka@nic.cz>, "netmod@ietf.org" <netmod@ietf.org>
Content-Type: text/plain; charset=UTF-8
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/gJL7L5PR_WhEQXE7omfgyZSm3fU>
Subject: Re: [netmod] Y45 again
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: <http://www.ietf.org/mail-archive/web/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: Tue, 31 Mar 2015 14:14:11 -0000

On Tue, Mar 31, 2015 at 4:54 AM, Juergen Schoenwaelder
<j.schoenwaelder@jacobs-university.de> wrote:
> On Tue, Mar 31, 2015 at 01:23:00PM +0200, Martin Bjorklund wrote:
>> Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote:
>> > On Tue, Mar 31, 2015 at 10:04:36AM +0200, Martin Bjorklund wrote:
>> > > Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote:
>> > > > On Mon, Mar 30, 2015 at 05:47:25PM -0700, Andy Bierman wrote:
>> > > > > Hi,
>> > > > >
>> > > > > This is getting way too complicated for real deployment.
>> > > > > All the solutions seem way more complicated than just not
>> > > > > changing the intended value set of a released typedef or grouping.
>> > > >
>> > > > [...]
>> > > >
>> > > > > This is the least painful solution that works for everything.
>> > > >
>> > > > I tend to agree.
>> > > >
>> > > > The only variation to consider is to be less strict for enums and
>> > > > bits, that is allow additions since enums and bits are often used for
>> > > > (controlled) extensions. In other words, to learn the actual value set
>> > > > supported by an implementation, one has to ask the implementation
>> > > > (similar to identities). (This is what SMIv2 allowed, you can add
>> > > > named numbers to BITS and enumerated INTEGER types, but no other
>> > > > changes to types are allowed.)
>> > >
>> > > Why are enums and bits special in this regard?  Why are "controlled
>> > > extensions" easier to handle than an expanded string pattern?
>> > >
>> > > If we can get this to work for enums and bits, the same mechanism
>> > > should imo work for the other types as well.  Either the exact type is
>> > > important or the client or it is not.
>> >
>> > Yes, we make different promises:
>> >
>> > - If my tool uses yang:date-and-time (e.g., it knows how parse it, how
>> >   to store it efficiently internally, how to produce the canonical
>> >   representation), I can rely on it to not change. This is reasonable
>> >   and goodness.
>>
>> Agreed.  One would think that this typedef is not changed easily.
>>
>> But OTOH, if we have this:
>>
>>   typedef timeout {
>>     type uint32 {
>>       range "0 | 10..180";
>>     }
>>   }
>>
>> and then in the next version we realize that this was too short so we
>> do:
>>
>>   typedef timeout {
>>     type uint32 {
>>       range "0 | 10..3600";
>>     }
>>   }
>>
>> this is probably easier to deal with in the code than the case where
>> additional enums are defined.  For example, how do you translate
>> between JSON and CoMI if you get an enum you don't know the definition
>> for?
>>
>> > - If my data model uses an identity, we make a different promise,
>> >   namely that the set of identities is open ended and I will need
>> >   runtime information to find out which set of identities can actually
>> >   be used for a certain leaf in the data model. This is reasonable and
>> >   goodness.
>> >
>> > I argue that bits and enumerations are often used to model something
>> > that is by design extensible in protocols. If you agree with that,
>> > allowing this extensibility in data models is reasonable and goodness.
>>
>> Right.  My new proposal allows this of course.
>>
>> > What are the alternatives? Translate all enums into identities for the
>> > sake of being extensible? What do we do with bits then?
>> >
>> > I understand the fundamental argument that either all types should be
>> > strict or flexible. But I do not think either extreme leads to
>> > something that is practically useful.
>>
>> I agree that all strict has its problems, but I do not understand how
>> making enums/bit flexible is easier to deal with than making all types
>> flexible.
>
> So you are saying typedef drift is not an issue anymore? Or are you
> saying typedef drift is an issue for all types except identityref and
> you just do not like enums and bits be treated differently?
>


If an existing client is hard coded to understand a certain version of
a leaf value-set
then extending it (for any type) will probably not be handled by the client.

I came to the conclusion (in the now expired YANG conformance draft)
that typedef and grouping drift was OK, as long as the server implemented
the new semantics where ever they were used.

This works because an old client thinking it is using the
old hard-coded typedef will still work, and a new client or
data-driven old client will try to use the new typedef.

The WG seems to want it both ways wrt/ extending typedefs and groupings.
If the change is so valuable that every usage from this date forward
needs to be the new version, then why allow a server to implement
the old version and the new version selectively (and concurrently)?

Extending typedefs and groupings actually works, and implementing
only 1 revision actually works, but only if the server implements
the advertised definitions consistently.


> /js
>

Andy


> --
> Juergen Schoenwaelder           Jacobs University Bremen gGmbH
> Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
> Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>


From nobody Tue Mar 31 12:32:58 2015
Return-Path: <phil@juniper.net>
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 603961AC3A7 for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 12:32:56 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.902
X-Spam-Level: 
X-Spam-Status: No, score=-1.902 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] 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 cUVMOGbu-KMT for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 12:32:54 -0700 (PDT)
Received: from na01-by2-obe.outbound.protection.outlook.com (mail-by2on0131.outbound.protection.outlook.com [207.46.100.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id CC9911AC3FE for <netmod@ietf.org>; Tue, 31 Mar 2015 12:32:46 -0700 (PDT)
Received: from CO2PR05CA020.namprd05.prod.outlook.com (10.141.241.148) by BLUPR05MB722.namprd05.prod.outlook.com (10.141.207.150) with Microsoft SMTP Server (TLS) id 15.1.118.21; Tue, 31 Mar 2015 19:32:44 +0000
Received: from BY2FFO11FD022.protection.gbl (2a01:111:f400:7c0c::110) by CO2PR05CA020.outlook.office365.com (2a01:111:e400:1429::20) with Microsoft SMTP Server (TLS) id 15.1.125.19 via Frontend Transport; Tue, 31 Mar 2015 19:32:44 +0000
Authentication-Results: spf=softfail (sender IP is 66.129.239.17) smtp.mailfrom=juniper.net; tail-f.com; dkim=none (message not signed) header.d=none;
Received-SPF: SoftFail (protection.outlook.com: domain of transitioning juniper.net discourages use of 66.129.239.17 as permitted sender)
Received: from P-EMF03-SAC.jnpr.net (66.129.239.17) by BY2FFO11FD022.mail.protection.outlook.com (10.1.15.211) with Microsoft SMTP Server (TLS) id 15.1.136.16 via Frontend Transport; Tue, 31 Mar 2015 19:32:43 +0000
Received: from magenta.juniper.net (172.17.27.123) by P-EMF03-SAC.jnpr.net (172.24.192.21) with Microsoft SMTP Server (TLS) id 14.3.146.0; Tue, 31 Mar 2015 12:32:10 -0700
Received: from idle.juniper.net (idleski.juniper.net [172.25.4.26])	by magenta.juniper.net (8.11.3/8.11.3) with ESMTP id t2VJW8D43818;	Tue, 31 Mar 2015 12:32:08 -0700 (PDT)	(envelope-from phil@juniper.net)
Received: from idle.juniper.net (localhost [127.0.0.1])	by idle.juniper.net (8.14.4/8.14.3) with ESMTP id t2VJVB6f097667; Tue, 31 Mar 2015 15:31:12 -0400 (EDT)	(envelope-from phil@idle.juniper.net)
Message-ID: <201503311931.t2VJVB6f097667@idle.juniper.net>
To: Andy Bierman <andy@yumaworks.com>
In-Reply-To: <CABCOCHSoWSun2OQd3TLd58fng_gGjC4+_2vKuUFq=KaxHAz2aA@mail.gmail.com>
Date: Tue, 31 Mar 2015 15:31:11 -0400
From: Phil Shafer <phil@juniper.net>
MIME-Version: 1.0
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-Forefront-Antispam-Report: CIP:66.129.239.17; CTRY:US; IPV:NLI; EFV:NLI; BMV:1; SFV:NSPM; SFS:(10019020)(6009001)(189002)(164054003)(199003)(50466002)(50986999)(6806004)(76506005)(53416004)(86362001)(48376002)(47776003)(46102003)(92566002)(1720100001)(77096005)(62966003)(87936001)(105596002)(106466001)(19580395003)(77156002)(2950100001)(54356999)(15975445007); DIR:OUT; SFP:1102; SCL:1; SRVR:BLUPR05MB722; H:P-EMF03-SAC.jnpr.net; FPR:; SPF:SoftFail; MLV:sfv; MX:1; A:1; LANG:en; 
X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BLUPR05MB722;
X-Microsoft-Antispam-PRVS: <BLUPR05MB7229D1CCDC047CF3963E53CC9F40@BLUPR05MB722.namprd05.prod.outlook.com>
X-Exchange-Antispam-Report-Test: UriScan:;
X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(5002010)(5005006); SRVR:BLUPR05MB722; BCL:0; PCL:0; RULEID:; SRVR:BLUPR05MB722; 
X-Forefront-PRVS: 0532BF6DC2
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Mar 2015 19:32:43.6648 (UTC)
X-MS-Exchange-CrossTenant-Id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=bea78b3c-4cdb-4130-854a-1d193232e5f4; Ip=[66.129.239.17];  Helo=[P-EMF03-SAC.jnpr.net]
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR05MB722
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/YDoAwiiuVS66OEDlCyTIWNEk_0A>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] Y45 again
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: <http://www.ietf.org/mail-archive/web/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: Tue, 31 Mar 2015 19:32:56 -0000

Andy Bierman writes:
>I am curious -- if import-by-revision is such a great way to manage
>external dependencies, then why aren't there any programming languages
>that work this way?

Most systems have to construct a versioning mechanism after the
fact, via installation tools or library systems.   There are
approximately one zillion means of doing this, mainly consed up
from the depths of the installation system programmers' minds.  To
my mind, the sheer volume of version-based installation tools (and
the number of times they fail) infers that no one's got it right
yet.

In YANG we're attempting to address this internally.  Doesn't mean
we're wrong, just that we know we can't depend on an external
technology to do this for us in a portable, interoperable way.
Lacking an "install" phase, we can't really count on apt-get, yum,
pip, gem, ninite, yast, pkg, brew, dpkg, port, fink, pacman, ipkg,
etc [1] to do the work for us.

Thanks,
 Phil

[1] Okay, that's off the top of my head.  I stopped before I reached
to wikipedia:
  http://en.wikipedia.org/wiki/List_of_software_package_management_systems

[2] Yes, there's really a "petget", the installer for "Puppy Linux".
Gag me with a chew toy!

[3] No, I really have no clue how to spell the past tense of "cons".


From nobody Tue Mar 31 12:42:39 2015
Return-Path: <phil@juniper.net>
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 9215C1A916F for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 12:42:38 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.902
X-Spam-Level: 
X-Spam-Status: No, score=-1.902 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] 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 x2Czl9T_P1kj for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 12:42:36 -0700 (PDT)
Received: from na01-bl2-obe.outbound.protection.outlook.com (mail-bl2on0145.outbound.protection.outlook.com [65.55.169.145]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 94C6F1AC3BE for <netmod@ietf.org>; Tue, 31 Mar 2015 12:42:36 -0700 (PDT)
Received: from CO2PR05MB729.namprd05.prod.outlook.com (10.141.228.12) by CO2PR05MB681.namprd05.prod.outlook.com (10.141.229.141) with Microsoft SMTP Server (TLS) id 15.1.118.21; Tue, 31 Mar 2015 19:42:35 +0000
Received: from BY2PR05CA038.namprd05.prod.outlook.com (10.141.250.28) by CO2PR05MB729.namprd05.prod.outlook.com (10.141.228.12) with Microsoft SMTP Server (TLS) id 15.1.118.21; Tue, 31 Mar 2015 19:42:34 +0000
Received: from BL2FFO11FD039.protection.gbl (2a01:111:f400:7c09::123) by BY2PR05CA038.outlook.office365.com (2a01:111:e400:2c5f::28) with Microsoft SMTP Server (TLS) id 15.1.125.19 via Frontend Transport; Tue, 31 Mar 2015 19:42:34 +0000
Received: from P-EMF03-SAC.jnpr.net (66.129.239.17) by BL2FFO11FD039.mail.protection.outlook.com (10.173.161.135) with Microsoft SMTP Server (TLS) id 15.1.130.10 via Frontend Transport; Tue, 31 Mar 2015 19:42:33 +0000
Received: from magenta.juniper.net (172.17.27.123) by P-EMF03-SAC.jnpr.net (172.24.192.21) with Microsoft SMTP Server (TLS) id 14.3.146.0; Tue, 31 Mar 2015 12:42:00 -0700
Received: from idle.juniper.net (idleski.juniper.net [172.25.4.26])	by magenta.juniper.net (8.11.3/8.11.3) with ESMTP id t2VJfxD48969;	Tue, 31 Mar 2015 12:41:59 -0700 (PDT)	(envelope-from phil@juniper.net)
Received: from idle.juniper.net (localhost [127.0.0.1])	by idle.juniper.net (8.14.4/8.14.3) with ESMTP id t2VJf45r097817; Tue, 31 Mar 2015 15:41:04 -0400 (EDT)	(envelope-from phil@idle.juniper.net)
Message-ID: <201503311941.t2VJf45r097817@idle.juniper.net>
To: Andy Bierman <andy@yumaworks.com>
In-Reply-To: <CABCOCHREqDWKG-d9pfdCCG38-7zeNHRcFX+WGZu9x20J7g3OJw@mail.gmail.com>
Date: Tue, 31 Mar 2015 15:41:04 -0400
From: Phil Shafer <phil@juniper.net>
MIME-Version: 1.0
Content-Type: text/plain
X-EOPAttributedMessage: 0
Received-SPF: SoftFail (protection.outlook.com: domain of transitioning juniper.net discourages use of 66.129.239.17 as permitted sender)
Authentication-Results: spf=softfail (sender IP is 66.129.239.17) smtp.mailfrom=phil@juniper.net; ietf.org; dkim=none (message not signed) header.d=none;
X-Forefront-Antispam-Report: CIP:66.129.239.17; CTRY:US; IPV:NLI; EFV:NLI; BMV:1; SFV:NSPM; SFS:(10019020)(6009001)(164054003)(199003)(189002)(77096005)(86362001)(62966003)(77156002)(106466001)(54356999)(50466002)(46102003)(76506005)(2950100001)(48376002)(53416004)(105596002)(92566002)(87936001)(6806004)(50986999)(47776003); DIR:OUT; SFP:1102; SCL:1; SRVR:CO2PR05MB729; H:P-EMF03-SAC.jnpr.net; FPR:; SPF:SoftFail; MLV:sfv; A:1; MX:1; LANG:en; 
X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:; SRVR:CO2PR05MB729; UriScan:; BCL:0; PCL:0; RULEID:; SRVR:CO2PR05MB681; 
X-Microsoft-Antispam-PRVS: <CO2PR05MB7295E5E232B0D314C1A729BC9F40@CO2PR05MB729.namprd05.prod.outlook.com>
X-Exchange-Antispam-Report-Test: UriScan:;
X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(5002010)(5005006); SRVR:CO2PR05MB729; BCL:0; PCL:0; RULEID:; SRVR:CO2PR05MB729; 
X-Forefront-PRVS: 0532BF6DC2
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Mar 2015 19:42:33.9553 (UTC)
X-MS-Exchange-CrossTenant-Id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=bea78b3c-4cdb-4130-854a-1d193232e5f4; Ip=[66.129.239.17];  Helo=[P-EMF03-SAC.jnpr.net]
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO2PR05MB729
X-OriginatorOrg: juniper.net
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/9Uq5SNcAqamSUn8G1UuRMN0cxpM>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] Y45 again
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: <http://www.ietf.org/mail-archive/web/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: Tue, 31 Mar 2015 19:42:38 -0000

Andy Bierman writes:
>This does not introduce any new YANG statements that are confusing to read.
>I totally disagree that this makes the module unreadable.
>I think it makes the changes to typedefs and groupings very easy
>to see and understand over time.  These new names will match the
>protocol names that are introducing a new version
>(eg. ssh-parms, ssh2-parms, http1.1-parms, http2.0-parms)

I don't think things are nearly that simple.  We're at version 17
of draft-ietf-netmod-routing-cfg and it's not even finished.  That's
up to 17 versions of each grouping/typedef threading together in
the style Lada gave, which means the "last call" readers don't get
the nice concise readable document we've been promising them.

It won't take long for authors to realise that non-global grouping
don't suffer this fate and to shift their BCP to not using our
global groupings/typedefs facilities.

That said, a module is publishing an API, a binding contract that
shouldn't randomly change.  If we accept that groupings and typedefs
are part of that API, then importers should able to depend on their
not changing.

On the other hand, if there groupings aren't flexible, what happens
when you have a bug?  Can you not change it because other users
might be relying on the broken behaviour?

It's really a whole rainbox of ugly, eh?

Thanks,
 Phil


From nobody Tue Mar 31 12:47:01 2015
Return-Path: <phil@juniper.net>
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 0C5481AD0A0 for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 12:46:59 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.902
X-Spam-Level: 
X-Spam-Status: No, score=-1.902 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] 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 b3AgRDde7Ple for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 12:46:57 -0700 (PDT)
Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1on0759.outbound.protection.outlook.com [IPv6:2a01:111:f400:fc10::759]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5ED541ACC8D for <netmod@ietf.org>; Tue, 31 Mar 2015 12:46:57 -0700 (PDT)
Received: from BL2PR05CA0025.namprd05.prod.outlook.com (10.255.226.25) by BL2PR05MB129.namprd05.prod.outlook.com (10.242.198.11) with Microsoft SMTP Server (TLS) id 15.1.125.19; Tue, 31 Mar 2015 19:46:40 +0000
Received: from BL2FFO11FD012.protection.gbl (2a01:111:f400:7c09::134) by BL2PR05CA0025.outlook.office365.com (2a01:111:e400:c04::25) with Microsoft SMTP Server (TLS) id 15.1.125.19 via Frontend Transport; Tue, 31 Mar 2015 19:46:40 +0000
Authentication-Results: spf=softfail (sender IP is 66.129.239.17) smtp.mailfrom=juniper.net; tail-f.com; dkim=none (message not signed) header.d=none;
Received-SPF: SoftFail (protection.outlook.com: domain of transitioning juniper.net discourages use of 66.129.239.17 as permitted sender)
Received: from P-EMF03-SAC.jnpr.net (66.129.239.17) by BL2FFO11FD012.mail.protection.outlook.com (10.173.161.18) with Microsoft SMTP Server (TLS) id 15.1.136.16 via Frontend Transport; Tue, 31 Mar 2015 19:46:39 +0000
Received: from magenta.juniper.net (172.17.27.123) by P-EMF03-SAC.jnpr.net (172.24.192.21) with Microsoft SMTP Server (TLS) id 14.3.146.0; Tue, 31 Mar 2015 12:46:37 -0700
Received: from idle.juniper.net (idleski.juniper.net [172.25.4.26])	by magenta.juniper.net (8.11.3/8.11.3) with ESMTP id t2VJkaD50876;	Tue, 31 Mar 2015 12:46:36 -0700 (PDT)	(envelope-from phil@juniper.net)
Received: from idle.juniper.net (localhost [127.0.0.1])	by idle.juniper.net (8.14.4/8.14.3) with ESMTP id t2VJjedR097868; Tue, 31 Mar 2015 15:45:40 -0400 (EDT)	(envelope-from phil@idle.juniper.net)
Message-ID: <201503311945.t2VJjedR097868@idle.juniper.net>
To: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <m2ego5l4rh.fsf@birdie.labs.nic.cz>
Date: Tue, 31 Mar 2015 15:45:40 -0400
From: Phil Shafer <phil@juniper.net>
MIME-Version: 1.0
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-Forefront-Antispam-Report: CIP:66.129.239.17; CTRY:US; IPV:NLI; EFV:NLI; BMV:1; SFV:NSPM; SFS:(10019020)(6009001)(199003)(189002)(164054003)(87936001)(62966003)(77156002)(76506005)(77096005)(54356999)(53416004)(6806004)(2950100001)(105596002)(47776003)(106466001)(86362001)(50466002)(50986999)(92566002)(48376002)(46102003); DIR:OUT; SFP:1102; SCL:1; SRVR:BL2PR05MB129; H:P-EMF03-SAC.jnpr.net; FPR:; SPF:SoftFail; MLV:sfv; A:1; MX:1; LANG:en; 
X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BL2PR05MB129;
X-Microsoft-Antispam-PRVS: <BL2PR05MB1291207FDCCC2296F0C2FCFC9F40@BL2PR05MB129.namprd05.prod.outlook.com>
X-Exchange-Antispam-Report-Test: UriScan:;
X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(5002010)(5005006); SRVR:BL2PR05MB129; BCL:0; PCL:0; RULEID:; SRVR:BL2PR05MB129; 
X-Forefront-PRVS: 0532BF6DC2
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Mar 2015 19:46:39.6812 (UTC)
X-MS-Exchange-CrossTenant-Id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=bea78b3c-4cdb-4130-854a-1d193232e5f4; Ip=[66.129.239.17];  Helo=[P-EMF03-SAC.jnpr.net]
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL2PR05MB129
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/EA9HDWktrGztwMQfdUK7KwbfPVQ>
Cc: netmod@ietf.org
Subject: Re: [netmod] Y45 again
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: <http://www.ietf.org/mail-archive/web/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: Tue, 31 Mar 2015 19:46:59 -0000

Ladislav Lhotka writes:
>BTW, does RFC 6020 forbid importing different revisions of the same
>module using different prefixes? If not, it might solve this issue.

Sure but if that's the solution, we're in big trouble ;^)

One of the things I learned looking back at the JUNOS DDL files
while we were working on YANG was that whatever facilities you
provide, people will use them in ways you never intended; often
ways you never conceived of, and sometimes ways that turn your
stomach.  But the BCP for how to handle problems like this shouldn't
involve multiple imports.

Thanks,
 Phil


From nobody Tue Mar 31 12:52:12 2015
Return-Path: <phil@juniper.net>
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 685D31ACE99 for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 12:52:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.902
X-Spam-Level: 
X-Spam-Status: No, score=-1.902 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] 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 ZRTKAU689snK for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 12:52:05 -0700 (PDT)
Received: from na01-bl2-obe.outbound.protection.outlook.com (mail-bl2on0133.outbound.protection.outlook.com [65.55.169.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1681F1AD1EC for <netmod@ietf.org>; Tue, 31 Mar 2015 12:52:05 -0700 (PDT)
Received: from BLUPR05CA0054.namprd05.prod.outlook.com (10.141.20.24) by BL2PR05MB130.namprd05.prod.outlook.com (10.242.198.15) with Microsoft SMTP Server (TLS) id 15.1.118.21; Tue, 31 Mar 2015 19:52:04 +0000
Received: from BL2FFO11OLC004.protection.gbl (2a01:111:f400:7c09::168) by BLUPR05CA0054.outlook.office365.com (2a01:111:e400:855::24) with Microsoft SMTP Server (TLS) id 15.1.125.19 via Frontend Transport; Tue, 31 Mar 2015 19:52:03 +0000
Authentication-Results: spf=softfail (sender IP is 66.129.239.17) smtp.mailfrom=juniper.net; ietf.org; dkim=none (message not signed) header.d=none;
Received-SPF: SoftFail (protection.outlook.com: domain of transitioning juniper.net discourages use of 66.129.239.17 as permitted sender)
Received: from P-EMF03-SAC.jnpr.net (66.129.239.17) by BL2FFO11OLC004.mail.protection.outlook.com (10.173.161.188) with Microsoft SMTP Server (TLS) id 15.1.136.16 via Frontend Transport; Tue, 31 Mar 2015 19:52:03 +0000
Received: from magenta.juniper.net (172.17.27.123) by P-EMF03-SAC.jnpr.net (172.24.192.21) with Microsoft SMTP Server (TLS) id 14.3.146.0; Tue, 31 Mar 2015 12:51:40 -0700
Received: from idle.juniper.net (idleski.juniper.net [172.25.4.26])	by magenta.juniper.net (8.11.3/8.11.3) with ESMTP id t2VJpdD54021;	Tue, 31 Mar 2015 12:51:39 -0700 (PDT)	(envelope-from phil@juniper.net)
Received: from idle.juniper.net (localhost [127.0.0.1])	by idle.juniper.net (8.14.4/8.14.3) with ESMTP id t2VJoipw097939; Tue, 31 Mar 2015 15:50:44 -0400 (EDT)	(envelope-from phil@idle.juniper.net)
Message-ID: <201503311950.t2VJoipw097939@idle.juniper.net>
To: Jan Lindblad <janl@tail-f.com>
In-Reply-To: <D8A04691-5368-4053-AFCE-CFBA9E8A26F2@tail-f.com>
Date: Tue, 31 Mar 2015 15:50:44 -0400
From: Phil Shafer <phil@juniper.net>
MIME-Version: 1.0
Content-Type: text/plain
X-EOPAttributedMessage: 0
X-Forefront-Antispam-Report: CIP:66.129.239.17; CTRY:US; IPV:NLI; EFV:NLI; BMV:1; SFV:NSPM; SFS:(10019020)(6009001)(164054003)(189002)(199003)(47776003)(105596002)(50466002)(62966003)(48376002)(2950100001)(77156002)(86362001)(46102003)(50986999)(6806004)(53416004)(76506005)(92566002)(54356999)(87936001)(106466001)(77096005); DIR:OUT; SFP:1102; SCL:1; SRVR:BL2PR05MB130; H:P-EMF03-SAC.jnpr.net; FPR:; SPF:SoftFail; MLV:sfv; MX:1; A:1; LANG:en; 
X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BL2PR05MB130;
X-Microsoft-Antispam-PRVS: <BL2PR05MB130ADC4022B318158843F08C9F40@BL2PR05MB130.namprd05.prod.outlook.com>
X-Exchange-Antispam-Report-Test: UriScan:;
X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(5002010)(5005006); SRVR:BL2PR05MB130; BCL:0; PCL:0; RULEID:; SRVR:BL2PR05MB130; 
X-Forefront-PRVS: 0532BF6DC2
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Mar 2015 19:52:03.0922 (UTC)
X-MS-Exchange-CrossTenant-Id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=bea78b3c-4cdb-4130-854a-1d193232e5f4; Ip=[66.129.239.17];  Helo=[P-EMF03-SAC.jnpr.net]
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL2PR05MB130
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/M7sOxS49AEhBFxpDR3UzYhJ9aBE>
Cc: netmod@ietf.org
Subject: Re: [netmod] Y45 again
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: <http://www.ietf.org/mail-archive/web/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: Tue, 31 Mar 2015 19:52:07 -0000

Jan Lindblad writes:
>Another mechanism that's been used quite often for 'implementation
>constants', like max values that vary between implementations or
>over time, is to have a section of the model containing such constants
>as config true values, but with access control rules effectively
>preventing any operator from ever changing them. Like this:

Relying on immutable configuration feels like a hack, not a BCP.

If we want box-specific constants, we should call them out as
a first-class construct.   I can certainly see their value,
but they aren't config and shouldn't masquerade as such.

Thanks,
 Phil


From nobody Tue Mar 31 12:55:10 2015
Return-Path: <phil@juniper.net>
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 81AF01A90CC for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 12:55:09 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.902
X-Spam-Level: 
X-Spam-Status: No, score=-1.902 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] 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 Q2Pop_Rx4GvE for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 12:55:08 -0700 (PDT)
Received: from na01-by2-obe.outbound.protection.outlook.com (mail-by2on0126.outbound.protection.outlook.com [207.46.100.126]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2ACCA1A9059 for <netmod@ietf.org>; Tue, 31 Mar 2015 12:55:08 -0700 (PDT)
Received: from CO2PR05MB729.namprd05.prod.outlook.com (10.141.228.12) by CO2PR05MB713.namprd05.prod.outlook.com (10.141.228.147) with Microsoft SMTP Server (TLS) id 15.1.118.21; Tue, 31 Mar 2015 19:55:07 +0000
Received: from BY2PR05CA025.namprd05.prod.outlook.com (10.141.250.15) by CO2PR05MB729.namprd05.prod.outlook.com (10.141.228.12) with Microsoft SMTP Server (TLS) id 15.1.118.21; Tue, 31 Mar 2015 19:55:06 +0000
Received: from BL2FFO11FD054.protection.gbl (2a01:111:f400:7c09::102) by BY2PR05CA025.outlook.office365.com (2a01:111:e400:2c5f::15) with Microsoft SMTP Server (TLS) id 15.1.125.19 via Frontend Transport; Tue, 31 Mar 2015 19:55:05 +0000
Received: from P-EMF03-SAC.jnpr.net (66.129.239.17) by BL2FFO11FD054.mail.protection.outlook.com (10.173.161.182) with Microsoft SMTP Server (TLS) id 15.1.125.13 via Frontend Transport; Tue, 31 Mar 2015 19:55:04 +0000
Received: from magenta.juniper.net (172.17.27.123) by P-EMF03-SAC.jnpr.net (172.24.192.21) with Microsoft SMTP Server (TLS) id 14.3.146.0; Tue, 31 Mar 2015 12:55:03 -0700
Received: from idle.juniper.net (idleski.juniper.net [172.25.4.26])	by magenta.juniper.net (8.11.3/8.11.3) with ESMTP id t2VJt2D55349;	Tue, 31 Mar 2015 12:55:02 -0700 (PDT)	(envelope-from phil@juniper.net)
Received: from idle.juniper.net (localhost [127.0.0.1])	by idle.juniper.net (8.14.4/8.14.3) with ESMTP id t2VJs6nd098003; Tue, 31 Mar 2015 15:54:06 -0400 (EDT)	(envelope-from phil@idle.juniper.net)
Message-ID: <201503311954.t2VJs6nd098003@idle.juniper.net>
To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
In-Reply-To: <20150331072754.GB70057@elstar.local>
Date: Tue, 31 Mar 2015 15:54:06 -0400
From: Phil Shafer <phil@juniper.net>
MIME-Version: 1.0
Content-Type: text/plain
X-EOPAttributedMessage: 0
Received-SPF: SoftFail (protection.outlook.com: domain of transitioning juniper.net discourages use of 66.129.239.17 as permitted sender)
Authentication-Results: spf=softfail (sender IP is 66.129.239.17) smtp.mailfrom=phil@juniper.net; ietf.org; dkim=none (message not signed) header.d=none;
X-Forefront-Antispam-Report: CIP:66.129.239.17; CTRY:US; IPV:NLI; EFV:NLI; BMV:1; SFV:NSPM; SFS:(10019020)(6009001)(199003)(189002)(164054003)(53416004)(105596002)(50466002)(76506005)(2950100001)(48376002)(46102003)(47776003)(6806004)(92566002)(87936001)(50986999)(62966003)(77156002)(77096005)(86362001)(54356999)(106466001); DIR:OUT; SFP:1102; SCL:1; SRVR:CO2PR05MB729; H:P-EMF03-SAC.jnpr.net; FPR:; SPF:SoftFail; MLV:sfv; A:1; MX:1; LANG:en; 
X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:; SRVR:CO2PR05MB729; UriScan:; BCL:0; PCL:0; RULEID:; SRVR:CO2PR05MB713; 
X-Microsoft-Antispam-PRVS: <CO2PR05MB7295D25F9B109A5E24FF8CFC9F40@CO2PR05MB729.namprd05.prod.outlook.com>
X-Exchange-Antispam-Report-Test: UriScan:;
X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(5002010)(5005006); SRVR:CO2PR05MB729; BCL:0; PCL:0; RULEID:; SRVR:CO2PR05MB729; 
X-Forefront-PRVS: 0532BF6DC2
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Mar 2015 19:55:04.8239 (UTC)
X-MS-Exchange-CrossTenant-Id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=bea78b3c-4cdb-4130-854a-1d193232e5f4; Ip=[66.129.239.17];  Helo=[P-EMF03-SAC.jnpr.net]
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO2PR05MB729
X-OriginatorOrg: juniper.net
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/9aw-9QefWw1idFzNXqhXYomZ4yk>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] Y45 again
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: <http://www.ietf.org/mail-archive/web/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: Tue, 31 Mar 2015 19:55:09 -0000

Juergen Schoenwaelder writes:
>The only variation to consider is to be less strict for enums and
>bits, that is allow additions since enums and bits are often used for
>(controlled) extensions. In other words, to learn the actual value set
>supported by an implementation, one has to ask the implementation
>(similar to identities). (This is what SMIv2 allowed, you can add
>named numbers to BITS and enumerated INTEGER types, but no other
>changes to types are allowed.)

I'm confused; how does one ask the implementation for the list
of supported identities?

Thanks,
 Phil


From nobody Tue Mar 31 12:56:28 2015
Return-Path: <andy@yumaworks.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 0412D1A90CC for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 12:56:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.979
X-Spam-Level: 
X-Spam-Status: No, score=-1.979 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] 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 Gh-hIYEPQNfP for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 12:56:25 -0700 (PDT)
Received: from mail-lb0-f181.google.com (mail-lb0-f181.google.com [209.85.217.181]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 37DA81A90B5 for <netmod@ietf.org>; Tue, 31 Mar 2015 12:56:25 -0700 (PDT)
Received: by lbbzk7 with SMTP id zk7so4473775lbb.0 for <netmod@ietf.org>; Tue, 31 Mar 2015 12:56:23 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=wyLO6qGucelstJLsDiiugQo/sB+Vw5945DtcLneEzmM=; b=Lqf3d8+uh0ekI1e2lBLCtY/0f8cpG6SWynuPhxZWXDAxtAcx9gpEhi69ToMC1S0gn1 Kbgl5pGiPNA7s/wMatf+AmUWZUtEW4z20FzU5ySVVyXuxR7bQ3jKNBtrW6FSyh9g/gI0 cqeM/184pyRI8t5S98GyCbFdSd9bt+A3pJyD0A/0peUaUzyYdCH2F/SwyAj8ry28qsUm h7oRx2dvUPH+v5Id76OlL47QjQAL0J331YqjStH60fOoeeZ9Pnnl/MSC4sKnTFAPxmNV 6c3m7cM1wa0RJcvr1YsZhOIWqvpAt03MD3bCDYcSI+njjBiGwQ2qc7jTt64x7mAQ5Fnd o0Vw==
X-Gm-Message-State: ALoCoQkajsNYR7usWu3m/no7/3Ajdn+VO2BdQ71/2jGsv4Wf4ZsIpHR8pdOARp2N9DDrhO3F76Ua
MIME-Version: 1.0
X-Received: by 10.152.87.135 with SMTP id ay7mr17289628lab.88.1427831783585; Tue, 31 Mar 2015 12:56:23 -0700 (PDT)
Received: by 10.112.98.168 with HTTP; Tue, 31 Mar 2015 12:56:23 -0700 (PDT)
In-Reply-To: <201503311941.t2VJf45r097817@idle.juniper.net>
References: <CABCOCHREqDWKG-d9pfdCCG38-7zeNHRcFX+WGZu9x20J7g3OJw@mail.gmail.com> <201503311941.t2VJf45r097817@idle.juniper.net>
Date: Tue, 31 Mar 2015 12:56:23 -0700
Message-ID: <CABCOCHQ5eOoNmR1snvSCo02nSWMsLMEXb=nu-zCdy9fM3iX6oQ@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Phil Shafer <phil@juniper.net>
Content-Type: text/plain; charset=UTF-8
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/XVgr3K1D16pmNVVW1X2Sqse74P8>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] Y45 again
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: <http://www.ietf.org/mail-archive/web/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: Tue, 31 Mar 2015 19:56:27 -0000

On Tue, Mar 31, 2015 at 12:41 PM, Phil Shafer <phil@juniper.net> wrote:
> Andy Bierman writes:
>>This does not introduce any new YANG statements that are confusing to read.
>>I totally disagree that this makes the module unreadable.
>>I think it makes the changes to typedefs and groupings very easy
>>to see and understand over time.  These new names will match the
>>protocol names that are introducing a new version
>>(eg. ssh-parms, ssh2-parms, http1.1-parms, http2.0-parms)
>
> I don't think things are nearly that simple.  We're at version 17
> of draft-ietf-netmod-routing-cfg and it's not even finished.  That's


The change rules do not apply to Internet Drafts.  Never did.
They only apply to published RFCs.  So if you can find
17 versions of any MIB or YANG definition across 17 RFCs,
then let me know.

> up to 17 versions of each grouping/typedef threading together in
> the style Lada gave, which means the "last call" readers don't get
> the nice concise readable document we've been promising them.
>
> It won't take long for authors to realise that non-global grouping
> don't suffer this fate and to shift their BCP to not using our
> global groupings/typedefs facilities.
>


The new names are not needed in Internet Drafts.
The change rules do not apply.  People break the change rules
in sec. 10 of RFC 6020 all the time during development
of a YANG module.  We only care about published modules.


> That said, a module is publishing an API, a binding contract that
> shouldn't randomly change.  If we accept that groupings and typedefs
> are part of that API, then importers should able to depend on their
> not changing.
>
> On the other hand, if there groupings aren't flexible, what happens
> when you have a bug?  Can you not change it because other users
> might be relying on the broken behaviour?
>

As I said before, the rigid change rules do not apply to bugs.
If the intent from the start was that the foo-range be 1..20,
but it got published as 1..10 by mistake, then changing it to 1..20
without a name change is OK because the intent was 1 .. 20
from the start.  We have done this several times with patterns
in IETF typedefs.


> It's really a whole rainbox of ugly, eh?
>

No, because you are wrong about how the change rules work.


> Thanks,
>  Phil


Andy


From nobody Tue Mar 31 13:52:02 2015
Return-Path: <mbj@tail-f.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 75A261ACEA1 for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 13:52:00 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.91
X-Spam-Level: 
X-Spam-Status: No, score=-1.91 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, T_RP_MATCHES_RCVD=-0.01] 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 tK9BNyKsUr1E for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 13:51:58 -0700 (PDT)
Received: from mail.tail-f.com (mail.tail-f.com [83.241.162.140]) by ietfa.amsl.com (Postfix) with ESMTP id 3DE3D1ACEA7 for <netmod@ietf.org>; Tue, 31 Mar 2015 13:51:58 -0700 (PDT)
Received: from localhost (unknown [213.136.39.104]) by mail.tail-f.com (Postfix) with ESMTPSA id C9E8B1280457; Tue, 31 Mar 2015 22:51:56 +0200 (CEST)
Date: Tue, 31 Mar 2015 22:52:17 +0200 (CEST)
Message-Id: <20150331.225217.1507585769954761751.mbj@tail-f.com>
To: j.schoenwaelder@jacobs-university.de
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <20150331115454.GA71187@elstar.local>
References: <20150331082904.GA70321@elstar.local> <20150331.132300.1653483257526034966.mbj@tail-f.com> <20150331115454.GA71187@elstar.local>
X-Mailer: Mew version 6.5 on Emacs 24.3 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/7yXW3_NZaasWH2WJEy6LwL3eDGw>
Cc: netmod@ietf.org
Subject: Re: [netmod] Y45 again
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: <http://www.ietf.org/mail-archive/web/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: Tue, 31 Mar 2015 20:52:00 -0000

Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote:
> On Tue, Mar 31, 2015 at 01:23:00PM +0200, Martin Bjorklund wrote:
> > Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote:
> > > On Tue, Mar 31, 2015 at 10:04:36AM +0200, Martin Bjorklund wrote:
> > > > Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote:
> > > > > On Mon, Mar 30, 2015 at 05:47:25PM -0700, Andy Bierman wrote:
> > > > > > Hi,
> > > > > > 
> > > > > > This is getting way too complicated for real deployment.
> > > > > > All the solutions seem way more complicated than just not
> > > > > > changing the intended value set of a released typedef or grouping.
> > > > > 
> > > > > [...]
> > > > > 
> > > > > > This is the least painful solution that works for everything.
> > > > > 
> > > > > I tend to agree.
> > > > > 
> > > > > The only variation to consider is to be less strict for enums and
> > > > > bits, that is allow additions since enums and bits are often used for
> > > > > (controlled) extensions. In other words, to learn the actual value set
> > > > > supported by an implementation, one has to ask the implementation
> > > > > (similar to identities). (This is what SMIv2 allowed, you can add
> > > > > named numbers to BITS and enumerated INTEGER types, but no other
> > > > > changes to types are allowed.)
> > > > 
> > > > Why are enums and bits special in this regard?  Why are "controlled
> > > > extensions" easier to handle than an expanded string pattern?
> > > > 
> > > > If we can get this to work for enums and bits, the same mechanism
> > > > should imo work for the other types as well.  Either the exact type is
> > > > important or the client or it is not.
> > > 
> > > Yes, we make different promises:
> > > 
> > > - If my tool uses yang:date-and-time (e.g., it knows how parse it, how
> > >   to store it efficiently internally, how to produce the canonical
> > >   representation), I can rely on it to not change. This is reasonable
> > >   and goodness.
> > 
> > Agreed.  One would think that this typedef is not changed easily.
> > 
> > But OTOH, if we have this:
> > 
> >   typedef timeout {
> >     type uint32 {
> >       range "0 | 10..180";
> >     }
> >   }
> > 
> > and then in the next version we realize that this was too short so we
> > do:
> > 
> >   typedef timeout {
> >     type uint32 {
> >       range "0 | 10..3600";
> >     }
> >   }
> > 
> > this is probably easier to deal with in the code than the case where
> > additional enums are defined.  For example, how do you translate
> > between JSON and CoMI if you get an enum you don't know the definition
> > for?
> > 
> > > - If my data model uses an identity, we make a different promise,
> > >   namely that the set of identities is open ended and I will need
> > >   runtime information to find out which set of identities can actually
> > >   be used for a certain leaf in the data model. This is reasonable and
> > >   goodness.
> > > 
> > > I argue that bits and enumerations are often used to model something
> > > that is by design extensible in protocols. If you agree with that,
> > > allowing this extensibility in data models is reasonable and goodness.
> > 
> > Right.  My new proposal allows this of course.
> > 
> > > What are the alternatives? Translate all enums into identities for the
> > > sake of being extensible? What do we do with bits then?
> > > 
> > > I understand the fundamental argument that either all types should be
> > > strict or flexible. But I do not think either extreme leads to
> > > something that is practically useful.
> > 
> > I agree that all strict has its problems, but I do not understand how
> > making enums/bit flexible is easier to deal with than making all types
> > flexible.
> 
> So you are saying typedef drift is not an issue anymore? Or are you
> saying typedef drift is an issue for all types except identityref and
> you just do not like enums and bits be treated differently?

The latter, but it is not so much that I don't like it, rather that I
do not understand why it can work for enums and bits, but not for
other types.

Also, I think that with the proposed solution, there is no ambiguity
anymore, even if import without revision is used.


/martin


From nobody Tue Mar 31 14:06:24 2015
Return-Path: <cwildes@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 4A2C51A8789 for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 14:06:23 -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 PZtvaVwtmXmY for <netmod@ietfa.amsl.com>; Tue, 31 Mar 2015 14:06:22 -0700 (PDT)
Received: from rcdn-iport-3.cisco.com (rcdn-iport-3.cisco.com [173.37.86.74]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 107F31A876D for <netmod@ietf.org>; Tue, 31 Mar 2015 14:06:22 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=5002; q=dns/txt; s=iport; t=1427835982; x=1429045582; h=from:to:subject:date:message-id:mime-version; bh=sYUSunKJpRjxD1cNVXW8faQWXr8dLi9wWNvsWLzFbVI=; b=dUIFLAvNHt9yUIiXAsxeuBTr9tDh8F6mMwO3Xtr4vnLCcsxufcHaRol8 x4KEMGjZJ0UFEbphDsF21UJkVPgn3f5uIUUuWyJa4EgHc3veF9KImhmxV Qarv9I8ditLSf2p7qsATXfHVlEZtuaCGtbL9Cjm8oXzMUtJE6ys/U8hzK I=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0ASBQC3CxtV/5RdJa1cgkNDgS4Fgw/IYx6BKEwBAQEBAQF9hBQBAgQjCl4BCAQNAwECKAMCBDAUCQoEARKIL7UImQkBAQEBAQEBAQEBAQEBAQEBAQEBAQEXiymEVBODAC+BFgWQYol1lDsig25vgUR/AQEB
X-IronPort-AV: E=Sophos;i="5.11,503,1422921600";  d="scan'208,217";a="408182165"
Received: from rcdn-core-12.cisco.com ([173.37.93.148]) by rcdn-iport-3.cisco.com with ESMTP; 31 Mar 2015 21:06:21 +0000
Received: from xhc-aln-x11.cisco.com (xhc-aln-x11.cisco.com [173.36.12.85]) by rcdn-core-12.cisco.com (8.14.5/8.14.5) with ESMTP id t2VL6Lk6028214 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Tue, 31 Mar 2015 21:06:21 GMT
Received: from xmb-aln-x13.cisco.com ([169.254.15.15]) by xhc-aln-x11.cisco.com ([173.36.12.85]) with mapi id 14.03.0195.001; Tue, 31 Mar 2015 16:06:21 -0500
From: "Clyde Wildes (cwildes)" <cwildes@cisco.com>
To: "Sterne, Jason (Jason)" <jason.sterne@alcatel-lucent.com>, "netmod@ietf.org" <netmod@ietf.org>
Thread-Topic: [netmod] syslog-model-03: buffered-logging-action as a list
Thread-Index: AQHQa/aJ9hjB++wfukiR7vIqXjJFDg==
Date: Tue, 31 Mar 2015 21:06:05 +0000
Message-ID: <BE65D339-4E02-48FB-A5ED-E33745DF8613@cisco.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [10.27.7.189]
Content-Type: multipart/alternative; boundary="_000_BE65D3394E0248FBA5EDE33745DF8613ciscocom_"
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/Zqv6C_evDZzndop_EOYtxCjCkw4>
Subject: Re: [netmod] syslog-model-03: buffered-logging-action as a list
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: <http://www.ietf.org/mail-archive/web/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: Tue, 31 Mar 2015 21:06:23 -0000

--_000_BE65D3394E0248FBA5EDE33745DF8613ciscocom_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

SmFzb24sDQoNCldlIHdpbGwgbW9kaWZ5IHRoZSBtb2RlbCB0byBtYWtlIHRoZSBidWZmZXJlZC1s
b2dnaW5nLWFjdGlvbiBhIGxpc3QgYXMgcmVxdWVzdGVkLg0KDQpUaGFua3MsDQoNCkNseWRlDQoN
CkZyb206IDxTdGVybmU+LCAiSmFzb24gKEphc29uKSINCkRhdGU6IFRodXJzZGF5LCBNYXJjaCAy
NiwgMjAxNSBhdCA1OjI5IFBNDQpUbzogIm5ldG1vZEBpZXRmLm9yZzxtYWlsdG86bmV0bW9kQGll
dGYub3JnPiINClN1YmplY3Q6IFtuZXRtb2RdIHN5c2xvZy1tb2RlbC0wMzogYnVmZmVyZWQtbG9n
Z2luZy1hY3Rpb24gYXMgYSBsaXN0DQoNCkhpIGFsbCwNCg0KTGFzdCBvbmUgZm9yIHRoaXMgcm91
bmQgb2YgcmV2aWV34oCmDQoNClNldmVyYWwgb3RoZXIgZGlzdHJpYnV0b3JzIGFyZSBhbHJlYWR5
IGxpc3RzLiBTb21lIGltcGxlbWVudGF0aW9ucyBhbHNvIHN1cHBvcnQgbXVsdGlwbGUgbWVtb3J5
IGJ1ZmZlcnMgKGUuZy4gb25lIGZvciBjcml0aWNhbCBsb2cgZXZlbnRzLCBvbmUgZm9yIGV2ZXJ5
dGhpbmcsIGV0YykuIENhbiB3ZSBtYWtlIGJ1ZmZlcmVkLWxvZ2dpbmctYWN0aW9uIGEgbGlzdCA/
DQoNCiAgICBjb250YWluZXIgYnVmZmVyZWQtbG9nZ2luZy1hY3Rpb24gew0KICAgICAgICBsaXN0
IGJ1ZmZlciB7DQogICAgICAgICAgICBrZXkgImJ1ZmZlci1uYW1lIjsNCiAgICAgICAgICAgIGxl
YWYgYnVmZmVyLW5hbWUge3R5cGUgc3RyaW5nO30NCiAgICAgICAgICAgIHVzZXMgc3lzbG9nLXNl
bGVjdG9yOw0KICAgICAgICAgICAgLi4uDQpSZWdhcmRzLA0KSmFzb24NCg0K

--_000_BE65D3394E0248FBA5EDE33745DF8613ciscocom_
Content-Type: text/html; charset="utf-8"
Content-ID: <F867B05F363B7B47840E5055DD8054BB@emea.cisco.com>
Content-Transfer-Encoding: base64

PGh0bWw+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0i
dGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjwvaGVhZD4NCjxib2R5IHN0eWxlPSJ3b3JkLXdy
YXA6IGJyZWFrLXdvcmQ7IC13ZWJraXQtbmJzcC1tb2RlOiBzcGFjZTsgLXdlYmtpdC1saW5lLWJy
ZWFrOiBhZnRlci13aGl0ZS1zcGFjZTsgY29sb3I6IHJnYigwLCAwLCAwKTsgZm9udC1zaXplOiAx
NHB4OyBmb250LWZhbWlseTogQ2FsaWJyaSwgc2Fucy1zZXJpZjsiPg0KPGRpdj4NCjxkaXY+DQo8
ZGl2Pkphc29uLDwvZGl2Pg0KPGRpdj48YnI+DQo8L2Rpdj4NCjxkaXY+V2Ugd2lsbCBtb2RpZnkg
dGhlIG1vZGVsIHRvIG1ha2UgdGhlIGJ1ZmZlcmVkLWxvZ2dpbmctYWN0aW9uIGEgbGlzdCBhcyBy
ZXF1ZXN0ZWQuPC9kaXY+DQo8ZGl2Pjxicj4NCjwvZGl2Pg0KPGRpdj5UaGFua3MsPC9kaXY+DQo8
ZGl2Pjxicj4NCjwvZGl2Pg0KPGRpdj5DbHlkZTwvZGl2Pg0KPGRpdj4NCjxkaXYgaWQ9Ik1BQ19P
VVRMT09LX1NJR05BVFVSRSI+PC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pjxi
cj4NCjwvZGl2Pg0KPHNwYW4gaWQ9Ik9MS19TUkNfQk9EWV9TRUNUSU9OIj4NCjxkaXYgc3R5bGU9
ImZvbnQtZmFtaWx5OkNhbGlicmk7IGZvbnQtc2l6ZToxMnB0OyB0ZXh0LWFsaWduOmxlZnQ7IGNv
bG9yOmJsYWNrOyBCT1JERVItQk9UVE9NOiBtZWRpdW0gbm9uZTsgQk9SREVSLUxFRlQ6IG1lZGl1
bSBub25lOyBQQURESU5HLUJPVFRPTTogMGluOyBQQURESU5HLUxFRlQ6IDBpbjsgUEFERElORy1S
SUdIVDogMGluOyBCT1JERVItVE9QOiAjYjVjNGRmIDFwdCBzb2xpZDsgQk9SREVSLVJJR0hUOiBt
ZWRpdW0gbm9uZTsgUEFERElORy1UT1A6IDNwdCI+DQo8c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6
Ym9sZCI+RnJvbTogPC9zcGFuPiZsdDtTdGVybmUmZ3Q7LCAmcXVvdDtKYXNvbiAoSmFzb24pJnF1
b3Q7PGJyPg0KPHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPkRhdGU6IDwvc3Bhbj5UaHVy
c2RheSwgTWFyY2ggMjYsIDIwMTUgYXQgNToyOSBQTTxicj4NCjxzcGFuIHN0eWxlPSJmb250LXdl
aWdodDpib2xkIj5UbzogPC9zcGFuPiZxdW90OzxhIGhyZWY9Im1haWx0bzpuZXRtb2RAaWV0Zi5v
cmciPm5ldG1vZEBpZXRmLm9yZzwvYT4mcXVvdDs8YnI+DQo8c3BhbiBzdHlsZT0iZm9udC13ZWln
aHQ6Ym9sZCI+U3ViamVjdDogPC9zcGFuPltuZXRtb2RdIHN5c2xvZy1tb2RlbC0wMzogYnVmZmVy
ZWQtbG9nZ2luZy1hY3Rpb24gYXMgYSBsaXN0PGJyPg0KPC9kaXY+DQo8ZGl2Pjxicj4NCjwvZGl2
Pg0KPGRpdj4NCjxtZXRhIG5hbWU9IkdlbmVyYXRvciIgY29udGVudD0iTWljcm9zb2Z0IEV4Y2hh
bmdlIFNlcnZlciI+DQo8IS0tIGNvbnZlcnRlZCBmcm9tIHJ0ZiAtLT48c3R5bGU+PCEtLSAuRW1h
aWxRdW90ZSB7IG1hcmdpbi1sZWZ0OiAxcHQ7IHBhZGRpbmctbGVmdDogNHB0OyBib3JkZXItbGVm
dDogIzgwMDAwMCAycHggc29saWQ7IH0gLS0+PC9zdHlsZT4NCjxkaXY+PGZvbnQgZmFjZT0iQ29u
c29sYXMiIHNpemU9IjIiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTAuNXB0OyI+DQo8ZGl2Pkhp
IGFsbCw8L2Rpdj4NCjxkaXY+Jm5ic3A7PC9kaXY+DQo8ZGl2Pkxhc3Qgb25lIGZvciB0aGlzIHJv
dW5kIG9mIHJldmlld+KApjwvZGl2Pg0KPGRpdj4mbmJzcDs8L2Rpdj4NCjxkaXY+U2V2ZXJhbCBv
dGhlciBkaXN0cmlidXRvcnMgYXJlIGFscmVhZHkgbGlzdHMuIFNvbWUgaW1wbGVtZW50YXRpb25z
IGFsc28gc3VwcG9ydCBtdWx0aXBsZSBtZW1vcnkgYnVmZmVycyAoZS5nLiBvbmUgZm9yIGNyaXRp
Y2FsIGxvZyBldmVudHMsIG9uZSBmb3IgZXZlcnl0aGluZywgZXRjKS4gQ2FuIHdlIG1ha2UgYnVm
ZmVyZWQtbG9nZ2luZy1hY3Rpb24gYSBsaXN0ID88L2Rpdj4NCjxkaXY+Jm5ic3A7PC9kaXY+DQo8
ZGl2PiZuYnNwOyZuYnNwOyZuYnNwOyBjb250YWluZXIgYnVmZmVyZWQtbG9nZ2luZy1hY3Rpb24g
ezwvZGl2Pg0KPGRpdj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsg
bGlzdCBidWZmZXIgezwvZGl2Pg0KPGRpdj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsga2V5ICZxdW90O2J1ZmZlci1uYW1l
JnF1b3Q7OzwvZGl2Pg0KPGRpdj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgbGVhZiBidWZmZXItbmFtZSB7dHlwZSBzdHJp
bmc7fTwvZGl2Pg0KPGRpdj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgdXNlcyBzeXNsb2ctc2VsZWN0b3I7PC9kaXY+DQo8
ZGl2PiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyAuLi48L2Rpdj4NCjxkaXY+UmVnYXJkcyw8L2Rpdj4NCjxkaXY+SmFzb248
L2Rpdj4NCjxkaXY+Jm5ic3A7PC9kaXY+DQo8L3NwYW4+PC9mb250PjwvZGl2Pg0KPC9kaXY+DQo8
L3NwYW4+DQo8L2JvZHk+DQo8L2h0bWw+DQo=

--_000_BE65D3394E0248FBA5EDE33745DF8613ciscocom_--

