
From nobody Sun Nov  1 05:12:35 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 48DDD1B8134 for <netmod@ietfa.amsl.com>; Sun,  1 Nov 2015 05:12:34 -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 cf4z2-v3wWwS for <netmod@ietfa.amsl.com>; Sun,  1 Nov 2015 05:12:31 -0800 (PST)
Received: from trail.lhotka.name (trail.lhotka.name [77.48.224.143]) by ietfa.amsl.com (Postfix) with ESMTP id 5F4761B8132 for <netmod@ietf.org>; Sun,  1 Nov 2015 05:12:31 -0800 (PST)
Received: from localhost (i223-218-131-39.s41.a014.ap.plala.or.jp [223.218.131.39]) by trail.lhotka.name (Postfix) with ESMTPSA id 0CD8A1CC01AE; Sun,  1 Nov 2015 14:12:33 +0100 (CET)
From: Ladislav Lhotka <lhotka@nic.cz>
To: Martin Bjorklund <mbj@tail-f.com>, andy@yumaworks.com
In-Reply-To: <20151030.164550.141056459871966571.mbj@tail-f.com>
References: <CABCOCHRRUrPF2XWgx8b6XSPK5TrXridz5honCc+pF6YTG8AAJg@mail.gmail.com> <20151030.164550.141056459871966571.mbj@tail-f.com>
User-Agent: Notmuch/0.20.2 (http://notmuchmail.org) Emacs/24.4.51.2 (x86_64-apple-darwin14.0.0)
Date: Sun, 01 Nov 2015 22:12:20 +0900
Message-ID: <m2mvux50ej.fsf@nic.cz>
MIME-Version: 1.0
Content-Type: text/plain
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/yex63ZNCjq0q_R0tV1cPpNPN3c4>
Cc: netmod@ietf.org
Subject: Re: [netmod] review of draft-ietf-netmod-rfc6020bis-08.txt
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 01 Nov 2015 13:12:34 -0000

Martin Bjorklund <mbj@tail-f.com> writes:
>
>> Sec. 1.1
>>    o  Made "when" and "if-feature" illegal on list keys, unless the
>>       parent is also conditional, and the condition matches the parent's
>>       condition.
>> 
>>   - This contradicts text in
>>    7.20.2:
>>    A leaf that is a list key MUST NOT have any "if-feature" statements.
>>    7.21.5:
>>    A leaf that is a list key MUST NOT have a "when" statement.
>> 
>>   - Which is correct?
>
> You're right, it seems this issue was never really resolved.
>
> See the thread:
> https://www.ietf.org/mail-archive/web/netmod/current/msg11537.html
>
> the last email on this issue is:
> https://www.ietf.org/mail-archive/web/netmod/current/msg11570.html
>
>>   - The 7.* MUST NOT text is not backward compatible with YANG 1.0
>>     I think the WG agreed on what the bullet in 1.1 says, not the
>>     new restrictions in 7.*
>
> In this email thread it was pointed out that this is very
> difficult to check for "when", and at least non-trivial for
> "if-feature".

Right, I think the consensus was it was an omission in 6020, and bug
fixes are permitted.

...

>> Sec. 5.7: Datastore Modification
>> 
>>   - This section is NETCONF specific for no apparent reason
>
> Ok.  I suggest s/NETCONF protocol messages/network management protocol
> messages/

I think it has nothing to do with YANG, except that such changes
shouldn't render the datastore invalid. There are inherent problems
connected to system-generated values though, e.g. what if the datastore
is locked in a NETCONF session? My proposal is to delete this section
altogether.

...

>> Sec. 7.10.3:  NETCONF <edit-config> Operations
>> 
>>  - Can these sections be changed to 'Configuration Datastore Edit
>>    Operations' and be generic so they focus on the contents of
>>    the datastore before and after the edit, without specifying
>>    <edit-config> as the edit operation
>
> Hmm, I think these sections are really edit-config-specific.  YANG
> Patch defines its own syntax, for example.

Agreed. I think enforcing the same NETCONF-like semantics for all users
of YANG is not good. Protocols that want something else will ignore such
statements - as RESTCONF did, and rightly so.

...

>>  - Para 1 says:
>>       If multiple "base" statements are present, the identity is derived
>>       from all of them.
>> 
>>    The draft does not say how this is done. It is not clear how
>>    a particular identity-stmt has multiple bases and how a server
>>    determines an identify is derived from multiple bases. Examples
>>    of a 'pass' and 'fail' for this test should be given.
>
> This section simply defines what "derived from" means.  An identity
> can be derived from zero, one or many other identites.

Yes, and sec. 9.10.2 specifies the permitted values for an identityref
type. IMO, everything is clear.

>
>> Sec. 7.21.5.  The when Statement
>> 
>>  bullet 3:
>>  - Altering the tree changes means that each when-stmt processes
>>    a different XML document.  IMO it is a bad idea to replace a
>>    node that is in the tree with a dummy node.  It is OK to create
>>    a temp dummy node as an implementation detail to decide if
>>    a when-stmt is true or not.
>
> We've discussed this at length on the ML.  I think the current text
> reflects WG consensus.  Without this text, it is not clear how to

Actually, when we put together this third bullet, I thought it would
only be used when there is no context node in the instance document. So
I agree with Andy here.

> interpret the theoretical corner case when the expression references
> nodes that are being augmented:
>
>    augment /... {
>      when "foo != 42";
>      leaf foo {
>        type int32;
>      }
>    }
>

It would be much better to exclude such references explicitly. In this
example, an instance of "foo" may actually exist with the value of "42"
- IMO this would be terribly confusing.

>> Sec. 8.1: Constraints on Data
>> 
>>  - bullets say constraint MUST be true, but this info should really
>>    be part of NETCONF, and should say what a NETCONF server should
>>    so when a constraint is false
>
> Do you want to make this text *more* NETCONF-specific?  The idea was
> that these conditions hold regardless of which protocol is used.

Right, validity of the data tree should be an absolute property,
independent of protocol or encoding.

...

>>  - what happens if a feature value is changed at boot-time or run-time,
>>    causing valid enumeration or bits values within a datastore to
>>    suddenly become invalid?  Changing the value set of a leaf or leaf-list
>>    with if-feature is very complicated and under-specified
>
> I think this is an implementation detail.  Some implementations don't
> even support enabling/disabling features.
>
> Compare with this situation:
>
>   leaf foo {
>     if-feature foo-feature;
>     ...
>   }
>
>   leaf my-i-i {
>     type instance-idnetifier;
>   }
>
> and then the datastore contains:
>
>    my-i-i = /foo
>
> Now suppose you disable 'foo-feature' in your server.  What happens to
> the datastore?

Right, there are also other ways for making the set of permitted values
of a type empty. Tools might emit a warning but that's all.

>> 
>> Sec. 9.10.5.  (Identityref) Usage Example
>> 
>>  - Add an example and use-case showing multiple base-stmts
>>    for an identityref
>
> I will try to come up with something simple.

In the example in Y13, the identityref could be

  type identityref {
    base share-alike;
    base non-commercial;
  }

and then the only permitted value would be CC-BY-NC-SA.

...

>
>> Sec. 10.3.1.  deref()
>> 
>>  - why is this XPath function needed?
>>    No use-cases are explained.
>>    The example given shows that deref(.) saves some extra typing
>>    from the previous line.  Not very interesting new feature.
>
> If the node is an instance-identifier, it is not possible to check the
> target node w/o deref().

Right, and evaluate() function in EXSLT does the same thing:

http://exslt.org/dyn/functions/evaluate/index.html

Maybe we could reuse its definition.

...

Lada

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


From nobody Sun Nov  1 06:51: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 E4C661B38ED for <netmod@ietfa.amsl.com>; Sun,  1 Nov 2015 06:51:22 -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 ecR9HixPlhEC for <netmod@ietfa.amsl.com>; Sun,  1 Nov 2015 06:51:20 -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 86EF81B38EC for <netmod@ietf.org>; Sun,  1 Nov 2015 06:51:20 -0800 (PST)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id 0B717FD5; Sun,  1 Nov 2015 15:51:19 +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 uu-ekuzC7Y2Y; Sun,  1 Nov 2015 15:51: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; Sun,  1 Nov 2015 15:51:18 +0100 (CET)
Received: from localhost (demetrius2.jacobs-university.de [212.201.44.47]) by hermes.jacobs-university.de (Postfix) with ESMTP id 1D1502003B; Sun,  1 Nov 2015 15:51:18 +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 1ow5AqzZuRto; Sun,  1 Nov 2015 15:51:17 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id DF74E2004E; Sun,  1 Nov 2015 15:51:16 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id 1A4683874B87; Sun,  1 Nov 2015 15:51:15 +0100 (CET)
Date: Sun, 1 Nov 2015 15:51:15 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Martin Bjorklund <mbj@tail-f.com>
Message-ID: <20151101145115.GA83722@elstar.local>
Mail-Followup-To: Martin Bjorklund <mbj@tail-f.com>, netmod@ietf.org
References: <20151029091758.GB78922@elstar.local> <20151029.131756.1681194827815089398.mbj@tail-f.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20151029.131756.1681194827815089398.mbj@tail-f.com>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/L3_NsBo-7lGcDMgSTQL0RwhyobY>
Cc: netmod@ietf.org
Subject: Re: [netmod] config lists without keys (Y09) / non-unique leaf-lists (Y57)
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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 01 Nov 2015 14:51:23 -0000

On Thu, Oct 29, 2015 at 01:17:56PM +0100, Martin Bjorklund wrote:
> Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote:
> > Hi,
> > 
> > the issues Y09 and Y57 were declared dead after intense discussions of
> > various solution proposals. It later appeared to me that there is a
> > solution that we have not considered. The requirement to have a key
> > for every list and unique values in a leaf-list for config nodes is
> > essentially there to allow edits on individual elements using
> > edit-config. The solution not considered so far is simply to give up
> > the ability to edit invidual elements, that is, a config list without
> > a key can only be modified as whole and similarily a leaf-list that
> > allows non-unique values can only be modified as a whole (with
> > edit-config). Comments?
> 
> How would this look in edit-config?  There are quite a few details to
> think through in order to support this.
>

Why would that be complicated for edit-config? This key-less list
would essentially be anyxml with a known structure. You likely do not
allow edit-config specific attributes on all of them.

/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 Nov  1 06:54: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 2AB491B3922 for <netmod@ietfa.amsl.com>; Sun,  1 Nov 2015 06:54:57 -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 484yr8d5GDLd for <netmod@ietfa.amsl.com>; Sun,  1 Nov 2015 06:54:55 -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 9CB341B3921 for <netmod@ietf.org>; Sun,  1 Nov 2015 06:54:55 -0800 (PST)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id 6EF011019; Sun,  1 Nov 2015 15:54:54 +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 a9mdDccYK-Bt; Sun,  1 Nov 2015 15:54:53 +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,  1 Nov 2015 15:54:53 +0100 (CET)
Received: from localhost (demetrius4.jacobs-university.de [212.201.44.49]) by hermes.jacobs-university.de (Postfix) with ESMTP id 7109C2004E; Sun,  1 Nov 2015 15:54:53 +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 XjQzavQ6_-WT; Sun,  1 Nov 2015 15:54:52 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id 2CA412003B; Sun,  1 Nov 2015 15:54:51 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id 1DC2F3874BB6; Sun,  1 Nov 2015 15:54:51 +0100 (CET)
Date: Sun, 1 Nov 2015 15:54:51 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Martin Bjorklund <mbj@tail-f.com>
Message-ID: <20151101145451.GB83722@elstar.local>
Mail-Followup-To: Martin Bjorklund <mbj@tail-f.com>, netmod@ietf.org
References: <20151029090615.GA78922@elstar.local> <20151029.131439.342471494392961439.mbj@tail-f.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20151029.131439.342471494392961439.mbj@tail-f.com>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/HQQaFUC3GzW0PgqQmNC41bSa84E>
Cc: netmod@ietf.org
Subject: Re: [netmod] leaf-list uniqueness requirement for non-config nodes
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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 01 Nov 2015 14:54:57 -0000

On Thu, Oct 29, 2015 at 01:14:39PM +0100, Martin Bjorklund wrote:
> Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote:
> > Hi,
> > 
> > RFC 6020 say:
> > 
> >    The values in a leaf-list MUST be unique.
> > 
> > While this may have a justification for config true nodes (to allow
> > modifications of individual elements using edit-config), this
> > constraint does not seem to make much sense for non-config nodes.
> > 
> > Note that YANG requires keys for lists for config nodes (to allow
> > modifications of individual elements using edit-config) but it does
> > not requires keys or uniqueness for for lists for non-config nodes.
> > 
> > In order to be consistent, I think the above requirement should be
> > changed to this:
> > 
> >    The values in a leaf-list MUST be unique if the nodes represent
> >    configuration.
> 
> I think this is kind of ok.  I would prefer to add a new statement
> that declares the leaf-list non-unique.  Such a list would be allowed
> in non-config scenarios.

OK. This would allow LMAP to have a simple vector of values in state
data, notifications, and rpcs. So your proposal would be

   leaf-list foo {
     type string
     unique false;
   }

with unique defaulting to true?

> And depending on the outcome of the discussion you just started on
> Y57, it might be ok also for config data...

Lets keep the threads separate...

/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 Nov  1 08:05: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 1D8161B87C5 for <netmod@ietfa.amsl.com>; Sun,  1 Nov 2015 08:05:33 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level: 
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=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 KpaVHeSSv7a6 for <netmod@ietfa.amsl.com>; Sun,  1 Nov 2015 08:05:31 -0800 (PST)
Received: from mail-lb0-x231.google.com (mail-lb0-x231.google.com [IPv6:2a00:1450:4010:c04::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 265891B87C4 for <netmod@ietf.org>; Sun,  1 Nov 2015 08:05:31 -0800 (PST)
Received: by lbjm5 with SMTP id m5so74115508lbj.3 for <netmod@ietf.org>; Sun, 01 Nov 2015 08:05:29 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks_com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=k10sF37+RaNr5L/bJ84Ex4kFCtbeOxnhcgFfIvPp9C8=; b=lBqJWGgj4f8E3wyXxfKLnKIRhhZtoaO98s79bXQ8HKLKkqZ2vo1Sql5v45jwALeNQL sNogZu+PWB8Tta/Of1DegRHMESXK7GPh8TTBgqxBUqcW4I1QntRQuBTEvCWsjZI/mBS5 s3Ejr3cvW70kmLjqDUdlbdo+EZ7o4CL9xfFg6TqRh/Sv6H7HPoWA32lrGXyiFkUjozwO mp3XhXTqOJlZFXycqVd/0FU49OvYWrEAvFvAVjJHMGFBrF65WURURI6SyUwwbiFaSAPh iQDrTiYyLtZukOM2NZZOUiPWHrotVcGqoX3gvbHkU9J5W18T3yars6d5yTJcsuy4wNxr uGvQ==
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=k10sF37+RaNr5L/bJ84Ex4kFCtbeOxnhcgFfIvPp9C8=; b=Hhol/KOhfrvWFy01zLoLWMqQK5ATsDyZnC9CpooN/xWuhZivdK0iv97LunWxaRQ51u zBUlrUPDbTLWMeMJtZ5mG4tRqV7D4qxG0O2axvOOm1jDCk8spKGC96uF5s9TtfFKnLAZ v3z/49JCefgXpbHEVgu4TxVakGK5aO3YrsU95aohp4shDawsjG082WFNsj2ZIU8P0L4k AtV2EMqyCrjU67FP0dbIu/zUdPTNdMQgOnz0Bq8qP0P5Mh1jjBC64qvqlkno08mYa33T Yhk2V5EDuerzDuHo0Bh13cqff7LZzBnnPCScwm+fb7jaEmTm/+JqbvZBHy52hC6nql94 1p2g==
X-Gm-Message-State: ALoCoQng/i5YGsrlYvBXlJ1CsXKj4q7OMbH2MMLElBvYzvpOdFXE2RzgsNy1XMLEp6I9Mx/LgMsf
MIME-Version: 1.0
X-Received: by 10.112.135.136 with SMTP id ps8mr7951586lbb.38.1446393929339; Sun, 01 Nov 2015 08:05:29 -0800 (PST)
Received: by 10.112.144.106 with HTTP; Sun, 1 Nov 2015 08:05:29 -0800 (PST)
In-Reply-To: <20151101145115.GA83722@elstar.local>
References: <20151029091758.GB78922@elstar.local> <20151029.131756.1681194827815089398.mbj@tail-f.com> <20151101145115.GA83722@elstar.local>
Date: Sun, 1 Nov 2015 08:05:29 -0800
Message-ID: <CABCOCHRU3-Y5xyK26CKK4gd3pDib7DMxZkakEXghb1-6qmLYZw@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>, Martin Bjorklund <mbj@tail-f.com>, "netmod@ietf.org" <netmod@ietf.org>
Content-Type: multipart/alternative; boundary=089e011607125d346e05237cd4f8
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/_3KV9frmOEnS3E1RnPNDU6TBJ-I>
Subject: Re: [netmod] config lists without keys (Y09) / non-unique leaf-lists (Y57)
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 01 Nov 2015 16:05:33 -0000

--089e011607125d346e05237cd4f8
Content-Type: text/plain; charset=UTF-8

Hi,

Why is this WG discussing issues that have been declared DEAD for
various reasons?  Optional keys break old clients, remember?
There was not enough interest in adding these features.


Andy


On Sun, Nov 1, 2015 at 6:51 AM, Juergen Schoenwaelder <
j.schoenwaelder@jacobs-university.de> wrote:

> On Thu, Oct 29, 2015 at 01:17:56PM +0100, Martin Bjorklund wrote:
> > Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote:
> > > Hi,
> > >
> > > the issues Y09 and Y57 were declared dead after intense discussions of
> > > various solution proposals. It later appeared to me that there is a
> > > solution that we have not considered. The requirement to have a key
> > > for every list and unique values in a leaf-list for config nodes is
> > > essentially there to allow edits on individual elements using
> > > edit-config. The solution not considered so far is simply to give up
> > > the ability to edit invidual elements, that is, a config list without
> > > a key can only be modified as whole and similarily a leaf-list that
> > > allows non-unique values can only be modified as a whole (with
> > > edit-config). Comments?
> >
> > How would this look in edit-config?  There are quite a few details to
> > think through in order to support this.
> >
>
> Why would that be complicated for edit-config? This key-less list
> would essentially be anyxml with a known structure. You likely do not
> allow edit-config specific attributes on all of them.
>
> /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
>

--089e011607125d346e05237cd4f8
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Hi,<div><br></div><div>Why is this WG discussing issues th=
at have been declared DEAD for</div><div>various reasons?=C2=A0 Optional ke=
ys break old clients, remember?</div><div>There was not enough interest in =
adding these features.=C2=A0</div><div><br></div><div><br></div><div>Andy</=
div><div><br></div></div><div class=3D"gmail_extra"><br><div class=3D"gmail=
_quote">On Sun, Nov 1, 2015 at 6:51 AM, Juergen Schoenwaelder <span dir=3D"=
ltr">&lt;<a href=3D"mailto:j.schoenwaelder@jacobs-university.de" target=3D"=
_blank">j.schoenwaelder@jacobs-university.de</a>&gt;</span> wrote:<br><bloc=
kquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #cc=
c solid;padding-left:1ex">On Thu, Oct 29, 2015 at 01:17:56PM +0100, Martin =
Bjorklund wrote:<br>
&gt; Juergen Schoenwaelder &lt;<a href=3D"mailto:j.schoenwaelder@jacobs-uni=
versity.de">j.schoenwaelder@jacobs-university.de</a>&gt; wrote:<br>
&gt; &gt; Hi,<br>
&gt; &gt;<br>
&gt; &gt; the issues Y09 and Y57 were declared dead after intense discussio=
ns of<br>
&gt; &gt; various solution proposals. It later appeared to me that there is=
 a<br>
&gt; &gt; solution that we have not considered. The requirement to have a k=
ey<br>
&gt; &gt; for every list and unique values in a leaf-list for config nodes =
is<br>
&gt; &gt; essentially there to allow edits on individual elements using<br>
&gt; &gt; edit-config. The solution not considered so far is simply to give=
 up<br>
&gt; &gt; the ability to edit invidual elements, that is, a config list wit=
hout<br>
&gt; &gt; a key can only be modified as whole and similarily a leaf-list th=
at<br>
&gt; &gt; allows non-unique values can only be modified as a whole (with<br=
>
&gt; &gt; edit-config). Comments?<br>
&gt;<br>
&gt; How would this look in edit-config?=C2=A0 There are quite a few detail=
s to<br>
&gt; think through in order to support this.<br>
&gt;<br>
<br>
Why would that be complicated for edit-config? This key-less list<br>
would essentially be anyxml with a known structure. You likely do not<br>
allow edit-config specific attributes on all of them.<br>
<span class=3D"HOEnZb"><font color=3D"#888888"><br>
/js<br>
<br>
--<br>
Juergen Schoenwaelder=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Jacobs Univer=
sity Bremen gGmbH<br>
Phone: +49 421 200 3587=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Campus Ring 1 | 28=
759 Bremen | Germany<br>
Fax:=C2=A0 =C2=A0+49 421 200 3103=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;<a h=
ref=3D"http://www.jacobs-university.de/" rel=3D"noreferrer" target=3D"_blan=
k">http://www.jacobs-university.de/</a>&gt;<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" rel=3D"noreferrer"=
 target=3D"_blank">https://www.ietf.org/mailman/listinfo/netmod</a><br>
</font></span></blockquote></div><br></div>

--089e011607125d346e05237cd4f8--


From nobody Sun Nov  1 09:09:16 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 E379A1B89EA for <netmod@ietfa.amsl.com>; Sun,  1 Nov 2015 09:09:14 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level: 
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=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 0Cjxh78T1iop for <netmod@ietfa.amsl.com>; Sun,  1 Nov 2015 09:09:11 -0800 (PST)
Received: from mail-lb0-x232.google.com (mail-lb0-x232.google.com [IPv6:2a00:1450:4010:c04::232]) (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 DA6191B89E5 for <netmod@ietf.org>; Sun,  1 Nov 2015 09:09:10 -0800 (PST)
Received: by lbbec13 with SMTP id ec13so75387524lbb.0 for <netmod@ietf.org>; Sun, 01 Nov 2015 09:09:09 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks_com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=n8+lQgvrN9o7FQzBID1huEZ1hlNCya+cGJW9L0qgnZs=; b=Cnsws0R/0F/hTDZE/3Jb5aBk9JC6Vm1xIchgfeOklX3nomOCEFow7DQ69vRVIZO/s6 +9xh0NP7clbeDttvpc4/XYF7FI31jfYdh962q1OB0pSEsRIo0oIhC0qv8ftaKasKos0G nnZh1uLaFyMM9Hq5HeihHctOb4lhgrqAYMjpgWhkzZFCuJF4jAddPtZi6XVChjRiL+Zs sTrPJA4k03a+/wiszrUO1oQ7+h1MBbo0KLJVVF2rhacFR5hYK9mgIkSk2c3OeKHSgnoK 57nnjelZ31d19oWEG650OH5YtSXM+wTmb0A+MidrffKhrgyC+lWqddhH+vQLr1IZmZ6e bsig==
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=n8+lQgvrN9o7FQzBID1huEZ1hlNCya+cGJW9L0qgnZs=; b=ZNpYBEbSiB0PNyWIwY4deiYaJ9myRchrmfIfyvEWJbWgg7RrXMWTeq227fnqR1xCDY c1JU+mK1fy+vcQV3+gZWE0kLdfUDcipsDv/EuuDmMs3BKZ1Wr6F0m6SrnM3TK7kmOOrd 9c46kGf/UaZ4DtxHRLZXh5Yt8/2PtLWILeTS/4k2LCtKwss4lxT7v7M09ZSK+ZTJ1Byg /8cc2ASkP5f0m2tvLzZXe1DD06b0B/zP0VMwGxDRMO9hCdfXCtCPmqeNwgBR8bPMAs2i G9YsL5f/bpEEUjvnabaue4eM5OM65CsE1JgV4vIS52ERV4PUe0vfxXLxvY7GHtPvOA4t IuYA==
X-Gm-Message-State: ALoCoQmfxIC8sDHnLsvG6gWwurBepaj3WEV1LYgormEfIpOySszzUkcBEgruHp9hTHOucVVxwRF9
MIME-Version: 1.0
X-Received: by 10.112.161.168 with SMTP id xt8mr8198311lbb.88.1446397748842; Sun, 01 Nov 2015 09:09:08 -0800 (PST)
Received: by 10.112.144.106 with HTTP; Sun, 1 Nov 2015 09:09:08 -0800 (PST)
In-Reply-To: <m2mvux50ej.fsf@nic.cz>
References: <CABCOCHRRUrPF2XWgx8b6XSPK5TrXridz5honCc+pF6YTG8AAJg@mail.gmail.com> <20151030.164550.141056459871966571.mbj@tail-f.com> <m2mvux50ej.fsf@nic.cz>
Date: Sun, 1 Nov 2015 09:09:08 -0800
Message-ID: <CABCOCHQqvSREXdRHO3v=TEkxF=KZizA0A_MbRXxFXDWyejHj0A@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Ladislav Lhotka <lhotka@nic.cz>
Content-Type: multipart/alternative; boundary=001a11c3cb36066a0605237db8c2
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/KEl5qs_l-sYldseQ3RJRAZgzqK4>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] review of draft-ietf-netmod-rfc6020bis-08.txt
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 01 Nov 2015 17:09:15 -0000

--001a11c3cb36066a0605237db8c2
Content-Type: text/plain; charset=UTF-8

On Sun, Nov 1, 2015 at 5:12 AM, Ladislav Lhotka <lhotka@nic.cz> wrote:

> Martin Bjorklund <mbj@tail-f.com> writes:
> >
> >> Sec. 1.1
> >>    o  Made "when" and "if-feature" illegal on list keys, unless the
> >>       parent is also conditional, and the condition matches the parent's
> >>       condition.
> >>
> >>   - This contradicts text in
> >>    7.20.2:
> >>    A leaf that is a list key MUST NOT have any "if-feature" statements.
> >>    7.21.5:
> >>    A leaf that is a list key MUST NOT have a "when" statement.
> >>
> >>   - Which is correct?
> >
> > You're right, it seems this issue was never really resolved.
> >
> > See the thread:
> > https://www.ietf.org/mail-archive/web/netmod/current/msg11537.html
> >
> > the last email on this issue is:
> > https://www.ietf.org/mail-archive/web/netmod/current/msg11570.html
> >
> >>   - The 7.* MUST NOT text is not backward compatible with YANG 1.0
> >>     I think the WG agreed on what the bullet in 1.1 says, not the
> >>     new restrictions in 7.*
> >
> > In this email thread it was pointed out that this is very
> > difficult to check for "when", and at least non-trivial for
> > "if-feature".
>
> Right, I think the consensus was it was an omission in 6020, and bug
> fixes are permitted.
>
>
The issue never occurred to u during development of 6020.
It is OK to say MUST NOT for YANG 1.1, but maybe not for a YANG 1.1 module
importing a YANG 1.0 module.

Since we agree that the keys and parent cannot
have different conditions, is it OK to assume that the
when and if-feature-stmts on the keys can be ignored,
if they appear in a YANG 1.0 module?


...
>
> >> Sec. 5.7: Datastore Modification
> >>
> >>   - This section is NETCONF specific for no apparent reason
> >
> > Ok.  I suggest s/NETCONF protocol messages/network management protocol
> > messages/
>
> I think it has nothing to do with YANG, except that such changes
> shouldn't render the datastore invalid. There are inherent problems
> connected to system-generated values though, e.g. what if the datastore
> is locked in a NETCONF session? My proposal is to delete this section
> altogether.
>


The problem is that there needs to be a good definition of a datastore.
Instead there are just descriptions of XML after a NETCONF <edit-config>
operation.



> ...
>
> >> Sec. 7.10.3:  NETCONF <edit-config> Operations
> >>
> >>  - Can these sections be changed to 'Configuration Datastore Edit
> >>    Operations' and be generic so they focus on the contents of
> >>    the datastore before and after the edit, without specifying
> >>    <edit-config> as the edit operation
> >
> > Hmm, I think these sections are really edit-config-specific.  YANG
> > Patch defines its own syntax, for example.
>
> Agreed. I think enforcing the same NETCONF-like semantics for all users
> of YANG is not good. Protocols that want something else will ignore such
> statements - as RESTCONF did, and rightly so.
>
> ...
>
> >>  - Para 1 says:
> >>       If multiple "base" statements are present, the identity is derived
> >>       from all of them.
> >>
> >>    The draft does not say how this is done. It is not clear how
> >>    a particular identity-stmt has multiple bases and how a server
> >>    determines an identify is derived from multiple bases. Examples
> >>    of a 'pass' and 'fail' for this test should be given.
> >
> > This section simply defines what "derived from" means.  An identity
> > can be derived from zero, one or many other identites.
>
> Yes, and sec. 9.10.2 specifies the permitted values for an identityref
> type. IMO, everything is clear.
>
> >
> >> Sec. 7.21.5.  The when Statement
> >>
> >>  bullet 3:
> >>  - Altering the tree changes means that each when-stmt processes
> >>    a different XML document.  IMO it is a bad idea to replace a
> >>    node that is in the tree with a dummy node.  It is OK to create
> >>    a temp dummy node as an implementation detail to decide if
> >>    a when-stmt is true or not.
> >
> > We've discussed this at length on the ML.  I think the current text
> > reflects WG consensus.  Without this text, it is not clear how to
>
> Actually, when we put together this third bullet, I thought it would
> only be used when there is no context node in the instance document. So
> I agree with Andy here.
>



I strongly object to any implementation details in the normative text.
One part of the draft says that XPath is completely conceptual and not
actually
required for implementation, but there is all this text that mandates how
when-stmt MUST be implemented.

Nobody is going to spend any resources to process XPath statements
to sort them by dependency.  That is a non-starter, especially for
a theoretical corner-case that is extremely unlikely.   We will solve this
problem in the tools, perhaps with a YANG extension (e.g. when-priority N;)
so vendors can force an evaluation order if the problem ever comes up.




>
> > interpret the theoretical corner case when the expression references
> > nodes that are being augmented:
> >
> >    augment /... {
> >      when "foo != 42";
> >      leaf foo {
> >        type int32;
> >      }
> >    }
> >
>
> It would be much better to exclude such references explicitly. In this
> example, an instance of "foo" may actually exist with the value of "42"
> - IMO this would be terribly confusing.
>
>

Nobody does this because it is gibberish from an operational POV.
Perhaps standardized network management has been such an
elusive goal because we obsess over theory and ignore operational
experience so often.



> >> Sec. 8.1: Constraints on Data
> >>
> >>  - bullets say constraint MUST be true, but this info should really
> >>    be part of NETCONF, and should say what a NETCONF server should
> >>    so when a constraint is false
> >
> > Do you want to make this text *more* NETCONF-specific?  The idea was
> > that these conditions hold regardless of which protocol is used.
>
> Right, validity of the data tree should be an absolute property,
> independent of protocol or encoding.
>
>

So how is the current text protocol independent?
Does this draft claim to support RESTCONF?
Does it need to say anything, or can protocol documents just
declare that YANG 1.1 applies to them?
That would be OK, except the NETCONF stuff needs to move
out of YANG somehow.


...
>
> >>  - what happens if a feature value is changed at boot-time or run-time,
> >>    causing valid enumeration or bits values within a datastore to
> >>    suddenly become invalid?  Changing the value set of a leaf or
> leaf-list
> >>    with if-feature is very complicated and under-specified
> >
> > I think this is an implementation detail.  Some implementations don't
> > even support enabling/disabling features.
> >
>



But some do support it and YANG does not say anything about
YANG features being frozen at boot-time.
That doesn't even help in the situation
where the features change across a reboot and the NV-saved config
is now invalid.


This is a major flaw in YANG not an implementation detail.
It is possible to change the value set such that existing values
become invalid, or such that the default-stmt for a leaf becomes invalid.




> > Compare with this situation:
> >
> >   leaf foo {
> >     if-feature foo-feature;
> >     ...
> >   }
> >
> >   leaf my-i-i {
> >     type instance-idnetifier;
> >   }
> >
> > and then the datastore contains:
> >
> >    my-i-i = /foo
> >
> > Now suppose you disable 'foo-feature' in your server.  What happens to
> > the datastore?
>

This is no different than just deleting a node without any if-feature.

The really broken part is the default-stmt can become invalid.

I agree the if-feature change can be treated like an internal
server datastore change, and error nodes will be pruned to adjust.
This works most of the time, and when it doesn't, it blows up
real good so the operator will fix it.




>
> Right, there are also other ways for making the set of permitted values
> of a type empty. Tools might emit a warning but that's all.
>


Are there existing ways to make the default-stmt invalid?

I agree that some corner-cases exist, like identityref.
Our server allows modules to be added or removed on the fly,
so the set of identities for a given identityref can change,
causing this same problem.





> >>
> >> Sec. 9.10.5.  (Identityref) Usage Example
> >>
> >>  - Add an example and use-case showing multiple base-stmts
> >>    for an identityref
> >
> > I will try to come up with something simple.
>
> In the example in Y13, the identityref could be
>
>   type identityref {
>     base share-alike;
>     base non-commercial;
>   }
>
> and then the only permitted value would be CC-BY-NC-SA.
>
> ...
>
> >
> >> Sec. 10.3.1.  deref()
> >>
> >>  - why is this XPath function needed?
> >>    No use-cases are explained.
> >>    The example given shows that deref(.) saves some extra typing
> >>    from the previous line.  Not very interesting new feature.
> >
> > If the node is an instance-identifier, it is not possible to check the
> > target node w/o deref().
>
> Right, and evaluate() function in EXSLT does the same thing:
>
> http://exslt.org/dyn/functions/evaluate/index.html
>
> Maybe we could reuse its definition.
>
> ...
>
> Lada
>

Andy


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

--001a11c3cb36066a0605237db8c2
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Sun, Nov 1, 2015 at 5:12 AM, Ladislav Lhotka <span dir=3D"ltr">&lt;<=
a href=3D"mailto:lhotka@nic.cz" target=3D"_blank">lhotka@nic.cz</a>&gt;</sp=
an> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;=
border-left:1px #ccc solid;padding-left:1ex">Martin Bjorklund &lt;<a href=
=3D"mailto:mbj@tail-f.com">mbj@tail-f.com</a>&gt; writes:<br>
&gt;<br>
&gt;&gt; Sec. 1.1<br>
&gt;&gt;=C2=A0 =C2=A0 o=C2=A0 Made &quot;when&quot; and &quot;if-feature&qu=
ot; illegal on list keys, unless the<br>
&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0parent is also conditional, and the cond=
ition matches the parent&#39;s<br>
&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0condition.<br>
&gt;&gt;<br>
&gt;&gt;=C2=A0 =C2=A0- This contradicts text in<br>
&gt;&gt;=C2=A0 =C2=A0 7.20.2:<br>
&gt;&gt;=C2=A0 =C2=A0 A leaf that is a list key MUST NOT have any &quot;if-=
feature&quot; statements.<br>
&gt;&gt;=C2=A0 =C2=A0 7.21.5:<br>
&gt;&gt;=C2=A0 =C2=A0 A leaf that is a list key MUST NOT have a &quot;when&=
quot; statement.<br>
&gt;&gt;<br>
&gt;&gt;=C2=A0 =C2=A0- Which is correct?<br>
&gt;<br>
&gt; You&#39;re right, it seems this issue was never really resolved.<br>
&gt;<br>
&gt; See the thread:<br>
&gt; <a href=3D"https://www.ietf.org/mail-archive/web/netmod/current/msg115=
37.html" rel=3D"noreferrer" target=3D"_blank">https://www.ietf.org/mail-arc=
hive/web/netmod/current/msg11537.html</a><br>
&gt;<br>
&gt; the last email on this issue is:<br>
&gt; <a href=3D"https://www.ietf.org/mail-archive/web/netmod/current/msg115=
70.html" rel=3D"noreferrer" target=3D"_blank">https://www.ietf.org/mail-arc=
hive/web/netmod/current/msg11570.html</a><br>
&gt;<br>
&gt;&gt;=C2=A0 =C2=A0- The 7.* MUST NOT text is not backward compatible wit=
h YANG 1.0<br>
&gt;&gt;=C2=A0 =C2=A0 =C2=A0I think the WG agreed on what the bullet in 1.1=
 says, not the<br>
&gt;&gt;=C2=A0 =C2=A0 =C2=A0new restrictions in 7.*<br>
&gt;<br>
&gt; In this email thread it was pointed out that this is very<br>
&gt; difficult to check for &quot;when&quot;, and at least non-trivial for<=
br>
&gt; &quot;if-feature&quot;.<br>
<br>
Right, I think the consensus was it was an omission in 6020, and bug<br>
fixes are permitted.<br>
<br></blockquote><div><br></div><div>The issue never occurred to u during d=
evelopment of 6020.</div><div>It is OK to say MUST NOT for YANG 1.1, but ma=
ybe not for a YANG 1.1 module</div><div>importing a YANG 1.0 module.</div><=
div><br></div><div>Since we agree that the keys and parent cannot</div><div=
>have different conditions, is it OK to assume that the</div><div>when and =
if-feature-stmts on the keys can be ignored,</div><div>if they appear in a =
YANG 1.0 module?</div><div><br></div><div><br></div><blockquote class=3D"gm=
ail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-le=
ft:1ex">
...<br>
<br>
&gt;&gt; Sec. 5.7: Datastore Modification<br>
&gt;&gt;<br>
&gt;&gt;=C2=A0 =C2=A0- This section is NETCONF specific for no apparent rea=
son<br>
&gt;<br>
&gt; Ok.=C2=A0 I suggest s/NETCONF protocol messages/network management pro=
tocol<br>
&gt; messages/<br>
<br>
I think it has nothing to do with YANG, except that such changes<br>
shouldn&#39;t render the datastore invalid. There are inherent problems<br>
connected to system-generated values though, e.g. what if the datastore<br>
is locked in a NETCONF session? My proposal is to delete this section<br>
altogether.<br></blockquote><div><br></div><div><br></div><div>The problem =
is that there needs to be a good definition of a datastore.</div><div>Inste=
ad there are just descriptions of XML after a NETCONF &lt;edit-config&gt;</=
div><div>operation.</div><div><br></div><div><br></div><blockquote class=3D=
"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding=
-left:1ex">
<br>
...<br>
<br>
&gt;&gt; Sec. 7.10.3:=C2=A0 NETCONF &lt;edit-config&gt; Operations<br>
&gt;&gt;<br>
&gt;&gt;=C2=A0 - Can these sections be changed to &#39;Configuration Datast=
ore Edit<br>
&gt;&gt;=C2=A0 =C2=A0 Operations&#39; and be generic so they focus on the c=
ontents of<br>
&gt;&gt;=C2=A0 =C2=A0 the datastore before and after the edit, without spec=
ifying<br>
&gt;&gt;=C2=A0 =C2=A0 &lt;edit-config&gt; as the edit operation<br>
&gt;<br>
&gt; Hmm, I think these sections are really edit-config-specific.=C2=A0 YAN=
G<br>
&gt; Patch defines its own syntax, for example.<br>
<br>
Agreed. I think enforcing the same NETCONF-like semantics for all users<br>
of YANG is not good. Protocols that want something else will ignore such<br=
>
statements - as RESTCONF did, and rightly so.<br>
<br>
...<br>
<br>
&gt;&gt;=C2=A0 - Para 1 says:<br>
&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0If multiple &quot;base&quot; statements =
are present, the identity is derived<br>
&gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0from all of them.<br>
&gt;&gt;<br>
&gt;&gt;=C2=A0 =C2=A0 The draft does not say how this is done. It is not cl=
ear how<br>
&gt;&gt;=C2=A0 =C2=A0 a particular identity-stmt has multiple bases and how=
 a server<br>
&gt;&gt;=C2=A0 =C2=A0 determines an identify is derived from multiple bases=
. Examples<br>
&gt;&gt;=C2=A0 =C2=A0 of a &#39;pass&#39; and &#39;fail&#39; for this test =
should be given.<br>
&gt;<br>
&gt; This section simply defines what &quot;derived from&quot; means.=C2=A0=
 An identity<br>
&gt; can be derived from zero, one or many other identites.<br>
<br>
Yes, and sec. 9.10.2 specifies the permitted values for an identityref<br>
type. IMO, everything is clear.<br>
<br>
&gt;<br>
&gt;&gt; Sec. 7.21.5.=C2=A0 The when Statement<br>
&gt;&gt;<br>
&gt;&gt;=C2=A0 bullet 3:<br>
&gt;&gt;=C2=A0 - Altering the tree changes means that each when-stmt proces=
ses<br>
&gt;&gt;=C2=A0 =C2=A0 a different XML document.=C2=A0 IMO it is a bad idea =
to replace a<br>
&gt;&gt;=C2=A0 =C2=A0 node that is in the tree with a dummy node.=C2=A0 It =
is OK to create<br>
&gt;&gt;=C2=A0 =C2=A0 a temp dummy node as an implementation detail to deci=
de if<br>
&gt;&gt;=C2=A0 =C2=A0 a when-stmt is true or not.<br>
&gt;<br>
&gt; We&#39;ve discussed this at length on the ML.=C2=A0 I think the curren=
t text<br>
&gt; reflects WG consensus.=C2=A0 Without this text, it is not clear how to=
<br>
<br>
Actually, when we put together this third bullet, I thought it would<br>
only be used when there is no context node in the instance document. So<br>
I agree with Andy here.<br></blockquote><div><br></div><div><br></div><div>=
<br></div><div>I strongly object to any implementation details in the norma=
tive text.</div><div>One part of the draft says that XPath is completely co=
nceptual and not actually</div><div>required for implementation, but there =
is all this text that mandates how</div><div>when-stmt MUST be implemented.=
</div><div><br></div><div>Nobody is going to spend any resources to process=
 XPath statements</div><div>to sort them by dependency.=C2=A0 That is a non=
-starter, especially for</div><div>a theoretical corner-case that is extrem=
ely unlikely. =C2=A0 We will solve this</div><div>problem in the tools, per=
haps with a YANG extension (e.g. when-priority N;)</div><div>so vendors can=
 force an evaluation order if the problem ever comes up.</div><div><br></di=
v><div><br></div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=
=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
&gt; interpret the theoretical corner case when the expression references<b=
r>
&gt; nodes that are being augmented:<br>
&gt;<br>
&gt;=C2=A0 =C2=A0 augment /... {<br>
&gt;=C2=A0 =C2=A0 =C2=A0 when &quot;foo !=3D 42&quot;;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 leaf foo {<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 type int32;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 }<br>
&gt;=C2=A0 =C2=A0 }<br>
&gt;<br>
<br>
It would be much better to exclude such references explicitly. In this<br>
example, an instance of &quot;foo&quot; may actually exist with the value o=
f &quot;42&quot;<br>
- IMO this would be terribly confusing.<br>
<br></blockquote><div><br></div><div><br></div><div>Nobody does this becaus=
e it is gibberish from an operational POV.</div><div>Perhaps standardized n=
etwork management has been such an</div><div>elusive goal because we obsess=
 over theory and ignore operational</div><div>experience so often.</div><di=
v><br></div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"mar=
gin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
&gt;&gt; Sec. 8.1: Constraints on Data<br>
&gt;&gt;<br>
&gt;&gt;=C2=A0 - bullets say constraint MUST be true, but this info should =
really<br>
&gt;&gt;=C2=A0 =C2=A0 be part of NETCONF, and should say what a NETCONF ser=
ver should<br>
&gt;&gt;=C2=A0 =C2=A0 so when a constraint is false<br>
&gt;<br>
&gt; Do you want to make this text *more* NETCONF-specific?=C2=A0 The idea =
was<br>
&gt; that these conditions hold regardless of which protocol is used.<br>
<br>
Right, validity of the data tree should be an absolute property,<br>
independent of protocol or encoding.<br>
<br></blockquote><div><br></div><div><br></div><div>So how is the current t=
ext protocol independent?</div><div>Does this draft claim to support RESTCO=
NF?</div><div>Does it need to say anything, or can protocol documents just<=
/div><div>declare that YANG 1.1 applies to them?</div><div>That would be OK=
, except the NETCONF stuff needs to move</div><div>out of YANG somehow.</di=
v><div><br></div><div><br></div><blockquote class=3D"gmail_quote" style=3D"=
margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
...<br>
<br>
&gt;&gt;=C2=A0 - what happens if a feature value is changed at boot-time or=
 run-time,<br>
&gt;&gt;=C2=A0 =C2=A0 causing valid enumeration or bits values within a dat=
astore to<br>
&gt;&gt;=C2=A0 =C2=A0 suddenly become invalid?=C2=A0 Changing the value set=
 of a leaf or leaf-list<br>
&gt;&gt;=C2=A0 =C2=A0 with if-feature is very complicated and under-specifi=
ed<br>
&gt;<br>
&gt; I think this is an implementation detail.=C2=A0 Some implementations d=
on&#39;t<br>
&gt; even support enabling/disabling features.<br>
&gt;<br></blockquote><div><br></div><div><br></div><div><br></div><div>But =
some do support it and YANG does not say anything about</div><div>YANG feat=
ures being frozen at boot-time.</div><div>That doesn&#39;t even help in the=
 situation</div><div>where the features change across a reboot and the NV-s=
aved config</div><div>is now invalid.</div><div><br></div><div><br></div><d=
iv>This is a major flaw in YANG not an implementation detail.</div><div>It =
is possible to change the value set such that existing values</div><div>bec=
ome invalid, or such that the default-stmt for a leaf becomes invalid.</div=
><div><br></div><div><br></div><div>=C2=A0</div><blockquote class=3D"gmail_=
quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1=
ex">
&gt; Compare with this situation:<br>
&gt;<br>
&gt;=C2=A0 =C2=A0leaf foo {<br>
&gt;=C2=A0 =C2=A0 =C2=A0if-feature foo-feature;<br>
&gt;=C2=A0 =C2=A0 =C2=A0...<br>
&gt;=C2=A0 =C2=A0}<br>
&gt;<br>
&gt;=C2=A0 =C2=A0leaf my-i-i {<br>
&gt;=C2=A0 =C2=A0 =C2=A0type instance-idnetifier;<br>
&gt;=C2=A0 =C2=A0}<br>
&gt;<br>
&gt; and then the datastore contains:<br>
&gt;<br>
&gt;=C2=A0 =C2=A0 my-i-i =3D /foo<br>
&gt;<br>
&gt; Now suppose you disable &#39;foo-feature&#39; in your server.=C2=A0 Wh=
at happens to<br>
&gt; the datastore?<br></blockquote><div><br></div><div>This is no differen=
t than just deleting a node without any if-feature.</div><div><br></div><di=
v>The really broken part is the default-stmt can become invalid.</div><div>=
<br></div><div>I agree the if-feature change can be treated like an interna=
l</div><div>server datastore change, and error nodes will be pruned to adju=
st.</div><div>This works most of the time, and when it doesn&#39;t, it blow=
s up</div><div>real good so the operator will fix it.</div><div><br></div><=
div><br></div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"m=
argin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Right, there are also other ways for making the set of permitted values<br>
of a type empty. Tools might emit a warning but that&#39;s all.<br></blockq=
uote><div><br></div><div><br></div><div>Are there existing ways to make the=
 default-stmt invalid?<br></div><div><br></div><div>I agree that some corne=
r-cases exist, like identityref.</div><div>Our server allows modules to be =
added or removed on the fly,</div><div>so the set of identities for a given=
 identityref can change,</div><div>causing this same problem.</div><div><br=
></div><div><br></div><div><br></div><div><br></div><blockquote class=3D"gm=
ail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-le=
ft:1ex">
<br>
&gt;&gt;<br>
&gt;&gt; Sec. 9.10.5.=C2=A0 (Identityref) Usage Example<br>
&gt;&gt;<br>
&gt;&gt;=C2=A0 - Add an example and use-case showing multiple base-stmts<br=
>
&gt;&gt;=C2=A0 =C2=A0 for an identityref<br>
&gt;<br>
&gt; I will try to come up with something simple.<br>
<br>
In the example in Y13, the identityref could be<br>
<br>
=C2=A0 type identityref {<br>
=C2=A0 =C2=A0 base share-alike;<br>
=C2=A0 =C2=A0 base non-commercial;<br>
=C2=A0 }<br>
<br>
and then the only permitted value would be CC-BY-NC-SA.<br>
<br>
...<br>
<br>
&gt;<br>
&gt;&gt; Sec. 10.3.1.=C2=A0 deref()<br>
&gt;&gt;<br>
&gt;&gt;=C2=A0 - why is this XPath function needed?<br>
&gt;&gt;=C2=A0 =C2=A0 No use-cases are explained.<br>
&gt;&gt;=C2=A0 =C2=A0 The example given shows that deref(.) saves some extr=
a typing<br>
&gt;&gt;=C2=A0 =C2=A0 from the previous line.=C2=A0 Not very interesting ne=
w feature.<br>
&gt;<br>
&gt; If the node is an instance-identifier, it is not possible to check the=
<br>
&gt; target node w/o deref().<br>
<br>
Right, and evaluate() function in EXSLT does the same thing:<br>
<br>
<a href=3D"http://exslt.org/dyn/functions/evaluate/index.html" rel=3D"noref=
errer" target=3D"_blank">http://exslt.org/dyn/functions/evaluate/index.html=
</a><br>
<br>
Maybe we could reuse its definition.<br>
<br>
...<br>
<br>
Lada<br></blockquote><div><br></div><div>Andy</div><div>=C2=A0</div><blockq=
uote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc =
solid;padding-left:1ex">
<span class=3D"HOEnZb"><font color=3D"#888888"><br>
--<br>
Ladislav Lhotka, CZ.NIC Labs<br>
PGP Key ID: E74E8C0C<br><br></font></span></blockquote><div><br></div><div>=
=C2=A0</div></div><br></div></div>

--001a11c3cb36066a0605237db8c2--


From nobody Sun Nov  1 09:16:26 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 BD2A01B8A04 for <netmod@ietfa.amsl.com>; Sun,  1 Nov 2015 09:16:24 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level: 
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=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 YNJFwdocHHtz for <netmod@ietfa.amsl.com>; Sun,  1 Nov 2015 09:16:23 -0800 (PST)
Received: from mail-lf0-x22d.google.com (mail-lf0-x22d.google.com [IPv6:2a00:1450:4010:c07::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 8148F1B8A03 for <netmod@ietf.org>; Sun,  1 Nov 2015 09:16:23 -0800 (PST)
Received: by lffz202 with SMTP id z202so53007020lff.3 for <netmod@ietf.org>; Sun, 01 Nov 2015 09:16:21 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks_com.20150623.gappssmtp.com; s=20150623; h=mime-version:date:message-id:subject:from:to:content-type; bh=eQGfJh3JxNOT4kZaxXAfTSf1yuJfdWOHXfo4sP4KJI4=; b=c6+MGaFgvdzQ/gOPbdafccp7uqgs+96Z1Y06rWy8NGbZQxHywxteDJv7I+Na/IMO4P wwD+VRd+SKcaLiZZ24nGdrb3plKtvkd5Q/iLjZp8bNbTRXpLyavLoIGRef72pDP/9Px3 jRNvULJ119p1S82SL6LAn+3UY6qff7ilZ2L+A8Qld+R/g89We5pKLAAL8t+4OPbHBtsQ i1vm087M0RK+JDVOhredvphBT9qqsivO/KOtj920QpWbfLTT4k1mdwCRJmlZ0rTuHFxg T0WP9wSCbEWWhP4N9B677y+IlaKYs0VlTbbVHVPbeYt8zDyTcn31Kj7Ivqzj+W06hLXe PsWA==
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=eQGfJh3JxNOT4kZaxXAfTSf1yuJfdWOHXfo4sP4KJI4=; b=FhY3GKja4qFhizKjdx0rSV6mxw5f5TD1CUGpwupwsgfQXNfycRLg7lYVjuBxS4qIE7 MHTzcZ/Q5PJPUITc8N3VAE4s2lI5tFnkEcWhpeqyJJTIBhxT8Q9q3i/fRYjeyZ5TfaCL dWjhBNr1F4B4rUd0t93eaEznyles+EOKpsVSb4ATHKIchSz63YhxUuWt9NWyeMTrAzMZ Sn2IyjQeSmfxsT3zbYgVMISOBxRXzD1vvVm8k7Tc9UxSk1r0kcfZ75prPlR2bD3/eKMd XlHay9im3ldaZ2axNI/BZoU55Zbt16jWqWspCzNB4Tm4tkjFHI0pKNOMw0yzKaR0K+Y4 +ppQ==
X-Gm-Message-State: ALoCoQkRVEVJ5Ug6L6X+9mcGLPV1Kb5k1+vVwNh2QCht32Suu3Za3j2vqu+kLoHXtFwLw39admVu
MIME-Version: 1.0
X-Received: by 10.25.218.135 with SMTP id r129mr5298843lfg.82.1446398181635; Sun, 01 Nov 2015 09:16:21 -0800 (PST)
Received: by 10.112.144.106 with HTTP; Sun, 1 Nov 2015 09:16:21 -0800 (PST)
Date: Sun, 1 Nov 2015 09:16:21 -0800
Message-ID: <CABCOCHQPYO3t4f1JV6JtAmfvsaWFTB0BLcvd3beww_J3fjrrQw@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: "netmod@ietf.org" <netmod@ietf.org>
Content-Type: multipart/alternative; boundary=001a114037e4d2162905237dd14d
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/ZsyXxbLk_DbyPV5YEBJW3Ouxv30>
Subject: [netmod] if-feature and default
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 01 Nov 2015 17:16:24 -0000

--001a114037e4d2162905237dd14d
Content-Type: text/plain; charset=UTF-8

Hi,

I started a separate thread for this issue.
The current YANG 1.1 text is incomplete wrt/ default-stmt.

  leaf broken {
     type enumeration {
        enum option1 {
           if-feature option1;
        }
        enum option2 {
           if-feature option2;
        }
        enum option3;
     }
     default "option2";
   }


What happens if the server does not advertise the option2 feature?

I see 2 options:
  (A) add text that says a default-stmt MUST NOT include any conditional
      values
  (B) allow if-feature as a sub-statement of the default-stmt

(BTW, customers have asked for (B), so it may be a feature and a bugfix)


Andy

--001a114037e4d2162905237dd14d
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Hi,<div><br></div><div>I started a separate thread for thi=
s issue.</div><div>The current YANG 1.1 text is incomplete wrt/ default-stm=
t.</div><div><br></div><div>=C2=A0 leaf broken {</div><div>=C2=A0 =C2=A0 =
=C2=A0type enumeration {</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 enum option1=
 {</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if-feature option1;</=
div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 }</div><div><div>=C2=A0 =C2=A0 =C2=A0 =
=C2=A0 enum option2 {</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if=
-feature option2;</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 }</div></div><div>=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 enum option3;</div><div>=C2=A0 =C2=A0 =C2=A0}</=
div><div>=C2=A0 =C2=A0 =C2=A0default &quot;option2&quot;;</div><div>=C2=A0 =
=C2=A0}</div><div><br></div><div><br></div><div>What happens if the server =
does not advertise the option2 feature?</div><div><br></div><div>I see 2 op=
tions:</div><div>=C2=A0 (A) add text that says a default-stmt MUST NOT incl=
ude any conditional</div><div>=C2=A0 =C2=A0 =C2=A0 values</div><div>=C2=A0 =
(B) allow if-feature as a sub-statement of the default-stmt</div><div><br><=
/div><div>(BTW, customers have asked for (B), so it may be a feature and a =
bugfix)</div><div><br></div><div><br></div><div>Andy</div><div><br></div><d=
iv><br></div><div><br></div></div>

--001a114037e4d2162905237dd14d--


From nobody Sun Nov  1 12:11:14 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 8D9C21B8B9C for <netmod@ietfa.amsl.com>; Sun,  1 Nov 2015 12:11:12 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.678
X-Spam-Level: 
X-Spam-Status: No, score=-0.678 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, J_CHICKENPOX_65=0.6, 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 sSsKJ1uQhPM5 for <netmod@ietfa.amsl.com>; Sun,  1 Nov 2015 12:11:06 -0800 (PST)
Received: from mail-lb0-x22c.google.com (mail-lb0-x22c.google.com [IPv6:2a00:1450:4010:c04::22c]) (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 8AF651B2D4F for <netmod@ietf.org>; Sun,  1 Nov 2015 12:11:05 -0800 (PST)
Received: by lbbec13 with SMTP id ec13so76761268lbb.0 for <netmod@ietf.org>; Sun, 01 Nov 2015 12:11:03 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks_com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=O0tRzZG2Q7ls5qASotXDqTzXSxE5bvko8ypfHg/foM8=; b=hXY0SzVFezK4+Ycb1fBkq4+lZemFqOb/Hk0QCYp2tu7k5YxGJFvC0MsQc/UIV8hWlG fOkSoRI9r4wHLVGe5nInsLR6Qh2Qg+P26kGMj9XjIETmy31WrTy1Zmtbx+pCGfN2GxVv F+uqgmVNVylZ7RgDtYpYPY5MB2BAzbMFmi1TEIEBOuFH9MJyGqpzDe5CYhdc7iul9F57 LmyPzuslLvCzYdOgE5nyt1B2U8ceYBbsuE9m936zDQFeg89lsnHFs7Uwf0kyfuH1vVfS EvpPdeqZUYn6uN0Mz1qYWUKf4ESeHizhYqOd2BdPaSn2aEupoAaev+q1RVsCiAzbXiUi tTvQ==
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=O0tRzZG2Q7ls5qASotXDqTzXSxE5bvko8ypfHg/foM8=; b=PJRjCGXj3JPyXT6Uq5xzXp4ytZd7VJP/ppFaGKvQxt+UdbpA6vZpWuS8g0k7iat7W6 l0hJ8SPdh0wDfddhmPxJEVO0CmIdQEL9IS7cKItHVPqcyh/U+IBTByuG/W6otfn2Wbu4 3ZP8CvQOaXn7nXLNwxRj9U/i0JNoiJjDuNTTLou2umwXbzDTM2V0PGiJH0Nlxq48LxO1 8tHbP4ptyyofJM8ck8dYGwemMfUVmtXVxN9he4UVn9kf6s0ujy80/q4uyBY6BmO3NZUe KPiPnR9hRyDLC5GrYZUS6E9ombroT2WZ2kz4tEsXvg7lYu29yDwKDweQ+3GuOcQp3jw8 KyxA==
X-Gm-Message-State: ALoCoQncQTG7ovfj0j8yMhbWNkB2bPJNvngYrj8tyeamVgDtLD1gCoICfQMGqphRkC01Q72IoCfO
MIME-Version: 1.0
X-Received: by 10.112.161.168 with SMTP id xt8mr8417085lbb.88.1446408663433; Sun, 01 Nov 2015 12:11:03 -0800 (PST)
Received: by 10.112.144.106 with HTTP; Sun, 1 Nov 2015 12:11:03 -0800 (PST)
In-Reply-To: <20151030.164550.141056459871966571.mbj@tail-f.com>
References: <CABCOCHRRUrPF2XWgx8b6XSPK5TrXridz5honCc+pF6YTG8AAJg@mail.gmail.com> <20151030.164550.141056459871966571.mbj@tail-f.com>
Date: Sun, 1 Nov 2015 12:11:03 -0800
Message-ID: <CABCOCHTVMn9tTF7jeMvVP1csiPSgBvO3EstT8n7yfsnsy1mUAg@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Martin Bjorklund <mbj@tail-f.com>
Content-Type: multipart/alternative; boundary=001a11c3cb3695a8f50523804239
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/2IimzPRJ-U90VLlAcnjOd8lpUvo>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] review of draft-ietf-netmod-rfc6020bis-08.txt
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 01 Nov 2015 20:11:12 -0000

--001a11c3cb3695a8f50523804239
Content-Type: text/plain; charset=UTF-8

On Fri, Oct 30, 2015 at 8:45 AM, Martin Bjorklund <mbj@tail-f.com> wrote:

> Hi Andy,
>
> ...
>


> >  - Should 'may' be 'MAY'?
>
> Actually, since the enitire section 4 is not marked as:
>
>    This non-normative section is intended to give a high-level overview
>    of YANG to first-time readers.
>
> I think we should remove all 2119-keywords from section 4.
>
>

OK






> > Sec. 5.6.4: para 2:
> >
> >    A server MUST NOT implement more than one revision of a module.
> >
> >  - IMO this should a SHOULD NOT or 'MUST NOT advertise' instead
> >    of MUST NOT implement
>
> There is an ongoing thread on this topic, the last msg is:
>
> https://www.ietf.org/mail-archive/web/netmod/current/msg14211.html
>
> The question in this msg is not yet answered.
>
> >    Example of possible exception:
> >     - rev N-1 has object needed by application
> >     - rev N has that object set to status 'obsolete' (and removed)
> >     - rev N also has other objects unrelated to the obsolete object
> >       but desired for the product feature set
>
> In this case revision N should be implemented.
>


but then the obsolete object is not allowed, right?

So the server has to advertise N-1.
Hopefully deviations can be constructed to represent the changes
from version N-1 to N, and the server will advertise the deviations.




>
> > Sec. 5.6.4:
> >   - para 4: the rules for populating the YANG library should probably be
> >     in the yang-library draft
> >   - the example on page 35 - 37 should probably be in the
> >     yang-library draft
>
> Maybe, but I think this document might seem under-specified unless we
> define these rules here.
>


Right, because you have to add a reference to the external document.
This is not that important since the library is only intended for
YANG modules.



>
> > Sec. 5.6.5.  Announcing Conformance Information in NETCONF
> >
> >   - This should really be in a NETCONF 1.2 spec
>
> Maybe, but we need to work with NETCONF 1.1 now.
>


So if there is a NETCONF 1.2 someday, does that mean we will
also have a YANG 1.n that moves the NETCONF specific text?
If so, then I don't have any concerns about NETCONF-specific YANG.





>
> >   - RESTCONF draft defines ietf-yang-library requirements for RESTCONF.
> >     Why should YANG 1.1 define NETCONF ietf-yang-library requirements?
>
> B/c this document defines both the language and the NETCONF mapping.
>
>
So we will do the same for NETCONF if there is a NETCONF 1.2 someday



> > Sec. 5.7: Datastore Modification
> >
> >   - This section is NETCONF specific for no apparent reason
>
> Ok.  I suggest s/NETCONF protocol messages/network management protocol
> messages/
>


OK




>
> > Sec. 6.4.1: bullet 5
> >
> >    o  The set of variable bindings is empty.
> >
> >   - This is not true.  The NACM data model defines the USER variable.
> >     This text should say that YANG modules MAY define variable bindings
> >     associated with conformance for that module (like NACM does).
>
> No, the USER variable is only available in expressions of type
> nacm:node-instance-identifier.   It cannot be used in must/when
> expressions.
>


OK

I checked our code and we do not use any variable sets in must/when.
It is only select.



>
> > Sec. 6.4.1: XPath accessible tree
> >
> >   - I object to expanding the context of XPath evaluation for
> >     notification and rpc/input, rpc/output.  This is too complicated
> >     to implement and under-specified, resulting in poor interoperability.
>
> This is issue Y04, and it was discussed at the WG interim 2014-06-11.
>


I won't object but reality does not agree with your text.
Servers do not run XPath on their own output, so the XPath
is going to be enforced conceptually in the instrumentation.

Outside the server, there does not exist a tool that can reliably reproduce
the instance document to evaluate, that includes the config and operational
state
at the instant the notification or rpc/output was generated.
(As if that is well-defined either).


> >   - What is the justification for this expansion of complexity?
> >     An tool cannot reproduce the same result anymore for
> >     <rpc>, <rpc-reply> or <notification> offline validation.
>
> It couldn't do that earlier either, if there were leafrefs in the
> data.
>
> I agree with all your concerns below.  I would prefer Y04-01, but that
> would brake RFC 6643 :(
>
> Maybe we should consider doing this only for the 'path' statement.  It
> has the same set of issues of course.
>
> >  - Notification context expanded from notification message to message +
> >    running config + operational state;  When is the server supposed
> >    to gather and check all the data nodes? Event time? Buffer time?
> >    Send time? What if operational state or config changes while the
> >    notification is in the replay buffer?
> >
> >  - RPC input context expanded from input message to message +
> >    running config + operational state;  When is the server supposed
> >    to gather and check all the data nodes? Parse time? Buffer time?
> >    Invocation time?
> >
> >  - RPC output context expanded from input message to message +
> >    running config + operational state;  Is the server supposed to
> >    wait for operational state that may change as a result of the
> >    action or rpc being invoked?
> >
> >  - The expanded contexts for notification and rpc statements
> >    require coupling of the notification and RPC processing
> >    implementation components to the datastore and operational data.
> >    This is a big change from current NETCONF requirements.
> >    YANG should not be making any changes to NETCONF, but it does
> >    in several places, effectively creating a new undeclared
> >    version of the NETCONF protocol
> >
> >  - It is not clear if "action" and "notification" statements
> >    nested in the data tree are visible at all for XPath evaluation.
> >    (They MUST NOT be visible)
>
> Agree.  I think this is covered since the accessible tree is made up
> of data nodes, and action/notification are not data nodes.
>
> >  - NETCONF <get> and <get-config> "filter" element needs clarification
> >    wrt/ action and notification within the data tree
>
> Why?  These nodes are not part of the data tree (datastore).
>
>

RFC 5277 filters will be run against the top-node, which will be
the ancestor nodes, not <notification> or <my-event>,
Can nested notifications be filtered, and if so, how does it work?



>  - NETCONF and RESTCONF notifications "filter" element needs clarification
> >    wrt/ action and notification within the data tree
> >
> > Sec. 7.5.3: must: last para
> >
> >    Also note that the XPath expression is conceptually evaluated.  This
> >    means that an implementation does not have to use an XPath evaluator
> >    in the server.  How the evaluation is done in practice is an
> >    implementation decision.
>
> Is there a problem with this text?
>


no -- I meant 'when'.  Ignore this comment



>
> > Sec. 7.5.4.2.  The error-app-tag Statement
> >
> >    The "error-app-tag" statement, which is optional, takes a string as
> >    an argument.  If the constraint evaluates to false, the string is
> >    passed as <error-app-tag> in the <rpc-error> in NETCONF.
> >
> >  - all the error-message and error-app-tag sub-sections apply to
> >    RESTCONF as well as NETCONF.  They share the same error reporting
> >    structure
>
> Agree.  But this document does not define RESTCONF.
>


I hope the implicit mapping to RESTCONF is clear enough.



>
> > Sec. 7.5.8:
> > Sec. 7.6.7:
> > Sec. 7.7.9:
> > Sec. 7.9.6:
> > Sec. 7.10.3:  NETCONF <edit-config> Operations
> >
> >  - Can these sections be changed to 'Configuration Datastore Edit
> >    Operations' and be generic so they focus on the contents of
> >    the datastore before and after the edit, without specifying
> >    <edit-config> as the edit operation
>
> Hmm, I think these sections are really edit-config-specific.  YANG
> Patch defines its own syntax, for example.
>
> >  - RESTCONF needs to be supported, or all this should be moved
> >    to NETCONF 1.2
>
> RESTCONF *is* supported, but it is not *specified* in this document.
>
> > Sec. 7.6.1.  The leaf's default value
> >
> >  - this section should mention that a false if-feature
> >    or false when-stmt removes the schema node from the
> >    tree, which overrides all this text. There is no default
> >    value if there is no schema node
>
> Howabout:
>
>   Note that if the leaf or any of its ancestors has a "when" condition
>   or "if-feature" expression that evaluates to "false", then the
>   default value is not in use.
>
>
OK



> (and ditto for leaf-list default)
>
> >  - It is confusing that 'must' and 'when' work very
> >    differently wrt/ default. must-stmt does not ignore defaults
> >    but 'when' overrides and removes the 'when', so it needs to
> >    be evaluated before the 'must' stmt:
> >
> >    leaf confusing {
> >      must "/some/val=4";
> >      when "/some/other/value/test";
> >      default 42;
> >      type int32;
> >    }
>
> Yes.
>
>

Hope this 'when-first' requirement is clear




> > Sec. 7.7.2.  The leaf-list's default values
> >
> >  - this section represents 2 new requirements to compilers
> >    that should be more apparent:
> >
> >    1) remembering the order of "default" statements
> >    2) the default only applies if 'min-elements 0' is in effect
>
> Can you suggest some text to clarify this?
>
>
Note that the YANG compiler needs to remember the
the order of "default" statements for a leaf-list.

No text for (2) is really needed.





> >  - what is the rationale for not applying the default if
> >    min-elements is > 0?
>
> B/c the default applies only if no instance exists, and if
> min-elements is > 0, there MUST exist an instance.
>
>

OK -- that matches config files as well.



> >  It looks like the leaf/container rule
> >    that mandatory and default are not allowed together is
> >    being applied here.  This should be more clear here
> >
> > Sec. 7.11.  The anyxml Statement
> >
> >  - The 'anyxml' statement should be deprecated.
> >    If not, this section needs to provide rationale for
> >    its 'current' status, given that 'anydata' has been added
> >    No use cases are provided for anyxml in the draft.
>
> It should be used when you need to model some XML data.  It is used in
> RFC 6241.
>
>
OK -- it should be deprecated in NETCONF 1.2

(Or we could just pretend implementations actually support it.)




> >  - There are few if any servers that support anyxml the way
> >    it is defined here, and that is not likely to change.
>
> Servers support the data models they advertise.  anyxml is almost
> never used in any data model, except for ietf-netconf.  A server that
> supports ietf-netconf + YANG will support the subset of XML that is
> necessary for YANG.
>
> >    The draft does not specify how the XML must be parsed,
> >    stored, or rendered later, if it is part of configuration
>
> Do you want to add more rules around this?
>


no.  I suppose anyxml encoding is already defined




>
> > Sec. 7.15.  The action Statement
> >
> >  - an action must appear directly within a container or a
> >    list, an 'augment' or a 'uses' statement.
> >    Why is 'case' statement left out of direct usage and
> >    only allowed via 'uses' or 'augment'?
>
> It is explicitly not allowed in uses:
>
>   Since an action cannot be defined an the top-level of a module or in
>   a case statement, it is an error if a grouping that contains an
>   action at the top of its node hierarchy is used at the top-level of
>   a module or in a case definition.
>
> As for augments, the text actually is broken; it doesn't mention
> action or notification at all.  I suggest we add:
>
>   If the target node is a container or list node, the "action" and
>   "notification" statements can be used within the "augment"
>   statement.
>
>


IMO it makes sense to have actions associated with the datastore itself,
located at the root level.  It seems like a CLR to forbid this usage.



> to section 7.17.
>
> (and the reason for not allowing it is that it is not clear what it
> means.  for example:
>
>     container foo {
>       choice c {
>         case a {
>           action doit { ... }
>         }
>         case b {
>           notification it-happened { ... }
>         }
>       }
>     }
> )
>
>
> >  - para 2: groupings are not reusable if they contain actions,
> >    since they are not allowed in rpc, notification, or action
> >    This should be pointed out in the section on groupings
>
> How about this NEW text in 7.12 The grouping Statement:
>
>   Note that if a grouping defines an "action" or a "notification" node
>   in its hierarchy, then it cannot be used in all contexts.  For
>   example, it cannot be used in an rpc definition.  See ^action^ and
>   ^notification^.
>
>

OK



> >  - the reason for the restriction on top-level action is not
> >    given.  The syntax would support this, and the identifier
> >    namespace is shared (same as rpc).
>
> They are different:
>
>    The "rpc" statement is used to define an RPC operation.
>
>    The "action" statement is used to define an operation connected to a
>    specific container or list data node.
>
>

Why can't it be an action associated with the datastore?

Not sure why leaf, and leaf-list are left out either,
and only list and containers can have actions.
I get it that this little rule exists, just not why it is needed
for interoperability.





> >  - the context nodes for action input and output are very different
> >    this could be more clear
>
> Can you suggest some text to clarify this?
>
>
maybe later



> >  - is the server required to process XPath or constraints on the
> >    output at some point in the execution of the action?
>
> This is not different from rpc output (or norifications).  I think it
> is the server's responsibility to send output / notifs that are
> syntactically and semanticically valid.  *how* this is done is an
> implementation detail.  (FWIW our code doesn't check such constraints;
> we leave it to the implementor to do the right thing).
>
>

OK -- I agree it is conceptual and there may not be any way
for an outside tool to verify the server correctness.


>  - there is no rationale given why the ping operation should
> >    be done as an action instead of an RPC
>
> It can be done in both ways.  I think such guidelines are out of scope
> for this document.
>

OK.

I got nothing for the YANG guidelines here.
I can imagine YANG Doctors getting deadlocked over preferences,
but vendors will will have more options.  We can worry about individual
cases in RFCs as they come up.





>
> >    list interface {
> >        key "name";
> >
> >        leaf name {
> >          type string;
> >        }
> >
> >        action ping {
> >          input {
> >            leaf destination {
> >              type inet:ip-address;
> >            }
> >          }
> >          output {
> >            leaf packet-loss {
> >              type uint8;
> >            }
> >          }
> >        }
> >      }
> >
> >  Why not use an RPC?
> >  No rationale for both ways to implement an operation
> >  like 'ping' is given.
> >
> >    rpc ping {
> >      input {
> >        leaf itf-name {
> >          mandatory true;
> >          type if:interface-ref;
> >        }
> >        leaf destination {
> >          type inet:ip-address;
> >        }
> >      }
> >      output {
> >        leaf packet-loss {
> >          type uint8;
> >        }
> >      }
> >    }
> >
> > Sec. 7.16.  The notification Statement
> >
> >    If a leaf in the notification tree has a "mandatory" statement with
> >    the value "true", the leaf MUST be present in a notification
> >    instance.
> >
> >  - Why is this apply to leaf but not container or choice?
> >    They should be mentioned here as well.
>
> ... and (leaf-)list min-elements.
>
> This sentence (about mandatory leafs) is present also for rpc
> output,input and notif.
>
> But maybe the best solution would be to remove this special sentence -
> it is already covered by the text in 8.1 - and that text is more
> complete.
>
> But I noticed that the text in 8.1 doesn't mention mandatory choices.
> I suggest:
>
> OLD:
>
>    o  The "mandatory" constraint is enforced for leafs, unless the node
>       or any of its ancestors has a "when" condition or "if-feature"
>       expression that evaluates to "false".
>
> NEW:
>
>    o  The "mandatory" constraint is enforced for leafs and choices,
>       unless the node or any of its ancestors has a "when" condition
>       or "if-feature" expression that evaluates to "false".
>
>
>

OK




> >  - No rationale is given for defining notifications within data nodes
> >    vs. top-level notification-stmt
>
> See above for actions.
>
> >  - It is not clear how RFC 5277 <filter> can be applied to the
> >     notification message that is nested within data, given the
> >    location of the 'notification' root within the data tree is
> >    not static, and different for each notification.
>
> Why wouldn't a normal filter work?
>
> For example, for the last example in 7.16.3 you can do:
>
>   <filter>
>     <interfaces xmlns="http://example.com/schema/interfaces">
>       <interface>
>         <name>eth1</name>
>       </interface>
>     </interfaces>
>   </filter>
>
> in order to receive notifs for eth1 only.
>
>
>

RFC 5277 says the filter contains the node matching the event QName,
which is nested inside the 'interface' element.






>
> > Sec. 7.17.  The augment Statement
> >
> >  - can augment path-stmts contain nested 'action' or 'notification'
> >    nodes and subnodes, like for rpc-stmt?  If, so then the
> >    sub-statements are restricted by context, e.g., action-stmt
> >    cannot be added to /foo/bar/action/input/baz.
>
> Above I suggested we add:
>
>   If the target node is a container or list node, the "action" and
>   "notification" statements can be used within the "augment"
>   statement.
>
>

OK



> I am not sure if that covers your concern?
>
> > Sec. 7.18.2.  The base Statement
> >
> >   - There are no examples or use-cases given for multiple base
> >     statements. An example should be added.
>
> Ok.
>




> .... have not reviewed rest of responses
>



>
> /martin
>
>

Andy

--001a11c3cb3695a8f50523804239
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Fri, Oct 30, 2015 at 8:45 AM, Martin Bjorklund <span dir=3D"ltr">&lt=
;<a href=3D"mailto:mbj@tail-f.com" target=3D"_blank">mbj@tail-f.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;padding-left:1ex">Hi Andy,<br>
<br>...<br></blockquote><div>=C2=A0</div><blockquote class=3D"gmail_quote" =
style=3D"margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:r=
gb(204,204,204);border-left-style:solid;padding-left:1ex">
&gt;=C2=A0 - Should &#39;may&#39; be &#39;MAY&#39;?<br>
<br>
Actually, since the enitire section 4 is not marked as:<br>
<br>
=C2=A0 =C2=A0This non-normative section is intended to give a high-level ov=
erview<br>
=C2=A0 =C2=A0of YANG to first-time readers.<br>
<br>
I think we should remove all 2119-keywords from section 4.<br>
<br></blockquote><div><br></div><div><br></div><div>OK</div><div><br></div>=
<div><br></div><div><br></div><div><br></div><div>=C2=A0</div><blockquote c=
lass=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left-width:1p=
x;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1=
ex">
&gt; Sec. 5.6.4: para 2:<br>
&gt;<br>
&gt;=C2=A0 =C2=A0 A server MUST NOT implement more than one revision of a m=
odule.<br>
&gt;<br>
&gt;=C2=A0 - IMO this should a SHOULD NOT or &#39;MUST NOT advertise&#39; i=
nstead<br>
&gt;=C2=A0 =C2=A0 of MUST NOT implement<br>
<br>
There is an ongoing thread on this topic, the last msg is:<br>
<br>
<a href=3D"https://www.ietf.org/mail-archive/web/netmod/current/msg14211.ht=
ml" rel=3D"noreferrer" target=3D"_blank">https://www.ietf.org/mail-archive/=
web/netmod/current/msg14211.html</a><br>
<br>
The question in this msg is not yet answered.<br>
<br>
&gt;=C2=A0 =C2=A0 Example of possible exception:<br>
&gt;=C2=A0 =C2=A0 =C2=A0- rev N-1 has object needed by application<br>
&gt;=C2=A0 =C2=A0 =C2=A0- rev N has that object set to status &#39;obsolete=
&#39; (and removed)<br>
&gt;=C2=A0 =C2=A0 =C2=A0- rev N also has other objects unrelated to the obs=
olete object<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0but desired for the product feature set<br>
<br>
In this case revision N should be implemented.<br></blockquote><div><br></d=
iv><div><br></div><div>but then the obsolete object is not allowed, right?<=
/div><div><br></div><div>So the server has to advertise N-1.</div><div>Hope=
fully deviations can be constructed to represent the changes</div><div>from=
 version N-1 to N, and the server will advertise the deviations.</div><div>=
<br></div><div><br></div><div>=C2=A0</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>
&gt; Sec. 5.6.4:<br>
&gt;=C2=A0 =C2=A0- para 4: the rules for populating the YANG library should=
 probably be<br>
&gt;=C2=A0 =C2=A0 =C2=A0in the yang-library draft<br>
&gt;=C2=A0 =C2=A0- the example on page 35 - 37 should probably be in the<br=
>
&gt;=C2=A0 =C2=A0 =C2=A0yang-library draft<br>
<br>
Maybe, but I think this document might seem under-specified unless we<br>
define these rules here.<br></blockquote><div><br></div><div><br></div><div=
>Right, because you have to add a reference to the external document.</div>=
<div>This is not that important since the library is only intended for</div=
><div>YANG modules.</div><div><br></div><div>=C2=A0</div><blockquote class=
=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left-width:1px;bo=
rder-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>
&gt; Sec. 5.6.5.=C2=A0 Announcing Conformance Information in NETCONF<br>
&gt;<br>
&gt;=C2=A0 =C2=A0- This should really be in a NETCONF 1.2 spec<br>
<br>
Maybe, but we need to work with NETCONF 1.1 now.<br></blockquote><div><br><=
/div><div><br></div><div>So if there is a NETCONF 1.2 someday, does that me=
an we will</div><div>also have a YANG 1.n that moves the NETCONF specific t=
ext?</div><div>If so, then I don&#39;t have any concerns about NETCONF-spec=
ific YANG.</div><div><br></div><div><br></div><div><br></div><div>=C2=A0</d=
iv><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;bord=
er-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:soli=
d;padding-left:1ex">
<br>
&gt;=C2=A0 =C2=A0- RESTCONF draft defines ietf-yang-library requirements fo=
r RESTCONF.<br>
&gt;=C2=A0 =C2=A0 =C2=A0Why should YANG 1.1 define NETCONF ietf-yang-librar=
y requirements?<br>
<br>
B/c this document defines both the language and the NETCONF mapping.<br>
<br></blockquote><div><br></div><div>So we will do the same for NETCONF if =
there is a NETCONF 1.2 someday</div><div><br></div><div>=C2=A0</div><blockq=
uote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left-wi=
dth:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-=
left:1ex">
&gt; Sec. 5.7: Datastore Modification<br>
&gt;<br>
&gt;=C2=A0 =C2=A0- This section is NETCONF specific for no apparent reason<=
br>
<br>
Ok.=C2=A0 I suggest s/NETCONF protocol messages/network management protocol=
<br>
messages/<br></blockquote><div><br></div><div><br></div><div>OK</div><div><=
br></div><div><br></div><div>=C2=A0</div><blockquote class=3D"gmail_quote" =
style=3D"margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:r=
gb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>
&gt; Sec. 6.4.1: bullet 5<br>
&gt;<br>
&gt;=C2=A0 =C2=A0 o=C2=A0 The set of variable bindings is empty.<br>
&gt;<br>
&gt;=C2=A0 =C2=A0- This is not true.=C2=A0 The NACM data model defines the =
USER variable.<br>
&gt;=C2=A0 =C2=A0 =C2=A0This text should say that YANG modules MAY define v=
ariable bindings<br>
&gt;=C2=A0 =C2=A0 =C2=A0associated with conformance for that module (like N=
ACM does).<br>
<br>
No, the USER variable is only available in expressions of type<br>
nacm:node-instance-identifier.=C2=A0 =C2=A0It cannot be used in must/when<b=
r>
expressions.<br></blockquote><div><br></div><div><br></div><div>OK</div><di=
v><br></div><div>I checked our code and we do not use any variable sets in =
must/when.</div><div>It is only select.</div><div><br></div><div>=C2=A0</di=
v><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;borde=
r-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid=
;padding-left:1ex">
<br>
&gt; Sec. 6.4.1: XPath accessible tree<br>
&gt;<br>
&gt;=C2=A0 =C2=A0- I object to expanding the context of XPath evaluation fo=
r<br>
&gt;=C2=A0 =C2=A0 =C2=A0notification and rpc/input, rpc/output.=C2=A0 This =
is too complicated<br>
&gt;=C2=A0 =C2=A0 =C2=A0to implement and under-specified, resulting in poor=
 interoperability.<br>
<br>
This is issue Y04, and it was discussed at the WG interim 2014-06-11.<br></=
blockquote><div><br></div><div><br></div><div>I won&#39;t object but realit=
y does not agree with your text.</div><div>Servers do not run XPath on thei=
r own output, so the XPath</div><div>is going to be enforced conceptually i=
n the instrumentation.</div><div><br></div><div>Outside the server, there d=
oes not exist a tool that can reliably reproduce</div><div>the instance doc=
ument to evaluate, that includes the config and operational state</div><div=
>at the instant the notification or rpc/output was generated.</div><div>(As=
 if that is well-defined either).</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">
<br>
&gt;=C2=A0 =C2=A0- What is the justification for this expansion of complexi=
ty?<br>
&gt;=C2=A0 =C2=A0 =C2=A0An tool cannot reproduce the same result anymore fo=
r<br>
&gt;=C2=A0 =C2=A0 =C2=A0&lt;rpc&gt;, &lt;rpc-reply&gt; or &lt;notification&=
gt; offline validation.<br>
<br>
It couldn&#39;t do that earlier either, if there were leafrefs in the<br>
data.<br>
<br>
I agree with all your concerns below.=C2=A0 I would prefer Y04-01, but that=
<br>
would brake RFC 6643 :(<br>
<br>
Maybe we should consider doing this only for the &#39;path&#39; statement.=
=C2=A0 It<br>
has the same set of issues of course.<br>
<br>
&gt;=C2=A0 - Notification context expanded from notification message to mes=
sage +<br>
&gt;=C2=A0 =C2=A0 running config + operational state;=C2=A0 When is the ser=
ver supposed<br>
&gt;=C2=A0 =C2=A0 to gather and check all the data nodes? Event time? Buffe=
r time?<br>
&gt;=C2=A0 =C2=A0 Send time? What if operational state or config changes wh=
ile the<br>
&gt;=C2=A0 =C2=A0 notification is in the replay buffer?<br>
&gt;<br>
&gt;=C2=A0 - RPC input context expanded from input message to message +<br>
&gt;=C2=A0 =C2=A0 running config + operational state;=C2=A0 When is the ser=
ver supposed<br>
&gt;=C2=A0 =C2=A0 to gather and check all the data nodes? Parse time? Buffe=
r time?<br>
&gt;=C2=A0 =C2=A0 Invocation time?<br>
&gt;<br>
&gt;=C2=A0 - RPC output context expanded from input message to message +<br=
>
&gt;=C2=A0 =C2=A0 running config + operational state;=C2=A0 Is the server s=
upposed to<br>
&gt;=C2=A0 =C2=A0 wait for operational state that may change as a result of=
 the<br>
&gt;=C2=A0 =C2=A0 action or rpc being invoked?<br>
&gt;<br>
&gt;=C2=A0 - The expanded contexts for notification and rpc statements<br>
&gt;=C2=A0 =C2=A0 require coupling of the notification and RPC processing<b=
r>
&gt;=C2=A0 =C2=A0 implementation components to the datastore and operationa=
l data.<br>
&gt;=C2=A0 =C2=A0 This is a big change from current NETCONF requirements.<b=
r>
&gt;=C2=A0 =C2=A0 YANG should not be making any changes to NETCONF, but it =
does<br>
&gt;=C2=A0 =C2=A0 in several places, effectively creating a new undeclared<=
br>
&gt;=C2=A0 =C2=A0 version of the NETCONF protocol<br>
&gt;<br>
&gt;=C2=A0 - It is not clear if &quot;action&quot; and &quot;notification&q=
uot; statements<br>
&gt;=C2=A0 =C2=A0 nested in the data tree are visible at all for XPath eval=
uation.<br>
&gt;=C2=A0 =C2=A0 (They MUST NOT be visible)<br>
<br>
Agree.=C2=A0 I think this is covered since the accessible tree is made up<b=
r>
of data nodes, and action/notification are not data nodes.<br>
<br>
&gt;=C2=A0 - NETCONF &lt;get&gt; and &lt;get-config&gt; &quot;filter&quot; =
element needs clarification<br>
&gt;=C2=A0 =C2=A0 wrt/ action and notification within the data tree<br>
<br>
Why?=C2=A0 These nodes are not part of the data tree (datastore).<br>
<br></blockquote><div><br></div><div><br></div><div>RFC 5277 filters will b=
e run against the top-node, which will be</div><div>the ancestor nodes, not=
 &lt;notification&gt; or &lt;my-event&gt;,</div><div>Can nested notificatio=
ns be filtered, and if so, how does it work?</div><div><br></div><div><br><=
/div><div><br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0=
px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);borde=
r-left-style:solid;padding-left:1ex">
&gt;=C2=A0 - NETCONF and RESTCONF notifications &quot;filter&quot; element =
needs clarification<br>
&gt;=C2=A0 =C2=A0 wrt/ action and notification within the data tree<br>
&gt;<br>
&gt; Sec. 7.5.3: must: last para<br>
&gt;<br>
&gt;=C2=A0 =C2=A0 Also note that the XPath expression is conceptually evalu=
ated.=C2=A0 This<br>
&gt;=C2=A0 =C2=A0 means that an implementation does not have to use an XPat=
h evaluator<br>
&gt;=C2=A0 =C2=A0 in the server.=C2=A0 How the evaluation is done in practi=
ce is an<br>
&gt;=C2=A0 =C2=A0 implementation decision.<br>
<br>
Is there a problem with this text?<br></blockquote><div><br></div><div><br>=
</div><div>no -- I meant &#39;when&#39;.=C2=A0 Ignore this comment</div><di=
v><br></div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"mar=
gin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,2=
04);border-left-style:solid;padding-left:1ex">
<br>
&gt; Sec. 7.5.4.2.=C2=A0 The error-app-tag Statement<br>
&gt;<br>
&gt;=C2=A0 =C2=A0 The &quot;error-app-tag&quot; statement, which is optiona=
l, takes a string as<br>
&gt;=C2=A0 =C2=A0 an argument.=C2=A0 If the constraint evaluates to false, =
the string is<br>
&gt;=C2=A0 =C2=A0 passed as &lt;error-app-tag&gt; in the &lt;rpc-error&gt; =
in NETCONF.<br>
&gt;<br>
&gt;=C2=A0 - all the error-message and error-app-tag sub-sections apply to<=
br>
&gt;=C2=A0 =C2=A0 RESTCONF as well as NETCONF.=C2=A0 They share the same er=
ror reporting<br>
&gt;=C2=A0 =C2=A0 structure<br>
<br>
Agree.=C2=A0 But this document does not define RESTCONF.<br></blockquote><d=
iv><br></div><div><br></div><div>I hope the implicit mapping to RESTCONF is=
 clear enough.</div><div><br></div><div>=C2=A0</div><blockquote class=3D"gm=
ail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left-width:1px;border-l=
eft-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>
&gt; Sec. 7.5.8:<br>
&gt; Sec. 7.6.7:<br>
&gt; Sec. 7.7.9:<br>
&gt; Sec. 7.9.6:<br>
&gt; Sec. 7.10.3:=C2=A0 NETCONF &lt;edit-config&gt; Operations<br>
&gt;<br>
&gt;=C2=A0 - Can these sections be changed to &#39;Configuration Datastore =
Edit<br>
&gt;=C2=A0 =C2=A0 Operations&#39; and be generic so they focus on the conte=
nts of<br>
&gt;=C2=A0 =C2=A0 the datastore before and after the edit, without specifyi=
ng<br>
&gt;=C2=A0 =C2=A0 &lt;edit-config&gt; as the edit operation<br>
<br>
Hmm, I think these sections are really edit-config-specific.=C2=A0 YANG<br>
Patch defines its own syntax, for example.<br>
<br>
&gt;=C2=A0 - RESTCONF needs to be supported, or all this should be moved<br=
>
&gt;=C2=A0 =C2=A0 to NETCONF 1.2<br>
<br>
RESTCONF *is* supported, but it is not *specified* in this document.<br>
<br>
&gt; Sec. 7.6.1.=C2=A0 The leaf&#39;s default value<br>
&gt;<br>
&gt;=C2=A0 - this section should mention that a false if-feature<br>
&gt;=C2=A0 =C2=A0 or false when-stmt removes the schema node from the<br>
&gt;=C2=A0 =C2=A0 tree, which overrides all this text. There is no default<=
br>
&gt;=C2=A0 =C2=A0 value if there is no schema node<br>
<br>
Howabout:<br>
<br>
=C2=A0 Note that if the leaf or any of its ancestors has a &quot;when&quot;=
 condition<br>
=C2=A0 or &quot;if-feature&quot; expression that evaluates to &quot;false&q=
uot;, then the<br>
=C2=A0 default value is not in use.<br>
<br></blockquote><div><br></div><div>OK</div><div><br></div><div>=C2=A0</di=
v><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;borde=
r-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid=
;padding-left:1ex">
(and ditto for leaf-list default)<br>
<br>
&gt;=C2=A0 - It is confusing that &#39;must&#39; and &#39;when&#39; work ve=
ry<br>
&gt;=C2=A0 =C2=A0 differently wrt/ default. must-stmt does not ignore defau=
lts<br>
&gt;=C2=A0 =C2=A0 but &#39;when&#39; overrides and removes the &#39;when&#3=
9;, so it needs to<br>
&gt;=C2=A0 =C2=A0 be evaluated before the &#39;must&#39; stmt:<br>
&gt;<br>
&gt;=C2=A0 =C2=A0 leaf confusing {<br>
&gt;=C2=A0 =C2=A0 =C2=A0 must &quot;/some/val=3D4&quot;;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 when &quot;/some/other/value/test&quot;;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 default 42;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 type int32;<br>
&gt;=C2=A0 =C2=A0 }<br>
<br>
Yes.<br>
<br></blockquote><div><br></div><div><br></div><div>Hope this &#39;when-fir=
st&#39; requirement is clear</div><div><br></div><div><br></div><div>=C2=A0=
</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;b=
order-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:s=
olid;padding-left:1ex">
&gt; Sec. 7.7.2.=C2=A0 The leaf-list&#39;s default values<br>
&gt;<br>
&gt;=C2=A0 - this section represents 2 new requirements to compilers<br>
&gt;=C2=A0 =C2=A0 that should be more apparent:<br>
&gt;<br>
&gt;=C2=A0 =C2=A0 1) remembering the order of &quot;default&quot; statement=
s<br>
&gt;=C2=A0 =C2=A0 2) the default only applies if &#39;min-elements 0&#39; i=
s in effect<br>
<br>
Can you suggest some text to clarify this?<br>
<br></blockquote><div><br></div><div>Note that the YANG compiler needs to r=
emember the</div><div>the order of &quot;default&quot; statements for a lea=
f-list.<br></div><div><br></div><div>No text for (2) is really needed.</div=
><div><br></div><div><br></div><div><br></div><div>=C2=A0</div><blockquote =
class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left-width:1=
px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:=
1ex">
&gt;=C2=A0 - what is the rationale for not applying the default if<br>
&gt;=C2=A0 =C2=A0 min-elements is &gt; 0?<br>
<br>
B/c the default applies only if no instance exists, and if<br>
min-elements is &gt; 0, there MUST exist an instance.<br>
<br></blockquote><div><br></div><div><br></div><div>OK -- that matches conf=
ig files as well.</div><div><br></div><div>=C2=A0</div><blockquote class=3D=
"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left-width:1px;borde=
r-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
&gt;=C2=A0 It looks like the leaf/container rule<br>
&gt;=C2=A0 =C2=A0 that mandatory and default are not allowed together is<br=
>
&gt;=C2=A0 =C2=A0 being applied here.=C2=A0 This should be more clear here<=
br>
&gt;<br>
&gt; Sec. 7.11.=C2=A0 The anyxml Statement<br>
&gt;<br>
&gt;=C2=A0 - The &#39;anyxml&#39; statement should be deprecated.<br>
&gt;=C2=A0 =C2=A0 If not, this section needs to provide rationale for<br>
&gt;=C2=A0 =C2=A0 its &#39;current&#39; status, given that &#39;anydata&#39=
; has been added<br>
&gt;=C2=A0 =C2=A0 No use cases are provided for anyxml in the draft.<br>
<br>
It should be used when you need to model some XML data.=C2=A0 It is used in=
<br>
RFC 6241.<br>
<br></blockquote><div><br></div><div>OK -- it should be deprecated in NETCO=
NF 1.2</div><div><br></div><div>(Or we could just pretend implementations a=
ctually support it.)</div><div><br></div><div><br></div><div>=C2=A0</div><b=
lockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-le=
ft-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;pad=
ding-left:1ex">
&gt;=C2=A0 - There are few if any servers that support anyxml the way<br>
&gt;=C2=A0 =C2=A0 it is defined here, and that is not likely to change.<br>
<br>
Servers support the data models they advertise.=C2=A0 anyxml is almost<br>
never used in any data model, except for ietf-netconf.=C2=A0 A server that<=
br>
supports ietf-netconf + YANG will support the subset of XML that is<br>
necessary for YANG.<br>
<br>
&gt;=C2=A0 =C2=A0 The draft does not specify how the XML must be parsed,<br=
>
&gt;=C2=A0 =C2=A0 stored, or rendered later, if it is part of configuration=
<br>
<br>
Do you want to add more rules around this?<br></blockquote><div><br></div><=
div><br></div><div>no.=C2=A0 I suppose anyxml encoding is already defined</=
div><div><br></div><div><br></div><div>=C2=A0<br></div><blockquote class=3D=
"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left-width:1px;borde=
r-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>
&gt; Sec. 7.15.=C2=A0 The action Statement<br>
&gt;<br>
&gt;=C2=A0 - an action must appear directly within a container or a<br>
&gt;=C2=A0 =C2=A0 list, an &#39;augment&#39; or a &#39;uses&#39; statement.=
<br>
&gt;=C2=A0 =C2=A0 Why is &#39;case&#39; statement left out of direct usage =
and<br>
&gt;=C2=A0 =C2=A0 only allowed via &#39;uses&#39; or &#39;augment&#39;?<br>
<br>
It is explicitly not allowed in uses:<br>
<br>
=C2=A0 Since an action cannot be defined an the top-level of a module or in=
<br>
=C2=A0 a case statement, it is an error if a grouping that contains an<br>
=C2=A0 action at the top of its node hierarchy is used at the top-level of<=
br>
=C2=A0 a module or in a case definition.<br>
<br>
As for augments, the text actually is broken; it doesn&#39;t mention<br>
action or notification at all.=C2=A0 I suggest we add:<br>
<br>
=C2=A0 If the target node is a container or list node, the &quot;action&quo=
t; and<br>
=C2=A0 &quot;notification&quot; statements can be used within the &quot;aug=
ment&quot;<br>
=C2=A0 statement.<br>
<br></blockquote><div><br></div><div><br></div><div><br></div><div>IMO it m=
akes sense to have actions associated with the datastore itself,</div><div>=
located at the root level.=C2=A0 It seems like a CLR to forbid this usage.<=
/div><div><br></div><div>=C2=A0<br></div><blockquote class=3D"gmail_quote" =
style=3D"margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:r=
gb(204,204,204);border-left-style:solid;padding-left:1ex">
to section 7.17.<br>
<br>
(and the reason for not allowing it is that it is not clear what it<br>
means.=C2=A0 for example:<br>
<br>
=C2=A0 =C2=A0 container foo {<br>
=C2=A0 =C2=A0 =C2=A0 choice c {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 case a {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 action doit { ... }<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 }<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 case b {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 notification it-happened { ... }<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 }<br>
=C2=A0 =C2=A0 =C2=A0 }<br>
=C2=A0 =C2=A0 }<br>
)<br>
<br>
<br>
&gt;=C2=A0 - para 2: groupings are not reusable if they contain actions,<br=
>
&gt;=C2=A0 =C2=A0 since they are not allowed in rpc, notification, or actio=
n<br>
&gt;=C2=A0 =C2=A0 This should be pointed out in the section on groupings<br=
>
<br>
How about this NEW text in 7.12 The grouping Statement:<br>
<br>
=C2=A0 Note that if a grouping defines an &quot;action&quot; or a &quot;not=
ification&quot; node<br>
=C2=A0 in its hierarchy, then it cannot be used in all contexts.=C2=A0 For<=
br>
=C2=A0 example, it cannot be used in an rpc definition.=C2=A0 See ^action^ =
and<br>
=C2=A0 ^notification^.<br>
<br></blockquote><div><br></div><div><br></div><div>OK</div><div><br></div>=
<div>=C2=A0</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-l=
eft-style:solid;padding-left:1ex">
&gt;=C2=A0 - the reason for the restriction on top-level action is not<br>
&gt;=C2=A0 =C2=A0 given.=C2=A0 The syntax would support this, and the ident=
ifier<br>
&gt;=C2=A0 =C2=A0 namespace is shared (same as rpc).<br>
<br>
They are different:<br>
<br>
=C2=A0 =C2=A0The &quot;rpc&quot; statement is used to define an RPC operati=
on.<br>
<br>
=C2=A0 =C2=A0The &quot;action&quot; statement is used to define an operatio=
n connected to a<br>
=C2=A0 =C2=A0specific container or list data node.<br>
<br></blockquote><div><br></div><div><br></div><div>Why can&#39;t it be an =
action associated with the datastore?</div><div><br></div><div>Not sure why=
 leaf, and leaf-list are left out either,</div><div>and only list and conta=
iners can have actions.</div><div>I get it that this little rule exists, ju=
st not why it is needed</div><div>for interoperability.</div><div><br></div=
><div><br></div><div><br></div><div>=C2=A0</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">
&gt;=C2=A0 - the context nodes for action input and output are very differe=
nt<br>
&gt;=C2=A0 =C2=A0 this could be more clear<br>
<br>
Can you suggest some text to clarify this?<br>
<br></blockquote><div><br></div><div>maybe later</div><div><br></div><div>=
=C2=A0</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-s=
tyle:solid;padding-left:1ex">
&gt;=C2=A0 - is the server required to process XPath or constraints on the<=
br>
&gt;=C2=A0 =C2=A0 output at some point in the execution of the action?<br>
<br>
This is not different from rpc output (or norifications).=C2=A0 I think it<=
br>
is the server&#39;s responsibility to send output / notifs that are<br>
syntactically and semanticically valid.=C2=A0 *how* this is done is an<br>
implementation detail.=C2=A0 (FWIW our code doesn&#39;t check such constrai=
nts;<br>
we leave it to the implementor to do the right thing).<br>
<br></blockquote><div><br></div><div><br></div><div>OK -- I agree it is con=
ceptual and there may not be any way</div><div>for an outside tool to verif=
y the server correctness.</div><div><br></div><div><br></div><blockquote cl=
ass=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:1e=
x">
&gt;=C2=A0 - there is no rationale given why the ping operation should<br>
&gt;=C2=A0 =C2=A0 be done as an action instead of an RPC<br>
<br>
It can be done in both ways.=C2=A0 I think such guidelines are out of scope=
<br>
for this document.<br></blockquote><div><br></div><div>OK.</div><div><br></=
div><div>I got nothing for the YANG guidelines here.</div><div>I can imagin=
e YANG Doctors getting deadlocked over preferences,</div><div>but vendors w=
ill will have more options.=C2=A0 We can worry about individual</div><div>c=
ases in RFCs as they come up.</div><div><br></div><div><br></div><div><br><=
/div><div>=C2=A0</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);bor=
der-left-style:solid;padding-left:1ex">
<br>
&gt;=C2=A0 =C2=A0 list interface {<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 key &quot;name&quot;;<br>
&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 leaf name {<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 type string;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 }<br>
&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 action ping {<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 input {<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 leaf destination {<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 type inet:ip-address;<=
br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 }<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 }<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 output {<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 leaf packet-loss {<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 type uint8;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 }<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 }<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 }<br>
&gt;=C2=A0 =C2=A0 =C2=A0 }<br>
&gt;<br>
&gt;=C2=A0 Why not use an RPC?<br>
&gt;=C2=A0 No rationale for both ways to implement an operation<br>
&gt;=C2=A0 like &#39;ping&#39; is given.<br>
&gt;<br>
&gt;=C2=A0 =C2=A0 rpc ping {<br>
&gt;=C2=A0 =C2=A0 =C2=A0 input {<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 leaf itf-name {<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 mandatory true;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 type if:interface-ref;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 }<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 leaf destination {<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 type inet:ip-address;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 }<br>
&gt;=C2=A0 =C2=A0 =C2=A0 }<br>
&gt;=C2=A0 =C2=A0 =C2=A0 output {<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 leaf packet-loss {<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 type uint8;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 }<br>
&gt;=C2=A0 =C2=A0 =C2=A0 }<br>
&gt;=C2=A0 =C2=A0 }<br>
&gt;<br>
&gt; Sec. 7.16.=C2=A0 The notification Statement<br>
&gt;<br>
&gt;=C2=A0 =C2=A0 If a leaf in the notification tree has a &quot;mandatory&=
quot; statement with<br>
&gt;=C2=A0 =C2=A0 the value &quot;true&quot;, the leaf MUST be present in a=
 notification<br>
&gt;=C2=A0 =C2=A0 instance.<br>
&gt;<br>
&gt;=C2=A0 - Why is this apply to leaf but not container or choice?<br>
&gt;=C2=A0 =C2=A0 They should be mentioned here as well.<br>
<br>
... and (leaf-)list min-elements.<br>
<br>
This sentence (about mandatory leafs) is present also for rpc<br>
output,input and notif.<br>
<br>
But maybe the best solution would be to remove this special sentence -<br>
it is already covered by the text in 8.1 - and that text is more<br>
complete.<br>
<br>
But I noticed that the text in 8.1 doesn&#39;t mention mandatory choices.<b=
r>
I suggest:<br>
<br>
OLD:<br>
<br>
=C2=A0 =C2=A0o=C2=A0 The &quot;mandatory&quot; constraint is enforced for l=
eafs, unless the node<br>
=C2=A0 =C2=A0 =C2=A0 or any of its ancestors has a &quot;when&quot; conditi=
on or &quot;if-feature&quot;<br>
=C2=A0 =C2=A0 =C2=A0 expression that evaluates to &quot;false&quot;.<br>
<br>
NEW:<br>
<br>
=C2=A0 =C2=A0o=C2=A0 The &quot;mandatory&quot; constraint is enforced for l=
eafs and choices,<br>
=C2=A0 =C2=A0 =C2=A0 unless the node or any of its ancestors has a &quot;wh=
en&quot; condition<br>
=C2=A0 =C2=A0 =C2=A0 or &quot;if-feature&quot; expression that evaluates to=
 &quot;false&quot;.<br>
<br>
<br></blockquote><div><br></div><div><br></div><div>OK</div><div><br></div>=
<div><br></div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"=
margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,20=
4,204);border-left-style:solid;padding-left:1ex">
&gt;=C2=A0 - No rationale is given for defining notifications within data n=
odes<br>
&gt;=C2=A0 =C2=A0 vs. top-level notification-stmt<br>
<br>
See above for actions.<br>
<br>
&gt;=C2=A0 - It is not clear how RFC 5277 &lt;filter&gt; can be applied to =
the<br>
&gt;=C2=A0 =C2=A0 =C2=A0notification message that is nested within data, gi=
ven the<br>
&gt;=C2=A0 =C2=A0 location of the &#39;notification&#39; root within the da=
ta tree is<br>
&gt;=C2=A0 =C2=A0 not static, and different for each notification.<br>
<br>
Why wouldn&#39;t a normal filter work?<br>
<br>
For example, for the last example in 7.16.3 you can do:<br>
<br>
=C2=A0 &lt;filter&gt;<br>
=C2=A0 =C2=A0 &lt;interfaces xmlns=3D&quot;<a href=3D"http://example.com/sc=
hema/interfaces" rel=3D"noreferrer" target=3D"_blank">http://example.com/sc=
hema/interfaces</a>&quot;&gt;<br>
=C2=A0 =C2=A0 =C2=A0 &lt;interface&gt;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 &lt;name&gt;eth1&lt;/name&gt;<br>
=C2=A0 =C2=A0 =C2=A0 &lt;/interface&gt;<br>
=C2=A0 =C2=A0 &lt;/interfaces&gt;<br>
=C2=A0 &lt;/filter&gt;<br>
<br>
in order to receive notifs for eth1 only.<br>
<br>
<br></blockquote><div><br></div><div><br></div><div>RFC 5277 says the filte=
r contains the node matching the event QName,</div><div>which is nested ins=
ide the &#39;interface&#39; element.</div><div><br></div><div><br></div><di=
v><br></div><div><br></div><div>=C2=A0</div><blockquote class=3D"gmail_quot=
e" style=3D"margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-colo=
r:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>
&gt; Sec. 7.17.=C2=A0 The augment Statement<br>
&gt;<br>
&gt;=C2=A0 - can augment path-stmts contain nested &#39;action&#39; or &#39=
;notification&#39;<br>
&gt;=C2=A0 =C2=A0 nodes and subnodes, like for rpc-stmt?=C2=A0 If, so then =
the<br>
&gt;=C2=A0 =C2=A0 sub-statements are restricted by context, e.g., action-st=
mt<br>
&gt;=C2=A0 =C2=A0 cannot be added to /foo/bar/action/input/baz.<br>
<br>
Above I suggested we add:<br>
<br>
=C2=A0 If the target node is a container or list node, the &quot;action&quo=
t; and<br>
=C2=A0 &quot;notification&quot; statements can be used within the &quot;aug=
ment&quot;<br>
=C2=A0 statement.<br>
<br></blockquote><div><br></div><div><br></div><div>OK</div><div><br></div>=
<div>=C2=A0</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-l=
eft-style:solid;padding-left:1ex">
I am not sure if that covers your concern?<br>
<br>
&gt; Sec. 7.18.2.=C2=A0 The base Statement<br>
&gt;<br>
&gt;=C2=A0 =C2=A0- There are no examples or use-cases given for multiple ba=
se<br>
&gt;=C2=A0 =C2=A0 =C2=A0statements. An example should be added.<br>
<br>
Ok.<br></blockquote><div><br></div><div><br></div><div>=C2=A0</div><blockqu=
ote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left-wid=
th:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-l=
eft:1ex"><span class=3D""><font color=3D"#888888">.... have not reviewed re=
st of responses<br></font></span></blockquote><div><br></div><div>=C2=A0</d=
iv><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;bord=
er-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:soli=
d;padding-left:1ex"><span class=3D""><font color=3D"#888888">
<br>
/martin<br>
<br>
</font></span></blockquote></div><br></div><div class=3D"gmail_extra"><br><=
/div><div class=3D"gmail_extra">Andy</div><div class=3D"gmail_extra"><br></=
div></div>

--001a11c3cb3695a8f50523804239--


From nobody Sun Nov  1 13:44:03 2015
Return-Path: <nabil.michraf@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 1CCDC1B2E3A for <netmod@ietfa.amsl.com>; Sun,  1 Nov 2015 13:44:02 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.998
X-Spam-Level: 
X-Spam-Status: No, score=-1.998 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, MIME_QP_LONG_LINE=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 GC1Gx5vRLhB2 for <netmod@ietfa.amsl.com>; Sun,  1 Nov 2015 13:44:00 -0800 (PST)
Received: from mail-pa0-x231.google.com (mail-pa0-x231.google.com [IPv6:2607:f8b0:400e:c03::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 DD8571B2E39 for <netmod@ietf.org>; Sun,  1 Nov 2015 13:43:59 -0800 (PST)
Received: by pabfh17 with SMTP id fh17so2535044pab.0 for <netmod@ietf.org>; Sun, 01 Nov 2015 13:43:59 -0800 (PST)
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=nVSbYBeGdQNXMjqWoy4aFnqQ6tFgaGl5s3hayJm14tw=; b=qubTZVx6+1j2YEwVN47TZeuQm4ETsMILjc7UNJeuAaSL2B0v1SEh6j9tTRekWls5Q+ eImh6SVVEwXBa4Uw3988j/IF++ZhUu8JJlXCZsvbLfmIwmNop3K4aJi2M6UMlWWNc6C0 Dn1oRb1UKutRITo7sLV1u9TnEuq7fketALUSpfhvIH8XH+AHtmbnhFGopVA80j8q6nhY q9wXYTpgvKTVEaAwt/cfRIJQ6ARe5nezDqmRAuwOhsoj0nDzyEiYAWPHXgFYcNh4qlwQ hHkJ9DIUvjkJECUCIn3/hnhJnEyFSJ8TTRji3aHYHbuedN12Y166Zd4BubKQqlI9TCg/ 3GKA==
X-Received: by 10.66.102.74 with SMTP id fm10mr23029401pab.140.1446414239589;  Sun, 01 Nov 2015 13:43:59 -0800 (PST)
Received: from [10.0.1.16] (c-50-168-25-98.hsd1.ca.comcast.net. [50.168.25.98]) by smtp.gmail.com with ESMTPSA id ia3sm20097532pbb.5.2015.11.01.13.43.57 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Sun, 01 Nov 2015 13:43:57 -0800 (PST)
Content-Type: multipart/alternative; boundary=Apple-Mail-00D71A7E-E68E-480E-BF10-0B77F9D67B96
Mime-Version: 1.0 (1.0)
From: Nabil <nabil.michraf@gmail.com>
X-Mailer: iPhone Mail (13B143)
In-Reply-To: <CABCOCHRU3-Y5xyK26CKK4gd3pDib7DMxZkakEXghb1-6qmLYZw@mail.gmail.com>
Date: Sun, 1 Nov 2015 13:43:56 -0800
Content-Transfer-Encoding: 7bit
Message-Id: <9D52FE53-FE17-4ED6-99B9-E16A534BC662@gmail.com>
References: <20151029091758.GB78922@elstar.local> <20151029.131756.1681194827815089398.mbj@tail-f.com> <20151101145115.GA83722@elstar.local> <CABCOCHRU3-Y5xyK26CKK4gd3pDib7DMxZkakEXghb1-6qmLYZw@mail.gmail.com>
To: Andy Bierman <andy@yumaworks.com>
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/qW6SaVKJc5lomLPpFL7_TvpGQyw>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] config lists without keys (Y09) / non-unique leaf-lists (Y57)
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 01 Nov 2015 21:44:02 -0000

--Apple-Mail-00D71A7E-E68E-480E-BF10-0B77F9D67B96
Content-Type: text/plain;
	charset=us-ascii
Content-Transfer-Encoding: quoted-printable



Hi,

I missed the earlier discussion around this topic prior to calling it DEAD. B=
ut here are some comments and ideas.

There is interest in the security product business (access rules configurati=
on for example). Some users don't want to deal with introducing keys that ha=
ve to carry meaningless values. Not a problem for other cases of course.

The goal is to have a type of configuration lists in which the combination o=
f all of the columns is unique so no need for a key from this perspective. W=
e might think why not just model all leaves as part of the key. The problem w=
ith that is edit-config, which can only create or delete records in this cas=
e.

Unless the edit-config sends all of the old values (to identify the instance=
) along with the new values (for a N size list, we would be sending 2*N valu=
es), then there is no way to identify a single instance for an edit operatio=
n.

This makes edit-config syntax different from the current standard and compli=
cated.

Another option is to keep a key that is system generated at the protocol lev=
el. A NETCONF server would have to implement such capability. Just thinking o=
ut loud here. There might be other issues with this approach as the key is n=
ot decided by the clients.



/Nabil



> On Nov 1, 2015, at 8:05 AM, Andy Bierman <andy@yumaworks.com> wrote:
>=20
> Hi,
>=20
> Why is this WG discussing issues that have been declared DEAD for
> various reasons?  Optional keys break old clients, remember?
> There was not enough interest in adding these features.=20
>=20
>=20
> Andy
>=20
>=20
>> On Sun, Nov 1, 2015 at 6:51 AM, Juergen Schoenwaelder <j.schoenwaelder@ja=
cobs-university.de> wrote:
>> On Thu, Oct 29, 2015 at 01:17:56PM +0100, Martin Bjorklund wrote:
>> > Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote:
>> > > Hi,
>> > >
>> > > the issues Y09 and Y57 were declared dead after intense discussions o=
f
>> > > various solution proposals. It later appeared to me that there is a
>> > > solution that we have not considered. The requirement to have a key
>> > > for every list and unique values in a leaf-list for config nodes is
>> > > essentially there to allow edits on individual elements using
>> > > edit-config. The solution not considered so far is simply to give up
>> > > the ability to edit invidual elements, that is, a config list without=

>> > > a key can only be modified as whole and similarily a leaf-list that
>> > > allows non-unique values can only be modified as a whole (with
>> > > edit-config). Comments?
>> >
>> > How would this look in edit-config?  There are quite a few details to
>> > think through in order to support this.
>> >
>>=20
>> Why would that be complicated for edit-config? This key-less list
>> would essentially be anyxml with a known structure. You likely do not
>> allow edit-config specific attributes on all of them.
>>=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/>
>>=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

--Apple-Mail-00D71A7E-E68E-480E-BF10-0B77F9D67B96
Content-Type: text/html;
	charset=utf-8
Content-Transfer-Encoding: quoted-printable

<html><head><meta http-equiv=3D"content-type" content=3D"text/html; charset=3D=
utf-8"></head><body dir=3D"auto"><div><br><br>Hi,</div><div id=3D"AppleMailS=
ignature"><br></div><div id=3D"AppleMailSignature">I missed the earlier disc=
ussion around this topic prior to calling it DEAD. But here are some comment=
s and ideas.</div><div id=3D"AppleMailSignature"><br></div><div>There is int=
erest in the security product business (access rules configuration for examp=
le). Some users don't want to deal with introducing keys that have to carry m=
eaningless values. Not a problem for other cases of course.</div><div><br></=
div><div>The goal is to have a type of configuration lists in which the comb=
ination of all of the columns is unique so no need for a key from this persp=
ective. We might think why not just model all leaves as part of the key. The=
 problem with that is edit-config, which can only create or delete records i=
n this case.</div><div><br></div><div>Unless the edit-config sends all of th=
e old values (to identify the instance) along with the new values (for a N s=
ize list, we would be sending 2*N values), then there is no way to identify a=
 single instance for an edit operation.</div><div><br></div><div>This makes e=
dit-config syntax different from the current standard and complicated.</div>=
<div><br></div><div>Another option is to keep a key that is system generated=
 at the protocol level. A NETCONF server would have to implement such capabi=
lity. Just thinking out loud here. There might be other issues with this app=
roach as the key is not decided by the clients.</div><div><br></div><div><br=
></div><div><br></div><div>/Nabil</div><div><br></div><div><br></div><div><b=
r>On Nov 1, 2015, at 8:05 AM, Andy Bierman &lt;<a href=3D"mailto:andy@yumawo=
rks.com">andy@yumaworks.com</a>&gt; wrote:<br><br></div><blockquote type=3D"=
cite"><div><div dir=3D"ltr">Hi,<div><br></div><div>Why is this WG discussing=
 issues that have been declared DEAD for</div><div>various reasons?&nbsp; Op=
tional keys break old clients, remember?</div><div>There was not enough inte=
rest in adding these features.&nbsp;</div><div><br></div><div><br></div><div=
>Andy</div><div><br></div></div><div class=3D"gmail_extra"><br><div class=3D=
"gmail_quote">On Sun, Nov 1, 2015 at 6:51 AM, Juergen Schoenwaelder <span di=
r=3D"ltr">&lt;<a href=3D"mailto:j.schoenwaelder@jacobs-university.de" target=
=3D"_blank">j.schoenwaelder@jacobs-university.de</a>&gt;</span> wrote:<br><b=
lockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #=
ccc solid;padding-left:1ex">On Thu, Oct 29, 2015 at 01:17:56PM +0100, Martin=
 Bjorklund wrote:<br>
&gt; Juergen Schoenwaelder &lt;<a href=3D"mailto:j.schoenwaelder@jacobs-univ=
ersity.de">j.schoenwaelder@jacobs-university.de</a>&gt; wrote:<br>
&gt; &gt; Hi,<br>
&gt; &gt;<br>
&gt; &gt; the issues Y09 and Y57 were declared dead after intense discussion=
s of<br>
&gt; &gt; various solution proposals. It later appeared to me that there is a=
<br>
&gt; &gt; solution that we have not considered. The requirement to have a ke=
y<br>
&gt; &gt; for every list and unique values in a leaf-list for config nodes i=
s<br>
&gt; &gt; essentially there to allow edits on individual elements using<br>
&gt; &gt; edit-config. The solution not considered so far is simply to give u=
p<br>
&gt; &gt; the ability to edit invidual elements, that is, a config list with=
out<br>
&gt; &gt; a key can only be modified as whole and similarily a leaf-list tha=
t<br>
&gt; &gt; allows non-unique values can only be modified as a whole (with<br>=

&gt; &gt; edit-config). Comments?<br>
&gt;<br>
&gt; How would this look in edit-config?&nbsp; There are quite a few details=
 to<br>
&gt; think through in order to support this.<br>
&gt;<br>
<br>
Why would that be complicated for edit-config? This key-less list<br>
would essentially be anyxml with a known structure. You likely do not<br>
allow edit-config specific attributes on all of them.<br>
<span class=3D"HOEnZb"><font color=3D"#888888"><br>
/js<br>
<br>
--<br>
Juergen Schoenwaelder&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Jacobs Univers=
ity Bremen gGmbH<br>
Phone: +49 421 200 3587&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Campus Ring 1 | 287=
59 Bremen | Germany<br>
Fax:&nbsp; &nbsp;+49 421 200 3103&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;<a hr=
ef=3D"http://www.jacobs-university.de/" rel=3D"noreferrer" target=3D"_blank"=
>http://www.jacobs-university.de/</a>&gt;<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" rel=3D"noreferrer" t=
arget=3D"_blank">https://www.ietf.org/mailman/listinfo/netmod</a><br>
</font></span></blockquote></div><br></div>
</div></blockquote><blockquote type=3D"cite"><div><span>____________________=
___________________________</span><br><span>netmod mailing list</span><br><s=
pan><a href=3D"mailto:netmod@ietf.org">netmod@ietf.org</a></span><br><span><=
a href=3D"https://www.ietf.org/mailman/listinfo/netmod">https://www.ietf.org=
/mailman/listinfo/netmod</a></span><br></div></blockquote></body></html>=

--Apple-Mail-00D71A7E-E68E-480E-BF10-0B77F9D67B96--


From nobody Sun Nov  1 16:03: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 7353D1B3BFF for <netmod@ietfa.amsl.com>; Sun,  1 Nov 2015 16:03:53 -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 9Vl9aowwoiVO for <netmod@ietfa.amsl.com>; Sun,  1 Nov 2015 16:03:52 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id 0B9B01B3BFC for <netmod@ietf.org>; Sun,  1 Nov 2015 16:03:52 -0800 (PST)
Received: from localhost (dhcp-37-245.meeting.ietf94.jp [133.93.37.245]) by mail.tail-f.com (Postfix) with ESMTPSA id 92B1E1AE0478; Mon,  2 Nov 2015 01:03:49 +0100 (CET)
Date: Mon, 02 Nov 2015 09:03:46 +0900 (JST)
Message-Id: <20151102.090346.2294922195703162489.mbj@tail-f.com>
To: j.schoenwaelder@jacobs-university.de
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <20151101145115.GA83722@elstar.local>
References: <20151029091758.GB78922@elstar.local> <20151029.131756.1681194827815089398.mbj@tail-f.com> <20151101145115.GA83722@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/ijPClheC4l_5cUDaAiTHcf7AgCA>
Cc: netmod@ietf.org
Subject: Re: [netmod] config lists without keys (Y09) / non-unique leaf-lists (Y57)
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 02 Nov 2015 00:03:53 -0000

Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote:
> On Thu, Oct 29, 2015 at 01:17:56PM +0100, Martin Bjorklund wrote:
> > Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote:
> > > Hi,
> > > 
> > > the issues Y09 and Y57 were declared dead after intense discussions of
> > > various solution proposals. It later appeared to me that there is a
> > > solution that we have not considered. The requirement to have a key
> > > for every list and unique values in a leaf-list for config nodes is
> > > essentially there to allow edits on individual elements using
> > > edit-config. The solution not considered so far is simply to give up
> > > the ability to edit invidual elements, that is, a config list without
> > > a key can only be modified as whole and similarily a leaf-list that
> > > allows non-unique values can only be modified as a whole (with
> > > edit-config). Comments?
> > 
> > How would this look in edit-config?  There are quite a few details to
> > think through in order to support this.
> >
> 
> Why would that be complicated for edit-config? This key-less list
> would essentially be anyxml with a known structure. You likely do not
> allow edit-config specific attributes on all of them.

For anyxml/anydata, there is a surrounding container that contains the
"blob":

  anydata foo;

  <foo>
    <blah>
      <blaha>goo</blaha>
    </blah>
  </foo>

but with a list, the entries are encoded w/o any surrounding tag:

  list foo { ... }

  <foo>
    // entry 1
  </foo>
  <foo>
    // entry 2
  </foo>
 


/martin


From nobody Sun Nov  1 16:04: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 2EA681B3C1F for <netmod@ietfa.amsl.com>; Sun,  1 Nov 2015 16:04:57 -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 0-BZYdWPOw3p for <netmod@ietfa.amsl.com>; Sun,  1 Nov 2015 16:04:55 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id 97FC01B3C20 for <netmod@ietf.org>; Sun,  1 Nov 2015 16:04:55 -0800 (PST)
Received: from localhost (dhcp-37-245.meeting.ietf94.jp [133.93.37.245]) by mail.tail-f.com (Postfix) with ESMTPSA id 17DD41AE0478; Mon,  2 Nov 2015 01:04:52 +0100 (CET)
Date: Mon, 02 Nov 2015 09:04:50 +0900 (JST)
Message-Id: <20151102.090450.1440345617929906919.mbj@tail-f.com>
To: andy@yumaworks.com
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <CABCOCHRU3-Y5xyK26CKK4gd3pDib7DMxZkakEXghb1-6qmLYZw@mail.gmail.com>
References: <20151029.131756.1681194827815089398.mbj@tail-f.com> <20151101145115.GA83722@elstar.local> <CABCOCHRU3-Y5xyK26CKK4gd3pDib7DMxZkakEXghb1-6qmLYZw@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/txCMplAtqZ-64WfCn3wP3FSp4lo>
Cc: netmod@ietf.org
Subject: Re: [netmod] config lists without keys (Y09) / non-unique leaf-lists (Y57)
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 02 Nov 2015 00:04:57 -0000

Andy Bierman <andy@yumaworks.com> wrote:
> Hi,
> 
> Why is this WG discussing issues that have been declared DEAD for
> various reasons?  Optional keys break old clients, remember?

Agreed.  But I don't think the issue that Juergen brought up is
related to Y09 (even though the mail subject says so...)


/martin



> There was not enough interest in adding these features.
> 
> 
> Andy
> 
> 
> On Sun, Nov 1, 2015 at 6:51 AM, Juergen Schoenwaelder <
> j.schoenwaelder@jacobs-university.de> wrote:
> 
> > On Thu, Oct 29, 2015 at 01:17:56PM +0100, Martin Bjorklund wrote:
> > > Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote:
> > > > Hi,
> > > >
> > > > the issues Y09 and Y57 were declared dead after intense discussions of
> > > > various solution proposals. It later appeared to me that there is a
> > > > solution that we have not considered. The requirement to have a key
> > > > for every list and unique values in a leaf-list for config nodes is
> > > > essentially there to allow edits on individual elements using
> > > > edit-config. The solution not considered so far is simply to give up
> > > > the ability to edit invidual elements, that is, a config list without
> > > > a key can only be modified as whole and similarily a leaf-list that
> > > > allows non-unique values can only be modified as a whole (with
> > > > edit-config). Comments?
> > >
> > > How would this look in edit-config?  There are quite a few details to
> > > think through in order to support this.
> > >
> >
> > Why would that be complicated for edit-config? This key-less list
> > would essentially be anyxml with a known structure. You likely do not
> > allow edit-config specific attributes on all of them.
> >
> > /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 Sun Nov  1 16:20: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 B01501A0110 for <netmod@ietfa.amsl.com>; Sun,  1 Nov 2015 16:20:30 -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 zatr59CBw5Y9 for <netmod@ietfa.amsl.com>; Sun,  1 Nov 2015 16:20:29 -0800 (PST)
Received: from mail.nic.cz (mail.nic.cz [IPv6:2001:1488:800:400::400]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 813751ACD19 for <netmod@ietf.org>; Sun,  1 Nov 2015 16:20:28 -0800 (PST)
Received: from t20010c400000302458f99f60abaf308f.v6.meeting.ietf94.jp (t20010c400000302458f99f60abaf308f.v6.meeting.ietf94.jp [IPv6:2001:c40:0:3024:58f9:9f60:abaf:308f]) by mail.nic.cz (Postfix) with ESMTPSA id B9984181A65; Mon,  2 Nov 2015 01:20:25 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nic.cz; s=default; t=1446423627; bh=kXYctVk9z13ltVSI1rFtT0E0F0pb0QYecOghO98HGCU=; h=From:Date:To; b=V/5VrU+MWZpv4sPmfnry6r4SW0qwHIX9idq67ZRo6D3VWk0X8jsKsvk/IqeAuSy4V oxfXcx1Uimpf/sO3MOhPekLQQ8DmpibtjD2U+yDnoFNs5sBGQ3lGSPxMt+S31130yl NdWoqCB0aUlSVlCNTwoM/85KUtSVuwWz2Ue28W38=
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
From: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <CABCOCHQPYO3t4f1JV6JtAmfvsaWFTB0BLcvd3beww_J3fjrrQw@mail.gmail.com>
Date: Mon, 2 Nov 2015 09:20:22 +0900
Content-Transfer-Encoding: quoted-printable
Message-Id: <AF289CC2-3654-44EC-9A41-9F87896AD8C6@nic.cz>
References: <CABCOCHQPYO3t4f1JV6JtAmfvsaWFTB0BLcvd3beww_J3fjrrQw@mail.gmail.com>
To: Andy Bierman <andy@yumaworks.com>
X-Mailer: Apple Mail (2.3096.5)
X-Virus-Scanned: clamav-milter 0.98.7 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/dS3OHbxCK9kFyRhhgGokMlDdeu8>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] if-feature and default
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 02 Nov 2015 00:20:30 -0000

> On 02 Nov 2015, at 02:16, Andy Bierman <andy@yumaworks.com> wrote:
>=20
> Hi,
>=20
> I started a separate thread for this issue.
> The current YANG 1.1 text is incomplete wrt/ default-stmt.
>=20
>   leaf broken {
>      type enumeration {
>         enum option1 {
>            if-feature option1;
>         }
>         enum option2 {
>            if-feature option2;
>         }
>         enum option3;
>      }
>      default "option2";
>    }
>=20
>=20
> What happens if the server does not advertise the option2 feature?
>=20
> I see 2 options:
>   (A) add text that says a default-stmt MUST NOT include any =
conditional
>       values
>   (B) allow if-feature as a sub-statement of the default-stmt

or (C) a default statement that specifies a value that's not permitted =
is an error.

Lada

>=20
> (BTW, customers have asked for (B), so it may be a feature and a =
bugfix)
>=20
>=20
> Andy
>=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 Sun Nov  1 16:29:39 2015
Return-Path: <frank.fengchong@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 1745D1B3D5B for <netmod@ietfa.amsl.com>; Sun,  1 Nov 2015 16:29:38 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.9
X-Spam-Level: 
X-Spam-Status: No, score=-3.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, MIME_8BIT_HEADER=0.3, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001, T_FILL_THIS_FORM_SHORT=0.01, 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 LspY_yozdn3E for <netmod@ietfa.amsl.com>; Sun,  1 Nov 2015 16:29:35 -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 707521B3D6B for <netmod@ietf.org>; Sun,  1 Nov 2015 16:29:34 -0800 (PST)
Received: from 172.18.7.190 (EHLO lhreml405-hub.china.huawei.com) ([172.18.7.190]) by lhrrg01-dlp.huawei.com (MOS 4.3.7-GA FastPath queued) with ESMTP id CDJ51079; Mon, 02 Nov 2015 00:29:32 +0000 (GMT)
Received: from SZXEMI402-HUB.china.huawei.com (10.82.75.34) by lhreml405-hub.china.huawei.com (10.201.5.242) with Microsoft SMTP Server (TLS) id 14.3.235.1; Mon, 2 Nov 2015 00:29:29 +0000
Received: from SZXEMI506-MBS.china.huawei.com ([169.254.6.125]) by SZXEMI402-HUB.china.huawei.com ([10.83.65.54]) with mapi id 14.03.0235.001; Mon, 2 Nov 2015 08:29:25 +0800
From: "fengchong (C)" <frank.fengchong@huawei.com>
To: Andy Bierman <andy@yumaworks.com>, "netmod@ietf.org" <netmod@ietf.org>
Thread-Topic: [netmod] if-feature and default
Thread-Index: AQHRFMkS00X+UXK/SkKVXhfUwPcPxJ6H306Q
Date: Mon, 2 Nov 2015 00:29:24 +0000
Message-ID: <5756FB984666AD4BB8E1D63E2E3AA3D082731D@SZXEMI506-MBS.china.huawei.com>
References: <CABCOCHQPYO3t4f1JV6JtAmfvsaWFTB0BLcvd3beww_J3fjrrQw@mail.gmail.com>
In-Reply-To: <CABCOCHQPYO3t4f1JV6JtAmfvsaWFTB0BLcvd3beww_J3fjrrQw@mail.gmail.com>
Accept-Language: en-US
Content-Language: zh-CN
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
x-originating-ip: [10.134.40.226]
Content-Type: multipart/related; boundary="_004_5756FB984666AD4BB8E1D63E2E3AA3D082731DSZXEMI506MBSchina_"; type="multipart/alternative"
MIME-Version: 1.0
X-CFilter-Loop: Reflected
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/pSPZwwZ5Xi48SpbQQPzN3LnWpcM>
Subject: [netmod] =?utf-8?b?562U5aSNOiAgaWYtZmVhdHVyZSBhbmQgZGVmYXVsdA==?=
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 02 Nov 2015 00:29:38 -0000

--_004_5756FB984666AD4BB8E1D63E2E3AA3D082731DSZXEMI506MBSchina_
Content-Type: multipart/alternative;
	boundary="_000_5756FB984666AD4BB8E1D63E2E3AA3D082731DSZXEMI506MBSchina_"

--_000_5756FB984666AD4BB8E1D63E2E3AA3D082731DSZXEMI506MBSchina_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

DQpIaSwNCiAgIEkgcHJlZmVyICAgQS4NCg0KICBPdGhlcndpc2UsIGlmIOKAmG9wdGlvbjHigJkg
aXMgc3VwcG9ydGVkLCB0aGUgZGVmYXVsdCB2YWx1ZSBzaG91bGQgYmUg4oCYb3B0aW9uMeKAmSBh
bmQg4oCYb3B0aW9uMuKAmSBpcyBzdXBwb3J0ZWQgLHRoZSBkZWZhdWx0IHZhbHVlIHNob3VsZCBi
ZSDigJhvcHRpb24y4oCZLCBCIGNhbm5vdCBleHByZXNzIGl0Lg0KDQpPciBtb3JlIGRlZmF1bHQg
c3RtdHMgY2FuIGJlIGFsbG93ZWQuDQoNCiAgbGVhZiBicm9rZW4gew0KICAgICB0eXBlIGVudW1l
cmF0aW9uIHsNCiAgICAgICAgZW51bSBvcHRpb24xIHsNCiAgICAgICAgICAgaWYtZmVhdHVyZSBv
cHRpb24xOw0KICAgICAgICB9DQogICAgICAgIGVudW0gb3B0aW9uMiB7DQogICAgICAgICAgIGlm
LWZlYXR1cmUgb3B0aW9uMjsNCiAgICAgICAgfQ0KICAgICAgICBlbnVtIG9wdGlvbjM7DQogICAg
IH0NCiAgICAgZGVmYXVsdCAib3B0aW9uMSIgew0KICAgICAgICAgICAgaWYtZmVhdHVyZSBvcHRp
b24xOw0KICAgICAgICB9DQogICAgICAgIGRlZmF1bHQgIm9wdGlvbjIiIHsNCiAgICAgICAgICAg
IGlmLWZlYXR1cmUgb3B0aW9uMjsNCiAgICAgICAgfQ0KICAgfQ0KDQpfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fXw0K5Yav5YayDQrljY7kuLrmioDmnK/mnInpmZDlhazlj7ggSHVhd2Vp
IFRlY2hub2xvZ2llcyBDby4sIEx0ZC4NCltDb21wYW55X2xvZ29dDQoNClBob25lOg0KRmF4Og0K
TW9iaWxlOiAxODUxOTExNzMxNg0KRW1haWw6IGZyYW5rLmZlbmdjaG9uZ0BodWF3ZWkuY29tDQrl
nLDlnYDvvJrljZfkuqzluILova/ku7blpKfpgZMxMDHlj7fljY7kuLrljZfkuqzln7rlnLAg6YKu
57yW77yaMjEwMDAxDQpIdWF3ZWkgVGVjaG5vbG9naWVzIENvLiwgTHRkLg0KDQpodHRwOi8vd3d3
Lmh1YXdlaS5jb20NCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQrmnKzpgq7ku7bl
j4rlhbbpmYTku7blkKvmnInljY7kuLrlhazlj7jnmoTkv53lr4bkv6Hmga/vvIzku4XpmZDkuo7l
j5HpgIHnu5nkuIrpnaLlnLDlnYDkuK3liJflh7rnmoTkuKrkurrmiJbnvqTnu4TjgILnpoENCuat
ouS7u+S9leWFtuS7luS6uuS7peS7u+S9leW9ouW8j+S9v+eUqO+8iOWMheaLrOS9huS4jemZkOS6
juWFqOmDqOaIlumDqOWIhuWcsOazhOmcsuOAgeWkjeWItuOAgeaIluaVo+WPke+8ieacrOmCruS7
tuS4rQ0K55qE5L+h5oGv44CC5aaC5p6c5oKo6ZSZ5pS25LqG5pys6YKu5Lu277yM6K+35oKo56uL
5Y2z55S16K+d5oiW6YKu5Lu26YCa55+l5Y+R5Lu25Lq65bm25Yig6Zmk5pys6YKu5Lu277yBDQpU
SGlzIGUtbWFpbCBhbmQgaXRzIGF0dGFjaG1lbnRzIGNvbnRhaW4gY29uZmlkZW50aWFsIGluZm9y
bWF0aW9uIGZyb20gSFVBV0VJLCB3aGljaA0KaXMgaW50ZW5kZWQgb25seSBmb3IgdGhlIHBlcnNv
biBvciBlbnRpdHkgd2hvc2UgYWRkcmVzcyBpcyBsaXN0ZWQgYWJvdmUuIEFueSB1c2Ugb2YgdGhl
DQppbmZvcm1hdGlvbiBjb250YWluZWQgaGVyZWluIGluIGFueSB3YXkgKGluY2x1ZGluZywgYnV0
IG5vdCBsaW1pdGVkIHRvLCB0b3RhbCBvciBwYXJ0aWFsDQpkaXNjbG9zdXJlLCByZXByb2R1Y3Rp
b24sIG9yIGRpc3NlbWluYXRpb24pIGJ5IHBlcnNvbnMgb3RoZXIgdGhhbiB0aGUgaW50ZW5kZWQN
CnJlY2lwaWVudChzKSBpcyBwcm9oaWJpdGVkLiBJZiB5b3UgcmVjZWl2ZSB0aGlzIGUtbWFpbCBp
biBlcnJvciwgcGxlYXNlIG5vdGlmeSB0aGUgc2VuZGVyIGJ5DQpwaG9uZSBvciBlbWFpbCBpbW1l
ZGlhdGVseSBhbmQgZGVsZXRlIGl0IQ0K5Y+R5Lu25Lq6OiBuZXRtb2QgW21haWx0bzpuZXRtb2Qt
Ym91bmNlc0BpZXRmLm9yZ10g5Luj6KGoIEFuZHkgQmllcm1hbg0K5Y+R6YCB5pe26Ze0OiAyMDE1
5bm0MTHmnIgy5pelIDE6MTYNCuaUtuS7tuS6ujogbmV0bW9kQGlldGYub3JnDQrkuLvpopg6IFtu
ZXRtb2RdIGlmLWZlYXR1cmUgYW5kIGRlZmF1bHQNCg0KSGksDQoNCkkgc3RhcnRlZCBhIHNlcGFy
YXRlIHRocmVhZCBmb3IgdGhpcyBpc3N1ZS4NClRoZSBjdXJyZW50IFlBTkcgMS4xIHRleHQgaXMg
aW5jb21wbGV0ZSB3cnQvIGRlZmF1bHQtc3RtdC4NCg0KICBsZWFmIGJyb2tlbiB7DQogICAgIHR5
cGUgZW51bWVyYXRpb24gew0KICAgICAgICBlbnVtIG9wdGlvbjEgew0KICAgICAgICAgICBpZi1m
ZWF0dXJlIG9wdGlvbjE7DQogICAgICAgIH0NCiAgICAgICAgZW51bSBvcHRpb24yIHsNCiAgICAg
ICAgICAgaWYtZmVhdHVyZSBvcHRpb24yOw0KICAgICAgICB9DQogICAgICAgIGVudW0gb3B0aW9u
MzsNCiAgICAgfQ0KICAgICBkZWZhdWx0ICJvcHRpb24yIjsNCiAgIH0NCg0KDQpXaGF0IGhhcHBl
bnMgaWYgdGhlIHNlcnZlciBkb2VzIG5vdCBhZHZlcnRpc2UgdGhlIG9wdGlvbjIgZmVhdHVyZT8N
Cg0KSSBzZWUgMiBvcHRpb25zOg0KICAoQSkgYWRkIHRleHQgdGhhdCBzYXlzIGEgZGVmYXVsdC1z
dG10IE1VU1QgTk9UIGluY2x1ZGUgYW55IGNvbmRpdGlvbmFsDQogICAgICB2YWx1ZXMNCiAgKEIp
IGFsbG93IGlmLWZlYXR1cmUgYXMgYSBzdWItc3RhdGVtZW50IG9mIHRoZSBkZWZhdWx0LXN0bXQN
Cg0KKEJUVywgY3VzdG9tZXJzIGhhdmUgYXNrZWQgZm9yIChCKSwgc28gaXQgbWF5IGJlIGEgZmVh
dHVyZSBhbmQgYSBidWdmaXgpDQoNCg0KQW5keQ0KDQoNCg0K

--_000_5756FB984666AD4BB8E1D63E2E3AA3D082731DSZXEMI506MBSchina_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTIgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPCEtLVtp
ZiAhbXNvXT48c3R5bGU+dlw6KiB7YmVoYXZpb3I6dXJsKCNkZWZhdWx0I1ZNTCk7fQ0Kb1w6KiB7
YmVoYXZpb3I6dXJsKCNkZWZhdWx0I1ZNTCk7fQ0Kd1w6KiB7YmVoYXZpb3I6dXJsKCNkZWZhdWx0
I1ZNTCk7fQ0KLnNoYXBlIHtiZWhhdmlvcjp1cmwoI2RlZmF1bHQjVk1MKTt9DQo8L3N0eWxlPjwh
W2VuZGlmXS0tPjxzdHlsZT48IS0tDQovKiBGb250IERlZmluaXRpb25zICovDQpAZm9udC1mYWNl
DQoJe2ZvbnQtZmFtaWx5OuWui+S9kzsNCglwYW5vc2UtMToyIDEgNiAwIDMgMSAxIDEgMSAxO30N
CkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6IkNhbWJyaWEgTWF0aCI7DQoJcGFub3NlLTE6MiA0
IDUgMyA1IDQgNiAzIDIgNDt9DQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7DQoJ
cGFub3NlLTE6MiAxNSA1IDIgMiAyIDQgMyAyIDQ7fQ0KQGZvbnQtZmFjZQ0KCXtmb250LWZhbWls
eTrljY7mlofnu4bpu5E7DQoJcGFub3NlLTE6MiAxIDYgMCA0IDEgMSAxIDEgMTt9DQpAZm9udC1m
YWNlDQoJe2ZvbnQtZmFtaWx5OiJcQOWui+S9kyI7DQoJcGFub3NlLTE6MiAxIDYgMCAzIDEgMSAx
IDEgMTt9DQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OiJcQOWNjuaWh+e7hum7kSI7DQoJcGFu
b3NlLTE6MiAxIDYgMCA0IDEgMSAxIDEgMTt9DQovKiBTdHlsZSBEZWZpbml0aW9ucyAqLw0KcC5N
c29Ob3JtYWwsIGxpLk1zb05vcm1hbCwgZGl2Lk1zb05vcm1hbA0KCXttYXJnaW46MGNtOw0KCW1h
cmdpbi1ib3R0b206LjAwMDFwdDsNCglmb250LXNpemU6MTIuMHB0Ow0KCWZvbnQtZmFtaWx5OuWu
i+S9kzt9DQphOmxpbmssIHNwYW4uTXNvSHlwZXJsaW5rDQoJe21zby1zdHlsZS1wcmlvcml0eTo5
OTsNCgljb2xvcjpibHVlOw0KCXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQ0KYTp2aXNpdGVk
LCBzcGFuLk1zb0h5cGVybGlua0ZvbGxvd2VkDQoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsNCglj
b2xvcjpwdXJwbGU7DQoJdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9DQpzcGFuLkVtYWlsU3R5
bGUxNw0KCXttc28tc3R5bGUtdHlwZTpwZXJzb25hbC1yZXBseTsNCglmb250LWZhbWlseToiQ2Fs
aWJyaSIsInNhbnMtc2VyaWYiOw0KCWNvbG9yOiMxRjQ5N0Q7fQ0KLk1zb0NocERlZmF1bHQNCgl7
bXNvLXN0eWxlLXR5cGU6ZXhwb3J0LW9ubHk7fQ0KQHBhZ2UgV29yZFNlY3Rpb24xDQoJe3NpemU6
NjEyLjBwdCA3OTIuMHB0Ow0KCW1hcmdpbjo3Mi4wcHQgOTAuMHB0IDcyLjBwdCA5MC4wcHQ7fQ0K
ZGl2LldvcmRTZWN0aW9uMQ0KCXtwYWdlOldvcmRTZWN0aW9uMTt9DQotLT48L3N0eWxlPjwhLS1b
aWYgZ3RlIG1zbyA5XT48eG1sPg0KPG86c2hhcGVkZWZhdWx0cyB2OmV4dD0iZWRpdCIgc3BpZG1h
eD0iMjA1MCIgLz4NCjwveG1sPjwhW2VuZGlmXS0tPjwhLS1baWYgZ3RlIG1zbyA5XT48eG1sPg0K
PG86c2hhcGVsYXlvdXQgdjpleHQ9ImVkaXQiPg0KPG86aWRtYXAgdjpleHQ9ImVkaXQiIGRhdGE9
IjEiIC8+DQo8L286c2hhcGVsYXlvdXQ+PC94bWw+PCFbZW5kaWZdLS0+DQo8L2hlYWQ+DQo8Ym9k
eSBsYW5nPSJaSC1DTiIgbGluaz0iYmx1ZSIgdmxpbms9InB1cnBsZSI+DQo8ZGl2IGNsYXNzPSJX
b3JkU2VjdGlvbjEiPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0
eWxlPSJmb250LXNpemU6MTAuNXB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1
b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bh
bj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyIgc3R5bGU9ImZv
bnQtc2l6ZToxMC41cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5z
LXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPkhpLDxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXplOjEw
LjVwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVv
dDs7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7Jm5ic3A7IEkgcHJlZmVyICZuYnNwOyZuYnNwO0EuPG86
cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4t
VVMiIHN0eWxlPSJmb250LXNpemU6MTAuNXB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVv
dDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj4mbmJzcDsNCjxvOnA+PC9v
OnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIiBz
dHlsZT0iZm9udC1zaXplOjEwLjVwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZx
dW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7Jm5ic3A7T3RoZXJ3aXNl
LCBpZiDigJhvcHRpb24x4oCZIGlzIHN1cHBvcnRlZCwgdGhlIGRlZmF1bHQgdmFsdWUgc2hvdWxk
IGJlIOKAmG9wdGlvbjHigJkgYW5kIOKAmG9wdGlvbjLigJkgaXMgc3VwcG9ydGVkICx0aGUgZGVm
YXVsdCB2YWx1ZSBzaG91bGQgYmUg4oCYb3B0aW9uMuKAmSwNCiBCIGNhbm5vdCBleHByZXNzIGl0
LjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9
IkVOLVVTIiBzdHlsZT0iZm9udC1zaXplOjEwLjVwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJp
JnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8
L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9InRleHQtaW5kZW50
OjUuMjVwdCI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTAuNXB0O2ZvbnQt
ZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjoj
MUY0OTdEIj5PciBtb3JlIGRlZmF1bHQgc3RtdHMgY2FuIGJlIGFsbG93ZWQuPG86cD48L286cD48
L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9InRleHQtaW5kZW50OjUuMjVw
dCI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTAuNXB0O2ZvbnQtZmFtaWx5
OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdE
Ij48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3Bh
biBsYW5nPSJFTi1VUyI+Jm5ic3A7IGxlYWYgYnJva2VuIHs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+Jm5ic3A7ICZuYnNwOyAm
bmJzcDt0eXBlIGVudW1lcmF0aW9uIHs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
IGVudW0gb3B0aW9uMSB7PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PHNwYW4gbGFuZz0iRU4tVVMiPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg
Jm5ic3A7aWYtZmVhdHVyZSBvcHRpb24xOzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz
cDsgfTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxh
bmc9IkVOLVVTIj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgZW51bSBvcHRpb24yIHs8bzpw
PjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1V
UyI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtpZi1mZWF0dXJlIG9w
dGlvbjI7PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4g
bGFuZz0iRU4tVVMiPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyB9PG86cD48L286cD48L3Nw
YW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPiZuYnNwOyAm
bmJzcDsgJm5ic3A7ICZuYnNwOyBlbnVtIG9wdGlvbjM7PG86cD48L286cD48L3NwYW4+PC9wPg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPiZuYnNwOyAmbmJzcDsgJm5i
c3A7fTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxh
bmc9IkVOLVVTIj4mbmJzcDsgJm5ic3A7ICZuYnNwO2RlZmF1bHQgJnF1b3Q7b3B0aW9uMSZxdW90
OyB7PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFu
Zz0iRU4tVVMiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyBpZi1mZWF0dXJlIG9wdGlvbjE7PG86cD48L286cD48L3NwYW4+
PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPiZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB9PG86cD48L286cD48L3NwYW4+PC9wPg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPiZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBkZWZhdWx0ICZxdW90O29wdGlvbjImcXVvdDsgezxv
OnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVO
LVVTIj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsgaWYtZmVhdHVyZSBvcHRpb24yOzxvOnA+PC9vOnA+PC9zcGFuPjwvcD4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj4mbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgfTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj4mbmJzcDsgJm5ic3A7fTxvOnA+PC9v
OnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJ0ZXh0LWluZGVudDo1
LjI1cHQiPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXplOjEwLjVwdDtmb250LWZh
bWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFG
NDk3RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPGRpdiBjbGFzcz0iTXNvTm9ybWFs
IiBhbGlnbj0iY2VudGVyIiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXIiPjxzcGFuIGxhbmc9IkVO
LVVTIiBzdHlsZT0iY29sb3I6IzFGNDk3RCI+DQo8aHIgc2l6ZT0iMiIgd2lkdGg9IjEwMCUiIGFs
aWduPSJjZW50ZXIiPg0KPC9zcGFuPjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk65Y2O5paH57uG6buRO2NvbG9yOmJs
YWNrIj7lhq/lhrI8c3BhbiBsYW5nPSJFTi1VUyI+PGJyPg0KPC9zcGFuPuWNjuS4uuaKgOacr+ac
iemZkOWFrOWPuDxzcGFuIGxhbmc9IkVOLVVTIj4gSHVhd2VpIFRlY2hub2xvZ2llcyBDby4sIEx0
ZC48YnI+DQo8L3NwYW4+PC9zcGFuPjwhLS1baWYgZ3RlIHZtbCAxXT48djpzaGFwZXR5cGUgaWQ9
Il94MDAwMF90NzUiIGNvb3Jkc2l6ZT0iMjE2MDAsMjE2MDAiIG86c3B0PSI3NSIgbzpwcmVmZXJy
ZWxhdGl2ZT0idCIgcGF0aD0ibUA0QDVsQDRAMTFAOUAxMUA5QDV4ZSIgZmlsbGVkPSJmIiBzdHJv
a2VkPSJmIj4NCjx2OnN0cm9rZSBqb2luc3R5bGU9Im1pdGVyIiAvPg0KPHY6Zm9ybXVsYXM+DQo8
djpmIGVxbj0iaWYgbGluZURyYXduIHBpeGVsTGluZVdpZHRoIDAiIC8+DQo8djpmIGVxbj0ic3Vt
IEAwIDEgMCIgLz4NCjx2OmYgZXFuPSJzdW0gMCAwIEAxIiAvPg0KPHY6ZiBlcW49InByb2QgQDIg
MSAyIiAvPg0KPHY6ZiBlcW49InByb2QgQDMgMjE2MDAgcGl4ZWxXaWR0aCIgLz4NCjx2OmYgZXFu
PSJwcm9kIEAzIDIxNjAwIHBpeGVsSGVpZ2h0IiAvPg0KPHY6ZiBlcW49InN1bSBAMCAwIDEiIC8+
DQo8djpmIGVxbj0icHJvZCBANiAxIDIiIC8+DQo8djpmIGVxbj0icHJvZCBANyAyMTYwMCBwaXhl
bFdpZHRoIiAvPg0KPHY6ZiBlcW49InN1bSBAOCAyMTYwMCAwIiAvPg0KPHY6ZiBlcW49InByb2Qg
QDcgMjE2MDAgcGl4ZWxIZWlnaHQiIC8+DQo8djpmIGVxbj0ic3VtIEAxMCAyMTYwMCAwIiAvPg0K
PC92OmZvcm11bGFzPg0KPHY6cGF0aCBvOmV4dHJ1c2lvbm9rPSJmIiBncmFkaWVudHNoYXBlb2s9
InQiIG86Y29ubmVjdHR5cGU9InJlY3QiIC8+DQo8bzpsb2NrIHY6ZXh0PSJlZGl0IiBhc3BlY3Ry
YXRpbz0idCIgLz4NCjwvdjpzaGFwZXR5cGU+PHY6c2hhcGUgaWQ9InJpZEltZyIgbzpzcGlkPSJf
eDAwMDBfczEwMjYiIHR5cGU9IiNfeDAwMDBfdDc1IiBhbHQ9IkNvbXBhbnlfbG9nbyIgc3R5bGU9
J3Bvc2l0aW9uOmFic29sdXRlO21hcmdpbi1sZWZ0OjA7bWFyZ2luLXRvcDowO3dpZHRoOjc2LjVw
dDtoZWlnaHQ6MjRwdDt6LWluZGV4OjE7dmlzaWJpbGl0eTp2aXNpYmxlO21zby13cmFwLXN0eWxl
OnNxdWFyZTttc28td3JhcC1kaXN0YW5jZS1sZWZ0OjA7bXNvLXdyYXAtZGlzdGFuY2UtdG9wOjA7
bXNvLXdyYXAtZGlzdGFuY2UtcmlnaHQ6MDttc28td3JhcC1kaXN0YW5jZS1ib3R0b206MDttc28t
cG9zaXRpb24taG9yaXpvbnRhbDpsZWZ0O21zby1wb3NpdGlvbi1ob3Jpem9udGFsLXJlbGF0aXZl
OnRleHQ7bXNvLXBvc2l0aW9uLXZlcnRpY2FsOmFic29sdXRlO21zby1wb3NpdGlvbi12ZXJ0aWNh
bC1yZWxhdGl2ZTpsaW5lJyBvOmFsbG93b3ZlcmxhcD0iZiI+DQo8djppbWFnZWRhdGEgc3JjPSJj
aWQ6aW1hZ2UwMDEuanBnQDAxRDExNTQ4LjhGODM0QjMwIiBvOmhyZWY9ImZpbGU6Ly8vQzpcVXNl
cnNcZjAwMzYwMjE4XEFwcGxpY2F0aW9uJTIwRGF0YVxNaWNyb3NvZnRcU2lnbmF0dXJlc1xjb21w
YW55X2xvZ28uanBnIiAvPg0KPHc6d3JhcCB0eXBlPSJzcXVhcmUiIGFuY2hvcnk9ImxpbmUiLz4N
CjwvdjpzaGFwZT48IVtlbmRpZl0tLT48IVtpZiAhdm1sXT48aW1nIHdpZHRoPSIxMDIiIGhlaWdo
dD0iMzIiIHNyYz0iY2lkOmltYWdlMDAxLmpwZ0AwMUQxMTU0OC44RjgzNEIzMCIgYWxpZ249Imxl
ZnQiIGFsdD0iQ29tcGFueV9sb2dvIiB2OnNoYXBlcz0icmlkSW1nIj48IVtlbmRpZl0+PHNwYW4g
bGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OuWNjuaWh+e7
hum7kTtjb2xvcjpibGFjayI+PGJyPg0KPGJyPg0KUGhvbmU6IDxicj4NCkZheDogPGJyPg0KTW9i
aWxlOiAxODUxOTExNzMxNjxicj4NCkVtYWlsOiBmcmFuay5mZW5nY2hvbmdAaHVhd2VpLmNvbTxi
cj4NCjwvc3Bhbj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseTrljY7m
lofnu4bpu5E7Y29sb3I6YmxhY2siPuWcsOWdgO+8muWNl+S6rOW4gui9r+S7tuWkp+mBkzxzcGFu
IGxhbmc9IkVOLVVTIj4xMDE8L3NwYW4+5Y+35Y2O5Li65Y2X5Lqs5Z+65ZywIOmCrue8lu+8mjxz
cGFuIGxhbmc9IkVOLVVTIj4yMTAwMDE8YnI+DQpIdWF3ZWkgVGVjaG5vbG9naWVzIENvLiwgTHRk
Ljxicj4NCjxicj4NCmh0dHA6Ly93d3cuaHVhd2VpLmNvbTwvc3Bhbj48L3NwYW4+PHNwYW4gbGFu
Zz0iRU4tVVMiIHN0eWxlPSJjb2xvcjojMUY0OTdEIj4gPG86cD4NCjwvbzpwPjwvc3Bhbj48L3A+
DQo8ZGl2IGNsYXNzPSJNc29Ob3JtYWwiIGFsaWduPSJjZW50ZXIiIHN0eWxlPSJ0ZXh0LWFsaWdu
OmNlbnRlciI+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJjb2xvcjojMUY0OTdEIj4NCjxociBz
aXplPSIyIiB3aWR0aD0iMTAwJSIgYWxpZ249ImNlbnRlciI+DQo8L3NwYW4+PC9kaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjcuNXB0O2ZvbnQtZmFtaWx5
OuWNjuaWh+e7hum7kTtjb2xvcjpncmF5Ij7mnKzpgq7ku7blj4rlhbbpmYTku7blkKvmnInljY7k
uLrlhazlj7jnmoTkv53lr4bkv6Hmga/vvIzku4XpmZDkuo7lj5HpgIHnu5nkuIrpnaLlnLDlnYDk
uK3liJflh7rnmoTkuKrkurrmiJbnvqTnu4TjgILnpoE8c3BhbiBsYW5nPSJFTi1VUyI+PGJyPg0K
PC9zcGFuPuatouS7u+S9leWFtuS7luS6uuS7peS7u+S9leW9ouW8j+S9v+eUqO+8iOWMheaLrOS9
huS4jemZkOS6juWFqOmDqOaIlumDqOWIhuWcsOazhOmcsuOAgeWkjeWItuOAgeaIluaVo+WPke+8
ieacrOmCruS7tuS4rTxzcGFuIGxhbmc9IkVOLVVTIj48YnI+DQo8L3NwYW4+55qE5L+h5oGv44CC
5aaC5p6c5oKo6ZSZ5pS25LqG5pys6YKu5Lu277yM6K+35oKo56uL5Y2z55S16K+d5oiW6YKu5Lu2
6YCa55+l5Y+R5Lu25Lq65bm25Yig6Zmk5pys6YKu5Lu277yBPHNwYW4gbGFuZz0iRU4tVVMiPjxi
cj4NCjwvc3Bhbj48L3NwYW4+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6Ny41
cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7QXJpYWwmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztj
b2xvcjpncmF5Ij5USGlzIGUtbWFpbCBhbmQgaXRzIGF0dGFjaG1lbnRzIGNvbnRhaW4gY29uZmlk
ZW50aWFsIGluZm9ybWF0aW9uIGZyb20gSFVBV0VJLCB3aGljaA0KPGJyPg0KaXMgaW50ZW5kZWQg
b25seSBmb3IgdGhlIHBlcnNvbiBvciBlbnRpdHkgd2hvc2UgYWRkcmVzcyBpcyBsaXN0ZWQgYWJv
dmUuIEFueSB1c2Ugb2YgdGhlDQo8YnI+DQppbmZvcm1hdGlvbiBjb250YWluZWQgaGVyZWluIGlu
IGFueSB3YXkgKGluY2x1ZGluZywgYnV0IG5vdCBsaW1pdGVkIHRvLCB0b3RhbCBvciBwYXJ0aWFs
DQo8YnI+DQpkaXNjbG9zdXJlLCByZXByb2R1Y3Rpb24sIG9yIGRpc3NlbWluYXRpb24pIGJ5IHBl
cnNvbnMgb3RoZXIgdGhhbiB0aGUgaW50ZW5kZWQgPGJyPg0KcmVjaXBpZW50KHMpIGlzIHByb2hp
Yml0ZWQuIElmIHlvdSByZWNlaXZlIHRoaXMgZS1tYWlsIGluIGVycm9yLCBwbGVhc2Ugbm90aWZ5
IHRoZSBzZW5kZXIgYnkNCjxicj4NCnBob25lIG9yIGVtYWlsIGltbWVkaWF0ZWx5IGFuZCBkZWxl
dGUgaXQhPC9zcGFuPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXplOjEwLjVwdDtm
b250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29s
b3I6IzFGNDk3RCI+PG86cD48L286cD48L3NwYW4+PC9wPg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5v
bmU7Ym9yZGVyLXRvcDpzb2xpZCAjQjVDNERGIDEuMHB0O3BhZGRpbmc6My4wcHQgMGNtIDBjbSAw
Y20iPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4w
cHQiPuWPkeS7tuS6ujxzcGFuIGxhbmc9IkVOLVVTIj46PC9zcGFuPjwvc3Bhbj48L2I+PHNwYW4g
bGFuZz0iRU4tVVMiIHN0eWxlPSJmb250LXNpemU6MTAuMHB0Ij4gbmV0bW9kIFttYWlsdG86bmV0
bW9kLWJvdW5jZXNAaWV0Zi5vcmddDQo8L3NwYW4+PGI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MC4wcHQiPuS7o+ihqCA8L3NwYW4+PC9iPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1z
aXplOjEwLjBwdCI+QW5keSBCaWVybWFuPGJyPg0KPC9zcGFuPjxiPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6MTAuMHB0Ij7lj5HpgIHml7bpl7Q8c3BhbiBsYW5nPSJFTi1VUyI+Ojwvc3Bhbj48L3Nw
YW4+PC9iPjxzcGFuIGxhbmc9IkVOLVVTIiBzdHlsZT0iZm9udC1zaXplOjEwLjBwdCI+IDIwMTU8
L3NwYW4+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQiPuW5tDxzcGFuIGxhbmc9IkVOLVVT
Ij4xMTwvc3Bhbj7mnIg8c3BhbiBsYW5nPSJFTi1VUyI+Mjwvc3Bhbj7ml6U8c3BhbiBsYW5nPSJF
Ti1VUyI+IDE6MTY8YnI+DQo8L3NwYW4+PGI+5pS25Lu25Lq6PHNwYW4gbGFuZz0iRU4tVVMiPjo8
L3NwYW4+PC9iPjxzcGFuIGxhbmc9IkVOLVVTIj4gbmV0bW9kQGlldGYub3JnPGJyPg0KPC9zcGFu
PjxiPuS4u+mimDxzcGFuIGxhbmc9IkVOLVVTIj46PC9zcGFuPjwvYj48c3BhbiBsYW5nPSJFTi1V
UyI+IFtuZXRtb2RdIGlmLWZlYXR1cmUgYW5kIGRlZmF1bHQ8bzpwPjwvbzpwPjwvc3Bhbj48L3Nw
YW4+PC9wPg0KPC9kaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+
PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PjxzcGFuIGxhbmc9IkVOLVVTIj5IaSw8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8ZGl2Pg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPjxvOnA+Jm5ic3A7PC9vOnA+PC9z
cGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9
IkVOLVVTIj5JIHN0YXJ0ZWQgYSBzZXBhcmF0ZSB0aHJlYWQgZm9yIHRoaXMgaXNzdWUuPG86cD48
L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNw
YW4gbGFuZz0iRU4tVVMiPlRoZSBjdXJyZW50IFlBTkcgMS4xIHRleHQgaXMgaW5jb21wbGV0ZSB3
cnQvIGRlZmF1bHQtc3RtdC48bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+PG86cD4mbmJzcDs8L286cD48
L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFu
Zz0iRU4tVVMiPiZuYnNwOyBsZWFmIGJyb2tlbiB7PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9k
aXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPiZuYnNw
OyAmbmJzcDsgJm5ic3A7dHlwZSBlbnVtZXJhdGlvbiB7PG86cD48L286cD48L3NwYW4+PC9wPg0K
PC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPiZu
YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBlbnVtIG9wdGlvbjEgezxvOnA+PC9vOnA+PC9zcGFu
PjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVO
LVVTIj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2lmLWZlYXR1cmUg
b3B0aW9uMTs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7
IH08bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw
OyBlbnVtIG9wdGlvbjIgezxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj4mbmJzcDsgJm5ic3A7ICZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZuYnNwO2lmLWZlYXR1cmUgb3B0aW9uMjs8bzpwPjwvbzpwPjwvc3Bh
bj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJF
Ti1VUyI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IH08bzpwPjwvbzpwPjwvc3Bhbj48L3A+
DQo8L2Rpdj4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9
IkVOLVVTIj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgZW51bSBvcHRpb24zOzxvOnA+PC9v
OnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFu
IGxhbmc9IkVOLVVTIj4mbmJzcDsgJm5ic3A7ICZuYnNwO308bzpwPjwvbzpwPjwvc3Bhbj48L3A+
DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+
Jm5ic3A7ICZuYnNwOyAmbmJzcDtkZWZhdWx0ICZxdW90O29wdGlvbjImcXVvdDs7PG86cD48L286
cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4g
bGFuZz0iRU4tVVMiPiZuYnNwOyAmbmJzcDt9PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+
DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPjxvOnA+Jm5i
c3A7PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PjxzcGFuIGxhbmc9IkVOLVVTIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4N
CjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+V2hhdCBoYXBw
ZW5zIGlmIHRoZSBzZXJ2ZXIgZG9lcyBub3QgYWR2ZXJ0aXNlIHRoZSBvcHRpb24yIGZlYXR1cmU/
PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PHNwYW4gbGFuZz0iRU4tVVMiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2
Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj5JIHNlZSAy
IG9wdGlvbnM6PG86cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPiZuYnNwOyAoQSkgYWRkIHRleHQgdGhhdCBz
YXlzIGEgZGVmYXVsdC1zdG10IE1VU1QgTk9UIGluY2x1ZGUgYW55IGNvbmRpdGlvbmFsPG86cD48
L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNw
YW4gbGFuZz0iRU4tVVMiPiZuYnNwOyAmbmJzcDsgJm5ic3A7IHZhbHVlczxvOnA+PC9vOnA+PC9z
cGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9
IkVOLVVTIj4mbmJzcDsgKEIpIGFsbG93IGlmLWZlYXR1cmUgYXMgYSBzdWItc3RhdGVtZW50IG9m
IHRoZSBkZWZhdWx0LXN0bXQ8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBsYW5nPSJFTi1VUyI+PG86cD4mbmJzcDs8L286cD48
L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFu
Zz0iRU4tVVMiPihCVFcsIGN1c3RvbWVycyBoYXZlIGFza2VkIGZvciAoQiksIHNvIGl0IG1heSBi
ZSBhIGZlYXR1cmUgYW5kIGEgYnVnZml4KTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0K
PGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9IkVOLVVTIj48bzpwPiZuYnNw
OzwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48
c3BhbiBsYW5nPSJFTi1VUyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8
ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPkFuZHk8bzpwPjwv
bzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3Bh
biBsYW5nPSJFTi1VUyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0iRU4tVVMiPjxvOnA+Jm5ic3A7PC9v
OnA+PC9zcGFuPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFu
IGxhbmc9IkVOLVVTIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjwvZGl2
Pg0KPC9kaXY+DQo8L2JvZHk+DQo8L2h0bWw+DQo=

--_000_5756FB984666AD4BB8E1D63E2E3AA3D082731DSZXEMI506MBSchina_--

--_004_5756FB984666AD4BB8E1D63E2E3AA3D082731DSZXEMI506MBSchina_
Content-Type: image/jpeg; name="image001.jpg"
Content-Description: image001.jpg
Content-Disposition: inline; filename="image001.jpg"; size=6737;
	creation-date="Mon, 02 Nov 2015 00:29:24 GMT";
	modification-date="Mon, 02 Nov 2015 00:29:24 GMT"
Content-ID: <image001.jpg@01D11548.8F834B30>
Content-Transfer-Encoding: base64

/9j/4AAQSkZJRgABAQEAYABgAAD/7QxmUGhvdG9zaG9wIDMuMAA4QklNBCUAAAAAABAAAAAAAAAA
AAAAAAAAAAAAOEJJTQPtAAAAAAAQAEgAAAABAAIASAAAAAEAAjhCSU0EJgAAAAAADgAAAAAAAAAA
AAA/gAAAOEJJTQQNAAAAAAAEAAAAHjhCSU0EGQAAAAAABAAAAB44QklNA/MAAAAAAAkAAAAAAAAA
AAEAOEJJTQQKAAAAAAABAAA4QklNJxAAAAAAAAoAAQAAAAAAAAACOEJJTQP1AAAAAABIAC9mZgAB
AGxmZgAGAAAAAAABAC9mZgABAKGZmgAGAAAAAAABADIAAAABAFoAAAAGAAAAAAABADUAAAABAC0A
AAAGAAAAAAABOEJJTQP4AAAAAABwAAD/////////////////////////////A+gAAAAA////////
/////////////////////wPoAAAAAP////////////////////////////8D6AAAAAD/////////
////////////////////A+gAADhCSU0EAAAAAAAAAgAAOEJJTQQCAAAAAAACAAA4QklNBDAAAAAA
AAEBADhCSU0ELQAAAAAABgABAAAABjhCSU0ECAAAAAAAEAAAAAEAAAJAAAACQAAAAAA4QklNBB4A
AAAAAAQAAAAAOEJJTQQaAAAAAAM9AAAABgAAAAAAAAAAAAAAIAAAAGYAAAAEAGwAbwBnAG8AAAAB
AAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAGYAAAAgAAAAAAAAAAAAAAAAAAAAAAEAAAAA
AAAAAAAAAAAAAAAAAAAAEAAAAAEAAAAAAABudWxsAAAAAgAAAAZib3VuZHNPYmpjAAAAAQAAAAAA
AFJjdDEAAAAEAAAAAFRvcCBsb25nAAAAAAAAAABMZWZ0bG9uZwAAAAAAAAAAQnRvbWxvbmcAAAAg
AAAAAFJnaHRsb25nAAAAZgAAAAZzbGljZXNWbExzAAAAAU9iamMAAAABAAAAAAAFc2xpY2UAAAAS
AAAAB3NsaWNlSURsb25nAAAAAAAAAAdncm91cElEbG9uZwAAAAAAAAAGb3JpZ2luZW51bQAAAAxF
U2xpY2VPcmlnaW4AAAANYXV0b0dlbmVyYXRlZAAAAABUeXBlZW51bQAAAApFU2xpY2VUeXBlAAAA
AEltZyAAAAAGYm91bmRzT2JqYwAAAAEAAAAAAABSY3QxAAAABAAAAABUb3AgbG9uZwAAAAAAAAAA
TGVmdGxvbmcAAAAAAAAAAEJ0b21sb25nAAAAIAAAAABSZ2h0bG9uZwAAAGYAAAADdXJsVEVYVAAA
AAEAAAAAAABudWxsVEVYVAAAAAEAAAAAAABNc2dlVEVYVAAAAAEAAAAAAAZhbHRUYWdURVhUAAAA
AQAAAAAADmNlbGxUZXh0SXNIVE1MYm9vbAEAAAAIY2VsbFRleHRURVhUAAAAAQAAAAAACWhvcnpB
bGlnbmVudW0AAAAPRVNsaWNlSG9yekFsaWduAAAAB2RlZmF1bHQAAAAJdmVydEFsaWduZW51bQAA
AA9FU2xpY2VWZXJ0QWxpZ24AAAAHZGVmYXVsdAAAAAtiZ0NvbG9yVHlwZWVudW0AAAARRVNsaWNl
QkdDb2xvclR5cGUAAAAATm9uZQAAAAl0b3BPdXRzZXRsb25nAAAAAAAAAApsZWZ0T3V0c2V0bG9u
ZwAAAAAAAAAMYm90dG9tT3V0c2V0bG9uZwAAAAAAAAALcmlnaHRPdXRzZXRsb25nAAAAAAA4QklN
BCgAAAAAAAwAAAABP/AAAAAAAAA4QklNBBEAAAAAAAEBADhCSU0EFAAAAAAABAAAAAg4QklNBAwA
AAAABnAAAAABAAAAZgAAACAAAAE0AAAmgAAABlQAGAAB/9j/4AAQSkZJRgABAgAASABIAAD/7QAM
QWRvYmVfQ00AAv/uAA5BZG9iZQBkgAAAAAH/2wCEAAwICAgJCAwJCQwRCwoLERUPDAwPFRgTExUT
ExgRDAwMDAwMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBDQsLDQ4NEA4OEBQODg4UFA4O
Dg4UEQwMDAwMEREMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDP/AABEIACAAZgMB
IgACEQEDEQH/3QAEAAf/xAE/AAABBQEBAQEBAQAAAAAAAAADAAECBAUGBwgJCgsBAAEFAQEBAQEB
AAAAAAAAAAEAAgMEBQYHCAkKCxAAAQQBAwIEAgUHBggFAwwzAQACEQMEIRIxBUFRYRMicYEyBhSR
obFCIyQVUsFiMzRygtFDByWSU/Dh8WNzNRaisoMmRJNUZEXCo3Q2F9JV4mXys4TD03Xj80YnlKSF
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
Rc2X0W/vq90PoZzHCineK2WNyGMvaWWUvaRua7822m5ns31/nrr/AKw/VjF661hsuuxbqtG20uI0
PLHs+i5WOj9Cwej0+njBz3uH6S6xxc939Zx/76q/3f13+i7I+MEctwjTMf3R6OL/ADkv/QXjOu9C
OI99Vm/0r7XZFgoaX2Wkk+nUxv8Ag6qG/n2f4RUsDA671G1nTsLFs6f08vBuMFsgfn5Fztrrn/us
XoXVejYPVqfSymuDm/QtrJa9v9V7VW6D9W8bovqPZfbk3WaGy50w391jPotTTy3r00h4HX+6yY/j
QHLVL1Z4/KJx4sfF/nB6vmj/AF/8Br/Ximx31N6nTU11j/s+1rWglxgt/NauN659Vc6v6hNyW9Q6
jkWGik/s97t1YJ2zX6AZv21r1JJWnCfP68x31e+tbuqdRxr/ALBndOx6q8iqt1obZW1m+u1tQc9n
0VmOzOrNr+sXU+n4mRW/6xZFWL0zfW5ryCHMtyHsjdVW1n5716mkkp8ts6R9aPqvk9I6tfRj2YnT
gMK9mEHusfRYfe+9jh79rzv9qjV0jOH1mr+q32Z7+inqH7VbaWn0/SNZt+znTb/OL1RJJT5b0bpf
UrPrNjfVrIx3jpnRc2/PZc4HY9p9+JU130PY96AMDI6J1zqzOqZHVsJmXkG/HyOnNL6rWuLnfpNj
Xu9Rm5espJKfMuturf8A828tmR1N2JW3M9TPDHHMbLHsbu9m5u5/6P8A4tJempJKf//Z/9sAQwAI
BgYHBgUIBwcHCQkICgwUDQwLCwwZEhMPFB0aHx4dGhwcICQuJyAiLCMcHCg3KSwwMTQ0NB8nOT04
MjwuMzQy/9sAQwEJCQkMCwwYDQ0YMiEcITIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy
MjIyMjIyMjIyMjIyMjIyMjIy/8AAEQgAIABmAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAA
AAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGh
CCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hp
anN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV
1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkK
C//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy
0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKD
hIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm
5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A99LKCASAT0FcOvxDin8XjRre2Bt1l8mS4Zud3Tge
ma5X4j67qukeObG5hdkhto1e3H8L5+9n1z0rnriVIvF9pqdmP9E1CdLiPn7pLDcp9wcj8q8+vimn
yx0sz6zLsihOj7WtrzxbXk/87a/f2PazrqpqL27oBEsnlhwec+4rYyCSM8jtXj0OupJ4hvZbhytr
aSvNOfYHhfqTgVJ4G8R6nrfxAuLklzbTRMZlz8qKPu/THSnSxT5rS1u9Dlr5HNU5VVooxu/8vX/g
dz1+iszX9at/Dug3mr3Su9vax+Y4jGWI9qz9U8ZafpXgtfFE0U7WTQpKEVRvw2McZ967z506Oiuf
03xbY6n4juNDhjmFzBaR3bMw+Xa4BA+vIp2leKrHV9d1nSIElSfSXVJ2cAKdwyMH8KAN6iuM0P4l
6J4hn1eDTkuJJdNRpCpUAzICQWTnkZFK/wASdEj8Ar4wInNiSF8sKPMD7tu3GcZBoA7KiuSu/iDo
9p4NsvE22eW0vWRII41BkZ2OAuM9Rg/lVbUviXptnq82lWem6pql7bgfaUsbfzBCT2Y5xn2oA7ai
uB134q6V4b0nTb7VdM1K3N/v2W7xASJtOPmGeOtFAHnupab4l8P3s+kX+nT6ro/mFoCVLgAngo45
RvUfpWr4a8NnUmFrB5qwxyrcol0hSS3YEZB7MrDjI74r0TxX4MtPFSRNLd3VpcRcLNbyEHHcEdDV
zQPDGn+G7XyrNZHdv9ZPM5d3+p/oK4/q153ex9Is9ccNyrSfktL93/wN+uh5n4m8NNp8ssEvm+Rc
TtcyC2QvJOSTtUDsqjue5NZumaX4h1meLStP06fTNLLgzHaV3Ad3c8sfbp7V7Frnh6w8QWohvEcM
v3JYmKun0P8AjVHwx4PtfDJleO7urueQYMk75wvoB0FTLC+/psa0s/UcLaWtRbXWl++/57dNCp8S
reR/hjrlvBG8shtNqqilmbkdhXmniXwPqEPweS7XW/EFzKbWE/2dI+6MHjK7MZwP6V73RXcfLHj8
V+3g34ivrOq2F9/ZmoaPbwx3MFu0oWRAMqwUZB4rDe/1hIPGWsaXpl/HJ4lu4rPTPMhZXIwQ0hGM
qAO59a98ooA8Fl0Dxb4DvvDmuXNnp8tlpiiwnTTUdpJIHPJcEc4Jzx3pkOgagvj2HwV9gmfw+dY/
thZmQ+X5XllvLPGOuePWvfaKAPBfD2iapL48svB91ZTLpGhalPqKTsp2SKeY1B6cE5/Oqg0u58Le
LfEMes33imwjvLs3FvcaOheKdSSfmwCcjOK+haKAPm34sWlxqvhPwrJpi6zqcY8/M13CxnPzD74x
ke3tRX0lRQB//9k=

--_004_5756FB984666AD4BB8E1D63E2E3AA3D082731DSZXEMI506MBSchina_--


From nobody Sun Nov  1 16:40: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 87F3B1B3D8C for <netmod@ietfa.amsl.com>; Sun,  1 Nov 2015 16:40:28 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level: 
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=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 qb9vs3WGKDK2 for <netmod@ietfa.amsl.com>; Sun,  1 Nov 2015 16:40:27 -0800 (PST)
Received: from mail-lf0-x22b.google.com (mail-lf0-x22b.google.com [IPv6:2a00:1450:4010:c07::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 D20291B3D8F for <netmod@ietf.org>; Sun,  1 Nov 2015 16:40:26 -0800 (PST)
Received: by lfbn126 with SMTP id n126so54817955lfb.2 for <netmod@ietf.org>; Sun, 01 Nov 2015 16:40:25 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks_com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=PMXhzRuFj2LLdwnUUDWIzjgE//qMpq1xuoTsGk9i2uk=; b=bpOscrgZxy56CJEIySXBJW8atnOCZz2wshztz15sXcAXTnf+oYVQc6eK1VDI6VV/Ny Gk9WH7//pPx40LC2vkQfL+6eiuMYVH9zdOGn/YOTwqNGb6d0WpNDGXJkmgll3BzAvVEX jo0FHXYoOcXpzWDxFRTYqpq8E2U9ask9ICwfJe/iHyBZo1ktvTYAp40idqAuIcowffYc 4TGDSLA4B+960X72UGsBiVGBF38uW3BOqSbM9eFVsntRJPBzbFhqPJ3YACV8bn52tCFf u4Lhy5+BKRxr73Li8WHqsYQxhstu4Bu/ZjGuzbJSSZi0YtYIVhr/uyqIN24srNogZLyZ LfsQ==
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=PMXhzRuFj2LLdwnUUDWIzjgE//qMpq1xuoTsGk9i2uk=; b=R8xUfuJHyh1TRQW7+rvgn8ACa6Ku9o7bpTq5FKrBhRAG2kox07zp93lZnHXUVq6aIC vHpEYjzfsX0GvUHQtT2Z5F3jBJjcPbwrsYpB6i+VfGtR3yEfmYf8jAWjungS1oZY2fiY cmjr70apvLxMb3C+bH3Nv3YxnqgzGVnNylNtf5h8QNc6XUaj6nJA+1Gs54CdUKVtHHPn XBDLHiYQXlMhZwYnRdKreHd0wXijtmzjWWuJyv2iDcU/a9gUMj71bJK6Bj02954DhaQp Vseq9I5velVAfr2CfuXKx5ISvwPECTgzaZBziKrFe4iSaqmGj4r7MOMFeGvyC1GrJxU8 UuQA==
X-Gm-Message-State: ALoCoQmTSBKxGpjp9BduUdW2aYf0Vo0EE8g55Vy1/7Wa2WXA7bWb1FxIW/FrK6SsH3WIk2XkR0Xs
MIME-Version: 1.0
X-Received: by 10.25.44.15 with SMTP id s15mr5596116lfs.37.1446424824857; Sun, 01 Nov 2015 16:40:24 -0800 (PST)
Received: by 10.112.144.106 with HTTP; Sun, 1 Nov 2015 16:40:24 -0800 (PST)
In-Reply-To: <AF289CC2-3654-44EC-9A41-9F87896AD8C6@nic.cz>
References: <CABCOCHQPYO3t4f1JV6JtAmfvsaWFTB0BLcvd3beww_J3fjrrQw@mail.gmail.com> <AF289CC2-3654-44EC-9A41-9F87896AD8C6@nic.cz>
Date: Sun, 1 Nov 2015 16:40:24 -0800
Message-ID: <CABCOCHTaKzG8kSv=qMUH3MVqXcS8BKyBba-5pgD7yzBu=Zp+FQ@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Ladislav Lhotka <lhotka@nic.cz>
Content-Type: multipart/alternative; boundary=001a11403c5ce1658105238405a7
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/mP92KcRlbugohi3IG-1YlMLRcpY>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] if-feature and default
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 02 Nov 2015 00:40:28 -0000

--001a11403c5ce1658105238405a7
Content-Type: text/plain; charset=UTF-8

On Sun, Nov 1, 2015 at 4:20 PM, Ladislav Lhotka <lhotka@nic.cz> wrote:

>
> > On 02 Nov 2015, at 02:16, Andy Bierman <andy@yumaworks.com> wrote:
> >
> > Hi,
> >
> > I started a separate thread for this issue.
> > The current YANG 1.1 text is incomplete wrt/ default-stmt.
> >
> >   leaf broken {
> >      type enumeration {
> >         enum option1 {
> >            if-feature option1;
> >         }
> >         enum option2 {
> >            if-feature option2;
> >         }
> >         enum option3;
> >      }
> >      default "option2";
> >    }
> >
> >
> > What happens if the server does not advertise the option2 feature?
> >
> > I see 2 options:
> >   (A) add text that says a default-stmt MUST NOT include any conditional
> >       values
> >   (B) allow if-feature as a sub-statement of the default-stmt
>
> or (C) a default statement that specifies a value that's not permitted is
> an error.
>
>
This does not say anything.
You mean a protocol error somehow or a compiler error?
Only (A) makes it a compiler error.




> Lada
>


Andy


>
> >
> > (BTW, customers have asked for (B), so it may be a feature and a bugfix)
> >
> >
> > Andy
> >
> >
> >
> > _______________________________________________
> > netmod mailing list
> > netmod@ietf.org
> > https://www.ietf.org/mailman/listinfo/netmod
>
> --
> Ladislav Lhotka, CZ.NIC Labs
> PGP Key ID: E74E8C0C
>
>
>
>
>

--001a11403c5ce1658105238405a7
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Sun, Nov 1, 2015 at 4:20 PM, Ladislav Lhotka <span dir=3D"ltr">&lt;<=
a href=3D"mailto:lhotka@nic.cz" target=3D"_blank">lhotka@nic.cz</a>&gt;</sp=
an> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;=
border-left:1px #ccc solid;padding-left:1ex"><br>
&gt; On 02 Nov 2015, at 02:16, Andy Bierman &lt;<a href=3D"mailto:andy@yuma=
works.com">andy@yumaworks.com</a>&gt; wrote:<br>
&gt;<br>
&gt; Hi,<br>
&gt;<br>
&gt; I started a separate thread for this issue.<br>
&gt; The current YANG 1.1 text is incomplete wrt/ default-stmt.<br>
&gt;<br>
&gt;=C2=A0 =C2=A0leaf broken {<br>
&gt;=C2=A0 =C2=A0 =C2=A0 type enumeration {<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0enum option1 {<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 if-feature option1;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0enum option2 {<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 if-feature option2;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0enum option3;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 }<br>
&gt;=C2=A0 =C2=A0 =C2=A0 default &quot;option2&quot;;<br>
&gt;=C2=A0 =C2=A0 }<br>
&gt;<br>
&gt;<br>
&gt; What happens if the server does not advertise the option2 feature?<br>
&gt;<br>
&gt; I see 2 options:<br>
&gt;=C2=A0 =C2=A0(A) add text that says a default-stmt MUST NOT include any=
 conditional<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0values<br>
&gt;=C2=A0 =C2=A0(B) allow if-feature as a sub-statement of the default-stm=
t<br>
<br>
or (C) a default statement that specifies a value that&#39;s not permitted =
is an error.<br>
<br></blockquote><div><br></div><div>This does not say anything.</div><div>=
You mean a protocol error somehow or a compiler error?</div><div>Only (A) m=
akes it a compiler error.</div><div><br></div><div><br></div><div>=C2=A0</d=
iv><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left=
:1px #ccc solid;padding-left:1ex">
Lada<br></blockquote><div><br></div><div><br></div><div>Andy</div><div>=C2=
=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;borde=
r-left:1px #ccc solid;padding-left:1ex">
<br>
&gt;<br>
&gt; (BTW, customers have asked for (B), so it may be a feature and a bugfi=
x)<br>
&gt;<br>
&gt;<br>
&gt; Andy<br>
&gt;<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" rel=3D"norefe=
rrer" target=3D"_blank">https://www.ietf.org/mailman/listinfo/netmod</a><br=
>
<br>
--<br>
Ladislav Lhotka, CZ.NIC Labs<br>
PGP Key ID: E74E8C0C<br>
<br>
<br>
<br>
<br>
</blockquote></div><br></div></div>

--001a11403c5ce1658105238405a7--


From nobody Sun Nov  1 16:44: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 83DE21B3E25 for <netmod@ietfa.amsl.com>; Sun,  1 Nov 2015 16:44:29 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.968
X-Spam-Level: 
X-Spam-Status: No, score=-0.968 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, MIME_8BIT_HEADER=0.3, SPF_PASS=-0.001, T_FILL_THIS_FORM_SHORT=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 Avn54U9sZzfu for <netmod@ietfa.amsl.com>; Sun,  1 Nov 2015 16:44:27 -0800 (PST)
Received: from mail-lb0-x22d.google.com (mail-lb0-x22d.google.com [IPv6:2a00:1450:4010:c04::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 061071A00ED for <netmod@ietf.org>; Sun,  1 Nov 2015 16:44:17 -0800 (PST)
Received: by lbjm5 with SMTP id m5so77945739lbj.3 for <netmod@ietf.org>; Sun, 01 Nov 2015 16:44:15 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks_com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=pgs9cdUfrVjdhl0D0eZWYoLAIrdhaS3hF35GPL4ZIiU=; b=TX9n/nvr4tqw+r8EgwWMfi6YJ/mfgKzbIWkrsrHYzht34E5JYF2q1pxITq3alTYnj2 zu9McvQmrGGJQqVuzY7pwP4b4enySnRCs6ejWT7TL3B+1T0GYOooo/Em03eP+Z1fZzJN vhto4Ajb3/gIppr8SZxVsiCAmWXIm9uMBLOjVVm3Dd2e0xZ3KMiryIBaru0EmeeNQO0m des30lW9EZJ5SqGNFVm8U2e2gOQUzJ/QyqLrsiDwmNKyC9D+aRyouKnhGrJZpndhPWsY HVlYDMTAMGTvXKIvukG3rqoVYvwZeNNiv4MjZZcrXL8UCTbHsDRo8bIKtZ+gjdUxexlX ZwRA==
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=pgs9cdUfrVjdhl0D0eZWYoLAIrdhaS3hF35GPL4ZIiU=; b=nCrT5bfSjmvqisfrMP8ylgcrLRYR/KMXJoxziFt3N+wnKmQKBvWaa+LUNIgw8Nwjuw YtybzifuCXaiqruZJ0LIjWd6LHjIiWhi6NYO8ESnjqOoBv2YRZi9DlBJxLsOgNM37H68 r0zsv4koU6AxM5stENtQe7g1OHu/V2Kp6V2SztS2DoLP/wTctiidwhMuj7gO2U2SygAh PVd7gqjt/V80624f/L7bjQ75Vi545WfMcS6LgxR6ULfOoLWEPdHk/9UpcnNcKB10SfUA m6b83RA74LyMHxJkcfXgMnriHS0nOhH4Pj2KfFBDwJvoZ0wsuc3+vXPvI/eDEeiM+QMw 2CKQ==
X-Gm-Message-State: ALoCoQkST8yEp/5aA9LCuPgMYNH+0gphtOvlj8tX2WDVw4IHeAdYTlkVL6ky/il8hOjzxpEDVFlC
MIME-Version: 1.0
X-Received: by 10.112.135.136 with SMTP id ps8mr8561539lbb.38.1446425055125; Sun, 01 Nov 2015 16:44:15 -0800 (PST)
Received: by 10.112.144.106 with HTTP; Sun, 1 Nov 2015 16:44:14 -0800 (PST)
In-Reply-To: <5756FB984666AD4BB8E1D63E2E3AA3D082731D@SZXEMI506-MBS.china.huawei.com>
References: <CABCOCHQPYO3t4f1JV6JtAmfvsaWFTB0BLcvd3beww_J3fjrrQw@mail.gmail.com> <5756FB984666AD4BB8E1D63E2E3AA3D082731D@SZXEMI506-MBS.china.huawei.com>
Date: Sun, 1 Nov 2015 16:44:14 -0800
Message-ID: <CABCOCHRb4sLrDYgx=vMxhiVB6O1diV8VCDxFVWjLfXFhOnWQOA@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: "fengchong (C)" <frank.fengchong@huawei.com>
Content-Type: multipart/related; boundary=089e011607129b183e052384132e
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/mkacEKlh5oXvKbI29ydLuQgoCPc>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] =?utf-8?b?562U5aSNOiAgaWYtZmVhdHVyZSBhbmQgZGVmYXVsdA==?=
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 02 Nov 2015 00:44:29 -0000

--089e011607129b183e052384132e
Content-Type: multipart/alternative; boundary=089e011607129b1839052384132d

--089e011607129b1839052384132d
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

On Sun, Nov 1, 2015 at 4:29 PM, fengchong (C) <frank.fengchong@huawei.com>
wrote:

>
>
> Hi,
>
>    I prefer   A.
>
>
>

This would be OK with me.
That way the default will be safe in all server variants.


Andy


>   Otherwise, if =E2=80=98option1=E2=80=99 is supported, the default value=
 should be
> =E2=80=98option1=E2=80=99 and =E2=80=98option2=E2=80=99 is supported ,the=
 default value should be
> =E2=80=98option2=E2=80=99, B cannot express it.
>
>
>
> Or more default stmts can be allowed.
>
>
>
>   leaf broken {
>
>      type enumeration {
>
>         enum option1 {
>
>            if-feature option1;
>
>         }
>
>         enum option2 {
>
>            if-feature option2;
>
>         }
>
>         enum option3;
>
>      }
>
>      default "option1" {
>
>             if-feature option1;
>
>         }
>
>         default "option2" {
>
>             if-feature option2;
>
>         }
>
>    }
>
>
> ------------------------------
>
> =E5=86=AF=E5=86=B2
> =E5=8D=8E=E4=B8=BA=E6=8A=80=E6=9C=AF=E6=9C=89=E9=99=90=E5=85=AC=E5=8F=B8 =
Huawei Technologies Co., Ltd.
> [image: Company_logo]
>
> Phone:
> Fax:
> Mobile: 18519117316
> Email: frank.fengchong@huawei.com
> =E5=9C=B0=E5=9D=80=EF=BC=9A=E5=8D=97=E4=BA=AC=E5=B8=82=E8=BD=AF=E4=BB=B6=
=E5=A4=A7=E9=81=93101=E5=8F=B7=E5=8D=8E=E4=B8=BA=E5=8D=97=E4=BA=AC=E5=9F=BA=
=E5=9C=B0 =E9=82=AE=E7=BC=96=EF=BC=9A210001
> Huawei Technologies Co., Ltd.
>
> http://www.huawei.com
> ------------------------------
>
> =E6=9C=AC=E9=82=AE=E4=BB=B6=E5=8F=8A=E5=85=B6=E9=99=84=E4=BB=B6=E5=90=AB=
=E6=9C=89=E5=8D=8E=E4=B8=BA=E5=85=AC=E5=8F=B8=E7=9A=84=E4=BF=9D=E5=AF=86=E4=
=BF=A1=E6=81=AF=EF=BC=8C=E4=BB=85=E9=99=90=E4=BA=8E=E5=8F=91=E9=80=81=E7=BB=
=99=E4=B8=8A=E9=9D=A2=E5=9C=B0=E5=9D=80=E4=B8=AD=E5=88=97=E5=87=BA=E7=9A=84=
=E4=B8=AA=E4=BA=BA=E6=88=96=E7=BE=A4=E7=BB=84=E3=80=82=E7=A6=81
> =E6=AD=A2=E4=BB=BB=E4=BD=95=E5=85=B6=E4=BB=96=E4=BA=BA=E4=BB=A5=E4=BB=BB=
=E4=BD=95=E5=BD=A2=E5=BC=8F=E4=BD=BF=E7=94=A8=EF=BC=88=E5=8C=85=E6=8B=AC=E4=
=BD=86=E4=B8=8D=E9=99=90=E4=BA=8E=E5=85=A8=E9=83=A8=E6=88=96=E9=83=A8=E5=88=
=86=E5=9C=B0=E6=B3=84=E9=9C=B2=E3=80=81=E5=A4=8D=E5=88=B6=E3=80=81=E6=88=96=
=E6=95=A3=E5=8F=91=EF=BC=89=E6=9C=AC=E9=82=AE=E4=BB=B6=E4=B8=AD
> =E7=9A=84=E4=BF=A1=E6=81=AF=E3=80=82=E5=A6=82=E6=9E=9C=E6=82=A8=E9=94=99=
=E6=94=B6=E4=BA=86=E6=9C=AC=E9=82=AE=E4=BB=B6=EF=BC=8C=E8=AF=B7=E6=82=A8=E7=
=AB=8B=E5=8D=B3=E7=94=B5=E8=AF=9D=E6=88=96=E9=82=AE=E4=BB=B6=E9=80=9A=E7=9F=
=A5=E5=8F=91=E4=BB=B6=E4=BA=BA=E5=B9=B6=E5=88=A0=E9=99=A4=E6=9C=AC=E9=82=AE=
=E4=BB=B6=EF=BC=81
> THis e-mail and its attachments contain confidential information from
> HUAWEI, which
> is intended only for the person or entity whose address is listed above.
> Any use of the
> information contained herein in any way (including, but not limited to,
> total or partial
> disclosure, reproduction, or dissemination) by persons other than the
> intended
> recipient(s) is prohibited. If you receive this e-mail in error, please
> notify the sender by
> phone or email immediately and delete it!
>
> *=E5=8F=91=E4=BB=B6=E4=BA=BA:* netmod [mailto:netmod-bounces@ietf.org] *=
=E4=BB=A3=E8=A1=A8 *Andy Bierman
> *=E5=8F=91=E9=80=81=E6=97=B6=E9=97=B4:* 2015=E5=B9=B411=E6=9C=882=E6=97=
=A5 1:16
> *=E6=94=B6=E4=BB=B6=E4=BA=BA:* netmod@ietf.org
> *=E4=B8=BB=E9=A2=98:* [netmod] if-feature and default
>
>
>
> Hi,
>
>
>
> I started a separate thread for this issue.
>
> The current YANG 1.1 text is incomplete wrt/ default-stmt.
>
>
>
>   leaf broken {
>
>      type enumeration {
>
>         enum option1 {
>
>            if-feature option1;
>
>         }
>
>         enum option2 {
>
>            if-feature option2;
>
>         }
>
>         enum option3;
>
>      }
>
>      default "option2";
>
>    }
>
>
>
>
>
> What happens if the server does not advertise the option2 feature?
>
>
>
> I see 2 options:
>
>   (A) add text that says a default-stmt MUST NOT include any conditional
>
>       values
>
>   (B) allow if-feature as a sub-statement of the default-stmt
>
>
>
> (BTW, customers have asked for (B), so it may be a feature and a bugfix)
>
>
>
>
>
> Andy
>
>
>
>
>
>
>

--089e011607129b1839052384132d
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Sun, Nov 1, 2015 at 4:29 PM, fengchong (C) <span dir=3D"ltr">&lt;<a =
href=3D"mailto:frank.fengchong@huawei.com" target=3D"_blank">frank.fengchon=
g@huawei.com</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" sty=
le=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">





<div lang=3D"ZH-CN" link=3D"blue" vlink=3D"purple">
<div>
<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"><u></u>=C2=
=A0<u></u></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">Hi,<u></u>=
<u></u></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">=C2=A0=C2=
=A0 I prefer =C2=A0=C2=A0A.<u></u><u></u></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">=C2=A0</sp=
an></p></div></div></blockquote><div><br></div><div>This would be OK with m=
e.</div><div>That way the default will be safe in all server variants.</div=
><div><br></div><div><br></div><div>Andy</div><div>=C2=A0</div><blockquote =
class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid=
;padding-left:1ex"><div lang=3D"ZH-CN" link=3D"blue" vlink=3D"purple"><div>=
<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">
<u></u><u></u></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">=C2=A0=C2=
=A0Otherwise, if =E2=80=98option1=E2=80=99 is supported, the default value =
should be =E2=80=98option1=E2=80=99 and =E2=80=98option2=E2=80=99 is suppor=
ted ,the default value should be =E2=80=98option2=E2=80=99,
 B cannot express it.<u></u><u></u></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"><u></u>=C2=
=A0<u></u></span></p>
<p class=3D"MsoNormal" style=3D"text-indent:5.25pt"><span lang=3D"EN-US" st=
yle=3D"font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&qu=
ot;;color:#1f497d">Or more default stmts can be allowed.<u></u><u></u></spa=
n></p>
<p class=3D"MsoNormal" style=3D"text-indent:5.25pt"><span lang=3D"EN-US" st=
yle=3D"font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&qu=
ot;;color:#1f497d"><u></u>=C2=A0<u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">=C2=A0 leaf broken {<u></u><u><=
/u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">=C2=A0 =C2=A0 =C2=A0type enumer=
ation {<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">=C2=A0 =C2=A0 =C2=A0 =C2=A0 enu=
m option1 {<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0if-feature option1;<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">=C2=A0 =C2=A0 =C2=A0 =C2=A0 }<u=
></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">=C2=A0 =C2=A0 =C2=A0 =C2=A0 enu=
m option2 {<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0if-feature option2;<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">=C2=A0 =C2=A0 =C2=A0 =C2=A0 }<u=
></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">=C2=A0 =C2=A0 =C2=A0 =C2=A0 enu=
m option3;<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">=C2=A0 =C2=A0 =C2=A0}<u></u><u>=
</u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">=C2=A0 =C2=A0 =C2=A0default &qu=
ot;option1&quot; {<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if-feature option1;<u></u><u></u></spa=
n></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 }<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 default &quot;option2&quot; {<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 if-feature option2;<u></u><u></u></spa=
n></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 }<u></u><u></u></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">=C2=A0 =C2=A0}<u></u><u></u></s=
pan></p>
<p class=3D"MsoNormal" style=3D"text-indent:5.25pt"><span lang=3D"EN-US" st=
yle=3D"font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&qu=
ot;;color:#1f497d"><u></u>=C2=A0<u></u></span></p>
<div class=3D"MsoNormal" align=3D"center" style=3D"text-align:center"><span=
 lang=3D"EN-US" style=3D"color:#1f497d">
<hr size=3D"2" width=3D"100%" align=3D"center">
</span></div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:=E5=8D=
=8E=E6=96=87=E7=BB=86=E9=BB=91;color:black">=E5=86=AF=E5=86=B2<span lang=3D=
"EN-US"><br>
</span>=E5=8D=8E=E4=B8=BA=E6=8A=80=E6=9C=AF=E6=9C=89=E9=99=90=E5=85=AC=E5=
=8F=B8<span lang=3D"EN-US"> Huawei Technologies Co., Ltd.<br>
</span></span><u></u><img width=3D"102" height=3D"32" src=3D"cid:image001.j=
pg@01D11548.8F834B30" align=3D"left" alt=3D"Company_logo"><u></u><span lang=
=3D"EN-US" style=3D"font-size:10.0pt;font-family:=E5=8D=8E=E6=96=87=E7=BB=
=86=E9=BB=91;color:black"><br>
<br>
Phone: <br>
Fax: <br>
Mobile: 18519117316<br>
Email: <a href=3D"mailto:frank.fengchong@huawei.com" target=3D"_blank">fran=
k.fengchong@huawei.com</a><br>
</span><span style=3D"font-size:10.0pt;font-family:=E5=8D=8E=E6=96=87=E7=BB=
=86=E9=BB=91;color:black">=E5=9C=B0=E5=9D=80=EF=BC=9A=E5=8D=97=E4=BA=AC=E5=
=B8=82=E8=BD=AF=E4=BB=B6=E5=A4=A7=E9=81=93<span lang=3D"EN-US">101</span>=
=E5=8F=B7=E5=8D=8E=E4=B8=BA=E5=8D=97=E4=BA=AC=E5=9F=BA=E5=9C=B0 =E9=82=AE=
=E7=BC=96=EF=BC=9A<span lang=3D"EN-US">210001<br>
Huawei Technologies Co., Ltd.<br>
<br>
<a href=3D"http://www.huawei.com" target=3D"_blank">http://www.huawei.com</=
a></span></span><span lang=3D"EN-US" style=3D"color:#1f497d"> <u></u>
<u></u></span></p>
<div class=3D"MsoNormal" align=3D"center" style=3D"text-align:center"><span=
 lang=3D"EN-US" style=3D"color:#1f497d">
<hr size=3D"2" width=3D"100%" align=3D"center">
</span></div>
<p class=3D"MsoNormal"><span style=3D"font-size:7.5pt;font-family:=E5=8D=8E=
=E6=96=87=E7=BB=86=E9=BB=91;color:gray">=E6=9C=AC=E9=82=AE=E4=BB=B6=E5=8F=
=8A=E5=85=B6=E9=99=84=E4=BB=B6=E5=90=AB=E6=9C=89=E5=8D=8E=E4=B8=BA=E5=85=AC=
=E5=8F=B8=E7=9A=84=E4=BF=9D=E5=AF=86=E4=BF=A1=E6=81=AF=EF=BC=8C=E4=BB=85=E9=
=99=90=E4=BA=8E=E5=8F=91=E9=80=81=E7=BB=99=E4=B8=8A=E9=9D=A2=E5=9C=B0=E5=9D=
=80=E4=B8=AD=E5=88=97=E5=87=BA=E7=9A=84=E4=B8=AA=E4=BA=BA=E6=88=96=E7=BE=A4=
=E7=BB=84=E3=80=82=E7=A6=81<span lang=3D"EN-US"><br>
</span>=E6=AD=A2=E4=BB=BB=E4=BD=95=E5=85=B6=E4=BB=96=E4=BA=BA=E4=BB=A5=E4=
=BB=BB=E4=BD=95=E5=BD=A2=E5=BC=8F=E4=BD=BF=E7=94=A8=EF=BC=88=E5=8C=85=E6=8B=
=AC=E4=BD=86=E4=B8=8D=E9=99=90=E4=BA=8E=E5=85=A8=E9=83=A8=E6=88=96=E9=83=A8=
=E5=88=86=E5=9C=B0=E6=B3=84=E9=9C=B2=E3=80=81=E5=A4=8D=E5=88=B6=E3=80=81=E6=
=88=96=E6=95=A3=E5=8F=91=EF=BC=89=E6=9C=AC=E9=82=AE=E4=BB=B6=E4=B8=AD<span =
lang=3D"EN-US"><br>
</span>=E7=9A=84=E4=BF=A1=E6=81=AF=E3=80=82=E5=A6=82=E6=9E=9C=E6=82=A8=E9=
=94=99=E6=94=B6=E4=BA=86=E6=9C=AC=E9=82=AE=E4=BB=B6=EF=BC=8C=E8=AF=B7=E6=82=
=A8=E7=AB=8B=E5=8D=B3=E7=94=B5=E8=AF=9D=E6=88=96=E9=82=AE=E4=BB=B6=E9=80=9A=
=E7=9F=A5=E5=8F=91=E4=BB=B6=E4=BA=BA=E5=B9=B6=E5=88=A0=E9=99=A4=E6=9C=AC=E9=
=82=AE=E4=BB=B6=EF=BC=81<span lang=3D"EN-US"><br>
</span></span><span lang=3D"EN-US" style=3D"font-size:7.5pt;font-family:&qu=
ot;Arial&quot;,&quot;sans-serif&quot;;color:gray">THis e-mail and its attac=
hments contain confidential information from HUAWEI, which
<br>
is intended only for the person or entity whose address is listed above. An=
y use of the
<br>
information contained herein in any way (including, but not limited to, tot=
al or partial
<br>
disclosure, reproduction, or dissemination) by persons other than the inten=
ded <br>
recipient(s) is prohibited. If you receive this e-mail in error, please not=
ify the sender by
<br>
phone or email immediately and delete it!</span><span lang=3D"EN-US" style=
=3D"font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;=
;color:#1f497d"><u></u><u></u></span></p>
<div style=3D"border:none;border-top:solid #b5c4df 1.0pt;padding:3.0pt 0cm =
0cm 0cm">
<p class=3D"MsoNormal"><b><span style=3D"font-size:10.0pt">=E5=8F=91=E4=BB=
=B6=E4=BA=BA<span lang=3D"EN-US">:</span></span></b><span lang=3D"EN-US" st=
yle=3D"font-size:10.0pt"> netmod [mailto:<a href=3D"mailto:netmod-bounces@i=
etf.org" target=3D"_blank">netmod-bounces@ietf.org</a>]
</span><b><span style=3D"font-size:10.0pt">=E4=BB=A3=E8=A1=A8 </span></b><s=
pan lang=3D"EN-US" style=3D"font-size:10.0pt">Andy Bierman<br>
</span><b><span style=3D"font-size:10.0pt">=E5=8F=91=E9=80=81=E6=97=B6=E9=
=97=B4<span lang=3D"EN-US">:</span></span></b><span lang=3D"EN-US" style=3D=
"font-size:10.0pt"> 2015</span><span style=3D"font-size:10.0pt">=E5=B9=B4<s=
pan lang=3D"EN-US">11</span>=E6=9C=88<span lang=3D"EN-US">2</span>=E6=97=A5=
<span lang=3D"EN-US"> 1:16<br>
</span><b>=E6=94=B6=E4=BB=B6=E4=BA=BA<span lang=3D"EN-US">:</span></b><span=
 lang=3D"EN-US"> <a href=3D"mailto:netmod@ietf.org" target=3D"_blank">netmo=
d@ietf.org</a><br>
</span><b>=E4=B8=BB=E9=A2=98<span lang=3D"EN-US">:</span></b><span lang=3D"=
EN-US"> [netmod] if-feature and default<u></u><u></u></span></span></p>
</div>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><u></u>=C2=A0<u></u></span></p>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-US">Hi,<u></u><u></u></span></p>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><u></u>=C2=A0<u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-US">I started a separate thread for=
 this issue.<u></u><u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-US">The current YANG 1.1 text is in=
complete wrt/ default-stmt.<u></u><u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><u></u>=C2=A0<u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-US">=C2=A0 leaf broken {<u></u><u><=
/u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-US">=C2=A0 =C2=A0 =C2=A0type enumer=
ation {<u></u><u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-US">=C2=A0 =C2=A0 =C2=A0 =C2=A0 enu=
m option1 {<u></u><u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-US">=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0if-feature option1;<u></u><u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-US">=C2=A0 =C2=A0 =C2=A0 =C2=A0 }<u=
></u><u></u></span></p>
</div>
<div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-US">=C2=A0 =C2=A0 =C2=A0 =C2=A0 enu=
m option2 {<u></u><u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-US">=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0if-feature option2;<u></u><u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-US">=C2=A0 =C2=A0 =C2=A0 =C2=A0 }<u=
></u><u></u></span></p>
</div>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-US">=C2=A0 =C2=A0 =C2=A0 =C2=A0 enu=
m option3;<u></u><u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-US">=C2=A0 =C2=A0 =C2=A0}<u></u><u>=
</u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-US">=C2=A0 =C2=A0 =C2=A0default &qu=
ot;option2&quot;;<u></u><u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-US">=C2=A0 =C2=A0}<u></u><u></u></s=
pan></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><u></u>=C2=A0<u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><u></u>=C2=A0<u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-US">What happens if the server does=
 not advertise the option2 feature?<u></u><u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><u></u>=C2=A0<u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-US">I see 2 options:<u></u><u></u><=
/span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-US">=C2=A0 (A) add text that says a=
 default-stmt MUST NOT include any conditional<u></u><u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-US">=C2=A0 =C2=A0 =C2=A0 values<u><=
/u><u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-US">=C2=A0 (B) allow if-feature as =
a sub-statement of the default-stmt<u></u><u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><u></u>=C2=A0<u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-US">(BTW, customers have asked for =
(B), so it may be a feature and a bugfix)<u></u><u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><u></u>=C2=A0<u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><u></u>=C2=A0<u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-US">Andy<u></u><u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><u></u>=C2=A0<u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><u></u>=C2=A0<u></u></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><u></u>=C2=A0<u></u></span></p>
</div>
</div>
</div>
</div>

</blockquote></div><br></div></div>

--089e011607129b1839052384132d--
--089e011607129b183e052384132e
Content-Type: image/jpeg; name="image001.jpg"
Content-Disposition: inline; filename="image001.jpg"
Content-Transfer-Encoding: base64
Content-ID: <image001.jpg@01D11548.8F834B30>
X-Attachment-Id: 956f7e2a80229d31_0.1

/9j/4AAQSkZJRgABAQEAYABgAAD/7QxmUGhvdG9zaG9wIDMuMAA4QklNBCUAAAAAABAAAAAAAAAA
AAAAAAAAAAAAOEJJTQPtAAAAAAAQAEgAAAABAAIASAAAAAEAAjhCSU0EJgAAAAAADgAAAAAAAAAA
AAA/gAAAOEJJTQQNAAAAAAAEAAAAHjhCSU0EGQAAAAAABAAAAB44QklNA/MAAAAAAAkAAAAAAAAA
AAEAOEJJTQQKAAAAAAABAAA4QklNJxAAAAAAAAoAAQAAAAAAAAACOEJJTQP1AAAAAABIAC9mZgAB
AGxmZgAGAAAAAAABAC9mZgABAKGZmgAGAAAAAAABADIAAAABAFoAAAAGAAAAAAABADUAAAABAC0A
AAAGAAAAAAABOEJJTQP4AAAAAABwAAD/////////////////////////////A+gAAAAA////////
/////////////////////wPoAAAAAP////////////////////////////8D6AAAAAD/////////
////////////////////A+gAADhCSU0EAAAAAAAAAgAAOEJJTQQCAAAAAAACAAA4QklNBDAAAAAA
AAEBADhCSU0ELQAAAAAABgABAAAABjhCSU0ECAAAAAAAEAAAAAEAAAJAAAACQAAAAAA4QklNBB4A
AAAAAAQAAAAAOEJJTQQaAAAAAAM9AAAABgAAAAAAAAAAAAAAIAAAAGYAAAAEAGwAbwBnAG8AAAAB
AAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAGYAAAAgAAAAAAAAAAAAAAAAAAAAAAEAAAAA
AAAAAAAAAAAAAAAAAAAAEAAAAAEAAAAAAABudWxsAAAAAgAAAAZib3VuZHNPYmpjAAAAAQAAAAAA
AFJjdDEAAAAEAAAAAFRvcCBsb25nAAAAAAAAAABMZWZ0bG9uZwAAAAAAAAAAQnRvbWxvbmcAAAAg
AAAAAFJnaHRsb25nAAAAZgAAAAZzbGljZXNWbExzAAAAAU9iamMAAAABAAAAAAAFc2xpY2UAAAAS
AAAAB3NsaWNlSURsb25nAAAAAAAAAAdncm91cElEbG9uZwAAAAAAAAAGb3JpZ2luZW51bQAAAAxF
U2xpY2VPcmlnaW4AAAANYXV0b0dlbmVyYXRlZAAAAABUeXBlZW51bQAAAApFU2xpY2VUeXBlAAAA
AEltZyAAAAAGYm91bmRzT2JqYwAAAAEAAAAAAABSY3QxAAAABAAAAABUb3AgbG9uZwAAAAAAAAAA
TGVmdGxvbmcAAAAAAAAAAEJ0b21sb25nAAAAIAAAAABSZ2h0bG9uZwAAAGYAAAADdXJsVEVYVAAA
AAEAAAAAAABudWxsVEVYVAAAAAEAAAAAAABNc2dlVEVYVAAAAAEAAAAAAAZhbHRUYWdURVhUAAAA
AQAAAAAADmNlbGxUZXh0SXNIVE1MYm9vbAEAAAAIY2VsbFRleHRURVhUAAAAAQAAAAAACWhvcnpB
bGlnbmVudW0AAAAPRVNsaWNlSG9yekFsaWduAAAAB2RlZmF1bHQAAAAJdmVydEFsaWduZW51bQAA
AA9FU2xpY2VWZXJ0QWxpZ24AAAAHZGVmYXVsdAAAAAtiZ0NvbG9yVHlwZWVudW0AAAARRVNsaWNl
QkdDb2xvclR5cGUAAAAATm9uZQAAAAl0b3BPdXRzZXRsb25nAAAAAAAAAApsZWZ0T3V0c2V0bG9u
ZwAAAAAAAAAMYm90dG9tT3V0c2V0bG9uZwAAAAAAAAALcmlnaHRPdXRzZXRsb25nAAAAAAA4QklN
BCgAAAAAAAwAAAABP/AAAAAAAAA4QklNBBEAAAAAAAEBADhCSU0EFAAAAAAABAAAAAg4QklNBAwA
AAAABnAAAAABAAAAZgAAACAAAAE0AAAmgAAABlQAGAAB/9j/4AAQSkZJRgABAgAASABIAAD/7QAM
QWRvYmVfQ00AAv/uAA5BZG9iZQBkgAAAAAH/2wCEAAwICAgJCAwJCQwRCwoLERUPDAwPFRgTExUT
ExgRDAwMDAwMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBDQsLDQ4NEA4OEBQODg4UFA4O
Dg4UEQwMDAwMEREMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDP/AABEIACAAZgMB
IgACEQEDEQH/3QAEAAf/xAE/AAABBQEBAQEBAQAAAAAAAAADAAECBAUGBwgJCgsBAAEFAQEBAQEB
AAAAAAAAAAEAAgMEBQYHCAkKCxAAAQQBAwIEAgUHBggFAwwzAQACEQMEIRIxBUFRYRMicYEyBhSR
obFCIyQVUsFiMzRygtFDByWSU/Dh8WNzNRaisoMmRJNUZEXCo3Q2F9JV4mXys4TD03Xj80YnlKSF
tJXE1OT0pbXF1eX1VmZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3EQACAgECBAQDBAUGBwcGBTUBAAIR
AyExEgRBUWFxIhMFMoGRFKGxQiPBUtHwMyRi4XKCkkNTFWNzNPElBhaisoMHJjXC0kSTVKMXZEVV
NnRl4vKzhMPTdePzRpSkhbSVxNTk9KW1xdXl9VZmdoaWprbG1ub2JzdHV2d3h5ent8f/2gAMAwEA
AhEDEQA/APVJAIBOp4C5ofXOq3rw6ZTTNDbPSsvcdd3HsZ+7uWF9durdTwPrLjX1OLasdjX4/wC6
6f56f3t30Fk3WMr69Rn4v9Gz7WX1/wAklw9ao/yqrPaqmXmCDwx04ZDi8Yu/yPweEsQy5an7+GUs
VaDHl/dl/X4P/Uj6R+1g3LdS9o9IP2B4Os+bVoSJidR2Xn1fVmP6rk2XOjHxbH3XnyafZWP5Vtns
U/qp1vqPUvrTbfJNF1bje381rW/zP9Xb9FHHzB4uGWvFKo+TBm+DzGOeQVAYcQyTvaUukP7/AA/9
w9+kqfV+qUdI6ZkdSyA51OKz1HhmriP5KqZ/1mwcH6vD6wWssdiurZaGNA3xZG32z/KVpx3XSWVh
fWLCzerW9Jqa8X049eS5zh7dloBYB/K9yfp/1gw8/qXUem1Ne23pbmtvc4ANO8bhsPySU6iS53pX
146P1azqFWE2x9nTmueWkAG1jS5pfj6+9u5qd/136Oz6sD6zHf8AYyQ30wB6m8u9L0ts7dzXJKeh
SWDk/XHpVHQMbr0WWY2Y5jKK2AGwvsO0V7Z+k3a5Bzfrz0/HzrOn4uLldRyscD7SzFr3isn8yx8t
bvSU9Ikucy/rrj4tOC6zp+Z9o6iLTThisesPRG9+6vd+4NySSn//0GzsL6w9JyLemZmLZ1Lpm8uo
JBeNpMtfRc2X0W/vq90PoZzHCineK2WNyGMvaWWUvaRua7822m5ns31/nrr/AKw/VjF661hsuuxb
qtG20uI0PLHs+i5WOj9Cwej0+njBz3uH6S6xxc939Zx/76q/3f13+i7I+MEctwjTMf3R6OL/ADkv
/QXjOu9COI99Vm/0r7XZFgoaX2Wkk+nUxv8Ag6qG/n2f4RUsDA671G1nTsLFs6f08vBuMFsgfn5F
ztrrn/usXoXVejYPVqfSymuDm/QtrJa9v9V7VW6D9W8bovqPZfbk3WaGy50w391jPotTTy3r00h4
HX+6yY/jQHLVL1Z4/KJx4sfF/nB6vmj/AF/8Br/Ximx31N6nTU11j/s+1rWglxgt/NauN659Vc6v
6hNyW9Q6jkWGik/s97t1YJ2zX6AZv21r1JJWnCfP68x31e+tbuqdRxr/ALBndOx6q8iqt1obZW1m
+u1tQc9n0VmOzOrNr+sXU+n4mRW/6xZFWL0zfW5ryCHMtyHsjdVW1n5716mkkp8ts6R9aPqvk9I6
tfRj2YnTgMK9mEHusfRYfe+9jh79rzv9qjV0jOH1mr+q32Z7+inqH7VbaWn0/SNZt+znTb/OL1RJ
JT5b0bpfUrPrNjfVrIx3jpnRc2/PZc4HY9p9+JU130PY96AMDI6J1zqzOqZHVsJmXkG/HyOnNL6r
WuLnfpNjXu9Rm5espJKfMuturf8A828tmR1N2JW3M9TPDHHMbLHsbu9m5u5/6P8A4tJempJKf//Z
OEJJTQQhAAAAAABVAAAAAQEAAAAPAEEAZABvAGIAZQAgAFAAaABvAHQAbwBzAGgAbwBwAAAAEwBB
AGQAbwBiAGUAIABQAGgAbwB0AG8AcwBoAG8AcAAgAEMAUwAyAAAAAQA4QklNBAYAAAAAAAcABQAA
AAEBAP/hB4ZFeGlmAABJSSoACAAAAAcAEgEDAAEAAAABAAAAGgEFAAEAAABiAAAAGwEFAAEAAABq
AAAAKAEDAAEAAAACAAAAMQECABwAAAByAAAAMgECABQAAACOAAAAaYcEAAEAAACiAAAAzAAAAID8
CgAQJwAAgPwKABAnAABBZG9iZSBQaG90b3Nob3AgQ1MyIFdpbmRvd3MAMjAwNzowMjoyNiAxNjox
ODo1MwADAAGgAwABAAAA/////wKgBAABAAAAZgAAAAOgBAABAAAAIAAAAAAAAAAGAAMBAwABAAAA
BgAAABoBBQABAAAAGgEAABsBBQABAAAAIgEAACgBAwABAAAAAgAAAAECBAABAAAAKgEAAAICBAAB
AAAAVAYAAAAAAABIAAAAAQAAAEgAAAABAAAA/9j/4AAQSkZJRgABAgAASABIAAD/7QAMQWRvYmVf
Q00AAv/uAA5BZG9iZQBkgAAAAAH/2wCEAAwICAgJCAwJCQwRCwoLERUPDAwPFRgTExUTExgRDAwM
DAwMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBDQsLDQ4NEA4OEBQODg4UFA4ODg4UEQwM
DAwMEREMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDP/AABEIACAAZgMBIgACEQED
EQH/3QAEAAf/xAE/AAABBQEBAQEBAQAAAAAAAAADAAECBAUGBwgJCgsBAAEFAQEBAQEBAAAAAAAA
AAEAAgMEBQYHCAkKCxAAAQQBAwIEAgUHBggFAwwzAQACEQMEIRIxBUFRYRMicYEyBhSRobFCIyQV
UsFiMzRygtFDByWSU/Dh8WNzNRaisoMmRJNUZEXCo3Q2F9JV4mXys4TD03Xj80YnlKSFtJXE1OT0
pbXF1eX1VmZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3EQACAgECBAQDBAUGBwcGBTUBAAIRAyExEgRB
UWFxIhMFMoGRFKGxQiPBUtHwMyRi4XKCkkNTFWNzNPElBhaisoMHJjXC0kSTVKMXZEVVNnRl4vKz
hMPTdePzRpSkhbSVxNTk9KW1xdXl9VZmdoaWprbG1ub2JzdHV2d3h5ent8f/2gAMAwEAAhEDEQA/
APVJAIBOp4C5ofXOq3rw6ZTTNDbPSsvcdd3HsZ+7uWF9durdTwPrLjX1OLasdjX4/wC66f56f3t3
0Fk3WMr69Rn4v9Gz7WX1/wAklw9ao/yqrPaqmXmCDwx04ZDi8Yu/yPweEsQy5an7+GUsVaDHl/dl
/X4P/Uj6R+1g3LdS9o9IP2B4Os+bVoSJidR2Xn1fVmP6rk2XOjHxbH3XnyafZWP5VtnsU/qp1vqP
UvrTbfJNF1bje381rW/zP9Xb9FHHzB4uGWvFKo+TBm+DzGOeQVAYcQyTvaUukP7/AA/9w9+kqfV+
qUdI6ZkdSyA51OKz1HhmriP5KqZ/1mwcH6vD6wWssdiurZaGNA3xZG32z/KVpx3XSWVhfWLCzerW
9Jqa8X049eS5zh7dloBYB/K9yfp/1gw8/qXUem1Ne23pbmtvc4ANO8bhsPySU6iS53pX146P1azq
FWE2x9nTmueWkAG1jS5pfj6+9u5qd/136Oz6sD6zHf8AYyQ30wB6m8u9L0ts7dzXJKehSWDk/XHp
VHQMbr0WWY2Y5jKK2AGwvsO0V7Z+k3a5Bzfrz0/HzrOn4uLldRyscD7SzFr3isn8yx8tbvSU9Iku
cy/rrj4tOC6zp+Z9o6iLTThisesPRG9+6vd+4NySSn//0GzsL6w9JyLemZmLZ1Lpm8uoJBeNpMtf
Rc2X0W/vq90PoZzHCineK2WNyGMvaWWUvaRua7822m5ns31/nrr/AKw/VjF661hsuuxbqtG20uI0
PLHs+i5WOj9Cwej0+njBz3uH6S6xxc939Zx/76q/3f13+i7I+MEctwjTMf3R6OL/ADkv/QXjOu9C
OI99Vm/0r7XZFgoaX2Wkk+nUxv8Ag6qG/n2f4RUsDA671G1nTsLFs6f08vBuMFsgfn5Fztrrn/us
XoXVejYPVqfSymuDm/QtrJa9v9V7VW6D9W8bovqPZfbk3WaGy50w391jPotTTy3r00h4HX+6yY/j
QHLVL1Z4/KJx4sfF/nB6vmj/AF/8Br/Ximx31N6nTU11j/s+1rWglxgt/NauN659Vc6v6hNyW9Q6
jkWGik/s97t1YJ2zX6AZv21r1JJWnCfP68x31e+tbuqdRxr/ALBndOx6q8iqt1obZW1m+u1tQc9n
0VmOzOrNr+sXU+n4mRW/6xZFWL0zfW5ryCHMtyHsjdVW1n5716mkkp8ts6R9aPqvk9I6tfRj2YnT
gMK9mEHusfRYfe+9jh79rzv9qjV0jOH1mr+q32Z7+inqH7VbaWn0/SNZt+znTb/OL1RJJT5b0bpf
UrPrNjfVrIx3jpnRc2/PZc4HY9p9+JU130PY96AMDI6J1zqzOqZHVsJmXkG/HyOnNL6rWuLnfpNj
Xu9Rm5espJKfMuturf8A828tmR1N2JW3M9TPDHHMbLHsbu9m5u5/6P8A4tJempJKf//Z/9sAQwAI
BgYHBgUIBwcHCQkICgwUDQwLCwwZEhMPFB0aHx4dGhwcICQuJyAiLCMcHCg3KSwwMTQ0NB8nOT04
MjwuMzQy/9sAQwEJCQkMCwwYDQ0YMiEcITIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy
MjIyMjIyMjIyMjIyMjIyMjIy/8AAEQgAIABmAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAA
AAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGh
CCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hp
anN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV
1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkK
C//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy
0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKD
hIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm
5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A99LKCASAT0FcOvxDin8XjRre2Bt1l8mS4Zud3Tge
ma5X4j67qukeObG5hdkhto1e3H8L5+9n1z0rnriVIvF9pqdmP9E1CdLiPn7pLDcp9wcj8q8+vimn
yx0sz6zLsihOj7WtrzxbXk/87a/f2PazrqpqL27oBEsnlhwec+4rYyCSM8jtXj0OupJ4hvZbhytr
aSvNOfYHhfqTgVJ4G8R6nrfxAuLklzbTRMZlz8qKPu/THSnSxT5rS1u9Dlr5HNU5VVooxu/8vX/g
dz1+iszX9at/Dug3mr3Su9vax+Y4jGWI9qz9U8ZafpXgtfFE0U7WTQpKEVRvw2McZ967z506Oiuf
03xbY6n4juNDhjmFzBaR3bMw+Xa4BA+vIp2leKrHV9d1nSIElSfSXVJ2cAKdwyMH8KAN6iuM0P4l
6J4hn1eDTkuJJdNRpCpUAzICQWTnkZFK/wASdEj8Ar4wInNiSF8sKPMD7tu3GcZBoA7KiuSu/iDo
9p4NsvE22eW0vWRII41BkZ2OAuM9Rg/lVbUviXptnq82lWem6pql7bgfaUsbfzBCT2Y5xn2oA7ai
uB134q6V4b0nTb7VdM1K3N/v2W7xASJtOPmGeOtFAHnupab4l8P3s+kX+nT6ro/mFoCVLgAngo45
RvUfpWr4a8NnUmFrB5qwxyrcol0hSS3YEZB7MrDjI74r0TxX4MtPFSRNLd3VpcRcLNbyEHHcEdDV
zQPDGn+G7XyrNZHdv9ZPM5d3+p/oK4/q153ex9Is9ccNyrSfktL93/wN+uh5n4m8NNp8ssEvm+Rc
TtcyC2QvJOSTtUDsqjue5NZumaX4h1meLStP06fTNLLgzHaV3Ad3c8sfbp7V7Frnh6w8QWohvEcM
v3JYmKun0P8AjVHwx4PtfDJleO7urueQYMk75wvoB0FTLC+/psa0s/UcLaWtRbXWl++/57dNCp8S
reR/hjrlvBG8shtNqqilmbkdhXmniXwPqEPweS7XW/EFzKbWE/2dI+6MHjK7MZwP6V73RXcfLHj8
V+3g34ivrOq2F9/ZmoaPbwx3MFu0oWRAMqwUZB4rDe/1hIPGWsaXpl/HJ4lu4rPTPMhZXIwQ0hGM
qAO59a98ooA8Fl0Dxb4DvvDmuXNnp8tlpiiwnTTUdpJIHPJcEc4Jzx3pkOgagvj2HwV9gmfw+dY/
thZmQ+X5XllvLPGOuePWvfaKAPBfD2iapL48svB91ZTLpGhalPqKTsp2SKeY1B6cE5/Oqg0u58Le
LfEMes33imwjvLs3FvcaOheKdSSfmwCcjOK+haKAPm34sWlxqvhPwrJpi6zqcY8/M13CxnPzD74x
ke3tRX0lRQB//9k=
--089e011607129b183e052384132e--


From nobody Sun Nov  1 16:48: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 5507C1B3E7F for <netmod@ietfa.amsl.com>; Sun,  1 Nov 2015 16:48:19 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.661
X-Spam-Level: 
X-Spam-Status: No, score=-5.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, 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 5Rv56q5TXj0j for <netmod@ietfa.amsl.com>; Sun,  1 Nov 2015 16:48:18 -0800 (PST)
Received: from mail.nic.cz (mail.nic.cz [217.31.204.67]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4D93D1B3E80 for <netmod@ietf.org>; Sun,  1 Nov 2015 16:48:17 -0800 (PST)
Received: from t20010c400000302458f99f60abaf308f.v6.meeting.ietf94.jp (t20010c400000302458f99f60abaf308f.v6.meeting.ietf94.jp [IPv6:2001:c40:0:3024:58f9:9f60:abaf:308f]) by mail.nic.cz (Postfix) with ESMTPSA id 9B467181964; Mon,  2 Nov 2015 01:48:14 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nic.cz; s=default; t=1446425295; bh=9dZbI7zAycVhruTqxRYTAiGKRINGJv7C5haQgfM7YIU=; h=From:Date:To; b=qoHeDEqepHHZrMA4yT75yA375gzLMbUWLvbJ9rWiO4ZmxGj7THDNOuaHLfPLD4OVZ 0PWkeruWkO7XD46Sev3gfRVN/06DXXAkLB2qNCc9J709ev6XnEMyIe8uXRcjUW6fHi Ng33FlHNubzDZtsuvRWaJ1K+8kyWU/m1m1cStH8Y=
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
From: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <CABCOCHTaKzG8kSv=qMUH3MVqXcS8BKyBba-5pgD7yzBu=Zp+FQ@mail.gmail.com>
Date: Mon, 2 Nov 2015 09:48:09 +0900
Content-Transfer-Encoding: quoted-printable
Message-Id: <BA97F18B-3114-4BB6-8987-E96C85EE0B2D@nic.cz>
References: <CABCOCHQPYO3t4f1JV6JtAmfvsaWFTB0BLcvd3beww_J3fjrrQw@mail.gmail.com> <AF289CC2-3654-44EC-9A41-9F87896AD8C6@nic.cz> <CABCOCHTaKzG8kSv=qMUH3MVqXcS8BKyBba-5pgD7yzBu=Zp+FQ@mail.gmail.com>
To: Andy Bierman <andy@yumaworks.com>
X-Mailer: Apple Mail (2.3096.5)
X-Virus-Scanned: clamav-milter 0.98.7 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/lJ6btD1U5A6cSA7T1IWxfcRY4LE>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] if-feature and default
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 02 Nov 2015 00:48:19 -0000

> On 02 Nov 2015, at 09:40, Andy Bierman <andy@yumaworks.com> wrote:
>=20
>=20
>=20
> On Sun, Nov 1, 2015 at 4:20 PM, Ladislav Lhotka <lhotka@nic.cz> wrote:
>=20
> > On 02 Nov 2015, at 02:16, Andy Bierman <andy@yumaworks.com> wrote:
> >
> > Hi,
> >
> > I started a separate thread for this issue.
> > The current YANG 1.1 text is incomplete wrt/ default-stmt.
> >
> >   leaf broken {
> >      type enumeration {
> >         enum option1 {
> >            if-feature option1;
> >         }
> >         enum option2 {
> >            if-feature option2;
> >         }
> >         enum option3;
> >      }
> >      default "option2";
> >    }
> >
> >
> > What happens if the server does not advertise the option2 feature?
> >
> > I see 2 options:
> >   (A) add text that says a default-stmt MUST NOT include any =
conditional
> >       values
> >   (B) allow if-feature as a sub-statement of the default-stmt
>=20
> or (C) a default statement that specifies a value that's not permitted =
is an error.
>=20
>=20
> This does not say anything.
> You mean a protocol error somehow or a compiler error?

A protocol error - a server that advertises such a data model is broken. =
A similar situation can happen elsewhere - e.g. an identityref leaf =
specifies an identity as the default but the server doesn't implement =
the module where this identity is defined.

Lada

> Only (A) makes it a compiler error.
>=20
>=20
> =20
> Lada
>=20
>=20
> Andy
> =20
>=20
> >
> > (BTW, customers have asked for (B), so it may be a feature and a =
bugfix)
> >
> >
> > Andy
> >
> >
> >
> > _______________________________________________
> > netmod mailing list
> > netmod@ietf.org
> > https://www.ietf.org/mailman/listinfo/netmod
>=20
> --
> Ladislav Lhotka, CZ.NIC Labs
> PGP Key ID: E74E8C0C

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





From nobody Sun Nov  1 17:48:21 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 E56C81B40C9 for <netmod@ietfa.amsl.com>; Sun,  1 Nov 2015 17:48:19 -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 qwlcO75027XJ for <netmod@ietfa.amsl.com>; Sun,  1 Nov 2015 17:48:16 -0800 (PST)
Received: from trail.lhotka.name (trail.lhotka.name [77.48.224.143]) by ietfa.amsl.com (Postfix) with ESMTP id 0FE771B40C8 for <netmod@ietf.org>; Sun,  1 Nov 2015 17:48:16 -0800 (PST)
Received: from localhost (dhcp-28-202.meeting.ietf94.jp [133.93.28.202]) by trail.lhotka.name (Postfix) with ESMTPSA id 1072C1CC0402; Mon,  2 Nov 2015 02:48:18 +0100 (CET)
From: Ladislav Lhotka <lhotka@nic.cz>
To: Andy Bierman <andy@yumaworks.com>
In-Reply-To: <CABCOCHQqvSREXdRHO3v=TEkxF=KZizA0A_MbRXxFXDWyejHj0A@mail.gmail.com>
References: <CABCOCHRRUrPF2XWgx8b6XSPK5TrXridz5honCc+pF6YTG8AAJg@mail.gmail.com> <20151030.164550.141056459871966571.mbj@tail-f.com> <m2mvux50ej.fsf@nic.cz> <CABCOCHQqvSREXdRHO3v=TEkxF=KZizA0A_MbRXxFXDWyejHj0A@mail.gmail.com>
User-Agent: Notmuch/0.20.2 (http://notmuchmail.org) Emacs/24.4.51.2 (x86_64-apple-darwin14.0.0)
Date: Mon, 02 Nov 2015 10:48:03 +0900
Message-ID: <m237wp894c.fsf@dhcp-28-202.meeting.ietf94.jp>
MIME-Version: 1.0
Content-Type: text/plain
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/YdYokCr-TZ5bICMQGGyXgiWShhY>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] review of draft-ietf-netmod-rfc6020bis-08.txt
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 02 Nov 2015 01:48:20 -0000

Andy Bierman <andy@yumaworks.com> writes:

> On Sun, Nov 1, 2015 at 5:12 AM, Ladislav Lhotka <lhotka@nic.cz> wrote:
>
>> Martin Bjorklund <mbj@tail-f.com> writes:
>> >
>> >> Sec. 1.1
>> >>    o  Made "when" and "if-feature" illegal on list keys, unless the
>> >>       parent is also conditional, and the condition matches the parent's
>> >>       condition.
>> >>
>> >>   - This contradicts text in
>> >>    7.20.2:
>> >>    A leaf that is a list key MUST NOT have any "if-feature" statements.
>> >>    7.21.5:
>> >>    A leaf that is a list key MUST NOT have a "when" statement.
>> >>
>> >>   - Which is correct?
>> >
>> > You're right, it seems this issue was never really resolved.
>> >
>> > See the thread:
>> > https://www.ietf.org/mail-archive/web/netmod/current/msg11537.html
>> >
>> > the last email on this issue is:
>> > https://www.ietf.org/mail-archive/web/netmod/current/msg11570.html
>> >
>> >>   - The 7.* MUST NOT text is not backward compatible with YANG 1.0
>> >>     I think the WG agreed on what the bullet in 1.1 says, not the
>> >>     new restrictions in 7.*
>> >
>> > In this email thread it was pointed out that this is very
>> > difficult to check for "when", and at least non-trivial for
>> > "if-feature".
>>
>> Right, I think the consensus was it was an omission in 6020, and bug
>> fixes are permitted.
>>
>>
> The issue never occurred to u during development of 6020.
> It is OK to say MUST NOT for YANG 1.1, but maybe not for a YANG 1.1 module
> importing a YANG 1.0 module.
>
> Since we agree that the keys and parent cannot
> have different conditions, is it OK to assume that the
> when and if-feature-stmts on the keys can be ignored,
> if they appear in a YANG 1.0 module?
>

Yes, and perhaps we can submit an erratum to 6020 saying that these
statements are ignored if they appear on keys.  

>
> ...
>>
>> >> Sec. 5.7: Datastore Modification
>> >>
>> >>   - This section is NETCONF specific for no apparent reason
>> >
>> > Ok.  I suggest s/NETCONF protocol messages/network management protocol
>> > messages/
>>
>> I think it has nothing to do with YANG, except that such changes
>> shouldn't render the datastore invalid. There are inherent problems
>> connected to system-generated values though, e.g. what if the datastore
>> is locked in a NETCONF session? My proposal is to delete this section
>> altogether.
>>
>
>
> The problem is that there needs to be a good definition of a datastore.
> Instead there are just descriptions of XML after a NETCONF <edit-config>
> operation.
>
>

As I said before, I believe the role for YANG spec should be limited to
answering the question whether a given data tree is valid or not.

Originally, YANG was designed as a data modelling language for NETCONF,
so it didn't matter so much how the stuff is distributed between NETCONF
and YANG specs, but now I think it does matter. 

>> >> Sec. 7.21.5.  The when Statement
>> >>
>> >>  bullet 3:
>> >>  - Altering the tree changes means that each when-stmt processes
>> >>    a different XML document.  IMO it is a bad idea to replace a
>> >>    node that is in the tree with a dummy node.  It is OK to create
>> >>    a temp dummy node as an implementation detail to decide if
>> >>    a when-stmt is true or not.
>> >
>> > We've discussed this at length on the ML.  I think the current text
>> > reflects WG consensus.  Without this text, it is not clear how to
>>
>> Actually, when we put together this third bullet, I thought it would
>> only be used when there is no context node in the instance document. So
>> I agree with Andy here.
>>
>
>
>
> I strongly object to any implementation details in the normative text.
> One part of the draft says that XPath is completely conceptual and not
> actually
> required for implementation, but there is all this text that mandates how
> when-stmt MUST be implemented.

The problem here is that XPath is supposed to be applied even if the
context node doesn't exist. An alternative that I would prefer is to
apply "when" statements only if the context node exists - which is BTW
guaranteed for "when" appearing on an augment.

I object to making "conceptual" a synonym to "hand-waving".

>
> Nobody is going to spend any resources to process XPath statements
> to sort them by dependency.  That is a non-starter, especially for
> a theoretical corner-case that is extremely unlikely.   We will solve this
> problem in the tools, perhaps with a YANG extension (e.g. when-priority N;)
> so vendors can force an evaluation order if the problem ever comes up.
>

But that means each tool may possibly give a diferent result, or fail on
different "when" expressions. This is IMO not very good.

>
>
>
>>
>> > interpret the theoretical corner case when the expression references
>> > nodes that are being augmented:
>> >
>> >    augment /... {
>> >      when "foo != 42";
>> >      leaf foo {
>> >        type int32;
>> >      }
>> >    }
>> >
>>
>> It would be much better to exclude such references explicitly. In this
>> example, an instance of "foo" may actually exist with the value of "42"
>> - IMO this would be terribly confusing.
>>
>>
>
> Nobody does this because it is gibberish from an operational POV.
> Perhaps standardized network management has been such an
> elusive goal because we obsess over theory and ignore operational
> experience so often.
>

Since "when" is so powerful, I think it is unsafe to leave such
loopholes in its definition.

>
>
>> >> Sec. 8.1: Constraints on Data
>> >>
>> >>  - bullets say constraint MUST be true, but this info should really
>> >>    be part of NETCONF, and should say what a NETCONF server should
>> >>    so when a constraint is false
>> >
>> > Do you want to make this text *more* NETCONF-specific?  The idea was
>> > that these conditions hold regardless of which protocol is used.
>>
>> Right, validity of the data tree should be an absolute property,
>> independent of protocol or encoding.
>>
>>
>
> So how is the current text protocol independent?
> Does this draft claim to support RESTCONF?

Sec. 8.1 doesn't mention NETCONF so I assume it applies everywhere.

> Does it need to say anything, or can protocol documents just
> declare that YANG 1.1 applies to them?
> That would be OK, except the NETCONF stuff needs to move
> out of YANG somehow.

Yes, this would be my preferred solution.

>
>>
>> Right, there are also other ways for making the set of permitted values
>> of a type empty. Tools might emit a warning but that's all.
>>
>
>
> Are there existing ways to make the default-stmt invalid?

I gave one in the if-feature thread: a default identity that's not
implemented by the server.

Lada

>
> I agree that some corner-cases exist, like identityref.
> Our server allows modules to be added or removed on the fly,
> so the set of identities for a given identityref can change,
> causing this same problem.
>
>
>
>
>
>> >>
>> >> Sec. 9.10.5.  (Identityref) Usage Example
>> >>
>> >>  - Add an example and use-case showing multiple base-stmts
>> >>    for an identityref
>> >
>> > I will try to come up with something simple.
>>
>> In the example in Y13, the identityref could be
>>
>>   type identityref {
>>     base share-alike;
>>     base non-commercial;
>>   }
>>
>> and then the only permitted value would be CC-BY-NC-SA.
>>
>> ...
>>
>> >
>> >> Sec. 10.3.1.  deref()
>> >>
>> >>  - why is this XPath function needed?
>> >>    No use-cases are explained.
>> >>    The example given shows that deref(.) saves some extra typing
>> >>    from the previous line.  Not very interesting new feature.
>> >
>> > If the node is an instance-identifier, it is not possible to check the
>> > target node w/o deref().
>>
>> Right, and evaluate() function in EXSLT does the same thing:
>>
>> http://exslt.org/dyn/functions/evaluate/index.html
>>
>> Maybe we could reuse its definition.
>>
>> ...
>>
>> Lada
>>
>
> Andy
>
>
>>
>> --
>> Ladislav Lhotka, CZ.NIC Labs
>> PGP Key ID: E74E8C0C
>>
>>

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


From nobody Sun Nov  1 20:46:30 2015
Return-Path: <zzhang@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 2D6F91B2A2C for <netmod@ietfa.amsl.com>; Sun,  1 Nov 2015 20:46:29 -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, 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 LxStqo8GoG_A for <netmod@ietfa.amsl.com>; Sun,  1 Nov 2015 20:46:26 -0800 (PST)
Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1bon0781.outbound.protection.outlook.com [IPv6:2a01:111:f400:fc10::1:781]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3960A1B2A31 for <netmod@ietf.org>; Sun,  1 Nov 2015 20:46:26 -0800 (PST)
Received: from BLUPR0501MB1715.namprd05.prod.outlook.com (10.163.120.18) by BLUPR0501MB1713.namprd05.prod.outlook.com (10.163.120.16) with Microsoft SMTP Server (TLS) id 15.1.312.18; Mon, 2 Nov 2015 04:46:07 +0000
Received: from BLUPR0501MB1715.namprd05.prod.outlook.com ([10.163.120.18]) by BLUPR0501MB1715.namprd05.prod.outlook.com ([10.163.120.18]) with mapi id 15.01.0312.014; Mon, 2 Nov 2015 04:46:06 +0000
From: "Jeffrey (Zhaohui) Zhang" <zzhang@juniper.net>
To: "nabil.michraf@gmail.com" <nabil.michraf@gmail.com>, Ladislav Lhotka <lhotka@nic.cz>, Mach Chen <mach.chen@huawei.com>, "netmod@ietf.org" <netmod@ietf.org>
Thread-Topic: Re: [netmod] config lists without keys (Y09) / non-unique leaf-lists (Y57)
Thread-Index: AdEVKCv1nxmFfPhITxWLr6VOD9fHEQ==
Date: Mon, 2 Nov 2015 04:46:06 +0000
Message-ID: <BLUPR0501MB171587B76520F11C2522DA2FD42C0@BLUPR0501MB1715.namprd05.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is ) smtp.mailfrom=zzhang@juniper.net; 
x-originating-ip: [66.129.241.14]
x-microsoft-exchange-diagnostics: 1; BLUPR0501MB1713; 5:3jJ5xDX2WWRhGX43kEMdfzIWo57Zz1ehBMpal47JMbjie2ZVTiqY7Vce6XlaCXaq/wYE19H9pqlTzqjZpBBdWmpGKe6kUagYGQTK8F5EXrcFxq1P/SrFCzZtPWZL5w7bXOgbkj+xk3+mdZPoVGJIrQ==; 24:kbOR4YAIe6+yBIiVJzzTRttMRqHkNN9tufSNBqA/OFVvbXilXRoZkkHKW8VKpcbDtMTp3X6FqNQkd4FkoI9Chrh7/YT/qQTjaTjs5uvmRS4=; 20:fP3L7Qf4VmD98egbkwIX/xykaT86WRwTVCwrSyX+u3OQKBhC/Y87Lz9HGdFxJz+GJgwRAtqKiMDI0aDlPHXmmQ==
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BLUPR0501MB1713;
x-microsoft-antispam-prvs: <BLUPR0501MB17139F172E422D3E64FA5074D42C0@BLUPR0501MB1713.namprd05.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:;
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(2401047)(5005006)(520078)(8121501046)(10201501046)(3002001); SRVR:BLUPR0501MB1713; BCL:0; PCL:0; RULEID:; SRVR:BLUPR0501MB1713; 
x-forefront-prvs: 0748FF9A04
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(6009001)(199003)(189002)(5003600100002)(189998001)(5001960100002)(99286002)(107886002)(105586002)(106356001)(2900100001)(77096005)(66066001)(5002640100001)(102836002)(40100003)(87936001)(2501003)(10400500002)(54356999)(97736004)(74316001)(5004730100002)(33656002)(76576001)(122556002)(5008740100001)(92566002)(81156007)(50986999)(5007970100001)(86362001)(101416001)(5001770100001); DIR:OUT; SFP:1102; SCL:1; SRVR:BLUPR0501MB1713; H:BLUPR0501MB1715.namprd05.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; 
received-spf: None (protection.outlook.com: juniper.net does not designate permitted sender hosts)
spamdiagnosticoutput: 1:23
spamdiagnosticmetadata: NSPM
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Nov 2015 04:46:06.2380 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR0501MB1713
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/w6RRtf_7u-IfBFDfjqKENa5hqps>
Subject: Re: [netmod] config lists without keys (Y09) / non-unique leaf-lists (Y57)
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 02 Nov 2015 04:46:29 -0000

Hi,

Earlier today Mach and I were asking Lada if we could have a config list w/=
o keys for our use case and he pointed us to this thread.

This is exactly what we need. For some lists we don't need to operate on in=
dividual list members. We don't need to inject a member in front of another=
 remember. All we need is to specify a list of entries, which could even be=
 non-unique.

For example, we may want to configure a label stack used in a nexthop. The =
same label value could be used in different positions of the stack so the l=
abel itself could not be used as key. Typically we'd want to specify the en=
tire stack from sctrach, and if a change is needed it'd be replaced entirel=
y, or at most we may add/remove a label at the top or bottom of the stack.

With the current requirement of a key for a config list, we'd need to assig=
n an artificial ID as the key for the list. That is really cumbersome and d=
oes not provide any value.

Hope this can be accepted and supported in the tools soon.

Thanks.
Jeffrey


From nobody Sun Nov  1 21:54: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 9A9511B47CC for <netmod@ietfa.amsl.com>; Sun,  1 Nov 2015 21:54:24 -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 kHatEoqifw7H for <netmod@ietfa.amsl.com>; Sun,  1 Nov 2015 21:54:22 -0800 (PST)
Received: from mail.nic.cz (mail.nic.cz [IPv6:2001:1488:800:400::400]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 776BD1B47CB for <netmod@ietf.org>; Sun,  1 Nov 2015 21:54:22 -0800 (PST)
Received: from t20010c400000302425defb7049229590.v6.meeting.ietf94.jp (t20010c400000302425defb7049229590.v6.meeting.ietf94.jp [IPv6:2001:c40:0:3024:25de:fb70:4922:9590]) by mail.nic.cz (Postfix) with ESMTPSA id ECB29181B5E; Mon,  2 Nov 2015 06:54:18 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nic.cz; s=default; t=1446443661; bh=puJYQvbwTSkNyl46L1NcD3Z9LGFi4mEMs98suaebs2Q=; h=From:Date:To; b=Eg23722Yqwq3TnofDMmDQFHUVDo1kkuKdRsIKp0vxkaohl5v5ZEUV0taSRV3o3QsO GrPBsG56dD1DKXMdvJE0wfCT/YcMBaTPn7jVrDZC/QJ8HDelA7MU25MGj89/EKE9oD W6RNNgFVX+bGnmh+I2aKaVVk2ujU3iAdr3dBG0OM=
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
From: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <9D52FE53-FE17-4ED6-99B9-E16A534BC662@gmail.com>
Date: Mon, 2 Nov 2015 14:54:13 +0900
Content-Transfer-Encoding: quoted-printable
Message-Id: <6428D77C-E692-4D9A-97F6-598E8384EFA6@nic.cz>
References: <20151029091758.GB78922@elstar.local> <20151029.131756.1681194827815089398.mbj@tail-f.com> <20151101145115.GA83722@elstar.local> <CABCOCHRU3-Y5xyK26CKK4gd3pDib7DMxZkakEXghb1-6qmLYZw@mail.gmail.com> <9D52FE53-FE17-4ED6-99B9-E16A534BC662@gmail.com>
To: Nabil <nabil.michraf@gmail.com>
X-Mailer: Apple Mail (2.3096.5)
X-Virus-Scanned: clamav-milter 0.98.7 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/B1cIsJOoVTHtrdPNtrYb5fBVIGA>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] config lists without keys (Y09) / non-unique leaf-lists (Y57)
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 02 Nov 2015 05:54:24 -0000

> On 02 Nov 2015, at 06:43, Nabil <nabil.michraf@gmail.com> wrote:
>=20
>=20
>=20
> Hi,
>=20
> I missed the earlier discussion around this topic prior to calling it =
DEAD. But here are some comments and ideas.
>=20
> There is interest in the security product business (access rules =
configuration for example). Some users don't want to deal with =
introducing keys that have to carry meaningless values. Not a problem =
for other cases of course.
>=20
> The goal is to have a type of configuration lists in which the =
combination of all of the columns is unique so no need for a key from =
this perspective. We might think why not just model all leaves as part =
of the key. The problem with that is edit-config, which can only create =
or delete records in this case.
>=20
> Unless the edit-config sends all of the old values (to identify the =
instance) along with the new values (for a N size list, we would be =
sending 2*N values), then there is no way to identify a single instance =
for an edit operation.
>=20
> This makes edit-config syntax different from the current standard and =
complicated.
>=20
> Another option is to keep a key that is system generated at the =
protocol level. A NETCONF server would have to implement such =
capability. Just thinking out loud here. There might be other issues =
with this approach as the key is not decided by the clients.

Maybe this could work: each config list for which a key is not defined =
in YANG would get a key by default with a reserved name. A NETCONF =
client could use this key as usual but it could also create new entries =
without giving the key, and the server will then generate opaque keys =
for these entries which can then be used as usual. The client may then =
need to learn the system-generated key(s) but this can be done using a =
subsequent get-config (with filters). This approach is used by MongoDB, =
more or less.

However, this probably still doesn't solve the task of replacing the =
entire list in one shot (at least in NETCONF) - this seems to require =
extending <edit-config>.

Lada

>=20
>=20
>=20
> /Nabil
>=20
>=20
>=20
> On Nov 1, 2015, at 8:05 AM, Andy Bierman <andy@yumaworks.com> wrote:
>=20
>> Hi,
>>=20
>> Why is this WG discussing issues that have been declared DEAD for
>> various reasons?  Optional keys break old clients, remember?
>> There was not enough interest in adding these features.=20
>>=20
>>=20
>> Andy
>>=20
>>=20
>> On Sun, Nov 1, 2015 at 6:51 AM, Juergen Schoenwaelder =
<j.schoenwaelder@jacobs-university.de> wrote:
>> On Thu, Oct 29, 2015 at 01:17:56PM +0100, Martin Bjorklund wrote:
>> > Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote:
>> > > Hi,
>> > >
>> > > the issues Y09 and Y57 were declared dead after intense =
discussions of
>> > > various solution proposals. It later appeared to me that there is =
a
>> > > solution that we have not considered. The requirement to have a =
key
>> > > for every list and unique values in a leaf-list for config nodes =
is
>> > > essentially there to allow edits on individual elements using
>> > > edit-config. The solution not considered so far is simply to give =
up
>> > > the ability to edit invidual elements, that is, a config list =
without
>> > > a key can only be modified as whole and similarily a leaf-list =
that
>> > > allows non-unique values can only be modified as a whole (with
>> > > edit-config). Comments?
>> >
>> > How would this look in edit-config?  There are quite a few details =
to
>> > think through in order to support this.
>> >
>>=20
>> Why would that be complicated for edit-config? This key-less list
>> would essentially be anyxml with a known structure. You likely do not
>> allow edit-config specific attributes on all of them.
>>=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/>
>>=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
> _______________________________________________
> 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 Nov  1 23:17:08 2015
Return-Path: <lizhenbin@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 DEBC31B3396; Sun,  1 Nov 2015 23:16:59 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 2.34
X-Spam-Level: **
X-Spam-Status: No, score=2.34 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, CHARSET_FARAWAY_HEADER=3.2, HTML_MESSAGE=0.001, J_CHICKENPOX_66=0.6, MIME_8BIT_HEADER=0.3, MIME_CHARSET_FARAWAY=2.45, 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 BI5Ua-L2kKXm; Sun,  1 Nov 2015 23:16:55 -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 178A81B3377; Sun,  1 Nov 2015 23:16:52 -0800 (PST)
Received: from 172.18.7.190 (EHLO lhreml403-hub.china.huawei.com) ([172.18.7.190]) by lhrrg02-dlp.huawei.com (MOS 4.3.7-GA FastPath queued) with ESMTP id BZQ68090; Mon, 02 Nov 2015 07:16:51 +0000 (GMT)
Received: from NKGEML403-HUB.china.huawei.com (10.98.56.34) by lhreml403-hub.china.huawei.com (10.201.5.217) with Microsoft SMTP Server (TLS) id 14.3.235.1; Mon, 2 Nov 2015 07:16:47 +0000
Received: from NKGEML506-MBX.china.huawei.com ([169.254.3.20]) by nkgeml403-hub.china.huawei.com ([10.98.56.34]) with mapi id 14.03.0235.001; Mon, 2 Nov 2015 15:16:44 +0800
From: Lizhenbin <lizhenbin@huawei.com>
To: Aijun Wang <wangaijun@tsinghua.org.cn>, "rtgwg@ietf.org" <rtgwg@ietf.org>,  "netmod@ietf.org" <netmod@ietf.org>
Thread-Topic: Tunnel Design Philosophy
Thread-Index: AdEFapt5Fqf1Bn2CSemDcxAR3HYI/AAEY6RwA/ATJZE=
Date: Mon, 2 Nov 2015 07:16:43 +0000
Message-ID: <5A5B4DE12C0DAC44AF501CD9A2B01A8D8CA5FF9F@nkgeml506-mbx.china.huawei.com>
References: <004a01d1057c$47e02310$d7a06930$@org.cn>
In-Reply-To: <004a01d1057c$47e02310$d7a06930$@org.cn>
Accept-Language: zh-CN, en-US
Content-Language: zh-CN
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [10.194.185.17]
Content-Type: multipart/alternative; boundary="_000_5A5B4DE12C0DAC44AF501CD9A2B01A8D8CA5FF9Fnkgeml506mbxchi_"
MIME-Version: 1.0
X-CFilter-Loop: Reflected
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/Rl-igabzn0MZTI9qV4TDlAZtSFk>
Subject: [netmod] =?gb2312?b?tPC4tDogVHVubmVsIERlc2lnbiBQaGlsb3NvcGh5?=
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 02 Nov 2015 07:17:00 -0000

--_000_5A5B4DE12C0DAC44AF501CD9A2B01A8D8CA5FF9Fnkgeml506mbxchi_
Content-Type: text/plain; charset="gb2312"
Content-Transfer-Encoding: base64

SGkgQWlqdW4sDQoNCkkgdGhpbmsgeW91ciB0dW5uZWwgcGhpbG9zb3BoeSBpcyByZWFzb25hYmxl
LiBCdXQgdGhlcmUgbWF5IGJlIGNoYWxsZW5nZXMgaW4gdGhlIHJlYWwgaW1wbGVtZW50aW9uIHRv
IHN1cHBvcnQgdGhlIHBoaWxvc29waHkuIFRoZSBjaGFsbGVuZ2VzIGFyZSBhcyBmb2xsb3dzOg0K
DQoxLiBUaGVyZSBhcmUgdG9vIG1hbnkgdHlwZXMgb2YgSVAgdHVubmVscyBzdWNoIGFzIElQdjYv
SVB2NCBvdmVyIElQdjQgdHVubmVsLCBHUkUgVHVubmVsLCBJUFNlYy9JS0UgVHVubmVsLCBMMlRQ
IFR1bm5lbCxldGMuIEFuZCBub3cgTlZPMyB3b3JrIHByb3Bvc2VzDQoNCm1vcmUgSVAgdHVubmVs
IHR5cGVzIHN1Y2ggYXMgVlhMQU4gVHVubmVsLCBOVkdSRSwgR1BFLCBNUExTIGluIFVEUCwgZXRj
LiAgVGhvdWdoIHRoZXNlIElQIHR1bm5lbHMgbWF5IHNoYXJlIGNvbW1vbiBhc3BlY3RzLCB0aGV5
IG1heSBoYXZlIGVzc2VudGlhbGx5DQoNCmRpZmZlcmVudCB1c2FnZXMgd2hpY2ggaXMgZG9lcyBt
YXR0ZXIuDQoNCjIuIERpZmZlcmVudCBJUCB0dW5uZWxzIG1heSBuZWVkIG1vcmUgcHJlLWNvbmZp
Z3VyYXRpb24gYW5kIG9wZXJhdGlvbmFsIGRhdGEgd2hpY2ggYXJlIGRpZmZlcmVudCBmcm9tIGVh
Y2ggb3RoZXIgd2hpY2ggaXMgZGlmZmljdWx0IHRvIGJlIGFjY29tbW9kYXRlZCBpbiB0aGUNCg0K
bW9kdWxlLiBCdXQgd2hlbiBjb25maWd1cmUgdGhlc2UgdHVubmVscywgdGhlc2UgcHJlLWNvbmZp
Z3VyYXRpb24gaGFzIHRvIGJlIHByb3ZpZGVkIGZpcnN0bHkuIFNvIHRoZSB0dW5uZWwgY29tbW9u
IG1vZHVsZXMgaGFzIHRvIGludGVyZXJhY3Qgd2l0aCBvdGhlciB0dW5uZWwNCg0KaW1wbGVtZW50
YXRpb24gbW9kdWxlcy4NCg0KMy4gQ29tbW9uIFR1bm5lbCBtb2R1bGVzIG1heSBuZWVkIG1vcmUg
aW50ZXJhY3Rpb24gd2l0aCBtb2R1bGVzIGltcGxlbWVudGluZyBkaWZmZXJlbnQgdHlwZXMgb2Yg
bW9kdWxlcy4gVGhlIGNvbXBsZXhpdHkgbWF5IGluY3JlYXNlIGFzIHRoZSBudW1iZXIgb2YNCg0K
dHVubmVsIHR5cGVzLiBJdCBtYXkgbmVlZCB2ZXJ5IHNtYXJ0IHBlb3BsZSB0byB1bmRlcnN0YW5k
IGFsbCBwb3NzaWJsZSB0eXBlcyBvZiBJUCB0dW5uZWxzIGZvciBpbXBsZW1lbnRhdGlvbiBvZiB0
aGUgdHVubmVsIG1vZHVsZXMuDQo0LiBBbGwgdGhlc2UgSVAgdHVubmVsIHR5cGVzIGRvIG5vdCBl
bWVyZ2UgYWxsIGF0IG9uY2UuIEV2ZW4gdGhlIHBvc3NpYmxlIGNvbW1vbiBhdHRyaWJ1dGVzIHNo
b3duIGluIHlvdXIgeW91ciBtb2RlbHMgZGlkIG5vdCBlbWVyZ2UgYXQgdGhlIGJlZ2lubmluZy4g
U28gaXQgaXMNCg0KdmVyeSBkaWZmaWN1bHQgdG8gY2hhbmdlIHRoZSBleGlzdGluZyBpbXBsZW1l
bnRhdGlvbiB0byBhYnN0YWN0IHRoZSBwb3NzaWJsZSB0dW5uZWwgY29tbW9uIG1vZHVsZXMuDQoN
CkluIGZhY3Qgd2UgaGF2ZSBldmVyIHRyaWVkIHlvdXIgbWV0aG9kIGF0IHRoZSBiZWdpbm5pbmcg
YW5kIGF0IGxhc3Qgd2UgZ2F2ZSB1cCBzaW5jZSBub2JvZHkgY291bGQgdGFrZSB0aGUgY2hhbGxl
bmdpbmcgd29yay4NCg0KDQoNCkJlc3QgUmVnYXJkcywNCg0KWmhlbmJpbihSb2JpbikNCg0KDQoN
Cg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCl9fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fDQq3orz+yMs6IHJ0Z3dnIFtydGd3Zy1ib3VuY2VzQGlldGYub3JnXSC0+rHt
IEFpanVuIFdhbmcgW3dhbmdhaWp1bkB0c2luZ2h1YS5vcmcuY25dDQq3osvNyrG85DogMjAxNcTq
MTDUwjEzyNUgMTM6NTgNCsrVvP7IyzogcnRnd2dAaWV0Zi5vcmc7IG5ldG1vZEBpZXRmLm9yZw0K
1vfM4jogVHVubmVsIERlc2lnbiBQaGlsb3NvcGh5DQoNCkhpLCBSVEdXR2VyIGFuZCBORVRNT0Rl
cjoNCg0KSGVyZSBJIHdhbnQgdG8gYXNrIGZvciBhZHZpY2VzIGZyb20gYW55IGV4cGVydCB0aGF0
IGlzIGZhbWlsaWFyIHdpdGggdGhlIHVzYWdlcyBhbmQgZGVzaWducyBvZiB2YXJpb3VzIHR1bm5l
bCB0ZWNobm9sb2dpZXMgdGhhdCBhcmUgd2lkZSBkZXBsb3llZCB3aXRoaW4gdGhlIG5ldHdvcmsu
DQpXaGF0IGlzIHRoZSBwcmluY2lwbGUgYW5kIHBoaWxvc29waHkgYWJvdXQgdGhlIGRlc2lnbiBv
ZiBZYW5nIE1vZGVsIGZvciB0aGVzZSB0dW5uZWwgdGVjaG5vbG9naWVzPw0KDQpDdXJyZW50bHks
IHRoZXJlIGFyZSBzZXZlcmFsIGRyYWZ0cyB0aGF0IGhhcyB0b3VjaGVzIHRoaXMgYXJlYSwgYnV0
IHRoZXJlIGFyZSBzb21lIGNvbmZ1c2lvbnMgYWJvdXQgdGhlaXIgZGVzaWducywgZm9yIGV4YW1w
bGU6DQoxLiBDYW4gd2Ugb3JnYW5pemUgdGhlc2UgdHVubmVsIHJlbGF0ZWQtWWFuZyBtb2RlbHMg
dW5kZXIgb25lIGNvbW1vbiB0cmVlPw0KMi4gV2hhdCBpcyB0aGUgcmVsYXRpb25zaGlwIGJldHdl
ZW4gdGhlIHR1bm5lbCByZWxhdGVkLVlhbmcgbW9kZWwgYW5kIHRoZSBpbnRlcmZhY2UgWWFuZyBN
b2RlbD8NCg0KT3VyIG9waW5pb24gaXMgdGhhdCBZYW5nIE1vZGVsIGlzIG9uZSBkZXNpZ24gdG9v
bC9sYW5ndWFnZSB1c2VkIHRvIHN0YW5kYXJkIHRoZSBpbnRlcmZhY2UgYmV0d2VlbiB0aGUgc2Vy
dmljZSBwcm92aWRlciBhbmQgZGV2aWNlKERldmljZSBZYW5nIE1vZGVsKSwgYW5kIGJldHdlZW4g
dGhlIHNlcnZpY2UgcHJvdmlkZXIgYW5kIHRoZWlyIGN1c3RvbWVyKFNlcnZpY2UgWWFuZyBNb2Rl
bCksIHRoZW4gdGhlIGRlc2lnbiBvZiB0aGVtIHNob3VsZCBmcm9tIHRvcCB0byBkb3duLCBmaW5k
IHRoZSBnZW5lcmFsIGFzcGVjdHMgb2YgZXZlcnkgbW9kZWwgYnJhbmNoIGZpcnN0IGFuZCBhdWdt
ZW50IHRoZW0gd2l0aCBzcGVjaWZpYyB0ZWNobm9sb2d5IGxhdGVyLiBUaGlzIHNlZW1zIG1vcmUg
Y29tbW9uIHRvIGFsbCB0aGUgTW9kZWwvT2JqZWN0IGRlc2lnbiBsYW5ndWFnZS4NCg0KU28sIGZv
ciBhYm92ZSB0d28gcXVlc3Rpb25zLCB3ZSByZWNvbW1lbmQgdG8gZGVzaWduIG9uZSBnZW5lcmFs
IHR1bm5lbC1yZWxhdGVkIFlhbmcgbW9kZWwgdGhhdCBhdWdtZW50cyBmcm9tIHRoZSBpbnRlcmZh
Y2UgWWFuZyBtb2RlbCwgYW5kIGV4cGFuZCB0byBpdCB0byBjb3ZlciB0aGUgdmFyaW91cyBzcGVj
aWZpYyB0dW5uZWwgdGVjaG5vbG9naWVzLiBEb2luZyBzbyBoYXMgdGhlIGZvbGxvd2luZyBiZW5l
Zml0czoNCjEuIHdlIGNhbiBmb2N1cyBmaXJzdCB0aGUgY29tbW9uIGNoYXJhY3RlcmlzdGljIG9m
IHR1bm5lbCB0ZWNobm9sb2d5LCBlc3BlY2lhbGx5IHRoZSBzdGF0aWMgdHVubmVsIHRlY2hub2xv
Z2llcyhkeW5hbWljIHR1bm5lbCBmb3IgZXhhbXBsZSBNUExTLVRFIHR1bm5lbCBpcyB0aGUgZXhj
ZXB0aW9uKQ0KMi4gdGhlIGFwcGVhcmFuY2Ugb2YgdGhlIHR1bm5lbCBvbiByb3V0ZXIvc3dpdGNo
IGFyZSBhbGwgb25lIGtpbmQgb2YgaW50ZXJmYWNlLiBJZiBpdCBhdWdtZW50cyBmcm9tIHRoZSBp
bnRlcmZhY2UgdHVubmVsLCBpdCBjYW4gaW5oZXJpdCBtYW55IHZhcmlhYmxlcyBvZiB0aGUgaW50
ZXJmYWNlIFlhbmcgbW9kZWwuKHNldmVyYWwgZHJhZnRzIGhhdmUgc2hvd24gdGhlaXIgb3Zlcmxh
cHBpbmcgZGVzaWduIG9mIHRoZXNlIHZhcmlhYmxlcy4pDQoNClNvLCBob3cgYWJvdXQgeW91ciBv
cGluaW9uIGFuZCB0aGUgcmVhc29uIHRvIGRvIHRoZW0/DQpXaXNoIGNhbiBoZWFyIG1vcmUgdmFs
dWFibGUgc3VnZ2VzdGlvbnMgb24gdGhlIGRlc2lnbiBvZiB0aGUgVHVubmVsLXJlbGF0ZWQgWWFu
ZyBNb2RlbC4NCg0KQ3VycmVudCBhdmFpbGFibGUgZHJhZnRzIGFib3V0IHRoZSBUdW5uZWwgqENy
ZWxhdGVkIFlhbmcgTW9kZWwgYXJlIGJlbGxvd3M6DQoxLiBodHRwczovL3Rvb2xzLmlldGYub3Jn
L2h0bWwvZHJhZnQtaWV0Zi1sMnRwZXh0LWtleWVkLXY2LXR1bm5lbC15YW5nLTAwDQoyLiBodHRw
Oi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2RyYWZ0LXd3ei1uZXRtb2QteWFuZy10dW5uZWwt
Y2ZnLw0KMy4gaHR0cDovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9kcmFmdC13aWx0b24tbmV0
bW9kLWludGYtdmxhbi15YW5nLw0KNC4gaHR0cDovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9k
cmFmdC1saXUtcnRnd2ctaXBpcHY0LXR1bm5lbC15YW5nLw0KNS4gaHR0cDovL2RhdGF0cmFja2Vy
LmlldGYub3JnL2RvYy9kcmFmdC1saS1ydGd3Zy11dHVubmVsLXlhbmcvDQo2LiBodHRwczovL3Rv
b2xzLmlldGYub3JnL2lkL2RyYWZ0LWlldGYtdGVhcy15YW5nLXRlLTAwLnR4dCggVGhpcyBkcmFm
dCBpcyBvbmUgZXhjZXB0aW9uLCBhbmQgc2VlbXMgY2Fuoa90IGJlIGdlbmVyYWxpemVkIHdpdGgg
b3RoZXIgZml2ZSBkcmFmdHMpDQoNCkJlc3QgUmVnYXJkcy4NCg0KDQpBaWp1biBXYW5nDQoNCkNo
aW5hIFRlbGVjb20gQ29ycG9yYXRpb24gTGltaXRlZCBCZWlqaW5nIFJlc2VhcmNoIEluc3RpdHV0
ZQ0KSW50ZWxsaWdlbnQgTmV0d29yayBQcm9kdWN0IExpbmUNCg0KDQoNCg==

--_000_5A5B4DE12C0DAC44AF501CD9A2B01A8D8CA5FF9Fnkgeml506mbxchi_
Content-Type: text/html; charset="gb2312"
Content-Transfer-Encoding: quoted-printable

<html dir=3D"ltr">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dgb2312">
<style>@font-face {
	font-family: SimSun;
}
@font-face {
	font-family: Cambria Math;
}
@font-face {
	font-family: Calibri;
}
@font-face {
	font-family: SimSun;
}
@font-face {
	font-family: Verdana;
}
@page WordSection1 {margin: 72.0pt 90.0pt 72.0pt 90.0pt; }
P.MsoNormal {
	TEXT-ALIGN: justify; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: "Calibri","sans-ser=
if"; FONT-SIZE: 10.5pt
}
LI.MsoNormal {
	TEXT-ALIGN: justify; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: "Calibri","sans-ser=
if"; FONT-SIZE: 10.5pt
}
DIV.MsoNormal {
	TEXT-ALIGN: justify; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: "Calibri","sans-ser=
if"; FONT-SIZE: 10.5pt
}
A:link {
	COLOR: blue; TEXT-DECORATION: underline
}
SPAN.MsoHyperlink {
	COLOR: blue; TEXT-DECORATION: underline
}
A:visited {
	COLOR: purple; TEXT-DECORATION: underline
}
SPAN.MsoHyperlinkFollowed {
	COLOR: purple; TEXT-DECORATION: underline
}
SPAN.EmailStyle17 {
	FONT-FAMILY: "Calibri","sans-serif"; COLOR: windowtext
}
SPAN.EmailStyle18 {
	FONT-FAMILY: "Calibri","sans-serif"; COLOR: #1f497d
}
.MsoChpDefault {
	FONT-SIZE: 10pt
}
</style><style id=3D"owaParaStyle">P {
	MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
}
</style>
</head>
<body lang=3D"ZH-CN" link=3D"blue" vlink=3D"purple" fPStyle=3D"1" ocsi=3D"0=
">
<div style=3D"direction: ltr;font-family: Tahoma;color: #000000;font-size: =
10pt;">
<p>Hi Aijun,</p>
<p>I think your tunnel philosophy is reasonable. But there may be challenge=
s in the real implemention to support the philosophy. The challenges are as=
 follows:</p>
<p>1. There are too many types of IP tunnels such as IPv6/IPv4 over IPv4 tu=
nnel, GRE Tunnel, IPSec/IKE Tunnel,&nbsp;L2TP Tunnel,etc. And now NVO3 work=
 proposes
</p>
<p>more IP tunnel types such as VXLAN Tunnel, NVGRE, GPE, MPLS in UDP, etc.=
&nbsp; Though these IP tunnels may share common aspects, they may have esse=
ntially
</p>
<p>different usages which is does matter. </p>
<p>2. Different IP tunnels may need more pre-configuration and operational =
data which are different from each other which is difficult to be accommoda=
ted in the
</p>
<p>module. But when configure these tunnels, these pre-configuration has to=
 be provided firstly. So the tunnel common modules has to intereract with o=
ther tunnel</p>
<p>implementation modules.</p>
<p>3. Common Tunnel modules may need more interaction with modules implemen=
ting different types of modules. The complexity may increase as the number =
of
</p>
<p>tunnel types. It may need very smart people to understand all possible t=
ypes of IP tunnels for implementation of the tunnel modules.<br>
4. All these IP tunnel types do not emerge all at once. Even the possible c=
ommon attributes shown in your your models did not emerge at the beginning.=
 So it is</p>
<p>very difficult to change the existing implementation to abstact the poss=
ible tunnel common modules.
</p>
<p>In fact we have ever tried your method at the beginning and at last we g=
ave up since nobody could take the challenging work.</p>
<p>&nbsp;</p>
<p>Best Regards,</p>
<p>Zhenbin(Robin)</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<div style=3D"FONT-FAMILY: Times New Roman; COLOR: #000000; FONT-SIZE: 16px=
">
<hr tabindex=3D"-1">
<div style=3D"DIRECTION: ltr" id=3D"divRpF346553"><font color=3D"#000000" s=
ize=3D"2" face=3D"Tahoma"><b>=B7=A2=BC=FE=C8=CB:</b> rtgwg [rtgwg-bounces@i=
etf.org] =B4=FA=B1=ED Aijun Wang [wangaijun@tsinghua.org.cn]<br>
<b>=B7=A2=CB=CD=CA=B1=BC=E4:</b> 2015=C4=EA10=D4=C213=C8=D5 13:58<br>
<b>=CA=D5=BC=FE=C8=CB:</b> rtgwg@ietf.org; netmod@ietf.org<br>
<b>=D6=F7=CC=E2:</b> Tunnel Design Philosophy<br>
</font><br>
</div>
<div></div>
<div>
<div class=3D"WordSection1">
<p class=3D"MsoNormal"><span lang=3D"EN-US">Hi, RTGWGer and NETMODer:</span=
></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"></span>&nbsp;</p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">Here I want to ask for advices =
from any expert that is familiar with the usages and designs of various tun=
nel technologies that are wide deployed within the network.</span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">What is the principle and philo=
sophy about the design of Yang Model for these tunnel technologies?</span><=
/p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"></span>&nbsp;</p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">Currently, there are several dr=
afts that has touches this area, but there are some confusions about their =
designs, for example:</span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">1. Can we organize these tunnel=
 related-Yang models under one common tree?</span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">2. What is the relationship bet=
ween the tunnel related-Yang model and the interface Yang Model?
</span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"></span>&nbsp;</p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">Our opinion is that Yang Model =
is one design tool/language used to standard the interface between the serv=
ice provider and device(Device Yang Model), and between the service provide=
r and their customer(Service Yang Model),
 then the design of them should from top to down, find the general aspects =
of every model branch first and augment them with specific technology later=
. This seems more common to all the Model/Object design language.</span></p=
>
<p class=3D"MsoNormal"><span lang=3D"EN-US"></span>&nbsp;</p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">So, for above two questions, we=
 recommend to design one general tunnel-related Yang model that augments fr=
om the interface Yang model, and expand to it to cover the various specific=
 tunnel technologies. Doing so has the
 following benefits:</span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">1. we can focus first the commo=
n characteristic of tunnel technology, especially the static tunnel technol=
ogies(dynamic tunnel for example MPLS-TE tunnel is the exception)</span></p=
>
<p class=3D"MsoNormal"><span lang=3D"EN-US">2. the appearance of the tunnel=
 on router/switch are all one kind of interface. If it augments from the in=
terface tunnel, it can inherit many variables of the interface Yang model.(=
several drafts have shown their overlapping
 design of these variables.)</span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"></span>&nbsp;</p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">So, how about your opinion and =
the reason to do them?</span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">Wish can hear more valuable sug=
gestions on the design of the Tunnel-related Yang Model.</span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"></span>&nbsp;</p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">Current available drafts about =
the Tunnel =A8Crelated Yang Model are bellows:</span></p>
<p class=3D"MsoNormal"><span style=3D"COLOR: #1f497d" lang=3D"EN-US">1. <a =
href=3D"https://tools.ietf.org/html/draft-ietf-l2tpext-keyed-v6-tunnel-yang=
-00" target=3D"_blank">
https://tools.ietf.org/html/draft-ietf-l2tpext-keyed-v6-tunnel-yang-00</a><=
/span></p>
<p class=3D"MsoNormal"><span style=3D"COLOR: #1f497d" lang=3D"EN-US">2.</sp=
an><span lang=3D"EN-US">
<span style=3D"COLOR: #1f497d"><a href=3D"http://datatracker.ietf.org/doc/d=
raft-wwz-netmod-yang-tunnel-cfg/" target=3D"_blank">http://datatracker.ietf=
.org/doc/draft-wwz-netmod-yang-tunnel-cfg/</a></span></span></p>
<p class=3D"MsoNormal"><span style=3D"COLOR: #1f497d" lang=3D"EN-US">3.</sp=
an><span lang=3D"EN-US">
<span style=3D"COLOR: #1f497d"><a href=3D"http://datatracker.ietf.org/doc/d=
raft-wilton-netmod-intf-vlan-yang/" target=3D"_blank">http://datatracker.ie=
tf.org/doc/draft-wilton-netmod-intf-vlan-yang/</a></span></span></p>
<p class=3D"MsoNormal"><span style=3D"COLOR: #1f497d" lang=3D"EN-US">4.</sp=
an><span lang=3D"EN-US">
<span style=3D"COLOR: #1f497d"><a href=3D"http://datatracker.ietf.org/doc/d=
raft-liu-rtgwg-ipipv4-tunnel-yang/" target=3D"_blank">http://datatracker.ie=
tf.org/doc/draft-liu-rtgwg-ipipv4-tunnel-yang/</a></span></span></p>
<p class=3D"MsoNormal"><span style=3D"COLOR: #1f497d" lang=3D"EN-US">5.</sp=
an><span lang=3D"EN-US">
<span style=3D"COLOR: #1f497d"><a href=3D"http://datatracker.ietf.org/doc/d=
raft-li-rtgwg-utunnel-yang/" target=3D"_blank">http://datatracker.ietf.org/=
doc/draft-li-rtgwg-utunnel-yang/</a></span></span></p>
<p class=3D"MsoNormal"><span style=3D"COLOR: #1f497d" lang=3D"EN-US">6. <a =
href=3D"https://tools.ietf.org/id/draft-ietf-teas-yang-te-00.txt" target=3D=
"_blank">
https://tools.ietf.org/id/draft-ietf-teas-yang-te-00.txt</a></span><span la=
ng=3D"EN-US">( This draft is one exception, and seems can=A1=AFt be general=
ized with other five drafts)
<span style=3D"COLOR: #1f497d"></span></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"></span>&nbsp;</p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">Best Regards.</span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"></span>&nbsp;</p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"></span>&nbsp;</p>
<p style=3D"TEXT-ALIGN: left" class=3D"MsoNormal" align=3D"left"><span styl=
e=3D"FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 10pt" lang=3D"EN-US">A=
ijun Wang</span></p>
<p style=3D"TEXT-ALIGN: left" class=3D"MsoNormal" align=3D"left"><span styl=
e=3D"FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 10pt" lang=3D"EN-US"><=
/span>&nbsp;</p>
<p style=3D"TEXT-ALIGN: left" class=3D"MsoNormal" align=3D"left"><span styl=
e=3D"FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 10pt" lang=3D"EN-US">C=
hina&nbsp;Telecom&nbsp;Corporation&nbsp;Limited&nbsp;Beijing&nbsp;Research&=
nbsp;Institute&nbsp;</span></p>
<p style=3D"TEXT-ALIGN: left" class=3D"MsoNormal" align=3D"left"><span styl=
e=3D"FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 10pt" lang=3D"EN-US">I=
ntelligent Network Product Line</span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"></span>&nbsp;</p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"></span>&nbsp;</p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"></span>&nbsp;</p>
</div>
</div>
</div>
</div>
</body>
</html>

--_000_5A5B4DE12C0DAC44AF501CD9A2B01A8D8CA5FF9Fnkgeml506mbxchi_--


From nobody Mon Nov  2 00:45:53 2015
Return-Path: <13301168517@189.cn>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E85A71B3335; Mon,  2 Nov 2015 00:45:51 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.953
X-Spam-Level: *
X-Spam-Status: No, score=1.953 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, FROM_LOCAL_DIGITS=0.001, FROM_LOCAL_HEX=0.006, HELO_IS_SMALL6=0.556, HTML_MESSAGE=0.001, J_CHICKENPOX_66=0.6, MIME_CHARSET_FARAWAY=2.45, 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 AddfD9C6IRtb; Mon,  2 Nov 2015 00:45:48 -0800 (PST)
Received: from 189.cn (mta.189.cn [121.14.53.140]) by ietfa.amsl.com (Postfix) with ESMTP id 3F9C21B34F5; Mon,  2 Nov 2015 00:45:47 -0800 (PST)
HMM_SOURCE_IP: 10.64.8.34:42818.297652091
HMM_ATTACHE_NUM: 0000
HMM_SOURCE_TYPE: SMTP
Received: from ctbriwangaij (unknown [10.64.8.34]) by 189.cn (HERMES) with ESMTP id 0E1F22013B; Mon,  2 Nov 2015 16:45:40 +0800 (CST)
Received: from ctbriwangaij ([219.142.69.78]) by zm-as4(MEDUSA 0.0.0.0) with ESMTP id f22cadfb-7c02-4d4f-9b1e-2428f90d10a0 for lizhenbin@huawei.com; Mon Nov  2 16:45:45 2015
0/X-Total-Score: 0:
1/X-Total-Score: 0:
X-FILTER-SCORE: to=<8d8a9b89868f838a8f6189968298868a4f84908e>, score=<1446453945JJWJJXJJWXX3344/JJJJJJYYHYYLY6HLW7G9NtYYYYY6> 
X-REAL-FROM: 13301168517@189.cn
X-Receive-IP: 219.142.69.78
From: "Aijun Wang" <13301168517@189.cn>
To: "'Lizhenbin'" <lizhenbin@huawei.com>, <rtgwg@ietf.org>, <netmod@ietf.org>
References: <004a01d1057c$47e02310$d7a06930$@org.cn> <5A5B4DE12C0DAC44AF501CD9A2B01A8D8CA5FF9F@nkgeml506-mbx.china.huawei.com>
In-Reply-To: <5A5B4DE12C0DAC44AF501CD9A2B01A8D8CA5FF9F@nkgeml506-mbx.china.huawei.com>
Date: Mon, 2 Nov 2015 16:45:50 +0800
Message-ID: <01c601d1154a$e1bc1ce0$a53456a0$@cn>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----=_NextPart_000_01C7_01D1158D.EFDF5CE0"
X-Mailer: Microsoft Office Outlook 12.0
Thread-Index: AdEFapt5Fqf1Bn2CSemDcxAR3HYI/AAEY6RwA/ATJZEAAy/boA==
Content-Language: zh-cn
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/wKWZXtWTJKVnjEYLcdHCvgDsVeg>
Subject: Re: [netmod] Tunnel Design Philosophy
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 02 Nov 2015 08:45:52 -0000

This is a multi-part message in MIME format.

------=_NextPart_000_01C7_01D1158D.EFDF5CE0
Content-Type: text/plain;
	charset="gb2312"
Content-Transfer-Encoding: quoted-printable

Hi, Zhenbin:

=20

>From my opinion, if the Yang Model can=A1=AFt be organized from top to =
down,
from common to specific, then it will be very difficult for service =
provider
to adopt them within their network. The reason to adopt the Yang Model =
for
service provider is to accelerate the deployment of various services,
compared with the speed that the service provider must deal with the
different vendor/technology specific solution.

If we can=A1=AFt find the general aspects of different tunnel =
technologies,
abstract them into some general models, then the Yang model will be =
evolved
into MIB-alike results. Is this the aim of Yang Model?=20

Can the influential router vendors support this opinion and make some
changes for the health evolution of ecosystem?=20

=20

Best Regards.

=20

Aijun Wang

=20

China Telecom Corporation Limited Beijing Research Institute=20

Intelligent Network Product Line

=20

=20

=20

From: rtgwg [mailto:rtgwg-bounces@ietf.org] On Behalf Of Lizhenbin
Sent: Monday, November 02, 2015 3:17 PM
To: Aijun Wang; rtgwg@ietf.org; netmod@ietf.org
Subject: =B4=F0=B8=B4: Tunnel Design Philosophy

=20

Hi Aijun,

I think your tunnel philosophy is reasonable. But there may be =
challenges in
the real implemention to support the philosophy. The challenges are as
follows:

1. There are too many types of IP tunnels such as IPv6/IPv4 over IPv4
tunnel, GRE Tunnel, IPSec/IKE Tunnel, L2TP Tunnel,etc. And now NVO3 work
proposes=20

more IP tunnel types such as VXLAN Tunnel, NVGRE, GPE, MPLS in UDP, etc.
Though these IP tunnels may share common aspects, they may have =
essentially=20

different usages which is does matter.=20

2. Different IP tunnels may need more pre-configuration and operational =
data
which are different from each other which is difficult to be =
accommodated in
the=20

module. But when configure these tunnels, these pre-configuration has to =
be
provided firstly. So the tunnel common modules has to intereract with =
other
tunnel

implementation modules.

3. Common Tunnel modules may need more interaction with modules =
implementing
different types of modules. The complexity may increase as the number of =


tunnel types. It may need very smart people to understand all possible =
types
of IP tunnels for implementation of the tunnel modules.
4. All these IP tunnel types do not emerge all at once. Even the =
possible
common attributes shown in your your models did not emerge at the =
beginning.
So it is

very difficult to change the existing implementation to abstact the =
possible
tunnel common modules.=20

In fact we have ever tried your method at the beginning and at last we =
gave
up since nobody could take the challenging work.

=20

Best Regards,

Zhenbin(Robin)

=20

=20

=20

=20

=20

=20

=20

=20

=20

=20

  _____ =20

=B7=A2=BC=FE=C8=CB: rtgwg [rtgwg-bounces@ietf.org] =B4=FA=B1=ED Aijun =
Wang
[wangaijun@tsinghua.org.cn]
=B7=A2=CB=CD=CA=B1=BC=E4: 2015=C4=EA10=D4=C213=C8=D5 13:58
=CA=D5=BC=FE=C8=CB: rtgwg@ietf.org; netmod@ietf.org
=D6=F7=CC=E2: Tunnel Design Philosophy

Hi, RTGWGer and NETMODer:

=20

Here I want to ask for advices from any expert that is familiar with the
usages and designs of various tunnel technologies that are wide deployed
within the network.

What is the principle and philosophy about the design of Yang Model for
these tunnel technologies?

=20

Currently, there are several drafts that has touches this area, but =
there
are some confusions about their designs, for example:

1. Can we organize these tunnel related-Yang models under one common =
tree?

2. What is the relationship between the tunnel related-Yang model and =
the
interface Yang Model?=20

=20

Our opinion is that Yang Model is one design tool/language used to =
standard
the interface between the service provider and device(Device Yang =
Model),
and between the service provider and their customer(Service Yang Model),
then the design of them should from top to down, find the general =
aspects of
every model branch first and augment them with specific technology =
later.
This seems more common to all the Model/Object design language.

=20

So, for above two questions, we recommend to design one general
tunnel-related Yang model that augments from the interface Yang model, =
and
expand to it to cover the various specific tunnel technologies. Doing so =
has
the following benefits:

1. we can focus first the common characteristic of tunnel technology,
especially the static tunnel technologies(dynamic tunnel for example =
MPLS-TE
tunnel is the exception)

2. the appearance of the tunnel on router/switch are all one kind of
interface. If it augments from the interface tunnel, it can inherit many
variables of the interface Yang model.(several drafts have shown their
overlapping design of these variables.)

=20

So, how about your opinion and the reason to do them?

Wish can hear more valuable suggestions on the design of the =
Tunnel-related
Yang Model.

=20

Current available drafts about the Tunnel =A8Crelated Yang Model are =
bellows:

1. =
https://tools.ietf.org/html/draft-ietf-l2tpext-keyed-v6-tunnel-yang-00

2. http://datatracker.ietf.org/doc/draft-wwz-netmod-yang-tunnel-cfg/

3. http://datatracker.ietf.org/doc/draft-wilton-netmod-intf-vlan-yang/

4. http://datatracker.ietf.org/doc/draft-liu-rtgwg-ipipv4-tunnel-yang/

5. http://datatracker.ietf.org/doc/draft-li-rtgwg-utunnel-yang/

6. https://tools.ietf.org/id/draft-ietf-teas-yang-te-00.txt( This draft =
is
one exception, and seems can=A1=AFt be generalized with other five =
drafts)=20

=20

Best Regards.

=20

=20

Aijun Wang

=20

China Telecom Corporation Limited Beijing Research Institute=20

Intelligent Network Product Line

=20

=20

=20


------=_NextPart_000_01C7_01D1158D.EFDF5CE0
Content-Type: text/html;
	charset="gb2312"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" =
xmlns:o=3D"urn:schemas-microsoft-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=3DContent-Type content=3D"text/html; charset=3Dgb2312"><meta =
name=3DGenerator content=3D"Microsoft Word 12 (filtered medium)"><!--[if =
!mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
	{font-family:=CB=CE=CC=E5;
	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:Verdana;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
	{font-family:"\@=CB=CE=CC=E5";
	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;
	text-align:justify;
	text-justify:inter-ideograph;
	font-size:10.5pt;
	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
	{mso-style-priority:99;
	margin:0cm;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:=CB=CE=CC=E5;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
	{mso-style-priority:99;
	mso-style-link:"=C5=FA=D7=A2=BF=F2=CE=C4=B1=BE Char";
	margin:0cm;
	margin-bottom:.0001pt;
	text-align:justify;
	text-justify:inter-ideograph;
	font-size:9.0pt;
	font-family:"Calibri","sans-serif";}
p.msochpdefault, li.msochpdefault, div.msochpdefault
	{mso-style-name:msochpdefault;
	margin:0cm;
	margin-bottom:.0001pt;
	font-size:10.0pt;
	font-family:=CB=CE=CC=E5;}
span.emailstyle17
	{mso-style-name:emailstyle17;
	font-family:"Calibri","sans-serif";
	color:windowtext;}
span.emailstyle18
	{mso-style-name:emailstyle18;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
span.EmailStyle21
	{mso-style-type:personal-reply;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
span.Char
	{mso-style-name:"=C5=FA=D7=A2=BF=F2=CE=C4=B1=BE Char";
	mso-style-priority:99;
	mso-style-link:=C5=FA=D7=A2=BF=F2=CE=C4=B1=BE;
	font-family:"Calibri","sans-serif";}
.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 lang=3DZH-CN link=3Dblue =
vlink=3Dpurple><div class=3DWordSection1><p class=3DMsoNormal><span =
lang=3DEN-US style=3D'color:#1F497D'>Hi, =
Zhenbin:<o:p></o:p></span></p><p class=3DMsoNormal><span lang=3DEN-US =
style=3D'color:#1F497D'><o:p>&nbsp;</o:p></span></p><p =
class=3DMsoNormal><span lang=3DEN-US style=3D'color:#1F497D'>From my =
opinion, if the Yang Model can=A1=AFt be organized from top to down, =
from common to specific, then it will be very difficult for service =
provider to adopt them within their network. The reason to adopt the =
Yang Model for service provider is to accelerate the deployment of =
various services, compared with the speed that the service provider must =
deal with the different vendor/technology specific =
solution.<o:p></o:p></span></p><p class=3DMsoNormal><span lang=3DEN-US =
style=3D'color:#1F497D'>If we can=A1=AFt find the general aspects of =
different tunnel technologies, abstract them into some general models, =
then the Yang model will be evolved into MIB-alike results. Is this the =
aim of Yang Model? <o:p></o:p></span></p><p class=3DMsoNormal><span =
lang=3DEN-US style=3D'color:#1F497D'>Can the influential router vendors =
support this opinion and make some changes for the health evolution of =
ecosystem? <o:p></o:p></span></p><p class=3DMsoNormal><span lang=3DEN-US =
style=3D'color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=3DMsoNormal =
align=3Dleft style=3D'text-align:left'><span lang=3DEN-US =
style=3D'font-size:10.0pt;font-family:"Verdana","sans-serif";color:#1F497=
D'>Best Regards.<o:p></o:p></span></p><p class=3DMsoNormal align=3Dleft =
style=3D'text-align:left'><span lang=3DEN-US =
style=3D'font-size:10.0pt;font-family:"Verdana","sans-serif";color:#1F497=
D'><o:p>&nbsp;</o:p></span></p><p class=3DMsoNormal align=3Dleft =
style=3D'text-align:left'><span lang=3DEN-US =
style=3D'font-size:10.0pt;font-family:"Verdana","sans-serif";color:#1F497=
D'>Aijun Wang<o:p></o:p></span></p><p class=3DMsoNormal align=3Dleft =
style=3D'text-align:left'><span lang=3DEN-US =
style=3D'font-size:10.0pt;font-family:"Verdana","sans-serif";color:#1F497=
D'><o:p>&nbsp;</o:p></span></p><p class=3DMsoNormal align=3Dleft =
style=3D'text-align:left'><span lang=3DEN-US =
style=3D'font-size:10.0pt;font-family:"Verdana","sans-serif";color:#1F497=
D'>China&nbsp;Telecom&nbsp;Corporation&nbsp;Limited&nbsp;Beijing&nbsp;Res=
earch&nbsp;Institute&nbsp;<o:p></o:p></span></p><p class=3DMsoNormal =
align=3Dleft style=3D'text-align:left'><span lang=3DEN-US =
style=3D'font-size:10.0pt;font-family:"Verdana","sans-serif";color:#1F497=
D'>Intelligent Network Product Line<o:p></o:p></span></p><p =
class=3DMsoNormal><span lang=3DEN-US =
style=3D'color:#1F497D'><o:p>&nbsp;</o:p></span></p><p =
class=3DMsoNormal><span lang=3DEN-US =
style=3D'color:#1F497D'><o:p>&nbsp;</o:p></span></p><p =
class=3DMsoNormal><span lang=3DEN-US =
style=3D'color:#1F497D'><o:p>&nbsp;</o:p></span></p><div><div =
style=3D'border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm =
0cm 0cm'><p class=3DMsoNormal align=3Dleft =
style=3D'text-align:left'><b><span lang=3DEN-US =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span>=
</b><span lang=3DEN-US =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif"'> rtgwg =
[mailto:rtgwg-bounces@ietf.org] <b>On Behalf Of =
</b>Lizhenbin<br><b>Sent:</b> Monday, November 02, 2015 3:17 =
PM<br><b>To:</b> Aijun Wang; rtgwg@ietf.org; =
netmod@ietf.org<br><b>Subject:</b> </span><span =
style=3D'font-size:10.0pt;font-family:=CB=CE=CC=E5'>=B4=F0=B8=B4</span><s=
pan lang=3DEN-US =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif"'>: Tunnel =
Design Philosophy<o:p></o:p></span></p></div></div><p class=3DMsoNormal =
align=3Dleft style=3D'text-align:left'><span =
lang=3DEN-US><o:p>&nbsp;</o:p></span></p><div><p><span lang=3DEN-US =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'>=
Hi Aijun,<o:p></o:p></span></p><p><span lang=3DEN-US =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'>=
I think your tunnel philosophy is reasonable. But there may be =
challenges in the real implemention to support the philosophy. The =
challenges are as follows:<o:p></o:p></span></p><p><span lang=3DEN-US =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'>=
1. There are too many types of IP tunnels such as IPv6/IPv4 over IPv4 =
tunnel, GRE Tunnel, IPSec/IKE Tunnel,&nbsp;L2TP Tunnel,etc. And now NVO3 =
work proposes <o:p></o:p></span></p><p><span lang=3DEN-US =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'>=
more IP tunnel types such as VXLAN Tunnel, NVGRE, GPE, MPLS in UDP, =
etc.&nbsp; Though these IP tunnels may share common aspects, they may =
have essentially <o:p></o:p></span></p><p><span lang=3DEN-US =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'>=
different usages which is does matter. <o:p></o:p></span></p><p><span =
lang=3DEN-US =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'>=
2. Different IP tunnels may need more pre-configuration and operational =
data which are different from each other which is difficult to be =
accommodated in the <o:p></o:p></span></p><p><span lang=3DEN-US =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'>=
module. But when configure these tunnels, these pre-configuration has to =
be provided firstly. So the tunnel common modules has to intereract with =
other tunnel<o:p></o:p></span></p><p><span lang=3DEN-US =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'>=
implementation modules.<o:p></o:p></span></p><p><span lang=3DEN-US =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'>=
3. Common Tunnel modules may need more interaction with modules =
implementing different types of modules. The complexity may increase as =
the number of <o:p></o:p></span></p><p><span lang=3DEN-US =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'>=
tunnel types. It may need very smart people to understand all possible =
types of IP tunnels for implementation of the tunnel modules.<br>4. All =
these IP tunnel types do not emerge all at once. Even the possible =
common attributes shown in your your models did not emerge at the =
beginning. So it is<o:p></o:p></span></p><p><span lang=3DEN-US =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'>=
very difficult to change the existing implementation to abstact the =
possible tunnel common modules. <o:p></o:p></span></p><p><span =
lang=3DEN-US =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'>=
In fact we have ever tried your method at the beginning and at last we =
gave up since nobody could take the challenging =
work.<o:p></o:p></span></p><p><span lang=3DEN-US =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'>=
&nbsp;<o:p></o:p></span></p><p><span lang=3DEN-US =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'>=
Best Regards,<o:p></o:p></span></p><p><span lang=3DEN-US =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'>=
Zhenbin(Robin)<o:p></o:p></span></p><p><span lang=3DEN-US =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'>=
&nbsp;<o:p></o:p></span></p><p><span lang=3DEN-US =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'>=
&nbsp;<o:p></o:p></span></p><p><span lang=3DEN-US =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'>=
&nbsp;<o:p></o:p></span></p><p><span lang=3DEN-US =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'>=
&nbsp;<o:p></o:p></span></p><p><span lang=3DEN-US =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'>=
&nbsp;<o:p></o:p></span></p><p><span lang=3DEN-US =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'>=
&nbsp;<o:p></o:p></span></p><p><span lang=3DEN-US =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'>=
&nbsp;<o:p></o:p></span></p><p><span lang=3DEN-US =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'>=
&nbsp;<o:p></o:p></span></p><p><span lang=3DEN-US =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'>=
&nbsp;<o:p></o:p></span></p><p><span lang=3DEN-US =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'>=
&nbsp;<o:p></o:p></span></p><div><div class=3DMsoNormal align=3Dcenter =
style=3D'text-align:center'><span lang=3DEN-US =
style=3D'font-size:12.0pt;font-family:"Times New =
Roman","serif";color:black'><hr size=3D2 width=3D"100%" =
align=3Dcenter></span></div><div id=3DdivRpF346553><p class=3DMsoNormal =
align=3Dleft style=3D'margin-bottom:12.0pt;text-align:left'><b><span =
style=3D'font-size:10.0pt;font-family:=CB=CE=CC=E5;color:black'>=B7=A2=BC=
=FE=C8=CB</span></b><b><span lang=3DEN-US =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'>=
:</span></b><span lang=3DEN-US =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'>=
 rtgwg [rtgwg-bounces@ietf.org] </span><span =
style=3D'font-size:10.0pt;font-family:=CB=CE=CC=E5;color:black'>=B4=FA=B1=
=ED</span><span lang=3DEN-US =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'>=
 Aijun Wang [wangaijun@tsinghua.org.cn]<br></span><b><span =
style=3D'font-size:10.0pt;font-family:=CB=CE=CC=E5;color:black'>=B7=A2=CB=
=CD=CA=B1=BC=E4</span></b><b><span lang=3DEN-US =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'>=
:</span></b><span lang=3DEN-US =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'>=
 2015</span><span =
style=3D'font-size:10.0pt;font-family:=CB=CE=CC=E5;color:black'>=C4=EA</s=
pan><span lang=3DEN-US =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'>=
10</span><span =
style=3D'font-size:10.0pt;font-family:=CB=CE=CC=E5;color:black'>=D4=C2</s=
pan><span lang=3DEN-US =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'>=
13</span><span =
style=3D'font-size:10.0pt;font-family:=CB=CE=CC=E5;color:black'>=C8=D5</s=
pan><span lang=3DEN-US =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'>=
 13:58<br></span><b><span =
style=3D'font-size:10.0pt;font-family:=CB=CE=CC=E5;color:black'>=CA=D5=BC=
=FE=C8=CB</span></b><b><span lang=3DEN-US =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'>=
:</span></b><span lang=3DEN-US =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'>=
 <a href=3D"mailto:rtgwg@ietf.org">rtgwg@ietf.org</a>; <a =
href=3D"mailto:netmod@ietf.org">netmod@ietf.org</a><br></span><b><span =
style=3D'font-size:10.0pt;font-family:=CB=CE=CC=E5;color:black'>=D6=F7=CC=
=E2</span></b><b><span lang=3DEN-US =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'>=
:</span></b><span lang=3DEN-US =
style=3D'font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'>=
 Tunnel Design Philosophy</span><span lang=3DEN-US =
style=3D'font-size:12.0pt;font-family:"Times New =
Roman","serif";color:black'><o:p></o:p></span></p></div><div><div><p =
class=3DMsoNormal><span lang=3DEN-US style=3D'color:black'>Hi, RTGWGer =
and NETMODer:<o:p></o:p></span></p><p class=3DMsoNormal><span =
lang=3DEN-US style=3D'color:black'>&nbsp;<o:p></o:p></span></p><p =
class=3DMsoNormal><span lang=3DEN-US style=3D'color:black'>Here I want =
to ask for advices from any expert that is familiar with the usages and =
designs of various tunnel technologies that are wide deployed within the =
network.<o:p></o:p></span></p><p class=3DMsoNormal><span lang=3DEN-US =
style=3D'color:black'>What is the principle and philosophy about the =
design of Yang Model for these tunnel =
technologies?<o:p></o:p></span></p><p class=3DMsoNormal><span =
lang=3DEN-US style=3D'color:black'>&nbsp;<o:p></o:p></span></p><p =
class=3DMsoNormal><span lang=3DEN-US style=3D'color:black'>Currently, =
there are several drafts that has touches this area, but there are some =
confusions about their designs, for example:<o:p></o:p></span></p><p =
class=3DMsoNormal><span lang=3DEN-US style=3D'color:black'>1. Can we =
organize these tunnel related-Yang models under one common =
tree?<o:p></o:p></span></p><p class=3DMsoNormal><span lang=3DEN-US =
style=3D'color:black'>2. What is the relationship between the tunnel =
related-Yang model and the interface Yang Model? =
<o:p></o:p></span></p><p class=3DMsoNormal><span lang=3DEN-US =
style=3D'color:black'>&nbsp;<o:p></o:p></span></p><p =
class=3DMsoNormal><span lang=3DEN-US style=3D'color:black'>Our opinion =
is that Yang Model is one design tool/language used to standard the =
interface between the service provider and device(Device Yang Model), =
and between the service provider and their customer(Service Yang Model), =
then the design of them should from top to down, find the general =
aspects of every model branch first and augment them with specific =
technology later. This seems more common to all the Model/Object design =
language.<o:p></o:p></span></p><p class=3DMsoNormal><span lang=3DEN-US =
style=3D'color:black'>&nbsp;<o:p></o:p></span></p><p =
class=3DMsoNormal><span lang=3DEN-US style=3D'color:black'>So, for above =
two questions, we recommend to design one general tunnel-related Yang =
model that augments from the interface Yang model, and expand to it to =
cover the various specific tunnel technologies. Doing so has the =
following benefits:<o:p></o:p></span></p><p class=3DMsoNormal><span =
lang=3DEN-US style=3D'color:black'>1. we can focus first the common =
characteristic of tunnel technology, especially the static tunnel =
technologies(dynamic tunnel for example MPLS-TE tunnel is the =
exception)<o:p></o:p></span></p><p class=3DMsoNormal><span lang=3DEN-US =
style=3D'color:black'>2. the appearance of the tunnel on router/switch =
are all one kind of interface. If it augments from the interface tunnel, =
it can inherit many variables of the interface Yang model.(several =
drafts have shown their overlapping design of these =
variables.)<o:p></o:p></span></p><p class=3DMsoNormal><span lang=3DEN-US =
style=3D'color:black'>&nbsp;<o:p></o:p></span></p><p =
class=3DMsoNormal><span lang=3DEN-US style=3D'color:black'>So, how about =
your opinion and the reason to do them?<o:p></o:p></span></p><p =
class=3DMsoNormal><span lang=3DEN-US style=3D'color:black'>Wish can hear =
more valuable suggestions on the design of the Tunnel-related Yang =
Model.<o:p></o:p></span></p><p class=3DMsoNormal><span lang=3DEN-US =
style=3D'color:black'>&nbsp;<o:p></o:p></span></p><p =
class=3DMsoNormal><span lang=3DEN-US style=3D'color:black'>Current =
available drafts about the Tunnel =A8Crelated Yang Model are =
bellows:<o:p></o:p></span></p><p class=3DMsoNormal><span lang=3DEN-US =
style=3D'color:#1F497D'>1. <a =
href=3D"https://tools.ietf.org/html/draft-ietf-l2tpext-keyed-v6-tunnel-ya=
ng-00" =
target=3D"_blank">https://tools.ietf.org/html/draft-ietf-l2tpext-keyed-v6=
-tunnel-yang-00</a></span><span lang=3DEN-US =
style=3D'color:black'><o:p></o:p></span></p><p class=3DMsoNormal><span =
lang=3DEN-US style=3D'color:#1F497D'>2.</span><span lang=3DEN-US =
style=3D'color:black'> </span><span lang=3DEN-US =
style=3D'color:#1F497D'><a =
href=3D"http://datatracker.ietf.org/doc/draft-wwz-netmod-yang-tunnel-cfg/=
" =
target=3D"_blank">http://datatracker.ietf.org/doc/draft-wwz-netmod-yang-t=
unnel-cfg/</a></span><span lang=3DEN-US =
style=3D'color:black'><o:p></o:p></span></p><p class=3DMsoNormal><span =
lang=3DEN-US style=3D'color:#1F497D'>3.</span><span lang=3DEN-US =
style=3D'color:black'> </span><span lang=3DEN-US =
style=3D'color:#1F497D'><a =
href=3D"http://datatracker.ietf.org/doc/draft-wilton-netmod-intf-vlan-yan=
g/" =
target=3D"_blank">http://datatracker.ietf.org/doc/draft-wilton-netmod-int=
f-vlan-yang/</a></span><span lang=3DEN-US =
style=3D'color:black'><o:p></o:p></span></p><p class=3DMsoNormal><span =
lang=3DEN-US style=3D'color:#1F497D'>4.</span><span lang=3DEN-US =
style=3D'color:black'> </span><span lang=3DEN-US =
style=3D'color:#1F497D'><a =
href=3D"http://datatracker.ietf.org/doc/draft-liu-rtgwg-ipipv4-tunnel-yan=
g/" =
target=3D"_blank">http://datatracker.ietf.org/doc/draft-liu-rtgwg-ipipv4-=
tunnel-yang/</a></span><span lang=3DEN-US =
style=3D'color:black'><o:p></o:p></span></p><p class=3DMsoNormal><span =
lang=3DEN-US style=3D'color:#1F497D'>5.</span><span lang=3DEN-US =
style=3D'color:black'> </span><span lang=3DEN-US =
style=3D'color:#1F497D'><a =
href=3D"http://datatracker.ietf.org/doc/draft-li-rtgwg-utunnel-yang/" =
target=3D"_blank">http://datatracker.ietf.org/doc/draft-li-rtgwg-utunnel-=
yang/</a></span><span lang=3DEN-US =
style=3D'color:black'><o:p></o:p></span></p><p class=3DMsoNormal><span =
lang=3DEN-US style=3D'color:#1F497D'>6. <a =
href=3D"https://tools.ietf.org/id/draft-ietf-teas-yang-te-00.txt" =
target=3D"_blank">https://tools.ietf.org/id/draft-ietf-teas-yang-te-00.tx=
t</a></span><span lang=3DEN-US style=3D'color:black'>( This draft is one =
exception, and seems can=A1=AFt be generalized with other five drafts) =
<o:p></o:p></span></p><p class=3DMsoNormal><span lang=3DEN-US =
style=3D'color:black'>&nbsp;<o:p></o:p></span></p><p =
class=3DMsoNormal><span lang=3DEN-US style=3D'color:black'>Best =
Regards.<o:p></o:p></span></p><p class=3DMsoNormal><span lang=3DEN-US =
style=3D'color:black'>&nbsp;<o:p></o:p></span></p><p =
class=3DMsoNormal><span lang=3DEN-US =
style=3D'color:black'>&nbsp;<o:p></o:p></span></p><p class=3DMsoNormal =
align=3Dleft style=3D'text-align:left'><span lang=3DEN-US =
style=3D'font-size:10.0pt;font-family:"Verdana","sans-serif";color:black'=
>Aijun Wang</span><span lang=3DEN-US =
style=3D'color:black'><o:p></o:p></span></p><p class=3DMsoNormal =
align=3Dleft style=3D'text-align:left'><span lang=3DEN-US =
style=3D'color:black'>&nbsp;<o:p></o:p></span></p><p class=3DMsoNormal =
align=3Dleft style=3D'text-align:left'><span lang=3DEN-US =
style=3D'font-size:10.0pt;font-family:"Verdana","sans-serif";color:black'=
>China&nbsp;Telecom&nbsp;Corporation&nbsp;Limited&nbsp;Beijing&nbsp;Resea=
rch&nbsp;Institute&nbsp;</span><span lang=3DEN-US =
style=3D'color:black'><o:p></o:p></span></p><p class=3DMsoNormal =
align=3Dleft style=3D'text-align:left'><span lang=3DEN-US =
style=3D'font-size:10.0pt;font-family:"Verdana","sans-serif";color:black'=
>Intelligent Network Product Line</span><span lang=3DEN-US =
style=3D'color:black'><o:p></o:p></span></p><p class=3DMsoNormal><span =
lang=3DEN-US style=3D'color:black'>&nbsp;<o:p></o:p></span></p><p =
class=3DMsoNormal><span lang=3DEN-US =
style=3D'color:black'>&nbsp;<o:p></o:p></span></p><p =
class=3DMsoNormal><span lang=3DEN-US =
style=3D'color:black'>&nbsp;<o:p></o:p></span></p></div></div></div></div=
></div></body></html>
------=_NextPart_000_01C7_01D1158D.EFDF5CE0--


From nobody Mon Nov  2 02:14:56 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 ADB701A1AA3 for <netmod@ietfa.amsl.com>; Mon,  2 Nov 2015 02:14:54 -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 RglCPDHqGlFd for <netmod@ietfa.amsl.com>; Mon,  2 Nov 2015 02:14:52 -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 E569A1A1AB6 for <netmod@ietf.org>; Mon,  2 Nov 2015 02:14:50 -0800 (PST)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id B46628E5; Mon,  2 Nov 2015 11:14: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 4IZETLJLgsLb; Mon,  2 Nov 2015 11:14:48 +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,  2 Nov 2015 11:14:48 +0100 (CET)
Received: from localhost (demetrius2.jacobs-university.de [212.201.44.47]) by hermes.jacobs-university.de (Postfix) with ESMTP id 3FADC2004E; Mon,  2 Nov 2015 11:14:48 +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 k0cMOiPBRABK; Mon,  2 Nov 2015 11:14:47 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id 349DE20054; Mon,  2 Nov 2015 11:14:47 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id 60EFD3875A57; Mon,  2 Nov 2015 11:14:46 +0100 (CET)
Date: Mon, 2 Nov 2015 11:14:45 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Martin Bjorklund <mbj@tail-f.com>
Message-ID: <20151102101445.GA87056@elstar.local>
Mail-Followup-To: Martin Bjorklund <mbj@tail-f.com>, netmod@ietf.org
References: <20151029091758.GB78922@elstar.local> <20151029.131756.1681194827815089398.mbj@tail-f.com> <20151101145115.GA83722@elstar.local> <20151102.090346.2294922195703162489.mbj@tail-f.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20151102.090346.2294922195703162489.mbj@tail-f.com>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/VB75rJBTet7UoT61C6wxjnvKcPY>
Cc: netmod@ietf.org
Subject: Re: [netmod] config lists without keys (Y09) / non-unique leaf-lists (Y57)
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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 02 Nov 2015 10:14:54 -0000

On Mon, Nov 02, 2015 at 09:03:46AM +0900, Martin Bjorklund wrote:
> Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote:
> > On Thu, Oct 29, 2015 at 01:17:56PM +0100, Martin Bjorklund wrote:
> > > Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote:
> > > > Hi,
> > > > 
> > > > the issues Y09 and Y57 were declared dead after intense discussions of
> > > > various solution proposals. It later appeared to me that there is a
> > > > solution that we have not considered. The requirement to have a key
> > > > for every list and unique values in a leaf-list for config nodes is
> > > > essentially there to allow edits on individual elements using
> > > > edit-config. The solution not considered so far is simply to give up
> > > > the ability to edit invidual elements, that is, a config list without
> > > > a key can only be modified as whole and similarily a leaf-list that
> > > > allows non-unique values can only be modified as a whole (with
> > > > edit-config). Comments?
> > > 
> > > How would this look in edit-config?  There are quite a few details to
> > > think through in order to support this.
> > >
> > 
> > Why would that be complicated for edit-config? This key-less list
> > would essentially be anyxml with a known structure. You likely do not
> > allow edit-config specific attributes on all of them.
> 
> For anyxml/anydata, there is a surrounding container that contains the
> "blob":
> 
>   anydata foo;
> 
>   <foo>
>     <blah>
>       <blaha>goo</blaha>
>     </blah>
>   </foo>
> 
> but with a list, the entries are encoded w/o any surrounding tag:
> 
>   list foo { ... }
> 
>   <foo>
>     // entry 1
>   </foo>
>   <foo>
>     // entry 2
>   </foo>
>

And the consequence of this is?

/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 Nov  2 06:26:58 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 BCC4F1B372C for <netmod@ietfa.amsl.com>; Mon,  2 Nov 2015 06:26:57 -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 DsLYYNSHoRhq for <netmod@ietfa.amsl.com>; Mon,  2 Nov 2015 06:26:56 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id 2971A1B373B for <netmod@ietf.org>; Mon,  2 Nov 2015 06:26:54 -0800 (PST)
Received: from localhost (dhcp-81-124.meeting.ietf94.jp [133.93.81.124]) by mail.tail-f.com (Postfix) with ESMTPSA id 5E6841AE0494; Mon,  2 Nov 2015 15:26:51 +0100 (CET)
Date: Mon, 02 Nov 2015 23:26:47 +0900 (JST)
Message-Id: <20151102.232647.1123225059592667962.mbj@tail-f.com>
To: j.schoenwaelder@jacobs-university.de
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <20151102101445.GA87056@elstar.local>
References: <20151101145115.GA83722@elstar.local> <20151102.090346.2294922195703162489.mbj@tail-f.com> <20151102101445.GA87056@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/7HLD9yNZv_FHnyz_-qARZXzTvao>
Cc: netmod@ietf.org
Subject: Re: [netmod] config lists without keys (Y09) / non-unique leaf-lists (Y57)
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 02 Nov 2015 14:26:57 -0000

Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote:
> On Mon, Nov 02, 2015 at 09:03:46AM +0900, Martin Bjorklund wrote:
> > Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote:
> > > On Thu, Oct 29, 2015 at 01:17:56PM +0100, Martin Bjorklund wrote:
> > > > Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote:
> > > > > Hi,
> > > > > 
> > > > > the issues Y09 and Y57 were declared dead after intense discussions of
> > > > > various solution proposals. It later appeared to me that there is a
> > > > > solution that we have not considered. The requirement to have a key
> > > > > for every list and unique values in a leaf-list for config nodes is
> > > > > essentially there to allow edits on individual elements using
> > > > > edit-config. The solution not considered so far is simply to give up
> > > > > the ability to edit invidual elements, that is, a config list without
> > > > > a key can only be modified as whole and similarily a leaf-list that
> > > > > allows non-unique values can only be modified as a whole (with
> > > > > edit-config). Comments?
> > > > 
> > > > How would this look in edit-config?  There are quite a few details to
> > > > think through in order to support this.
> > > >
> > > 
> > > Why would that be complicated for edit-config? This key-less list
> > > would essentially be anyxml with a known structure. You likely do not
> > > allow edit-config specific attributes on all of them.
> > 
> > For anyxml/anydata, there is a surrounding container that contains the
> > "blob":
> > 
> >   anydata foo;
> > 
> >   <foo>
> >     <blah>
> >       <blaha>goo</blaha>
> >     </blah>
> >   </foo>
> > 
> > but with a list, the entries are encoded w/o any surrounding tag:
> > 
> >   list foo { ... }
> > 
> >   <foo>
> >     // entry 1
> >   </foo>
> >   <foo>
> >     // entry 2
> >   </foo>
> >
> 
> And the consequence of this is?

I don't know how treating the entire list as one unit would work.  For
example, what would the XML to replace this list with two new entries
look like?


/martin


From nobody Mon Nov  2 09:21:44 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 515A51A0363 for <netmod@ietfa.amsl.com>; Mon,  2 Nov 2015 09:21:43 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level: 
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=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 tetS2uVF0uUD for <netmod@ietfa.amsl.com>; Mon,  2 Nov 2015 09:21:41 -0800 (PST)
Received: from mail-lb0-x230.google.com (mail-lb0-x230.google.com [IPv6:2a00:1450:4010:c04::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 562311A035F for <netmod@ietf.org>; Mon,  2 Nov 2015 09:21:41 -0800 (PST)
Received: by lbjm5 with SMTP id m5so92930871lbj.3 for <netmod@ietf.org>; Mon, 02 Nov 2015 09:21:39 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks_com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=vlVLFInfsn02InwrPm7UUWGLl1jqHgZcKQdnXURzbuc=; b=Ylit+gVNHBnGcj9sdn5wK76klcjUBFnx8KFtZ+WNY6D4NBU6e11g+lrdIsbDmPlGUJ Sp4pbkm/K2s0fngA/ABTbmAodKBWhsVgUkYsNmkDeeQdAqj4k0ae2lBjZQPNF1SosiAX +5PGBcabcVvsHcqrr1CpO2ali70DL4Ocpr4oUZRnHDBbU4Mkw1lKNC1O+heMIBqhJMml VYpPZ37uunoXpDdRtpOwt+u1ycM2NYlFhatn41nsB5De7j5rNf9XDwhsv2ImQ8gLwW8P 8hcSuiaLTnAbuQchZUBjHqg698i6cGgFIwCO45wesF7wkOSfIqjoLiQQCGEbpIZ8Psd+ QklQ==
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=vlVLFInfsn02InwrPm7UUWGLl1jqHgZcKQdnXURzbuc=; b=MQvmaXYvi0m2t9Hi3sDnmyiG6/1H3pLRHZcnDOw6s67h6sPx2UzvZEEFXNHulFUDo2 oCGTVvmNwlfx62Ye+4SaumBfcNOniB7lb2S5hQjbcbRf8XJirVBjygZjJ3Ya2SXstCX8 6SdabTymK61AtjFfy1S1Knl7ZFf2jq7p0K4zyf4nShpYp1vfSVR3r0IYzTS6w9krt1yG +9ERFzIzofjIi5wWRUEJarN4D3rYLbeASp339Sd9f7oImitqyt+SyzMcFj/oO13bLfk7 qGeTsSYqmgLQMGUIhoGuIgiSJ+3JJuZGlp844jdCZLQ5K78PcUkSDfqifRBxR5FlKVtY rdKg==
X-Gm-Message-State: ALoCoQkrWyo2F70eDXocssHMAM0fXEUsE7x1XDm4njjPgibWA0GWK3iQu0zNBAVia8g/8EYG3C5T
MIME-Version: 1.0
X-Received: by 10.112.55.97 with SMTP id r1mr329407lbp.119.1446484899484; Mon, 02 Nov 2015 09:21:39 -0800 (PST)
Received: by 10.112.144.106 with HTTP; Mon, 2 Nov 2015 09:21:39 -0800 (PST)
In-Reply-To: <BLUPR0501MB171587B76520F11C2522DA2FD42C0@BLUPR0501MB1715.namprd05.prod.outlook.com>
References: <BLUPR0501MB171587B76520F11C2522DA2FD42C0@BLUPR0501MB1715.namprd05.prod.outlook.com>
Date: Mon, 2 Nov 2015 09:21:39 -0800
Message-ID: <CABCOCHT78WpSvdUT4zLVi++5BAy8_COKtT=Ho8LQPqTn2DcqpQ@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: "Jeffrey (Zhaohui) Zhang" <zzhang@juniper.net>
Content-Type: multipart/alternative; boundary=001a11c3f16a9b71020523920281
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/bgnf4lEcyLd5pAszrcqE3I5rQkQ>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] config lists without keys (Y09) / non-unique leaf-lists (Y57)
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 02 Nov 2015 17:21:43 -0000

--001a11c3f16a9b71020523920281
Content-Type: text/plain; charset=UTF-8

On Sun, Nov 1, 2015 at 8:46 PM, Jeffrey (Zhaohui) Zhang <zzhang@juniper.net>
wrote:

> Hi,
>
> Earlier today Mach and I were asking Lada if we could have a config list
> w/o keys for our use case and he pointed us to this thread.
>
> This is exactly what we need. For some lists we don't need to operate on
> individual list members. We don't need to inject a member in front of
> another remember. All we need is to specify a list of entries, which could
> even be non-unique.
>
>

This seems like a design decision you made in your implementation,
not a decision that is inherent in the data model design.
Some simpler apps might choose to replace everything in order
to change 1 leaf, and a more complex app might choose to patch
the data and only send the leaf that needs to be changed.

bulk-only operations are more appropriate for leaf-list than list.
I could see data-model decisions to limit a leaf-list to bulk operations,
but not a list.



Andy



> For example, we may want to configure a label stack used in a nexthop. The
> same label value could be used in different positions of the stack so the
> label itself could not be used as key. Typically we'd want to specify the
> entire stack from sctrach, and if a change is needed it'd be replaced
> entirely, or at most we may add/remove a label at the top or bottom of the
> stack.
>
> With the current requirement of a key for a config list, we'd need to
> assign an artificial ID as the key for the list. That is really cumbersome
> and does not provide any value.
>
> Hope this can be accepted and supported in the tools soon.
>
> Thanks.
> Jeffrey
>
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod
>

--001a11c3f16a9b71020523920281
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Sun, Nov 1, 2015 at 8:46 PM, Jeffrey (Zhaohui) Zhang <span dir=3D"lt=
r">&lt;<a href=3D"mailto:zzhang@juniper.net" target=3D"_blank">zzhang@junip=
er.net</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">Hi,<br>
<br>
Earlier today Mach and I were asking Lada if we could have a config list w/=
o keys for our use case and he pointed us to this thread.<br>
<br>
This is exactly what we need. For some lists we don&#39;t need to operate o=
n individual list members. We don&#39;t need to inject a member in front of=
 another remember. All we need is to specify a list of entries, which could=
 even be non-unique.<br>
<br></blockquote><div><br></div><div><br></div><div>This seems like a desig=
n decision you made in your implementation,</div><div>not a decision that i=
s inherent in the data model design.</div><div>Some simpler apps might choo=
se to replace everything in order</div><div>to change 1 leaf, and a more co=
mplex app might choose to patch</div><div>the data and only send the leaf t=
hat needs to be changed.</div><div><br></div><div>bulk-only operations are =
more appropriate for leaf-list than list.</div><div>I could see data-model =
decisions to limit a leaf-list to bulk operations,</div><div>but not a list=
.</div><div><br></div><div><br></div><div><br></div><div>Andy</div><div><br=
></div><div>=C2=A0<br></div><blockquote class=3D"gmail_quote" style=3D"marg=
in:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
For example, we may want to configure a label stack used in a nexthop. The =
same label value could be used in different positions of the stack so the l=
abel itself could not be used as key. Typically we&#39;d want to specify th=
e entire stack from sctrach, and if a change is needed it&#39;d be replaced=
 entirely, or at most we may add/remove a label at the top or bottom of the=
 stack.<br>
<br>
With the current requirement of a key for a config list, we&#39;d need to a=
ssign an artificial ID as the key for the list. That is really cumbersome a=
nd does not provide any value.<br>
<br>
Hope this can be accepted and supported in the tools soon.<br>
<br>
Thanks.<br>
Jeffrey<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" rel=3D"noreferrer"=
 target=3D"_blank">https://www.ietf.org/mailman/listinfo/netmod</a><br>
</blockquote></div><br></div></div>

--001a11c3f16a9b71020523920281--


From nobody Mon Nov  2 15:14:36 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 34E2A1A9032 for <netmod@ietfa.amsl.com>; Mon,  2 Nov 2015 15:14:35 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level: 
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=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 o8ZuQmSs_t6W for <netmod@ietfa.amsl.com>; Mon,  2 Nov 2015 15:14:33 -0800 (PST)
Received: from mail-lf0-x233.google.com (mail-lf0-x233.google.com [IPv6:2a00:1450:4010:c07::233]) (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 01CD81A9031 for <netmod@ietf.org>; Mon,  2 Nov 2015 15:14:32 -0800 (PST)
Received: by lfgh9 with SMTP id h9so23796344lfg.1 for <netmod@ietf.org>; Mon, 02 Nov 2015 15:14:05 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks_com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=y5QZ471VmqFWGYOOKgIL2MhIiahdFm2nNEsm/koEkSA=; b=dxIL8+4XDjOzUaClwSMUYwOF7BUGJtqu5apnzeTQ38lvVzY+Iha/l8ZzGl7eK6x/aX kRvWAeTxNE/xXtA1Qc5vkK5QVkWnLos/X3oc6g+Dj5UiAsNiMhh8V6wLshuP9P8JjAtY wNTctVl6TuOVAjeqggZ4ofHp/bujy6oSoJSGqC+1K5uC8n75iIwIWGhQRjS98N0NJKaK 3KX0Z0GSUwP+kETmtklBdRihF1sJI+cKoxLtgl4lMDRM8Vo7oPIFP79SnIsmS1ChGyjb WKq1nsS3JCLCq95n4pmbNGKyU92cpRa10pQhPXJuqtnwpCvqHJLG1i9LqRJA/LEBMVOR 77/Q==
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=y5QZ471VmqFWGYOOKgIL2MhIiahdFm2nNEsm/koEkSA=; b=frrjPi23kUyeLuSCr1ItjigDPWrPArh38IsJP1IGcGXGSU2QlKoBNsQbksE+MOv7tc BgzJyacuj9t+FXTxciboK3WQoHrlwX0s6roZ2Fg+dookkzhOEw4VtdOFzrECRJPiiwDS UvTGjFjTypWARbChPKQ0WTXUZpOpVromTnRxZts6bVffBpyZMERGVFBFtEYfiDB5Mhey d8hc46KhZCHoVU9P5EaQUioX8Mnqr/PcwyFc96cpXYK/aucvGWxmqH10/oZr9hN4NLXZ K7UBVePhRD7DLQ26e1q3jMB7dVlx5sloL/9AKFL/WEml1/VLOVO22uyGaypU+WAL/JKk EOHA==
X-Gm-Message-State: ALoCoQnYPrvlzXLXE5I9uOT/iEYXAovtb4njhTF32eseHKwIT4gKbT1cFmw2r9FHDdzVbF+vj33i
MIME-Version: 1.0
X-Received: by 10.112.200.229 with SMTP id jv5mr11228140lbc.123.1446506045846;  Mon, 02 Nov 2015 15:14:05 -0800 (PST)
Received: by 10.112.144.106 with HTTP; Mon, 2 Nov 2015 15:14:05 -0800 (PST)
In-Reply-To: <BA97F18B-3114-4BB6-8987-E96C85EE0B2D@nic.cz>
References: <CABCOCHQPYO3t4f1JV6JtAmfvsaWFTB0BLcvd3beww_J3fjrrQw@mail.gmail.com> <AF289CC2-3654-44EC-9A41-9F87896AD8C6@nic.cz> <CABCOCHTaKzG8kSv=qMUH3MVqXcS8BKyBba-5pgD7yzBu=Zp+FQ@mail.gmail.com> <BA97F18B-3114-4BB6-8987-E96C85EE0B2D@nic.cz>
Date: Mon, 2 Nov 2015 15:14:05 -0800
Message-ID: <CABCOCHR-G6YHrj6H8AOo+=3ZzbtsTE7RZ866gck-sVUvsqXYVA@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Ladislav Lhotka <lhotka@nic.cz>
Content-Type: multipart/alternative; boundary=001a11c2665007507f052396efae
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/BDH4GW6FJkLki7ujnkZDjmkBd4M>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] if-feature and default
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 02 Nov 2015 23:14:35 -0000

--001a11c2665007507f052396efae
Content-Type: text/plain; charset=UTF-8

On Sun, Nov 1, 2015 at 4:48 PM, Ladislav Lhotka <lhotka@nic.cz> wrote:

>
> > On 02 Nov 2015, at 09:40, Andy Bierman <andy@yumaworks.com> wrote:
> >
> >
> >
> > On Sun, Nov 1, 2015 at 4:20 PM, Ladislav Lhotka <lhotka@nic.cz> wrote:
> >
> > > On 02 Nov 2015, at 02:16, Andy Bierman <andy@yumaworks.com> wrote:
> > >
> > > Hi,
> > >
> > > I started a separate thread for this issue.
> > > The current YANG 1.1 text is incomplete wrt/ default-stmt.
> > >
> > >   leaf broken {
> > >      type enumeration {
> > >         enum option1 {
> > >            if-feature option1;
> > >         }
> > >         enum option2 {
> > >            if-feature option2;
> > >         }
> > >         enum option3;
> > >      }
> > >      default "option2";
> > >    }
> > >
> > >
> > > What happens if the server does not advertise the option2 feature?
> > >
> > > I see 2 options:
> > >   (A) add text that says a default-stmt MUST NOT include any
> conditional
> > >       values
> > >   (B) allow if-feature as a sub-statement of the default-stmt
> >
> > or (C) a default statement that specifies a value that's not permitted
> is an error.
> >
> >
> > This does not say anything.
> > You mean a protocol error somehow or a compiler error?
>
> A protocol error - a server that advertises such a data model is broken. A
> similar situation can happen elsewhere - e.g. an identityref leaf specifies
> an identity as the default but the server doesn't implement the module
> where this identity is defined.
>
>

So this would be an extremely subtle way of making
a YANG feature mandatory to implement?

Given my long history of gripes about YANG Conformance
(see various versions of that draft and YANG Packages),
I am yet again not very impressed with the conformance
specification mechanisms in YANG.

IMO, (A) is most correct because a YANG module is supposed
to be written without assuming any of the optional features
are really mandatory.  I agree real-world conformance specifications
would require that, but that is not what YANG provides.



> Lada
>


Andy


>
> > Only (A) makes it a compiler error.
> >
> >
> >
> > Lada
> >
> >
> > Andy
> >
> >
> > >
> > > (BTW, customers have asked for (B), so it may be a feature and a
> bugfix)
> > >
> > >
> > > 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
>
>
>
>
>

--001a11c2665007507f052396efae
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Sun, Nov 1, 2015 at 4:48 PM, Ladislav Lhotka <span dir=3D"ltr">&lt;<=
a href=3D"mailto:lhotka@nic.cz" target=3D"_blank">lhotka@nic.cz</a>&gt;</sp=
an> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;=
border-left:1px #ccc solid;padding-left:1ex"><br>
&gt; On 02 Nov 2015, at 09:40, Andy Bierman &lt;<a href=3D"mailto:andy@yuma=
works.com">andy@yumaworks.com</a>&gt; wrote:<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; On Sun, Nov 1, 2015 at 4:20 PM, Ladislav Lhotka &lt;<a href=3D"mailto:=
lhotka@nic.cz">lhotka@nic.cz</a>&gt; wrote:<br>
&gt;<br>
&gt; &gt; On 02 Nov 2015, at 02:16, Andy Bierman &lt;<a href=3D"mailto:andy=
@yumaworks.com">andy@yumaworks.com</a>&gt; wrote:<br>
&gt; &gt;<br>
&gt; &gt; Hi,<br>
&gt; &gt;<br>
&gt; &gt; I started a separate thread for this issue.<br>
&gt; &gt; The current YANG 1.1 text is incomplete wrt/ default-stmt.<br>
&gt; &gt;<br>
&gt; &gt;=C2=A0 =C2=A0leaf broken {<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 type enumeration {<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0enum option1 {<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 if-feature option1;<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0enum option2 {<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 if-feature option2;<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0enum option3;<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 }<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 default &quot;option2&quot;;<br>
&gt; &gt;=C2=A0 =C2=A0 }<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; What happens if the server does not advertise the option2 feature=
?<br>
&gt; &gt;<br>
&gt; &gt; I see 2 options:<br>
&gt; &gt;=C2=A0 =C2=A0(A) add text that says a default-stmt MUST NOT includ=
e any conditional<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0values<br>
&gt; &gt;=C2=A0 =C2=A0(B) allow if-feature as a sub-statement of the defaul=
t-stmt<br>
&gt;<br>
&gt; or (C) a default statement that specifies a value that&#39;s not permi=
tted is an error.<br>
&gt;<br>
&gt;<br>
&gt; This does not say anything.<br>
&gt; You mean a protocol error somehow or a compiler error?<br>
<br>
A protocol error - a server that advertises such a data model is broken. A =
similar situation can happen elsewhere - e.g. an identityref leaf specifies=
 an identity as the default but the server doesn&#39;t implement the module=
 where this identity is defined.<br>
<br></blockquote><div><br></div><div><br></div><div>So this would be an ext=
remely subtle way of making</div><div>a YANG feature mandatory to implement=
?</div><div><br></div><div>Given my long history of gripes about YANG Confo=
rmance</div><div>(see various versions of that draft and YANG Packages),</d=
iv><div>I am yet again not very impressed with the conformance</div><div>sp=
ecification mechanisms in YANG.</div><div><br></div><div>IMO, (A) is most c=
orrect because a YANG module is supposed</div><div>to be written without as=
suming any of the optional features</div><div>are really mandatory.=C2=A0 I=
 agree real-world conformance specifications</div><div>would require that, =
but that is not what YANG provides.</div><div><br></div><div>=C2=A0</div><b=
lockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px =
#ccc solid;padding-left:1ex">
Lada<br></blockquote><div><br></div><div><br></div><div>Andy</div><div>=C2=
=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;borde=
r-left:1px #ccc solid;padding-left:1ex">
<br>
&gt; Only (A) makes it a compiler error.<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; Lada<br>
&gt;<br>
&gt;<br>
&gt; Andy<br>
&gt;<br>
&gt;<br>
&gt; &gt;<br>
&gt; &gt; (BTW, customers have asked for (B), so it may be a feature and a =
bugfix)<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; Andy<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; _______________________________________________<br>
&gt; &gt; netmod mailing list<br>
&gt; &gt; <a href=3D"mailto:netmod@ietf.org">netmod@ietf.org</a><br>
&gt; &gt; <a href=3D"https://www.ietf.org/mailman/listinfo/netmod" rel=3D"n=
oreferrer" target=3D"_blank">https://www.ietf.org/mailman/listinfo/netmod</=
a><br>
&gt;<br>
&gt; --<br>
&gt; Ladislav Lhotka, CZ.NIC Labs<br>
&gt; PGP Key ID: E74E8C0C<br>
<br>
--<br>
Ladislav Lhotka, CZ.NIC Labs<br>
PGP Key ID: E74E8C0C<br>
<br>
<br>
<br>
<br>
</blockquote></div><br></div></div>

--001a11c2665007507f052396efae--


From nobody Mon Nov  2 21:40:29 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 981E41AD1FE for <netmod@ietfa.amsl.com>; Mon,  2 Nov 2015 21:40:21 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level: 
X-Spam-Status: No, score=-2.7 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_LOW=-0.7] 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 sTKv2wJBmL1h for <netmod@ietfa.amsl.com>; Mon,  2 Nov 2015 21:40:14 -0800 (PST)
Received: from elasmtp-masked.atl.sa.earthlink.net (elasmtp-masked.atl.sa.earthlink.net [209.86.89.68]) by ietfa.amsl.com (Postfix) with ESMTP id 7A1001AD1A3 for <netmod@ietf.org>; Mon,  2 Nov 2015 21:40:05 -0800 (PST)
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=dk20050327; d=mindspring.com; b=cdvw8g+EvgH3TssYzipReXwCZbW7CwHJ+KQk+9GcDdUVYlHnfY1d/TNCtmtbk9T9; 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.36] (helo=elwamui-hybrid.atl.sa.earthlink.net) by elasmtp-masked.atl.sa.earthlink.net with esmtpa (Exim 4.67) (envelope-from <randy_presuhn@mindspring.com>) id 1ZtUK8-0004Eg-Rp for netmod@ietf.org; Tue, 03 Nov 2015 00:40:00 -0500
Received: from 76.254.48.99 by webmail.earthlink.net with HTTP; Tue, 3 Nov 2015 00:40:00 -0500
Message-ID: <22785841.1446529200851.JavaMail.root@elwamui-hybrid.atl.sa.earthlink.net>
Date: Mon, 2 Nov 2015 21:40:00 -0800 (GMT-08: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: 7bit
X-Mailer: EarthLink Zoo Mail 1.0
X-ELNK-Trace: 4488c18417c9426da92b9037bc8bcf44d4c20f6b8d69d88874d3f0892ff6d3ed71c1300f2612d9658d2e1aa186f1f7d5350badd9bab72f9c350badd9bab72f9c
X-Originating-IP: 209.86.224.36
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/B2nUy7ODBaugbNRtyo36sNOM9ds>
Subject: Re: [netmod] leaf-list uniqueness requirement for non-config nodes
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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 03 Nov 2015 05:40:21 -0000

Hi -

>From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
>Sent: Oct 29, 2015 1:06 AM
>To: netmod@ietf.org
>Subject: [netmod] leaf-list uniqueness requirement for non-config nodes
>
>Hi,
>
>RFC 6020 say:
>
>   The values in a leaf-list MUST be unique.
>
>While this may have a justification for config true nodes (to allow
>modifications of individual elements using edit-config), this
>constraint does not seem to make much sense for non-config nodes.
>
>Note that YANG requires keys for lists for config nodes (to allow
>modifications of individual elements using edit-config) but it does
>not requires keys or uniqueness for for lists for non-config nodes.
>
>In order to be consistent, I think the above requirement should be
>changed to this:
>
>   The values in a leaf-list MUST be unique if the nodes represent
>   configuration.

How would this affect a model needing a leafref to the information?

Randy


From nobody Mon Nov  2 23:23:45 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 5F7851A002F for <netmod@ietfa.amsl.com>; Mon,  2 Nov 2015 23:23:44 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.911
X-Spam-Level: 
X-Spam-Status: No, score=-6.911 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, 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 lBIWHtPjQ9oa for <netmod@ietfa.amsl.com>; Mon,  2 Nov 2015 23:23:43 -0800 (PST)
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 0DD421A0045 for <netmod@ietf.org>; Mon,  2 Nov 2015 23:23:42 -0800 (PST)
Received: from us70tusmtp1.zam.alcatel-lucent.com (unknown [135.5.2.63]) by Websense Email Security Gateway with ESMTPS id 1FCE167CC4399 for <netmod@ietf.org>; Tue,  3 Nov 2015 07:23:39 +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 tA37NdHZ024894 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL) for <netmod@ietf.org>; Tue, 3 Nov 2015 07:23:39 GMT
Received: from US70TWXCHMBA11.zam.alcatel-lucent.com ([169.254.5.182]) by US70UWXCHHUB02.zam.alcatel-lucent.com ([135.5.2.49]) with mapi id 14.03.0195.001; Tue, 3 Nov 2015 02:23:39 -0500
From: "Sterne, Jason (Jason)" <jason.sterne@alcatel-lucent.com>
To: "netmod@ietf.org" <netmod@ietf.org>
Thread-Topic: netmod-opstate-reqs and error option terms (rollback on error)
Thread-Index: AdEWCI576Z4F9VUmSau1fNP3h4T3aA==
Date: Tue, 3 Nov 2015 07:23:38 +0000
Message-ID: <A125E53CE190A749957C19483DC79F9F5CB541E6@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/QrGpNWmewIbx8zHpE6YGl-JHxOk>
Subject: [netmod] netmod-opstate-reqs and error option terms (rollback on 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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 03 Nov 2015 07:23:44 -0000

Hi all,

The term "rollback on error" (and other error options) has been used during=
 these discussions around the opstate requirements.

That term already has some meaning in RFC6241 (or at least rollback-on-erro=
r does and that is pretty close) and IMO it (today) has nothing to do with =
"applied" config.  It is an error option that has the scope of the contents=
 of a single edit-config request and how those contents get applied (all or=
 nothing) to the candidate DS (which is neither intended nor applied config=
) or to the running DS (intended) if the <target> is <running/>.

I think we need to clarify this "all or nothing" concept and how it is rela=
ted to "applied" config.  We may also want to use slightly different termin=
ology so we don't get confused with today's meaning of rollback-on-error.

There are a few transitions to consider when editing a config and applying =
it to a device (I'll give the example of using the candidate DS):
(A) config changes   ---> candidate DS   (<edit-config>)
(B) candidate DS  ----> running (intended)  (<commit>)
(C) intended ----> applied  (internal processed in the device)

Today rollback-on-error is only applicable to transition (A).

Transition (B) does have all-or-nothing properties (as described in RFC6241=
) but that isn't related to "rollback-on-error".

Is there some intention in the opstate requirements to add some sort of all=
-or-nothing behavior to transition (C) ?  i.e. if some part of an edit fail=
s during the transition from intended->applied we should "rollback" the oth=
er parts that may have already been applied ?

Would we then remove it all from intended as well ?

I'm not sure how that would work for an async/hybrid (read "real") system. =
 We've already done an "ack" back to the client before transition (C) so th=
e client may have already sent some additional new config that depends on t=
he previous edit.  That would mean that new config isn't valid.

Jason


From nobody Mon Nov  2 23:34:51 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 24FB21A0181 for <netmod@ietfa.amsl.com>; Mon,  2 Nov 2015 23:34:41 -0800 (PST)
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, 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 9M3vs6ZTElcS for <netmod@ietfa.amsl.com>; Mon,  2 Nov 2015 23:34:29 -0800 (PST)
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 9491F1A0103 for <netmod@ietf.org>; Mon,  2 Nov 2015 23:34:28 -0800 (PST)
Received: from us70tusmtp2.zam.alcatel-lucent.com (unknown [135.5.2.64]) by Websense Email Security Gateway with ESMTPS id 70F3D40BC3533 for <netmod@ietf.org>; Tue,  3 Nov 2015 07:34:24 +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 tA37YMF8015371 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL) for <netmod@ietf.org>; Tue, 3 Nov 2015 07:34:23 GMT
Received: from US70TWXCHMBA11.zam.alcatel-lucent.com ([169.254.5.182]) by US70UWXCHHUB02.zam.alcatel-lucent.com ([135.5.2.49]) with mapi id 14.03.0195.001; Tue, 3 Nov 2015 02:34:22 -0500
From: "Sterne, Jason (Jason)" <jason.sterne@alcatel-lucent.com>
To: "netmod@ietf.org" <netmod@ietf.org>
Thread-Topic: [netmod] opstate-reqs #3: Is there a requirement for asynchronous systems to provide a blocking config update?
Thread-Index: AQHQ9T+RQ8yGc7JN/0i9oUnVbQsvDp5ImdcAgAAc8CeAAAPdAIAACyiAgAAR+4CAARDuAIAAC6kAgAezuICAGeDcgIAARaqAgADf/wCAAALfgIABe+iAgAAC+4CAAAzWgP//yt8AgABxHgCAAAiu5IAAGrQAgAP24QCAAFSCAIAAL0yAgBJBTWA=
Date: Tue, 3 Nov 2015 07:34:22 +0000
Message-ID: <A125E53CE190A749957C19483DC79F9F5CB54224@US70TWXCHMBA11.zam.alcatel-lucent.com>
References: <D245578A.E731C%kwatsen@juniper.net> <D2455B4C.E7330%kwatsen@juniper.net> <5620E9B3.60009@cisco.com> <20151016.142315.2294973158906063871.mbj@tail-f.com> <5620F6F7.60603@cisco.com> <D2467812.E744C%kwatsen@juniper.net> <5621294A.6040107@cisco.com> <E895B81C-884C-49E9-B7A3-60C4118818C5@juniper.net> <562146F8.4020503@cisco.com> <EE5410BC-59F3-400F-A318-AE6E2165D1B5@juniper.net> <5624E134.1060007@cisco.com> <D24AB1D5.74B6%ggrammel@juniper.net>
In-Reply-To: <D24AB1D5.74B6%ggrammel@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: multipart/alternative; boundary="_000_A125E53CE190A749957C19483DC79F9F5CB54224US70TWXCHMBA11z_"
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/gDjRHOP4uHlkzehdJtXwL7tV_M4>
Subject: Re: [netmod] opstate-reqs #3: Is there a requirement for asynchronous systems to provide a blocking config update?
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 03 Nov 2015 07:34:41 -0000

--_000_A125E53CE190A749957C19483DC79F9F5CB54224US70TWXCHMBA11z_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hi all,

There is some discussion below about the difference between perfectly async=
 (reply to the <commit> as soon as possible) vs hybrid.

Isn't there some value in being hybrid if the additional delay to reply is =
reasonably bounded (i.e. less than a few seconds 95% of the time) while add=
ing some valuable additional checks (e.g. resource checking or other prelim=
 checking in the application layer)  ?   It is easier for a client to deal =
with a request failure via an error response than to find out later that so=
mething failed (and that failure indication may not always be easy to corre=
late with a specific request or workflow in the client).

Being hybrid means that more error cases are indicated via a response rathe=
r than communicated using an asynchronous notification later.

Of course no system is going to be perfectly synchronous so clients do have=
 to be able to deal with async failure notifications after-the-fact.

Jason

From: netmod [mailto:netmod-bounces@ietf.org] On Behalf Of Gert Grammel
Sent: Monday, October 19, 2015 9:15
To: Robert Wilton
Cc: netmod@ietf.org<mailto:netmod@ietf.org>
Subject: Re: [netmod] opstate-reqs #3: Is there a requirement for asynchron=
ous systems to provide a blocking config update?

Hi Rob,

From: Robert Wilton <rwilton@cisco.com<mailto:rwilton@cisco.com>>
Date: Monday 19 October 2015 14:25
To: Gert Grammel <ggrammel@juniper.net<mailto:ggrammel@juniper.net>>
Cc: Kent Watsen <kwatsen@juniper.net<mailto:kwatsen@juniper.net>>, Martin B=
jorklund <mbj@tail-f.com<mailto:mbj@tail-f.com>>, "netmod@ietf.org<mailto:n=
etmod@ietf.org>" <netmod@ietf.org<mailto:netmod@ietf.org>>
Subject: Re: [netmod] opstate-reqs #3: Is there a requirement for asynchron=
ous systems to provide a blocking config update?

Hi Gert,

On 19/10/2015 09:06, Gert Grammel wrote:
Rob,

I think we are describing the same problem from a little different perspect=
ive:
Perhaps, but I'm not sure that we are on the same page yet.
Didn't claim that we'd be on the same page, but at least we appear to look =
at the same problem.

Sent from my Apple ][

On 16 Oct 2015, at 20:50, Robert Wilton <rwilton@cisco.com<mailto:rwilton@c=
isco.com>> wrote:

Hi Gert,

On 16/10/2015 18:14, Gert Grammel wrote:
Rob,

Current implementations are incomplete asynchronous, because they didn't ve=
rify the config as operational and applied.

What is frequently done is to perform additional checks on the intended con=
fig that go beyond a syntax check. That is fine, but I have a hard time to =
consider this to be "hybrid" which suggests something in between asynchrono=
us and synchronous.
I'm talking about netconf servers that effectively apply most of their conf=
iguration before they reply.  E.g. they might take 10 minutes to reply.

Exactly, that's why those servers are running asynchronously. The trouble i=
s that in contrast to the synchronous operation there is no "done" informat=
ion. Current implementations often try to work around that point by applyin=
g more than just a syntax check in the first phase. This way they are still=
 quick in replying are more reliably responding, but still fail from time t=
o time
I don't follow why you think that these servers are running
asynchronously.  They are much closer to handling all config operations
as synchronous blocking calls.  This is a just a small amount of
programming that is being performed asynchronously.

If a configuration would only take some second or so, everyone would probab=
ly be happy to apply synchronous config. Asynchronous config come in, when =
the server would need a long time to apply the config or if the time is unp=
redictable. So when we talk about a config that needs 10 min to be applied,=
 I would consider a synchronous configuration the wrong design choice to st=
art with. A server should reply shortly after receiving the intended config=
 to indicate that they are accepting the config and after e.g. 9:59 minutes=
 come back with an information that the config has successfully been applie=
d. If you mix both information into one you either create a black hole in t=
he beginning of the process (request an intended config and getting feedbac=
k 10min after) or you end up with a grey hole in the end where you know the=
 server is working on it but have no idea when it has finished, so that you=
 can reasonably expect an operational state in line with your config.


Perhaps this isn't a valid Netconf implementation, and all Netconf server i=
mplementations are expected to be asynchronous w.r.t to when they apply the=
ir configuration - but I can't see where this is stated in the NETCONF RFC =
(but possibly I'm not looking in the right place).


>From a client perspective an asynchronous server and a hybrid server look =
the same. The difference is that the asynchronous one should convey a "fini=
shed" information to the client, while the hybrid would remain in a "trust =
me babe" mode forever.
Yes, but this isn't the only difference:
- a client could expect that an asynchronous config operation response shou=
ld be reasonably expedient.
Agree, but this is true for hybrid and asynchronous and the term "reasonabl=
e" is not well defined.
This is true for asynchronous but not hybrid, since a hybrid operation
might return just before a proper synchronous operation would.

What is the level of information the client has before and after this 'retu=
rn'? Before the return, it doesn't know if the config is being processed, a=
nd after the return it doesn't know if it has been applied. Just like async=
hronous.



   E.g. if a client was to update 10 devices each with a reasonable size co=
nfiguration (that takes minutes to apply) in an asynchronous way then it mi=
ght reasonably consider sequencing the async config requests to each server=
 on one thread.  If each server acknowledged the requests in a couple of se=
conds then all the servers would broadly end up applying the configuration =
concurrently.
Yes, that's why we need asynchronous mode in the first place.
- however, if the servers were hybrid, and their replies were sent much clo=
ser to when the configuration was actually applied then initiating the requ=
ests sequentially would effectively mean that the devices end up applying t=
he configuration serially which would end up taking much longer.  I.e. it s=
eems reasonable that a client may want to differentiate between the behavio=
ur of these two servers even if how it handles the resultant config changes=
 is the same.
It seems your definition of hybrid is something like "asynchronous but with=
 a longer than reasonable response time".
My definition of hybrid (i.e. the default existing netconf config
operations) is along the lines of "asynchronous in behaviour, but may
reply any time between when the intended configuration has been updated
and the applied configuration has been completely updated ".

Understand, but the information available to the client is just the same as=
 for asynchronous: before responding, the client doesn't know if the config=
 is being processed, and after the response it doesn't know if it has been =
applied. The only difference is that in a proper asynchronous implementatio=
n the time between a config request and response is short, while the time b=
etween response and applied config is long. Hybrid tends to move the respon=
se time out. I don't see how in principle it is different from asynchronous=
.


This is similar to a bloated synchronous operation which takes too much tim=
e to respond.  Both cases are undesired and in both cases the solution is t=
o make them truly asynchronous. So that we can have a reasonable response t=
ime.
I agree with the goal, but it may be difficult to change some existing
NETCONF operational handling to be either strictly sync or async.

Please help me  to understand what you mean with "strictly sync or async". =
And in particular why a hybrid (according to your definition) is not asynch=
.



Another way to look at hybrids is to consider them "cheating synchronous". =
Given that the new config may not have been applied at the time of the resp=
onse to the client. This is worse than the situation before where a missing=
 verify lets the client know that something may still go on. Clients can't =
tell if servers are cheating :-)
Yes, but clients also need to be able to determine if the server is likely =
to be slow to response, because then the client would probably be designed =
to interact with the server in a different fashion (e.g. use a pool of thre=
ads to initiate the updates concurrently).
How would you do this in practice?
Roughly, I would suggest:

Assuming that this is going to be a new optional to implement extension:
  - There would be a capability to indicate whether a server supports an
explicit sync config operation.
  - There would be a capability to indicate whether a server supports an
explicit async config operation.
  - It would be implicitly assumed that the server would support the
existing default config operation.

In Netconf/Restconf when an edit-config request is made, an extension
would include an option to indicate whether the request should be
processed as sync, async, or default (i.e. existing behaviour).

How would that help the client to figure out how slow the response is likel=
y to be? The fact that a request is synch, asynch or hybrid wouldn't tell h=
im how fast it is.

Thanks

Gert

Thanks,
Rob


   Even servers don't know if they're likely to slow a response when they g=
et a request. That's why a quick first response is required that assures th=
e client the requests will be processed, followed by a potentially slow fee=
dback that it is successfully executed (=3Dverified) or failed.
Thanks,
Rob


Gert



Sent from my Apple ][

On 16 Oct 2015, at 18:44, Robert Wilton <rwilton@cisco.com<mailto:rwilton@c=
isco.com>> wrote:



On 16/10/2015 14:59, Kent Watsen wrote:

      3.  Support for both synchronous and asynchronous configuration
          operations

          A. A server may choose to support only synchronous
configuration
             operations, or only asynchronous configuration operations,
or
             both synchronous and asynchronous configuration operations
in
             a client specified per-operation basis.
I think the most common mode *today* is a mix of sync/async, on a
per-object basis.
Yes, I agree.
Wait, I think we're talking about different things.  Martin, I'm sure that
internal to a NC/RC server, parts of the intended configuration is
actually applied synchronously (e.g., a hostname) whereas other parts are
not (e.g., config for data plane).   But that nuance is not currently
exposed in any way today -right?
I think that today, from what a client sees/experiences, many replies from =
netconf servers fits neither the definition of "synchronous configuration o=
peration" nor "asynchronous configuration operation", but instead, the repl=
y is somewhere between the two extremes.

So the question I was trying to raise is whether servers that need to meet =
the opstate requirements have to change to strictly comply with the defined=
 async or sync config operation semantics?  E.g. not just adding a "done-ap=
plying" option, but perhaps also adding something along the lines of a "don=
e-verifying" option.

Thanks,
Rob


What we're talking about here is an ability for a client to request a
protocol operation (PATCH) to block, or for the "done-applying"
notification to not be sent, until all that processing of the request is
complete.  This regardless if the request contains a mix of nodes that are
applied internally sync/async.  Makes sense? - or it is something else?


          B. Support for synchronous operations as per the definition of
             "synchronous configuration operation".
Doesn't this follow from A?
Yes, possibly.  I don't mind if B is deleted.  If we do this then I
would suggest that we also delete the analogous first sentence of C, and
re-introduce the "(see terms)" text in the headline description.
+1


Kent  // as a contributor


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




--_000_A125E53CE190A749957C19483DC79F9F5CB54224US70TWXCHMBA11z_
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 12 (filtered medium)">
<style><!--
/* Font Definitions */
@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;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:"Times New Roman","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.MsoAcetate, li.MsoAcetate, div.MsoAcetate
	{mso-style-priority:99;
	mso-style-link:"Balloon Text Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:8.0pt;
	font-family:"Tahoma","sans-serif";}
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:12.0pt;
	font-family:"Times New Roman","serif";}
span.BalloonTextChar
	{mso-style-name:"Balloon Text Char";
	mso-style-priority:99;
	mso-style-link:"Balloon Text";
	font-family:"Tahoma","sans-serif";}
span.EmailStyle20
	{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:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
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 lang=3D"EN-US" link=3D"blue" vlink=3D"purple">
<div class=3D"WordSection1">
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D">Hi all,<o:p></o:p></span>=
</p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D"><o:p>&nbsp;</o:p></span><=
/p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D">There is some discussion =
below about the difference between perfectly async (reply to the &lt;commit=
&gt; as soon as possible) vs hybrid.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D"><o:p>&nbsp;</o:p></span><=
/p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D">Isn&#8217;t there some va=
lue in being hybrid if the additional delay to reply is reasonably bounded =
(i.e. less than a few seconds 95% of the time) while adding some
 valuable additional checks (e.g. resource checking or other prelim checkin=
g in the application layer)&nbsp; ?&nbsp;&nbsp; It is easier for a client t=
o deal with a request failure via an error response than to find out later =
that something failed (and that failure indication
 may not always be easy to correlate with a specific request or workflow in=
 the client).<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D"><o:p>&nbsp;</o:p></span><=
/p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D">Being hybrid means that m=
ore error cases are indicated via a response rather than communicated using=
 an asynchronous notification later.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D"><o:p>&nbsp;</o:p></span><=
/p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D">Of course no system is go=
ing to be perfectly synchronous so clients do have to be able to deal with =
async failure notifications after-the-fact.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D"><o:p>&nbsp;</o:p></span><=
/p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D">Jason<o:p></o:p></span></=
p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D"><o:p>&nbsp;</o:p></span><=
/p>
<div>
<div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b><span style=3D"font-size:10.0pt;font-family:&quot=
;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span style=3D"font-s=
ize:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;"> netmod [=
<a href=3D"mailto:netmod-bounces@ietf.org">mailto:netmod-bounces@ietf.org</=
a>]
<b>On Behalf Of </b>Gert Grammel<br>
<b>Sent:</b> Monday, October 19, 2015 9:15<br>
<b>To:</b> Robert Wilton<br>
<b>Cc:</b> <a href=3D"mailto:netmod@ietf.org">netmod@ietf.org</a><br>
<b>Subject:</b> Re: [netmod] opstate-reqs #3: Is there a requirement for as=
ynchronous systems to provide a blocking config update?<o:p></o:p></span></=
p>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Hi Rob,<o:p></o:p></span></=
p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in =
0in 0in">
<p class=3D"MsoNormal"><b><span style=3D"font-size:11.0pt;font-family:&quot=
;Calibri&quot;,&quot;sans-serif&quot;;color:black">From:
</span></b><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,=
&quot;sans-serif&quot;;color:black">Robert Wilton &lt;<a href=3D"mailto:rwi=
lton@cisco.com">rwilton@cisco.com</a>&gt;<br>
<b>Date: </b>Monday 19 October 2015 14:25<br>
<b>To: </b>Gert Grammel &lt;<a href=3D"mailto:ggrammel@juniper.net">ggramme=
l@juniper.net</a>&gt;<br>
<b>Cc: </b>Kent Watsen &lt;<a href=3D"mailto:kwatsen@juniper.net">kwatsen@j=
uniper.net</a>&gt;, Martin Bjorklund &lt;<a href=3D"mailto:mbj@tail-f.com">=
mbj@tail-f.com</a>&gt;, &quot;<a href=3D"mailto:netmod@ietf.org">netmod@iet=
f.org</a>&quot; &lt;<a href=3D"mailto:netmod@ietf.org">netmod@ietf.org</a>&=
gt;<br>
<b>Subject: </b>Re: [netmod] opstate-reqs #3: Is there a requirement for as=
ynchronous systems to provide a blocking config update?<o:p></o:p></span></=
p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Hi Gert,<o:p></o:p></span><=
/p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">On 19/10/2015 09:06, Gert G=
rammel wrote:<o:p></o:p></span></p>
</div>
<blockquote style=3D"border:none;border-left:solid #B5C4DF 4.5pt;padding:0i=
n 0in 0in 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0in;margin=
-bottom:5.0pt" id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Rob,<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">I think we are describing t=
he same problem from a little different perspective:<o:p></o:p></span></p>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Perhaps, but I'm not sure t=
hat we are on the same page yet.<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Didn&#8217;t claim that we&=
#8217;d be on the same page, but at least we appear to look at the same pro=
blem.<o:p></o:p></span></p>
</div>
<blockquote style=3D"border:none;border-left:solid #B5C4DF 4.5pt;padding:0i=
n 0in 0in 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0in;margin=
-bottom:5.0pt" id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Sent from my Apple ][<o:p><=
/o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<blockquote style=3D"border:none;border-left:solid #B5C4DF 4.5pt;padding:0i=
n 0in 0in 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0in;margin=
-bottom:5.0pt" id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">On 16 Oct 2015, at 20:50, R=
obert Wilton &lt;<a href=3D"mailto:rwilton@cisco.com">rwilton@cisco.com</a>=
&gt; wrote:<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Hi Gert,<o:p></o:p></span><=
/p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<blockquote style=3D"border:none;border-left:solid #B5C4DF 4.5pt;padding:0i=
n 0in 0in 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0in;margin=
-bottom:5.0pt" id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">On 16/10/2015 18:14, Gert G=
rammel wrote:<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Rob,<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Current implementations are=
 incomplete asynchronous, because they didn't verify the config as operatio=
nal and applied.<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">What is frequently done is =
to perform additional checks on the intended config that go beyond a syntax=
 check. That is fine, but I have a hard time to consider
 this to be &quot;hybrid&quot; which suggests something in between asynchro=
nous and synchronous.<o:p></o:p></span></p>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">I'm talking about netconf s=
ervers that effectively apply most of their configuration before they reply=
.&nbsp;&nbsp;E.g. they might take 10 minutes to reply.<o:p></o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Exactly, that's why those s=
ervers are running asynchronously. The trouble is that in contrast to the s=
ynchronous operation there is no &quot;done&quot; information. Current
 implementations often try to work around that point by applying more than =
just a syntax check in the first phase. This way they are still quick in re=
plying are more reliably responding, but still fail from time to time<o:p><=
/o:p></span></p>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">I don't follow why you thin=
k that these servers are running
<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">asynchronously.&nbsp;&nbsp;=
They are much closer to handling all config operations
<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">as synchronous blocking cal=
ls.&nbsp;&nbsp;This is a just a small amount of
<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">programming that is being p=
erformed asynchronously.<o:p></o:p></span></p>
</div>
</div>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">If a configuration would on=
ly take some second or so, everyone would probably be happy to apply synchr=
onous config. Asynchronous config come in, when the server
 would need a long time to apply the config or if the time is unpredictable=
. So when we talk about a config that needs 10 min to be applied, I would c=
onsider a synchronous configuration the wrong design choice to start with. =
A server should reply shortly after
 receiving the intended config to indicate that they are accepting the conf=
ig and after e.g. 9:59 minutes come back with an information that the confi=
g has successfully been applied. If you mix both information into one you e=
ither create a black hole in the
 beginning of the process (request an intended config and getting feedback =
10min after) or you end up with a grey hole in the end where you know the s=
erver is working on it but have no idea when it has finished, so that you c=
an reasonably expect an operational
 state in line with your config.<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<blockquote style=3D"border:none;border-left:solid #B5C4DF 4.5pt;padding:0i=
n 0in 0in 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0in;margin=
-bottom:5.0pt" id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<blockquote style=3D"border:none;border-left:solid #B5C4DF 4.5pt;padding:0i=
n 0in 0in 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0in;margin=
-bottom:5.0pt" id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Perhaps this isn't a valid =
Netconf implementation, and all Netconf server implementations are expected=
 to be asynchronous w.r.t to when they apply their configuration
 - but I can't see where this is stated in the NETCONF RFC (but possibly I'=
m not looking in the right place).<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<blockquote style=3D"border:none;border-left:solid #B5C4DF 4.5pt;padding:0i=
n 0in 0in 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0in;margin=
-bottom:5.0pt" id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">&gt;From a client perspecti=
ve an asynchronous server and a hybrid server look the same. The difference=
 is that the asynchronous one should convey a &quot;finished&quot; informat=
ion
 to the client, while the hybrid would remain in a &quot;trust me babe&quot=
; mode forever.<o:p></o:p></span></p>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Yes, but this isn't the onl=
y difference:<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">- a client could expect tha=
t an asynchronous config operation response should be reasonably expedient.=
<o:p></o:p></span></p>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Agree, but this is true for=
 hybrid and asynchronous and the term &quot;reasonable&quot; is not well de=
fined.<o:p></o:p></span></p>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">This is true for asynchrono=
us but not hybrid, since a hybrid operation
<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">might return just before a =
proper synchronous operation would.<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">What is the level of inform=
ation the client has before and after this &#8216;return&#8217;? Before the=
 return, it doesn&#8217;t know if the config is being processed, and after
 the return it doesn&#8217;t know if it has been applied. Just like asynchr=
onous.<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<blockquote style=3D"border:none;border-left:solid #B5C4DF 4.5pt;padding:0i=
n 0in 0in 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0in;margin=
-bottom:5.0pt" id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<blockquote style=3D"border:none;border-left:solid #B5C4DF 4.5pt;padding:0i=
n 0in 0in 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0in;margin=
-bottom:5.0pt" id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">&nbsp;&nbsp; E.g. if a clie=
nt was to update 10 devices each with a reasonable size configuration (that=
 takes minutes to apply) in an asynchronous way then it might reasonably
 consider sequencing the async config requests to each server on one thread=
.&nbsp;&nbsp;If each server acknowledged the requests in a couple of second=
s then all the servers would broadly end up applying the configuration conc=
urrently.<o:p></o:p></span></p>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Yes, that's why we need asy=
nchronous mode in the first place.<o:p></o:p></span></p>
</div>
<blockquote style=3D"border:none;border-left:solid #B5C4DF 4.5pt;padding:0i=
n 0in 0in 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0in;margin=
-bottom:5.0pt" id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">- however, if the servers w=
ere hybrid, and their replies were sent much closer to when the configurati=
on was actually applied then initiating the requests sequentially
 would effectively mean that the devices end up applying the configuration =
serially which would end up taking much longer.&nbsp;&nbsp;I.e. it seems re=
asonable that a client may want to differentiate between the behaviour of t=
hese two servers even if how it handles the
 resultant config changes is the same.<o:p></o:p></span></p>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">It seems your definition of=
 hybrid is something like &quot;asynchronous but with a longer than reasona=
ble response time&quot;.<o:p></o:p></span></p>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">My definition of hybrid (i.=
e. the default existing netconf config
<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">operations) is along the li=
nes of &quot;asynchronous in behaviour, but may
<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">reply any time between when=
 the intended configuration has been updated
<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">and the applied configurati=
on has been completely updated &quot;.<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Understand, but the informa=
tion available to the client is just the same as for asynchronous: before r=
esponding, the client doesn&#8217;t know if the config is being
 processed, and after the response it doesn&#8217;t know if it has been app=
lied. The only difference is that in a proper asynchronous implementation t=
he time between a config request and response is short, while the time betw=
een response and applied config is long.
 Hybrid tends to move the response time out. I don&#8217;t see how in princ=
iple it is different from asynchronous.<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<blockquote style=3D"border:none;border-left:solid #B5C4DF 4.5pt;padding:0i=
n 0in 0in 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0in;margin=
-bottom:5.0pt" id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">This is similar to a bloate=
d synchronous operation which takes too much time to respond.&nbsp;&nbsp;Bo=
th cases are undesired and in both cases the solution is to make them
 truly asynchronous. So that we can have a reasonable response time.<o:p></=
o:p></span></p>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">I agree with the goal, but =
it may be difficult to change some existing
<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">NETCONF operational handlin=
g to be either strictly sync or async.<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Please help me &nbsp;to und=
erstand what you mean with &quot;strictly sync or async&#8221;. And in part=
icular why a hybrid (according to your definition) is not asynch.<o:p></o:p=
></span></p>
</div>
<blockquote style=3D"border:none;border-left:solid #B5C4DF 4.5pt;padding:0i=
n 0in 0in 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0in;margin=
-bottom:5.0pt" id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">&nbsp;&nbsp;
<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<blockquote style=3D"border:none;border-left:solid #B5C4DF 4.5pt;padding:0i=
n 0in 0in 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0in;margin=
-bottom:5.0pt" id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<blockquote style=3D"border:none;border-left:solid #B5C4DF 4.5pt;padding:0i=
n 0in 0in 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0in;margin=
-bottom:5.0pt" id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Another way to look at hybr=
ids is to consider them &quot;cheating synchronous&quot;. Given that the ne=
w config may not have been applied at the time of the response to
 the client. This is worse than the situation before where a missing verify=
 lets the client know that something may still go on. Clients can't tell if=
 servers are cheating :-)<o:p></o:p></span></p>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Yes, but clients also need =
to be able to determine if the server is likely to be slow to response, bec=
ause then the client would probably be designed to interact
 with the server in a different fashion (e.g. use a pool of threads to init=
iate the updates concurrently).<o:p></o:p></span></p>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">How would you do this in pr=
actice?<o:p></o:p></span></p>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Roughly, I would suggest:<o=
:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Assuming that this is going=
 to be a new optional to implement extension:<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">&nbsp;&nbsp;- There would b=
e a capability to indicate whether a server supports an
<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">explicit sync config operat=
ion.<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">&nbsp;&nbsp;- There would b=
e a capability to indicate whether a server supports an
<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">explicit async config opera=
tion.<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">&nbsp;&nbsp;- It would be i=
mplicitly assumed that the server would support the
<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">existing default config ope=
ration.<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">In Netconf/Restconf when an=
 edit-config request is made, an extension
<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">would include an option to =
indicate whether the request should be
<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">processed as sync, async, o=
r default (i.e. existing behaviour).<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">How would that help the cli=
ent to figure out how slow the response is likely to be? The fact that a re=
quest is synch, asynch or hybrid wouldn&#8217;t tell him how fast
 it is.<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Thanks<o:p></o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Gert<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Thanks,<o:p></o:p></span></=
p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Rob<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<blockquote style=3D"border:none;border-left:solid #B5C4DF 4.5pt;padding:0i=
n 0in 0in 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0in;margin=
-bottom:5.0pt" id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">&nbsp;&nbsp; Even servers d=
on't know if they're likely to slow a response when they get a request. Tha=
t's why a quick first response is required that assures the client
 the requests will be processed, followed by a potentially slow feedback th=
at it is successfully executed (=3Dverified) or failed.<o:p></o:p></span></=
p>
</div>
<blockquote style=3D"border:none;border-left:solid #B5C4DF 4.5pt;padding:0i=
n 0in 0in 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0in;margin=
-bottom:5.0pt" id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Thanks,<o:p></o:p></span></=
p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Rob<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<blockquote style=3D"border:none;border-left:solid #B5C4DF 4.5pt;padding:0i=
n 0in 0in 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0in;margin=
-bottom:5.0pt" id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Gert<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Sent from my Apple ][<o:p><=
/o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<blockquote style=3D"border:none;border-left:solid #B5C4DF 4.5pt;padding:0i=
n 0in 0in 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0in;margin=
-bottom:5.0pt" id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">On 16 Oct 2015, at 18:44, R=
obert Wilton &lt;<a href=3D"mailto:rwilton@cisco.com">rwilton@cisco.com</a>=
&gt; wrote:<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<blockquote style=3D"border:none;border-left:solid #B5C4DF 4.5pt;padding:0i=
n 0in 0in 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0in;margin=
-bottom:5.0pt" id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">On 16/10/2015 14:59, Kent W=
atsen wrote:<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<blockquote style=3D"border:none;border-left:solid #B5C4DF 4.5pt;padding:0i=
n 0in 0in 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0in;margin=
-bottom:5.0pt" id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<blockquote style=3D"border:none;border-left:solid #B5C4DF 4.5pt;padding:0i=
n 0in 0in 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0in;margin=
-bottom:5.0pt" id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<blockquote style=3D"border:none;border-left:solid #B5C4DF 4.5pt;padding:0i=
n 0in 0in 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0in;margin=
-bottom:5.0pt" id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;3.&nbsp;&nbsp;Support for both synchronous and asynchronous config=
uration<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;operations<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A. A server may choose to support only syn=
chronous<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">configuration<o:p></o:p></s=
pan></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; operations, or only asynchron=
ous configuration operations,<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">or<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; both synchronous and asynchro=
nous configuration operations<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">in<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a client specified per-operat=
ion basis.<o:p></o:p></span></p>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">I think the most common mod=
e *today* is a mix of sync/async, on a<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">per-object basis.<o:p></o:p=
></span></p>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Yes, I agree.<o:p></o:p></s=
pan></p>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Wait, I think we're talking=
 about different things.&nbsp;&nbsp;Martin, I'm sure that<o:p></o:p></span>=
</p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">internal to a NC/RC server,=
 parts of the intended configuration is<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">actually applied synchronou=
sly (e.g., a hostname) whereas other parts are<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">not (e.g., config for data =
plane).&nbsp;&nbsp; But that nuance is not currently<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">exposed in any way today -r=
ight?<o:p></o:p></span></p>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">I think that today, from wh=
at a client sees/experiences, many replies from netconf servers fits neithe=
r the definition of &quot;synchronous configuration operation&quot;
 nor &quot;asynchronous configuration operation&quot;, but instead, the rep=
ly is somewhere between the two extremes.<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">So the question I was tryin=
g to raise is whether servers that need to meet the opstate requirements ha=
ve to change to strictly comply with the defined async or
 sync config operation semantics?&nbsp;&nbsp;E.g. not just adding a &quot;d=
one-applying&quot; option, but perhaps also adding something along the line=
s of a &quot;done-verifying&quot; option.<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Thanks,<o:p></o:p></span></=
p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Rob<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<blockquote style=3D"border:none;border-left:solid #B5C4DF 4.5pt;padding:0i=
n 0in 0in 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0in;margin=
-bottom:5.0pt" id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">What we're talking about he=
re is an ability for a client to request a<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">protocol operation (PATCH) =
to block, or for the &quot;done-applying&quot;<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">notification to not be sent=
, until all that processing of the request is<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">complete.&nbsp;&nbsp;This r=
egardless if the request contains a mix of nodes that are<o:p></o:p></span>=
</p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">applied internally sync/asy=
nc.&nbsp;&nbsp;Makes sense? - or it is something else?<o:p></o:p></span></p=
>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<blockquote style=3D"border:none;border-left:solid #B5C4DF 4.5pt;padding:0i=
n 0in 0in 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0in;margin=
-bottom:5.0pt" id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<blockquote style=3D"border:none;border-left:solid #B5C4DF 4.5pt;padding:0i=
n 0in 0in 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0in;margin=
-bottom:5.0pt" id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<blockquote style=3D"border:none;border-left:solid #B5C4DF 4.5pt;padding:0i=
n 0in 0in 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0in;margin=
-bottom:5.0pt" id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<blockquote style=3D"border:none;border-left:solid #B5C4DF 4.5pt;padding:0i=
n 0in 0in 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0in;margin=
-bottom:5.0pt" id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;B. Support for synchronous operations as p=
er the definition of<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;synchronous configurati=
on operation&quot;.<o:p></o:p></span></p>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Doesn't this follow from A?=
<o:p></o:p></span></p>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Yes, possibly.&nbsp;&nbsp;I=
 don't mind if B is deleted.&nbsp;&nbsp;If we do this then I<o:p></o:p></sp=
an></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">would suggest that we also =
delete the analogous first sentence of C, and<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">re-introduce the &quot;(see=
 terms)&quot; text in the headline description.<o:p></o:p></span></p>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">&#43;1<o:p></o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Kent&nbsp;&nbsp;// as a con=
tributor<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">.<o:p></o:p></span></p>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">___________________________=
____________________<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">netmod mailing list<o:p></o=
:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><a href=3D"mailto:netmod@ie=
tf.org">netmod@ietf.org</a><o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><a href=3D"https://www.ietf=
.org/mailman/listinfo/netmod">https://www.ietf.org/mailman/listinfo/netmod<=
/a><o:p></o:p></span></p>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">.<o:p></o:p></span></p>
</div>
</blockquote>
</blockquote>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">.<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
</div>
</body>
</html>

--_000_A125E53CE190A749957C19483DC79F9F5CB54224US70TWXCHMBA11z_--


From nobody Tue Nov  3 00:02:15 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 70CAF1B2F41 for <netmod@ietfa.amsl.com>; Tue,  3 Nov 2015 00:02:15 -0800 (PST)
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, 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 uJgBnY_k1w_T for <netmod@ietfa.amsl.com>; Tue,  3 Nov 2015 00:02:14 -0800 (PST)
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 047D81B2F3D for <netmod@ietf.org>; Tue,  3 Nov 2015 00:02:14 -0800 (PST)
Received: from us70uusmtp4.zam.alcatel-lucent.com (unknown [135.5.2.66]) by Websense Email Security Gateway with ESMTPS id 4B626ED58D815 for <netmod@ietf.org>; Tue,  3 Nov 2015 08:02:10 +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 tA382Bdo029906 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL) for <netmod@ietf.org>; Tue, 3 Nov 2015 08:02:11 GMT
Received: from US70TWXCHMBA11.zam.alcatel-lucent.com ([169.254.5.182]) by US70UWXCHHUB01.zam.alcatel-lucent.com ([135.5.2.48]) with mapi id 14.03.0195.001; Tue, 3 Nov 2015 03:02:11 -0500
From: "Sterne, Jason (Jason)" <jason.sterne@alcatel-lucent.com>
To: "netmod@ietf.org" <netmod@ietf.org>
Thread-Topic: netmod-opstate-reqs:  Are 2.A. and 4.C. the same thing ? (derived + non-derived)
Thread-Index: AdEWDfCZ+KPaceHoSuGdtEkNECAieg==
Date: Tue, 3 Nov 2015 08:02:11 +0000
Message-ID: <A125E53CE190A749957C19483DC79F9F5CB54291@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_A125E53CE190A749957C19483DC79F9F5CB54291US70TWXCHMBA11z_"
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/VW3xRzwa1wJGvVJ9OJAtlrXHCug>
Subject: [netmod] netmod-opstate-reqs: Are 2.A. and 4.C. the same thing ? (derived + non-derived)
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 03 Nov 2015 08:02:15 -0000

--_000_A125E53CE190A749957C19483DC79F9F5CB54291US70TWXCHMBA11z_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hi all,

In reading through the netmod-opstate-reqs draft I see it is already noted =
that 5 seems to be a repeat of 4.a.

But isn't 4.C. also a repeat of 2.A. ?

2.A.:  The ability to retrieve the applied configuration and derived state =
nodes in a single protocol operation.

4.C.: Be able to retrieve both the derived and non-derived state aspects of=
 operational state together.

Or am I missing some subtlety here ?

Jason


--_000_A125E53CE190A749957C19483DC79F9F5CB54291US70TWXCHMBA11z_
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>Hi all,</div>
<div>&nbsp;</div>
<div>In reading through the netmod-opstate-reqs draft I see it is already n=
oted that 5 seems to be a repeat of 4.a.</div>
<div>&nbsp;</div>
<div>But isn&#8217;t 4.C. also a repeat of 2.A. ?</div>
<div>&nbsp;</div>
<div>2.A.:&nbsp; The ability to retrieve the applied configuration and deri=
ved state nodes in a single protocol operation.</div>
<div>&nbsp;</div>
<div>4.C.: Be able to retrieve both the derived and non-derived state aspec=
ts of operational state together.</div>
<div>&nbsp;</div>
<div>Or am I missing some subtlety here ?</div>
<div>&nbsp;</div>
<div>Jason</div>
<div>&nbsp;</div>
</span></font>
</body>
</html>

--_000_A125E53CE190A749957C19483DC79F9F5CB54291US70TWXCHMBA11z_--


From nobody Tue Nov  3 05:46: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 D95F51B3385 for <netmod@ietfa.amsl.com>; Tue,  3 Nov 2015 05:46: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 VNGudJYS58go for <netmod@ietfa.amsl.com>; Tue,  3 Nov 2015 05:46:09 -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 ABF561B3324 for <netmod@ietf.org>; Tue,  3 Nov 2015 05:46: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 3177C740; Tue,  3 Nov 2015 14:46: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 rEEX8OLbr5ew; Tue,  3 Nov 2015 14: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; Tue,  3 Nov 2015 14:46:07 +0100 (CET)
Received: from localhost (demetrius2.jacobs-university.de [212.201.44.47]) by hermes.jacobs-university.de (Postfix) with ESMTP id 119422004E; Tue,  3 Nov 2015 14:46:07 +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 EmYdM6QTIdnb; Tue,  3 Nov 2015 14:46:06 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id 5399E2003B; Tue,  3 Nov 2015 14:46:05 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id 45EA23876E46; Tue,  3 Nov 2015 14:46:05 +0100 (CET)
Date: Tue, 3 Nov 2015 14:46:05 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Randy Presuhn <randy_presuhn@mindspring.com>
Message-ID: <20151103134605.GA92347@elstar.local>
Mail-Followup-To: Randy Presuhn <randy_presuhn@mindspring.com>, netmod@ietf.org
References: <22785841.1446529200851.JavaMail.root@elwamui-hybrid.atl.sa.earthlink.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <22785841.1446529200851.JavaMail.root@elwamui-hybrid.atl.sa.earthlink.net>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/roSuLmmK8Bol_0fZ-vpVJVLC4uA>
Cc: netmod@ietf.org
Subject: Re: [netmod] leaf-list uniqueness requirement for non-config nodes
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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 03 Nov 2015 13:46:13 -0000

On Mon, Nov 02, 2015 at 09:40:00PM -0800, Randy Presuhn wrote:
> Hi -
> 
> >From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
> >Sent: Oct 29, 2015 1:06 AM
> >To: netmod@ietf.org
> >Subject: [netmod] leaf-list uniqueness requirement for non-config nodes
> >
> >Hi,
> >
> >RFC 6020 say:
> >
> >   The values in a leaf-list MUST be unique.
> >
> >While this may have a justification for config true nodes (to allow
> >modifications of individual elements using edit-config), this
> >constraint does not seem to make much sense for non-config nodes.
> >
> >Note that YANG requires keys for lists for config nodes (to allow
> >modifications of individual elements using edit-config) but it does
> >not requires keys or uniqueness for for lists for non-config nodes.
> >
> >In order to be consistent, I think the above requirement should be
> >changed to this:
> >
> >   The values in a leaf-list MUST be unique if the nodes represent
> >   configuration.
> 
> How would this affect a model needing a leafref to the information?
>

How does a model reference a leaf in a key-less config false list?

I guess they both work the same way. ;-)

/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 Nov  3 07:33:49 2015
Return-Path: <amclachl@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 D344B1A21C1 for <netmod@ietfa.amsl.com>; Tue,  3 Nov 2015 07:33:47 -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, 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 TJt9Gkf9O8-t for <netmod@ietfa.amsl.com>; Tue,  3 Nov 2015 07:33:44 -0800 (PST)
Received: from rcdn-iport-8.cisco.com (rcdn-iport-8.cisco.com [173.37.86.79]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 583D91A1EFF for <netmod@ietf.org>; Tue,  3 Nov 2015 07:33:44 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=5936; q=dns/txt; s=iport; t=1446564824; x=1447774424; h=from:to:subject:date:message-id:mime-version; bh=VN3a7ARys5B6mYZHmMYBv1rie2y3qGst9HNGAWfaMNs=; b=OkvLV3vQXe/8Xb8uvP9bgnYBo1Wae/xKOItiLLq5BRJmEFDbHVUoM8No dk9/FVv0vInZfpnJhJ0AsFvPbqfTw+7jGlkhAe+DfdmBkzWwx8JF6uQat +ewOe1+NmwOwlkGiG9T6385LigfPkLmYTHQRJt/MDWcByuWuxgN023YmA 8=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0BNAwBI0zhW/4cNJK1egztTbwa7H4F/KwENgV0XAQmFcx6BHjgUAQEBAQEBAX8LhDwjaAEMOwMCBDAUEwQTiC4NoGqPcJBzAQEBAQEBBAEBAQEBAQEchmSCEIcYEQE1gks6FB2BFAWSZoNgAYUciAaBWkiDd5Izg3EBEQ4BAUKEBHKEPTqBBwEBAQ
X-IronPort-AV: E=Sophos; i="5.20,239,1444694400"; d="scan'208,217"; a="41643196"
Received: from alln-core-2.cisco.com ([173.36.13.135]) by rcdn-iport-8.cisco.com with ESMTP; 03 Nov 2015 15:33:43 +0000
Received: from XCH-ALN-018.cisco.com (xch-aln-018.cisco.com [173.36.7.28]) by alln-core-2.cisco.com (8.14.5/8.14.5) with ESMTP id tA3FXh9x006371 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL) for <netmod@ietf.org>; Tue, 3 Nov 2015 15:33:43 GMT
Received: from xch-aln-017.cisco.com (173.36.7.27) by XCH-ALN-018.cisco.com (173.36.7.28) with Microsoft SMTP Server (TLS) id 15.0.1104.5; Tue, 3 Nov 2015 09:33:43 -0600
Received: from xch-aln-017.cisco.com ([173.36.7.27]) by XCH-ALN-017.cisco.com ([173.36.7.27]) with mapi id 15.00.1104.000; Tue, 3 Nov 2015 09:33:42 -0600
From: "Andrew McLachlan (amclachl)" <amclachl@cisco.com>
To: "netmod@ietf.org" <netmod@ietf.org>
Thread-Topic: IETF 94 - Remote Participation information and request for jabber scribes
Thread-Index: AQHRFk0Fs6UB24c85E2GLadG8TnLCA==
Date: Tue, 3 Nov 2015 15:33:42 +0000
Message-ID: <8B3CF002-454A-4E70-87A3-6EB4776740BA@cisco.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.61.102.53]
Content-Type: multipart/alternative; boundary="_000_8B3CF002454A4E7087A36EB4776740BAciscocom_"
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/5E-glKVMU5_umyNxaEIz2XrO_Gc>
Subject: [netmod] IETF 94 - Remote Participation information and request for jabber scribes
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 03 Nov 2015 15:33:48 -0000

--_000_8B3CF002454A4E7087A36EB4776740BAciscocom_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

RGVhciBBbGwNCg0KUmVxdWVzdCBmb3IgSmFiYmVyIFNjcmliZXMNCg0KV2Ugd291bGQgYmUgdmVy
eSBncmF0ZWZ1bCBpZiB0aGVyZSBhcmUgYSBjb3VwbGUgb2YgZm9sa3Mgd2hvIHdvdWxkIGJlIHdp
bGxpbmcgdG8gdm9sdW50ZWVyIGFzIGEgc2NyaWJlIGZvciBlaXRoZXIgb2YgdGhlIHR3byBzZXNz
aW9ucyB3ZSBoYXZlIGF0IHRoaXMgSUVURi4NCg0KU2luY2UgSeKAmW0gdW5hYmxlIHRvIGF0dGVu
ZCB0aGlzIElFVEYsIGFuZCB0aGUgdHogaXMgYWdhaW5zdCBtZSBmb3IgZW1haWwgbGF0ZXIsIHBs
ZWFzZSBwaW5nIGJvdGggS2VudCBhbmQgSSBkaXJlY3RseSBqdXN0IHRvIGJlIHN1cmUgb25lIG9m
IHVzIHNlZXMgeW91ciBlbWFpbCBiZWZvcmUgdGhlIG1lZXRpbmdzLg0KDQprd2F0c2VuQGp1bmlw
ZXIubmV0PG1haWx0bzprd2F0c2VuQGp1bmlwZXIubmV0Pg0KYW1jbGFjaGxAY2lzY28uY29tPG1h
aWx0bzphbWNsYWNobEBjaXNjby5jb20+DQoNCldlZG5lc2RheToNCjA5MDAgLSAxMTMwIEpTVCAt
IFJvb20gMzAxIC0NCjEzMDAgLSAxNTAwIEpTVCAtIFJvb21zIDQxMS80MTIgLQ0KDQpSb29tIC0g
eG1wcDpuZXRtb2RAamFiYmVyLmlldGYub3JnP2pvaW4NCkxvZ3MgLSBodHRwOi8vamFiYmVyLmll
dGYub3JnL2xvZ3MvbmV0bW9kDQoNCg0KUmVtb3RlIFBhcnRpY2lwYXRpb24NCg0KRm9sbG93aW5n
IG9uIGZyb20gSUVURiA5MiAmIDkzLCAgSUVURiA5NCBpcyBnb2luZyB0byBiZSBleHBhbmRpbmcg
dGhlIHVzZSBvZiB0aGUgTWVldGVjaG8uDQoNCkRldGFpbHMgb2YgaG93IHRvIHVzZSB0aGlzIHN5
c3RlbSBhcmUgYXZhaWxhYmxlIGhlcmUgLSBodHRwOi8vaWV0Zi5vcmcvbWVldGluZy85NC9yZW1v
dGUtcGFydGljaXBhdGlvbi5odG1sI01lZXRlY2hvDQoNClRoZSB0d28gc2Vzc2lvbnMgYXJlIGF2
YWlsYWJsZSB2aWEgdGhlIGZvbGxvd2luZyBsaW5rcw0KDQowOTAwIC0gMTEzMCBKU1QgLSBSb29t
IDMwMSAtIGh0dHA6Ly93d3cubWVldGVjaG8uY29tL2lldGY5NC9uZXRtb2QNCjEzMDAgLSAxNTAw
IEpTVCAtIFJvb21zIDQxMS80MTIgLSBodHRwOi8vd3d3Lm1lZXRlY2hvLmNvbS9pZXRmOTQvbmV0
bW9kX0lJDQoNCg0KVGhhbmsgeW91IGluIGFkdmFuY2UuDQoNCg0KS2VudCwgVG9tLCBBbmRyZXcN
Cg==

--_000_8B3CF002454A4E7087A36EB4776740BAciscocom_
Content-Type: text/html; charset="utf-8"
Content-ID: <73744E24758B9F4AAF7C5844889238E8@emea.cisco.com>
Content-Transfer-Encoding: base64

PGh0bWw+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0i
dGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjwvaGVhZD4NCjxib2R5IHN0eWxlPSJ3b3JkLXdy
YXA6IGJyZWFrLXdvcmQ7IC13ZWJraXQtbmJzcC1tb2RlOiBzcGFjZTsgLXdlYmtpdC1saW5lLWJy
ZWFrOiBhZnRlci13aGl0ZS1zcGFjZTsiIGNsYXNzPSIiPg0KRGVhciBBbGwNCjxkaXYgY2xhc3M9
IiI+PGJyIGNsYXNzPSIiPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPjx1IGNsYXNzPSIiPlJlcXVl
c3QgZm9yIEphYmJlciBTY3JpYmVzPC91PjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj48YnIgY2xhc3M9
IiI+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+V2Ugd291bGQgYmUgdmVyeSBncmF0ZWZ1bCBpZiB0
aGVyZSBhcmUgYSBjb3VwbGUgb2YgZm9sa3Mgd2hvIHdvdWxkIGJlIHdpbGxpbmcgdG8gdm9sdW50
ZWVyIGFzIGEgc2NyaWJlIGZvciBlaXRoZXIgb2YgdGhlIHR3byBzZXNzaW9ucyB3ZSBoYXZlIGF0
IHRoaXMgSUVURi48L2Rpdj4NCjxkaXYgY2xhc3M9IiI+PGJyIGNsYXNzPSIiPg0KPC9kaXY+DQo8
ZGl2IGNsYXNzPSIiPlNpbmNlIEnigJltIHVuYWJsZSB0byBhdHRlbmQgdGhpcyBJRVRGLCBhbmQg
dGhlIHR6IGlzIGFnYWluc3QgbWUgZm9yIGVtYWlsIGxhdGVyLCBwbGVhc2UgcGluZyBib3RoIEtl
bnQgYW5kIEkgZGlyZWN0bHkganVzdCB0byBiZSBzdXJlIG9uZSBvZiB1cyBzZWVzIHlvdXIgZW1h
aWwgYmVmb3JlIHRoZSBtZWV0aW5ncy48L2Rpdj4NCjxkaXYgY2xhc3M9IiI+PGJyIGNsYXNzPSIi
Pg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPjxhIGhyZWY9Im1haWx0bzprd2F0c2VuQGp1bmlwZXIu
bmV0IiBjbGFzcz0iIj5rd2F0c2VuQGp1bmlwZXIubmV0PC9hPjwvZGl2Pg0KPGRpdiBjbGFzcz0i
Ij48YSBocmVmPSJtYWlsdG86YW1jbGFjaGxAY2lzY28uY29tIiBjbGFzcz0iIj5hbWNsYWNobEBj
aXNjby5jb208L2E+PC9kaXY+DQo8ZGl2IGNsYXNzPSIiPjxiciBjbGFzcz0iIj4NCjwvZGl2Pg0K
PGRpdiBjbGFzcz0iIj5XZWRuZXNkYXk6PC9kaXY+DQo8YmxvY2txdW90ZSBzdHlsZT0ibWFyZ2lu
OiAwIDAgMCA0MHB4OyBib3JkZXI6IG5vbmU7IHBhZGRpbmc6IDBweDsiIGNsYXNzPSIiPg0KPGRp
diBjbGFzcz0iIj4wOTAwIC0gMTEzMCBKU1QgLSBSb29tIDMwMSAtJm5ic3A7PC9kaXY+DQo8L2Js
b2NrcXVvdGU+DQo8YmxvY2txdW90ZSBzdHlsZT0ibWFyZ2luOiAwIDAgMCA0MHB4OyBib3JkZXI6
IG5vbmU7IHBhZGRpbmc6IDBweDsiIGNsYXNzPSIiPg0KPGRpdiBjbGFzcz0iIj4xMzAwIC0gMTUw
MCBKU1QgLSBSb29tcyA0MTEvNDEyIC0mbmJzcDs8L2Rpdj4NCjwvYmxvY2txdW90ZT4NCjxkaXYg
Y2xhc3M9IiI+PGJyIGNsYXNzPSIiPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPlJvb20gLSA8YSBo
cmVmPSJ4bXBwOm5ldG1vZEBqYWJiZXIuaWV0Zi5vcmc/am9pbiIgY2xhc3M9IiI+eG1wcDpuZXRt
b2RAamFiYmVyLmlldGYub3JnP2pvaW48L2E+PC9kaXY+DQo8ZGl2IGNsYXNzPSIiPkxvZ3MgLSZu
YnNwOzxhIGhyZWY9Imh0dHA6Ly9qYWJiZXIuaWV0Zi5vcmcvbG9ncy9uZXRtb2QiIGNsYXNzPSIi
Pmh0dHA6Ly9qYWJiZXIuaWV0Zi5vcmcvbG9ncy9uZXRtb2Q8L2E+PC9kaXY+DQo8ZGl2IGNsYXNz
PSIiPjxiciBjbGFzcz0iIj4NCjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj48YnIgY2xhc3M9IiI+DQo8
L2Rpdj4NCjxkaXYgY2xhc3M9IiI+PHUgY2xhc3M9IiI+UmVtb3RlIFBhcnRpY2lwYXRpb248L3U+
PC9kaXY+DQo8ZGl2IGNsYXNzPSIiPjxiciBjbGFzcz0iIj4NCjwvZGl2Pg0KPGRpdiBjbGFzcz0i
Ij5Gb2xsb3dpbmcgb24gZnJvbSBJRVRGIDkyICZhbXA7IDkzLCAmbmJzcDtJRVRGIDk0IGlzIGdv
aW5nIHRvIGJlIGV4cGFuZGluZyB0aGUgdXNlIG9mIHRoZSZuYnNwO01lZXRlY2hvLjwvZGl2Pg0K
PGRpdiBjbGFzcz0iIj48YnIgY2xhc3M9IiI+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+RGV0YWls
cyBvZiBob3cgdG8gdXNlIHRoaXMgc3lzdGVtIGFyZSBhdmFpbGFibGUgaGVyZSAtJm5ic3A7PGEg
aHJlZj0iaHR0cDovL2lldGYub3JnL21lZXRpbmcvOTQvcmVtb3RlLXBhcnRpY2lwYXRpb24uaHRt
bCNNZWV0ZWNobyIgY2xhc3M9IiI+aHR0cDovL2lldGYub3JnL21lZXRpbmcvOTQvcmVtb3RlLXBh
cnRpY2lwYXRpb24uaHRtbCNNZWV0ZWNobzwvYT48L2Rpdj4NCjxkaXYgY2xhc3M9IiI+PGJyIGNs
YXNzPSIiPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPlRoZSB0d28gc2Vzc2lvbnMgYXJlIGF2YWls
YWJsZSB2aWEgdGhlIGZvbGxvd2luZyBsaW5rczwvZGl2Pg0KPGRpdiBjbGFzcz0iIj48YnIgY2xh
c3M9IiI+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+MDkwMCAtIDExMzAgSlNUIC0gUm9vbSAzMDEg
LSA8YSBocmVmPSJodHRwOi8vd3d3Lm1lZXRlY2hvLmNvbS9pZXRmOTQvbmV0bW9kIiBjbGFzcz0i
Ij4NCmh0dHA6Ly93d3cubWVldGVjaG8uY29tL2lldGY5NC9uZXRtb2Q8L2E+PC9kaXY+DQo8ZGl2
IGNsYXNzPSIiPjEzMDAgLSAxNTAwIEpTVCAtIFJvb21zIDQxMS80MTIgLSA8YSBocmVmPSJodHRw
Oi8vd3d3Lm1lZXRlY2hvLmNvbS9pZXRmOTQvbmV0bW9kX0lJIiBjbGFzcz0iIj4NCmh0dHA6Ly93
d3cubWVldGVjaG8uY29tL2lldGY5NC9uZXRtb2RfSUk8L2E+PC9kaXY+DQo8ZGl2IGNsYXNzPSIi
PjxiciBjbGFzcz0iIj4NCjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj48YnIgY2xhc3M9IiI+DQo8L2Rp
dj4NCjxkaXYgY2xhc3M9IiI+VGhhbmsgeW91IGluIGFkdmFuY2UuPC9kaXY+DQo8ZGl2IGNsYXNz
PSIiPjxiciBjbGFzcz0iIj4NCjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj48YnIgY2xhc3M9IiI+DQo8
L2Rpdj4NCjxkaXYgY2xhc3M9IiI+S2VudCwgVG9tLCBBbmRyZXc8L2Rpdj4NCjwvYm9keT4NCjwv
aHRtbD4NCg==

--_000_8B3CF002454A4E7087A36EB4776740BAciscocom_--


From nobody Tue Nov  3 08:19:00 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 F41B51A870D for <netmod@ietfa.amsl.com>; Tue,  3 Nov 2015 08:18:58 -0800 (PST)
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 zg9uEmTjuiM1 for <netmod@ietfa.amsl.com>; Tue,  3 Nov 2015 08:18:53 -0800 (PST)
Received: from na01-by2-obe.outbound.protection.outlook.com (mail-by2on0136.outbound.protection.outlook.com [207.46.100.136]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2DEB91A86FB for <netmod@ietf.org>; Tue,  3 Nov 2015 08:18:52 -0800 (PST)
Received: from BN3PR0501MB1442.namprd05.prod.outlook.com (10.160.117.151) by BN3PR0501MB1441.namprd05.prod.outlook.com (10.160.117.150) with Microsoft SMTP Server (TLS) id 15.1.312.18; Tue, 3 Nov 2015 16:18:46 +0000
Received: from BN3PR0501MB1442.namprd05.prod.outlook.com ([10.160.117.151]) by BN3PR0501MB1442.namprd05.prod.outlook.com ([10.160.117.151]) with mapi id 15.01.0312.014; Tue, 3 Nov 2015 16:18:45 +0000
From: Kent Watsen <kwatsen@juniper.net>
To: "Andrew McLachlan (amclachl)" <amclachl@cisco.com>, "netmod@ietf.org" <netmod@ietf.org>
Thread-Topic: [netmod] IETF 94 - Remote Participation information and request for jabber scribes
Thread-Index: AQHRFlNQlj6pjhTfG0+TPMAqGG7mKw==
Date: Tue, 3 Nov 2015 16:18:45 +0000
Message-ID: <470305D5-F920-47D2-A22D-DE7FFAB302CA@juniper.net>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/0.0.0.151008
authentication-results: spf=none (sender IP is ) smtp.mailfrom=kwatsen@juniper.net; 
x-ms-exchange-messagesentrepresentingtype: 1
x-originating-ip: [66.129.241.11]
x-microsoft-exchange-diagnostics: 1; BN3PR0501MB1441; 5:FTKIuHEo4SyZt58iwePuGlXJybMLMsD+hmLi9vuKs3VrUvsrNz7KAvKinLRjct19HiWUmuf0jylr7n92/0GokT3jf4wWeJXHruTi/dn9/nbV/z3DxrWwGD1rcgTjQqG4q4oqg3Q9XsDUxhBKz6USbg==; 24:i+0lbPwGuTsshmB88fmJm7d9FVpxiNlS1v8TnK/OKpK9WReIft24toohVRK6jVuxz4JmydFcSSWElzmJfxVPZNlmRSLg4JvA5XPACgkIOtY=; 20:/YFnXW13JIAtcWMVbuoTp0GYKdAz5QBN6gHUQ9V2IhJdmhyIdAWEjy4qeJQk18wpCOve8SwfQOZR1KrolJ1zJw==
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN3PR0501MB1441;
x-microsoft-antispam-prvs: <BN3PR0501MB1441A8BD4C6CB78FB21BC147A52B0@BN3PR0501MB1441.namprd05.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:(138986009662008)(95692535739014);
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(2401047)(5005006)(8121501046)(520078)(10201501046)(3002001); SRVR:BN3PR0501MB1441; BCL:0; PCL:0; RULEID:; SRVR:BN3PR0501MB1441; 
x-forefront-prvs: 0749DC2CE6
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(504964003)(199003)(189002)(377454003)(87936001)(19580395003)(97736004)(66066001)(81156007)(106356001)(106116001)(5001770100001)(83506001)(4001350100001)(40100003)(15395725005)(54356999)(83716003)(50986999)(19580405001)(99286002)(101416001)(33656002)(16297215004)(19273905006)(122556002)(16236675004)(105586002)(92566002)(5008740100001)(107886002)(5001960100002)(5004730100002)(86362001)(5001920100001)(15380165006)(189998001)(77096005)(82746002)(19617315012)(5007970100001)(102836002)(2501003)(10400500002)(2900100001)(15975445007)(36756003)(5002640100001)(104396002)(563064011); DIR:OUT; SFP:1102; SCL:1; SRVR:BN3PR0501MB1441; H:BN3PR0501MB1442.namprd05.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; 
received-spf: None (protection.outlook.com: juniper.net does not designate permitted sender hosts)
spamdiagnosticoutput: 1:23
spamdiagnosticmetadata: NSPM
Content-Type: multipart/alternative; boundary="_000_470305D5F92047D2A22DDE7FFAB302CAjunipernet_"
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Nov 2015 16:18:45.7816 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR0501MB1441
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/OHysJq_dF4NI9UEnWaU-u1p30RQ>
Subject: Re: [netmod] IETF 94 - Remote Participation information and request for jabber scribes
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 03 Nov 2015 16:18:59 -0000

--_000_470305D5F92047D2A22DDE7FFAB302CAjunipernet_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

WWVzLCB0aW1lIGlzIHRpZ2h0IGZvciB0aGUgbW9ybmluZyBzZXNzaW9uLCB0aGUgbW9yZSB3ZSBj
YW4gZGlzcGF0Y2ggYmVmb3JlaGFuZCB0aGUgYmV0dGVyLg0KDQpOb3QganVzdCBKYWJiZXIgc2Ny
aWJlLCBidXQgYWxzbyBtaW51dGUtdGFrZXJzIC0gcGxlYXNlLCBpZiB5b3XigJlyZSB3aWxsaW5n
IHRvIHRha2UgbWludXRlcyBmb3IgdGhlIG1vcm5pbmcgc2Vzc2lvbiwgbGV0IHVzIGtub3cgbm93
Lg0KDQpMYXN0bHksIEkgZm9yZ290IHRvIGJyaW5nIG15IHRodW5kZXJib2x0LXRvLWhkbWkvZHZp
IGNhYmxlIHRoaW5neS4gIElmIGFueW9uZSBoYXMgb25lIEkgY291bGQgYm9ycm93IGZvciB0aGUg
bW9ybmluZyBzZXNzaW9uLCBJIHdvdWxkIGJlIG1vc3QgZ3JhdGVmdWwhDQoNCksuDQoNCkZyb206
IG5ldG1vZCA8bmV0bW9kLWJvdW5jZXNAaWV0Zi5vcmc8bWFpbHRvOm5ldG1vZC1ib3VuY2VzQGll
dGYub3JnPj4gb24gYmVoYWxmIG9mICJBbmRyZXcgTWNMYWNobGFuIChhbWNsYWNobCkiIDxhbWNs
YWNobEBjaXNjby5jb208bWFpbHRvOmFtY2xhY2hsQGNpc2NvLmNvbT4+DQpEYXRlOiBXZWRuZXNk
YXksIE5vdmVtYmVyIDQsIDIwMTUgYXQgMTI6MzMgQU0NClRvOiAibmV0bW9kQGlldGYub3JnPG1h
aWx0bzpuZXRtb2RAaWV0Zi5vcmc+IiA8bmV0bW9kQGlldGYub3JnPG1haWx0bzpuZXRtb2RAaWV0
Zi5vcmc+Pg0KU3ViamVjdDogW25ldG1vZF0gSUVURiA5NCAtIFJlbW90ZSBQYXJ0aWNpcGF0aW9u
IGluZm9ybWF0aW9uIGFuZCByZXF1ZXN0IGZvciBqYWJiZXIgc2NyaWJlcw0KDQpEZWFyIEFsbA0K
DQpSZXF1ZXN0IGZvciBKYWJiZXIgU2NyaWJlcw0KDQpXZSB3b3VsZCBiZSB2ZXJ5IGdyYXRlZnVs
IGlmIHRoZXJlIGFyZSBhIGNvdXBsZSBvZiBmb2xrcyB3aG8gd291bGQgYmUgd2lsbGluZyB0byB2
b2x1bnRlZXIgYXMgYSBzY3JpYmUgZm9yIGVpdGhlciBvZiB0aGUgdHdvIHNlc3Npb25zIHdlIGhh
dmUgYXQgdGhpcyBJRVRGLg0KDQpTaW5jZSBJ4oCZbSB1bmFibGUgdG8gYXR0ZW5kIHRoaXMgSUVU
RiwgYW5kIHRoZSB0eiBpcyBhZ2FpbnN0IG1lIGZvciBlbWFpbCBsYXRlciwgcGxlYXNlIHBpbmcg
Ym90aCBLZW50IGFuZCBJIGRpcmVjdGx5IGp1c3QgdG8gYmUgc3VyZSBvbmUgb2YgdXMgc2VlcyB5
b3VyIGVtYWlsIGJlZm9yZSB0aGUgbWVldGluZ3MuDQoNCmt3YXRzZW5AanVuaXBlci5uZXQ8bWFp
bHRvOmt3YXRzZW5AanVuaXBlci5uZXQ+DQphbWNsYWNobEBjaXNjby5jb208bWFpbHRvOmFtY2xh
Y2hsQGNpc2NvLmNvbT4NCg0KV2VkbmVzZGF5Og0KMDkwMCAtIDExMzAgSlNUIC0gUm9vbSAzMDEg
LQ0KMTMwMCAtIDE1MDAgSlNUIC0gUm9vbXMgNDExLzQxMiAtDQoNClJvb20gLSB4bXBwOm5ldG1v
ZEBqYWJiZXIuaWV0Zi5vcmc/am9pbg0KTG9ncyAtIGh0dHA6Ly9qYWJiZXIuaWV0Zi5vcmcvbG9n
cy9uZXRtb2QNCg0KDQpSZW1vdGUgUGFydGljaXBhdGlvbg0KDQpGb2xsb3dpbmcgb24gZnJvbSBJ
RVRGIDkyICYgOTMsICBJRVRGIDk0IGlzIGdvaW5nIHRvIGJlIGV4cGFuZGluZyB0aGUgdXNlIG9m
IHRoZSBNZWV0ZWNoby4NCg0KRGV0YWlscyBvZiBob3cgdG8gdXNlIHRoaXMgc3lzdGVtIGFyZSBh
dmFpbGFibGUgaGVyZSAtIGh0dHA6Ly9pZXRmLm9yZy9tZWV0aW5nLzk0L3JlbW90ZS1wYXJ0aWNp
cGF0aW9uLmh0bWwjTWVldGVjaG8NCg0KVGhlIHR3byBzZXNzaW9ucyBhcmUgYXZhaWxhYmxlIHZp
YSB0aGUgZm9sbG93aW5nIGxpbmtzDQoNCjA5MDAgLSAxMTMwIEpTVCAtIFJvb20gMzAxIC0gaHR0
cDovL3d3dy5tZWV0ZWNoby5jb20vaWV0Zjk0L25ldG1vZA0KMTMwMCAtIDE1MDAgSlNUIC0gUm9v
bXMgNDExLzQxMiAtIGh0dHA6Ly93d3cubWVldGVjaG8uY29tL2lldGY5NC9uZXRtb2RfSUkNCg0K
DQpUaGFuayB5b3UgaW4gYWR2YW5jZS4NCg0KDQpLZW50LCBUb20sIEFuZHJldw0K

--_000_470305D5F92047D2A22DDE7FFAB302CAjunipernet_
Content-Type: text/html; charset="utf-8"
Content-ID: <60A802515DB6074782561F378005B9D5@namprd05.prod.outlook.com>
Content-Transfer-Encoding: base64

PGh0bWw+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0i
dGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjwvaGVhZD4NCjxib2R5IHN0eWxlPSJ3b3JkLXdy
YXA6IGJyZWFrLXdvcmQ7IC13ZWJraXQtbmJzcC1tb2RlOiBzcGFjZTsgLXdlYmtpdC1saW5lLWJy
ZWFrOiBhZnRlci13aGl0ZS1zcGFjZTsgY29sb3I6IHJnYigwLCAwLCAwKTsgZm9udC1zaXplOiAx
NHB4OyBmb250LWZhbWlseTogQ2FsaWJyaSwgc2Fucy1zZXJpZjsiPg0KPGRpdj4NCjxkaXY+DQo8
ZGl2PlllcywgdGltZSBpcyB0aWdodCBmb3IgdGhlIG1vcm5pbmcgc2Vzc2lvbiwgdGhlIG1vcmUg
d2UgY2FuIGRpc3BhdGNoIGJlZm9yZWhhbmQgdGhlIGJldHRlci48L2Rpdj4NCjxkaXY+PGJyPg0K
PC9kaXY+DQo8ZGl2Pk5vdCBqdXN0IEphYmJlciBzY3JpYmUsIGJ1dCBhbHNvIG1pbnV0ZS10YWtl
cnMgLSBwbGVhc2UsIGlmIHlvdeKAmXJlIHdpbGxpbmcgdG8gdGFrZSBtaW51dGVzIGZvciB0aGUg
bW9ybmluZyBzZXNzaW9uLCBsZXQgdXMga25vdyBub3cuPC9kaXY+DQo8ZGl2Pjxicj4NCjwvZGl2
Pg0KPGRpdj5MYXN0bHksIEkgZm9yZ290IHRvIGJyaW5nIG15IHRodW5kZXJib2x0LXRvLWhkbWkv
ZHZpIGNhYmxlIHRoaW5neS4gJm5ic3A7SWYgYW55b25lIGhhcyBvbmUgSSBjb3VsZCBib3Jyb3cg
Zm9yIHRoZSBtb3JuaW5nIHNlc3Npb24sIEkgd291bGQgYmUgbW9zdCBncmF0ZWZ1bCE8L2Rpdj4N
CjxkaXY+PGJyPg0KPC9kaXY+DQo8ZGl2PksuPC9kaXY+DQo8ZGl2Pg0KPGRpdiBpZD0iTUFDX09V
VExPT0tfU0lHTkFUVVJFIj48L2Rpdj4NCjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXY+PGJy
Pg0KPC9kaXY+DQo8c3BhbiBpZD0iT0xLX1NSQ19CT0RZX1NFQ1RJT04iPg0KPGRpdiBzdHlsZT0i
Zm9udC1mYW1pbHk6Q2FsaWJyaTsgZm9udC1zaXplOjEycHQ7IHRleHQtYWxpZ246bGVmdDsgY29s
b3I6YmxhY2s7IEJPUkRFUi1CT1RUT006IG1lZGl1bSBub25lOyBCT1JERVItTEVGVDogbWVkaXVt
IG5vbmU7IFBBRERJTkctQk9UVE9NOiAwaW47IFBBRERJTkctTEVGVDogMGluOyBQQURESU5HLVJJ
R0hUOiAwaW47IEJPUkRFUi1UT1A6ICNiNWM0ZGYgMXB0IHNvbGlkOyBCT1JERVItUklHSFQ6IG1l
ZGl1bSBub25lOyBQQURESU5HLVRPUDogM3B0Ij4NCjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDpi
b2xkIj5Gcm9tOiA8L3NwYW4+bmV0bW9kICZsdDs8YSBocmVmPSJtYWlsdG86bmV0bW9kLWJvdW5j
ZXNAaWV0Zi5vcmciPm5ldG1vZC1ib3VuY2VzQGlldGYub3JnPC9hPiZndDsgb24gYmVoYWxmIG9m
ICZxdW90O0FuZHJldyBNY0xhY2hsYW4gKGFtY2xhY2hsKSZxdW90OyAmbHQ7PGEgaHJlZj0ibWFp
bHRvOmFtY2xhY2hsQGNpc2NvLmNvbSI+YW1jbGFjaGxAY2lzY28uY29tPC9hPiZndDs8YnI+DQo8
c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+RGF0ZTogPC9zcGFuPldlZG5lc2RheSwgTm92
ZW1iZXIgNCwgMjAxNSBhdCAxMjozMyBBTTxicj4NCjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDpi
b2xkIj5UbzogPC9zcGFuPiZxdW90OzxhIGhyZWY9Im1haWx0bzpuZXRtb2RAaWV0Zi5vcmciPm5l
dG1vZEBpZXRmLm9yZzwvYT4mcXVvdDsgJmx0OzxhIGhyZWY9Im1haWx0bzpuZXRtb2RAaWV0Zi5v
cmciPm5ldG1vZEBpZXRmLm9yZzwvYT4mZ3Q7PGJyPg0KPHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0
OmJvbGQiPlN1YmplY3Q6IDwvc3Bhbj5bbmV0bW9kXSBJRVRGIDk0IC0gUmVtb3RlIFBhcnRpY2lw
YXRpb24gaW5mb3JtYXRpb24gYW5kIHJlcXVlc3QgZm9yIGphYmJlciBzY3JpYmVzPGJyPg0KPC9k
aXY+DQo8ZGl2Pjxicj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXYgc3R5bGU9IndvcmQtd3JhcDogYnJl
YWstd29yZDsgLXdlYmtpdC1uYnNwLW1vZGU6IHNwYWNlOyAtd2Via2l0LWxpbmUtYnJlYWs6IGFm
dGVyLXdoaXRlLXNwYWNlOyIgY2xhc3M9IiI+DQpEZWFyIEFsbA0KPGRpdiBjbGFzcz0iIj48YnIg
Y2xhc3M9IiI+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+PHUgY2xhc3M9IiI+UmVxdWVzdCBmb3Ig
SmFiYmVyIFNjcmliZXM8L3U+PC9kaXY+DQo8ZGl2IGNsYXNzPSIiPjxiciBjbGFzcz0iIj4NCjwv
ZGl2Pg0KPGRpdiBjbGFzcz0iIj5XZSB3b3VsZCBiZSB2ZXJ5IGdyYXRlZnVsIGlmIHRoZXJlIGFy
ZSBhIGNvdXBsZSBvZiBmb2xrcyB3aG8gd291bGQgYmUgd2lsbGluZyB0byB2b2x1bnRlZXIgYXMg
YSBzY3JpYmUgZm9yIGVpdGhlciBvZiB0aGUgdHdvIHNlc3Npb25zIHdlIGhhdmUgYXQgdGhpcyBJ
RVRGLjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj48YnIgY2xhc3M9IiI+DQo8L2Rpdj4NCjxkaXYgY2xh
c3M9IiI+U2luY2UgSeKAmW0gdW5hYmxlIHRvIGF0dGVuZCB0aGlzIElFVEYsIGFuZCB0aGUgdHog
aXMgYWdhaW5zdCBtZSBmb3IgZW1haWwgbGF0ZXIsIHBsZWFzZSBwaW5nIGJvdGggS2VudCBhbmQg
SSBkaXJlY3RseSBqdXN0IHRvIGJlIHN1cmUgb25lIG9mIHVzIHNlZXMgeW91ciBlbWFpbCBiZWZv
cmUgdGhlIG1lZXRpbmdzLjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj48YnIgY2xhc3M9IiI+DQo8L2Rp
dj4NCjxkaXYgY2xhc3M9IiI+PGEgaHJlZj0ibWFpbHRvOmt3YXRzZW5AanVuaXBlci5uZXQiIGNs
YXNzPSIiPmt3YXRzZW5AanVuaXBlci5uZXQ8L2E+PC9kaXY+DQo8ZGl2IGNsYXNzPSIiPjxhIGhy
ZWY9Im1haWx0bzphbWNsYWNobEBjaXNjby5jb20iIGNsYXNzPSIiPmFtY2xhY2hsQGNpc2NvLmNv
bTwvYT48L2Rpdj4NCjxkaXYgY2xhc3M9IiI+PGJyIGNsYXNzPSIiPg0KPC9kaXY+DQo8ZGl2IGNs
YXNzPSIiPldlZG5lc2RheTo8L2Rpdj4NCjxibG9ja3F1b3RlIHN0eWxlPSJtYXJnaW46IDAgMCAw
IDQwcHg7IGJvcmRlcjogbm9uZTsgcGFkZGluZzogMHB4OyIgY2xhc3M9IiI+DQo8ZGl2IGNsYXNz
PSIiPjA5MDAgLSAxMTMwIEpTVCAtIFJvb20gMzAxIC0mbmJzcDs8L2Rpdj4NCjwvYmxvY2txdW90
ZT4NCjxibG9ja3F1b3RlIHN0eWxlPSJtYXJnaW46IDAgMCAwIDQwcHg7IGJvcmRlcjogbm9uZTsg
cGFkZGluZzogMHB4OyIgY2xhc3M9IiI+DQo8ZGl2IGNsYXNzPSIiPjEzMDAgLSAxNTAwIEpTVCAt
IFJvb21zIDQxMS80MTIgLSZuYnNwOzwvZGl2Pg0KPC9ibG9ja3F1b3RlPg0KPGRpdiBjbGFzcz0i
Ij48YnIgY2xhc3M9IiI+DQo8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+Um9vbSAtIDxhIGhyZWY9Inht
cHA6bmV0bW9kQGphYmJlci5pZXRmLm9yZz9qb2luIiBjbGFzcz0iIj54bXBwOm5ldG1vZEBqYWJi
ZXIuaWV0Zi5vcmc/am9pbjwvYT48L2Rpdj4NCjxkaXYgY2xhc3M9IiI+TG9ncyAtJm5ic3A7PGEg
aHJlZj0iaHR0cDovL2phYmJlci5pZXRmLm9yZy9sb2dzL25ldG1vZCIgY2xhc3M9IiI+aHR0cDov
L2phYmJlci5pZXRmLm9yZy9sb2dzL25ldG1vZDwvYT48L2Rpdj4NCjxkaXYgY2xhc3M9IiI+PGJy
IGNsYXNzPSIiPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPjxiciBjbGFzcz0iIj4NCjwvZGl2Pg0K
PGRpdiBjbGFzcz0iIj48dSBjbGFzcz0iIj5SZW1vdGUgUGFydGljaXBhdGlvbjwvdT48L2Rpdj4N
CjxkaXYgY2xhc3M9IiI+PGJyIGNsYXNzPSIiPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPkZvbGxv
d2luZyBvbiBmcm9tIElFVEYgOTIgJmFtcDsgOTMsICZuYnNwO0lFVEYgOTQgaXMgZ29pbmcgdG8g
YmUgZXhwYW5kaW5nIHRoZSB1c2Ugb2YgdGhlJm5ic3A7TWVldGVjaG8uPC9kaXY+DQo8ZGl2IGNs
YXNzPSIiPjxiciBjbGFzcz0iIj4NCjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj5EZXRhaWxzIG9mIGhv
dyB0byB1c2UgdGhpcyBzeXN0ZW0gYXJlIGF2YWlsYWJsZSBoZXJlIC0mbmJzcDs8YSBocmVmPSJo
dHRwOi8vaWV0Zi5vcmcvbWVldGluZy85NC9yZW1vdGUtcGFydGljaXBhdGlvbi5odG1sI01lZXRl
Y2hvIiBjbGFzcz0iIj5odHRwOi8vaWV0Zi5vcmcvbWVldGluZy85NC9yZW1vdGUtcGFydGljaXBh
dGlvbi5odG1sI01lZXRlY2hvPC9hPjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj48YnIgY2xhc3M9IiI+
DQo8L2Rpdj4NCjxkaXYgY2xhc3M9IiI+VGhlIHR3byBzZXNzaW9ucyBhcmUgYXZhaWxhYmxlIHZp
YSB0aGUgZm9sbG93aW5nIGxpbmtzPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPjxiciBjbGFzcz0iIj4N
CjwvZGl2Pg0KPGRpdiBjbGFzcz0iIj4wOTAwIC0gMTEzMCBKU1QgLSBSb29tIDMwMSAtIDxhIGhy
ZWY9Imh0dHA6Ly93d3cubWVldGVjaG8uY29tL2lldGY5NC9uZXRtb2QiIGNsYXNzPSIiPg0KaHR0
cDovL3d3dy5tZWV0ZWNoby5jb20vaWV0Zjk0L25ldG1vZDwvYT48L2Rpdj4NCjxkaXYgY2xhc3M9
IiI+MTMwMCAtIDE1MDAgSlNUIC0gUm9vbXMgNDExLzQxMiAtIDxhIGhyZWY9Imh0dHA6Ly93d3cu
bWVldGVjaG8uY29tL2lldGY5NC9uZXRtb2RfSUkiIGNsYXNzPSIiPg0KaHR0cDovL3d3dy5tZWV0
ZWNoby5jb20vaWV0Zjk0L25ldG1vZF9JSTwvYT48L2Rpdj4NCjxkaXYgY2xhc3M9IiI+PGJyIGNs
YXNzPSIiPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPjxiciBjbGFzcz0iIj4NCjwvZGl2Pg0KPGRp
diBjbGFzcz0iIj5UaGFuayB5b3UgaW4gYWR2YW5jZS48L2Rpdj4NCjxkaXYgY2xhc3M9IiI+PGJy
IGNsYXNzPSIiPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSIiPjxiciBjbGFzcz0iIj4NCjwvZGl2Pg0K
PGRpdiBjbGFzcz0iIj5LZW50LCBUb20sIEFuZHJldzwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjwv
c3Bhbj4NCjwvYm9keT4NCjwvaHRtbD4NCg==

--_000_470305D5F92047D2A22DDE7FFAB302CAjunipernet_--


From nobody Tue Nov  3 12:55:54 2015
Return-Path: <amorris@amsl.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 E94BB1A0114 for <netmod@ietfa.amsl.com>; Tue,  3 Nov 2015 12:55:52 -0800 (PST)
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 8vBS2otE_q7N for <netmod@ietfa.amsl.com>; Tue,  3 Nov 2015 12:55:51 -0800 (PST)
Received: from mail.amsl.com (mail.amsl.com [4.31.198.40]) by ietfa.amsl.com (Postfix) with ESMTP id C4CD51A010B for <netmod@ietf.org>; Tue,  3 Nov 2015 12:55:51 -0800 (PST)
Received: from localhost (localhost [127.0.0.1]) by c8a.amsl.com (Postfix) with ESMTP id 0D0471E5A2E for <netmod@ietf.org>; Tue,  3 Nov 2015 12:55:15 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
Received: from c8a.amsl.com ([127.0.0.1]) by localhost (c8a.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id pInXxDzm2Q5p for <netmod@ietf.org>; Tue,  3 Nov 2015 12:55:14 -0800 (PST)
Received: from dhcp-84-117.meeting.ietf94.jp (dhcp-84-117.meeting.ietf94.jp [133.93.84.117]) by c8a.amsl.com (Postfix) with ESMTPA id B591C1E5A26 for <netmod@ietf.org>; Tue,  3 Nov 2015 12:55:14 -0800 (PST)
From: Alexa Morris <amorris@amsl.com>
Content-Type: text/plain; charset=windows-1252
Content-Transfer-Encoding: quoted-printable
Date: Tue, 3 Nov 2015 12:55:52 -0800
Message-Id: <44997DCB-D627-4873-B541-1250B53CE08F@amsl.com>
To: netmod@ietf.org
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
Sendlaterdate: Tue, 3 Nov 2015 12:55:52 -0800
X-Mailer: Apple Mail (2.1878.6)
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/XYAKz0K_sQaSx32iX3OMCGXP2ZI>
Subject: [netmod] Queue for NETMOD Remote Attendees
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 03 Nov 2015 20:55:53 -0000

If you are planning to participate in the NETMOD session here at IETF 94 =
today =97 either locally in Yokohama or as a remote participant =97 we =
want to make sure that you are aware that the IETF is providing a remote =
participants with a fairly new way to ask questions or make comments. In =
addition to using the Jabber room, for the NETMOD session there is also =
the opportunity for remote participants to enter a virtual queue and ask =
questions directly into the meeting room.=20

This experimental queue was used in several sessions at IETF 92 and IETF =
93, so you may have already seen it in action. There will be two queues =
for the NETMOD session =97 a virtual queue and an actual (in-room) =
queue. Remote attendees will log into the Meetecho platform and will =
have a virtual mic line that they can enter if they have a question or =
comment. In-room participants will continue to use normal mic lines.=20

Instructions for remote participants are at =
http://ietf94.conf.meetecho.com/index.php/Remote_Participation.=20

Information on how to join the Meetecho session is at =
http://ietf94.conf.meetecho.com/.

Verify that you are WebRTC compliant (required to use the virtual queue) =
by performing a self-test here: =
http://ietf94.conf.meetecho.com/index.php/Self_Test.=20

Regards,
Alexa

----------
Alexa Morris / Executive Director / IETF
48377 Fremont Blvd., Suite 117, Fremont, CA  94538
Phone: +1.510.492.4089 / Fax: +1.510.492.4001
Email: amorris@amsl.com

Managed by Association Management Solutions (AMS)
Forum Management, Meeting and Event Planning
www.amsl.com <http://www.amsl.com/>


From nobody Tue Nov  3 15:06:01 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 5FAF91B3578 for <netmod@ietfa.amsl.com>; Tue,  3 Nov 2015 15:05:59 -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, 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 aVWt5nYwJAnl for <netmod@ietfa.amsl.com>; Tue,  3 Nov 2015 15:05:57 -0800 (PST)
Received: from alln-iport-6.cisco.com (alln-iport-6.cisco.com [173.37.142.93]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id DC3E91B3587 for <netmod@ietf.org>; Tue,  3 Nov 2015 15:05:56 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=27821; q=dns/txt; s=iport; t=1446591956; x=1447801556; h=from:to:subject:date:message-id:mime-version; bh=5SMVwFHGExiM73W7+9A4ABebdxmDRU2wYbznj5dqnj8=; b=ZUYvuHQttt3bF0YVG6uZyvnAZT6roz3v89RwqPYIlYc8oEJ/dcOI+SN0 Tqqz534QaqO71BnNIBn57+PXGDR/pdd0sKvw4T83JJxzZENKNogebbd9K D1j1I3wVEUiww8dOoUmQh/ekOcystFwoVR/ADlKCldp8sc36yu6izuSdn s=;
X-Files: ietf-syslog.diff : 4109
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0C6AgCCPDlW/4wNJK1egm5NgUIGvT0OgV2GEwIcgSc4FAEBAQEBAQGBCoQ1AQIEIwpeAQYCEQMBAhcBEAMCBDAUCQoEARIOiCCTaJ00kQcBAQEBAQEBAQEBAQEBAQEBAQEBAQEPCYZVghCCboRCORYSAQuCRi+BFAEElkYBglGBYYYqgkWBWoQ/kjODcQEfAUOEBHKDbAcXIwGBBgEBAQ
X-IronPort-AV: E=Sophos;i="5.20,240,1444694400";  d="diff'?scan'208,217";a="204595880"
Received: from alln-core-7.cisco.com ([173.36.13.140]) by alln-iport-6.cisco.com with ESMTP; 03 Nov 2015 23:05:56 +0000
Received: from XCH-ALN-012.cisco.com (xch-aln-012.cisco.com [173.36.7.22]) by alln-core-7.cisco.com (8.14.5/8.14.5) with ESMTP id tA3N5tWu031333 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Tue, 3 Nov 2015 23:05:55 GMT
Received: from xch-aln-015.cisco.com (173.36.7.25) by XCH-ALN-012.cisco.com (173.36.7.22) with Microsoft SMTP Server (TLS) id 15.0.1104.5; Tue, 3 Nov 2015 17:05:55 -0600
Received: from xch-aln-015.cisco.com ([173.36.7.25]) by XCH-ALN-015.cisco.com ([173.36.7.25]) with mapi id 15.00.1104.000; Tue, 3 Nov 2015 17:05:55 -0600
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-05: terminal logging vs session logging
Thread-Index: AQHRFowxiJu8M2C8wk64/MHDHi07XQ==
Date: Tue, 3 Nov 2015 23:05:55 +0000
Message-ID: <89450EC6-8692-44C8-9782-584B440655D4@cisco.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [128.107.157.203]
Content-Type: multipart/mixed; boundary="_004_89450EC6869244C89782584B440655D4ciscocom_"
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/yBIfLsq6KwTMoqMw7E5Qp6DBge0>
Subject: Re: [netmod] syslog-model-05: terminal logging vs session logging
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 03 Nov 2015 23:05:59 -0000

--_004_89450EC6869244C89782584B440655D4ciscocom_
Content-Type: multipart/alternative;
	boundary="_000_89450EC6869244C89782584B440655D4ciscocom_"

--_000_89450EC6869244C89782584B440655D4ciscocom_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

SmFzb24sDQoNCkFzIGFsd2F5cywgdGhhbmtzIGZvciB5b3VyIGZlZWRiYWNrIQ0KDQpJIGFtIGNv
bnNvbGlkYXRpbmcgeW91ciB0d28gc2V0cyBvZiBjb21tZW50cyBpbnRvIG9uZSByZXBseSB3aXRo
IG15IHJlc3BvbnNlcyBhcyBbY2x3XToNCg0KW2pzXSBJ4oCZbSBub3Qgc3VyZSBpdCBpcyB0eXBp
Y2FsIHRvIGhhdmUgY29uZmlndXJhdGlvbiBpbiBhIGRldmljZSB0aGF0IGJhc2ljYWxseSBpbnN0
cnVjdHMgdGhlIGRldmljZSB0byBlbmFibGUgbG9nZ2luZyB0byB0aGUgdGVybWluYWwgZm9yIOKA
nHVzZXIgeOKAnSB3aGVuZXZlciB0aGF0IHVzZXIgbGF0ZXIgbG9ncyBpbiAoYW5kIGlmIHRoZXkg
aGFkIG11bHRpcGxlIGxvZ2luIHNlc3Npb25zIHRoZW4gcHJlc3VtYWJseSBsb2cgZXZlbnRzIHdv
dWxkIGJlIGRlbGl2ZXJlZCB0byBlYWNoIHNlc3Npb24pLg0KDQpbanNdIElzbuKAmXQgbG9nZ2lu
ZyB0byBhIHRlcm1pbmFsIG1vcmUgdHlwaWNhbGx5IGVuYWJsZWQgb24gYSBDTEkgKnNlc3Npb24q
IGJhc2lzIHJhdGhlciB0aGFuIGNvbmZpZ3VyZWQgYWdhaW5zdCBhIHBhcnRpY3VsYXIgdXNlciA/
DQoNCltjbHddIFRoZXJlIGFyZSB0d28gY29uY2VwdHM6IGxvZ2dpbmcgdG8gdGVybWluYWxzIG5v
IG1hdHRlciB3aGljaCB1c2VyIGlzIGxvZ2dlZCBpbiAtIENpc2NvICJsb2dnaW5nIG1vbml0b3Ii
LCAgYW5kIExpbnV4IOKAnS9kZXYvdHR5eOKAmeKAmCBzdXBwb3J0IHRoaXMgY29uY2VwdDsgbG9n
Z2luZyB0byBzcGVjaWZpYyBvciBhbGwgdXNlciBzZXNzaW9ucyAoZXZlbiBtdWx0aXBsZSBzZXNz
aW9ucyB3aXRoIHRoZSBzYW1lIHVzZXIgaWQpIOKAkyBMaW51eCAiOm9tdXNybXNnOnJvb3QiLCAi
Om9tdXNybXNnOioiLCBhbmQgSnVuaXBlciAidXNlciAodXNlcm5hbWUgfCAqKSIgc3VwcG9ydCB0
aGlzIGNvbmNlcHQuIEEgSnVuaXBlciBleGFtcGxlOiB3aGVuIHRoZSB1c2VyIGxvZ3MgaW4sIGxv
Z2dpbmcgYmVnaW5zIGlmIHRoZXJlIGlzIGEgdXNlcm5hbWUgbWF0Y2ggdXNpbmcgdGhpcyBKdW5v
cyBjb25maWcgY29tbWFuZCAoYXN0ZXJpc2sgbWVhbnMgYWxsIHVzZXJzKToNCg0Kc3lzbG9nIHsN
CiAgIHVzZXIgKDx1c2VybmFtZT4gfCAqKSB7DQogICAgICA8ZmFjaWxpdHk+IDxzZXZlcml0eT47
DQogICAgICBtYXRjaCAicmVndWxhci1leHByZXNzaW9uIjsNCiAgIH0NCn0NCg0KSSBhZ3JlZSB0
aGF0IHRoZSBtb2RlbCB3b3VsZCBiZSBjbGVhcmVyIGlmIHRoZXNlIGNhc2VzIHdlcmUgdHJlYXRl
ZCBzZXBhcmF0ZWx5LiBJIGNhcHR1cmVkIGJvdGggcmVxdWlyZW1lbnRzIGluIGEgcmV2aXNpb24g
dG8gdGhlIHByb3Bvc2VkIHN5c2xvZyBtb2RlbCB3aGVyZSBJIG1vZGlmeSB0aGUgdGVybWluYWwg
YWN0aW9uIGludG8gdHdvIGFjdGlvbnM6IG9uZSBmb3IgdGVybWluYWwgYW5kIG9uZSBmb3Igc2Vz
c2lvbi4gVGhlIGRpZmYgaXMgc21hbGwgYW5kIGlzIGF0dGFjaGVkLg0KDQpQbGVhc2UgbGV0IG1l
IGtub3cgd2hhdCB5b3UgdGhpbmsuDQoNCg0KW2pzXSBUaGUgaW50cm9kdWN0aW9uIHNheXMgIldl
IGFyZSB1c2luZyBkZWZpbml0aW9ucyBvZiBTeXNsb2cgcHJvdG9jb2wgZnJvbSBbUkZDMzE2NF0g
aW4gdGhpcyBkcmFmdC4iIGJ1dCB0aGUgWUFORyBtb2RlbCBtb3N0bHkgcmVmZXJlbmNlcyA1NDI0
Lg0KDQpbY2x3XSBJIHdpbGwgaW5jbHVkZSB0aGlzIGluIHRoZSBuZXh0IHJldmlzaW9uLg0KDQoN
Cltqc10gIEluIHNlY3Rpb24gMyBtYXliZSB1c2UgdGhlIHRlcm0gIlJlbW90ZSBDb2xsZWN0b3Io
cykiIGluc3RlYWQgb2YgU2VydmVyKHMpID8gQ29sbGVjdG9yIHNlZW1zIG1vcmUgaW4gbGluZSB3
aXRoIFJGQzU0MjQgKG9yICJSZW1vdGUgUmVjZWl2ZXIiIGlmIG90aGVycyBwcmVmZXIgdGhhdCku
DQoNCltjbHddIEkgd2lsbCBpbmNsdWRlIHRoaXMgaW4gdGhlIG5leHQgcmV2aXNpb24uDQoNCg0K
W2pzXSAgSW4gdGhlIFNlY3Rpb24gMyBmaWd1cmUgbWFrZSBhbGwgdGhlIERpc3RyaWJ1dG9ycyBo
YXZlIGEgY29tbW9uIHN5bnRheCBmb3IgcGx1cmFsIHZzIHNpbmd1bGFyICJMb2cgQnVmZmVyKHMp
IiwgIkxvZyBGaWxlKHMpIiwgIlJlbW90ZSBDb2xsZWN0b3IocykiLCDigJxVc2VyIFRlcm1pbmFs
KHMp4oCdDQoNCltjbHddIEkgd2lsbCBpbmNsdWRlIHRoaXMgaW4gdGhlIG5leHQgcmV2aXNpb24u
DQoNCg0KW2pzXSAgRG9jdW1lbnQgaXMgbWlzc2luZyB0aGUgc3RhbmRhcmQgbGVnZW5kIGZvciB0
aGUgUFlBTkcgdHJlZQ0KDQpbY2x3XSBJIHdpbGwgaW5jbHVkZSB0aGlzIGluIHRoZSBuZXh0IHJl
dmlzaW9uLg0KDQoNClRoYW5rcywNCg0KQ2x5ZGUNCg0KRnJvbTogbmV0bW9kIDxuZXRtb2QtYm91
bmNlc0BpZXRmLm9yZzxtYWlsdG86bmV0bW9kLWJvdW5jZXNAaWV0Zi5vcmc+PiBvbiBiZWhhbGYg
b2YgIlN0ZXJuZSwgSmFzb24gKEphc29uKSIgPGphc29uLnN0ZXJuZUBhbGNhdGVsLWx1Y2VudC5j
b208bWFpbHRvOmphc29uLnN0ZXJuZUBhbGNhdGVsLWx1Y2VudC5jb20+Pg0KRGF0ZTogV2VkbmVz
ZGF5LCBPY3RvYmVyIDI4LCAyMDE1IGF0IDExOjUwIEFNDQpUbzogIm5ldG1vZEBpZXRmLm9yZzxt
YWlsdG86bmV0bW9kQGlldGYub3JnPiIgPG5ldG1vZEBpZXRmLm9yZzxtYWlsdG86bmV0bW9kQGll
dGYub3JnPj4NClN1YmplY3Q6IFtuZXRtb2RdIHN5c2xvZy1tb2RlbC0wNTogdGVybWluYWwgbG9n
Z2luZyB2cyBzZXNzaW9uIGxvZ2dpbmcNCg0KSGkgYWxsLA0KDQpPbmUgb2YgdGhlIHN5c2xvZyBk
ZXN0aW5hdGlvbnMgaW4gdGhlIG1vZGVsIGlzIHRoZSDigJx0ZXJtaW5hbOKAnSAoZm9yIGFsbCB1
c2VycyBvciBzcGVjaWZpYyB1c2VycykuDQoNCklzbuKAmXQgbG9nZ2luZyB0byBhIHRlcm1pbmFs
IG1vcmUgdHlwaWNhbGx5IGVuYWJsZWQgb24gYSBDTEkgKnNlc3Npb24qIGJhc2lzIHJhdGhlciB0
aGFuIGNvbmZpZ3VyZWQgYWdhaW5zdCBhIHBhcnRpY3VsYXIgdXNlciA/DQoNCkkgYmVsaWV2ZSBp
dCBpcyBhbHNvIHR5cGljYWwgZm9yIHNlc3Npb24gbG9nZ2luZyB0byBzdG9wL2Rpc2FwcGVhciB3
aGVuIHRoYXQgc2Vzc2lvbiBpcyBlbmRlZCAoaS5lLiBpdCBpcyBub3QgcGVyc2lzdGVudCBjb25m
aWcpLg0KDQpJ4oCZbSBub3Qgc3VyZSBpdCBpcyB0eXBpY2FsIHRvIGhhdmUgY29uZmlndXJhdGlv
biBpbiBhIGRldmljZSB0aGF0IGJhc2ljYWxseSBpbnN0cnVjdHMgdGhlIGRldmljZSB0byBlbmFi
bGUgbG9nZ2luZyB0byB0aGUgdGVybWluYWwgZm9yIOKAnHVzZXIgeOKAnSB3aGVuZXZlciB0aGF0
IHVzZXIgbGF0ZXIgbG9ncyBpbiAoYW5kIGlmIHRoZXkgaGFkIG11bHRpcGxlIGxvZ2luIHNlc3Np
b25zIHRoZW4gcHJlc3VtYWJseSBsb2cgZXZlbnRzIHdvdWxkIGJlIGRlbGl2ZXJlZCB0byBlYWNo
IHNlc3Npb24pLg0KDQpJIHRoaW5rIHNlc3Npb24gbG9nZ2luZyBpcyBzb21ldGhpbmcgdGhhdCBp
cyByZWFsbHkgcHVyZWx5IENMSSAoaS5lLiBpbnRlcmFjdGl2ZSBzZXNzaW9ucyB3aXRoIGh1bWFu
IHVzZXJzKSBhbmQgbWF5YmUgbm90IGV2ZW4gYXBwbGljYWJsZSB0byBjb25maWd1cmF0aW9uIHZp
YSBORVRDT05GIChzaW5jZSB3ZeKAmWQgbmV2ZXIgd2FudCB0byBzZW5kIGEgc3RyZWFtIG9mIHN5
c2xvZyBldmVudHMgYXMgdGV4dCB0byB0aGUgTkVUQ09ORiBjbGllbnQvc2Vzc2lvbiBsaWtlIHdl
IGRvIHRvIHRoZSB0ZXJtaW5hbCBmb3IgYSBDTEkgdXNlcikuDQoNCkluIHNlY3Rpb24gNSBvZiB0
aGUgZHJhZnQgaXQgbWVudGlvbnMgdGhhdCBzeXNsb2c6bG9nLWFjdGlvbnMvdGVybWluYWwgbWFw
cyB0byBDaXNjbyBOWE9TIOKAnGxvZ2dpbmcgbW9uaXRvciAy4oCdLiAgSSBiZWxpZXZlIHRoYXQg
aXMgaW50ZW5kZWQgdG8gZW5hYmxlIGxvZ3MgdG8gYSBwYXJ0aWN1bGFyICpzZXNzaW9uKiAobm90
IHVzZXIpLiAgIElPUy1YUiBiZWhhdmlvciBpcyBzaW1pbGFyLiAgVGhlIEFMVSBTUiBPUyBsb2dn
aW5nIGNvbmZpZyBoYXMgdGhlIGNvbmNlcHQgb2Ygc2VuZGluZyAoZW5hYmxpbmcpIGxvZyBldmVu
dHMgdG8gYSBwYXJ0aWN1bGFyIHNlc3Npb24gKGJ1dCBub3QgY29uZmlndXJlZCBhZ2FpbnN0IGEg
dXNlcikuDQoNCkphc29uDQoNCg0KDQo=

--_000_89450EC6869244C89782584B440655D4ciscocom_
Content-Type: text/html; charset="utf-8"
Content-ID: <56B97C105CAD7843B99AC4B44FF800D5@emea.cisco.com>
Content-Transfer-Encoding: base64

PGh0bWw+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0i
dGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjwvaGVhZD4NCjxib2R5IHN0eWxlPSJ3b3JkLXdy
YXA6IGJyZWFrLXdvcmQ7IC13ZWJraXQtbmJzcC1tb2RlOiBzcGFjZTsgLXdlYmtpdC1saW5lLWJy
ZWFrOiBhZnRlci13aGl0ZS1zcGFjZTsiPg0KPGRpdj4NCjxkaXYgc3R5bGU9ImNvbG9yOiByZ2Io
MCwgMCwgMCk7IGZvbnQtZmFtaWx5OiBDYWxpYnJpLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE0
cHg7Ij4NCjxmb250IGZhY2U9IkNhbGlicmkiPkphc29uLDwvZm9udD48L2Rpdj4NCjxkaXYgc3R5
bGU9ImNvbG9yOiByZ2IoMCwgMCwgMCk7IGZvbnQtZmFtaWx5OiBDYWxpYnJpLCBzYW5zLXNlcmlm
OyBmb250LXNpemU6IDE0cHg7Ij4NCjxmb250IGZhY2U9IkNhbGlicmkiPjxicj4NCjwvZm9udD48
L2Rpdj4NCjxkaXYgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMCk7IGZvbnQtZmFtaWx5OiBDYWxp
YnJpLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE0cHg7Ij4NCjxmb250IGZhY2U9IkNhbGlicmki
PkFzIGFsd2F5cywgdGhhbmtzIGZvciB5b3VyIGZlZWRiYWNrITwvZm9udD48L2Rpdj4NCjxkaXYg
c3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMCk7IGZvbnQtZmFtaWx5OiBDYWxpYnJpLCBzYW5zLXNl
cmlmOyBmb250LXNpemU6IDE0cHg7Ij4NCjxmb250IGZhY2U9IkNhbGlicmkiPjxicj4NCjwvZm9u
dD48L2Rpdj4NCjxkaXYgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMCk7IGZvbnQtZmFtaWx5OiBD
YWxpYnJpLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE0cHg7Ij4NCjxmb250IGZhY2U9IkNhbGli
cmkiPkkgYW0gY29uc29saWRhdGluZyB5b3VyIHR3byBzZXRzIG9mIGNvbW1lbnRzIGludG8gb25l
IHJlcGx5IHdpdGggbXkgcmVzcG9uc2VzIGFzIFtjbHddOjwvZm9udD48L2Rpdj4NCjxkaXYgc3R5
bGU9ImNvbG9yOiByZ2IoMCwgMCwgMCk7IGZvbnQtZmFtaWx5OiBDYWxpYnJpLCBzYW5zLXNlcmlm
OyBmb250LXNpemU6IDE0cHg7Ij4NCjxmb250IGZhY2U9IkNhbGlicmkiPjxicj4NCjwvZm9udD48
L2Rpdj4NCjxkaXYgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMCk7IGZvbnQtZmFtaWx5OiBDYWxp
YnJpLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE0cHg7Ij4NCjxmb250IGZhY2U9IkNhbGlicmki
Pltqc10gSeKAmW0gbm90IHN1cmUgaXQgaXMgdHlwaWNhbCB0byBoYXZlIGNvbmZpZ3VyYXRpb24g
aW4gYSBkZXZpY2UgdGhhdCBiYXNpY2FsbHkgaW5zdHJ1Y3RzIHRoZSBkZXZpY2UgdG8gZW5hYmxl
IGxvZ2dpbmcgdG8gdGhlIHRlcm1pbmFsIGZvciDigJx1c2VyIHjigJ0gd2hlbmV2ZXIgdGhhdCB1
c2VyIGxhdGVyIGxvZ3MgaW4gKGFuZCBpZiB0aGV5IGhhZCBtdWx0aXBsZSBsb2dpbiBzZXNzaW9u
cyB0aGVuIHByZXN1bWFibHkNCiBsb2cgZXZlbnRzIHdvdWxkIGJlIGRlbGl2ZXJlZCB0byBlYWNo
IHNlc3Npb24pLjwvZm9udD48L2Rpdj4NCjxkaXYgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMCk7
IGZvbnQtZmFtaWx5OiBDYWxpYnJpLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE0cHg7Ij4NCjxm
b250IGZhY2U9IkNhbGlicmkiPjxicj4NCjwvZm9udD48L2Rpdj4NCjxkaXYgc3R5bGU9ImNvbG9y
OiByZ2IoMCwgMCwgMCk7IGZvbnQtZmFtaWx5OiBDYWxpYnJpLCBzYW5zLXNlcmlmOyBmb250LXNp
emU6IDE0cHg7Ij4NCjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTogQ2FsaWJyaTsiPltqc10gSXNu
4oCZdCBsb2dnaW5nIHRvIGEgdGVybWluYWwgbW9yZSB0eXBpY2FsbHkgZW5hYmxlZCBvbiBhIENM
SSAqPC9zcGFuPjxiIHN0eWxlPSJmb250LWZhbWlseTogQ2FsaWJyaTsiPnNlc3Npb248L2I+PHNw
YW4gc3R5bGU9ImZvbnQtZmFtaWx5OiBDYWxpYnJpOyI+KiBiYXNpcyByYXRoZXIgdGhhbiBjb25m
aWd1cmVkIGFnYWluc3QgYSBwYXJ0aWN1bGFyIHVzZXIgPzwvc3Bhbj48L2Rpdj4NCjxkaXYgc3R5
bGU9ImNvbG9yOiByZ2IoMCwgMCwgMCk7IGZvbnQtZmFtaWx5OiBDYWxpYnJpLCBzYW5zLXNlcmlm
OyBmb250LXNpemU6IDE0cHg7Ij4NCjxmb250IGZhY2U9IkNhbGlicmkiPjxicj4NCjwvZm9udD48
L2Rpdj4NCjxkaXY+PGZvbnQgZmFjZT0iQ2FsaWJyaSI+PGZvbnQgZmFjZT0iQ2FsaWJyaSxzYW5z
LXNlcmlmIj5bY2x3XSBUaGVyZSBhcmUmbmJzcDt0d28gY29uY2VwdHM6IGxvZ2dpbmcgdG8gdGVy
bWluYWxzIG5vIG1hdHRlciB3aGljaCB1c2VyIGlzIGxvZ2dlZCBpbiAtIENpc2NvICZxdW90O2xv
Z2dpbmcgbW9uaXRvciZxdW90OywgJm5ic3A7YW5kIExpbnV4DQo8L2ZvbnQ+PHNwYW4gc3R5bGU9
ImNvbG9yOiByZ2IoMCwgMCwgMCk7IGZvbnQtZmFtaWx5OiBDYWxpYnJpLCBzYW5zLXNlcmlmOyBm
b250LXNpemU6IDE0cHg7IHRleHQtYWxpZ246IGp1c3RpZnk7IGJhY2tncm91bmQtY29sb3I6IHJn
YigyNTUsIDI1NSwgMjU1KTsiPuKAnS9kZXYvdHR5eOKAmeKAmDwvc3Bhbj48Zm9udCBmYWNlPSJD
YWxpYnJpLHNhbnMtc2VyaWYiPiZuYnNwO3N1cHBvcnQgdGhpcyBjb25jZXB0OyZuYnNwO2xvZ2dp
bmcgdG8gc3BlY2lmaWMgb3IgYWxsIHVzZXINCiBzZXNzaW9ucyAoZXZlbiZuYnNwOzwvZm9udD5t
dWx0aXBsZSBzZXNzaW9ucyB3aXRoIHRoZSBzYW1lIHVzZXIgaWQpPGZvbnQgZmFjZT0iQ2FsaWJy
aSxzYW5zLXNlcmlmIj4mbmJzcDvigJMmbmJzcDtMaW51eCAmcXVvdDs8L2ZvbnQ+PHNwYW4gc3R5
bGU9ImNvbG9yOiByZ2IoMCwgMCwgMCk7IGZvbnQtZmFtaWx5OiBDYWxpYnJpLCBzYW5zLXNlcmlm
OyBmb250LXNpemU6IDE0cHg7IHRleHQtYWxpZ246IGp1c3RpZnk7IGJhY2tncm91bmQtY29sb3I6
IHJnYigyNTUsIDI1NSwgMjU1KTsiPjpvbXVzcm1zZzpyb290JnF1b3Q7LCZuYnNwOzwvc3Bhbj48
L2ZvbnQ+PHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMCk7IGZvbnQtZmFtaWx5OiBDYWxp
YnJpOyBmb250LXNpemU6IDE0cHg7Ij4mcXVvdDs8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiBy
Z2IoMCwgMCwgMCk7IGZvbnQtZmFtaWx5OiBDYWxpYnJpOyBmb250LXNpemU6IDE0cHg7IHRleHQt
YWxpZ246IGp1c3RpZnk7IGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTsiPjpv
bXVzcm1zZzoqJnF1b3Q7PC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDApOyBm
b250LWZhbWlseTogQ2FsaWJyaTsgZm9udC1zaXplOiAxNHB4OyB0ZXh0LWFsaWduOiBqdXN0aWZ5
OyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7Ij4sDQogYW5kPC9zcGFuPjxz
cGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDApOyBmb250LWZhbWlseTogQ2FsaWJyaTsgZm9u
dC1zaXplOiAxNHB4OyI+Jm5ic3A7SnVuaXBlciAmcXVvdDt1c2VyICh1c2VybmFtZSB8ICopJnF1
b3Q7IHN1cHBvcnQgdGhpcyBjb25jZXB0LiBBIEp1bmlwZXIgZXhhbXBsZTogd2hlbiB0aGUgdXNl
ciBsb2dzIGluLCBsb2dnaW5nIGJlZ2lucyBpZiB0aGVyZSBpcyBhIHVzZXJuYW1lIG1hdGNoIHVz
aW5nIHRoaXMgSnVub3MgY29uZmlnIGNvbW1hbmQgKGFzdGVyaXNrDQogbWVhbnMgYWxsIHVzZXJz
KTo8L3NwYW4+PC9kaXY+DQo8ZGl2IHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDApOyBmb250LWZh
bWlseTogQ2FsaWJyaSwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxNHB4OyI+DQo8Zm9udCBmYWNl
PSJDYWxpYnJpIj48YnI+DQo8L2ZvbnQ+PC9kaXY+DQo8ZGl2IHN0eWxlPSJjb2xvcjogcmdiKDAs
IDAsIDApOyBmb250LWZhbWlseTogQ2FsaWJyaSwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxNHB4
OyI+DQo8Zm9udCBmYWNlPSJDYWxpYnJpIj4NCjxkaXY+c3lzbG9nIHs8L2Rpdj4NCjxkaXY+Jm5i
c3A7ICZuYnNwO3VzZXIgKCZsdDt1c2VybmFtZSZndDsgfCAqKSB7PC9kaXY+DQo8ZGl2PiZuYnNw
OyAmbmJzcDsgJm5ic3A7ICZsdDtmYWNpbGl0eSZndDsgJmx0O3NldmVyaXR5Jmd0Ozs8L2Rpdj4N
CjxkaXY+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgbWF0Y2ggJnF1b3Q7cmVndWxhci1leHByZXNzaW9u
JnF1b3Q7OzwvZGl2Pg0KPGRpdj4mbmJzcDsgJm5ic3A7fTwvZGl2Pg0KPGRpdj59PC9kaXY+DQo8
L2ZvbnQ+PC9kaXY+DQo8ZGl2IHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDApOyBmb250LWZhbWls
eTogQ2FsaWJyaSwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxNHB4OyI+DQo8Zm9udCBmYWNlPSJD
YWxpYnJpIj48YnI+DQo8L2ZvbnQ+PC9kaXY+DQo8ZGl2Pjxmb250IGZhY2U9IkNhbGlicmkiPkk8
L2ZvbnQ+PGZvbnQgZmFjZT0iQ2FsaWJyaSIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMCk7IGZv
bnQtZmFtaWx5OiBDYWxpYnJpLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE0cHg7Ij4mbmJzcDth
Z3JlZSB0aGF0IHRoZSBtb2RlbCB3b3VsZCBiZSBjbGVhcmVyIGlmIHRoZXNlIGNhc2VzIHdlcmUg
dHJlYXRlZCBzZXBhcmF0ZWx5LiBJJm5ic3A7Y2FwdHVyZWQgYm90aCByZXF1aXJlbWVudHMgaW4g
YSByZXZpc2lvbg0KIHRvIHRoZSBwcm9wb3NlZCBzeXNsb2cgbW9kZWwgd2hlcmUmbmJzcDtJIG1v
ZGlmeSB0aGUgdGVybWluYWwgYWN0aW9uIGludG8gdHdvIGFjdGlvbnM6IG9uZSBmb3IgdGVybWlu
YWwgYW5kIG9uZSBmb3Igc2Vzc2lvbi4gVGhlIGRpZmYgaXMgc21hbGwgYW5kIGlzIGF0dGFjaGVk
LjwvZm9udD48L2Rpdj4NCjxkaXYgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMCk7IGZvbnQtZmFt
aWx5OiBDYWxpYnJpLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE0cHg7Ij4NCjxicj4NCjwvZGl2
Pg0KPGRpdiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAwKTsgZm9udC1mYW1pbHk6IENhbGlicmks
IHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTRweDsiPg0KPGZvbnQgZmFjZT0iQ2FsaWJyaSI+UGxl
YXNlIGxldCBtZSBrbm93IHdoYXQgeW91IHRoaW5rLjwvZm9udD48L2Rpdj4NCjxkaXYgc3R5bGU9
ImNvbG9yOiByZ2IoMCwgMCwgMCk7IGZvbnQtZmFtaWx5OiBDYWxpYnJpLCBzYW5zLXNlcmlmOyBm
b250LXNpemU6IDE0cHg7Ij4NCjxmb250IGZhY2U9IkNhbGlicmkiPjxicj4NCjwvZm9udD48L2Rp
dj4NCjxkaXYgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMCk7IGZvbnQtZmFtaWx5OiBDYWxpYnJp
LCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE0cHg7Ij4NCjxmb250IGZhY2U9IkNhbGlicmkiPjxi
cj4NCjwvZm9udD48L2Rpdj4NCjxkaXYgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMCk7IGZvbnQt
ZmFtaWx5OiBDYWxpYnJpLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE0cHg7Ij4NCjxmb250IGZh
Y2U9IkNhbGlicmkiPltqc10mbmJzcDtUaGUgaW50cm9kdWN0aW9uIHNheXMgJnF1b3Q7V2UgYXJl
IHVzaW5nIGRlZmluaXRpb25zIG9mIFN5c2xvZyBwcm90b2NvbCBmcm9tIFtSRkMzMTY0XSBpbiB0
aGlzIGRyYWZ0LiZxdW90OyBidXQgdGhlIFlBTkcgbW9kZWwgbW9zdGx5IHJlZmVyZW5jZXMgNTQy
NC48L2ZvbnQ+PC9kaXY+DQo8ZGl2IHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDApOyBmb250LWZh
bWlseTogQ2FsaWJyaSwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxNHB4OyI+DQo8ZGl2Pjxmb250
IGZhY2U9IkNhbGlicmkiPjxicj4NCjwvZm9udD48L2Rpdj4NCjxkaXY+PGZvbnQgZmFjZT0iQ2Fs
aWJyaSI+W2Nsd10gSSB3aWxsIGluY2x1ZGUgdGhpcyBpbiB0aGUgbmV4dCByZXZpc2lvbi48L2Zv
bnQ+PC9kaXY+DQo8ZGl2Pjxmb250IGZhY2U9IkNhbGlicmkiPjxicj4NCjwvZm9udD48L2Rpdj4N
CjxkaXY+PGZvbnQgZmFjZT0iQ2FsaWJyaSI+PGJyPg0KPC9mb250PjwvZGl2Pg0KPGRpdj48c3Bh
biBzdHlsZT0iZm9udC1mYW1pbHk6IENhbGlicmk7Ij5banNdJm5ic3A7PC9zcGFuPjxmb250IGZh
Y2U9IkNhbGlicmkiPiZuYnNwO0luIHNlY3Rpb24gMyBtYXliZSB1c2UgdGhlIHRlcm0gJnF1b3Q7
UmVtb3RlIENvbGxlY3RvcihzKSZxdW90OyBpbnN0ZWFkIG9mIFNlcnZlcihzKSA/IENvbGxlY3Rv
ciBzZWVtcyBtb3JlIGluIGxpbmUgd2l0aCBSRkM1NDI0IChvciAmcXVvdDtSZW1vdGUgUmVjZWl2
ZXImcXVvdDsgaWYgb3RoZXJzIHByZWZlciB0aGF0KS48L2ZvbnQ+PC9kaXY+DQo8ZGl2Pjxmb250
IGZhY2U9IkNhbGlicmkiPjxicj4NCjwvZm9udD48L2Rpdj4NCjxkaXY+PGZvbnQgZmFjZT0iQ2Fs
aWJyaSI+W2Nsd10mbmJzcDs8L2ZvbnQ+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiBDYWxpYnJp
OyI+SSB3aWxsIGluY2x1ZGUgdGhpcyBpbiB0aGUgbmV4dCByZXZpc2lvbi48L3NwYW4+PC9kaXY+
DQo8ZGl2Pjxmb250IGZhY2U9IkNhbGlicmkiPjxicj4NCjwvZm9udD48L2Rpdj4NCjxkaXY+PGZv
bnQgZmFjZT0iQ2FsaWJyaSI+PGJyPg0KPC9mb250PjwvZGl2Pg0KPGRpdj48c3BhbiBzdHlsZT0i
Zm9udC1mYW1pbHk6IENhbGlicmk7Ij5banNdJm5ic3A7PC9zcGFuPjxmb250IGZhY2U9IkNhbGli
cmkiPiZuYnNwO0luIHRoZSBTZWN0aW9uIDMgZmlndXJlIG1ha2UgYWxsIHRoZSBEaXN0cmlidXRv
cnMgaGF2ZSBhIGNvbW1vbiBzeW50YXggZm9yIHBsdXJhbCB2cyBzaW5ndWxhciAmcXVvdDtMb2cg
QnVmZmVyKHMpJnF1b3Q7LCAmcXVvdDtMb2cgRmlsZShzKSZxdW90OywgJnF1b3Q7UmVtb3RlIENv
bGxlY3RvcihzKSZxdW90Oywg4oCcVXNlciBUZXJtaW5hbChzKeKAnTwvZm9udD48L2Rpdj4NCjxk
aXY+PGZvbnQgZmFjZT0iQ2FsaWJyaSI+PGJyPg0KPC9mb250PjwvZGl2Pg0KPGRpdj48Zm9udCBm
YWNlPSJDYWxpYnJpIj5bY2x3XSZuYnNwOzwvZm9udD48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6
IENhbGlicmk7Ij5JIHdpbGwgaW5jbHVkZSB0aGlzIGluIHRoZSBuZXh0IHJldmlzaW9uLjwvc3Bh
bj48L2Rpdj4NCjxkaXY+PGZvbnQgZmFjZT0iQ2FsaWJyaSI+PGJyPg0KPC9mb250PjwvZGl2Pg0K
PGRpdj48Zm9udCBmYWNlPSJDYWxpYnJpIj48YnI+DQo8L2ZvbnQ+PC9kaXY+DQo8ZGl2PjxzcGFu
IHN0eWxlPSJmb250LWZhbWlseTogQ2FsaWJyaTsiPltqc10mbmJzcDs8L3NwYW4+PGZvbnQgZmFj
ZT0iQ2FsaWJyaSI+Jm5ic3A7RG9jdW1lbnQgaXMgbWlzc2luZyB0aGUgc3RhbmRhcmQgbGVnZW5k
IGZvciB0aGUgUFlBTkcgdHJlZTwvZm9udD48L2Rpdj4NCjwvZGl2Pg0KPGRpdiBzdHlsZT0iY29s
b3I6IHJnYigwLCAwLCAwKTsgZm9udC1mYW1pbHk6IENhbGlicmksIHNhbnMtc2VyaWY7IGZvbnQt
c2l6ZTogMTRweDsiPg0KPGZvbnQgZmFjZT0iQ2FsaWJyaSI+PGJyPg0KPC9mb250PjwvZGl2Pg0K
PGRpdiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAwKTsgZm9udC1mYW1pbHk6IENhbGlicmksIHNh
bnMtc2VyaWY7IGZvbnQtc2l6ZTogMTRweDsiPg0KPGZvbnQgZmFjZT0iQ2FsaWJyaSI+W2Nsd10m
bmJzcDs8L2ZvbnQ+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiBDYWxpYnJpOyI+SSB3aWxsIGlu
Y2x1ZGUgdGhpcyBpbiB0aGUgbmV4dCByZXZpc2lvbi48L3NwYW4+PC9kaXY+DQo8ZGl2IHN0eWxl
PSJjb2xvcjogcmdiKDAsIDAsIDApOyBmb250LWZhbWlseTogQ2FsaWJyaSwgc2Fucy1zZXJpZjsg
Zm9udC1zaXplOiAxNHB4OyI+DQo8Zm9udCBmYWNlPSJDYWxpYnJpIj48YnI+DQo8L2ZvbnQ+PC9k
aXY+DQo8ZGl2IHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDApOyBmb250LWZhbWlseTogQ2FsaWJy
aSwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxNHB4OyI+DQo8Zm9udCBmYWNlPSJDYWxpYnJpIj48
YnI+DQo8L2ZvbnQ+PC9kaXY+DQo8ZGl2IHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDApOyBmb250
LWZhbWlseTogQ2FsaWJyaSwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxNHB4OyI+DQo8Zm9udCBm
YWNlPSJDYWxpYnJpIj5UaGFua3MsPC9mb250PjwvZGl2Pg0KPGRpdiBzdHlsZT0iY29sb3I6IHJn
YigwLCAwLCAwKTsgZm9udC1mYW1pbHk6IENhbGlicmksIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTog
MTRweDsiPg0KPGZvbnQgZmFjZT0iQ2FsaWJyaSI+PGJyPg0KPC9mb250PjwvZGl2Pg0KPGRpdiBz
dHlsZT0iY29sb3I6IHJnYigwLCAwLCAwKTsgZm9udC1mYW1pbHk6IENhbGlicmksIHNhbnMtc2Vy
aWY7IGZvbnQtc2l6ZTogMTRweDsiPg0KPGZvbnQgZmFjZT0iQ2FsaWJyaSI+Q2x5ZGU8L2ZvbnQ+
PC9kaXY+DQo8ZGl2IHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDApOyBmb250LWZhbWlseTogQ2Fs
aWJyaSwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxNHB4OyI+DQo8ZGl2IGlkPSJNQUNfT1VUTE9P
S19TSUdOQVRVUkUiPjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjxkaXYgc3R5bGU9ImNvbG9yOiBy
Z2IoMCwgMCwgMCk7IGZvbnQtZmFtaWx5OiBDYWxpYnJpLCBzYW5zLXNlcmlmOyBmb250LXNpemU6
IDE0cHg7Ij4NCjxicj4NCjwvZGl2Pg0KPHNwYW4gaWQ9Ik9MS19TUkNfQk9EWV9TRUNUSU9OIiBz
dHlsZT0iY29sb3I6IHJnYigwLCAwLCAwKTsgZm9udC1mYW1pbHk6IENhbGlicmksIHNhbnMtc2Vy
aWY7IGZvbnQtc2l6ZTogMTRweDsiPg0KPGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6Q2FsaWJyaTsg
Zm9udC1zaXplOjEycHQ7IHRleHQtYWxpZ246bGVmdDsgY29sb3I6YmxhY2s7IEJPUkRFUi1CT1RU
T006IG1lZGl1bSBub25lOyBCT1JERVItTEVGVDogbWVkaXVtIG5vbmU7IFBBRERJTkctQk9UVE9N
OiAwaW47IFBBRERJTkctTEVGVDogMGluOyBQQURESU5HLVJJR0hUOiAwaW47IEJPUkRFUi1UT1A6
ICNiNWM0ZGYgMXB0IHNvbGlkOyBCT1JERVItUklHSFQ6IG1lZGl1bSBub25lOyBQQURESU5HLVRP
UDogM3B0Ij4NCjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5Gcm9tOiA8L3NwYW4+bmV0
bW9kICZsdDs8YSBocmVmPSJtYWlsdG86bmV0bW9kLWJvdW5jZXNAaWV0Zi5vcmciPm5ldG1vZC1i
b3VuY2VzQGlldGYub3JnPC9hPiZndDsgb24gYmVoYWxmIG9mICZxdW90O1N0ZXJuZSwgSmFzb24g
KEphc29uKSZxdW90OyAmbHQ7PGEgaHJlZj0ibWFpbHRvOmphc29uLnN0ZXJuZUBhbGNhdGVsLWx1
Y2VudC5jb20iPmphc29uLnN0ZXJuZUBhbGNhdGVsLWx1Y2VudC5jb208L2E+Jmd0Ozxicj4NCjxz
cGFuIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5EYXRlOiA8L3NwYW4+V2VkbmVzZGF5LCBPY3Rv
YmVyIDI4LCAyMDE1IGF0IDExOjUwIEFNPGJyPg0KPHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OmJv
bGQiPlRvOiA8L3NwYW4+JnF1b3Q7PGEgaHJlZj0ibWFpbHRvOm5ldG1vZEBpZXRmLm9yZyI+bmV0
bW9kQGlldGYub3JnPC9hPiZxdW90OyAmbHQ7PGEgaHJlZj0ibWFpbHRvOm5ldG1vZEBpZXRmLm9y
ZyI+bmV0bW9kQGlldGYub3JnPC9hPiZndDs8YnI+DQo8c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6
Ym9sZCI+U3ViamVjdDogPC9zcGFuPltuZXRtb2RdIHN5c2xvZy1tb2RlbC0wNTogdGVybWluYWwg
bG9nZ2luZyB2cyBzZXNzaW9uIGxvZ2dpbmc8YnI+DQo8L2Rpdj4NCjxkaXY+PGJyPg0KPC9kaXY+
DQo8ZGl2Pg0KPG1ldGEgbmFtZT0iR2VuZXJhdG9yIiBjb250ZW50PSJNaWNyb3NvZnQgRXhjaGFu
Z2UgU2VydmVyIj4NCjwhLS0gY29udmVydGVkIGZyb20gcnRmIC0tPjxzdHlsZT48IS0tIC5FbWFp
bFF1b3RlIHsgbWFyZ2luLWxlZnQ6IDFwdDsgcGFkZGluZy1sZWZ0OiA0cHQ7IGJvcmRlci1sZWZ0
OiAjODAwMDAwIDJweCBzb2xpZDsgfSAtLT48L3N0eWxlPg0KPGRpdj48Zm9udCBmYWNlPSJDYWxp
YnJpIiBzaXplPSIyIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExcHQ7Ij4NCjxkaXY+SGkgYWxs
LDwvZGl2Pg0KPGRpdj4mbmJzcDs8L2Rpdj4NCjxkaXY+T25lIG9mIHRoZSBzeXNsb2cgZGVzdGlu
YXRpb25zIGluIHRoZSBtb2RlbCBpcyB0aGUg4oCcdGVybWluYWzigJ0gKGZvciBhbGwgdXNlcnMg
b3Igc3BlY2lmaWMgdXNlcnMpLjwvZGl2Pg0KPGRpdj4mbmJzcDs8L2Rpdj4NCjxkaXY+SXNu4oCZ
dCBsb2dnaW5nIHRvIGEgdGVybWluYWwgbW9yZSB0eXBpY2FsbHkgZW5hYmxlZCBvbiBhIENMSSAq
PGI+c2Vzc2lvbjwvYj4qIGJhc2lzIHJhdGhlciB0aGFuIGNvbmZpZ3VyZWQgYWdhaW5zdCBhIHBh
cnRpY3VsYXIgdXNlciA/PC9kaXY+DQo8ZGl2PiZuYnNwOzwvZGl2Pg0KPGRpdj5JIGJlbGlldmUg
aXQgaXMgYWxzbyB0eXBpY2FsIGZvciBzZXNzaW9uIGxvZ2dpbmcgdG8gc3RvcC9kaXNhcHBlYXIg
d2hlbiB0aGF0IHNlc3Npb24gaXMgZW5kZWQgKGkuZS4gaXQgaXMgbm90IHBlcnNpc3RlbnQgY29u
ZmlnKS48L2Rpdj4NCjxkaXY+Jm5ic3A7PC9kaXY+DQo8ZGl2PknigJltIG5vdCBzdXJlIGl0IGlz
IHR5cGljYWwgdG8gaGF2ZSBjb25maWd1cmF0aW9uIGluIGEgZGV2aWNlIHRoYXQgYmFzaWNhbGx5
IGluc3RydWN0cyB0aGUgZGV2aWNlIHRvIGVuYWJsZSBsb2dnaW5nIHRvIHRoZSB0ZXJtaW5hbCBm
b3Ig4oCcdXNlciB44oCdIHdoZW5ldmVyIHRoYXQgdXNlciBsYXRlciBsb2dzIGluIChhbmQgaWYg
dGhleSBoYWQgbXVsdGlwbGUgbG9naW4gc2Vzc2lvbnMgdGhlbiBwcmVzdW1hYmx5IGxvZyBldmVu
dHMgd291bGQgYmUNCiBkZWxpdmVyZWQgdG8gZWFjaCBzZXNzaW9uKS48L2Rpdj4NCjxkaXY+Jm5i
c3A7PC9kaXY+DQo8ZGl2PkkgdGhpbmsgc2Vzc2lvbiBsb2dnaW5nIGlzIHNvbWV0aGluZyB0aGF0
IGlzIHJlYWxseSBwdXJlbHkgQ0xJIChpLmUuIGludGVyYWN0aXZlIHNlc3Npb25zIHdpdGggaHVt
YW4gdXNlcnMpIGFuZCBtYXliZSBub3QgZXZlbiBhcHBsaWNhYmxlIHRvIGNvbmZpZ3VyYXRpb24g
dmlhIE5FVENPTkYgKHNpbmNlIHdl4oCZZCBuZXZlciB3YW50IHRvIHNlbmQgYSBzdHJlYW0gb2Yg
c3lzbG9nIGV2ZW50cyBhcyB0ZXh0IHRvIHRoZSBORVRDT05GIGNsaWVudC9zZXNzaW9uDQogbGlr
ZSB3ZSBkbyB0byB0aGUgdGVybWluYWwgZm9yIGEgQ0xJIHVzZXIpLiZuYnNwOyA8L2Rpdj4NCjxk
aXY+Jm5ic3A7PC9kaXY+DQo8ZGl2PkluIHNlY3Rpb24gNSBvZiB0aGUgZHJhZnQgaXQgbWVudGlv
bnMgdGhhdCBzeXNsb2c6bG9nLWFjdGlvbnMvdGVybWluYWwgbWFwcyB0byBDaXNjbyBOWE9TIOKA
nGxvZ2dpbmcgbW9uaXRvciAy4oCdLiZuYnNwOyBJIGJlbGlldmUgdGhhdCBpcyBpbnRlbmRlZCB0
byBlbmFibGUgbG9ncyB0byBhIHBhcnRpY3VsYXIgKjxiPnNlc3Npb248L2I+KiAobm90IHVzZXIp
LiZuYnNwOyZuYnNwOyBJT1MtWFIgYmVoYXZpb3IgaXMgc2ltaWxhci4mbmJzcDsgVGhlIEFMVSBT
UiBPUyBsb2dnaW5nDQogY29uZmlnIGhhcyB0aGUgY29uY2VwdCBvZiBzZW5kaW5nIChlbmFibGlu
ZykgbG9nIGV2ZW50cyB0byBhIHBhcnRpY3VsYXIgc2Vzc2lvbiAoYnV0IG5vdCBjb25maWd1cmVk
IGFnYWluc3QgYSB1c2VyKS48L2Rpdj4NCjxkaXY+Jm5ic3A7PC9kaXY+DQo8ZGl2Pkphc29uPC9k
aXY+DQo8ZGl2PiZuYnNwOzwvZGl2Pg0KPGRpdj4mbmJzcDs8L2Rpdj4NCjxkaXY+Jm5ic3A7PC9k
aXY+DQo8L3NwYW4+PC9mb250PjwvZGl2Pg0KPC9kaXY+DQo8L3NwYW4+DQo8L2JvZHk+DQo8L2h0
bWw+DQo=

--_000_89450EC6869244C89782584B440655D4ciscocom_--

--_004_89450EC6869244C89782584B440655D4ciscocom_
Content-Type: application/octet-stream; name="ietf-syslog.diff"
Content-Description: ietf-syslog.diff
Content-Disposition: attachment; filename="ietf-syslog.diff"; size=4109;
	creation-date="Tue, 03 Nov 2015 23:05:55 GMT";
	modification-date="Tue, 03 Nov 2015 23:05:55 GMT"
Content-ID: <0A8B5C6C465B664AB2D10C3612198295@emea.cisco.com>
Content-Transfer-Encoding: base64

ZGlmZiAtLWdpdCBhL3N5c2xvZy9pZXRmLXN5c2xvZy55YW5nIGIvc3lzbG9nL2lldGYtc3lzbG9n
LnlhbmcKaW5kZXggYjQ0ZGFjNC4uYmE5MmU0YiAxMDA2NDQKLS0tIGEvc3lzbG9nL2lldGYtc3lz
bG9nLnlhbmcKKysrIGIvc3lzbG9nL2lldGYtc3lzbG9nLnlhbmcKQEAgLTIzLDcgKzIzLDcgQEAg
bW9kdWxlIGlldGYtc3lzbG9nIHsKICAgICAgV0cgQ2hhaXI6IFRvbSBOYWRlYXUKICAgICAgICAg
ICAgICAgIDxtYWlsdG86dG5hZGVhdUBsdWNpZHZpc2lvbi5jb20+CiAgICAgIAotICAgICBXRyBD
aGFpcjogS2VudCBXYXRzb24KKyAgICAgV0cgQ2hhaXI6IEtlbnQgV2F0c2VuCiAgICAgICAgICAg
ICAgICA8bWFpbHRvOmt3YXRzZW5AanVuaXBlci5uZXQ+CiAgICAgIAogICAgICBFZGl0b3I6ICAg
TGFkaXNsYXYgTGhvdGthCkBAIC0zMiw3ICszMiw3IEBAIG1vZHVsZSBpZXRmLXN5c2xvZyB7CiAg
ICAgIlRoaXMgbW9kdWxlIGNvbnRhaW5zIGEgY29sbGVjdGlvbiBvZiBZQU5HIGRlZmluaXRpb25z
IAogICAgICBmb3IgU3lzbG9nIGNvbmZpZ3VyYXRpb24uIjsKIAotICByZXZpc2lvbiAyMDE1LTEw
LTE0IHsKKyAgcmV2aXNpb24gMjAxNS0xMS0wOSB7CiAgICAgZGVzY3JpcHRpb24KICAgICAgICJJ
bml0aWFsIFJldmlzaW9uIjsKICAgICByZWZlcmVuY2UKQEAgLTc0LDcgKzc0LDE0IEBAIG1vZHVs
ZSBpZXRmLXN5c2xvZyB7CiAgIGZlYXR1cmUgdGVybWluYWwtZmFjaWxpdHktdXNlci1sb2dnaW5n
LWNvbmZpZyB7CiAgICAgZGVzY3JpcHRpb24KICAgICAgICJUaGlzIGZlYXR1cmUgcmVwcmVzZW50
cyB0aGUgYWJpbGl0eSB0byBhZGp1c3QgCi0gICAgICAgbG9nIG1lc3NhZ2Ugc2V0dGluZ3MgZm9y
IGluZGl2aWR1YWwgdGVybWluYWwgdXNlcnMuIjsKKyAgICAgICBsb2cgbWVzc2FnZSBzZXR0aW5n
cyBmb3IgaW5kaXZpZHVhbCB0ZXJtaW5hbAorICAgICAgIGRldmljZXMuIjsKKyAgfQorCisgIGZl
YXR1cmUgc2Vzc2lvbi1mYWNpbGl0eS11c2VyLWxvZ2dpbmctY29uZmlnIHsKKyAgICBkZXNjcmlw
dGlvbgorICAgICAgIlRoaXMgZmVhdHVyZSByZXByZXNlbnRzIHRoZSBhYmlsaXR5IHRvIGFkanVz
dCAKKyAgICAgICBsb2cgbWVzc2FnZSBzZXR0aW5ncyBmb3IgaW5kaXZpZHVhbCB1c2VyIHNlc3Np
b25zLiI7CiAgIH0KIAogICBmZWF0dXJlIHNlbGVjdG9yLXNldmVyaXR5LW9wZXJhdG9yLWNvbmZp
ZyB7CkBAIC01MTEsMTIgKzUxOCw1MiBAQCBtb2R1bGUgaWV0Zi1zeXNsb2cgewogICAgICAgICBk
ZXNjcmlwdGlvbgogICAgICAgICAgICJUaGlzIGNvbnRhaW5lciBkZXNjcmliZXMgdGhlIGNvbmZp
Z3VyYXRpb24gcGFyYW1ldGVycyBmb3IgCiAgICAgICAgICAgIHRoZSB0ZXJtaW5hbCBsb2dnaW5n
IGNvbmZpZ3VyYXRpb24uIjsKKyAgICAgICAgY2hvaWNlIHRlcm1pbmFsLXNjb3BlIHsKKyAgICAg
ICAgICBtYW5kYXRvcnkgdHJ1ZTsKKyAgICAgICAgICBkZXNjcmlwdGlvbgorICAgICAgICAgICAg
IlRoaXMgY2hvaWNlIGRlc2NyaWJlcyB0aGUgb3B0aW9uIHRvIHNwZWNpZnkgYWxsIAorICAgICAg
ICAgICAgIHRlcm1pbmFscyBvciBhIHNwZWNpZmljIHRlcm1pbmFsLiBUaGUgYWxsIHRlcm1pbmFs
cyAKKyAgICAgICAgICAgICBjYXNlIGltcGxpZXMgdGhhdCBtZXNzYWdlcyB3aWxsIGJlIHNlbnQg
dG8gYWxsIAorICAgICAgICAgICAgIHNlc3Npb25zIG9uIHRoYXQgdGVybWluYWwiOworICAgICAg
ICAgIGNhc2UgYWxsLXRlcm1pbmFscyB7CisgICAgICAgICAgICBkZXNjcmlwdGlvbgorICAgICAg
ICAgICAgICAiVGhpcyBjYXNlIHNwZWNpZmllcyBhbGwgdGVybWluYWxzLiI7CisgICAgICAgICAg
ICBjb250YWluZXIgYWxsLXRlcm1pbmFscyB7CisgICAgICAgICAgICAgIGRlc2NyaXB0aW9uCisg
ICAgICAgICAgICAgICAgIlRoaXMgY29udGFpbmVyIGRlc2NyaWJlcyB0aGUgY29uZmlndXJhdGlv
biAKKyAgICAgICAgICAgICAgICAgcGFyYW1ldGVycyBmb3IgYWxsIHRlcm1pbmFscy4iOworICAg
ICAgICAgICAgICB1c2VzIHN5c2xvZy1zZWxlY3RvcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICB9CisgICAgICAgICAgY2FzZSBwZXItdGVybWluYWwgeworICAgICAgICAgICAgaWYtZmVhdHVy
ZSB0ZXJtaW5hbC1mYWNpbGl0eS11c2VyLWxvZ2dpbmctY29uZmlnOworICAgICAgICAgICAgZGVz
Y3JpcHRpb24KKyAgICAgICAgICAgICAgIlRoaXMgY2FzZSBzcGVjaWZpZXMgb25lIG9yIG1vcmUg
dGVybWluYWxzLiI7CisgICAgICAgICAgICBsaXN0IGRldmljZS1uYW1lIHsKKyAgICAgICAgICAg
ICAga2V5ICJkbmFtZSI7CisgICAgICAgICAgICAgIGRlc2NyaXB0aW9uCisgICAgICAgICAgICAg
ICAgIlRoaXMgbGlzdCBkZXNjcmliZXMgYSBjb2xsZWN0aW9uIG9mIGRldmljZSBuYW1lcy4iOwor
ICAgICAgICAgICAgICBsZWFmIGRuYW1lIHsKKyAgICAgICAgICAgICAgICB0eXBlIHN0cmluZzsK
KyAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbgorICAgICAgICAgICAgICAgICAgIlRoaXMgbGVh
ZiB1bmlxdWVseSBkZXNjcmliZXMgYSBkZXZpY2UgbmFtZSB3aGljaCAKKyAgICAgICAgICAgICAg
ICAgICBpcyB0aGUgZGV2aWNlIHRvIHJlY2VpdmUgbG9nIG1lc3NhZ2VzLiI7CisgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgdXNlcyBzeXNsb2ctc2VsZWN0b3I7CisgICAgICAgICAgICB9
CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICB9CisgICAgICBjb250YWluZXIgc2Vzc2lv
biB7CisgICAgICAgIGRlc2NyaXB0aW9uCisgICAgICAgICAgIlRoaXMgY29udGFpbmVyIGRlc2Ny
aWJlcyB0aGUgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzIGZvciAKKyAgICAgICAgICAgc2Vzc2lv
biBsb2dnaW5nIGNvbmZpZ3VyYXRpb24uIjsKICAgICAgICAgY2hvaWNlIHVzZXItc2NvcGUgewog
ICAgICAgICAgIG1hbmRhdG9yeSB0cnVlOwogICAgICAgICAgIGRlc2NyaXB0aW9uCiAgICAgICAg
ICAgICAiVGhpcyBjaG9pY2UgZGVzY3JpYmVzIHRoZSBvcHRpb24gdG8gc3BlY2lmeSBhbGwgdXNl
cnMgCiAgICAgICAgICAgICAgb3IgYSBzcGVjaWZpYyB1c2VyLiBUaGUgYWxsIHVzZXJzIGNhc2Ug
aW1wbGllcyB0aGF0Ci0gICAgICAgICAgICAgbWVzc2FnZXMgd2lsbCBiZSBzZW50IHRvIGFsbCB0
ZXJtaW5hbHMiOworICAgICAgICAgICAgIG1lc3NhZ2VzIHdpbGwgYmUgc2VudCB0byBhbGwgc2Vz
c2lvbnMiOwogICAgICAgICAgIGNhc2UgYWxsLXVzZXJzIHsKICAgICAgICAgICAgIGRlc2NyaXB0
aW9uCiAgICAgICAgICAgICAgICJUaGlzIGNhc2Ugc3BlY2lmaWVzIGFsbCB1c2Vycy4iOwpAQCAt
NTI4LDcgKzU3NSw3IEBAIG1vZHVsZSBpZXRmLXN5c2xvZyB7CiAgICAgICAgICAgICB9CiAgICAg
ICAgICAgfQogICAgICAgICAgIGNhc2UgcGVyLXVzZXIgewotICAgICAgICAgICAgaWYtZmVhdHVy
ZSB0ZXJtaW5hbC1mYWNpbGl0eS11c2VyLWxvZ2dpbmctY29uZmlnOworICAgICAgICAgICAgaWYt
ZmVhdHVyZSBzZXNzaW9uLWZhY2lsaXR5LXVzZXItbG9nZ2luZy1jb25maWc7CiAgICAgICAgICAg
ICBkZXNjcmlwdGlvbgogICAgICAgICAgICAgICAiVGhpcyBjYXNlIHNwZWNpZmllcyBhIHNwZWNp
ZmljIHVzZXIuIjsKICAgICAgICAgICAgIGxpc3QgdXNlci1uYW1lIHsKQEAgLTUzOSw4ICs1ODYs
OCBAQCBtb2R1bGUgaWV0Zi1zeXNsb2cgewogICAgICAgICAgICAgICAgIHR5cGUgc3RyaW5nOwog
ICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uCiAgICAgICAgICAgICAgICAgICAiVGhpcyBsZWFm
IHVuaXF1ZWx5IGRlc2NyaWJlcyBhIHVzZXIgbmFtZSB3aGljaCAKLSAgICAgICAgICAgICAgICAg
ICBpcyB0aGUgbG9naW4gbmFtZSBvZiB0aGUgdXNlciB3aG9zZSB0ZXJtaW5hbCAKLSAgICAgICAg
ICAgICAgICAgICBzZXNzaW9uIGlzIHRvIHJlY2VpdmUgbG9nIG1lc3NhZ2VzLiI7CisgICAgICAg
ICAgICAgICAgICAgaXMgdGhlIGxvZ2luIG5hbWUgb2YgdGhlIHVzZXIgd2hvc2Ugc2Vzc2lvbiAK
KyAgICAgICAgICAgICAgICAgICBpcyB0byByZWNlaXZlIGxvZyBtZXNzYWdlcy4iOwogICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgIHVzZXMgc3lzbG9nLXNlbGVjdG9yOwogICAgICAgICAg
ICAgfQo=

--_004_89450EC6869244C89782584B440655D4ciscocom_--


From nobody Tue Nov  3 17:19: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 E722C1A8853 for <netmod@ietfa.amsl.com>; Tue,  3 Nov 2015 17:19:36 -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 WpFs9mspZWQS for <netmod@ietfa.amsl.com>; Tue,  3 Nov 2015 17:19:35 -0800 (PST)
Received: from mail.nic.cz (mail.nic.cz [IPv6:2001:1488:800:400::400]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5821C1A8858 for <netmod@ietf.org>; Tue,  3 Nov 2015 17:19:34 -0800 (PST)
Received: from t20010c4000003024a9c6ae2b3dbd9dd1.v6.meeting.ietf94.jp (t20010c4000003024a9c6ae2b3dbd9dd1.v6.meeting.ietf94.jp [IPv6:2001:c40:0:3024:a9c6:ae2b:3dbd:9dd1]) by mail.nic.cz (Postfix) with ESMTPSA id 2555718170A; Wed,  4 Nov 2015 02:19:31 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nic.cz; s=default; t=1446599972; bh=sjoKqEVmnTRRxRWogVvhbo4kzmomZj4krEtdqq9Mleg=; h=From:Date:To; b=NlluZiP6rAPakFHQFeleEirg3TeEdrWpkuOFOk14P5HsLVszv5J+b1wyTpxSKBBw0 Gx4heJX5HewaFhUSYtUySAEOulU5SIGuUfetj3CqcwQdnM95t5CEKevtcrBiqp75x+ gA6R0kTYuwJkPULDXC7d3iaZ/fDyThf02g0++Plc=
From: Ladislav Lhotka <lhotka@nic.cz>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: quoted-printable
Date: Wed, 4 Nov 2015 10:19:26 +0900
Message-Id: <3D99F675-C52C-4909-8098-48C3AE58CB5C@nic.cz>
To: Lou Berger <lberger@labn.net>
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
X-Mailer: Apple Mail (2.3096.5)
X-Virus-Scanned: clamav-milter 0.98.7 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/SZE58HvVhWMGKMFZbOhn9mLouKE>
Cc: NETMOD WG <netmod@ietf.org>
Subject: [netmod] groupings non-augmentable?
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 04 Nov 2015 01:19:37 -0000

Hi Lou,

I didn't understand the point in your presentation where you said that =
groupings are not augmentable. What you can do is the following:

module A {
  grouping foo { ... }
}

module B {
  import A { prefix A; }
  grouping foo {
    uses A:foo;
    ... // additional nodes
  }
}

While it doesn't involve the keyword "augment", this is my undestanding =
of how a grouping can be augmented/extended. Do you need anything else?

Lada

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





From nobody Tue Nov  3 18:29:44 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 8716A1A0137 for <netmod@ietfa.amsl.com>; Tue,  3 Nov 2015 18:29:43 -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 MkJckZnqrjL1 for <netmod@ietfa.amsl.com>; Tue,  3 Nov 2015 18:29:42 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id 0DB471A010F for <netmod@ietf.org>; Tue,  3 Nov 2015 18:29:42 -0800 (PST)
Received: from localhost (dhcp-37-245.meeting.ietf94.jp [133.93.37.245]) by mail.tail-f.com (Postfix) with ESMTPSA id C190A1AE06E3 for <netmod@ietf.org>; Wed,  4 Nov 2015 03:29:39 +0100 (CET)
Date: Wed, 04 Nov 2015 11:29:36 +0900 (JST)
Message-Id: <20151104.112936.543682181496050096.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/ryt7Qx95yg2mZvUrnd3RdTaiprY>
Subject: [netmod] YANG packages
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 04 Nov 2015 02:29:43 -0000

Hi,

The YANG packages draft that I mentioned today is
http://tools.ietf.org/id/draft-bierman-netmod-yang-package-00.txt

I think it might be suitable for Ian's draft on CPE modeling.


/martin


From nobody Tue Nov  3 19:39:19 2015
Return-Path: <amorris@amsl.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 A325E1A9072 for <netmod@ietfa.amsl.com>; Tue,  3 Nov 2015 19:39:18 -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 TWYu4lsrMIlC for <netmod@ietfa.amsl.com>; Tue,  3 Nov 2015 19:39:17 -0800 (PST)
Received: from mail.amsl.com (mail.amsl.com [IPv6:2001:1900:3001:11::28]) by ietfa.amsl.com (Postfix) with ESMTP id 4921A1A906C for <netmod@ietf.org>; Tue,  3 Nov 2015 19:39:17 -0800 (PST)
Received: from localhost (localhost [127.0.0.1]) by c8a.amsl.com (Postfix) with ESMTP id 6E8321E5A28 for <netmod@ietf.org>; Tue,  3 Nov 2015 19:38:39 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
Received: from c8a.amsl.com ([127.0.0.1]) by localhost (c8a.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id HN7Cw9LLPJnD for <netmod@ietf.org>; Tue,  3 Nov 2015 19:38:39 -0800 (PST)
Received: from t20010c40000030249ca8075682f3d145.v6.meeting.ietf94.jp (t20010c40000030249ca8075682f3d145.v6.meeting.ietf94.jp [IPv6:2001:c40:0:3024:9ca8:756:82f3:d145]) by c8a.amsl.com (Postfix) with ESMTPA id 1F8BE1E5A25 for <netmod@ietf.org>; Tue,  3 Nov 2015 19:38:39 -0800 (PST)
From: Alexa Morris <amorris@amsl.com>
Content-Type: text/plain; charset=windows-1252
Content-Transfer-Encoding: quoted-printable
Date: Tue, 3 Nov 2015 19:39:18 -0800
Message-Id: <24205E64-17AE-487A-A7AA-0702D572125C@amsl.com>
To: netmod@ietf.org
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
Sendlaterdate: Tue, 3 Nov 2015 19:39:18 -0800
X-Mailer: Apple Mail (2.1878.6)
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/opyJvQ6eQ2IqNs6OOryNXsBS0Mo>
Subject: [netmod] Queue for NETMOD Remote Attendees
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 04 Nov 2015 03:39:18 -0000

If you are planning to participate in the NETMOD session here at IETF 94 =
today =97 either locally in Yokohama or as a remote participant =97 we =
want to make sure that you are aware that the IETF is providing a remote =
participants with a fairly new way to ask questions or make comments. In =
addition to using the Jabber room, for the NETMOD session there is also =
the opportunity for remote participants to enter a virtual queue and ask =
questions directly into the meeting room.=20

This experimental queue was used in several sessions at IETF 92 and IETF =
93, so you may have already seen it in action. There will be two queues =
for the NETMOD session =97 a virtual queue and an actual (in-room) =
queue. Remote attendees will log into the Meetecho platform and will =
have a virtual mic line that they can enter if they have a question or =
comment. In-room participants will continue to use normal mic lines.=20

Instructions for remote participants are at =
http://ietf94.conf.meetecho.com/index.php/Remote_Participation.=20

Information on how to join the Meetecho session is at =
http://ietf94.conf.meetecho.com/.

Verify that you are WebRTC compliant (required to use the virtual queue) =
by performing a self-test here: =
http://ietf94.conf.meetecho.com/index.php/Self_Test.=20

Regards,
Alexa

----------
Alexa Morris / Executive Director / IETF
48377 Fremont Blvd., Suite 117, Fremont, CA  94538
Phone: +1.510.492.4089 / Fax: +1.510.492.4001
Email: amorris@amsl.com

Managed by Association Management Solutions (AMS)
Forum Management, Meeting and Event Planning
www.amsl.com <http://www.amsl.com/>


From nobody Tue Nov  3 21:15: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 2643C1ACD10 for <netmod@ietfa.amsl.com>; Tue,  3 Nov 2015 21:15:12 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level: 
X-Spam-Status: No, score=-2.7 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_LOW=-0.7] 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 lEx8Vvf7CI8d for <netmod@ietfa.amsl.com>; Tue,  3 Nov 2015 21:15:10 -0800 (PST)
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 A65F61ACD11 for <netmod@ietf.org>; Tue,  3 Nov 2015 21:15:10 -0800 (PST)
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=dk20050327; d=mindspring.com; b=d+TzYq+5IZcJ5SMBRmD6rifQocSy3oIu8lfGwa5HLtaU2U0+PqawILah+6PdWMEh; 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.37] (helo=elwamui-karabash.atl.sa.earthlink.net) by elasmtp-scoter.atl.sa.earthlink.net with esmtpa (Exim 4.67) (envelope-from <randy_presuhn@mindspring.com>) id 1ZtqPZ-0000vB-2v for netmod@ietf.org; Wed, 04 Nov 2015 00:15:05 -0500
Received: from 76.254.48.99 by webmail.earthlink.net with HTTP; Wed, 4 Nov 2015 00:15:04 -0500
Message-ID: <15517525.1446614105079.JavaMail.root@elwamui-karabash.atl.sa.earthlink.net>
Date: Tue, 3 Nov 2015 21:15:04 -0800 (GMT-08: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: 4488c18417c9426da92b9037bc8bcf44d4c20f6b8d69d88874d3f0892ff6d3ed5b602fd9f30ccf8a1fa78c1d0ce2e85f350badd9bab72f9c350badd9bab72f9c
X-Originating-IP: 209.86.224.37
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/2bajWwRPUKvB7m_auhCpgUYZ93Y>
Subject: Re: [netmod] netmod-opstate-reqs: Are 2.A. and 4.C. the same thing ? (derived + non-derived)
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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 04 Nov 2015 05:15:12 -0000

Hi -

> From: "Sterne, Jason (Jason)"
> Sent: Nov 3, 2015 12:02 AM
> To: "netmod@ietf.org"
> Subject: [netmod] netmod-opstate-reqs: Are 2.A. and 4.C. the same thing ?=
 (derived + non-derived)
...
> But isn=E2=80=99t 4.C. also a repeat of 2.A. ?
>
> 2.A.:  The ability to retrieve the applied configuration
> and derived state nodes in a single protocol operation.
>
> 4.C.: Be able to retrieve both the derived and non-derived state
> aspects of operational state together.
>
> Or am I missing some subtlety here ?
=20
It sounds to me like there are three different sets of information
here:
  - configuration data
  - operational state data that is a function of configuration data
    (it's ambiguous whether it is intended that "derived" means
    something can be computed using *only* configuration data as
    inputs or that additional inputs are possible)
  - operational state data that is not a function of configuration data
    (e.g., chassis temperature, input line voltage, door ajar)

Randy


From nobody Tue Nov  3 21:30:37 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 712BF1A910A for <netmod@ietfa.amsl.com>; Tue,  3 Nov 2015 21:30:36 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.661
X-Spam-Level: 
X-Spam-Status: No, score=-5.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, 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 iFmJFCuFF3DF for <netmod@ietfa.amsl.com>; Tue,  3 Nov 2015 21:30:34 -0800 (PST)
Received: from mail.nic.cz (mail.nic.cz [217.31.204.67]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 012B41A7007 for <netmod@ietf.org>; Tue,  3 Nov 2015 21:30:32 -0800 (PST)
Received: from t20010c40000030241d982be80ef9d6a5.v6.meeting.ietf94.jp (t20010c40000030241d982be80ef9d6a5.v6.meeting.ietf94.jp [IPv6:2001:c40:0:3024:1d98:2be8:ef9:d6a5]) by mail.nic.cz (Postfix) with ESMTPSA id 0D52018060B for <netmod@ietf.org>; Wed,  4 Nov 2015 06:30:29 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nic.cz; s=default; t=1446615030; bh=0ytOPaft1IUxffaZRLygQiLLZB9OLKW6n6xJPBWWon0=; h=From:Date:To; b=FBQnmcxj99IqWs6lrWeT7+fDAAu522ZVLXGC/NSRJ+e0sEyJam6uAolNLGpW9H4sZ aaxNZZ1t51jcrRgvN4PdQt7K0T6r/Wt2pHkP0gKMzFdenOdSF5DIlxRD7j9j77htLd 8J0y9tYiO5uG61kW5uw/Gefu392niJ2Fplssa9OY=
From: Ladislav Lhotka <lhotka@nic.cz>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: quoted-printable
Message-Id: <6E095876-4DF0-4B39-A70D-E601B1E52B4A@nic.cz>
Date: Wed, 4 Nov 2015 14:30:26 +0900
To: NETMOD WG <netmod@ietf.org>
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
X-Mailer: Apple Mail (2.3096.5)
X-Virus-Scanned: clamav-milter 0.98.7 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/YSSkP3HMyZPhG8fSMnqqpbPfcX8>
Subject: [netmod] general permission on metadata
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 04 Nov 2015 05:30:36 -0000

Hi,

my idea was that YANG spec contain a general statement that data may be =
complemented with annotations, i.e. information that's not represented =
in the data model as regular YANG data nodes, and that every encoding =
has to specify how these annotations can be recognized in the payload. =
Parsers of YANG data (in whatever encoding) then MUST be prepared to =
receive such annotations (and perhaps ignore them).

I don't think such a statement is encoding-specific.

Lada

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





From nobody Tue Nov  3 21:51: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 D48E41ACDE5 for <netmod@ietfa.amsl.com>; Tue,  3 Nov 2015 21:51:02 -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 Bp91e0kPYeG8 for <netmod@ietfa.amsl.com>; Tue,  3 Nov 2015 21:51:00 -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 7F7E21A6F68 for <netmod@ietf.org>; Tue,  3 Nov 2015 21:51: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 0700774D; Wed,  4 Nov 2015 06:50: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 LwmVQthcmIuN; Wed,  4 Nov 2015 06:50:58 +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,  4 Nov 2015 06:50:58 +0100 (CET)
Received: from localhost (demetrius4.jacobs-university.de [212.201.44.49]) by hermes.jacobs-university.de (Postfix) with ESMTP id CC5812004E; Wed,  4 Nov 2015 06:50:57 +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 5JQ7o8cHNNR6; Wed,  4 Nov 2015 06:50: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 0D3E62003B; Wed,  4 Nov 2015 06:50:53 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id 00A8F3877821; Wed,  4 Nov 2015 06:50:52 +0100 (CET)
Date: Wed, 4 Nov 2015 06:50:52 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Ladislav Lhotka <lhotka@nic.cz>
Message-ID: <20151104055052.GB95085@elstar.local>
Mail-Followup-To: Ladislav Lhotka <lhotka@nic.cz>, NETMOD WG <netmod@ietf.org>
References: <6E095876-4DF0-4B39-A70D-E601B1E52B4A@nic.cz>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <6E095876-4DF0-4B39-A70D-E601B1E52B4A@nic.cz>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/vnb9yBoTCGxexZUmnpDQyouJR2k>
Cc: NETMOD WG <netmod@ietf.org>
Subject: Re: [netmod] general permission on metadata
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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 04 Nov 2015 05:51:03 -0000

Lada,

I do not think this belongs into the YANG specification. NC has been
designed to support arbitrary XML so any NC compliant implementation
will not screw up on XML attributes. The JSON encoding could say that
names with @ may be used for special purposes and must be supported
and that implementations must be expected to handle full I-JSON and
not the subset used by YANG.

I guess I am not even sure yet that there is a problem that requires
fixing. But if it requires fixing, than its an encoding or protocol
issue, not a data modeling language issue.

/js

On Wed, Nov 04, 2015 at 02:30:26PM +0900, Ladislav Lhotka wrote:
> Hi,
> 
> my idea was that YANG spec contain a general statement that data may be complemented with annotations, i.e. information that's not represented in the data model as regular YANG data nodes, and that every encoding has to specify how these annotations can be recognized in the payload. Parsers of YANG data (in whatever encoding) then MUST be prepared to receive such annotations (and perhaps ignore them).
> 
> I don't think such a statement is encoding-specific.
> 
> Lada
> 
> --
> Ladislav Lhotka, CZ.NIC Labs
> PGP Key ID: E74E8C0C
> 
> 
> 
> 
> _______________________________________________
> 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 Wed Nov  4 00:05: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 538891B2B5B for <netmod@ietfa.amsl.com>; Wed,  4 Nov 2015 00:05: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 G-vj_RbktEcr for <netmod@ietfa.amsl.com>; Wed,  4 Nov 2015 00:05:05 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id 96B811B2B56 for <netmod@ietf.org>; Wed,  4 Nov 2015 00:05:05 -0800 (PST)
Received: from localhost (dhcp-37-245.meeting.ietf94.jp [133.93.37.245]) by mail.tail-f.com (Postfix) with ESMTPSA id 619021AE0478; Wed,  4 Nov 2015 09:05:03 +0100 (CET)
Date: Wed, 04 Nov 2015 17:04:59 +0900 (JST)
Message-Id: <20151104.170459.2035611993166434438.mbj@tail-f.com>
To: andy@yumaworks.com
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <CABCOCHR-G6YHrj6H8AOo+=3ZzbtsTE7RZ866gck-sVUvsqXYVA@mail.gmail.com>
References: <CABCOCHTaKzG8kSv=qMUH3MVqXcS8BKyBba-5pgD7yzBu=Zp+FQ@mail.gmail.com> <BA97F18B-3114-4BB6-8987-E96C85EE0B2D@nic.cz> <CABCOCHR-G6YHrj6H8AOo+=3ZzbtsTE7RZ866gck-sVUvsqXYVA@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/4QnVYoi7m4vBV4w0FyW2Hu7l6Hw>
Cc: netmod@ietf.org
Subject: Re: [netmod] if-feature and default
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 04 Nov 2015 08:05:07 -0000

Andy Bierman <andy@yumaworks.com> wrote:
> On Sun, Nov 1, 2015 at 4:48 PM, Ladislav Lhotka <lhotka@nic.cz> wrote:
> 
> >
> > > On 02 Nov 2015, at 09:40, Andy Bierman <andy@yumaworks.com> wrote:
> > >
> > >
> > >
> > > On Sun, Nov 1, 2015 at 4:20 PM, Ladislav Lhotka <lhotka@nic.cz> wrote:
> > >
> > > > On 02 Nov 2015, at 02:16, Andy Bierman <andy@yumaworks.com> wrote:
> > > >
> > > > Hi,
> > > >
> > > > I started a separate thread for this issue.
> > > > The current YANG 1.1 text is incomplete wrt/ default-stmt.
> > > >
> > > >   leaf broken {
> > > >      type enumeration {
> > > >         enum option1 {
> > > >            if-feature option1;
> > > >         }
> > > >         enum option2 {
> > > >            if-feature option2;
> > > >         }
> > > >         enum option3;
> > > >      }
> > > >      default "option2";
> > > >    }
> > > >
> > > >
> > > > What happens if the server does not advertise the option2 feature?
> > > >
> > > > I see 2 options:
> > > >   (A) add text that says a default-stmt MUST NOT include any
> > conditional
> > > >       values
> > > >   (B) allow if-feature as a sub-statement of the default-stmt
> > >
> > > or (C) a default statement that specifies a value that's not permitted
> > is an error.
> > >
> > >
> > > This does not say anything.
> > > You mean a protocol error somehow or a compiler error?
> >
> > A protocol error - a server that advertises such a data model is broken. A
> > similar situation can happen elsewhere - e.g. an identityref leaf specifies
> > an identity as the default but the server doesn't implement the module
> > where this identity is defined.
> >
> >
> 
> So this would be an extremely subtle way of making
> a YANG feature mandatory to implement?
> 
> Given my long history of gripes about YANG Conformance
> (see various versions of that draft and YANG Packages),
> I am yet again not very impressed with the conformance
> specification mechanisms in YANG.
> 
> IMO, (A) is most correct

+1


/martin


From nobody Wed Nov  4 05:26:05 2015
Return-Path: <rkrejci@cesnet.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 0B6191B2F3D; Wed,  4 Nov 2015 05:26:03 -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 tVYUeG7nm4PW; Wed,  4 Nov 2015 05:26:00 -0800 (PST)
Received: from office2.cesnet.cz (office2.cesnet.cz [IPv6:2001:718:1:101::144:244]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A79311B2F36; Wed,  4 Nov 2015 05:26:00 -0800 (PST)
Received: from [147.229.12.223] (pckrejci.fit.vutbr.cz [147.229.12.223]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by office2.cesnet.cz (Postfix) with ESMTPSA id 3EF77ED475A; Wed,  4 Nov 2015 14:25:58 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cesnet.cz; s=office2; t=1446643558; bh=OwKcjU/S9VJvArmEB/lxytxQ9WC91kQlzG0pxiToNrQ=; h=From:Subject:To:Message-ID:Date:MIME-Version:Content-Type: Content-Transfer-Encoding; b=CmvdQwoHqKftlRjNtx12kH1Nko2duC0ZMZw5FXln237U60EhO/PK1PhwRsAWSntQE pNF8IkQ9/ZrbJO6knlOxAMlP3eIMP6llVPYss3w7SyTcsTDWqxTHZtQPDvg4b4+jMr FHlJHTZnP9qTAG4bDd9Wztlt+gsLoZ5U7XtZq6Z0=
From: =?UTF-8?B?UmFkZWsgS3JlasSNw60=?= <rkrejci@cesnet.cz>
X-Enigmail-Draft-Status: N1110
To: "netconf@ietf.org" <netconf@ietf.org>, "netmod@ietf.org" <netmod@ietf.org>
Message-ID: <563A0765.9040607@cesnet.cz>
Date: Wed, 4 Nov 2015 14:25:57 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-2
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/61OUVXRTwkUKYMH1lvhIM4MrTHE>
Subject: [netmod] libyang - open source YANG library in C
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 04 Nov 2015 13:26:03 -0000

Hi all,

as a side effect of evolving our libnetconf library, we've developed stan=
dalone libyang library for parsing and validating YANG schemas and instan=
ce data. It further allows callers to work with schemas and instance data=
 via libyang tree structures and various functions. The library is availa=
ble at github [1] under BSD license. Currently, the library is able to re=
ad and validate schemas in YIN format (YANG support is under development)=
 and instance data in XML and JSON formats (being one the last features, =
JSON parser is available only in devel branch right now). To demonstrate =
features of the library, there is a simple tool called yanglint (with sim=
ilar functions as pyang). Despite it currently supports only YANG 1.0, in=
 future we plan to add also support for 1.1.

I believe that you will find it useful and I would like to ask WG chairs =
to add information about libyang to the list of NETCONF/YANG implementati=
ons in the NETCONF Wiki [2]

[1] - https://github.com/CESNET/libyang
[2] - https://trac.tools.ietf.org/wg/netconf/trac/wiki


Best regards,
Radek Krejci


From nobody Wed Nov  4 06:11:57 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 A54F21B300C for <netmod@ietfa.amsl.com>; Wed,  4 Nov 2015 06:11:56 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.361
X-Spam-Level: 
X-Spam-Status: No, score=-5.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, 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 XWPmqKKOfR8R for <netmod@ietfa.amsl.com>; Wed,  4 Nov 2015 06:11:54 -0800 (PST)
Received: from mail.nic.cz (mail.nic.cz [217.31.204.67]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 955631B3008 for <netmod@ietf.org>; Wed,  4 Nov 2015 06:11:54 -0800 (PST)
Received: from [192.168.11.218] (i223-218-131-39.s41.a014.ap.plala.or.jp [223.218.131.39]) by mail.nic.cz (Postfix) with ESMTPSA id EAD811810CE; Wed,  4 Nov 2015 15:11:51 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nic.cz; s=default; t=1446646312; bh=LbMjnkYivFSn8kk1yln85EMKhtpZAZ0oI73AafhHlGU=; h=From:Date:To; b=plAKEjcH58QwLWyy+1fcLXV6ZlK6Dq5btc4R0MJB9RZcvtW6gSlOkpOo+X3fgUJkq cLEzkS/sskuEr30+XGOHpRfKhHk4PHBvhBiYgkN6KyFitMhFsTzLZu6ALCb9LDPo9t aIJOctSPTiDHhcfDvcDxU0FA/gGfI0TBO4K5ZuUY=
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
From: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <20151104055052.GB95085@elstar.local>
Date: Wed, 4 Nov 2015 23:11:47 +0900
Content-Transfer-Encoding: quoted-printable
Message-Id: <488DD739-2103-43E1-85E7-4078CBF371FA@nic.cz>
References: <6E095876-4DF0-4B39-A70D-E601B1E52B4A@nic.cz> <20151104055052.GB95085@elstar.local>
To: =?utf-8?Q?J=C3=BCrgen_Sch=C3=B6nw=C3=A4lder?= <j.schoenwaelder@jacobs-university.de>
X-Mailer: Apple Mail (2.3096.5)
X-Virus-Scanned: clamav-milter 0.98.7 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/H0dgDi9-nBvD9PcJH-eX3jbigd8>
Cc: NETMOD WG <netmod@ietf.org>
Subject: Re: [netmod] general permission on metadata
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 04 Nov 2015 14:11:56 -0000

> On 04 Nov 2015, at 14:50, Juergen Schoenwaelder =
<j.schoenwaelder@jacobs-university.de> wrote:
>=20
> Lada,
>=20
> I do not think this belongs into the YANG specification. NC has been
> designed to support arbitrary XML so any NC compliant implementation
> will not screw up on XML attributes. The JSON encoding could say that
> names with @ may be used for special purposes and must be supported
> and that implementations must be expected to handle full I-JSON and
> not the subset used by YANG.

Yes, that's my Plan B.

>=20
> I guess I am not even sure yet that there is a problem that requires
> fixing. But if it requires fixing, than its an encoding or protocol
> issue, not a data modeling language issue.

I thought it might be useful to mention the fact that annotations are =
permitted to accompany the data, but if it's not done, I'm fine with =
that.

Lada=20

>=20
> /js
>=20
> On Wed, Nov 04, 2015 at 02:30:26PM +0900, Ladislav Lhotka wrote:
>> Hi,
>>=20
>> my idea was that YANG spec contain a general statement that data may =
be complemented with annotations, i.e. information that's not =
represented in the data model as regular YANG data nodes, and that every =
encoding has to specify how these annotations can be recognized in the =
payload. Parsers of YANG data (in whatever encoding) then MUST be =
prepared to receive such annotations (and perhaps ignore them).
>>=20
>> I don't think such a statement is encoding-specific.
>>=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
>=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/>

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





From nobody Wed Nov  4 09:53: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 614301A1BA2 for <netmod@ietfa.amsl.com>; Wed,  4 Nov 2015 09:53:24 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level: 
X-Spam-Status: No, score=-2.7 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_LOW=-0.7] 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 DaOccJiPzuCN for <netmod@ietfa.amsl.com>; Wed,  4 Nov 2015 09:53:20 -0800 (PST)
Received: from elasmtp-dupuy.atl.sa.earthlink.net (elasmtp-dupuy.atl.sa.earthlink.net [209.86.89.62]) by ietfa.amsl.com (Postfix) with ESMTP id BB8A71A1B96 for <netmod@ietf.org>; Wed,  4 Nov 2015 09:53:20 -0800 (PST)
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=dk20050327; d=mindspring.com; b=KuqA7WrmuO+Zk2CcmdBW51H+UOBgYj0n5VYtHo34Z8LpX0ASMT6lnk4CLz8WA1jc; 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.37] (helo=elwamui-karabash.atl.sa.earthlink.net) by elasmtp-dupuy.atl.sa.earthlink.net with esmtpa (Exim 4.67) (envelope-from <randy_presuhn@mindspring.com>) id 1Zu2FG-0001db-Kc for netmod@ietf.org; Wed, 04 Nov 2015 12:53:14 -0500
Received: from 76.254.51.191 by webmail.earthlink.net with HTTP; Wed, 4 Nov 2015 12:53:14 -0500
Message-ID: <32846254.1446659594524.JavaMail.root@elwamui-karabash.atl.sa.earthlink.net>
Date: Wed, 4 Nov 2015 09:53:14 -0800 (GMT-08: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: 7bit
X-Mailer: EarthLink Zoo Mail 1.0
X-ELNK-Trace: 4488c18417c9426da92b9037bc8bcf44d4c20f6b8d69d88874d3f0892ff6d3ed73e3679428b39313ec6563341804a7b2350badd9bab72f9c350badd9bab72f9c
X-Originating-IP: 209.86.224.37
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/Hp7MifbshQJzG28qdTAxbGlkPvM>
Subject: Re: [netmod] general permission on metadata
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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 04 Nov 2015 17:53:24 -0000

Hi -

>From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
>Sent: Nov 3, 2015 9:50 PM
>To: Ladislav Lhotka <lhotka@nic.cz>
>Cc: NETMOD WG <netmod@ietf.org>
>Subject: Re: [netmod] general permission on metadata
>
>Lada,
>
>I do not think this belongs into the YANG specification. NC has been
>designed to support arbitrary XML so any NC compliant implementation
>will not screw up on XML attributes. The JSON encoding could say that
>names with @ may be used for special purposes and must be supported
>and that implementations must be expected to handle full I-JSON and
>not the subset used by YANG.
>
>I guess I am not even sure yet that there is a problem that requires
>fixing. But if it requires fixing, than its an encoding or protocol
>issue, not a data modeling language issue.
...

I disagree.  A data modeling framework by its very nature makes
demands on whatever protocols are used to encode the information.
When those demands are less than obvious, it's best to be explicit
about them.  We've already seen the pain with JSON, where an
encoding didn't quite live up to some of the modeling framework's
assumptions about encodings.

Consequently, I believe that *if* this requirement is agreed, it
should then be explicit, rather than assumed as a bit of folklore,
particularly if there is any expectation that other encodings will
be developed in the future.  Consider, for example, what it would
take to meet this requirement if some recidivist were to use BER
to carry the information.  Doable, but not pretty and certainly not
the "obvious" grammar. :-)

Randy


From nobody Wed Nov  4 10:19: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 123C81A701C for <netmod@ietfa.amsl.com>; Wed,  4 Nov 2015 10:19:41 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level: 
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=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 w1swWy_3O_2j for <netmod@ietfa.amsl.com>; Wed,  4 Nov 2015 10:19:39 -0800 (PST)
Received: from mail-lf0-x232.google.com (mail-lf0-x232.google.com [IPv6:2a00:1450:4010:c07::232]) (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 6EB5E1A7013 for <netmod@ietf.org>; Wed,  4 Nov 2015 10:19:38 -0800 (PST)
Received: by lfgh9 with SMTP id h9so44306354lfg.1 for <netmod@ietf.org>; Wed, 04 Nov 2015 10:19:36 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks_com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=NKyFzSdcFNyWViUmx5WDYRg4VLv3myQyaELzQxuJA44=; b=I/ys0ULEC1+5qAN4lcUXj0nm1ebUiOIEb3QRaqjcE/1NsiEA63xiIDRMj9d+K1J3QT A34YxFo86XsaNR/MgYA80ezsTfPYxXCLIzT0MDwKrZLvjO/sGV/O/jJtjQa/ZvhI/iuR aU/nrJQSlqMKoW7tnVXxLHnWVowcghJfoEdSix0MLbwOltN2dqdbYuvCfZ7p/41tqSYE pcb6Mvx5Oqqr9EhjAjzIHV2EAylDUXh0E0ChAPMRavamE9d2goSnl/U/pGXt+fxJJjVo F58PXilIN4rZRPoEsZDSTYvooRQ33TLgj7/wXNmoZbzkngWJCDppQotXVqUHDKZA/SCj /ASQ==
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=NKyFzSdcFNyWViUmx5WDYRg4VLv3myQyaELzQxuJA44=; b=UZ/8rWxnqtTjy9X5P99Nh2COho/EMFZKB/Luf27elAJk1fSj+8L2+jhRkY+V/gGx7V sF/REaavOQWIuUXx+gEYK+oTk1S1h9EozjN+yBZ4H/E2PX47O0bIVmPzSOlyjtkM6fEa doJ6ll+F1GqbAmWsBZ6xWbNY7t2pS+A7NwW8UZZGCsweTpFuZtnLpbFtAJyUtdrw30Vi FqvDmQQvfVuuhKAv2mlqI10uMUjAxZl3oKjDASMQE57elB5kiaRegPxxjZvn1l+JNz3d nFd79KnXH5nOel55WNR3Hhl+87B+R5xYVEZMI3YP57hILEWhokTwXyE56lb1or0oy/rm 1QEQ==
X-Gm-Message-State: ALoCoQktnv8/WSNWQ7OgWoDyZ2GCTlQFO7eYtyV0btppb1jl594bBoHBmFQIz76InD9XAZX0/gr1
MIME-Version: 1.0
X-Received: by 10.112.141.7 with SMTP id rk7mr1657305lbb.82.1446661176366; Wed, 04 Nov 2015 10:19:36 -0800 (PST)
Received: by 10.112.144.106 with HTTP; Wed, 4 Nov 2015 10:19:36 -0800 (PST)
In-Reply-To: <32846254.1446659594524.JavaMail.root@elwamui-karabash.atl.sa.earthlink.net>
References: <32846254.1446659594524.JavaMail.root@elwamui-karabash.atl.sa.earthlink.net>
Date: Wed, 4 Nov 2015 10:19:36 -0800
Message-ID: <CABCOCHQj75L3+rHbvjbYznHMaVcg68m_yOFsOxuvT2WtJ6XnXQ@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Randy Presuhn <randy_presuhn@mindspring.com>
Content-Type: multipart/alternative; boundary=001a11c37e1a87309a0523bb0d6a
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/T3Q0bw5uJ-Q-0014ouPyGTxD51Y>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] general permission on metadata
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 04 Nov 2015 18:19:41 -0000

--001a11c37e1a87309a0523bb0d6a
Content-Type: text/plain; charset=UTF-8

On Wed, Nov 4, 2015 at 9:53 AM, Randy Presuhn <randy_presuhn@mindspring.com>
wrote:

> Hi -
>
> >From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
> >Sent: Nov 3, 2015 9:50 PM
> >To: Ladislav Lhotka <lhotka@nic.cz>
> >Cc: NETMOD WG <netmod@ietf.org>
> >Subject: Re: [netmod] general permission on metadata
> >
> >Lada,
> >
> >I do not think this belongs into the YANG specification. NC has been
> >designed to support arbitrary XML so any NC compliant implementation
> >will not screw up on XML attributes. The JSON encoding could say that
> >names with @ may be used for special purposes and must be supported
> >and that implementations must be expected to handle full I-JSON and
> >not the subset used by YANG.
> >
> >I guess I am not even sure yet that there is a problem that requires
> >fixing. But if it requires fixing, than its an encoding or protocol
> >issue, not a data modeling language issue.
> ...
>
> I disagree.  A data modeling framework by its very nature makes
> demands on whatever protocols are used to encode the information.
> When those demands are less than obvious, it's best to be explicit
> about them.  We've already seen the pain with JSON, where an
> encoding didn't quite live up to some of the modeling framework's
> assumptions about encodings.
>
>

Agreed.  There are a handful of XML attributes a NETCONF server
must support.  Our server will return an 'unknown-attribute' error
for XML attributes it does not understand.  We have a YANG extension
called 'metadata' that allows attributes to be defined, but discourage
its use for management data.

http://www.netconfcentral.org/modules/yuma-ncx/2013-09-23#metadata.518

We plan to support the standard YANG extension for this purpose.

I think the annotation was a real statement in YANG 1.1 then it
would solve all problems.  A YANG 1.1 server MUST accept and support
any attribute defined in a module it claims to implement.
The annotation could have an if-feature-stmt if it is optional.

Consequently, I believe that *if* this requirement is agreed, it
> should then be explicit, rather than assumed as a bit of folklore,
> particularly if there is any expectation that other encodings will
> be developed in the future.  Consider, for example, what it would
> take to meet this requirement if some recidivist were to use BER
> to carry the information.  Doable, but not pretty and certainly not
> the "obvious" grammar. :-)
>
>
The CoMI work in the CORE WG may need CBOR encoding of
attributes.  I hope it requires way less buffering and saved state
than the JSON version.



> Randy
>
>
Andy


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

--001a11c37e1a87309a0523bb0d6a
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Wed, Nov 4, 2015 at 9:53 AM, Randy Presuhn <span dir=3D"ltr">&lt;<a =
href=3D"mailto:randy_presuhn@mindspring.com" target=3D"_blank">randy_presuh=
n@mindspring.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;padding-left:1ex">Hi -<br>
<br>
&gt;From: Juergen Schoenwaelder &lt;<a href=3D"mailto:j.schoenwaelder@jacob=
s-university.de">j.schoenwaelder@jacobs-university.de</a>&gt;<br>
&gt;Sent: Nov 3, 2015 9:50 PM<br>
&gt;To: Ladislav Lhotka &lt;<a href=3D"mailto:lhotka@nic.cz">lhotka@nic.cz<=
/a>&gt;<br>
&gt;Cc: NETMOD WG &lt;<a href=3D"mailto:netmod@ietf.org">netmod@ietf.org</a=
>&gt;<br>
&gt;Subject: Re: [netmod] general permission on metadata<br>
&gt;<br>
&gt;Lada,<br>
&gt;<br>
&gt;I do not think this belongs into the YANG specification. NC has been<br=
>
&gt;designed to support arbitrary XML so any NC compliant implementation<br=
>
&gt;will not screw up on XML attributes. The JSON encoding could say that<b=
r>
&gt;names with @ may be used for special purposes and must be supported<br>
&gt;and that implementations must be expected to handle full I-JSON and<br>
&gt;not the subset used by YANG.<br>
&gt;<br>
&gt;I guess I am not even sure yet that there is a problem that requires<br=
>
&gt;fixing. But if it requires fixing, than its an encoding or protocol<br>
&gt;issue, not a data modeling language issue.<br>
...<br>
<br>
I disagree.=C2=A0 A data modeling framework by its very nature makes<br>
demands on whatever protocols are used to encode the information.<br>
When those demands are less than obvious, it&#39;s best to be explicit<br>
about them.=C2=A0 We&#39;ve already seen the pain with JSON, where an<br>
encoding didn&#39;t quite live up to some of the modeling framework&#39;s<b=
r>
assumptions about encodings.<br>
<br></blockquote><div><br></div><div><br></div><div>Agreed.=C2=A0 There are=
 a handful of XML attributes a NETCONF server</div><div>must support.=C2=A0=
 Our server will return an &#39;unknown-attribute&#39; error</div><div>for =
XML attributes it does not understand.=C2=A0 We have a YANG extension</div>=
<div>called &#39;metadata&#39; that allows attributes to be defined, but di=
scourage</div><div>its use for management data.</div><div><br></div><div><a=
 href=3D"http://www.netconfcentral.org/modules/yuma-ncx/2013-09-23#metadata=
.518">http://www.netconfcentral.org/modules/yuma-ncx/2013-09-23#metadata.51=
8</a></div><div><br></div><div>We plan to support the standard YANG extensi=
on for this purpose.</div><div><br></div><div>I think the annotation was a =
real statement in YANG 1.1 then it</div><div>would solve all problems.=C2=
=A0 A YANG 1.1 server MUST accept and support</div><div>any attribute defin=
ed in a module it claims to implement.</div><div>The annotation could have =
an if-feature-stmt if it is optional.<br></div><div><br></div><blockquote c=
lass=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left-width:1p=
x;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1=
ex">
Consequently, I believe that *if* this requirement is agreed, it<br>
should then be explicit, rather than assumed as a bit of folklore,<br>
particularly if there is any expectation that other encodings will<br>
be developed in the future.=C2=A0 Consider, for example, what it would<br>
take to meet this requirement if some recidivist were to use BER<br>
to carry the information.=C2=A0 Doable, but not pretty and certainly not<br=
>
the &quot;obvious&quot; grammar. :-)<br>
<br></blockquote><div><br></div><div>The CoMI work in the CORE WG may need =
CBOR encoding of</div><div>attributes.=C2=A0 I hope it requires way less bu=
ffering and saved state</div><div>than the JSON version.</div><div><br></di=
v><div>=C2=A0<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0p=
x 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);bo=
rder-left-style:solid;padding-left:1ex">
Randy<br>
<br></blockquote><div><br></div><div>Andy</div><div>=C2=A0</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>
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" rel=3D"noreferrer"=
 target=3D"_blank">https://www.ietf.org/mailman/listinfo/netmod</a><br>
</blockquote></div><br></div></div>

--001a11c37e1a87309a0523bb0d6a--


From nobody Wed Nov  4 19:53:57 2015
Return-Path: <ggrammel@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 A5CAA1A8990 for <netmod@ietfa.amsl.com>; Wed,  4 Nov 2015 19:53:55 -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, 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 y9P05fIyZ5tE for <netmod@ietfa.amsl.com>; Wed,  4 Nov 2015 19:53:51 -0800 (PST)
Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1on0710.outbound.protection.outlook.com [IPv6:2a01:111:f400:fc10::710]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 262811A898A for <netmod@ietf.org>; Wed,  4 Nov 2015 19:53:51 -0800 (PST)
Received: from BN1PR05MB041.namprd05.prod.outlook.com (10.255.202.140) by BN1PR05MB041.namprd05.prod.outlook.com (10.255.202.140) with Microsoft SMTP Server (TLS) id 15.1.318.15; Thu, 5 Nov 2015 03:53:32 +0000
Received: from BN1PR05MB041.namprd05.prod.outlook.com ([169.254.14.123]) by BN1PR05MB041.namprd05.prod.outlook.com ([169.254.14.123]) with mapi id 15.01.0318.003; Thu, 5 Nov 2015 03:53:32 +0000
From: Gert Grammel <ggrammel@juniper.net>
To: "Sterne, Jason (Jason)" <jason.sterne@alcatel-lucent.com>, "netmod@ietf.org" <netmod@ietf.org>
Thread-Topic: [netmod] netmod-opstate-reqs and error option terms (rollback on error)
Thread-Index: AdEWCI576Z4F9VUmSau1fNP3h4T3aABZd1TQ
Date: Thu, 5 Nov 2015 03:53:31 +0000
Message-ID: <BN1PR05MB041662A33A259740F91D976CE290@BN1PR05MB041.namprd05.prod.outlook.com>
References: <A125E53CE190A749957C19483DC79F9F5CB541E6@US70TWXCHMBA11.zam.alcatel-lucent.com>
In-Reply-To: <A125E53CE190A749957C19483DC79F9F5CB541E6@US70TWXCHMBA11.zam.alcatel-lucent.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is ) smtp.mailfrom=ggrammel@juniper.net; 
x-originating-ip: [193.110.55.10]
x-microsoft-exchange-diagnostics: 1; BN1PR05MB041; 5:gjjO3AGGytsiZCBUkcZVGjk/IkItleegeOxinftIv04psiFT7DksejS0qYiFD4x0/1mT4DpboveG6hjf2uGLrh0RF0GTyGw6nS85Ol5juQ4SUPLTtMWUbjGKrEYFD/RsVhr0VrKXTquGlwCu7PLNkA==; 24:KWt+5viqi1zg1bBHstgABPu8H7aXUR6NBnWolJSAuLCFk18jFSNUEb4Fu/UrA8WCpr1+AoIa1yGU0uYJChaw61yzwT4QJKiEjR6h1A/BW1M=; 20:MqLACaQjZ17J5ymxFVMuq6xNwSnriw4nc5CPSgFw8mIppATJUEe/YrEzQ/SkIhS/p/QEqW/J9cUDBj4Q1uSb4Q==
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN1PR05MB041;
x-microsoft-antispam-prvs: <BN1PR05MB04126F8C5A76246CAE794D7CE290@BN1PR05MB041.namprd05.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:;
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(2401047)(5005006)(8121501046)(520078)(10201501046)(3002001); SRVR:BN1PR05MB041; BCL:0; PCL:0; RULEID:; SRVR:BN1PR05MB041; 
x-forefront-prvs: 0751474A44
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(979002)(6009001)(189002)(13464003)(53754006)(199003)(5002640100001)(10400500002)(76176999)(50986999)(99286002)(81156007)(106356001)(105586002)(86362001)(33656002)(54356999)(107886002)(5001770100001)(5001960100002)(97736004)(189998001)(5003600100002)(92566002)(74316001)(5004730100002)(87936001)(11100500001)(5007970100001)(230783001)(40100003)(101416001)(2900100001)(5008740100001)(2950100001)(102836002)(2501003)(19580405001)(19580395003)(122556002)(76576001)(66066001)(15975445007)(969003)(989001)(999001)(1009001)(1019001); DIR:OUT; SFP:1102; SCL:1; SRVR:BN1PR05MB041; H:BN1PR05MB041.namprd05.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; 
received-spf: None (protection.outlook.com: juniper.net does not designate permitted sender hosts)
spamdiagnosticoutput: 1:23
spamdiagnosticmetadata: NSPM
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Nov 2015 03:53:31.9424 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN1PR05MB041
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/JMnaIwFUBt9Vae8zwo5zu7-0E30>
Subject: Re: [netmod] netmod-opstate-reqs and error option terms (rollback on 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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 05 Nov 2015 03:53:55 -0000

Jason,

A synchronous config basically contains two pieces of information in the co=
mmit:
	1) the intended configuration is valid (i.e. is syntactically correct) and
	2) the intended config has been applied
Any error that would affect the config before the commit could be rolled ba=
ck to the old config and a suitable notification sent to the client. After =
the commit, there is no roll-back.

Similarly for asynchronous, however here the information needs to be split =
into two messages:
	1) a commit that the intended config is valid
	2) another message when the intended config is fully applied (let's call t=
his 'validated').
A rollback can happen before the intended config is fully applied i.e. befo=
re the 'validated' state is reached.

The real problem is what you called in another email  'hybrid' or cheating-=
synchronous implementations. This leads to a situation where the client is =
made to believe the intended config is applied, but the server still didn't=
 apply it yet. Take the case where the server runs into trouble after the s=
ynchronous-commit (which lets the client believe that the intended config i=
s applied) and decides to roll-back. From a client perspective this would l=
ook like a node randomly losing its committed configuration. There is tons =
of code required on the client side to cope with that situation. So what wa=
s the purpose of implementing it that way in the first place - instead of j=
ust applying an asynchronous implementation?

Gert




-----Original Message-----
From: netmod [mailto:netmod-bounces@ietf.org] On Behalf Of Sterne, Jason (J=
ason)
Sent: 03 November 2015 08:24
To: netmod@ietf.org
Subject: [netmod] netmod-opstate-reqs and error option terms (rollback on e=
rror)

Hi all,

The term "rollback on error" (and other error options) has been used during=
 these discussions around the opstate requirements.

That term already has some meaning in RFC6241 (or at least rollback-on-erro=
r does and that is pretty close) and IMO it (today) has nothing to do with =
"applied" config.  It is an error option that has the scope of the contents=
 of a single edit-config request and how those contents get applied (all or=
 nothing) to the candidate DS (which is neither intended nor applied config=
) or to the running DS (intended) if the <target> is <running/>.

I think we need to clarify this "all or nothing" concept and how it is rela=
ted to "applied" config.  We may also want to use slightly different termin=
ology so we don't get confused with today's meaning of rollback-on-error.

There are a few transitions to consider when editing a config and applying =
it to a device (I'll give the example of using the candidate DS):
(A) config changes   ---> candidate DS   (<edit-config>)
(B) candidate DS  ----> running (intended)  (<commit>)
(C) intended ----> applied  (internal processed in the device)

Today rollback-on-error is only applicable to transition (A).

Transition (B) does have all-or-nothing properties (as described in RFC6241=
) but that isn't related to "rollback-on-error".

Is there some intention in the opstate requirements to add some sort of all=
-or-nothing behavior to transition (C) ?  i.e. if some part of an edit fail=
s during the transition from intended->applied we should "rollback" the oth=
er parts that may have already been applied ?

Would we then remove it all from intended as well ?

I'm not sure how that would work for an async/hybrid (read "real") system. =
 We've already done an "ack" back to the client before transition (C) so th=
e client may have already sent some additional new config that depends on t=
he previous edit.  That would mean that new config isn't valid.

Jason

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


From nobody Wed Nov  4 19:54:08 2015
Return-Path: <ggrammel@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 19D1A1A8999 for <netmod@ietfa.amsl.com>; Wed,  4 Nov 2015 19:54:07 -0800 (PST)
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 Lc1nH8711gfB for <netmod@ietfa.amsl.com>; Wed,  4 Nov 2015 19:53:50 -0800 (PST)
Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1on0733.outbound.protection.outlook.com [IPv6:2a01:111:f400:fc10::733]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 15B5B1A8989 for <netmod@ietf.org>; Wed,  4 Nov 2015 19:53:49 -0800 (PST)
Received: from BN1PR05MB041.namprd05.prod.outlook.com (10.255.202.140) by BN1PR05MB043.namprd05.prod.outlook.com (10.255.202.148) with Microsoft SMTP Server (TLS) id 15.1.318.15; Thu, 5 Nov 2015 03:53:30 +0000
Received: from BN1PR05MB041.namprd05.prod.outlook.com ([169.254.14.123]) by BN1PR05MB041.namprd05.prod.outlook.com ([169.254.14.123]) with mapi id 15.01.0318.003; Thu, 5 Nov 2015 03:53:30 +0000
From: Gert Grammel <ggrammel@juniper.net>
To: "Sterne, Jason (Jason)" <jason.sterne@alcatel-lucent.com>, "netmod@ietf.org" <netmod@ietf.org>
Thread-Topic: [netmod] opstate-reqs #3: Is there a requirement for asynchronous systems to provide a blocking config update?
Thread-Index: AQHQ9T+RQ8yGc7JN/0i9oUnVbQsvDp5ImdcAgAAc8CeAAAPdAIAACyiAgAAR+4CAARDuAIAAC6kAgAezuICAGeDcgIAARaqAgADf/wCAAALfgIABe+iAgAAC+4CAAAzWgP//yt8AgABxHgCAAAiu5IAAGrQAgAP24QCAAFSCAIAAL0yAgBJBTWCAB41XMA==
Date: Thu, 5 Nov 2015 03:53:29 +0000
Message-ID: <BN1PR05MB041EB62EE805B6373FEBEC8CE290@BN1PR05MB041.namprd05.prod.outlook.com>
References: <D245578A.E731C%kwatsen@juniper.net> <D2455B4C.E7330%kwatsen@juniper.net> <5620E9B3.60009@cisco.com> <20151016.142315.2294973158906063871.mbj@tail-f.com> <5620F6F7.60603@cisco.com> <D2467812.E744C%kwatsen@juniper.net> <5621294A.6040107@cisco.com> <E895B81C-884C-49E9-B7A3-60C4118818C5@juniper.net> <562146F8.4020503@cisco.com> <EE5410BC-59F3-400F-A318-AE6E2165D1B5@juniper.net> <5624E134.1060007@cisco.com> <D24AB1D5.74B6%ggrammel@juniper.net> <A125E53CE190A749957C19483DC79F9F5CB54224@US70TWXCHMBA11.zam.alcatel-lucent.com>
In-Reply-To: <A125E53CE190A749957C19483DC79F9F5CB54224@US70TWXCHMBA11.zam.alcatel-lucent.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is ) smtp.mailfrom=ggrammel@juniper.net; 
x-originating-ip: [193.110.55.10]
x-microsoft-exchange-diagnostics: 1; BN1PR05MB043; 5:OTENy4GlN3EuebVCep3tmXsozZgYlZvf73JlusMX5FncGLWJlNAERkAaJ+j//xxWIYe9cni9LGb9JGpy4BUi+S1O9pAOHNG683IEbjVkUpCcAxPHAE9cM+PGEHabQrwG8mIlZJFEzDaXntRAIR/dxQ==; 24:b/ENjzXlsTUqinaAvS6VQ+72zmBvxoI3lR/VYGMFh39M9zr/Bn/xUKrTcU+ApgaiRXqtLPlYnJ30V51d/5qq5LF6r5ml51ztJVWHZXfUaB0=; 20:Rr1cNH8OV/xVmm0bNXDUPYDP/8cmz0i6DISip/9W4ltbQ3O+4VdPXtdvUarI06k9gZZCubME4iPCGtKE1V1DbQ==
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN1PR05MB043;
x-microsoft-antispam-prvs: <BN1PR05MB043C475BE5EE00C4C7DB2AACE290@BN1PR05MB043.namprd05.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:(138986009662008)(95692535739014)(108003899814671); 
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(2401047)(8121501046)(520078)(5005006)(3002001)(10201501046); SRVR:BN1PR05MB043; BCL:0; PCL:0; RULEID:; SRVR:BN1PR05MB043; 
x-forefront-prvs: 0751474A44
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(53474002)(24454002)(189002)(479174004)(199003)(51444003)(164054003)(53754006)(19580405001)(5001960100002)(107886002)(2501003)(7110500001)(97736004)(19617315012)(10400500002)(189998001)(92566002)(40100003)(122556002)(2420400006)(2900100001)(16236675004)(5003600100002)(15975445007)(74316001)(11100500001)(81156007)(33656002)(102836002)(2950100001)(5008740100001)(10710500006)(106116001)(105586002)(19609705001)(87936001)(106356001)(5004730100002)(5001770100001)(5002640100001)(99286002)(19300405004)(50986999)(5007970100001)(76176999)(54356999)(93886004)(86362001)(19625215002)(66066001)(101416001)(19580395003)(76576001)(579004); DIR:OUT; SFP:1102; SCL:1; SRVR:BN1PR05MB043; H:BN1PR05MB041.namprd05.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; 
received-spf: None (protection.outlook.com: juniper.net does not designate permitted sender hosts)
spamdiagnosticoutput: 1:23
spamdiagnosticmetadata: NSPM
Content-Type: multipart/alternative; boundary="_000_BN1PR05MB041EB62EE805B6373FEBEC8CE290BN1PR05MB041namprd_"
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Nov 2015 03:53:30.0236 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN1PR05MB043
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/_r0La9imj5_zAJnS6UZKqKi8eVM>
Subject: Re: [netmod] opstate-reqs #3: Is there a requirement for asynchronous systems to provide a blocking config update?
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 05 Nov 2015 03:54:07 -0000

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

Jason,

If a config is synchronous, the commit shall be sent <after> the config has=
 been applied. In many practical cases it takes some time to apply configur=
ation. However instead to go for an asynchronous implementation in such cas=
es, folks stick at their seemingly synchronous idea and simply cheat the co=
mmit. So what is called 'hybrid=B4 is in fact an asynchronous configuration=
 that cheats a synchronous behavior.
Keep in mind that asynchronous is the contrary of synchronous. It's hard to=
 imagine a definition of hybrid being asynchronous and synchronous at the s=
ame time.

Gert

From: netmod [mailto:netmod-bounces@ietf.org] On Behalf Of Sterne, Jason (J=
ason)
Sent: 03 November 2015 08:34
To: netmod@ietf.org
Subject: Re: [netmod] opstate-reqs #3: Is there a requirement for asynchron=
ous systems to provide a blocking config update?

Hi all,

There is some discussion below about the difference between perfectly async=
 (reply to the <commit> as soon as possible) vs hybrid.

Isn't there some value in being hybrid if the additional delay to reply is =
reasonably bounded (i.e. less than a few seconds 95% of the time) while add=
ing some valuable additional checks (e.g. resource checking or other prelim=
 checking in the application layer)  ?   It is easier for a client to deal =
with a request failure via an error response than to find out later that so=
mething failed (and that failure indication may not always be easy to corre=
late with a specific request or workflow in the client).

Being hybrid means that more error cases are indicated via a response rathe=
r than communicated using an asynchronous notification later.

Of course no system is going to be perfectly synchronous so clients do have=
 to be able to deal with async failure notifications after-the-fact.

Jason

From: netmod [mailto:netmod-bounces@ietf.org] On Behalf Of Gert Grammel
Sent: Monday, October 19, 2015 9:15
To: Robert Wilton
Cc: netmod@ietf.org<mailto:netmod@ietf.org>
Subject: Re: [netmod] opstate-reqs #3: Is there a requirement for asynchron=
ous systems to provide a blocking config update?

Hi Rob,

From: Robert Wilton <rwilton@cisco.com<mailto:rwilton@cisco.com>>
Date: Monday 19 October 2015 14:25
To: Gert Grammel <ggrammel@juniper.net<mailto:ggrammel@juniper.net>>
Cc: Kent Watsen <kwatsen@juniper.net<mailto:kwatsen@juniper.net>>, Martin B=
jorklund <mbj@tail-f.com<mailto:mbj@tail-f.com>>, "netmod@ietf.org<mailto:n=
etmod@ietf.org>" <netmod@ietf.org<mailto:netmod@ietf.org>>
Subject: Re: [netmod] opstate-reqs #3: Is there a requirement for asynchron=
ous systems to provide a blocking config update?

Hi Gert,

On 19/10/2015 09:06, Gert Grammel wrote:
Rob,

I think we are describing the same problem from a little different perspect=
ive:
Perhaps, but I'm not sure that we are on the same page yet.
Didn't claim that we'd be on the same page, but at least we appear to look =
at the same problem.

Sent from my Apple ][

On 16 Oct 2015, at 20:50, Robert Wilton <rwilton@cisco.com<mailto:rwilton@c=
isco.com>> wrote:

Hi Gert,

On 16/10/2015 18:14, Gert Grammel wrote:
Rob,

Current implementations are incomplete asynchronous, because they didn't ve=
rify the config as operational and applied.

What is frequently done is to perform additional checks on the intended con=
fig that go beyond a syntax check. That is fine, but I have a hard time to =
consider this to be "hybrid" which suggests something in between asynchrono=
us and synchronous.
I'm talking about netconf servers that effectively apply most of their conf=
iguration before they reply.  E.g. they might take 10 minutes to reply.

Exactly, that's why those servers are running asynchronously. The trouble i=
s that in contrast to the synchronous operation there is no "done" informat=
ion. Current implementations often try to work around that point by applyin=
g more than just a syntax check in the first phase. This way they are still=
 quick in replying are more reliably responding, but still fail from time t=
o time
I don't follow why you think that these servers are running
asynchronously.  They are much closer to handling all config operations
as synchronous blocking calls.  This is a just a small amount of
programming that is being performed asynchronously.

If a configuration would only take some second or so, everyone would probab=
ly be happy to apply synchronous config. Asynchronous config come in, when =
the server would need a long time to apply the config or if the time is unp=
redictable. So when we talk about a config that needs 10 min to be applied,=
 I would consider a synchronous configuration the wrong design choice to st=
art with. A server should reply shortly after receiving the intended config=
 to indicate that they are accepting the config and after e.g. 9:59 minutes=
 come back with an information that the config has successfully been applie=
d. If you mix both information into one you either create a black hole in t=
he beginning of the process (request an intended config and getting feedbac=
k 10min after) or you end up with a grey hole in the end where you know the=
 server is working on it but have no idea when it has finished, so that you=
 can reasonably expect an operational state in line with your config.


Perhaps this isn't a valid Netconf implementation, and all Netconf server i=
mplementations are expected to be asynchronous w.r.t to when they apply the=
ir configuration - but I can't see where this is stated in the NETCONF RFC =
(but possibly I'm not looking in the right place).


>From a client perspective an asynchronous server and a hybrid server look =
the same. The difference is that the asynchronous one should convey a "fini=
shed" information to the client, while the hybrid would remain in a "trust =
me babe" mode forever.
Yes, but this isn't the only difference:
- a client could expect that an asynchronous config operation response shou=
ld be reasonably expedient.
Agree, but this is true for hybrid and asynchronous and the term "reasonabl=
e" is not well defined.
This is true for asynchronous but not hybrid, since a hybrid operation
might return just before a proper synchronous operation would.

What is the level of information the client has before and after this 'retu=
rn'? Before the return, it doesn't know if the config is being processed, a=
nd after the return it doesn't know if it has been applied. Just like async=
hronous.



   E.g. if a client was to update 10 devices each with a reasonable size co=
nfiguration (that takes minutes to apply) in an asynchronous way then it mi=
ght reasonably consider sequencing the async config requests to each server=
 on one thread.  If each server acknowledged the requests in a couple of se=
conds then all the servers would broadly end up applying the configuration =
concurrently.
Yes, that's why we need asynchronous mode in the first place.
- however, if the servers were hybrid, and their replies were sent much clo=
ser to when the configuration was actually applied then initiating the requ=
ests sequentially would effectively mean that the devices end up applying t=
he configuration serially which would end up taking much longer.  I.e. it s=
eems reasonable that a client may want to differentiate between the behavio=
ur of these two servers even if how it handles the resultant config changes=
 is the same.
It seems your definition of hybrid is something like "asynchronous but with=
 a longer than reasonable response time".
My definition of hybrid (i.e. the default existing netconf config
operations) is along the lines of "asynchronous in behaviour, but may
reply any time between when the intended configuration has been updated
and the applied configuration has been completely updated ".

Understand, but the information available to the client is just the same as=
 for asynchronous: before responding, the client doesn't know if the config=
 is being processed, and after the response it doesn't know if it has been =
applied. The only difference is that in a proper asynchronous implementatio=
n the time between a config request and response is short, while the time b=
etween response and applied config is long. Hybrid tends to move the respon=
se time out. I don't see how in principle it is different from asynchronous=
.


This is similar to a bloated synchronous operation which takes too much tim=
e to respond.  Both cases are undesired and in both cases the solution is t=
o make them truly asynchronous. So that we can have a reasonable response t=
ime.
I agree with the goal, but it may be difficult to change some existing
NETCONF operational handling to be either strictly sync or async.

Please help me  to understand what you mean with "strictly sync or async". =
And in particular why a hybrid (according to your definition) is not asynch=
.



Another way to look at hybrids is to consider them "cheating synchronous". =
Given that the new config may not have been applied at the time of the resp=
onse to the client. This is worse than the situation before where a missing=
 verify lets the client know that something may still go on. Clients can't =
tell if servers are cheating :-)
Yes, but clients also need to be able to determine if the server is likely =
to be slow to response, because then the client would probably be designed =
to interact with the server in a different fashion (e.g. use a pool of thre=
ads to initiate the updates concurrently).
How would you do this in practice?
Roughly, I would suggest:

Assuming that this is going to be a new optional to implement extension:
  - There would be a capability to indicate whether a server supports an
explicit sync config operation.
  - There would be a capability to indicate whether a server supports an
explicit async config operation.
  - It would be implicitly assumed that the server would support the
existing default config operation.

In Netconf/Restconf when an edit-config request is made, an extension
would include an option to indicate whether the request should be
processed as sync, async, or default (i.e. existing behaviour).

How would that help the client to figure out how slow the response is likel=
y to be? The fact that a request is synch, asynch or hybrid wouldn't tell h=
im how fast it is.

Thanks

Gert

Thanks,
Rob


   Even servers don't know if they're likely to slow a response when they g=
et a request. That's why a quick first response is required that assures th=
e client the requests will be processed, followed by a potentially slow fee=
dback that it is successfully executed (=3Dverified) or failed.
Thanks,
Rob


Gert



Sent from my Apple ][

On 16 Oct 2015, at 18:44, Robert Wilton <rwilton@cisco.com<mailto:rwilton@c=
isco.com>> wrote:



On 16/10/2015 14:59, Kent Watsen wrote:

      3.  Support for both synchronous and asynchronous configuration
          operations

          A. A server may choose to support only synchronous
configuration
             operations, or only asynchronous configuration operations,
or
             both synchronous and asynchronous configuration operations
in
             a client specified per-operation basis.
I think the most common mode *today* is a mix of sync/async, on a
per-object basis.
Yes, I agree.
Wait, I think we're talking about different things.  Martin, I'm sure that
internal to a NC/RC server, parts of the intended configuration is
actually applied synchronously (e.g., a hostname) whereas other parts are
not (e.g., config for data plane).   But that nuance is not currently
exposed in any way today -right?
I think that today, from what a client sees/experiences, many replies from =
netconf servers fits neither the definition of "synchronous configuration o=
peration" nor "asynchronous configuration operation", but instead, the repl=
y is somewhere between the two extremes.

So the question I was trying to raise is whether servers that need to meet =
the opstate requirements have to change to strictly comply with the defined=
 async or sync config operation semantics?  E.g. not just adding a "done-ap=
plying" option, but perhaps also adding something along the lines of a "don=
e-verifying" option.

Thanks,
Rob


What we're talking about here is an ability for a client to request a
protocol operation (PATCH) to block, or for the "done-applying"
notification to not be sent, until all that processing of the request is
complete.  This regardless if the request contains a mix of nodes that are
applied internally sync/async.  Makes sense? - or it is something else?


          B. Support for synchronous operations as per the definition of
             "synchronous configuration operation".
Doesn't this follow from A?
Yes, possibly.  I don't mind if B is deleted.  If we do this then I
would suggest that we also delete the analogous first sentence of C, and
re-introduce the "(see terms)" text in the headline description.
+1


Kent  // as a contributor


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




--_000_BN1PR05MB041EB62EE805B6373FEBEC8CE290BN1PR05MB041namprd_
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 14 (filtered medium)">
<style><!--
/* Font Definitions */
@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;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0cm;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:"Times New Roman","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.MsoAcetate, li.MsoAcetate, div.MsoAcetate
	{mso-style-priority:99;
	mso-style-link:"Balloon Text Char";
	margin:0cm;
	margin-bottom:.0001pt;
	font-size:8.0pt;
	font-family:"Tahoma","sans-serif";}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
	{mso-style-priority:34;
	margin-top:0cm;
	margin-right:0cm;
	margin-bottom:0cm;
	margin-left:36.0pt;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:"Times New Roman","serif";}
span.BalloonTextChar
	{mso-style-name:"Balloon Text Char";
	mso-style-priority:99;
	mso-style-link:"Balloon Text";
	font-family:"Tahoma","sans-serif";}
span.EmailStyle20
	{mso-style-type:personal;
	font-family:"Calibri","sans-serif";
	color:#1F497D;}
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 72.0pt 72.0pt 72.0pt;}
div.WordSection1
	{page:WordSection1;}
/* List Definitions */
@list l0
	{mso-list-id:1603679679;
	mso-list-type:hybrid;
	mso-list-template-ids:1187951796 67698703 67698713 67698715 67698703 67698=
713 67698715 67698703 67698713 67698715;}
@list l0:level1
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	margin-left:38.7pt;
	text-indent:-18.0pt;}
@list l0:level2
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	margin-left:74.7pt;
	text-indent:-18.0pt;}
@list l0:level3
	{mso-level-number-format:roman-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:right;
	margin-left:110.7pt;
	text-indent:-9.0pt;}
@list l0:level4
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	margin-left:146.7pt;
	text-indent:-18.0pt;}
@list l0:level5
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	margin-left:182.7pt;
	text-indent:-18.0pt;}
@list l0:level6
	{mso-level-number-format:roman-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:right;
	margin-left:218.7pt;
	text-indent:-9.0pt;}
@list l0:level7
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	margin-left:254.7pt;
	text-indent:-18.0pt;}
@list l0:level8
	{mso-level-number-format:alpha-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:left;
	margin-left:290.7pt;
	text-indent:-18.0pt;}
@list l0:level9
	{mso-level-number-format:roman-lower;
	mso-level-tab-stop:none;
	mso-level-number-position:right;
	margin-left:326.7pt;
	text-indent:-9.0pt;}
ol
	{margin-bottom:0cm;}
ul
	{margin-bottom:0cm;}
--></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"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D">Jason,<o:p></o:p></span><=
/p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D"><o:p>&nbsp;</o:p></span><=
/p>
<p class=3D"MsoNormal" style=3D"margin-left:2.7pt"><span style=3D"font-size=
:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497=
D">If a config is synchronous, the commit shall be sent &lt;after&gt; the c=
onfig has been applied. In many practical cases it takes some time
 to apply configuration. However instead to go for an asynchronous implemen=
tation in such cases, folks stick at their seemingly synchronous idea and s=
imply cheat the commit. So what is called &#8216;hybrid=B4 is in fact an as=
ynchronous configuration that cheats a synchronous
 behavior. <o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:2.7pt"><span style=3D"font-size=
:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497=
D">Keep in mind that asynchronous is the contrary of synchronous. It&#8217;=
s hard to imagine a definition of hybrid being asynchronous and
 synchronous at the same time.<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:2.7pt"><span style=3D"font-size=
:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497=
D"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:2.7pt"><span style=3D"font-size=
:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497=
D">Gert
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D"><o:p>&nbsp;</o:p></span><=
/p>
<div>
<div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm =
0cm 0cm">
<p class=3D"MsoNormal"><b><span style=3D"font-size:10.0pt;font-family:&quot=
;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span style=3D"font-s=
ize:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;"> netmod [=
mailto:netmod-bounces@ietf.org]
<b>On Behalf Of </b>Sterne, Jason (Jason)<br>
<b>Sent:</b> 03 November 2015 08:34<br>
<b>To:</b> netmod@ietf.org<br>
<b>Subject:</b> Re: [netmod] opstate-reqs #3: Is there a requirement for as=
ynchronous systems to provide a blocking config update?<o:p></o:p></span></=
p>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D">Hi all,<o:p></o:p></span>=
</p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D"><o:p>&nbsp;</o:p></span><=
/p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D">There is some discussion =
below about the difference between perfectly async (reply to the &lt;commit=
&gt; as soon as possible) vs hybrid.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D"><o:p>&nbsp;</o:p></span><=
/p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D">Isn&#8217;t there some va=
lue in being hybrid if the additional delay to reply is reasonably bounded =
(i.e. less than a few seconds 95% of the time) while adding some
 valuable additional checks (e.g. resource checking or other prelim checkin=
g in the application layer)&nbsp; ?&nbsp;&nbsp; It is easier for a client t=
o deal with a request failure via an error response than to find out later =
that something failed (and that failure indication
 may not always be easy to correlate with a specific request or workflow in=
 the client).<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D"><o:p>&nbsp;</o:p></span><=
/p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D">Being hybrid means that m=
ore error cases are indicated via a response rather than communicated using=
 an asynchronous notification later.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D"><o:p>&nbsp;</o:p></span><=
/p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D">Of course no system is go=
ing to be perfectly synchronous so clients do have to be able to deal with =
async failure notifications after-the-fact.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D"><o:p>&nbsp;</o:p></span><=
/p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D">Jason<o:p></o:p></span></=
p>
<p class=3D"MsoNormal"><span style=3D"font-size:11.0pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:#1F497D"><o:p>&nbsp;</o:p></span><=
/p>
<div>
<div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm =
0cm 0cm">
<p class=3D"MsoNormal"><b><span style=3D"font-size:10.0pt;font-family:&quot=
;Tahoma&quot;,&quot;sans-serif&quot;">From:</span></b><span style=3D"font-s=
ize:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;"> netmod [=
<a href=3D"mailto:netmod-bounces@ietf.org">mailto:netmod-bounces@ietf.org</=
a>]
<b>On Behalf Of </b>Gert Grammel<br>
<b>Sent:</b> Monday, October 19, 2015 9:15<br>
<b>To:</b> Robert Wilton<br>
<b>Cc:</b> <a href=3D"mailto:netmod@ietf.org">netmod@ietf.org</a><br>
<b>Subject:</b> Re: [netmod] opstate-reqs #3: Is there a requirement for as=
ynchronous systems to provide a blocking config update?<o:p></o:p></span></=
p>
</div>
</div>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Hi Rob,<o:p></o:p></span></=
p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div style=3D"border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm =
0cm 0cm">
<p class=3D"MsoNormal"><b><span style=3D"font-size:11.0pt;font-family:&quot=
;Calibri&quot;,&quot;sans-serif&quot;;color:black">From:
</span></b><span style=3D"font-size:11.0pt;font-family:&quot;Calibri&quot;,=
&quot;sans-serif&quot;;color:black">Robert Wilton &lt;<a href=3D"mailto:rwi=
lton@cisco.com">rwilton@cisco.com</a>&gt;<br>
<b>Date: </b>Monday 19 October 2015 14:25<br>
<b>To: </b>Gert Grammel &lt;<a href=3D"mailto:ggrammel@juniper.net">ggramme=
l@juniper.net</a>&gt;<br>
<b>Cc: </b>Kent Watsen &lt;<a href=3D"mailto:kwatsen@juniper.net">kwatsen@j=
uniper.net</a>&gt;, Martin Bjorklund &lt;<a href=3D"mailto:mbj@tail-f.com">=
mbj@tail-f.com</a>&gt;, &quot;<a href=3D"mailto:netmod@ietf.org">netmod@iet=
f.org</a>&quot; &lt;<a href=3D"mailto:netmod@ietf.org">netmod@ietf.org</a>&=
gt;<br>
<b>Subject: </b>Re: [netmod] opstate-reqs #3: Is there a requirement for as=
ynchronous systems to provide a blocking config update?<o:p></o:p></span></=
p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Hi Gert,<o:p></o:p></span><=
/p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">On 19/10/2015 09:06, Gert G=
rammel wrote:<o:p></o:p></span></p>
</div>
<blockquote style=3D"border:none;border-left:solid #B5C4DF 4.5pt;padding:0c=
m 0cm 0cm 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0cm;margin=
-bottom:5.0pt" id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Rob,<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">I think we are describing t=
he same problem from a little different perspective:<o:p></o:p></span></p>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Perhaps, but I'm not sure t=
hat we are on the same page yet.<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Didn&#8217;t claim that we&=
#8217;d be on the same page, but at least we appear to look at the same pro=
blem.<o:p></o:p></span></p>
</div>
<blockquote style=3D"border:none;border-left:solid #B5C4DF 4.5pt;padding:0c=
m 0cm 0cm 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0cm;margin=
-bottom:5.0pt" id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Sent from my Apple ][<o:p><=
/o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<blockquote style=3D"border:none;border-left:solid #B5C4DF 4.5pt;padding:0c=
m 0cm 0cm 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0cm;margin=
-bottom:5.0pt" id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">On 16 Oct 2015, at 20:50, R=
obert Wilton &lt;<a href=3D"mailto:rwilton@cisco.com">rwilton@cisco.com</a>=
&gt; wrote:<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Hi Gert,<o:p></o:p></span><=
/p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<blockquote style=3D"border:none;border-left:solid #B5C4DF 4.5pt;padding:0c=
m 0cm 0cm 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0cm;margin=
-bottom:5.0pt" id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">On 16/10/2015 18:14, Gert G=
rammel wrote:<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Rob,<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Current implementations are=
 incomplete asynchronous, because they didn't verify the config as operatio=
nal and applied.<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">What is frequently done is =
to perform additional checks on the intended config that go beyond a syntax=
 check. That is fine, but I have a hard time to consider
 this to be &quot;hybrid&quot; which suggests something in between asynchro=
nous and synchronous.<o:p></o:p></span></p>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">I'm talking about netconf s=
ervers that effectively apply most of their configuration before they reply=
.&nbsp;&nbsp;E.g. they might take 10 minutes to reply.<o:p></o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Exactly, that's why those s=
ervers are running asynchronously. The trouble is that in contrast to the s=
ynchronous operation there is no &quot;done&quot; information. Current
 implementations often try to work around that point by applying more than =
just a syntax check in the first phase. This way they are still quick in re=
plying are more reliably responding, but still fail from time to time<o:p><=
/o:p></span></p>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">I don't follow why you thin=
k that these servers are running
<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">asynchronously.&nbsp;&nbsp;=
They are much closer to handling all config operations
<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">as synchronous blocking cal=
ls.&nbsp;&nbsp;This is a just a small amount of
<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">programming that is being p=
erformed asynchronously.<o:p></o:p></span></p>
</div>
</div>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">If a configuration would on=
ly take some second or so, everyone would probably be happy to apply synchr=
onous config. Asynchronous config come in, when the server
 would need a long time to apply the config or if the time is unpredictable=
. So when we talk about a config that needs 10 min to be applied, I would c=
onsider a synchronous configuration the wrong design choice to start with. =
A server should reply shortly after
 receiving the intended config to indicate that they are accepting the conf=
ig and after e.g. 9:59 minutes come back with an information that the confi=
g has successfully been applied. If you mix both information into one you e=
ither create a black hole in the
 beginning of the process (request an intended config and getting feedback =
10min after) or you end up with a grey hole in the end where you know the s=
erver is working on it but have no idea when it has finished, so that you c=
an reasonably expect an operational
 state in line with your config.<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<blockquote style=3D"border:none;border-left:solid #B5C4DF 4.5pt;padding:0c=
m 0cm 0cm 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0cm;margin=
-bottom:5.0pt" id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<blockquote style=3D"border:none;border-left:solid #B5C4DF 4.5pt;padding:0c=
m 0cm 0cm 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0cm;margin=
-bottom:5.0pt" id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Perhaps this isn't a valid =
Netconf implementation, and all Netconf server implementations are expected=
 to be asynchronous w.r.t to when they apply their configuration
 - but I can't see where this is stated in the NETCONF RFC (but possibly I'=
m not looking in the right place).<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<blockquote style=3D"border:none;border-left:solid #B5C4DF 4.5pt;padding:0c=
m 0cm 0cm 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0cm;margin=
-bottom:5.0pt" id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">&gt;From a client perspecti=
ve an asynchronous server and a hybrid server look the same. The difference=
 is that the asynchronous one should convey a &quot;finished&quot; informat=
ion
 to the client, while the hybrid would remain in a &quot;trust me babe&quot=
; mode forever.<o:p></o:p></span></p>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Yes, but this isn't the onl=
y difference:<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">- a client could expect tha=
t an asynchronous config operation response should be reasonably expedient.=
<o:p></o:p></span></p>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Agree, but this is true for=
 hybrid and asynchronous and the term &quot;reasonable&quot; is not well de=
fined.<o:p></o:p></span></p>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">This is true for asynchrono=
us but not hybrid, since a hybrid operation
<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">might return just before a =
proper synchronous operation would.<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">What is the level of inform=
ation the client has before and after this &#8216;return&#8217;? Before the=
 return, it doesn&#8217;t know if the config is being processed, and after
 the return it doesn&#8217;t know if it has been applied. Just like asynchr=
onous.<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<blockquote style=3D"border:none;border-left:solid #B5C4DF 4.5pt;padding:0c=
m 0cm 0cm 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0cm;margin=
-bottom:5.0pt" id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<blockquote style=3D"border:none;border-left:solid #B5C4DF 4.5pt;padding:0c=
m 0cm 0cm 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0cm;margin=
-bottom:5.0pt" id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">&nbsp;&nbsp; E.g. if a clie=
nt was to update 10 devices each with a reasonable size configuration (that=
 takes minutes to apply) in an asynchronous way then it might reasonably
 consider sequencing the async config requests to each server on one thread=
.&nbsp;&nbsp;If each server acknowledged the requests in a couple of second=
s then all the servers would broadly end up applying the configuration conc=
urrently.<o:p></o:p></span></p>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Yes, that's why we need asy=
nchronous mode in the first place.<o:p></o:p></span></p>
</div>
<blockquote style=3D"border:none;border-left:solid #B5C4DF 4.5pt;padding:0c=
m 0cm 0cm 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0cm;margin=
-bottom:5.0pt" id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">- however, if the servers w=
ere hybrid, and their replies were sent much closer to when the configurati=
on was actually applied then initiating the requests sequentially
 would effectively mean that the devices end up applying the configuration =
serially which would end up taking much longer.&nbsp;&nbsp;I.e. it seems re=
asonable that a client may want to differentiate between the behaviour of t=
hese two servers even if how it handles the
 resultant config changes is the same.<o:p></o:p></span></p>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">It seems your definition of=
 hybrid is something like &quot;asynchronous but with a longer than reasona=
ble response time&quot;.<o:p></o:p></span></p>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">My definition of hybrid (i.=
e. the default existing netconf config
<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">operations) is along the li=
nes of &quot;asynchronous in behaviour, but may
<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">reply any time between when=
 the intended configuration has been updated
<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">and the applied configurati=
on has been completely updated &quot;.<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Understand, but the informa=
tion available to the client is just the same as for asynchronous: before r=
esponding, the client doesn&#8217;t know if the config is being
 processed, and after the response it doesn&#8217;t know if it has been app=
lied. The only difference is that in a proper asynchronous implementation t=
he time between a config request and response is short, while the time betw=
een response and applied config is long.
 Hybrid tends to move the response time out. I don&#8217;t see how in princ=
iple it is different from asynchronous.<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<blockquote style=3D"border:none;border-left:solid #B5C4DF 4.5pt;padding:0c=
m 0cm 0cm 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0cm;margin=
-bottom:5.0pt" id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">This is similar to a bloate=
d synchronous operation which takes too much time to respond.&nbsp;&nbsp;Bo=
th cases are undesired and in both cases the solution is to make them
 truly asynchronous. So that we can have a reasonable response time.<o:p></=
o:p></span></p>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">I agree with the goal, but =
it may be difficult to change some existing
<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">NETCONF operational handlin=
g to be either strictly sync or async.<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Please help me &nbsp;to und=
erstand what you mean with &quot;strictly sync or async&#8221;. And in part=
icular why a hybrid (according to your definition) is not asynch.<o:p></o:p=
></span></p>
</div>
<blockquote style=3D"border:none;border-left:solid #B5C4DF 4.5pt;padding:0c=
m 0cm 0cm 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0cm;margin=
-bottom:5.0pt" id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">&nbsp;&nbsp;
<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<blockquote style=3D"border:none;border-left:solid #B5C4DF 4.5pt;padding:0c=
m 0cm 0cm 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0cm;margin=
-bottom:5.0pt" id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<blockquote style=3D"border:none;border-left:solid #B5C4DF 4.5pt;padding:0c=
m 0cm 0cm 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0cm;margin=
-bottom:5.0pt" id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Another way to look at hybr=
ids is to consider them &quot;cheating synchronous&quot;. Given that the ne=
w config may not have been applied at the time of the response to
 the client. This is worse than the situation before where a missing verify=
 lets the client know that something may still go on. Clients can't tell if=
 servers are cheating :-)<o:p></o:p></span></p>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Yes, but clients also need =
to be able to determine if the server is likely to be slow to response, bec=
ause then the client would probably be designed to interact
 with the server in a different fashion (e.g. use a pool of threads to init=
iate the updates concurrently).<o:p></o:p></span></p>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">How would you do this in pr=
actice?<o:p></o:p></span></p>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Roughly, I would suggest:<o=
:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Assuming that this is going=
 to be a new optional to implement extension:<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">&nbsp;&nbsp;- There would b=
e a capability to indicate whether a server supports an
<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">explicit sync config operat=
ion.<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">&nbsp;&nbsp;- There would b=
e a capability to indicate whether a server supports an
<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">explicit async config opera=
tion.<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">&nbsp;&nbsp;- It would be i=
mplicitly assumed that the server would support the
<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">existing default config ope=
ration.<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">In Netconf/Restconf when an=
 edit-config request is made, an extension
<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">would include an option to =
indicate whether the request should be
<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">processed as sync, async, o=
r default (i.e. existing behaviour).<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">How would that help the cli=
ent to figure out how slow the response is likely to be? The fact that a re=
quest is synch, asynch or hybrid wouldn&#8217;t tell him how fast
 it is.<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Thanks<o:p></o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Gert<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Thanks,<o:p></o:p></span></=
p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Rob<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<blockquote style=3D"border:none;border-left:solid #B5C4DF 4.5pt;padding:0c=
m 0cm 0cm 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0cm;margin=
-bottom:5.0pt" id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">&nbsp;&nbsp; Even servers d=
on't know if they're likely to slow a response when they get a request. Tha=
t's why a quick first response is required that assures the client
 the requests will be processed, followed by a potentially slow feedback th=
at it is successfully executed (=3Dverified) or failed.<o:p></o:p></span></=
p>
</div>
<blockquote style=3D"border:none;border-left:solid #B5C4DF 4.5pt;padding:0c=
m 0cm 0cm 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0cm;margin=
-bottom:5.0pt" id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Thanks,<o:p></o:p></span></=
p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Rob<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<blockquote style=3D"border:none;border-left:solid #B5C4DF 4.5pt;padding:0c=
m 0cm 0cm 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0cm;margin=
-bottom:5.0pt" id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Gert<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Sent from my Apple ][<o:p><=
/o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<blockquote style=3D"border:none;border-left:solid #B5C4DF 4.5pt;padding:0c=
m 0cm 0cm 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0cm;margin=
-bottom:5.0pt" id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">On 16 Oct 2015, at 18:44, R=
obert Wilton &lt;<a href=3D"mailto:rwilton@cisco.com">rwilton@cisco.com</a>=
&gt; wrote:<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<blockquote style=3D"border:none;border-left:solid #B5C4DF 4.5pt;padding:0c=
m 0cm 0cm 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0cm;margin=
-bottom:5.0pt" id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">On 16/10/2015 14:59, Kent W=
atsen wrote:<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<blockquote style=3D"border:none;border-left:solid #B5C4DF 4.5pt;padding:0c=
m 0cm 0cm 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0cm;margin=
-bottom:5.0pt" id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<blockquote style=3D"border:none;border-left:solid #B5C4DF 4.5pt;padding:0c=
m 0cm 0cm 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0cm;margin=
-bottom:5.0pt" id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<blockquote style=3D"border:none;border-left:solid #B5C4DF 4.5pt;padding:0c=
m 0cm 0cm 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0cm;margin=
-bottom:5.0pt" id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;3.&nbsp;&nbsp;Support for both synchronous and asynchronous config=
uration<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;operations<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A. A server may choose to support only syn=
chronous<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">configuration<o:p></o:p></s=
pan></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; operations, or only asynchron=
ous configuration operations,<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">or<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; both synchronous and asynchro=
nous configuration operations<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">in<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a client specified per-operat=
ion basis.<o:p></o:p></span></p>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">I think the most common mod=
e *today* is a mix of sync/async, on a<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">per-object basis.<o:p></o:p=
></span></p>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Yes, I agree.<o:p></o:p></s=
pan></p>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Wait, I think we're talking=
 about different things.&nbsp;&nbsp;Martin, I'm sure that<o:p></o:p></span>=
</p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">internal to a NC/RC server,=
 parts of the intended configuration is<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">actually applied synchronou=
sly (e.g., a hostname) whereas other parts are<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">not (e.g., config for data =
plane).&nbsp;&nbsp; But that nuance is not currently<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">exposed in any way today -r=
ight?<o:p></o:p></span></p>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">I think that today, from wh=
at a client sees/experiences, many replies from netconf servers fits neithe=
r the definition of &quot;synchronous configuration operation&quot;
 nor &quot;asynchronous configuration operation&quot;, but instead, the rep=
ly is somewhere between the two extremes.<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">So the question I was tryin=
g to raise is whether servers that need to meet the opstate requirements ha=
ve to change to strictly comply with the defined async or
 sync config operation semantics?&nbsp;&nbsp;E.g. not just adding a &quot;d=
one-applying&quot; option, but perhaps also adding something along the line=
s of a &quot;done-verifying&quot; option.<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Thanks,<o:p></o:p></span></=
p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Rob<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<blockquote style=3D"border:none;border-left:solid #B5C4DF 4.5pt;padding:0c=
m 0cm 0cm 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0cm;margin=
-bottom:5.0pt" id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">What we're talking about he=
re is an ability for a client to request a<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">protocol operation (PATCH) =
to block, or for the &quot;done-applying&quot;<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">notification to not be sent=
, until all that processing of the request is<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">complete.&nbsp;&nbsp;This r=
egardless if the request contains a mix of nodes that are<o:p></o:p></span>=
</p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">applied internally sync/asy=
nc.&nbsp;&nbsp;Makes sense? - or it is something else?<o:p></o:p></span></p=
>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<blockquote style=3D"border:none;border-left:solid #B5C4DF 4.5pt;padding:0c=
m 0cm 0cm 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0cm;margin=
-bottom:5.0pt" id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<blockquote style=3D"border:none;border-left:solid #B5C4DF 4.5pt;padding:0c=
m 0cm 0cm 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0cm;margin=
-bottom:5.0pt" id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<blockquote style=3D"border:none;border-left:solid #B5C4DF 4.5pt;padding:0c=
m 0cm 0cm 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0cm;margin=
-bottom:5.0pt" id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<blockquote style=3D"border:none;border-left:solid #B5C4DF 4.5pt;padding:0c=
m 0cm 0cm 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0cm;margin=
-bottom:5.0pt" id=3D"MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE">
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;B. Support for synchronous operations as p=
er the definition of<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;synchronous configurati=
on operation&quot;.<o:p></o:p></span></p>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Doesn't this follow from A?=
<o:p></o:p></span></p>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Yes, possibly.&nbsp;&nbsp;I=
 don't mind if B is deleted.&nbsp;&nbsp;If we do this then I<o:p></o:p></sp=
an></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">would suggest that we also =
delete the analogous first sentence of C, and<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">re-introduce the &quot;(see=
 terms)&quot; text in the headline description.<o:p></o:p></span></p>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">&#43;1<o:p></o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">Kent&nbsp;&nbsp;// as a con=
tributor<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">.<o:p></o:p></span></p>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">___________________________=
____________________<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">netmod mailing list<o:p></o=
:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><a href=3D"mailto:netmod@ie=
tf.org">netmod@ietf.org</a><o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><a href=3D"https://www.ietf=
.org/mailman/listinfo/netmod">https://www.ietf.org/mailman/listinfo/netmod<=
/a><o:p></o:p></span></p>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">.<o:p></o:p></span></p>
</div>
</blockquote>
</blockquote>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black">.<o:p></o:p></span></p>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
</blockquote>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
<div>
<p class=3D"MsoNormal"><span style=3D"font-size:10.5pt;font-family:&quot;Ca=
libri&quot;,&quot;sans-serif&quot;;color:black"><o:p>&nbsp;</o:p></span></p=
>
</div>
</div>
</body>
</html>

--_000_BN1PR05MB041EB62EE805B6373FEBEC8CE290BN1PR05MB041namprd_--


From nobody Wed Nov  4 21:36:04 2015
Return-Path: <scott.mansfield@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 BBD661B383A for <netmod@ietfa.amsl.com>; Wed,  4 Nov 2015 21:36:02 -0800 (PST)
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 TncgaRzDQ4d2 for <netmod@ietfa.amsl.com>; Wed,  4 Nov 2015 21:36:00 -0800 (PST)
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 361091AC439 for <netmod@ietf.org>; Wed,  4 Nov 2015 21:36:00 -0800 (PST)
X-AuditID: c6180641-f792c6d00000686a-f1-563a7d45f4e5
Received: from EUSAAHC007.ericsson.se (Unknown_Domain [147.117.188.93]) by usevmg21.ericsson.net (Symantec Mail Security) with SMTP id D8.B2.26730.54D7A365; Wed,  4 Nov 2015 22:48:54 +0100 (CET)
Received: from EUSAAMB105.ericsson.se ([147.117.188.122]) by EUSAAHC007.ericsson.se ([147.117.188.93]) with mapi id 14.03.0248.002; Thu, 5 Nov 2015 00:35:57 -0500
From: Scott Mansfield <scott.mansfield@ericsson.com>
To: "netmod@ietf.org" <netmod@ietf.org>
Thread-Topic: pptx version of draft-mansfield slides for IETF 94
Thread-Index: AdEXi6mbuS3w1EfPQZyogTPH5eNwCw==
Date: Thu, 5 Nov 2015 05:35:56 +0000
Message-ID: <EF35EE4B92789843B1DECBC0E24558644BCBCD7E@eusaamb105.ericsson.se>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
x-originating-ip: [147.117.188.11]
Content-Type: multipart/mixed; boundary="_004_EF35EE4B92789843B1DECBC0E24558644BCBCD7Eeusaamb105erics_"
MIME-Version: 1.0
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrPIsWRmVeSWpSXmKPExsUyuXRPrK5brVWYwf0v/BbzLzayOjB6LFny kymAMYrLJiU1J7MstUjfLoEr49qln0wF52dKVExc+IutgfHVcfEuRk4OCQETicd7fjJD2GIS F+6tZ+ti5OIQEjjCKPFlTS8ThLOMUeLBzXusIFVsQB1bd01nBLFFBNQlZu4E6eDkEBawlpjx tp+9i5EDKO4gcfRsIESJnsSx//8YQcIsAioS92cUg4R5BXwlJt15CDaFEWjv91NrmEBsZgFx iVtP5jNB3CMi8fDiaTYIW1Ti5eN/rBC2ksTH3/PZIeozJY4vfscKMVNQ4uTMJywTGIVmIRk1 C0nZLCRlEPF8iQNnrkHZOhILdn9ig7C1JZYtfM0MY5858JgJVZwLyJ7GKLFp3y/2WUCvMQt4 SrxbFwIRv8oosbH3BdQgRYkp3Q/ZFzDyrGLkKC1OLctNNzLcxAiMumMSbI47GBd8sjzEKMDB qMTDWyBrFSbEmlhWXJl7iFEFqPXRhtUXGKVY8vLzUpVEeAtmAqV5UxIrq1KL8uOLSnNSiw8x SnOwKInzzptxP1RIID2xJDU7NbUgtQgmy8TBKdXA6NukXtM1IXzuq5ubb5quXtW20urCpaf3 g+U4ZBPXP6vepv6rcKLRIm+Bzo4NPb0a36tVZu+0Cu+dcONRk7/iW0cey8w3d5tF63z8eJec quTI6m84pVVTasZS6MAmdXHVxNZfzT7Vwct6jsxh+2onJZnpIG8iY68t6fLijvvqR1oij79e Y/FUYinOSDTUYi4qTgQAJ0hp9MICAAA=
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/2M5W7Y7dnoQ1PGz_K5DaN41eGdw>
Subject: [netmod] pptx version of draft-mansfield slides for IETF 94
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 05 Nov 2015 05:36:03 -0000

--_004_EF35EE4B92789843B1DECBC0E24558644BCBCD7Eeusaamb105erics_
Content-Type: multipart/alternative;
	boundary="_000_EF35EE4B92789843B1DECBC0E24558644BCBCD7Eeusaamb105erics_"

--_000_EF35EE4B92789843B1DECBC0E24558644BCBCD7Eeusaamb105erics_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

There is an embedded pdf file on one of the slides that (ironically) doesn'=
t show up if the pptx is converted to pdf.

Responding to a suggestion to provide the source to the list.

Regards,
-scott.

Scott Mansfield
Ericsson Inc.
+1 724 931 9316


--_000_EF35EE4B92789843B1DECBC0E24558644BCBCD7Eeusaamb105erics_
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;}
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;}
--></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">There is an embedded pdf file on one of the slides t=
hat (ironically) doesn&#8217;t show up if the pptx is converted to pdf.<o:p=
></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Responding to a suggestion to provide the source to =
the list.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Regards,<o:p></o:p></p>
<p class=3D"MsoNormal">-scott.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Scott Mansfield<o:p></o:p></p>
<p class=3D"MsoNormal">Ericsson Inc.<o:p></o:p></p>
<p class=3D"MsoNormal">&#43;1 724 931 9316<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
</body>
</html>

--_000_EF35EE4B92789843B1DECBC0E24558644BCBCD7Eeusaamb105erics_--

--_004_EF35EE4B92789843B1DECBC0E24558644BCBCD7Eeusaamb105erics_
Content-Type: application/vnd.openxmlformats-officedocument.presentationml.presentation;
	name="draft-mansfield-netmod-uml-to-yang-01-slides-v2.pptx"
Content-Description: draft-mansfield-netmod-uml-to-yang-01-slides-v2.pptx
Content-Disposition: attachment;
	filename="draft-mansfield-netmod-uml-to-yang-01-slides-v2.pptx"; size=287006;
	creation-date="Wed, 28 Oct 2015 20:34:44 GMT";
	modification-date="Thu, 05 Nov 2015 05:35:46 GMT"
Content-Transfer-Encoding: base64

UEsDBBQABgAIAAAAIQDIkDmjJwIAAHQQAAATAAgCW0NvbnRlbnRfVHlwZXNdLnhtbCCiBAIooAAC
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADM
mM1y0zAQx+/M8A4eXZlYSYFSmDg9UDgB7QzlARR7nahYHyMpX2/Pym6D8Tg1ru1xLp6R5d3/b1fS
Kpv59V5kwRaM5UpGZBZOSQAyVgmXq4j8uv86uSKBdUwmLFMSInIAS64Xr1/N7w8abIDW0kZk7Zz+
RKmN1yCYDZUGiTOpMoI5HJoV1Sz+zVZAL6bTSxor6UC6ifM+yGJ+AynbZC74ssfXBYmWKxJ8Lr7z
UhHhwtv797TWYsllxYJpnfGYOQyNbmVSwZqoNOUxJCreCIQJVQa3yweI3Qn/DxrqkfKJeqadSCtM
RRT7iZ+ptzGQ2YpRQyC6yG2Ilnmwds21fYMLcELBz/yb27LAabvts3bNGUb7G8N2uLU82C3uOsMT
CO6YcT+YwCWmWjuqDVhcjzyS8HnUZsmyM5GF5WEoGJdPWToFYzMk/M6swxNCS4NZ32Ql3//F9Egz
DEcbgotBMtGG4O3oBO9GJ3g/OsHlKAT+QN8ZpW3f6kfHTTtxy2E3CMHRcROBw0sXaP7sXg5yN42K
bJnBT3fIoPe8u7+umyjykvmNHdTGPVbDYtA9CeVrAm+NktBLmYapkkW8L2Uapm52YxqmknZjGqa2
dmMaptp2Y/rQdw3u4dxdnSHTxzNkmk3PEWqsSo49YX6lY6NqoH1invoxbz3R+OsEjONw7Mjqeo2j
InZi7QUrnSz4NjqBpK12vLFOic7yhZsacZr/Z7D4AwAA//8DAFBLAwQUAAYACAAAACEA/kXRhwUB
AADkAgAACwAIAl9yZWxzLy5yZWxzIKIEAiigAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKyS3UoDMRCF7wXfIcx9d7ZVRKS7vRGhdyL1AYZk
9odufkim0r69sSC6UHd74WWSkzPfnJn15mgH9cEx9d5VsCxKUOy0N71rK3jfvSweQSUhZ2jwjis4
cYJNfXuzfuOBJH9KXR+Syi4uVdCJhCfEpDu2lAof2OWXxkdLko+xxUB6Ty3jqiwfMP72gHrkqbam
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
KcVmoAlZhki+OF1IE+YiU68imjv2pNZVtVFpzoD2iylOVkM62RrE9R1L83926Dpn6BDMYyKff1Qo
Hp2lM3KmVLCYesoapJzfeS5qWd4H1Tbqa277AQAA//8DAFBLAwQUAAYACAAAACEA1dGS8b4AAAA3
AQAALAAAAHBwdC9zbGlkZUxheW91dHMvX3JlbHMvc2xpZGVMYXlvdXQ4LnhtbC5yZWxzhI/BCsIw
EETvgv8Q9m7SehCRpl5E8OBF9AOWZNsG2yRko+jfm2MFwePsMG92mv1rGsWTErvgNdSyAkHeBOt8
r+F2Pa62IDijtzgGTxrexLBvl4vmQiPmEuLBRRaF4lnDkHPcKcVmoAlZhki+OF1IE+YiU68imjv2
pNZVtVFpzoD2iylOVkM62RrE9R1L83926Dpn6BDMYyKff1QoHp2lM3KmVLCYesoapJzfeS5qWd4H
1Tbqa277AQAA//8DAFBLAwQUAAYACAAAACEA1dGS8b4AAAA3AQAALAAAAHBwdC9zbGlkZUxheW91
dHMvX3JlbHMvc2xpZGVMYXlvdXQ3LnhtbC5yZWxzhI/BCsIwEETvgv8Q9m7SehCRpl5E8OBF9AOW
ZNsG2yRko+jfm2MFwePsMG92mv1rGsWTErvgNdSyAkHeBOt8r+F2Pa62IDijtzgGTxrexLBvl4vm
QiPmEuLBRRaF4lnDkHPcKcVmoAlZhki+OF1IE+YiU68imjv2pNZVtVFpzoD2iylOVkM62RrE9R1L
83926Dpn6BDMYyKff1QoHp2lM3KmVLCYesoapJzfeS5qWd4H1Tbqa277AQAA//8DAFBLAwQUAAYA
CAAAACEA1dGS8b4AAAA3AQAALAAAAHBwdC9zbGlkZUxheW91dHMvX3JlbHMvc2xpZGVMYXlvdXQ2
LnhtbC5yZWxzhI/BCsIwEETvgv8Q9m7SehCRpl5E8OBF9AOWZNsG2yRko+jfm2MFwePsMG92mv1r
GsWTErvgNdSyAkHeBOt8r+F2Pa62IDijtzgGTxrexLBvl4vmQiPmEuLBRRaF4lnDkHPcKcVmoAlZ
hki+OF1IE+YiU68imjv2pNZVtVFpzoD2iylOVkM62RrE9R1L83926Dpn6BDMYyKff1QoHp2lM3Km
VLCYesoapJzfeS5qWd4H1Tbqa277AQAA//8DAFBLAwQUAAYACAAAACEA1dGS8b4AAAA3AQAALAAA
AHBwdC9zbGlkZUxheW91dHMvX3JlbHMvc2xpZGVMYXlvdXQ1LnhtbC5yZWxzhI/BCsIwEETvgv8Q
9m7SehCRpl5E8OBF9AOWZNsG2yRko+jfm2MFwePsMG92mv1rGsWTErvgNdSyAkHeBOt8r+F2Pa62
IDijtzgGTxrexLBvl4vmQiPmEuLBRRaF4lnDkHPcKcVmoAlZhki+OF1IE+YiU68imjv2pNZVtVFp
zoD2iylOVkM62RrE9R1L83926Dpn6BDMYyKff1QoHp2lM3KmVLCYesoapJzfeS5qWd4H1Tbqa277
AQAA//8DAFBLAwQUAAYACAAAACEA1dGS8b4AAAA3AQAALAAAAHBwdC9zbGlkZUxheW91dHMvX3Jl
bHMvc2xpZGVMYXlvdXQ0LnhtbC5yZWxzhI/BCsIwEETvgv8Q9m7SehCRpl5E8OBF9AOWZNsG2yRk
o+jfm2MFwePsMG92mv1rGsWTErvgNdSyAkHeBOt8r+F2Pa62IDijtzgGTxrexLBvl4vmQiPmEuLB
RRaF4lnDkHPcKcVmoAlZhki+OF1IE+YiU68imjv2pNZVtVFpzoD2iylOVkM62RrE9R1L83926Dpn
6BDMYyKff1QoHp2lM3KmVLCYesoapJzfeS5qWd4H1Tbqa277AQAA//8DAFBLAwQUAAYACAAAACEA
1dGS8b4AAAA3AQAALAAAAHBwdC9zbGlkZUxheW91dHMvX3JlbHMvc2xpZGVMYXlvdXQzLnhtbC5y
ZWxzhI/BCsIwEETvgv8Q9m7SehCRpl5E8OBF9AOWZNsG2yRko+jfm2MFwePsMG92mv1rGsWTErvg
NdSyAkHeBOt8r+F2Pa62IDijtzgGTxrexLBvl4vmQiPmEuLBRRaF4lnDkHPcKcVmoAlZhki+OF1I
E+YiU68imjv2pNZVtVFpzoD2iylOVkM62RrE9R1L83926Dpn6BDMYyKff1QoHp2lM3KmVLCYesoa
pJzfeS5qWd4H1Tbqa277AQAA//8DAFBLAwQUAAYACAAAACEA1dGS8b4AAAA3AQAALAAAAHBwdC9z
bGlkZUxheW91dHMvX3JlbHMvc2xpZGVMYXlvdXQyLnhtbC5yZWxzhI/BCsIwEETvgv8Q9m7SehCR
pl5E8OBF9AOWZNsG2yRko+jfm2MFwePsMG92mv1rGsWTErvgNdSyAkHeBOt8r+F2Pa62IDijtzgG
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
T7puGs5oUD5Zi2tCVtNq2carA0bzsmfWz8WdDhA5/06Hj0Y0Jhs8nujLGnuxI4g+YOGZTGgOZ5Ji
laQD3diJ14e2px5OuILbJBMbF7CsVqVMkRJ+5ly3ByodADb1fV0JAV+01tadjCB111QLNTX/JLwV
fReSMFQ+j2BKJ8pAjbJtUebcsaBm7alfTmQqDI3KLY3xhLlGcy+7+OAO+HUDLhQmTEkT1HCPJTC0
0j2jPtQA600z9eo/AAAA//8DAFBLAwQKAAAAAAAAACEA536LKZ0CAACdAgAAFQAAAHBwdC9tZWRp
YS9pbWFnZTEuanBlZ//Y/+AAEEpGSUYAAQEBAGAAYAAA/9sAQwAIBgYHBgUIBwcHCQkICgwUDQwL
CwwZEhMPFB0aHx4dGhwcICQuJyAiLCMcHCg3KSwwMTQ0NB8nOT04MjwuMzQy/9sAQwEJCQkMCwwY
DQ0YMiEcITIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy
/8AAEQgACgANAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQ
AAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYX
GBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqS
k5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz
9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQE
AAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1
Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKj
pKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwD
AQACEQMRAD8AT/51VeweHv8AkOeLP+wrH/6RWteP/wDzqq9g8Pf8hzxZ/wBhWP8A9IrWgD//2VBL
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
58qlpVzg2lmDYQlXwYx22ow4wSw2M+lIkVjc5THnoatA7MpmNJuFXDZx4oTTfv3r++67D3XApsbG
jRs2oNmXiETrq6vxh1dW9Gyoq1u2eBGw7ff5XnrxRfT/HnjwoSuuuBzOtjC7YhBYbBvXb2xECbex
0WQxUZdt/vz5ixYvIR+jqaUFhfqqDRt+oHboLLTXpWE7GkX7NwvIP5EnK3cZuRbItUCuBbbeAjkM
3mobKXM0M8trpVc1r+d2AtktHScTee4A4Kx2hsOODgcpjAjS4pfWIaNvtevtDguKRi6PjWAtrC+v
z4+v+NRTT3nyySc//vhjgBl+2WOPPuptbfvyyy9feuklEiFramruvOOOG/944xOPPtrS0kp86/TT
TtPyi3XuPE8wEJC4uMMxb97cu+66669//WtjYxOZWnfeeef0GdPxWv/pT3964sknFiyY/323w3cc
vysEdy5UttqfuR1yLbD9WkAJ4XQGqrqZhrD9LiR3pJ9rC+QweBvsYIW7WWenikF+zyisUD6zdRh6
/MsDj106Z+6CT8ZMfuPNj157/bM33vzirXfGvPr6R+++95k/ENAb9Wj5tnnbf33aaYjXv/XWWx9+
+KHP60McP4/8S5T0kfuDixUOA66PPvpofX1dQ0ODxH31er5usdvikSgpFpoStQ61AYfdvmrVKrJ7
V61edexxx/3616chkIvACGm4J5zwq++7Hb7j+KoP1A7Z9z/XBzF33T/PFsj6YH6el5+76h+/BXIY
vLU+UMHgLAhnjODv3xBWQP8tXzRqyFa7taJn75133n3//Q876KAj99v/kL323u/oY44dNHhw/wED
vF6/z09qhJuEpf332+/KK6+k7Nqy5csyMkMSKkbIPkpiZX5xMRKSwVC4pLSksLjoo08+9uR5Qr6A
mRJxolNvomzc5MmTjz322OEjRiADdNNNN2NS3377bX379r3qqqs/+/zzf/7rn9/zUuQ7IT7ni97a
4M39/ftuga5Oshwl8Ptu7R3y+DkM3sZu7QLECoa//21zbq00SYskU7a2tm9YX7Nyxbrly9esWrVu
zZr1CxYuamtrX7xkSUEBSRYuqt889fTTjz32+GuvvYY875FHHomSx79uv51foWhR2Q3b99933YXI
bZ++ffr177/f/vu//vrrN99881NPPTVx3HgK1FAkh7QjzF82RBVIBBo/bty6qnXc95KlSxYuWrhk
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
AwAAAAEAAgAAATEAAgAAABQAAAByATIAAgAAABQAAACGh2kABAAAAAEAAACcAAAAyAAAAEgAAAAB
AAAASAAAAAFBZG9iZSBQaG90b3Nob3AgNy4wADIwMDI6MTI6MTEgMTk6NTg6MjYAAAAAA6ABAAMA
AAAB//8AAKACAAQAAAABAAABLKADAAQAAAABAAABLAAAAAAAAAAGAQMAAwAAAAEABgAAARoABQAA
AAEAAAEWARsABQAAAAEAAAEeASgAAwAAAAEAAgAAAgEABAAAAAEAAAEmAgIABAAAAAEAAAAAAAAA
AAAAAEgAAAABAAAASAAAAAH/7SPcUGhvdG9zaG9wIDMuMAA4QklNBCUAAAAAABAAAAAAAAAAAAAA
AAAAAAAAOEJJTQPqAAAAAB2tPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4K
PCFET0NUWVBFIHBsaXN0IFBVQkxJQyAiLS8vQXBwbGUgQ29tcHV0ZXIvL0RURCBQTElTVCAxLjAv
L0VOIiAiaHR0cDovL3d3dy5hcHBsZS5jb20vRFREcy9Qcm9wZXJ0eUxpc3QtMS4wLmR0ZCI+Cjxw
bGlzdCB2ZXJzaW9uPSIxLjAiPgo8ZGljdD4KCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3Jt
YXQuUE1Ib3Jpem9udGFsUmVzPC9rZXk+Cgk8ZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50
aWNrZXQuY3JlYXRvcjwva2V5PgoJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwv
c3RyaW5nPgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQk8
YXJyYXk+CgkJCTxkaWN0PgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTUhv
cml6b250YWxSZXM8L2tleT4KCQkJCTxyZWFsPjcyPC9yZWFsPgoJCQkJPGtleT5jb20uYXBwbGUu
cHJpbnQudGlja2V0LmNsaWVudDwva2V5PgoJCQkJPHN0cmluZz5jb20uYXBwbGUucHJpbnRpbmdt
YW5hZ2VyPC9zdHJpbmc+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQubW9kRGF0ZTwv
a2V5PgoJCQkJPGRhdGU+MjAwMi0xMS0yN1QyMToyODowMlo8L2RhdGU+CgkJCQk8a2V5PmNvbS5h
cHBsZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQk8aW50ZWdlcj4wPC9pbnRlZ2Vy
PgoJCQk8L2RpY3Q+CgkJPC9hcnJheT4KCTwvZGljdD4KCTxrZXk+Y29tLmFwcGxlLnByaW50LlBh
Z2VGb3JtYXQuUE1PcmllbnRhdGlvbjwva2V5PgoJPGRpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJp
bnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludGluZ21hbmFn
ZXI8L3N0cmluZz4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+
CgkJPGFycmF5PgoJCQk8ZGljdD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQu
UE1PcmllbnRhdGlvbjwva2V5PgoJCQkJPGludGVnZXI+MTwvaW50ZWdlcj4KCQkJCTxrZXk+Y29t
LmFwcGxlLnByaW50LnRpY2tldC5jbGllbnQ8L2tleT4KCQkJCTxzdHJpbmc+Y29tLmFwcGxlLnBy
aW50aW5nbWFuYWdlcjwvc3RyaW5nPgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lm1v
ZERhdGU8L2tleT4KCQkJCTxkYXRlPjIwMDItMTEtMjdUMjE6Mjg6MDJaPC9kYXRlPgoJCQkJPGtl
eT5jb20uYXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJPGludGVnZXI+MDwv
aW50ZWdlcj4KCQkJPC9kaWN0PgoJCTwvYXJyYXk+Cgk8L2RpY3Q+Cgk8a2V5PmNvbS5hcHBsZS5w
cmludC5QYWdlRm9ybWF0LlBNU2NhbGluZzwva2V5PgoJPGRpY3Q+CgkJPGtleT5jb20uYXBwbGUu
cHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludGluZ21h
bmFnZXI8L3N0cmluZz4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9r
ZXk+CgkJPGFycmF5PgoJCQk8ZGljdD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3Jt
YXQuUE1TY2FsaW5nPC9rZXk+CgkJCQk8cmVhbD4xPC9yZWFsPgoJCQkJPGtleT5jb20uYXBwbGUu
cHJpbnQudGlja2V0LmNsaWVudDwva2V5PgoJCQkJPHN0cmluZz5jb20uYXBwbGUucHJpbnRpbmdt
YW5hZ2VyPC9zdHJpbmc+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQubW9kRGF0ZTwv
a2V5PgoJCQkJPGRhdGU+MjAwMi0xMS0yN1QyMToyODowMlo8L2RhdGU+CgkJCQk8a2V5PmNvbS5h
cHBsZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQk8aW50ZWdlcj4wPC9pbnRlZ2Vy
PgoJCQk8L2RpY3Q+CgkJPC9hcnJheT4KCTwvZGljdD4KCTxrZXk+Y29tLmFwcGxlLnByaW50LlBh
Z2VGb3JtYXQuUE1WZXJ0aWNhbFJlczwva2V5PgoJPGRpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJp
bnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludGluZ21hbmFn
ZXI8L3N0cmluZz4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+
CgkJPGFycmF5PgoJCQk8ZGljdD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQu
UE1WZXJ0aWNhbFJlczwva2V5PgoJCQkJPHJlYWw+NzI8L3JlYWw+CgkJCQk8a2V5PmNvbS5hcHBs
ZS5wcmludC50aWNrZXQuY2xpZW50PC9rZXk+CgkJCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludGlu
Z21hbmFnZXI8L3N0cmluZz4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5tb2REYXRl
PC9rZXk+CgkJCQk8ZGF0ZT4yMDAyLTExLTI3VDIxOjI4OjAyWjwvZGF0ZT4KCQkJCTxrZXk+Y29t
LmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCTxpbnRlZ2VyPjA8L2ludGVn
ZXI+CgkJCTwvZGljdD4KCQk8L2FycmF5PgoJPC9kaWN0PgoJPGtleT5jb20uYXBwbGUucHJpbnQu
UGFnZUZvcm1hdC5QTVZlcnRpY2FsU2NhbGluZzwva2V5PgoJPGRpY3Q+CgkJPGtleT5jb20uYXBw
bGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludGlu
Z21hbmFnZXI8L3N0cmluZz4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5
PC9rZXk+CgkJPGFycmF5PgoJCQk8ZGljdD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VG
b3JtYXQuUE1WZXJ0aWNhbFNjYWxpbmc8L2tleT4KCQkJCTxyZWFsPjE8L3JlYWw+CgkJCQk8a2V5
PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY2xpZW50PC9rZXk+CgkJCQk8c3RyaW5nPmNvbS5hcHBs
ZS5wcmludGluZ21hbmFnZXI8L3N0cmluZz4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tl
dC5tb2REYXRlPC9rZXk+CgkJCQk8ZGF0ZT4yMDAyLTExLTI3VDIxOjI4OjAyWjwvZGF0ZT4KCQkJ
CTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCTxpbnRlZ2Vy
PjA8L2ludGVnZXI+CgkJCTwvZGljdD4KCQk8L2FycmF5PgoJPC9kaWN0PgoJPGtleT5jb20uYXBw
bGUucHJpbnQuc3ViVGlja2V0LnBhcGVyX2luZm9fdGlja2V0PC9rZXk+Cgk8ZGljdD4KCQk8a2V5
PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0LlBNQWRqdXN0ZWRQYWdlUmVjdDwva2V5PgoJCTxk
aWN0PgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCQk8c3Ry
aW5nPmNvbS5hcHBsZS5wcmludGluZ21hbmFnZXI8L3N0cmluZz4KCQkJPGtleT5jb20uYXBwbGUu
cHJpbnQudGlja2V0Lml0ZW1BcnJheTwva2V5PgoJCQk8YXJyYXk+CgkJCQk8ZGljdD4KCQkJCQk8
a2V5PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0LlBNQWRqdXN0ZWRQYWdlUmVjdDwva2V5PgoJ
CQkJCTxhcnJheT4KCQkJCQkJPHJlYWw+MC4wPC9yZWFsPgoJCQkJCQk8cmVhbD4wLjA8L3JlYWw+
CgkJCQkJCTxyZWFsPjczNDwvcmVhbD4KCQkJCQkJPHJlYWw+NTc2PC9yZWFsPgoJCQkJCTwvYXJy
YXk+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNsaWVudDwva2V5PgoJCQkJCTxz
dHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwvc3RyaW5nPgoJCQkJCTxrZXk+Y29tLmFw
cGxlLnByaW50LnRpY2tldC5tb2REYXRlPC9rZXk+CgkJCQkJPGRhdGU+MjAwMi0xMi0xMlQwMzo1
ODoyNVo8L2RhdGU+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwv
a2V5PgoJCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCQk8L2RpY3Q+CgkJCTwvYXJyYXk+CgkJ
PC9kaWN0PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1BZGp1c3RlZFBhcGVy
UmVjdDwva2V5PgoJCTxkaWN0PgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRv
cjwva2V5PgoJCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludGluZ21hbmFnZXI8L3N0cmluZz4KCQkJ
PGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lml0ZW1BcnJheTwva2V5PgoJCQk8YXJyYXk+CgkJ
CQk8ZGljdD4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0LlBNQWRqdXN0ZWRQ
YXBlclJlY3Q8L2tleT4KCQkJCQk8YXJyYXk+CgkJCQkJCTxyZWFsPi0xODwvcmVhbD4KCQkJCQkJ
PHJlYWw+LTE4PC9yZWFsPgoJCQkJCQk8cmVhbD43NzQ8L3JlYWw+CgkJCQkJCTxyZWFsPjU5NDwv
cmVhbD4KCQkJCQk8L2FycmF5PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jbGll
bnQ8L2tleT4KCQkJCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludGluZ21hbmFnZXI8L3N0cmluZz4K
CQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQubW9kRGF0ZTwva2V5PgoJCQkJCTxkYXRl
PjIwMDItMTItMTJUMDM6NTg6MjVaPC9kYXRlPgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRp
Y2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCQk8aW50ZWdlcj4wPC9pbnRlZ2VyPgoJCQkJPC9kaWN0
PgoJCQk8L2FycmF5PgoJCTwvZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC5QYXBlckluZm8u
UE1QYXBlck5hbWU8L2tleT4KCQk8ZGljdD4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0
LmNyZWF0b3I8L2tleT4KCQkJPHN0cmluZz5jb20uYXBwbGUucHJpbnQucG0uUG9zdFNjcmlwdDwv
c3RyaW5nPgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJ
CTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhcGVySW5mby5Q
TVBhcGVyTmFtZTwva2V5PgoJCQkJCTxzdHJpbmc+bmEtbGV0dGVyPC9zdHJpbmc+CgkJCQkJPGtl
eT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNsaWVudDwva2V5PgoJCQkJCTxzdHJpbmc+Y29tLmFw
cGxlLnByaW50LnBtLlBvc3RTY3JpcHQ8L3N0cmluZz4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmlu
dC50aWNrZXQubW9kRGF0ZTwva2V5PgoJCQkJCTxkYXRlPjIwMDAtMDctMjhUMjI6NTc6MDRaPC9k
YXRlPgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJ
CQk8aW50ZWdlcj4xPC9pbnRlZ2VyPgoJCQkJPC9kaWN0PgoJCQk8L2FycmF5PgoJCTwvZGljdD4K
CQk8a2V5PmNvbS5hcHBsZS5wcmludC5QYXBlckluZm8uUE1VbmFkanVzdGVkUGFnZVJlY3Q8L2tl
eT4KCQk8ZGljdD4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4K
CQkJPHN0cmluZz5jb20uYXBwbGUucHJpbnQucG0uUG9zdFNjcmlwdDwvc3RyaW5nPgoJCQk8a2V5
PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJCTxhcnJheT4KCQkJCTxk
aWN0PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhcGVySW5mby5QTVVuYWRqdXN0ZWRQYWdl
UmVjdDwva2V5PgoJCQkJCTxhcnJheT4KCQkJCQkJPHJlYWw+MC4wPC9yZWFsPgoJCQkJCQk8cmVh
bD4wLjA8L3JlYWw+CgkJCQkJCTxyZWFsPjczNDwvcmVhbD4KCQkJCQkJPHJlYWw+NTc2PC9yZWFs
PgoJCQkJCTwvYXJyYXk+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNsaWVudDwv
a2V5PgoJCQkJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50aW5nbWFuYWdlcjwvc3RyaW5nPgoJCQkJ
CTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5tb2REYXRlPC9rZXk+CgkJCQkJPGRhdGU+MjAw
Mi0xMS0yN1QyMToyODowMlo8L2RhdGU+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0
LnN0YXRlRmxhZzwva2V5PgoJCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCQk8L2RpY3Q+CgkJ
CTwvYXJyYXk+CgkJPC9kaWN0PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhcGVySW5mby5QTVVu
YWRqdXN0ZWRQYXBlclJlY3Q8L2tleT4KCQk8ZGljdD4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQu
dGlja2V0LmNyZWF0b3I8L2tleT4KCQkJPHN0cmluZz5jb20uYXBwbGUucHJpbnQucG0uUG9zdFNj
cmlwdDwvc3RyaW5nPgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9r
ZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhcGVy
SW5mby5QTVVuYWRqdXN0ZWRQYXBlclJlY3Q8L2tleT4KCQkJCQk8YXJyYXk+CgkJCQkJCTxyZWFs
Pi0xODwvcmVhbD4KCQkJCQkJPHJlYWw+LTE4PC9yZWFsPgoJCQkJCQk8cmVhbD43NzQ8L3JlYWw+
CgkJCQkJCTxyZWFsPjU5NDwvcmVhbD4KCQkJCQk8L2FycmF5PgoJCQkJCTxrZXk+Y29tLmFwcGxl
LnByaW50LnRpY2tldC5jbGllbnQ8L2tleT4KCQkJCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludGlu
Z21hbmFnZXI8L3N0cmluZz4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQubW9kRGF0
ZTwva2V5PgoJCQkJCTxkYXRlPjIwMDItMTEtMjdUMjE6Mjg6MDJaPC9kYXRlPgoJCQkJCTxrZXk+
Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCQk8aW50ZWdlcj4wPC9p
bnRlZ2VyPgoJCQkJPC9kaWN0PgoJCQk8L2FycmF5PgoJCTwvZGljdD4KCQk8a2V5PmNvbS5hcHBs
ZS5wcmludC5QYXBlckluZm8ucHBkLlBNUGFwZXJOYW1lPC9rZXk+CgkJPGRpY3Q+CgkJCTxrZXk+
Y29tLmFwcGxlLnByaW50LnRpY2tldC5jcmVhdG9yPC9rZXk+CgkJCTxzdHJpbmc+Y29tLmFwcGxl
LnByaW50LnBtLlBvc3RTY3JpcHQ8L3N0cmluZz4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlj
a2V0Lml0ZW1BcnJheTwva2V5PgoJCQk8YXJyYXk+CgkJCQk8ZGljdD4KCQkJCQk8a2V5PmNvbS5h
cHBsZS5wcmludC5QYXBlckluZm8ucHBkLlBNUGFwZXJOYW1lPC9rZXk+CgkJCQkJPHN0cmluZz5M
ZXR0ZXI8L3N0cmluZz4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY2xpZW50PC9r
ZXk+CgkJCQkJPHN0cmluZz5jb20uYXBwbGUucHJpbnQucG0uUG9zdFNjcmlwdDwvc3RyaW5nPgoJ
CQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5tb2REYXRlPC9rZXk+CgkJCQkJPGRhdGU+
MjAwMC0wNy0yOFQyMjo1NzowNFo8L2RhdGU+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlj
a2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJCTxpbnRlZ2VyPjE8L2ludGVnZXI+CgkJCQk8L2RpY3Q+
CgkJCTwvYXJyYXk+CgkJPC9kaWN0PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5BUElW
ZXJzaW9uPC9rZXk+CgkJPHN0cmluZz4wMC4yMDwvc3RyaW5nPgoJCTxrZXk+Y29tLmFwcGxlLnBy
aW50LnRpY2tldC5wcml2YXRlTG9jazwva2V5PgoJCTxmYWxzZS8+CgkJPGtleT5jb20uYXBwbGUu
cHJpbnQudGlja2V0LnR5cGU8L2tleT4KCQk8c3RyaW5nPmNvbS5hcHBsZS5wcmludC5QYXBlcklu
Zm9UaWNrZXQ8L3N0cmluZz4KCTwvZGljdD4KCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5B
UElWZXJzaW9uPC9rZXk+Cgk8c3RyaW5nPjAwLjIwPC9zdHJpbmc+Cgk8a2V5PmNvbS5hcHBsZS5w
cmludC50aWNrZXQucHJpdmF0ZUxvY2s8L2tleT4KCTxmYWxzZS8+Cgk8a2V5PmNvbS5hcHBsZS5w
cmludC50aWNrZXQudHlwZTwva2V5PgoJPHN0cmluZz5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1h
dFRpY2tldDwvc3RyaW5nPgo8L2RpY3Q+CjwvcGxpc3Q+CgA4QklNA+kAAAAAAHgAAwAAAEgASAAA
AAAC3gJA/+7/7gMGAlIDZwUoA/wAAgAAAEgASAAAAAAC2AIoAAEAAABkAAAAAQADAwMAAAABf/8A
AQABAAAAAAAAAAAAAAAAaAgAGQGQAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4QklN
A+0AAAAAABAASAAAAAEAAQBIAAAAAQABOEJJTQQmAAAAAAAOAAAAAAAAAAAAAD+AAAA4QklNBA0A
AAAAAAQAAAB4OEJJTQQZAAAAAAAEAAAAHjhCSU0D8wAAAAAACQAAAAAAAAAAAQA4QklNBAoAAAAA
AAEAADhCSU0nEAAAAAAACgABAAAAAAAAAAE4QklNA/UAAAAAAEgAL2ZmAAEAbGZmAAYAAAAAAAEA
L2ZmAAEAoZmaAAYAAAAAAAEAMgAAAAEAWgAAAAYAAAAAAAEANQAAAAEALQAAAAYAAAAAAAE4QklN
A/gAAAAAAHAAAP////////////////////////////8D6AAAAAD/////////////////////////
////A+gAAAAA/////////////////////////////wPoAAAAAP//////////////////////////
//8D6AAAOEJJTQQIAAAAAAAQAAAAAQAAAkAAAAJAAAAAADhCSU0EHgAAAAAABAAAAAA4QklNBBoA
AAAAA1MAAAAGAAAAAAAAAAAAAAEsAAABLAAAAA8AdABpAGwAZQBfAHAAYQBwAGUAcgBfAGIAbAB1
AGUAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAASwAAAEsAAAAAAAAAAAAAAAAAAAA
AAEAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAEAAAAAAABudWxsAAAAAgAAAAZib3VuZHNPYmpjAAAA
AQAAAAAAAFJjdDEAAAAEAAAAAFRvcCBsb25nAAAAAAAAAABMZWZ0bG9uZwAAAAAAAAAAQnRvbWxv
bmcAAAEsAAAAAFJnaHRsb25nAAABLAAAAAZzbGljZXNWbExzAAAAAU9iamMAAAABAAAAAAAFc2xp
Y2UAAAASAAAAB3NsaWNlSURsb25nAAAAAAAAAAdncm91cElEbG9uZwAAAAAAAAAGb3JpZ2luZW51
bQAAAAxFU2xpY2VPcmlnaW4AAAANYXV0b0dlbmVyYXRlZAAAAABUeXBlZW51bQAAAApFU2xpY2VU
eXBlAAAAAEltZyAAAAAGYm91bmRzT2JqYwAAAAEAAAAAAABSY3QxAAAABAAAAABUb3AgbG9uZwAA
AAAAAAAATGVmdGxvbmcAAAAAAAAAAEJ0b21sb25nAAABLAAAAABSZ2h0bG9uZwAAASwAAAADdXJs
VEVYVAAAAAEAAAAAAABudWxsVEVYVAAAAAEAAAAAAABNc2dlVEVYVAAAAAEAAAAAAAZhbHRUYWdU
RVhUAAAAAQAAAAAADmNlbGxUZXh0SXNIVE1MYm9vbAEAAAAIY2VsbFRleHRURVhUAAAAAQAAAAAA
CWhvcnpBbGlnbmVudW0AAAAPRVNsaWNlSG9yekFsaWduAAAAB2RlZmF1bHQAAAAJdmVydEFsaWdu
ZW51bQAAAA9FU2xpY2VWZXJ0QWxpZ24AAAAHZGVmYXVsdAAAAAtiZ0NvbG9yVHlwZWVudW0AAAAR
RVNsaWNlQkdDb2xvclR5cGUAAAAATm9uZQAAAAl0b3BPdXRzZXRsb25nAAAAAAAAAApsZWZ0T3V0
c2V0bG9uZwAAAAAAAAAMYm90dG9tT3V0c2V0bG9uZwAAAAAAAAALcmlnaHRPdXRzZXRsb25nAAAA
AAA4QklNBBQAAAAAAAQAAAAKOEJJTQQhAAAAAABVAAAAAQEAAAAPAEEAZABvAGIAZQAgAFAAaABv
AHQAbwBzAGgAbwBwAAAAEwBBAGQAbwBiAGUAIABQAGgAbwB0AG8AcwBoAG8AcAAgADcALgAwAAAA
AQA4QklNBAYAAAAAAAcABgABAAEBAP/hEkhodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvADw/
eHBhY2tldCBiZWdpbj0n77u/JyBpZD0nVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkJz8+Cjw/YWRv
YmUteGFwLWZpbHRlcnMgZXNjPSJDUiI/Pgo8eDp4YXBtZXRhIHhtbG5zOng9J2Fkb2JlOm5zOm1l
dGEvJyB4OnhhcHRrPSdYTVAgdG9vbGtpdCAyLjguMi0zMywgZnJhbWV3b3JrIDEuNSc+CjxyZGY6
UkRGIHhtbG5zOnJkZj0naHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5z
IycgeG1sbnM6aVg9J2h0dHA6Ly9ucy5hZG9iZS5jb20vaVgvMS4wLyc+CgogPHJkZjpEZXNjcmlw
dGlvbiBhYm91dD0ndXVpZDozY2E4Zjc3NC0wZWQ1LTExZDctYjYyMi1jMGRlNWY0MzljMmYnCiAg
eG1sbnM6eGFwTU09J2h0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8nPgogIDx4YXBNTTpE
b2N1bWVudElEPmFkb2JlOmRvY2lkOnBob3Rvc2hvcDozY2E4Zjc3MC0wZWQ1LTExZDctYjYyMi1j
MGRlNWY0MzljMmY8L3hhcE1NOkRvY3VtZW50SUQ+CiA8L3JkZjpEZXNjcmlwdGlvbj4KCjwvcmRm
OlJERj4KPC94OnhhcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSd3Jz8+/+ICOElDQ19QUk9GSUxFAAEBAAACKEFEQkUC
EAAAbW50clJHQiBYWVogB88ABgADAAAAAAAAYWNzcEFQUEwAAAAAbm9uZQAAAAAAAAAAAAAAAAAA
AAEAAPbWAAEAAAAA0y1BREJFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAKY3BydAAAAPwAAAAyZGVzYwAAATAAAABkd3RwdAAAAZQAAAAUYmtwdAAAAagAAAAU
clRSQwAAAbwAAAAOZ1RSQwAAAcwAAAAOYlRSQwAAAdwAAAAOclhZWgAAAewAAAAUZ1hZWgAAAgAA
AAAUYlhZWgAAAhQAAAAUdGV4dAAAAABDb3B5cmlnaHQgMTk5OSBBZG9iZSBTeXN0ZW1zIEluY29y
cG9yYXRlZAAAAGRlc2MAAAAAAAAACkFwcGxlIFJHQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYWVog
AAAAAAAA81EAAQAAAAEWzFhZWiAAAAAAAAAAAAAAAAAAAAAAY3VydgAAAAAAAAABAc0AAGN1cnYA
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
c10ueG1sUEsBAi0AFAAGAAgAAAAhAP5F0YcFAQAA5AIAAAsAAAAAAAAAAAAAAAAAYAQAAF9yZWxz
Ly5yZWxzUEsBAi0AFAAGAAgAAAAhAGNcI7TBAAAANwEAACAAAAAAAAAAAAAAAAAAlgcAAHBwdC9z
bGlkZXMvX3JlbHMvc2xpZGUxLnhtbC5yZWxzUEsBAi0AFAAGAAgAAAAhAEv1Pey/AAAANwEAACAA
AAAAAAAAAAAAAAAAlQgAAHBwdC9zbGlkZXMvX3JlbHMvc2xpZGUyLnhtbC5yZWxzUEsBAi0AFAAG
AAgAAAAhAK/pvLQbAQAAbQMAACAAAAAAAAAAAAAAAAAAkgkAAHBwdC9zbGlkZXMvX3JlbHMvc2xp
ZGUzLnhtbC5yZWxzUEsBAi0AFAAGAAgAAAAhAEfzDhzwAAAAzQIAACAAAAAAAAAAAAAAAAAA6woA
AHBwdC9zbGlkZXMvX3JlbHMvc2xpZGU0LnhtbC5yZWxzUEsBAi0AFAAGAAgAAAAhAEv1Pey/AAAA
NwEAACAAAAAAAAAAAAAAAAAAGQwAAHBwdC9zbGlkZXMvX3JlbHMvc2xpZGU1LnhtbC5yZWxzUEsB
Ai0AFAAGAAgAAAAhAHf52kYIAgAAhwkAACAAAAAAAAAAAAAAAAAAFg0AAHBwdC9zbGlkZXMvX3Jl
bHMvc2xpZGU2LnhtbC5yZWxzUEsBAi0AFAAGAAgAAAAhALJbO3c/AQAAawYAAB8AAAAAAAAAAAAA
AAAAXA8AAHBwdC9fcmVscy9wcmVzZW50YXRpb24ueG1sLnJlbHNQSwECLQAUAAYACAAAACEAr9LN
sW0CAAA3DQAAFAAAAAAAAAAAAAAAAADgEQAAcHB0L3ByZXNlbnRhdGlvbi54bWxQSwECLQAUAAYA
CAAAACEAAK3lr/IDAAAHCgAAFQAAAAAAAAAAAAAAAAB/FAAAcHB0L3NsaWRlcy9zbGlkZTIueG1s
UEsBAi0AFAAGAAgAAAAhAKunHUmeBAAArhEAABUAAAAAAAAAAAAAAAAApBgAAHBwdC9zbGlkZXMv
c2xpZGU2LnhtbFBLAQItABQABgAIAAAAIQDyfW3xlQMAAIUJAAAVAAAAAAAAAAAAAAAAAHUdAABw
cHQvc2xpZGVzL3NsaWRlNS54bWxQSwECLQAUAAYACAAAACEADPsOVGgCAACkBQAAFQAAAAAAAAAA
AAAAAAA9IQAAcHB0L3NsaWRlcy9zbGlkZTEueG1sUEsBAi0AFAAGAAgAAAAhAFzGAUGvBgAAnxIA
ABUAAAAAAAAAAAAAAAAA2CMAAHBwdC9zbGlkZXMvc2xpZGUzLnhtbFBLAQItABQABgAIAAAAIQCh
s+LMRgYAADIfAAAVAAAAAAAAAAAAAAAAALoqAABwcHQvc2xpZGVzL3NsaWRlNC54bWxQSwECLQAU
AAYACAAAACEA1dGS8b4AAAA3AQAALAAAAAAAAAAAAAAAAAAzMQAAcHB0L3NsaWRlTGF5b3V0cy9f
cmVscy9zbGlkZUxheW91dDEueG1sLnJlbHNQSwECLQAUAAYACAAAACEA1dGS8b4AAAA3AQAALAAA
AAAAAAAAAAAAAAA7MgAAcHB0L3NsaWRlTGF5b3V0cy9fcmVscy9zbGlkZUxheW91dDgueG1sLnJl
bHNQSwECLQAUAAYACAAAACEA1dGS8b4AAAA3AQAALAAAAAAAAAAAAAAAAABDMwAAcHB0L3NsaWRl
TGF5b3V0cy9fcmVscy9zbGlkZUxheW91dDcueG1sLnJlbHNQSwECLQAUAAYACAAAACEA1dGS8b4A
AAA3AQAALAAAAAAAAAAAAAAAAABLNAAAcHB0L3NsaWRlTGF5b3V0cy9fcmVscy9zbGlkZUxheW91
dDYueG1sLnJlbHNQSwECLQAUAAYACAAAACEA1dGS8b4AAAA3AQAALAAAAAAAAAAAAAAAAABTNQAA
cHB0L3NsaWRlTGF5b3V0cy9fcmVscy9zbGlkZUxheW91dDUueG1sLnJlbHNQSwECLQAUAAYACAAA
ACEA1dGS8b4AAAA3AQAALAAAAAAAAAAAAAAAAABbNgAAcHB0L3NsaWRlTGF5b3V0cy9fcmVscy9z
bGlkZUxheW91dDQueG1sLnJlbHNQSwECLQAUAAYACAAAACEA1dGS8b4AAAA3AQAALAAAAAAAAAAA
AAAAAABjNwAAcHB0L3NsaWRlTGF5b3V0cy9fcmVscy9zbGlkZUxheW91dDMueG1sLnJlbHNQSwEC
LQAUAAYACAAAACEA1dGS8b4AAAA3AQAALAAAAAAAAAAAAAAAAABrOAAAcHB0L3NsaWRlTGF5b3V0
cy9fcmVscy9zbGlkZUxheW91dDIueG1sLnJlbHNQSwECLQAUAAYACAAAACEAaaJfIR4BAADHBwAA
LAAAAAAAAAAAAAAAAABzOQAAcHB0L3NsaWRlTWFzdGVycy9fcmVscy9zbGlkZU1hc3RlcjEueG1s
LnJlbHNQSwECLQAUAAYACAAAACEA1dGS8b4AAAA3AQAALAAAAAAAAAAAAAAAAADbOgAAcHB0L3Ns
aWRlTGF5b3V0cy9fcmVscy9zbGlkZUxheW91dDkueG1sLnJlbHNQSwECLQAUAAYACAAAACEA1dGS
8b4AAAA3AQAALQAAAAAAAAAAAAAAAADjOwAAcHB0L3NsaWRlTGF5b3V0cy9fcmVscy9zbGlkZUxh
eW91dDExLnhtbC5yZWxzUEsBAi0AFAAGAAgAAAAhANXRkvG+AAAANwEAAC0AAAAAAAAAAAAAAAAA
7DwAAHBwdC9zbGlkZUxheW91dHMvX3JlbHMvc2xpZGVMYXlvdXQxMC54bWwucmVsc1BLAQItABQA
BgAIAAAAIQDdTC6stwYAAEQcAAAhAAAAAAAAAAAAAAAAAPU9AABwcHQvc2xpZGVMYXlvdXRzL3Ns
aWRlTGF5b3V0My54bWxQSwECLQAUAAYACAAAACEADIoE4MEDAAAYDAAAIQAAAAAAAAAAAAAAAADr
RAAAcHB0L3NsaWRlTGF5b3V0cy9zbGlkZUxheW91dDIueG1sUEsBAi0AFAAGAAgAAAAhAByvqSuP
BAAAHhEAACEAAAAAAAAAAAAAAAAA60gAAHBwdC9zbGlkZUxheW91dHMvc2xpZGVMYXlvdXQxLnht
bFBLAQItABQABgAIAAAAIQDwnUMuwAkAAJg6AAAhAAAAAAAAAAAAAAAAALlNAABwcHQvc2xpZGVN
YXN0ZXJzL3NsaWRlTWFzdGVyMS54bWxQSwECLQAUAAYACAAAACEATyP8gD4FAADGGAAAIQAAAAAA
AAAAAAAAAAC4VwAAcHB0L3NsaWRlTGF5b3V0cy9zbGlkZUxheW91dDUueG1sUEsBAi0AFAAGAAgA
AAAhAHfbc601BAAARxAAACEAAAAAAAAAAAAAAAAANV0AAHBwdC9zbGlkZUxheW91dHMvc2xpZGVM
YXlvdXQ0LnhtbFBLAQItABQABgAIAAAAIQBsTtrxqAIAAMMGAAAhAAAAAAAAAAAAAAAAAKlhAABw
cHQvc2xpZGVMYXlvdXRzL3NsaWRlTGF5b3V0Ny54bWxQSwECLQAUAAYACAAAACEAmDrfmbcDAAAT
DAAAIgAAAAAAAAAAAAAAAACQZAAAcHB0L3NsaWRlTGF5b3V0cy9zbGlkZUxheW91dDExLnhtbFBL
AQItABQABgAIAAAAIQBdRSz73wIAAB8IAAAhAAAAAAAAAAAAAAAAAIdoAABwcHQvc2xpZGVMYXlv
dXRzL3NsaWRlTGF5b3V0Ni54bWxQSwECLQAUAAYACAAAACEAhdMW62oDAAAzCwAAIgAAAAAAAAAA
AAAAAAClawAAcHB0L3NsaWRlTGF5b3V0cy9zbGlkZUxheW91dDEwLnhtbFBLAQItABQABgAIAAAA
IQDAV0ChvQUAAG4TAAAhAAAAAAAAAAAAAAAAAE9vAABwcHQvc2xpZGVMYXlvdXRzL3NsaWRlTGF5
b3V0OC54bWxQSwECLQAUAAYACAAAACEAfOD0s5gFAABbEwAAIQAAAAAAAAAAAAAAAABLdQAAcHB0
L3NsaWRlTGF5b3V0cy9zbGlkZUxheW91dDkueG1sUEsBAi0AFAAGAAgAAAAhAOICTeu/AAAAJAEA
ACcAAAAAAAAAAAAAAAAAInsAAHBwdC9kcmF3aW5ncy9fcmVscy92bWxEcmF3aW5nMS52bWwucmVs
c1BLAQItABQABgAIAAAAIQD96heGvwAAACUBAAAfAAAAAAAAAAAAAAAAACZ8AABwcHQvdGhlbWUv
X3JlbHMvdGhlbWUxLnhtbC5yZWxzUEsBAi0AFAAGAAgAAAAhAMPsjsc6BwAAxBsAABQAAAAAAAAA
AAAAAAAAIn0AAHBwdC90aGVtZS90aGVtZTEueG1sUEsBAi0ACgAAAAAAAAAhAOd+iymdAgAAnQIA
ABUAAAAAAAAAAAAAAAAAjoQAAHBwdC9tZWRpYS9pbWFnZTEuanBlZ1BLAQItABQABgAIAAAAIQCp
kXnDU1EAAABwAAAdAAAAAAAAAAAAAAAAAF6HAABwcHQvZW1iZWRkaW5ncy9vbGVPYmplY3QxLmJp
blBLAQItAAoAAAAAAAAAIQDebM0GmV0AAJldAAAUAAAAAAAAAAAAAAAAAOzYAABwcHQvbWVkaWEv
aW1hZ2U0LnBuZ1BLAQItAAoAAAAAAAAAIQB36TTzMUUAADFFAAAUAAAAAAAAAAAAAAAAALc2AQBw
cHQvbWVkaWEvaW1hZ2U1LnBuZ1BLAQItAAoAAAAAAAAAIQDOrk+HkigCAJIoAgAUAAAAAAAAAAAA
AAAAABp8AQBwcHQvbWVkaWEvaW1hZ2UzLnBuZ1BLAQItAAoAAAAAAAAAIQAy0uh9YJUAAGCVAAAV
AAAAAAAAAAAAAAAAAN6kAwBwcHQvbWVkaWEvaW1hZ2U2LmpwZWdQSwECLQAUAAYACAAAACEAkb5F
+30CAADIBQAAHAAAAAAAAAAAAAAAAABxOgQAcHB0L2RyYXdpbmdzL3ZtbERyYXdpbmcxLnZtbFBL
AQItABQABgAIAAAAIQB+Yox7CQUAAPIOAAAUAAAAAAAAAAAAAAAAACg9BABwcHQvbWVkaWEvaW1h
Z2UyLndtZlBLAQItABQABgAIAAAAIQDY/Y2PrAAAALYAAAATAAAAAAAAAAAAAAAAAGNCBABwcHQv
dGFibGVTdHlsZXMueG1sUEsBAi0AFAAGAAgAAAAhAJNP7lCJAQAARgMAABEAAAAAAAAAAAAAAAAA
QEMEAHBwdC92aWV3UHJvcHMueG1sUEsBAi0AFAAGAAgAAAAhANwxL/HyAQAAXgQAABEAAAAAAAAA
AAAAAAAA+EQEAHBwdC9wcmVzUHJvcHMueG1sUEsBAi0AFAAGAAgAAAAhADBTxKp1AgAAvwUAABAA
AAAAAAAAAAAAAAAAGUcEAGRvY1Byb3BzL2FwcC54bWxQSwECLQAUAAYACAAAACEAcJXX0g0BAADm
AQAAEwAAAAAAAAAAAAAAAADESgQAZG9jUHJvcHMvY3VzdG9tLnhtbFBLAQItABQABgAIAAAAIQCk
lXHUawEAAKgCAAARAAAAAAAAAAAAAAAAAINNBABkb2NQcm9wcy9jb3JlLnhtbFBLBQYAAAAAOQA5
AOMQAAAlUAQAAAA=

--_004_EF35EE4B92789843B1DECBC0E24558644BCBCD7Eeusaamb105erics_--


From nobody Wed Nov  4 21:55: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 69D771B3A27 for <netmod@ietfa.amsl.com>; Wed,  4 Nov 2015 21:55:05 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.661
X-Spam-Level: 
X-Spam-Status: No, score=-5.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, 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 JwisXC12VJxZ for <netmod@ietfa.amsl.com>; Wed,  4 Nov 2015 21:55:03 -0800 (PST)
Received: from mail.nic.cz (mail.nic.cz [217.31.204.67]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 729AD1B3A26 for <netmod@ietf.org>; Wed,  4 Nov 2015 21:55:03 -0800 (PST)
Received: from t20010c4000003024a14b1f06aa1b8e61.v6.meeting.ietf94.jp (t20010c4000003024a14b1f06aa1b8e61.v6.meeting.ietf94.jp [IPv6:2001:c40:0:3024:a14b:1f06:aa1b:8e61]) by mail.nic.cz (Postfix) with ESMTPSA id 7D082181341 for <netmod@ietf.org>; Thu,  5 Nov 2015 06:55:01 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nic.cz; s=default; t=1446702902; bh=XxV+i8J5yjyfg10MeW6S1tgnyrfvPuPsz7WYkYL3RkQ=; h=From:Date:To; b=aF57+oVD+Cv1n2T3ic8nV8zsGSyQcVeu5Ow4DvgFAr3zIkeJZ4fKteTn3OG9YIEjI ujOilf3R4zEAHvXF6dQR90OOaRqFvf/jLgSmjVJf1w21kgS+tpUI8uXSINJqTqagRK wgM/peOnHEzAxbfJJ/FkU4AkwpgZmFSq9EuTsd6A=
From: Ladislav Lhotka <lhotka@nic.cz>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: quoted-printable
Message-Id: <9C0E7EF3-6DEC-493D-91C8-B75B2E29A2D9@nic.cz>
Date: Thu, 5 Nov 2015 14:54:56 +0900
To: NETMOD WG <netmod@ietf.org>
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
X-Mailer: Apple Mail (2.3096.5)
X-Virus-Scanned: clamav-milter 0.98.7 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/OcrgJm5fV3wOB_DlrYhVtIYroro>
Subject: [netmod] JSON encoding of anyxml
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 05 Nov 2015 05:55:05 -0000

Hi,

at the NETMOD session Martin proposed that JSON encoding of anyxml =
instances be changed so that it is required to contain a JSON string =
with well-formed XML serialization inside. His argument was that "xml" =
is part on the data node name and also that RFC 6020 says it is "an =
unknown chunk of XML". I think, however, that the name and definition =
were influenced by the fact that XML was the only encoding under =
consideration when 6020 was being written. IMO, the definition could =
thus be interpreted as "an unknown chunk of data that follows the syntax =
of the current encoding".

Note that similar ambiguity of interpretations applies to 6020 =
statements about NETCONF, edit-config etc. - we saw it in the discussion =
about auto-delete behaviour.

A practical problem of Martin's proposal is that it doesn't provide a =
symmetric option to send arbitrary JSON chunks in JSON encoding (that =
may or may not be modelled with YANG). An option would be to introduce a =
new data node "anyjson" but I think this is really a bad approach - =
shall we then also add "anycbor" etc.? IMO YANG statements and rules =
should be encoding-independent.

I still think the best option would be to introduce "anydata" with my =
definition above so that in XML encoding it would be equivalent to =
"anyxml", and deprecate "anyxml". We can also introduce a substatement =
that could state that the instances of a particular anydata node are =
required to be modellable in YANG.

BTW, it seems that yang-patch needs to be able to transfer anyxml =
instances, so is it really possible to exclude anyxml from anydata =
content?

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





From nobody Wed Nov  4 22:12:56 2015
Return-Path: <lberger@labn.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 45E581ACD78 for <netmod@ietfa.amsl.com>; Wed,  4 Nov 2015 22:12:55 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.666
X-Spam-Level: 
X-Spam-Status: No, score=-1.666 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, IP_NOT_FRIENDLY=0.334, RCVD_IN_DNSWL_NONE=-0.0001, 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 1Z-tPMdyxMfS for <netmod@ietfa.amsl.com>; Wed,  4 Nov 2015 22:12:54 -0800 (PST)
Received: from gproxy1-pub.mail.unifiedlayer.com (gproxy1-pub.mail.unifiedlayer.com [69.89.25.95]) by ietfa.amsl.com (Postfix) with SMTP id B977B1ACD6F for <netmod@ietf.org>; Wed,  4 Nov 2015 22:12:53 -0800 (PST)
Received: (qmail 28528 invoked by uid 0); 5 Nov 2015 06:12:50 -0000
Received: from unknown (HELO CMOut01) (10.0.90.82) by gproxy1.mail.unifiedlayer.com with SMTP; 5 Nov 2015 06:12:50 -0000
Received: from box313.bluehost.com ([69.89.31.113]) by CMOut01 with  id diCm1r00X2SSUrH01iCpzQ; Wed, 04 Nov 2015 23:12:49 -0700
X-Authority-Analysis: v=2.1 cv=VOBOwb/X c=1 sm=1 tr=0 a=h1BC+oY+fLhyFmnTBx92Jg==:117 a=h1BC+oY+fLhyFmnTBx92Jg==:17 a=cNaOj0WVAAAA:8 a=f5113yIGAAAA:8 a=wU2YTnxGAAAA:8 a=-NfooI8aBGcA:10 a=AJn0tlZO_gkA:10 a=qtqOOiqGOCEA:10 a=r77TgQKjGQsHNAKrUKIA:9 a=0FD05c-RAAAA:8 a=48vgC7mUAAAA:8 a=TzcbFH11J10Nwe10gyYA:9 a=QEXdDO2ut3YA:10 a=Iu0ZgStNApoA:10 a=rKrVYePj7rwA:10 a=7JI83uqW-pzYV4NFiQ4A:9 a=NJ6lp5SGixHxMdn1:21 a=UiCQ7L4-1S4A:10 a=_W_S_7VecoQA:10 a=frz4AuCg-hUA:10
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=labn.net; s=default;  h=Content-Type:MIME-Version:Subject:References:In-Reply-To:Message-ID:Date:To:From; bh=0mp478qXDaLjA6qoysmHqWMcYObEvhryrwetFQd5gxI=;  b=N6Q8gaEEMGYld2+g5GgT81KFQcmvBqbNBAcFjIYFNBfeIl2zJmgiD9GeZw3UYu5mY/v5Emco59T0Ehst1LH9X3OCtThy9bgGFu2mHF/x4HGDYVgRAXG2UuTtg+gmlsNy;
Received: from [133.93.25.155] (port=33063) by box313.bluehost.com with esmtpsa (TLSv1:AES128-SHA:128) (Exim 4.84) (envelope-from <lberger@labn.net>) id 1ZuDmx-0002mS-9K; Wed, 04 Nov 2015 23:12:47 -0700
From: Lou Berger <lberger@labn.net>
To: Scott Mansfield <scott.mansfield@ericsson.com>, <netmod@ietf.org>
Date: Thu, 05 Nov 2015 15:12:37 +0900
Message-ID: <150d6468408.2818.9b4188e636579690ba6c69f2c8a0f1fd@labn.net>
In-Reply-To: <EF35EE4B92789843B1DECBC0E24558644BCBCD7E@eusaamb105.ericsson.se>
References: <EF35EE4B92789843B1DECBC0E24558644BCBCD7E@eusaamb105.ericsson.se>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 AquaMail/1.5.9.14 (build: 22000040)
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----------150d6468557572281843d8fc70"
X-Identified-User: {1038:box313.bluehost.com:labnmobi:labn.net} {sentby:smtp auth 133.93.25.155 authed with lberger@labn.net}
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/a0VwvHLfw3L8Tbpsjr577g36XRs>
Subject: Re: [netmod] pptx version of draft-mansfield slides for IETF 94
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 05 Nov 2015 06:12:55 -0000

This is a multi-part message in MIME format.
------------150d6468557572281843d8fc70
Content-Type: text/plain; charset="UTF-8"; format=flowed
Content-Transfer-Encoding: 8bit

If you take the PDF link and replace pdf with pptx you should get the 
source file...

Lou


On November 5, 2015 2:36:30 PM Scott Mansfield 
<scott.mansfield@ericsson.com> wrote:

> There is an embedded pdf file on one of the slides that (ironically) 
> doesn't show up if the pptx is converted to pdf.
>
> Responding to a suggestion to provide the source to the list.
>
> Regards,
> -scott.
>
> Scott Mansfield
> Ericsson Inc.
> +1 724 931 9316
>
>
>
>
> ----------
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod
>

------------150d6468557572281843d8fc70
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: 8bit

<html>
<head>
<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;}
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;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->


</head>
<body>
<div style="color: black;">
<div style="color: black;">
<p style="margin: 0 0 1em 0; color: black;">If you take the PDF link and
replace pdf with pptx you should get the source file...</p>
<p style="margin: 0 0 1em 0; color: black;">Lou</p>
</div>
<div style="color: black;">
<p
style="color: black; font-size: 10pt; font-family: Arial, sans-serif; margin: 10pt 0;">On
November 5, 2015 2:36:30 PM Scott Mansfield
&lt;scott.mansfield@ericsson.com&gt; wrote:</p>
<blockquote type="cite" class="gmail_quote"
style="margin: 0 0 0 0.75ex; border-left: 1px solid #808080; padding-left: 0.75ex;">
<div class="WordSection1">
<p class="MsoNormal">There is an embedded pdf file on one of the slides
that (ironically) doesn&#8217;t show up if the pptx is converted to
pdf.<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">Responding to a suggestion to provide the source to
the list.<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">Regards,<o:p></o:p></p>
<p class="MsoNormal">-scott.<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">Scott Mansfield<o:p></o:p></p>
<p class="MsoNormal">Ericsson Inc.<o:p></o:p></p>
<p class="MsoNormal">&#43;1 724 931 9316<o:p></o:p></p>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>

_______________________________________________<br>
netmod mailing list<br>
<a class="aqm-autolink aqm-autowrap"
href="mailto:netmod%40ietf.org">netmod@ietf.org</a><br>
<a class="aqm-autolink aqm-autowrap"
href="https://www.ietf.org/mailman/listinfo/netmod">https:/â€‹/â€‹wwwâ€‹.â€‹ietfâ€‹.â€‹org/â€‹mailman/â€‹listinfo/â€‹netmod</a><br>
<br></blockquote>
</div>
</div>
</body>
</html>

------------150d6468557572281843d8fc70--


From nobody Wed Nov  4 22:46:10 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 410D61ACE41 for <netmod@ietfa.amsl.com>; Wed,  4 Nov 2015 22:46:09 -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 Z8vFUDt2bEDy for <netmod@ietfa.amsl.com>; Wed,  4 Nov 2015 22:46:06 -0800 (PST)
Received: from trail.lhotka.name (trail.lhotka.name [77.48.224.143]) by ietfa.amsl.com (Postfix) with ESMTP id 835CA1ACE3F for <netmod@ietf.org>; Wed,  4 Nov 2015 22:46:06 -0800 (PST)
Received: from localhost (dhcp-28-202.meeting.ietf94.jp [133.93.28.202]) by trail.lhotka.name (Postfix) with ESMTPSA id 342EF1CC02BB; Thu,  5 Nov 2015 07:46:11 +0100 (CET)
From: Ladislav Lhotka <lhotka@nic.cz>
To: Andy Bierman <andy@yumaworks.com>, Randy Presuhn <randy_presuhn@mindspring.com>
In-Reply-To: <CABCOCHQj75L3+rHbvjbYznHMaVcg68m_yOFsOxuvT2WtJ6XnXQ@mail.gmail.com>
References: <32846254.1446659594524.JavaMail.root@elwamui-karabash.atl.sa.earthlink.net> <CABCOCHQj75L3+rHbvjbYznHMaVcg68m_yOFsOxuvT2WtJ6XnXQ@mail.gmail.com>
User-Agent: Notmuch/0.21 (http://notmuchmail.org) Emacs/24.4.51.2 (x86_64-apple-darwin14.0.0)
Date: Thu, 05 Nov 2015 15:45:57 +0900
Message-ID: <m2611h9c62.fsf@nic.cz>
MIME-Version: 1.0
Content-Type: text/plain
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/VO6_wtXDfEWiE_eDy01GIVTZwtM>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] general permission on metadata
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 05 Nov 2015 06:46:09 -0000

Andy Bierman <andy@yumaworks.com> writes:

> On Wed, Nov 4, 2015 at 9:53 AM, Randy Presuhn <randy_presuhn@mindspring.com>
> wrote:
>
>> Hi -
>>
>> >From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
>> >Sent: Nov 3, 2015 9:50 PM
>> >To: Ladislav Lhotka <lhotka@nic.cz>
>> >Cc: NETMOD WG <netmod@ietf.org>
>> >Subject: Re: [netmod] general permission on metadata
>> >
>> >Lada,
>> >
>> >I do not think this belongs into the YANG specification. NC has been
>> >designed to support arbitrary XML so any NC compliant implementation
>> >will not screw up on XML attributes. The JSON encoding could say that
>> >names with @ may be used for special purposes and must be supported
>> >and that implementations must be expected to handle full I-JSON and
>> >not the subset used by YANG.
>> >
>> >I guess I am not even sure yet that there is a problem that requires
>> >fixing. But if it requires fixing, than its an encoding or protocol
>> >issue, not a data modeling language issue.
>> ...
>>
>> I disagree.  A data modeling framework by its very nature makes
>> demands on whatever protocols are used to encode the information.
>> When those demands are less than obvious, it's best to be explicit
>> about them.  We've already seen the pain with JSON, where an
>> encoding didn't quite live up to some of the modeling framework's
>> assumptions about encodings.
>>
>>
>
> Agreed.  There are a handful of XML attributes a NETCONF server
> must support.  Our server will return an 'unknown-attribute' error
> for XML attributes it does not understand.  We have a YANG extension
> called 'metadata' that allows attributes to be defined, but discourage
> its use for management data.
>
> http://www.netconfcentral.org/modules/yuma-ncx/2013-09-23#metadata.518
>
> We plan to support the standard YANG extension for this purpose.
>
> I think the annotation was a real statement in YANG 1.1 then it
> would solve all problems.  A YANG 1.1 server MUST accept and support
> any attribute defined in a module it claims to implement.
> The annotation could have an if-feature-stmt if it is optional.

Well, yes, most of the conformance issues are due to the fact that
annotations are defined via an extension. But I'm afraid it is now too
late to add it to YANG 1.1, this could mean another significant delay.

>
> Consequently, I believe that *if* this requirement is agreed, it
>> should then be explicit, rather than assumed as a bit of folklore,
>> particularly if there is any expectation that other encodings will
>> be developed in the future.  Consider, for example, what it would
>> take to meet this requirement if some recidivist were to use BER
>> to carry the information.  Doable, but not pretty and certainly not
>> the "obvious" grammar. :-)
>>
>>
> The CoMI work in the CORE WG may need CBOR encoding of
> attributes.  I hope it requires way less buffering and saved state
> than the JSON version.

But this is true for JSON in general and not because we have chosen a
bad method for attribute encoding, right?

Lada

>
>
>
>> Randy
>>
>>
> Andy
>
>
>> _______________________________________________
>> 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

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


From nobody Wed Nov  4 22:51: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 A51531B35CC for <netmod@ietfa.amsl.com>; Wed,  4 Nov 2015 22:51:22 -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 dRuTlrrDeaq0 for <netmod@ietfa.amsl.com>; Wed,  4 Nov 2015 22:51:20 -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 CD4311B3A7C for <netmod@ietf.org>; Wed,  4 Nov 2015 22:51:16 -0800 (PST)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id 93BBEF91; Thu,  5 Nov 2015 07:51: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 tY5SC21JTT22; Thu,  5 Nov 2015 07:51:14 +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 Nov 2015 07:51:14 +0100 (CET)
Received: from localhost (demetrius2.jacobs-university.de [212.201.44.47]) by hermes.jacobs-university.de (Postfix) with ESMTP id 6D0C320055; Thu,  5 Nov 2015 07:51:14 +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 u1eB2QNMOYK3; Thu,  5 Nov 2015 07:51:13 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id 241E02003B; Thu,  5 Nov 2015 07:51:13 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id 00F823878351; Thu,  5 Nov 2015 07:51:11 +0100 (CET)
Date: Thu, 5 Nov 2015 07:51:11 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Ladislav Lhotka <lhotka@nic.cz>
Message-ID: <20151105065110.GA98886@elstar.local>
Mail-Followup-To: Ladislav Lhotka <lhotka@nic.cz>, NETMOD WG <netmod@ietf.org>
References: <9C0E7EF3-6DEC-493D-91C8-B75B2E29A2D9@nic.cz>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <9C0E7EF3-6DEC-493D-91C8-B75B2E29A2D9@nic.cz>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/-lObRN3Sg3gnXUFMhxQDqOijDl8>
Cc: NETMOD WG <netmod@ietf.org>
Subject: Re: [netmod] JSON encoding of anyxml
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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 05 Nov 2015 06:51:22 -0000

Lada,

this seems to be related to YANG 1.1 issue Y34 which we concluded with
consensus on Y34-05, which extends Y34-02. And Y34-02 says:

  'anyxml' would still be used to represent unrestricted XML, as is
  done in NETCONF.

Your repeated attempts to generalize anyxml does not give us
interoperability. In fact, Y34-05 says:

   - Document that implementations MAY have restrictions for anyxml and
     that anyxml is not necessarily interoperable; data model writers
     should use anydata whenever possible.
   - The guidelines document should say that YANG Doctors will review
     each use of anyxml in IETF modules when YANG 1.1 is adopted to
     avoid its use whenever possible.

Given the resolution of Y34 in YANG 1.1, Martin's proposal to encode
anyxml as a string that has XML inside makes sense.

/js

On Thu, Nov 05, 2015 at 02:54:56PM +0900, Ladislav Lhotka wrote:
> Hi,
> 
> at the NETMOD session Martin proposed that JSON encoding of anyxml instances be changed so that it is required to contain a JSON string with well-formed XML serialization inside. His argument was that "xml" is part on the data node name and also that RFC 6020 says it is "an unknown chunk of XML". I think, however, that the name and definition were influenced by the fact that XML was the only encoding under consideration when 6020 was being written. IMO, the definition could thus be interpreted as "an unknown chunk of data that follows the syntax of the current encoding".
> 
> Note that similar ambiguity of interpretations applies to 6020 statements about NETCONF, edit-config etc. - we saw it in the discussion about auto-delete behaviour.
> 
> A practical problem of Martin's proposal is that it doesn't provide a symmetric option to send arbitrary JSON chunks in JSON encoding (that may or may not be modelled with YANG). An option would be to introduce a new data node "anyjson" but I think this is really a bad approach - shall we then also add "anycbor" etc.? IMO YANG statements and rules should be encoding-independent.
> 
> I still think the best option would be to introduce "anydata" with my definition above so that in XML encoding it would be equivalent to "anyxml", and deprecate "anyxml". We can also introduce a substatement that could state that the instances of a particular anydata node are required to be modellable in YANG.
> 
> BTW, it seems that yang-patch needs to be able to transfer anyxml instances, so is it really possible to exclude anyxml from anydata content?
> 
> Lada 
>  
> --
> Ladislav Lhotka, CZ.NIC Labs
> PGP Key ID: E74E8C0C
> 
> 
> 
> 
> _______________________________________________
> 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 Nov  5 00:56:27 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 DB7DA1A8725 for <netmod@ietfa.amsl.com>; Thu,  5 Nov 2015 00:56:25 -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 yCJdwdqsXKHo for <netmod@ietfa.amsl.com>; Thu,  5 Nov 2015 00:56:24 -0800 (PST)
Received: from mail.nic.cz (mail.nic.cz [IPv6:2001:1488:800:400::400]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B6A0A1A7017 for <netmod@ietf.org>; Thu,  5 Nov 2015 00:56:23 -0800 (PST)
Received: from dhcp-28-202.meeting.ietf94.jp (dhcp-28-202.meeting.ietf94.jp [133.93.28.202]) by mail.nic.cz (Postfix) with ESMTPSA id 4ADC01816FB; Thu,  5 Nov 2015 09:56:21 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nic.cz; s=default; t=1446713782; bh=iE6F8ZaiquLBb88CSdPcRieiMbYJYxakBE+/YJ3ba7o=; h=From:Date:To; b=H06Ux9ljNekn7wBWONzC58tX0BFDNLbiErfxBkAkdQp31eha4Q/WGI/ZF5jTaf+/3 Mr+qIpXeXgp6O2Z/76ujM48Vi1jWNiJiXoSR0KE3VKo4lsh9JIBK00EnBajc+Q1QzY 3e49oUGAaN0gQLiV/LMJ6/OUk0n+fHKB31by5dF0=
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
From: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <20151105065110.GA98886@elstar.local>
Date: Thu, 5 Nov 2015 17:56:16 +0900
Content-Transfer-Encoding: quoted-printable
Message-Id: <FCAA11D8-6090-49D8-9312-5B88BB0D8806@nic.cz>
References: <9C0E7EF3-6DEC-493D-91C8-B75B2E29A2D9@nic.cz> <20151105065110.GA98886@elstar.local>
To: =?utf-8?Q?J=C3=BCrgen_Sch=C3=B6nw=C3=A4lder?= <j.schoenwaelder@jacobs-university.de>
X-Mailer: Apple Mail (2.3096.5)
X-Virus-Scanned: clamav-milter 0.98.7 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/RKJTFR1Hy3fwV1RHlQjTQe0fpyw>
Cc: NETMOD WG <netmod@ietf.org>
Subject: Re: [netmod] JSON encoding of anyxml
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 05 Nov 2015 08:56:26 -0000

> On 05 Nov 2015, at 15:51, Juergen Schoenwaelder =
<j.schoenwaelder@jacobs-university.de> wrote:
>=20
> Lada,
>=20
> this seems to be related to YANG 1.1 issue Y34 which we concluded with
> consensus on Y34-05, which extends Y34-02. And Y34-02 says:
>=20
>  'anyxml' would still be used to represent unrestricted XML, as is
>  done in NETCONF.
>=20
> Your repeated attempts to generalize anyxml does not give us
> interoperability. In fact, Y34-05 says:
>=20
>   - Document that implementations MAY have restrictions for anyxml and
>     that anyxml is not necessarily interoperable; data model writers
>     should use anydata whenever possible.
>   - The guidelines document should say that YANG Doctors will review
>     each use of anyxml in IETF modules when YANG 1.1 is adopted to
>     avoid its use whenever possible.
>=20
> Given the resolution of Y34 in YANG 1.1, Martin's proposal to encode
> anyxml as a string that has XML inside makes sense.

The possibility of sending arbitrary (non-YANG) data in the native =
encoding can occassionally be useful, and even more so in JSON. For =
example, I have to work with a JSON-based format for specifying DNSSEC =
signing policies. While my plan is to eventually replace this format =
with YANG-modelled data, it would help me, as an interim solution, to =
simply send the data in the legacy format. That's why I want to retain =
the existing rules for JSON encoding of anyxml, unless something else is =
available. Sending XML documents as strings is still possible although =
IMO next to useless.

Lada

>=20
> /js
>=20
> On Thu, Nov 05, 2015 at 02:54:56PM +0900, Ladislav Lhotka wrote:
>> Hi,
>>=20
>> at the NETMOD session Martin proposed that JSON encoding of anyxml =
instances be changed so that it is required to contain a JSON string =
with well-formed XML serialization inside. His argument was that "xml" =
is part on the data node name and also that RFC 6020 says it is "an =
unknown chunk of XML". I think, however, that the name and definition =
were influenced by the fact that XML was the only encoding under =
consideration when 6020 was being written. IMO, the definition could =
thus be interpreted as "an unknown chunk of data that follows the syntax =
of the current encoding".
>>=20
>> Note that similar ambiguity of interpretations applies to 6020 =
statements about NETCONF, edit-config etc. - we saw it in the discussion =
about auto-delete behaviour.
>>=20
>> A practical problem of Martin's proposal is that it doesn't provide a =
symmetric option to send arbitrary JSON chunks in JSON encoding (that =
may or may not be modelled with YANG). An option would be to introduce a =
new data node "anyjson" but I think this is really a bad approach - =
shall we then also add "anycbor" etc.? IMO YANG statements and rules =
should be encoding-independent.
>>=20
>> I still think the best option would be to introduce "anydata" with my =
definition above so that in XML encoding it would be equivalent to =
"anyxml", and deprecate "anyxml". We can also introduce a substatement =
that could state that the instances of a particular anydata node are =
required to be modellable in YANG.
>>=20
>> BTW, it seems that yang-patch needs to be able to transfer anyxml =
instances, so is it really possible to exclude anyxml from anydata =
content?
>>=20
>> Lada=20
>>=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
>=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/>

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





From nobody Thu Nov  5 01:08: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 4EC861A8AFD for <netmod@ietfa.amsl.com>; Thu,  5 Nov 2015 01:08:53 -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 ZYYGnKxa3ZBQ for <netmod@ietfa.amsl.com>; Thu,  5 Nov 2015 01:08: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 D2E0C1A8AE7 for <netmod@ietf.org>; Thu,  5 Nov 2015 01:08:50 -0800 (PST)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id 8F6AF104E for <netmod@ietf.org>; Thu,  5 Nov 2015 10:08: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 bbIv1NfW3Ecz for <netmod@ietf.org>; Thu,  5 Nov 2015 10:08:48 +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 Nov 2015 10:08:48 +0100 (CET)
Received: from localhost (demetrius1.jacobs-university.de [212.201.44.46]) by hermes.jacobs-university.de (Postfix) with ESMTP id C73BE20057 for <netmod@ietf.org>; Thu,  5 Nov 2015 10:08: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 HaQ41k6Hve6u; Thu,  5 Nov 2015 10:08:47 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id 5C9102004E; Thu,  5 Nov 2015 10:08:47 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id AAA3F38786BC; Thu,  5 Nov 2015 10:08:46 +0100 (CET)
Date: Thu, 5 Nov 2015 10:08:46 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: netmod@ietf.org
Message-ID: <20151105090846.GA99478@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/OiXfVA7VBLvQlLDOEeo1vMuF8Fo>
Subject: [netmod] yang 1.1 last call comment resolution
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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 05 Nov 2015 09:08:53 -0000

Hi,

given the discussion at IETF 94, here is what I think where we are
with resolving the last call comments (I am following the structure of
Martin's IETF 94 slides). It would be nice to close the remining open
ones as soon as possible so that Martin can produce -09.  Once we have
-09, we will have a second WG last call so that people can do a final
check whether the edits from -07 to -09 address all the comments that
were raised in a satisfying manner.

If you disagree with any of the following, please raise your voice.

- New function: if-feature and default

  I think the resolution is to disallow default values that are
  depending on a feature.

- New function: accessible tree in when

  I think the resolution is to adopt the proposed solution.

- Old function: augment mandatory nodes

  I think this is moving towards relaxing the MUST NOT rules and
  to allow mandatory nodes in 'safe' augmentations.

- Old function: unique module names

  I think the resolution is to adopt the compromise solution.

- New feature: non-unique config false leaf-lists

  It is unclear where we are with this. While there was some
  discussion at IETF 94, there was no clear indication whether this
  change should be done or not. More input would be welcome.

- New feature: keyless lists and non-unique leaf-lists in config

  This seems to be dead.

- New feature: change semantics of the choice and when statements

  This seems to be dead.

- Old function: make auto-delete for choice and when non-NETCONF specific

  Revision -08 of YANG 1.1 defines auto-deletion as a property of the
  NETCONF edit-config operation and the issue is whether this
  auto-deletion behaviour is a NETCONF specific edit-config property
  or a general YANG datastore validation property that equally applies
  to RESTCONF, COMI, ...

  It is unclear where we are with this. More input would be welcome.

/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 Nov  5 01:21: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 16A041A8908 for <netmod@ietfa.amsl.com>; Thu,  5 Nov 2015 01:21:04 -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 NkRfs83ZliDX for <netmod@ietfa.amsl.com>; Thu,  5 Nov 2015 01:21:02 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id 8E4101A8784 for <netmod@ietf.org>; Thu,  5 Nov 2015 01:20:51 -0800 (PST)
Received: from localhost (dhcp-20-20.meeting.ietf94.jp [133.93.20.20]) by mail.tail-f.com (Postfix) with ESMTPSA id 850611AE06E3; Thu,  5 Nov 2015 10:20:49 +0100 (CET)
Date: Thu, 05 Nov 2015 18:20:45 +0900 (JST)
Message-Id: <20151105.182045.402528442272338514.mbj@tail-f.com>
To: j.schoenwaelder@jacobs-university.de
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <20151105090846.GA99478@elstar.local>
References: <20151105090846.GA99478@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/MDXRRbWZW-6WoHVggZdE2UDDli0>
Cc: netmod@ietf.org
Subject: Re: [netmod] yang 1.1 last call comment resolution
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 05 Nov 2015 09:21:04 -0000

Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote:
> - New feature: non-unique config false leaf-lists
> 
>   It is unclear where we are with this. While there was some
>   discussion at IETF 94, there was no clear indication whether this
>   change should be done or not. More input would be welcome.

I think there are two options:

  A.  Allow non-config leaf-lists to have duplicate values.

  B.  Add a new keyword "allow-duplicates true|false" to leaf-list.
      It is an error if allow-duplicates is true in config.

B feels more correct to me, but A is obviously simpler.

> - Old function: make auto-delete for choice and when non-NETCONF specific
> 
>   Revision -08 of YANG 1.1 defines auto-deletion as a property of the
>   NETCONF edit-config operation and the issue is whether this
>   auto-deletion behaviour is a NETCONF specific edit-config property
>   or a general YANG datastore validation property that equally applies
>   to RESTCONF, COMI, ...
> 
>   It is unclear where we are with this. More input would be welcome.

I think it would be very confusing if e.g. RESTCONF behaved
differently than NETCONF.  However, I can see how it might make sense
for a server on a constrained device to not do auto-delete - but OTOH
such a server probably don't do "must" and "when" checking at all.
And it might have specialized data models that don't use such
constructs.


/martin


From nobody Thu Nov  5 04:04:25 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 0FAB01ACEFE for <netmod@ietfa.amsl.com>; Thu,  5 Nov 2015 04:04:24 -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 J5rTMjDtcwz3 for <netmod@ietfa.amsl.com>; Thu,  5 Nov 2015 04:04:19 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id 604361ACEF9 for <netmod@ietf.org>; Thu,  5 Nov 2015 04:04:19 -0800 (PST)
Received: from localhost (dhcp-81-124.meeting.ietf94.jp [133.93.81.124]) by mail.tail-f.com (Postfix) with ESMTPSA id B2A161AE06E3 for <netmod@ietf.org>; Thu,  5 Nov 2015 13:04:17 +0100 (CET)
Date: Thu, 05 Nov 2015 21:04:14 +0900 (JST)
Message-Id: <20151105.210414.660074295849534275.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/bD_FqEPJxr04kdkinyI4jxehzgc>
Subject: [netmod] comments on draft-ietf-netmod-yang-metadata-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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 05 Nov 2015 12:04:24 -0000

Hi,

I have some comments on this draft.


o  Section 1 says:

      Each annotation is bound to a YANG module name, namespace URI and
      prefix. 

  I think you should remove prefix.  The prefix is just a local
  shorthand notation.


o  Section 1 says:

      Annotations are indirectly registered through IANA in the "YANG
      Module Names" registry [RFC6020].

  This is only true for IETF-defined modules; this should be
  clarified.


o  Section 1 typo:

   OLD:
      annotations cannot be attached to a whole list or leaf-list
      instance, only to individual list of leaf-list entries.

   NEW:
      annotations cannot be attached to a whole list or leaf-list
      instance, only to individual list or leaf-list entries.


o  Section 4

  The text says that the server is prepared to handle that annotation
  anywhere in any data tree.  I think we should add "... as defined by
  the annotation".

  For example, the annotation "last-modified" doesn't make sense in
  RPC input.


o  Section 4:

     Annotations modify the schema of datastores and/or management
     protocol messages, and may also change their semantics.

  I suggest s/schema/encoding/ in order to avoid confusion.


/martin


From nobody Thu Nov  5 08:51:40 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 F360E1B30D6 for <netmod@ietfa.amsl.com>; Thu,  5 Nov 2015 08:51:37 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level: 
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=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 4wtE3KZpBZkE for <netmod@ietfa.amsl.com>; Thu,  5 Nov 2015 08:51:36 -0800 (PST)
Received: from mail-lb0-x22b.google.com (mail-lb0-x22b.google.com [IPv6:2a00:1450:4010:c04::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 B16971B30C3 for <netmod@ietf.org>; Thu,  5 Nov 2015 08:51:35 -0800 (PST)
Received: by lbbkw15 with SMTP id kw15so33893844lbb.0 for <netmod@ietf.org>; Thu, 05 Nov 2015 08:51:33 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks_com.20150623.gappssmtp.com; s=20150623; h=mime-version:date:message-id:subject:from:to:content-type; bh=44E8s3nxAcdpiZy0UrlLBzuImD2lADGRdpqG2PEWWvg=; b=cvbMRoTazyrwUj3tdrrMtlaJiHzDsFAi2waiwrAymByQtgTP/a2JzTzBVcRql+UiEa +lf/qG1OqlMYvRKE7RcziXed2Y/NnNRe442zbWXcVr8mtVbo83dKW4FJPmovtxbZfRlr 2TngY3zC74pNyzUiVKcCbzDvJ0V47RlNH9/uYleC6KdAEUlRAfXI0r98ffi82Dp27oLV VwA8aJaWpt42wPjL3Cmqu61dxm9PDJsnB7wOdXqI39wNjE8fF1LRVmwbv7fc9eBq7XNA 6XNiU1NkAF5uOkCwAZUvlFVHYdg7H/khtk3WvvgGyd8rBUtO4EyQE1lqeTNlu4+eCbN9 KipA==
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=44E8s3nxAcdpiZy0UrlLBzuImD2lADGRdpqG2PEWWvg=; b=aQXb8bQSDAwl65Pswe2agB8lbHL0pVprT2tVjxaphonoZaxsSK4jpXAZmyvjgnwLyr HNqn4JoJ6KN+22W/aw2XtwHaAJCT0+4W1QjKEgtHFpQ0FEWFprSbwNjJ4i7Wdioz+G7P WhOt5CeTFRAwfbNDF53we7xTRCpb7cx92NPEP9tYSfeIgAYUoSHG+5z02+RH+QjqvMcu zrJ2O1DJy3EcUJgHV/aK5iF0Lw+tN1vPJ9aj1nH9Illqpa6n8lmXmTsQdCUk/Wxtu7sv i1Q6H1ZdvQj+zDGfWMRtDiNuCD+uZlMQE40IkMVOWlDz3tSz3wxysJLh79bRXlviX95S G7+w==
X-Gm-Message-State: ALoCoQn5zs1i299L2/EriZJCTjUPB4pfB1AI6eTDDzXvloX5XrohQg9WOh3o7ItCpthGQgIkt4qm
MIME-Version: 1.0
X-Received: by 10.112.141.7 with SMTP id rk7mr4303748lbb.82.1446742293832; Thu, 05 Nov 2015 08:51:33 -0800 (PST)
Received: by 10.112.144.106 with HTTP; Thu, 5 Nov 2015 08:51:33 -0800 (PST)
Date: Thu, 5 Nov 2015 08:51:33 -0800
Message-ID: <CABCOCHSxc5-ZdW6d86SBRw6GKUBO98fToJ6MY-CgA_wKG0mYQQ@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: "netmod@ietf.org" <netmod@ietf.org>
Content-Type: multipart/alternative; boundary=001a11c37e1a8181c00523cdf097
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/MJGNc0BNZ3Oqf6gPuH3f00R1lwk>
Subject: [netmod] YANG statement order
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 05 Nov 2015 16:51:38 -0000

--001a11c37e1a8181c00523cdf097
Content-Type: text/plain; charset=UTF-8

Hi,

I asked about this text on page 156:


   In statements that have any data definition statements as
   substatements, those data definition substatements MUST NOT be
   reordered.

I asked why this new rule was added.
I do not see why it is needed, or how it can be enforced.

If I add a new object to grouping A, then every place there
is a "uses A", a new data node will be inserted inline.
If I add a leafs at the end of a nested list, it is before
the data nodes following the list.

Does this text mean one can never reorder the data nodes,
such that the relative order never changes? Or does it mean
new objects must go at the end of a module?
Why do we think it is user-friendly to force statement order
to be a critical one-try-or-else decision?  What happens
if the original statement order was a mistake?  Is this
allowed to be corrected in a future version?

Why is this text required for YANG to be interoperable?
Given that all nodes are QNames, this rule is not needed.
(I don't care about some corner-case XPath functions that
the YANG guidelines already say not to use.)



Andy

--001a11c37e1a8181c00523cdf097
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Hi,<div><br></div><div>I asked about this text on page 156=
:</div><div><pre style=3D"word-wrap:break-word"><span style=3D"color:rgb(0,=
0,0);white-space:pre-wrap">
   In statements that have any data definition statements as
   substatements, those data definition substatements MUST NOT be
   reordered.
</span>
</pre>I asked why this new rule was added.<br>I do not see why it is needed=
, or how it can be enforced.</div><div><br>If I add a new object to groupin=
g A, then every place there<br>is a &quot;uses A&quot;, a new data node wil=
l be inserted inline.</div><div>If I add a leafs at the end of a nested lis=
t, it is before<br>the data nodes following the list.</div><div><br></div><=
div>Does this text mean one can never reorder the data nodes,</div><div>suc=
h that the relative order never changes? Or does it mean</div><div>new obje=
cts must go at the end of a module?</div><div>Why do we think it is user-fr=
iendly to force statement order</div><div>to be a critical one-try-or-else =
decision?=C2=A0 What happens</div><div>if the original statement order was =
a mistake?=C2=A0 Is this</div><div>allowed to be corrected in a future vers=
ion?</div><div><br></div><div>Why is this text required for YANG to be inte=
roperable?</div><div>Given that all nodes are QNames, this rule is not need=
ed.</div><div>(I don&#39;t care about some corner-case XPath functions that=
</div><div>the YANG guidelines already say not to use.)</div><div><br></div=
><div><br></div><div><br></div><div>Andy</div><div><br></div><div><br></div=
><div><br></div></div>

--001a11c37e1a8181c00523cdf097--


From nobody Thu Nov  5 16:50:22 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 555171A87BB for <netmod@ietfa.amsl.com>; Thu,  5 Nov 2015 16:50:21 -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 I2msabsy7TcI for <netmod@ietfa.amsl.com>; Thu,  5 Nov 2015 16:50:20 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id 0B69D1A8776 for <netmod@ietf.org>; Thu,  5 Nov 2015 16:50:20 -0800 (PST)
Received: from localhost (unknown [210.164.9.13]) by mail.tail-f.com (Postfix) with ESMTPSA id 2FB191AE06E3; Fri,  6 Nov 2015 01:50:17 +0100 (CET)
Date: Fri, 06 Nov 2015 09:50:13 +0900 (JST)
Message-Id: <20151106.095013.2102888649942329170.mbj@tail-f.com>
To: andy@yumaworks.com
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <CABCOCHSxc5-ZdW6d86SBRw6GKUBO98fToJ6MY-CgA_wKG0mYQQ@mail.gmail.com>
References: <CABCOCHSxc5-ZdW6d86SBRw6GKUBO98fToJ6MY-CgA_wKG0mYQQ@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/codNhFAcQeNcyoKcBtxKcw5AEF4>
Cc: netmod@ietf.org
Subject: Re: [netmod] YANG statement order
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 06 Nov 2015 00:50:21 -0000

Hi,

Andy Bierman <andy@yumaworks.com> wrote:
> Hi,
> 
> I asked about this text on page 156:
> 
> 
>    In statements that have any data definition statements as
>    substatements, those data definition substatements MUST NOT be
>    reordered.
> 
> I asked why this new rule was added.

It is not a new rule, it is there in RFC 6020 as well.

In rpc/action input/output the nodes are encoded in XML in the order
they are defined.  So this rule is there to protect clients that might
depend on that order.

> I do not see why it is needed, or how it can be enforced.
> 
> If I add a new object to grouping A, then every place there
> is a "uses A", a new data node will be inserted inline.

Newly inserted nodes does not change the order between the old nodes.

We could relax the rule and say that it only applies to input/output
and groupings (since they might be in input/output.

Or we revisit the original rule that nodes in input/output are encoded
in the order they are defined - however, that rule has huge
implications on performance in some rpc (specifically edit-config).


/martin


From nobody Thu Nov  5 17:02:36 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 1CD521A899D for <netmod@ietfa.amsl.com>; Thu,  5 Nov 2015 17:02:35 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level: 
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=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 zMD6P8ceS6-z for <netmod@ietfa.amsl.com>; Thu,  5 Nov 2015 17:02:33 -0800 (PST)
Received: from mail-lb0-x22a.google.com (mail-lb0-x22a.google.com [IPv6:2a00:1450:4010:c04::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 016E91A8958 for <netmod@ietf.org>; Thu,  5 Nov 2015 17:02:31 -0800 (PST)
Received: by lbbes7 with SMTP id es7so47548205lbb.2 for <netmod@ietf.org>; Thu, 05 Nov 2015 17:02:30 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks_com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=I1I6Od3gDbUSvtHYG3Bian6p+ieKOCgKhV06z0qc5fM=; b=xt3qUVGLg1EGdy+0r+7CO/Koyw65bOMTe6sdBk3H4uUal0Knm2alr++/ouJBaWwu/e gFSmPO/+lSkK1sqUVULajU40kKUK37x3oN+5bgyqGqcL7NEnq3Nz2VRqL4T7AA2DY+Ql /DiP4EcguEn5SjDrrwxk1GZPf/Ne+59C1E3BDk8QrlvvLf7sBnb8HKBA5vpRNu22yc2r SwsN3EyoACcg9fON6RrSiZulojos0W4imdB/WxINsZRRZ3jfHBQlv+bh8jZMxQc1hDBg rQvzQ8le5SXVLRWsfM9a0jNlmUPnK7Whcf84+kxe+P0PalJ5yMLsTJ8/xV8Tfa5axP99 7xHQ==
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=I1I6Od3gDbUSvtHYG3Bian6p+ieKOCgKhV06z0qc5fM=; b=iQs23ghn9mdJoQQ23n0UdjgjKCDUdqc+9jmQdYYvJp+Z2K3dx5oH7Gcd7Q4VvppVlA egL2zV3bD2+O8A08GqnEztzfVD54LO+w3WblupPbHKjPFuF6Nwr0nWM6IsASUUI3DGH7 yqNM2TQDiYF2tSTRTl3UrIiQewoFlU6hIG8y1xEkDYbDvjg6UHatvTg9rliTUmd1jMSR cHXUwKnDxOgN454Kzv3GfVmqnsiXBjgxUXhmTKrMZA+VHJuXLGEMdjHKOpA/rG2orYug OeNhsPnicI7Lw0k5GjB2Hh75DVOG133Sz0/VcHjUWWy1MvsGSFP2eWh/Rab35H7jex2h oj7Q==
X-Gm-Message-State: ALoCoQl0uNOWKqaSN1JOGZ4Gl+NatJeNqOhC9uyGxAwF+9zZa9yrZ5LfIt3oqVTEEa4lJZhCx09y
MIME-Version: 1.0
X-Received: by 10.112.158.98 with SMTP id wt2mr5246654lbb.33.1446771750058; Thu, 05 Nov 2015 17:02:30 -0800 (PST)
Received: by 10.112.144.106 with HTTP; Thu, 5 Nov 2015 17:02:29 -0800 (PST)
In-Reply-To: <20151106.095013.2102888649942329170.mbj@tail-f.com>
References: <CABCOCHSxc5-ZdW6d86SBRw6GKUBO98fToJ6MY-CgA_wKG0mYQQ@mail.gmail.com> <20151106.095013.2102888649942329170.mbj@tail-f.com>
Date: Thu, 5 Nov 2015 17:02:29 -0800
Message-ID: <CABCOCHSpSvdqRMEuVcQMOSGnq5Z536k76VKHZhrUhyO5KzVrSg@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Martin Bjorklund <mbj@tail-f.com>
Content-Type: multipart/alternative; boundary=001a11c343843bd4c80523d4ccb2
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/eK1UYnZyhW-Q-56c2BoEUj8IH8A>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] YANG statement order
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 06 Nov 2015 01:02:35 -0000

--001a11c343843bd4c80523d4ccb2
Content-Type: text/plain; charset=UTF-8

On Thu, Nov 5, 2015 at 4:50 PM, Martin Bjorklund <mbj@tail-f.com> wrote:

> Hi,
>
> Andy Bierman <andy@yumaworks.com> wrote:
> > Hi,
> >
> > I asked about this text on page 156:
> >
> >
> >    In statements that have any data definition statements as
> >    substatements, those data definition substatements MUST NOT be
> >    reordered.
> >
> > I asked why this new rule was added.
>
> It is not a new rule, it is there in RFC 6020 as well.
>
>
Then the word "reordered" needs to be clarified



> In rpc/action input/output the nodes are encoded in XML in the order
> they are defined.  So this rule is there to protect clients that might
> depend on that order.
>


But this just applies to the advertised version of the RPC.
The client should use the schema the server supports,
and the order is dictated by that version.



>
> > I do not see why it is needed, or how it can be enforced.
> >
> > If I add a new object to grouping A, then every place there
> > is a "uses A", a new data node will be inserted inline.
>
> Newly inserted nodes does not change the order between the old nodes.
>
>

This is one interpretation of the term "reorder".
This interpretation is OK -- the relative order cannot be changed
but overall, any subtree can have nodes added in between
existing objects (via direct edit or uses).




> We could relax the rule and say that it only applies to input/output
> and groupings (since they might be in input/output.
>


OK, except the identification of objects does not depend on order.
This is kind of a CLR.




>
> Or we revisit the original rule that nodes in input/output are encoded
> in the order they are defined - however, that rule has huge
> implications on performance in some rpc (specifically edit-config)
>

> /martin
>


Andy

--001a11c343843bd4c80523d4ccb2
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Thu, Nov 5, 2015 at 4:50 PM, Martin Bjorklund <span dir=3D"ltr">&lt;=
<a href=3D"mailto:mbj@tail-f.com" target=3D"_blank">mbj@tail-f.com</a>&gt;<=
/span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8=
ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
Andy Bierman &lt;<a href=3D"mailto:andy@yumaworks.com">andy@yumaworks.com</=
a>&gt; wrote:<br>
&gt; Hi,<br>
&gt;<br>
&gt; I asked about this text on page 156:<br>
&gt;<br>
&gt;<br>
&gt;=C2=A0 =C2=A0 In statements that have any data definition statements as=
<br>
&gt;=C2=A0 =C2=A0 substatements, those data definition substatements MUST N=
OT be<br>
&gt;=C2=A0 =C2=A0 reordered.<br>
&gt;<br>
&gt; I asked why this new rule was added.<br>
<br>
It is not a new rule, it is there in RFC 6020 as well.<br>
<br></blockquote><div><br></div><div>Then the word &quot;reordered&quot; ne=
eds to be clarified</div><div><br></div><div>=C2=A0</div><blockquote class=
=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padd=
ing-left:1ex">
In rpc/action input/output the nodes are encoded in XML in the order<br>
they are defined.=C2=A0 So this rule is there to protect clients that might=
<br>
depend on that order.<br></blockquote><div><br></div><div><br></div><div>Bu=
t this just applies to the advertised version of the RPC.</div><div>The cli=
ent should use the schema the server supports,</div><div>and the order is d=
ictated by that version.</div><div><br></div><div>=C2=A0</div><blockquote c=
lass=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;=
padding-left:1ex">
<br>
&gt; I do not see why it is needed, or how it can be enforced.<br>
&gt;<br>
&gt; If I add a new object to grouping A, then every place there<br>
&gt; is a &quot;uses A&quot;, a new data node will be inserted inline.<br>
<br>
Newly inserted nodes does not change the order between the old nodes.<br>
<br></blockquote><div><br></div><div><br></div><div>This is one interpretat=
ion of the term &quot;reorder&quot;.</div><div>This interpretation is OK --=
 the relative order cannot be changed</div><div>but overall, any subtree ca=
n have nodes added in between</div><div>existing objects (via direct edit o=
r uses).</div><div><br></div><div><br></div><div>=C2=A0</div><blockquote cl=
ass=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;p=
adding-left:1ex">
We could relax the rule and say that it only applies to input/output<br>
and groupings (since they might be in input/output.<br></blockquote><div><b=
r></div><div><br></div><div>OK, except the identification of objects does n=
ot depend on order.</div><div>This is kind of a CLR.</div><div><br></div><d=
iv><br></div><div>=C2=A0<br></div><blockquote class=3D"gmail_quote" style=
=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Or we revisit the original rule that nodes in input/output are encoded<br>
in the order they are defined - however, that rule has huge<br>
implications on performance in some rpc (specifically edit-config)=C2=A0<br=
></blockquote><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;=
border-left:1px #ccc solid;padding-left:1ex"><span class=3D"HOEnZb"><font c=
olor=3D"#888888">
<br>
/martin<br>
</font></span></blockquote></div><br></div><div class=3D"gmail_extra"><br><=
/div><div class=3D"gmail_extra">Andy</div><div class=3D"gmail_extra"><br></=
div></div>

--001a11c343843bd4c80523d4ccb2--


From nobody Thu Nov  5 17:12:44 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 B5B8C1ACAD8 for <netmod@ietfa.amsl.com>; Thu,  5 Nov 2015 17:12:42 -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 Ga02x2tOwGuA for <netmod@ietfa.amsl.com>; Thu,  5 Nov 2015 17:12:41 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id 69F2B1AC422 for <netmod@ietf.org>; Thu,  5 Nov 2015 17:12:41 -0800 (PST)
Received: from localhost (unknown [210.164.9.13]) by mail.tail-f.com (Postfix) with ESMTPSA id CF2271AE06E3; Fri,  6 Nov 2015 02:12:39 +0100 (CET)
Date: Fri, 06 Nov 2015 10:12:37 +0900 (JST)
Message-Id: <20151106.101237.240170018406119687.mbj@tail-f.com>
To: andy@yumaworks.com
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <CABCOCHSpSvdqRMEuVcQMOSGnq5Z536k76VKHZhrUhyO5KzVrSg@mail.gmail.com>
References: <CABCOCHSxc5-ZdW6d86SBRw6GKUBO98fToJ6MY-CgA_wKG0mYQQ@mail.gmail.com> <20151106.095013.2102888649942329170.mbj@tail-f.com> <CABCOCHSpSvdqRMEuVcQMOSGnq5Z536k76VKHZhrUhyO5KzVrSg@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/TR-BJXkruEZqboa32Ocp5K2_vfg>
Cc: netmod@ietf.org
Subject: Re: [netmod] YANG statement order
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 06 Nov 2015 01:12:42 -0000

Andy Bierman <andy@yumaworks.com> wrote:
> On Thu, Nov 5, 2015 at 4:50 PM, Martin Bjorklund <mbj@tail-f.com> wrote:
> 
> > Hi,
> >
> > Andy Bierman <andy@yumaworks.com> wrote:
> > > Hi,
> > >
> > > I asked about this text on page 156:
> > >
> > >
> > >    In statements that have any data definition statements as
> > >    substatements, those data definition substatements MUST NOT be
> > >    reordered.
> > >
> > > I asked why this new rule was added.
> >
> > It is not a new rule, it is there in RFC 6020 as well.
> >
> >
> Then the word "reordered" needs to be clarified
> 
> 
> 
> > In rpc/action input/output the nodes are encoded in XML in the order
> > they are defined.  So this rule is there to protect clients that might
> > depend on that order.
> >
> 
> 
> But this just applies to the advertised version of the RPC.
> The client should use the schema the server supports,
> and the order is dictated by that version.

In general the update rules are there in order to protect old
clients.  If we say that the client needs to understand the revision
that the server implements, then we can remove all update rules.

> > > I do not see why it is needed, or how it can be enforced.
> > >
> > > If I add a new object to grouping A, then every place there
> > > is a "uses A", a new data node will be inserted inline.
> >
> > Newly inserted nodes does not change the order between the old nodes.
> >
> >
> 
> This is one interpretation of the term "reorder".
> This interpretation is OK -- the relative order cannot be changed
> but overall, any subtree can have nodes added in between
> existing objects (via direct edit or uses).

Ok, how about:

OLD:

   In statements that have any data definition statements as
   substatements, those data definition substatements MUST NOT be
   reordered.

NEW:

   In statements that have any data definition statements as
   substatements, the relative order between old data definition
   substatements MUST NOT be changed.

> > We could relax the rule and say that it only applies to input/output
> > and groupings (since they might be in input/output.
> >
> 
> 
> OK, except the identification of objects does not depend on order.
> This is kind of a CLR.

Do you think we should relax the rule?


/martin


From nobody Thu Nov  5 17:22: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 175101B29FB for <netmod@ietfa.amsl.com>; Thu,  5 Nov 2015 17:22:54 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level: 
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=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 oJbBOjPh3ZMD for <netmod@ietfa.amsl.com>; Thu,  5 Nov 2015 17:22:52 -0800 (PST)
Received: from mail-lb0-x22f.google.com (mail-lb0-x22f.google.com [IPv6:2a00:1450:4010:c04::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 11F101B29F8 for <netmod@ietf.org>; Thu,  5 Nov 2015 17:22:51 -0800 (PST)
Received: by lbbwb3 with SMTP id wb3so47826356lbb.1 for <netmod@ietf.org>; Thu, 05 Nov 2015 17:22:50 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks_com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=GpgmrLFiinqGa02U3QMbmcRowQYl5JqKrvejUuX5vcQ=; b=LfpwfBMIHZE3jdvKhfv1EVLzOmj8B0loKkO90zWe/j0XIG+yGaMAZHknZ/w/sJHEis gwNYQF0ltzz5hx8naIm1mBDk0+Uub+NITq8HYcz/035zc3RrS1lQ7w3a5ucIys5zODew vD7r6z8hiuRi/W18cObVZ7kgZ4biX+3TGjT3vLZivUBA3SKGFIXPzfXkZjGt2yKTR3ZH o+EZr2KoyAnNMSuKCR0hLNLm1TsbLzPNqRXc7RVBBcbeu/ylc4BotU6vH1PiReLq/eiH w3d63LtaBH+jS1+pxIvglen+w8TIRAT/ag42jQrGajCbEkuWgkX+4RLXcQmpLD5qqBsr ikTQ==
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=GpgmrLFiinqGa02U3QMbmcRowQYl5JqKrvejUuX5vcQ=; b=PaLgllf9h4rqaum35PNwBkmCIN8ejGl2DI/0LkKdwMn5/evhFigrvBk9+51d7eI8/C YDW1QZLnDNLbfLBLLYGBokfA9koaHPTF7tl5N90/l3a+fySabSPpI9J2HeuY4YDyUUjc zZbreNnYQBZwtMfryk0Nn6djjhUskQgTb8OA0cZV5fn84VEFGQCBoqcCn7pApZjtgyPP Xc+Ius4z9W0hPzfgSxL/mzVCEltYsHymTWh+4lqlm1qtCih3LtmUvURBOAsjPpnLNcBh /mLHCaU81tCGWvyZV6TvYb4cBpt/epaOgG86XaPrCXFj+QfnC1kqVMjURHqSe1PaaLY0 qoXQ==
X-Gm-Message-State: ALoCoQm2Z7Y+l6FdF3dWgXdPXM9dfLIwGRQ6fqhxzO9zv/Vn8p3RmYMknaDPG7xjuKeOFxWu7BZn
MIME-Version: 1.0
X-Received: by 10.112.55.97 with SMTP id r1mr5333254lbp.119.1446772970138; Thu, 05 Nov 2015 17:22:50 -0800 (PST)
Received: by 10.112.144.106 with HTTP; Thu, 5 Nov 2015 17:22:50 -0800 (PST)
In-Reply-To: <20151106.101237.240170018406119687.mbj@tail-f.com>
References: <CABCOCHSxc5-ZdW6d86SBRw6GKUBO98fToJ6MY-CgA_wKG0mYQQ@mail.gmail.com> <20151106.095013.2102888649942329170.mbj@tail-f.com> <CABCOCHSpSvdqRMEuVcQMOSGnq5Z536k76VKHZhrUhyO5KzVrSg@mail.gmail.com> <20151106.101237.240170018406119687.mbj@tail-f.com>
Date: Thu, 5 Nov 2015 17:22:50 -0800
Message-ID: <CABCOCHSaj2yR5u6vVk9Ut435iRNMXf6ZtyXkTNBD7O3fdA0miw@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Martin Bjorklund <mbj@tail-f.com>
Content-Type: multipart/alternative; boundary=001a11c3f16af4c3d50523d51464
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/C0RHTfguRIayyPdj3MFZf4Pcwok>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] YANG statement order
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 06 Nov 2015 01:22:54 -0000

--001a11c3f16af4c3d50523d51464
Content-Type: text/plain; charset=UTF-8

On Thu, Nov 5, 2015 at 5:12 PM, Martin Bjorklund <mbj@tail-f.com> wrote:

> Andy Bierman <andy@yumaworks.com> wrote:
> > On Thu, Nov 5, 2015 at 4:50 PM, Martin Bjorklund <mbj@tail-f.com> wrote:
> >
> > > Hi,
> > >
> > > Andy Bierman <andy@yumaworks.com> wrote:
> > > > Hi,
> > > >
> > > > I asked about this text on page 156:
> > > >
> > > >
> > > >    In statements that have any data definition statements as
> > > >    substatements, those data definition substatements MUST NOT be
> > > >    reordered.
> > > >
> > > > I asked why this new rule was added.
> > >
> > > It is not a new rule, it is there in RFC 6020 as well.
> > >
> > >
> > Then the word "reordered" needs to be clarified
> >
> >
> >
> > > In rpc/action input/output the nodes are encoded in XML in the order
> > > they are defined.  So this rule is there to protect clients that might
> > > depend on that order.
> > >
> >
> >
> > But this just applies to the advertised version of the RPC.
> > The client should use the schema the server supports,
> > and the order is dictated by that version.
>
> In general the update rules are there in order to protect old
> clients.  If we say that the client needs to understand the revision
> that the server implements, then we can remove all update rules.
>
> > > > I do not see why it is needed, or how it can be enforced.
> > > >
> > > > If I add a new object to grouping A, then every place there
> > > > is a "uses A", a new data node will be inserted inline.
> > >
> > > Newly inserted nodes does not change the order between the old nodes.
> > >
> > >
> >
> > This is one interpretation of the term "reorder".
> > This interpretation is OK -- the relative order cannot be changed
> > but overall, any subtree can have nodes added in between
> > existing objects (via direct edit or uses).
>
> Ok, how about:
>
> OLD:
>
>    In statements that have any data definition statements as
>    substatements, those data definition substatements MUST NOT be
>    reordered.
>
> NEW:
>
>    In statements that have any data definition statements as
>    substatements, the relative order between old data definition
>    substatements MUST NOT be changed.
>
> > > We could relax the rule and say that it only applies to input/output
> > > and groupings (since they might be in input/output.
> > >
> >
> >
> > OK, except the identification of objects does not depend on order.
> > This is kind of a CLR.
>
> Do you think we should relax the rule?
>
>
yes.

One could argue that it might take operational experience to know
that a certain RPC input order is more advantageous than the current order.
IMO the places YANG is brittle mostly involve the statements where decisions
have to be right the first try because the cost of starting over is too
high,
and YANG does not allow a new version to fix the problem.


We won't change the order of <edit-config> because it is thought to be
correct.
If <target> was after <config> maybe we would want to change it, but YANG
rules
say that is forbidden.





> /martin
>


Andy

--001a11c3f16af4c3d50523d51464
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Thu, Nov 5, 2015 at 5:12 PM, Martin Bjorklund <span dir=3D"ltr">&lt;=
<a href=3D"mailto:mbj@tail-f.com" target=3D"_blank">mbj@tail-f.com</a>&gt;<=
/span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8=
ex;border-left:1px #ccc solid;padding-left:1ex">Andy Bierman &lt;<a href=3D=
"mailto:andy@yumaworks.com">andy@yumaworks.com</a>&gt; wrote:<br>
&gt; On Thu, Nov 5, 2015 at 4:50 PM, Martin Bjorklund &lt;<a href=3D"mailto=
:mbj@tail-f.com">mbj@tail-f.com</a>&gt; wrote:<br>
&gt;<br>
&gt; &gt; Hi,<br>
&gt; &gt;<br>
&gt; &gt; Andy Bierman &lt;<a href=3D"mailto:andy@yumaworks.com">andy@yumaw=
orks.com</a>&gt; wrote:<br>
&gt; &gt; &gt; Hi,<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; I asked about this text on page 156:<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;=C2=A0 =C2=A0 In statements that have any data definition sta=
tements as<br>
&gt; &gt; &gt;=C2=A0 =C2=A0 substatements, those data definition substateme=
nts MUST NOT be<br>
&gt; &gt; &gt;=C2=A0 =C2=A0 reordered.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; I asked why this new rule was added.<br>
&gt; &gt;<br>
&gt; &gt; It is not a new rule, it is there in RFC 6020 as well.<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; Then the word &quot;reordered&quot; needs to be clarified<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; &gt; In rpc/action input/output the nodes are encoded in XML in the or=
der<br>
&gt; &gt; they are defined.=C2=A0 So this rule is there to protect clients =
that might<br>
&gt; &gt; depend on that order.<br>
&gt; &gt;<br>
&gt;<br>
&gt;<br>
&gt; But this just applies to the advertised version of the RPC.<br>
&gt; The client should use the schema the server supports,<br>
&gt; and the order is dictated by that version.<br>
<br>
In general the update rules are there in order to protect old<br>
clients.=C2=A0 If we say that the client needs to understand the revision<b=
r>
that the server implements, then we can remove all update rules.<br>
<br>
&gt; &gt; &gt; I do not see why it is needed, or how it can be enforced.<br=
>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; If I add a new object to grouping A, then every place there<=
br>
&gt; &gt; &gt; is a &quot;uses A&quot;, a new data node will be inserted in=
line.<br>
&gt; &gt;<br>
&gt; &gt; Newly inserted nodes does not change the order between the old no=
des.<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt;<br>
&gt; This is one interpretation of the term &quot;reorder&quot;.<br>
&gt; This interpretation is OK -- the relative order cannot be changed<br>
&gt; but overall, any subtree can have nodes added in between<br>
&gt; existing objects (via direct edit or uses).<br>
<br>
Ok, how about:<br>
<br>
OLD:<br>
<br>
=C2=A0 =C2=A0In statements that have any data definition statements as<br>
=C2=A0 =C2=A0substatements, those data definition substatements MUST NOT be=
<br>
=C2=A0 =C2=A0reordered.<br>
<br>
NEW:<br>
<br>
=C2=A0 =C2=A0In statements that have any data definition statements as<br>
=C2=A0 =C2=A0substatements, the relative order between old data definition<=
br>
=C2=A0 =C2=A0substatements MUST NOT be changed.<br>
<br>
&gt; &gt; We could relax the rule and say that it only applies to input/out=
put<br>
&gt; &gt; and groupings (since they might be in input/output.<br>
&gt; &gt;<br>
&gt;<br>
&gt;<br>
&gt; OK, except the identification of objects does not depend on order.<br>
&gt; This is kind of a CLR.<br>
<br>
Do you think we should relax the rule?<br>
<span class=3D"HOEnZb"><font color=3D"#888888"><br></font></span></blockquo=
te><div><br></div><div>yes.</div><div><br></div><div>One could argue that i=
t might take operational experience to know</div><div>that a certain RPC in=
put order is more advantageous than the current order.</div><div>IMO the pl=
aces YANG is brittle mostly involve the statements where decisions</div><di=
v>have to be right the first try because the cost of starting over is too h=
igh,</div><div>and YANG does not allow a new version to fix the problem.</d=
iv><div><br></div><div><br></div><div>We won&#39;t change the order of &lt;=
edit-config&gt; because it is thought to be correct.</div><div>If &lt;targe=
t&gt; was after &lt;config&gt; maybe we would want to change it, but YANG r=
ules</div><div>say that is forbidden.</div><div><br></div><div><br></div><d=
iv><br></div><div><br></div><blockquote class=3D"gmail_quote" style=3D"marg=
in:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=3D"H=
OEnZb"><font color=3D"#888888">
<br>
/martin<br></font></span></blockquote><div><br></div><div><br></div><div>An=
dy</div><div>=C2=A0</div></div><br></div></div>

--001a11c3f16af4c3d50523d51464--


From nobody Thu Nov  5 17:27: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 CE5871A0126 for <netmod@ietfa.amsl.com>; Thu,  5 Nov 2015 17:27:58 -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 fuB9HP_K60QW for <netmod@ietfa.amsl.com>; Thu,  5 Nov 2015 17:27:57 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id 601FE1A0125 for <netmod@ietf.org>; Thu,  5 Nov 2015 17:27:57 -0800 (PST)
Received: from localhost (unknown [210.164.9.13]) by mail.tail-f.com (Postfix) with ESMTPSA id B9EC51AE06E3; Fri,  6 Nov 2015 02:27:55 +0100 (CET)
Date: Fri, 06 Nov 2015 10:27:53 +0900 (JST)
Message-Id: <20151106.102753.1819722307014980647.mbj@tail-f.com>
To: andy@yumaworks.com
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <CABCOCHSaj2yR5u6vVk9Ut435iRNMXf6ZtyXkTNBD7O3fdA0miw@mail.gmail.com>
References: <CABCOCHSpSvdqRMEuVcQMOSGnq5Z536k76VKHZhrUhyO5KzVrSg@mail.gmail.com> <20151106.101237.240170018406119687.mbj@tail-f.com> <CABCOCHSaj2yR5u6vVk9Ut435iRNMXf6ZtyXkTNBD7O3fdA0miw@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/5k4VZ1mfi1D_YHey4pDWj9TgwGo>
Cc: netmod@ietf.org
Subject: Re: [netmod] YANG statement order
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 06 Nov 2015 01:27:59 -0000

Andy Bierman <andy@yumaworks.com> wrote:
> On Thu, Nov 5, 2015 at 5:12 PM, Martin Bjorklund <mbj@tail-f.com> wrote:
> 
> > Andy Bierman <andy@yumaworks.com> wrote:
> > > On Thu, Nov 5, 2015 at 4:50 PM, Martin Bjorklund <mbj@tail-f.com> wrote:
> > >
> > > > Hi,
> > > >
> > > > Andy Bierman <andy@yumaworks.com> wrote:
> > > > > Hi,
> > > > >
> > > > > I asked about this text on page 156:
> > > > >
> > > > >
> > > > >    In statements that have any data definition statements as
> > > > >    substatements, those data definition substatements MUST NOT be
> > > > >    reordered.
> > > > >
> > > > > I asked why this new rule was added.
> > > >
> > > > It is not a new rule, it is there in RFC 6020 as well.
> > > >
> > > >
> > > Then the word "reordered" needs to be clarified
> > >
> > >
> > >
> > > > In rpc/action input/output the nodes are encoded in XML in the order
> > > > they are defined.  So this rule is there to protect clients that might
> > > > depend on that order.
> > > >
> > >
> > >
> > > But this just applies to the advertised version of the RPC.
> > > The client should use the schema the server supports,
> > > and the order is dictated by that version.
> >
> > In general the update rules are there in order to protect old
> > clients.  If we say that the client needs to understand the revision
> > that the server implements, then we can remove all update rules.
> >
> > > > > I do not see why it is needed, or how it can be enforced.
> > > > >
> > > > > If I add a new object to grouping A, then every place there
> > > > > is a "uses A", a new data node will be inserted inline.
> > > >
> > > > Newly inserted nodes does not change the order between the old nodes.
> > > >
> > > >
> > >
> > > This is one interpretation of the term "reorder".
> > > This interpretation is OK -- the relative order cannot be changed
> > > but overall, any subtree can have nodes added in between
> > > existing objects (via direct edit or uses).
> >
> > Ok, how about:
> >
> > OLD:
> >
> >    In statements that have any data definition statements as
> >    substatements, those data definition substatements MUST NOT be
> >    reordered.
> >
> > NEW:
> >
> >    In statements that have any data definition statements as
> >    substatements, the relative order between old data definition
> >    substatements MUST NOT be changed.
> >
> > > > We could relax the rule and say that it only applies to input/output
> > > > and groupings (since they might be in input/output.
> > > >
> > >
> > >
> > > OK, except the identification of objects does not depend on order.
> > > This is kind of a CLR.
> >
> > Do you think we should relax the rule?
> >
> >
> yes.
> 
> One could argue that it might take operational experience to know
> that a certain RPC input order is more advantageous than the current order.
> IMO the places YANG is brittle mostly involve the statements where decisions
> have to be right the first try because the cost of starting over is too
> high,
> and YANG does not allow a new version to fix the problem.
> 
> 
> We won't change the order of <edit-config> because it is thought to be
> correct.
> If <target> was after <config> maybe we would want to change it, but YANG
> rules
> say that is forbidden.

Right.  In that case we'd have to use a new name for the operation.
Maybe it's ok.


/martin


From nobody Fri Nov  6 07:20:05 2015
Return-Path: <reid@snmp.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 76CA01AC3C6 for <netmod@ietfa.amsl.com>; Fri,  6 Nov 2015 07:20:04 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.912
X-Spam-Level: 
X-Spam-Status: No, score=-1.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] 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 1k2NVUbfK2vE for <netmod@ietfa.amsl.com>; Fri,  6 Nov 2015 07:20:03 -0800 (PST)
Received: from mailbox.snmp.com (mailbox.snmp.com [192.147.142.80]) by ietfa.amsl.com (Postfix) with ESMTP id BBEB11AC3CA for <netmod@ietf.org>; Fri,  6 Nov 2015 07:20:00 -0800 (PST)
Received: from mainfs.snmp.com (mainfs.snmp.com [192.147.142.124]) by mailbox.snmp.com (8.9.3p2-20030922/m.0080228) with ESMTP id KAA11916; Fri, 6 Nov 2015 10:19:56 -0500 (EST)
Received: from mainfs.snmp.com (localhost [127.0.0.1]) by mainfs.snmp.com (8.14.5/8.14.5) with ESMTP id tA6FJsSx019026; Fri, 6 Nov 2015 10:19:54 -0500 (EST) (envelope-from reid@snmp.com)
Message-Id: <201511061519.tA6FJsSx019026@mainfs.snmp.com>
To: Martin Bjorklund <mbj@tail-f.com>
From: David Reid <reid@snmp.com>
In-reply-to: Your message of Wed, 21 Oct 2015 09:51:47 +0200. <20151021.095147.1079580075249695338.mbj@tail-f.com>
Date: Fri, 06 Nov 2015 10:19:54 -0500
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/mtQCxmPAotSPTOfgTGvex0k2qBU>
Cc: randy_presuhn@mindspring.com, netmod@ietf.org
Subject: Re: [netmod] 6020bis more than one revision of a module
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: David Reid <reid@snmp.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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 06 Nov 2015 15:20:04 -0000

> > > Why does yang 1.1 add the new requirement that a server MUST NOT implement
> > > more than 1 revision? If there is an e-mail thread, you can point me at that
> > > rather than re-hash the arguements here.
> > >
> > 
> > How do you implement multiple revisions at the same time? There is
> > only one path in a namespace. How do you combine must/when constraints
> > if you implement multiple revisions of a module? I think the one
> > revision requirement has already been part of YANG 1.
> 
> +1
> 
> Another example is if the value space for a leaf has been expanded in
> the new revision.  What does it mean if you advertise both revisions?

If the value space for a leaf has been expanded, as in Andy's example
earlier in this thread of foo-knob range increasing from 1-10 to 1-20,
the client will have to know that if he tries to set foo-knob to a
value between 11 and 20 he has to be able to handle a failure if that
value is not supported. Or only do sets that would work in the oldest
revision.

Supporting more than one revision will be the exception not the rule. 
I'm not suggesting we encourage this, just the we don't forbid it with
"MUST NOT".

-David Reid


From nobody Fri Nov  6 09:18: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 B98771B2C2B for <netmod@ietfa.amsl.com>; Fri,  6 Nov 2015 09:18:11 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level: 
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=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 kUnC5cPivo31 for <netmod@ietfa.amsl.com>; Fri,  6 Nov 2015 09:18:09 -0800 (PST)
Received: from mail-lf0-x234.google.com (mail-lf0-x234.google.com [IPv6:2a00:1450:4010:c07::234]) (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 410A31B2B74 for <netmod@ietf.org>; Fri,  6 Nov 2015 09:17:17 -0800 (PST)
Received: by lfs39 with SMTP id 39so45065406lfs.3 for <netmod@ietf.org>; Fri, 06 Nov 2015 09:17:15 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks_com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=DypCceVgDuzkF4R1EOJBS7oKGFMmueZMN6G/hChzyYA=; b=0jcxqYT31aXUgimjn8KCVJYtiEUg8zgSqgNJB0uDgc+W9bd9azlV3ToXPMr9f0O7lT tAz11f8Pw211RFcElJBM487q1HCJHNI3tigsy/udbKnnXT3yIFwHXFunY+LYqk89Q/QB PY1Cp5A50/R7Mu6cF+xoSVFbFweoD2CMZ55WQKU3eoBrdNOjAXLLmVXQWqIzOVU03yrD BcZBSvoLXCG6bItaDw8aO6Mol0tXOYzsh+0ZMkBZzLJzHbX7ifyBN34QpvcXuY5niX13 u6pCJLr9DDAtbKdJfoww03mxivH19D3+WLH/pyqnLDRxHOFjRZlKj7ans4Pv+UTV/HMS H/MA==
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=DypCceVgDuzkF4R1EOJBS7oKGFMmueZMN6G/hChzyYA=; b=eUXk3td+AgFAkaZ/+Xu9AvqBb57zV1BY4XBl0/G3UcTwo1teTXfTls9pJUPVuHk2iK LBcmmE5vlWeoSWcyOnjSuiZf3W2inKeb6GdEvh/v4TEcuRjJKtAI1Vtz2Ntqburgm6qk MTS05UiM7NGPVbbCUM2JfM3UB3AgjwzpoFRSQGwQvSoFAPHIUDuYSZymnBrVVcQAgFUc hd47cAOOwMvjMZKkCGKCywBGAGOzsBc+BPQDuucIhjPI/AAb3WAaE5XE3KRc+KIuPgPt Rago0MtamLUiJUrwSJiu+Z8NY0JxGLE4H6xkU1hztJ3Lds/xiASjbU3UUzzCcYvUurne KDfA==
X-Gm-Message-State: ALoCoQkK1dQlpEetp6WJ1HmALuPZ10FTHC1PNXz0svIg+wUWj2usZNC2TZ0nRtdBMDRZC3a1IQRj
MIME-Version: 1.0
X-Received: by 10.25.17.232 with SMTP id 101mr2939661lfr.38.1446830235379; Fri, 06 Nov 2015 09:17:15 -0800 (PST)
Received: by 10.112.144.106 with HTTP; Fri, 6 Nov 2015 09:17:15 -0800 (PST)
In-Reply-To: <20151106.102753.1819722307014980647.mbj@tail-f.com>
References: <CABCOCHSpSvdqRMEuVcQMOSGnq5Z536k76VKHZhrUhyO5KzVrSg@mail.gmail.com> <20151106.101237.240170018406119687.mbj@tail-f.com> <CABCOCHSaj2yR5u6vVk9Ut435iRNMXf6ZtyXkTNBD7O3fdA0miw@mail.gmail.com> <20151106.102753.1819722307014980647.mbj@tail-f.com>
Date: Fri, 6 Nov 2015 09:17:15 -0800
Message-ID: <CABCOCHT331J-1knvu2Bu2bMTQVkZLF=eAniFL4YdHGc7LTkpVw@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Martin Bjorklund <mbj@tail-f.com>
Content-Type: multipart/alternative; boundary=001a113f993a3b037a0523e26a9f
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/pWAPHfFkPFwQ7FOQJSmeww-gUGU>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] YANG statement order
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 06 Nov 2015 17:18:11 -0000

--001a113f993a3b037a0523e26a9f
Content-Type: text/plain; charset=UTF-8

On Thu, Nov 5, 2015 at 5:27 PM, Martin Bjorklund <mbj@tail-f.com> wrote:

> Andy Bierman <andy@yumaworks.com> wrote:
> > On Thu, Nov 5, 2015 at 5:12 PM, Martin Bjorklund <mbj@tail-f.com> wrote:
> >
> > > Andy Bierman <andy@yumaworks.com> wrote:
> > > > On Thu, Nov 5, 2015 at 4:50 PM, Martin Bjorklund <mbj@tail-f.com>
> wrote:
> > > >
> > > > > Hi,
> > > > >
> > > > > Andy Bierman <andy@yumaworks.com> wrote:
> > > > > > Hi,
> > > > > >
> > > > > > I asked about this text on page 156:
> > > > > >
> > > > > >
> > > > > >    In statements that have any data definition statements as
> > > > > >    substatements, those data definition substatements MUST NOT be
> > > > > >    reordered.
> > > > > >
> > > > > > I asked why this new rule was added.
> > > > >
> > > > > It is not a new rule, it is there in RFC 6020 as well.
> > > > >
> > > > >
> > > > Then the word "reordered" needs to be clarified
> > > >
> > > >
> > > >
> > > > > In rpc/action input/output the nodes are encoded in XML in the
> order
> > > > > they are defined.  So this rule is there to protect clients that
> might
> > > > > depend on that order.
> > > > >
> > > >
> > > >
> > > > But this just applies to the advertised version of the RPC.
> > > > The client should use the schema the server supports,
> > > > and the order is dictated by that version.
> > >
> > > In general the update rules are there in order to protect old
> > > clients.  If we say that the client needs to understand the revision
> > > that the server implements, then we can remove all update rules.
> > >
> > > > > > I do not see why it is needed, or how it can be enforced.
> > > > > >
> > > > > > If I add a new object to grouping A, then every place there
> > > > > > is a "uses A", a new data node will be inserted inline.
> > > > >
> > > > > Newly inserted nodes does not change the order between the old
> nodes.
> > > > >
> > > > >
> > > >
> > > > This is one interpretation of the term "reorder".
> > > > This interpretation is OK -- the relative order cannot be changed
> > > > but overall, any subtree can have nodes added in between
> > > > existing objects (via direct edit or uses).
> > >
> > > Ok, how about:
> > >
> > > OLD:
> > >
> > >    In statements that have any data definition statements as
> > >    substatements, those data definition substatements MUST NOT be
> > >    reordered.
> > >
> > > NEW:
> > >
> > >    In statements that have any data definition statements as
> > >    substatements, the relative order between old data definition
> > >    substatements MUST NOT be changed.
> > >
> > > > > We could relax the rule and say that it only applies to
> input/output
> > > > > and groupings (since they might be in input/output.
> > > > >
> > > >
> > > >
> > > > OK, except the identification of objects does not depend on order.
> > > > This is kind of a CLR.
> > >
> > > Do you think we should relax the rule?
> > >
> > >
> > yes.
> >
> > One could argue that it might take operational experience to know
> > that a certain RPC input order is more advantageous than the current
> order.
> > IMO the places YANG is brittle mostly involve the statements where
> decisions
> > have to be right the first try because the cost of starting over is too
> > high,
> > and YANG does not allow a new version to fix the problem.
> >
> >
> > We won't change the order of <edit-config> because it is thought to be
> > correct.
> > If <target> was after <config> maybe we would want to change it, but YANG
> > rules
> > say that is forbidden.
>
> Right.  In that case we'd have to use a new name for the operation.
> Maybe it's ok.
>
>

So this rule only applied to RPC in RFC 6020?
Then it should only apply to RPC in YANG 1.1.
It does not apply to schema hidden behind anyxml or anydata.
It only applies to the input and output parameters.



>
> /martin
>


Andy

--001a113f993a3b037a0523e26a9f
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Thu, Nov 5, 2015 at 5:27 PM, Martin Bjorklund <span dir=3D"ltr">&lt;=
<a href=3D"mailto:mbj@tail-f.com" target=3D"_blank">mbj@tail-f.com</a>&gt;<=
/span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8=
ex;border-left:1px #ccc solid;padding-left:1ex">Andy Bierman &lt;<a href=3D=
"mailto:andy@yumaworks.com">andy@yumaworks.com</a>&gt; wrote:<br>
&gt; On Thu, Nov 5, 2015 at 5:12 PM, Martin Bjorklund &lt;<a href=3D"mailto=
:mbj@tail-f.com">mbj@tail-f.com</a>&gt; wrote:<br>
&gt;<br>
&gt; &gt; Andy Bierman &lt;<a href=3D"mailto:andy@yumaworks.com">andy@yumaw=
orks.com</a>&gt; wrote:<br>
&gt; &gt; &gt; On Thu, Nov 5, 2015 at 4:50 PM, Martin Bjorklund &lt;<a href=
=3D"mailto:mbj@tail-f.com">mbj@tail-f.com</a>&gt; wrote:<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Hi,<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Andy Bierman &lt;<a href=3D"mailto:andy@yumaworks.com">=
andy@yumaworks.com</a>&gt; wrote:<br>
&gt; &gt; &gt; &gt; &gt; Hi,<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; I asked about this text on page 156:<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 In statements that have any data defi=
nition statements as<br>
&gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 substatements, those data definition =
substatements MUST NOT be<br>
&gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 reordered.<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; I asked why this new rule was added.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; It is not a new rule, it is there in RFC 6020 as well.<=
br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; Then the word &quot;reordered&quot; needs to be clarified<br=
>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; In rpc/action input/output the nodes are encoded in XML=
 in the order<br>
&gt; &gt; &gt; &gt; they are defined.=C2=A0 So this rule is there to protec=
t clients that might<br>
&gt; &gt; &gt; &gt; depend on that order.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; But this just applies to the advertised version of the RPC.<=
br>
&gt; &gt; &gt; The client should use the schema the server supports,<br>
&gt; &gt; &gt; and the order is dictated by that version.<br>
&gt; &gt;<br>
&gt; &gt; In general the update rules are there in order to protect old<br>
&gt; &gt; clients.=C2=A0 If we say that the client needs to understand the =
revision<br>
&gt; &gt; that the server implements, then we can remove all update rules.<=
br>
&gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; I do not see why it is needed, or how it can be en=
forced.<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; If I add a new object to grouping A, then every pl=
ace there<br>
&gt; &gt; &gt; &gt; &gt; is a &quot;uses A&quot;, a new data node will be i=
nserted inline.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Newly inserted nodes does not change the order between =
the old nodes.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; This is one interpretation of the term &quot;reorder&quot;.<=
br>
&gt; &gt; &gt; This interpretation is OK -- the relative order cannot be ch=
anged<br>
&gt; &gt; &gt; but overall, any subtree can have nodes added in between<br>
&gt; &gt; &gt; existing objects (via direct edit or uses).<br>
&gt; &gt;<br>
&gt; &gt; Ok, how about:<br>
&gt; &gt;<br>
&gt; &gt; OLD:<br>
&gt; &gt;<br>
&gt; &gt;=C2=A0 =C2=A0 In statements that have any data definition statemen=
ts as<br>
&gt; &gt;=C2=A0 =C2=A0 substatements, those data definition substatements M=
UST NOT be<br>
&gt; &gt;=C2=A0 =C2=A0 reordered.<br>
&gt; &gt;<br>
&gt; &gt; NEW:<br>
&gt; &gt;<br>
&gt; &gt;=C2=A0 =C2=A0 In statements that have any data definition statemen=
ts as<br>
&gt; &gt;=C2=A0 =C2=A0 substatements, the relative order between old data d=
efinition<br>
&gt; &gt;=C2=A0 =C2=A0 substatements MUST NOT be changed.<br>
&gt; &gt;<br>
&gt; &gt; &gt; &gt; We could relax the rule and say that it only applies to=
 input/output<br>
&gt; &gt; &gt; &gt; and groupings (since they might be in input/output.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; OK, except the identification of objects does not depend on =
order.<br>
&gt; &gt; &gt; This is kind of a CLR.<br>
&gt; &gt;<br>
&gt; &gt; Do you think we should relax the rule?<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; yes.<br>
&gt;<br>
&gt; One could argue that it might take operational experience to know<br>
&gt; that a certain RPC input order is more advantageous than the current o=
rder.<br>
&gt; IMO the places YANG is brittle mostly involve the statements where dec=
isions<br>
&gt; have to be right the first try because the cost of starting over is to=
o<br>
&gt; high,<br>
&gt; and YANG does not allow a new version to fix the problem.<br>
&gt;<br>
&gt;<br>
&gt; We won&#39;t change the order of &lt;edit-config&gt; because it is tho=
ught to be<br>
&gt; correct.<br>
&gt; If &lt;target&gt; was after &lt;config&gt; maybe we would want to chan=
ge it, but YANG<br>
&gt; rules<br>
&gt; say that is forbidden.<br>
<br>
Right.=C2=A0 In that case we&#39;d have to use a new name for the operation=
.<br>
Maybe it&#39;s ok.<br>
<span class=3D"HOEnZb"><font color=3D"#888888"><br></font></span></blockquo=
te><div><br></div><div><br></div><div>So this rule only applied to RPC in R=
FC 6020?</div><div>Then it should only apply to RPC in YANG 1.1.</div><div>=
It does not apply to schema hidden behind anyxml or anydata.</div><div>It o=
nly applies to the input and output parameters.</div><div><br></div><div>=
=C2=A0<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8e=
x;border-left:1px #ccc solid;padding-left:1ex"><span class=3D"HOEnZb"><font=
 color=3D"#888888">
<br>
/martin<br>
</font></span></blockquote></div><br></div><div class=3D"gmail_extra"><br><=
/div><div class=3D"gmail_extra">Andy</div><div class=3D"gmail_extra"><br></=
div></div>

--001a113f993a3b037a0523e26a9f--


From nobody Fri Nov  6 13:24:19 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 D0E951A1BE5 for <netmod@ietfa.amsl.com>; Fri,  6 Nov 2015 13:24:18 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.277
X-Spam-Level: 
X-Spam-Status: No, score=0.277 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, FRT_LITTLE=1.555, HTML_MESSAGE=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 A2TiIVsUz5ed for <netmod@ietfa.amsl.com>; Fri,  6 Nov 2015 13:24:16 -0800 (PST)
Received: from mail-lb0-x22e.google.com (mail-lb0-x22e.google.com [IPv6:2a00:1450:4010:c04::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 E91941A1BD2 for <netmod@ietf.org>; Fri,  6 Nov 2015 13:24:15 -0800 (PST)
Received: by lbblt2 with SMTP id lt2so47400275lbb.3 for <netmod@ietf.org>; Fri, 06 Nov 2015 13:24:14 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks_com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=3upfNv51OzLlBFnlyjSNug42eUWCeyjnGM/zlc2Y57I=; b=LclwHRvJuXoS5AG4o3c+WDdwiG5Q3HEMqszhBcM3ocv7rnOcOsQoqxn+6lSD2AtNAw RFtG/5ZhF76kR3NOE+vjvpQCZ/suiKTbycGyiRz+BnN4UUEXNyi1vwaC7xaf7mrF2DGM zmp3mRSFdT6ijVsJTpD3h39sosz1mqKbScn7YDpgj442M5+pCbvijkUlcIXNVOi1/m7+ s65lwnbzNsUPusvIDq3x6wsR+0U/tSSOvvAnyOZUlEnz90pwn6FK+WGumnmbsxyfoH6E Vgjvt5hw4kRRjVby4f6T/AC9mXKcdtdA9qNFe1zNsGXKqFZjMd3fd8but9ozuUut5hxL lSqQ==
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=3upfNv51OzLlBFnlyjSNug42eUWCeyjnGM/zlc2Y57I=; b=fJzNaqE3UqSq2PXMrbcRnCapFpQMvdJLAiybx/gTGL/FTdbceWT2T8KF2701SvPvot 8XvUXTeXs1i71CoxfjXKaWXfAMshOV7Iyr2yq5UyC0ikxV4kZUBnmzQA5foFE7yCm6ZY 2qPRzpB58NzLwhm8zZGEKd21TMvIdewqIN+aSUzMDDY7GqR9LMQJENBSdmUff1wrxzMh 5M5hXfSZ89zI7fWuo1o4R4Hya4JgEkNvdHrYVFu5JkH06pAWhgqLaCVSpTk2z7fvkBmG SP0aH/Bf5iaJrepaac5N+0OWoiAQzBLoT5IC9ONYDcUgodvVxibwIalEV86YZ2aa/l/Q X4DQ==
X-Gm-Message-State: ALoCoQnBMeR89RT/qikLou885H+j8+bK3arVA4foK6WKZTdSOwqABaKnP9WExUx0lK+Tjq94+FH9
MIME-Version: 1.0
X-Received: by 10.112.55.97 with SMTP id r1mr7906851lbp.119.1446845054084; Fri, 06 Nov 2015 13:24:14 -0800 (PST)
Received: by 10.112.144.106 with HTTP; Fri, 6 Nov 2015 13:24:14 -0800 (PST)
In-Reply-To: <20151105.182045.402528442272338514.mbj@tail-f.com>
References: <20151105090846.GA99478@elstar.local> <20151105.182045.402528442272338514.mbj@tail-f.com>
Date: Fri, 6 Nov 2015 13:24:14 -0800
Message-ID: <CABCOCHQt0YGNy=R8xH8wB=CxB=E4ft_vA10g9_qAJr48YoXQtw@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Martin Bjorklund <mbj@tail-f.com>
Content-Type: multipart/alternative; boundary=001a11c3f16a7e83640523e5dd41
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/Tv9vK104VJ4y6wdvG0AQVmj1CbI>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] yang 1.1 last call comment resolution
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 06 Nov 2015 21:24:19 -0000

--001a11c3f16a7e83640523e5dd41
Content-Type: text/plain; charset=UTF-8

On Thu, Nov 5, 2015 at 1:20 AM, Martin Bjorklund <mbj@tail-f.com> wrote:

> Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote:
> > - New feature: non-unique config false leaf-lists
> >
> >   It is unclear where we are with this. While there was some
> >   discussion at IETF 94, there was no clear indication whether this
> >   change should be done or not. More input would be welcome.
>
> I think there are two options:
>
>   A.  Allow non-config leaf-lists to have duplicate values.
>
>   B.  Add a new keyword "allow-duplicates true|false" to leaf-list.
>       It is an error if allow-duplicates is true in config.
>
> B feels more correct to me, but A is obviously simpler.
>


Agreed.
It seems like a data model property, not a server implementation choice.

The leaf-list is broken in many ways but it gets fixed 1 little bit at a
time.
We added a "delete-all" enumeration in our server for deleting an entire
leaf-list
because the current delete (specify every instance) is too cumbersome.

There is also no good way to test if a particular leaf-list instance exists.
If you provide a leaf-list with an instance in a <get*> filter, it is
treated
as a content-match node. (i.e., return all siblings or none)
There is no way to just retrieve just leaf-list foo=42.  You have to
retrieve
all foo nodes with a selection filter, then test all the values on the
client.




>
> > - Old function: make auto-delete for choice and when non-NETCONF specific
> >
> >   Revision -08 of YANG 1.1 defines auto-deletion as a property of the
> >   NETCONF edit-config operation and the issue is whether this
> >   auto-deletion behaviour is a NETCONF specific edit-config property
> >   or a general YANG datastore validation property that equally applies
> >   to RESTCONF, COMI, ...
> >
> >   It is unclear where we are with this. More input would be welcome.
>
> I think it would be very confusing if e.g. RESTCONF behaved
> differently than NETCONF.  However, I can see how it might make sense
> for a server on a constrained device to not do auto-delete - but OTOH
> such a server probably don't do "must" and "when" checking at all.
> And it might have specialized data models that don't use such
> constructs.
>
>
>
I don't like any of the NETCONF-specific text in YANG 1.1.
YANG datastore constraints refer to a conceptual "valid datastore".
There is no reason to talk about specific protocol behavior,
except that we are too lazy to put protocol text where it belongs.

It should at least be clear that datastore validation does not at all depend
on how the datastore contents were changed.  The current text does
not even fully support <copy-config>, so it does not even support NETCONF,
let alone RESTCONF.

IMO auto-deletion should not be changed.
It works fine and the only issue that has ever come up is
auto-deleting data from an edit-config payload.





/martin
>
>

Andy


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

--001a11c3f16a7e83640523e5dd41
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Thu, Nov 5, 2015 at 1:20 AM, Martin Bjorklund <span dir=3D"ltr">&lt;=
<a href=3D"mailto:mbj@tail-f.com" target=3D"_blank">mbj@tail-f.com</a>&gt;<=
/span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8=
ex;border-left:1px #ccc solid;padding-left:1ex">Juergen Schoenwaelder &lt;<=
a href=3D"mailto:j.schoenwaelder@jacobs-university.de">j.schoenwaelder@jaco=
bs-university.de</a>&gt; wrote:<br>
&gt; - New feature: non-unique config false leaf-lists<br>
&gt;<br>
&gt;=C2=A0 =C2=A0It is unclear where we are with this. While there was some=
<br>
&gt;=C2=A0 =C2=A0discussion at IETF 94, there was no clear indication wheth=
er this<br>
&gt;=C2=A0 =C2=A0change should be done or not. More input would be welcome.=
<br>
<br>
I think there are two options:<br>
<br>
=C2=A0 A.=C2=A0 Allow non-config leaf-lists to have duplicate values.<br>
<br>
=C2=A0 B.=C2=A0 Add a new keyword &quot;allow-duplicates true|false&quot; t=
o leaf-list.<br>
=C2=A0 =C2=A0 =C2=A0 It is an error if allow-duplicates is true in config.<=
br>
<br>
B feels more correct to me, but A is obviously simpler.<br></blockquote><di=
v><br></div><div><br></div><div>Agreed.</div><div>It seems like a data mode=
l property, not a server implementation choice.<br></div><div><br></div><di=
v>The leaf-list is broken in many ways but it gets fixed 1 little bit at a =
time.</div><div>We added a &quot;delete-all&quot; enumeration in our server=
 for deleting an entire leaf-list</div><div>because the current delete (spe=
cify every instance) is too cumbersome.</div><div><br></div><div>There is a=
lso no good way to test if a particular leaf-list instance exists.</div><di=
v>If you provide a leaf-list with an instance in a &lt;get*&gt; filter, it =
is treated</div><div>as a content-match node. (i.e., return all siblings or=
 none)</div><div>There is no way to just retrieve just leaf-list foo=3D42.=
=C2=A0 You have to retrieve</div><div>all foo nodes with a selection filter=
, then test all the values on the client.</div><div><br></div><div><br></di=
v><div>=C2=A0<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0 =
0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
&gt; - Old function: make auto-delete for choice and when non-NETCONF speci=
fic<br>
&gt;<br>
&gt;=C2=A0 =C2=A0Revision -08 of YANG 1.1 defines auto-deletion as a proper=
ty of the<br>
&gt;=C2=A0 =C2=A0NETCONF edit-config operation and the issue is whether thi=
s<br>
&gt;=C2=A0 =C2=A0auto-deletion behaviour is a NETCONF specific edit-config =
property<br>
&gt;=C2=A0 =C2=A0or a general YANG datastore validation property that equal=
ly applies<br>
&gt;=C2=A0 =C2=A0to RESTCONF, COMI, ...<br>
&gt;<br>
&gt;=C2=A0 =C2=A0It is unclear where we are with this. More input would be =
welcome.<br>
<br>
I think it would be very confusing if e.g. RESTCONF behaved<br>
differently than NETCONF.=C2=A0 However, I can see how it might make sense<=
br>
for a server on a constrained device to not do auto-delete - but OTOH<br>
such a server probably don&#39;t do &quot;must&quot; and &quot;when&quot; c=
hecking at all.<br>
And it might have specialized data models that don&#39;t use such<br>
constructs.<br>
<br>
<br></blockquote><div><br></div><div>I don&#39;t like any of the NETCONF-sp=
ecific text in YANG 1.1.</div><div>YANG datastore constraints refer to a co=
nceptual &quot;valid datastore&quot;.</div><div>There is no reason to talk =
about specific protocol behavior,</div><div>except that we are too lazy to =
put protocol text where it belongs.</div><div><br></div><div>It should at l=
east be clear that datastore validation does not at all depend</div><div>on=
 how the datastore contents were changed.=C2=A0 The current text does</div>=
<div>not even fully support &lt;copy-config&gt;, so it does not even suppor=
t NETCONF,</div><div>let alone RESTCONF.</div><div><br></div><div>IMO auto-=
deletion should not be changed.</div><div>It works fine and the only issue =
that has ever come up is</div><div>auto-deleting data from an edit-config p=
ayload.</div><div><br></div><div><br></div><div><br></div><div><br></div><d=
iv><br></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;b=
order-left:1px #ccc solid;padding-left:1ex">
/martin<br>
<br></blockquote><div><br></div><div><br></div><div>Andy</div><div>=C2=A0</=
div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-lef=
t:1px #ccc solid;padding-left:1ex">
_______________________________________________<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" rel=3D"noreferrer"=
 target=3D"_blank">https://www.ietf.org/mailman/listinfo/netmod</a><br>
</blockquote></div><br></div></div>

--001a11c3f16a7e83640523e5dd41--


From nobody Fri Nov  6 13:37:41 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 51FC41A21A2 for <netmod@ietfa.amsl.com>; Fri,  6 Nov 2015 13:37:39 -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 8BvOOXL3F12A for <netmod@ietfa.amsl.com>; Fri,  6 Nov 2015 13:37:37 -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 6992C1A21AA for <netmod@ietf.org>; Fri,  6 Nov 2015 13:37:37 -0800 (PST)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id B579510AC; Fri,  6 Nov 2015 22:37: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 LADh7LxiT0Zf; Fri,  6 Nov 2015 22:37:35 +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 Nov 2015 22:37:35 +0100 (CET)
Received: from localhost (demetrius1.jacobs-university.de [212.201.44.46]) by hermes.jacobs-university.de (Postfix) with ESMTP id EB6F52004E; Fri,  6 Nov 2015 22:37:34 +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 W1NB0OhcIQhg; Fri,  6 Nov 2015 22:37: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 EBBFC2003B; Fri,  6 Nov 2015 22:37:33 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id EC985387A94D; Fri,  6 Nov 2015 22:37:31 +0100 (CET)
Date: Fri, 6 Nov 2015 22:37:30 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Andy Bierman <andy@yumaworks.com>
Message-ID: <20151106213730.GA6550@elstar.local>
Mail-Followup-To: Andy Bierman <andy@yumaworks.com>, Martin Bjorklund <mbj@tail-f.com>, "netmod@ietf.org" <netmod@ietf.org>
References: <20151105090846.GA99478@elstar.local> <20151105.182045.402528442272338514.mbj@tail-f.com> <CABCOCHQt0YGNy=R8xH8wB=CxB=E4ft_vA10g9_qAJr48YoXQtw@mail.gmail.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <CABCOCHQt0YGNy=R8xH8wB=CxB=E4ft_vA10g9_qAJr48YoXQtw@mail.gmail.com>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/KkXevcvViukmXZtC_I-NEcU9y4k>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] yang 1.1 last call comment resolution
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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 06 Nov 2015 21:37:39 -0000

On Fri, Nov 06, 2015 at 01:24:14PM -0800, Andy Bierman wrote:
> 
> IMO auto-deletion should not be changed.
> It works fine and the only issue that has ever come up is
> auto-deleting data from an edit-config payload.
>

Huh? Can you please elaborate what the issue is? Why would one delete
data from edit-config payload?

/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 Nov  6 13:44:49 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 C7AB71A3BA1 for <netmod@ietfa.amsl.com>; Fri,  6 Nov 2015 13:44:47 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level: 
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=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 HyCRpaIszw_p for <netmod@ietfa.amsl.com>; Fri,  6 Nov 2015 13:44:46 -0800 (PST)
Received: from mail-lb0-x231.google.com (mail-lb0-x231.google.com [IPv6:2a00:1450:4010:c04::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 219F31A3BA0 for <netmod@ietf.org>; Fri,  6 Nov 2015 13:44:46 -0800 (PST)
Received: by lbbwb3 with SMTP id wb3so66674282lbb.1 for <netmod@ietf.org>; Fri, 06 Nov 2015 13:44:44 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks_com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=xsqX4XBgjVGCjKiGnmdvzpUAbJzn1u8zRqPneUUsF3g=; b=LkdnEYX2tJOMZQKMRUkeNpMh1xaD+kOofT7SCqHCuBaDeI4jXbi0cYvspkG1JOzN4m srWrZCjEjyKHYFztZdSRxXqhAKTiA75bY1SttNrh4Q4jjcZs1gZB53Slu5KIZD3ighbf kzyXP2yj91IzN/jE04tFIDbuCQ/8igPvwVR01fIhyiWc7FhcL2Nknybl1BoYrQz4OQ6O u7jxiy1eB1LGIhmHaFBPE9bk9UyTRAp0NLiOmMpt2ngLGKGEo8HNDja2ilY2nG4BvCzI zm6Gi0J/eRmvPEfrFnJT0Ook9FcHIsk4+y3tgwxKpJ75n1NkSyGpXYIIEKaUXYwzGccK wVFQ==
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=xsqX4XBgjVGCjKiGnmdvzpUAbJzn1u8zRqPneUUsF3g=; b=fN2iBJG1ia2xAPPbFDTTFko7hJNrbtBsGZc8yj0H6kbFWs5Z4dt/qnrvMZlplPpagp 86Qb0VpqOMzPL1V6cyuE1wrE0vXT2Y/KzLncYCcRcSM4AZ1W/7ES0YTA1MJdj4Wt20Ej rCf7cznVAgdgPOzsxlgvC4KsT7hxK1ZWBqKFEJEYssFPBmvsFnCbT0BCTwdvpE+Ssxje TiXWr/cmFjq5vN0bY0N9ZW+yl5MFlsGaDk+aTVgaMY11oLxWJFPVQf7b018kW9jwGKuz N/qepMV9wLWoCQP+U1ex6Bc9JuFvVrifAjKcRPnqYH6zXsXePS3YOmdPIlPVvMyl1zIn M8hg==
X-Gm-Message-State: ALoCoQnpsWLsfYhsH37OxXzNYs2Nbihmi7aRhchxQY5H72bNMgbpPVyCTIW5gM/Q7ssFLqXGoq7O
MIME-Version: 1.0
X-Received: by 10.112.55.97 with SMTP id r1mr7941074lbp.119.1446846284298; Fri, 06 Nov 2015 13:44:44 -0800 (PST)
Received: by 10.112.144.106 with HTTP; Fri, 6 Nov 2015 13:44:44 -0800 (PST)
In-Reply-To: <20151106213730.GA6550@elstar.local>
References: <20151105090846.GA99478@elstar.local> <20151105.182045.402528442272338514.mbj@tail-f.com> <CABCOCHQt0YGNy=R8xH8wB=CxB=E4ft_vA10g9_qAJr48YoXQtw@mail.gmail.com> <20151106213730.GA6550@elstar.local>
Date: Fri, 6 Nov 2015 13:44:44 -0800
Message-ID: <CABCOCHRx44S=vP3t6V8MeX6xut7YCwV=hQemWtd9dM1Qy+T4LA@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>, Andy Bierman <andy@yumaworks.com>,  Martin Bjorklund <mbj@tail-f.com>, "netmod@ietf.org" <netmod@ietf.org>
Content-Type: multipart/alternative; boundary=001a11c3f16ad2076a0523e62642
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/-laElKmDKAdWENArIgVkOTiWloE>
Subject: Re: [netmod] yang 1.1 last call comment resolution
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 06 Nov 2015 21:44:48 -0000

--001a11c3f16ad2076a0523e62642
Content-Type: text/plain; charset=UTF-8

On Fri, Nov 6, 2015 at 1:37 PM, Juergen Schoenwaelder <
j.schoenwaelder@jacobs-university.de> wrote:

> On Fri, Nov 06, 2015 at 01:24:14PM -0800, Andy Bierman wrote:
> >
> > IMO auto-deletion should not be changed.
> > It works fine and the only issue that has ever come up is
> > auto-deleting data from an edit-config payload.
> >
>
> Huh? Can you please elaborate what the issue is? Why would one delete
> data from edit-config payload?
>
>

Well, not from the payload, but rather that data from the
<config> payload is created in the target datastore and then immediately
deleted because a when-stmt is false.  For example, the edit applies
interface
parameters for "when if:type='ethernetCsmacd'" to an interface with a
different type.

The server doesn't really care which node caused another when-stmt to
become false.
This corner-case is treated as just another auto-deletion.


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

--001a11c3f16ad2076a0523e62642
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Fri, Nov 6, 2015 at 1:37 PM, Juergen Schoenwaelder <span dir=3D"ltr"=
>&lt;<a href=3D"mailto:j.schoenwaelder@jacobs-university.de" target=3D"_bla=
nk">j.schoenwaelder@jacobs-university.de</a>&gt;</span> wrote:<br><blockquo=
te class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc so=
lid;padding-left:1ex">On Fri, Nov 06, 2015 at 01:24:14PM -0800, Andy Bierma=
n wrote:<br>
&gt;<br>
&gt; IMO auto-deletion should not be changed.<br>
&gt; It works fine and the only issue that has ever come up is<br>
&gt; auto-deleting data from an edit-config payload.<br>
&gt;<br>
<br>
Huh? Can you please elaborate what the issue is? Why would one delete<br>
data from edit-config payload?<br>
<span class=3D"HOEnZb"><font color=3D"#888888"><br></font></span></blockquo=
te><div><br></div><div><br></div><div>Well, not from the payload, but rathe=
r that data from the</div><div>&lt;config&gt; payload is created in the tar=
get datastore and then immediately</div><div>deleted because a when-stmt is=
 false.=C2=A0 For example, the edit applies interface</div><div>parameters =
for &quot;when if:type=3D&#39;ethernetCsmacd&#39;&quot; to an interface wit=
h a different type.</div><div><br></div><div>The server doesn&#39;t really =
care which node caused another when-stmt to become false.</div><div>This co=
rner-case is treated as just another auto-deletion.</div><div><br></div><di=
v><br></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bo=
rder-left:1px #ccc solid;padding-left:1ex"><span class=3D"HOEnZb"><font col=
or=3D"#888888">
/js<br>
<br></font></span></blockquote><div><br></div><div>Andy</div><div>=C2=A0</d=
iv><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left=
:1px #ccc solid;padding-left:1ex"><span class=3D"HOEnZb"><font color=3D"#88=
8888">
--<br>
Juergen Schoenwaelder=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Jacobs Univer=
sity Bremen gGmbH<br>
Phone: +49 421 200 3587=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Campus Ring 1 | 28=
759 Bremen | Germany<br>
Fax:=C2=A0 =C2=A0+49 421 200 3103=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;<a h=
ref=3D"http://www.jacobs-university.de/" rel=3D"noreferrer" target=3D"_blan=
k">http://www.jacobs-university.de/</a>&gt;<br>
</font></span></blockquote></div><br></div></div>

--001a11c3f16ad2076a0523e62642--


From nobody Sat Nov  7 08:59:19 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 673121AC3F2 for <netmod@ietfa.amsl.com>; Sat,  7 Nov 2015 08:59:18 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level: 
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=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 6qXsyj2fiYzB for <netmod@ietfa.amsl.com>; Sat,  7 Nov 2015 08:59:16 -0800 (PST)
Received: from mail-lb0-x22a.google.com (mail-lb0-x22a.google.com [IPv6:2a00:1450:4010:c04::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 8EAD71AC3EF for <netmod@ietf.org>; Sat,  7 Nov 2015 08:59:15 -0800 (PST)
Received: by lbbkw15 with SMTP id kw15so69946756lbb.0 for <netmod@ietf.org>; Sat, 07 Nov 2015 08:59:13 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks_com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=sbyQ9pcsh/mmmnn+SF9KgOoLRhM4ZSHB6Dr4hV22h20=; b=BjRG0AEuLCMi0gWIUfD+XM1nu65lkf1X1QmNdfn5TG0jtS7mKV8/A5nPX+kGgxLsKA u7inlY/8lVH8xi/rLMQRR8bnUF4IOe/6aadTdMH9ZEK1gCF6JZLVrpKxMG3VpOE6yRkF mBD910QiORxpfN5gnXTBS9LJFkU7wbWt3NcORcEcRV2MLmx/x04oz21w7ykhBOsSqmc6 Ntf+VO7GEAqb4b3zmq7vi85aDelUcwAhFAQLEe1dwVAjmpmaqxr3lNF9vEW7hzidnv47 tkKGQfZuNy5sEmPserDn7JkCb7Th/KGVH4IL2sXJ/eIl/f5l79pjkcMG5FN3Aqda67rR HGkg==
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=sbyQ9pcsh/mmmnn+SF9KgOoLRhM4ZSHB6Dr4hV22h20=; b=BP767Rop9sSwBwVus/9otgg4IVEiGaS5Bh8cOXO9icIZB3vGpHH9vmlWMvXt31PGsw hcxtiGYO3jDvN84JIJFjAev4lJZXaZN+tGX5SGL1bSIP5evYdmFRT8DclzAJxP7OoX3j c2RHie0QXZ0CigswGNBaCJZwcbaIqUFQyqKSMRsrI0aZfS1MN/yyPByopXch8xKFTbiz XmoTQGLUMBG8bmWXFngQOy7q5Q1+UbciMoDVmJUazvygSVtgRRJrGhPu67mlLYLzcpqG qYCeScemg/l+MmpLx3y7zDVPBSsmcLpb3vYjqjE/U2kU+AX+UILUvj/veG7UXu31JJ+e bUmg==
X-Gm-Message-State: ALoCoQlKEfaBr7Yldzlszh1V9rmoVxpyUZNGzMgszwpaBtYu9jTg0TUfWvRG3snIfE0yZdcGCU86
MIME-Version: 1.0
X-Received: by 10.112.141.7 with SMTP id rk7mr9599284lbb.82.1446915553602; Sat, 07 Nov 2015 08:59:13 -0800 (PST)
Received: by 10.112.144.106 with HTTP; Sat, 7 Nov 2015 08:59:13 -0800 (PST)
In-Reply-To: <20151105090846.GA99478@elstar.local>
References: <20151105090846.GA99478@elstar.local>
Date: Sat, 7 Nov 2015 08:59:13 -0800
Message-ID: <CABCOCHQeZqOXg=NON5hrU56vz0grF0aA0FKPsh5tc=kDX9u5bw@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>,  "netmod@ietf.org" <netmod@ietf.org>
Content-Type: multipart/alternative; boundary=001a11c37e1a97c7970523f64728
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/aDBTKn8f24emzEP2nWI-lGbDHg0>
Subject: Re: [netmod] yang 1.1 last call comment resolution
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 07 Nov 2015 16:59:18 -0000

--001a11c37e1a97c7970523f64728
Content-Type: text/plain; charset=UTF-8

On Thu, Nov 5, 2015 at 1:08 AM, Juergen Schoenwaelder <
j.schoenwaelder@jacobs-university.de> wrote:

> Hi,
>
> given the discussion at IETF 94, here is what I think where we are
> with resolving the last call comments (I am following the structure of
> Martin's IETF 94 slides). It would be nice to close the remining open
> ones as soon as possible so that Martin can produce -09.  Once we have
> -09, we will have a second WG last call so that people can do a final
> check whether the edits from -07 to -09 address all the comments that
> were raised in a satisfying manner.
>
> If you disagree with any of the following, please raise your voice.
>
> - New function: if-feature and default
>
>   I think the resolution is to disallow default values that are
>   depending on a feature.
>
> - New function: accessible tree in when
>
>   I think the resolution is to adopt the proposed solution.
>



I strongly object to the change to XPath accessible tree for RPC and
notifications.
(page 44 - 45, bullets 3 - 5) State data MUST NOT be included in the
accessible tree.

E.g., rpc/input went from the <rpc> message itself to <rpc> + running +
state.
It should be just <rpc> + running.  It is a massive change to include state
data
in the processing of RPC or notifications. The server has to implement the
:xpath capability in NETCONF.

I strongly object to the text that requires the accessible tree to be
modified for processing
when-stmts  (3 bullets in 7.21.5).  This requires massive and complicated
implementation changes.   IMO the most interoperable thing to do is just run
the specified XPath expression on the existing conceptual document.

If people use bad XPath then maybe bad things happen.  YANG Doctors
will prevent that in IETF modules.  In reality, XPath that doesn't work
usually
gets fixed at some point.






>
> - Old function: augment mandatory nodes
>
>   I think this is moving towards relaxing the MUST NOT rules and
>   to allow mandatory nodes in 'safe' augmentations.
>

There was some discussion about moving the 6087bis text I wrote into
YANG 1.1 to make it normative. OK with me.



>
> - Old function: unique module names
>
>   I think the resolution is to adopt the compromise solution.
>

which was what?


>
> - New feature: non-unique config false leaf-lists
>
>   It is unclear where we are with this. While there was some
>   discussion at IETF 94, there was no clear indication whether this
>   change should be done or not. More input would be welcome.
>
>

OK with just allowing this without a new keyword.



> - New feature: keyless lists and non-unique leaf-lists in config
>
>   This seems to be dead.
>

good


>
> - New feature: change semantics of the choice and when statements
>
>   This seems to be dead.
>

good


>
> - Old function: make auto-delete for choice and when non-NETCONF specific
>
>   Revision -08 of YANG 1.1 defines auto-deletion as a property of the
>   NETCONF edit-config operation and the issue is whether this
>   auto-deletion behaviour is a NETCONF specific edit-config property
>   or a general YANG datastore validation property that equally applies
>   to RESTCONF, COMI, ...
>
>

good - YANG should describe what happens inside a conceptual datastore

IMO it could be more clear that this auto-deletion applies to every
datastore and is
not really considered validation.  If so, then it would not be instant,
but rather enforced only on the 'running' config.

It is really if-feature on steroids. ;-)

(No I do not have suggested text right now to make this more clear)




>   It is unclear where we are with this. More input would be welcome.
>
> /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
>

--001a11c37e1a97c7970523f64728
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Thu, Nov 5, 2015 at 1:08 AM, Juergen Schoenwaelder <span dir=3D"ltr"=
>&lt;<a href=3D"mailto:j.schoenwaelder@jacobs-university.de" target=3D"_bla=
nk">j.schoenwaelder@jacobs-university.de</a>&gt;</span> wrote:<br><blockquo=
te class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc so=
lid;padding-left:1ex">Hi,<br>
<br>
given the discussion at IETF 94, here is what I think where we are<br>
with resolving the last call comments (I am following the structure of<br>
Martin&#39;s IETF 94 slides). It would be nice to close the remining open<b=
r>
ones as soon as possible so that Martin can produce -09.=C2=A0 Once we have=
<br>
-09, we will have a second WG last call so that people can do a final<br>
check whether the edits from -07 to -09 address all the comments that<br>
were raised in a satisfying manner.<br>
<br>
If you disagree with any of the following, please raise your voice.<br>
<br>
- New function: if-feature and default<br>
<br>
=C2=A0 I think the resolution is to disallow default values that are<br>
=C2=A0 depending on a feature.<br>
<br>
- New function: accessible tree in when<br>
<br>
=C2=A0 I think the resolution is to adopt the proposed solution.<br></block=
quote><div><br></div><div><br></div><div><br></div><div>I strongly object t=
o the change to XPath accessible tree for RPC and notifications.</div><div>=
(page 44 - 45, bullets 3 - 5) State data MUST NOT be included in the access=
ible tree.</div><div><br></div><div>E.g., rpc/input went from the &lt;rpc&g=
t; message itself to &lt;rpc&gt; + running + state.</div><div>It should be =
just &lt;rpc&gt; + running.=C2=A0 It is a massive change to include state d=
ata</div><div>in the processing of RPC or notifications. The server has to =
implement the</div><div>:xpath capability in NETCONF.</div><div><br></div><=
div>I strongly object to the text that requires the accessible tree to be m=
odified for processing</div><div>when-stmts =C2=A0(3 bullets in 7.21.5).=C2=
=A0 This requires massive and complicated=C2=A0</div><div>implementation ch=
anges. =C2=A0 IMO the most interoperable thing to do is just run</div><div>=
the specified XPath expression on the existing conceptual document.</div><d=
iv><br></div><div>If people use bad XPath then maybe bad things happen.=C2=
=A0 YANG Doctors</div><div>will prevent that in IETF modules.=C2=A0 In real=
ity, XPath that doesn&#39;t work usually</div><div>gets fixed at some point=
.</div><div><br></div><div><br></div><div><br></div><div><br></div><div>=C2=
=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;borde=
r-left:1px #ccc solid;padding-left:1ex">
<br>
- Old function: augment mandatory nodes<br>
<br>
=C2=A0 I think this is moving towards relaxing the MUST NOT rules and<br>
=C2=A0 to allow mandatory nodes in &#39;safe&#39; augmentations.<br></block=
quote><div><br></div><div>There was some discussion about moving the 6087bi=
s text I wrote into</div><div>YANG 1.1 to make it normative. OK with me.</d=
iv><div><br></div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=
=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
- Old function: unique module names<br>
<br>
=C2=A0 I think the resolution is to adopt the compromise solution.<br></blo=
ckquote><div><br></div><div>which was what?</div><div>=C2=A0</div><blockquo=
te class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc so=
lid;padding-left:1ex">
<br>
- New feature: non-unique config false leaf-lists<br>
<br>
=C2=A0 It is unclear where we are with this. While there was some<br>
=C2=A0 discussion at IETF 94, there was no clear indication whether this<br=
>
=C2=A0 change should be done or not. More input would be welcome.<br>
<br></blockquote><div><br></div><div><br></div><div>OK with just allowing t=
his without a new keyword.</div><div><br></div><div>=C2=A0</div><blockquote=
 class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc soli=
d;padding-left:1ex">
- New feature: keyless lists and non-unique leaf-lists in config<br>
<br>
=C2=A0 This seems to be dead.<br></blockquote><div><br></div><div>good</div=
><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .=
8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
- New feature: change semantics of the choice and when statements<br>
<br>
=C2=A0 This seems to be dead.<br></blockquote><div><br></div><div>good</div=
><div>=C2=A0<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0=
 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
- Old function: make auto-delete for choice and when non-NETCONF specific<b=
r>
<br>
=C2=A0 Revision -08 of YANG 1.1 defines auto-deletion as a property of the<=
br>
=C2=A0 NETCONF edit-config operation and the issue is whether this<br>
=C2=A0 auto-deletion behaviour is a NETCONF specific edit-config property<b=
r>
=C2=A0 or a general YANG datastore validation property that equally applies=
<br>
=C2=A0 to RESTCONF, COMI, ...<br>
<br></blockquote><div><br></div><div><br></div><div>good - YANG should desc=
ribe what happens inside a conceptual datastore</div><div><br></div><div>IM=
O it could be more clear that this auto-deletion applies to every datastore=
 and is</div><div>not really considered validation.=C2=A0 If so, then it wo=
uld not be instant,</div><div>but rather enforced only on the &#39;running&=
#39; config.</div><div><br></div><div>It is really if-feature on steroids. =
;-)</div><div><br></div><div>(No I do not have suggested text right now to =
make this more clear)</div><div><br></div><div><br></div><div>=C2=A0</div><=
blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px=
 #ccc solid;padding-left:1ex">
=C2=A0 It is unclear where we are with this. More input would be welcome.<b=
r>
<span class=3D"HOEnZb"><font color=3D"#888888"><br>
/js<br></font></span></blockquote><div><br></div><div>Andy</div><div>=C2=A0=
</div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-l=
eft:1px #ccc solid;padding-left:1ex"><span class=3D"HOEnZb"><font color=3D"=
#888888">
<br>
--<br>
Juergen Schoenwaelder=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Jacobs Univer=
sity Bremen gGmbH<br>
Phone: +49 421 200 3587=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Campus Ring 1 | 28=
759 Bremen | Germany<br>
Fax:=C2=A0 =C2=A0+49 421 200 3103=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;<a h=
ref=3D"http://www.jacobs-university.de/" rel=3D"noreferrer" target=3D"_blan=
k">http://www.jacobs-university.de/</a>&gt;<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" rel=3D"noreferrer"=
 target=3D"_blank">https://www.ietf.org/mailman/listinfo/netmod</a><br>
</font></span></blockquote></div><br></div></div>

--001a11c37e1a97c7970523f64728--


From nobody Mon Nov  9 02:31: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 2C4A31ACCFD for <netmod@ietfa.amsl.com>; Mon,  9 Nov 2015 02:31:16 -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 hMNNEwHwYKH6 for <netmod@ietfa.amsl.com>; Mon,  9 Nov 2015 02:31:14 -0800 (PST)
Received: from trail.lhotka.name (trail.lhotka.name [77.48.224.143]) by ietfa.amsl.com (Postfix) with ESMTP id E6C331ACCF9 for <netmod@ietf.org>; Mon,  9 Nov 2015 02:31:12 -0800 (PST)
Received: from localhost (unknown [195.113.220.110]) by trail.lhotka.name (Postfix) with ESMTPSA id 1749B1CC0196; Mon,  9 Nov 2015 11:31:10 +0100 (CET)
From: Ladislav Lhotka <lhotka@nic.cz>
To: Martin Bjorklund <mbj@tail-f.com>, j.schoenwaelder@jacobs-university.de
In-Reply-To: <20151105.182045.402528442272338514.mbj@tail-f.com>
References: <20151105090846.GA99478@elstar.local> <20151105.182045.402528442272338514.mbj@tail-f.com>
User-Agent: Notmuch/0.21 (http://notmuchmail.org) Emacs/24.4.51.2 (x86_64-apple-darwin14.0.0)
Date: Mon, 09 Nov 2015 11:31:10 +0100
Message-ID: <m24mgv31n5.fsf@birdie.labs.nic.cz>
MIME-Version: 1.0
Content-Type: text/plain
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/JxDVvaF728njpRyT0Zbfqdb9k7k>
Cc: netmod@ietf.org
Subject: Re: [netmod] yang 1.1 last call comment resolution
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 09 Nov 2015 10:31:16 -0000

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

> Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote:
>> - New feature: non-unique config false leaf-lists
>> 
>>   It is unclear where we are with this. While there was some
>>   discussion at IETF 94, there was no clear indication whether this
>>   change should be done or not. More input would be welcome.
>
> I think there are two options:
>
>   A.  Allow non-config leaf-lists to have duplicate values.
>
>   B.  Add a new keyword "allow-duplicates true|false" to leaf-list.
>       It is an error if allow-duplicates is true in config.
>
> B feels more correct to me, but A is obviously simpler.

I don't have a strong preference here. Could A cause any problems?

>
>> - Old function: make auto-delete for choice and when non-NETCONF specific
>> 
>>   Revision -08 of YANG 1.1 defines auto-deletion as a property of the
>>   NETCONF edit-config operation and the issue is whether this
>>   auto-deletion behaviour is a NETCONF specific edit-config property
>>   or a general YANG datastore validation property that equally applies
>>   to RESTCONF, COMI, ...
>> 
>>   It is unclear where we are with this. More input would be welcome.
>
> I think it would be very confusing if e.g. RESTCONF behaved
> differently than NETCONF.  However, I can see how it might make sense

I don't know whether auto-deletion is really the preferred choice of
every NETCONF/RESTCONF user but I think it would be countre-productive
to require all protocols that might use YANG to apply this behaviour.

> for a server on a constrained device to not do auto-delete - but OTOH
> such a server probably don't do "must" and "when" checking at all.

Why not? For example, such an implementation can do this validation with
DSDL schemas using off-the shelf RELAX NG and XSLT implementations.

Lada

> And it might have specialized data models that don't use such
> constructs.
>
>
> /martin
>
> _______________________________________________
> 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 Nov  9 02:48:53 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 5102E1A8A3D for <netmod@ietfa.amsl.com>; Mon,  9 Nov 2015 02:48: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 3CQM-G9c6SNI for <netmod@ietfa.amsl.com>; Mon,  9 Nov 2015 02:48:48 -0800 (PST)
Received: from trail.lhotka.name (trail.lhotka.name [77.48.224.143]) by ietfa.amsl.com (Postfix) with ESMTP id 906FF1A8A1F for <netmod@ietf.org>; Mon,  9 Nov 2015 02:48:48 -0800 (PST)
Received: from localhost (unknown [195.113.220.110]) by trail.lhotka.name (Postfix) with ESMTPSA id 1F6F71CC0196; Mon,  9 Nov 2015 11:48:47 +0100 (CET)
From: Ladislav Lhotka <lhotka@nic.cz>
To: Andy Bierman <andy@yumaworks.com>, Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <CABCOCHQt0YGNy=R8xH8wB=CxB=E4ft_vA10g9_qAJr48YoXQtw@mail.gmail.com>
References: <20151105090846.GA99478@elstar.local> <20151105.182045.402528442272338514.mbj@tail-f.com> <CABCOCHQt0YGNy=R8xH8wB=CxB=E4ft_vA10g9_qAJr48YoXQtw@mail.gmail.com>
User-Agent: Notmuch/0.21 (http://notmuchmail.org) Emacs/24.4.51.2 (x86_64-apple-darwin14.0.0)
Date: Mon, 09 Nov 2015 11:48:47 +0100
Message-ID: <m21tbz30ts.fsf@birdie.labs.nic.cz>
MIME-Version: 1.0
Content-Type: text/plain
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/JdJZ9WP_kHnBZDpkpRlyLs3II3Y>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] yang 1.1 last call comment resolution
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 09 Nov 2015 10:48:50 -0000

Andy Bierman <andy@yumaworks.com> writes:

> On Thu, Nov 5, 2015 at 1:20 AM, Martin Bjorklund <mbj@tail-f.com> wrote:
>
>> Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote:
>>

...

>> > - Old function: make auto-delete for choice and when non-NETCONF specific
>> >
>> >   Revision -08 of YANG 1.1 defines auto-deletion as a property of the
>> >   NETCONF edit-config operation and the issue is whether this
>> >   auto-deletion behaviour is a NETCONF specific edit-config property
>> >   or a general YANG datastore validation property that equally applies
>> >   to RESTCONF, COMI, ...
>> >
>> >   It is unclear where we are with this. More input would be welcome.
>>
>> I think it would be very confusing if e.g. RESTCONF behaved
>> differently than NETCONF.  However, I can see how it might make sense
>> for a server on a constrained device to not do auto-delete - but OTOH
>> such a server probably don't do "must" and "when" checking at all.
>> And it might have specialized data models that don't use such
>> constructs.
>>
>>
>>
> I don't like any of the NETCONF-specific text in YANG 1.1.
> YANG datastore constraints refer to a conceptual "valid datastore".
> There is no reason to talk about specific protocol behavior,
> except that we are too lazy to put protocol text where it belongs.

Agreed.

>
> It should at least be clear that datastore validation does not at all depend
> on how the datastore contents were changed.  The current text does
> not even fully support <copy-config>, so it does not even support NETCONF,
> let alone RESTCONF.
>
> IMO auto-deletion should not be changed.
> It works fine and the only issue that has ever come up is
> auto-deleting data from an edit-config payload.

IMO a scarier prospect is the ripple effect where an edit-config causes
some remote part(s) of the data tree to disappear.

I looked into the existing uses of "when" and none of them seems to be
really designed for the auto-deletion option. That is, auto-deletion is
either impossible (e.g. if "when" involves just a list key) or otherwise
it would clearly be an operator error (e.g. if interface type is changed
by mistake).

Lada


>
>
>
>
>
> /martin
>>
>>
>
> Andy
>
>
>> _______________________________________________
>> 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

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


From nobody Mon Nov  9 08:18:01 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 248A41B2FE8 for <netmod@ietfa.amsl.com>; Mon,  9 Nov 2015 08:18:01 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level: 
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=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 zM7FHE8SlJlz for <netmod@ietfa.amsl.com>; Mon,  9 Nov 2015 08:17:59 -0800 (PST)
Received: from mail-lf0-x231.google.com (mail-lf0-x231.google.com [IPv6:2a00:1450:4010:c07::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 A516F1A000E for <netmod@ietf.org>; Mon,  9 Nov 2015 08:17:58 -0800 (PST)
Received: by lffu14 with SMTP id u14so13339559lff.1 for <netmod@ietf.org>; Mon, 09 Nov 2015 08:17:56 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks_com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=tClU1eRqbpdf1QhMwUMEy3BqYq0mNILY0Xk2y3LkYVg=; b=IMRibMU4vrjAOhdeJf+X7B0viaOtH027dBWNhQkCQDintHNk6T3UqSemM3DT1mv29w RFmspYh9tsCVR7Cl2TkwUdIWiYZbcQUKXfPIsX6vmaDyzITvCBrKVslRwJcP+JJ2GP4S nbKT154mxAFsLB04+yxykKhWF3OXkFyOwtbZp3FDqj8uSUz/I/HPTXwfX0rHSx5zr8Ql hZ/RDBVLzawbUfM1YGRp5mwzNVcLEh3pt5NhzakxspFNlYxYNCtRkyTnJXUIyzfCSHTd k1uJXC56QmHwR1mP+4X/W0s56jxmKjP2k70sihzdY4wtDSJL1WNG3od7ugPDsQlpj3EL 5+gw==
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=tClU1eRqbpdf1QhMwUMEy3BqYq0mNILY0Xk2y3LkYVg=; b=M8J5WSicS+JuEhFnlPTZxIaQRBRIU+AWjDpvEpYE1icxGPhY23iByi/ZigF4R5SozZ Io1mcmoH68mxWfTbIW/jRtV0S2ZIPkFc6Og8ldrC5teT9HLz6lt27gmrVOTrZMbIm9Fv VbrVE8VJiRBprJDt9YTfd5H2wG4Fa50itY8cu1O3p9TzKFc4KcsNRwZOqh3gPXE2ktrN TeHLsY2raP/b7Ne1E7JSFPue4zKDHr0lpDnDkhznYDSHA4y019d2TRALh7kb6bG55L4d GVead+FIIxhUJjtMCFpDhk/HAGwAvN1HFVl6ZwDit+FGK+K0gNl5Mystf4Dfwxdq/pQa Gl7A==
X-Gm-Message-State: ALoCoQnnI3FOsanotgT3aUh/1D7uxAf6Cz5kg6NTgOuN+piQcpuVO9Hre9hw6PF0DO8wjr3a0d6Q
MIME-Version: 1.0
X-Received: by 10.25.153.18 with SMTP id b18mr8773956lfe.33.1447085876621; Mon, 09 Nov 2015 08:17:56 -0800 (PST)
Received: by 10.112.144.106 with HTTP; Mon, 9 Nov 2015 08:17:56 -0800 (PST)
In-Reply-To: <m21tbz30ts.fsf@birdie.labs.nic.cz>
References: <20151105090846.GA99478@elstar.local> <20151105.182045.402528442272338514.mbj@tail-f.com> <CABCOCHQt0YGNy=R8xH8wB=CxB=E4ft_vA10g9_qAJr48YoXQtw@mail.gmail.com> <m21tbz30ts.fsf@birdie.labs.nic.cz>
Date: Mon, 9 Nov 2015 08:17:56 -0800
Message-ID: <CABCOCHRJ+aTt=GERQZ97qd5f89NJZweO8t=MaOFgmGX6V+ahBw@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Ladislav Lhotka <lhotka@nic.cz>
Content-Type: multipart/alternative; boundary=001a114730c0a2d0f705241def5d
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/h7p70luNswU7zHa8f40BfH1vNak>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] yang 1.1 last call comment resolution
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 09 Nov 2015 16:18:01 -0000

--001a114730c0a2d0f705241def5d
Content-Type: text/plain; charset=UTF-8

On Mon, Nov 9, 2015 at 2:48 AM, Ladislav Lhotka <lhotka@nic.cz> wrote:

> Andy Bierman <andy@yumaworks.com> writes:
>
> > On Thu, Nov 5, 2015 at 1:20 AM, Martin Bjorklund <mbj@tail-f.com> wrote:
> >
> >> Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote:
> >>
>
> ...
>
> >> > - Old function: make auto-delete for choice and when non-NETCONF
> specific
> >> >
> >> >   Revision -08 of YANG 1.1 defines auto-deletion as a property of the
> >> >   NETCONF edit-config operation and the issue is whether this
> >> >   auto-deletion behaviour is a NETCONF specific edit-config property
> >> >   or a general YANG datastore validation property that equally applies
> >> >   to RESTCONF, COMI, ...
> >> >
> >> >   It is unclear where we are with this. More input would be welcome.
> >>
> >> I think it would be very confusing if e.g. RESTCONF behaved
> >> differently than NETCONF.  However, I can see how it might make sense
> >> for a server on a constrained device to not do auto-delete - but OTOH
> >> such a server probably don't do "must" and "when" checking at all.
> >> And it might have specialized data models that don't use such
> >> constructs.
> >>
> >>
> >>
> > I don't like any of the NETCONF-specific text in YANG 1.1.
> > YANG datastore constraints refer to a conceptual "valid datastore".
> > There is no reason to talk about specific protocol behavior,
> > except that we are too lazy to put protocol text where it belongs.
>
> Agreed.
>
> >
> > It should at least be clear that datastore validation does not at all
> depend
> > on how the datastore contents were changed.  The current text does
> > not even fully support <copy-config>, so it does not even support
> NETCONF,
> > let alone RESTCONF.
> >
> > IMO auto-deletion should not be changed.
> > It works fine and the only issue that has ever come up is
> > auto-deleting data from an edit-config payload.
>
> IMO a scarier prospect is the ripple effect where an edit-config causes
> some remote part(s) of the data tree to disappear.
>
> I looked into the existing uses of "when" and none of them seems to be
> really designed for the auto-deletion option. That is, auto-deletion is
> either impossible (e.g. if "when" involves just a list key) or otherwise
> it would clearly be an operator error (e.g. if interface type is changed
> by mistake).
>
>


I do not agree.
The when-stmt and choice-stmt change the schema tree.
The false schema nodes are like false if-feature nodes.
This is what makes "must" different than "when".
If an error is returned instead of deletion, then there is no difference
between must and when statements.  YANG has worked this way from
the very beginning, so I do not understand what the problem is now.
This "general confusion" argument is really weak.


Lada
>

Andy


>
>
> >
> >
> >
> >
> >
> > /martin
> >>
> >>
> >
> > Andy
> >
> >
> >> _______________________________________________
> >> 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
>
> --
> Ladislav Lhotka, CZ.NIC Labs
> PGP Key ID: E74E8C0C
>

--001a114730c0a2d0f705241def5d
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Mon, Nov 9, 2015 at 2:48 AM, Ladislav Lhotka <span dir=3D"ltr">&lt;<=
a href=3D"mailto:lhotka@nic.cz" target=3D"_blank">lhotka@nic.cz</a>&gt;</sp=
an> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;=
border-left:1px #ccc solid;padding-left:1ex">Andy Bierman &lt;<a href=3D"ma=
ilto:andy@yumaworks.com">andy@yumaworks.com</a>&gt; writes:<br>
<br>
&gt; On Thu, Nov 5, 2015 at 1:20 AM, Martin Bjorklund &lt;<a href=3D"mailto=
:mbj@tail-f.com">mbj@tail-f.com</a>&gt; wrote:<br>
&gt;<br>
&gt;&gt; Juergen Schoenwaelder &lt;<a href=3D"mailto:j.schoenwaelder@jacobs=
-university.de">j.schoenwaelder@jacobs-university.de</a>&gt; wrote:<br>
&gt;&gt;<br>
<br>
...<br>
<br>
&gt;&gt; &gt; - Old function: make auto-delete for choice and when non-NETC=
ONF specific<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;=C2=A0 =C2=A0Revision -08 of YANG 1.1 defines auto-deletion as=
 a property of the<br>
&gt;&gt; &gt;=C2=A0 =C2=A0NETCONF edit-config operation and the issue is wh=
ether this<br>
&gt;&gt; &gt;=C2=A0 =C2=A0auto-deletion behaviour is a NETCONF specific edi=
t-config property<br>
&gt;&gt; &gt;=C2=A0 =C2=A0or a general YANG datastore validation property t=
hat equally applies<br>
&gt;&gt; &gt;=C2=A0 =C2=A0to RESTCONF, COMI, ...<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;=C2=A0 =C2=A0It is unclear where we are with this. More input =
would be welcome.<br>
&gt;&gt;<br>
&gt;&gt; I think it would be very confusing if e.g. RESTCONF behaved<br>
&gt;&gt; differently than NETCONF.=C2=A0 However, I can see how it might ma=
ke sense<br>
&gt;&gt; for a server on a constrained device to not do auto-delete - but O=
TOH<br>
&gt;&gt; such a server probably don&#39;t do &quot;must&quot; and &quot;whe=
n&quot; checking at all.<br>
&gt;&gt; And it might have specialized data models that don&#39;t use such<=
br>
&gt;&gt; constructs.<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt; I don&#39;t like any of the NETCONF-specific text in YANG 1.1.<br>
&gt; YANG datastore constraints refer to a conceptual &quot;valid datastore=
&quot;.<br>
&gt; There is no reason to talk about specific protocol behavior,<br>
&gt; except that we are too lazy to put protocol text where it belongs.<br>
<br>
Agreed.<br>
<br>
&gt;<br>
&gt; It should at least be clear that datastore validation does not at all =
depend<br>
&gt; on how the datastore contents were changed.=C2=A0 The current text doe=
s<br>
&gt; not even fully support &lt;copy-config&gt;, so it does not even suppor=
t NETCONF,<br>
&gt; let alone RESTCONF.<br>
&gt;<br>
&gt; IMO auto-deletion should not be changed.<br>
&gt; It works fine and the only issue that has ever come up is<br>
&gt; auto-deleting data from an edit-config payload.<br>
<br>
IMO a scarier prospect is the ripple effect where an edit-config causes<br>
some remote part(s) of the data tree to disappear.<br>
<br>
I looked into the existing uses of &quot;when&quot; and none of them seems =
to be<br>
really designed for the auto-deletion option. That is, auto-deletion is<br>
either impossible (e.g. if &quot;when&quot; involves just a list key) or ot=
herwise<br>
it would clearly be an operator error (e.g. if interface type is changed<br=
>
by mistake).<br>
<br></blockquote><div><br></div><div><br></div><div><br></div><div>I do not=
 agree.</div><div>The when-stmt and choice-stmt change the schema tree.</di=
v><div>The false schema nodes are like false if-feature nodes.</div><div>Th=
is is what makes &quot;must&quot; different than &quot;when&quot;.</div><di=
v>If an error is returned instead of deletion, then there is no difference<=
/div><div>between must and when statements.=C2=A0 YANG has worked this way =
from</div><div>the very beginning, so I do not understand what the problem =
is now.</div><div>This &quot;general confusion&quot; argument is really wea=
k.</div><div><br></div><div><br></div><blockquote class=3D"gmail_quote" sty=
le=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Lada<br></blockquote><div><br></div><div>Andy</div><div>=C2=A0</div><blockq=
uote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc =
solid;padding-left:1ex">
<br>
<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; /martin<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;<br>
&gt; Andy<br>
&gt;<br>
&gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; netmod mailing list<br>
&gt;&gt; <a href=3D"mailto:netmod@ietf.org">netmod@ietf.org</a><br>
&gt;&gt; <a href=3D"https://www.ietf.org/mailman/listinfo/netmod" rel=3D"no=
referrer" target=3D"_blank">https://www.ietf.org/mailman/listinfo/netmod</a=
><br>
&gt;&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" rel=3D"norefe=
rrer" target=3D"_blank">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>
</font></span></blockquote></div><br></div></div>

--001a114730c0a2d0f705241def5d--


From nobody Mon Nov  9 09:52:58 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 80B231A8AD0 for <netmod@ietfa.amsl.com>; Mon,  9 Nov 2015 09:52:57 -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 XO_5LTfYCq-0 for <netmod@ietfa.amsl.com>; Mon,  9 Nov 2015 09:52:56 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id F12761A8AC5 for <netmod@ietf.org>; Mon,  9 Nov 2015 09:52:55 -0800 (PST)
Received: from localhost (unknown [213.136.39.104]) by mail.tail-f.com (Postfix) with ESMTPSA id 392A91AE09BE; Mon,  9 Nov 2015 18:52:54 +0100 (CET)
Date: Mon, 09 Nov 2015 18:53:16 +0100 (CET)
Message-Id: <20151109.185316.380457010169005307.mbj@tail-f.com>
To: lhotka@nic.cz
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <m24mgv31n5.fsf@birdie.labs.nic.cz>
References: <20151105090846.GA99478@elstar.local> <20151105.182045.402528442272338514.mbj@tail-f.com> <m24mgv31n5.fsf@birdie.labs.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=us-ascii
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/GcHXziyZdAKNm376pxMuv-26igo>
Cc: netmod@ietf.org
Subject: Re: [netmod] yang 1.1 last call comment resolution
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 09 Nov 2015 17:52:57 -0000

Ladislav Lhotka <lhotka@nic.cz> wrote:
> Martin Bjorklund <mbj@tail-f.com> writes:
> 
> > Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote:
> >> - New feature: non-unique config false leaf-lists
> >> 
> >>   It is unclear where we are with this. While there was some
> >>   discussion at IETF 94, there was no clear indication whether this
> >>   change should be done or not. More input would be welcome.
> >
> > I think there are two options:
> >
> >   A.  Allow non-config leaf-lists to have duplicate values.
> >
> >   B.  Add a new keyword "allow-duplicates true|false" to leaf-list.
> >       It is an error if allow-duplicates is true in config.
> >
> > B feels more correct to me, but A is obviously simpler.
> 
> I don't have a strong preference here. Could A cause any problems?

Well, I agree with what Andy wrote:

  It seems like a data model property, not a server implementation
  choice.

> >> - Old function: make auto-delete for choice and when non-NETCONF specific
> >> 
> >>   Revision -08 of YANG 1.1 defines auto-deletion as a property of the
> >>   NETCONF edit-config operation and the issue is whether this
> >>   auto-deletion behaviour is a NETCONF specific edit-config property
> >>   or a general YANG datastore validation property that equally applies
> >>   to RESTCONF, COMI, ...
> >> 
> >>   It is unclear where we are with this. More input would be welcome.
> >
> > I think it would be very confusing if e.g. RESTCONF behaved
> > differently than NETCONF.  However, I can see how it might make sense
> 
> I don't know whether auto-deletion is really the preferred choice of
> every NETCONF/RESTCONF user but I think it would be countre-productive
> to require all protocols that might use YANG to apply this behaviour.
> 
> > for a server on a constrained device to not do auto-delete - but OTOH
> > such a server probably don't do "must" and "when" checking at all.
> 
> Why not? For example, such an implementation can do this validation with
> DSDL schemas using off-the shelf RELAX NG and XSLT implementations.

If a device can run off-the shelf XLST then it is not very
constrained, and it can probably run any of the off-the shelf NETCONF
servers that already handle this.


/martin


From nobody Mon Nov  9 10:27: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 2A8261B80BD for <netmod@ietfa.amsl.com>; Mon,  9 Nov 2015 10:27:00 -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 tlXxcjYdW4fV for <netmod@ietfa.amsl.com>; Mon,  9 Nov 2015 10:26:58 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id 298D91B80BC for <netmod@ietf.org>; Mon,  9 Nov 2015 10:26:58 -0800 (PST)
Received: from localhost (unknown [213.136.39.104]) by mail.tail-f.com (Postfix) with ESMTPSA id 241AE1AE09BE; Mon,  9 Nov 2015 19:26:57 +0100 (CET)
Date: Mon, 09 Nov 2015 19:27:19 +0100 (CET)
Message-Id: <20151109.192719.1412716226046918669.mbj@tail-f.com>
To: andy@yumaworks.com
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <CABCOCHQeZqOXg=NON5hrU56vz0grF0aA0FKPsh5tc=kDX9u5bw@mail.gmail.com>
References: <20151105090846.GA99478@elstar.local> <CABCOCHQeZqOXg=NON5hrU56vz0grF0aA0FKPsh5tc=kDX9u5bw@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/0-4FvJTIH2TKg5ci137GkTZuVys>
Cc: netmod@ietf.org
Subject: Re: [netmod] yang 1.1 last call comment resolution
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 09 Nov 2015 18:27:00 -0000

Andy Bierman <andy@yumaworks.com> wrote:
> On Thu, Nov 5, 2015 at 1:08 AM, Juergen Schoenwaelder <
> j.schoenwaelder@jacobs-university.de> wrote:
> 
> > Hi,
> >
> > given the discussion at IETF 94, here is what I think where we are
> > with resolving the last call comments (I am following the structure of
> > Martin's IETF 94 slides). It would be nice to close the remining open
> > ones as soon as possible so that Martin can produce -09.  Once we have
> > -09, we will have a second WG last call so that people can do a final
> > check whether the edits from -07 to -09 address all the comments that
> > were raised in a satisfying manner.
> >
> > If you disagree with any of the following, please raise your voice.
> >
> > - New function: if-feature and default
> >
> >   I think the resolution is to disallow default values that are
> >   depending on a feature.
> >
> > - New function: accessible tree in when
> >
> >   I think the resolution is to adopt the proposed solution.
> >
> 
> 
> 
> I strongly object to the change to XPath accessible tree for RPC and
> notifications.
> (page 44 - 45, bullets 3 - 5) State data MUST NOT be included in the
> accessible tree.

This is issue Y04.  I assume you prefer Y04-04.  I can live with this,
even though it would be odd that the accessible tree for leafref and
must are different.

> E.g., rpc/input went from the <rpc> message itself to <rpc> + running +
> state.
> It should be just <rpc> + running.  It is a massive change to include state
> data
> in the processing of RPC or notifications. The server has to implement the
> :xpath capability in NETCONF.

No it doesn't.  Just like it doesn't have to implement :xpath in order
to support a normal "must" on a config node.

> I strongly object to the text that requires the accessible tree to be
> modified for processing
> when-stmts  (3 bullets in 7.21.5).  This requires massive and complicated
> implementation changes.   IMO the most interoperable thing to do is just run
> the specified XPath expression on the existing conceptual document.
> 
> If people use bad XPath then maybe bad things happen.  YANG Doctors
> will prevent that in IETF modules.  In reality, XPath that doesn't work
> usually
> gets fixed at some point.

I obviously prefer the current text, but I can live with this also,
except that at least we must state that a dummy node gets created in
order to have a context node.  We should be aware that the current
text defines a deterministic behavior, and if we change it this will
remain an unclear situation.

> > - Old function: augment mandatory nodes
> >
> >   I think this is moving towards relaxing the MUST NOT rules and
> >   to allow mandatory nodes in 'safe' augmentations.
> >
> 
> There was some discussion about moving the 6087bis text I wrote into
> YANG 1.1 to make it normative. OK with me.
> 
> 
> 
> >
> > - Old function: unique module names
> >
> >   I think the resolution is to adopt the compromise solution.
> >
> 
> which was what?

The (revised) proposal is:

  The names of all standard modules and submodules MUST be unique.
  Developers of enterprise modules are RECOMMENDED to choose names for
  their modules that will have a low probability of colliding with
  standard or other enterprise modules, e.g., by using the enterprise
  or organization name as a prefix for the module name.  Witin a
  server, all module names MUST be unique.



/martin

> > - New feature: non-unique config false leaf-lists
> >
> >   It is unclear where we are with this. While there was some
> >   discussion at IETF 94, there was no clear indication whether this
> >   change should be done or not. More input would be welcome.
> >
> >
> 
> OK with just allowing this without a new keyword.
> 
> 
> 
> > - New feature: keyless lists and non-unique leaf-lists in config
> >
> >   This seems to be dead.
> >
> 
> good
> 
> 
> >
> > - New feature: change semantics of the choice and when statements
> >
> >   This seems to be dead.
> >
> 
> good
> 
> 
> >
> > - Old function: make auto-delete for choice and when non-NETCONF specific
> >
> >   Revision -08 of YANG 1.1 defines auto-deletion as a property of the
> >   NETCONF edit-config operation and the issue is whether this
> >   auto-deletion behaviour is a NETCONF specific edit-config property
> >   or a general YANG datastore validation property that equally applies
> >   to RESTCONF, COMI, ...
> >
> >
> 
> good - YANG should describe what happens inside a conceptual datastore
> 
> IMO it could be more clear that this auto-deletion applies to every
> datastore and is
> not really considered validation.  If so, then it would not be instant,
> but rather enforced only on the 'running' config.
> 
> It is really if-feature on steroids. ;-)
> 
> (No I do not have suggested text right now to make this more clear)
> 
> 
> 
> 
> >   It is unclear where we are with this. More input would be welcome.
> >
> > /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 Nov  9 10:37:56 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 3FCB41B8111 for <netmod@ietfa.amsl.com>; Mon,  9 Nov 2015 10:37:55 -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 7TWLYPjxWmeM for <netmod@ietfa.amsl.com>; Mon,  9 Nov 2015 10:37:54 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id 66BD31B8114 for <netmod@ietf.org>; Mon,  9 Nov 2015 10:37:46 -0800 (PST)
Received: from localhost (unknown [213.136.39.104]) by mail.tail-f.com (Postfix) with ESMTPSA id AEEB51AE09BE for <netmod@ietf.org>; Mon,  9 Nov 2015 19:37:45 +0100 (CET)
Date: Mon, 09 Nov 2015 19:38:08 +0100 (CET)
Message-Id: <20151109.193808.1563090591494288561.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/tofwyFfT6uM74D_qC07vjjwLuIw>
Subject: [netmod] Y10 clarification
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 09 Nov 2015 18:37:55 -0000

Hi,

I implemented most of the 1.1 features that affect the compiler in
pyang on the flight back from Yokohama.  (if you have 1.1 modules, I'd
appreciate if you could try it out).

In doing this, I realized that I forgot one part of Y10 - "allow
restrictions on enumerations".  If we allow:

    typedef foo2 {
      type enumeration {
        enum a;
        enum b;
      }
    }
    typedef bar2 {
      type foo2 {
        enum a;
      }
    }

we should also allow:

    typedef foo2 {
      type bits {
        bit a;
        bit b;
      }
    }
    typedef bar2 {
      type foo2 {
        bit a;
      }
    }

It is briefly mentioned in the description of Y10.


Comments?


/martin


From nobody Mon Nov  9 11:24:14 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 210391B8229 for <netmod@ietfa.amsl.com>; Mon,  9 Nov 2015 11:24:13 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level: 
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=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 ZcffjZFUxFsK for <netmod@ietfa.amsl.com>; Mon,  9 Nov 2015 11:24:11 -0800 (PST)
Received: from mail-lb0-x22b.google.com (mail-lb0-x22b.google.com [IPv6:2a00:1450:4010:c04::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 EE4AB1B8227 for <netmod@ietf.org>; Mon,  9 Nov 2015 11:24:10 -0800 (PST)
Received: by lbblt2 with SMTP id lt2so87286026lbb.3 for <netmod@ietf.org>; Mon, 09 Nov 2015 11:24:09 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks_com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=G9hbt/czFJ+d/PKxTNAzPFr/k7YYNA5TV3vRcabGMg4=; b=Y+HMqZ4O4Oje8XC32f4lwgvFky84b0rc4XxdSKDgFY0bMsEUbFB3Yv2nXwVJWO3G3U /Xth8bvQMshycAdEudXuAXn6jms1cDMN6ABZiRID1Ifud8j4coTe4ZBx5C3VOlje1oSO gF7VlAeSfqJPtwADumwxq5E3DHJZ6ZNLxB2dKQMmsZgX1ZmUrHqmp5qDygyFuNw+ArAC 0J1RRRhJk5hQWMf3nNmqigbM2p8hUgT5lndTMAZEF+l9fnJk0oLAI/If8+pEyhrL0GUx rVh+HucEDnQWMqHzUO8a6OGISbYk83i28kWW23uCLvcMEbsMahURRQiJQzYrOblRQZfd sNDQ==
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=G9hbt/czFJ+d/PKxTNAzPFr/k7YYNA5TV3vRcabGMg4=; b=BuKQE7uObuTPCrVT7FOJqVJLYLuFJbfmoKZp/tiAqk3V58+M6D52QVB2pmfmv1xGkM 8KR+H23RjtZ1M6x+5Db+wBmbO3t0fmWIvXEY/Dn6/JiWwPV8VKzm8FPse1lgK3DY/6Vt 1E2LkJSIkPUBNEFmd5yG22AGUsPKilJwNQS/OEm4sW6De6NExV2ZDIKlZm/SIk9ynRyZ pAXTIOARfcBxUQ2YH5TDLJW8buWkWIbCDtvlQLKswGukM+X5RE8P/vhdpuvldmLtcAvA 6Z2GheG1IjZoen919xa7ZECqxE1SsnNq1l4BZM1MVoI/l8dR2JUrDT0OVO3Qx6F82img 8PMg==
X-Gm-Message-State: ALoCoQkYocrgd2p5joaXIpxjvUBgC7oXBHIbYe08lQR1IKoxo+xwRzXxpsrzES71ZOM52XzZnCEj
MIME-Version: 1.0
X-Received: by 10.112.135.136 with SMTP id ps8mr14483381lbb.38.1447097048916;  Mon, 09 Nov 2015 11:24:08 -0800 (PST)
Received: by 10.112.144.106 with HTTP; Mon, 9 Nov 2015 11:24:08 -0800 (PST)
In-Reply-To: <20151109.193808.1563090591494288561.mbj@tail-f.com>
References: <20151109.193808.1563090591494288561.mbj@tail-f.com>
Date: Mon, 9 Nov 2015 11:24:08 -0800
Message-ID: <CABCOCHTL4ukBzdJCDQZ2Z9ubXxHeJoM7qt75poU7Bix4_woOzw@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Martin Bjorklund <mbj@tail-f.com>
Content-Type: multipart/alternative; boundary=089e011607128e820c05242089a9
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/iwswaLV3H0PvmvnwcPYaNiADnGc>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] Y10 clarification
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 09 Nov 2015 19:24:13 -0000

--089e011607128e820c05242089a9
Content-Type: text/plain; charset=UTF-8

On Mon, Nov 9, 2015 at 10:38 AM, Martin Bjorklund <mbj@tail-f.com> wrote:

> Hi,
>
> I implemented most of the 1.1 features that affect the compiler in
> pyang on the flight back from Yokohama.  (if you have 1.1 modules, I'd
> appreciate if you could try it out).
>
> In doing this, I realized that I forgot one part of Y10 - "allow
> restrictions on enumerations".  If we allow:
>
>     typedef foo2 {
>       type enumeration {
>         enum a;
>         enum b;
>       }
>     }
>     typedef bar2 {
>       type foo2 {
>         enum a;
>       }
>     }
>
> we should also allow:
>
>     typedef foo2 {
>       type bits {
>         bit a;
>         bit b;
>       }
>     }
>     typedef bar2 {
>       type foo2 {
>         bit a;
>       }
>     }
>
> It is briefly mentioned in the description of Y10.
>
>
> Comments?
>
>
Yet more complexity without any real use-cases?
How does auto-numbering work in both cases?


    typedef foo2 {
      type enumeration {
        enum a;
        enum b;
      }
    }

    typedef foo3 {
      type foo2 {
        enum b;
      }
    }

    typedef bar1 {
      type enumeration {
        enum b;
      }
    }


What is the auto-numbering of enum 'b' in type foo3?
What value does type foo3 have over bar1?



> /martin
>


Andy


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

--089e011607128e820c05242089a9
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Mon, Nov 9, 2015 at 10:38 AM, Martin Bjorklund <span dir=3D"ltr">&lt=
;<a href=3D"mailto:mbj@tail-f.com" target=3D"_blank">mbj@tail-f.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;padding-left:1ex">Hi,<br>
<br>
I implemented most of the 1.1 features that affect the compiler in<br>
pyang on the flight back from Yokohama.=C2=A0 (if you have 1.1 modules, I&#=
39;d<br>
appreciate if you could try it out).<br>
<br>
In doing this, I realized that I forgot one part of Y10 - &quot;allow<br>
restrictions on enumerations&quot;.=C2=A0 If we allow:<br>
<br>
=C2=A0 =C2=A0 typedef foo2 {<br>
=C2=A0 =C2=A0 =C2=A0 type enumeration {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 enum a;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 enum b;<br>
=C2=A0 =C2=A0 =C2=A0 }<br>
=C2=A0 =C2=A0 }<br>
=C2=A0 =C2=A0 typedef bar2 {<br>
=C2=A0 =C2=A0 =C2=A0 type foo2 {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 enum a;<br>
=C2=A0 =C2=A0 =C2=A0 }<br>
=C2=A0 =C2=A0 }<br>
<br>
we should also allow:<br>
<br>
=C2=A0 =C2=A0 typedef foo2 {<br>
=C2=A0 =C2=A0 =C2=A0 type bits {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 bit a;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 bit b;<br>
=C2=A0 =C2=A0 =C2=A0 }<br>
=C2=A0 =C2=A0 }<br>
=C2=A0 =C2=A0 typedef bar2 {<br>
=C2=A0 =C2=A0 =C2=A0 type foo2 {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 bit a;<br>
=C2=A0 =C2=A0 =C2=A0 }<br>
=C2=A0 =C2=A0 }<br>
<br>
It is briefly mentioned in the description of Y10.<br>
<br>
<br>
Comments?<br>
<br></blockquote><div><br></div><div>Yet more complexity without any real u=
se-cases?</div><div>How does auto-numbering work in both cases?<br></div><d=
iv><br></div><div>=C2=A0</div><div>=C2=A0 =C2=A0 typedef foo2 {<br>=C2=A0 =
=C2=A0 =C2=A0 type enumeration {<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 enum a;<br>=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 enum b;<br>=C2=A0 =C2=A0 =C2=A0 }<br>=C2=A0 =C2=
=A0 }<br></div><div><br></div><div>=C2=A0 =C2=A0 typedef foo3 {<br>=C2=A0 =
=C2=A0 =C2=A0 type foo2 {<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 enum b;<br>=C2=A0 =
=C2=A0 =C2=A0 }<br>=C2=A0 =C2=A0 }<br></div><div><br></div><div>=C2=A0 =C2=
=A0 typedef bar1 {<br>=C2=A0 =C2=A0 =C2=A0 type enumeration {<br>=C2=A0 =C2=
=A0 =C2=A0 =C2=A0 enum b;<br>=C2=A0 =C2=A0 =C2=A0 }<br>=C2=A0 =C2=A0 }<br><=
/div><div><br></div><div><br></div><div>What is the auto-numbering of enum =
&#39;b&#39; in type foo3?</div><div>What value does type foo3 have over bar=
1?</div><div><br></div><div><br></div><blockquote class=3D"gmail_quote" sty=
le=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>
/martin<br></blockquote><div><br></div><div><br></div><div>Andy</div><div>=
=C2=A0</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-s=
tyle:solid;padding-left:1ex">
<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" rel=3D"noreferrer"=
 target=3D"_blank">https://www.ietf.org/mailman/listinfo/netmod</a><br>
</blockquote></div><br></div></div>

--089e011607128e820c05242089a9--


From nobody Mon Nov  9 11:55:50 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 EE4C11B82D2 for <netmod@ietfa.amsl.com>; Mon,  9 Nov 2015 11:55:48 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level: 
X-Spam-Status: No, score=-2.7 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_LOW=-0.7] 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 DGFY6QqkVrEL for <netmod@ietfa.amsl.com>; Mon,  9 Nov 2015 11:55:47 -0800 (PST)
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 885431B82D1 for <netmod@ietf.org>; Mon,  9 Nov 2015 11:55:47 -0800 (PST)
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=dk20050327; d=mindspring.com; b=k3K/6VlZteOuAGIsF9gtpPZetzbE1CaBmzsI0Mdj1NXtZDDMCkWYGzirgnYvu1jD; 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.36] (helo=elwamui-hybrid.atl.sa.earthlink.net) by elasmtp-curtail.atl.sa.earthlink.net with esmtpa (Exim 4.67) (envelope-from <randy_presuhn@mindspring.com>) id 1ZvsXV-0003Ua-R8 for netmod@ietf.org; Mon, 09 Nov 2015 14:55:41 -0500
Received: from 76.254.49.208 by webmail.earthlink.net with HTTP; Mon, 9 Nov 2015 14:55:41 -0500
Message-ID: <4291534.1447098941858.JavaMail.root@elwamui-hybrid.atl.sa.earthlink.net>
Date: Mon, 9 Nov 2015 11:55:41 -0800 (GMT-08: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: 7bit
X-Mailer: EarthLink Zoo Mail 1.0
X-ELNK-Trace: 4488c18417c9426da92b9037bc8bcf44d4c20f6b8d69d88874d3f0892ff6d3ed5b830dbf72fc5faaed7f8aa2bf11d62f350badd9bab72f9c350badd9bab72f9c
X-Originating-IP: 209.86.224.36
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/FC89yn-27fJSvH6DIqTNsUj1t20>
Subject: Re: [netmod] yang 1.1 last call comment resolution
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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 09 Nov 2015 19:55:49 -0000

Hi -

>From: Martin Bjorklund <mbj@tail-f.com>
>Sent: Nov 9, 2015 10:27 AM
>To: andy@yumaworks.com
>Cc: netmod@ietf.org
>Subject: Re: [netmod] yang 1.1 last call comment resolution
...
>> > - Old function: unique module names
>> >
>> >   I think the resolution is to adopt the compromise solution.
>> >
>> 
>> which was what?
>
>The (revised) proposal is:
>
>  The names of all standard modules and submodules MUST be unique.
>  Developers of enterprise modules are RECOMMENDED to choose names for
>  their modules that will have a low probability of colliding with
>  standard or other enterprise modules, e.g., by using the enterprise
>  or organization name as a prefix for the module name.  Witin a
>  server, all module names MUST be unique.

This doesn't make sense from the perspective of the RFC 2119
guidelines.  The choice between MUST and RECOMMENDED is effectively
governed by the question "would failure to comply with this
constraint prevent successful interoperation".  It's *not* a
question of whether the modules are "standard" (does that include
non-IETF efforts?) or "enterprise".  Either they're both "MUST"
or they're both "SHOULD/RECOMMENDED".

Randy


From nobody Mon Nov  9 12:18:47 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 D58571B8364 for <netmod@ietfa.amsl.com>; Mon,  9 Nov 2015 12:18:45 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level: 
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=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 WTXqwjlFXIta for <netmod@ietfa.amsl.com>; Mon,  9 Nov 2015 12:18:44 -0800 (PST)
Received: from mail-lb0-x22a.google.com (mail-lb0-x22a.google.com [IPv6:2a00:1450:4010:c04::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 D2A701B8362 for <netmod@ietf.org>; Mon,  9 Nov 2015 12:18:43 -0800 (PST)
Received: by lbblt2 with SMTP id lt2so88332842lbb.3 for <netmod@ietf.org>; Mon, 09 Nov 2015 12:18:42 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks_com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=jUMn/TunQQsIOmis7Kkq0EdkX5z1Ac104ss44OGm6FY=; b=inderOIBHqvU7e8CzRvVY5pklVNMdDqEhm8XEvO88WcBbtbb+AZWjnOlPESD7ylAWy JailBHWX5ZqtDpWerBojS9hAMdTa8G7hy19imbo4/QGd3xhmRBY5cLKUCgmPC5GfS0+Z X0v7EcABb6Ez3m+hehJ74HLThQ6SAb17q3f0JjByPeG7ofCBHOlBM0aV/UcvHkLvd5XR lra/uROyWW8p1mSrsFr2453g59JmVAeLvbYH01/F6DB0Nv/3++VsO0r82BnkyBcn9VHW CyLnCHed38kOetPYLpQzirvc+JNP9o2KOEyI0RMoMnFhJqctRsg+KTP9Wf7gFFOXHp7I oZnQ==
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=jUMn/TunQQsIOmis7Kkq0EdkX5z1Ac104ss44OGm6FY=; b=mqvkiLX/qApXa7t/89IsuB87Tlq6UAbyYxIu83tZDHjOpf655SeRbR73bjNzyQK/cJ vSjyTpmnQAOQmCe6nZHom2k10oLjBTIBggIwY9U7dGy2zYvBsoiBKr3eeActKkpF648A VF3rzKsVyvKA5U9qWXLh17tWQyXBn7ByxKiKIm4WPcMCqPkxZnFfxrCFSRzSlj32pSh+ IoKnOllYemDOV8u/tybYza/ZEA7PIWMikZy1e0AhwiKD35y3dVpDt8mR2TOp+VeJ+BS3 kyvwBMLdMgxNGk5g7EXnxcgwwWsCwORAmHD1iBvON7F96fataiVbk2XdFOd3E/lwXGa4 OB4Q==
X-Gm-Message-State: ALoCoQkLt27zHfDVbv5G9KsKYWg3D/nk1IuBIx5xfSuKJu8TNt+bW3/g/dTvz0p9Yg1ncTButgL+
MIME-Version: 1.0
X-Received: by 10.112.158.98 with SMTP id wt2mr14585642lbb.33.1447100321909; Mon, 09 Nov 2015 12:18:41 -0800 (PST)
Received: by 10.112.144.106 with HTTP; Mon, 9 Nov 2015 12:18:41 -0800 (PST)
In-Reply-To: <4291534.1447098941858.JavaMail.root@elwamui-hybrid.atl.sa.earthlink.net>
References: <4291534.1447098941858.JavaMail.root@elwamui-hybrid.atl.sa.earthlink.net>
Date: Mon, 9 Nov 2015 12:18:41 -0800
Message-ID: <CABCOCHTMCSmy+kcQxOERBAZ-7Otm4unfwncSxybHwKNu8xZwHw@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Randy Presuhn <randy_presuhn@mindspring.com>
Content-Type: multipart/alternative; boundary=001a11c34384a46d430524214cc6
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/WiODUMRHjQC910FbT8NAyhY7oTU>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] yang 1.1 last call comment resolution
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 09 Nov 2015 20:18:46 -0000

--001a11c34384a46d430524214cc6
Content-Type: text/plain; charset=UTF-8

On Mon, Nov 9, 2015 at 11:55 AM, Randy Presuhn <randy_presuhn@mindspring.com
> wrote:

> Hi -
>
> >From: Martin Bjorklund <mbj@tail-f.com>
> >Sent: Nov 9, 2015 10:27 AM
> >To: andy@yumaworks.com
> >Cc: netmod@ietf.org
> >Subject: Re: [netmod] yang 1.1 last call comment resolution
> ...
> >> > - Old function: unique module names
> >> >
> >> >   I think the resolution is to adopt the compromise solution.
> >> >
> >>
> >> which was what?
> >
> >The (revised) proposal is:
> >
> >  The names of all standard modules and submodules MUST be unique.
> >  Developers of enterprise modules are RECOMMENDED to choose names for
> >  their modules that will have a low probability of colliding with
> >  standard or other enterprise modules, e.g., by using the enterprise
> >  or organization name as a prefix for the module name.  Witin a
> >  server, all module names MUST be unique.
>
> This doesn't make sense from the perspective of the RFC 2119
> guidelines.  The choice between MUST and RECOMMENDED is effectively
> governed by the question "would failure to comply with this
> constraint prevent successful interoperation".  It's *not* a
> question of whether the modules are "standard" (does that include
> non-IETF efforts?) or "enterprise".  Either they're both "MUST"
> or they're both "SHOULD/RECOMMENDED".
>
>
I agree the first sentence is odd.
It does not include Experimental modules that bypass the WG process,
like the time-capability module.

NEW:

    Developers of YANG modules are RECOMMENDED to choose names for
    their modules that will have a low probability of colliding with
    standard or other enterprise modules, e.g., by using the enterprise
    or organization name as a prefix for the module name.  Within a
    server, all module names MUST be unique.


The YANG guidelines will say that any YANG module in
an RFC MUST have uniqueu module and submodule names.



 Randy
>


Andy


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

--001a11c34384a46d430524214cc6
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Mon, Nov 9, 2015 at 11:55 AM, Randy Presuhn <span dir=3D"ltr">&lt;<a=
 href=3D"mailto:randy_presuhn@mindspring.com" target=3D"_blank">randy_presu=
hn@mindspring.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;padding-left:1ex">Hi -<br>
<br>
&gt;From: Martin Bjorklund &lt;<a href=3D"mailto:mbj@tail-f.com">mbj@tail-f=
.com</a>&gt;<br>
&gt;Sent: Nov 9, 2015 10:27 AM<br>
&gt;To: <a href=3D"mailto:andy@yumaworks.com">andy@yumaworks.com</a><br>
&gt;Cc: <a href=3D"mailto:netmod@ietf.org">netmod@ietf.org</a><br>
&gt;Subject: Re: [netmod] yang 1.1 last call comment resolution<br>
...<br>
&gt;&gt; &gt; - Old function: unique module names<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;=C2=A0 =C2=A0I think the resolution is to adopt the compromise=
 solution.<br>
&gt;&gt; &gt;<br>
&gt;&gt;<br>
&gt;&gt; which was what?<br>
&gt;<br>
&gt;The (revised) proposal is:<br>
&gt;<br>
&gt;=C2=A0 The names of all standard modules and submodules MUST be unique.=
<br>
&gt;=C2=A0 Developers of enterprise modules are RECOMMENDED to choose names=
 for<br>
&gt;=C2=A0 their modules that will have a low probability of colliding with=
<br>
&gt;=C2=A0 standard or other enterprise modules, e.g., by using the enterpr=
ise<br>
&gt;=C2=A0 or organization name as a prefix for the module name.=C2=A0 Witi=
n a<br>
&gt;=C2=A0 server, all module names MUST be unique.<br>
<br>
This doesn&#39;t make sense from the perspective of the RFC 2119<br>
guidelines.=C2=A0 The choice between MUST and RECOMMENDED is effectively<br=
>
governed by the question &quot;would failure to comply with this<br>
constraint prevent successful interoperation&quot;.=C2=A0 It&#39;s *not* a<=
br>
question of whether the modules are &quot;standard&quot; (does that include=
<br>
non-IETF efforts?) or &quot;enterprise&quot;.=C2=A0 Either they&#39;re both=
 &quot;MUST&quot;<br>
or they&#39;re both &quot;SHOULD/RECOMMENDED&quot;.<br>
<br></blockquote><div><br></div><div>I agree the first sentence is odd.</di=
v><div>It does not include Experimental modules that bypass the WG process,=
</div><div>like the time-capability module.</div><div><br></div><div>NEW:</=
div><div><br></div>=C2=A0 =C2=A0 Developers of YANG modules are RECOMMENDED=
 to choose names for<br>=C2=A0 =C2=A0 their modules that will have a low pr=
obability of colliding with<br>=C2=A0 =C2=A0 standard or other enterprise m=
odules, e.g., by using the enterprise<br>=C2=A0 =C2=A0 or organization name=
 as a prefix for the module name.=C2=A0 Within a<br>=C2=A0 =C2=A0 server, a=
ll module names MUST be unique.</div><div class=3D"gmail_quote"><br></div><=
div class=3D"gmail_quote"><br></div><div class=3D"gmail_quote">The YANG gui=
delines will say that any YANG module in</div><div class=3D"gmail_quote">an=
 RFC MUST have uniqueu module and submodule names.</div><div class=3D"gmail=
_quote"><br></div><div class=3D"gmail_quote"><br></div><div class=3D"gmail_=
quote"><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-st=
yle:solid;padding-left:1ex">=C2=A0Randy<br></blockquote><div><br></div><div=
><br></div><div>Andy</div><div>=C2=A0</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>
_______________________________________________<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" rel=3D"noreferrer"=
 target=3D"_blank">https://www.ietf.org/mailman/listinfo/netmod</a><br>
</blockquote></div><br></div></div>

--001a11c34384a46d430524214cc6--


From nobody Mon Nov  9 13:10:51 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 8B5301B8094 for <netmod@ietfa.amsl.com>; Mon,  9 Nov 2015 13:10:50 -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 THog_hGXDzLd for <netmod@ietfa.amsl.com>; Mon,  9 Nov 2015 13:10:49 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id 1E6AE1B8084 for <netmod@ietf.org>; Mon,  9 Nov 2015 13:10:49 -0800 (PST)
Received: from localhost (unknown [213.136.39.104]) by mail.tail-f.com (Postfix) with ESMTPSA id C00E01AE09BE; Mon,  9 Nov 2015 22:10:46 +0100 (CET)
Date: Mon, 09 Nov 2015 22:11:10 +0100 (CET)
Message-Id: <20151109.221110.428739028044980944.mbj@tail-f.com>
To: andy@yumaworks.com
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <CABCOCHTL4ukBzdJCDQZ2Z9ubXxHeJoM7qt75poU7Bix4_woOzw@mail.gmail.com>
References: <20151109.193808.1563090591494288561.mbj@tail-f.com> <CABCOCHTL4ukBzdJCDQZ2Z9ubXxHeJoM7qt75poU7Bix4_woOzw@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/yqwy-xd7NJwLFdJes6z_c-Ziwds>
Cc: netmod@ietf.org
Subject: Re: [netmod] Y10 clarification
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 09 Nov 2015 21:10:50 -0000

Andy Bierman <andy@yumaworks.com> wrote:
> On Mon, Nov 9, 2015 at 10:38 AM, Martin Bjorklund <mbj@tail-f.com> wrote:
> 
> > Hi,
> >
> > I implemented most of the 1.1 features that affect the compiler in
> > pyang on the flight back from Yokohama.  (if you have 1.1 modules, I'd
> > appreciate if you could try it out).
> >
> > In doing this, I realized that I forgot one part of Y10 - "allow
> > restrictions on enumerations".  If we allow:
> >
> >     typedef foo2 {
> >       type enumeration {
> >         enum a;
> >         enum b;
> >       }
> >     }
> >     typedef bar2 {
> >       type foo2 {
> >         enum a;
> >       }
> >     }
> >
> > we should also allow:
> >
> >     typedef foo2 {
> >       type bits {
> >         bit a;
> >         bit b;
> >       }
> >     }
> >     typedef bar2 {
> >       type foo2 {
> >         bit a;
> >       }
> >     }
> >
> > It is briefly mentioned in the description of Y10.
> >
> >
> > Comments?
> >
> >
> Yet more complexity without any real use-cases?

It is a matter of removing CLRs and inconsistencies.

> How does auto-numbering work in both cases?
> 
> 
>     typedef foo2 {
>       type enumeration {
>         enum a;
>         enum b;
>       }
>     }
> 
>     typedef foo3 {
>       type foo2 {
>         enum b;
>       }
>     }
> 
>     typedef bar1 {
>       type enumeration {
>         enum b;
>       }
>     }
> 
> 
> What is the auto-numbering of enum 'b' in type foo3?

There is none.  The text says:

  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.


> What value does type foo3 have over bar1?

Unless the type has some semantics, there is none.   But when the type
has some semantics, the possibility to restrict an existing type is
useful.  If it not useful for enumerations and bits, why should we
have it for strings and ints, for example.


/martin


From nobody Mon Nov  9 13:11: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 D15781B8477 for <netmod@ietfa.amsl.com>; Mon,  9 Nov 2015 13:11:53 -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 W6CHrgBvQ4Ae for <netmod@ietfa.amsl.com>; Mon,  9 Nov 2015 13:11:52 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id 7FC651B844B for <netmod@ietf.org>; Mon,  9 Nov 2015 13:11:52 -0800 (PST)
Received: from localhost (unknown [213.136.39.104]) by mail.tail-f.com (Postfix) with ESMTPSA id C0CD31AE09BE; Mon,  9 Nov 2015 22:11:51 +0100 (CET)
Date: Mon, 09 Nov 2015 22:12:15 +0100 (CET)
Message-Id: <20151109.221215.392906858165892929.mbj@tail-f.com>
To: andy@yumaworks.com
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <CABCOCHTMCSmy+kcQxOERBAZ-7Otm4unfwncSxybHwKNu8xZwHw@mail.gmail.com>
References: <4291534.1447098941858.JavaMail.root@elwamui-hybrid.atl.sa.earthlink.net> <CABCOCHTMCSmy+kcQxOERBAZ-7Otm4unfwncSxybHwKNu8xZwHw@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/w32rOATSJk6uQl5WCIODbJvr2mg>
Cc: randy_presuhn@mindspring.com, netmod@ietf.org
Subject: Re: [netmod] yang 1.1 last call comment resolution
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 09 Nov 2015 21:11:54 -0000

Andy Bierman <andy@yumaworks.com> wrote:
> On Mon, Nov 9, 2015 at 11:55 AM, Randy Presuhn <randy_presuhn@mindspring.com
> > wrote:
> 
> > Hi -
> >
> > >From: Martin Bjorklund <mbj@tail-f.com>
> > >Sent: Nov 9, 2015 10:27 AM
> > >To: andy@yumaworks.com
> > >Cc: netmod@ietf.org
> > >Subject: Re: [netmod] yang 1.1 last call comment resolution
> > ...
> > >> > - Old function: unique module names
> > >> >
> > >> >   I think the resolution is to adopt the compromise solution.
> > >> >
> > >>
> > >> which was what?
> > >
> > >The (revised) proposal is:
> > >
> > >  The names of all standard modules and submodules MUST be unique.
> > >  Developers of enterprise modules are RECOMMENDED to choose names for
> > >  their modules that will have a low probability of colliding with
> > >  standard or other enterprise modules, e.g., by using the enterprise
> > >  or organization name as a prefix for the module name.  Witin a
> > >  server, all module names MUST be unique.
> >
> > This doesn't make sense from the perspective of the RFC 2119
> > guidelines.  The choice between MUST and RECOMMENDED is effectively
> > governed by the question "would failure to comply with this
> > constraint prevent successful interoperation".  It's *not* a
> > question of whether the modules are "standard" (does that include
> > non-IETF efforts?) or "enterprise".  Either they're both "MUST"
> > or they're both "SHOULD/RECOMMENDED".
> >
> >
> I agree the first sentence is odd.
> It does not include Experimental modules that bypass the WG process,
> like the time-capability module.
> 
> NEW:
> 
>     Developers of YANG modules are RECOMMENDED to choose names for
>     their modules that will have a low probability of colliding with
>     standard or other enterprise modules, e.g., by using the enterprise
>     or organization name as a prefix for the module name.  Within a
>     server, all module names MUST be unique.

Ok with me.

> The YANG guidelines will say that any YANG module in
> an RFC MUST have uniqueu module and submodule names.

Ok.


/martin


From nobody Mon Nov  9 13: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 53CED1B84AC for <netmod@ietfa.amsl.com>; Mon,  9 Nov 2015 13:21:20 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level: 
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=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 nLC_u63a_F-P for <netmod@ietfa.amsl.com>; Mon,  9 Nov 2015 13:21:18 -0800 (PST)
Received: from mail-lf0-x22c.google.com (mail-lf0-x22c.google.com [IPv6:2a00:1450:4010:c07::22c]) (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 52BDF1B8430 for <netmod@ietf.org>; Mon,  9 Nov 2015 13:21:18 -0800 (PST)
Received: by lfs39 with SMTP id 39so74959150lfs.3 for <netmod@ietf.org>; Mon, 09 Nov 2015 13:21:16 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks_com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=YXAxyIUFJPi0OU4NxzDbJDJ1jdhMtl5K92ezireZBpY=; b=bC1Wmh6CBrMtkkHXfF8EIMvRqTi95R7QRtOtsedNm6gmHIKSB3+oLQsxWo5zj1PxEP LTgd0SfhH7YvUN+lIFrjkn6SV6oaclL2QaHbEJe3rVYsfKWShHx+g9an5c4npLP7n3uM vOuNyzKjvPpDzWAAt4gtuBgVLTDHqEzuk4wj5VhYcbfYaHixpXe6/9g/ts/eaa4ef7cV quEN6IlE2VNxyn+hO3VKfqE/Zss8wOam4avNTkfDh1Qn2rKRS6R0ShcFnc8qafcAfqZ5 x8DGN3oCcskJuH7gMCMcBRdPnBDl9C2gqbJneg4dWuL0H2lzm6zEuTmktcq9v00oEtWj uAng==
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=YXAxyIUFJPi0OU4NxzDbJDJ1jdhMtl5K92ezireZBpY=; b=dxI8KU0JE1sgAg3k/l0nA2bNhhxt5FFAE4ozca7xXPxdXxY2ovAULLUC1JosJY+Pdl 1f4ZxtDFQkAfuUbAMwReKFItk2toctQ/oEgAgS8O3TJND4dur0AFlbptdhtXy0mMzSql YqW6g/75L0trIhd62DxKbJaoSgoaeytNJUDOpMdvJ4HHSz5SzJcvXEAQ81DvhmKuJ2JV +qo/1yfwpN7OlsPrOpLCl+AiXAws6cGdQASSPekTmWJ7+hX361knOoTCM9AmJ/Y5B7fF zEbFk5c8RJtU2KA6eVyOgGCzZpSZWupZSwFJcLvobRok2nWgAUKETY91HqYwp11v5cPn Dcng==
X-Gm-Message-State: ALoCoQlOPBxtwDcrJcCAXHPb3wUW3qtXAEdJlhRi/fxvmC7qJD1nOOldMvm0OIvDrxyD76ynAqJg
MIME-Version: 1.0
X-Received: by 10.25.211.194 with SMTP id k185mr9282793lfg.119.1447104076314;  Mon, 09 Nov 2015 13:21:16 -0800 (PST)
Received: by 10.112.144.106 with HTTP; Mon, 9 Nov 2015 13:21:16 -0800 (PST)
In-Reply-To: <20151109.221110.428739028044980944.mbj@tail-f.com>
References: <20151109.193808.1563090591494288561.mbj@tail-f.com> <CABCOCHTL4ukBzdJCDQZ2Z9ubXxHeJoM7qt75poU7Bix4_woOzw@mail.gmail.com> <20151109.221110.428739028044980944.mbj@tail-f.com>
Date: Mon, 9 Nov 2015 13:21:16 -0800
Message-ID: <CABCOCHROTgZ_yRi+rm8pSw7JL8O+oJFqEJqc2zWhT3xPq+i0bg@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Martin Bjorklund <mbj@tail-f.com>
Content-Type: multipart/alternative; boundary=001a1141805e6c0fa80524222c86
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/RPGdwjott9HaZr_FJFXVz8T_8zQ>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] Y10 clarification
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 09 Nov 2015 21:21:20 -0000

--001a1141805e6c0fa80524222c86
Content-Type: text/plain; charset=UTF-8

On Mon, Nov 9, 2015 at 1:11 PM, Martin Bjorklund <mbj@tail-f.com> wrote:

> Andy Bierman <andy@yumaworks.com> wrote:
> > On Mon, Nov 9, 2015 at 10:38 AM, Martin Bjorklund <mbj@tail-f.com>
> wrote:
> >
> > > Hi,
> > >
> > > I implemented most of the 1.1 features that affect the compiler in
> > > pyang on the flight back from Yokohama.  (if you have 1.1 modules, I'd
> > > appreciate if you could try it out).
> > >
> > > In doing this, I realized that I forgot one part of Y10 - "allow
> > > restrictions on enumerations".  If we allow:
> > >
> > >     typedef foo2 {
> > >       type enumeration {
> > >         enum a;
> > >         enum b;
> > >       }
> > >     }
> > >     typedef bar2 {
> > >       type foo2 {
> > >         enum a;
> > >       }
> > >     }
> > >
> > > we should also allow:
> > >
> > >     typedef foo2 {
> > >       type bits {
> > >         bit a;
> > >         bit b;
> > >       }
> > >     }
> > >     typedef bar2 {
> > >       type foo2 {
> > >         bit a;
> > >       }
> > >     }
> > >
> > > It is briefly mentioned in the description of Y10.
> > >
> > >
> > > Comments?
> > >
> > >
> > Yet more complexity without any real use-cases?
>
> It is a matter of removing CLRs and inconsistencies.
>
> > How does auto-numbering work in both cases?
> >
> >
> >     typedef foo2 {
> >       type enumeration {
> >         enum a;
> >         enum b;
> >       }
> >     }
> >
> >     typedef foo3 {
> >       type foo2 {
> >         enum b;
> >       }
> >     }
> >
> >     typedef bar1 {
> >       type enumeration {
> >         enum b;
> >       }
> >     }
> >
> >
> > What is the auto-numbering of enum 'b' in type foo3?
>
> There is none.  The text says:
>
>   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.
>
>

good

Is the refinement allowed to add, remove, or change if-feature-stmts?
I don't remember seeing any text on that.



> > What value does type foo3 have over bar1?
>
> Unless the type has some semantics, there is none.   But when the type
> has some semantics, the possibility to restrict an existing type is
> useful.  If it not useful for enumerations and bits, why should we
> have it for strings and ints, for example.
>
>

so the reason to do this would be to restrict the value set but
maintain the value and position assignments.  OK




> /martin
>

Andy

--001a1141805e6c0fa80524222c86
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Mon, Nov 9, 2015 at 1:11 PM, Martin Bjorklund <span dir=3D"ltr">&lt;=
<a href=3D"mailto:mbj@tail-f.com" target=3D"_blank">mbj@tail-f.com</a>&gt;<=
/span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8=
ex;border-left:1px #ccc solid;padding-left:1ex">Andy Bierman &lt;<a href=3D=
"mailto:andy@yumaworks.com">andy@yumaworks.com</a>&gt; wrote:<br>
&gt; On Mon, Nov 9, 2015 at 10:38 AM, Martin Bjorklund &lt;<a href=3D"mailt=
o:mbj@tail-f.com">mbj@tail-f.com</a>&gt; wrote:<br>
&gt;<br>
&gt; &gt; Hi,<br>
&gt; &gt;<br>
&gt; &gt; I implemented most of the 1.1 features that affect the compiler i=
n<br>
&gt; &gt; pyang on the flight back from Yokohama.=C2=A0 (if you have 1.1 mo=
dules, I&#39;d<br>
&gt; &gt; appreciate if you could try it out).<br>
&gt; &gt;<br>
&gt; &gt; In doing this, I realized that I forgot one part of Y10 - &quot;a=
llow<br>
&gt; &gt; restrictions on enumerations&quot;.=C2=A0 If we allow:<br>
&gt; &gt;<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0typedef foo2 {<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0type enumeration {<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0enum a;<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0enum b;<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0}<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0typedef bar2 {<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0type foo2 {<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0enum a;<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0}<br>
&gt; &gt;<br>
&gt; &gt; we should also allow:<br>
&gt; &gt;<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0typedef foo2 {<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0type bits {<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0bit a;<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0bit b;<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0}<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0typedef bar2 {<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0type foo2 {<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0bit a;<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0}<br>
&gt; &gt;<br>
&gt; &gt; It is briefly mentioned in the description of Y10.<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; Comments?<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; Yet more complexity without any real use-cases?<br>
<br>
It is a matter of removing CLRs and inconsistencies.<br>
<br>
&gt; How does auto-numbering work in both cases?<br>
&gt;<br>
&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0typedef foo2 {<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0type enumeration {<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0enum a;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0enum b;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
&gt;=C2=A0 =C2=A0 =C2=A0}<br>
&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0typedef foo3 {<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0type foo2 {<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0enum b;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
&gt;=C2=A0 =C2=A0 =C2=A0}<br>
&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0typedef bar1 {<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0type enumeration {<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0enum b;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
&gt;=C2=A0 =C2=A0 =C2=A0}<br>
&gt;<br>
&gt;<br>
&gt; What is the auto-numbering of enum &#39;b&#39; in type foo3?<br>
<br>
There is none.=C2=A0 The text says:<br>
<br>
=C2=A0 When an existing enumeration type is restricted, the &quot;value&quo=
t;<br>
=C2=A0 statement MUST either have the same value as in the base type or not=
<br>
=C2=A0 be present, in which case the value is the same as in the base type.=
<br>
<br></blockquote><div><br></div><div><br></div><div>good</div><div><br></di=
v><div>Is the refinement allowed to add, remove, or change if-feature-stmts=
?</div><div>I don&#39;t remember seeing any text on that.</div><div><br></d=
iv><div><br></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .=
8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
&gt; What value does type foo3 have over bar1?<br>
<br>
Unless the type has some semantics, there is none.=C2=A0 =C2=A0But when the=
 type<br>
has some semantics, the possibility to restrict an existing type is<br>
useful.=C2=A0 If it not useful for enumerations and bits, why should we<br>
have it for strings and ints, for example.<br>
<span class=3D"HOEnZb"><font color=3D"#888888"><br></font></span></blockquo=
te><div><br></div><div><br></div><div>so the reason to do this would be to =
restrict the value set but</div><div>maintain the value and position assign=
ments.=C2=A0 OK</div><div><br></div><div><br></div><div><br></div><blockquo=
te class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc so=
lid;padding-left:1ex"><span class=3D"HOEnZb"><font color=3D"#888888">
<br>
/martin<br>
</font></span></blockquote></div><br></div><div class=3D"gmail_extra">Andy<=
/div><div class=3D"gmail_extra"><br></div></div>

--001a1141805e6c0fa80524222c86--


From nobody Mon Nov  9 14:39:52 2015
Return-Path: <nite@hq.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 9BA0E1A0250 for <netmod@ietfa.amsl.com>; Mon,  9 Nov 2015 14:39:51 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.505
X-Spam-Level: 
X-Spam-Status: No, score=-0.505 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_SK=1.35, HOST_EQ_SK=0.555, MIME_8BIT_HEADER=0.3, RCVD_IN_DNSWL_LOW=-0.7, 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 ijdXNJ0KQiWo for <netmod@ietfa.amsl.com>; Mon,  9 Nov 2015 14:39:49 -0800 (PST)
Received: from mail.hq.sk (hq.sk [81.89.59.181]) by ietfa.amsl.com (Postfix) with ESMTP id 131111A024C for <netmod@ietf.org>; Mon,  9 Nov 2015 14:39:48 -0800 (PST)
Received: from [172.16.0.6] (188-167-5-4.dynamic.chello.sk [188.167.5.4]) by mail.hq.sk (Postfix) with ESMTPSA id B8402243B2A; Mon,  9 Nov 2015 23:39:45 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=hq.sk; s=mail; t=1447108785; bh=rCfWXtKgGrgHUhWwjaxIOsI8YXssA/83jWJdJp1lo/Y=; h=Subject:To:References:Cc:From:Date:In-Reply-To; b=bApgx8ODOPeX/x9vE2koyQs0XVLtFg27DSa1M7jau8OARLSD2XXATKWunZjTGD9x5 J7eW206n6H2UBFvjQ58Ax3VVZaCMd1+J9EnLJl+SQXmXXUal5MnWVeJFRWnXW6MP57 SFp4OV87rWPmCZYe+4N9sMG5f2O1I/e5yT4wj+Fg=
To: Ladislav Lhotka <lhotka@nic.cz>, =?UTF-8?B?SsO8cmdlbiBTY2jDtm53w6RsZGVy?= <j.schoenwaelder@jacobs-university.de>
References: <9C0E7EF3-6DEC-493D-91C8-B75B2E29A2D9@nic.cz> <20151105065110.GA98886@elstar.local> <FCAA11D8-6090-49D8-9312-5B88BB0D8806@nic.cz>
From: Robert Varga <nite@hq.sk>
Message-ID: <564120B1.2000001@hq.sk>
Date: Mon, 9 Nov 2015 23:39:45 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0
MIME-Version: 1.0
In-Reply-To: <FCAA11D8-6090-49D8-9312-5B88BB0D8806@nic.cz>
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/Pg3EQqrrRn9iV7AeVC33dVD5v50>
Cc: NETMOD WG <netmod@ietf.org>
Subject: Re: [netmod] JSON encoding of anyxml
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 09 Nov 2015 22:39:51 -0000

On 11/05/2015 09:56 AM, Ladislav Lhotka wrote:
>> Given the resolution of Y34 in YANG 1.1, Martin's proposal to encode
>> >anyxml as a string that has XML inside makes sense.
> The possibility of sending arbitrary (non-YANG) data in the native encoding can occassionally be useful, and even more so in JSON. For example, I have to work with a JSON-based format for specifying DNSSEC signing policies. While my plan is to eventually replace this format with YANG-modelled data, it would help me, as an interim solution, to simply send the data in the legacy format. That's why I want to retain the existing rules for JSON encoding of anyxml, unless something else is available. Sending XML documents as strings is still possible although IMO next to useless.

I fear requiring JSON in anyxml will render RESTCONF-to-NETCONF proxies 
non-transparent in case the sender (a NETCONF NE) and receiver (an 
RESTCONF application) have out-of-band knowledge of the data being sent 
over anyxml. Given the proxy does not have this knowledge, it cannot 
reliably deal with lists, as they lack a container element in XML encoding.

Can we perhaps indicate the encoding of the anyxml data chunk in JSON as 
a separate well-known attribute?

Bye,
Robert


From nobody Mon Nov  9 18:20: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 CFAA01B2DB6 for <netmod@ietfa.amsl.com>; Mon,  9 Nov 2015 18:19:59 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level: 
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=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 eGxQhGXy5gi9 for <netmod@ietfa.amsl.com>; Mon,  9 Nov 2015 18:19:57 -0800 (PST)
Received: from mail-lf0-x236.google.com (mail-lf0-x236.google.com [IPv6:2a00:1450:4010:c07::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 E9C201B2DD5 for <netmod@ietf.org>; Mon,  9 Nov 2015 18:19:56 -0800 (PST)
Received: by lffz63 with SMTP id z63so40273658lff.0 for <netmod@ietf.org>; Mon, 09 Nov 2015 18:19:55 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks_com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=tYrd1wBUY95lXaC0xrzauMmdJNqN6CAcYtL4YCOsp8Q=; b=BHJbmNkPLOcoHtj+NzD3yEYZFUasoAcpZ+whGbpwO1jflnFc2iNahtPrmIgxVX5oqA GuVfCszYHNTvmCWhmKScA8lMicWlNXIJsgKossAxVhGflMCTc0/bE4M8oyT6LXz1CSuA xMZSPrWKHrVoqGQf9aBc4OC0ppdC5hTHkmjYamTj8DAMV1P8mxOETjQoDFGP5PH9qEtA vGV+m3XoyNIVl0BJCzA35rYlEz5NWHZY664Y+DyDJkyy99UgG8/Kxp5PZgqXJ40a+geD 1mIGF+R1FQlHYgMfqmm1lbEOgNMPwnDPoDQeifDxbnTG71eZ/y/0fMw6UytMdHgv8IQj /vlw==
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=tYrd1wBUY95lXaC0xrzauMmdJNqN6CAcYtL4YCOsp8Q=; b=mqIh4MNp1khFQixSTIzoI/Y82bYR5SyD/wEeD1mtBmGuI4QQD5tb6A532FzF7H08LD hByNYb6YWYAKO70EU+bCloL0ndnLz/aBbvB+N2cG8eTAnpq79pOHU7dBrnhZwck9AgY4 +fbn/2+efpNxCz55i9YO/LU6wtasqO8lzPLtyM21F31pj1/vNN5gbAMT7LybmImVUXS+ dhWPtgHcfAz2npA6YmPKUp1LQr8FsZ6Bhvj7jUXI/VIJ8ekV7+AjsT8bHEEE9j7KC7E/ r13ehNYVAX99gEdaCOMqO5rgIUK+QmHArOWy3vX9dyDCLpA52GZnHfm8jxDw5yR/TQae cyYQ==
X-Gm-Message-State: ALoCoQm1hgCSeGcK/ZcDPbWwGLOUhWxlQzv/CVCOPFVAUCZhAdwAZ7UEtGZ2Nvij4Csc1NroUwAT
MIME-Version: 1.0
X-Received: by 10.25.145.209 with SMTP id t200mr408314lfd.88.1447121994939; Mon, 09 Nov 2015 18:19:54 -0800 (PST)
Received: by 10.112.144.106 with HTTP; Mon, 9 Nov 2015 18:19:54 -0800 (PST)
In-Reply-To: <564120B1.2000001@hq.sk>
References: <9C0E7EF3-6DEC-493D-91C8-B75B2E29A2D9@nic.cz> <20151105065110.GA98886@elstar.local> <FCAA11D8-6090-49D8-9312-5B88BB0D8806@nic.cz> <564120B1.2000001@hq.sk>
Date: Mon, 9 Nov 2015 18:19:54 -0800
Message-ID: <CABCOCHQF-yRCgG47UqTWjhOBWvz_yLsw=F_GZ4DYiROt9_QTZw@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Robert Varga <nite@hq.sk>
Content-Type: multipart/alternative; boundary=001a114021b07496160524265808
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/6XeBCsL3TTgJo-orD-GyjlVrd_k>
Cc: NETMOD WG <netmod@ietf.org>
Subject: Re: [netmod] JSON encoding of anyxml
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 10 Nov 2015 02:20:00 -0000

--001a114021b07496160524265808
Content-Type: text/plain; charset=UTF-8

Hi,

I am not in favor of anything XML or JSON specific in YANG.
In reality, nobody uses anyxml as a configuration data node,
so an improper roundtrip translation from JSON to XML
is not going to happen.

Encoding anyxml as a string is not going to happen either.
Not sure what the difference between 'anyxml' and 'type string'
is at that point.

Why does YANG even need a special type of leaf that is a blob of XML?
Can't a single-quoted string serve that purpose?


Andy


On Mon, Nov 9, 2015 at 2:39 PM, Robert Varga <nite@hq.sk> wrote:

> On 11/05/2015 09:56 AM, Ladislav Lhotka wrote:
>
>> Given the resolution of Y34 in YANG 1.1, Martin's proposal to encode
>>> >anyxml as a string that has XML inside makes sense.
>>>
>> The possibility of sending arbitrary (non-YANG) data in the native
>> encoding can occassionally be useful, and even more so in JSON. For
>> example, I have to work with a JSON-based format for specifying DNSSEC
>> signing policies. While my plan is to eventually replace this format with
>> YANG-modelled data, it would help me, as an interim solution, to simply
>> send the data in the legacy format. That's why I want to retain the
>> existing rules for JSON encoding of anyxml, unless something else is
>> available. Sending XML documents as strings is still possible although IMO
>> next to useless.
>>
>
> I fear requiring JSON in anyxml will render RESTCONF-to-NETCONF proxies
> non-transparent in case the sender (a NETCONF NE) and receiver (an RESTCONF
> application) have out-of-band knowledge of the data being sent over anyxml.
> Given the proxy does not have this knowledge, it cannot reliably deal with
> lists, as they lack a container element in XML encoding.
>
> Can we perhaps indicate the encoding of the anyxml data chunk in JSON as a
> separate well-known attribute?
>
> Bye,
> Robert
>
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod
>

--001a114021b07496160524265808
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Hi,<div><br></div><div>I am not in favor of anything XML o=
r JSON specific in YANG.</div><div>In reality, nobody uses anyxml as a conf=
iguration data node,</div><div>so an improper roundtrip translation from JS=
ON to XML</div><div>is not going to happen.</div><div><br></div><div>Encodi=
ng anyxml as a string is not going to happen either.</div><div>Not sure wha=
t the difference between &#39;anyxml&#39; and &#39;type string&#39;</div><d=
iv>is at that point.</div><div><br></div><div>Why does YANG even need a spe=
cial type of leaf that is a blob of XML?</div><div>Can&#39;t a single-quote=
d string serve that purpose?</div><div><br></div><div><br></div><div>Andy</=
div><div><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quote">On M=
on, Nov 9, 2015 at 2:39 PM, Robert Varga <span dir=3D"ltr">&lt;<a href=3D"m=
ailto:nite@hq.sk" target=3D"_blank">nite@hq.sk</a>&gt;</span> wrote:<br><bl=
ockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #=
ccc solid;padding-left:1ex">On 11/05/2015 09:56 AM, Ladislav Lhotka wrote:<=
br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex"><blockquote class=3D"gmail_quote" style=3D"m=
argin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Given the resolution of Y34 in YANG 1.1, Martin&#39;s proposal to encode<br=
>
&gt;anyxml as a string that has XML inside makes sense.<br>
</blockquote>
The possibility of sending arbitrary (non-YANG) data in the native encoding=
 can occassionally be useful, and even more so in JSON. For example, I have=
 to work with a JSON-based format for specifying DNSSEC signing policies. W=
hile my plan is to eventually replace this format with YANG-modelled data, =
it would help me, as an interim solution, to simply send the data in the le=
gacy format. That&#39;s why I want to retain the existing rules for JSON en=
coding of anyxml, unless something else is available. Sending XML documents=
 as strings is still possible although IMO next to useless.<br>
</blockquote>
<br>
I fear requiring JSON in anyxml will render RESTCONF-to-NETCONF proxies non=
-transparent in case the sender (a NETCONF NE) and receiver (an RESTCONF ap=
plication) have out-of-band knowledge of the data being sent over anyxml. G=
iven the proxy does not have this knowledge, it cannot reliably deal with l=
ists, as they lack a container element in XML encoding.<br>
<br>
Can we perhaps indicate the encoding of the anyxml data chunk in JSON as a =
separate well-known attribute?<br>
<br>
Bye,<br>
Robert<br>
<br>
_______________________________________________<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" rel=3D"noreferrer"=
 target=3D"_blank">https://www.ietf.org/mailman/listinfo/netmod</a><br>
</blockquote></div><br></div></div></div>

--001a114021b07496160524265808--


From nobody Mon Nov  9 23:41: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 373861A1B65 for <netmod@ietfa.amsl.com>; Mon,  9 Nov 2015 23:41:02 -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 g1v6GcJmN_dL for <netmod@ietfa.amsl.com>; Mon,  9 Nov 2015 23:41:00 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id A20701A1B5D for <netmod@ietf.org>; Mon,  9 Nov 2015 23:41:00 -0800 (PST)
Received: from localhost (unknown [173.38.220.37]) by mail.tail-f.com (Postfix) with ESMTPSA id 115561AE0478; Tue, 10 Nov 2015 08:40:59 +0100 (CET)
Date: Tue, 10 Nov 2015 08:40:58 +0100 (CET)
Message-Id: <20151110.084058.1926962977487601733.mbj@tail-f.com>
To: andy@yumaworks.com
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <CABCOCHROTgZ_yRi+rm8pSw7JL8O+oJFqEJqc2zWhT3xPq+i0bg@mail.gmail.com>
References: <CABCOCHTL4ukBzdJCDQZ2Z9ubXxHeJoM7qt75poU7Bix4_woOzw@mail.gmail.com> <20151109.221110.428739028044980944.mbj@tail-f.com> <CABCOCHROTgZ_yRi+rm8pSw7JL8O+oJFqEJqc2zWhT3xPq+i0bg@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/QsODXX26o87XgbqP5rhzYkPa3gM>
Cc: netmod@ietf.org
Subject: Re: [netmod] Y10 clarification
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 10 Nov 2015 07:41:02 -0000

Andy Bierman <andy@yumaworks.com> wrote:
> On Mon, Nov 9, 2015 at 1:11 PM, Martin Bjorklund <mbj@tail-f.com> wrote:
> 
> > Andy Bierman <andy@yumaworks.com> wrote:
> > > On Mon, Nov 9, 2015 at 10:38 AM, Martin Bjorklund <mbj@tail-f.com>
> > wrote:
> > >
> > > > Hi,
> > > >
> > > > I implemented most of the 1.1 features that affect the compiler in
> > > > pyang on the flight back from Yokohama.  (if you have 1.1 modules, I'd
> > > > appreciate if you could try it out).
> > > >
> > > > In doing this, I realized that I forgot one part of Y10 - "allow
> > > > restrictions on enumerations".  If we allow:
> > > >
> > > >     typedef foo2 {
> > > >       type enumeration {
> > > >         enum a;
> > > >         enum b;
> > > >       }
> > > >     }
> > > >     typedef bar2 {
> > > >       type foo2 {
> > > >         enum a;
> > > >       }
> > > >     }
> > > >
> > > > we should also allow:
> > > >
> > > >     typedef foo2 {
> > > >       type bits {
> > > >         bit a;
> > > >         bit b;
> > > >       }
> > > >     }
> > > >     typedef bar2 {
> > > >       type foo2 {
> > > >         bit a;
> > > >       }
> > > >     }
> > > >
> > > > It is briefly mentioned in the description of Y10.
> > > >
> > > >
> > > > Comments?
> > > >
> > > >
> > > Yet more complexity without any real use-cases?
> >
> > It is a matter of removing CLRs and inconsistencies.
> >
> > > How does auto-numbering work in both cases?
> > >
> > >
> > >     typedef foo2 {
> > >       type enumeration {
> > >         enum a;
> > >         enum b;
> > >       }
> > >     }
> > >
> > >     typedef foo3 {
> > >       type foo2 {
> > >         enum b;
> > >       }
> > >     }
> > >
> > >     typedef bar1 {
> > >       type enumeration {
> > >         enum b;
> > >       }
> > >     }
> > >
> > >
> > > What is the auto-numbering of enum 'b' in type foo3?
> >
> > There is none.  The text says:
> >
> >   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.
> >
> >
> 
> good
> 
> Is the refinement allowed to add, remove, or change if-feature-stmts?
> I don't remember seeing any text on that.

The refine statement cannot address individual enums/bits (it can only
address structure) so the answer is that it is not possible to change
if-feature on enums/bits in refinements.

> > > What value does type foo3 have over bar1?
> >
> > Unless the type has some semantics, there is none.   But when the type
> > has some semantics, the possibility to restrict an existing type is
> > useful.  If it not useful for enumerations and bits, why should we
> > have it for strings and ints, for example.
> >
> >
> 
> so the reason to do this would be to restrict the value set but
> maintain the value and position assignments.  OK



/martin


From nobody Tue Nov 10 03:50:55 2015
Return-Path: <rwilton@cisco.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 96B881A1BBD for <netmod@ietfa.amsl.com>; Tue, 10 Nov 2015 03:50:54 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -11.217
X-Spam-Level: 
X-Spam-Status: No, score=-11.217 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FB_WORD2_END_DOLLAR=3.294, 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 OviIZ9kj0qLX for <netmod@ietfa.amsl.com>; Tue, 10 Nov 2015 03:50:53 -0800 (PST)
Received: from aer-iport-3.cisco.com (aer-iport-3.cisco.com [173.38.203.53]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 329181A1A8C for <netmod@ietf.org>; Tue, 10 Nov 2015 03:50:53 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=575; q=dns/txt; s=iport; t=1447156253; x=1448365853; h=subject:to:references:cc:from:message-id:date: mime-version:in-reply-to:content-transfer-encoding; bh=p/hhQhwx5Mf+K+gjLcggkXvnp5xhF7546Oof5ZS3Fc8=; b=Vm/3LbHPgbINnuOTGoMeMP5NxUB4xa4Ec2Y7vT9rm9bNt48tLGYtZIOs 1H6LMNneCXnqFgu44BUQdg0zbi6FQ68NEbCxE1DTCLUt1CO/HsIYG04fa 7mVRO4olLrRiNjF0mJikgGp65aLNEYzstbIj0Mg9iBr//5LB864fGRNAC 4=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0CoBAC22UFW/xbLJq1exTSDPYJTAoIGA?= =?us-ascii?q?QEBAQEBgQuENgEBBDhBEAsOCgklDwJGBg0IAQGIKsJWAQEBAQEBAQEBAQEBAQE?= =?us-ascii?q?BAQEchlSEfok5AQSWSI0mgVuHQo82g3JjhAQ+hWIBAQE?=
X-IronPort-AV: E=Sophos;i="5.20,270,1444694400"; d="scan'208";a="606227598"
Received: from aer-iport-nat.cisco.com (HELO aer-core-2.cisco.com) ([173.38.203.22]) by aer-iport-3.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 10 Nov 2015 11:50:49 +0000
Received: from [10.63.23.71] (dhcp-ensft1-uk-vla370-10-63-23-71.cisco.com [10.63.23.71]) by aer-core-2.cisco.com (8.14.5/8.14.5) with ESMTP id tAABon1u021843; Tue, 10 Nov 2015 11:50:49 GMT
To: Martin Bjorklund <mbj@tail-f.com>
References: <20151109.193808.1563090591494288561.mbj@tail-f.com>
From: Robert Wilton <rwilton@cisco.com>
Message-ID: <5641DA19.70507@cisco.com>
Date: Tue, 10 Nov 2015 11:50:49 +0000
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0
MIME-Version: 1.0
In-Reply-To: <20151109.193808.1563090591494288561.mbj@tail-f.com>
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/joY3f5bgpzvqlMsWSld4sJAKCQw>
Cc: netmod@ietf.org
Subject: Re: [netmod] Y10 clarification
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 10 Nov 2015 11:50:54 -0000

Hi Martin,

On 09/11/2015 18:38, Martin Bjorklund wrote:
> Hi,
>
> I implemented most of the 1.1 features that affect the compiler in
> pyang on the flight back from Yokohama.  (if you have 1.1 modules, I'd
> appreciate if you could try it out).

Against, my interfaces-common module using your latest yang-1.1 branch I 
only have the "augment with mandatory" error remaining:

sjc-ads-5101:ddmi$ pyang --ietf  interfaces/interfaces-common.yang
interfaces/interfaces-common.yang:370: error: cannot augment with 
mandatory node parent-interface

Thanks,
Rob


From nobody Tue Nov 10 05:57:02 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 D95E61B29A5 for <netmod@ietfa.amsl.com>; Tue, 10 Nov 2015 05:56:54 -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 rc2onq6MGtw2 for <netmod@ietfa.amsl.com>; Tue, 10 Nov 2015 05:56:48 -0800 (PST)
Received: from trail.lhotka.name (trail.lhotka.name [77.48.224.143]) by ietfa.amsl.com (Postfix) with ESMTP id 7E2981B29BD for <netmod@ietf.org>; Tue, 10 Nov 2015 05:56:48 -0800 (PST)
Received: from localhost (unknown [217.31.205.2]) by trail.lhotka.name (Postfix) with ESMTPSA id 0DBE81CC0196; Tue, 10 Nov 2015 14:56:46 +0100 (CET)
From: Ladislav Lhotka <lhotka@nic.cz>
To: Andy Bierman <andy@yumaworks.com>
In-Reply-To: <CABCOCHRJ+aTt=GERQZ97qd5f89NJZweO8t=MaOFgmGX6V+ahBw@mail.gmail.com>
References: <20151105090846.GA99478@elstar.local> <20151105.182045.402528442272338514.mbj@tail-f.com> <CABCOCHQt0YGNy=R8xH8wB=CxB=E4ft_vA10g9_qAJr48YoXQtw@mail.gmail.com> <m21tbz30ts.fsf@birdie.labs.nic.cz> <CABCOCHRJ+aTt=GERQZ97qd5f89NJZweO8t=MaOFgmGX6V+ahBw@mail.gmail.com>
User-Agent: Notmuch/0.21 (http://notmuchmail.org) Emacs/24.4.51.2 (x86_64-apple-darwin14.0.0)
Date: Tue, 10 Nov 2015 14:56:44 +0100
Message-ID: <m2ziym2c0z.fsf@nic.cz>
MIME-Version: 1.0
Content-Type: text/plain
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/05_63h5W3D7CRtOEzw6QsA-Fahc>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] yang 1.1 last call comment resolution
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 10 Nov 2015 13:56:55 -0000

Andy Bierman <andy@yumaworks.com> writes:

> On Mon, Nov 9, 2015 at 2:48 AM, Ladislav Lhotka <lhotka@nic.cz> wrote:
>
>> Andy Bierman <andy@yumaworks.com> writes:
>>
>> > On Thu, Nov 5, 2015 at 1:20 AM, Martin Bjorklund <mbj@tail-f.com> wrote:
>> >
>> >> Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote:
>> >>
>>
>> ...
>>
>> >> > - Old function: make auto-delete for choice and when non-NETCONF
>> specific
>> >> >
>> >> >   Revision -08 of YANG 1.1 defines auto-deletion as a property of the
>> >> >   NETCONF edit-config operation and the issue is whether this
>> >> >   auto-deletion behaviour is a NETCONF specific edit-config property
>> >> >   or a general YANG datastore validation property that equally applies
>> >> >   to RESTCONF, COMI, ...
>> >> >
>> >> >   It is unclear where we are with this. More input would be welcome.
>> >>
>> >> I think it would be very confusing if e.g. RESTCONF behaved
>> >> differently than NETCONF.  However, I can see how it might make sense
>> >> for a server on a constrained device to not do auto-delete - but OTOH
>> >> such a server probably don't do "must" and "when" checking at all.
>> >> And it might have specialized data models that don't use such
>> >> constructs.
>> >>
>> >>
>> >>
>> > I don't like any of the NETCONF-specific text in YANG 1.1.
>> > YANG datastore constraints refer to a conceptual "valid datastore".
>> > There is no reason to talk about specific protocol behavior,
>> > except that we are too lazy to put protocol text where it belongs.
>>
>> Agreed.
>>
>> >
>> > It should at least be clear that datastore validation does not at all
>> depend
>> > on how the datastore contents were changed.  The current text does
>> > not even fully support <copy-config>, so it does not even support
>> NETCONF,
>> > let alone RESTCONF.
>> >
>> > IMO auto-deletion should not be changed.
>> > It works fine and the only issue that has ever come up is
>> > auto-deleting data from an edit-config payload.
>>
>> IMO a scarier prospect is the ripple effect where an edit-config causes
>> some remote part(s) of the data tree to disappear.
>>
>> I looked into the existing uses of "when" and none of them seems to be
>> really designed for the auto-deletion option. That is, auto-deletion is
>> either impossible (e.g. if "when" involves just a list key) or otherwise
>> it would clearly be an operator error (e.g. if interface type is changed
>> by mistake).
>>
>>
>
>
> I do not agree.
> The when-stmt and choice-stmt change the schema tree.

It's not about the schema tree but rather about what the server does if
a data tree doesn't conform to the schema.

What happens if the client sends some instances that are not in the
schema at all? Will the server simply ignore these?

And what happens if the client sends two competing cases of a choice in
the same edit-config? Will the server toss a bitcoin and auto-delete one
of the cases?

> The false schema nodes are like false if-feature nodes.
> This is what makes "must" different than "when".

There are other significant differences, the server can behave either
way, and the client can achieve the same things either way. 

> If an error is returned instead of deletion, then there is no difference
> between must and when statements.  YANG has worked this way from
> the very beginning, so I do not understand what the problem is now.

Well, I did express my reservations against auto-deletion several times
in the past, e.g.

https://mailarchive.ietf.org/arch/msg/netmod/SR9UUgFzuBcGlTHuvbKAmhVDk9w

However, it seems I am not alone now.

Lada

> This "general confusion" argument is really weak.
>
>
> Lada
>>
>
> Andy
>
>
>>
>>
>> >
>> >
>> >
>> >
>> >
>> > /martin
>> >>
>> >>
>> >
>> > Andy
>> >
>> >
>> >> _______________________________________________
>> >> 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
>>
>> --
>> Ladislav Lhotka, CZ.NIC Labs
>> PGP Key ID: E74E8C0C
>>

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


From nobody Tue Nov 10 06:16:22 2015
Return-Path: <nite@hq.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 AC83A1B2AE6 for <netmod@ietfa.amsl.com>; Tue, 10 Nov 2015 06:16:21 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.204
X-Spam-Level: 
X-Spam-Status: No, score=-0.204 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_SK=1.35, HOST_EQ_SK=0.555, HTML_MESSAGE=0.001, J_CHICKENPOX_84=0.6, RCVD_IN_DNSWL_LOW=-0.7, 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 xgVH2wfpwCEJ for <netmod@ietfa.amsl.com>; Tue, 10 Nov 2015 06:16:18 -0800 (PST)
Received: from mail.hq.sk (hq.sk [81.89.59.181]) by ietfa.amsl.com (Postfix) with ESMTP id 92E9D1B2AE5 for <netmod@ietf.org>; Tue, 10 Nov 2015 06:16:17 -0800 (PST)
Received: from [172.16.4.98] (46.229.239.158.host.vnet.sk [46.229.239.158]) by mail.hq.sk (Postfix) with ESMTPSA id EC45F243874; Tue, 10 Nov 2015 15:16:15 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=hq.sk; s=mail; t=1447164976; bh=IZXtGnPqYTdGTGCIQx2337VRF3fObpzurhdj8YWUim8=; h=Subject:To:References:Cc:From:Date:In-Reply-To; b=IMm6JJWc1PNe0pNQ90uzMGiUoF7PrMFNAxJiZpJnzoMiRsMx7YmidE3qCjYeDvakA lbJkBg/pFRVmE/t8MsbN7LngsGmjv73/zhElkd+EnAdSeg2VFl8ETJfH7dV4/URPEG e79xBslLBV/UVtGqVQ5buHfNChkqvzFI+9MzoiYk=
To: Andy Bierman <andy@yumaworks.com>
References: <9C0E7EF3-6DEC-493D-91C8-B75B2E29A2D9@nic.cz> <20151105065110.GA98886@elstar.local> <FCAA11D8-6090-49D8-9312-5B88BB0D8806@nic.cz> <564120B1.2000001@hq.sk> <CABCOCHQF-yRCgG47UqTWjhOBWvz_yLsw=F_GZ4DYiROt9_QTZw@mail.gmail.com>
From: Robert Varga <nite@hq.sk>
Message-ID: <5641FC2F.9060703@hq.sk>
Date: Tue, 10 Nov 2015 15:16:15 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0
MIME-Version: 1.0
In-Reply-To: <CABCOCHQF-yRCgG47UqTWjhOBWvz_yLsw=F_GZ4DYiROt9_QTZw@mail.gmail.com>
Content-Type: multipart/alternative; boundary="------------030601030005030602030409"
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/YtqmzcJW4WZAmKehJygYm_FGyUA>
Cc: NETMOD WG <netmod@ietf.org>
Subject: Re: [netmod] JSON encoding of anyxml
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 10 Nov 2015 14:16:21 -0000

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

Hello,

I am not favor of it, either, but RFC6020 is here and is being widely 
deployed. So is RESTCONF+JSON, which is favored by application 
developers in the field today, as is NETCONF devices producing anyxml. 
We do need a reasonable way of bridging the two -- no matter whether it 
is configuration or operational data.

At any rate, a simple string is not going to cut it, as it does not 
retain modeling context nor encoding details of the data being 
transported -- rendering reliable automated translation impossible.

Bye,
Robert

On 11/10/2015 03:19 AM, Andy Bierman wrote:
> Hi,
>
> I am not in favor of anything XML or JSON specific in YANG.
> In reality, nobody uses anyxml as a configuration data node,
> so an improper roundtrip translation from JSON to XML
> is not going to happen.
>
> Encoding anyxml as a string is not going to happen either.
> Not sure what the difference between 'anyxml' and 'type string'
> is at that point.
>
> Why does YANG even need a special type of leaf that is a blob of XML?
> Can't a single-quoted string serve that purpose?
>
>
> Andy
>
>
> On Mon, Nov 9, 2015 at 2:39 PM, Robert Varga <nite@hq.sk 
> <mailto:nite@hq.sk>> wrote:
>
>     On 11/05/2015 09:56 AM, Ladislav Lhotka wrote:
>
>             Given the resolution of Y34 in YANG 1.1, Martin's proposal
>             to encode
>             >anyxml as a string that has XML inside makes sense.
>
>         The possibility of sending arbitrary (non-YANG) data in the
>         native encoding can occassionally be useful, and even more so
>         in JSON. For example, I have to work with a JSON-based format
>         for specifying DNSSEC signing policies. While my plan is to
>         eventually replace this format with YANG-modelled data, it
>         would help me, as an interim solution, to simply send the data
>         in the legacy format. That's why I want to retain the existing
>         rules for JSON encoding of anyxml, unless something else is
>         available. Sending XML documents as strings is still possible
>         although IMO next to useless.
>
>
>     I fear requiring JSON in anyxml will render RESTCONF-to-NETCONF
>     proxies non-transparent in case the sender (a NETCONF NE) and
>     receiver (an RESTCONF application) have out-of-band knowledge of
>     the data being sent over anyxml. Given the proxy does not have
>     this knowledge, it cannot reliably deal with lists, as they lack a
>     container element in XML encoding.
>
>     Can we perhaps indicate the encoding of the anyxml data chunk in
>     JSON as a separate well-known attribute?
>
>     Bye,
>     Robert
>
>     _______________________________________________
>     netmod mailing list
>     netmod@ietf.org <mailto:netmod@ietf.org>
>     https://www.ietf.org/mailman/listinfo/netmod
>
>


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

<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">Hello,<br>
      <br>
      I am not favor of it, either, but RFC6020 is here and is being
      widely deployed. So is RESTCONF+JSON, which is favored by
      application developers in the field today, as is NETCONF devices
      producing anyxml. We do need a reasonable way of bridging the two
      -- no matter whether it is configuration or operational data.<br>
      <br>
      At any rate, a simple string is not going to cut it, as it does
      not retain modeling context nor encoding details of the data being
      transported -- rendering reliable automated translation
      impossible.<br>
      <br>
      Bye,<br>
      Robert<br>
      <br>
      On 11/10/2015 03:19 AM, Andy Bierman wrote:<br>
    </div>
    <blockquote
cite="mid:CABCOCHQF-yRCgG47UqTWjhOBWvz_yLsw=F_GZ4DYiROt9_QTZw@mail.gmail.com"
      type="cite">
      <div dir="ltr">Hi,
        <div><br>
        </div>
        <div>I am not in favor of anything XML or JSON specific in YANG.</div>
        <div>In reality, nobody uses anyxml as a configuration data
          node,</div>
        <div>so an improper roundtrip translation from JSON to XML</div>
        <div>is not going to happen.</div>
        <div><br>
        </div>
        <div>Encoding anyxml as a string is not going to happen either.</div>
        <div>Not sure what the difference between 'anyxml' and 'type
          string'</div>
        <div>is at that point.</div>
        <div><br>
        </div>
        <div>Why does YANG even need a special type of leaf that is a
          blob of XML?</div>
        <div>Can't a single-quoted string serve that purpose?</div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div>Andy</div>
        <div><br>
          <div class="gmail_extra"><br>
            <div class="gmail_quote">On Mon, Nov 9, 2015 at 2:39 PM,
              Robert Varga <span dir="ltr">&lt;<a
                  moz-do-not-send="true" href="mailto:nite@hq.sk"
                  target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:nite@hq.sk">nite@hq.sk</a></a>&gt;</span> wrote:<br>
              <blockquote class="gmail_quote" style="margin:0 0 0
                .8ex;border-left:1px #ccc solid;padding-left:1ex">On
                11/05/2015 09:56 AM, Ladislav Lhotka wrote:<br>
                <blockquote class="gmail_quote" style="margin:0 0 0
                  .8ex;border-left:1px #ccc solid;padding-left:1ex">
                  <blockquote class="gmail_quote" style="margin:0 0 0
                    .8ex;border-left:1px #ccc solid;padding-left:1ex">
                    Given the resolution of Y34 in YANG 1.1, Martin's
                    proposal to encode<br>
                    &gt;anyxml as a string that has XML inside makes
                    sense.<br>
                  </blockquote>
                  The possibility of sending arbitrary (non-YANG) data
                  in the native encoding can occassionally be useful,
                  and even more so in JSON. For example, I have to work
                  with a JSON-based format for specifying DNSSEC signing
                  policies. While my plan is to eventually replace this
                  format with YANG-modelled data, it would help me, as
                  an interim solution, to simply send the data in the
                  legacy format. That's why I want to retain the
                  existing rules for JSON encoding of anyxml, unless
                  something else is available. Sending XML documents as
                  strings is still possible although IMO next to
                  useless.<br>
                </blockquote>
                <br>
                I fear requiring JSON in anyxml will render
                RESTCONF-to-NETCONF proxies non-transparent in case the
                sender (a NETCONF NE) and receiver (an RESTCONF
                application) have out-of-band knowledge of the data
                being sent over anyxml. Given the proxy does not have
                this knowledge, it cannot reliably deal with lists, as
                they lack a container element in XML encoding.<br>
                <br>
                Can we perhaps indicate the encoding of the anyxml data
                chunk in JSON as a separate well-known attribute?<br>
                <br>
                Bye,<br>
                Robert<br>
                <br>
                _______________________________________________<br>
                netmod mailing list<br>
                <a moz-do-not-send="true" href="mailto:netmod@ietf.org"
                  target="_blank">netmod@ietf.org</a><br>
                <a moz-do-not-send="true"
                  href="https://www.ietf.org/mailman/listinfo/netmod"
                  rel="noreferrer" target="_blank">https://www.ietf.org/mailman/listinfo/netmod</a><br>
              </blockquote>
            </div>
            <br>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
  </body>
</html>

--------------030601030005030602030409--


From nobody Tue Nov 10 09:09: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 02F8B1B3B0B for <netmod@ietfa.amsl.com>; Tue, 10 Nov 2015 09:09:22 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level: 
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=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 Bh8di8atz4h1 for <netmod@ietfa.amsl.com>; Tue, 10 Nov 2015 09:09:20 -0800 (PST)
Received: from mail-lb0-x230.google.com (mail-lb0-x230.google.com [IPv6:2a00:1450:4010:c04::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 7CA2B1B3B0A for <netmod@ietf.org>; Tue, 10 Nov 2015 09:09:19 -0800 (PST)
Received: by lbbkw15 with SMTP id kw15so1997410lbb.0 for <netmod@ietf.org>; Tue, 10 Nov 2015 09:09:17 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks_com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=fy6byoiMUJrjkGI8p0SyE2agm23hH1foAnzMzd9tS0A=; b=Iqpa/r2g6VYqc4gnKcO4HO35jSE3ErtFfR70enZlGXGgLgjtxT2g2S38NPId3R4V68 BVH9UTXRMPY4eOIa7nZqGbbPNG/OfCztxZNpn5zsXBiHOk4xZeQVMqOTRXFm5hwSvNIw rDRUftPqSDYKIr4wIUnniiYh9X3oJO5wFtZXL0mPdn2rDEjyh1+fMZLHusA6R099DFcf nZ01tfBxapxS6rfi02t0ifVYfJeJLq2dXgdkGmHgHDNcgKnrOK8yn9VNrWt5+Sw1qW+9 EnTaPuFRhSDvUnvnjgtxSN4tEhcjOCpQgnNOD5auLnxnzxBTiJyWIq2IHPCLSdBtI+fG Oa1g==
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=fy6byoiMUJrjkGI8p0SyE2agm23hH1foAnzMzd9tS0A=; b=MpozhXdQ2uTOju47NH/gKr8DUdT1m8ynthtrKHs+s0jzperzpTnBtnGMZRZw1edIPm Xz5LOLNxI3H3eiv74tTlWDSDYxmpCpab2QWnXLDZcRrX9uWyMYdXWM/PasJffqwpG3Mb 7fjjLdnz6+Wkew2yiEJpcKZ+CfjrgEKy+CVIyIbhsBBF9nqrpc344yCz6YEbAZOU3Bvb sDPrRVvb3w9b76AhlBphRNESBw7AldcyfcKkfhuvBtlGtUQo1O1qhN9VrXrwsfNLicJd l/aNICSdzjZb9ze5hlg3CZbK5i+JD2lBgoVkHuhhWNztfDMjXEpUQsgY04e+CoNv1G1i vDsA==
X-Gm-Message-State: ALoCoQlk/ceVH7p/6Q/3wRbMT4vi5g+XxXXReCU4vC8kuJjd570Oyjc2Gl9TAlrqwowuYJgGePYM
MIME-Version: 1.0
X-Received: by 10.112.141.7 with SMTP id rk7mr2252631lbb.82.1447175357564; Tue, 10 Nov 2015 09:09:17 -0800 (PST)
Received: by 10.112.144.106 with HTTP; Tue, 10 Nov 2015 09:09:17 -0800 (PST)
In-Reply-To: <20151110.084058.1926962977487601733.mbj@tail-f.com>
References: <CABCOCHTL4ukBzdJCDQZ2Z9ubXxHeJoM7qt75poU7Bix4_woOzw@mail.gmail.com> <20151109.221110.428739028044980944.mbj@tail-f.com> <CABCOCHROTgZ_yRi+rm8pSw7JL8O+oJFqEJqc2zWhT3xPq+i0bg@mail.gmail.com> <20151110.084058.1926962977487601733.mbj@tail-f.com>
Date: Tue, 10 Nov 2015 09:09:17 -0800
Message-ID: <CABCOCHQHQB=QkaCkafkhijCuSrxm0KdDaknE6KfoSCBEHCcdJg@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Martin Bjorklund <mbj@tail-f.com>
Content-Type: multipart/alternative; boundary=001a11c37e1a1da66f052432c5e7
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/v8ViI63Ml4zUhaBLjN9paOmCb7Y>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] Y10 clarification
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 10 Nov 2015 17:09:22 -0000

--001a11c37e1a1da66f052432c5e7
Content-Type: text/plain; charset=UTF-8

On Mon, Nov 9, 2015 at 11:40 PM, Martin Bjorklund <mbj@tail-f.com> wrote:

> Andy Bierman <andy@yumaworks.com> wrote:
> > On Mon, Nov 9, 2015 at 1:11 PM, Martin Bjorklund <mbj@tail-f.com> wrote:
> >
> > > Andy Bierman <andy@yumaworks.com> wrote:
> > > > On Mon, Nov 9, 2015 at 10:38 AM, Martin Bjorklund <mbj@tail-f.com>
> > > wrote:
> > > >
> > > > > Hi,
> > > > >
> > > > > I implemented most of the 1.1 features that affect the compiler in
> > > > > pyang on the flight back from Yokohama.  (if you have 1.1 modules,
> I'd
> > > > > appreciate if you could try it out).
> > > > >
> > > > > In doing this, I realized that I forgot one part of Y10 - "allow
> > > > > restrictions on enumerations".  If we allow:
> > > > >
> > > > >     typedef foo2 {
> > > > >       type enumeration {
> > > > >         enum a;
> > > > >         enum b;
> > > > >       }
> > > > >     }
> > > > >     typedef bar2 {
> > > > >       type foo2 {
> > > > >         enum a;
> > > > >       }
> > > > >     }
> > > > >
> > > > > we should also allow:
> > > > >
> > > > >     typedef foo2 {
> > > > >       type bits {
> > > > >         bit a;
> > > > >         bit b;
> > > > >       }
> > > > >     }
> > > > >     typedef bar2 {
> > > > >       type foo2 {
> > > > >         bit a;
> > > > >       }
> > > > >     }
> > > > >
> > > > > It is briefly mentioned in the description of Y10.
> > > > >
> > > > >
> > > > > Comments?
> > > > >
> > > > >
> > > > Yet more complexity without any real use-cases?
> > >
> > > It is a matter of removing CLRs and inconsistencies.
> > >
> > > > How does auto-numbering work in both cases?
> > > >
> > > >
> > > >     typedef foo2 {
> > > >       type enumeration {
> > > >         enum a;
> > > >         enum b;
> > > >       }
> > > >     }
> > > >
> > > >     typedef foo3 {
> > > >       type foo2 {
> > > >         enum b;
> > > >       }
> > > >     }
> > > >
> > > >     typedef bar1 {
> > > >       type enumeration {
> > > >         enum b;
> > > >       }
> > > >     }
> > > >
> > > >
> > > > What is the auto-numbering of enum 'b' in type foo3?
> > >
> > > There is none.  The text says:
> > >
> > >   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.
> > >
> > >
> >
> > good
> >
> > Is the refinement allowed to add, remove, or change if-feature-stmts?
> > I don't remember seeing any text on that.
>
> The refine statement cannot address individual enums/bits (it can only
> address structure) so the answer is that it is not possible to change
> if-feature on enums/bits in refinements.
>
>

It looks like it is --


   9.6.3.  Restrictions

      An enumeration can be restricted with the "enum" (Section 9.6.4)
      statement.


                 +--------------+---------+-------------+
                 | substatement | section | cardinality |
                 +--------------+---------+-------------+
                 | description  | 7.21.3  | 0..1        |
                 | if-feature   | 7.20.2  | 0..n        |
                 | reference    | 7.21.4  | 0..1        |
                 | status       | 7.21.2  | 0..1        |
                 | value        | 9.6.4.2 | 0..1        |
                 +--------------+---------+-------------+


Sec 9.6.3 says any sub-statement of enum-stmt is allowed

All of the derived sub-statements from the refined enum are brought over I
asume

   typedef foo4 {
     enumeration {
       enum A1 {
         if-feature foo;
       }
       enum A2;
     }
   }

    typedef foo5 {
        type foo4 {
          enum A1;
        }
    }

Is enum A1 conditional on the foo feature in both foo4 and foo5 typedefs?

   typedef foo6 {
        type foo4 {
          enum A2 {
            if-feature bar;
        }
    }

According to the spec, adding if-feature in foo6 is also allowed.

   typedef foo7 {
        type foo4 {
          enum A1 {
            if-feature bar;
        }
    }

Is the A1 enum in foo7 conditional on feature foo and bar, or just bar?



> > > What value does type foo3 have over bar1?
> > >
> > > Unless the type has some semantics, there is none.   But when the type
> > > has some semantics, the possibility to restrict an existing type is
> > > useful.  If it not useful for enumerations and bits, why should we
> > > have it for strings and ints, for example.
> > >
> > >
> >
> > so the reason to do this would be to restrict the value set but
> > maintain the value and position assignments.  OK
>
>
>
> /martin
>


Andy

--001a11c37e1a1da66f052432c5e7
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Mon, Nov 9, 2015 at 11:40 PM, Martin Bjorklund <span dir=3D"ltr">&lt=
;<a href=3D"mailto:mbj@tail-f.com" target=3D"_blank">mbj@tail-f.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;padding-left:1ex">Andy Bierman &lt;<a href=3D"mailto:andy@=
yumaworks.com">andy@yumaworks.com</a>&gt; wrote:<br>
&gt; On Mon, Nov 9, 2015 at 1:11 PM, Martin Bjorklund &lt;<a href=3D"mailto=
:mbj@tail-f.com">mbj@tail-f.com</a>&gt; wrote:<br>
&gt;<br>
&gt; &gt; Andy Bierman &lt;<a href=3D"mailto:andy@yumaworks.com">andy@yumaw=
orks.com</a>&gt; wrote:<br>
&gt; &gt; &gt; On Mon, Nov 9, 2015 at 10:38 AM, Martin Bjorklund &lt;<a hre=
f=3D"mailto:mbj@tail-f.com">mbj@tail-f.com</a>&gt;<br>
&gt; &gt; wrote:<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Hi,<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; I implemented most of the 1.1 features that affect the =
compiler in<br>
&gt; &gt; &gt; &gt; pyang on the flight back from Yokohama.=C2=A0 (if you h=
ave 1.1 modules, I&#39;d<br>
&gt; &gt; &gt; &gt; appreciate if you could try it out).<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; In doing this, I realized that I forgot one part of Y10=
 - &quot;allow<br>
&gt; &gt; &gt; &gt; restrictions on enumerations&quot;.=C2=A0 If we allow:<=
br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0typedef foo2 {<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0type enumeration {<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0enum a;<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0enum b;<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0}<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0typedef bar2 {<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0type foo2 {<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0enum a;<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0}<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; we should also allow:<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0typedef foo2 {<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0type bits {<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0bit a;<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0bit b;<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0}<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0typedef bar2 {<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0type foo2 {<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0bit a;<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0}<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; It is briefly mentioned in the description of Y10.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Comments?<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; Yet more complexity without any real use-cases?<br>
&gt; &gt;<br>
&gt; &gt; It is a matter of removing CLRs and inconsistencies.<br>
&gt; &gt;<br>
&gt; &gt; &gt; How does auto-numbering work in both cases?<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0typedef foo2 {<br>
&gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0type enumeration {<br>
&gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0enum a;<br>
&gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0enum b;<br>
&gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
&gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0}<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0typedef foo3 {<br>
&gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0type foo2 {<br>
&gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0enum b;<br>
&gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
&gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0}<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0typedef bar1 {<br>
&gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0type enumeration {<br>
&gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0enum b;<br>
&gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
&gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0}<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; What is the auto-numbering of enum &#39;b&#39; in type foo3?=
<br>
&gt; &gt;<br>
&gt; &gt; There is none.=C2=A0 The text says:<br>
&gt; &gt;<br>
&gt; &gt;=C2=A0 =C2=A0When an existing enumeration type is restricted, the =
&quot;value&quot;<br>
&gt; &gt;=C2=A0 =C2=A0statement MUST either have the same value as in the b=
ase type or not<br>
&gt; &gt;=C2=A0 =C2=A0be present, in which case the value is the same as in=
 the base type.<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt;<br>
&gt; good<br>
&gt;<br>
&gt; Is the refinement allowed to add, remove, or change if-feature-stmts?<=
br>
&gt; I don&#39;t remember seeing any text on that.<br>
<br>
The refine statement cannot address individual enums/bits (it can only<br>
address structure) so the answer is that it is not possible to change<br>
if-feature on enums/bits in refinements.<br>
<br></blockquote><div><br></div><div><br></div><div>It looks like it is -- =
=C2=A0</div><div><br></div><div><br></div><div><div>=C2=A0 =C2=A09.6.3.=C2=
=A0 Restrictions</div><div><br></div><div>=C2=A0 =C2=A0 =C2=A0 An enumerati=
on can be restricted with the &quot;enum&quot; (Section 9.6.4)</div><div>=
=C2=A0 =C2=A0 =C2=A0 statement.</div></div><div><br></div><div><div><br></d=
iv><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0+----=
----------+---------+-------------+</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| substatement | section | cardinality |<=
/div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0+--=
------------+---------+-------------+</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0| description =C2=A0| 7.21.3 =C2=A0| 0..=
1 =C2=A0 =C2=A0 =C2=A0 =C2=A0|</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0| if-feature =C2=A0 | 7.20.2 =C2=A0| 0..n =C2=
=A0 =C2=A0 =C2=A0 =C2=A0|</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0| reference =C2=A0 =C2=A0| 7.21.4 =C2=A0| 0..1 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0|</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0| status =C2=A0 =C2=A0 =C2=A0 | 7.21.2 =C2=A0| 0..1=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0|</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0| value =C2=A0 =C2=A0 =C2=A0 =C2=A0| 9.6.4.2 | 0=
..1 =C2=A0 =C2=A0 =C2=A0 =C2=A0|</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0+--------------+---------+-------------+</di=
v></div><div><br></div><div><br></div><div>Sec 9.6.3 says any sub-statement=
 of enum-stmt is allowed</div><div><br></div><div>All of the derived sub-st=
atements from the refined enum are brought over I asume</div><div><br></div=
><div>=C2=A0 =C2=A0typedef foo4 {</div><div>=C2=A0 =C2=A0 =C2=A0enumeration=
 {</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0enum A1 {</div><div>=C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0if-feature foo;</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0}<=
/div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0enum A2;</div><div>=C2=A0 =C2=A0 =C2=
=A0}</div><div>=C2=A0 =C2=A0}</div><div><br></div><div>=C2=A0 =C2=A0 typede=
f foo5 {</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 type foo4 {</div><div>=C2=A0=
 =C2=A0 =C2=A0 =C2=A0 =C2=A0 enum A1;</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0=
 }</div><div>=C2=A0 =C2=A0 }</div><div><br></div><div>Is enum A1 conditiona=
l on the foo feature in both foo4 and foo5 typedefs?</div><div><br></div><d=
iv><div>=C2=A0=C2=A0 typedef foo6 {</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 t=
ype foo4 {</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 enum A2 {</div><div=
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 if-feature bar;</div><div>=C2=A0=
 =C2=A0 =C2=A0 =C2=A0 }</div><div>=C2=A0 =C2=A0 }</div></div><div><br></div=
><div>According to the spec, adding if-feature in foo6 is also allowed.</di=
v><div><br></div><div><div>=C2=A0 =C2=A0typedef foo7 {</div><div>=C2=A0 =C2=
=A0 =C2=A0 =C2=A0 type foo4 {</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
enum A1 {</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 if-feature ba=
r;</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 }</div><div>=C2=A0 =C2=A0 }</div><=
/div><div><br></div><div>Is the A1 enum in foo7 conditional on feature foo =
and bar, or just bar?</div><div><br></div><div><br></div><div><br></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">
&gt; &gt; &gt; What value does type foo3 have over bar1?<br>
&gt; &gt;<br>
&gt; &gt; Unless the type has some semantics, there is none.=C2=A0 =C2=A0Bu=
t when the type<br>
&gt; &gt; has some semantics, the possibility to restrict an existing type =
is<br>
&gt; &gt; useful.=C2=A0 If it not useful for enumerations and bits, why sho=
uld we<br>
&gt; &gt; have it for strings and ints, for example.<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt;<br>
&gt; so the reason to do this would be to restrict the value set but<br>
&gt; maintain the value and position assignments.=C2=A0 OK<br>
<span class=3D""><font color=3D"#888888"><br>
<br>
<br>
/martin<br>
</font></span></blockquote></div><br></div><div class=3D"gmail_extra"><br><=
/div><div class=3D"gmail_extra">Andy</div><div class=3D"gmail_extra"><br></=
div></div>

--001a11c37e1a1da66f052432c5e7--


From nobody Tue Nov 10 09:52:34 2015
Return-Path: <william.lupton@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 37DCC1B3BB9 for <netmod@ietfa.amsl.com>; Tue, 10 Nov 2015 09:52:28 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.277
X-Spam-Level: 
X-Spam-Status: No, score=-1.277 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, FREEMAIL_FROM=0.001, HTML_MESSAGE=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 u-Af-SSFHKly for <netmod@ietfa.amsl.com>; Tue, 10 Nov 2015 09:52:26 -0800 (PST)
Received: from mail-lb0-x230.google.com (mail-lb0-x230.google.com [IPv6:2a00:1450:4010:c04::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 0643A1B3BCB for <netmod@ietf.org>; Tue, 10 Nov 2015 09:52:22 -0800 (PST)
Received: by lbbkw15 with SMTP id kw15so2751024lbb.0 for <netmod@ietf.org>; Tue, 10 Nov 2015 09:52:20 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;  h=mime-version:sender:date:message-id:subject:from:to:content-type;  bh=e+szGgNcsjkFLkDrtdiebJhO0QNJJaVwZOR0Mf3/F8M=; b=Fd/B21TrDOPVrgMq6kTlULP1Y/k3Hjtxz18PY3GdvsPtPKRrirP7XnuLtKeahmw/UG 2K63coFBfvzleroCk0ZEvv2UIz9ASEKFMj959m3AI1Xll7ipEK4P6C9jCKzRzzRo3guL HxSrBUIK2q/Fz6sCzNC37dpCUEaBSqPOCpL11KLlRij9p4jKzTVQJd30s2/JqKhWT2Fo eUVHoM+ICcmwAwCh4nRVXl2pCr79ThRmVfIASN8Y72uPXLuEF1da4BHVrDH794mSgPFT H27RALRaLc8ZtIadyWjpzk+Mv4ckicsfr2aKuR1UNRSstgtF3FdXVM+q2zgLZN078A5d UWFQ==
MIME-Version: 1.0
X-Received: by 10.112.144.225 with SMTP id sp1mr2333923lbb.97.1447177940170; Tue, 10 Nov 2015 09:52:20 -0800 (PST)
Sender: william.lupton@gmail.com
Received: by 10.112.201.196 with HTTP; Tue, 10 Nov 2015 09:52:20 -0800 (PST)
Date: Tue, 10 Nov 2015 17:52:20 +0000
X-Google-Sender-Auth: mJGWJE8YnEnBj00YHbWInS8UTjw
Message-ID: <CAAN2h6uWnUrfWkw4EcWzAZFto54+tRv5Zb6hMbOckQthonM8VA@mail.gmail.com>
From: William Lupton <wfl@cantab.net>
To: netmod@ietf.org
Content-Type: multipart/alternative; boundary=047d7b3a888c0d006c0524335f5a
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/ZLdsFeI_RU05d8ZwK6KuCdBNMfU>
Subject: [netmod] derived-from() and derived-from-or-self() arguments
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 10 Nov 2015 17:52:28 -0000

--047d7b3a888c0d006c0524335f5a
Content-Type: text/plain; charset=UTF-8

Hi,

I'm sure there's an obvious reason for this, but could someone explain why
these functions need a separate module-name argument rather than just using
that module's prefix on the identity-name argument?

For example, I saw derived-from(x, "ex-module", "foo") in a recent message
but (assuming that "ex" is the prefix for "ex-module") will this always be
the same as derived-from(x, "ex:foo")?

Thanks,
William

--047d7b3a888c0d006c0524335f5a
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><span style=3D"font-size:12.8px">Hi,</span><div><span styl=
e=3D"font-size:12.8px"><br></span></div><div><span style=3D"font-size:12.8p=
x">I&#39;m sure there&#39;s an obvious reason for this, but could someone e=
xplain why these functions need a separate module-name argument rather than=
 just using that module&#39;s prefix on the identity-name argument?</span><=
/div><div><span style=3D"font-size:12.8px"><br></span></div><div><span styl=
e=3D"font-size:12.8px">For example, I saw=C2=A0derived-from(x, &quot;ex-mod=
ule&quot;, &quot;foo&quot;) in a recent message but (assuming that &quot;ex=
&quot; is the prefix for &quot;ex-module&quot;) will this always be the sam=
e as=C2=A0derived-from(x, &quot;ex:foo&quot;)?</span></div><div><span style=
=3D"font-size:12.8px"><br></span></div><div><span style=3D"font-size:12.8px=
">Thanks,</span></div><div><span style=3D"font-size:12.8px">William</span><=
/div></div>

--047d7b3a888c0d006c0524335f5a--


From nobody Tue Nov 10 12:31:46 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 A424C1B3F03 for <netmod@ietfa.amsl.com>; Tue, 10 Nov 2015 12:31:44 -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 2Memx8uaL-zp for <netmod@ietfa.amsl.com>; Tue, 10 Nov 2015 12:31:43 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id E37011B3F02 for <netmod@ietf.org>; Tue, 10 Nov 2015 12:31:42 -0800 (PST)
Received: from localhost (unknown [213.136.39.104]) by mail.tail-f.com (Postfix) with ESMTPSA id D4E161AE0498; Tue, 10 Nov 2015 21:31:41 +0100 (CET)
Date: Tue, 10 Nov 2015 21:32:14 +0100 (CET)
Message-Id: <20151110.213214.985300503025710545.mbj@tail-f.com>
To: andy@yumaworks.com
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <CABCOCHQHQB=QkaCkafkhijCuSrxm0KdDaknE6KfoSCBEHCcdJg@mail.gmail.com>
References: <CABCOCHROTgZ_yRi+rm8pSw7JL8O+oJFqEJqc2zWhT3xPq+i0bg@mail.gmail.com> <20151110.084058.1926962977487601733.mbj@tail-f.com> <CABCOCHQHQB=QkaCkafkhijCuSrxm0KdDaknE6KfoSCBEHCcdJg@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/pw8iqOqhQhWXiOZM_dWqOB7kFSE>
Cc: netmod@ietf.org
Subject: Re: [netmod] Y10 clarification
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 10 Nov 2015 20:31:44 -0000

Andy Bierman <andy@yumaworks.com> wrote:
> On Mon, Nov 9, 2015 at 11:40 PM, Martin Bjorklund <mbj@tail-f.com> wrote:
> 
> > Andy Bierman <andy@yumaworks.com> wrote:
> > > On Mon, Nov 9, 2015 at 1:11 PM, Martin Bjorklund <mbj@tail-f.com> wrote:
> > >
> > > > Andy Bierman <andy@yumaworks.com> wrote:
> > > > > On Mon, Nov 9, 2015 at 10:38 AM, Martin Bjorklund <mbj@tail-f.com>
> > > > wrote:
> > > > >
> > > > > > Hi,
> > > > > >
> > > > > > I implemented most of the 1.1 features that affect the compiler in
> > > > > > pyang on the flight back from Yokohama.  (if you have 1.1 modules,
> > I'd
> > > > > > appreciate if you could try it out).
> > > > > >
> > > > > > In doing this, I realized that I forgot one part of Y10 - "allow
> > > > > > restrictions on enumerations".  If we allow:
> > > > > >
> > > > > >     typedef foo2 {
> > > > > >       type enumeration {
> > > > > >         enum a;
> > > > > >         enum b;
> > > > > >       }
> > > > > >     }
> > > > > >     typedef bar2 {
> > > > > >       type foo2 {
> > > > > >         enum a;
> > > > > >       }
> > > > > >     }
> > > > > >
> > > > > > we should also allow:
> > > > > >
> > > > > >     typedef foo2 {
> > > > > >       type bits {
> > > > > >         bit a;
> > > > > >         bit b;
> > > > > >       }
> > > > > >     }
> > > > > >     typedef bar2 {
> > > > > >       type foo2 {
> > > > > >         bit a;
> > > > > >       }
> > > > > >     }
> > > > > >
> > > > > > It is briefly mentioned in the description of Y10.
> > > > > >
> > > > > >
> > > > > > Comments?
> > > > > >
> > > > > >
> > > > > Yet more complexity without any real use-cases?
> > > >
> > > > It is a matter of removing CLRs and inconsistencies.
> > > >
> > > > > How does auto-numbering work in both cases?
> > > > >
> > > > >
> > > > >     typedef foo2 {
> > > > >       type enumeration {
> > > > >         enum a;
> > > > >         enum b;
> > > > >       }
> > > > >     }
> > > > >
> > > > >     typedef foo3 {
> > > > >       type foo2 {
> > > > >         enum b;
> > > > >       }
> > > > >     }
> > > > >
> > > > >     typedef bar1 {
> > > > >       type enumeration {
> > > > >         enum b;
> > > > >       }
> > > > >     }
> > > > >
> > > > >
> > > > > What is the auto-numbering of enum 'b' in type foo3?
> > > >
> > > > There is none.  The text says:
> > > >
> > > >   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.
> > > >
> > > >
> > >
> > > good
> > >
> > > Is the refinement allowed to add, remove, or change if-feature-stmts?
> > > I don't remember seeing any text on that.
> >
> > The refine statement cannot address individual enums/bits (it can only
> > address structure) so the answer is that it is not possible to change
> > if-feature on enums/bits in refinements.
> >
> >
> 
> It looks like it is --
> 
> 
>    9.6.3.  Restrictions
> 
>       An enumeration can be restricted with the "enum" (Section 9.6.4)
>       statement.

Aha, ok, I thought you meant the "refine" statement.

Since it is ok to add if-feature to a node when a grouoing is used
(with "refine"), I think it should be ok to add "if-feature" to an
enum/bit when the type is restricted.

>                  +--------------+---------+-------------+
>                  | substatement | section | cardinality |
>                  +--------------+---------+-------------+
>                  | description  | 7.21.3  | 0..1        |
>                  | if-feature   | 7.20.2  | 0..n        |
>                  | reference    | 7.21.4  | 0..1        |
>                  | status       | 7.21.2  | 0..1        |
>                  | value        | 9.6.4.2 | 0..1        |
>                  +--------------+---------+-------------+
> 
> 
> Sec 9.6.3 says any sub-statement of enum-stmt is allowed
> 
> All of the derived sub-statements from the refined enum are brought over I
> asume
> 
>    typedef foo4 {
>      enumeration {
>        enum A1 {
>          if-feature foo;
>        }
>        enum A2;
>      }
>    }
> 
>     typedef foo5 {
>         type foo4 {
>           enum A1;
>         }
>     }
> 
> Is enum A1 conditional on the foo feature in both foo4 and foo5 typedefs?

Yes.

>    typedef foo6 {
>         type foo4 {
>           enum A2 {
>             if-feature bar;
>         }
>     }
> 
> According to the spec, adding if-feature in foo6 is also allowed.

Yes.

> 
>    typedef foo7 {
>         type foo4 {
>           enum A1 {
>             if-feature bar;
>         }
>     }
> 
> Is the A1 enum in foo7 conditional on feature foo and bar, or just bar?

Both IMO - again compare w/ nodes in groupings.


We probably need text to clarify these situations.


/martin


From nobody Tue Nov 10 13:38:16 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 275C81A9133 for <netmod@ietfa.amsl.com>; Tue, 10 Nov 2015 13:38:15 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level: 
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=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 mKkxjT9YkKjW for <netmod@ietfa.amsl.com>; Tue, 10 Nov 2015 13:38:12 -0800 (PST)
Received: from mail-lf0-x22f.google.com (mail-lf0-x22f.google.com [IPv6:2a00:1450:4010:c07::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 0E19B1A9130 for <netmod@ietf.org>; Tue, 10 Nov 2015 13:38:11 -0800 (PST)
Received: by lffz63 with SMTP id z63so6156769lff.0 for <netmod@ietf.org>; Tue, 10 Nov 2015 13:38:10 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks_com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=M9Olx5Cc1ky9f9XyAvM5nzZIsKhvkgE7RXh/KcrMptQ=; b=ujDftRr2dmkXFO1fyXwEiJutg/Sp0t8y5XNxha5BMAzbDXncH7Jcau2Xcf5EZLUXQQ Sa6x6zfcJOTaq/kT40Ml/+XCUqE0qLJ6PWwfIUWd2SoET2vaX30tA59rmWWn/AOlxlh4 rvGeDO2QbmdALjHb6k2XX3mBjgJ/7o1zEqqwNpv/w1InIbrTpKqqxPsdPBH/uAOet8Uf PrMS01z3sHJYbrZsrRbZNGQj6NkVrsq8eX18xYgVtx8WXtYEptoY/hUsDnZW8WdEkG8/ Z11tmG8WpMCHGX3SJ+iKH+gPEDHjLzBwfLxLY2WERzuHNelhZEgPO5LYmxWXRkAKh1WP e3KQ==
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=M9Olx5Cc1ky9f9XyAvM5nzZIsKhvkgE7RXh/KcrMptQ=; b=kRH9A2x/DhqJuQIupoS1bobxUH16ODA2fXFWL6h7k3Y8R0moaIImmcyVzUpQetMoQO JNl3Is8uUK47EwB8z1b903ZsRsVT0K6mlbnvQakl32W4ymnZpi3OMtWXNSGprkF7zuTQ Tr+UonoJPR9TbDfbI2Ge/8UpsjdfbxW3iE8flIC16pN+9bDM47tQKz89mdF07fZ7cApI YL4ke8oZ7rSXn2p9fuGLVCWGdTU/dJyLYkt4rytjWyDPD+zqyA/39bp/0kIXKN0TDFRn IrdvegQHVfQy++IowblsyIcrDkFl1clO7b7gKzwVDSYB8jSytYfh2UJqEMfjCm1YDnBZ v0/Q==
X-Gm-Message-State: ALoCoQlVz9omVGlExx8fk8BOrjlpvzXvR7qgtCPs5mXw4lSqCDmRBkUTgnueBYTub08pz5xG6x9H
MIME-Version: 1.0
X-Received: by 10.25.44.15 with SMTP id s15mr2723981lfs.37.1447191490088; Tue, 10 Nov 2015 13:38:10 -0800 (PST)
Received: by 10.112.144.106 with HTTP; Tue, 10 Nov 2015 13:38:09 -0800 (PST)
In-Reply-To: <20151110.213214.985300503025710545.mbj@tail-f.com>
References: <CABCOCHROTgZ_yRi+rm8pSw7JL8O+oJFqEJqc2zWhT3xPq+i0bg@mail.gmail.com> <20151110.084058.1926962977487601733.mbj@tail-f.com> <CABCOCHQHQB=QkaCkafkhijCuSrxm0KdDaknE6KfoSCBEHCcdJg@mail.gmail.com> <20151110.213214.985300503025710545.mbj@tail-f.com>
Date: Tue, 10 Nov 2015 13:38:09 -0800
Message-ID: <CABCOCHRdysS1paemq-knE3QqVuPxKw2WsWPNrvC+54we62F7YQ@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Martin Bjorklund <mbj@tail-f.com>
Content-Type: multipart/alternative; boundary=001a11403c5cb0695a0524368674
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/3jkvYbC8oIF6FUwnwr5LXARZ5gA>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] Y10 clarification
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 10 Nov 2015 21:38:15 -0000

--001a11403c5cb0695a0524368674
Content-Type: text/plain; charset=UTF-8

On Tue, Nov 10, 2015 at 12:32 PM, Martin Bjorklund <mbj@tail-f.com> wrote:

> Andy Bierman <andy@yumaworks.com> wrote:
> > On Mon, Nov 9, 2015 at 11:40 PM, Martin Bjorklund <mbj@tail-f.com>
> wrote:
> >
> > > Andy Bierman <andy@yumaworks.com> wrote:
> > > > On Mon, Nov 9, 2015 at 1:11 PM, Martin Bjorklund <mbj@tail-f.com>
> wrote:
> > > >
> > > > > Andy Bierman <andy@yumaworks.com> wrote:
> > > > > > On Mon, Nov 9, 2015 at 10:38 AM, Martin Bjorklund <
> mbj@tail-f.com>
> > > > > wrote:
> > > > > >
> > > > > > > Hi,
> > > > > > >
> > > > > > > I implemented most of the 1.1 features that affect the
> compiler in
> > > > > > > pyang on the flight back from Yokohama.  (if you have 1.1
> modules,
> > > I'd
> > > > > > > appreciate if you could try it out).
> > > > > > >
> > > > > > > In doing this, I realized that I forgot one part of Y10 -
> "allow
> > > > > > > restrictions on enumerations".  If we allow:
> > > > > > >
> > > > > > >     typedef foo2 {
> > > > > > >       type enumeration {
> > > > > > >         enum a;
> > > > > > >         enum b;
> > > > > > >       }
> > > > > > >     }
> > > > > > >     typedef bar2 {
> > > > > > >       type foo2 {
> > > > > > >         enum a;
> > > > > > >       }
> > > > > > >     }
> > > > > > >
> > > > > > > we should also allow:
> > > > > > >
> > > > > > >     typedef foo2 {
> > > > > > >       type bits {
> > > > > > >         bit a;
> > > > > > >         bit b;
> > > > > > >       }
> > > > > > >     }
> > > > > > >     typedef bar2 {
> > > > > > >       type foo2 {
> > > > > > >         bit a;
> > > > > > >       }
> > > > > > >     }
> > > > > > >
> > > > > > > It is briefly mentioned in the description of Y10.
> > > > > > >
> > > > > > >
> > > > > > > Comments?
> > > > > > >
> > > > > > >
> > > > > > Yet more complexity without any real use-cases?
> > > > >
> > > > > It is a matter of removing CLRs and inconsistencies.
> > > > >
> > > > > > How does auto-numbering work in both cases?
> > > > > >
> > > > > >
> > > > > >     typedef foo2 {
> > > > > >       type enumeration {
> > > > > >         enum a;
> > > > > >         enum b;
> > > > > >       }
> > > > > >     }
> > > > > >
> > > > > >     typedef foo3 {
> > > > > >       type foo2 {
> > > > > >         enum b;
> > > > > >       }
> > > > > >     }
> > > > > >
> > > > > >     typedef bar1 {
> > > > > >       type enumeration {
> > > > > >         enum b;
> > > > > >       }
> > > > > >     }
> > > > > >
> > > > > >
> > > > > > What is the auto-numbering of enum 'b' in type foo3?
> > > > >
> > > > > There is none.  The text says:
> > > > >
> > > > >   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.
> > > > >
> > > > >
> > > >
> > > > good
> > > >
> > > > Is the refinement allowed to add, remove, or change if-feature-stmts?
> > > > I don't remember seeing any text on that.
> > >
> > > The refine statement cannot address individual enums/bits (it can only
> > > address structure) so the answer is that it is not possible to change
> > > if-feature on enums/bits in refinements.
> > >
> > >
> >
> > It looks like it is --
> >
> >
> >    9.6.3.  Restrictions
> >
> >       An enumeration can be restricted with the "enum" (Section 9.6.4)
> >       statement.
>
> Aha, ok, I thought you meant the "refine" statement.
>
> Since it is ok to add if-feature to a node when a grouoing is used
> (with "refine"), I think it should be ok to add "if-feature" to an
> enum/bit when the type is restricted.
>
> >                  +--------------+---------+-------------+
> >                  | substatement | section | cardinality |
> >                  +--------------+---------+-------------+
> >                  | description  | 7.21.3  | 0..1        |
> >                  | if-feature   | 7.20.2  | 0..n        |
> >                  | reference    | 7.21.4  | 0..1        |
> >                  | status       | 7.21.2  | 0..1        |
> >                  | value        | 9.6.4.2 | 0..1        |
> >                  +--------------+---------+-------------+
> >
> >
> > Sec 9.6.3 says any sub-statement of enum-stmt is allowed
> >
> > All of the derived sub-statements from the refined enum are brought over
> I
> > asume
> >
> >    typedef foo4 {
> >      enumeration {
> >        enum A1 {
> >          if-feature foo;
> >        }
> >        enum A2;
> >      }
> >    }
> >
> >     typedef foo5 {
> >         type foo4 {
> >           enum A1;
> >         }
> >     }
> >
> > Is enum A1 conditional on the foo feature in both foo4 and foo5 typedefs?
>
> Yes.
>
> >    typedef foo6 {
> >         type foo4 {
> >           enum A2 {
> >             if-feature bar;
> >         }
> >     }
> >
> > According to the spec, adding if-feature in foo6 is also allowed.
>
> Yes.
>
> >
> >    typedef foo7 {
> >         type foo4 {
> >           enum A1 {
> >             if-feature bar;
> >         }
> >     }
> >
> > Is the A1 enum in foo7 conditional on feature foo and bar, or just bar?
>
> Both IMO - again compare w/ nodes in groupings.
>
>
> We probably need text to clarify these situations.
>
>

Yes -- it is OK to make a node more conditional but not less conditional.
You cannot take away an if-feature that is defined in the original typedef.
This is easier to say than to enforce since if-feature syntax has been
expanded.

   typedef foo8 {
     type foo4 {
       enum A1 {
         if-feature "bar and not foo";
       }
      }
   }

Is foo8 an error?  IMO, no. It can be very difficult to detect conflicts.
It is easy to just apply all the logic, which may produce an
expression that is always false.




>
> /martin
>

Andy

--001a11403c5cb0695a0524368674
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Tue, Nov 10, 2015 at 12:32 PM, Martin Bjorklund <span dir=3D"ltr">&l=
t;<a href=3D"mailto:mbj@tail-f.com" target=3D"_blank">mbj@tail-f.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">Andy Bierman &lt;<a href=
=3D"mailto:andy@yumaworks.com">andy@yumaworks.com</a>&gt; wrote:<br>
&gt; On Mon, Nov 9, 2015 at 11:40 PM, Martin Bjorklund &lt;<a href=3D"mailt=
o:mbj@tail-f.com">mbj@tail-f.com</a>&gt; wrote:<br>
&gt;<br>
&gt; &gt; Andy Bierman &lt;<a href=3D"mailto:andy@yumaworks.com">andy@yumaw=
orks.com</a>&gt; wrote:<br>
&gt; &gt; &gt; On Mon, Nov 9, 2015 at 1:11 PM, Martin Bjorklund &lt;<a href=
=3D"mailto:mbj@tail-f.com">mbj@tail-f.com</a>&gt; wrote:<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Andy Bierman &lt;<a href=3D"mailto:andy@yumaworks.com">=
andy@yumaworks.com</a>&gt; wrote:<br>
&gt; &gt; &gt; &gt; &gt; On Mon, Nov 9, 2015 at 10:38 AM, Martin Bjorklund =
&lt;<a href=3D"mailto:mbj@tail-f.com">mbj@tail-f.com</a>&gt;<br>
&gt; &gt; &gt; &gt; wrote:<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Hi,<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; I implemented most of the 1.1 features that a=
ffect the compiler in<br>
&gt; &gt; &gt; &gt; &gt; &gt; pyang on the flight back from Yokohama.=C2=A0=
 (if you have 1.1 modules,<br>
&gt; &gt; I&#39;d<br>
&gt; &gt; &gt; &gt; &gt; &gt; appreciate if you could try it out).<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; In doing this, I realized that I forgot one p=
art of Y10 - &quot;allow<br>
&gt; &gt; &gt; &gt; &gt; &gt; restrictions on enumerations&quot;.=C2=A0 If =
we allow:<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0typedef foo2 {<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0type enumeration {<=
br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0enum a;<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0enum b;<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0}<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0typedef bar2 {<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0type foo2 {<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0enum a;<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0}<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; we should also allow:<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0typedef foo2 {<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0type bits {<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0bit a;<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0bit b;<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0}<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0typedef bar2 {<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0type foo2 {<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0bit a;<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
&gt; &gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0}<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; It is briefly mentioned in the description of=
 Y10.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Comments?<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; Yet more complexity without any real use-cases?<br=
>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; It is a matter of removing CLRs and inconsistencies.<br=
>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; How does auto-numbering work in both cases?<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0typedef foo2 {<br>
&gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0type enumeration {<br>
&gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0enum a;<br>
&gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0enum b;<br>
&gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
&gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0}<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0typedef foo3 {<br>
&gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0type foo2 {<br>
&gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0enum b;<br>
&gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
&gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0}<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0typedef bar1 {<br>
&gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0type enumeration {<br>
&gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0enum b;<br>
&gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
&gt; &gt; &gt; &gt; &gt;=C2=A0 =C2=A0 =C2=A0}<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; What is the auto-numbering of enum &#39;b&#39; in =
type foo3?<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; There is none.=C2=A0 The text says:<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0When an existing enumeration type is restri=
cted, the &quot;value&quot;<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0statement MUST either have the same value a=
s in the base type or not<br>
&gt; &gt; &gt; &gt;=C2=A0 =C2=A0be present, in which case the value is the =
same as in the base type.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; good<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Is the refinement allowed to add, remove, or change if-featu=
re-stmts?<br>
&gt; &gt; &gt; I don&#39;t remember seeing any text on that.<br>
&gt; &gt;<br>
&gt; &gt; The refine statement cannot address individual enums/bits (it can=
 only<br>
&gt; &gt; address structure) so the answer is that it is not possible to ch=
ange<br>
&gt; &gt; if-feature on enums/bits in refinements.<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt;<br>
&gt; It looks like it is --<br>
&gt;<br>
&gt;<br>
&gt;=C2=A0 =C2=A0 9.6.3.=C2=A0 Restrictions<br>
&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0An enumeration can be restricted with the &q=
uot;enum&quot; (Section 9.6.4)<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0statement.<br>
<br>
Aha, ok, I thought you meant the &quot;refine&quot; statement.<br>
<br>
Since it is ok to add if-feature to a node when a grouoing is used<br>
(with &quot;refine&quot;), I think it should be ok to add &quot;if-feature&=
quot; to an<br>
enum/bit when the type is restricted.<br>
<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 +-------=
-------+---------+-------------+<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | substa=
tement | section | cardinality |<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 +-------=
-------+---------+-------------+<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | descri=
ption=C2=A0 | 7.21.3=C2=A0 | 0..1=C2=A0 =C2=A0 =C2=A0 =C2=A0 |<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | if-fea=
ture=C2=A0 =C2=A0| 7.20.2=C2=A0 | 0..n=C2=A0 =C2=A0 =C2=A0 =C2=A0 |<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | refere=
nce=C2=A0 =C2=A0 | 7.21.4=C2=A0 | 0..1=C2=A0 =C2=A0 =C2=A0 =C2=A0 |<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | status=
=C2=A0 =C2=A0 =C2=A0 =C2=A0| 7.21.2=C2=A0 | 0..1=C2=A0 =C2=A0 =C2=A0 =C2=A0=
 |<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | value=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 | 9.6.4.2 | 0..1=C2=A0 =C2=A0 =C2=A0 =C2=A0 |<b=
r>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 +-------=
-------+---------+-------------+<br>
&gt;<br>
&gt;<br>
&gt; Sec 9.6.3 says any sub-statement of enum-stmt is allowed<br>
&gt;<br>
&gt; All of the derived sub-statements from the refined enum are brought ov=
er I<br>
&gt; asume<br>
&gt;<br>
&gt;=C2=A0 =C2=A0 typedef foo4 {<br>
&gt;=C2=A0 =C2=A0 =C2=A0 enumeration {<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 enum A1 {<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 if-feature foo;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 }<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 enum A2;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 }<br>
&gt;=C2=A0 =C2=A0 }<br>
&gt;<br>
&gt;=C2=A0 =C2=A0 =C2=A0typedef foo5 {<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0type foo4 {<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0enum A1;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
&gt;=C2=A0 =C2=A0 =C2=A0}<br>
&gt;<br>
&gt; Is enum A1 conditional on the foo feature in both foo4 and foo5 typede=
fs?<br>
<br>
Yes.<br>
<br>
&gt;=C2=A0 =C2=A0 typedef foo6 {<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0type foo4 {<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0enum A2 {<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if-feature bar;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
&gt;=C2=A0 =C2=A0 =C2=A0}<br>
&gt;<br>
&gt; According to the spec, adding if-feature in foo6 is also allowed.<br>
<br>
Yes.<br>
<br>
&gt;<br>
&gt;=C2=A0 =C2=A0 typedef foo7 {<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0type foo4 {<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0enum A1 {<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if-feature bar;<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
&gt;=C2=A0 =C2=A0 =C2=A0}<br>
&gt;<br>
&gt; Is the A1 enum in foo7 conditional on feature foo and bar, or just bar=
?<br>
<br>
Both IMO - again compare w/ nodes in groupings.<br>
<br>
<br>
We probably need text to clarify these situations.<br>
<span class=3D"HOEnZb"><font color=3D"#888888"><br></font></span></blockquo=
te><div><br></div><div><br></div><div>Yes -- it is OK to make a node more c=
onditional but not less conditional.</div><div>You cannot take away an if-f=
eature that is defined in the original typedef.</div><div>This is easier to=
 say than to enforce since if-feature syntax has been expanded.</div><div><=
br></div><div>=C2=A0 =C2=A0typedef foo8 {</div><div>=C2=A0 =C2=A0 =C2=A0typ=
e foo4 {</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0enum A1 {</div><div>=C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0if-feature &quot;bar and not foo&quot;;</div><di=
v>=C2=A0 =C2=A0 =C2=A0 =C2=A0}</div><div>=C2=A0 =C2=A0 =C2=A0 }</div><div>=
=C2=A0 =C2=A0}</div><div><br></div><div>Is foo8 an error?=C2=A0 IMO, no. It=
 can be very difficult to detect conflicts.</div><div>It is easy to just ap=
ply all the logic, which may produce an</div><div>expression that is always=
 false.</div><div><br></div><div><br></div><div>=C2=A0<br></div><blockquote=
 class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc soli=
d;padding-left:1ex"><span class=3D"HOEnZb"><font color=3D"#888888">
<br>
/martin<br>
</font></span></blockquote></div><br></div><div class=3D"gmail_extra">Andy<=
/div><div class=3D"gmail_extra"><br></div></div>

--001a11403c5cb0695a0524368674--


From nobody Tue Nov 10 17:04:38 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 919041ACE39 for <netmod@ietfa.amsl.com>; Tue, 10 Nov 2015 17:04:37 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.678
X-Spam-Level: 
X-Spam-Status: No, score=-0.678 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, J_CHICKENPOX_84=0.6, 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 c9GqTf-8nFfO for <netmod@ietfa.amsl.com>; Tue, 10 Nov 2015 17:04:35 -0800 (PST)
Received: from mail-lf0-x22d.google.com (mail-lf0-x22d.google.com [IPv6:2a00:1450:4010:c07::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 0F5591ACE42 for <netmod@ietf.org>; Tue, 10 Nov 2015 17:04:35 -0800 (PST)
Received: by lffu14 with SMTP id u14so8361925lff.1 for <netmod@ietf.org>; Tue, 10 Nov 2015 17:04:33 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks_com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=MUe1h/nrNSjVPPQrdQtUc9fLaIt/rL5jU9v8T5ccM0A=; b=RTMx9IJ2slXuqL2O7wid+XYIZErASvcI0Jqncoz/eJfI9ZezdEiv+kkyGaOPDMXbMr nFYaBTOPwG2JleUvktedg4ToGCPqNJh9i+1lMRK81hnmpq9e45HyoNyQ5iC/PVw7hYlY OmTq1IQ1MDsHXhZ8/x44NzGesaizWnUs+yhzjRMWfb637AZAe5plZjfIjFDUi7KVj5ig U8RJ+ZS3PYrIUNKf9vIH/PWMwL153vRtEOGldTRxqGSLmFbXvqXjNo0ygLsHdB0yFTSC nJWk0xVk4QNvF1olTBgPuHoBete9tyCt6GECwxh2WuJZ8jtl+M9B4dz3M68BlabWnWs4 lrhg==
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=MUe1h/nrNSjVPPQrdQtUc9fLaIt/rL5jU9v8T5ccM0A=; b=fajETF83rddJuSXiQllZ8ArU4ElSuD+UOeANacVM4H7K0WAi550h9ndGOC/FeNj7pW W/3f4F9/S8Qg4uEd5ZxnRU8fZnFw5x+4kWdeMCSwLpc8P2F+5Gv/RFw5kPqNPmw3JKl/ BUwX7SnNXJA4DdRorOTkH3L3MCEtNPDXm0D6i+9bCvt2Curw/4mvDErWaooJCDif2HWb 7ckzQZbwgpnXQmvqFZiysD1e1EDIZamiaI4lkbbzyX2y5fi9GV9bWa0T91NgnTMPaEkA mU+YOrQpF1pnVKXblcZAKIGazAcyzKUAFI+k7giqnW7IdrEmq3Ch72r2qm97f/ViU4tl d/Bg==
X-Gm-Message-State: ALoCoQlFs5FcFAMfKjJmAAFFSUMi7/ZvKRYHozVjjA1sQms6cPkhNIsMhFwKAIBxCD3Lhkq7QFvj
MIME-Version: 1.0
X-Received: by 10.25.218.135 with SMTP id r129mr3095576lfg.82.1447203873161; Tue, 10 Nov 2015 17:04:33 -0800 (PST)
Received: by 10.112.144.106 with HTTP; Tue, 10 Nov 2015 17:04:33 -0800 (PST)
In-Reply-To: <5641FC2F.9060703@hq.sk>
References: <9C0E7EF3-6DEC-493D-91C8-B75B2E29A2D9@nic.cz> <20151105065110.GA98886@elstar.local> <FCAA11D8-6090-49D8-9312-5B88BB0D8806@nic.cz> <564120B1.2000001@hq.sk> <CABCOCHQF-yRCgG47UqTWjhOBWvz_yLsw=F_GZ4DYiROt9_QTZw@mail.gmail.com> <5641FC2F.9060703@hq.sk>
Date: Tue, 10 Nov 2015 17:04:33 -0800
Message-ID: <CABCOCHSUrbk-KVNtcKRO8hUAj83akHb=+7abJoVvVgUSTG7sRA@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Robert Varga <nite@hq.sk>
Content-Type: multipart/alternative; boundary=001a114037e4c7147a052439685f
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/NTQm6ovNlI79ikfNxpVm6mhy1RY>
Cc: NETMOD WG <netmod@ietf.org>
Subject: Re: [netmod] JSON encoding of anyxml
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 11 Nov 2015 01:04:37 -0000

--001a114037e4c7147a052439685f
Content-Type: text/plain; charset=UTF-8

On Tue, Nov 10, 2015 at 6:16 AM, Robert Varga <nite@hq.sk> wrote:

> Hello,
>
> I am not favor of it, either, but RFC6020 is here and is being widely
> deployed. So is RESTCONF+JSON, which is favored by application developers
> in the field today, as is NETCONF devices producing anyxml. We do need a
> reasonable way of bridging the two -- no matter whether it is configuration
> or operational data.
>
>

I do not agree that the use of anyxml as arbitrary XML is deployed at all.
I do not agree that all the "extra XML bits" that are causing so much
concern
are ever saved in a datastore.  Martin says we need anyxml for RPC input
and output. Maybe. This seems proprietary, since no NETCONF/RESTCONF
operation depends on anything except elements and attributes.

If the JSON looks like a leaf, then no tool is going to analyse the string
to see if it a well-formed XML instance document, so it can be re-parsed.
Unless a JSON array or object is started, the tool will not
think it is dealing with any child nodes.

There are lots of things that NETCONF can do that are trimmed out of
RESTCONF.
JSON representation or raw XML seems really low priority to me.
Are there any use-cases? What processing instructions, character entities,
etc.
are being used in the wild already?  None? Don't we have enough real
problems to
solve without rat-holing over corner-cases all the time?


Andy




> At any rate, a simple string is not going to cut it, as it does not retain
> modeling context nor encoding details of the data being transported --
> rendering reliable automated translation impossible.
>
> Bye,
> Robert
>
> On 11/10/2015 03:19 AM, Andy Bierman wrote:
>
> Hi,
>
> I am not in favor of anything XML or JSON specific in YANG.
> In reality, nobody uses anyxml as a configuration data node,
> so an improper roundtrip translation from JSON to XML
> is not going to happen.
>
> Encoding anyxml as a string is not going to happen either.
> Not sure what the difference between 'anyxml' and 'type string'
> is at that point.
>
> Why does YANG even need a special type of leaf that is a blob of XML?
> Can't a single-quoted string serve that purpose?
>
>
> Andy
>
>
> On Mon, Nov 9, 2015 at 2:39 PM, Robert Varga < <nite@hq.sk>nite@hq.sk>
> wrote:
>
>> On 11/05/2015 09:56 AM, Ladislav Lhotka wrote:
>>
>>> Given the resolution of Y34 in YANG 1.1, Martin's proposal to encode
>>>> >anyxml as a string that has XML inside makes sense.
>>>>
>>> The possibility of sending arbitrary (non-YANG) data in the native
>>> encoding can occassionally be useful, and even more so in JSON. For
>>> example, I have to work with a JSON-based format for specifying DNSSEC
>>> signing policies. While my plan is to eventually replace this format with
>>> YANG-modelled data, it would help me, as an interim solution, to simply
>>> send the data in the legacy format. That's why I want to retain the
>>> existing rules for JSON encoding of anyxml, unless something else is
>>> available. Sending XML documents as strings is still possible although IMO
>>> next to useless.
>>>
>>
>> I fear requiring JSON in anyxml will render RESTCONF-to-NETCONF proxies
>> non-transparent in case the sender (a NETCONF NE) and receiver (an RESTCONF
>> application) have out-of-band knowledge of the data being sent over anyxml.
>> Given the proxy does not have this knowledge, it cannot reliably deal with
>> lists, as they lack a container element in XML encoding.
>>
>> Can we perhaps indicate the encoding of the anyxml data chunk in JSON as
>> a separate well-known attribute?
>>
>> Bye,
>> Robert
>>
>> _______________________________________________
>> netmod mailing list
>> netmod@ietf.org
>> https://www.ietf.org/mailman/listinfo/netmod
>>
>
>
>

--001a114037e4c7147a052439685f
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Tue, Nov 10, 2015 at 6:16 AM, Robert Varga <span dir=3D"ltr">&lt;<a =
href=3D"mailto:nite@hq.sk" target=3D"_blank">nite@hq.sk</a>&gt;</span> wrot=
e:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-l=
eft:1px #ccc solid;padding-left:1ex">
 =20
   =20
 =20
  <div text=3D"#000000" bgcolor=3D"#FFFFFF">
    <div>Hello,<br>
      <br>
      I am not favor of it, either, but RFC6020 is here and is being
      widely deployed. So is RESTCONF+JSON, which is favored by
      application developers in the field today, as is NETCONF devices
      producing anyxml. We do need a reasonable way of bridging the two
      -- no matter whether it is configuration or operational data.<br>
      <br></div></div></blockquote><div><br></div><div><br></div><div>I do =
not agree that the use of anyxml as arbitrary XML is deployed at all.</div>=
<div>I do not agree that all the &quot;extra XML bits&quot; that are causin=
g so much concern</div><div>are ever saved in a datastore.=C2=A0 Martin say=
s we need anyxml for RPC input</div><div>and output. Maybe. This seems prop=
rietary, since no NETCONF/RESTCONF</div><div>operation depends on anything =
except elements and attributes.</div><div><br></div><div>If the JSON looks =
like a leaf, then no tool is going to analyse the string</div><div>to see i=
f it a well-formed XML instance document, so it can be re-parsed.</div><div=
>Unless a JSON array or object is started, the tool will not</div><div>thin=
k it is dealing with any child nodes.</div><div><br></div><div>There are lo=
ts of things that NETCONF can do that are trimmed out of RESTCONF.</div><di=
v>JSON representation or raw XML seems really low priority to me.</div><div=
>Are there any use-cases? What processing instructions, character entities,=
 etc.</div><div>are being used in the wild already?=C2=A0 None? Don&#39;t w=
e have enough real problems to</div><div>solve without rat-holing over corn=
er-cases all the time?</div><div><br></div><div><br></div><div>Andy</div><d=
iv><br></div><div><br></div><div>=C2=A0<br></div><blockquote class=3D"gmail=
_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:=
1ex"><div text=3D"#000000" bgcolor=3D"#FFFFFF"><div>
      At any rate, a simple string is not going to cut it, as it does
      not retain modeling context nor encoding details of the data being
      transported -- rendering reliable automated translation
      impossible.<br>
      <br>
      Bye,<br>
      Robert<br>
      <br>
      On 11/10/2015 03:19 AM, Andy Bierman wrote:<br>
    </div>
    <blockquote type=3D"cite">
      <div dir=3D"ltr">Hi,
        <div><br>
        </div>
        <div>I am not in favor of anything XML or JSON specific in YANG.</d=
iv>
        <div>In reality, nobody uses anyxml as a configuration data
          node,</div>
        <div>so an improper roundtrip translation from JSON to XML</div>
        <div>is not going to happen.</div>
        <div><br>
        </div>
        <div>Encoding anyxml as a string is not going to happen either.</di=
v>
        <div>Not sure what the difference between &#39;anyxml&#39; and &#39=
;type
          string&#39;</div>
        <div>is at that point.</div>
        <div><br>
        </div>
        <div>Why does YANG even need a special type of leaf that is a
          blob of XML?</div>
        <div>Can&#39;t a single-quoted string serve that purpose?</div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div>Andy</div>
        <div><br>
          <div class=3D"gmail_extra"><br>
            <div class=3D"gmail_quote">On Mon, Nov 9, 2015 at 2:39 PM,
              Robert Varga <span dir=3D"ltr">&lt;<a href=3D"mailto:nite@hq.=
sk" target=3D"_blank"></a><a href=3D"mailto:nite@hq.sk" target=3D"_blank">n=
ite@hq.sk</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">On
                11/05/2015 09:56 AM, Ladislav Lhotka wrote:<br>
                <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8e=
x;border-left:1px #ccc solid;padding-left:1ex">
                  <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .=
8ex;border-left:1px #ccc solid;padding-left:1ex">
                    Given the resolution of Y34 in YANG 1.1, Martin&#39;s
                    proposal to encode<br>
                    &gt;anyxml as a string that has XML inside makes
                    sense.<br>
                  </blockquote>
                  The possibility of sending arbitrary (non-YANG) data
                  in the native encoding can occassionally be useful,
                  and even more so in JSON. For example, I have to work
                  with a JSON-based format for specifying DNSSEC signing
                  policies. While my plan is to eventually replace this
                  format with YANG-modelled data, it would help me, as
                  an interim solution, to simply send the data in the
                  legacy format. That&#39;s why I want to retain the
                  existing rules for JSON encoding of anyxml, unless
                  something else is available. Sending XML documents as
                  strings is still possible although IMO next to
                  useless.<br>
                </blockquote>
                <br>
                I fear requiring JSON in anyxml will render
                RESTCONF-to-NETCONF proxies non-transparent in case the
                sender (a NETCONF NE) and receiver (an RESTCONF
                application) have out-of-band knowledge of the data
                being sent over anyxml. Given the proxy does not have
                this knowledge, it cannot reliably deal with lists, as
                they lack a container element in XML encoding.<br>
                <br>
                Can we perhaps indicate the encoding of the anyxml data
                chunk in JSON as a separate well-known attribute?<br>
                <br>
                Bye,<br>
                Robert<br>
                <br>
                _______________________________________________<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" re=
l=3D"noreferrer" target=3D"_blank">https://www.ietf.org/mailman/listinfo/ne=
tmod</a><br>
              </blockquote>
            </div>
            <br>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
  </div>

</blockquote></div><br></div></div>

--001a114037e4c7147a052439685f--


From nobody Tue Nov 10 22:33:51 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 2BF6D1B2CA3 for <netmod@ietfa.amsl.com>; Tue, 10 Nov 2015 22:33:50 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.311
X-Spam-Level: 
X-Spam-Status: No, score=-1.311 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, J_CHICKENPOX_84=0.6, 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 fH9qUpI-F9So for <netmod@ietfa.amsl.com>; Tue, 10 Nov 2015 22:33:48 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id 596901B2C66 for <netmod@ietf.org>; Tue, 10 Nov 2015 22:33:48 -0800 (PST)
Received: from localhost (unknown [213.136.39.104]) by mail.tail-f.com (Postfix) with ESMTPSA id 3E7241AE009B; Wed, 11 Nov 2015 07:33:47 +0100 (CET)
Date: Wed, 11 Nov 2015 07:34:23 +0100 (CET)
Message-Id: <20151111.073423.361054647288765847.mbj@tail-f.com>
To: andy@yumaworks.com
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <CABCOCHSUrbk-KVNtcKRO8hUAj83akHb=+7abJoVvVgUSTG7sRA@mail.gmail.com>
References: <CABCOCHQF-yRCgG47UqTWjhOBWvz_yLsw=F_GZ4DYiROt9_QTZw@mail.gmail.com> <5641FC2F.9060703@hq.sk> <CABCOCHSUrbk-KVNtcKRO8hUAj83akHb=+7abJoVvVgUSTG7sRA@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/IInkoAOXtE_Ma8M4ERUTnLlKiZs>
Cc: netmod@ietf.org
Subject: Re: [netmod] JSON encoding of anyxml
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 11 Nov 2015 06:33:50 -0000

Andy Bierman <andy@yumaworks.com> wrote:
> On Tue, Nov 10, 2015 at 6:16 AM, Robert Varga <nite@hq.sk> wrote:
> 
> > Hello,
> >
> > I am not favor of it, either, but RFC6020 is here and is being widely
> > deployed. So is RESTCONF+JSON, which is favored by application developers
> > in the field today, as is NETCONF devices producing anyxml. We do need a
> > reasonable way of bridging the two -- no matter whether it is configuration
> > or operational data.
> >
> >
> 
> I do not agree that the use of anyxml as arbitrary XML is deployed at all.
> I do not agree that all the "extra XML bits" that are causing so much
> concern
> are ever saved in a datastore.  Martin says we need anyxml for RPC input
> and output. Maybe. This seems proprietary, since no NETCONF/RESTCONF
> operation depends on anything except elements and attributes.

Specifically, we need anyxml for ietf-netconf, since NETCONF is
supposedly data modeling language agnostic.

One option could be to deprecte anyxml (or remove it) in YANG 1.1, and
if we ever do a new version of NETCONF, we use anydata instead.


/martin



> If the JSON looks like a leaf, then no tool is going to analyse the string
> to see if it a well-formed XML instance document, so it can be re-parsed.
> Unless a JSON array or object is started, the tool will not
> think it is dealing with any child nodes.
> 
> There are lots of things that NETCONF can do that are trimmed out of
> RESTCONF.
> JSON representation or raw XML seems really low priority to me.
> Are there any use-cases? What processing instructions, character entities,
> etc.
> are being used in the wild already?  None? Don't we have enough real
> problems to
> solve without rat-holing over corner-cases all the time?
> 
> 
> Andy
> 
> 
> 
> 
> > At any rate, a simple string is not going to cut it, as it does not retain
> > modeling context nor encoding details of the data being transported --
> > rendering reliable automated translation impossible.
> >
> > Bye,
> > Robert
> >
> > On 11/10/2015 03:19 AM, Andy Bierman wrote:
> >
> > Hi,
> >
> > I am not in favor of anything XML or JSON specific in YANG.
> > In reality, nobody uses anyxml as a configuration data node,
> > so an improper roundtrip translation from JSON to XML
> > is not going to happen.
> >
> > Encoding anyxml as a string is not going to happen either.
> > Not sure what the difference between 'anyxml' and 'type string'
> > is at that point.
> >
> > Why does YANG even need a special type of leaf that is a blob of XML?
> > Can't a single-quoted string serve that purpose?
> >
> >
> > Andy
> >
> >
> > On Mon, Nov 9, 2015 at 2:39 PM, Robert Varga < <nite@hq.sk>nite@hq.sk>
> > wrote:
> >
> >> On 11/05/2015 09:56 AM, Ladislav Lhotka wrote:
> >>
> >>> Given the resolution of Y34 in YANG 1.1, Martin's proposal to encode
> >>>> >anyxml as a string that has XML inside makes sense.
> >>>>
> >>> The possibility of sending arbitrary (non-YANG) data in the native
> >>> encoding can occassionally be useful, and even more so in JSON. For
> >>> example, I have to work with a JSON-based format for specifying DNSSEC
> >>> signing policies. While my plan is to eventually replace this format with
> >>> YANG-modelled data, it would help me, as an interim solution, to simply
> >>> send the data in the legacy format. That's why I want to retain the
> >>> existing rules for JSON encoding of anyxml, unless something else is
> >>> available. Sending XML documents as strings is still possible although IMO
> >>> next to useless.
> >>>
> >>
> >> I fear requiring JSON in anyxml will render RESTCONF-to-NETCONF proxies
> >> non-transparent in case the sender (a NETCONF NE) and receiver (an RESTCONF
> >> application) have out-of-band knowledge of the data being sent over anyxml.
> >> Given the proxy does not have this knowledge, it cannot reliably deal with
> >> lists, as they lack a container element in XML encoding.
> >>
> >> Can we perhaps indicate the encoding of the anyxml data chunk in JSON as
> >> a separate well-known attribute?
> >>
> >> Bye,
> >> Robert
> >>
> >> _______________________________________________
> >> netmod mailing list
> >> netmod@ietf.org
> >> https://www.ietf.org/mailman/listinfo/netmod
> >>
> >
> >
> >


From nobody Wed Nov 11 00:07:36 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 3888B1B3445 for <netmod@ietfa.amsl.com>; Wed, 11 Nov 2015 00:07:35 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.26
X-Spam-Level: 
X-Spam-Status: No, score=-3.26 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, J_CHICKENPOX_84=0.6, 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 oGmOnKgtxZFz for <netmod@ietfa.amsl.com>; Wed, 11 Nov 2015 00:07:33 -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 09A271B343F for <netmod@ietf.org>; Wed, 11 Nov 2015 00:07:32 -0800 (PST)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id 0AC2C88D; Wed, 11 Nov 2015 09:07: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 a-rDXVoqvAH4; Wed, 11 Nov 2015 09:07: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; Wed, 11 Nov 2015 09:07:30 +0100 (CET)
Received: from localhost (demetrius1.jacobs-university.de [212.201.44.46]) by hermes.jacobs-university.de (Postfix) with ESMTP id CBD2B2004E; Wed, 11 Nov 2015 09:07:29 +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 IQWlZGq2RafY; Wed, 11 Nov 2015 09:07: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 3BEB62003B; Wed, 11 Nov 2015 09:07:28 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id 2EEDE387C9E9; Wed, 11 Nov 2015 09:07:28 +0100 (CET)
Date: Wed, 11 Nov 2015 09:07:28 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Martin Bjorklund <mbj@tail-f.com>
Message-ID: <20151111080728.GA21672@elstar.local>
Mail-Followup-To: Martin Bjorklund <mbj@tail-f.com>, andy@yumaworks.com, netmod@ietf.org
References: <CABCOCHQF-yRCgG47UqTWjhOBWvz_yLsw=F_GZ4DYiROt9_QTZw@mail.gmail.com> <5641FC2F.9060703@hq.sk> <CABCOCHSUrbk-KVNtcKRO8hUAj83akHb=+7abJoVvVgUSTG7sRA@mail.gmail.com> <20151111.073423.361054647288765847.mbj@tail-f.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20151111.073423.361054647288765847.mbj@tail-f.com>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/qFat5F0kX8eawxiIfp0pfyZsVu8>
Cc: netmod@ietf.org
Subject: Re: [netmod] JSON encoding of anyxml
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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 11 Nov 2015 08:07:35 -0000

On Wed, Nov 11, 2015 at 07:34:23AM +0100, Martin Bjorklund wrote:
> Andy Bierman <andy@yumaworks.com> wrote:
> > On Tue, Nov 10, 2015 at 6:16 AM, Robert Varga <nite@hq.sk> wrote:
> > 
> > > Hello,
> > >
> > > I am not favor of it, either, but RFC6020 is here and is being widely
> > > deployed. So is RESTCONF+JSON, which is favored by application developers
> > > in the field today, as is NETCONF devices producing anyxml. We do need a
> > > reasonable way of bridging the two -- no matter whether it is configuration
> > > or operational data.
> > >
> > >
> > 
> > I do not agree that the use of anyxml as arbitrary XML is deployed at all.
> > I do not agree that all the "extra XML bits" that are causing so much
> > concern
> > are ever saved in a datastore.  Martin says we need anyxml for RPC input
> > and output. Maybe. This seems proprietary, since no NETCONF/RESTCONF
> > operation depends on anything except elements and attributes.
> 
> Specifically, we need anyxml for ietf-netconf, since NETCONF is
> supposedly data modeling language agnostic.
> 
> One option could be to deprecte anyxml (or remove it) in YANG 1.1, and
> if we ever do a new version of NETCONF, we use anydata instead.
>

We are effectively deprecating anyxml in YANG 1.1. We have reached
agreement on Y34-05 and I do not see any new arguments popping up.

The JSON encoding document has to specify the encoding of an
effectively deprecated construct that was designed to encode any XML.

/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 Nov 11 01:29:04 2015
Return-Path: <wlupton@broadband-forum.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 9B9C91B48C1 for <netmod@ietfa.amsl.com>; Wed, 11 Nov 2015 01:29:02 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5
X-Spam-Level: 
X-Spam-Status: No, score=-5 tagged_above=-999 required=5 tests=[BAYES_00=-1.9,  GB_I_LETTER=-2, HTML_MESSAGE=0.001, J_CHICKENPOX_34=0.6, J_CHICKENPOX_54=0.6, 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 A7OcDqa1iXVe for <netmod@ietfa.amsl.com>; Wed, 11 Nov 2015 01:29:01 -0800 (PST)
Received: from mail.amsl.com (mail.amsl.com [4.31.198.40]) by ietfa.amsl.com (Postfix) with ESMTP id 1173E1B48BE for <netmod@ietf.org>; Wed, 11 Nov 2015 01:29:01 -0800 (PST)
Received: from localhost (localhost [127.0.0.1]) by c8a.amsl.com (Postfix) with ESMTP id 3EA191E5A3D; Wed, 11 Nov 2015 01:28:51 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
Received: from c8a.amsl.com ([127.0.0.1]) by localhost (c8a.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Rv1k-0s1umuS; Wed, 11 Nov 2015 01:28:51 -0800 (PST)
Received: from [192.168.1.100] (host5-81-222-81.range5-81.btcentralplus.com [5.81.222.81]) by c8a.amsl.com (Postfix) with ESMTPSA id 7D7231E5A3C; Wed, 11 Nov 2015 01:28:50 -0800 (PST)
From: William Lupton <wlupton@broadband-forum.org>
Content-Type: multipart/alternative; boundary="Apple-Mail=_A8B0AC2E-20B0-4EB8-BABD-DEDB5AD83073"
Date: Wed, 11 Nov 2015 09:28:57 +0000
To: netmod@ietf.org
Message-Id: <6406A7E0-EBC1-465F-A611-8D54859900EA@broadband-forum.org>
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
X-Mailer: Apple Mail (2.2104)
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/6Euy-NE8MRmPvtQ4GH_9-3fyxOQ>
Subject: [netmod] Modelling ports that can support multiple physical layer standards
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 11 Nov 2015 09:29:02 -0000

--Apple-Mail=_A8B0AC2E-20B0-4EB8-BABD-DEDB5AD83073
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

All,

We would much appreciate comments and suggestions on the question posed =
below.

Thanks,
William Lupton
(Software Architect, Broadband Forum)

----------------

In the Broadband Forum we need to model a port that can support several =
physical layer standards, but only one at a time. An initial handshake =
mechanism determines which of these standards will actually be used. We =
have been trying to decide how best to model this according to the =
letter and spirit of RFCs 6020, 6087, 7223 etc.

Consider a port, a handshake mechanism "color-selector" and two physical =
layer standards "green" and "red". Each of these is modelled via a YANG =
module of the same name ("port" probably uses the ietf-entity module). =
Here are the approaches that we have considered:

**** Option 1 "direct augment" ****

color-selector, green and red all directly augment =
/if:interfaces/if:interface. An instance of each of them is associated =
with the port. See part of the tree here (YANG on request).

module: ietf-interfaces
   +--rw interfaces
   |  +--rw interface* [name]
   |     +--rw name                        string
   |     +--rw description?                string
   |     +--rw type                        identityref
   |     +--rw enabled?                    boolean
   |     +--rw link-up-down-trap-enable?   enumeration {if-mib}?
   |     +--rw color-sel:line
   |     +--rw green:line
   |     +--rw red:line

Note that this means that each port needs three separate interface =
objects. For each additional possible supported physical layer standard, =
an additional interface object would be needed.

**** Option 2 "indirect augment" ****

An additional if-multicolor module directly augments =
/if:interfaces/if:interface. An instance of if-multicolor is associated =
with the port. if-multicolor has a supported-type leaf-list that =
indicates the physical layer standards that are supported by the port =
(green and red in this case). color-selector, green and red are similar =
to before but this time they augment =
/if:interfaces/if:interface/multi:line, and the green and red "when" =
(existence) criteria are tied to if-multicolor's supported-type =
leaf-list rather than to their own type leaf. See part of the tree here =
(YANG on request).

module: ietf-interfaces
   +--rw interfaces
   |  +--rw interface* [name]
   |     +--rw name                        string
   |     +--rw description?                string
   |     +--rw type                        identityref
   |     +--rw enabled?                    boolean
   |     +--rw link-up-down-trap-enable?   enumeration {if-mib}?
   |     +--rw multi:line
   |        +--rw multi:supported-type*   identityref
   |        +--rw color-sel:line
   |        +--rw green:line
   |        +--rw red:line

The nice thing about this approach is that it models the port in a way =
that is close to how it actually _is_. Each port needs only a single =
interface that's directly associated with the handshake mechanism and =
the supported physical layer standards.

A possible disadvantage of this approach is that it is a bit less well =
aligned with RFC 7223, e.g there is only one interface-level =
enable/disable that has to be "shared" by color-selector, green and red.=

--Apple-Mail=_A8B0AC2E-20B0-4EB8-BABD-DEDB5AD83073
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=us-ascii

<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-line-break: after-white-space;" =
class=3D""><div class=3D"">All,</div><div class=3D""><br =
class=3D""></div><div class=3D"">We would much appreciate comments and =
suggestions on the question posed below.</div><div class=3D""><br =
class=3D""></div><div class=3D"">Thanks,</div><div class=3D"">William =
Lupton</div><div class=3D"">(Software Architect, Broadband =
Forum)</div><div class=3D""><br class=3D""></div><div =
class=3D"">----------------</div><div class=3D""><br class=3D""></div><div=
 class=3D"">In the Broadband Forum we need to model a port that can =
support several physical layer standards, but only one at a time. An =
initial handshake mechanism determines which of these standards will =
actually be used. We have been trying to decide how best to model this =
according to the letter and spirit of RFCs 6020, 6087, 7223 =
etc.</div><div class=3D""><br class=3D""></div><div class=3D"">Consider =
a port, a handshake mechanism "color-selector" and two physical layer =
standards "green" and "red". Each of these is modelled via a YANG module =
of the same name ("port" probably uses the ietf-entity module). Here are =
the approaches that we have considered:</div><div class=3D""><br =
class=3D""></div><div class=3D""><b class=3D"">**** Option 1 "direct =
augment" ****</b></div><div class=3D""><br class=3D""></div><div =
class=3D"">color-selector, green and red all directly augment =
/if:interfaces/if:interface. An instance of each of them is associated =
with the port. See part of the tree here (YANG on request).</div><div =
class=3D""><br class=3D""></div><div class=3D""><div class=3D"" =
style=3D"margin: 0px; font-family: Courier; color: rgb(76, 47, 45); =
background-color: rgb(223, 219, 196);">module: ietf-interfaces</div><div =
class=3D"" style=3D"margin: 0px; font-family: Courier; color: rgb(76, =
47, 45); background-color: rgb(223, 219, 196);">&nbsp;&nbsp; +--rw =
interfaces</div><div class=3D"" style=3D"margin: 0px; font-family: =
Courier; color: rgb(76, 47, 45); background-color: rgb(223, 219, =
196);">&nbsp;&nbsp; |&nbsp; +--rw interface* [name]</div><div class=3D"" =
style=3D"margin: 0px; font-family: Courier; color: rgb(76, 47, 45); =
background-color: rgb(223, 219, 196);">&nbsp;&nbsp; | &nbsp; &nbsp; =
+--rw name&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; string</div><div class=3D"" style=3D"margin: 0px; =
font-family: Courier; color: rgb(76, 47, 45); background-color: rgb(223, =
219, 196);">&nbsp;&nbsp; | &nbsp; &nbsp; +--rw description?&nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; string</div><div class=3D"" =
style=3D"margin: 0px; font-family: Courier; color: rgb(76, 47, 45); =
background-color: rgb(223, 219, 196);">&nbsp;&nbsp; | &nbsp; &nbsp; =
+--rw type&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; identityref</div><div class=3D"" style=3D"margin: =
0px; font-family: Courier; color: rgb(76, 47, 45); background-color: =
rgb(223, 219, 196);">&nbsp;&nbsp; | &nbsp; &nbsp; +--rw enabled? &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp;boolean</div><div class=3D"" style=3D"margin: 0px; font-family: =
Courier; color: rgb(76, 47, 45); background-color: rgb(223, 219, =
196);">&nbsp;&nbsp; | &nbsp; &nbsp; +--rw link-up-down-trap-enable? =
&nbsp; enumeration {if-mib}?</div><div class=3D"" style=3D"margin: 0px; =
font-family: Courier; color: rgb(76, 47, 45); background-color: rgb(223, =
219, 196);">&nbsp;&nbsp; | &nbsp; &nbsp; +--rw color-sel:line</div><div =
class=3D"" style=3D"margin: 0px; font-family: Courier; color: rgb(76, =
47, 45); background-color: rgb(223, 219, 196);">&nbsp;&nbsp; | &nbsp; =
&nbsp; +--rw green:line</div><div class=3D"" style=3D"margin: 0px; =
font-family: Courier; color: rgb(76, 47, 45); background-color: rgb(223, =
219, 196);">&nbsp;&nbsp; | &nbsp; &nbsp; +--rw red:line</div><div =
class=3D""><br class=3D""></div></div><div class=3D"">Note that this =
means that each port needs three separate interface objects. For each =
additional possible supported physical layer standard, an additional =
interface object would be needed.</div><div class=3D""><br =
class=3D""></div><div class=3D""><b class=3D"">**** Option 2 "indirect =
augment" ****</b></div><div class=3D""><br class=3D""></div><div =
class=3D"">An additional if-multicolor module directly augments =
/if:interfaces/if:interface. An instance of if-multicolor is associated =
with the port. if-multicolor has a supported-type leaf-list that =
indicates the physical layer standards that are supported by the port =
(green and red in this case). color-selector, green and red are similar =
to before but this time they augment =
/if:interfaces/if:interface/multi:line, and the green and red "when" =
(existence) criteria are tied to if-multicolor's supported-type =
leaf-list rather than to their own type leaf. See part of the tree here =
(YANG on request).</div><div class=3D""><br class=3D""></div><div =
class=3D""><div class=3D"" style=3D"margin: 0px; font-family: Courier; =
color: rgb(76, 47, 45); background-color: rgb(223, 219, 196);">module: =
ietf-interfaces</div><div class=3D"" style=3D"margin: 0px; font-family: =
Courier; color: rgb(76, 47, 45); background-color: rgb(223, 219, =
196);">&nbsp;&nbsp; +--rw interfaces</div><div class=3D"" style=3D"margin:=
 0px; font-family: Courier; color: rgb(76, 47, 45); background-color: =
rgb(223, 219, 196);">&nbsp;&nbsp; |&nbsp; +--rw interface* =
[name]</div><div class=3D"" style=3D"margin: 0px; font-family: Courier; =
color: rgb(76, 47, 45); background-color: rgb(223, 219, =
196);">&nbsp;&nbsp; | &nbsp; &nbsp; +--rw name&nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
string</div><div class=3D"" style=3D"margin: 0px; font-family: Courier; =
color: rgb(76, 47, 45); background-color: rgb(223, 219, =
196);">&nbsp;&nbsp; | &nbsp; &nbsp; +--rw description?&nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; string</div><div class=3D"" =
style=3D"margin: 0px; font-family: Courier; color: rgb(76, 47, 45); =
background-color: rgb(223, 219, 196);">&nbsp;&nbsp; | &nbsp; &nbsp; =
+--rw type&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; identityref</div><div class=3D"" style=3D"margin: =
0px; font-family: Courier; color: rgb(76, 47, 45); background-color: =
rgb(223, 219, 196);">&nbsp;&nbsp; | &nbsp; &nbsp; +--rw enabled? &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp;boolean</div><div class=3D"" style=3D"margin: 0px; font-family: =
Courier; color: rgb(76, 47, 45); background-color: rgb(223, 219, =
196);">&nbsp;&nbsp; | &nbsp; &nbsp; +--rw link-up-down-trap-enable? =
&nbsp; enumeration {if-mib}?</div><div class=3D"" style=3D"margin: 0px; =
font-family: Courier; color: rgb(76, 47, 45); background-color: rgb(223, =
219, 196);">&nbsp;&nbsp; | &nbsp; &nbsp; +--rw multi:line</div><div =
class=3D"" style=3D"margin: 0px; font-family: Courier; color: rgb(76, =
47, 45); background-color: rgb(223, 219, 196);">&nbsp;&nbsp; |&nbsp; =
&nbsp; &nbsp; &nbsp; +--rw multi:supported-type* &nbsp; =
identityref</div><div class=3D"" style=3D"margin: 0px; font-family: =
Courier; color: rgb(76, 47, 45); background-color: rgb(223, 219, =
196);">&nbsp;&nbsp; |&nbsp; &nbsp; &nbsp; &nbsp; +--rw =
color-sel:line</div><div class=3D"" style=3D"margin: 0px; font-family: =
Courier; color: rgb(76, 47, 45); background-color: rgb(223, 219, =
196);">&nbsp;&nbsp; |&nbsp; &nbsp; &nbsp; &nbsp; +--rw =
green:line</div><div class=3D"" style=3D"margin: 0px; font-family: =
Courier; color: rgb(76, 47, 45); background-color: rgb(223, 219, =
196);">&nbsp;&nbsp; |&nbsp; &nbsp; &nbsp; &nbsp; +--rw =
red:line</div><div class=3D""><br class=3D""></div></div><div =
class=3D"">The nice thing about this approach is that it models the port =
in a way that is close to how it actually _is_. Each port needs only a =
single interface that's directly associated with the handshake mechanism =
and the supported physical layer standards.</div><div class=3D""><br =
class=3D""></div><div class=3D"">A possible disadvantage of this =
approach is that it is a bit less well aligned with RFC 7223, e.g there =
is only one interface-level enable/disable that has to be "shared" by =
color-selector, green and red.</div></body></html>=

--Apple-Mail=_A8B0AC2E-20B0-4EB8-BABD-DEDB5AD83073--


From nobody Wed Nov 11 02:46: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 6862B1A21B5 for <netmod@ietfa.amsl.com>; Wed, 11 Nov 2015 02:46:07 -0800 (PST)
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 wC-WJyvlsFS4 for <netmod@ietfa.amsl.com>; Wed, 11 Nov 2015 02:46:05 -0800 (PST)
Received: from trail.lhotka.name (trail.lhotka.name [77.48.224.143]) by ietfa.amsl.com (Postfix) with ESMTP id BBC111A21B2 for <netmod@ietf.org>; Wed, 11 Nov 2015 02:46:05 -0800 (PST)
Received: from localhost (unknown [195.113.220.110]) by trail.lhotka.name (Postfix) with ESMTPSA id DD5211CC0196; Wed, 11 Nov 2015 11:46:05 +0100 (CET)
From: Ladislav Lhotka <lhotka@nic.cz>
To: Robert Varga <nite@hq.sk>, =?utf-8?B?SsO8cmdlbiBTY2jDtm53w6RsZGVy?= <j.schoenwaelder@jacobs-university.de>
In-Reply-To: <564120B1.2000001@hq.sk>
References: <9C0E7EF3-6DEC-493D-91C8-B75B2E29A2D9@nic.cz> <20151105065110.GA98886@elstar.local> <FCAA11D8-6090-49D8-9312-5B88BB0D8806@nic.cz> <564120B1.2000001@hq.sk>
User-Agent: Notmuch/0.21 (http://notmuchmail.org) Emacs/24.4.51.2 (x86_64-apple-darwin14.0.0)
Date: Wed, 11 Nov 2015 11:46:04 +0100
Message-ID: <m2lha43jbn.fsf@birdie.labs.nic.cz>
MIME-Version: 1.0
Content-Type: text/plain
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/J0xYnDVsaYxb5KG8USvxLSCzFwc>
Cc: NETMOD WG <netmod@ietf.org>
Subject: Re: [netmod] JSON encoding of anyxml
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 11 Nov 2015 10:46:07 -0000

Robert Varga <nite@hq.sk> writes:

> On 11/05/2015 09:56 AM, Ladislav Lhotka wrote:
>>> Given the resolution of Y34 in YANG 1.1, Martin's proposal to encode
>>> >anyxml as a string that has XML inside makes sense.
>> The possibility of sending arbitrary (non-YANG) data in the native encoding can occassionally be useful, and even more so in JSON. For example, I have to work with a JSON-based format for specifying DNSSEC signing policies. While my plan is to eventually replace this format with YANG-modelled data, it would help me, as an interim solution, to simply send the data in the legacy format. That's why I want to retain the existing rules for JSON encoding of anyxml, unless something else is available. Sending XML documents as strings is still possible although IMO next to useless.
>
> I fear requiring JSON in anyxml will render RESTCONF-to-NETCONF proxies 
> non-transparent in case the sender (a NETCONF NE) and receiver (an 
> RESTCONF application) have out-of-band knowledge of the data being sent 
> over anyxml. Given the proxy does not have this knowledge, it cannot 
> reliably deal with lists, as they lack a container element in XML
> encoding.

My view of anyxml is that it is a "controlled loophole" that allows
arbitrary non-YANG stuff to be sent. The only requirement is that it
won't break the syntax of the document in which it is embedded - and
this of course depends on the encoding used. It should be used scarcely,
and yes, it generally isn't interoperable and
encoding-transparent. Whenever it is needed, the implementations should
deal with these issues on an ad hoc basis.

So far it has mostly been used in specifications (NETCONF, yang-patch,
zerotouch), i.e. outside the network management context, where YANG
serves as an encoding-independent schema language.

I think it *may* occassionally be useful but it is also true that it can
always be substituted with a string or binary leaf. The only advantage of
sending such data in the "native" encoding is that it can be parsed in
one go.

>
> Can we perhaps indicate the encoding of the anyxml data chunk in JSON as 
> a separate well-known attribute?

I don't think this could be useful because I believe such schema-less
chunks really make sense only if their encoding is the same as that of
the outer document.

Lada

>
> Bye,
> Robert

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


From nobody Wed Nov 11 02:49:58 2015
Return-Path: <rwilton@cisco.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D504C1B2DF1 for <netmod@ietfa.amsl.com>; Wed, 11 Nov 2015 02:49:57 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -15.31
X-Spam-Level: 
X-Spam-Status: No, score=-15.31 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, GB_I_LETTER=-2, HTML_MESSAGE=0.001, J_CHICKENPOX_34=0.6, J_CHICKENPOX_54=0.6, 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 9mVjYTfyYQRk for <netmod@ietfa.amsl.com>; Wed, 11 Nov 2015 02:49:55 -0800 (PST)
Received: from aer-iport-3.cisco.com (aer-iport-3.cisco.com [173.38.203.53]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5F0FA1B2DD2 for <netmod@ietf.org>; Wed, 11 Nov 2015 02:49:54 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=17769; q=dns/txt; s=iport; t=1447238994; x=1448448594; h=subject:to:references:from:cc:message-id:date: mime-version:in-reply-to; bh=Hvve72XR5rhNTfLF/uyZBGVf2dkp2eTL3CHWtSCPZ5s=; b=D5zbYZ7iDYT0SeqOW9V1FjjTxan9ReNW80eGLL0tdfgpqZ3GmdhiWoj9 etQpJFpdIMtwV/Og6kxfEeUTBe4IrfBb6XzYZTWOX1unWCcccegPSkiZS FkB9lPtpsE2EWC+xPCg72Q3zMJkMj0LiOgk7kRk7qAqN/qnos0ED0efSS U=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0CvBAABHENW/xbLJq1egm6BIG/AJRcBC?= =?us-ascii?q?YI+gmdKAoIRAQEBAQEBgQuENQEBBAEBAWsEBgEQCw4KCRYPCQMCAQIBFTAGDQY?= =?us-ascii?q?CAQGIKg3ELQEBAQEBAQEBAQEBAQEBAQEBAQEBARQEhlSEfoQqEQGEfQWHRIVXi?= =?us-ascii?q?S2NJoFbhECDAo82g3JjhAQ+NIQVgUEBAQE?=
X-IronPort-AV: E=Sophos;i="5.20,275,1444694400";  d="scan'208,217";a="606256180"
Received: from aer-iport-nat.cisco.com (HELO aer-core-2.cisco.com) ([173.38.203.22]) by aer-iport-3.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 11 Nov 2015 10:49:52 +0000
Received: from [10.63.23.71] (dhcp-ensft1-uk-vla370-10-63-23-71.cisco.com [10.63.23.71]) by aer-core-2.cisco.com (8.14.5/8.14.5) with ESMTP id tABAnp6Q020250; Wed, 11 Nov 2015 10:49:51 GMT
To: William Lupton <wlupton@broadband-forum.org>
References: <6406A7E0-EBC1-465F-A611-8D54859900EA@broadband-forum.org>
From: Robert Wilton <rwilton@cisco.com>
Message-ID: <56431D4F.5050508@cisco.com>
Date: Wed, 11 Nov 2015 10:49:51 +0000
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0
MIME-Version: 1.0
In-Reply-To: <6406A7E0-EBC1-465F-A611-8D54859900EA@broadband-forum.org>
Content-Type: multipart/alternative; boundary="------------010602090606070201030603"
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/XDvg5DUCMXT4La9gKHvc_tN1aLk>
Cc: netmod@ietf.org
Subject: Re: [netmod] Modelling ports that can support multiple physical layer standards
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 11 Nov 2015 10:49:58 -0000

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

Hi William,

I'm not that familiar with Broadband physical layer standards, but I 
have an interest in figuring out some of the physical layer and 
interface layer relationships in YANG.

There are a couple of things that are not clear to me from your email, 
so I have two questions:

1) Am I right to presume that the "type" of the port is fixed, and can't 
be changed by the handshake mechanism?
2) I don't quite understand your last sentence regarding only one 
interface-level enable/disable leaf.  I would have thought that this 
would be a benefit.  Please can you elaborate.


There is possibly a third way to model this, which is to have an 
augmentation of a choice statement, i.e.:
1. Your base model would define a choice statement representing the 
physical-layer 'color'.
2. Each physical layer 'color' would be a separate augmentation of the 
choice statement.

Using this design ensures that the model can only ever have a single 
physical-layer at a given time, and yet still makes it clear which 
physical-layer is in use and also allows for different configuration 
nodes for each color.

I've used this structure for modelling layer 2 encapsulation in the IDs 
that I've put forward:
E.g. see "choice encaps-type" in draft-wilton-netmod-intf-ext-yang-01 
for the base model, and two instances of

'augment "/if:interfaces/if:interface/if-cmn:encapsulation/if-cmn:encaps-type"'

in draft-wilton-netmod-intf-vlan-yang-01 for two example augmentation 
cover a basic VLAN layer 2 encapsulation, and a more flexible layer 2 
encapsulation.  Other layer 2 encapsulations could also be defined for 
PPP, cHDLC, FR, ATM, etc in separate drafts.

Perhaps this choice + augmentation design would also work well in your case?

Thanks,
Rob


On 11/11/2015 09:28, William Lupton wrote:
> All,
>
> We would much appreciate comments and suggestions on the question 
> posed below.
>
> Thanks,
> William Lupton
> (Software Architect, Broadband Forum)
>
> ----------------
>
> In the Broadband Forum we need to model a port that can support 
> several physical layer standards, but only one at a time. An initial 
> handshake mechanism determines which of these standards will actually 
> be used. We have been trying to decide how best to model this 
> according to the letter and spirit of RFCs 6020, 6087, 7223 etc.
>
> Consider a port, a handshake mechanism "color-selector" and two 
> physical layer standards "green" and "red". Each of these is modelled 
> via a YANG module of the same name ("port" probably uses the 
> ietf-entity module). Here are the approaches that we have considered:
>
> ***** Option 1 "direct augment" *****
>
> color-selector, green and red all directly augment 
> /if:interfaces/if:interface. An instance of each of them is associated 
> with the port. See part of the tree here (YANG on request).
>
> module: ietf-interfaces
> +--rw interfaces
>    | +--rw interface* [name]
>    |   +--rw name                        string
>    |   +--rw description?                string
>    |   +--rw type                        identityref
>    |   +--rw enabled?                    boolean
>    |   +--rw link-up-down-trap-enable?   enumeration {if-mib}?
>    |   +--rw color-sel:line
>    |   +--rw green:line
>    |   +--rw red:line
>
> Note that this means that each port needs three separate interface 
> objects. For each additional possible supported physical layer 
> standard, an additional interface object would be needed.
>
> ***** Option 2 "indirect augment" *****
>
> An additional if-multicolor module directly augments 
> /if:interfaces/if:interface. An instance of if-multicolor is 
> associated with the port. if-multicolor has a supported-type leaf-list 
> that indicates the physical layer standards that are supported by the 
> port (green and red in this case). color-selector, green and red are 
> similar to before but this time they augment 
> /if:interfaces/if:interface/multi:line, and the green and red "when" 
> (existence) criteria are tied to if-multicolor's supported-type 
> leaf-list rather than to their own type leaf. See part of the tree 
> here (YANG on request).
>
> module: ietf-interfaces
> +--rw interfaces
>    | +--rw interface* [name]
>    |   +--rw name                        string
>    |   +--rw description?                string
>    |   +--rw type                        identityref
>    |   +--rw enabled?                    boolean
>    |   +--rw link-up-down-trap-enable?   enumeration {if-mib}?
>    |   +--rw multi:line
>    |       +--rw multi:supported-type*   identityref
>    |       +--rw color-sel:line
>    |       +--rw green:line
>    |       +--rw red:line
>
> The nice thing about this approach is that it models the port in a way 
> that is close to how it actually _is_. Each port needs only a single 
> interface that's directly associated with the handshake mechanism and 
> the supported physical layer standards.
>
> A possible disadvantage of this approach is that it is a bit less well 
> aligned with RFC 7223, e.g there is only one interface-level 
> enable/disable that has to be "shared" by color-selector, green and red.
>
>
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod


--------------010602090606070201030603
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">
    Hi William,<br>
    <br>
    I'm not that familiar with Broadband physical layer standards, but I
    have an interest in figuring out some of the physical layer and
    interface layer relationships in YANG.<br>
    <br>
    There are a couple of things that are not clear to me from your
    email, so I have two questions:<br>
    <br>
    1) Am I right to presume that the "type" of the port is fixed, and
    can't be changed by the handshake mechanism?<br>
    2) I don't quite understand your last sentence regarding only one
    interface-level enable/disable leaf.  I would have thought that this
    would be a benefit.  Please can you elaborate.<br>
    <br>
    <br>
    There is possibly a third way to model this, which is to have an
    augmentation of a choice statement, i.e.:<br>
    1. Your base model would define a choice statement representing the
    physical-layer 'color'.<br>
    2. Each physical layer 'color' would be a separate augmentation of
    the choice statement.<br>
    <br>
    Using this design ensures that the model can only ever have a single
    physical-layer at a given time, and yet still makes it clear which
    physical-layer is in use and also allows for different configuration
    nodes for each color.<br>
    <br>
    I've used this structure for modelling layer 2 encapsulation in the
    IDs that I've put forward:<br>
    E.g. see "choice encaps-type" in
    draft-wilton-netmod-intf-ext-yang-01 for the base model, and two
    instances of <br>
    <pre style="box-sizing: border-box; overflow: auto; font-family: 'PT Mono', Monaco, monospace; font-size: 14px; display: block; padding: 10px; margin: 0px 0px 10.5px; line-height: 1.214; color: rgb(0, 0, 0); word-break: break-all; word-wrap: break-word; border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 253, 245);">'augment "/if:interfaces/if:interface/if-cmn:encapsulation/if-cmn:encaps-type"'</pre>
    <div class="moz-cite-prefix">
      in draft-wilton-netmod-intf-vlan-yang-01 for two example
      augmentation cover a basic VLAN layer 2 encapsulation, and a more
      flexible layer 2 encapsulation.  Other layer 2 encapsulations
      could also be defined for PPP, cHDLC, FR, ATM, etc in separate
      drafts.<br>
      <br>
      Perhaps this choice + augmentation design would also work well in
      your case?<br>
      <br>
      Thanks,<br>
      Rob<br>
      <br>
      <br>
      On 11/11/2015 09:28, William Lupton wrote:<br>
    </div>
    <blockquote
      cite="mid:6406A7E0-EBC1-465F-A611-8D54859900EA@broadband-forum.org"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html;
        charset=windows-1252">
      <div class="">All,</div>
      <div class=""><br class="">
      </div>
      <div class="">We would much appreciate comments and suggestions on
        the question posed below.</div>
      <div class=""><br class="">
      </div>
      <div class="">Thanks,</div>
      <div class="">William Lupton</div>
      <div class="">(Software Architect, Broadband Forum)</div>
      <div class=""><br class="">
      </div>
      <div class="">----------------</div>
      <div class=""><br class="">
      </div>
      <div class="">In the Broadband Forum we need to model a port that
        can support several physical layer standards, but only one at a
        time. An initial handshake mechanism determines which of these
        standards will actually be used. We have been trying to decide
        how best to model this according to the letter and spirit of
        RFCs 6020, 6087, 7223 etc.</div>
      <div class=""><br class="">
      </div>
      <div class="">Consider a port, a handshake mechanism
        "color-selector" and two physical layer standards "green" and
        "red". Each of these is modelled via a YANG module of the same
        name ("port" probably uses the ietf-entity module). Here are the
        approaches that we have considered:</div>
      <div class=""><br class="">
      </div>
      <div class=""><b class="">**** Option 1 "direct augment" ****</b></div>
      <div class=""><br class="">
      </div>
      <div class="">color-selector, green and red all directly augment
        /if:interfaces/if:interface. An instance of each of them is
        associated with the port. See part of the tree here (YANG on
        request).</div>
      <div class=""><br class="">
      </div>
      <div class="">
        <div class="" style="margin: 0px; font-family: Courier; color:
          rgb(76, 47, 45); background-color: rgb(223, 219, 196);">module:
          ietf-interfaces</div>
        <div class="" style="margin: 0px; font-family: Courier; color:
          rgb(76, 47, 45); background-color: rgb(223, 219, 196);">  
          +--rw interfaces</div>
        <div class="" style="margin: 0px; font-family: Courier; color:
          rgb(76, 47, 45); background-color: rgb(223, 219, 196);">   | 
          +--rw interface* [name]</div>
        <div class="" style="margin: 0px; font-family: Courier; color:
          rgb(76, 47, 45); background-color: rgb(223, 219, 196);">   |  
            +--rw name                        string</div>
        <div class="" style="margin: 0px; font-family: Courier; color:
          rgb(76, 47, 45); background-color: rgb(223, 219, 196);">   |  
            +--rw description?                string</div>
        <div class="" style="margin: 0px; font-family: Courier; color:
          rgb(76, 47, 45); background-color: rgb(223, 219, 196);">   |  
            +--rw type                        identityref</div>
        <div class="" style="margin: 0px; font-family: Courier; color:
          rgb(76, 47, 45); background-color: rgb(223, 219, 196);">   |  
            +--rw enabled?                    boolean</div>
        <div class="" style="margin: 0px; font-family: Courier; color:
          rgb(76, 47, 45); background-color: rgb(223, 219, 196);">   |  
            +--rw link-up-down-trap-enable?   enumeration {if-mib}?</div>
        <div class="" style="margin: 0px; font-family: Courier; color:
          rgb(76, 47, 45); background-color: rgb(223, 219, 196);">   |  
            +--rw color-sel:line</div>
        <div class="" style="margin: 0px; font-family: Courier; color:
          rgb(76, 47, 45); background-color: rgb(223, 219, 196);">   |  
            +--rw green:line</div>
        <div class="" style="margin: 0px; font-family: Courier; color:
          rgb(76, 47, 45); background-color: rgb(223, 219, 196);">   |  
            +--rw red:line</div>
        <div class=""><br class="">
        </div>
      </div>
      <div class="">Note that this means that each port needs three
        separate interface objects. For each additional possible
        supported physical layer standard, an additional interface
        object would be needed.</div>
      <div class=""><br class="">
      </div>
      <div class=""><b class="">**** Option 2 "indirect augment" ****</b></div>
      <div class=""><br class="">
      </div>
      <div class="">An additional if-multicolor module directly augments
        /if:interfaces/if:interface. An instance of if-multicolor is
        associated with the port. if-multicolor has a supported-type
        leaf-list that indicates the physical layer standards that are
        supported by the port (green and red in this case).
        color-selector, green and red are similar to before but this
        time they augment /if:interfaces/if:interface/multi:line, and
        the green and red "when" (existence) criteria are tied to
        if-multicolor's supported-type leaf-list rather than to their
        own type leaf. See part of the tree here (YANG on request).</div>
      <div class=""><br class="">
      </div>
      <div class="">
        <div class="" style="margin: 0px; font-family: Courier; color:
          rgb(76, 47, 45); background-color: rgb(223, 219, 196);">module:
          ietf-interfaces</div>
        <div class="" style="margin: 0px; font-family: Courier; color:
          rgb(76, 47, 45); background-color: rgb(223, 219, 196);">  
          +--rw interfaces</div>
        <div class="" style="margin: 0px; font-family: Courier; color:
          rgb(76, 47, 45); background-color: rgb(223, 219, 196);">   | 
          +--rw interface* [name]</div>
        <div class="" style="margin: 0px; font-family: Courier; color:
          rgb(76, 47, 45); background-color: rgb(223, 219, 196);">   |  
            +--rw name                        string</div>
        <div class="" style="margin: 0px; font-family: Courier; color:
          rgb(76, 47, 45); background-color: rgb(223, 219, 196);">   |  
            +--rw description?                string</div>
        <div class="" style="margin: 0px; font-family: Courier; color:
          rgb(76, 47, 45); background-color: rgb(223, 219, 196);">   |  
            +--rw type                        identityref</div>
        <div class="" style="margin: 0px; font-family: Courier; color:
          rgb(76, 47, 45); background-color: rgb(223, 219, 196);">   |  
            +--rw enabled?                    boolean</div>
        <div class="" style="margin: 0px; font-family: Courier; color:
          rgb(76, 47, 45); background-color: rgb(223, 219, 196);">   |  
            +--rw link-up-down-trap-enable?   enumeration {if-mib}?</div>
        <div class="" style="margin: 0px; font-family: Courier; color:
          rgb(76, 47, 45); background-color: rgb(223, 219, 196);">   |  
            +--rw multi:line</div>
        <div class="" style="margin: 0px; font-family: Courier; color:
          rgb(76, 47, 45); background-color: rgb(223, 219, 196);">   | 
                +--rw multi:supported-type*   identityref</div>
        <div class="" style="margin: 0px; font-family: Courier; color:
          rgb(76, 47, 45); background-color: rgb(223, 219, 196);">   | 
                +--rw color-sel:line</div>
        <div class="" style="margin: 0px; font-family: Courier; color:
          rgb(76, 47, 45); background-color: rgb(223, 219, 196);">   | 
                +--rw green:line</div>
        <div class="" style="margin: 0px; font-family: Courier; color:
          rgb(76, 47, 45); background-color: rgb(223, 219, 196);">   | 
                +--rw red:line</div>
        <div class=""><br class="">
        </div>
      </div>
      <div class="">The nice thing about this approach is that it models
        the port in a way that is close to how it actually _is_. Each
        port needs only a single interface that's directly associated
        with the handshake mechanism and the supported physical layer
        standards.</div>
      <div class=""><br class="">
      </div>
      <div class="">A possible disadvantage of this approach is that it
        is a bit less well aligned with RFC 7223, e.g there is only one
        interface-level enable/disable that has to be "shared" by
        color-selector, green and red.</div>
      <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>

--------------010602090606070201030603--


From nobody Wed Nov 11 02:53:59 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 D2A8A1B347E for <netmod@ietfa.amsl.com>; Wed, 11 Nov 2015 02:53:57 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.3
X-Spam-Level: 
X-Spam-Status: No, score=-1.3 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, J_CHICKENPOX_84=0.6] 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 phEuITkXKfPI for <netmod@ietfa.amsl.com>; Wed, 11 Nov 2015 02:53:56 -0800 (PST)
Received: from trail.lhotka.name (trail.lhotka.name [77.48.224.143]) by ietfa.amsl.com (Postfix) with ESMTP id 0090E1B3477 for <netmod@ietf.org>; Wed, 11 Nov 2015 02:53:55 -0800 (PST)
Received: from localhost (unknown [195.113.220.110]) by trail.lhotka.name (Postfix) with ESMTPSA id 8D7B41CC0196; Wed, 11 Nov 2015 11:53:56 +0100 (CET)
From: Ladislav Lhotka <lhotka@nic.cz>
To: Martin Bjorklund <mbj@tail-f.com>, andy@yumaworks.com
In-Reply-To: <20151111.073423.361054647288765847.mbj@tail-f.com>
References: <CABCOCHQF-yRCgG47UqTWjhOBWvz_yLsw=F_GZ4DYiROt9_QTZw@mail.gmail.com> <5641FC2F.9060703@hq.sk> <CABCOCHSUrbk-KVNtcKRO8hUAj83akHb=+7abJoVvVgUSTG7sRA@mail.gmail.com> <20151111.073423.361054647288765847.mbj@tail-f.com>
User-Agent: Notmuch/0.21 (http://notmuchmail.org) Emacs/24.4.51.2 (x86_64-apple-darwin14.0.0)
Date: Wed, 11 Nov 2015 11:53:56 +0100
Message-ID: <m2io583iyj.fsf@birdie.labs.nic.cz>
MIME-Version: 1.0
Content-Type: text/plain
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/8iaPlLX0nFbxoq0lUfhMdl1d1I4>
Cc: netmod@ietf.org
Subject: Re: [netmod] JSON encoding of anyxml
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 11 Nov 2015 10:53:58 -0000

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

> Andy Bierman <andy@yumaworks.com> wrote:
>> On Tue, Nov 10, 2015 at 6:16 AM, Robert Varga <nite@hq.sk> wrote:
>> 
>> > Hello,
>> >
>> > I am not favor of it, either, but RFC6020 is here and is being widely
>> > deployed. So is RESTCONF+JSON, which is favored by application developers
>> > in the field today, as is NETCONF devices producing anyxml. We do need a
>> > reasonable way of bridging the two -- no matter whether it is configuration
>> > or operational data.
>> >
>> >
>> 
>> I do not agree that the use of anyxml as arbitrary XML is deployed at all.
>> I do not agree that all the "extra XML bits" that are causing so much
>> concern
>> are ever saved in a datastore.  Martin says we need anyxml for RPC input
>> and output. Maybe. This seems proprietary, since no NETCONF/RESTCONF
>> operation depends on anything except elements and attributes.
>
> Specifically, we need anyxml for ietf-netconf, since NETCONF is
> supposedly data modeling language agnostic.
>
> One option could be to deprecte anyxml (or remove it) in YANG 1.1, and
> if we ever do a new version of NETCONF, we use anydata instead.

The simplest solution in this case would be to use a standard XML schema
language - XSD or RELAX NG.

Lada

>
>
> /martin
>
>
>
>> If the JSON looks like a leaf, then no tool is going to analyse the string
>> to see if it a well-formed XML instance document, so it can be re-parsed.
>> Unless a JSON array or object is started, the tool will not
>> think it is dealing with any child nodes.
>> 
>> There are lots of things that NETCONF can do that are trimmed out of
>> RESTCONF.
>> JSON representation or raw XML seems really low priority to me.
>> Are there any use-cases? What processing instructions, character entities,
>> etc.
>> are being used in the wild already?  None? Don't we have enough real
>> problems to
>> solve without rat-holing over corner-cases all the time?
>> 
>> 
>> Andy
>> 
>> 
>> 
>> 
>> > At any rate, a simple string is not going to cut it, as it does not retain
>> > modeling context nor encoding details of the data being transported --
>> > rendering reliable automated translation impossible.
>> >
>> > Bye,
>> > Robert
>> >
>> > On 11/10/2015 03:19 AM, Andy Bierman wrote:
>> >
>> > Hi,
>> >
>> > I am not in favor of anything XML or JSON specific in YANG.
>> > In reality, nobody uses anyxml as a configuration data node,
>> > so an improper roundtrip translation from JSON to XML
>> > is not going to happen.
>> >
>> > Encoding anyxml as a string is not going to happen either.
>> > Not sure what the difference between 'anyxml' and 'type string'
>> > is at that point.
>> >
>> > Why does YANG even need a special type of leaf that is a blob of XML?
>> > Can't a single-quoted string serve that purpose?
>> >
>> >
>> > Andy
>> >
>> >
>> > On Mon, Nov 9, 2015 at 2:39 PM, Robert Varga < <nite@hq.sk>nite@hq.sk>
>> > wrote:
>> >
>> >> On 11/05/2015 09:56 AM, Ladislav Lhotka wrote:
>> >>
>> >>> Given the resolution of Y34 in YANG 1.1, Martin's proposal to encode
>> >>>> >anyxml as a string that has XML inside makes sense.
>> >>>>
>> >>> The possibility of sending arbitrary (non-YANG) data in the native
>> >>> encoding can occassionally be useful, and even more so in JSON. For
>> >>> example, I have to work with a JSON-based format for specifying DNSSEC
>> >>> signing policies. While my plan is to eventually replace this format with
>> >>> YANG-modelled data, it would help me, as an interim solution, to simply
>> >>> send the data in the legacy format. That's why I want to retain the
>> >>> existing rules for JSON encoding of anyxml, unless something else is
>> >>> available. Sending XML documents as strings is still possible although IMO
>> >>> next to useless.
>> >>>
>> >>
>> >> I fear requiring JSON in anyxml will render RESTCONF-to-NETCONF proxies
>> >> non-transparent in case the sender (a NETCONF NE) and receiver (an RESTCONF
>> >> application) have out-of-band knowledge of the data being sent over anyxml.
>> >> Given the proxy does not have this knowledge, it cannot reliably deal with
>> >> lists, as they lack a container element in XML encoding.
>> >>
>> >> Can we perhaps indicate the encoding of the anyxml data chunk in JSON as
>> >> a separate well-known attribute?
>> >>
>> >> Bye,
>> >> Robert
>> >>
>> >> _______________________________________________
>> >> 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

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


From nobody Wed Nov 11 02:55:03 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 15C881B3476 for <netmod@ietfa.amsl.com>; Wed, 11 Nov 2015 02:55:00 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.239
X-Spam-Level: 
X-Spam-Status: No, score=0.239 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, J_CHICKENPOX_84=0.6, 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 UaxH_6Wk3I37 for <netmod@ietfa.amsl.com>; Wed, 11 Nov 2015 02:54:58 -0800 (PST)
Received: from mail.nic.cz (mail.nic.cz [IPv6:2001:1488:800:400::400]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 579941B3464 for <netmod@ietf.org>; Wed, 11 Nov 2015 02:54:58 -0800 (PST)
Received: from [IPv6:2001:718:1a02:1:9a1:2c65:d0fa:d126] (unknown [IPv6:2001:718:1a02:1:9a1:2c65:d0fa:d126]) by mail.nic.cz (Postfix) with ESMTPSA id 14E5D1816E6; Wed, 11 Nov 2015 11:54:57 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nic.cz; s=default; t=1447239297; bh=8uJaZH/FGxNe4kzVKc2MWrfPwtQF+J7VassTzmohyVE=; h=From:Date:To; b=PX1Xzfp/Enc2brBsHdAMJe+jKDjrsC7KIUepwdWgZostogD4tEtOFAzNlQouoLr9X KC3Q+1JfI6D5epT6p3HYA4aIi+XgIVtmjS/2vYnz4Pxazl/+nhgalZ5wueKqkQ8TET /Fpn9YEjA1MF6wSuA5xfbQEOFjer78CCfPSHowBo=
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
From: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <20151111080728.GA21672@elstar.local>
Date: Wed, 11 Nov 2015 11:54:58 +0100
Content-Transfer-Encoding: quoted-printable
Message-Id: <7BA43E86-C528-451A-BB16-140608D3B871@nic.cz>
References: <CABCOCHQF-yRCgG47UqTWjhOBWvz_yLsw=F_GZ4DYiROt9_QTZw@mail.gmail.com> <5641FC2F.9060703@hq.sk> <CABCOCHSUrbk-KVNtcKRO8hUAj83akHb=+7abJoVvVgUSTG7sRA@mail.gmail.com> <20151111.073423.361054647288765847.mbj@tail-f.com> <20151111080728.GA21672@elstar.local>
To: =?utf-8?Q?J=C3=BCrgen_Sch=C3=B6nw=C3=A4lder?= <j.schoenwaelder@jacobs-university.de>
X-Mailer: Apple Mail (2.3096.5)
X-Virus-Scanned: clamav-milter 0.98.7 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/jm2yDwdej5fm66nXcGVgITNiYfM>
Cc: netmod@ietf.org
Subject: Re: [netmod] JSON encoding of anyxml
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 11 Nov 2015 10:55:00 -0000

> On 11 Nov 2015, at 09:07, Juergen Schoenwaelder =
<j.schoenwaelder@jacobs-university.de> wrote:
>=20
> On Wed, Nov 11, 2015 at 07:34:23AM +0100, Martin Bjorklund wrote:
>> Andy Bierman <andy@yumaworks.com> wrote:
>>> On Tue, Nov 10, 2015 at 6:16 AM, Robert Varga <nite@hq.sk> wrote:
>>>=20
>>>> Hello,
>>>>=20
>>>> I am not favor of it, either, but RFC6020 is here and is being =
widely
>>>> deployed. So is RESTCONF+JSON, which is favored by application =
developers
>>>> in the field today, as is NETCONF devices producing anyxml. We do =
need a
>>>> reasonable way of bridging the two -- no matter whether it is =
configuration
>>>> or operational data.
>>>>=20
>>>>=20
>>>=20
>>> I do not agree that the use of anyxml as arbitrary XML is deployed =
at all.
>>> I do not agree that all the "extra XML bits" that are causing so =
much
>>> concern
>>> are ever saved in a datastore.  Martin says we need anyxml for RPC =
input
>>> and output. Maybe. This seems proprietary, since no NETCONF/RESTCONF
>>> operation depends on anything except elements and attributes.
>>=20
>> Specifically, we need anyxml for ietf-netconf, since NETCONF is
>> supposedly data modeling language agnostic.
>>=20
>> One option could be to deprecte anyxml (or remove it) in YANG 1.1, =
and
>> if we ever do a new version of NETCONF, we use anydata instead.
>>=20
>=20
> We are effectively deprecating anyxml in YANG 1.1. We have reached
> agreement on Y34-05 and I do not see any new arguments popping up.

There is nothing in 6020bis indicating that "anyxml" is being =
deprecated.

Lada

>=20
> The JSON encoding document has to specify the encoding of an
> effectively deprecated construct that was designed to encode any XML.
>=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 Wed Nov 11 04:13: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 962FC1B3550 for <netmod@ietfa.amsl.com>; Wed, 11 Nov 2015 04:13:43 -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 3Rt5NUNAHn7y for <netmod@ietfa.amsl.com>; Wed, 11 Nov 2015 04:13:42 -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 C6EF21B354F for <netmod@ietf.org>; Wed, 11 Nov 2015 04:13: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 96B59102E; Wed, 11 Nov 2015 13:13: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 l8HdQEdzigRZ; Wed, 11 Nov 2015 13:13:40 +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 Nov 2015 13:13:40 +0100 (CET)
Received: from localhost (demetrius3.jacobs-university.de [212.201.44.48]) by hermes.jacobs-university.de (Postfix) with ESMTP id DACC42004E; Wed, 11 Nov 2015 13:13: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 R5xuTIdBdjxm; Wed, 11 Nov 2015 13:13: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 E7D5D2003B; Wed, 11 Nov 2015 13:13:38 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id B3ED7387CD11; Wed, 11 Nov 2015 13:13:37 +0100 (CET)
Date: Wed, 11 Nov 2015 13:13:36 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: William Lupton <wlupton@broadband-forum.org>
Message-ID: <20151111121334.GA22461@elstar.local>
Mail-Followup-To: William Lupton <wlupton@broadband-forum.org>, netmod@ietf.org
References: <6406A7E0-EBC1-465F-A611-8D54859900EA@broadband-forum.org>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <6406A7E0-EBC1-465F-A611-8D54859900EA@broadband-forum.org>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/GAG0tS2yreEwPQ7zxYERN-dCThw>
Cc: netmod@ietf.org
Subject: Re: [netmod] Modelling ports that can support multiple physical layer standards
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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 11 Nov 2015 12:13:43 -0000

On Wed, Nov 11, 2015 at 09:28:57AM +0000, William Lupton wrote:
> All,
> 
> We would much appreciate comments and suggestions on the question posed below.
>

[...]

Good question. Is this question comparable to IEEE 802.3 interfaces
and Medium Attachment Units (MAUs)? In the past, I think we have seen
different approaches and I am not sure there is agreement on a common
approach. For 802.3 MAUs, MAU details were modeled in data models
extending a single interface. For other technologies, interface
layering seemed to be more appropriate. It would be nice if there
would a common understanding how to model interface specifics
consistently but I am afraid we have no common model. The
ietf-interfaces module essentially allows both approaches. It leaves
it open, however, to decide which approach is appropriate.

/js

PS: A pure layering approach would treat an IP interface as an
    interface layered on top of say an IEEE 802.3 interface but
    the ietf-ip module does not really force this since many
    implementations do not expose this layering. If I would do
    a clean slate design, I would likely, from a architectural
    point of view, go with a layering approach.

-- 
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 Nov 11 04:21:47 2015
Return-Path: <wlupton@broadband-forum.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 4F4161B3596 for <netmod@ietfa.amsl.com>; Wed, 11 Nov 2015 04:21:46 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5
X-Spam-Level: 
X-Spam-Status: No, score=-5 tagged_above=-999 required=5 tests=[BAYES_00=-1.9,  GB_I_LETTER=-2, HTML_MESSAGE=0.001, J_CHICKENPOX_34=0.6, J_CHICKENPOX_54=0.6, 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 0BzzeBxRa0ER for <netmod@ietfa.amsl.com>; Wed, 11 Nov 2015 04:21:43 -0800 (PST)
Received: from mail.amsl.com (mail.amsl.com [4.31.198.40]) by ietfa.amsl.com (Postfix) with ESMTP id 7E1BA1B3592 for <netmod@ietf.org>; Wed, 11 Nov 2015 04:21:43 -0800 (PST)
Received: from localhost (localhost [127.0.0.1]) by c8a.amsl.com (Postfix) with ESMTP id 37F8F1E5A40; Wed, 11 Nov 2015 04:21:33 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
Received: from c8a.amsl.com ([127.0.0.1]) by localhost (c8a.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id K_xG1jxmzh4v; Wed, 11 Nov 2015 04:21:33 -0800 (PST)
Received: from [192.168.1.100] (host5-81-222-81.range5-81.btcentralplus.com [5.81.222.81]) by c8a.amsl.com (Postfix) with ESMTPSA id 2C62C1E5A3F; Wed, 11 Nov 2015 04:21:32 -0800 (PST)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
Content-Type: multipart/alternative; boundary="Apple-Mail=_3E8D7200-104E-4413-941C-AC6379D62E95"
From: William Lupton <wlupton@broadband-forum.org>
In-Reply-To: <56431D4F.5050508@cisco.com>
Date: Wed, 11 Nov 2015 12:21:40 +0000
Message-Id: <82FB8C3A-48CD-493C-AE90-715190F2901E@broadband-forum.org>
References: <6406A7E0-EBC1-465F-A611-8D54859900EA@broadband-forum.org> <56431D4F.5050508@cisco.com>
To: Robert Wilton <rwilton@cisco.com>
X-Mailer: Apple Mail (2.2104)
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/-_Soi5eXGUyu3g4LKUR3DjNHFGU>
Cc: netmod@ietf.org
Subject: Re: [netmod] Modelling ports that can support multiple physical layer standards
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 11 Nov 2015 12:21:46 -0000

--Apple-Mail=_3E8D7200-104E-4413-941C-AC6379D62E95
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=windows-1252

Rob, Thanks! Please see inline. Cheers, William.

> On 11 Nov 2015, at 10:49, Robert Wilton <rwilton@cisco.com> wrote:
>=20
> Hi William,
>=20
> I'm not that familiar with Broadband physical layer standards, but I =
have an interest in figuring out some of the physical layer and =
interface layer relationships in YANG.
>=20
> There are a couple of things that are not clear to me from your email, =
so I have two questions:
>=20
> 1) Am I right to presume that the "type" of the port is fixed, and =
can't be changed by the handshake mechanism?

I'd say "no" in the sense that the port is initially a color-selector =
port, and then (after the colour selection) will be either a green port =
or a red port. These are all types (interface types).

> 2) I don't quite understand your last sentence regarding only one =
interface-level enable/disable leaf.  I would have thought that this =
would be a benefit.  Please can you elaborate.

In the second case (indirect augment), a single multi:line interface is =
associated with the port, so the standard "enabled" leaf node =
(administrative enable/disable) will apply to the the multi:line =
interface. This means that there is no way (should you wish it) to =
individually disable green or red. This would require addition of such =
controls at the green and red level.

> There is possibly a third way to model this, which is to have an =
augmentation of a choice statement, i.e.:
> 1. Your base model would define a choice statement representing the =
physical-layer 'color'.
> 2. Each physical layer 'color' would be a separate augmentation of the =
choice statement.
>=20
> Using this design ensures that the model can only ever have a single =
physical-layer at a given time, and yet still makes it clear which =
physical-layer is in use and also allows for different configuration =
nodes for each color.
>=20
> I've used this structure for modelling layer 2 encapsulation in the =
IDs that I've put forward:
> E.g. see "choice encaps-type" in draft-wilton-netmod-intf-ext-yang-01 =
for the base model, and two instances of=20
> 'augment =
"/if:interfaces/if:interface/if-cmn:encapsulation/if-cmn:encaps-type"'
> in draft-wilton-netmod-intf-vlan-yang-01 for two example augmentation =
cover a basic VLAN layer 2 encapsulation, and a more flexible layer 2 =
encapsulation.  Other layer 2 encapsulations could also be defined for =
PPP, cHDLC, FR, ATM, etc in separate drafts.
>=20
> Perhaps this choice + augmentation design would also work well in your =
case?

Thanks! I'll take a look at those drafts. Would this approach allow =
green and red config to exist simultaneously on an interface? I think =
we'd want to be able to do that. Perhaps the choice approach might be =
used only in the state tree?

> Thanks,
> Rob
>=20
> On 11/11/2015 09:28, William Lupton wrote:
>> All,
>>=20
>> We would much appreciate comments and suggestions on the question =
posed below.
>>=20
>> Thanks,
>> William Lupton
>> (Software Architect, Broadband Forum)
>>=20
>> ----------------
>>=20
>> In the Broadband Forum we need to model a port that can support =
several physical layer standards, but only one at a time. An initial =
handshake mechanism determines which of these standards will actually be =
used. We have been trying to decide how best to model this according to =
the letter and spirit of RFCs 6020, 6087, 7223 etc.
>>=20
>> Consider a port, a handshake mechanism "color-selector" and two =
physical layer standards "green" and "red". Each of these is modelled =
via a YANG module of the same name ("port" probably uses the ietf-entity =
module). Here are the approaches that we have considered:
>>=20
>> **** Option 1 "direct augment" ****
>>=20
>> color-selector, green and red all directly augment =
/if:interfaces/if:interface. An instance of each of them is associated =
with the port. See part of the tree here (YANG on request).
>>=20
>> module: ietf-interfaces
>>    +--rw interfaces
>>    |  +--rw interface* [name]
>>    |     +--rw name                        string
>>    |     +--rw description?                string
>>    |     +--rw type                        identityref
>>    |     +--rw enabled?                    boolean
>>    |     +--rw link-up-down-trap-enable?   enumeration {if-mib}?
>>    |     +--rw color-sel:line
>>    |     +--rw green:line
>>    |     +--rw red:line
>>=20
>> Note that this means that each port needs three separate interface =
objects. For each additional possible supported physical layer standard, =
an additional interface object would be needed.
>>=20
>> **** Option 2 "indirect augment" ****
>>=20
>> An additional if-multicolor module directly augments =
/if:interfaces/if:interface. An instance of if-multicolor is associated =
with the port. if-multicolor has a supported-type leaf-list that =
indicates the physical layer standards that are supported by the port =
(green and red in this case). color-selector, green and red are similar =
to before but this time they augment =
/if:interfaces/if:interface/multi:line, and the green and red "when" =
(existence) criteria are tied to if-multicolor's supported-type =
leaf-list rather than to their own type leaf. See part of the tree here =
(YANG on request).
>>=20
>> module: ietf-interfaces
>>    +--rw interfaces
>>    |  +--rw interface* [name]
>>    |     +--rw name                        string
>>    |     +--rw description?                string
>>    |     +--rw type                        identityref
>>    |     +--rw enabled?                    boolean
>>    |     +--rw link-up-down-trap-enable?   enumeration {if-mib}?
>>    |     +--rw multi:line
>>    |        +--rw multi:supported-type*   identityref
>>    |        +--rw color-sel:line
>>    |        +--rw green:line
>>    |        +--rw red:line
>>=20
>> The nice thing about this approach is that it models the port in a =
way that is close to how it actually _is_. Each port needs only a single =
interface that's directly associated with the handshake mechanism and =
the supported physical layer standards.
>>=20
>> A possible disadvantage of this approach is that it is a bit less =
well aligned with RFC 7223, e.g there is only one interface-level =
enable/disable that has to be "shared" by color-selector, green and red.
>>=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


--Apple-Mail=_3E8D7200-104E-4413-941C-AC6379D62E95
Content-Transfer-Encoding: 7bit
Content-Type: text/html;
	charset=windows-1252

<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Rob, Thanks! Please see inline. Cheers, William.<div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On 11 Nov 2015, at 10:49, Robert Wilton &lt;<a href="mailto:rwilton@cisco.com" class="">rwilton@cisco.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class="">
  
    <meta content="text/html; charset=windows-1252" http-equiv="Content-Type" class="">
  
  <div bgcolor="#FFFFFF" text="#000000" class="">
    Hi William,<br class="">
    <br class="">
    I'm not that familiar with Broadband physical layer standards, but I
    have an interest in figuring out some of the physical layer and
    interface layer relationships in YANG.<br class="">
    <br class="">
    There are a couple of things that are not clear to me from your
    email, so I have two questions:<br class="">
    <br class="">
    1) Am I right to presume that the "type" of the port is fixed, and
    can't be changed by the handshake mechanism?<br class=""></div></div></blockquote><div><br class=""></div><div>I'd say "no" in the sense that the port is initially a color-selector port, and then (after the colour selection) will be either a green port or a red port. These are all types (interface types).</div><br class=""><blockquote type="cite" class=""><div class=""><div bgcolor="#FFFFFF" text="#000000" class="">
    2) I don't quite understand your last sentence regarding only one
    interface-level enable/disable leaf.&nbsp; I would have thought that this
    would be a benefit.&nbsp; Please can you elaborate.<br class=""></div></div></blockquote><div><br class=""></div><div>In the second case (indirect augment), a single multi:line interface is associated with the port, so the standard "enabled" leaf node (administrative enable/disable) will apply to the the multi:line interface. This means that there is no way (should you wish it) to individually disable green or red. This would require addition of such controls at the green and red level.</div><br class=""><blockquote type="cite" class=""><div class=""><div bgcolor="#FFFFFF" text="#000000" class="">
    
    There is possibly a third way to model this, which is to have an
    augmentation of a choice statement, i.e.:<br class="">
    1. Your base model would define a choice statement representing the
    physical-layer 'color'.<br class="">
    2. Each physical layer 'color' would be a separate augmentation of
    the choice statement.<br class="">
    <br class="">
    Using this design ensures that the model can only ever have a single
    physical-layer at a given time, and yet still makes it clear which
    physical-layer is in use and also allows for different configuration
    nodes for each color.<br class="">
    <br class="">
    I've used this structure for modelling layer 2 encapsulation in the
    IDs that I've put forward:<br class="">
    E.g. see "choice encaps-type" in
    draft-wilton-netmod-intf-ext-yang-01 for the base model, and two
    instances of <br class="">
    <pre style="box-sizing: border-box; overflow: auto; font-family: 'PT Mono', Monaco, monospace; font-size: 14px; display: block; padding: 10px; margin: 0px 0px 10.5px; line-height: 1.214; word-break: break-all; word-wrap: break-word; border: 1px solid rgb(204, 204, 204); border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 253, 245);" class="">'augment "/if:interfaces/if:interface/if-cmn:encapsulation/if-cmn:encaps-type"'</pre>
    <div class="moz-cite-prefix">
      in draft-wilton-netmod-intf-vlan-yang-01 for two example
      augmentation cover a basic VLAN layer 2 encapsulation, and a more
      flexible layer 2 encapsulation.&nbsp; Other layer 2 encapsulations
      could also be defined for PPP, cHDLC, FR, ATM, etc in separate
      drafts.<br class="">
      <br class="">
      Perhaps this choice + augmentation design would also work well in
      your case?<br class=""></div></div></div></blockquote><div><br class=""></div><div>Thanks! I'll take a look at those drafts. Would this approach allow green and red config to exist simultaneously on an interface? I think we'd want to be able to do that. Perhaps the choice approach might be used only in the state tree?</div><br class=""><blockquote type="cite" class=""><div class=""><div bgcolor="#FFFFFF" text="#000000" class=""><div class="moz-cite-prefix">
      
      Thanks,<br class="">
      Rob<br class=""><br class="">
      On 11/11/2015 09:28, William Lupton wrote:<br class="">
    </div>
    <blockquote cite="mid:6406A7E0-EBC1-465F-A611-8D54859900EA@broadband-forum.org" type="cite" class="">
      <meta http-equiv="Content-Type" content="text/html;
        charset=windows-1252" class="">
      <div class="">All,</div>
      <div class=""><br class="">
      </div>
      <div class="">We would much appreciate comments and suggestions on
        the question posed below.</div>
      <div class=""><br class="">
      </div>
      <div class="">Thanks,</div>
      <div class="">William Lupton</div>
      <div class="">(Software Architect, Broadband Forum)</div>
      <div class=""><br class="">
      </div>
      <div class="">----------------</div>
      <div class=""><br class="">
      </div>
      <div class="">In the Broadband Forum we need to model a port that
        can support several physical layer standards, but only one at a
        time. An initial handshake mechanism determines which of these
        standards will actually be used. We have been trying to decide
        how best to model this according to the letter and spirit of
        RFCs 6020, 6087, 7223 etc.</div>
      <div class=""><br class="">
      </div>
      <div class="">Consider a port, a handshake mechanism
        "color-selector" and two physical layer standards "green" and
        "red". Each of these is modelled via a YANG module of the same
        name ("port" probably uses the ietf-entity module). Here are the
        approaches that we have considered:</div>
      <div class=""><br class="">
      </div>
      <div class=""><b class="">**** Option 1 "direct augment" ****</b></div>
      <div class=""><br class="">
      </div>
      <div class="">color-selector, green and red all directly augment
        /if:interfaces/if:interface. An instance of each of them is
        associated with the port. See part of the tree here (YANG on
        request).</div>
      <div class=""><br class="">
      </div>
      <div class="">
        <div class="" style="margin: 0px; font-family: Courier; color:
          rgb(76, 47, 45); background-color: rgb(223, 219, 196);">module:
          ietf-interfaces</div>
        <div class="" style="margin: 0px; font-family: Courier; color:
          rgb(76, 47, 45); background-color: rgb(223, 219, 196);">&nbsp;&nbsp;
          +--rw interfaces</div>
        <div class="" style="margin: 0px; font-family: Courier; color:
          rgb(76, 47, 45); background-color: rgb(223, 219, 196);">&nbsp;&nbsp; |&nbsp;
          +--rw interface* [name]</div>
        <div class="" style="margin: 0px; font-family: Courier; color:
          rgb(76, 47, 45); background-color: rgb(223, 219, 196);">&nbsp;&nbsp; | &nbsp;
          &nbsp; +--rw name&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; string</div>
        <div class="" style="margin: 0px; font-family: Courier; color:
          rgb(76, 47, 45); background-color: rgb(223, 219, 196);">&nbsp;&nbsp; | &nbsp;
          &nbsp; +--rw description?&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; string</div>
        <div class="" style="margin: 0px; font-family: Courier; color:
          rgb(76, 47, 45); background-color: rgb(223, 219, 196);">&nbsp;&nbsp; | &nbsp;
          &nbsp; +--rw type&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; identityref</div>
        <div class="" style="margin: 0px; font-family: Courier; color:
          rgb(76, 47, 45); background-color: rgb(223, 219, 196);">&nbsp;&nbsp; | &nbsp;
          &nbsp; +--rw enabled? &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;boolean</div>
        <div class="" style="margin: 0px; font-family: Courier; color:
          rgb(76, 47, 45); background-color: rgb(223, 219, 196);">&nbsp;&nbsp; | &nbsp;
          &nbsp; +--rw link-up-down-trap-enable? &nbsp; enumeration {if-mib}?</div>
        <div class="" style="margin: 0px; font-family: Courier; color:
          rgb(76, 47, 45); background-color: rgb(223, 219, 196);">&nbsp;&nbsp; | &nbsp;
          &nbsp; +--rw color-sel:line</div>
        <div class="" style="margin: 0px; font-family: Courier; color:
          rgb(76, 47, 45); background-color: rgb(223, 219, 196);">&nbsp;&nbsp; | &nbsp;
          &nbsp; +--rw green:line</div>
        <div class="" style="margin: 0px; font-family: Courier; color:
          rgb(76, 47, 45); background-color: rgb(223, 219, 196);">&nbsp;&nbsp; | &nbsp;
          &nbsp; +--rw red:line</div>
        <div class=""><br class="">
        </div>
      </div>
      <div class="">Note that this means that each port needs three
        separate interface objects. For each additional possible
        supported physical layer standard, an additional interface
        object would be needed.</div>
      <div class=""><br class="">
      </div>
      <div class=""><b class="">**** Option 2 "indirect augment" ****</b></div>
      <div class=""><br class="">
      </div>
      <div class="">An additional if-multicolor module directly augments
        /if:interfaces/if:interface. An instance of if-multicolor is
        associated with the port. if-multicolor has a supported-type
        leaf-list that indicates the physical layer standards that are
        supported by the port (green and red in this case).
        color-selector, green and red are similar to before but this
        time they augment /if:interfaces/if:interface/multi:line, and
        the green and red "when" (existence) criteria are tied to
        if-multicolor's supported-type leaf-list rather than to their
        own type leaf. See part of the tree here (YANG on request).</div>
      <div class=""><br class="">
      </div>
      <div class="">
        <div class="" style="margin: 0px; font-family: Courier; color:
          rgb(76, 47, 45); background-color: rgb(223, 219, 196);">module:
          ietf-interfaces</div>
        <div class="" style="margin: 0px; font-family: Courier; color:
          rgb(76, 47, 45); background-color: rgb(223, 219, 196);">&nbsp;&nbsp;
          +--rw interfaces</div>
        <div class="" style="margin: 0px; font-family: Courier; color:
          rgb(76, 47, 45); background-color: rgb(223, 219, 196);">&nbsp;&nbsp; |&nbsp;
          +--rw interface* [name]</div>
        <div class="" style="margin: 0px; font-family: Courier; color:
          rgb(76, 47, 45); background-color: rgb(223, 219, 196);">&nbsp;&nbsp; | &nbsp;
          &nbsp; +--rw name&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; string</div>
        <div class="" style="margin: 0px; font-family: Courier; color:
          rgb(76, 47, 45); background-color: rgb(223, 219, 196);">&nbsp;&nbsp; | &nbsp;
          &nbsp; +--rw description?&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; string</div>
        <div class="" style="margin: 0px; font-family: Courier; color:
          rgb(76, 47, 45); background-color: rgb(223, 219, 196);">&nbsp;&nbsp; | &nbsp;
          &nbsp; +--rw type&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; identityref</div>
        <div class="" style="margin: 0px; font-family: Courier; color:
          rgb(76, 47, 45); background-color: rgb(223, 219, 196);">&nbsp;&nbsp; | &nbsp;
          &nbsp; +--rw enabled? &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;boolean</div>
        <div class="" style="margin: 0px; font-family: Courier; color:
          rgb(76, 47, 45); background-color: rgb(223, 219, 196);">&nbsp;&nbsp; | &nbsp;
          &nbsp; +--rw link-up-down-trap-enable? &nbsp; enumeration {if-mib}?</div>
        <div class="" style="margin: 0px; font-family: Courier; color:
          rgb(76, 47, 45); background-color: rgb(223, 219, 196);">&nbsp;&nbsp; | &nbsp;
          &nbsp; +--rw multi:line</div>
        <div class="" style="margin: 0px; font-family: Courier; color:
          rgb(76, 47, 45); background-color: rgb(223, 219, 196);">&nbsp;&nbsp; |&nbsp;
          &nbsp; &nbsp; &nbsp; +--rw multi:supported-type* &nbsp; identityref</div>
        <div class="" style="margin: 0px; font-family: Courier; color:
          rgb(76, 47, 45); background-color: rgb(223, 219, 196);">&nbsp;&nbsp; |&nbsp;
          &nbsp; &nbsp; &nbsp; +--rw color-sel:line</div>
        <div class="" style="margin: 0px; font-family: Courier; color:
          rgb(76, 47, 45); background-color: rgb(223, 219, 196);">&nbsp;&nbsp; |&nbsp;
          &nbsp; &nbsp; &nbsp; +--rw green:line</div>
        <div class="" style="margin: 0px; font-family: Courier; color:
          rgb(76, 47, 45); background-color: rgb(223, 219, 196);">&nbsp;&nbsp; |&nbsp;
          &nbsp; &nbsp; &nbsp; +--rw red:line</div>
        <div class=""><br class="">
        </div>
      </div>
      <div class="">The nice thing about this approach is that it models
        the port in a way that is close to how it actually _is_. Each
        port needs only a single interface that's directly associated
        with the handshake mechanism and the supported physical layer
        standards.</div>
      <div class=""><br class="">
      </div>
      <div class="">A possible disadvantage of this approach is that it
        is a bit less well aligned with RFC 7223, e.g there is only one
        interface-level enable/disable that has to be "shared" by
        color-selector, green and red.</div>
      <br class="">
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br class="">
      <pre wrap="" class="">_______________________________________________
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 class="">
  </div>

</div></blockquote></div><br class=""></div></body></html>
--Apple-Mail=_3E8D7200-104E-4413-941C-AC6379D62E95--


From nobody Wed Nov 11 04:26: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 A2AD31B35C4 for <netmod@ietfa.amsl.com>; Wed, 11 Nov 2015 04:26:37 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.26
X-Spam-Level: 
X-Spam-Status: No, score=-3.26 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, J_CHICKENPOX_84=0.6, 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 oKE7fshIRtt1 for <netmod@ietfa.amsl.com>; Wed, 11 Nov 2015 04:26:36 -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 A50861B35C2 for <netmod@ietf.org>; Wed, 11 Nov 2015 04:26:35 -0800 (PST)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id 7463E7DE; Wed, 11 Nov 2015 13:26:34 +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 FNeAPyvQba5f; Wed, 11 Nov 2015 13:26:33 +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 Nov 2015 13:26:33 +0100 (CET)
Received: from localhost (demetrius2.jacobs-university.de [212.201.44.47]) by hermes.jacobs-university.de (Postfix) with ESMTP id 076D32004E; Wed, 11 Nov 2015 13:26:33 +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 uNKEH5ArPtGQ; Wed, 11 Nov 2015 13:26: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 8F46F2003B; Wed, 11 Nov 2015 13:26:31 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id A905E387CD68; Wed, 11 Nov 2015 13:26:30 +0100 (CET)
Date: Wed, 11 Nov 2015 13:26:30 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Ladislav Lhotka <lhotka@nic.cz>
Message-ID: <20151111122630.GB22461@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: <CABCOCHQF-yRCgG47UqTWjhOBWvz_yLsw=F_GZ4DYiROt9_QTZw@mail.gmail.com> <5641FC2F.9060703@hq.sk> <CABCOCHSUrbk-KVNtcKRO8hUAj83akHb=+7abJoVvVgUSTG7sRA@mail.gmail.com> <20151111.073423.361054647288765847.mbj@tail-f.com> <20151111080728.GA21672@elstar.local> <7BA43E86-C528-451A-BB16-140608D3B871@nic.cz>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <7BA43E86-C528-451A-BB16-140608D3B871@nic.cz>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/7TAXVgwKZQ1Z2FWdvxee2aaNdWc>
Cc: netmod@ietf.org
Subject: Re: [netmod] JSON encoding of anyxml
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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 11 Nov 2015 12:26:37 -0000

On Wed, Nov 11, 2015 at 11:54:58AM +0100, Ladislav Lhotka wrote:
> 
> > On 11 Nov 2015, at 09:07, Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote:
> > 
> > On Wed, Nov 11, 2015 at 07:34:23AM +0100, Martin Bjorklund wrote:
> >> Andy Bierman <andy@yumaworks.com> wrote:
> >>> On Tue, Nov 10, 2015 at 6:16 AM, Robert Varga <nite@hq.sk> wrote:
> >>> 
> >>>> Hello,
> >>>> 
> >>>> I am not favor of it, either, but RFC6020 is here and is being widely
> >>>> deployed. So is RESTCONF+JSON, which is favored by application developers
> >>>> in the field today, as is NETCONF devices producing anyxml. We do need a
> >>>> reasonable way of bridging the two -- no matter whether it is configuration
> >>>> or operational data.
> >>>> 
> >>>> 
> >>> 
> >>> I do not agree that the use of anyxml as arbitrary XML is deployed at all.
> >>> I do not agree that all the "extra XML bits" that are causing so much
> >>> concern
> >>> are ever saved in a datastore.  Martin says we need anyxml for RPC input
> >>> and output. Maybe. This seems proprietary, since no NETCONF/RESTCONF
> >>> operation depends on anything except elements and attributes.
> >> 
> >> Specifically, we need anyxml for ietf-netconf, since NETCONF is
> >> supposedly data modeling language agnostic.
> >> 
> >> One option could be to deprecte anyxml (or remove it) in YANG 1.1, and
> >> if we ever do a new version of NETCONF, we use anydata instead.
> >> 
> > 
> > We are effectively deprecating anyxml in YANG 1.1. We have reached
> > agreement on Y34-05 and I do not see any new arguments popping up.
> 
> There is nothing in 6020bis indicating that "anyxml" is being deprecated.
>

I wrote 'effectively deprecated' and here is the text in 6020bis.

   Since the use of anyxml limits the manipulation of the content, it is
   RECOMMENDED that the "anyxml" statement not be used to define
   configuration data.

   It should be noted that in YANG version 1, anyxml was the only
   statement that could model an unknown hierarchy of data.  In many
   cases this unknown hierarchy of data is actually modelled in YANG,
   but the exact YANG model is not known at design time.  In these
   situations, it is RECOMMENDED to use anydata (Section 7.10) instead
   of anyxml.

There is more text in Y34-05 that will go into the guidelines. I call
this "effectively deprecated", you can call it differently if you
want. Frankly, this thread is about how to encode anyxml in JSON not
about the YANG 1.1 issue Y34. You may not like Y34-05 but this is what
we ended up 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 Wed Nov 11 04:54:59 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 C75FB1A8A3D for <netmod@ietfa.amsl.com>; Wed, 11 Nov 2015 04:54:58 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level: 
X-Spam-Status: No, score=-2.7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, GB_I_LETTER=-2, J_CHICKENPOX_34=0.6, J_CHICKENPOX_54=0.6] 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 rrniYhodmHib for <netmod@ietfa.amsl.com>; Wed, 11 Nov 2015 04:54:56 -0800 (PST)
Received: from trail.lhotka.name (trail.lhotka.name [77.48.224.143]) by ietfa.amsl.com (Postfix) with ESMTP id AB9DE1A8A1F for <netmod@ietf.org>; Wed, 11 Nov 2015 04:54:55 -0800 (PST)
Received: from localhost (unknown [195.113.220.110]) by trail.lhotka.name (Postfix) with ESMTPSA id 76FF01CC0196; Wed, 11 Nov 2015 13:54:55 +0100 (CET)
From: Ladislav Lhotka <lhotka@nic.cz>
To: Robert Wilton <rwilton@cisco.com>, William Lupton <wlupton@broadband-forum.org>
In-Reply-To: <56431D4F.5050508@cisco.com>
References: <6406A7E0-EBC1-465F-A611-8D54859900EA@broadband-forum.org> <56431D4F.5050508@cisco.com>
User-Agent: Notmuch/0.21 (http://notmuchmail.org) Emacs/24.4.51.2 (x86_64-apple-darwin14.0.0)
Date: Wed, 11 Nov 2015 13:54:54 +0100
Message-ID: <m2a8qk3dcx.fsf@birdie.labs.nic.cz>
MIME-Version: 1.0
Content-Type: text/plain
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/FCzflofDmcMNkwEqOns896kYtkk>
Cc: netmod@ietf.org
Subject: Re: [netmod] Modelling ports that can support multiple physical layer standards
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 11 Nov 2015 12:54:59 -0000

Robert Wilton <rwilton@cisco.com> writes:

> Hi William,
>
> I'm not that familiar with Broadband physical layer standards, but I 
> have an interest in figuring out some of the physical layer and 
> interface layer relationships in YANG.
>
> There are a couple of things that are not clear to me from your email, 
> so I have two questions:
>
> 1) Am I right to presume that the "type" of the port is fixed, and can't 
> be changed by the handshake mechanism?
> 2) I don't quite understand your last sentence regarding only one 
> interface-level enable/disable leaf.  I would have thought that this 
> would be a benefit.  Please can you elaborate.
>
>
> There is possibly a third way to model this, which is to have an 
> augmentation of a choice statement, i.e.:
> 1. Your base model would define a choice statement representing the 
> physical-layer 'color'.
> 2. Each physical layer 'color' would be a separate augmentation of the 
> choice statement.

Another option might be to come up with a hierarchy of interface types and
then make conditional augments based on the type.

For example, a simple hierarchy could be like this:

multi-color
  red
  green

Now that YANG 1.1 supports multiple inheritance of identities, this
would be just another interface property axis.  

This design is extensible and also allows for fine control of how
individual properties are shared among the "colors".

Lada

>
> Using this design ensures that the model can only ever have a single 
> physical-layer at a given time, and yet still makes it clear which 
> physical-layer is in use and also allows for different configuration 
> nodes for each color.
>
> I've used this structure for modelling layer 2 encapsulation in the IDs 
> that I've put forward:
> E.g. see "choice encaps-type" in draft-wilton-netmod-intf-ext-yang-01 
> for the base model, and two instances of
>
> 'augment "/if:interfaces/if:interface/if-cmn:encapsulation/if-cmn:encaps-type"'
>
> in draft-wilton-netmod-intf-vlan-yang-01 for two example augmentation 
> cover a basic VLAN layer 2 encapsulation, and a more flexible layer 2 
> encapsulation.  Other layer 2 encapsulations could also be defined for 
> PPP, cHDLC, FR, ATM, etc in separate drafts.
>
> Perhaps this choice + augmentation design would also work well in your case?
>
> Thanks,
> Rob
>
>
> On 11/11/2015 09:28, William Lupton wrote:
>> All,
>>
>> We would much appreciate comments and suggestions on the question 
>> posed below.
>>
>> Thanks,
>> William Lupton
>> (Software Architect, Broadband Forum)
>>
>> ----------------
>>
>> In the Broadband Forum we need to model a port that can support 
>> several physical layer standards, but only one at a time. An initial 
>> handshake mechanism determines which of these standards will actually 
>> be used. We have been trying to decide how best to model this 
>> according to the letter and spirit of RFCs 6020, 6087, 7223 etc.
>>
>> Consider a port, a handshake mechanism "color-selector" and two 
>> physical layer standards "green" and "red". Each of these is modelled 
>> via a YANG module of the same name ("port" probably uses the 
>> ietf-entity module). Here are the approaches that we have considered:
>>
>> ***** Option 1 "direct augment" *****
>>
>> color-selector, green and red all directly augment 
>> /if:interfaces/if:interface. An instance of each of them is associated 
>> with the port. See part of the tree here (YANG on request).
>>
>> module: ietf-interfaces
>> +--rw interfaces
>>    | +--rw interface* [name]
>>    |   +--rw name                        string
>>    |   +--rw description?                string
>>    |   +--rw type                        identityref
>>    |   +--rw enabled?                    boolean
>>    |   +--rw link-up-down-trap-enable?   enumeration {if-mib}?
>>    |   +--rw color-sel:line
>>    |   +--rw green:line
>>    |   +--rw red:line
>>
>> Note that this means that each port needs three separate interface 
>> objects. For each additional possible supported physical layer 
>> standard, an additional interface object would be needed.
>>
>> ***** Option 2 "indirect augment" *****
>>
>> An additional if-multicolor module directly augments 
>> /if:interfaces/if:interface. An instance of if-multicolor is 
>> associated with the port. if-multicolor has a supported-type leaf-list 
>> that indicates the physical layer standards that are supported by the 
>> port (green and red in this case). color-selector, green and red are 
>> similar to before but this time they augment 
>> /if:interfaces/if:interface/multi:line, and the green and red "when" 
>> (existence) criteria are tied to if-multicolor's supported-type 
>> leaf-list rather than to their own type leaf. See part of the tree 
>> here (YANG on request).
>>
>> module: ietf-interfaces
>> +--rw interfaces
>>    | +--rw interface* [name]
>>    |   +--rw name                        string
>>    |   +--rw description?                string
>>    |   +--rw type                        identityref
>>    |   +--rw enabled?                    boolean
>>    |   +--rw link-up-down-trap-enable?   enumeration {if-mib}?
>>    |   +--rw multi:line
>>    |       +--rw multi:supported-type*   identityref
>>    |       +--rw color-sel:line
>>    |       +--rw green:line
>>    |       +--rw red:line
>>
>> The nice thing about this approach is that it models the port in a way 
>> that is close to how it actually _is_. Each port needs only a single 
>> interface that's directly associated with the handshake mechanism and 
>> the supported physical layer standards.
>>
>> A possible disadvantage of this approach is that it is a bit less well 
>> aligned with RFC 7223, e.g there is only one interface-level 
>> enable/disable that has to be "shared" by color-selector, green and red.
>>
>>
>> _______________________________________________
>> 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

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


From nobody Wed Nov 11 05:24:19 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 2A2FE1B3678 for <netmod@ietfa.amsl.com>; Wed, 11 Nov 2015 05:24:19 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.239
X-Spam-Level: 
X-Spam-Status: No, score=0.239 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, J_CHICKENPOX_84=0.6, 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 NsXKboldOtsD for <netmod@ietfa.amsl.com>; Wed, 11 Nov 2015 05:24:17 -0800 (PST)
Received: from mail.nic.cz (mail.nic.cz [IPv6:2001:1488:800:400::400]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 397C71B3676 for <netmod@ietf.org>; Wed, 11 Nov 2015 05:24:16 -0800 (PST)
Received: from [IPv6:2001:718:1a02:1:9a1:2c65:d0fa:d126] (unknown [IPv6:2001:718:1a02:1:9a1:2c65:d0fa:d126]) by mail.nic.cz (Postfix) with ESMTPSA id 6E0EE181901; Wed, 11 Nov 2015 14:24:14 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nic.cz; s=default; t=1447248254; bh=z6RUVS4fE8eaGeUBiDVlxArpsAxfF1NAf0walUyzZwI=; h=From:Date:To; b=ZUK81u6d0t8Ym9a0orVvRi2amLiSZopEP/dAR717UCA1FIFOFkaF/Kn4t3Oq9kSNL KyyGQRRrJJ9ty74tRoOHEEuzghQJSTY3VnoDT8SNKUbNavb2d6I6tls371YxjZablh S33ZS1TKJC0SNmE40eJZU/vwTS+naelPfXpMKGhE=
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
From: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <20151111122630.GB22461@elstar.local>
Date: Wed, 11 Nov 2015 14:24:15 +0100
Content-Transfer-Encoding: quoted-printable
Message-Id: <54465E2E-3F7F-48D0-8164-18DEC5CFAD79@nic.cz>
References: <CABCOCHQF-yRCgG47UqTWjhOBWvz_yLsw=F_GZ4DYiROt9_QTZw@mail.gmail.com> <5641FC2F.9060703@hq.sk> <CABCOCHSUrbk-KVNtcKRO8hUAj83akHb=+7abJoVvVgUSTG7sRA@mail.gmail.com> <20151111.073423.361054647288765847.mbj@tail-f.com> <20151111080728.GA21672@elstar.local> <7BA43E86-C528-451A-BB16-140608D3B871@nic.cz> <20151111122630.GB22461@elstar.local>
To: =?utf-8?Q?J=C3=BCrgen_Sch=C3=B6nw=C3=A4lder?= <j.schoenwaelder@jacobs-university.de>
X-Mailer: Apple Mail (2.3096.5)
X-Virus-Scanned: clamav-milter 0.98.7 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/jNq4IEvs-rqdmcgeTDhJ6EEbEKY>
Cc: netmod@ietf.org
Subject: Re: [netmod] JSON encoding of anyxml
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 11 Nov 2015 13:24:19 -0000

> On 11 Nov 2015, at 13:26, Juergen Schoenwaelder =
<j.schoenwaelder@jacobs-university.de> wrote:
>=20
> On Wed, Nov 11, 2015 at 11:54:58AM +0100, Ladislav Lhotka wrote:
>>=20
>>> On 11 Nov 2015, at 09:07, Juergen Schoenwaelder =
<j.schoenwaelder@jacobs-university.de> wrote:
>>>=20
>>> On Wed, Nov 11, 2015 at 07:34:23AM +0100, Martin Bjorklund wrote:
>>>> Andy Bierman <andy@yumaworks.com> wrote:
>>>>> On Tue, Nov 10, 2015 at 6:16 AM, Robert Varga <nite@hq.sk> wrote:
>>>>>=20
>>>>>> Hello,
>>>>>>=20
>>>>>> I am not favor of it, either, but RFC6020 is here and is being =
widely
>>>>>> deployed. So is RESTCONF+JSON, which is favored by application =
developers
>>>>>> in the field today, as is NETCONF devices producing anyxml. We do =
need a
>>>>>> reasonable way of bridging the two -- no matter whether it is =
configuration
>>>>>> or operational data.
>>>>>>=20
>>>>>>=20
>>>>>=20
>>>>> I do not agree that the use of anyxml as arbitrary XML is deployed =
at all.
>>>>> I do not agree that all the "extra XML bits" that are causing so =
much
>>>>> concern
>>>>> are ever saved in a datastore.  Martin says we need anyxml for RPC =
input
>>>>> and output. Maybe. This seems proprietary, since no =
NETCONF/RESTCONF
>>>>> operation depends on anything except elements and attributes.
>>>>=20
>>>> Specifically, we need anyxml for ietf-netconf, since NETCONF is
>>>> supposedly data modeling language agnostic.
>>>>=20
>>>> One option could be to deprecte anyxml (or remove it) in YANG 1.1, =
and
>>>> if we ever do a new version of NETCONF, we use anydata instead.
>>>>=20
>>>=20
>>> We are effectively deprecating anyxml in YANG 1.1. We have reached
>>> agreement on Y34-05 and I do not see any new arguments popping up.
>>=20
>> There is nothing in 6020bis indicating that "anyxml" is being =
deprecated.
>>=20
>=20
> I wrote 'effectively deprecated' and here is the text in 6020bis.
>=20
>   Since the use of anyxml limits the manipulation of the content, it =
is
>   RECOMMENDED that the "anyxml" statement not be used to define
>   configuration data.
>=20
>   It should be noted that in YANG version 1, anyxml was the only
>   statement that could model an unknown hierarchy of data.  In many
>   cases this unknown hierarchy of data is actually modelled in YANG,
>   but the exact YANG model is not known at design time.  In these
>   situations, it is RECOMMENDED to use anydata (Section 7.10) instead
>   of anyxml.

The first paragraph is for config data and the second for data that can =
modelled with YANG. If we want to deprecate "anyxml" for use with data =
that are neither of these, 6020bis should say so. I'd be fine with that.

>=20
> There is more text in Y34-05 that will go into the guidelines. I call
> this "effectively deprecated", you can call it differently if you
> want. Frankly, this thread is about how to encode anyxml in JSON not
> about the YANG 1.1 issue Y34. You may not like Y34-05 but this is what
> we ended up with.

I am strongly against encoding serialized XML as JSON strings. It is IMO =
totally useless and the spec would have to deal with awkward =
complications because it is not true that arbitrary XML-encoded anyxml =
content can be used without changes in JSON encoding.=20

Perhaps the best solution would be to state that JSON encoding is =
incompatible with data models that use "anyxml".

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

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





From nobody Wed Nov 11 05:44: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 2DC651ACDC4 for <netmod@ietfa.amsl.com>; Wed, 11 Nov 2015 05:44:20 -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 S9aWUSichY92 for <netmod@ietfa.amsl.com>; Wed, 11 Nov 2015 05:44:18 -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 E2FA51ACDA6 for <netmod@ietf.org>; Wed, 11 Nov 2015 05:44:17 -0800 (PST)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id B42358E1; Wed, 11 Nov 2015 14:44: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 5T7LWWTkuGLa; Wed, 11 Nov 2015 14:44: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; Wed, 11 Nov 2015 14:44:15 +0100 (CET)
Received: from localhost (demetrius4.jacobs-university.de [212.201.44.49]) by hermes.jacobs-university.de (Postfix) with ESMTP id 477EC2003B; Wed, 11 Nov 2015 14:44:15 +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 dJ-maupnrnrB; Wed, 11 Nov 2015 14:44: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 D08BF2004E; Wed, 11 Nov 2015 14:44:13 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id 1AE81387CE14; Wed, 11 Nov 2015 14:44:12 +0100 (CET)
Date: Wed, 11 Nov 2015 14:44:12 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Ladislav Lhotka <lhotka@nic.cz>
Message-ID: <20151111134412.GA22783@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: <CABCOCHQF-yRCgG47UqTWjhOBWvz_yLsw=F_GZ4DYiROt9_QTZw@mail.gmail.com> <5641FC2F.9060703@hq.sk> <CABCOCHSUrbk-KVNtcKRO8hUAj83akHb=+7abJoVvVgUSTG7sRA@mail.gmail.com> <20151111.073423.361054647288765847.mbj@tail-f.com> <20151111080728.GA21672@elstar.local> <7BA43E86-C528-451A-BB16-140608D3B871@nic.cz> <20151111122630.GB22461@elstar.local> <54465E2E-3F7F-48D0-8164-18DEC5CFAD79@nic.cz>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <54465E2E-3F7F-48D0-8164-18DEC5CFAD79@nic.cz>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/LvuTYAh5iLWXPqDsI0ZFwY_2pbc>
Cc: netmod@ietf.org
Subject: Re: [netmod] JSON encoding of anyxml
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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 11 Nov 2015 13:44:20 -0000

On Wed, Nov 11, 2015 at 02:24:15PM +0100, Ladislav Lhotka wrote:
> 
> > 
> > I wrote 'effectively deprecated' and here is the text in 6020bis.
> > 
> >   Since the use of anyxml limits the manipulation of the content, it is
> >   RECOMMENDED that the "anyxml" statement not be used to define
> >   configuration data.
> > 
> >   It should be noted that in YANG version 1, anyxml was the only
> >   statement that could model an unknown hierarchy of data.  In many
> >   cases this unknown hierarchy of data is actually modelled in YANG,
> >   but the exact YANG model is not known at design time.  In these
> >   situations, it is RECOMMENDED to use anydata (Section 7.10) instead
> >   of anyxml.
> 
> The first paragraph is for config data and the second for data that can modelled with YANG. If we want to deprecate "anyxml" for use with data that are neither of these, 6020bis should say so. I'd be fine with that.
>

The guidelines will say that any usage of anyxml in the IETF will be
carefully checked by YANG doctors. See Y34 for all details.

> > There is more text in Y34-05 that will go into the guidelines. I call
> > this "effectively deprecated", you can call it differently if you
> > want. Frankly, this thread is about how to encode anyxml in JSON not
> > about the YANG 1.1 issue Y34. You may not like Y34-05 but this is what
> > we ended up with.
> 
> I am strongly against encoding serialized XML as JSON strings. It is IMO totally useless and the spec would have to deal with awkward complications because it is not true that arbitrary XML-encoded anyxml content can be used without changes in JSON encoding. 
> 
> Perhaps the best solution would be to state that JSON encoding is incompatible with data models that use "anyxml".
>

Perhaps we can only settle this by doing an opinion poll since
debating this forever is not useful. So what are the options?

a) The JSON encoding does not define anyxml is not encoded at all. If
   you use anyxml in a data model, the content will not appear in JSON
   encodings.

b) The JSON encoding defines that anyxml data is encoded as a string
   containing XML.

c) The JSON encoding defines that anyxml is encoded in whatever way
   the implementor finds useful.

d) If the anyxml content is actually valid anydata content, encode it
   using anydata rules. Content that is not valid anydata content is
   not encoded at all.

Any options missing?

Observations:

 - Except b), none of the options is interoperable. Option d) is
   interoperable for the anydata subset of anyxml.
 - It seems a) is simplest to implement, b) might be expensive to
   implement and use.
 - Some implementations use internal data stores that can only deal
   with data that can be modelled with YANG and for those implementations
   anyxml is effectively the same as anydata and d) migth be close to
   a) in terms of implementation costs.

Any other observations missing?

/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 Nov 11 05:53: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 E06581ACE41 for <netmod@ietfa.amsl.com>; Wed, 11 Nov 2015 05:53:50 -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 Hjx3mu23tdGI for <netmod@ietfa.amsl.com>; Wed, 11 Nov 2015 05:53:49 -0800 (PST)
Received: from mail.nic.cz (mail.nic.cz [IPv6:2001:1488:800:400::400]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 29B561ACE46 for <netmod@ietf.org>; Wed, 11 Nov 2015 05:53:49 -0800 (PST)
Received: from [IPv6:2001:718:1a02:1:9a1:2c65:d0fa:d126] (unknown [IPv6:2001:718:1a02:1:9a1:2c65:d0fa:d126]) by mail.nic.cz (Postfix) with ESMTPSA id 3B4A7181743; Wed, 11 Nov 2015 14:53:47 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nic.cz; s=default; t=1447250027; bh=73uJvBnJK5TRlwv/8jJEEMIXjNTp1XN6Gu9+8B7TgUM=; h=From:Date:To; b=q+w6ON/NxAz76Va27qU0cqUgfWKQRn9NH3AAub89mboAhQpZczCgTPjmOZrXvRAES AcKHP2V1O4hyjnVLkFU4vcrXn2AkDHVUsM7SbZR5e9J5zDaQmu4Q4XdDG1nzJjend3 QLuipeDv8O8mkN0buuVu0fL4VpWT/TXUtGM0mjXc=
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
From: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <20151111134412.GA22783@elstar.local>
Date: Wed, 11 Nov 2015 14:53:49 +0100
Content-Transfer-Encoding: quoted-printable
Message-Id: <2B6DC0CD-1214-4503-95E4-DDF1E5E56A57@nic.cz>
References: <CABCOCHQF-yRCgG47UqTWjhOBWvz_yLsw=F_GZ4DYiROt9_QTZw@mail.gmail.com> <5641FC2F.9060703@hq.sk> <CABCOCHSUrbk-KVNtcKRO8hUAj83akHb=+7abJoVvVgUSTG7sRA@mail.gmail.com> <20151111.073423.361054647288765847.mbj@tail-f.com> <20151111080728.GA21672@elstar.local> <7BA43E86-C528-451A-BB16-140608D3B871@nic.cz> <20151111122630.GB22461@elstar.local> <54465E2E-3F7F-48D0-8164-18DEC5CFAD79@nic.cz> <20151111134412.GA22783@elstar.local>
To: =?utf-8?Q?J=C3=BCrgen_Sch=C3=B6nw=C3=A4lder?= <j.schoenwaelder@jacobs-university.de>
X-Mailer: Apple Mail (2.3096.5)
X-Virus-Scanned: clamav-milter 0.98.7 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/yzwbqTcfs1Fy48tNes3suOw0Nks>
Cc: netmod@ietf.org
Subject: Re: [netmod] JSON encoding of anyxml
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 11 Nov 2015 13:53:51 -0000

> On 11 Nov 2015, at 14:44, Juergen Schoenwaelder =
<j.schoenwaelder@jacobs-university.de> wrote:
>=20
> On Wed, Nov 11, 2015 at 02:24:15PM +0100, Ladislav Lhotka wrote:
>>=20
>>>=20
>>> I wrote 'effectively deprecated' and here is the text in 6020bis.
>>>=20
>>>  Since the use of anyxml limits the manipulation of the content, it =
is
>>>  RECOMMENDED that the "anyxml" statement not be used to define
>>>  configuration data.
>>>=20
>>>  It should be noted that in YANG version 1, anyxml was the only
>>>  statement that could model an unknown hierarchy of data.  In many
>>>  cases this unknown hierarchy of data is actually modelled in YANG,
>>>  but the exact YANG model is not known at design time.  In these
>>>  situations, it is RECOMMENDED to use anydata (Section 7.10) instead
>>>  of anyxml.
>>=20
>> The first paragraph is for config data and the second for data that =
can modelled with YANG. If we want to deprecate "anyxml" for use with =
data that are neither of these, 6020bis should say so. I'd be fine with =
that.
>>=20
>=20
> The guidelines will say that any usage of anyxml in the IETF will be
> carefully checked by YANG doctors. See Y34 for all details.
>=20
>>> There is more text in Y34-05 that will go into the guidelines. I =
call
>>> this "effectively deprecated", you can call it differently if you
>>> want. Frankly, this thread is about how to encode anyxml in JSON not
>>> about the YANG 1.1 issue Y34. You may not like Y34-05 but this is =
what
>>> we ended up with.
>>=20
>> I am strongly against encoding serialized XML as JSON strings. It is =
IMO totally useless and the spec would have to deal with awkward =
complications because it is not true that arbitrary XML-encoded anyxml =
content can be used without changes in JSON encoding.=20
>>=20
>> Perhaps the best solution would be to state that JSON encoding is =
incompatible with data models that use "anyxml".
>>=20
>=20
> Perhaps we can only settle this by doing an opinion poll since
> debating this forever is not useful. So what are the options?
>=20
> a) The JSON encoding does not define anyxml is not encoded at all. If
>   you use anyxml in a data model, the content will not appear in JSON
>   encodings.
>=20
> b) The JSON encoding defines that anyxml data is encoded as a string
>   containing XML.
>=20
> c) The JSON encoding defines that anyxml is encoded in whatever way
>   the implementor finds useful.
>=20
> d) If the anyxml content is actually valid anydata content, encode it
>   using anydata rules. Content that is not valid anydata content is
>   not encoded at all.
>=20
> Any options missing?

Yes, the one that's in yang-json-06:

e) An anyxml instance is encoded as a JSON name/value pair which MUST
   satisfy I-JSON constraints.  Otherwise it is unrestricted, i.e., the
   value can be an object, array, number, string or one of the literals
   "true", "false" and "null".


My preference is e), and then a).

Lada

>=20
> Observations:
>=20
> - Except b), none of the options is interoperable. Option d) is
>   interoperable for the anydata subset of anyxml.
> - It seems a) is simplest to implement, b) might be expensive to
>   implement and use.
> - Some implementations use internal data stores that can only deal
>   with data that can be modelled with YANG and for those =
implementations
>   anyxml is effectively the same as anydata and d) migth be close to
>   a) in terms of implementation costs.
>=20
> Any other observations missing?
>=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/>

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





From nobody Wed Nov 11 05:59:27 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 BDA931ACE5E for <netmod@ietfa.amsl.com>; Wed, 11 Nov 2015 05:59:25 -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 Zv-QuDhvsIYB for <netmod@ietfa.amsl.com>; Wed, 11 Nov 2015 05:59:24 -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 D96D91ACE60 for <netmod@ietf.org>; Wed, 11 Nov 2015 05:59:23 -0800 (PST)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id AB35810EF; Wed, 11 Nov 2015 14:59: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 B1jRZ3QxZoO2; Wed, 11 Nov 2015 14:59:21 +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 Nov 2015 14:59:21 +0100 (CET)
Received: from localhost (demetrius3.jacobs-university.de [212.201.44.48]) by hermes.jacobs-university.de (Postfix) with ESMTP id 853C62004E; Wed, 11 Nov 2015 14:59:21 +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 zjl3a_P_mW_t; Wed, 11 Nov 2015 14:59:20 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id 13AE920054; Wed, 11 Nov 2015 14:59:20 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id 00800387CE5F; Wed, 11 Nov 2015 14:59:19 +0100 (CET)
Date: Wed, 11 Nov 2015 14:59:19 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Ladislav Lhotka <lhotka@nic.cz>
Message-ID: <20151111135919.GA22885@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: <CABCOCHQF-yRCgG47UqTWjhOBWvz_yLsw=F_GZ4DYiROt9_QTZw@mail.gmail.com> <5641FC2F.9060703@hq.sk> <CABCOCHSUrbk-KVNtcKRO8hUAj83akHb=+7abJoVvVgUSTG7sRA@mail.gmail.com> <20151111.073423.361054647288765847.mbj@tail-f.com> <20151111080728.GA21672@elstar.local> <7BA43E86-C528-451A-BB16-140608D3B871@nic.cz> <20151111122630.GB22461@elstar.local> <54465E2E-3F7F-48D0-8164-18DEC5CFAD79@nic.cz> <20151111134412.GA22783@elstar.local> <2B6DC0CD-1214-4503-95E4-DDF1E5E56A57@nic.cz>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <2B6DC0CD-1214-4503-95E4-DDF1E5E56A57@nic.cz>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/-Dks9HiZBnbArkcTNePT6KU2xSU>
Cc: netmod@ietf.org
Subject: Re: [netmod] JSON encoding of anyxml
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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 11 Nov 2015 13:59:25 -0000

On Wed, Nov 11, 2015 at 02:53:49PM +0100, Ladislav Lhotka wrote:
> 
> > On 11 Nov 2015, at 14:44, Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote:
> > 
> > On Wed, Nov 11, 2015 at 02:24:15PM +0100, Ladislav Lhotka wrote:
> >> 
> >>> 
> >>> I wrote 'effectively deprecated' and here is the text in 6020bis.
> >>> 
> >>>  Since the use of anyxml limits the manipulation of the content, it is
> >>>  RECOMMENDED that the "anyxml" statement not be used to define
> >>>  configuration data.
> >>> 
> >>>  It should be noted that in YANG version 1, anyxml was the only
> >>>  statement that could model an unknown hierarchy of data.  In many
> >>>  cases this unknown hierarchy of data is actually modelled in YANG,
> >>>  but the exact YANG model is not known at design time.  In these
> >>>  situations, it is RECOMMENDED to use anydata (Section 7.10) instead
> >>>  of anyxml.
> >> 
> >> The first paragraph is for config data and the second for data that can modelled with YANG. If we want to deprecate "anyxml" for use with data that are neither of these, 6020bis should say so. I'd be fine with that.
> >> 
> > 
> > The guidelines will say that any usage of anyxml in the IETF will be
> > carefully checked by YANG doctors. See Y34 for all details.
> > 
> >>> There is more text in Y34-05 that will go into the guidelines. I call
> >>> this "effectively deprecated", you can call it differently if you
> >>> want. Frankly, this thread is about how to encode anyxml in JSON not
> >>> about the YANG 1.1 issue Y34. You may not like Y34-05 but this is what
> >>> we ended up with.
> >> 
> >> I am strongly against encoding serialized XML as JSON strings. It is IMO totally useless and the spec would have to deal with awkward complications because it is not true that arbitrary XML-encoded anyxml content can be used without changes in JSON encoding. 
> >> 
> >> Perhaps the best solution would be to state that JSON encoding is incompatible with data models that use "anyxml".
> >> 
> > 
> > Perhaps we can only settle this by doing an opinion poll since
> > debating this forever is not useful. So what are the options?
> > 
> > a) The JSON encoding does not define anyxml is not encoded at all. If
> >   you use anyxml in a data model, the content will not appear in JSON
> >   encodings.
> > 
> > b) The JSON encoding defines that anyxml data is encoded as a string
> >   containing XML.
> > 
> > c) The JSON encoding defines that anyxml is encoded in whatever way
> >   the implementor finds useful.
> > 
> > d) If the anyxml content is actually valid anydata content, encode it
> >   using anydata rules. Content that is not valid anydata content is
> >   not encoded at all.
> > 
> > Any options missing?
> 
> Yes, the one that's in yang-json-06:
> 
> e) An anyxml instance is encoded as a JSON name/value pair which MUST
>    satisfy I-JSON constraints.  Otherwise it is unrestricted, i.e., the
>    value can be an object, array, number, string or one of the literals
>    "true", "false" and "null".
> 
> My preference is e), and then a).
>

Is e) not the same as c)? I assume that the JSON encoding will always
be valid JSON (or I-JSON to be precise). So it seems the only refinement
of e) is the toplevel.

/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 Nov 11 06:14: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 E205A1B36DC for <netmod@ietfa.amsl.com>; Wed, 11 Nov 2015 06:14:15 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.361
X-Spam-Level: 
X-Spam-Status: No, score=-5.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, 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 g8YBHHMkvEh8 for <netmod@ietfa.amsl.com>; Wed, 11 Nov 2015 06:14:13 -0800 (PST)
Received: from mail.nic.cz (mail.nic.cz [217.31.204.67]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 89B671B36DB for <netmod@ietf.org>; Wed, 11 Nov 2015 06:14:13 -0800 (PST)
Received: from [IPv6:2001:718:1a02:1:9a1:2c65:d0fa:d126] (unknown [IPv6:2001:718:1a02:1:9a1:2c65:d0fa:d126]) by mail.nic.cz (Postfix) with ESMTPSA id 8E08218195E; Wed, 11 Nov 2015 15:14:11 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nic.cz; s=default; t=1447251251; bh=gxmjnINErbGDNhpSXrCeQ7/nSm20MuppHTlDTmZcBe8=; h=From:Date:To; b=NWCskHWiSLT9G8f/Xsa2Y7zKr/nN4B2mwJdhShuzN2Oq2FZkTZCKyaJXdjwwFLsLJ Ne9woPk0fzAG+JEIx7F7LjcDXOqJQrakpoB0jSzPQsAKueLBit5EcRn+/Av/7jCr44 RU2S2KgZgKWxztCFN17jgeXXWETJqCl6HlKYh/yE=
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
From: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <20151111135919.GA22885@elstar.local>
Date: Wed, 11 Nov 2015 15:14:13 +0100
Content-Transfer-Encoding: quoted-printable
Message-Id: <A1BF519D-74B4-48FC-B003-83198DD1BD2D@nic.cz>
References: <CABCOCHQF-yRCgG47UqTWjhOBWvz_yLsw=F_GZ4DYiROt9_QTZw@mail.gmail.com> <5641FC2F.9060703@hq.sk> <CABCOCHSUrbk-KVNtcKRO8hUAj83akHb=+7abJoVvVgUSTG7sRA@mail.gmail.com> <20151111.073423.361054647288765847.mbj@tail-f.com> <20151111080728.GA21672@elstar.local> <7BA43E86-C528-451A-BB16-140608D3B871@nic.cz> <20151111122630.GB22461@elstar.local> <54465E2E-3F7F-48D0-8164-18DEC5CFAD79@nic.cz> <20151111134412.GA22783@elstar.local> <2B6DC0CD-1214-4503-95E4-DDF1E5E56A57@nic.cz> <20151111135919.GA22885@elstar.local>
To: =?utf-8?Q?J=C3=BCrgen_Sch=C3=B6nw=C3=A4lder?= <j.schoenwaelder@jacobs-university.de>
X-Mailer: Apple Mail (2.3096.5)
X-Virus-Scanned: clamav-milter 0.98.7 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/2WbVZInvzw3DSTHSnhPbpxaYYLg>
Cc: netmod@ietf.org
Subject: Re: [netmod] JSON encoding of anyxml
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 11 Nov 2015 14:14:16 -0000

> On 11 Nov 2015, at 14:59, Juergen Schoenwaelder =
<j.schoenwaelder@jacobs-university.de> wrote:
>=20
> On Wed, Nov 11, 2015 at 02:53:49PM +0100, Ladislav Lhotka wrote:
>>=20
>>> On 11 Nov 2015, at 14:44, Juergen Schoenwaelder =
<j.schoenwaelder@jacobs-university.de> wrote:
>>>=20
>>> On Wed, Nov 11, 2015 at 02:24:15PM +0100, Ladislav Lhotka wrote:
>>>>=20
>>>>>=20
>>>>> I wrote 'effectively deprecated' and here is the text in 6020bis.
>>>>>=20
>>>>> Since the use of anyxml limits the manipulation of the content, it =
is
>>>>> RECOMMENDED that the "anyxml" statement not be used to define
>>>>> configuration data.
>>>>>=20
>>>>> It should be noted that in YANG version 1, anyxml was the only
>>>>> statement that could model an unknown hierarchy of data.  In many
>>>>> cases this unknown hierarchy of data is actually modelled in YANG,
>>>>> but the exact YANG model is not known at design time.  In these
>>>>> situations, it is RECOMMENDED to use anydata (Section 7.10) =
instead
>>>>> of anyxml.
>>>>=20
>>>> The first paragraph is for config data and the second for data that =
can modelled with YANG. If we want to deprecate "anyxml" for use with =
data that are neither of these, 6020bis should say so. I'd be fine with =
that.
>>>>=20
>>>=20
>>> The guidelines will say that any usage of anyxml in the IETF will be
>>> carefully checked by YANG doctors. See Y34 for all details.
>>>=20
>>>>> There is more text in Y34-05 that will go into the guidelines. I =
call
>>>>> this "effectively deprecated", you can call it differently if you
>>>>> want. Frankly, this thread is about how to encode anyxml in JSON =
not
>>>>> about the YANG 1.1 issue Y34. You may not like Y34-05 but this is =
what
>>>>> we ended up with.
>>>>=20
>>>> I am strongly against encoding serialized XML as JSON strings. It =
is IMO totally useless and the spec would have to deal with awkward =
complications because it is not true that arbitrary XML-encoded anyxml =
content can be used without changes in JSON encoding.=20
>>>>=20
>>>> Perhaps the best solution would be to state that JSON encoding is =
incompatible with data models that use "anyxml".
>>>>=20
>>>=20
>>> Perhaps we can only settle this by doing an opinion poll since
>>> debating this forever is not useful. So what are the options?
>>>=20
>>> a) The JSON encoding does not define anyxml is not encoded at all. =
If
>>>  you use anyxml in a data model, the content will not appear in JSON
>>>  encodings.
>>>=20
>>> b) The JSON encoding defines that anyxml data is encoded as a string
>>>  containing XML.
>>>=20
>>> c) The JSON encoding defines that anyxml is encoded in whatever way
>>>  the implementor finds useful.
>>>=20
>>> d) If the anyxml content is actually valid anydata content, encode =
it
>>>  using anydata rules. Content that is not valid anydata content is
>>>  not encoded at all.
>>>=20
>>> Any options missing?
>>=20
>> Yes, the one that's in yang-json-06:
>>=20
>> e) An anyxml instance is encoded as a JSON name/value pair which MUST
>>   satisfy I-JSON constraints.  Otherwise it is unrestricted, i.e., =
the
>>   value can be an object, array, number, string or one of the =
literals
>>   "true", "false" and "null".
>>=20
>> My preference is e), and then a).
>>=20
>=20
> Is e) not the same as c)? I assume that the JSON encoding will always
> be valid JSON (or I-JSON to be precise). So it seems the only =
refinement
> of e) is the toplevel.

c) sounds like the same data can be encoded in different ways depending =
on what the implementor finds useful, e.g. encode all numbers as =
strings.

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

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





From nobody Wed Nov 11 06:44:52 2015
Return-Path: <rwilton@cisco.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 119631ACEC7 for <netmod@ietfa.amsl.com>; Wed, 11 Nov 2015 06:44:51 -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 Jz5lMK8Xqt-3 for <netmod@ietfa.amsl.com>; Wed, 11 Nov 2015 06:44:49 -0800 (PST)
Received: from aer-iport-4.cisco.com (aer-iport-4.cisco.com [173.38.203.54]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6A1AD1ACEBC for <netmod@ietf.org>; Wed, 11 Nov 2015 06:44:49 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=2048; q=dns/txt; s=iport; t=1447253089; x=1448462689; h=subject:to:references:from:message-id:date:mime-version: in-reply-to:content-transfer-encoding; bh=oi7sJ/PXii+4+1KJfiTEOkZ+Lq0nsAMVVTbxo5Vw+qs=; b=DSt+mu8mgSbqnIr2qbNYWyxWdX0IXVD8OceDFyoS5szW7/PDtvTv+juA oXeDY3+WViIRtDORm0wiwRa80XrtkS7ZFy9Q24utjNRsikISRypSWkjGJ 6sKzE+gpuPQ7VKNcmChSrTrYU7nglquJbPwblPJ5Km6jvfDkz60iKf+8n M=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0CoBABbU0NW/xbLJq1exQ+DPYJTAoIRA?= =?us-ascii?q?QEBAQEBgQuENQEBBDg4CBELDgoJFg8JAwIBAgFFBgEMCAEBiCrEWAEBAQEBAQE?= =?us-ascii?q?BAQEBAQEBAQEdhlSEfok5AQSWSI0miR2TKGOEBD6GCgEBAQ?=
X-IronPort-AV: E=Sophos;i="5.20,276,1444694400"; d="scan'208";a="608119238"
Received: from aer-iport-nat.cisco.com (HELO aer-core-2.cisco.com) ([173.38.203.22]) by aer-iport-4.cisco.com with ESMTP; 11 Nov 2015 14:44:47 +0000
Received: from [10.63.23.71] (dhcp-ensft1-uk-vla370-10-63-23-71.cisco.com [10.63.23.71]) by aer-core-2.cisco.com (8.14.5/8.14.5) with ESMTP id tABEiloD010431; Wed, 11 Nov 2015 14:44:47 GMT
To: William Lupton <wlupton@broadband-forum.org>, netmod@ietf.org
References: <6406A7E0-EBC1-465F-A611-8D54859900EA@broadband-forum.org> <20151111121334.GA22461@elstar.local>
From: Robert Wilton <rwilton@cisco.com>
Message-ID: <5643545F.7000607@cisco.com>
Date: Wed, 11 Nov 2015 14:44:47 +0000
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0
MIME-Version: 1.0
In-Reply-To: <20151111121334.GA22461@elstar.local>
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/OgBQiMTdO8w2Wn4GSXH2cLPbQ_U>
Subject: Re: [netmod] Modelling ports that can support multiple physical layer standards
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 11 Nov 2015 14:44:51 -0000

Hi Juergen,

On 11/11/2015 12:13, Juergen Schoenwaelder wrote:
> On Wed, Nov 11, 2015 at 09:28:57AM +0000, William Lupton wrote:
>> All,
>>
>> We would much appreciate comments and suggestions on the question posed below.
>>
> [...]
>
> Good question. Is this question comparable to IEEE 802.3 interfaces
> and Medium Attachment Units (MAUs)? In the past, I think we have seen
> different approaches and I am not sure there is agreement on a common
> approach. For 802.3 MAUs, MAU details were modeled in data models
> extending a single interface. For other technologies, interface
> layering seemed to be more appropriate. It would be nice if there
> would a common understanding how to model interface specifics
> consistently but I am afraid we have no common model. The
> ietf-interfaces module essentially allows both approaches. It leaves
> it open, however, to decide which approach is appropriate.
I think that a further issue here is that different vendors may have 
different ideas of how to model the layers.  Some vendors have a single 
interface representing both the physical and network layers, but other 
vendors have two separate interfaces (which must have different names to 
appear in if:interfaces) representing both layers (in some cases, if not 
all).  But any such ambiguity is surely going to make models harder to 
use by operators, and hence it would be sensible if the standard IETF 
models could define the expected interface layering behaviour for common 
interface types, even if the base interface model(s) allow for 
alternative interface layering architectures.

Cheers,
Rob


>
> /js
>
> PS: A pure layering approach would treat an IP interface as an
>      interface layered on top of say an IEEE 802.3 interface but
>      the ietf-ip module does not really force this since many
>      implementations do not expose this layering. If I would do
>      a clean slate design, I would likely, from a architectural
>      point of view, go with a layering approach.
>


From nobody Wed Nov 11 07:03:14 2015
Return-Path: <rwilton@cisco.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 037701AD084 for <netmod@ietfa.amsl.com>; Wed, 11 Nov 2015 07:03:11 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -15.31
X-Spam-Level: 
X-Spam-Status: No, score=-15.31 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, GB_I_LETTER=-2, HTML_MESSAGE=0.001, J_CHICKENPOX_34=0.6, J_CHICKENPOX_54=0.6, 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 JEVNsBptL5kP for <netmod@ietfa.amsl.com>; Wed, 11 Nov 2015 07:03:07 -0800 (PST)
Received: from aer-iport-3.cisco.com (aer-iport-3.cisco.com [173.38.203.53]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id EB37A1AD074 for <netmod@ietf.org>; Wed, 11 Nov 2015 07:03:06 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=28604; q=dns/txt; s=iport; t=1447254187; x=1448463787; h=subject:to:references:cc:from:message-id:date: mime-version:in-reply-to; bh=Y2uL9PYndMivygP0Oi6/elXCqIrQhBKoNJuLr2Fb340=; b=g65sc7GlJJXHRUUAwVccCgNUTYNQUEOoY1ll+/5vPNVSGbSONtfHvYgI ZHlQ+zvkMfCfTvnYgHgjdoZdCAcRhGg27ayDfyzjzXC/xoKGij6TBoRSA 9eHqarG0rUrbvxeSXbnkAAKlX1JF9ngM4+BXoclpTUKIFM4agWOJWUL45 I=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0AABwAMWENW/xbLJq1egm6BIC1CwBQXA?= =?us-ascii?q?QmCPoJnSgKCEQEBAQEBAYELhDQBAQEDAQEBAWsEBgEFCwsOCgkWAQcHCQMCAQI?= =?us-ascii?q?BFR8RBg0GAgEBiCIIDcQ/AQEBAQEBAQEBAQEBAQEBAQEBAQEBFASGVIR+hCoRA?= =?us-ascii?q?VWEKAWHRIVXiS2NJoFbhECDAo82g3JjhAQ+NIQVgUEBAQE?=
X-IronPort-AV: E=Sophos;i="5.20,276,1444694400";  d="scan'208,217";a="606260486"
Received: from aer-iport-nat.cisco.com (HELO aer-core-4.cisco.com) ([173.38.203.22]) by aer-iport-3.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 11 Nov 2015 15:03:04 +0000
Received: from [10.63.23.71] (dhcp-ensft1-uk-vla370-10-63-23-71.cisco.com [10.63.23.71]) by aer-core-4.cisco.com (8.14.5/8.14.5) with ESMTP id tABF34Sm023270; Wed, 11 Nov 2015 15:03:04 GMT
To: William Lupton <wlupton@broadband-forum.org>
References: <6406A7E0-EBC1-465F-A611-8D54859900EA@broadband-forum.org> <56431D4F.5050508@cisco.com> <82FB8C3A-48CD-493C-AE90-715190F2901E@broadband-forum.org>
From: Robert Wilton <rwilton@cisco.com>
Message-ID: <564358A8.2080506@cisco.com>
Date: Wed, 11 Nov 2015 15:03:04 +0000
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0
MIME-Version: 1.0
In-Reply-To: <82FB8C3A-48CD-493C-AE90-715190F2901E@broadband-forum.org>
Content-Type: multipart/alternative; boundary="------------040202090707040007080504"
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/WZ-nRQXcurDB5qxjGgw5bxbrofM>
Cc: netmod@ietf.org
Subject: Re: [netmod] Modelling ports that can support multiple physical layer standards
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 11 Nov 2015 15:03:11 -0000

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

Hi William,

Please see inline ...

On 11/11/2015 12:21, William Lupton wrote:
> Rob, Thanks! Please see inline. Cheers, William.
>
>> On 11 Nov 2015, at 10:49, Robert Wilton <rwilton@cisco.com 
>> <mailto:rwilton@cisco.com>> wrote:
>>
>> Hi William,
>>
>> I'm not that familiar with Broadband physical layer standards, but I 
>> have an interest in figuring out some of the physical layer and 
>> interface layer relationships in YANG.
>>
>> There are a couple of things that are not clear to me from your 
>> email, so I have two questions:
>>
>> 1) Am I right to presume that the "type" of the port is fixed, and 
>> can't be changed by the handshake mechanism?
>
> I'd say "no" in the sense that the port is initially a color-selector 
> port, and then (after the colour selection) will be either a green 
> port or a red port. These are all types (interface types).

OK.  I'm not sure whether changing the type of an existing interface is 
a good idea.  E.g. shouldn't the interface type of the base interface 
represent the physical interface that you are operating over.

>
>> 2) I don't quite understand your last sentence regarding only one 
>> interface-level enable/disable leaf.  I would have thought that this 
>> would be a benefit.  Please can you elaborate.
>
> In the second case (indirect augment), a single multi:line interface 
> is associated with the port, so the standard "enabled" leaf node 
> (administrative enable/disable) will apply to the the multi:line 
> interface. This means that there is no way (should you wish it) to 
> individually disable green or red. This would require addition of such 
> controls at the green and red level.
OK.  But if I understand it correctly a particular port could only ever 
be running as either green or red, never both at the same time.  Is that 
right?  Is so, then I would have thought that a single interface 
enable/disable is sufficient.

Presumably disabling green or red colours could be accomplished by 
removing the associated configuration.

>
>> There is possibly a third way to model this, which is to have an 
>> augmentation of a choice statement, i.e.:
>> 1. Your base model would define a choice statement representing the 
>> physical-layer 'color'.
>> 2. Each physical layer 'color' would be a separate augmentation of 
>> the choice statement.
>>
>> Using this design ensures that the model can only ever have a single 
>> physical-layer at a given time, and yet still makes it clear which 
>> physical-layer is in use and also allows for different configuration 
>> nodes for each color.
>>
>> I've used this structure for modelling layer 2 encapsulation in the 
>> IDs that I've put forward:
>> E.g. see "choice encaps-type" in draft-wilton-netmod-intf-ext-yang-01 
>> for the base model, and two instances of
>> 'augment "/if:interfaces/if:interface/if-cmn:encapsulation/if-cmn:encaps-type"'
>> in draft-wilton-netmod-intf-vlan-yang-01 for two example augmentation 
>> cover a basic VLAN layer 2 encapsulation, and a more flexible layer 2 
>> encapsulation.  Other layer 2 encapsulations could also be defined 
>> for PPP, cHDLC, FR, ATM, etc in separate drafts.
>>
>> Perhaps this choice + augmentation design would also work well in 
>> your case?
>
> Thanks! I'll take a look at those drafts. Would this approach allow 
> green and red config to exist simultaneously on an interface?
No.  The choice statement means that there can be only one colour of 
config at a given time.

Is your requirement effectively a templating one?  I.e. the need to 
define possible configuration for both red and green and then allow the 
protocol to negotiate which colour and hence configuration is used?



> I think we'd want to be able to do that. Perhaps the choice approach 
> might be used only in the state tree?
Yes possibly, although equally if the leaves in the state tree are not 
mandatory then the information for the unavailable colour could just not 
be returned.

Thanks,
Rob


>
>> Thanks,
>> Rob
>>
>> On 11/11/2015 09:28, William Lupton wrote:
>>> All,
>>>
>>> We would much appreciate comments and suggestions on the question 
>>> posed below.
>>>
>>> Thanks,
>>> William Lupton
>>> (Software Architect, Broadband Forum)
>>>
>>> ----------------
>>>
>>> In the Broadband Forum we need to model a port that can support 
>>> several physical layer standards, but only one at a time. An initial 
>>> handshake mechanism determines which of these standards will 
>>> actually be used. We have been trying to decide how best to model 
>>> this according to the letter and spirit of RFCs 6020, 6087, 7223 etc.
>>>
>>> Consider a port, a handshake mechanism "color-selector" and two 
>>> physical layer standards "green" and "red". Each of these is 
>>> modelled via a YANG module of the same name ("port" probably uses 
>>> the ietf-entity module). Here are the approaches that we have 
>>> considered:
>>>
>>> ***** Option 1 "direct augment" *****
>>>
>>> color-selector, green and red all directly augment 
>>> /if:interfaces/if:interface. An instance of each of them is 
>>> associated with the port. See part of the tree here (YANG on request).
>>>
>>> module: ietf-interfaces
>>>    +--rw interfaces
>>>    |  +--rw interface* [name]
>>>    |     +--rw name               string
>>>    |     +--rw description?               string
>>>    |     +--rw type               identityref
>>>    |     +--rw enabled?              boolean
>>>    |     +--rw link-up-down-trap-enable?   enumeration {if-mib}?
>>>    |     +--rw color-sel:line
>>>    |     +--rw green:line
>>>    |     +--rw red:line
>>>
>>> Note that this means that each port needs three separate interface 
>>> objects. For each additional possible supported physical layer 
>>> standard, an additional interface object would be needed.
>>>
>>> ***** Option 2 "indirect augment" *****
>>>
>>> An additional if-multicolor module directly augments 
>>> /if:interfaces/if:interface. An instance of if-multicolor is 
>>> associated with the port. if-multicolor has a supported-type 
>>> leaf-list that indicates the physical layer standards that are 
>>> supported by the port (green and red in this case). color-selector, 
>>> green and red are similar to before but this time they augment 
>>> /if:interfaces/if:interface/multi:line, and the green and red "when" 
>>> (existence) criteria are tied to if-multicolor's supported-type 
>>> leaf-list rather than to their own type leaf. See part of the tree 
>>> here (YANG on request).
>>>
>>> module: ietf-interfaces
>>>    +--rw interfaces
>>>    |  +--rw interface* [name]
>>>    |     +--rw name               string
>>>    |     +--rw description?               string
>>>    |     +--rw type               identityref
>>>    |     +--rw enabled?              boolean
>>>    |     +--rw link-up-down-trap-enable?   enumeration {if-mib}?
>>>    |     +--rw multi:line
>>>    |        +--rw multi:supported-type*   identityref
>>>    |        +--rw color-sel:line
>>>    |        +--rw green:line
>>>    |        +--rw red:line
>>>
>>> The nice thing about this approach is that it models the port in a 
>>> way that is close to how it actually _is_. Each port needs only a 
>>> single interface that's directly associated with the handshake 
>>> mechanism and the supported physical layer standards.
>>>
>>> A possible disadvantage of this approach is that it is a bit less 
>>> well aligned with RFC 7223, e.g there is only one interface-level 
>>> enable/disable that has to be "shared" by color-selector, green and red.
>>>
>>>
>>> _______________________________________________
>>> netmod mailing list
>>> netmod@ietf.org
>>> https://www.ietf.org/mailman/listinfo/netmod
>>
>


--------------040202090707040007080504
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">
    Hi William,<br>
    <br>
    Please see inline ...<br>
    <br>
    <div class="moz-cite-prefix">On 11/11/2015 12:21, William Lupton
      wrote:<br>
    </div>
    <blockquote
      cite="mid:82FB8C3A-48CD-493C-AE90-715190F2901E@broadband-forum.org"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html;
        charset=windows-1252">
      Rob, Thanks! Please see inline. Cheers, William.
      <div class=""><br class="">
        <div>
          <blockquote type="cite" class="">
            <div class="">On 11 Nov 2015, at 10:49, Robert Wilton &lt;<a
                moz-do-not-send="true" href="mailto:rwilton@cisco.com"
                class=""><a class="moz-txt-link-abbreviated" href="mailto:rwilton@cisco.com">rwilton@cisco.com</a></a>&gt; wrote:</div>
            <br class="Apple-interchange-newline">
            <div class="">
              <div bgcolor="#FFFFFF" text="#000000" class=""> Hi
                William,<br class="">
                <br class="">
                I'm not that familiar with Broadband physical layer
                standards, but I have an interest in figuring out some
                of the physical layer and interface layer relationships
                in YANG.<br class="">
                <br class="">
                There are a couple of things that are not clear to me
                from your email, so I have two questions:<br class="">
                <br class="">
                1) Am I right to presume that the "type" of the port is
                fixed, and can't be changed by the handshake mechanism?<br
                  class="">
              </div>
            </div>
          </blockquote>
          <div><br class="">
          </div>
          <div>I'd say "no" in the sense that the port is initially a
            color-selector port, and then (after the colour selection)
            will be either a green port or a red port. These are all
            types (interface types).</div>
        </div>
      </div>
    </blockquote>
    <br>
    OK.  I'm not sure whether changing the type of an existing interface
    is a good idea.  E.g. shouldn't the interface type of the base
    interface represent the physical interface that you are operating
    over.<br>
    <br>
    <blockquote
      cite="mid:82FB8C3A-48CD-493C-AE90-715190F2901E@broadband-forum.org"
      type="cite">
      <div class="">
        <div><br class="">
          <blockquote type="cite" class="">
            <div class="">
              <div bgcolor="#FFFFFF" text="#000000" class=""> 2) I don't
                quite understand your last sentence regarding only one
                interface-level enable/disable leaf.  I would have
                thought that this would be a benefit.  Please can you
                elaborate.<br class="">
              </div>
            </div>
          </blockquote>
          <div><br class="">
          </div>
          <div>In the second case (indirect augment), a single
            multi:line interface is associated with the port, so the
            standard "enabled" leaf node (administrative enable/disable)
            will apply to the the multi:line interface. This means that
            there is no way (should you wish it) to individually disable
            green or red. This would require addition of such controls
            at the green and red level.</div>
        </div>
      </div>
    </blockquote>
    OK.  But if I understand it correctly a particular port could only
    ever be running as either green or red, never both at the same
    time.  Is that right?  Is so, then I would have thought that a
    single interface enable/disable is sufficient.<br>
    <br>
    Presumably disabling green or red colours could be accomplished by
    removing the associated configuration.<br>
    <br>
    <blockquote
      cite="mid:82FB8C3A-48CD-493C-AE90-715190F2901E@broadband-forum.org"
      type="cite">
      <div class="">
        <div><br class="">
          <blockquote type="cite" class="">
            <div class="">
              <div bgcolor="#FFFFFF" text="#000000" class=""> There is
                possibly a third way to model this, which is to have an
                augmentation of a choice statement, i.e.:<br class="">
                1. Your base model would define a choice statement
                representing the physical-layer 'color'.<br class="">
                2. Each physical layer 'color' would be a separate
                augmentation of the choice statement.<br class="">
                <br class="">
                Using this design ensures that the model can only ever
                have a single physical-layer at a given time, and yet
                still makes it clear which physical-layer is in use and
                also allows for different configuration nodes for each
                color.<br class="">
                <br class="">
                I've used this structure for modelling layer 2
                encapsulation in the IDs that I've put forward:<br
                  class="">
                E.g. see "choice encaps-type" in
                draft-wilton-netmod-intf-ext-yang-01 for the base model,
                and two instances of <br class="">
                <pre style="box-sizing: border-box; overflow: auto; font-family: 'PT Mono', Monaco, monospace; font-size: 14px; display: block; padding: 10px; margin: 0px 0px 10.5px; line-height: 1.214; word-break: break-all; word-wrap: break-word; border: 1px solid rgb(204, 204, 204); border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 253, 245);" class="">'augment "/if:interfaces/if:interface/if-cmn:encapsulation/if-cmn:encaps-type"'</pre>
                <div class="moz-cite-prefix"> in
                  draft-wilton-netmod-intf-vlan-yang-01 for two example
                  augmentation cover a basic VLAN layer 2 encapsulation,
                  and a more flexible layer 2 encapsulation.  Other
                  layer 2 encapsulations could also be defined for PPP,
                  cHDLC, FR, ATM, etc in separate drafts.<br class="">
                  <br class="">
                  Perhaps this choice + augmentation design would also
                  work well in your case?<br class="">
                </div>
              </div>
            </div>
          </blockquote>
          <div><br class="">
          </div>
          <div>Thanks! I'll take a look at those drafts. Would this
            approach allow green and red config to exist simultaneously
            on an interface?</div>
        </div>
      </div>
    </blockquote>
    No.  The choice statement means that there can be only one colour of
    config at a given time.<br>
    <br>
    Is your requirement effectively a templating one?  I.e. the need to
    define possible configuration for both red and green and then allow
    the protocol to negotiate which colour and hence configuration is
    used?<br>
    <br>
    <br>
    <br>
    <blockquote
      cite="mid:82FB8C3A-48CD-493C-AE90-715190F2901E@broadband-forum.org"
      type="cite">
      <div class="">
        <div>
          <div> I think we'd want to be able to do that. Perhaps the
            choice approach might be used only in the state tree?</div>
        </div>
      </div>
    </blockquote>
    Yes possibly, although equally if the leaves in the state tree are
    not mandatory then the information for the unavailable colour could
    just not be returned.<br>
    <br>
    Thanks,<br>
    Rob<br>
    <br>
    <br>
    <blockquote
      cite="mid:82FB8C3A-48CD-493C-AE90-715190F2901E@broadband-forum.org"
      type="cite">
      <div class="">
        <div><br class="">
          <blockquote type="cite" class="">
            <div class="">
              <div bgcolor="#FFFFFF" text="#000000" class="">
                <div class="moz-cite-prefix"> Thanks,<br class="">
                  Rob<br class="">
                  <br class="">
                  On 11/11/2015 09:28, William Lupton wrote:<br class="">
                </div>
                <blockquote
                  cite="mid:6406A7E0-EBC1-465F-A611-8D54859900EA@broadband-forum.org"
                  type="cite" class="">
                  <div class="">All,</div>
                  <div class=""><br class="">
                  </div>
                  <div class="">We would much appreciate comments and
                    suggestions on the question posed below.</div>
                  <div class=""><br class="">
                  </div>
                  <div class="">Thanks,</div>
                  <div class="">William Lupton</div>
                  <div class="">(Software Architect, Broadband Forum)</div>
                  <div class=""><br class="">
                  </div>
                  <div class="">----------------</div>
                  <div class=""><br class="">
                  </div>
                  <div class="">In the Broadband Forum we need to model
                    a port that can support several physical layer
                    standards, but only one at a time. An initial
                    handshake mechanism determines which of these
                    standards will actually be used. We have been trying
                    to decide how best to model this according to the
                    letter and spirit of RFCs 6020, 6087, 7223 etc.</div>
                  <div class=""><br class="">
                  </div>
                  <div class="">Consider a port, a handshake mechanism
                    "color-selector" and two physical layer standards
                    "green" and "red". Each of these is modelled via a
                    YANG module of the same name ("port" probably uses
                    the ietf-entity module). Here are the approaches
                    that we have considered:</div>
                  <div class=""><br class="">
                  </div>
                  <div class=""><b class="">**** Option 1 "direct
                      augment" ****</b></div>
                  <div class=""><br class="">
                  </div>
                  <div class="">color-selector, green and red all
                    directly augment /if:interfaces/if:interface. An
                    instance of each of them is associated with the
                    port. See part of the tree here (YANG on request).</div>
                  <div class=""><br class="">
                  </div>
                  <div class="">
                    <div class="" style="margin: 0px; font-family:
                      Courier; color: rgb(76, 47, 45); background-color:
                      rgb(223, 219, 196);">module: ietf-interfaces</div>
                    <div class="" style="margin: 0px; font-family:
                      Courier; color: rgb(76, 47, 45); background-color:
                      rgb(223, 219, 196);">   +--rw interfaces</div>
                    <div class="" style="margin: 0px; font-family:
                      Courier; color: rgb(76, 47, 45); background-color:
                      rgb(223, 219, 196);">   |  +--rw interface* [name]</div>
                    <div class="" style="margin: 0px; font-family:
                      Courier; color: rgb(76, 47, 45); background-color:
                      rgb(223, 219, 196);">   |     +--rw name         
                                    string</div>
                    <div class="" style="margin: 0px; font-family:
                      Courier; color: rgb(76, 47, 45); background-color:
                      rgb(223, 219, 196);">   |     +--rw description? 
                                    string</div>
                    <div class="" style="margin: 0px; font-family:
                      Courier; color: rgb(76, 47, 45); background-color:
                      rgb(223, 219, 196);">   |     +--rw type         
                                    identityref</div>
                    <div class="" style="margin: 0px; font-family:
                      Courier; color: rgb(76, 47, 45); background-color:
                      rgb(223, 219, 196);">   |     +--rw enabled?      
                                   boolean</div>
                    <div class="" style="margin: 0px; font-family:
                      Courier; color: rgb(76, 47, 45); background-color:
                      rgb(223, 219, 196);">   |     +--rw
                      link-up-down-trap-enable?   enumeration {if-mib}?</div>
                    <div class="" style="margin: 0px; font-family:
                      Courier; color: rgb(76, 47, 45); background-color:
                      rgb(223, 219, 196);">   |     +--rw color-sel:line</div>
                    <div class="" style="margin: 0px; font-family:
                      Courier; color: rgb(76, 47, 45); background-color:
                      rgb(223, 219, 196);">   |     +--rw green:line</div>
                    <div class="" style="margin: 0px; font-family:
                      Courier; color: rgb(76, 47, 45); background-color:
                      rgb(223, 219, 196);">   |     +--rw red:line</div>
                    <div class=""><br class="">
                    </div>
                  </div>
                  <div class="">Note that this means that each port
                    needs three separate interface objects. For each
                    additional possible supported physical layer
                    standard, an additional interface object would be
                    needed.</div>
                  <div class=""><br class="">
                  </div>
                  <div class=""><b class="">**** Option 2 "indirect
                      augment" ****</b></div>
                  <div class=""><br class="">
                  </div>
                  <div class="">An additional if-multicolor module
                    directly augments /if:interfaces/if:interface. An
                    instance of if-multicolor is associated with the
                    port. if-multicolor has a supported-type leaf-list
                    that indicates the physical layer standards that are
                    supported by the port (green and red in this case).
                    color-selector, green and red are similar to before
                    but this time they augment
                    /if:interfaces/if:interface/multi:line, and the
                    green and red "when" (existence) criteria are tied
                    to if-multicolor's supported-type leaf-list rather
                    than to their own type leaf. See part of the tree
                    here (YANG on request).</div>
                  <div class=""><br class="">
                  </div>
                  <div class="">
                    <div class="" style="margin: 0px; font-family:
                      Courier; color: rgb(76, 47, 45); background-color:
                      rgb(223, 219, 196);">module: ietf-interfaces</div>
                    <div class="" style="margin: 0px; font-family:
                      Courier; color: rgb(76, 47, 45); background-color:
                      rgb(223, 219, 196);">   +--rw interfaces</div>
                    <div class="" style="margin: 0px; font-family:
                      Courier; color: rgb(76, 47, 45); background-color:
                      rgb(223, 219, 196);">   |  +--rw interface* [name]</div>
                    <div class="" style="margin: 0px; font-family:
                      Courier; color: rgb(76, 47, 45); background-color:
                      rgb(223, 219, 196);">   |     +--rw name         
                                    string</div>
                    <div class="" style="margin: 0px; font-family:
                      Courier; color: rgb(76, 47, 45); background-color:
                      rgb(223, 219, 196);">   |     +--rw description? 
                                    string</div>
                    <div class="" style="margin: 0px; font-family:
                      Courier; color: rgb(76, 47, 45); background-color:
                      rgb(223, 219, 196);">   |     +--rw type         
                                    identityref</div>
                    <div class="" style="margin: 0px; font-family:
                      Courier; color: rgb(76, 47, 45); background-color:
                      rgb(223, 219, 196);">   |     +--rw enabled?      
                                   boolean</div>
                    <div class="" style="margin: 0px; font-family:
                      Courier; color: rgb(76, 47, 45); background-color:
                      rgb(223, 219, 196);">   |     +--rw
                      link-up-down-trap-enable?   enumeration {if-mib}?</div>
                    <div class="" style="margin: 0px; font-family:
                      Courier; color: rgb(76, 47, 45); background-color:
                      rgb(223, 219, 196);">   |     +--rw multi:line</div>
                    <div class="" style="margin: 0px; font-family:
                      Courier; color: rgb(76, 47, 45); background-color:
                      rgb(223, 219, 196);">   |        +--rw
                      multi:supported-type*   identityref</div>
                    <div class="" style="margin: 0px; font-family:
                      Courier; color: rgb(76, 47, 45); background-color:
                      rgb(223, 219, 196);">   |        +--rw
                      color-sel:line</div>
                    <div class="" style="margin: 0px; font-family:
                      Courier; color: rgb(76, 47, 45); background-color:
                      rgb(223, 219, 196);">   |        +--rw green:line</div>
                    <div class="" style="margin: 0px; font-family:
                      Courier; color: rgb(76, 47, 45); background-color:
                      rgb(223, 219, 196);">   |        +--rw red:line</div>
                    <div class=""><br class="">
                    </div>
                  </div>
                  <div class="">The nice thing about this approach is
                    that it models the port in a way that is close to
                    how it actually _is_. Each port needs only a single
                    interface that's directly associated with the
                    handshake mechanism and the supported physical layer
                    standards.</div>
                  <div class=""><br class="">
                  </div>
                  <div class="">A possible disadvantage of this approach
                    is that it is a bit less well aligned with RFC 7223,
                    e.g there is only one interface-level enable/disable
                    that has to be "shared" by color-selector, green and
                    red.</div>
                  <br class="">
                  <fieldset class="mimeAttachmentHeader"></fieldset>
                  <br class="">
                  <pre class="" wrap="">_______________________________________________
netmod mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:netmod@ietf.org">netmod@ietf.org</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="https://www.ietf.org/mailman/listinfo/netmod">https://www.ietf.org/mailman/listinfo/netmod</a>
</pre>
                </blockquote>
                <br class="">
              </div>
            </div>
          </blockquote>
        </div>
        <br class="">
      </div>
    </blockquote>
    <br>
  </body>
</html>

--------------040202090707040007080504--


From nobody Wed Nov 11 07:32:41 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 2EDE81B2A2F for <netmod@ietfa.amsl.com>; Wed, 11 Nov 2015 07:32:40 -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 ZiNrGxq1OkHX for <netmod@ietfa.amsl.com>; Wed, 11 Nov 2015 07:32:38 -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 B6BAE1B29F8 for <netmod@ietf.org>; Wed, 11 Nov 2015 07:32:37 -0800 (PST)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id 896351260; Wed, 11 Nov 2015 16:32: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 vxairxMPINi3; Wed, 11 Nov 2015 16:32: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; Wed, 11 Nov 2015 16:32:34 +0100 (CET)
Received: from localhost (demetrius1.jacobs-university.de [212.201.44.46]) by hermes.jacobs-university.de (Postfix) with ESMTP id 920C120054; Wed, 11 Nov 2015 16:32:34 +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 44dactw1ZnJ5; Wed, 11 Nov 2015 16:32: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 CDD512004E; Wed, 11 Nov 2015 16:32:32 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id 0EE43387CF51; Wed, 11 Nov 2015 16:32:31 +0100 (CET)
Date: Wed, 11 Nov 2015 16:32:31 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Ladislav Lhotka <lhotka@nic.cz>
Message-ID: <20151111153231.GB23082@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: <CABCOCHSUrbk-KVNtcKRO8hUAj83akHb=+7abJoVvVgUSTG7sRA@mail.gmail.com> <20151111.073423.361054647288765847.mbj@tail-f.com> <20151111080728.GA21672@elstar.local> <7BA43E86-C528-451A-BB16-140608D3B871@nic.cz> <20151111122630.GB22461@elstar.local> <54465E2E-3F7F-48D0-8164-18DEC5CFAD79@nic.cz> <20151111134412.GA22783@elstar.local> <2B6DC0CD-1214-4503-95E4-DDF1E5E56A57@nic.cz> <20151111135919.GA22885@elstar.local> <A1BF519D-74B4-48FC-B003-83198DD1BD2D@nic.cz>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <A1BF519D-74B4-48FC-B003-83198DD1BD2D@nic.cz>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/7U3FhcVfxAj7uxT9jbHlP13K4_g>
Cc: netmod@ietf.org
Subject: Re: [netmod] JSON encoding of anyxml
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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 11 Nov 2015 15:32:40 -0000

On Wed, Nov 11, 2015 at 03:14:13PM +0100, Ladislav Lhotka wrote:
> 
> > On 11 Nov 2015, at 14:59, Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote:
> > 
> > On Wed, Nov 11, 2015 at 02:53:49PM +0100, Ladislav Lhotka wrote:
> >> 
> >>> On 11 Nov 2015, at 14:44, Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote:
> >>> 
> >>> On Wed, Nov 11, 2015 at 02:24:15PM +0100, Ladislav Lhotka wrote:
> >>>> 
> >>>>> 
> >>>>> I wrote 'effectively deprecated' and here is the text in 6020bis.
> >>>>> 
> >>>>> Since the use of anyxml limits the manipulation of the content, it is
> >>>>> RECOMMENDED that the "anyxml" statement not be used to define
> >>>>> configuration data.
> >>>>> 
> >>>>> It should be noted that in YANG version 1, anyxml was the only
> >>>>> statement that could model an unknown hierarchy of data.  In many
> >>>>> cases this unknown hierarchy of data is actually modelled in YANG,
> >>>>> but the exact YANG model is not known at design time.  In these
> >>>>> situations, it is RECOMMENDED to use anydata (Section 7.10) instead
> >>>>> of anyxml.
> >>>> 
> >>>> The first paragraph is for config data and the second for data that can modelled with YANG. If we want to deprecate "anyxml" for use with data that are neither of these, 6020bis should say so. I'd be fine with that.
> >>>> 
> >>> 
> >>> The guidelines will say that any usage of anyxml in the IETF will be
> >>> carefully checked by YANG doctors. See Y34 for all details.
> >>> 
> >>>>> There is more text in Y34-05 that will go into the guidelines. I call
> >>>>> this "effectively deprecated", you can call it differently if you
> >>>>> want. Frankly, this thread is about how to encode anyxml in JSON not
> >>>>> about the YANG 1.1 issue Y34. You may not like Y34-05 but this is what
> >>>>> we ended up with.
> >>>> 
> >>>> I am strongly against encoding serialized XML as JSON strings. It is IMO totally useless and the spec would have to deal with awkward complications because it is not true that arbitrary XML-encoded anyxml content can be used without changes in JSON encoding. 
> >>>> 
> >>>> Perhaps the best solution would be to state that JSON encoding is incompatible with data models that use "anyxml".
> >>>> 
> >>> 
> >>> Perhaps we can only settle this by doing an opinion poll since
> >>> debating this forever is not useful. So what are the options?
> >>> 
> >>> a) The JSON encoding does not define anyxml is not encoded at all. If
> >>>  you use anyxml in a data model, the content will not appear in JSON
> >>>  encodings.
> >>> 
> >>> b) The JSON encoding defines that anyxml data is encoded as a string
> >>>  containing XML.
> >>> 
> >>> c) The JSON encoding defines that anyxml is encoded in whatever way
> >>>  the implementor finds useful.
> >>> 
> >>> d) If the anyxml content is actually valid anydata content, encode it
> >>>  using anydata rules. Content that is not valid anydata content is
> >>>  not encoded at all.
> >>> 
> >>> Any options missing?
> >> 
> >> Yes, the one that's in yang-json-06:
> >> 
> >> e) An anyxml instance is encoded as a JSON name/value pair which MUST
> >>   satisfy I-JSON constraints.  Otherwise it is unrestricted, i.e., the
> >>   value can be an object, array, number, string or one of the literals
> >>   "true", "false" and "null".
> >> 
> >> My preference is e), and then a).
> >> 
> > 
> > Is e) not the same as c)? I assume that the JSON encoding will always
> > be valid JSON (or I-JSON to be precise). So it seems the only refinement
> > of e) is the toplevel.
> 
> c) sounds like the same data can be encoded in different ways depending on what the implementor finds useful, e.g. encode all numbers as strings.
>

But e) says the same, I fail to see the difference here.

/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 Nov 11 08:31:26 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 CB4071B2B8A for <netmod@ietfa.amsl.com>; Wed, 11 Nov 2015 08:31:19 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.978
X-Spam-Level: 
X-Spam-Status: No, score=-0.978 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, MIME_8BIT_HEADER=0.3, 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 WIRq11kZq7tY for <netmod@ietfa.amsl.com>; Wed, 11 Nov 2015 08:31:17 -0800 (PST)
Received: from mail-lf0-x233.google.com (mail-lf0-x233.google.com [IPv6:2a00:1450:4010:c07::233]) (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 C11C71B2AFE for <netmod@ietf.org>; Wed, 11 Nov 2015 08:31:16 -0800 (PST)
Received: by lffu14 with SMTP id u14so19205556lff.1 for <netmod@ietf.org>; Wed, 11 Nov 2015 08:31:14 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks_com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=vqESzah6g2SEc4eHs5AwFYL5pI7jX8sGBoobQrqhuMY=; b=d+wkmcgDyW4aSfFxsQfJtBAawVYUtyjLfIYwz/it9rvjt4K05IaqkNxqoUjz3uCFNb GkpEZ+ifwLSYbLYN+rxcmE00Wmt5/rg89FElQlTwHPPcnswyEsWEGQG/dVatU+2hPeoi pe2D7mlYyKnVip+L5FiJ2i7kEKND9/Xn6USWiZlhh/tHqx9tWDYmzn5L4BW0dBQ+7s4m qFteH8rFeD5xJtHPHuCx8Jj67VybJzmEFZtxL+h18wpo8FuXzL+iVZjIiGWia+QNnbpE tAHeUTFfyVO6AryPRa+gV3CbDBWvtXQvYiBRZXrXE8QBly4371DiGSxoJOaruuTxjrBB ETQA==
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=vqESzah6g2SEc4eHs5AwFYL5pI7jX8sGBoobQrqhuMY=; b=UbbcRcipKTX62z4VNvc3On60e3D7gk+Q9/QJhk7PA/Cwp9rqnXqPfmAFeDkJGCNF6I dYCkgVx7lYCeIRYdY8t1zZCzGju7D1IjtbK0wh1Qojg+l205UM4iMsEmDTsMSAsXlRMe Cwpa5OBKj1SWFivnsTOo8uz/xVX+3wLYj3IdoDCRIEjAuRc9+kbZEXdniGV53gX6PGvP yEEiMwXTOZjc0lZhJ8mVtXCaXql+XbngLwUDdTH63F1pAb5pM7exQ4ViNovOkEJdMlCI 8SSVlWnPZDKi6w08AwE/gF92ZtOYYggIe7Cwh2xTs4PwVMQkgcB6DD8iHlpyT4RqiKqO oEcg==
X-Gm-Message-State: ALoCoQnRhsOHnORkYoIm7mnjtQSkjhG+yCKYSMEFAc1cJBu4Nv7jYzFdb9ALFuzFtH6f4Vb4qWtp
MIME-Version: 1.0
X-Received: by 10.25.145.80 with SMTP id t77mr1883255lfd.88.1447259474754; Wed, 11 Nov 2015 08:31:14 -0800 (PST)
Received: by 10.112.144.106 with HTTP; Wed, 11 Nov 2015 08:31:14 -0800 (PST)
In-Reply-To: <20151111153231.GB23082@elstar.local>
References: <CABCOCHSUrbk-KVNtcKRO8hUAj83akHb=+7abJoVvVgUSTG7sRA@mail.gmail.com> <20151111.073423.361054647288765847.mbj@tail-f.com> <20151111080728.GA21672@elstar.local> <7BA43E86-C528-451A-BB16-140608D3B871@nic.cz> <20151111122630.GB22461@elstar.local> <54465E2E-3F7F-48D0-8164-18DEC5CFAD79@nic.cz> <20151111134412.GA22783@elstar.local> <2B6DC0CD-1214-4503-95E4-DDF1E5E56A57@nic.cz> <20151111135919.GA22885@elstar.local> <A1BF519D-74B4-48FC-B003-83198DD1BD2D@nic.cz> <20151111153231.GB23082@elstar.local>
Date: Wed, 11 Nov 2015 08:31:14 -0800
Message-ID: <CABCOCHSTYopEtiEtUpjUnW759+LZ9QQuYrMkoX_MV+b0NCg02A@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: multipart/alternative; boundary=001a1140203ae4239c0524465a6b
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/zdbBkHeo3tO6seQ2eLJ8H2dL7ws>
Subject: Re: [netmod] JSON encoding of anyxml
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 11 Nov 2015 16:31:20 -0000

--001a1140203ae4239c0524465a6b
Content-Type: text/plain; charset=UTF-8

On Wed, Nov 11, 2015 at 7:32 AM, Juergen Schoenwaelder <
j.schoenwaelder@jacobs-university.de> wrote:

> On Wed, Nov 11, 2015 at 03:14:13PM +0100, Ladislav Lhotka wrote:
> >
> > > On 11 Nov 2015, at 14:59, Juergen Schoenwaelder <
> j.schoenwaelder@jacobs-university.de> wrote:
> > >
> > > On Wed, Nov 11, 2015 at 02:53:49PM +0100, Ladislav Lhotka wrote:
> > >>
> > >>> On 11 Nov 2015, at 14:44, Juergen Schoenwaelder <
> j.schoenwaelder@jacobs-university.de> wrote:
> > >>>
> > >>> On Wed, Nov 11, 2015 at 02:24:15PM +0100, Ladislav Lhotka wrote:
> > >>>>
> > >>>>>
> > >>>>> I wrote 'effectively deprecated' and here is the text in 6020bis.
> > >>>>>
> > >>>>> Since the use of anyxml limits the manipulation of the content, it
> is
> > >>>>> RECOMMENDED that the "anyxml" statement not be used to define
> > >>>>> configuration data.
> > >>>>>
> > >>>>> It should be noted that in YANG version 1, anyxml was the only
> > >>>>> statement that could model an unknown hierarchy of data.  In many
> > >>>>> cases this unknown hierarchy of data is actually modelled in YANG,
> > >>>>> but the exact YANG model is not known at design time.  In these
> > >>>>> situations, it is RECOMMENDED to use anydata (Section 7.10) instead
> > >>>>> of anyxml.
> > >>>>
> > >>>> The first paragraph is for config data and the second for data that
> can modelled with YANG. If we want to deprecate "anyxml" for use with data
> that are neither of these, 6020bis should say so. I'd be fine with that.
> > >>>>
> > >>>
> > >>> The guidelines will say that any usage of anyxml in the IETF will be
> > >>> carefully checked by YANG doctors. See Y34 for all details.
> > >>>
> > >>>>> There is more text in Y34-05 that will go into the guidelines. I
> call
> > >>>>> this "effectively deprecated", you can call it differently if you
> > >>>>> want. Frankly, this thread is about how to encode anyxml in JSON
> not
> > >>>>> about the YANG 1.1 issue Y34. You may not like Y34-05 but this is
> what
> > >>>>> we ended up with.
> > >>>>
> > >>>> I am strongly against encoding serialized XML as JSON strings. It
> is IMO totally useless and the spec would have to deal with awkward
> complications because it is not true that arbitrary XML-encoded anyxml
> content can be used without changes in JSON encoding.
> > >>>>
> > >>>> Perhaps the best solution would be to state that JSON encoding is
> incompatible with data models that use "anyxml".
> > >>>>
> > >>>
> > >>> Perhaps we can only settle this by doing an opinion poll since
> > >>> debating this forever is not useful. So what are the options?
> > >>>
> > >>> a) The JSON encoding does not define anyxml is not encoded at all. If
> > >>>  you use anyxml in a data model, the content will not appear in JSON
> > >>>  encodings.
> > >>>
> > >>> b) The JSON encoding defines that anyxml data is encoded as a string
> > >>>  containing XML.
> > >>>
> > >>> c) The JSON encoding defines that anyxml is encoded in whatever way
> > >>>  the implementor finds useful.
> > >>>
> > >>> d) If the anyxml content is actually valid anydata content, encode it
> > >>>  using anydata rules. Content that is not valid anydata content is
> > >>>  not encoded at all.
> > >>>
> > >>> Any options missing?
> > >>
> > >> Yes, the one that's in yang-json-06:
> > >>
> > >> e) An anyxml instance is encoded as a JSON name/value pair which MUST
> > >>   satisfy I-JSON constraints.  Otherwise it is unrestricted, i.e., the
> > >>   value can be an object, array, number, string or one of the literals
> > >>   "true", "false" and "null".
> > >>
> > >> My preference is e), and then a).
> > >>
> > >
> > > Is e) not the same as c)? I assume that the JSON encoding will always
> > > be valid JSON (or I-JSON to be precise). So it seems the only
> refinement
> > > of e) is the toplevel.
> >
> > c) sounds like the same data can be encoded in different ways depending
> on what the implementor finds useful, e.g. encode all numbers as strings.
> >
>
> But e) says the same, I fail to see the difference here.
>
>
IMO the only option is (f)

 f) If the anyxml content is actually valid anydata content, encode it
    using anydata rules. Content that is not valid anydata content is
    either not encoded at all, or encoded in an implementation-specific
manner


Nobody has answered my question about the "WEB banner" type of object.
The only reports we have ever heard on this sort of object indicate that
a leaf is used, NOT ANYXML!  Nobody seems to be using anyxml to store WEB
page snippets in their configuration.  Clearly a leaf is interoperable for
both XML and JSON, plus NETCONF or RESTCONF.  But we keep insisting
the YANG to JSON mapping needs to support this use of anyxml.

We use anyxml in RPC parameters in ietf-netconf, but the XML
is not expected to be mixed-mode XML.  Only elements and attributes
are used.


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

--001a1140203ae4239c0524465a6b
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Wed, Nov 11, 2015 at 7:32 AM, Juergen Schoenwaelder <span dir=3D"ltr=
">&lt;<a href=3D"mailto:j.schoenwaelder@jacobs-university.de" target=3D"_bl=
ank">j.schoenwaelder@jacobs-university.de</a>&gt;</span> wrote:<br><blockqu=
ote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left-wid=
th:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-l=
eft:1ex">On Wed, Nov 11, 2015 at 03:14:13PM +0100, Ladislav Lhotka wrote:<b=
r>
&gt;<br>
&gt; &gt; On 11 Nov 2015, at 14:59, Juergen Schoenwaelder &lt;<a href=3D"ma=
ilto:j.schoenwaelder@jacobs-university.de">j.schoenwaelder@jacobs-universit=
y.de</a>&gt; wrote:<br>
&gt; &gt;<br>
&gt; &gt; On Wed, Nov 11, 2015 at 02:53:49PM +0100, Ladislav Lhotka wrote:<=
br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt;&gt; On 11 Nov 2015, at 14:44, Juergen Schoenwaelder &lt;<a hr=
ef=3D"mailto:j.schoenwaelder@jacobs-university.de">j.schoenwaelder@jacobs-u=
niversity.de</a>&gt; wrote:<br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt; On Wed, Nov 11, 2015 at 02:24:15PM +0100, Ladislav Lhotka=
 wrote:<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt;&gt; I wrote &#39;effectively deprecated&#39; and here=
 is the text in 6020bis.<br>
&gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt;&gt; Since the use of anyxml limits the manipulation o=
f the content, it is<br>
&gt; &gt;&gt;&gt;&gt;&gt; RECOMMENDED that the &quot;anyxml&quot; statement=
 not be used to define<br>
&gt; &gt;&gt;&gt;&gt;&gt; configuration data.<br>
&gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt;&gt; It should be noted that in YANG version 1, anyxml=
 was the only<br>
&gt; &gt;&gt;&gt;&gt;&gt; statement that could model an unknown hierarchy o=
f data.=C2=A0 In many<br>
&gt; &gt;&gt;&gt;&gt;&gt; cases this unknown hierarchy of data is actually =
modelled in YANG,<br>
&gt; &gt;&gt;&gt;&gt;&gt; but the exact YANG model is not known at design t=
ime.=C2=A0 In these<br>
&gt; &gt;&gt;&gt;&gt;&gt; situations, it is RECOMMENDED to use anydata (Sec=
tion 7.10) instead<br>
&gt; &gt;&gt;&gt;&gt;&gt; of anyxml.<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; The first paragraph is for config data and the second=
 for data that can modelled with YANG. If we want to deprecate &quot;anyxml=
&quot; for use with data that are neither of these, 6020bis should say so. =
I&#39;d be fine with that.<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt; The guidelines will say that any usage of anyxml in the I=
ETF will be<br>
&gt; &gt;&gt;&gt; carefully checked by YANG doctors. See Y34 for all detail=
s.<br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt;&gt; There is more text in Y34-05 that will go into th=
e guidelines. I call<br>
&gt; &gt;&gt;&gt;&gt;&gt; this &quot;effectively deprecated&quot;, you can =
call it differently if you<br>
&gt; &gt;&gt;&gt;&gt;&gt; want. Frankly, this thread is about how to encode=
 anyxml in JSON not<br>
&gt; &gt;&gt;&gt;&gt;&gt; about the YANG 1.1 issue Y34. You may not like Y3=
4-05 but this is what<br>
&gt; &gt;&gt;&gt;&gt;&gt; we ended up with.<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; I am strongly against encoding serialized XML as JSON=
 strings. It is IMO totally useless and the spec would have to deal with aw=
kward complications because it is not true that arbitrary XML-encoded anyxm=
l content can be used without changes in JSON encoding.<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; Perhaps the best solution would be to state that JSON=
 encoding is incompatible with data models that use &quot;anyxml&quot;.<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt; Perhaps we can only settle this by doing an opinion poll =
since<br>
&gt; &gt;&gt;&gt; debating this forever is not useful. So what are the opti=
ons?<br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt; a) The JSON encoding does not define anyxml is not encode=
d at all. If<br>
&gt; &gt;&gt;&gt;=C2=A0 you use anyxml in a data model, the content will no=
t appear in JSON<br>
&gt; &gt;&gt;&gt;=C2=A0 encodings.<br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt; b) The JSON encoding defines that anyxml data is encoded =
as a string<br>
&gt; &gt;&gt;&gt;=C2=A0 containing XML.<br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt; c) The JSON encoding defines that anyxml is encoded in wh=
atever way<br>
&gt; &gt;&gt;&gt;=C2=A0 the implementor finds useful.<br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt; d) If the anyxml content is actually valid anydata conten=
t, encode it<br>
&gt; &gt;&gt;&gt;=C2=A0 using anydata rules. Content that is not valid anyd=
ata content is<br>
&gt; &gt;&gt;&gt;=C2=A0 not encoded at all.<br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt; Any options missing?<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; Yes, the one that&#39;s in yang-json-06:<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; e) An anyxml instance is encoded as a JSON name/value pair wh=
ich MUST<br>
&gt; &gt;&gt;=C2=A0 =C2=A0satisfy I-JSON constraints.=C2=A0 Otherwise it is=
 unrestricted, i.e., the<br>
&gt; &gt;&gt;=C2=A0 =C2=A0value can be an object, array, number, string or =
one of the literals<br>
&gt; &gt;&gt;=C2=A0 =C2=A0&quot;true&quot;, &quot;false&quot; and &quot;nul=
l&quot;.<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; My preference is e), and then a).<br>
&gt; &gt;&gt;<br>
&gt; &gt;<br>
&gt; &gt; Is e) not the same as c)? I assume that the JSON encoding will al=
ways<br>
&gt; &gt; be valid JSON (or I-JSON to be precise). So it seems the only ref=
inement<br>
&gt; &gt; of e) is the toplevel.<br>
&gt;<br>
&gt; c) sounds like the same data can be encoded in different ways dependin=
g on what the implementor finds useful, e.g. encode all numbers as strings.=
<br>
&gt;<br>
<br>
But e) says the same, I fail to see the difference here.<br>
<span class=3D""><font color=3D"#888888"><br></font></span></blockquote><di=
v><br></div><div>IMO the only option is (f)</div><div><br></div><div>=C2=A0=
f) If the anyxml content is actually valid anydata content, encode it<br>=
=C2=A0 =C2=A0 using anydata rules. Content that is not valid anydata conten=
t is<br>=C2=A0 =C2=A0 either not encoded at all, or encoded in an implement=
ation-specific manner<br></div><div><br></div><div><br></div><div>Nobody ha=
s answered my question about the &quot;WEB banner&quot; type of object.</di=
v><div>The only reports we have ever heard on this sort of object indicate =
that</div><div>a leaf is used, NOT ANYXML!=C2=A0 Nobody seems to be using a=
nyxml to store WEB</div><div>page snippets in their configuration.=C2=A0 Cl=
early a leaf is interoperable for</div><div>both XML and JSON, plus NETCONF=
 or RESTCONF.=C2=A0 But we keep insisting</div><div>the YANG to JSON mappin=
g needs to support this use of anyxml.</div><div><br></div><div>We use anyx=
ml in RPC parameters in ietf-netconf, but the XML</div><div>is not expected=
 to be mixed-mode XML.=C2=A0 Only elements and attributes</div><div>are use=
d.</div><div><br></div><div><br></div><blockquote class=3D"gmail_quote" sty=
le=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"><span class=3D""><fo=
nt color=3D"#888888">
/js<br></font></span></blockquote><div><br></div><div>Andy</div><div>=C2=A0=
</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;b=
order-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:s=
olid;padding-left:1ex"><span class=3D""><font color=3D"#888888">
<br>
--<br>
Juergen Schoenwaelder=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Jacobs Univer=
sity Bremen gGmbH<br>
Phone: +49 421 200 3587=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Campus Ring 1 | 28=
759 Bremen | Germany<br>
Fax:=C2=A0 =C2=A0+49 421 200 3103=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;<a h=
ref=3D"http://www.jacobs-university.de/" rel=3D"noreferrer" target=3D"_blan=
k">http://www.jacobs-university.de/</a>&gt;<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" rel=3D"noreferrer"=
 target=3D"_blank">https://www.ietf.org/mailman/listinfo/netmod</a><br>
</font></span></blockquote></div><br></div></div>

--001a1140203ae4239c0524465a6b--


From nobody Wed Nov 11 08:43: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 3FD841B2BDC for <netmod@ietfa.amsl.com>; Wed, 11 Nov 2015 08:43:33 -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 TfhkKS5vBk68 for <netmod@ietfa.amsl.com>; Wed, 11 Nov 2015 08:43:30 -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 0A9761B2BD8 for <netmod@ietf.org>; Wed, 11 Nov 2015 08:43:30 -0800 (PST)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id CED0C1125; Wed, 11 Nov 2015 17:43:28 +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 xoSdMHKAqTTt; Wed, 11 Nov 2015 17:43:27 +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 Nov 2015 17:43:27 +0100 (CET)
Received: from localhost (demetrius4.jacobs-university.de [212.201.44.49]) by hermes.jacobs-university.de (Postfix) with ESMTP id 59A6520055; Wed, 11 Nov 2015 17:43:27 +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 FtWoAAbduOFV; Wed, 11 Nov 2015 17:43: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 99F7F20054; Wed, 11 Nov 2015 17:43:25 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id BCAD1387D1C0; Wed, 11 Nov 2015 17:43:24 +0100 (CET)
Date: Wed, 11 Nov 2015 17:43:24 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Andy Bierman <andy@yumaworks.com>
Message-ID: <20151111164324.GB23430@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: <20151111080728.GA21672@elstar.local> <7BA43E86-C528-451A-BB16-140608D3B871@nic.cz> <20151111122630.GB22461@elstar.local> <54465E2E-3F7F-48D0-8164-18DEC5CFAD79@nic.cz> <20151111134412.GA22783@elstar.local> <2B6DC0CD-1214-4503-95E4-DDF1E5E56A57@nic.cz> <20151111135919.GA22885@elstar.local> <A1BF519D-74B4-48FC-B003-83198DD1BD2D@nic.cz> <20151111153231.GB23082@elstar.local> <CABCOCHSTYopEtiEtUpjUnW759+LZ9QQuYrMkoX_MV+b0NCg02A@mail.gmail.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <CABCOCHSTYopEtiEtUpjUnW759+LZ9QQuYrMkoX_MV+b0NCg02A@mail.gmail.com>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/L3uV6fyGbdVqXZn70XqfW-bDbms>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] JSON encoding of anyxml
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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 11 Nov 2015 16:43:33 -0000

On Wed, Nov 11, 2015 at 08:31:14AM -0800, Andy Bierman wrote:
> On Wed, Nov 11, 2015 at 7:32 AM, Juergen Schoenwaelder <
> j.schoenwaelder@jacobs-university.de> wrote:
> 
> > On Wed, Nov 11, 2015 at 03:14:13PM +0100, Ladislav Lhotka wrote:
> > >
> > > > On 11 Nov 2015, at 14:59, Juergen Schoenwaelder <
> > j.schoenwaelder@jacobs-university.de> wrote:
> > > >
> > > > On Wed, Nov 11, 2015 at 02:53:49PM +0100, Ladislav Lhotka wrote:
> > > >>
> > > >>> On 11 Nov 2015, at 14:44, Juergen Schoenwaelder <
> > j.schoenwaelder@jacobs-university.de> wrote:
> > > >>>
> > > >>> On Wed, Nov 11, 2015 at 02:24:15PM +0100, Ladislav Lhotka wrote:
> > > >>>>
> > > >>>>>
> > > >>>>> I wrote 'effectively deprecated' and here is the text in 6020bis.
> > > >>>>>
> > > >>>>> Since the use of anyxml limits the manipulation of the content, it
> > is
> > > >>>>> RECOMMENDED that the "anyxml" statement not be used to define
> > > >>>>> configuration data.
> > > >>>>>
> > > >>>>> It should be noted that in YANG version 1, anyxml was the only
> > > >>>>> statement that could model an unknown hierarchy of data.  In many
> > > >>>>> cases this unknown hierarchy of data is actually modelled in YANG,
> > > >>>>> but the exact YANG model is not known at design time.  In these
> > > >>>>> situations, it is RECOMMENDED to use anydata (Section 7.10) instead
> > > >>>>> of anyxml.
> > > >>>>
> > > >>>> The first paragraph is for config data and the second for data that
> > can modelled with YANG. If we want to deprecate "anyxml" for use with data
> > that are neither of these, 6020bis should say so. I'd be fine with that.
> > > >>>>
> > > >>>
> > > >>> The guidelines will say that any usage of anyxml in the IETF will be
> > > >>> carefully checked by YANG doctors. See Y34 for all details.
> > > >>>
> > > >>>>> There is more text in Y34-05 that will go into the guidelines. I
> > call
> > > >>>>> this "effectively deprecated", you can call it differently if you
> > > >>>>> want. Frankly, this thread is about how to encode anyxml in JSON
> > not
> > > >>>>> about the YANG 1.1 issue Y34. You may not like Y34-05 but this is
> > what
> > > >>>>> we ended up with.
> > > >>>>
> > > >>>> I am strongly against encoding serialized XML as JSON strings. It
> > is IMO totally useless and the spec would have to deal with awkward
> > complications because it is not true that arbitrary XML-encoded anyxml
> > content can be used without changes in JSON encoding.
> > > >>>>
> > > >>>> Perhaps the best solution would be to state that JSON encoding is
> > incompatible with data models that use "anyxml".
> > > >>>>
> > > >>>
> > > >>> Perhaps we can only settle this by doing an opinion poll since
> > > >>> debating this forever is not useful. So what are the options?
> > > >>>
> > > >>> a) The JSON encoding does not define anyxml is not encoded at all. If
> > > >>>  you use anyxml in a data model, the content will not appear in JSON
> > > >>>  encodings.
> > > >>>
> > > >>> b) The JSON encoding defines that anyxml data is encoded as a string
> > > >>>  containing XML.
> > > >>>
> > > >>> c) The JSON encoding defines that anyxml is encoded in whatever way
> > > >>>  the implementor finds useful.
> > > >>>
> > > >>> d) If the anyxml content is actually valid anydata content, encode it
> > > >>>  using anydata rules. Content that is not valid anydata content is
> > > >>>  not encoded at all.
> > > >>>
> > > >>> Any options missing?
> > > >>
> > > >> Yes, the one that's in yang-json-06:
> > > >>
> > > >> e) An anyxml instance is encoded as a JSON name/value pair which MUST
> > > >>   satisfy I-JSON constraints.  Otherwise it is unrestricted, i.e., the
> > > >>   value can be an object, array, number, string or one of the literals
> > > >>   "true", "false" and "null".
> > > >>
> > > >> My preference is e), and then a).
> > > >>
> > > >
> > > > Is e) not the same as c)? I assume that the JSON encoding will always
> > > > be valid JSON (or I-JSON to be precise). So it seems the only
> > refinement
> > > > of e) is the toplevel.
> > >
> > > c) sounds like the same data can be encoded in different ways depending
> > on what the implementor finds useful, e.g. encode all numbers as strings.
> > >
> >
> > But e) says the same, I fail to see the difference here.
> >
> >
> IMO the only option is (f)
> 
>  f) If the anyxml content is actually valid anydata content, encode it
>     using anydata rules. Content that is not valid anydata content is
>     either not encoded at all, or encoded in an implementation-specific
> manner

This is essentially the same as d).

> Nobody has answered my question about the "WEB banner" type of object.
> The only reports we have ever heard on this sort of object indicate that
> a leaf is used, NOT ANYXML!  Nobody seems to be using anyxml to store WEB
> page snippets in their configuration.  Clearly a leaf is interoperable for
> both XML and JSON, plus NETCONF or RESTCONF.  But we keep insisting
> the YANG to JSON mapping needs to support this use of anyxml.
> 
> We use anyxml in RPC parameters in ietf-netconf, but the XML
> is not expected to be mixed-mode XML.  Only elements and attributes
> are used.

Well, there are subtle differences. For example, a leaf-list only
allows unique values. So by way of example, anydata is in fact more
restrictive than anyxml even if we only consider XML elements and
attributes.

/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 Nov 11 12:09:15 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 5BC371A008B for <netmod@ietfa.amsl.com>; Wed, 11 Nov 2015 12:09:14 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level: 
X-Spam-Status: No, score=-2.7 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_LOW=-0.7] 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 9J5_6BLh7SqF for <netmod@ietfa.amsl.com>; Wed, 11 Nov 2015 12:09:11 -0800 (PST)
Received: from elasmtp-spurfowl.atl.sa.earthlink.net (elasmtp-spurfowl.atl.sa.earthlink.net [209.86.89.66]) by ietfa.amsl.com (Postfix) with ESMTP id 2BAEC1A008A for <netmod@ietf.org>; Wed, 11 Nov 2015 12:09:11 -0800 (PST)
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=dk20050327; d=mindspring.com; b=h2aC0ndHJWKiB4JkaMorDDyw9L3f2Nhq1ADueU029t95Tnjee+Ybpn16fJ8Xh6no; 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.37] (helo=elwamui-karabash.atl.sa.earthlink.net) by elasmtp-spurfowl.atl.sa.earthlink.net with esmtpa (Exim 4.67) (envelope-from <randy_presuhn@mindspring.com>) id 1ZwbhX-0003Kg-G5 for netmod@ietf.org; Wed, 11 Nov 2015 15:09:03 -0500
Received: from 76.254.48.70 by webmail.earthlink.net with HTTP; Wed, 11 Nov 2015 15:09:02 -0500
Message-ID: <6503823.1447272542480.JavaMail.root@elwamui-karabash.atl.sa.earthlink.net>
Date: Wed, 11 Nov 2015 12:09:02 -0800 (GMT-08: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: 7bit
X-Mailer: EarthLink Zoo Mail 1.0
X-ELNK-Trace: 4488c18417c9426da92b9037bc8bcf44d4c20f6b8d69d88874d3f0892ff6d3ed02faed7a28742fac0bc635f872722291350badd9bab72f9c350badd9bab72f9c
X-Originating-IP: 209.86.224.37
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/INVRhYLrnkfeFVtRUlp__JUD8E0>
Subject: Re: [netmod] JSON encoding of anyxml
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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 11 Nov 2015 20:09:14 -0000

Hi -

>From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
>Sent: Nov 11, 2015 5:44 AM
>To: Ladislav Lhotka <lhotka@nic.cz>
>Cc: netmod@ietf.org
>Subject: Re: [netmod] JSON encoding of anyxml
...
>Observations:
>
> - Except b), none of the options is interoperable. Option d) is
>   interoperable for the anydata subset of anyxml.
> - It seems a) is simplest to implement, b) might be expensive to
>   implement and use.
> - Some implementations use internal data stores that can only deal
>   with data that can be modelled with YANG and for those implementations
>   anyxml is effectively the same as anydata and d) migth be close to
>   a) in terms of implementation costs.
>
>Any other observations missing?

The problem is similar to the ones that show up with ASN.1 "ANY"
(but *not* "ANY DEFINED BY") in environments supporting multiple
encoding rules / transfer syntaxes.

For a recipient to *fully* decode something in such an environment,
either the encoding has unambiguously identify the grammar of the
bits in question, or the recipient has to have complete a priori
knowledge of everything that could possibly be encountered in that
context, along with any disambiguation logic.

The "ANY DEFINED BY" construct meets that requirement, as long as
each set of encoding rules properly supports the abstract syntax.
ASN.1 "ANY" doesn't meet that requirement as soon as things like,
for example, IMPLICIT tagging come into play.

Netmod and netconf have painted themselves into a corner here:
  (1) the grammar can't be deduced from an encoding
  (2) the information identifying the grammar of the payload
      is not present on the wire, nor is it available in
      machine-readable form in the data model.  At best it'll
      be handled on an ad hoc basis if a developer gets around
      to it for a given leaf.

This means that, as a practical matter, it's not going to be
practical or interoperable to treat the payloads of these types
as anything other than (octet) strings for transport.  Attempts
to convert a value based on the (wrapping) transfer syntax will
only work for senders that know the payload's grammar.  Generic
recipients and particularly relays would be Simply Out of Luck.

Randy


From nobody Wed Nov 11 22:51:40 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 6E42D1B2A0A for <netmod@ietfa.amsl.com>; Wed, 11 Nov 2015 22:51:38 -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 ebpAWZr4UPxA for <netmod@ietfa.amsl.com>; Wed, 11 Nov 2015 22:51:35 -0800 (PST)
Received: from trail.lhotka.name (trail.lhotka.name [77.48.224.143]) by ietfa.amsl.com (Postfix) with ESMTP id 583261B29F9 for <netmod@ietf.org>; Wed, 11 Nov 2015 22:51:35 -0800 (PST)
Received: from localhost (unknown [195.113.220.110]) by trail.lhotka.name (Postfix) with ESMTPSA id 5343C1CC009A; Thu, 12 Nov 2015 07:51:34 +0100 (CET)
From: Ladislav Lhotka <lhotka@nic.cz>
To: Randy Presuhn <randy_presuhn@mindspring.com>, netmod@ietf.org
In-Reply-To: <6503823.1447272542480.JavaMail.root@elwamui-karabash.atl.sa.earthlink.net>
References: <6503823.1447272542480.JavaMail.root@elwamui-karabash.atl.sa.earthlink.net>
User-Agent: Notmuch/0.21 (http://notmuchmail.org) Emacs/24.4.51.2 (x86_64-apple-darwin14.0.0)
Date: Thu, 12 Nov 2015 07:51:37 +0100
Message-ID: <m2pozfogli.fsf@birdie.labs.nic.cz>
MIME-Version: 1.0
Content-Type: text/plain
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/VUS_jgbQ-ruNu_aAh4Kg3D9tOKQ>
Subject: Re: [netmod] JSON encoding of anyxml
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 12 Nov 2015 06:51:38 -0000

Randy Presuhn <randy_presuhn@mindspring.com> writes:

> Hi -
>
>>From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
>>Sent: Nov 11, 2015 5:44 AM
>>To: Ladislav Lhotka <lhotka@nic.cz>
>>Cc: netmod@ietf.org
>>Subject: Re: [netmod] JSON encoding of anyxml
> ...
>>Observations:
>>
>> - Except b), none of the options is interoperable. Option d) is
>>   interoperable for the anydata subset of anyxml.
>> - It seems a) is simplest to implement, b) might be expensive to
>>   implement and use.
>> - Some implementations use internal data stores that can only deal
>>   with data that can be modelled with YANG and for those implementations
>>   anyxml is effectively the same as anydata and d) migth be close to
>>   a) in terms of implementation costs.
>>
>>Any other observations missing?
>
> The problem is similar to the ones that show up with ASN.1 "ANY"
> (but *not* "ANY DEFINED BY") in environments supporting multiple
> encoding rules / transfer syntaxes.
>
> For a recipient to *fully* decode something in such an environment,
> either the encoding has unambiguously identify the grammar of the
> bits in question, or the recipient has to have complete a priori
> knowledge of everything that could possibly be encountered in that
> context, along with any disambiguation logic.
>
> The "ANY DEFINED BY" construct meets that requirement, as long as
> each set of encoding rules properly supports the abstract syntax.
> ASN.1 "ANY" doesn't meet that requirement as soon as things like,
> for example, IMPLICIT tagging come into play.
>
> Netmod and netconf have painted themselves into a corner here:
>   (1) the grammar can't be deduced from an encoding
>   (2) the information identifying the grammar of the payload
>       is not present on the wire, nor is it available in
>       machine-readable form in the data model.  At best it'll
>       be handled on an ad hoc basis if a developer gets around
>       to it for a given leaf.

Right, that's exactly how I see it. Even if anyxml is deprecated in
standard modules, I believe it may be useful if an implementation has
the possibility to send some non-YANG data, for one reason or
another. The vendor can then write a one-off module for this purpose
and that's all.

Lada

>
> This means that, as a practical matter, it's not going to be
> practical or interoperable to treat the payloads of these types
> as anything other than (octet) strings for transport.  Attempts
> to convert a value based on the (wrapping) transfer syntax will
> only work for senders that know the payload's grammar.  Generic
> recipients and particularly relays would be Simply Out of Luck.
>
> Randy
>
> _______________________________________________
> 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 Nov 11 23:10:51 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 77A011A1A68 for <netmod@ietfa.amsl.com>; Wed, 11 Nov 2015 23:10: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 0yrIQOJouADm for <netmod@ietfa.amsl.com>; Wed, 11 Nov 2015 23:10:48 -0800 (PST)
Received: from trail.lhotka.name (trail.lhotka.name [77.48.224.143]) by ietfa.amsl.com (Postfix) with ESMTP id F1AE31A1A19 for <netmod@ietf.org>; Wed, 11 Nov 2015 23:10:47 -0800 (PST)
Received: from localhost (unknown [195.113.220.110]) by trail.lhotka.name (Postfix) with ESMTPSA id 0FCEA1CC009A; Thu, 12 Nov 2015 08:10:48 +0100 (CET)
From: Ladislav Lhotka <lhotka@nic.cz>
To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
In-Reply-To: <20151111153231.GB23082@elstar.local>
References: <CABCOCHSUrbk-KVNtcKRO8hUAj83akHb=+7abJoVvVgUSTG7sRA@mail.gmail.com> <20151111.073423.361054647288765847.mbj@tail-f.com> <20151111080728.GA21672@elstar.local> <7BA43E86-C528-451A-BB16-140608D3B871@nic.cz> <20151111122630.GB22461@elstar.local> <54465E2E-3F7F-48D0-8164-18DEC5CFAD79@nic.cz> <20151111134412.GA22783@elstar.local> <2B6DC0CD-1214-4503-95E4-DDF1E5E56A57@nic.cz> <20151111135919.GA22885@elstar.local> <A1BF519D-74B4-48FC-B003-83198DD1BD2D@nic.cz> <20151111153231.GB23082@elstar.local>
User-Agent: Notmuch/0.21 (http://notmuchmail.org) Emacs/24.4.51.2 (x86_64-apple-darwin14.0.0)
Date: Thu, 12 Nov 2015 08:10:51 +0100
Message-ID: <m2mvujofpg.fsf@birdie.labs.nic.cz>
MIME-Version: 1.0
Content-Type: text/plain
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/mTC78Q5KWIpVcwUpRC1vTlEBibU>
Cc: netmod@ietf.org
Subject: Re: [netmod] JSON encoding of anyxml
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 12 Nov 2015 07:10:50 -0000

Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> writes:

> On Wed, Nov 11, 2015 at 03:14:13PM +0100, Ladislav Lhotka wrote:
>> 
>> > On 11 Nov 2015, at 14:59, Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote:
>> > 
>> > On Wed, Nov 11, 2015 at 02:53:49PM +0100, Ladislav Lhotka wrote:
>> >> 
>> >>> On 11 Nov 2015, at 14:44, Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote:
>> >>> 
>> >>> On Wed, Nov 11, 2015 at 02:24:15PM +0100, Ladislav Lhotka wrote:
>> >>>> 
>> >>>>> 
>> >>>>> I wrote 'effectively deprecated' and here is the text in 6020bis.
>> >>>>> 
>> >>>>> Since the use of anyxml limits the manipulation of the content, it is
>> >>>>> RECOMMENDED that the "anyxml" statement not be used to define
>> >>>>> configuration data.
>> >>>>> 
>> >>>>> It should be noted that in YANG version 1, anyxml was the only
>> >>>>> statement that could model an unknown hierarchy of data.  In many
>> >>>>> cases this unknown hierarchy of data is actually modelled in YANG,
>> >>>>> but the exact YANG model is not known at design time.  In these
>> >>>>> situations, it is RECOMMENDED to use anydata (Section 7.10) instead
>> >>>>> of anyxml.
>> >>>> 
>> >>>> The first paragraph is for config data and the second for data that can modelled with YANG. If we want to deprecate "anyxml" for use with data that are neither of these, 6020bis should say so. I'd be fine with that.
>> >>>> 
>> >>> 
>> >>> The guidelines will say that any usage of anyxml in the IETF will be
>> >>> carefully checked by YANG doctors. See Y34 for all details.
>> >>> 
>> >>>>> There is more text in Y34-05 that will go into the guidelines. I call
>> >>>>> this "effectively deprecated", you can call it differently if you
>> >>>>> want. Frankly, this thread is about how to encode anyxml in JSON not
>> >>>>> about the YANG 1.1 issue Y34. You may not like Y34-05 but this is what
>> >>>>> we ended up with.
>> >>>> 
>> >>>> I am strongly against encoding serialized XML as JSON strings. It is IMO totally useless and the spec would have to deal with awkward complications because it is not true that arbitrary XML-encoded anyxml content can be used without changes in JSON encoding. 
>> >>>> 
>> >>>> Perhaps the best solution would be to state that JSON encoding is incompatible with data models that use "anyxml".
>> >>>> 
>> >>> 
>> >>> Perhaps we can only settle this by doing an opinion poll since
>> >>> debating this forever is not useful. So what are the options?
>> >>> 
>> >>> a) The JSON encoding does not define anyxml is not encoded at all. If
>> >>>  you use anyxml in a data model, the content will not appear in JSON
>> >>>  encodings.
>> >>> 
>> >>> b) The JSON encoding defines that anyxml data is encoded as a string
>> >>>  containing XML.
>> >>> 
>> >>> c) The JSON encoding defines that anyxml is encoded in whatever way
>> >>>  the implementor finds useful.
>> >>> 
>> >>> d) If the anyxml content is actually valid anydata content, encode it
>> >>>  using anydata rules. Content that is not valid anydata content is
>> >>>  not encoded at all.
>> >>> 
>> >>> Any options missing?
>> >> 
>> >> Yes, the one that's in yang-json-06:
>> >> 
>> >> e) An anyxml instance is encoded as a JSON name/value pair which MUST
>> >>   satisfy I-JSON constraints.  Otherwise it is unrestricted, i.e., the
>> >>   value can be an object, array, number, string or one of the literals
>> >>   "true", "false" and "null".
>> >> 
>> >> My preference is e), and then a).
>> >> 
>> > 
>> > Is e) not the same as c)? I assume that the JSON encoding will always
>> > be valid JSON (or I-JSON to be precise). So it seems the only refinement
>> > of e) is the toplevel.
>> 
>> c) sounds like the same data can be encoded in different ways depending on what the implementor finds useful, e.g. encode all numbers as strings.
>>
>
> But e) says the same, I fail to see the difference here.

The way how c) is formulated is rather suggestive: beware, this is
non-interoperable by its very nature. I think it is as interoperable as
anyxml in XML encoding. Without knowing the context, translating anyxml
chunks from XML to JSON, and vice versa, is quite problematic even for
b).

BTW, if the ability to translate between XML and JSON encodings is so
critical for interoperability, then let me note that it's in general not
possible for "anydata" either.

Lada

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

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


From nobody Wed Nov 11 23:51: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 53C641A87C7 for <netmod@ietfa.amsl.com>; Wed, 11 Nov 2015 23:51:20 -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 rFI36PRUbuTi for <netmod@ietfa.amsl.com>; Wed, 11 Nov 2015 23:51:17 -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 98A5C1A87BA for <netmod@ietf.org>; Wed, 11 Nov 2015 23:51:17 -0800 (PST)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id 44C72136F; Thu, 12 Nov 2015 08:51: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 4d1jShOMHhMj; Thu, 12 Nov 2015 08:51:14 +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, 12 Nov 2015 08:51:14 +0100 (CET)
Received: from localhost (demetrius2.jacobs-university.de [212.201.44.47]) by hermes.jacobs-university.de (Postfix) with ESMTP id 776012004E; Thu, 12 Nov 2015 08:51:14 +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 oD5eGL77fyk6; Thu, 12 Nov 2015 08:51:13 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id CBDD72003B; Thu, 12 Nov 2015 08:51:12 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id E6709387D627; Thu, 12 Nov 2015 08:51:11 +0100 (CET)
Date: Thu, 12 Nov 2015 08:51:11 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Ladislav Lhotka <lhotka@nic.cz>
Message-ID: <20151112075111.GA25623@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: <20151111080728.GA21672@elstar.local> <7BA43E86-C528-451A-BB16-140608D3B871@nic.cz> <20151111122630.GB22461@elstar.local> <54465E2E-3F7F-48D0-8164-18DEC5CFAD79@nic.cz> <20151111134412.GA22783@elstar.local> <2B6DC0CD-1214-4503-95E4-DDF1E5E56A57@nic.cz> <20151111135919.GA22885@elstar.local> <A1BF519D-74B4-48FC-B003-83198DD1BD2D@nic.cz> <20151111153231.GB23082@elstar.local> <m2mvujofpg.fsf@birdie.labs.nic.cz>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <m2mvujofpg.fsf@birdie.labs.nic.cz>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/0hLPAscl6Phv4I_h5WpAbA5nx90>
Cc: netmod@ietf.org
Subject: Re: [netmod] JSON encoding of anyxml
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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 12 Nov 2015 07:51:20 -0000

On Thu, Nov 12, 2015 at 08:10:51AM +0100, Ladislav Lhotka wrote:
> Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> writes:
> 
> > On Wed, Nov 11, 2015 at 03:14:13PM +0100, Ladislav Lhotka wrote:
> >> 
> >> > On 11 Nov 2015, at 14:59, Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote:
> >> > 
> >> > On Wed, Nov 11, 2015 at 02:53:49PM +0100, Ladislav Lhotka wrote:
> >> >> 
> >> >>> On 11 Nov 2015, at 14:44, Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote:
> >> >>> 
> >> >>> On Wed, Nov 11, 2015 at 02:24:15PM +0100, Ladislav Lhotka wrote:
> >> >>>> 
> >> >>>>> 
> >> >>>>> I wrote 'effectively deprecated' and here is the text in 6020bis.
> >> >>>>> 
> >> >>>>> Since the use of anyxml limits the manipulation of the content, it is
> >> >>>>> RECOMMENDED that the "anyxml" statement not be used to define
> >> >>>>> configuration data.
> >> >>>>> 
> >> >>>>> It should be noted that in YANG version 1, anyxml was the only
> >> >>>>> statement that could model an unknown hierarchy of data.  In many
> >> >>>>> cases this unknown hierarchy of data is actually modelled in YANG,
> >> >>>>> but the exact YANG model is not known at design time.  In these
> >> >>>>> situations, it is RECOMMENDED to use anydata (Section 7.10) instead
> >> >>>>> of anyxml.
> >> >>>> 
> >> >>>> The first paragraph is for config data and the second for data that can modelled with YANG. If we want to deprecate "anyxml" for use with data that are neither of these, 6020bis should say so. I'd be fine with that.
> >> >>>> 
> >> >>> 
> >> >>> The guidelines will say that any usage of anyxml in the IETF will be
> >> >>> carefully checked by YANG doctors. See Y34 for all details.
> >> >>> 
> >> >>>>> There is more text in Y34-05 that will go into the guidelines. I call
> >> >>>>> this "effectively deprecated", you can call it differently if you
> >> >>>>> want. Frankly, this thread is about how to encode anyxml in JSON not
> >> >>>>> about the YANG 1.1 issue Y34. You may not like Y34-05 but this is what
> >> >>>>> we ended up with.
> >> >>>> 
> >> >>>> I am strongly against encoding serialized XML as JSON strings. It is IMO totally useless and the spec would have to deal with awkward complications because it is not true that arbitrary XML-encoded anyxml content can be used without changes in JSON encoding. 
> >> >>>> 
> >> >>>> Perhaps the best solution would be to state that JSON encoding is incompatible with data models that use "anyxml".
> >> >>>> 
> >> >>> 
> >> >>> Perhaps we can only settle this by doing an opinion poll since
> >> >>> debating this forever is not useful. So what are the options?
> >> >>> 
> >> >>> a) The JSON encoding does not define anyxml is not encoded at all. If
> >> >>>  you use anyxml in a data model, the content will not appear in JSON
> >> >>>  encodings.
> >> >>> 
> >> >>> b) The JSON encoding defines that anyxml data is encoded as a string
> >> >>>  containing XML.
> >> >>> 
> >> >>> c) The JSON encoding defines that anyxml is encoded in whatever way
> >> >>>  the implementor finds useful.
> >> >>> 
> >> >>> d) If the anyxml content is actually valid anydata content, encode it
> >> >>>  using anydata rules. Content that is not valid anydata content is
> >> >>>  not encoded at all.
> >> >>> 
> >> >>> Any options missing?
> >> >> 
> >> >> Yes, the one that's in yang-json-06:
> >> >> 
> >> >> e) An anyxml instance is encoded as a JSON name/value pair which MUST
> >> >>   satisfy I-JSON constraints.  Otherwise it is unrestricted, i.e., the
> >> >>   value can be an object, array, number, string or one of the literals
> >> >>   "true", "false" and "null".
> >> >> 
> >> >> My preference is e), and then a).
> >> >> 
> >> > 
> >> > Is e) not the same as c)? I assume that the JSON encoding will always
> >> > be valid JSON (or I-JSON to be precise). So it seems the only refinement
> >> > of e) is the toplevel.
> >> 
> >> c) sounds like the same data can be encoded in different ways depending on what the implementor finds useful, e.g. encode all numbers as strings.
> >>
> >
> > But e) says the same, I fail to see the difference here.
> 
> The way how c) is formulated is rather suggestive: beware, this is
> non-interoperable by its very nature. I think it is as interoperable as
> anyxml in XML encoding. Without knowing the context, translating anyxml
> chunks from XML to JSON, and vice versa, is quite problematic even for
> b).

e) is no better than c) in terms of interoperability
 
/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 Nov 11 23:56: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 69E431A88A3 for <netmod@ietfa.amsl.com>; Wed, 11 Nov 2015 23:56:27 -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 4w1i0Pyh3u2U for <netmod@ietfa.amsl.com>; Wed, 11 Nov 2015 23:56:25 -0800 (PST)
Received: from mail.nic.cz (mail.nic.cz [IPv6:2001:1488:800:400::400]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5F4DB1A8876 for <netmod@ietf.org>; Wed, 11 Nov 2015 23:56:25 -0800 (PST)
Received: from [IPv6:2001:718:1a02:1:dc2a:2d58:91fa:3a54] (unknown [IPv6:2001:718:1a02:1:dc2a:2d58:91fa:3a54]) by mail.nic.cz (Postfix) with ESMTPSA id CF0EC181879; Thu, 12 Nov 2015 08:56:23 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nic.cz; s=default; t=1447314983; bh=bknsdDya0cSdkri5weLCpDiDq1ljUW92U1habkxxaZI=; h=From:Date:To; b=dVNSEHnYikJu0GVCU5VzQvbhJq2MZAbx760qEnEKL27tcZ6GUK2pJATHgD8ziwMfK s0nbsDrxq06BoKutk+V7eI9qkuv6YdC9d73kPVtpnwcxCTJ4yKZ3L5bu2+Z1wGgR3t HeVntUVCo+YU+EzUO2wrGKFhbt1QiTWZzOzwD7Lc=
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
From: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <20151112075111.GA25623@elstar.local>
Date: Thu, 12 Nov 2015 08:56:29 +0100
Content-Transfer-Encoding: quoted-printable
Message-Id: <7E0ED3E6-024C-4620-8DF6-C916A5A79311@nic.cz>
References: <20151111080728.GA21672@elstar.local> <7BA43E86-C528-451A-BB16-140608D3B871@nic.cz> <20151111122630.GB22461@elstar.local> <54465E2E-3F7F-48D0-8164-18DEC5CFAD79@nic.cz> <20151111134412.GA22783@elstar.local> <2B6DC0CD-1214-4503-95E4-DDF1E5E56A57@nic.cz> <20151111135919.GA22885@elstar.local> <A1BF519D-74B4-48FC-B003-83198DD1BD2D@nic.cz> <20151111153231.GB23082@elstar.local> <m2mvujofpg.fsf@birdie.labs.nic.cz> <20151112075111.GA25623@elstar.local>
To: =?utf-8?Q?J=C3=BCrgen_Sch=C3=B6nw=C3=A4lder?= <j.schoenwaelder@jacobs-university.de>
X-Mailer: Apple Mail (2.3096.5)
X-Virus-Scanned: clamav-milter 0.98.7 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/8ERjnaplWpNBhyIEPAKXgPS4IAs>
Cc: netmod@ietf.org
Subject: Re: [netmod] JSON encoding of anyxml
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 12 Nov 2015 07:56:27 -0000

> On 12 Nov 2015, at 08:51, Juergen Schoenwaelder =
<j.schoenwaelder@jacobs-university.de> wrote:
>=20
> On Thu, Nov 12, 2015 at 08:10:51AM +0100, Ladislav Lhotka wrote:
>> Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> writes:
>>=20
>>> On Wed, Nov 11, 2015 at 03:14:13PM +0100, Ladislav Lhotka wrote:
>>>>=20
>>>>> On 11 Nov 2015, at 14:59, Juergen Schoenwaelder =
<j.schoenwaelder@jacobs-university.de> wrote:
>>>>>=20
>>>>> On Wed, Nov 11, 2015 at 02:53:49PM +0100, Ladislav Lhotka wrote:
>>>>>>=20
>>>>>>> On 11 Nov 2015, at 14:44, Juergen Schoenwaelder =
<j.schoenwaelder@jacobs-university.de> wrote:
>>>>>>>=20
>>>>>>> On Wed, Nov 11, 2015 at 02:24:15PM +0100, Ladislav Lhotka wrote:
>>>>>>>>=20
>>>>>>>>>=20
>>>>>>>>> I wrote 'effectively deprecated' and here is the text in =
6020bis.
>>>>>>>>>=20
>>>>>>>>> Since the use of anyxml limits the manipulation of the =
content, it is
>>>>>>>>> RECOMMENDED that the "anyxml" statement not be used to define
>>>>>>>>> configuration data.
>>>>>>>>>=20
>>>>>>>>> It should be noted that in YANG version 1, anyxml was the only
>>>>>>>>> statement that could model an unknown hierarchy of data.  In =
many
>>>>>>>>> cases this unknown hierarchy of data is actually modelled in =
YANG,
>>>>>>>>> but the exact YANG model is not known at design time.  In =
these
>>>>>>>>> situations, it is RECOMMENDED to use anydata (Section 7.10) =
instead
>>>>>>>>> of anyxml.
>>>>>>>>=20
>>>>>>>> The first paragraph is for config data and the second for data =
that can modelled with YANG. If we want to deprecate "anyxml" for use =
with data that are neither of these, 6020bis should say so. I'd be fine =
with that.
>>>>>>>>=20
>>>>>>>=20
>>>>>>> The guidelines will say that any usage of anyxml in the IETF =
will be
>>>>>>> carefully checked by YANG doctors. See Y34 for all details.
>>>>>>>=20
>>>>>>>>> There is more text in Y34-05 that will go into the guidelines. =
I call
>>>>>>>>> this "effectively deprecated", you can call it differently if =
you
>>>>>>>>> want. Frankly, this thread is about how to encode anyxml in =
JSON not
>>>>>>>>> about the YANG 1.1 issue Y34. You may not like Y34-05 but this =
is what
>>>>>>>>> we ended up with.
>>>>>>>>=20
>>>>>>>> I am strongly against encoding serialized XML as JSON strings. =
It is IMO totally useless and the spec would have to deal with awkward =
complications because it is not true that arbitrary XML-encoded anyxml =
content can be used without changes in JSON encoding.=20
>>>>>>>>=20
>>>>>>>> Perhaps the best solution would be to state that JSON encoding =
is incompatible with data models that use "anyxml".
>>>>>>>>=20
>>>>>>>=20
>>>>>>> Perhaps we can only settle this by doing an opinion poll since
>>>>>>> debating this forever is not useful. So what are the options?
>>>>>>>=20
>>>>>>> a) The JSON encoding does not define anyxml is not encoded at =
all. If
>>>>>>> you use anyxml in a data model, the content will not appear in =
JSON
>>>>>>> encodings.
>>>>>>>=20
>>>>>>> b) The JSON encoding defines that anyxml data is encoded as a =
string
>>>>>>> containing XML.
>>>>>>>=20
>>>>>>> c) The JSON encoding defines that anyxml is encoded in whatever =
way
>>>>>>> the implementor finds useful.
>>>>>>>=20
>>>>>>> d) If the anyxml content is actually valid anydata content, =
encode it
>>>>>>> using anydata rules. Content that is not valid anydata content =
is
>>>>>>> not encoded at all.
>>>>>>>=20
>>>>>>> Any options missing?
>>>>>>=20
>>>>>> Yes, the one that's in yang-json-06:
>>>>>>=20
>>>>>> e) An anyxml instance is encoded as a JSON name/value pair which =
MUST
>>>>>>  satisfy I-JSON constraints.  Otherwise it is unrestricted, i.e., =
the
>>>>>>  value can be an object, array, number, string or one of the =
literals
>>>>>>  "true", "false" and "null".
>>>>>>=20
>>>>>> My preference is e), and then a).
>>>>>>=20
>>>>>=20
>>>>> Is e) not the same as c)? I assume that the JSON encoding will =
always
>>>>> be valid JSON (or I-JSON to be precise). So it seems the only =
refinement
>>>>> of e) is the toplevel.
>>>>=20
>>>> c) sounds like the same data can be encoded in different ways =
depending on what the implementor finds useful, e.g. encode all numbers =
as strings.
>>>>=20
>>>=20
>>> But e) says the same, I fail to see the difference here.
>>=20
>> The way how c) is formulated is rather suggestive: beware, this is
>> non-interoperable by its very nature. I think it is as interoperable =
as
>> anyxml in XML encoding. Without knowing the context, translating =
anyxml
>> chunks from XML to JSON, and vice versa, is quite problematic even =
for
>> b).
>=20
> e) is no better than c) in terms of interoperability

OK, I agree to add up votes for c) and e).

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

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





From nobody Fri Nov 13 10:19:37 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 2B9CB1B29E5 for <netmod@ietfa.amsl.com>; Fri, 13 Nov 2015 10:19:36 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.978
X-Spam-Level: 
X-Spam-Status: No, score=-0.978 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, MIME_8BIT_HEADER=0.3, 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 RlqvoWpuygnr for <netmod@ietfa.amsl.com>; Fri, 13 Nov 2015 10:19:33 -0800 (PST)
Received: from mail-lf0-x22b.google.com (mail-lf0-x22b.google.com [IPv6:2a00:1450:4010:c07::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 3034A1B29E2 for <netmod@ietf.org>; Fri, 13 Nov 2015 10:19:33 -0800 (PST)
Received: by lfs39 with SMTP id 39so57244672lfs.3 for <netmod@ietf.org>; Fri, 13 Nov 2015 10:19:31 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks_com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=O8MCcUsLehnuHva9XXRq9vZhPy86uQZUqwGkxAp64OM=; b=MNS6vytnlxeIJnrPfdIYgXwqiWH/lRpoMZuHkTItaqdEoTwXEsrNV4tmKPD379c1Xq uAFmppTKiHK1QmTljxubVt4YxiFAzEvNewhFGfGocZW9LOcFHH6fE35h7wdkUkKiUE80 MFC398v+mAuWb8iJCYEgKyrMgh4mJnjOZ2MU9Y0QXFcY9vOfAePFiAxcs07Luie1B2xc darJVUT+1o1qbeWzZjzoke4z0zdG48eNQdDajqEZIniH4OP99pVNcas/m9VPW6X2XXQB 6JJfydaqOKTwZQ1KXnA/oZDt4A7l7AIa/EueXMRXXedcQWy2lwzpThc/GYy9vBF+rhTy HZ5Q==
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=O8MCcUsLehnuHva9XXRq9vZhPy86uQZUqwGkxAp64OM=; b=Kqxjl2ykn5dXgxYz0MB58inJpKtJ5h98hucwABOtdKk6y4Zm8pFvjl3Lqhbgtw13p2 UiIFCyQy5KkmaD62hXlx8ZarvZQnPfc4fCC0AXZhgUFz9sS/07hU2qKm0dTQI2YYD/rV iLwR80X5KfNZtWoF0n63Ys3LS/JnDgjpoYr0grLLb6p7w8+IRjwgLBBhRo5bCticCaIE uGO0ikQPaXdE2eW+t0yU8Hjx4VBJnDzTsvwA2s2giF4a+rmaxbi8TiV9sJpN39jV3NeV /fCAi50exyJflREChCp6Gne7D5LQIL0KdLoXrfxwJAwGhnsGDbY17jUCdvueyRQ+Fsnl g1Gw==
X-Gm-Message-State: ALoCoQnx7Mn24hgHixK6pRV++QABjRnjY9Ch8qma/JBP6V0In9Pcx+yF94holpmtOO6pZuF3+rUM
MIME-Version: 1.0
X-Received: by 10.25.145.80 with SMTP id t77mr8075901lfd.88.1447438771219; Fri, 13 Nov 2015 10:19:31 -0800 (PST)
Received: by 10.112.144.106 with HTTP; Fri, 13 Nov 2015 10:19:31 -0800 (PST)
In-Reply-To: <20151112075111.GA25623@elstar.local>
References: <20151111080728.GA21672@elstar.local> <7BA43E86-C528-451A-BB16-140608D3B871@nic.cz> <20151111122630.GB22461@elstar.local> <54465E2E-3F7F-48D0-8164-18DEC5CFAD79@nic.cz> <20151111134412.GA22783@elstar.local> <2B6DC0CD-1214-4503-95E4-DDF1E5E56A57@nic.cz> <20151111135919.GA22885@elstar.local> <A1BF519D-74B4-48FC-B003-83198DD1BD2D@nic.cz> <20151111153231.GB23082@elstar.local> <m2mvujofpg.fsf@birdie.labs.nic.cz> <20151112075111.GA25623@elstar.local>
Date: Fri, 13 Nov 2015 10:19:31 -0800
Message-ID: <CABCOCHQzYbyqB_t=JVR3X_Wqs_vf0wCUHWk-AVP6iGuKCsBXKw@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: multipart/alternative; boundary=001a1140203acb07ba0524701925
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/63UBxwMgBdoih_V9mhG3UzMrArE>
Subject: Re: [netmod] JSON encoding of anyxml
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 13 Nov 2015 18:19:36 -0000

--001a1140203acb07ba0524701925
Content-Type: text/plain; charset=UTF-8

On Wed, Nov 11, 2015 at 11:51 PM, Juergen Schoenwaelder <
j.schoenwaelder@jacobs-university.de> wrote:

> On Thu, Nov 12, 2015 at 08:10:51AM +0100, Ladislav Lhotka wrote:
> > Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> writes:
> >
> > > On Wed, Nov 11, 2015 at 03:14:13PM +0100, Ladislav Lhotka wrote:
> > >>
> > >> > On 11 Nov 2015, at 14:59, Juergen Schoenwaelder <
> j.schoenwaelder@jacobs-university.de> wrote:
> > >> >
> > >> > On Wed, Nov 11, 2015 at 02:53:49PM +0100, Ladislav Lhotka wrote:
> > >> >>
> > >> >>> On 11 Nov 2015, at 14:44, Juergen Schoenwaelder <
> j.schoenwaelder@jacobs-university.de> wrote:
> > >> >>>
> > >> >>> On Wed, Nov 11, 2015 at 02:24:15PM +0100, Ladislav Lhotka wrote:
> > >> >>>>
> > >> >>>>>
> > >> >>>>> I wrote 'effectively deprecated' and here is the text in
> 6020bis.
> > >> >>>>>
> > >> >>>>> Since the use of anyxml limits the manipulation of the content,
> it is
> > >> >>>>> RECOMMENDED that the "anyxml" statement not be used to define
> > >> >>>>> configuration data.
> > >> >>>>>
> > >> >>>>> It should be noted that in YANG version 1, anyxml was the only
> > >> >>>>> statement that could model an unknown hierarchy of data.  In
> many
> > >> >>>>> cases this unknown hierarchy of data is actually modelled in
> YANG,
> > >> >>>>> but the exact YANG model is not known at design time.  In these
> > >> >>>>> situations, it is RECOMMENDED to use anydata (Section 7.10)
> instead
> > >> >>>>> of anyxml.
> > >> >>>>
> > >> >>>> The first paragraph is for config data and the second for data
> that can modelled with YANG. If we want to deprecate "anyxml" for use with
> data that are neither of these, 6020bis should say so. I'd be fine with
> that.
> > >> >>>>
> > >> >>>
> > >> >>> The guidelines will say that any usage of anyxml in the IETF will
> be
> > >> >>> carefully checked by YANG doctors. See Y34 for all details.
> > >> >>>
> > >> >>>>> There is more text in Y34-05 that will go into the guidelines.
> I call
> > >> >>>>> this "effectively deprecated", you can call it differently if
> you
> > >> >>>>> want. Frankly, this thread is about how to encode anyxml in
> JSON not
> > >> >>>>> about the YANG 1.1 issue Y34. You may not like Y34-05 but this
> is what
> > >> >>>>> we ended up with.
> > >> >>>>
> > >> >>>> I am strongly against encoding serialized XML as JSON strings.
> It is IMO totally useless and the spec would have to deal with awkward
> complications because it is not true that arbitrary XML-encoded anyxml
> content can be used without changes in JSON encoding.
> > >> >>>>
> > >> >>>> Perhaps the best solution would be to state that JSON encoding
> is incompatible with data models that use "anyxml".
> > >> >>>>
> > >> >>>
> > >> >>> Perhaps we can only settle this by doing an opinion poll since
> > >> >>> debating this forever is not useful. So what are the options?
> > >> >>>
> > >> >>> a) The JSON encoding does not define anyxml is not encoded at
> all. If
> > >> >>>  you use anyxml in a data model, the content will not appear in
> JSON
> > >> >>>  encodings.
> > >> >>>
> > >> >>> b) The JSON encoding defines that anyxml data is encoded as a
> string
> > >> >>>  containing XML.
> > >> >>>
> > >> >>> c) The JSON encoding defines that anyxml is encoded in whatever
> way
> > >> >>>  the implementor finds useful.
> > >> >>>
> > >> >>> d) If the anyxml content is actually valid anydata content,
> encode it
> > >> >>>  using anydata rules. Content that is not valid anydata content is
> > >> >>>  not encoded at all.
> > >> >>>
> > >> >>> Any options missing?
> > >> >>
> > >> >> Yes, the one that's in yang-json-06:
> > >> >>
> > >> >> e) An anyxml instance is encoded as a JSON name/value pair which
> MUST
> > >> >>   satisfy I-JSON constraints.  Otherwise it is unrestricted, i.e.,
> the
> > >> >>   value can be an object, array, number, string or one of the
> literals
> > >> >>   "true", "false" and "null".
> > >> >>
> > >> >> My preference is e), and then a).
> > >> >>
> > >> >
> > >> > Is e) not the same as c)? I assume that the JSON encoding will
> always
> > >> > be valid JSON (or I-JSON to be precise). So it seems the only
> refinement
> > >> > of e) is the toplevel.
> > >>
> > >> c) sounds like the same data can be encoded in different ways
> depending on what the implementor finds useful, e.g. encode all numbers as
> strings.
> > >>
> > >
> > > But e) says the same, I fail to see the difference here.
> >
> > The way how c) is formulated is rather suggestive: beware, this is
> > non-interoperable by its very nature. I think it is as interoperable as
> > anyxml in XML encoding. Without knowing the context, translating anyxml
> > chunks from XML to JSON, and vice versa, is quite problematic even for
> > b).
>
> e) is no better than c) in terms of interoperability
>
>

(e) does not even make sense. "Otherwise" is never paired with "MUST".

Interoperability expectations should be very low for anyxml.
We already established that over 1000 emails ago.


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

--001a1140203acb07ba0524701925
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Wed, Nov 11, 2015 at 11:51 PM, Juergen Schoenwaelder <span dir=3D"lt=
r">&lt;<a href=3D"mailto:j.schoenwaelder@jacobs-university.de" target=3D"_b=
lank">j.schoenwaelder@jacobs-university.de</a>&gt;</span> wrote:<br><blockq=
uote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc =
solid;padding-left:1ex">On Thu, Nov 12, 2015 at 08:10:51AM +0100, Ladislav =
Lhotka wrote:<br>
&gt; Juergen Schoenwaelder &lt;<a href=3D"mailto:j.schoenwaelder@jacobs-uni=
versity.de">j.schoenwaelder@jacobs-university.de</a>&gt; writes:<br>
&gt;<br>
&gt; &gt; On Wed, Nov 11, 2015 at 03:14:13PM +0100, Ladislav Lhotka wrote:<=
br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; &gt; On 11 Nov 2015, at 14:59, Juergen Schoenwaelder &lt;<a h=
ref=3D"mailto:j.schoenwaelder@jacobs-university.de">j.schoenwaelder@jacobs-=
university.de</a>&gt; wrote:<br>
&gt; &gt;&gt; &gt;<br>
&gt; &gt;&gt; &gt; On Wed, Nov 11, 2015 at 02:53:49PM +0100, Ladislav Lhotk=
a wrote:<br>
&gt; &gt;&gt; &gt;&gt;<br>
&gt; &gt;&gt; &gt;&gt;&gt; On 11 Nov 2015, at 14:44, Juergen Schoenwaelder =
&lt;<a href=3D"mailto:j.schoenwaelder@jacobs-university.de">j.schoenwaelder=
@jacobs-university.de</a>&gt; wrote:<br>
&gt; &gt;&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt; &gt;&gt;&gt; On Wed, Nov 11, 2015 at 02:24:15PM +0100, Ladisl=
av Lhotka wrote:<br>
&gt; &gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt; &gt;&gt;&gt;&gt;&gt; I wrote &#39;effectively deprecated&#39;=
 and here is the text in 6020bis.<br>
&gt; &gt;&gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt; &gt;&gt;&gt;&gt;&gt; Since the use of anyxml limits the manip=
ulation of the content, it is<br>
&gt; &gt;&gt; &gt;&gt;&gt;&gt;&gt; RECOMMENDED that the &quot;anyxml&quot; =
statement not be used to define<br>
&gt; &gt;&gt; &gt;&gt;&gt;&gt;&gt; configuration data.<br>
&gt; &gt;&gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt; &gt;&gt;&gt;&gt;&gt; It should be noted that in YANG version =
1, anyxml was the only<br>
&gt; &gt;&gt; &gt;&gt;&gt;&gt;&gt; statement that could model an unknown hi=
erarchy of data.=C2=A0 In many<br>
&gt; &gt;&gt; &gt;&gt;&gt;&gt;&gt; cases this unknown hierarchy of data is =
actually modelled in YANG,<br>
&gt; &gt;&gt; &gt;&gt;&gt;&gt;&gt; but the exact YANG model is not known at=
 design time.=C2=A0 In these<br>
&gt; &gt;&gt; &gt;&gt;&gt;&gt;&gt; situations, it is RECOMMENDED to use any=
data (Section 7.10) instead<br>
&gt; &gt;&gt; &gt;&gt;&gt;&gt;&gt; of anyxml.<br>
&gt; &gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt; &gt;&gt;&gt;&gt; The first paragraph is for config data and t=
he second for data that can modelled with YANG. If we want to deprecate &qu=
ot;anyxml&quot; for use with data that are neither of these, 6020bis should=
 say so. I&#39;d be fine with that.<br>
&gt; &gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt; &gt;&gt;&gt; The guidelines will say that any usage of anyxml=
 in the IETF will be<br>
&gt; &gt;&gt; &gt;&gt;&gt; carefully checked by YANG doctors. See Y34 for a=
ll details.<br>
&gt; &gt;&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt; &gt;&gt;&gt;&gt;&gt; There is more text in Y34-05 that will g=
o into the guidelines. I call<br>
&gt; &gt;&gt; &gt;&gt;&gt;&gt;&gt; this &quot;effectively deprecated&quot;,=
 you can call it differently if you<br>
&gt; &gt;&gt; &gt;&gt;&gt;&gt;&gt; want. Frankly, this thread is about how =
to encode anyxml in JSON not<br>
&gt; &gt;&gt; &gt;&gt;&gt;&gt;&gt; about the YANG 1.1 issue Y34. You may no=
t like Y34-05 but this is what<br>
&gt; &gt;&gt; &gt;&gt;&gt;&gt;&gt; we ended up with.<br>
&gt; &gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt; &gt;&gt;&gt;&gt; I am strongly against encoding serialized XM=
L as JSON strings. It is IMO totally useless and the spec would have to dea=
l with awkward complications because it is not true that arbitrary XML-enco=
ded anyxml content can be used without changes in JSON encoding.<br>
&gt; &gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt; &gt;&gt;&gt;&gt; Perhaps the best solution would be to state =
that JSON encoding is incompatible with data models that use &quot;anyxml&q=
uot;.<br>
&gt; &gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt; &gt;&gt;&gt; Perhaps we can only settle this by doing an opin=
ion poll since<br>
&gt; &gt;&gt; &gt;&gt;&gt; debating this forever is not useful. So what are=
 the options?<br>
&gt; &gt;&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt; &gt;&gt;&gt; a) The JSON encoding does not define anyxml is n=
ot encoded at all. If<br>
&gt; &gt;&gt; &gt;&gt;&gt;=C2=A0 you use anyxml in a data model, the conten=
t will not appear in JSON<br>
&gt; &gt;&gt; &gt;&gt;&gt;=C2=A0 encodings.<br>
&gt; &gt;&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt; &gt;&gt;&gt; b) The JSON encoding defines that anyxml data is=
 encoded as a string<br>
&gt; &gt;&gt; &gt;&gt;&gt;=C2=A0 containing XML.<br>
&gt; &gt;&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt; &gt;&gt;&gt; c) The JSON encoding defines that anyxml is enco=
ded in whatever way<br>
&gt; &gt;&gt; &gt;&gt;&gt;=C2=A0 the implementor finds useful.<br>
&gt; &gt;&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt; &gt;&gt;&gt; d) If the anyxml content is actually valid anyda=
ta content, encode it<br>
&gt; &gt;&gt; &gt;&gt;&gt;=C2=A0 using anydata rules. Content that is not v=
alid anydata content is<br>
&gt; &gt;&gt; &gt;&gt;&gt;=C2=A0 not encoded at all.<br>
&gt; &gt;&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt; &gt;&gt;&gt; Any options missing?<br>
&gt; &gt;&gt; &gt;&gt;<br>
&gt; &gt;&gt; &gt;&gt; Yes, the one that&#39;s in yang-json-06:<br>
&gt; &gt;&gt; &gt;&gt;<br>
&gt; &gt;&gt; &gt;&gt; e) An anyxml instance is encoded as a JSON name/valu=
e pair which MUST<br>
&gt; &gt;&gt; &gt;&gt;=C2=A0 =C2=A0satisfy I-JSON constraints.=C2=A0 Otherw=
ise it is unrestricted, i.e., the<br>
&gt; &gt;&gt; &gt;&gt;=C2=A0 =C2=A0value can be an object, array, number, s=
tring or one of the literals<br>
&gt; &gt;&gt; &gt;&gt;=C2=A0 =C2=A0&quot;true&quot;, &quot;false&quot; and =
&quot;null&quot;.<br>
&gt; &gt;&gt; &gt;&gt;<br>
&gt; &gt;&gt; &gt;&gt; My preference is e), and then a).<br>
&gt; &gt;&gt; &gt;&gt;<br>
&gt; &gt;&gt; &gt;<br>
&gt; &gt;&gt; &gt; Is e) not the same as c)? I assume that the JSON encodin=
g will always<br>
&gt; &gt;&gt; &gt; be valid JSON (or I-JSON to be precise). So it seems the=
 only refinement<br>
&gt; &gt;&gt; &gt; of e) is the toplevel.<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; c) sounds like the same data can be encoded in different ways=
 depending on what the implementor finds useful, e.g. encode all numbers as=
 strings.<br>
&gt; &gt;&gt;<br>
&gt; &gt;<br>
&gt; &gt; But e) says the same, I fail to see the difference here.<br>
&gt;<br>
&gt; The way how c) is formulated is rather suggestive: beware, this is<br>
&gt; non-interoperable by its very nature. I think it is as interoperable a=
s<br>
&gt; anyxml in XML encoding. Without knowing the context, translating anyxm=
l<br>
&gt; chunks from XML to JSON, and vice versa, is quite problematic even for=
<br>
&gt; b).<br>
<br>
e) is no better than c) in terms of interoperability<br>
<span class=3D"HOEnZb"><font color=3D"#888888"><br></font></span></blockquo=
te><div><br></div><div><br></div><div>(e) does not even make sense. &quot;O=
therwise&quot; is never paired with &quot;MUST&quot;.</div><div><br></div><=
div>Interoperability expectations should be very low for anyxml.</div><div>=
We already established that over 1000 emails ago.</div><div><br></div><div>=
<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bord=
er-left:1px #ccc solid;padding-left:1ex"><span class=3D"HOEnZb"><font color=
=3D"#888888">
/js<br></font></span></blockquote><div><br></div><div>Andy</div><div>=C2=A0=
</div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-l=
eft:1px #ccc solid;padding-left:1ex"><span class=3D"HOEnZb"><font color=3D"=
#888888">
<br>
--<br>
Juergen Schoenwaelder=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Jacobs Univer=
sity Bremen gGmbH<br>
Phone: +49 421 200 3587=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Campus Ring 1 | 28=
759 Bremen | Germany<br>
Fax:=C2=A0 =C2=A0+49 421 200 3103=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;<a h=
ref=3D"http://www.jacobs-university.de/" rel=3D"noreferrer" target=3D"_blan=
k">http://www.jacobs-university.de/</a>&gt;<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" rel=3D"noreferrer"=
 target=3D"_blank">https://www.ietf.org/mailman/listinfo/netmod</a><br>
</font></span></blockquote></div><br></div></div>

--001a1140203acb07ba0524701925--


From nobody Sat Nov 14 01:27: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 409CC1B5BD6 for <netmod@ietfa.amsl.com>; Sat, 14 Nov 2015 01:27:27 -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 ldhm8-w5L25P for <netmod@ietfa.amsl.com>; Sat, 14 Nov 2015 01:27:25 -0800 (PST)
Received: from mail.nic.cz (mail.nic.cz [IPv6:2001:1488:800:400::400]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D1A951B5BD2 for <netmod@ietf.org>; Sat, 14 Nov 2015 01:27:23 -0800 (PST)
Received: from [IPv6:2a01:5e0:29:ffff:90d9:ce66:333f:7bd4] (unknown [IPv6:2a01:5e0:29:ffff:90d9:ce66:333f:7bd4]) by mail.nic.cz (Postfix) with ESMTPSA id 478C51813F7; Sat, 14 Nov 2015 10:27:20 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nic.cz; s=default; t=1447493240; bh=yxE+DL/DR/q+IeGBYsrzmV6uTfNL/cp0tgGrhecJnA8=; h=From:Date:To; b=unGRK14WSYhYRHtNz6nPE0+0RPXVe1dotjT3I5eaU2hPszU548dYpOa84NUOoFyIV g8EelD77OvB8LjrmFBvsksxK1PHFjU69cBrj2kRM0+YXhBA1OBSmc06nfur2jymqlO gHulutClyRXaI0K+XV/rZgebFQhHyeUnIuBiL6cs=
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
From: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <CABCOCHQzYbyqB_t=JVR3X_Wqs_vf0wCUHWk-AVP6iGuKCsBXKw@mail.gmail.com>
Date: Sat, 14 Nov 2015 10:27:19 +0100
Content-Transfer-Encoding: quoted-printable
Message-Id: <82ED52D2-5F51-4C50-A1CC-CCB9090D9AF0@nic.cz>
References: <20151111080728.GA21672@elstar.local> <7BA43E86-C528-451A-BB16-140608D3B871@nic.cz> <20151111122630.GB22461@elstar.local> <54465E2E-3F7F-48D0-8164-18DEC5CFAD79@nic.cz> <20151111134412.GA22783@elstar.local> <2B6DC0CD-1214-4503-95E4-DDF1E5E56A57@nic.cz> <20151111135919.GA22885@elstar.local> <A1BF519D-74B4-48FC-B003-83198DD1BD2D@nic.cz> <20151111153231.GB23082@elstar.local> <m2mvujofpg.fsf@birdie.labs.nic.cz> <20151112075111.GA25623@elstar.local> <CABCOCHQzYbyqB_t=JVR3X_Wqs_vf0wCUHWk-AVP6iGuKCsBXKw@mail.gmail.com>
To: Andy Bierman <andy@yumaworks.com>
X-Mailer: Apple Mail (2.3096.5)
X-Virus-Scanned: clamav-milter 0.98.7 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/ce-5KzKmkggYfQ5sTYmoG-OBbw4>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] JSON encoding of anyxml
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 14 Nov 2015 09:27:27 -0000

> On 13 Nov 2015, at 19:19, Andy Bierman <andy@yumaworks.com> wrote:
>=20
>=20
>=20
> On Wed, Nov 11, 2015 at 11:51 PM, Juergen Schoenwaelder =
<j.schoenwaelder@jacobs-university.de> wrote:
> On Thu, Nov 12, 2015 at 08:10:51AM +0100, Ladislav Lhotka wrote:
> > Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> writes:
> >
> > > On Wed, Nov 11, 2015 at 03:14:13PM +0100, Ladislav Lhotka wrote:
> > >>
> > >> > On 11 Nov 2015, at 14:59, Juergen Schoenwaelder =
<j.schoenwaelder@jacobs-university.de> wrote:
> > >> >
> > >> > On Wed, Nov 11, 2015 at 02:53:49PM +0100, Ladislav Lhotka =
wrote:
> > >> >>
> > >> >>> On 11 Nov 2015, at 14:44, Juergen Schoenwaelder =
<j.schoenwaelder@jacobs-university.de> wrote:
> > >> >>>
> > >> >>> On Wed, Nov 11, 2015 at 02:24:15PM +0100, Ladislav Lhotka =
wrote:
> > >> >>>>
> > >> >>>>>
> > >> >>>>> I wrote 'effectively deprecated' and here is the text in =
6020bis.
> > >> >>>>>
> > >> >>>>> Since the use of anyxml limits the manipulation of the =
content, it is
> > >> >>>>> RECOMMENDED that the "anyxml" statement not be used to =
define
> > >> >>>>> configuration data.
> > >> >>>>>
> > >> >>>>> It should be noted that in YANG version 1, anyxml was the =
only
> > >> >>>>> statement that could model an unknown hierarchy of data.  =
In many
> > >> >>>>> cases this unknown hierarchy of data is actually modelled =
in YANG,
> > >> >>>>> but the exact YANG model is not known at design time.  In =
these
> > >> >>>>> situations, it is RECOMMENDED to use anydata (Section 7.10) =
instead
> > >> >>>>> of anyxml.
> > >> >>>>
> > >> >>>> The first paragraph is for config data and the second for =
data that can modelled with YANG. If we want to deprecate "anyxml" for =
use with data that are neither of these, 6020bis should say so. I'd be =
fine with that.
> > >> >>>>
> > >> >>>
> > >> >>> The guidelines will say that any usage of anyxml in the IETF =
will be
> > >> >>> carefully checked by YANG doctors. See Y34 for all details.
> > >> >>>
> > >> >>>>> There is more text in Y34-05 that will go into the =
guidelines. I call
> > >> >>>>> this "effectively deprecated", you can call it differently =
if you
> > >> >>>>> want. Frankly, this thread is about how to encode anyxml in =
JSON not
> > >> >>>>> about the YANG 1.1 issue Y34. You may not like Y34-05 but =
this is what
> > >> >>>>> we ended up with.
> > >> >>>>
> > >> >>>> I am strongly against encoding serialized XML as JSON =
strings. It is IMO totally useless and the spec would have to deal with =
awkward complications because it is not true that arbitrary XML-encoded =
anyxml content can be used without changes in JSON encoding.
> > >> >>>>
> > >> >>>> Perhaps the best solution would be to state that JSON =
encoding is incompatible with data models that use "anyxml".
> > >> >>>>
> > >> >>>
> > >> >>> Perhaps we can only settle this by doing an opinion poll =
since
> > >> >>> debating this forever is not useful. So what are the options?
> > >> >>>
> > >> >>> a) The JSON encoding does not define anyxml is not encoded at =
all. If
> > >> >>>  you use anyxml in a data model, the content will not appear =
in JSON
> > >> >>>  encodings.
> > >> >>>
> > >> >>> b) The JSON encoding defines that anyxml data is encoded as a =
string
> > >> >>>  containing XML.
> > >> >>>
> > >> >>> c) The JSON encoding defines that anyxml is encoded in =
whatever way
> > >> >>>  the implementor finds useful.
> > >> >>>
> > >> >>> d) If the anyxml content is actually valid anydata content, =
encode it
> > >> >>>  using anydata rules. Content that is not valid anydata =
content is
> > >> >>>  not encoded at all.
> > >> >>>
> > >> >>> Any options missing?
> > >> >>
> > >> >> Yes, the one that's in yang-json-06:
> > >> >>
> > >> >> e) An anyxml instance is encoded as a JSON name/value pair =
which MUST
> > >> >>   satisfy I-JSON constraints.  Otherwise it is unrestricted, =
i.e., the
> > >> >>   value can be an object, array, number, string or one of the =
literals
> > >> >>   "true", "false" and "null".
> > >> >>
> > >> >> My preference is e), and then a).
> > >> >>
> > >> >
> > >> > Is e) not the same as c)? I assume that the JSON encoding will =
always
> > >> > be valid JSON (or I-JSON to be precise). So it seems the only =
refinement
> > >> > of e) is the toplevel.
> > >>
> > >> c) sounds like the same data can be encoded in different ways =
depending on what the implementor finds useful, e.g. encode all numbers =
as strings.
> > >>
> > >
> > > But e) says the same, I fail to see the difference here.
> >
> > The way how c) is formulated is rather suggestive: beware, this is
> > non-interoperable by its very nature. I think it is as interoperable =
as
> > anyxml in XML encoding. Without knowing the context, translating =
anyxml
> > chunks from XML to JSON, and vice versa, is quite problematic even =
for
> > b).
>=20
> e) is no better than c) in terms of interoperability
>=20
>=20
>=20
> (e) does not even make sense. "Otherwise" is never paired with "MUST".

That "otherwise it is unrestricted" was intended to mean "there are no =
restrictions other than this", so it looks like a gap in my =
understanding of English semantics.=20

>=20
> Interoperability expectations should be very low for anyxml.
> We already established that over 1000 emails ago.
>=20

I agree, but on the other hand I think it can be useful in specific =
situations where both the client and server are prepared to understand =
and handle it properly. We cannot expect generic tools to do anything =
reasonable with it - it is only good to make sure they won't break.

Lada

>=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 Sat Nov 14 09:05: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 C86AF1AC44C for <netmod@ietfa.amsl.com>; Sat, 14 Nov 2015 09:05:06 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level: 
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=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 Sf_pjmS4C8kJ for <netmod@ietfa.amsl.com>; Sat, 14 Nov 2015 09:05:03 -0800 (PST)
Received: from mail-lb0-x22b.google.com (mail-lb0-x22b.google.com [IPv6:2a00:1450:4010:c04::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 395FB1AC429 for <netmod@ietf.org>; Sat, 14 Nov 2015 09:05:03 -0800 (PST)
Received: by lbbkw15 with SMTP id kw15so69181632lbb.0 for <netmod@ietf.org>; Sat, 14 Nov 2015 09:05:01 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks_com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=srXDMWSMPXuC8S0NRy72wYZU6dILjD56khFk2grSRC0=; b=oVZp/z3GyteQtPGbsUvn6Sjc0uG8cWb7RvsqhbIZUNlUSFhozcSaJv5XPKNh0YTpyA ooWSDDw3KBU7x/Sl2PIqx2KpB6mv9Q52eEdRLf1fBhQ2OY0VbBfRp7t8pLgaHDyA1ACw 7kt2w6iu8qPadz9QMaWysX6kvsdiG2cTLPlTCZpWlZrfTUc8IwWiWbYPNR17ck7d1F6K vvkCc51gYrH2e83ZilTQ6H3KG9GBLUvNB/jwnWxeGht5yrHUZ7FC1ex963AXObi1Yk5U kH6eQxp7rSJhnz2PJUa5yUGVeqD6hRtDD7LOL18r5C62GHNe8btrekqsu/Ni+dvqT+Mb Y5SA==
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=srXDMWSMPXuC8S0NRy72wYZU6dILjD56khFk2grSRC0=; b=EhpTvoVj63NRexKErD9anOw5ge8ueXZhkrnivAEPPeNgTyrSpUWPJtEoJW5ek+lghs LJUP66PkQAok10dkAbuHifJNgKyI8ax7Fq92CUE26BdBQX5uKSFVEzKmNefxmSBSszG6 aTammwEHxsSkmDPZoBvdmto6qkyK6YXGVcDjUB1sM2qve6J0/kPwOAtceOhcYkdNr7b3 9JdpZRP/VOFbVqLOwMO9KNdpB3JgIxwdAcx7GJNY7C875HKsIvgD9DtM6FkUNohcLYgx wz+B0bcVHCS4JlrosKRpEv6YROGRLnULzc3EDuboEW+gSK2Kssg1V6x7MCbNlfbXbQPg XeWQ==
X-Gm-Message-State: ALoCoQnGlHcFRjoy2kYdiorRqc3nOdkExh8Jx5V8RD3O9UqSJtsxFkrN2fa0kdTwzwmz6Ep/lzPp
MIME-Version: 1.0
X-Received: by 10.112.141.7 with SMTP id rk7mr12912266lbb.82.1447520701098; Sat, 14 Nov 2015 09:05:01 -0800 (PST)
Received: by 10.112.144.106 with HTTP; Sat, 14 Nov 2015 09:05:00 -0800 (PST)
In-Reply-To: <82ED52D2-5F51-4C50-A1CC-CCB9090D9AF0@nic.cz>
References: <20151111080728.GA21672@elstar.local> <7BA43E86-C528-451A-BB16-140608D3B871@nic.cz> <20151111122630.GB22461@elstar.local> <54465E2E-3F7F-48D0-8164-18DEC5CFAD79@nic.cz> <20151111134412.GA22783@elstar.local> <2B6DC0CD-1214-4503-95E4-DDF1E5E56A57@nic.cz> <20151111135919.GA22885@elstar.local> <A1BF519D-74B4-48FC-B003-83198DD1BD2D@nic.cz> <20151111153231.GB23082@elstar.local> <m2mvujofpg.fsf@birdie.labs.nic.cz> <20151112075111.GA25623@elstar.local> <CABCOCHQzYbyqB_t=JVR3X_Wqs_vf0wCUHWk-AVP6iGuKCsBXKw@mail.gmail.com> <82ED52D2-5F51-4C50-A1CC-CCB9090D9AF0@nic.cz>
Date: Sat, 14 Nov 2015 09:05:00 -0800
Message-ID: <CABCOCHTSvjoiOfkOGre_Vn3EmFPDgkCDeGg6p8qHmxvt0qBOLQ@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Ladislav Lhotka <lhotka@nic.cz>
Content-Type: multipart/alternative; boundary=001a11c37e1a31c4db0524832d24
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/6r_PvOyghsfq67FVx9RNXk3_MDE>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] JSON encoding of anyxml
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 14 Nov 2015 17:05:07 -0000

--001a11c37e1a31c4db0524832d24
Content-Type: text/plain; charset=UTF-8

On Sat, Nov 14, 2015 at 1:27 AM, Ladislav Lhotka <lhotka@nic.cz> wrote:

>
> > On 13 Nov 2015, at 19:19, Andy Bierman <andy@yumaworks.com> wrote:
> >
> >
> >
> > On Wed, Nov 11, 2015 at 11:51 PM, Juergen Schoenwaelder <
> j.schoenwaelder@jacobs-university.de> wrote:
> > On Thu, Nov 12, 2015 at 08:10:51AM +0100, Ladislav Lhotka wrote:
> > > Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> writes:
> > >
> > > > On Wed, Nov 11, 2015 at 03:14:13PM +0100, Ladislav Lhotka wrote:
> > > >>
> > > >> > On 11 Nov 2015, at 14:59, Juergen Schoenwaelder <
> j.schoenwaelder@jacobs-university.de> wrote:
> > > >> >
> > > >> > On Wed, Nov 11, 2015 at 02:53:49PM +0100, Ladislav Lhotka wrote:
> > > >> >>
> > > >> >>> On 11 Nov 2015, at 14:44, Juergen Schoenwaelder <
> j.schoenwaelder@jacobs-university.de> wrote:
> > > >> >>>
> > > >> >>> On Wed, Nov 11, 2015 at 02:24:15PM +0100, Ladislav Lhotka wrote:
> > > >> >>>>
> > > >> >>>>>
> > > >> >>>>> I wrote 'effectively deprecated' and here is the text in
> 6020bis.
> > > >> >>>>>
> > > >> >>>>> Since the use of anyxml limits the manipulation of the
> content, it is
> > > >> >>>>> RECOMMENDED that the "anyxml" statement not be used to define
> > > >> >>>>> configuration data.
> > > >> >>>>>
> > > >> >>>>> It should be noted that in YANG version 1, anyxml was the only
> > > >> >>>>> statement that could model an unknown hierarchy of data.  In
> many
> > > >> >>>>> cases this unknown hierarchy of data is actually modelled in
> YANG,
> > > >> >>>>> but the exact YANG model is not known at design time.  In
> these
> > > >> >>>>> situations, it is RECOMMENDED to use anydata (Section 7.10)
> instead
> > > >> >>>>> of anyxml.
> > > >> >>>>
> > > >> >>>> The first paragraph is for config data and the second for data
> that can modelled with YANG. If we want to deprecate "anyxml" for use with
> data that are neither of these, 6020bis should say so. I'd be fine with
> that.
> > > >> >>>>
> > > >> >>>
> > > >> >>> The guidelines will say that any usage of anyxml in the IETF
> will be
> > > >> >>> carefully checked by YANG doctors. See Y34 for all details.
> > > >> >>>
> > > >> >>>>> There is more text in Y34-05 that will go into the
> guidelines. I call
> > > >> >>>>> this "effectively deprecated", you can call it differently if
> you
> > > >> >>>>> want. Frankly, this thread is about how to encode anyxml in
> JSON not
> > > >> >>>>> about the YANG 1.1 issue Y34. You may not like Y34-05 but
> this is what
> > > >> >>>>> we ended up with.
> > > >> >>>>
> > > >> >>>> I am strongly against encoding serialized XML as JSON strings.
> It is IMO totally useless and the spec would have to deal with awkward
> complications because it is not true that arbitrary XML-encoded anyxml
> content can be used without changes in JSON encoding.
> > > >> >>>>
> > > >> >>>> Perhaps the best solution would be to state that JSON encoding
> is incompatible with data models that use "anyxml".
> > > >> >>>>
> > > >> >>>
> > > >> >>> Perhaps we can only settle this by doing an opinion poll since
> > > >> >>> debating this forever is not useful. So what are the options?
> > > >> >>>
> > > >> >>> a) The JSON encoding does not define anyxml is not encoded at
> all. If
> > > >> >>>  you use anyxml in a data model, the content will not appear in
> JSON
> > > >> >>>  encodings.
> > > >> >>>
> > > >> >>> b) The JSON encoding defines that anyxml data is encoded as a
> string
> > > >> >>>  containing XML.
> > > >> >>>
> > > >> >>> c) The JSON encoding defines that anyxml is encoded in whatever
> way
> > > >> >>>  the implementor finds useful.
> > > >> >>>
> > > >> >>> d) If the anyxml content is actually valid anydata content,
> encode it
> > > >> >>>  using anydata rules. Content that is not valid anydata content
> is
> > > >> >>>  not encoded at all.
> > > >> >>>
> > > >> >>> Any options missing?
> > > >> >>
> > > >> >> Yes, the one that's in yang-json-06:
> > > >> >>
> > > >> >> e) An anyxml instance is encoded as a JSON name/value pair which
> MUST
> > > >> >>   satisfy I-JSON constraints.  Otherwise it is unrestricted,
> i.e., the
> > > >> >>   value can be an object, array, number, string or one of the
> literals
> > > >> >>   "true", "false" and "null".
> > > >> >>
> > > >> >> My preference is e), and then a).
> > > >> >>
> > > >> >
> > > >> > Is e) not the same as c)? I assume that the JSON encoding will
> always
> > > >> > be valid JSON (or I-JSON to be precise). So it seems the only
> refinement
> > > >> > of e) is the toplevel.
> > > >>
> > > >> c) sounds like the same data can be encoded in different ways
> depending on what the implementor finds useful, e.g. encode all numbers as
> strings.
> > > >>
> > > >
> > > > But e) says the same, I fail to see the difference here.
> > >
> > > The way how c) is formulated is rather suggestive: beware, this is
> > > non-interoperable by its very nature. I think it is as interoperable as
> > > anyxml in XML encoding. Without knowing the context, translating anyxml
> > > chunks from XML to JSON, and vice versa, is quite problematic even for
> > > b).
> >
> > e) is no better than c) in terms of interoperability
> >
> >
> >
> > (e) does not even make sense. "Otherwise" is never paired with "MUST".
>
> That "otherwise it is unrestricted" was intended to mean "there are no
> restrictions other than this", so it looks like a gap in my understanding
> of English semantics.
>
> >
> > Interoperability expectations should be very low for anyxml.
> > We already established that over 1000 emails ago.
> >
>
> I agree, but on the other hand I think it can be useful in specific
> situations where both the client and server are prepared to understand and
> handle it properly. We cannot expect generic tools to do anything
> reasonable with it - it is only good to make sure they won't break.
>


This is really vague.
The rules should not change for anyxml, so (c) is the best choice.
If somebody actually reported 2 real-world tools that are currently broken
because of anyxml misinterpretation, then this issue would be relevant.
Got any examples to share?  If not, then let's pick (c) and move on.

YANG 1.1 is going to take 2 more years if we slowly revisit every issue.
I thought the whole point of the issue tracker was to prevent this sort
of thing.   The rule should be "what new details have emerged that
should cause us to change the previous decision?"



> Lada
>

Andy


>
> >
> > /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
>
> --
> Ladislav Lhotka, CZ.NIC Labs
> PGP Key ID: E74E8C0C
>
>
>
>
>

--001a11c37e1a31c4db0524832d24
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Sat, Nov 14, 2015 at 1:27 AM, Ladislav Lhotka <span dir=3D"ltr">&lt;=
<a href=3D"mailto:lhotka@nic.cz" target=3D"_blank">lhotka@nic.cz</a>&gt;</s=
pan> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex=
;border-left:1px #ccc solid;padding-left:1ex"><br>
&gt; On 13 Nov 2015, at 19:19, Andy Bierman &lt;<a href=3D"mailto:andy@yuma=
works.com">andy@yumaworks.com</a>&gt; wrote:<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; On Wed, Nov 11, 2015 at 11:51 PM, Juergen Schoenwaelder &lt;<a href=3D=
"mailto:j.schoenwaelder@jacobs-university.de">j.schoenwaelder@jacobs-univer=
sity.de</a>&gt; wrote:<br>
&gt; On Thu, Nov 12, 2015 at 08:10:51AM +0100, Ladislav Lhotka wrote:<br>
&gt; &gt; Juergen Schoenwaelder &lt;<a href=3D"mailto:j.schoenwaelder@jacob=
s-university.de">j.schoenwaelder@jacobs-university.de</a>&gt; writes:<br>
&gt; &gt;<br>
&gt; &gt; &gt; On Wed, Nov 11, 2015 at 03:14:13PM +0100, Ladislav Lhotka wr=
ote:<br>
&gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt;&gt; &gt; On 11 Nov 2015, at 14:59, Juergen Schoenwaelder &lt=
;<a href=3D"mailto:j.schoenwaelder@jacobs-university.de">j.schoenwaelder@ja=
cobs-university.de</a>&gt; wrote:<br>
&gt; &gt; &gt;&gt; &gt;<br>
&gt; &gt; &gt;&gt; &gt; On Wed, Nov 11, 2015 at 02:53:49PM +0100, Ladislav =
Lhotka wrote:<br>
&gt; &gt; &gt;&gt; &gt;&gt;<br>
&gt; &gt; &gt;&gt; &gt;&gt;&gt; On 11 Nov 2015, at 14:44, Juergen Schoenwae=
lder &lt;<a href=3D"mailto:j.schoenwaelder@jacobs-university.de">j.schoenwa=
elder@jacobs-university.de</a>&gt; wrote:<br>
&gt; &gt; &gt;&gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt; &gt;&gt;&gt; On Wed, Nov 11, 2015 at 02:24:15PM +0100, L=
adislav Lhotka wrote:<br>
&gt; &gt; &gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt; &gt;&gt;&gt;&gt;&gt; I wrote &#39;effectively deprecated=
&#39; and here is the text in 6020bis.<br>
&gt; &gt; &gt;&gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt; &gt;&gt;&gt;&gt;&gt; Since the use of anyxml limits the =
manipulation of the content, it is<br>
&gt; &gt; &gt;&gt; &gt;&gt;&gt;&gt;&gt; RECOMMENDED that the &quot;anyxml&q=
uot; statement not be used to define<br>
&gt; &gt; &gt;&gt; &gt;&gt;&gt;&gt;&gt; configuration data.<br>
&gt; &gt; &gt;&gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt; &gt;&gt;&gt;&gt;&gt; It should be noted that in YANG ver=
sion 1, anyxml was the only<br>
&gt; &gt; &gt;&gt; &gt;&gt;&gt;&gt;&gt; statement that could model an unkno=
wn hierarchy of data.=C2=A0 In many<br>
&gt; &gt; &gt;&gt; &gt;&gt;&gt;&gt;&gt; cases this unknown hierarchy of dat=
a is actually modelled in YANG,<br>
&gt; &gt; &gt;&gt; &gt;&gt;&gt;&gt;&gt; but the exact YANG model is not kno=
wn at design time.=C2=A0 In these<br>
&gt; &gt; &gt;&gt; &gt;&gt;&gt;&gt;&gt; situations, it is RECOMMENDED to us=
e anydata (Section 7.10) instead<br>
&gt; &gt; &gt;&gt; &gt;&gt;&gt;&gt;&gt; of anyxml.<br>
&gt; &gt; &gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt; &gt;&gt;&gt;&gt; The first paragraph is for config data =
and the second for data that can modelled with YANG. If we want to deprecat=
e &quot;anyxml&quot; for use with data that are neither of these, 6020bis s=
hould say so. I&#39;d be fine with that.<br>
&gt; &gt; &gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt; &gt;&gt;&gt; The guidelines will say that any usage of a=
nyxml in the IETF will be<br>
&gt; &gt; &gt;&gt; &gt;&gt;&gt; carefully checked by YANG doctors. See Y34 =
for all details.<br>
&gt; &gt; &gt;&gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt; &gt;&gt;&gt;&gt;&gt; There is more text in Y34-05 that w=
ill go into the guidelines. I call<br>
&gt; &gt; &gt;&gt; &gt;&gt;&gt;&gt;&gt; this &quot;effectively deprecated&q=
uot;, you can call it differently if you<br>
&gt; &gt; &gt;&gt; &gt;&gt;&gt;&gt;&gt; want. Frankly, this thread is about=
 how to encode anyxml in JSON not<br>
&gt; &gt; &gt;&gt; &gt;&gt;&gt;&gt;&gt; about the YANG 1.1 issue Y34. You m=
ay not like Y34-05 but this is what<br>
&gt; &gt; &gt;&gt; &gt;&gt;&gt;&gt;&gt; we ended up with.<br>
&gt; &gt; &gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt; &gt;&gt;&gt;&gt; I am strongly against encoding serializ=
ed XML as JSON strings. It is IMO totally useless and the spec would have t=
o deal with awkward complications because it is not true that arbitrary XML=
-encoded anyxml content can be used without changes in JSON encoding.<br>
&gt; &gt; &gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt; &gt;&gt;&gt;&gt; Perhaps the best solution would be to s=
tate that JSON encoding is incompatible with data models that use &quot;any=
xml&quot;.<br>
&gt; &gt; &gt;&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt; &gt;&gt;&gt; Perhaps we can only settle this by doing an=
 opinion poll since<br>
&gt; &gt; &gt;&gt; &gt;&gt;&gt; debating this forever is not useful. So wha=
t are the options?<br>
&gt; &gt; &gt;&gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt; &gt;&gt;&gt; a) The JSON encoding does not define anyxml=
 is not encoded at all. If<br>
&gt; &gt; &gt;&gt; &gt;&gt;&gt;=C2=A0 you use anyxml in a data model, the c=
ontent will not appear in JSON<br>
&gt; &gt; &gt;&gt; &gt;&gt;&gt;=C2=A0 encodings.<br>
&gt; &gt; &gt;&gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt; &gt;&gt;&gt; b) The JSON encoding defines that anyxml da=
ta is encoded as a string<br>
&gt; &gt; &gt;&gt; &gt;&gt;&gt;=C2=A0 containing XML.<br>
&gt; &gt; &gt;&gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt; &gt;&gt;&gt; c) The JSON encoding defines that anyxml is=
 encoded in whatever way<br>
&gt; &gt; &gt;&gt; &gt;&gt;&gt;=C2=A0 the implementor finds useful.<br>
&gt; &gt; &gt;&gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt; &gt;&gt;&gt; d) If the anyxml content is actually valid =
anydata content, encode it<br>
&gt; &gt; &gt;&gt; &gt;&gt;&gt;=C2=A0 using anydata rules. Content that is =
not valid anydata content is<br>
&gt; &gt; &gt;&gt; &gt;&gt;&gt;=C2=A0 not encoded at all.<br>
&gt; &gt; &gt;&gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt;&gt; &gt;&gt;&gt; Any options missing?<br>
&gt; &gt; &gt;&gt; &gt;&gt;<br>
&gt; &gt; &gt;&gt; &gt;&gt; Yes, the one that&#39;s in yang-json-06:<br>
&gt; &gt; &gt;&gt; &gt;&gt;<br>
&gt; &gt; &gt;&gt; &gt;&gt; e) An anyxml instance is encoded as a JSON name=
/value pair which MUST<br>
&gt; &gt; &gt;&gt; &gt;&gt;=C2=A0 =C2=A0satisfy I-JSON constraints.=C2=A0 O=
therwise it is unrestricted, i.e., the<br>
&gt; &gt; &gt;&gt; &gt;&gt;=C2=A0 =C2=A0value can be an object, array, numb=
er, string or one of the literals<br>
&gt; &gt; &gt;&gt; &gt;&gt;=C2=A0 =C2=A0&quot;true&quot;, &quot;false&quot;=
 and &quot;null&quot;.<br>
&gt; &gt; &gt;&gt; &gt;&gt;<br>
&gt; &gt; &gt;&gt; &gt;&gt; My preference is e), and then a).<br>
&gt; &gt; &gt;&gt; &gt;&gt;<br>
&gt; &gt; &gt;&gt; &gt;<br>
&gt; &gt; &gt;&gt; &gt; Is e) not the same as c)? I assume that the JSON en=
coding will always<br>
&gt; &gt; &gt;&gt; &gt; be valid JSON (or I-JSON to be precise). So it seem=
s the only refinement<br>
&gt; &gt; &gt;&gt; &gt; of e) is the toplevel.<br>
&gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt;&gt; c) sounds like the same data can be encoded in different=
 ways depending on what the implementor finds useful, e.g. encode all numbe=
rs as strings.<br>
&gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; But e) says the same, I fail to see the difference here.<br>
&gt; &gt;<br>
&gt; &gt; The way how c) is formulated is rather suggestive: beware, this i=
s<br>
&gt; &gt; non-interoperable by its very nature. I think it is as interopera=
ble as<br>
&gt; &gt; anyxml in XML encoding. Without knowing the context, translating =
anyxml<br>
&gt; &gt; chunks from XML to JSON, and vice versa, is quite problematic eve=
n for<br>
&gt; &gt; b).<br>
&gt;<br>
&gt; e) is no better than c) in terms of interoperability<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; (e) does not even make sense. &quot;Otherwise&quot; is never paired wi=
th &quot;MUST&quot;.<br>
<br>
That &quot;otherwise it is unrestricted&quot; was intended to mean &quot;th=
ere are no restrictions other than this&quot;, so it looks like a gap in my=
 understanding of English semantics.<br>
<br>
&gt;<br>
&gt; Interoperability expectations should be very low for anyxml.<br>
&gt; We already established that over 1000 emails ago.<br>
&gt;<br>
<br>
I agree, but on the other hand I think it can be useful in specific situati=
ons where both the client and server are prepared to understand and handle =
it properly. We cannot expect generic tools to do anything reasonable with =
it - it is only good to make sure they won&#39;t break.<br></blockquote><di=
v><br></div><div><br></div><div>This is really vague.</div><div>The rules s=
hould not change for anyxml, so (c) is the best choice.</div><div>If somebo=
dy actually reported 2 real-world tools that are currently broken</div><div=
>because of anyxml misinterpretation, then this issue would be relevant.</d=
iv><div>Got any examples to share?=C2=A0 If not, then let&#39;s pick (c) an=
d move on.</div><div><br></div><div>YANG 1.1 is going to take 2 more years =
if we slowly revisit every issue.</div><div>I thought the whole point of th=
e issue tracker was to prevent this sort</div><div>of thing. =C2=A0 The rul=
e should be &quot;what new details have emerged that</div><div>should cause=
 us to change the previous decision?&quot;</div><div><br></div><div><br></d=
iv><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left=
:1px #ccc solid;padding-left:1ex">
<br>
Lada<br></blockquote><div><br></div><div>Andy</div><div>=C2=A0</div><blockq=
uote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc =
solid;padding-left:1ex">
<br>
&gt;<br>
&gt; /js<br>
&gt;<br>
&gt; Andy<br>
&gt;<br>
&gt;<br>
&gt; --<br>
&gt; Juergen Schoenwaelder=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Jacobs U=
niversity Bremen gGmbH<br>
&gt; Phone: +49 421 200 3587=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Campus Ring 1=
 | 28759 Bremen | Germany<br>
&gt; Fax:=C2=A0 =C2=A0+49 421 200 3103=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&lt=
;<a href=3D"http://www.jacobs-university.de/" rel=3D"noreferrer" target=3D"=
_blank">http://www.jacobs-university.de/</a>&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" rel=3D"norefe=
rrer" target=3D"_blank">https://www.ietf.org/mailman/listinfo/netmod</a><br=
>
<br>
--<br>
Ladislav Lhotka, CZ.NIC Labs<br>
PGP Key ID: E74E8C0C<br>
<br>
<br>
<br>
<br>
</blockquote></div><br></div></div>

--001a11c37e1a31c4db0524832d24--


From nobody Mon Nov 16 03:56: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 C31681A872D for <netmod@ietfa.amsl.com>; Mon, 16 Nov 2015 03:56:02 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.735
X-Spam-Level: 
X-Spam-Status: No, score=-1.735 tagged_above=-999 required=5 tests=[BAYES_50=0.8, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-0.585] 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 MvtWxaOYufNa for <netmod@ietfa.amsl.com>; Mon, 16 Nov 2015 03:56:00 -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 6C13F1A8773 for <netmod@ietf.org>; Mon, 16 Nov 2015 03:55:57 -0800 (PST)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id BBFB41421; Mon, 16 Nov 2015 12:55: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 R8qoiNINEFap; Mon, 16 Nov 2015 12:55: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; Mon, 16 Nov 2015 12:55:55 +0100 (CET)
Received: from localhost (demetrius2.jacobs-university.de [212.201.44.47]) by hermes.jacobs-university.de (Postfix) with ESMTP id E888020054; Mon, 16 Nov 2015 12:55: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 5IdRelKPj411; Mon, 16 Nov 2015 12:55:54 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id B314F2003B; Mon, 16 Nov 2015 12:55:53 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id D707E38DEBE8; Mon, 16 Nov 2015 12:55:52 +0100 (CET)
Date: Mon, 16 Nov 2015 12:55:52 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Andy Bierman <andy@yumaworks.com>
Message-ID: <20151116115551.GA6157@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: <20151111134412.GA22783@elstar.local> <2B6DC0CD-1214-4503-95E4-DDF1E5E56A57@nic.cz> <20151111135919.GA22885@elstar.local> <A1BF519D-74B4-48FC-B003-83198DD1BD2D@nic.cz> <20151111153231.GB23082@elstar.local> <m2mvujofpg.fsf@birdie.labs.nic.cz> <20151112075111.GA25623@elstar.local> <CABCOCHQzYbyqB_t=JVR3X_Wqs_vf0wCUHWk-AVP6iGuKCsBXKw@mail.gmail.com> <82ED52D2-5F51-4C50-A1CC-CCB9090D9AF0@nic.cz> <CABCOCHTSvjoiOfkOGre_Vn3EmFPDgkCDeGg6p8qHmxvt0qBOLQ@mail.gmail.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <CABCOCHTSvjoiOfkOGre_Vn3EmFPDgkCDeGg6p8qHmxvt0qBOLQ@mail.gmail.com>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/avMCbF-1z8GsnutQ31lWjL5HJKg>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] JSON encoding of anyxml
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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 16 Nov 2015 11:56:02 -0000

On Sat, Nov 14, 2015 at 09:05:00AM -0800, Andy Bierman wrote:
> 
> YANG 1.1 is going to take 2 more years if we slowly revisit every issue.
> I thought the whole point of the issue tracker was to prevent this sort
> of thing.   The rule should be "what new details have emerged that
> should cause us to change the previous decision?"
>

Andy, please note that this is a discussion primarily around the JSON
document and not around the YANG 1.1 document.

/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 Nov 16 04:09:21 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 EE2691A88D3 for <netmod@ietfa.amsl.com>; Mon, 16 Nov 2015 04:09:19 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.936
X-Spam-Level: 
X-Spam-Status: No, score=-5.936 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, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-0.585] 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 P78JWZKOLrAR for <netmod@ietfa.amsl.com>; Mon, 16 Nov 2015 04:09:17 -0800 (PST)
Received: from mail.nic.cz (mail.nic.cz [217.31.204.67]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E8D7E1A88D1 for <netmod@ietf.org>; Mon, 16 Nov 2015 04:09:16 -0800 (PST)
Received: from [IPv6:2001:718:1a02:1:c8fb:9f04:6ddb:fdbb] (unknown [IPv6:2001:718:1a02:1:c8fb:9f04:6ddb:fdbb]) by mail.nic.cz (Postfix) with ESMTPSA id 6BDB3181425; Mon, 16 Nov 2015 13:09:15 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nic.cz; s=default; t=1447675755; bh=bZDAkEnwlePKkUnZaL2YMOM1J6IwO5BBMxGoyV7BcB8=; h=From:Date:To; b=qdElcbvaJFK2U+UaMeIbgWwFdXOQQdHQNNFQo48Kcgy6vPPfhTea8vWLEIzcfZcSx LMtFZPNq+5oLCFa5xkTeTL1cNAZ83j3BhM3BSosVBBaAJhBq+Elm5wcpZXU4oUQ7nM 1icL0PxnruiESSu7tKYtCXuTGEDZ3R6rapjrhvHU=
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
From: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <20151116115551.GA6157@elstar.local>
Date: Mon, 16 Nov 2015 13:09:20 +0100
Content-Transfer-Encoding: quoted-printable
Message-Id: <E26CA332-0920-402D-BB23-7141EA9D858E@nic.cz>
References: <20151111134412.GA22783@elstar.local> <2B6DC0CD-1214-4503-95E4-DDF1E5E56A57@nic.cz> <20151111135919.GA22885@elstar.local> <A1BF519D-74B4-48FC-B003-83198DD1BD2D@nic.cz> <20151111153231.GB23082@elstar.local> <m2mvujofpg.fsf@birdie.labs.nic.cz> <20151112075111.GA25623@elstar.local> <CABCOCHQzYbyqB_t=JVR3X_Wqs_vf0wCUHWk-AVP6iGuKCsBXKw@mail.gmail.com> <82ED52D2-5F51-4C50-A1CC-CCB9090D9AF0@nic.cz> <CABCOCHTSvjoiOfkOGre_Vn3EmFPDgkCDeGg6p8qHmxvt0qBOLQ@mail.gmail.com> <20151116115551.GA6157@elstar.local>
To: =?utf-8?Q?J=C3=BCrgen_Sch=C3=B6nw=C3=A4lder?= <j.schoenwaelder@jacobs-university.de>
X-Mailer: Apple Mail (2.3096.5)
X-Virus-Scanned: clamav-milter 0.98.7 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/NXU_bWgMjFjJevNRO0mDx50cW2U>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] JSON encoding of anyxml
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 16 Nov 2015 12:09:20 -0000

> On 16 Nov 2015, at 12:55, Juergen Schoenwaelder =
<j.schoenwaelder@jacobs-university.de> wrote:
>=20
> On Sat, Nov 14, 2015 at 09:05:00AM -0800, Andy Bierman wrote:
>>=20
>> YANG 1.1 is going to take 2 more years if we slowly revisit every =
issue.
>> I thought the whole point of the issue tracker was to prevent this =
sort
>> of thing.   The rule should be "what new details have emerged that
>> should cause us to change the previous decision?"
>>=20
>=20
> Andy, please note that this is a discussion primarily around the JSON
> document and not around the YANG 1.1 document.

Except that it might be useful to clarify in 6020bis whether "anyxml" =
really means

1. specifically "any XML", or

2. schema-less data in any supported encoding.

If it is #1, then arguably c/e are not acceptable options for the JSON =
encoding. I prefer #2.

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

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





From nobody Mon Nov 16 05:40: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 E88491ACEDB for <netmod@ietfa.amsl.com>; Mon, 16 Nov 2015 05:40:36 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.435
X-Spam-Level: 
X-Spam-Status: No, score=-4.435 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-0.585] 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 wqyUAqXJ8tAd for <netmod@ietfa.amsl.com>; Mon, 16 Nov 2015 05:40:32 -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 DDB2F1AD060 for <netmod@ietf.org>; Mon, 16 Nov 2015 05:40: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 5CBCC902; Mon, 16 Nov 2015 14:40:27 +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 B93TijCEdXW4; Mon, 16 Nov 2015 14:40: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; Mon, 16 Nov 2015 14:40:26 +0100 (CET)
Received: from localhost (demetrius2.jacobs-university.de [212.201.44.47]) by hermes.jacobs-university.de (Postfix) with ESMTP id 465B92004E; Mon, 16 Nov 2015 14:40:26 +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 sZMpoJys8Miz; Mon, 16 Nov 2015 14:40: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 1315A2003B; Mon, 16 Nov 2015 14:40:25 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id 0B41138DED87; Mon, 16 Nov 2015 14:40:23 +0100 (CET)
Date: Mon, 16 Nov 2015 14:40:23 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Ladislav Lhotka <lhotka@nic.cz>
Message-ID: <20151116134021.GA6509@elstar.local>
Mail-Followup-To: Ladislav Lhotka <lhotka@nic.cz>, Andy Bierman <andy@yumaworks.com>, Martin =?iso-8859-1?Q?Bj=F6rklund?= <mbj@tail-f.com>, "netmod@ietf.org" <netmod@ietf.org>
References: <20151111135919.GA22885@elstar.local> <A1BF519D-74B4-48FC-B003-83198DD1BD2D@nic.cz> <20151111153231.GB23082@elstar.local> <m2mvujofpg.fsf@birdie.labs.nic.cz> <20151112075111.GA25623@elstar.local> <CABCOCHQzYbyqB_t=JVR3X_Wqs_vf0wCUHWk-AVP6iGuKCsBXKw@mail.gmail.com> <82ED52D2-5F51-4C50-A1CC-CCB9090D9AF0@nic.cz> <CABCOCHTSvjoiOfkOGre_Vn3EmFPDgkCDeGg6p8qHmxvt0qBOLQ@mail.gmail.com> <20151116115551.GA6157@elstar.local> <E26CA332-0920-402D-BB23-7141EA9D858E@nic.cz>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <E26CA332-0920-402D-BB23-7141EA9D858E@nic.cz>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/OjdatJZG_HqFxmG2VSEhL-Poo-8>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] JSON encoding of anyxml
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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 16 Nov 2015 13:40:37 -0000

On Mon, Nov 16, 2015 at 01:09:20PM +0100, Ladislav Lhotka wrote:
> 
> > On 16 Nov 2015, at 12:55, Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote:
> > 
> > On Sat, Nov 14, 2015 at 09:05:00AM -0800, Andy Bierman wrote:
> >> 
> >> YANG 1.1 is going to take 2 more years if we slowly revisit every issue.
> >> I thought the whole point of the issue tracker was to prevent this sort
> >> of thing.   The rule should be "what new details have emerged that
> >> should cause us to change the previous decision?"
> >> 
> > 
> > Andy, please note that this is a discussion primarily around the JSON
> > document and not around the YANG 1.1 document.
> 
> Except that it might be useful to clarify in 6020bis whether "anyxml" really means
> 
> 1. specifically "any XML", or
> 
> 2. schema-less data in any supported encoding.
> 
> If it is #1, then arguably c/e are not acceptable options for the JSON encoding. I prefer #2.
>

I believe the outcome of the discussion is that anyxml means any XML.
There also was clear agreement to not change the definition of anyxml.

/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 Nov 16 06:04:34 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 EEB911B2AAB for <netmod@ietfa.amsl.com>; Mon, 16 Nov 2015 06:04:32 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.936
X-Spam-Level: 
X-Spam-Status: No, score=-5.936 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, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-0.585] 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 jD8Ms_4BqABB for <netmod@ietfa.amsl.com>; Mon, 16 Nov 2015 06:04:25 -0800 (PST)
Received: from mail.nic.cz (mail.nic.cz [217.31.204.67]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7C6441B2B02 for <netmod@ietf.org>; Mon, 16 Nov 2015 06:04:25 -0800 (PST)
Received: from [IPv6:2001:718:1a02:1:c8fb:9f04:6ddb:fdbb] (unknown [IPv6:2001:718:1a02:1:c8fb:9f04:6ddb:fdbb]) by mail.nic.cz (Postfix) with ESMTPSA id 0D5161813D8; Mon, 16 Nov 2015 15:04:24 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nic.cz; s=default; t=1447682664; bh=UbswX6j8VKBmYrMgP4iou/AZJ2RA3LU4v5w8ynt6fCI=; h=From:Date:To; b=qGM0v9V7AHxghSJZ/6jkbFa9y2iBWeMkfXNlIVFrKzswReGjjH9Nc99yVzjNgB3na sShf23JlBQPXyheZ7LRDjYvMM/l8RpkdVPBYZSS4QkOrSVoFsMtXcjtFgYU1CrhCAW phx2nmXg04NhV8HryyvSFlZphZ+No6MSYmFNcnX8=
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
From: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <20151116134021.GA6509@elstar.local>
Date: Mon, 16 Nov 2015 15:04:31 +0100
Content-Transfer-Encoding: quoted-printable
Message-Id: <BE757AAC-E113-4C8F-87D3-E08DC58B7ABF@nic.cz>
References: <20151111135919.GA22885@elstar.local> <A1BF519D-74B4-48FC-B003-83198DD1BD2D@nic.cz> <20151111153231.GB23082@elstar.local> <m2mvujofpg.fsf@birdie.labs.nic.cz> <20151112075111.GA25623@elstar.local> <CABCOCHQzYbyqB_t=JVR3X_Wqs_vf0wCUHWk-AVP6iGuKCsBXKw@mail.gmail.com> <82ED52D2-5F51-4C50-A1CC-CCB9090D9AF0@nic.cz> <CABCOCHTSvjoiOfkOGre_Vn3EmFPDgkCDeGg6p8qHmxvt0qBOLQ@mail.gmail.com> <20151116115551.GA6157@elstar.local> <E26CA332-0920-402D-BB23-7141EA9D858E@nic.cz> <20151116134021.GA6509@elstar.local>
To: =?utf-8?Q?J=C3=BCrgen_Sch=C3=B6nw=C3=A4lder?= <j.schoenwaelder@jacobs-university.de>
X-Mailer: Apple Mail (2.3096.5)
X-Virus-Scanned: clamav-milter 0.98.7 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/n2fpL-Uh3iAdY__lxmrUL9BDkv8>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] JSON encoding of anyxml
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 16 Nov 2015 14:04:33 -0000

> On 16 Nov 2015, at 14:40, Juergen Schoenwaelder =
<j.schoenwaelder@jacobs-university.de> wrote:
>=20
> On Mon, Nov 16, 2015 at 01:09:20PM +0100, Ladislav Lhotka wrote:
>>=20
>>> On 16 Nov 2015, at 12:55, Juergen Schoenwaelder =
<j.schoenwaelder@jacobs-university.de> wrote:
>>>=20
>>> On Sat, Nov 14, 2015 at 09:05:00AM -0800, Andy Bierman wrote:
>>>>=20
>>>> YANG 1.1 is going to take 2 more years if we slowly revisit every =
issue.
>>>> I thought the whole point of the issue tracker was to prevent this =
sort
>>>> of thing.   The rule should be "what new details have emerged that
>>>> should cause us to change the previous decision?"
>>>>=20
>>>=20
>>> Andy, please note that this is a discussion primarily around the =
JSON
>>> document and not around the YANG 1.1 document.
>>=20
>> Except that it might be useful to clarify in 6020bis whether "anyxml" =
really means
>>=20
>> 1. specifically "any XML", or
>>=20
>> 2. schema-less data in any supported encoding.
>>=20
>> If it is #1, then arguably c/e are not acceptable options for the =
JSON encoding. I prefer #2.
>>=20
>=20
> I believe the outcome of the discussion is that anyxml means any XML.

I don't think there has been any clear consensus so far, I understand =
you and Martin support b) while Andy and I voted for c/e).

> There also was clear agreement to not change the definition of anyxml.

OK, using the same logic, sections that talk about NETCONF and =
edit-config (such as 7.9.6) don't apply to other protocols and their =
operations. If we can agree on this as a general principle, i.e. not to =
do any extrapolations of the 6020bis text, I am prepared to accept =
alternative b) for JSON ancoding of anyxml, but I'd like to ask those =
who support it to propose a concrete wording.

Thanks, 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/>

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





From nobody Mon Nov 16 06:32: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 AB1DF1B2DE3 for <netmod@ietfa.amsl.com>; Mon, 16 Nov 2015 06:32:41 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.435
X-Spam-Level: 
X-Spam-Status: No, score=-4.435 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-0.585] 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 p9F2Q4ohSCRD for <netmod@ietfa.amsl.com>; Mon, 16 Nov 2015 06:32:40 -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 2DD7F1B2E4A for <netmod@ietf.org>; Mon, 16 Nov 2015 06:32:40 -0800 (PST)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id F3EE98F1; Mon, 16 Nov 2015 15:32: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 6jm60qthnC94; Mon, 16 Nov 2015 15:32:38 +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 Nov 2015 15:32:38 +0100 (CET)
Received: from localhost (demetrius2.jacobs-university.de [212.201.44.47]) by hermes.jacobs-university.de (Postfix) with ESMTP id 4189420054; Mon, 16 Nov 2015 15:32:38 +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 07R2YuNlfMjJ; Mon, 16 Nov 2015 15:32: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 B731F2003B; Mon, 16 Nov 2015 15:32:35 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id 7FF6938DF199; Mon, 16 Nov 2015 15:32:34 +0100 (CET)
Date: Mon, 16 Nov 2015 15:32:33 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Ladislav Lhotka <lhotka@nic.cz>
Message-ID: <20151116143233.GA6846@elstar.local>
Mail-Followup-To: Ladislav Lhotka <lhotka@nic.cz>, Andy Bierman <andy@yumaworks.com>, Martin =?iso-8859-1?Q?Bj=F6rklund?= <mbj@tail-f.com>, "netmod@ietf.org" <netmod@ietf.org>
References: <20151111153231.GB23082@elstar.local> <m2mvujofpg.fsf@birdie.labs.nic.cz> <20151112075111.GA25623@elstar.local> <CABCOCHQzYbyqB_t=JVR3X_Wqs_vf0wCUHWk-AVP6iGuKCsBXKw@mail.gmail.com> <82ED52D2-5F51-4C50-A1CC-CCB9090D9AF0@nic.cz> <CABCOCHTSvjoiOfkOGre_Vn3EmFPDgkCDeGg6p8qHmxvt0qBOLQ@mail.gmail.com> <20151116115551.GA6157@elstar.local> <E26CA332-0920-402D-BB23-7141EA9D858E@nic.cz> <20151116134021.GA6509@elstar.local> <BE757AAC-E113-4C8F-87D3-E08DC58B7ABF@nic.cz>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <BE757AAC-E113-4C8F-87D3-E08DC58B7ABF@nic.cz>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/7IGhu_Kb5MgV8YTDFQazb4z6ICM>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] JSON encoding of anyxml
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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 16 Nov 2015 14:32:41 -0000

On Mon, Nov 16, 2015 at 03:04:31PM +0100, Ladislav Lhotka wrote:
> 
> >>> Andy, please note that this is a discussion primarily around the JSON
> >>> document and not around the YANG 1.1 document.
> >> 
> >> Except that it might be useful to clarify in 6020bis whether "anyxml" really means
> >> 
> >> 1. specifically "any XML", or
> >> 
> >> 2. schema-less data in any supported encoding.
> >> 
> >> If it is #1, then arguably c/e are not acceptable options for the JSON encoding. I prefer #2.
> >> 
> > 
> > I believe the outcome of the discussion is that anyxml means any XML.
> 
> I don't think there has been any clear consensus so far, I understand you and Martin support b) while Andy and I voted for c/e).
> 
> > There also was clear agreement to not change the definition of anyxml.
> 
> OK, using the same logic, sections that talk about NETCONF and edit-config (such as 7.9.6) don't apply to other protocols and their operations. If we can agree on this as a general principle, i.e. not to do any extrapolations of the 6020bis text, I am prepared to accept alternative b) for JSON ancoding of anyxml, but I'd like to ask those who support it to propose a concrete wording.
>

To be clear: I made a statement about anyxml. Any generalization you
are trying to derive from my statement is not covered by my statement.

/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 Nov 16 08:50: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 17A811A6F83 for <netmod@ietfa.amsl.com>; Mon, 16 Nov 2015 08:50:50 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.978
X-Spam-Level: 
X-Spam-Status: No, score=-0.978 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, MIME_8BIT_HEADER=0.3, 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 sN-bugFU1C2e for <netmod@ietfa.amsl.com>; Mon, 16 Nov 2015 08:50:48 -0800 (PST)
Received: from mail-lf0-x233.google.com (mail-lf0-x233.google.com [IPv6:2a00:1450:4010:c07::233]) (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 20CB41A6F80 for <netmod@ietf.org>; Mon, 16 Nov 2015 08:50:48 -0800 (PST)
Received: by lfs39 with SMTP id 39so90479164lfs.3 for <netmod@ietf.org>; Mon, 16 Nov 2015 08:50:46 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks_com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=h7NseqCLPIechFYNGbtC2reiQfAabFu8aGj2RpGc9p8=; b=tHNDbIY1I5yEJ1Me/MHtKZD4+CUjUwInMIu0YGdyUTGzO9sKrZQZLDtOnv/3Io/ljE CLPP9fhDUpMmgknTtwJ2nijT2vBZI7Qwx/5uKPDEYohQad4XvTuXPf8dAfKskQk2EieP LK2TvY6C8ylRL51xry6LcMWi5IHgw0BOtsRKbfqPvlXc8Hpl3bl9nUv0/yG6XJWyqtcu pUqeGOEBoekvT2+1fb6KlKPaFG3MA2Nvhh+RwYptf94DCoM0Bst5Z4rs5eXT/+OteEJa yOqv3+5pjpLcOQHTTOYPUODcS2SLVSopEJCvrciIY8RS7mp8SnYb2SVXadJbREF2NLzS 9Uhw==
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=h7NseqCLPIechFYNGbtC2reiQfAabFu8aGj2RpGc9p8=; b=IiGmKl1yvDqHf41Cgpcz9EALi64svy81Hu0YLMx1jFsxHs932Pup0AaL4DFRAJBE0f iEr9qXVX3j65hxIBf5/KutNmiBZAOBEwby/bkDpRZqDMN83Y2ITpIGwcjb9wA/NbTtZ9 +GeX94q3aJRGqogf9Znhd9xHrypfPI++F6c3L+rFNjO4Yx1bVc4InLYcpm5B+yxogduJ DGK/2kV3lhxJLI8Uc2/l/8SO4SvAVs1Tu4K7BT/cuwmUhum9/DdodcFrR9zLXZXGGLaL c2g48mypRtf1KGF9WSGPTzH8Q6E8/RlimbQ6Rpaz+vT65QoTT8KsVEy6mTPTlK41OI3r isfA==
X-Gm-Message-State: ALoCoQkB9T3io0ZGQPMJFAOWr1hDZNM91txRXDTXwbYAH+71qiZg1zKHxdCBBvuuM29dIB+gzfFi
MIME-Version: 1.0
X-Received: by 10.25.17.232 with SMTP id 101mr17194294lfr.38.1447692646134; Mon, 16 Nov 2015 08:50:46 -0800 (PST)
Received: by 10.112.144.106 with HTTP; Mon, 16 Nov 2015 08:50:45 -0800 (PST)
In-Reply-To: <20151116115551.GA6157@elstar.local>
References: <20151111134412.GA22783@elstar.local> <2B6DC0CD-1214-4503-95E4-DDF1E5E56A57@nic.cz> <20151111135919.GA22885@elstar.local> <A1BF519D-74B4-48FC-B003-83198DD1BD2D@nic.cz> <20151111153231.GB23082@elstar.local> <m2mvujofpg.fsf@birdie.labs.nic.cz> <20151112075111.GA25623@elstar.local> <CABCOCHQzYbyqB_t=JVR3X_Wqs_vf0wCUHWk-AVP6iGuKCsBXKw@mail.gmail.com> <82ED52D2-5F51-4C50-A1CC-CCB9090D9AF0@nic.cz> <CABCOCHTSvjoiOfkOGre_Vn3EmFPDgkCDeGg6p8qHmxvt0qBOLQ@mail.gmail.com> <20151116115551.GA6157@elstar.local>
Date: Mon, 16 Nov 2015 08:50:45 -0800
Message-ID: <CABCOCHRdLFjJq-Eh2PjTmR04KrUu=WarAL1UD7ehG6f1fOubbw@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>, Andy Bierman <andy@yumaworks.com>, Ladislav Lhotka <lhotka@nic.cz>, =?UTF-8?Q?Martin_Bj=C3=B6rklund?= <mbj@tail-f.com>,  "netmod@ietf.org" <netmod@ietf.org>
Content-Type: multipart/alternative; boundary=001a113f993aeacf7f0524ab354c
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/dj6_-rTgM8scRUnBLHeOgOB9sA0>
Subject: Re: [netmod] JSON encoding of anyxml
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 16 Nov 2015 16:50:50 -0000

--001a113f993aeacf7f0524ab354c
Content-Type: text/plain; charset=UTF-8

On Mon, Nov 16, 2015 at 3:55 AM, Juergen Schoenwaelder <
j.schoenwaelder@jacobs-university.de> wrote:

> On Sat, Nov 14, 2015 at 09:05:00AM -0800, Andy Bierman wrote:
> >
> > YANG 1.1 is going to take 2 more years if we slowly revisit every issue.
> > I thought the whole point of the issue tracker was to prevent this sort
> > of thing.   The rule should be "what new details have emerged that
> > should cause us to change the previous decision?"
> >
>
> Andy, please note that this is a discussion primarily around the JSON
> document and not around the YANG 1.1 document.
>
>
That doesn't mean we haven't discussed this issue for a long time already.
I thought we decided anyxml is not that interoperable and so we have
anydata that is supposedly interoperable.

So why try to constrain the JSON encoding?
For anyone sending mixed mode XML encoded as JSON,
they can get creative and do whatever they want.


For everybody else, anydata is simple enough to encode and decode.



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

--001a113f993aeacf7f0524ab354c
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Mon, Nov 16, 2015 at 3:55 AM, Juergen Schoenwaelder <span dir=3D"ltr=
">&lt;<a href=3D"mailto:j.schoenwaelder@jacobs-university.de" target=3D"_bl=
ank">j.schoenwaelder@jacobs-university.de</a>&gt;</span> wrote:<br><blockqu=
ote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc s=
olid;padding-left:1ex">On Sat, Nov 14, 2015 at 09:05:00AM -0800, Andy Bierm=
an wrote:<br>
&gt;<br>
&gt; YANG 1.1 is going to take 2 more years if we slowly revisit every issu=
e.<br>
&gt; I thought the whole point of the issue tracker was to prevent this sor=
t<br>
&gt; of thing.=C2=A0 =C2=A0The rule should be &quot;what new details have e=
merged that<br>
&gt; should cause us to change the previous decision?&quot;<br>
&gt;<br>
<br>
Andy, please note that this is a discussion primarily around the JSON<br>
document and not around the YANG 1.1 document.<br>
<span class=3D"HOEnZb"><font color=3D"#888888"><br></font></span></blockquo=
te><div><br></div><div>That doesn&#39;t mean we haven&#39;t discussed this =
issue for a long time already.</div><div>I thought we decided anyxml is not=
 that interoperable and so we have</div><div>anydata that is supposedly int=
eroperable.</div><div><br></div><div>So why try to constrain the JSON encod=
ing?</div><div>For anyone sending mixed mode XML encoded as JSON,</div><div=
>they can get creative and do whatever they want.</div><div><br></div><div>=
<br></div><div>For everybody else, anydata is simple enough to encode and d=
ecode.</div><div><br></div><div>=C2=A0</div><blockquote class=3D"gmail_quot=
e" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">=
<span class=3D"HOEnZb"><font color=3D"#888888">
/js<br></font></span></blockquote><div><br></div><div>Andy</div><div>=C2=A0=
</div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-l=
eft:1px #ccc solid;padding-left:1ex"><span class=3D"HOEnZb"><font color=3D"=
#888888">
<br>
--<br>
Juergen Schoenwaelder=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Jacobs Univer=
sity Bremen gGmbH<br>
Phone: +49 421 200 3587=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Campus Ring 1 | 28=
759 Bremen | Germany<br>
Fax:=C2=A0 =C2=A0+49 421 200 3103=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&lt;<a h=
ref=3D"http://www.jacobs-university.de/" rel=3D"noreferrer" target=3D"_blan=
k">http://www.jacobs-university.de/</a>&gt;<br>
</font></span></blockquote></div><br></div></div>

--001a113f993aeacf7f0524ab354c--


From nobody Mon Nov 16 11:51: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 2B1CC1A88DE for <netmod@ietfa.amsl.com>; Mon, 16 Nov 2015 11:51:53 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.587
X-Spam-Level: 
X-Spam-Status: No, score=-0.587 tagged_above=-999 required=5 tests=[BAYES_20=-0.001, RP_MATCHES_RCVD=-0.585, 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 JO3bK7WtwrzC for <netmod@ietfa.amsl.com>; Mon, 16 Nov 2015 11:51:51 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id 243301A88E1 for <netmod@ietf.org>; Mon, 16 Nov 2015 11:51:51 -0800 (PST)
Received: from localhost (unknown [213.136.39.104]) by mail.tail-f.com (Postfix) with ESMTPSA id DDC211AE0959; Mon, 16 Nov 2015 20:51:49 +0100 (CET)
Date: Mon, 16 Nov 2015 20:51:49 +0100 (CET)
Message-Id: <20151116.205149.2072469068908119414.mbj@tail-f.com>
To: wfl@cantab.net
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <CAAN2h6uWnUrfWkw4EcWzAZFto54+tRv5Zb6hMbOckQthonM8VA@mail.gmail.com>
References: <CAAN2h6uWnUrfWkw4EcWzAZFto54+tRv5Zb6hMbOckQthonM8VA@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/OhHuZv7dro-QSA2rf1F-5uG5Rsw>
Cc: netmod@ietf.org
Subject: Re: [netmod] derived-from() and derived-from-or-self() arguments
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 16 Nov 2015 19:51:53 -0000

Hi,

William Lupton <wfl@cantab.net> wrote:
> Hi,
> 
> I'm sure there's an obvious reason for this, but could someone explain why
> these functions need a separate module-name argument rather than just using
> that module's prefix on the identity-name argument?

The only reason is that there are no existing functions that take a
prefixed string as an argument.  I think it would be possible to
change these functions to take just two arguments, but I am not sure
it is worth it?


/martin



> 
> For example, I saw derived-from(x, "ex-module", "foo") in a recent message
> but (assuming that "ex" is the prefix for "ex-module") will this always be
> the same as derived-from(x, "ex:foo")?
> 
> Thanks,
> William


From nobody Mon Nov 16 19:31:07 2015
Return-Path: <bill.wu@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 C2D711ACDF5 for <netmod@ietfa.amsl.com>; Mon, 16 Nov 2015 19:31:02 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.785
X-Spam-Level: 
X-Spam-Status: No, score=-4.785 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-0.585, 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 iPE2yBkGgG2S for <netmod@ietfa.amsl.com>; Mon, 16 Nov 2015 19:30:59 -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 77C171ACDF4 for <netmod@ietf.org>; Mon, 16 Nov 2015 19:30:58 -0800 (PST)
Received: from 172.18.7.190 (EHLO lhreml406-hub.china.huawei.com) ([172.18.7.190]) by lhrrg01-dlp.huawei.com (MOS 4.3.7-GA FastPath queued) with ESMTP id CEF06579; Tue, 17 Nov 2015 03:30:55 +0000 (GMT)
Received: from NKGEML410-HUB.china.huawei.com (10.98.56.41) by lhreml406-hub.china.huawei.com (10.201.5.243) with Microsoft SMTP Server (TLS) id 14.3.235.1; Tue, 17 Nov 2015 03:30:54 +0000
Received: from NKGEML501-MBS.china.huawei.com ([169.254.2.12]) by nkgeml410-hub.china.huawei.com ([10.98.56.41]) with mapi id 14.03.0235.001; Tue, 17 Nov 2015 11:30:49 +0800
From: Qin Wu <bill.wu@huawei.com>
To: "netmod@ietf.org" <netmod@ietf.org>
Thread-Topic: review of model-classification draft
Thread-Index: AdEg6FmjkP6xP1MdTqq6XYoxfbgD+g==
Date: Tue, 17 Nov 2015 03:30:48 +0000
Message-ID: <B8F9A780D330094D99AF023C5877DABA848B654E@nkgeml501-mbs.china.huawei.com>
Accept-Language: zh-CN, en-US
Content-Language: zh-CN
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [10.136.79.38]
Content-Type: multipart/alternative; boundary="_000_B8F9A780D330094D99AF023C5877DABA848B654Enkgeml501mbschi_"
MIME-Version: 1.0
X-CFilter-Loop: Reflected
X-Mirapoint-Virus-RAPID-Raw: score=unknown(0), refid=str=0001.0A090203.564A9F70.0064, ss=1, re=0.000, recu=0.000, reip=0.000,  cl=1, cld=1, fgs=0, ip=169.254.2.12, so=2013-06-18 04:22:30, dmn=2013-03-21 17:37:32
X-Mirapoint-Loop-Id: e252dde1071f611863c0501b5c09fea9
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/dmXhXilAyMq7F9ZsWj9U6gFAYLc>
Subject: [netmod] review of model-classification draft
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 17 Nov 2015 03:31:02 -0000

--_000_B8F9A780D330094D99AF023C5877DABA848B654Enkgeml501mbschi_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Have a quick review of draft-bogdanovic-netmod-yang-model-classification-05=
, I have a few comments as follows:

1.       This document introduce several terms to provide consistent classi=
fication yang models in IETF and other SDOs, e.g.,standard model, vendor sp=
ecific model, I am wondering if we need to introduce base model and model e=
xtension which was presented in netmod session of Yokohama meeting, this wi=
ll help further classify yang models in either Network Element YANG Model a=
bstraction layer or Network service YANG model abstraction layer and descri=
be their dependency relationship.

2.       Section 2, 4th paragraph said
"Layering of models allow for reusability of
   existing lower layer models by higher level models while limiting
   duplication of features across layers.

"

I believe this sentence indicates that two abreaction layers proposed in th=
e model-classification draft can be further broken down into multiple layer=
s, lower layer model corresponding to base model, higher layer model corres=
ponds to model extension, higher layer model is built on top of lower layer=
 model.

Also I think this sentence need to distinct the following three cases:

1.       The building block defined in Network element yang model may be re=
used in the network service model

2.       The building block defined in lower layer model belonging to netwo=
rk element yang model category can be reused in the higher layer model whic=
h also belongs to network element yang model category.

3.       The building block defined in lower layer model belonging to netwo=
rk service yang model category can be reused in the higher layer model whic=
h also belongs to network service yang model category.

-Qin



--_000_B8F9A780D330094D99AF023C5877DABA848B654Enkgeml501mbschi_
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 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: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;
	text-align:justify;
	text-justify:inter-ideograph;
	font-size:10.5pt;
	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:0cm;
	margin-bottom:.0001pt;
	text-align:justify;
	text-justify:inter-ideograph;
	text-indent:21.0pt;
	font-size:10.5pt;
	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;}
/* Page Definitions */
@page WordSection1
	{size:612.0pt 792.0pt;
	margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.WordSection1
	{page:WordSection1;}
/* List Definitions */
@list l0
	{mso-list-id:1008556829;
	mso-list-type:hybrid;
	mso-list-template-ids:-1543496840 2088274186 67698713 67698715 67698703 67=
698713 67698715 67698703 67698713 67698715;}
@list l0:level1
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	margin-left:18.0pt;
	text-indent:-18.0pt;}
@list l1
	{mso-list-id:1812477592;
	mso-list-type:hybrid;
	mso-list-template-ids:799042124 -1679263350 67698713 67698715 67698703 676=
98713 67698715 67698703 67698713 67698715;}
@list l1:level1
	{mso-level-tab-stop:none;
	mso-level-number-position:left;
	text-indent:-18.0pt;}
ol
	{margin-bottom:0cm;}
ul
	{margin-bottom:0cm;}
--></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"ZH-CN" link=3D"blue" vlink=3D"purple" style=3D"text-justify-t=
rim:punctuation">
<div class=3D"WordSection1">
<p class=3D"MsoNormal"><span lang=3D"EN-US">Have a quick review of draft-bo=
gdanovic-netmod-yang-model-classification-05, I have a few comments as foll=
ows:<o:p></o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:18.0pt;text-indent:-18.0=
pt;mso-list:l0 level1 lfo1">
<![if !supportLists]><span lang=3D"EN-US"><span style=3D"mso-list:Ignore">1=
.<span style=3D"font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=3D"EN-US">This document introduce=
 several terms to provide consistent classification yang models in IETF and=
 other SDOs, e.g.,standard model, vendor specific model, I am wondering if =
we need to introduce base model and
 model extension which was presented in netmod session of Yokohama meeting,=
 this will help further classify yang models in either Network Element YANG=
 Model abstraction layer or Network service YANG model abstraction layer an=
d describe their dependency relationship.<o:p></o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:18.0pt;text-indent:-18.0=
pt;mso-list:l0 level1 lfo1">
<![if !supportLists]><span lang=3D"EN-US"><span style=3D"mso-list:Ignore">2=
.<span style=3D"font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=3D"EN-US">Section 2, 4<sup>th</su=
p> paragraph said<o:p></o:p></span></p>
<p class=3D"MsoNormal" align=3D"left" style=3D"text-align:left;text-indent:=
15.75pt"><span lang=3D"EN-US">&#8220;Layering of models allow for reusabili=
ty of<o:p></o:p></span></p>
<p class=3D"MsoNormal" align=3D"left" style=3D"text-align:left"><span lang=
=3D"EN-US">&nbsp;&nbsp; existing lower layer models by higher level models =
while limiting<o:p></o:p></span></p>
<p class=3D"MsoNormal" align=3D"left" style=3D"text-align:left"><span lang=
=3D"EN-US">&nbsp;&nbsp; duplication of features across layers.<o:p></o:p></=
span></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:18.0pt;text-indent:0cm">=
<span lang=3D"EN-US">&#8221;<o:p></o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:18.0pt;text-indent:0cm">=
<span lang=3D"EN-US">I believe this sentence indicates that two abreaction =
layers proposed in the model-classification draft can be further broken dow=
n into multiple layers, lower layer model
 corresponding to base model, higher layer model corresponds to model exten=
sion, higher layer model is built on top of lower layer model.<o:p></o:p></=
span></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:18.0pt;text-indent:0cm">=
<span lang=3D"EN-US">Also I think this sentence need to distinct the follow=
ing three cases:<o:p></o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:36.0pt;text-indent:-18.0=
pt;mso-list:l1 level1 lfo2">
<![if !supportLists]><span lang=3D"EN-US"><span style=3D"mso-list:Ignore">1=
.<span style=3D"font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=3D"EN-US">The building block defi=
ned in Network element yang model may be reused in the network service mode=
l<o:p></o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:36.0pt;text-indent:-18.0=
pt;mso-list:l1 level1 lfo2">
<![if !supportLists]><span lang=3D"EN-US"><span style=3D"mso-list:Ignore">2=
.<span style=3D"font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=3D"EN-US">The building block defi=
ned in lower layer model belonging to network element yang model category c=
an be reused in the higher layer model which also belongs to network elemen=
t yang model category.<o:p></o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:36.0pt;text-indent:-18.0=
pt;mso-list:l1 level1 lfo2">
<![if !supportLists]><span lang=3D"EN-US"><span style=3D"mso-list:Ignore">3=
.<span style=3D"font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span lang=3D"EN-US">The building block defi=
ned in lower layer model belonging to network service yang model category c=
an be reused in the higher layer model which also belongs to network servic=
e yang model category.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US">-Qin<o:p></o:p></span></p>
<p class=3D"MsoListParagraph" style=3D"margin-left:36.0pt;text-indent:0cm">=
<span lang=3D"EN-US"><o:p>&nbsp;</o:p></span></p>
</div>
</body>
</html>

--_000_B8F9A780D330094D99AF023C5877DABA848B654Enkgeml501mbschi_--


From nobody Tue Nov 17 02:19:20 2015
Return-Path: <rwilton@cisco.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2BA121A0163 for <netmod@ietfa.amsl.com>; Tue, 17 Nov 2015 02:19:19 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.785
X-Spam-Level: 
X-Spam-Status: No, score=-14.785 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, MIME_8BIT_HEADER=0.3, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-0.585, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id aXm1r3r_wh3H for <netmod@ietfa.amsl.com>; Tue, 17 Nov 2015 02:19:17 -0800 (PST)
Received: from aer-iport-3.cisco.com (aer-iport-3.cisco.com [173.38.203.53]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C2F9C1A0120 for <netmod@ietf.org>; Tue, 17 Nov 2015 02:19:16 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=7224; q=dns/txt; s=iport; t=1447755556; x=1448965156; h=subject:to:references:from:message-id:date:mime-version: in-reply-to; bh=gVIzRGePb+0oZ1VSqi8fYFkwjZNXAWu7UZt3PVdeBXw=; b=aCDf6vTbsOlUpJp8+eNYZyOASChaCIBoUl800KeL7IH5FYtv9qJJhzC8 LKLsR6gNJHUAfIcs1v3VBnE56YLnRJbyJZJI+zuUxMavx+dDRwzPr8VuR TGty9R2yLYiicgHNwh31MfqUMMevmvbAc3M0F1mjoJQkYGP1GdNKhVrWU k=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0CtBAA6/kpW/xbLJq1aA4QOb8BQFwEJh?= =?us-ascii?q?SVKAoIaAQEBAQEBgQuENQEBBAEBAWsKDwILEAgJFggHCQMCAQIBCQwfEQYBDAY?= =?us-ascii?q?CAQGIKg27UAEBAQEBAQEBAQEBAQEBAQEBAQEBARgEhlCEfoR8JoQXBZZJjSqBW?= =?us-ascii?q?4RAgwKTKGOEBD40hQoBAQE?=
X-IronPort-AV: E=Sophos;i="5.20,307,1444694400";  d="scan'208,217";a="606364814"
Received: from aer-iport-nat.cisco.com (HELO aer-core-2.cisco.com) ([173.38.203.22]) by aer-iport-3.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 17 Nov 2015 10:19:14 +0000
Received: from [10.63.23.115] (dhcp-ensft1-uk-vla370-10-63-23-115.cisco.com [10.63.23.115]) by aer-core-2.cisco.com (8.14.5/8.14.5) with ESMTP id tAHAJELC014636; Tue, 17 Nov 2015 10:19:14 GMT
To: Andy Bierman <andy@yumaworks.com>, 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>
References: <20151111134412.GA22783@elstar.local> <2B6DC0CD-1214-4503-95E4-DDF1E5E56A57@nic.cz> <20151111135919.GA22885@elstar.local> <A1BF519D-74B4-48FC-B003-83198DD1BD2D@nic.cz> <20151111153231.GB23082@elstar.local> <m2mvujofpg.fsf@birdie.labs.nic.cz> <20151112075111.GA25623@elstar.local> <CABCOCHQzYbyqB_t=JVR3X_Wqs_vf0wCUHWk-AVP6iGuKCsBXKw@mail.gmail.com> <82ED52D2-5F51-4C50-A1CC-CCB9090D9AF0@nic.cz> <CABCOCHTSvjoiOfkOGre_Vn3EmFPDgkCDeGg6p8qHmxvt0qBOLQ@mail.gmail.com> <20151116115551.GA6157@elstar.local> <CABCOCHRdLFjJq-Eh2PjTmR04KrUu=WarAL1UD7ehG6f1fOubbw@mail.gmail.com>
From: Robert Wilton <rwilton@cisco.com>
Message-ID: <564AFF23.1090801@cisco.com>
Date: Tue, 17 Nov 2015 10:19:15 +0000
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0
MIME-Version: 1.0
In-Reply-To: <CABCOCHRdLFjJq-Eh2PjTmR04KrUu=WarAL1UD7ehG6f1fOubbw@mail.gmail.com>
Content-Type: multipart/alternative; boundary="------------000106020501040000090603"
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/VDpn5lItRvGv5ZbDcrvBugCFi7w>
Subject: Re: [netmod] JSON encoding of anyxml
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 17 Nov 2015 10:19:19 -0000

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

As a possible compromise, what about something like:

The JSON encoding defines that anyxml may be encoded in whatever way the 
implementor finds useful, or even not at all.  If a preferred custom 
encoding is not being used, then it is suggested that anyxml data be 
encoded as a string containing XML to maximize legacy interoperability.

Rob


On 16/11/2015 16:50, Andy Bierman wrote:
>
>
> On Mon, Nov 16, 2015 at 3:55 AM, Juergen Schoenwaelder 
> <j.schoenwaelder@jacobs-university.de 
> <mailto:j.schoenwaelder@jacobs-university.de>> wrote:
>
>     On Sat, Nov 14, 2015 at 09:05:00AM -0800, Andy Bierman wrote:
>     >
>     > YANG 1.1 is going to take 2 more years if we slowly revisit
>     every issue.
>     > I thought the whole point of the issue tracker was to prevent
>     this sort
>     > of thing.   The rule should be "what new details have emerged that
>     > should cause us to change the previous decision?"
>     >
>
>     Andy, please note that this is a discussion primarily around the JSON
>     document and not around the YANG 1.1 document.
>
>
> That doesn't mean we haven't discussed this issue for a long time already.
> I thought we decided anyxml is not that interoperable and so we have
> anydata that is supposedly interoperable.
>
> So why try to constrain the JSON encoding?
> For anyone sending mixed mode XML encoded as JSON,
> they can get creative and do whatever they want.
>
>
> For everybody else, anydata is simple enough to encode and decode.
>
>     /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


--------------000106020501040000090603
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">
    As a possible compromise, what about something like:<br>
    <br>
    The JSON encoding defines that anyxml may be encoded in whatever way
    the implementor finds useful, or even not at all.  If a preferred
    custom encoding is not being used, then it is suggested that anyxml
    data be encoded as a string containing XML to maximize legacy
    interoperability.<br>
    <br>
    Rob<br>
    <br>
    <br>
    <div class="moz-cite-prefix">On 16/11/2015 16:50, Andy Bierman
      wrote:<br>
    </div>
    <blockquote
cite="mid:CABCOCHRdLFjJq-Eh2PjTmR04KrUu=WarAL1UD7ehG6f1fOubbw@mail.gmail.com"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html;
        charset=windows-1252">
      <div dir="ltr"><br>
        <div class="gmail_extra"><br>
          <div class="gmail_quote">On Mon, Nov 16, 2015 at 3:55 AM,
            Juergen Schoenwaelder <span dir="ltr">&lt;<a
                moz-do-not-send="true"
                href="mailto:j.schoenwaelder@jacobs-university.de"
                target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:j.schoenwaelder@jacobs-university.de">j.schoenwaelder@jacobs-university.de</a></a>&gt;</span>
            wrote:<br>
            <blockquote class="gmail_quote" style="margin:0 0 0
              .8ex;border-left:1px #ccc solid;padding-left:1ex">On Sat,
              Nov 14, 2015 at 09:05:00AM -0800, Andy Bierman wrote:<br>
              &gt;<br>
              &gt; YANG 1.1 is going to take 2 more years if we slowly
              revisit every issue.<br>
              &gt; I thought the whole point of the issue tracker was to
              prevent this sort<br>
              &gt; of thing.   The rule should be "what new details have
              emerged that<br>
              &gt; should cause us to change the previous decision?"<br>
              &gt;<br>
              <br>
              Andy, please note that this is a discussion primarily
              around the JSON<br>
              document and not around the YANG 1.1 document.<br>
              <span class="HOEnZb"><font color="#888888"><br>
                </font></span></blockquote>
            <div><br>
            </div>
            <div>That doesn't mean we haven't discussed this issue for a
              long time already.</div>
            <div>I thought we decided anyxml is not that interoperable
              and so we have</div>
            <div>anydata that is supposedly interoperable.</div>
            <div><br>
            </div>
            <div>So why try to constrain the JSON encoding?</div>
            <div>For anyone sending mixed mode XML encoded as JSON,</div>
            <div>they can get creative and do whatever they want.</div>
            <div><br>
            </div>
            <div><br>
            </div>
            <div>For everybody else, anydata is simple enough to encode
              and decode.</div>
            <div><br>
            </div>
            <div> </div>
            <blockquote class="gmail_quote" style="margin:0 0 0
              .8ex;border-left:1px #ccc solid;padding-left:1ex"><span
                class="HOEnZb"><font color="#888888">
                  /js<br>
                </font></span></blockquote>
            <div><br>
            </div>
            <div>Andy</div>
            <div> </div>
            <blockquote class="gmail_quote" style="margin:0 0 0
              .8ex;border-left:1px #ccc solid;padding-left:1ex"><span
                class="HOEnZb"><font color="#888888">
                  <br>
                  --<br>
                  Juergen Schoenwaelder           Jacobs University
                  Bremen gGmbH<br>
                  Phone: +49 421 200 3587         Campus Ring 1 | 28759
                  Bremen | Germany<br>
                  Fax:   +49 421 200 3103         &lt;<a
                    moz-do-not-send="true"
                    href="http://www.jacobs-university.de/"
                    rel="noreferrer" target="_blank"><a class="moz-txt-link-freetext" href="http://www.jacobs-university.de/">http://www.jacobs-university.de/</a></a>&gt;<br>
                </font></span></blockquote>
          </div>
          <br>
        </div>
      </div>
      <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>

--------------000106020501040000090603--


From nobody Tue Nov 17 06:44:30 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 F017F1A8A3A for <netmod@ietfa.amsl.com>; Tue, 17 Nov 2015 06:44:28 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.236
X-Spam-Level: 
X-Spam-Status: No, score=-1.236 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, RP_MATCHES_RCVD=-0.585] 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 cX1hWEyfch0l for <netmod@ietfa.amsl.com>; Tue, 17 Nov 2015 06:44:27 -0800 (PST)
Received: from mail.nic.cz (mail.nic.cz [IPv6:2001:1488:800:400::400]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C821A1A8A25 for <netmod@ietf.org>; Tue, 17 Nov 2015 06:44:26 -0800 (PST)
Received: from [IPv6:2a01:5e0:29:ffff:6c28:c998:4a5:f45a] (unknown [IPv6:2a01:5e0:29:ffff:6c28:c998:4a5:f45a]) by mail.nic.cz (Postfix) with ESMTPSA id 351B2180E98; Tue, 17 Nov 2015 15:44:25 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nic.cz; s=default; t=1447771465; bh=EFBx1nLuUtGTaUSqIKQH95yTf88+JIbAS4+RQ7DEY94=; h=From:Date:To; b=E2ibH/VW3/m8JCnmrIFIjVMZ7Z/6ViK7/C8gylSNwbeyGfGu6h3KnYu/czouxkiOc B75/R4Bj9FKcaSUDiC8XiCfDyhCzHP95K8atAAPE2swWhSHqGa/Sx9HLoXJEyxxK+r cJboxcxTapWfUsFPObs1/fw8BrfFZeCG++/MiQNE=
Content-Type: text/plain; charset=windows-1252
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
From: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <564AFF23.1090801@cisco.com>
Date: Tue, 17 Nov 2015 15:44:24 +0100
Content-Transfer-Encoding: quoted-printable
Message-Id: <7E2AD0E8-02DD-4D42-85BC-97A16E410F67@nic.cz>
References: <20151111134412.GA22783@elstar.local> <2B6DC0CD-1214-4503-95E4-DDF1E5E56A57@nic.cz> <20151111135919.GA22885@elstar.local> <A1BF519D-74B4-48FC-B003-83198DD1BD2D@nic.cz> <20151111153231.GB23082@elstar.local> <m2mvujofpg.fsf@birdie.labs.nic.cz> <20151112075111.GA25623@elstar.local> <CABCOCHQzYbyqB_t=JVR3X_Wqs_vf0wCUHWk-AVP6iGuKCsBXKw@mail.gmail.com> <82ED52D2-5F51-4C50-A1CC-CCB9090D9AF0@nic.cz> <CABCOCHTSvjoiOfkOGre_Vn3EmFPDgkCDeGg6p8qHmxvt0qBOLQ@mail.gmail.com> <20151116115551.GA6157@elstar.local> <CABCOCHRdLFjJq-Eh2PjTmR04KrUu=WarAL1UD7ehG6f1fOubbw@mail.gmail.com> <564AFF23.1090801@cisco.com>
To: Robert Wilton <rwilton@cisco.com>
X-Mailer: Apple Mail (2.3096.5)
X-Virus-Scanned: clamav-milter 0.98.7 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/p55GkFFwJnuWZ_y02WMkDVqIjsw>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] JSON encoding of anyxml
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 17 Nov 2015 14:44:29 -0000

> On 17 Nov 2015, at 11:19, Robert Wilton <rwilton@cisco.com> wrote:
>=20
> As a possible compromise, what about something like:
>=20
> The JSON encoding defines that anyxml may be encoded in whatever way =
the implementor finds useful, or even not at all.  If a preferred     =
custom encoding is not being used, then it is suggested that anyxml data =
be encoded as a string containing XML to maximize legacy =
interoperability.

While this is quite complicated, I don't think it helps in any way. =
There are no anyxml objects that need to be encoded, so what an =
implementor finds useful is totally irrelevant. The yang-json spec =
should state what's permitted as the content of an anyxml instance in =
JSON encoding, and that's all. To this end, the current text is IMO =
sufficient, except that the "otherwise" part may be misleading - but =
it's not necessary.

Note that XML-in-JSON-string has its share of problems and may not be =
interoperable either: the content of an anyxml instance in XML encoding =
needn't be a well-formed XML document.

Lada

>=20
> Rob
>=20
>=20
> On 16/11/2015 16:50, Andy Bierman wrote:
>>=20
>>=20
>> On Mon, Nov 16, 2015 at 3:55 AM, Juergen Schoenwaelder =
<j.schoenwaelder@jacobs-university.de> wrote:
>> On Sat, Nov 14, 2015 at 09:05:00AM -0800, Andy Bierman wrote:
>> >
>> > YANG 1.1 is going to take 2 more years if we slowly revisit every =
issue.
>> > I thought the whole point of the issue tracker was to prevent this =
sort
>> > of thing.   The rule should be "what new details have emerged that
>> > should cause us to change the previous decision?"
>> >
>>=20
>> Andy, please note that this is a discussion primarily around the JSON
>> document and not around the YANG 1.1 document.
>>=20
>>=20
>> That doesn't mean we haven't discussed this issue for a long time =
already.
>> I thought we decided anyxml is not that interoperable and so we have
>> anydata that is supposedly interoperable.
>>=20
>> So why try to constrain the JSON encoding?
>> For anyone sending mixed mode XML encoded as JSON,
>> they can get creative and do whatever they want.
>>=20
>>=20
>> For everybody else, anydata is simple enough to encode and decode.
>>=20
>> =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
>>=20
>>=20
>> _______________________________________________
>> netmod mailing list
>>=20
>> netmod@ietf.org
>> https://www.ietf.org/mailman/listinfo/netmod
>=20

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





From nobody Tue Nov 17 08:06:31 2015
Return-Path: <ing-wher.chen@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 92D661AD289 for <netmod@ietfa.amsl.com>; Tue, 17 Nov 2015 08:06:29 -0800 (PST)
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 70s0kHzbyzYy for <netmod@ietfa.amsl.com>; Tue, 17 Nov 2015 08:06:28 -0800 (PST)
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 20C201AD1A3 for <netmod@ietf.org>; Tue, 17 Nov 2015 08:06:28 -0800 (PST)
X-AuditID: c618062d-f79ef6d000007f54-8f-564aee84585f
Received: from EUSAAHC007.ericsson.se (Unknown_Domain [147.117.188.93]) by usevmg20.ericsson.net (Symantec Mail Security) with SMTP id CE.98.32596.48EEA465; Tue, 17 Nov 2015 10:08:21 +0100 (CET)
Received: from EUSAAMB109.ericsson.se ([147.117.188.126]) by EUSAAHC007.ericsson.se ([147.117.188.93]) with mapi id 14.03.0248.002; Tue, 17 Nov 2015 11:06:26 -0500
From: Ing-Wher Chen <ing-wher.chen@ericsson.com>
To: "netmod@ietf.org" <netmod@ietf.org>
Thread-Topic: New top-level URN namespace for enterprise YANG module namespaces
Thread-Index: AdEhUX1B+WwOM6WzT06mEJFjKcBhzw==
Date: Tue, 17 Nov 2015 16:06:26 +0000
Message-ID: <BF6E0BD839774345977891C597F8B50C213BF7C1@eusaamb109.ericsson.se>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [147.117.188.9]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrLLMWRmVeSWpSXmKPExsUyuXRPrG7rO68wg9cb2S3mX2xkdWD0WLLk J1MAYxSXTUpqTmZZapG+XQJXxsq5zxkLbrBX9K9Zw9jAuJuti5GTQ0LARGLKx1/sELaYxIV7 64HiXBxCAkcYJZqn72KEcJYzSvzcO58VpIpNwEBiw8ctTCC2iIC6xMyd68EmCQt4SUy+8oUd Ih4o8aVrA5StJ9F5bR9YL4uAqsSU/8+AhnJw8Ar4Stx7kgUSZgRa/P3UGrCRzALiEreezGeC OEhAYsme88wQtqjEy8f/WCFsRYl9/dPZIep1JBbs/sQGYWtLLFv4GqyeV0BQ4uTMJywTGIVn IRk7C0nLLCQts5C0LGBkWcXIUVqcWpabbmSwiREYyMck2HR3MO55aXmIUYCDUYmH12CGV5gQ a2JZcWXuIUYJDmYlEV5OK+8wId6UxMqq1KL8+KLSnNTiQ4zSHCxK4rz7l9wPFRJITyxJzU5N LUgtgskycXBKNTBuNTojrnQo4HNm5AGp9etUN6VI53/Lsr9m8sYosO7jqftxOr3c9wO8rv4v 3B2eve/1LpP0dYEpEezHjBbvuxa5+ONWSZ+AxTZ71hybzfW0LDRNgHHT6tNfut3D/z1fXfSC 8YLjpALPOe+k3mXJr7olXevgpbFuvvdzxu0txjqnVu63nH3o4udsJZbijERDLeai4kQAXsA+ A2ACAAA=
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/JQmD8yrUeuAwuHpBnqZV_mcuveU>
Subject: [netmod] New top-level URN namespace for enterprise YANG module namespaces
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 17 Nov 2015 16:06:29 -0000

Hello,

In the netmod meeting during IETF in Yokohama, there was a
discussion on putting in place a guideline and a shortcut to easily
create globally unique URNs as enterprise YANG module namespaces.
For details, please see
<https://www.ietf.org/proceedings/94/slides/slides-94-netmod-5.pdf> or=20
<https://datatracker.ietf.org/doc/draft-chen-netmod-enterprise-yang-namespa=
ce/> .
The gist of the proposal is to create globally unique enterprise
YANG module namespaces by creating URNs based on registered
domain names (DNS names), in reverse, e.g. urn:com:example:... .

During the meeting, there was a suggestion to create a new top-level
URN namespace, e.g. "rdns", to which reverse DNSnames are appended.

With a brand new top-level URN namespace, the resulting
enterprise YANG module namespace pattern would be something
like "urn:rdns:com:example:...".

For the new top-level URN namespace, are there any objections=20
to using "rdns"?

Thanks,
Helen


From nobody Tue Nov 17 08:13:50 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 8E7F31A1B78 for <netmod@ietfa.amsl.com>; Tue, 17 Nov 2015 08:13:48 -0800 (PST)
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 519i4ymr2Qeo for <netmod@ietfa.amsl.com>; Tue, 17 Nov 2015 08:13:47 -0800 (PST)
Received: from mail-pa0-x22c.google.com (mail-pa0-x22c.google.com [IPv6:2607:f8b0:400e:c03::22c]) (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 715091B2A64 for <netmod@ietf.org>; Tue, 17 Nov 2015 08:13:47 -0800 (PST)
Received: by pabfh17 with SMTP id fh17so13528677pab.0 for <netmod@ietf.org>; Tue, 17 Nov 2015 08:13:47 -0800 (PST)
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 :message-id:references:to; bh=YPun0qQ9WPbpes4v+8iAVTLmRqs+g+1TPNDKzybnhfI=; b=NOves+0IMRvgiLXpXfJNtuCU8w4z7+SKfaF19iETZY4XfeUkjQAHDwpxn13Yr/iLCI FvwD19FLpgnYfk53jy32qywyoQFKKo5+4UYb9Tm87B2Z0dLKFd9mRm81S10cwFeJsH9u xBvwGfoRMY+mefDMNmIBE1zL1jnpp5GxWARF01llsYmXJrUZBv7TqNKbAxLi0Qhih9W0 zgQOFXNYzxZJRL4q56DPMV1cFLBgvQhg6ZhykEnsMCv67v/IIk/w/lJcz5EwcN7dR5Uj bBZkF8q3hrq3XI4TkeefS7euJuV3REolOLzdv3ouDiwcWBUAPiDxMTwNg8A5iPHXW+e+ RPAA==
X-Received: by 10.68.133.134 with SMTP id pc6mr50512606pbb.35.1447776827106; Tue, 17 Nov 2015 08:13:47 -0800 (PST)
Received: from [10.24.88.12] ([128.107.241.177]) by smtp.gmail.com with ESMTPSA id yq2sm43762793pbb.39.2015.11.17.08.13.45 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 17 Nov 2015 08:13:45 -0800 (PST)
Content-Type: multipart/alternative; boundary="Apple-Mail=_1815A0FE-4224-4574-8D38-F0A551CB7D6C"
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2098\))
From: Mahesh Jethanandani <mjethanandani@gmail.com>
In-Reply-To: <BF6E0BD839774345977891C597F8B50C213BF7C1@eusaamb109.ericsson.se>
Date: Tue, 17 Nov 2015 08:13:44 -0800
Message-Id: <8A390079-447F-4FAB-990D-5D8BD6AC9ACD@gmail.com>
References: <BF6E0BD839774345977891C597F8B50C213BF7C1@eusaamb109.ericsson.se>
To: Ing-Wher Chen <ing-wher.chen@ericsson.com>
X-Mailer: Apple Mail (2.2098)
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/GSz_1dp2R3FPlMmu2_HF3ZIwrsY>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] New top-level URN namespace for enterprise YANG module namespaces
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 17 Nov 2015 16:13:48 -0000

--Apple-Mail=_1815A0FE-4224-4574-8D38-F0A551CB7D6C
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8


> On Nov 17, 2015, at 8:06 AM, Ing-Wher Chen =
<ing-wher.chen@ericsson.com> wrote:
>=20
> For the new top-level URN namespace, are there any objections=20
> to using "rdns=E2=80=9D?

One would have to register the top-level URN namespace with IANA.

Mahesh Jethanandani
mjethanandani@gmail.com






--Apple-Mail=_1815A0FE-4224-4574-8D38-F0A551CB7D6C
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""><br class=3D""><div><blockquote type=3D"cite" class=3D""><div =
class=3D"">On Nov 17, 2015, at 8:06 AM, Ing-Wher Chen &lt;<a =
href=3D"mailto:ing-wher.chen@ericsson.com" =
class=3D"">ing-wher.chen@ericsson.com</a>&gt; wrote:</div><br =
class=3D"Apple-interchange-newline"><div class=3D""><span =
style=3D"font-family: Helvetica; font-size: 12px; 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; float: none; display: inline =
!important;" class=3D"">For the new top-level URN namespace, are there =
any objections<span =
class=3D"Apple-converted-space">&nbsp;</span></span><br =
style=3D"font-family: Helvetica; font-size: 12px; 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;" class=3D""><span =
style=3D"font-family: Helvetica; font-size: 12px; 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; float: none; display: inline =
!important;" class=3D"">to using "rdns=E2=80=9D?</span></div></blockquote>=
<br class=3D""></div><div>One would have to register the top-level URN =
namespace with IANA.</div><br class=3D""><div =
apple-content-edited=3D"true" class=3D"">
<div style=3D"color: rgb(0, 0, 0); letter-spacing: 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; word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" =
class=3D""><div style=3D"color: rgb(0, 0, 0); letter-spacing: 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; word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" =
class=3D""><div class=3D"">Mahesh Jethanandani</div><div class=3D""><a =
href=3D"mailto:mjethanandani@gmail.com" =
class=3D"">mjethanandani@gmail.com</a></div><div class=3D""><br =
class=3D""></div></div><br class=3D"Apple-interchange-newline"></div><br =
class=3D"Apple-interchange-newline"><br =
class=3D"Apple-interchange-newline">
</div>
<br class=3D""></body></html>=

--Apple-Mail=_1815A0FE-4224-4574-8D38-F0A551CB7D6C--


From nobody Tue Nov 17 08:19:09 2015
Return-Path: <ing-wher.chen@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 F0B781B2B37 for <netmod@ietfa.amsl.com>; Tue, 17 Nov 2015 08:19:07 -0800 (PST)
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 8RznLrwY0oqW for <netmod@ietfa.amsl.com>; Tue, 17 Nov 2015 08:19:06 -0800 (PST)
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 87AE91B2B0E for <netmod@ietf.org>; Tue, 17 Nov 2015 08:18:46 -0800 (PST)
X-AuditID: c618062d-f79ef6d000007f54-12-564af1667229
Received: from EUSAAHC006.ericsson.se (Unknown_Domain [147.117.188.90]) by usevmg20.ericsson.net (Symantec Mail Security) with SMTP id EC.69.32596.661FA465; Tue, 17 Nov 2015 10:20:39 +0100 (CET)
Received: from EUSAAMB109.ericsson.se ([147.117.188.126]) by EUSAAHC006.ericsson.se ([147.117.188.90]) with mapi id 14.03.0248.002; Tue, 17 Nov 2015 11:18:45 -0500
From: Ing-Wher Chen <ing-wher.chen@ericsson.com>
To: Mahesh Jethanandani <mjethanandani@gmail.com>
Thread-Topic: [netmod] New top-level URN namespace for enterprise YANG module namespaces
Thread-Index: AdEhUX1B+WwOM6WzT06mEJFjKcBhzwAK1noAAApdIQA=
Date: Tue, 17 Nov 2015 16:18:44 +0000
Message-ID: <BF6E0BD839774345977891C597F8B50C213C07E8@eusaamb109.ericsson.se>
References: <BF6E0BD839774345977891C597F8B50C213BF7C1@eusaamb109.ericsson.se> <8A390079-447F-4FAB-990D-5D8BD6AC9ACD@gmail.com>
In-Reply-To: <8A390079-447F-4FAB-990D-5D8BD6AC9ACD@gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [147.117.188.9]
Content-Type: multipart/alternative; boundary="_000_BF6E0BD839774345977891C597F8B50C213C07E8eusaamb109erics_"
MIME-Version: 1.0
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprCIsWRmVeSWpSXmKPExsUyuXRPlG76R68wgzvbBS1Ov1nHZjH/YiOr A5PHzll32T2WLPnJFMAUxWWTkpqTWZZapG+XwJVxeecqxoIJLhUXZyxhamCc49TFyMkhIWAi 8frCXjYIW0ziwr31QDYXh5DAEUaJO5dvs0I4yxklXiycAFbFJmAgseHjFiYQW0TAUOLUgRdg NrOAusSdU4/BaoQFIiWmzW1nhaiJkvj66gkbhG0l8er1LjCbRUBV4vbc1YwgNq+Ar8TUSe+Z IZY1MEps2DwfbCingK3E9hsbwIoYgc77fmoN1DJxiVtPIGokBAQkluw5zwxhi0q8fPyPFcJW lNjXP50doj5f4nrnF6hlghInZz5hmcAoOgvJqFlIymYhKZvFyAEU15RYv0sfokRRYkr3Q3YI W0Oidc5cdmTxBYzsqxg5SotTy3LTjQw2MQLj6pgEm+4Oxj0vLQ8xCnAwKvHwGszwChNiTSwr rsw9xCjBwawkwstp5R0mxJuSWFmVWpQfX1Sak1p8iFGag0VJnHf/kvuhQgLpiSWp2ampBalF MFkmDk6pBkaBLRHCV5u6jwo3xByUDss8f7jbPk6lU+beyYOOkptVWO799WqccYmxVjHkqbLt rF9i4loBXEf81xyeKFioVJrWGGmdYfZo1uTXt6/df1C9WV/nWm/j0yXfnzg0pZg3v//SV1On GdzYOuly/NNzq+Z0Xm0T+NTrY7riYe6ZXS2GDTO3LHcRuKXEUpyRaKjFXFScCABDlgWLpwIA AA==
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/tJDZPI9PV1-SjZm2c608OQu41ws>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] New top-level URN namespace for enterprise YANG module namespaces
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 17 Nov 2015 16:19:08 -0000

--_000_BF6E0BD839774345977891C597F8B50C213C07E8eusaamb109erics_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

VGhhbmtzIGZvciB0aGUgcmVtaW5kZXIsIE1haGVzaC4NCg0KWWVzLCBJIHVuZGVyc3RhbmQgdGhh
dCBzb21lIHdvcmsgaXMgbmVjZXNzYXJ5IGFuZA0KSSBhbSBoYXBweSB0byBkbyB0aGUgbGVnIHdv
cmsuICAoSeKAmXZlIHN0YXJ0ZWQgd3JpdGluZyB0aGUgZG9jdW1lbnQuKQ0KDQpUaGFua3MsDQpI
ZWxlbg0KDQpGcm9tOiBNYWhlc2ggSmV0aGFuYW5kYW5pIFttYWlsdG86bWpldGhhbmFuZGFuaUBn
bWFpbC5jb21dDQpTZW50OiBUdWVzZGF5LCBOb3ZlbWJlciAxNywgMjAxNSAxMToxNCBBTQ0KVG86
IEluZy1XaGVyIENoZW4NCkNjOiBuZXRtb2RAaWV0Zi5vcmcNClN1YmplY3Q6IFJlOiBbbmV0bW9k
XSBOZXcgdG9wLWxldmVsIFVSTiBuYW1lc3BhY2UgZm9yIGVudGVycHJpc2UgWUFORyBtb2R1bGUg
bmFtZXNwYWNlcw0KDQoNCk9uIE5vdiAxNywgMjAxNSwgYXQgODowNiBBTSwgSW5nLVdoZXIgQ2hl
biA8aW5nLXdoZXIuY2hlbkBlcmljc3Nvbi5jb208bWFpbHRvOmluZy13aGVyLmNoZW5AZXJpY3Nz
b24uY29tPj4gd3JvdGU6DQoNCkZvciB0aGUgbmV3IHRvcC1sZXZlbCBVUk4gbmFtZXNwYWNlLCBh
cmUgdGhlcmUgYW55IG9iamVjdGlvbnMNCnRvIHVzaW5nICJyZG5z4oCdPw0KDQpPbmUgd291bGQg
aGF2ZSB0byByZWdpc3RlciB0aGUgdG9wLWxldmVsIFVSTiBuYW1lc3BhY2Ugd2l0aCBJQU5BLg0K
DQpNYWhlc2ggSmV0aGFuYW5kYW5pDQptamV0aGFuYW5kYW5pQGdtYWlsLmNvbTxtYWlsdG86bWpl
dGhhbmFuZGFuaUBnbWFpbC5jb20+DQoNCg0KDQoNCg==

--_000_BF6E0BD839774345977891C597F8B50C213C07E8eusaamb109erics_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTQgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl
PjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6
SGVsdmV0aWNhOw0KCXBhbm9zZS0xOjIgMTEgNiA0IDIgMiAyIDIgMiA0O30NCkBmb250LWZhY2UN
Cgl7Zm9udC1mYW1pbHk6SGVsdmV0aWNhOw0KCXBhbm9zZS0xOjIgMTEgNiA0IDIgMiAyIDIgMiA0
O30NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6Q2FsaWJyaTsNCglwYW5vc2UtMToyIDE1IDUg
MiAyIDIgNCAzIDIgNDt9DQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OlRhaG9tYTsNCglwYW5v
c2UtMToyIDExIDYgNCAzIDUgNCA0IDIgNDt9DQovKiBTdHlsZSBEZWZpbml0aW9ucyAqLw0KcC5N
c29Ob3JtYWwsIGxpLk1zb05vcm1hbCwgZGl2Lk1zb05vcm1hbA0KCXttYXJnaW46MGluOw0KCW1h
cmdpbi1ib3R0b206LjAwMDFwdDsNCglmb250LXNpemU6MTIuMHB0Ow0KCWZvbnQtZmFtaWx5OiJU
aW1lcyBOZXcgUm9tYW4iLCJzZXJpZiI7fQ0KYTpsaW5rLCBzcGFuLk1zb0h5cGVybGluaw0KCXtt
c28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJY29sb3I6Ymx1ZTsNCgl0ZXh0LWRlY29yYXRpb246dW5k
ZXJsaW5lO30NCmE6dmlzaXRlZCwgc3Bhbi5Nc29IeXBlcmxpbmtGb2xsb3dlZA0KCXttc28tc3R5
bGUtcHJpb3JpdHk6OTk7DQoJY29sb3I6cHVycGxlOw0KCXRleHQtZGVjb3JhdGlvbjp1bmRlcmxp
bmU7fQ0Kc3Bhbi5hcHBsZS1jb252ZXJ0ZWQtc3BhY2UNCgl7bXNvLXN0eWxlLW5hbWU6YXBwbGUt
Y29udmVydGVkLXNwYWNlO30NCnNwYW4uRW1haWxTdHlsZTE4DQoJe21zby1zdHlsZS10eXBlOnBl
cnNvbmFsLXJlcGx5Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIiwic2Fucy1zZXJpZiI7DQoJY29s
b3I6IzFGNDk3RDt9DQouTXNvQ2hwRGVmYXVsdA0KCXttc28tc3R5bGUtdHlwZTpleHBvcnQtb25s
eTsNCglmb250LXNpemU6MTAuMHB0O30NCkBwYWdlIFdvcmRTZWN0aW9uMQ0KCXtzaXplOjguNWlu
IDExLjBpbjsNCgltYXJnaW46MS4waW4gMS4waW4gMS4waW4gMS4waW47fQ0KZGl2LldvcmRTZWN0
aW9uMQ0KCXtwYWdlOldvcmRTZWN0aW9uMTt9DQotLT48L3N0eWxlPjwhLS1baWYgZ3RlIG1zbyA5
XT48eG1sPg0KPG86c2hhcGVkZWZhdWx0cyB2OmV4dD0iZWRpdCIgc3BpZG1heD0iMTAyNiIgLz4N
CjwveG1sPjwhW2VuZGlmXS0tPjwhLS1baWYgZ3RlIG1zbyA5XT48eG1sPg0KPG86c2hhcGVsYXlv
dXQgdjpleHQ9ImVkaXQiPg0KPG86aWRtYXAgdjpleHQ9ImVkaXQiIGRhdGE9IjEiIC8+DQo8L286
c2hhcGVsYXlvdXQ+PC94bWw+PCFbZW5kaWZdLS0+DQo8L2hlYWQ+DQo8Ym9keSBsYW5nPSJFTi1V
UyIgbGluaz0iYmx1ZSIgdmxpbms9InB1cnBsZSI+DQo8ZGl2IGNsYXNzPSJXb3JkU2VjdGlvbjEi
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9u
dC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9y
OiMxRjQ5N0QiPlRoYW5rcyBmb3IgdGhlIHJlbWluZGVyLCBNYWhlc2guPG86cD48L286cD48L3Nw
YW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4w
cHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7
O2NvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj5ZZXMs
IEkgdW5kZXJzdGFuZCB0aGF0IHNvbWUgd29yayBpcyBuZWNlc3NhcnkgYW5kPG86cD48L286cD48
L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1
b3Q7O2NvbG9yOiMxRjQ5N0QiPkkgYW0gaGFwcHkgdG8gZG8gdGhlIGxlZyB3b3JrLiZuYnNwOyAo
SeKAmXZlIHN0YXJ0ZWQgd3JpdGluZyB0aGUgZG9jdW1lbnQuKTxvOnA+PC9vOnA+PC9zcGFuPjwv
cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2Zv
bnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xv
cjojMUY0OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxp
YnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+VGhhbmtzLDxv
OnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fu
cy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj5IZWxlbjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQt
ZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjoj
MUY0OTdEIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8ZGl2IHN0eWxlPSJib3JkZXI6
bm9uZTtib3JkZXItbGVmdDpzb2xpZCBibHVlIDEuNXB0O3BhZGRpbmc6MGluIDBpbiAwaW4gNC4w
cHQiPg0KPGRpdj4NCjxkaXYgc3R5bGU9ImJvcmRlcjpub25lO2JvcmRlci10b3A6c29saWQgI0I1
QzRERiAxLjBwdDtwYWRkaW5nOjMuMHB0IDBpbiAwaW4gMGluIj4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O1Rh
aG9tYSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij5Gcm9tOjwvc3Bhbj48L2I+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7VGFob21hJnF1b3Q7LCZx
dW90O3NhbnMtc2VyaWYmcXVvdDsiPiBNYWhlc2ggSmV0aGFuYW5kYW5pIFttYWlsdG86bWpldGhh
bmFuZGFuaUBnbWFpbC5jb21dDQo8YnI+DQo8Yj5TZW50OjwvYj4gVHVlc2RheSwgTm92ZW1iZXIg
MTcsIDIwMTUgMTE6MTQgQU08YnI+DQo8Yj5Ubzo8L2I+IEluZy1XaGVyIENoZW48YnI+DQo8Yj5D
Yzo8L2I+IG5ldG1vZEBpZXRmLm9yZzxicj4NCjxiPlN1YmplY3Q6PC9iPiBSZTogW25ldG1vZF0g
TmV3IHRvcC1sZXZlbCBVUk4gbmFtZXNwYWNlIGZvciBlbnRlcnByaXNlIFlBTkcgbW9kdWxlIG5h
bWVzcGFjZXM8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48
bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxkaXY+DQo8YmxvY2txdW90ZSBzdHlsZT0ibWFyZ2luLXRv
cDo1LjBwdDttYXJnaW4tYm90dG9tOjUuMHB0Ij4NCjxkaXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij5PbiBOb3YgMTcsIDIwMTUsIGF0IDg6MDYgQU0sIEluZy1XaGVyIENoZW4gJmx0OzxhIGhyZWY9
Im1haWx0bzppbmctd2hlci5jaGVuQGVyaWNzc29uLmNvbSI+aW5nLXdoZXIuY2hlbkBlcmljc3Nv
bi5jb208L2E+Jmd0OyB3cm90ZTo8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo5LjBwdDtmb250LWZhbWlseTomcXVvdDtIZWx2ZXRp
Y2EmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+Rm9yIHRoZSBuZXcgdG9wLWxldmVsIFVS
TiBuYW1lc3BhY2UsIGFyZSB0aGVyZSBhbnkgb2JqZWN0aW9uczxzcGFuIGNsYXNzPSJhcHBsZS1j
b252ZXJ0ZWQtc3BhY2UiPiZuYnNwOzwvc3Bhbj48YnI+DQp0byB1c2luZyAmcXVvdDtyZG5z4oCd
Pzwvc3Bhbj48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9ibG9ja3F1b3RlPg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj5PbmUgd291bGQgaGF2ZSB0byByZWdpc3RlciB0aGUgdG9wLWxldmVsIFVS
TiBuYW1lc3BhY2Ugd2l0aCBJQU5BLjxvOnA+PC9vOnA+PC9wPg0KPC9kaXY+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxkaXY+DQo8ZGl2Pg0KPGRpdj4NCjxk
aXY+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6YmxhY2siPk1haGVz
aCBKZXRoYW5hbmRhbmk8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxkaXY+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iY29sb3I6YmxhY2siPjxhIGhyZWY9Im1haWx0
bzptamV0aGFuYW5kYW5pQGdtYWlsLmNvbSI+bWpldGhhbmFuZGFuaUBnbWFpbC5jb208L2E+PG86
cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8ZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PHNwYW4gc3R5bGU9ImNvbG9yOmJsYWNrIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8
L2Rpdj4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImNvbG9yOmJs
YWNrIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiIHN0eWxlPSJtYXJnaW4tYm90dG9tOjEyLjBwdCI+PG86cD4mbmJzcDs8L286cD48L3A+
DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPC9k
aXY+DQo8L2Rpdj4NCjwvYm9keT4NCjwvaHRtbD4NCg==

--_000_BF6E0BD839774345977891C597F8B50C213C07E8eusaamb109erics_--


From nobody Tue Nov 17 08:41:31 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 7203E1A03A1 for <netmod@ietfa.amsl.com>; Tue, 17 Nov 2015 08:41:29 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.435
X-Spam-Level: 
X-Spam-Status: No, score=-4.435 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-0.585] 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 A05d45_BVlez for <netmod@ietfa.amsl.com>; Tue, 17 Nov 2015 08:41:27 -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 6DD2F1A039C for <netmod@ietf.org>; Tue, 17 Nov 2015 08:41:27 -0800 (PST)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id 1B7A1B8C; Tue, 17 Nov 2015 17:41: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 SrRJ0KSqF8er; Tue, 17 Nov 2015 17:41:25 +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, 17 Nov 2015 17:41:25 +0100 (CET)
Received: from localhost (demetrius3.jacobs-university.de [212.201.44.48]) by hermes.jacobs-university.de (Postfix) with ESMTP id 2C66F2004E; Tue, 17 Nov 2015 17:41:25 +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 sF7d2fe70yt2; Tue, 17 Nov 2015 17:41:24 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id E0E082003B; Tue, 17 Nov 2015 17:41:23 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id 9336D38E1560; Tue, 17 Nov 2015 17:41:22 +0100 (CET)
Date: Tue, 17 Nov 2015 17:41:21 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Ing-Wher Chen <ing-wher.chen@ericsson.com>
Message-ID: <20151117164120.GA13971@elstar.local>
Mail-Followup-To: Ing-Wher Chen <ing-wher.chen@ericsson.com>, "netmod@ietf.org" <netmod@ietf.org>
References: <BF6E0BD839774345977891C597F8B50C213BF7C1@eusaamb109.ericsson.se>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <BF6E0BD839774345977891C597F8B50C213BF7C1@eusaamb109.ericsson.se>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/RCYhzKvMd0BATTtxaE69nbvcj7g>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] New top-level URN namespace for enterprise YANG module namespaces
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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 17 Nov 2015 16:41:29 -0000

On Tue, Nov 17, 2015 at 04:06:26PM +0000, Ing-Wher Chen wrote:
> 
> With a brand new top-level URN namespace, the resulting
> enterprise YANG module namespace pattern would be something
> like "urn:rdns:com:example:...".
> 
> For the new top-level URN namespace, are there any objections 
> to using "rdns"?
>

I think you need to officially allocate such a namespace and I think
there is some kind of 'review board' that reviews allocation requests.
See RFC 3406 as a starting point. Existing registered namespaces
can be found here:

  http://www.iana.org/assignments/urn-namespaces/urn-namespaces.xhtml

/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 Nov 17 09:08:31 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 96F3D1A1B5C for <netmod@ietfa.amsl.com>; Tue, 17 Nov 2015 09:08:29 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level: 
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=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 R4LaWt1bx3OT for <netmod@ietfa.amsl.com>; Tue, 17 Nov 2015 09:08:27 -0800 (PST)
Received: from mail-lb0-x235.google.com (mail-lb0-x235.google.com [IPv6:2a00:1450:4010:c04::235]) (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 3FEAF1A1B5A for <netmod@ietf.org>; Tue, 17 Nov 2015 09:08:27 -0800 (PST)
Received: by lbbsy6 with SMTP id sy6so9534148lbb.2 for <netmod@ietf.org>; Tue, 17 Nov 2015 09:08:25 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks_com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=cGfDTBBgaHdEYFlZQSXrz/yyuvnAy3Lts4nwXdKg+XY=; b=dVvpaOLy096vx+raBvU2WGDQTeCNOkXOx4Xataij2ahUcHNT5QY3H9uPSf2RfD3EU4 fh2dkV3LOVBkEdH2xjpALNWwoUb4pQEkAXC5jzdGZR3fd1oSvSlHf9qdYxXJzp+bTrQG p6Ei2p2KSFSKQnsZSzV1VKtwOpgatrtLdn7kntNpiX7UwK8nma4WdrfjKr8IZ0tEnYpB CaPpy+dTSfFse4xDMWpJylafgcU9fcjet1sFPOgUYP+GwhdOcWWLrf3vIuF8W9o1j3c0 g9SLy8phGJPM+JYQg6PN8VvLggamHWkht+YRvPJ6Sr643XIl3dngTVLit+0uv9dxhM3D U99g==
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=cGfDTBBgaHdEYFlZQSXrz/yyuvnAy3Lts4nwXdKg+XY=; b=Ew1uTdHQ92AHWKorwSrKFPfWAe0/nAYngUBMluSMvPCNzd1DxBfAOmnfuujKIOsPj7 GNVb3Ezy5ibFquFKyCfqU39Ne/OpvWeQ7EUY9z4sSYDakdtRcID8a9zyxOMDAAqUBLdQ RcC9B+nypN6D3XHMXisRaZbXRW0io4gwMbP4cdRFNrJPwRnALCKNrnLUy4d8g44TU/nl SWN9zggyudw9I9YQgjQtEJCmbtD/hWyQ5hsbALyfXxaWD6E1Fgw7DYbncDIuMxo/23Ug fqjuW2Eu4LXgcBB+WP6hBh1xcfZPFZyiyfXU9CvZv9JA5laXTUbrmMVBIXgZ8Yf3OFNa uLZg==
X-Gm-Message-State: ALoCoQmAirASwyVWuihqvrmm/lddnQ+X5V5uHwaJVX43eWO9o16hOPXMgpsu7QETJUA0nBO24/qQ
MIME-Version: 1.0
X-Received: by 10.112.55.97 with SMTP id r1mr20706808lbp.119.1447780105004; Tue, 17 Nov 2015 09:08:25 -0800 (PST)
Received: by 10.112.144.106 with HTTP; Tue, 17 Nov 2015 09:08:24 -0800 (PST)
In-Reply-To: <7E2AD0E8-02DD-4D42-85BC-97A16E410F67@nic.cz>
References: <20151111134412.GA22783@elstar.local> <2B6DC0CD-1214-4503-95E4-DDF1E5E56A57@nic.cz> <20151111135919.GA22885@elstar.local> <A1BF519D-74B4-48FC-B003-83198DD1BD2D@nic.cz> <20151111153231.GB23082@elstar.local> <m2mvujofpg.fsf@birdie.labs.nic.cz> <20151112075111.GA25623@elstar.local> <CABCOCHQzYbyqB_t=JVR3X_Wqs_vf0wCUHWk-AVP6iGuKCsBXKw@mail.gmail.com> <82ED52D2-5F51-4C50-A1CC-CCB9090D9AF0@nic.cz> <CABCOCHTSvjoiOfkOGre_Vn3EmFPDgkCDeGg6p8qHmxvt0qBOLQ@mail.gmail.com> <20151116115551.GA6157@elstar.local> <CABCOCHRdLFjJq-Eh2PjTmR04KrUu=WarAL1UD7ehG6f1fOubbw@mail.gmail.com> <564AFF23.1090801@cisco.com> <7E2AD0E8-02DD-4D42-85BC-97A16E410F67@nic.cz>
Date: Tue, 17 Nov 2015 09:08:24 -0800
Message-ID: <CABCOCHS1AEiH+EYPSM0dY+uj88SHoH_Ywy65Cxb9WjeA1WB5AA@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Ladislav Lhotka <lhotka@nic.cz>
Content-Type: multipart/alternative; boundary=001a11c3f16adf4a410524bf9272
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/ox3MrfKyPJFpBI0QPN9Hs7CoP5U>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] JSON encoding of anyxml
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 17 Nov 2015 17:08:29 -0000

--001a11c3f16adf4a410524bf9272
Content-Type: text/plain; charset=UTF-8

On Tue, Nov 17, 2015 at 6:44 AM, Ladislav Lhotka <lhotka@nic.cz> wrote:

>
> > On 17 Nov 2015, at 11:19, Robert Wilton <rwilton@cisco.com> wrote:
> >
> > As a possible compromise, what about something like:
> >
> > The JSON encoding defines that anyxml may be encoded in whatever way the
> implementor finds useful, or even not at all.  If a preferred     custom
> encoding is not being used, then it is suggested that anyxml data be
> encoded as a string containing XML to maximize legacy interoperability.
>
> While this is quite complicated, I don't think it helps in any way. There
> are no anyxml objects that need to be encoded, so what an implementor finds
> useful is totally irrelevant. The yang-json spec should state what's
> permitted as the content of an anyxml instance in JSON encoding, and that's
> all. To this end, the current text is IMO sufficient, except that the
> "otherwise" part may be misleading - but it's not necessary.
>
> Note that XML-in-JSON-string has its share of problems and may not be
> interoperable either: the content of an anyxml instance in XML encoding
> needn't be a well-formed XML document.
>
>
So now anyxml includes XML that is not even well-formed?
This is news to me.  Maybe you mean it is a well-formed snippet
that may not be complete as an XML instance document.

You cannot say "MUST do X, otherwise do Y".  This is incorrect
use of RFC 2119 terminology.  If MUST is used, that is the only option.
You also need to explain exactly what interoperability is lost if the MUST
is not followed.  (e.g., mixed mode XML will not be translated properly to
JSON).


Andy



Lada
>
> >
> > Rob
> >
> >
> > On 16/11/2015 16:50, Andy Bierman wrote:
> >>
> >>
> >> On Mon, Nov 16, 2015 at 3:55 AM, Juergen Schoenwaelder <
> j.schoenwaelder@jacobs-university.de> wrote:
> >> On Sat, Nov 14, 2015 at 09:05:00AM -0800, Andy Bierman wrote:
> >> >
> >> > YANG 1.1 is going to take 2 more years if we slowly revisit every
> issue.
> >> > I thought the whole point of the issue tracker was to prevent this
> sort
> >> > of thing.   The rule should be "what new details have emerged that
> >> > should cause us to change the previous decision?"
> >> >
> >>
> >> Andy, please note that this is a discussion primarily around the JSON
> >> document and not around the YANG 1.1 document.
> >>
> >>
> >> That doesn't mean we haven't discussed this issue for a long time
> already.
> >> I thought we decided anyxml is not that interoperable and so we have
> >> anydata that is supposedly interoperable.
> >>
> >> So why try to constrain the JSON encoding?
> >> For anyone sending mixed mode XML encoded as JSON,
> >> they can get creative and do whatever they want.
> >>
> >>
> >> For everybody else, anydata is simple enough to encode and decode.
> >>
> >>
> >> /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
> >
>
> --
> Ladislav Lhotka, CZ.NIC Labs
> PGP Key ID: E74E8C0C
>
>
>
>
>

--001a11c3f16adf4a410524bf9272
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Tue, Nov 17, 2015 at 6:44 AM, Ladislav Lhotka <span dir=3D"ltr">&lt;=
<a href=3D"mailto:lhotka@nic.cz" target=3D"_blank">lhotka@nic.cz</a>&gt;</s=
pan> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex=
;border-left:1px #ccc solid;padding-left:1ex"><br>
&gt; On 17 Nov 2015, at 11:19, Robert Wilton &lt;<a href=3D"mailto:rwilton@=
cisco.com">rwilton@cisco.com</a>&gt; wrote:<br>
&gt;<br>
&gt; As a possible compromise, what about something like:<br>
&gt;<br>
&gt; The JSON encoding defines that anyxml may be encoded in whatever way t=
he implementor finds useful, or even not at all.=C2=A0 If a preferred=C2=A0=
 =C2=A0 =C2=A0custom encoding is not being used, then it is suggested that =
anyxml data be encoded as a string containing XML to maximize legacy intero=
perability.<br>
<br>
While this is quite complicated, I don&#39;t think it helps in any way. The=
re are no anyxml objects that need to be encoded, so what an implementor fi=
nds useful is totally irrelevant. The yang-json spec should state what&#39;=
s permitted as the content of an anyxml instance in JSON encoding, and that=
&#39;s all. To this end, the current text is IMO sufficient, except that th=
e &quot;otherwise&quot; part may be misleading - but it&#39;s not necessary=
.<br>
<br>
Note that XML-in-JSON-string has its share of problems and may not be inter=
operable either: the content of an anyxml instance in XML encoding needn&#3=
9;t be a well-formed XML document.<br>
<br></blockquote><div><br></div><div>So now anyxml includes XML that is not=
 even well-formed?</div><div>This is news to me.=C2=A0 Maybe you mean it is=
 a well-formed snippet</div><div>that may not be complete as an XML instanc=
e document.</div><div><br></div><div>You cannot say &quot;MUST do X, otherw=
ise do Y&quot;.=C2=A0 This is incorrect</div><div>use of RFC 2119 terminolo=
gy.=C2=A0 If MUST is used, that is the only option.</div><div>You also need=
 to explain exactly what interoperability is lost if the MUST</div><div>is =
not followed. =C2=A0(e.g., mixed mode XML will not be translated properly t=
o JSON).</div><div><br></div><div><br></div><div>Andy</div><div><br></div><=
div><br></div><div><br></div><blockquote class=3D"gmail_quote" style=3D"mar=
gin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Lada<br>
<br>
&gt;<br>
&gt; Rob<br>
&gt;<br>
&gt;<br>
&gt; On 16/11/2015 16:50, Andy Bierman wrote:<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; On Mon, Nov 16, 2015 at 3:55 AM, Juergen Schoenwaelder &lt;<a href=
=3D"mailto:j.schoenwaelder@jacobs-university.de">j.schoenwaelder@jacobs-uni=
versity.de</a>&gt; wrote:<br>
&gt;&gt; On Sat, Nov 14, 2015 at 09:05:00AM -0800, Andy Bierman wrote:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; YANG 1.1 is going to take 2 more years if we slowly revisit e=
very issue.<br>
&gt;&gt; &gt; I thought the whole point of the issue tracker was to prevent=
 this sort<br>
&gt;&gt; &gt; of thing.=C2=A0 =C2=A0The rule should be &quot;what new detai=
ls have emerged that<br>
&gt;&gt; &gt; should cause us to change the previous decision?&quot;<br>
&gt;&gt; &gt;<br>
&gt;&gt;<br>
&gt;&gt; Andy, please note that this is a discussion primarily around the J=
SON<br>
&gt;&gt; document and not around the YANG 1.1 document.<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; That doesn&#39;t mean we haven&#39;t discussed this issue for a lo=
ng time already.<br>
&gt;&gt; I thought we decided anyxml is not that interoperable and so we ha=
ve<br>
&gt;&gt; anydata that is supposedly interoperable.<br>
&gt;&gt;<br>
&gt;&gt; So why try to constrain the JSON encoding?<br>
&gt;&gt; For anyone sending mixed mode XML encoded as JSON,<br>
&gt;&gt; they can get creative and do whatever they want.<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; For everybody else, anydata is simple enough to encode and decode.=
<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; /js<br>
&gt;&gt;<br>
&gt;&gt; Andy<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; --<br>
&gt;&gt; Juergen Schoenwaelder=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Jaco=
bs University Bremen gGmbH<br>
&gt;&gt; Phone: +49 421 200 3587=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Campus Ri=
ng 1 | 28759 Bremen | Germany<br>
&gt;&gt; Fax:=C2=A0 =C2=A0+49 421 200 3103=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0&lt;<a href=3D"http://www.jacobs-university.de/" rel=3D"noreferrer" targ=
et=3D"_blank">http://www.jacobs-university.de/</a>&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; netmod mailing list<br>
&gt;&gt;<br>
&gt;&gt; <a href=3D"mailto:netmod@ietf.org">netmod@ietf.org</a><br>
&gt;&gt; <a href=3D"https://www.ietf.org/mailman/listinfo/netmod" rel=3D"no=
referrer" target=3D"_blank">https://www.ietf.org/mailman/listinfo/netmod</a=
><br>
&gt;<br>
<br>
--<br>
Ladislav Lhotka, CZ.NIC Labs<br>
PGP Key ID: E74E8C0C<br>
<br>
<br>
<br>
<br>
</blockquote></div><br></div></div>

--001a11c3f16adf4a410524bf9272--


From nobody Tue Nov 17 10:32:11 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 695521B32F3 for <netmod@ietfa.amsl.com>; Tue, 17 Nov 2015 10:32:10 -0800 (PST)
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 thKDDspDq_pZ for <netmod@ietfa.amsl.com>; Tue, 17 Nov 2015 10:32:08 -0800 (PST)
Received: from na01-bl2-obe.outbound.protection.outlook.com (mail-bl2on0138.outbound.protection.outlook.com [65.55.169.138]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id ACB081B32F6 for <netmod@ietf.org>; Tue, 17 Nov 2015 10:32:08 -0800 (PST)
Received: from BN3PR0501MB1442.namprd05.prod.outlook.com (10.160.117.151) by BN3PR0501MB1442.namprd05.prod.outlook.com (10.160.117.151) with Microsoft SMTP Server (TLS) id 15.1.325.17; Tue, 17 Nov 2015 18:32:06 +0000
Received: from BN3PR0501MB1442.namprd05.prod.outlook.com ([10.160.117.151]) by BN3PR0501MB1442.namprd05.prod.outlook.com ([10.160.117.151]) with mapi id 15.01.0325.019; Tue, 17 Nov 2015 18:32:06 +0000
From: Kent Watsen <kwatsen@juniper.net>
To: "netmod@ietf.org" <netmod@ietf.org>
Thread-Topic: draft netmod 94 minutes posted
Thread-Index: AQHRIWZCVNrfkutNUE6T1zoomY4ClA==
Date: Tue, 17 Nov 2015 18:32:06 +0000
Message-ID: <0CEFE89F-65C6-4C97-BC2E-723C9995BCE4@juniper.net>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/0.0.0.151105
authentication-results: spf=none (sender IP is ) smtp.mailfrom=kwatsen@juniper.net; 
x-ms-exchange-messagesentrepresentingtype: 1
x-originating-ip: [66.129.241.10]
x-microsoft-exchange-diagnostics: 1; BN3PR0501MB1442; 5:1sgYQJTbVO/2TuHGO8sUwzmUrUMqsWtlActLVxfB76JsIigHQ1kTKWCQ1bMJFbO34zjSf+RlrNCOcvpngxMLOMFN+oxojLIik2yHES+FG+maTS6xazYar2NA3+lrSqCBVMcpOxDMLAQX6MDfr61POA==; 24:nmWvlSsk+RD7Yp0XPQN+uxDvBw3xhxUsRvYSfZx9rPLQ6AZOe7qqarWiccbA2f9+5kmxaU+E+rHjJMVNxJDvfO0eUkaC6gTVjutw9c+Vdp4=; 20:1zFUuO0AGUMa/+o5s1fHeKAt7WYRtEaXU5h4oMu2bRxiToIacWnwPLuV4TkE1+AJcz8RAqDhY1aMyHNqRkIp+w==
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN3PR0501MB1442;
x-microsoft-antispam-prvs: <BN3PR0501MB1442964B2608AE0CD8A3EFDCA51D0@BN3PR0501MB1442.namprd05.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:;
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(2401047)(5005006)(520078)(8121501046)(10201501046)(3002001); SRVR:BN3PR0501MB1442; BCL:0; PCL:0; RULEID:; SRVR:BN3PR0501MB1442; 
x-forefront-prvs: 07630F72AD
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(6009001)(189002)(164054003)(199003)(5002640100001)(189998001)(81156007)(5001960100002)(83506001)(122556002)(586003)(87936001)(2351001)(10400500002)(19580395003)(82746002)(110136002)(107886002)(102836002)(4001350100001)(229853001)(66066001)(83716003)(2900100001)(97736004)(15975445007)(101416001)(11100500001)(105586002)(5007970100001)(99286002)(106116001)(54356999)(92566002)(2501003)(106356001)(558084003)(40100003)(5004730100002)(5008740100001)(50986999)(33656002)(86362001)(16236675004)(450100001)(36756003)(77096005)(104396002); DIR:OUT; SFP:1102; SCL:1; SRVR:BN3PR0501MB1442; H:BN3PR0501MB1442.namprd05.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; 
received-spf: None (protection.outlook.com: juniper.net does not designate permitted sender hosts)
spamdiagnosticoutput: 1:23
spamdiagnosticmetadata: NSPM
Content-Type: multipart/alternative; boundary="_000_0CEFE89F65C64C97BC2E723C9995BCE4junipernet_"
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Nov 2015 18:32:06.3489 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR0501MB1442
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/wvadDCLWUFnBLanMa9O9UKy2bzc>
Subject: [netmod] draft netmod 94 minutes posted
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 17 Nov 2015 18:32:10 -0000

--_000_0CEFE89F65C64C97BC2E723C9995BCE4junipernet_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

DQpBbGwsDQoNClRoZSBtaW51dGVzIGZvciB0aGUgdHdvIE5FVE1PRCBzZXNzaW9ucyBoYXZlIGJl
ZW4gcG9zdGVkOg0KDQogICAgaHR0cHM6Ly93d3cuaWV0Zi5vcmcvcHJvY2VlZGluZ3MvOTQvbWlu
dXRlcy9taW51dGVzLTk0LW5ldG1vZA0KDQpQbGVhc2UgcHJvdmlkZSBjb21tZW50cy9jb3JyZWN0
aW9ucyBvbiB0aGVzZSBkcmFmdCBtaW51dGVzIGJ5IFdlZCwgTm92IDI1dGguDQoNClBTOiBodWdl
IHRoYW5rcyB0byBJZ25hcyBhbmQgQW5kcmV3IGZvciBwdXR0aW5nIHRoZXNlIHRvZ2V0aGVyIQ0K
DQpUaGFua3MsDQpLZW50DQoNCg==

--_000_0CEFE89F65C64C97BC2E723C9995BCE4junipernet_
Content-Type: text/html; charset="utf-8"
Content-ID: <BF8C447B39FDF149A95C7EFC67B78910@namprd05.prod.outlook.com>
Content-Transfer-Encoding: base64

PGh0bWw+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0i
dGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjwvaGVhZD4NCjxib2R5IHN0eWxlPSJ3b3JkLXdy
YXA6IGJyZWFrLXdvcmQ7IC13ZWJraXQtbmJzcC1tb2RlOiBzcGFjZTsgLXdlYmtpdC1saW5lLWJy
ZWFrOiBhZnRlci13aGl0ZS1zcGFjZTsgY29sb3I6IHJnYigwLCAwLCAwKTsgZm9udC1zaXplOiAx
NHB4OyBmb250LWZhbWlseTogQ2FsaWJyaSwgc2Fucy1zZXJpZjsiPg0KPGRpdj48YnI+DQo8L2Rp
dj4NCjxkaXY+QWxsLDwvZGl2Pg0KPGRpdj48YnI+DQo8L2Rpdj4NCjxkaXY+VGhlIG1pbnV0ZXMg
Zm9yIHRoZSB0d28gTkVUTU9EIHNlc3Npb25zIGhhdmUgYmVlbiBwb3N0ZWQ6PC9kaXY+DQo8ZGl2
Pjxicj4NCjwvZGl2Pg0KPGRpdj4mbmJzcDsgJm5ic3A7IGh0dHBzOi8vd3d3LmlldGYub3JnL3By
b2NlZWRpbmdzLzk0L21pbnV0ZXMvbWludXRlcy05NC1uZXRtb2Q8L2Rpdj4NCjxkaXY+PGJyPg0K
PC9kaXY+DQo8ZGl2Pg0KPGRpdj5QbGVhc2UgcHJvdmlkZSBjb21tZW50cy9jb3JyZWN0aW9ucyBv
biB0aGVzZSBkcmFmdCBtaW51dGVzIGJ5IFdlZCwgTm92IDI1dGguPC9kaXY+DQo8L2Rpdj4NCjxk
aXY+PGJyPg0KPC9kaXY+DQo8ZGl2PlBTOiBodWdlIHRoYW5rcyB0byZuYnNwO0lnbmFzJm5ic3A7
YW5kIEFuZHJldyBmb3IgcHV0dGluZyB0aGVzZSB0b2dldGhlciE8L2Rpdj4NCjxkaXY+PGJyPg0K
PC9kaXY+DQo8ZGl2PlRoYW5rcyw8L2Rpdj4NCjxkaXY+S2VudDwvZGl2Pg0KPGRpdj48YnI+DQo8
L2Rpdj4NCjxkaXY+DQo8ZGl2IGlkPSJNQUNfT1VUTE9PS19TSUdOQVRVUkUiPjwvZGl2Pg0KPC9k
aXY+DQo8L2JvZHk+DQo8L2h0bWw+DQo=

--_000_0CEFE89F65C64C97BC2E723C9995BCE4junipernet_--


From nobody Tue Nov 17 10:43:50 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 24BA01B3000 for <netmod@ietfa.amsl.com>; Tue, 17 Nov 2015 10:43:48 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0
X-Spam-Level: 
X-Spam-Status: No, score=0 tagged_above=-999 required=5 tests=[BAYES_50=0.8, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_LOW=-0.7] 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 n7DUhLNVj4BU for <netmod@ietfa.amsl.com>; Tue, 17 Nov 2015 10:43:46 -0800 (PST)
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 E473B1B3327 for <netmod@ietf.org>; Tue, 17 Nov 2015 10:43:37 -0800 (PST)
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=dk20050327; d=mindspring.com; b=ayIbCL3CWwhkyrbvwdvzPJIEI2mbD3q3lwbMDNpOoslCZ8Kt2tlYTWqas4YA2Wfg; 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.32] (helo=elwamui-cypress.atl.sa.earthlink.net) by elasmtp-mealy.atl.sa.earthlink.net with esmtpa (Exim 4.67) (envelope-from <randy_presuhn@mindspring.com>) id 1ZylE5-00081B-1w for netmod@ietf.org; Tue, 17 Nov 2015 13:43:33 -0500
Received: from 76.254.53.34 by webmail.earthlink.net with HTTP; Tue, 17 Nov 2015 13:43:32 -0500
Message-ID: <30510216.1447785812941.JavaMail.root@elwamui-cypress.atl.sa.earthlink.net>
Date: Tue, 17 Nov 2015 10:43:32 -0800 (GMT-08:00)
From: Randy Presuhn <randy_presuhn@mindspring.com>
To: "netmod@ietf.org" <netmod@ietf.org>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-Mailer: EarthLink Zoo Mail 1.0
X-ELNK-Trace: 4488c18417c9426da92b9037bc8bcf44d4c20f6b8d69d88874d3f0892ff6d3edd7ab2be12fde00ea90148728367edfed350badd9bab72f9c350badd9bab72f9c
X-Originating-IP: 209.86.224.32
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/7sziOHfzzvx59mD4XbnJogHHIb8>
Subject: Re: [netmod] JSON encoding of anyxml
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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 17 Nov 2015 18:43:48 -0000

Hi -

> From: Robert Wilton
> Sent: Nov 17, 2015 2:19 AM
...
>    As a possible compromise, what about something like:
>
>    The JSON encoding defines that anyxml may be encoded in whatever way
>    the implementor finds useful, or even not at all.  If a preferred
>    custom encoding is not being used, then it is suggested that anyxml
>    data be encoded as a string containing XML to maximize legacy
>    interoperability.

For an "any" type to be conveyed with neither any indication of its
grammar nor of the encoding rules used to assemble that payload makes
me think that interoperability will only happen by lucky accident.

We've already established that it only requires a wave of a magic
wand for the recipient to know the *grammar* of the encoded data.
Is it going to take a second wave of another magic wand for the
recipient (or relay!) to guess what encoding rules have been used
for this value's payload?

Forgive the harsh words, but this seems truly and badly broken.

Randy


From nobody Tue Nov 17 12:03:58 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 B00CB1A878A for <netmod@ietfa.amsl.com>; Tue, 17 Nov 2015 12:03:57 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.236
X-Spam-Level: 
X-Spam-Status: No, score=-6.236 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, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-0.585] 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 dPhH3avPQbRn for <netmod@ietfa.amsl.com>; Tue, 17 Nov 2015 12:03:55 -0800 (PST)
Received: from mail.nic.cz (mail.nic.cz [217.31.204.67]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3ECE91A8785 for <netmod@ietf.org>; Tue, 17 Nov 2015 12:03:55 -0800 (PST)
Received: from [IPv6:2a01:5e0:29:ffff:60b3:1699:67d0:463d] (unknown [IPv6:2a01:5e0:29:ffff:60b3:1699:67d0:463d]) by mail.nic.cz (Postfix) with ESMTPSA id 982BD1819F0; Tue, 17 Nov 2015 21:03:53 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nic.cz; s=default; t=1447790633; bh=gLXjmOL7ZIZCCsA2jcMakSdYHwLp7ptTxVlqx4xmTYg=; h=From:Date:To; b=iOPurXQp3GgaZpu/sjDkm/0RsHkc20fpeGHWwh3xETHMJp+xrzGeObq+0KHedmb3S f5kswcc+cHqI+hqS9ELFXBV6966JwTEFdgGQEDJ2Wdqz5/Bk3JNSM5nCS/tBndOJ52 ay5zU+K3I9gYyjJKVLDunqjspU2wvR8CJlYbl6+8=
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
From: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <CABCOCHS1AEiH+EYPSM0dY+uj88SHoH_Ywy65Cxb9WjeA1WB5AA@mail.gmail.com>
Date: Tue, 17 Nov 2015 21:03:53 +0100
Content-Transfer-Encoding: quoted-printable
Message-Id: <1BFFCCAC-4CBF-4C76-A622-2D6DCBF892A0@nic.cz>
References: <20151111134412.GA22783@elstar.local> <2B6DC0CD-1214-4503-95E4-DDF1E5E56A57@nic.cz> <20151111135919.GA22885@elstar.local> <A1BF519D-74B4-48FC-B003-83198DD1BD2D@nic.cz> <20151111153231.GB23082@elstar.local> <m2mvujofpg.fsf@birdie.labs.nic.cz> <20151112075111.GA25623@elstar.local> <CABCOCHQzYbyqB_t=JVR3X_Wqs_vf0wCUHWk-AVP6iGuKCsBXKw@mail.gmail.com> <82ED52D2-5F51-4C50-A1CC-CCB9090D9AF0@nic.cz> <CABCOCHTSvjoiOfkOGre_Vn3EmFPDgkCDeGg6p8qHmxvt0qBOLQ@mail.gmail.com> <20151116115551.GA6157@elstar.local> <CABCOCHRdLFjJq-Eh2PjTmR04KrUu=WarAL1UD7ehG6f1fOubbw@mail.gmail.com> <564AFF23.1090801@cisco.com> <7E2AD0E8-02DD-4D42-85BC-97A16E410F67@nic.cz> <CABCOCHS1AEiH+EYPSM0dY+uj88SHoH_Ywy65Cxb9WjeA1WB5AA@mail.gmail.com>
To: Andy Bierman <andy@yumaworks.com>
X-Mailer: Apple Mail (2.3096.5)
X-Virus-Scanned: clamav-milter 0.98.7 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/zhrOC50dQAv4ZkKVcJDb03jUd1c>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] JSON encoding of anyxml
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 17 Nov 2015 20:03:57 -0000

> On 17 Nov 2015, at 18:08, Andy Bierman <andy@yumaworks.com> wrote:
>=20
>=20
>=20
> On Tue, Nov 17, 2015 at 6:44 AM, Ladislav Lhotka <lhotka@nic.cz> =
wrote:
>=20
> > On 17 Nov 2015, at 11:19, Robert Wilton <rwilton@cisco.com> wrote:
> >
> > As a possible compromise, what about something like:
> >
> > The JSON encoding defines that anyxml may be encoded in whatever way =
the implementor finds useful, or even not at all.  If a preferred     =
custom encoding is not being used, then it is suggested that anyxml data =
be encoded as a string containing XML to maximize legacy =
interoperability.
>=20
> While this is quite complicated, I don't think it helps in any way. =
There are no anyxml objects that need to be encoded, so what an =
implementor finds useful is totally irrelevant. The yang-json spec =
should state what's permitted as the content of an anyxml instance in =
JSON encoding, and that's all. To this end, the current text is IMO =
sufficient, except that the "otherwise" part may be misleading - but =
it's not necessary.
>=20
> Note that XML-in-JSON-string has its share of problems and may not be =
interoperable either: the content of an anyxml instance in XML encoding =
needn't be a well-formed XML document.
>=20
>=20
> So now anyxml includes XML that is not even well-formed?

Sure. First, in the XML encoding the anyxml chunk may inherit namespace =
and entity declarations from the outer context. This could be corrected =
by adding these declarations to the JSON string. But then also, if we =
have

anyxml foo;

then this is a valid XML encoding

<foo>
  <bar/>
  <baz/>
</foo>

but the JSON string value

"foo": "<foo/><bar/>"  =20

is not a well-formed XML document because it doesn't have a single =
document element.

> This is news to me.  Maybe you mean it is a well-formed snippet
> that may not be complete as an XML instance document.
>=20
> You cannot say "MUST do X, otherwise do Y".  This is incorrect
> use of RFC 2119 terminology.  If MUST is used, that is the only =
option.

OK, I will reformulate it.

> You also need to explain exactly what interoperability is lost if the =
MUST
> is not followed.  (e.g., mixed mode XML will not be translated =
properly to JSON).

If the MUST isn't followed, then the interoperability problems that =
motivated I-JSON restrictions come into play. It has nothing to do with =
mixed XML content - translation between JSON and XML (and vice versa) in =
general cannot be guaranteed.

Lada

>=20
>=20
> Andy
>=20
>=20
>=20
> Lada
>=20
> >
> > Rob
> >
> >
> > On 16/11/2015 16:50, Andy Bierman wrote:
> >>
> >>
> >> On Mon, Nov 16, 2015 at 3:55 AM, Juergen Schoenwaelder =
<j.schoenwaelder@jacobs-university.de> wrote:
> >> On Sat, Nov 14, 2015 at 09:05:00AM -0800, Andy Bierman wrote:
> >> >
> >> > YANG 1.1 is going to take 2 more years if we slowly revisit every =
issue.
> >> > I thought the whole point of the issue tracker was to prevent =
this sort
> >> > of thing.   The rule should be "what new details have emerged =
that
> >> > should cause us to change the previous decision?"
> >> >
> >>
> >> Andy, please note that this is a discussion primarily around the =
JSON
> >> document and not around the YANG 1.1 document.
> >>
> >>
> >> That doesn't mean we haven't discussed this issue for a long time =
already.
> >> I thought we decided anyxml is not that interoperable and so we =
have
> >> anydata that is supposedly interoperable.
> >>
> >> So why try to constrain the JSON encoding?
> >> For anyone sending mixed mode XML encoded as JSON,
> >> they can get creative and do whatever they want.
> >>
> >>
> >> For everybody else, anydata is simple enough to encode and decode.
> >>
> >>
> >> /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
> >
>=20
> --
> Ladislav Lhotka, CZ.NIC Labs
> PGP Key ID: E74E8C0C
>=20
>=20
>=20
>=20
>=20

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





From nobody Tue Nov 17 12:11:50 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 E5C491A87C1 for <netmod@ietfa.amsl.com>; Tue, 17 Nov 2015 12:11:48 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.236
X-Spam-Level: 
X-Spam-Status: No, score=-1.236 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, RP_MATCHES_RCVD=-0.585] 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 1V62o8N7QMii for <netmod@ietfa.amsl.com>; Tue, 17 Nov 2015 12:11:47 -0800 (PST)
Received: from mail.nic.cz (mail.nic.cz [IPv6:2001:1488:800:400::400]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4EBB01A87C6 for <netmod@ietf.org>; Tue, 17 Nov 2015 12:11:47 -0800 (PST)
Received: from [IPv6:2a01:5e0:29:ffff:60b3:1699:67d0:463d] (unknown [IPv6:2a01:5e0:29:ffff:60b3:1699:67d0:463d]) by mail.nic.cz (Postfix) with ESMTPSA id D9E87181AC8; Tue, 17 Nov 2015 21:11:45 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nic.cz; s=default; t=1447791105; bh=sAAabPrHPZYg6bBordjJ/vc/dX1C75S+Gl/jqK/ncNc=; h=From:Date:To; b=WpPOf71YIbf7IajPLnv8hSHEDvQQC+pNicISJ1D//KKjacOIvnXKW/VYq6Qnk0hla HdgNH2WhQrqo70+2IiiZkE/6W7/LHtXnTEG8AekGVMInJH5mfhWE/HXP/Z5GcDBPHI J+FGFuQ8hsLXLMDubNVJwhCZXfnR/roJIY3CsBVM=
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
From: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <1BFFCCAC-4CBF-4C76-A622-2D6DCBF892A0@nic.cz>
Date: Tue, 17 Nov 2015 21:11:45 +0100
Content-Transfer-Encoding: quoted-printable
Message-Id: <49023980-5215-4716-B624-5FEE51CB7705@nic.cz>
References: <20151111134412.GA22783@elstar.local> <2B6DC0CD-1214-4503-95E4-DDF1E5E56A57@nic.cz> <20151111135919.GA22885@elstar.local> <A1BF519D-74B4-48FC-B003-83198DD1BD2D@nic.cz> <20151111153231.GB23082@elstar.local> <m2mvujofpg.fsf@birdie.labs.nic.cz> <20151112075111.GA25623@elstar.local> <CABCOCHQzYbyqB_t=JVR3X_Wqs_vf0wCUHWk-AVP6iGuKCsBXKw@mail.gmail.com> <82ED52D2-5F51-4C50-A1CC-CCB9090D9AF0@nic.cz> <CABCOCHTSvjoiOfkOGre_Vn3EmFPDgkCDeGg6p8qHmxvt0qBOLQ@mail.gmail.com> <20151116115551.GA6157@elstar.local> <CABCOCHRdLFjJq-Eh2PjTmR04KrUu=WarAL1UD7ehG6f1fOubbw@mail.gmail.com> <564AFF23.1090801@cisco.com> <7E2AD0E8-02DD-4D42-85BC-97A16E410F67@nic.cz> <CABCOCHS1AEiH+EYPSM0dY+uj88SHoH_Ywy65Cxb9WjeA1WB5AA@mail.gmail.com> <1BFFCCAC-4CBF-4C76-A622-2D6DCBF892A0@nic.cz>
To: Andy Bierman <andy@yumaworks.com>
X-Mailer: Apple Mail (2.3096.5)
X-Virus-Scanned: clamav-milter 0.98.7 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/avRoVtEFpmpu1kElzyS5-YeLD94>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] JSON encoding of anyxml
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 17 Nov 2015 20:11:49 -0000

> On 17 Nov 2015, at 21:03, Ladislav Lhotka <lhotka@nic.cz> wrote:
>=20
>>=20
>> On 17 Nov 2015, at 18:08, Andy Bierman <andy@yumaworks.com> wrote:
>>=20
>>=20
>>=20
>> On Tue, Nov 17, 2015 at 6:44 AM, Ladislav Lhotka <lhotka@nic.cz> =
wrote:
>>=20
>>> On 17 Nov 2015, at 11:19, Robert Wilton <rwilton@cisco.com> wrote:
>>>=20
>>> As a possible compromise, what about something like:
>>>=20
>>> The JSON encoding defines that anyxml may be encoded in whatever way =
the implementor finds useful, or even not at all.  If a preferred     =
custom encoding is not being used, then it is suggested that anyxml data =
be encoded as a string containing XML to maximize legacy =
interoperability.
>>=20
>> While this is quite complicated, I don't think it helps in any way. =
There are no anyxml objects that need to be encoded, so what an =
implementor finds useful is totally irrelevant. The yang-json spec =
should state what's permitted as the content of an anyxml instance in =
JSON encoding, and that's all. To this end, the current text is IMO =
sufficient, except that the "otherwise" part may be misleading - but =
it's not necessary.
>>=20
>> Note that XML-in-JSON-string has its share of problems and may not be =
interoperable either: the content of an anyxml instance in XML encoding =
needn't be a well-formed XML document.
>>=20
>>=20
>> So now anyxml includes XML that is not even well-formed?
>=20
> Sure. First, in the XML encoding the anyxml chunk may inherit =
namespace and entity declarations from the outer context. This could be =
corrected by adding these declarations to the JSON string. But then =
also, if we have
>=20
> anyxml foo;
>=20
> then this is a valid XML encoding
>=20
> <foo>
>  <bar/>
>  <baz/>
> </foo>
>=20
> but the JSON string value
>=20
> "foo": "<foo/><bar/>"

Sorry, this was supposed to be

"foo" : "<bar/><baz/>"

Lada

>  =20
>=20
> is not a well-formed XML document because it doesn't have a single =
document element.
>=20
>> This is news to me.  Maybe you mean it is a well-formed snippet
>> that may not be complete as an XML instance document.
>>=20
>> You cannot say "MUST do X, otherwise do Y".  This is incorrect
>> use of RFC 2119 terminology.  If MUST is used, that is the only =
option.
>=20
> OK, I will reformulate it.
>=20
>> You also need to explain exactly what interoperability is lost if the =
MUST
>> is not followed.  (e.g., mixed mode XML will not be translated =
properly to JSON).
>=20
> If the MUST isn't followed, then the interoperability problems that =
motivated I-JSON restrictions come into play. It has nothing to do with =
mixed XML content - translation between JSON and XML (and vice versa) in =
general cannot be guaranteed.
>=20
> Lada
>=20
>>=20
>>=20
>> Andy
>>=20
>>=20
>>=20
>> Lada
>>=20
>>>=20
>>> Rob
>>>=20
>>>=20
>>> On 16/11/2015 16:50, Andy Bierman wrote:
>>>>=20
>>>>=20
>>>> On Mon, Nov 16, 2015 at 3:55 AM, Juergen Schoenwaelder =
<j.schoenwaelder@jacobs-university.de> wrote:
>>>> On Sat, Nov 14, 2015 at 09:05:00AM -0800, Andy Bierman wrote:
>>>>>=20
>>>>> YANG 1.1 is going to take 2 more years if we slowly revisit every =
issue.
>>>>> I thought the whole point of the issue tracker was to prevent this =
sort
>>>>> of thing.   The rule should be "what new details have emerged that
>>>>> should cause us to change the previous decision?"
>>>>>=20
>>>>=20
>>>> Andy, please note that this is a discussion primarily around the =
JSON
>>>> document and not around the YANG 1.1 document.
>>>>=20
>>>>=20
>>>> That doesn't mean we haven't discussed this issue for a long time =
already.
>>>> I thought we decided anyxml is not that interoperable and so we =
have
>>>> anydata that is supposedly interoperable.
>>>>=20
>>>> So why try to constrain the JSON encoding?
>>>> For anyone sending mixed mode XML encoded as JSON,
>>>> they can get creative and do whatever they want.
>>>>=20
>>>>=20
>>>> For everybody else, anydata is simple enough to encode and decode.
>>>>=20
>>>>=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
>>>>=20
>>>>=20
>>>> _______________________________________________
>>>> netmod mailing list
>>>>=20
>>>> netmod@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/netmod
>>>=20
>>=20
>> --
>> Ladislav Lhotka, CZ.NIC Labs
>> PGP Key ID: E74E8C0C
>>=20
>>=20
>>=20
>>=20
>>=20
>=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 Tue Nov 17 12:14: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 6341B1A8847 for <netmod@ietfa.amsl.com>; Tue, 17 Nov 2015 12:14:49 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level: 
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=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 ysWKBrR_7BU1 for <netmod@ietfa.amsl.com>; Tue, 17 Nov 2015 12:14:47 -0800 (PST)
Received: from mail-lb0-x235.google.com (mail-lb0-x235.google.com [IPv6:2a00:1450:4010:c04::235]) (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 677A31A8839 for <netmod@ietf.org>; Tue, 17 Nov 2015 12:14:47 -0800 (PST)
Received: by lbbsy6 with SMTP id sy6so12443426lbb.2 for <netmod@ietf.org>; Tue, 17 Nov 2015 12:14:45 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks_com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=vUo9P49GJIQc+AzXFvAaXspBzhybIpq6xsNNqXHJ6NM=; b=Ki5jAf0TI+2+71h+dwArs//Jo1w8X9wS+rprPvdyrOw2u+MIVwFlkun51I3RYTg//F yTfvFckKrq+db2LPFKn5mvfkshRc5uurlZM9O924FGRlnGb3RQVB0uxnF7yPEcGBGa7t mqxHkGcsqAMiU/s42r2WP/uj+vtg7h1xNwJTSDH2p8R6PRAFYuBO/J72LRz1yfe9ZK3U N+PISOvfVI1z/MeZrLyQeHo1FSG+DraKyXX+Cz/FWl0k3azouBIwa7JlBesNwGbd+3cs izoKPylci2w2kAGpAwhvizzN6K/AsZHP/PEmJfNL3sQPRVszfuoKtBMg0OxPGglJmfc8 5R3g==
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=vUo9P49GJIQc+AzXFvAaXspBzhybIpq6xsNNqXHJ6NM=; b=HO+jwna7z3YEIsysy3/sWxf9onES/UAp+l6zR807rDq0ljwGOoKWjwkTT/x/IK3e0l EFV5C+BZZU/lNi4c52QGLGiP5TpOftmZFn5ek+bTJWCEQcIkqSa0uCZWJS40ew7/856m MjONLFEweDFXtMNHPv9Te/dt7sWoFcUzo/SRSugCSrkvBTIfLK3NeQgLzbpCBBp2X16/ jLFBNY+QI8GzG8iRQ/vOrBbe5uAq9aJzsjO2Z8Cg923mGqCN2VTg1HNUTDSMrPq3bDSt FOaoMFHC9S9owMAZAFf0pkNdwBzHrY4HDbb/nh6luuIDVPtxN/pvPo6BH19HWYeQkyAQ 2P3g==
X-Gm-Message-State: ALoCoQnTHd0MV//mSKs/01LKfCykhlEsECkAy9NtGtUSxPSO2sY5SrztcwpQ4scSOoA2F/ATbcUM
MIME-Version: 1.0
X-Received: by 10.112.140.197 with SMTP id ri5mr21196333lbb.65.1447791285571;  Tue, 17 Nov 2015 12:14:45 -0800 (PST)
Received: by 10.112.144.106 with HTTP; Tue, 17 Nov 2015 12:14:45 -0800 (PST)
In-Reply-To: <30510216.1447785812941.JavaMail.root@elwamui-cypress.atl.sa.earthlink.net>
References: <30510216.1447785812941.JavaMail.root@elwamui-cypress.atl.sa.earthlink.net>
Date: Tue, 17 Nov 2015 12:14:45 -0800
Message-ID: <CABCOCHSYNm3ix8jTH0vrzM+ihwaUMqsXDAmAMYrTFsEJo7jqbQ@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Randy Presuhn <randy_presuhn@mindspring.com>
Content-Type: multipart/alternative; boundary=001a11c25b46492c7c0524c22d31
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/wBHzNGyyzl7Qc3aY9ZHyHQhBRfg>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] JSON encoding of anyxml
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 17 Nov 2015 20:14:49 -0000

--001a11c25b46492c7c0524c22d31
Content-Type: text/plain; charset=UTF-8

On Tue, Nov 17, 2015 at 10:43 AM, Randy Presuhn <
randy_presuhn@mindspring.com> wrote:

> Hi -
>
> > From: Robert Wilton
> > Sent: Nov 17, 2015 2:19 AM
> ...
> >    As a possible compromise, what about something like:
> >
> >    The JSON encoding defines that anyxml may be encoded in whatever way
> >    the implementor finds useful, or even not at all.  If a preferred
> >    custom encoding is not being used, then it is suggested that anyxml
> >    data be encoded as a string containing XML to maximize legacy
> >    interoperability.
>
> For an "any" type to be conveyed with neither any indication of its
> grammar nor of the encoding rules used to assemble that payload makes
> me think that interoperability will only happen by lucky accident.
>
> We've already established that it only requires a wave of a magic
> wand for the recipient to know the *grammar* of the encoded data.
> Is it going to take a second wave of another magic wand for the
> recipient (or relay!) to guess what encoding rules have been used
> for this value's payload?
>
> Forgive the harsh words, but this seems truly and badly broken.
>
>

If I had a datastore in my server that stored mixed-mode XML,
then it would be a problem to send those datastore contents in JSON.
Since no server actually supports this, I don't see the problem.
IMO anyxml NEVER worked for this purpose and still doesn't.


Randy
>

Andy


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

--001a11c25b46492c7c0524c22d31
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Tue, Nov 17, 2015 at 10:43 AM, Randy Presuhn <span dir=3D"ltr">&lt;<=
a href=3D"mailto:randy_presuhn@mindspring.com" target=3D"_blank">randy_pres=
uhn@mindspring.com</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quot=
e" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">=
Hi -<br>
<br>
&gt; From: Robert Wilton<br>
&gt; Sent: Nov 17, 2015 2:19 AM<br>
...<br>
&gt;=C2=A0 =C2=A0 As a possible compromise, what about something like:<br>
&gt;<br>
&gt;=C2=A0 =C2=A0 The JSON encoding defines that anyxml may be encoded in w=
hatever way<br>
&gt;=C2=A0 =C2=A0 the implementor finds useful, or even not at all.=C2=A0 I=
f a preferred<br>
&gt;=C2=A0 =C2=A0 custom encoding is not being used, then it is suggested t=
hat anyxml<br>
&gt;=C2=A0 =C2=A0 data be encoded as a string containing XML to maximize le=
gacy<br>
&gt;=C2=A0 =C2=A0 interoperability.<br>
<br>
For an &quot;any&quot; type to be conveyed with neither any indication of i=
ts<br>
grammar nor of the encoding rules used to assemble that payload makes<br>
me think that interoperability will only happen by lucky accident.<br>
<br>
We&#39;ve already established that it only requires a wave of a magic<br>
wand for the recipient to know the *grammar* of the encoded data.<br>
Is it going to take a second wave of another magic wand for the<br>
recipient (or relay!) to guess what encoding rules have been used<br>
for this value&#39;s payload?<br>
<br>
Forgive the harsh words, but this seems truly and badly broken.<br>
<br></blockquote><div><br></div><div><br></div><div>If I had a datastore in=
 my server that stored mixed-mode XML,</div><div>then it would be a problem=
 to send those datastore contents in JSON.</div><div>Since no server actual=
ly supports this, I don&#39;t see the problem.</div><div>IMO anyxml NEVER w=
orked for this purpose and still doesn&#39;t.</div><div><br></div><div><br>=
</div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-l=
eft:1px #ccc solid;padding-left:1ex">
Randy<br></blockquote><div><br></div><div>Andy</div><div>=C2=A0</div><block=
quote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc=
 solid;padding-left:1ex">
<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" rel=3D"noreferrer"=
 target=3D"_blank">https://www.ietf.org/mailman/listinfo/netmod</a><br>
</blockquote></div><br></div></div>

--001a11c25b46492c7c0524c22d31--


From nobody Tue Nov 17 12:18:47 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 B09101A90E0 for <netmod@ietfa.amsl.com>; Tue, 17 Nov 2015 12:18:45 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level: 
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=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 dHCcnKEKAods for <netmod@ietfa.amsl.com>; Tue, 17 Nov 2015 12:18:43 -0800 (PST)
Received: from mail-lb0-x233.google.com (mail-lb0-x233.google.com [IPv6:2a00:1450:4010:c04::233]) (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 1E28C1A90D4 for <netmod@ietf.org>; Tue, 17 Nov 2015 12:18:34 -0800 (PST)
Received: by lbbkw15 with SMTP id kw15so12588828lbb.0 for <netmod@ietf.org>; Tue, 17 Nov 2015 12:18:33 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks_com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=pmuvmhAJUv5/VjMIc38wm6b7tozM6M7Rtm11Y+GlhUw=; b=Q8KplWXLl2BEzDJpsaNaEt0Mp+zkUPjK0n2W7yuwWKmoIbWScux5iAIgrfcuh9rQug q86On60FXJEBWGHxDcmysvV+7wqq3shLxJUyf8cNFZWeIsb/1QgPgkXaZu9M+OmazeF1 bC+RgUzqqtu3t7a4CktGg0Fex8DON3Cb1/ZYg5Ph1vVtmCNoyShuyggn6NEmsvomNNBJ ivMa2y3pHRtYuxTullLJodcJFEU5vHtQKjWMyzl0aFw3JF2+PoN2/wCFKxvkRSMl8A/S St9DprkNdkGe2bYNepLpXOPQvmIm6O8KhzOJg7zLFOpnFQcY4YISlGdMlLPaU2ukRenB ryrQ==
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=pmuvmhAJUv5/VjMIc38wm6b7tozM6M7Rtm11Y+GlhUw=; b=Ft2olUrnQS/Dl/t10nylSy8JWaTIrMpl2DjV9k0Txxye0ISlkF+J0nOzUQmWU/BhLn qvJkZX8QmQYb4H5+lySZwad2CRKK/vl6OE7Md0kFDCLPBZU3bQNU+LeblqMTlu/BrRkI 1NSU2lyO3hFErPV23JdIiZ7I+gIcIi3cHY7wDqbtRequeHJsHo5Sg+s43XCUQPgh+qsA PDju4S0eoR8PL9LDFXMHQJlhIer7e//+A35HlwsvWI6+0lSYHE65rhrGUaylzbd58ZFu I+/UPMbaWkKtWPG4lLOGVa3SYbmZyc+QilXiULwHrKNm5LTX7t9TltsfYj9jvQKRk2Jb U60Q==
X-Gm-Message-State: ALoCoQnsRazeyYHE8s2a+rJW3iy9/JIhINre93RBzZOxtt2B+O8yn2iVaCv5WhjFWbXyDnGo80zi
MIME-Version: 1.0
X-Received: by 10.112.156.39 with SMTP id wb7mr4843111lbb.96.1447791513072; Tue, 17 Nov 2015 12:18:33 -0800 (PST)
Received: by 10.112.144.106 with HTTP; Tue, 17 Nov 2015 12:18:32 -0800 (PST)
In-Reply-To: <49023980-5215-4716-B624-5FEE51CB7705@nic.cz>
References: <20151111134412.GA22783@elstar.local> <2B6DC0CD-1214-4503-95E4-DDF1E5E56A57@nic.cz> <20151111135919.GA22885@elstar.local> <A1BF519D-74B4-48FC-B003-83198DD1BD2D@nic.cz> <20151111153231.GB23082@elstar.local> <m2mvujofpg.fsf@birdie.labs.nic.cz> <20151112075111.GA25623@elstar.local> <CABCOCHQzYbyqB_t=JVR3X_Wqs_vf0wCUHWk-AVP6iGuKCsBXKw@mail.gmail.com> <82ED52D2-5F51-4C50-A1CC-CCB9090D9AF0@nic.cz> <CABCOCHTSvjoiOfkOGre_Vn3EmFPDgkCDeGg6p8qHmxvt0qBOLQ@mail.gmail.com> <20151116115551.GA6157@elstar.local> <CABCOCHRdLFjJq-Eh2PjTmR04KrUu=WarAL1UD7ehG6f1fOubbw@mail.gmail.com> <564AFF23.1090801@cisco.com> <7E2AD0E8-02DD-4D42-85BC-97A16E410F67@nic.cz> <CABCOCHS1AEiH+EYPSM0dY+uj88SHoH_Ywy65Cxb9WjeA1WB5AA@mail.gmail.com> <1BFFCCAC-4CBF-4C76-A622-2D6DCBF892A0@nic.cz> <49023980-5215-4716-B624-5FEE51CB7705@nic.cz>
Date: Tue, 17 Nov 2015 12:18:32 -0800
Message-ID: <CABCOCHS7K_-OXgM+PsHFDepGZRrvcDX1JrOOkj4FM0zecRQ0cA@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Ladislav Lhotka <lhotka@nic.cz>
Content-Type: multipart/alternative; boundary=089e0122971ed892380524c23ae9
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/ZxaOK7DDcRBN05H_wUO3sGJ__M0>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] JSON encoding of anyxml
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 17 Nov 2015 20:18:45 -0000

--089e0122971ed892380524c23ae9
Content-Type: text/plain; charset=UTF-8

On Tue, Nov 17, 2015 at 12:11 PM, Ladislav Lhotka <lhotka@nic.cz> wrote:

>
> > On 17 Nov 2015, at 21:03, Ladislav Lhotka <lhotka@nic.cz> wrote:
> >
> >>
> >> On 17 Nov 2015, at 18:08, Andy Bierman <andy@yumaworks.com> wrote:
> >>
> >>
> >>
> >> On Tue, Nov 17, 2015 at 6:44 AM, Ladislav Lhotka <lhotka@nic.cz> wrote:
> >>
> >>> On 17 Nov 2015, at 11:19, Robert Wilton <rwilton@cisco.com> wrote:
> >>>
> >>> As a possible compromise, what about something like:
> >>>
> >>> The JSON encoding defines that anyxml may be encoded in whatever way
> the implementor finds useful, or even not at all.  If a preferred
>  custom encoding is not being used, then it is suggested that anyxml data
> be encoded as a string containing XML to maximize legacy interoperability.
> >>
> >> While this is quite complicated, I don't think it helps in any way.
> There are no anyxml objects that need to be encoded, so what an implementor
> finds useful is totally irrelevant. The yang-json spec should state what's
> permitted as the content of an anyxml instance in JSON encoding, and that's
> all. To this end, the current text is IMO sufficient, except that the
> "otherwise" part may be misleading - but it's not necessary.
> >>
> >> Note that XML-in-JSON-string has its share of problems and may not be
> interoperable either: the content of an anyxml instance in XML encoding
> needn't be a well-formed XML document.
> >>
> >>
> >> So now anyxml includes XML that is not even well-formed?
> >
> > Sure. First, in the XML encoding the anyxml chunk may inherit namespace
> and entity declarations from the outer context. This could be corrected by
> adding these declarations to the JSON string. But then also, if we have
> >
> > anyxml foo;
> >
> > then this is a valid XML encoding
> >
> > <foo>
> >  <bar/>
> >  <baz/>
> > </foo>
> >
>


(!) The internal representation of data is implementation-specific.



> > but the JSON string value
> >
> > "foo": "<foo/><bar/>"
>
> Sorry, this was supposed to be
>
> "foo" : "<bar/><baz/>"
>
>

If the internal server code generates complex nodes they will
be rendered correctly.

   { "foo" : {
        "bar":[null],
        "baz":[null]
      }
   }

This is what our server will generate if the internal representation
would be rendered in XML as you describe. This encoding can be
easily converted to XML.




> Lada
>


Andy



>
> >
> >
> > is not a well-formed XML document because it doesn't have a single
> document element.
> >
> >> This is news to me.  Maybe you mean it is a well-formed snippet
> >> that may not be complete as an XML instance document.
> >>
> >> You cannot say "MUST do X, otherwise do Y".  This is incorrect
> >> use of RFC 2119 terminology.  If MUST is used, that is the only option.
> >
> > OK, I will reformulate it.
> >
> >> You also need to explain exactly what interoperability is lost if the
> MUST
> >> is not followed.  (e.g., mixed mode XML will not be translated properly
> to JSON).
> >
> > If the MUST isn't followed, then the interoperability problems that
> motivated I-JSON restrictions come into play. It has nothing to do with
> mixed XML content - translation between JSON and XML (and vice versa) in
> general cannot be guaranteed.
> >
> > Lada
> >
> >>
> >>
> >> Andy
> >>
> >>
> >>
> >> Lada
> >>
> >>>
> >>> Rob
> >>>
> >>>
> >>> On 16/11/2015 16:50, Andy Bierman wrote:
> >>>>
> >>>>
> >>>> On Mon, Nov 16, 2015 at 3:55 AM, Juergen Schoenwaelder <
> j.schoenwaelder@jacobs-university.de> wrote:
> >>>> On Sat, Nov 14, 2015 at 09:05:00AM -0800, Andy Bierman wrote:
> >>>>>
> >>>>> YANG 1.1 is going to take 2 more years if we slowly revisit every
> issue.
> >>>>> I thought the whole point of the issue tracker was to prevent this
> sort
> >>>>> of thing.   The rule should be "what new details have emerged that
> >>>>> should cause us to change the previous decision?"
> >>>>>
> >>>>
> >>>> Andy, please note that this is a discussion primarily around the JSON
> >>>> document and not around the YANG 1.1 document.
> >>>>
> >>>>
> >>>> That doesn't mean we haven't discussed this issue for a long time
> already.
> >>>> I thought we decided anyxml is not that interoperable and so we have
> >>>> anydata that is supposedly interoperable.
> >>>>
> >>>> So why try to constrain the JSON encoding?
> >>>> For anyone sending mixed mode XML encoded as JSON,
> >>>> they can get creative and do whatever they want.
> >>>>
> >>>>
> >>>> For everybody else, anydata is simple enough to encode and decode.
> >>>>
> >>>>
> >>>> /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
> >>>
> >>
> >> --
> >> Ladislav Lhotka, CZ.NIC Labs
> >> PGP Key ID: E74E8C0C
> >>
> >>
> >>
> >>
> >>
> >
> > --
> > Ladislav Lhotka, CZ.NIC Labs
> > PGP Key ID: E74E8C0C
> >
> >
> >
> >
> > _______________________________________________
> > netmod mailing list
> > netmod@ietf.org
> > https://www.ietf.org/mailman/listinfo/netmod
>
> --
> Ladislav Lhotka, CZ.NIC Labs
> PGP Key ID: E74E8C0C
>
>
>
>
>

--089e0122971ed892380524c23ae9
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Tue, Nov 17, 2015 at 12:11 PM, 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 .8e=
x;border-left:1px #ccc solid;padding-left:1ex"><br>
&gt; On 17 Nov 2015, at 21:03, Ladislav Lhotka &lt;<a href=3D"mailto:lhotka=
@nic.cz">lhotka@nic.cz</a>&gt; wrote:<br>
&gt;<br>
&gt;&gt;<br>
&gt;&gt; On 17 Nov 2015, at 18:08, Andy Bierman &lt;<a href=3D"mailto:andy@=
yumaworks.com">andy@yumaworks.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; On Tue, Nov 17, 2015 at 6:44 AM, Ladislav Lhotka &lt;<a href=3D"ma=
ilto:lhotka@nic.cz">lhotka@nic.cz</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt;&gt; On 17 Nov 2015, at 11:19, Robert Wilton &lt;<a href=3D"mailto:=
rwilton@cisco.com">rwilton@cisco.com</a>&gt; wrote:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; As a possible compromise, what about something like:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; The JSON encoding defines that anyxml may be encoded in whatev=
er way the implementor finds useful, or even not at all.=C2=A0 If a preferr=
ed=C2=A0 =C2=A0 =C2=A0custom encoding is not being used, then it is suggest=
ed that anyxml data be encoded as a string containing XML to maximize legac=
y interoperability.<br>
&gt;&gt;<br>
&gt;&gt; While this is quite complicated, I don&#39;t think it helps in any=
 way. There are no anyxml objects that need to be encoded, so what an imple=
mentor finds useful is totally irrelevant. The yang-json spec should state =
what&#39;s permitted as the content of an anyxml instance in JSON encoding,=
 and that&#39;s all. To this end, the current text is IMO sufficient, excep=
t that the &quot;otherwise&quot; part may be misleading - but it&#39;s not =
necessary.<br>
&gt;&gt;<br>
&gt;&gt; Note that XML-in-JSON-string has its share of problems and may not=
 be interoperable either: the content of an anyxml instance in XML encoding=
 needn&#39;t be a well-formed XML document.<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; So now anyxml includes XML that is not even well-formed?<br>
&gt;<br>
&gt; Sure. First, in the XML encoding the anyxml chunk may inherit namespac=
e and entity declarations from the outer context. This could be corrected b=
y adding these declarations to the JSON string. But then also, if we have<b=
r>
&gt;<br>
&gt; anyxml foo;<br>
&gt;<br>
&gt; then this is a valid XML encoding<br>
&gt;<br>
&gt; &lt;foo&gt;<br>
&gt;=C2=A0 &lt;bar/&gt;<br>
&gt;=C2=A0 &lt;baz/&gt;<br>
&gt; &lt;/foo&gt;<br>
&gt;<br></blockquote><div><br></div><div><br></div><div>(!) The internal re=
presentation of data is implementation-specific.</div><div><br></div><div>=
=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bo=
rder-left:1px #ccc solid;padding-left:1ex">
&gt; but the JSON string value<br>
&gt;<br>
&gt; &quot;foo&quot;: &quot;&lt;foo/&gt;&lt;bar/&gt;&quot;<br>
<br>
Sorry, this was supposed to be<br>
<br>
&quot;foo&quot; : &quot;&lt;bar/&gt;&lt;baz/&gt;&quot;<br>
<br></blockquote><div><br></div><div><br></div><div>If the internal server =
code generates complex nodes they will</div><div>be rendered correctly.</di=
v><div><br></div><div>=C2=A0 =C2=A0{ &quot;foo&quot; : {</div><div>=C2=A0 =
=C2=A0 =C2=A0 =C2=A0 &quot;bar&quot;:[null],</div><div>=C2=A0 =C2=A0 =C2=A0=
 =C2=A0 &quot;baz&quot;:[null]</div><div>=C2=A0 =C2=A0 =C2=A0 }</div><div>=
=C2=A0 =C2=A0}</div><div><br></div><div>This is what our server will genera=
te if the internal representation</div><div>would be rendered in XML as you=
 describe. This encoding can be</div><div>easily converted to XML.</div><di=
v><br></div><div><br></div><div>=C2=A0</div><blockquote class=3D"gmail_quot=
e" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Lada<br></blockquote><div><br></div><div><br></div><div>Andy</div><div><br>=
</div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0 =
0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
&gt;<br>
&gt;<br>
&gt; is not a well-formed XML document because it doesn&#39;t have a single=
 document element.<br>
&gt;<br>
&gt;&gt; This is news to me.=C2=A0 Maybe you mean it is a well-formed snipp=
et<br>
&gt;&gt; that may not be complete as an XML instance document.<br>
&gt;&gt;<br>
&gt;&gt; You cannot say &quot;MUST do X, otherwise do Y&quot;.=C2=A0 This i=
s incorrect<br>
&gt;&gt; use of RFC 2119 terminology.=C2=A0 If MUST is used, that is the on=
ly option.<br>
&gt;<br>
&gt; OK, I will reformulate it.<br>
&gt;<br>
&gt;&gt; You also need to explain exactly what interoperability is lost if =
the MUST<br>
&gt;&gt; is not followed.=C2=A0 (e.g., mixed mode XML will not be translate=
d properly to JSON).<br>
&gt;<br>
&gt; If the MUST isn&#39;t followed, then the interoperability problems tha=
t motivated I-JSON restrictions come into play. It has nothing to do with m=
ixed XML content - translation between JSON and XML (and vice versa) in gen=
eral cannot be guaranteed.<br>
&gt;<br>
&gt; Lada<br>
&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; Andy<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; Lada<br>
&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Rob<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; On 16/11/2015 16:50, Andy Bierman wrote:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; On Mon, Nov 16, 2015 at 3:55 AM, Juergen Schoenwaelder &lt=
;<a href=3D"mailto:j.schoenwaelder@jacobs-university.de">j.schoenwaelder@ja=
cobs-university.de</a>&gt; wrote:<br>
&gt;&gt;&gt;&gt; On Sat, Nov 14, 2015 at 09:05:00AM -0800, Andy Bierman wro=
te:<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; YANG 1.1 is going to take 2 more years if we slowly re=
visit every issue.<br>
&gt;&gt;&gt;&gt;&gt; I thought the whole point of the issue tracker was to =
prevent this sort<br>
&gt;&gt;&gt;&gt;&gt; of thing.=C2=A0 =C2=A0The rule should be &quot;what ne=
w details have emerged that<br>
&gt;&gt;&gt;&gt;&gt; should cause us to change the previous decision?&quot;=
<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Andy, please note that this is a discussion primarily arou=
nd the JSON<br>
&gt;&gt;&gt;&gt; document and not around the YANG 1.1 document.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; That doesn&#39;t mean we haven&#39;t discussed this issue =
for a long time already.<br>
&gt;&gt;&gt;&gt; I thought we decided anyxml is not that interoperable and =
so we have<br>
&gt;&gt;&gt;&gt; anydata that is supposedly interoperable.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; So why try to constrain the JSON encoding?<br>
&gt;&gt;&gt;&gt; For anyone sending mixed mode XML encoded as JSON,<br>
&gt;&gt;&gt;&gt; they can get creative and do whatever they want.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; For everybody else, anydata is simple enough to encode and=
 decode.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; /js<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Andy<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; --<br>
&gt;&gt;&gt;&gt; Juergen Schoenwaelder=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0Jacobs University Bremen gGmbH<br>
&gt;&gt;&gt;&gt; Phone: +49 421 200 3587=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0C=
ampus Ring 1 | 28759 Bremen | Germany<br>
&gt;&gt;&gt;&gt; Fax:=C2=A0 =C2=A0+49 421 200 3103=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0&lt;<a href=3D"http://www.jacobs-university.de/" rel=3D"noreferre=
r" target=3D"_blank">http://www.jacobs-university.de/</a>&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt;&gt; netmod mailing list<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; <a href=3D"mailto:netmod@ietf.org">netmod@ietf.org</a><br>
&gt;&gt;&gt;&gt; <a href=3D"https://www.ietf.org/mailman/listinfo/netmod" r=
el=3D"noreferrer" target=3D"_blank">https://www.ietf.org/mailman/listinfo/n=
etmod</a><br>
&gt;&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; --<br>
&gt;&gt; Ladislav Lhotka, CZ.NIC Labs<br>
&gt;&gt; PGP Key ID: E74E8C0C<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;<br>
&gt; --<br>
&gt; Ladislav Lhotka, CZ.NIC Labs<br>
&gt; PGP Key ID: E74E8C0C<br>
&gt;<br>
&gt;<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" rel=3D"norefe=
rrer" target=3D"_blank">https://www.ietf.org/mailman/listinfo/netmod</a><br=
>
<br>
--<br>
Ladislav Lhotka, CZ.NIC Labs<br>
PGP Key ID: E74E8C0C<br>
<br>
<br>
<br>
<br>
</blockquote></div><br></div></div>

--089e0122971ed892380524c23ae9--


From nobody Tue Nov 17 23:03: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 299F21AD34D for <netmod@ietfa.amsl.com>; Tue, 17 Nov 2015 23:03:07 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.236
X-Spam-Level: 
X-Spam-Status: No, score=-1.236 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, RP_MATCHES_RCVD=-0.585] 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 KYq4MfxLslg0 for <netmod@ietfa.amsl.com>; Tue, 17 Nov 2015 23:03:04 -0800 (PST)
Received: from mail.nic.cz (mail.nic.cz [IPv6:2001:1488:800:400::400]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 92CF01AD34C for <netmod@ietf.org>; Tue, 17 Nov 2015 23:03:04 -0800 (PST)
Received: from [IPv6:2001:718:1a02:1:1413:d750:54ad:d724] (unknown [IPv6:2001:718:1a02:1:1413:d750:54ad:d724]) by mail.nic.cz (Postfix) with ESMTPSA id 257A51819D5; Wed, 18 Nov 2015 08:03:03 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nic.cz; s=default; t=1447830183; bh=DaHWo0BlKfjFTpx7IVZlV3QOYLPLErlpjUG2vIZWt5M=; h=From:Date:To; b=EB9BFUjfMm4o1yNGbPqdS4NJkGxIj+n4ikdyEHdDueLPaB1gT59T5Dxyg7JUMPP2e 9kIxfMUKxsagVAO0yhFq8tHRdVLut9EPvS5+cDLOf9nwNorUsogwhZuruQ3Ehch2DF vKM8Km47puPnA2KM4tFK1oOWSMdtVM2XejRndN6I=
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
From: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <CABCOCHS7K_-OXgM+PsHFDepGZRrvcDX1JrOOkj4FM0zecRQ0cA@mail.gmail.com>
Date: Wed, 18 Nov 2015 08:03:02 +0100
Content-Transfer-Encoding: quoted-printable
Message-Id: <CD185ACA-FEF1-4A76-A367-1B86B18E32EB@nic.cz>
References: <20151111134412.GA22783@elstar.local> <2B6DC0CD-1214-4503-95E4-DDF1E5E56A57@nic.cz> <20151111135919.GA22885@elstar.local> <A1BF519D-74B4-48FC-B003-83198DD1BD2D@nic.cz> <20151111153231.GB23082@elstar.local> <m2mvujofpg.fsf@birdie.labs.nic.cz> <20151112075111.GA25623@elstar.local> <CABCOCHQzYbyqB_t=JVR3X_Wqs_vf0wCUHWk-AVP6iGuKCsBXKw@mail.gmail.com> <82ED52D2-5F51-4C50-A1CC-CCB9090D9AF0@nic.cz> <CABCOCHTSvjoiOfkOGre_Vn3EmFPDgkCDeGg6p8qHmxvt0qBOLQ@mail.gmail.com> <20151116115551.GA6157@elstar.local> <CABCOCHRdLFjJq-Eh2PjTmR04KrUu=WarAL1UD7ehG6f1fOubbw@mail.gmail.com> <564AFF23.1090801@cisco.com> <7E2AD0E8-02DD-4D42-85BC-97A16E410F67@nic.cz> <CABCOCHS1AEiH+EYPSM0dY+uj88SHoH_Ywy65Cxb9WjeA1WB5AA@mail.gmail.com> <1BFFCCAC-4CBF-4C76-A622-2D6DCBF892A0@nic.cz> <49023980-5215-4716-B624-5FEE51CB7705@nic.cz> <CABCOCHS7K_-OXgM+PsHFDepGZRrvcDX1JrOOkj4FM0zecRQ0cA@mail.gmail.com>
To: Andy Bierman <andy@yumaworks.com>
X-Mailer: Apple Mail (2.3096.5)
X-Virus-Scanned: clamav-milter 0.98.7 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/194cWJpQdxMoYitCYS8OqmfXjPg>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] JSON encoding of anyxml
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 18 Nov 2015 07:03:07 -0000

> On 17 Nov 2015, at 21:18, Andy Bierman <andy@yumaworks.com> wrote:
>=20
>=20
>=20
> On Tue, Nov 17, 2015 at 12:11 PM, Ladislav Lhotka <lhotka@nic.cz> =
wrote:
>=20
> > On 17 Nov 2015, at 21:03, Ladislav Lhotka <lhotka@nic.cz> wrote:
> >
> >>
> >> On 17 Nov 2015, at 18:08, Andy Bierman <andy@yumaworks.com> wrote:
> >>
> >>
> >>
> >> On Tue, Nov 17, 2015 at 6:44 AM, Ladislav Lhotka <lhotka@nic.cz> =
wrote:
> >>
> >>> On 17 Nov 2015, at 11:19, Robert Wilton <rwilton@cisco.com> wrote:
> >>>
> >>> As a possible compromise, what about something like:
> >>>
> >>> The JSON encoding defines that anyxml may be encoded in whatever =
way the implementor finds useful, or even not at all.  If a preferred    =
 custom encoding is not being used, then it is suggested that anyxml =
data be encoded as a string containing XML to maximize legacy =
interoperability.
> >>
> >> While this is quite complicated, I don't think it helps in any way. =
There are no anyxml objects that need to be encoded, so what an =
implementor finds useful is totally irrelevant. The yang-json spec =
should state what's permitted as the content of an anyxml instance in =
JSON encoding, and that's all. To this end, the current text is IMO =
sufficient, except that the "otherwise" part may be misleading - but =
it's not necessary.
> >>
> >> Note that XML-in-JSON-string has its share of problems and may not =
be interoperable either: the content of an anyxml instance in XML =
encoding needn't be a well-formed XML document.
> >>
> >>
> >> So now anyxml includes XML that is not even well-formed?
> >
> > Sure. First, in the XML encoding the anyxml chunk may inherit =
namespace and entity declarations from the outer context. This could be =
corrected by adding these declarations to the JSON string. But then =
also, if we have
> >
> > anyxml foo;
> >
> > then this is a valid XML encoding
> >
> > <foo>
> >  <bar/>
> >  <baz/>
> > </foo>
> >
>=20
>=20
> (!) The internal representation of data is implementation-specific.
>=20
> =20
> > but the JSON string value
> >
> > "foo": "<foo/><bar/>"
>=20
> Sorry, this was supposed to be
>=20
> "foo" : "<bar/><baz/>"
>=20
>=20
>=20
> If the internal server code generates complex nodes they will
> be rendered correctly.
>=20
>    { "foo" : {
>         "bar":[null],
>         "baz":[null]
>       }
>    }
>=20
> This is what our server will generate if the internal representation
> would be rendered in XML as you describe. This encoding can be
> easily converted to XML.

Yes, but we are talking about encoding anyxml instances as JSON strings =
containing well-formed XML - this is what Martin proposed in Yokohama, =
if I understood it correctly.

And yes, I think we are wasting time. Seeking interoperability where =
there is none is useless. I propose this change to sec. 5.6 of the =
yang-json document:

OLD
   An anyxml instance is encoded as a JSON name/value pair which MUST
   satisfy I-JSON constraints.  Otherwise it is unrestricted, i.e., the
   value can be an object, array, number, string or one of the literals
   "true", "false" and "null".

NEW
   An anyxml instance is encoded as a JSON name/value pair which MUST
   satisfy I-JSON constraints.  The value can be an object, array, =
number,
   string or one of the literals "true", "false" and "null".

This BTW also allows for strings containing XML.

Lada

>=20
>=20
> =20
> Lada
>=20
>=20
> Andy
>=20
> =20
>=20
> >
> >
> > is not a well-formed XML document because it doesn't have a single =
document element.
> >
> >> This is news to me.  Maybe you mean it is a well-formed snippet
> >> that may not be complete as an XML instance document.
> >>
> >> You cannot say "MUST do X, otherwise do Y".  This is incorrect
> >> use of RFC 2119 terminology.  If MUST is used, that is the only =
option.
> >
> > OK, I will reformulate it.
> >
> >> You also need to explain exactly what interoperability is lost if =
the MUST
> >> is not followed.  (e.g., mixed mode XML will not be translated =
properly to JSON).
> >
> > If the MUST isn't followed, then the interoperability problems that =
motivated I-JSON restrictions come into play. It has nothing to do with =
mixed XML content - translation between JSON and XML (and vice versa) in =
general cannot be guaranteed.
> >
> > Lada
> >
> >>
> >>
> >> Andy
> >>
> >>
> >>
> >> Lada
> >>
> >>>
> >>> Rob
> >>>
> >>>
> >>> On 16/11/2015 16:50, Andy Bierman wrote:
> >>>>
> >>>>
> >>>> On Mon, Nov 16, 2015 at 3:55 AM, Juergen Schoenwaelder =
<j.schoenwaelder@jacobs-university.de> wrote:
> >>>> On Sat, Nov 14, 2015 at 09:05:00AM -0800, Andy Bierman wrote:
> >>>>>
> >>>>> YANG 1.1 is going to take 2 more years if we slowly revisit =
every issue.
> >>>>> I thought the whole point of the issue tracker was to prevent =
this sort
> >>>>> of thing.   The rule should be "what new details have emerged =
that
> >>>>> should cause us to change the previous decision?"
> >>>>>
> >>>>
> >>>> Andy, please note that this is a discussion primarily around the =
JSON
> >>>> document and not around the YANG 1.1 document.
> >>>>
> >>>>
> >>>> That doesn't mean we haven't discussed this issue for a long time =
already.
> >>>> I thought we decided anyxml is not that interoperable and so we =
have
> >>>> anydata that is supposedly interoperable.
> >>>>
> >>>> So why try to constrain the JSON encoding?
> >>>> For anyone sending mixed mode XML encoded as JSON,
> >>>> they can get creative and do whatever they want.
> >>>>
> >>>>
> >>>> For everybody else, anydata is simple enough to encode and =
decode.
> >>>>
> >>>>
> >>>> /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
> >>>
> >>
> >> --
> >> Ladislav Lhotka, CZ.NIC Labs
> >> PGP Key ID: E74E8C0C
> >>
> >>
> >>
> >>
> >>
> >
> > --
> > Ladislav Lhotka, CZ.NIC Labs
> > PGP Key ID: E74E8C0C
> >
> >
> >
> >
> > _______________________________________________
> > netmod mailing list
> > netmod@ietf.org
> > https://www.ietf.org/mailman/listinfo/netmod
>=20
> --
> Ladislav Lhotka, CZ.NIC Labs
> PGP Key ID: E74E8C0C

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





From nobody Wed Nov 18 00:36:11 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 86D9A1B2A10 for <netmod@ietfa.amsl.com>; Wed, 18 Nov 2015 00:36:10 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.435
X-Spam-Level: 
X-Spam-Status: No, score=-4.435 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-0.585] 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 yOj3q2fGLMpd for <netmod@ietfa.amsl.com>; Wed, 18 Nov 2015 00:36:08 -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 3966F1B2A0E for <netmod@ietf.org>; Wed, 18 Nov 2015 00:36:07 -0800 (PST)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id B5B99EBE; Wed, 18 Nov 2015 09:36: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 rUEyarnIbCvQ; Wed, 18 Nov 2015 09:36: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; Wed, 18 Nov 2015 09:36:04 +0100 (CET)
Received: from localhost (demetrius3.jacobs-university.de [212.201.44.48]) by hermes.jacobs-university.de (Postfix) with ESMTP id B354720054; Wed, 18 Nov 2015 09:36:04 +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 bu7I9CxoyTrI; Wed, 18 Nov 2015 09:36: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 C04EC2004E; Wed, 18 Nov 2015 09:36:03 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id B47D938E1D13; Wed, 18 Nov 2015 09:36:03 +0100 (CET)
Date: Wed, 18 Nov 2015 09:36:03 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Ladislav Lhotka <lhotka@nic.cz>
Message-ID: <20151118083603.GB16608@elstar.local>
Mail-Followup-To: Ladislav Lhotka <lhotka@nic.cz>, Andy Bierman <andy@yumaworks.com>, "netmod@ietf.org" <netmod@ietf.org>
References: <CABCOCHTSvjoiOfkOGre_Vn3EmFPDgkCDeGg6p8qHmxvt0qBOLQ@mail.gmail.com> <20151116115551.GA6157@elstar.local> <CABCOCHRdLFjJq-Eh2PjTmR04KrUu=WarAL1UD7ehG6f1fOubbw@mail.gmail.com> <564AFF23.1090801@cisco.com> <7E2AD0E8-02DD-4D42-85BC-97A16E410F67@nic.cz> <CABCOCHS1AEiH+EYPSM0dY+uj88SHoH_Ywy65Cxb9WjeA1WB5AA@mail.gmail.com> <1BFFCCAC-4CBF-4C76-A622-2D6DCBF892A0@nic.cz> <49023980-5215-4716-B624-5FEE51CB7705@nic.cz> <CABCOCHS7K_-OXgM+PsHFDepGZRrvcDX1JrOOkj4FM0zecRQ0cA@mail.gmail.com> <CD185ACA-FEF1-4A76-A367-1B86B18E32EB@nic.cz>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <CD185ACA-FEF1-4A76-A367-1B86B18E32EB@nic.cz>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/yUPzFh0PCNVTrparznPRgu6Ylv0>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] JSON encoding of anyxml
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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 18 Nov 2015 08:36:10 -0000

On Wed, Nov 18, 2015 at 08:03:02AM +0100, Ladislav Lhotka wrote:
> 
> 
> And yes, I think we are wasting time. Seeking interoperability where there is none is useless. I propose this change to sec. 5.6 of the yang-json document:
> 
> OLD
>    An anyxml instance is encoded as a JSON name/value pair which MUST
>    satisfy I-JSON constraints.  Otherwise it is unrestricted, i.e., the
>    value can be an object, array, number, string or one of the literals
>    "true", "false" and "null".
> 
> NEW
>    An anyxml instance is encoded as a JSON name/value pair which MUST
>    satisfy I-JSON constraints.  The value can be an object, array, number,
>    string or one of the literals "true", "false" and "null".
> 
> This BTW also allows for strings containing XML.

Lada,

what is the purpose of the second sentence? I checked RFC 7159 and it
seems the proposed second sentence simply repeats the set of possible
JSON values listed in section 3 of RFC 7159. So why is this sentence
technically 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 Wed Nov 18 00:40:53 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 43ADE1B2A24 for <netmod@ietfa.amsl.com>; Wed, 18 Nov 2015 00:40:52 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.936
X-Spam-Level: 
X-Spam-Status: No, score=-0.936 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, RP_MATCHES_RCVD=-0.585] 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 FqguAMOJDlzg for <netmod@ietfa.amsl.com>; Wed, 18 Nov 2015 00:40:50 -0800 (PST)
Received: from mail.nic.cz (mail.nic.cz [IPv6:2001:1488:800:400::400]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C1EFB1B2A25 for <netmod@ietf.org>; Wed, 18 Nov 2015 00:40:50 -0800 (PST)
Received: from [IPv6:2001:1488:fffe:6:ffff:ffff:ffff:22] (unknown [IPv6:2001:1488:fffe:6:ffff:ffff:ffff:22]) by mail.nic.cz (Postfix) with ESMTPSA id 7F1B3181B43; Wed, 18 Nov 2015 09:40:49 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nic.cz; s=default; t=1447836049; bh=5c6tA5P8zibfTkV47UoQpRttmIdlp02w51gGqRi9wEc=; h=From:Date:To; b=hDErRkpScrHPFJzLnCqYjhb9P/Eqwl6NM2sUfxxH84CiHGfRfIhQ6kpSR5i7MC9/u RYu4dBhKpjvHj94Tubgc2ih3cHF7UqEO5mX4oTfHY9q+9nwBHVIVmK080XqldRBRMb EzGAVcWYMTDAmbZ0yN+IT/NvAs7WZNcSGoGotPmA=
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
From: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <20151118083603.GB16608@elstar.local>
Date: Wed, 18 Nov 2015 09:40:49 +0100
Content-Transfer-Encoding: quoted-printable
Message-Id: <5FEDB5C2-364D-4184-BF3C-5FB9B3CEF46F@nic.cz>
References: <CABCOCHTSvjoiOfkOGre_Vn3EmFPDgkCDeGg6p8qHmxvt0qBOLQ@mail.gmail.com> <20151116115551.GA6157@elstar.local> <CABCOCHRdLFjJq-Eh2PjTmR04KrUu=WarAL1UD7ehG6f1fOubbw@mail.gmail.com> <564AFF23.1090801@cisco.com> <7E2AD0E8-02DD-4D42-85BC-97A16E410F67@nic.cz> <CABCOCHS1AEiH+EYPSM0dY+uj88SHoH_Ywy65Cxb9WjeA1WB5AA@mail.gmail.com> <1BFFCCAC-4CBF-4C76-A622-2D6DCBF892A0@nic.cz> <49023980-5215-4716-B624-5FEE51CB7705@nic.cz> <CABCOCHS7K_-OXgM+PsHFDepGZRrvcDX1JrOOkj4FM0zecRQ0cA@mail.gmail.com> <CD185ACA-FEF1-4A76-A367-1B86B18E32EB@nic.cz> <20151118083603.GB16608@elstar.local>
To: =?utf-8?Q?J=C3=BCrgen_Sch=C3=B6nw=C3=A4lder?= <j.schoenwaelder@jacobs-university.de>
X-Mailer: Apple Mail (2.3096.5)
X-Virus-Scanned: clamav-milter 0.98.7 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/hDjmh5dRG4WavUvdbzxZtmkUMWI>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] JSON encoding of anyxml
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 18 Nov 2015 08:40:52 -0000

> On 18 Nov 2015, at 09:36, Juergen Schoenwaelder =
<j.schoenwaelder@jacobs-university.de> wrote:
>=20
> On Wed, Nov 18, 2015 at 08:03:02AM +0100, Ladislav Lhotka wrote:
>>=20
>>=20
>> And yes, I think we are wasting time. Seeking interoperability where =
there is none is useless. I propose this change to sec. 5.6 of the =
yang-json document:
>>=20
>> OLD
>>   An anyxml instance is encoded as a JSON name/value pair which MUST
>>   satisfy I-JSON constraints.  Otherwise it is unrestricted, i.e., =
the
>>   value can be an object, array, number, string or one of the =
literals
>>   "true", "false" and "null".
>>=20
>> NEW
>>   An anyxml instance is encoded as a JSON name/value pair which MUST
>>   satisfy I-JSON constraints.  The value can be an object, array, =
number,
>>   string or one of the literals "true", "false" and "null".
>>=20
>> This BTW also allows for strings containing XML.
>=20
> Lada,
>=20
> what is the purpose of the second sentence? I checked RFC 7159 and it
> seems the proposed second sentence simply repeats the set of possible
> JSON values listed in section 3 of RFC 7159. So why is this sentence
> technically needed?

It's there to emphasize it can be any JSON value, because in one of the =
previous versions it was limited to an object. Maybe it's really not =
needed.

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

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





From nobody Wed Nov 18 07:10: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 3FFC31B3264 for <netmod@ietfa.amsl.com>; Wed, 18 Nov 2015 07:10:52 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level: 
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=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 j13b69ctAKcJ for <netmod@ietfa.amsl.com>; Wed, 18 Nov 2015 07:10:49 -0800 (PST)
Received: from mail-lb0-x233.google.com (mail-lb0-x233.google.com [IPv6:2a00:1450:4010:c04::233]) (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 96ECE1B3261 for <netmod@ietf.org>; Wed, 18 Nov 2015 07:10:48 -0800 (PST)
Received: by lbbcs9 with SMTP id cs9so26151535lbb.1 for <netmod@ietf.org>; Wed, 18 Nov 2015 07:10:46 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=Yit2RYCZz/f63nMr3VR2XBBL6mMCIX1oK8+1fFBDVZ4=; b=zL6Nu2mBCGqMX5xi6TLr9RQ4uDg/7udSH9t8KVQRUhI8Wn48G8JW0PC/diEoGtYY9t QaLz8FCrYDNnXYnvQ7kpvKyyZyiq6jhyJ4RdSqHjwOSgwJdNsq0JsHl1Gk0GVuzbNpdO i/kYnAzaOdKDn0hK3/6gN9z5TeAiq8/zNrjlWZmQWttyFESq6zTG8iPLSaydg4RbQHEE uk3yjCwS3FBt1iBPJqxFOTqDIWMrNuBhCbotekqlgjQa7hmug3Qq2uXBd3o0flYhUDTR Z9igXKM8JZA5Z6Uqpj/G3ibYTBFjdD0AYacFO670TW7f8i6C6uXGyRye8RqGMYafN0qE SJ6Q==
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=Yit2RYCZz/f63nMr3VR2XBBL6mMCIX1oK8+1fFBDVZ4=; b=SGtBOpQpJk9/uZzReyqyrriDrmU+yfP2WAyLZfx+Ac3RMKX6LFbjqlch3vQjE3LGDx CM4HntjSrumpSvZNJwWh/Y2EI9s1PEY13J3gqL5jrBgHjemK8GC2+8QNrT6TfT7RJeaL pczMwZkIZebissY5dmo/MZME0yRw6M5IU2QHuNWzLP7j3XB+S9Z6n0EYJCSR/wy/27Cx NyU7+vkVzfwqBs0tZ8lbuqcfPTOjI1tLAQhKqcRpmJ5/Kgi5mcD3BFB1zSW6JQlE1JzN 2asr3tWPhmlW5ZjllDhzSJANTCrpzCXUo5AnZNSqo+GHyYIXArMp6nkg5FG4/9Q1oMAb wqbA==
X-Gm-Message-State: ALoCoQlHchFDydTOCjAavIBDdgrUpy+NY0+W8VnEfNs6DZezD4FQwQZ232FZsLOiXt2hJHmCzhPn
MIME-Version: 1.0
X-Received: by 10.112.157.166 with SMTP id wn6mr941084lbb.30.1447859446609; Wed, 18 Nov 2015 07:10:46 -0800 (PST)
Received: by 10.112.144.106 with HTTP; Wed, 18 Nov 2015 07:10:46 -0800 (PST)
In-Reply-To: <CD185ACA-FEF1-4A76-A367-1B86B18E32EB@nic.cz>
References: <20151111134412.GA22783@elstar.local> <2B6DC0CD-1214-4503-95E4-DDF1E5E56A57@nic.cz> <20151111135919.GA22885@elstar.local> <A1BF519D-74B4-48FC-B003-83198DD1BD2D@nic.cz> <20151111153231.GB23082@elstar.local> <m2mvujofpg.fsf@birdie.labs.nic.cz> <20151112075111.GA25623@elstar.local> <CABCOCHQzYbyqB_t=JVR3X_Wqs_vf0wCUHWk-AVP6iGuKCsBXKw@mail.gmail.com> <82ED52D2-5F51-4C50-A1CC-CCB9090D9AF0@nic.cz> <CABCOCHTSvjoiOfkOGre_Vn3EmFPDgkCDeGg6p8qHmxvt0qBOLQ@mail.gmail.com> <20151116115551.GA6157@elstar.local> <CABCOCHRdLFjJq-Eh2PjTmR04KrUu=WarAL1UD7ehG6f1fOubbw@mail.gmail.com> <564AFF23.1090801@cisco.com> <7E2AD0E8-02DD-4D42-85BC-97A16E410F67@nic.cz> <CABCOCHS1AEiH+EYPSM0dY+uj88SHoH_Ywy65Cxb9WjeA1WB5AA@mail.gmail.com> <1BFFCCAC-4CBF-4C76-A622-2D6DCBF892A0@nic.cz> <49023980-5215-4716-B624-5FEE51CB7705@nic.cz> <CABCOCHS7K_-OXgM+PsHFDepGZRrvcDX1JrOOkj4FM0zecRQ0cA@mail.gmail.com> <CD185ACA-FEF1-4A76-A367-1B86B18E32EB@nic.cz>
Date: Wed, 18 Nov 2015 07:10:46 -0800
Message-ID: <CABCOCHRGevDqmcsy1qgcSg4ufBRFpEKMRz3qKec=Rvh+pELo0w@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Ladislav Lhotka <lhotka@nic.cz>
Content-Type: multipart/alternative; boundary=001a11c2641600199c0524d20c89
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/cEX4kqNsBchk5ZUXUXElTKOFGCA>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] JSON encoding of anyxml
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 18 Nov 2015 15:10:52 -0000

--001a11c2641600199c0524d20c89
Content-Type: text/plain; charset=UTF-8

On Tue, Nov 17, 2015 at 11:03 PM, Ladislav Lhotka <lhotka@nic.cz> wrote:

>
> > On 17 Nov 2015, at 21:18, Andy Bierman <andy@yumaworks.com> wrote:
> >
> >
> >
> > On Tue, Nov 17, 2015 at 12:11 PM, Ladislav Lhotka <lhotka@nic.cz> wrote:
> >
> > > On 17 Nov 2015, at 21:03, Ladislav Lhotka <lhotka@nic.cz> wrote:
> > >
> > >>
> > >> On 17 Nov 2015, at 18:08, Andy Bierman <andy@yumaworks.com> wrote:
> > >>
> > >>
> > >>
> > >> On Tue, Nov 17, 2015 at 6:44 AM, Ladislav Lhotka <lhotka@nic.cz>
> wrote:
> > >>
> > >>> On 17 Nov 2015, at 11:19, Robert Wilton <rwilton@cisco.com> wrote:
> > >>>
> > >>> As a possible compromise, what about something like:
> > >>>
> > >>> The JSON encoding defines that anyxml may be encoded in whatever way
> the implementor finds useful, or even not at all.  If a preferred
>  custom encoding is not being used, then it is suggested that anyxml data
> be encoded as a string containing XML to maximize legacy interoperability.
> > >>
> > >> While this is quite complicated, I don't think it helps in any way.
> There are no anyxml objects that need to be encoded, so what an implementor
> finds useful is totally irrelevant. The yang-json spec should state what's
> permitted as the content of an anyxml instance in JSON encoding, and that's
> all. To this end, the current text is IMO sufficient, except that the
> "otherwise" part may be misleading - but it's not necessary.
> > >>
> > >> Note that XML-in-JSON-string has its share of problems and may not be
> interoperable either: the content of an anyxml instance in XML encoding
> needn't be a well-formed XML document.
> > >>
> > >>
> > >> So now anyxml includes XML that is not even well-formed?
> > >
> > > Sure. First, in the XML encoding the anyxml chunk may inherit
> namespace and entity declarations from the outer context. This could be
> corrected by adding these declarations to the JSON string. But then also,
> if we have
> > >
> > > anyxml foo;
> > >
> > > then this is a valid XML encoding
> > >
> > > <foo>
> > >  <bar/>
> > >  <baz/>
> > > </foo>
> > >
> >
> >
> > (!) The internal representation of data is implementation-specific.
> >
> >
> > > but the JSON string value
> > >
> > > "foo": "<foo/><bar/>"
> >
> > Sorry, this was supposed to be
> >
> > "foo" : "<bar/><baz/>"
> >
> >
> >
> > If the internal server code generates complex nodes they will
> > be rendered correctly.
> >
> >    { "foo" : {
> >         "bar":[null],
> >         "baz":[null]
> >       }
> >    }
> >
> > This is what our server will generate if the internal representation
> > would be rendered in XML as you describe. This encoding can be
> > easily converted to XML.
>
> Yes, but we are talking about encoding anyxml instances as JSON strings
> containing well-formed XML - this is what Martin proposed in Yokohama, if I
> understood it correctly.
>
>


This string encoding is totally useless.
We will never implement it.  There is no way any client code is going to
double parse the string. (i.e. pass the string to an XML parser)

This is useful for WEB banners where the correct modeling tool is
(and always has been) a leaf.


And yes, I think we are wasting time. Seeking interoperability where there
> is none is useless. I propose this change to sec. 5.6 of the yang-json
> document:
>
> OLD
>    An anyxml instance is encoded as a JSON name/value pair which MUST
>    satisfy I-JSON constraints.  Otherwise it is unrestricted, i.e., the
>    value can be an object, array, number, string or one of the literals
>    "true", "false" and "null".
>
> NEW
>    An anyxml instance is encoded as a JSON name/value pair which MUST
>    satisfy I-JSON constraints.  The value can be an object, array, number,
>    string or one of the literals "true", "false" and "null".
>
> This BTW also allows for strings containing XML.
>
>

IMO this is a bit more clear:
s/Otherwise it is/It is otherwise/

It was not clear before that otherwise is in addition to MUST.


> Lada
>
>

Andy


> >
> >
> >
> > Lada
> >
> >
> > Andy
> >
> >
> >
> > >
> > >
> > > is not a well-formed XML document because it doesn't have a single
> document element.
> > >
> > >> This is news to me.  Maybe you mean it is a well-formed snippet
> > >> that may not be complete as an XML instance document.
> > >>
> > >> You cannot say "MUST do X, otherwise do Y".  This is incorrect
> > >> use of RFC 2119 terminology.  If MUST is used, that is the only
> option.
> > >
> > > OK, I will reformulate it.
> > >
> > >> You also need to explain exactly what interoperability is lost if the
> MUST
> > >> is not followed.  (e.g., mixed mode XML will not be translated
> properly to JSON).
> > >
> > > If the MUST isn't followed, then the interoperability problems that
> motivated I-JSON restrictions come into play. It has nothing to do with
> mixed XML content - translation between JSON and XML (and vice versa) in
> general cannot be guaranteed.
> > >
> > > Lada
> > >
> > >>
> > >>
> > >> Andy
> > >>
> > >>
> > >>
> > >> Lada
> > >>
> > >>>
> > >>> Rob
> > >>>
> > >>>
> > >>> On 16/11/2015 16:50, Andy Bierman wrote:
> > >>>>
> > >>>>
> > >>>> On Mon, Nov 16, 2015 at 3:55 AM, Juergen Schoenwaelder <
> j.schoenwaelder@jacobs-university.de> wrote:
> > >>>> On Sat, Nov 14, 2015 at 09:05:00AM -0800, Andy Bierman wrote:
> > >>>>>
> > >>>>> YANG 1.1 is going to take 2 more years if we slowly revisit every
> issue.
> > >>>>> I thought the whole point of the issue tracker was to prevent this
> sort
> > >>>>> of thing.   The rule should be "what new details have emerged that
> > >>>>> should cause us to change the previous decision?"
> > >>>>>
> > >>>>
> > >>>> Andy, please note that this is a discussion primarily around the
> JSON
> > >>>> document and not around the YANG 1.1 document.
> > >>>>
> > >>>>
> > >>>> That doesn't mean we haven't discussed this issue for a long time
> already.
> > >>>> I thought we decided anyxml is not that interoperable and so we have
> > >>>> anydata that is supposedly interoperable.
> > >>>>
> > >>>> So why try to constrain the JSON encoding?
> > >>>> For anyone sending mixed mode XML encoded as JSON,
> > >>>> they can get creative and do whatever they want.
> > >>>>
> > >>>>
> > >>>> For everybody else, anydata is simple enough to encode and decode.
> > >>>>
> > >>>>
> > >>>> /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
> > >>>
> > >>
> > >> --
> > >> Ladislav Lhotka, CZ.NIC Labs
> > >> PGP Key ID: E74E8C0C
> > >>
> > >>
> > >>
> > >>
> > >>
> > >
> > > --
> > > Ladislav Lhotka, CZ.NIC Labs
> > > PGP Key ID: E74E8C0C
> > >
> > >
> > >
> > >
> > > _______________________________________________
> > > 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
>
>
>
>
>

--001a11c2641600199c0524d20c89
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Tue, Nov 17, 2015 at 11:03 PM, 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 .8e=
x;border-left:1px #ccc solid;padding-left:1ex"><br>
&gt; On 17 Nov 2015, at 21:18, Andy Bierman &lt;<a href=3D"mailto:andy@yuma=
works.com">andy@yumaworks.com</a>&gt; wrote:<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; On Tue, Nov 17, 2015 at 12:11 PM, Ladislav Lhotka &lt;<a href=3D"mailt=
o:lhotka@nic.cz">lhotka@nic.cz</a>&gt; wrote:<br>
&gt;<br>
&gt; &gt; On 17 Nov 2015, at 21:03, Ladislav Lhotka &lt;<a href=3D"mailto:l=
hotka@nic.cz">lhotka@nic.cz</a>&gt; wrote:<br>
&gt; &gt;<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; On 17 Nov 2015, at 18:08, Andy Bierman &lt;<a href=3D"mailto:=
andy@yumaworks.com">andy@yumaworks.com</a>&gt; wrote:<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; On Tue, Nov 17, 2015 at 6:44 AM, Ladislav Lhotka &lt;<a href=
=3D"mailto:lhotka@nic.cz">lhotka@nic.cz</a>&gt; wrote:<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt;&gt; On 17 Nov 2015, at 11:19, Robert Wilton &lt;<a href=3D"ma=
ilto:rwilton@cisco.com">rwilton@cisco.com</a>&gt; wrote:<br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt; As a possible compromise, what about something like:<br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt; The JSON encoding defines that anyxml may be encoded in w=
hatever way the implementor finds useful, or even not at all.=C2=A0 If a pr=
eferred=C2=A0 =C2=A0 =C2=A0custom encoding is not being used, then it is su=
ggested that anyxml data be encoded as a string containing XML to maximize =
legacy interoperability.<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; While this is quite complicated, I don&#39;t think it helps i=
n any way. There are no anyxml objects that need to be encoded, so what an =
implementor finds useful is totally irrelevant. The yang-json spec should s=
tate what&#39;s permitted as the content of an anyxml instance in JSON enco=
ding, and that&#39;s all. To this end, the current text is IMO sufficient, =
except that the &quot;otherwise&quot; part may be misleading - but it&#39;s=
 not necessary.<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; Note that XML-in-JSON-string has its share of problems and ma=
y not be interoperable either: the content of an anyxml instance in XML enc=
oding needn&#39;t be a well-formed XML document.<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; So now anyxml includes XML that is not even well-formed?<br>
&gt; &gt;<br>
&gt; &gt; Sure. First, in the XML encoding the anyxml chunk may inherit nam=
espace and entity declarations from the outer context. This could be correc=
ted by adding these declarations to the JSON string. But then also, if we h=
ave<br>
&gt; &gt;<br>
&gt; &gt; anyxml foo;<br>
&gt; &gt;<br>
&gt; &gt; then this is a valid XML encoding<br>
&gt; &gt;<br>
&gt; &gt; &lt;foo&gt;<br>
&gt; &gt;=C2=A0 &lt;bar/&gt;<br>
&gt; &gt;=C2=A0 &lt;baz/&gt;<br>
&gt; &gt; &lt;/foo&gt;<br>
&gt; &gt;<br>
&gt;<br>
&gt;<br>
&gt; (!) The internal representation of data is implementation-specific.<br=
>
&gt;<br>
&gt;<br>
&gt; &gt; but the JSON string value<br>
&gt; &gt;<br>
&gt; &gt; &quot;foo&quot;: &quot;&lt;foo/&gt;&lt;bar/&gt;&quot;<br>
&gt;<br>
&gt; Sorry, this was supposed to be<br>
&gt;<br>
&gt; &quot;foo&quot; : &quot;&lt;bar/&gt;&lt;baz/&gt;&quot;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; If the internal server code generates complex nodes they will<br>
&gt; be rendered correctly.<br>
&gt;<br>
&gt;=C2=A0 =C2=A0 { &quot;foo&quot; : {<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&quot;bar&quot;:[null],<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&quot;baz&quot;:[null]<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
&gt;=C2=A0 =C2=A0 }<br>
&gt;<br>
&gt; This is what our server will generate if the internal representation<b=
r>
&gt; would be rendered in XML as you describe. This encoding can be<br>
&gt; easily converted to XML.<br>
<br>
Yes, but we are talking about encoding anyxml instances as JSON strings con=
taining well-formed XML - this is what Martin proposed in Yokohama, if I un=
derstood it correctly.<br>
<br></blockquote><div><br></div><div><br></div><div><br></div><div>This str=
ing encoding is totally useless.</div><div>We will never implement it.=C2=
=A0 There is no way any client code is going to</div><div>double parse the =
string. (i.e. pass the string to an XML parser)</div><div><br></div><div>Th=
is is useful for WEB banners where the correct modeling tool is</div><div>(=
and always has been) a leaf.</div><div><br></div><div><br></div><blockquote=
 class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc soli=
d;padding-left:1ex">
And yes, I think we are wasting time. Seeking interoperability where there =
is none is useless. I propose this change to sec. 5.6 of the yang-json docu=
ment:<br>
<br>
OLD<br>
=C2=A0 =C2=A0An anyxml instance is encoded as a JSON name/value pair which =
MUST<br>
=C2=A0 =C2=A0satisfy I-JSON constraints.=C2=A0 Otherwise it is unrestricted=
, i.e., the<br>
=C2=A0 =C2=A0value can be an object, array, number, string or one of the li=
terals<br>
=C2=A0 =C2=A0&quot;true&quot;, &quot;false&quot; and &quot;null&quot;.<br>
<br>
NEW<br>
=C2=A0 =C2=A0An anyxml instance is encoded as a JSON name/value pair which =
MUST<br>
=C2=A0 =C2=A0satisfy I-JSON constraints.=C2=A0 The value can be an object, =
array, number,<br>
=C2=A0 =C2=A0string or one of the literals &quot;true&quot;, &quot;false&qu=
ot; and &quot;null&quot;.<br>
<br>
This BTW also allows for strings containing XML.<br>
<br></blockquote><div><br></div><div><br></div><div>IMO this is a bit more =
clear:</div><div>s/Otherwise it is/It is otherwise/</div><div><br></div><di=
v>It was not clear before that otherwise is in addition to MUST.</div><div>=
=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bo=
rder-left:1px #ccc solid;padding-left:1ex">
Lada<br>
<br></blockquote><div><br></div><div><br></div><div>Andy</div><div>=C2=A0</=
div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-lef=
t:1px #ccc solid;padding-left:1ex">
&gt;<br>
&gt;<br>
&gt;<br>
&gt; Lada<br>
&gt;<br>
&gt;<br>
&gt; Andy<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; is not a well-formed XML document because it doesn&#39;t have a s=
ingle document element.<br>
&gt; &gt;<br>
&gt; &gt;&gt; This is news to me.=C2=A0 Maybe you mean it is a well-formed =
snippet<br>
&gt; &gt;&gt; that may not be complete as an XML instance document.<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; You cannot say &quot;MUST do X, otherwise do Y&quot;.=C2=A0 T=
his is incorrect<br>
&gt; &gt;&gt; use of RFC 2119 terminology.=C2=A0 If MUST is used, that is t=
he only option.<br>
&gt; &gt;<br>
&gt; &gt; OK, I will reformulate it.<br>
&gt; &gt;<br>
&gt; &gt;&gt; You also need to explain exactly what interoperability is los=
t if the MUST<br>
&gt; &gt;&gt; is not followed.=C2=A0 (e.g., mixed mode XML will not be tran=
slated properly to JSON).<br>
&gt; &gt;<br>
&gt; &gt; If the MUST isn&#39;t followed, then the interoperability problem=
s that motivated I-JSON restrictions come into play. It has nothing to do w=
ith mixed XML content - translation between JSON and XML (and vice versa) i=
n general cannot be guaranteed.<br>
&gt; &gt;<br>
&gt; &gt; Lada<br>
&gt; &gt;<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; Andy<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; Lada<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt; Rob<br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt; On 16/11/2015 16:50, Andy Bierman wrote:<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; On Mon, Nov 16, 2015 at 3:55 AM, Juergen Schoenwaelde=
r &lt;<a href=3D"mailto:j.schoenwaelder@jacobs-university.de">j.schoenwaeld=
er@jacobs-university.de</a>&gt; wrote:<br>
&gt; &gt;&gt;&gt;&gt; On Sat, Nov 14, 2015 at 09:05:00AM -0800, Andy Bierma=
n wrote:<br>
&gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt;&gt; YANG 1.1 is going to take 2 more years if we slow=
ly revisit every issue.<br>
&gt; &gt;&gt;&gt;&gt;&gt; I thought the whole point of the issue tracker wa=
s to prevent this sort<br>
&gt; &gt;&gt;&gt;&gt;&gt; of thing.=C2=A0 =C2=A0The rule should be &quot;wh=
at new details have emerged that<br>
&gt; &gt;&gt;&gt;&gt;&gt; should cause us to change the previous decision?&=
quot;<br>
&gt; &gt;&gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; Andy, please note that this is a discussion primarily=
 around the JSON<br>
&gt; &gt;&gt;&gt;&gt; document and not around the YANG 1.1 document.<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; That doesn&#39;t mean we haven&#39;t discussed this i=
ssue for a long time already.<br>
&gt; &gt;&gt;&gt;&gt; I thought we decided anyxml is not that interoperable=
 and so we have<br>
&gt; &gt;&gt;&gt;&gt; anydata that is supposedly interoperable.<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; So why try to constrain the JSON encoding?<br>
&gt; &gt;&gt;&gt;&gt; For anyone sending mixed mode XML encoded as JSON,<br=
>
&gt; &gt;&gt;&gt;&gt; they can get creative and do whatever they want.<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; For everybody else, anydata is simple enough to encod=
e and decode.<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; /js<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; Andy<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; --<br>
&gt; &gt;&gt;&gt;&gt; Juergen Schoenwaelder=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0Jacobs University Bremen gGmbH<br>
&gt; &gt;&gt;&gt;&gt; Phone: +49 421 200 3587=C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0Campus Ring 1 | 28759 Bremen | Germany<br>
&gt; &gt;&gt;&gt;&gt; Fax:=C2=A0 =C2=A0+49 421 200 3103=C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0&lt;<a href=3D"http://www.jacobs-university.de/" rel=3D"noref=
errer" target=3D"_blank">http://www.jacobs-university.de/</a>&gt;<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; _______________________________________________<br>
&gt; &gt;&gt;&gt;&gt; netmod mailing list<br>
&gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt;&gt; <a href=3D"mailto:netmod@ietf.org">netmod@ietf.org</a=
><br>
&gt; &gt;&gt;&gt;&gt; <a href=3D"https://www.ietf.org/mailman/listinfo/netm=
od" rel=3D"noreferrer" target=3D"_blank">https://www.ietf.org/mailman/listi=
nfo/netmod</a><br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; --<br>
&gt; &gt;&gt; Ladislav Lhotka, CZ.NIC Labs<br>
&gt; &gt;&gt; PGP Key ID: E74E8C0C<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt;<br>
&gt; &gt;<br>
&gt; &gt; --<br>
&gt; &gt; Ladislav Lhotka, CZ.NIC Labs<br>
&gt; &gt; PGP Key ID: E74E8C0C<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; _______________________________________________<br>
&gt; &gt; netmod mailing list<br>
&gt; &gt; <a href=3D"mailto:netmod@ietf.org">netmod@ietf.org</a><br>
&gt; &gt; <a href=3D"https://www.ietf.org/mailman/listinfo/netmod" rel=3D"n=
oreferrer" target=3D"_blank">https://www.ietf.org/mailman/listinfo/netmod</=
a><br>
&gt;<br>
&gt; --<br>
&gt; Ladislav Lhotka, CZ.NIC Labs<br>
&gt; PGP Key ID: E74E8C0C<br>
<br>
--<br>
Ladislav Lhotka, CZ.NIC Labs<br>
PGP Key ID: E74E8C0C<br>
<br>
<br>
<br>
<br>
</blockquote></div><br></div></div>

--001a11c2641600199c0524d20c89--


From nobody Wed Nov 18 07:21: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 9D9781B327D for <netmod@ietfa.amsl.com>; Wed, 18 Nov 2015 07:21:15 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.236
X-Spam-Level: 
X-Spam-Status: No, score=-6.236 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, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-0.585] 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 sQacLi3W5i9C for <netmod@ietfa.amsl.com>; Wed, 18 Nov 2015 07:21:08 -0800 (PST)
Received: from mail.nic.cz (mail.nic.cz [217.31.204.67]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id DD1211B327B for <netmod@ietf.org>; Wed, 18 Nov 2015 07:21:07 -0800 (PST)
Received: from [IPv6:2001:1488:fffe:6:ffff:ffff:ffff:22] (unknown [IPv6:2001:1488:fffe:6:ffff:ffff:ffff:22]) by mail.nic.cz (Postfix) with ESMTPSA id 198A4181B16; Wed, 18 Nov 2015 16:21:06 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nic.cz; s=default; t=1447860066; bh=zQLBrTE7HJZ0iPghfNVAHpkjc+lU4NzV/g0dLmtF3+8=; h=From:Date:To; b=kVOpdyyRMcK98YG0BGxeay9UxyeQmJkq8l4lq4vVwBnSTaGuOXvRug+xb3r7pV/D+ tCZ/Fzwy4EC7uIzR5AHdryC8G5dFtx9TiD/uGRS0GloWo+9YmJ5qEJ/34r/k7kKeUL SIrdJJW27aedmhxzGGBrM8tUEQgl+zCM64T0iu/0=
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
From: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <CABCOCHRGevDqmcsy1qgcSg4ufBRFpEKMRz3qKec=Rvh+pELo0w@mail.gmail.com>
Date: Wed, 18 Nov 2015 16:21:05 +0100
Content-Transfer-Encoding: quoted-printable
Message-Id: <504C9A6B-BBCA-497B-9825-9BE670EC28AA@nic.cz>
References: <20151111134412.GA22783@elstar.local> <2B6DC0CD-1214-4503-95E4-DDF1E5E56A57@nic.cz> <20151111135919.GA22885@elstar.local> <A1BF519D-74B4-48FC-B003-83198DD1BD2D@nic.cz> <20151111153231.GB23082@elstar.local> <m2mvujofpg.fsf@birdie.labs.nic.cz> <20151112075111.GA25623@elstar.local> <CABCOCHQzYbyqB_t=JVR3X_Wqs_vf0wCUHWk-AVP6iGuKCsBXKw@mail.gmail.com> <82ED52D2-5F51-4C50-A1CC-CCB9090D9AF0@nic.cz> <CABCOCHTSvjoiOfkOGre_Vn3EmFPDgkCDeGg6p8qHmxvt0qBOLQ@mail.gmail.com> <20151116115551.GA6157@elstar.local> <CABCOCHRdLFjJq-Eh2PjTmR04KrUu=WarAL1UD7ehG6f1fOubbw@mail.gmail.com> <564AFF23.1090801@cisco.com> <7E2AD0E8-02DD-4D42-85BC-97A16E410F67@nic.cz> <CABCOCHS1AEiH+EYPSM0dY+uj88SHoH_Ywy65Cxb9WjeA1WB5AA@mail.gmail.com> <1BFFCCAC-4CBF-4C76-A622-2D6DCBF892A0@nic.cz> <49023980-5215-4716-B624-5FEE51CB7705@nic.cz> <CABCOCHS7K_-OXgM+PsHFDepGZRrvcDX1JrOOkj4FM0zecRQ0cA@mail.gmail.com> <CD185ACA-FEF1-4A76-A367-1B86B18E32EB@nic.cz> <CABCOCHRGevDqmcsy1qgcSg4ufBRFpEKMRz3qKec=Rvh+pELo0w@mail.gmail.c om>
To: Andy Bierman <andy@yumaworks.com>
X-Mailer: Apple Mail (2.3096.5)
X-Virus-Scanned: clamav-milter 0.98.7 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/B8kb5twrwyoANEarwn108JdvrAM>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] JSON encoding of anyxml
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 18 Nov 2015 15:21:15 -0000

> On 18 Nov 2015, at 16:10, Andy Bierman <andy@yumaworks.com> wrote:
>=20
>=20
>=20
> On Tue, Nov 17, 2015 at 11:03 PM, Ladislav Lhotka <lhotka@nic.cz> =
wrote:
>=20
> > On 17 Nov 2015, at 21:18, Andy Bierman <andy@yumaworks.com> wrote:
> >
> >
> >
> > On Tue, Nov 17, 2015 at 12:11 PM, Ladislav Lhotka <lhotka@nic.cz> =
wrote:
> >
> > > On 17 Nov 2015, at 21:03, Ladislav Lhotka <lhotka@nic.cz> wrote:
> > >
> > >>
> > >> On 17 Nov 2015, at 18:08, Andy Bierman <andy@yumaworks.com> =
wrote:
> > >>
> > >>
> > >>
> > >> On Tue, Nov 17, 2015 at 6:44 AM, Ladislav Lhotka <lhotka@nic.cz> =
wrote:
> > >>
> > >>> On 17 Nov 2015, at 11:19, Robert Wilton <rwilton@cisco.com> =
wrote:
> > >>>
> > >>> As a possible compromise, what about something like:
> > >>>
> > >>> The JSON encoding defines that anyxml may be encoded in whatever =
way the implementor finds useful, or even not at all.  If a preferred    =
 custom encoding is not being used, then it is suggested that anyxml =
data be encoded as a string containing XML to maximize legacy =
interoperability.
> > >>
> > >> While this is quite complicated, I don't think it helps in any =
way. There are no anyxml objects that need to be encoded, so what an =
implementor finds useful is totally irrelevant. The yang-json spec =
should state what's permitted as the content of an anyxml instance in =
JSON encoding, and that's all. To this end, the current text is IMO =
sufficient, except that the "otherwise" part may be misleading - but =
it's not necessary.
> > >>
> > >> Note that XML-in-JSON-string has its share of problems and may =
not be interoperable either: the content of an anyxml instance in XML =
encoding needn't be a well-formed XML document.
> > >>
> > >>
> > >> So now anyxml includes XML that is not even well-formed?
> > >
> > > Sure. First, in the XML encoding the anyxml chunk may inherit =
namespace and entity declarations from the outer context. This could be =
corrected by adding these declarations to the JSON string. But then =
also, if we have
> > >
> > > anyxml foo;
> > >
> > > then this is a valid XML encoding
> > >
> > > <foo>
> > >  <bar/>
> > >  <baz/>
> > > </foo>
> > >
> >
> >
> > (!) The internal representation of data is implementation-specific.
> >
> >
> > > but the JSON string value
> > >
> > > "foo": "<foo/><bar/>"
> >
> > Sorry, this was supposed to be
> >
> > "foo" : "<bar/><baz/>"
> >
> >
> >
> > If the internal server code generates complex nodes they will
> > be rendered correctly.
> >
> >    { "foo" : {
> >         "bar":[null],
> >         "baz":[null]
> >       }
> >    }
> >
> > This is what our server will generate if the internal representation
> > would be rendered in XML as you describe. This encoding can be
> > easily converted to XML.
>=20
> Yes, but we are talking about encoding anyxml instances as JSON =
strings containing well-formed XML - this is what Martin proposed in =
Yokohama, if I understood it correctly.
>=20
>=20
>=20
>=20
> This string encoding is totally useless.
> We will never implement it.  There is no way any client code is going =
to
> double parse the string. (i.e. pass the string to an XML parser)

Agreed. In fact, the main benefit of sending something as anyxml (in =
both XML and JSON encoding) IMO is that it can be parsed in one shot =
together with the rest of the data.

>=20
> This is useful for WEB banners where the correct modeling tool is
> (and always has been) a leaf.
>=20
>=20
> And yes, I think we are wasting time. Seeking interoperability where =
there is none is useless. I propose this change to sec. 5.6 of the =
yang-json document:
>=20
> OLD
>    An anyxml instance is encoded as a JSON name/value pair which MUST
>    satisfy I-JSON constraints.  Otherwise it is unrestricted, i.e., =
the
>    value can be an object, array, number, string or one of the =
literals
>    "true", "false" and "null".
>=20
> NEW
>    An anyxml instance is encoded as a JSON name/value pair which MUST
>    satisfy I-JSON constraints.  The value can be an object, array, =
number,
>    string or one of the literals "true", "false" and "null".
>=20
> This BTW also allows for strings containing XML.
>=20
>=20
>=20
> IMO this is a bit more clear:
> s/Otherwise it is/It is otherwise/
>=20
> It was not clear before that otherwise is in addition to MUST.

Yes, but perhaps it is not needed there, as Juergen suggested. This =
should suffice:

NEW
   An anyxml instance is encoded as a JSON name/value pair where the =
value
   MUST satisfy I-JSON constraints.

Lada

> =20
> Lada
>=20
>=20
>=20
> Andy
> =20
> >
> >
> >
> > Lada
> >
> >
> > Andy
> >
> >
> >
> > >
> > >
> > > is not a well-formed XML document because it doesn't have a single =
document element.
> > >
> > >> This is news to me.  Maybe you mean it is a well-formed snippet
> > >> that may not be complete as an XML instance document.
> > >>
> > >> You cannot say "MUST do X, otherwise do Y".  This is incorrect
> > >> use of RFC 2119 terminology.  If MUST is used, that is the only =
option.
> > >
> > > OK, I will reformulate it.
> > >
> > >> You also need to explain exactly what interoperability is lost if =
the MUST
> > >> is not followed.  (e.g., mixed mode XML will not be translated =
properly to JSON).
> > >
> > > If the MUST isn't followed, then the interoperability problems =
that motivated I-JSON restrictions come into play. It has nothing to do =
with mixed XML content - translation between JSON and XML (and vice =
versa) in general cannot be guaranteed.
> > >
> > > Lada
> > >
> > >>
> > >>
> > >> Andy
> > >>
> > >>
> > >>
> > >> Lada
> > >>
> > >>>
> > >>> Rob
> > >>>
> > >>>
> > >>> On 16/11/2015 16:50, Andy Bierman wrote:
> > >>>>
> > >>>>
> > >>>> On Mon, Nov 16, 2015 at 3:55 AM, Juergen Schoenwaelder =
<j.schoenwaelder@jacobs-university.de> wrote:
> > >>>> On Sat, Nov 14, 2015 at 09:05:00AM -0800, Andy Bierman wrote:
> > >>>>>
> > >>>>> YANG 1.1 is going to take 2 more years if we slowly revisit =
every issue.
> > >>>>> I thought the whole point of the issue tracker was to prevent =
this sort
> > >>>>> of thing.   The rule should be "what new details have emerged =
that
> > >>>>> should cause us to change the previous decision?"
> > >>>>>
> > >>>>
> > >>>> Andy, please note that this is a discussion primarily around =
the JSON
> > >>>> document and not around the YANG 1.1 document.
> > >>>>
> > >>>>
> > >>>> That doesn't mean we haven't discussed this issue for a long =
time already.
> > >>>> I thought we decided anyxml is not that interoperable and so we =
have
> > >>>> anydata that is supposedly interoperable.
> > >>>>
> > >>>> So why try to constrain the JSON encoding?
> > >>>> For anyone sending mixed mode XML encoded as JSON,
> > >>>> they can get creative and do whatever they want.
> > >>>>
> > >>>>
> > >>>> For everybody else, anydata is simple enough to encode and =
decode.
> > >>>>
> > >>>>
> > >>>> /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
> > >>>
> > >>
> > >> --
> > >> Ladislav Lhotka, CZ.NIC Labs
> > >> PGP Key ID: E74E8C0C
> > >>
> > >>
> > >>
> > >>
> > >>
> > >
> > > --
> > > Ladislav Lhotka, CZ.NIC Labs
> > > PGP Key ID: E74E8C0C
> > >
> > >
> > >
> > >
> > > _______________________________________________
> > > netmod mailing list
> > > netmod@ietf.org
> > > https://www.ietf.org/mailman/listinfo/netmod
> >
> > --
> > 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 Nov 18 12:17:26 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 A3E031AD0A8 for <netmod@ietfa.amsl.com>; Wed, 18 Nov 2015 12:17:24 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level: 
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=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 mxzZPaJVuYS9 for <netmod@ietfa.amsl.com>; Wed, 18 Nov 2015 12:17:23 -0800 (PST)
Received: from mail-lf0-x22d.google.com (mail-lf0-x22d.google.com [IPv6:2a00:1450:4010:c07::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 4A92F1AD06E for <netmod@ietf.org>; Wed, 18 Nov 2015 12:17:23 -0800 (PST)
Received: by lffu14 with SMTP id u14so34389518lff.1 for <netmod@ietf.org>; Wed, 18 Nov 2015 12:17:21 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks-com.20150623.gappssmtp.com; s=20150623; h=mime-version:date:message-id:subject:from:to:content-type; bh=aHZD8rQ+30L7dRH3Lx/1NFQQvWxKH6Bn5jkM54sUlyU=; b=BGDlm7QK3IsqBoNlOofQHxLS+D5NuFg3ESqCvD4gm8PTQSYBLbCg2FL2XNmOJs55b9 Ll0bZ7+jJuv492P/ZOR/wnhFpt2c27Y/iUAaXWLZwMhWHFqXLznyGsxmKJfwxJIdduFI DxDTmFs/0J1CzqbgjSh5q4zPZtZi1e4fcFOPLuL3O2gPusLPopYXW0IQXtH6lYjYjXd8 U0sDUR2Hbsq2UVhur6w941OXPjuuwN2OaPpWBhKJThAj3uR+yK+jZwJEzZLu1R4rsTrV vEAIqSjG/dh/FSKfKFpMt/t+/JF/luUJbafNkdqFbE1XwjFoivxtXc0wdZ1oNP+lHj/2 dM1A==
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=aHZD8rQ+30L7dRH3Lx/1NFQQvWxKH6Bn5jkM54sUlyU=; b=bx7gB8bE/tFv3vo1oQ223U1dOLUgTE32eL8ZlVFdo3pXaLioEkANsbCTHqbRJiVKXa ouwV3j2TiTlg7OalR5mSRRZz+xRfKE/KGj/Rxv4WfpFkr4ybAsWI+PZQ+YCsd1VOITmR rAoCh1OeZ7oCNKhugqW9mZ1AuQaPqD4Z2h5jMKlXzyrFZJTv2xqhb58j22ynYqAoeAlx fMntuEoOVwV5bG/I400EqXfaKd0VjAApJKvBukC7f69BMWb5GFUvtJXgnIIp0eKeb/Ry Jk0KiLFrh9rL9glhwzENNvWDGNjzqeEGs5oqAwNWT6zF6jfb1hbx3NL4CHuvZEVKOMOu 8+iw==
X-Gm-Message-State: ALoCoQk0NlugqruedofetA6nrc9OgHSW5efUhulSVkN3t+p+jNCLHzwJzeTCyMXeuW/mXBGPhwuG
MIME-Version: 1.0
X-Received: by 10.25.85.200 with SMTP id j191mr1609932lfb.131.1447877841031; Wed, 18 Nov 2015 12:17:21 -0800 (PST)
Received: by 10.112.144.106 with HTTP; Wed, 18 Nov 2015 12:17:20 -0800 (PST)
Date: Wed, 18 Nov 2015 12:17:20 -0800
Message-ID: <CABCOCHSAC4euYPpnY_jePw6Eg2WVo6b22V1Mcz+M9PuxZt6KHg@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: "netmod@ietf.org" <netmod@ietf.org>
Content-Type: multipart/alternative; boundary=001a11424d0c64af3f0524d6543d
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/Hecebbz4S6vkuxBLQPbA8fUjbZE>
Subject: [netmod] when-stmt on 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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 18 Nov 2015 20:17:24 -0000

--001a11424d0c64af3f0524d6543d
Content-Type: text/plain; charset=UTF-8

Hi,

This text in 7.21.5 is not clear:

   A leaf that is a list key MUST NOT have a "when" statement.

I think you mean that no when-stmt can use the key leaf as
a context node.

These are illegal in YANG 1.1 I think:


   augment /listX {
      when "foo";
      leaf key1 { ... }
   }


OR


    list listX {
       key key1;
       uses grouping1 {
          when "foo";
           // leaf key1 added via grouping
       }
    }

There are more ways that the key-leaf can inherit a when-stmt
but you get the idea.

The phrase "have a when-stmt" should be clear.
It implies that the when-stmt is a sub-statement of the leaf-stmt
but this is only 1 way the key leaf can be conditional.


Andy

--001a11424d0c64af3f0524d6543d
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Hi,<div><br></div><div>This text in 7.21.5 is not clear:</=
div><div><br></div><div>=C2=A0 =C2=A0A leaf that is a list key MUST NOT hav=
e a &quot;when&quot; statement.<br></div><div><br></div><div>I think you me=
an that no when-stmt can use the key leaf as</div><div>a context node.</div=
><div><br></div><div>These are illegal in YANG 1.1 I think:</div><div><br><=
/div><div><br></div><div>=C2=A0 =C2=A0augment /listX {</div><div>=C2=A0 =C2=
=A0 =C2=A0 when &quot;foo&quot;;</div><div>=C2=A0 =C2=A0 =C2=A0 leaf key1 {=
 ... }</div><div>=C2=A0 =C2=A0}</div><div><br></div><div><br></div><div>OR<=
/div><div><br></div><div><br></div><div>=C2=A0 =C2=A0 list listX {</div><di=
v>=C2=A0 =C2=A0 =C2=A0 =C2=A0key key1;</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=
=A0uses grouping1 {</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 when &quot=
;foo&quot;;</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0// leaf key1=
 added via grouping</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0}</div><div>=C2=A0=
 =C2=A0 }</div><div><br></div><div>There are more ways that the key-leaf ca=
n inherit a when-stmt</div><div>but you get the idea.</div><div><br></div><=
div>The phrase &quot;have a when-stmt&quot; should be clear.</div><div>It i=
mplies that the when-stmt is a sub-statement of the leaf-stmt</div><div>but=
 this is only 1 way the key leaf can be conditional.</div><div><br></div><d=
iv><br></div><div>Andy</div><div><br></div><div>=C2=A0 =C2=A0 =C2=A0=C2=A0<=
/div></div>

--001a11424d0c64af3f0524d6543d--


From nobody Thu Nov 19 01:07:25 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 9DBB61ACD08 for <netmod@ietfa.amsl.com>; Thu, 19 Nov 2015 01:05:09 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.086
X-Spam-Level: 
X-Spam-Status: No, score=-1.086 tagged_above=-999 required=5 tests=[BAYES_05=-0.5, RP_MATCHES_RCVD=-0.585, 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 6jBNZzpgnM4z for <netmod@ietfa.amsl.com>; Thu, 19 Nov 2015 01:05:03 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id CAEF51B2DDE for <netmod@ietf.org>; Thu, 19 Nov 2015 01:05:02 -0800 (PST)
Received: from localhost (unknown [173.38.220.62]) by mail.tail-f.com (Postfix) with ESMTPSA id B31161AE0404; Thu, 19 Nov 2015 10:05:00 +0100 (CET)
Date: Thu, 19 Nov 2015 10:05:00 +0100 (CET)
Message-Id: <20151119.100500.766228376064614607.mbj@tail-f.com>
To: kwatsen@juniper.net
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <0CEFE89F-65C6-4C97-BC2E-723C9995BCE4@juniper.net>
References: <0CEFE89F-65C6-4C97-BC2E-723C9995BCE4@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/f10A8usbR65P4zLobVmFnCkJb0g>
Cc: netmod@ietf.org
Subject: Re: [netmod] draft netmod 94 minutes posted
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 19 Nov 2015 09:05:10 -0000

Kent Watsen <kwatsen@juniper.net> wrote:
> 
> All,
> 
> The minutes for the two NETMOD sessions have been posted:
> 
>     https://www.ietf.org/proceedings/94/minutes/minutes-94-netmod
> 
> Please provide comments/corrections on these draft minutes by Wed, Nov 25th.

I got a comment based on the minutes that it seems like we are
suggesting that people should not use "choice" at all.  I listened to
the recording, and I believe some crucial points were lost:

On page 7:

OLD:

[RS]  if we want to simplify things, we need to remove choice completely.
[MB]  L that is likely a good idea.
[RS]  you need to track which branch gets used. It does not explicitly
      does not show in the tree. And  
      for those who do not like they could not implement it.
[MB]   maybe it is only applicable to very small trees only.

NEW:

[RS]  if we want to simplify things, we need to remove choice
      completely.  I am not proposing that we do this.
[MB]  I agree.
[RS]  you need to track which branch gets used. It does not explicitly
      show in the tree. And  
      for those who do not like they could not implement it.
[MB]  The data model designer needs to use these constructs carefully.
      "choice" is often used in very small trees only.



And to further clarify things, I do *not* think we should make this
"simplification".  "choice" and "when" are both useful.


/martin


From nobody Thu Nov 19 01:41:06 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 C8D911B30B6 for <netmod@ietfa.amsl.com>; Thu, 19 Nov 2015 01:38:56 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.486
X-Spam-Level: 
X-Spam-Status: No, score=-2.486 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-0.585, 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 e7LxW6sJQCXj for <netmod@ietfa.amsl.com>; Thu, 19 Nov 2015 01:38:55 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id 182221B30BE for <netmod@ietf.org>; Thu, 19 Nov 2015 01:38:55 -0800 (PST)
Received: from localhost (unknown [173.38.220.62]) by mail.tail-f.com (Postfix) with ESMTPSA id A4E721AE0489; Thu, 19 Nov 2015 10:38:53 +0100 (CET)
Date: Thu, 19 Nov 2015 10:38:53 +0100 (CET)
Message-Id: <20151119.103853.1177859553256480716.mbj@tail-f.com>
To: andy@yumaworks.com
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <CABCOCHSAC4euYPpnY_jePw6Eg2WVo6b22V1Mcz+M9PuxZt6KHg@mail.gmail.com>
References: <CABCOCHSAC4euYPpnY_jePw6Eg2WVo6b22V1Mcz+M9PuxZt6KHg@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/xLQcdJ0IGVaAF2g_2Pn412VJhU4>
Cc: netmod@ietf.org
Subject: Re: [netmod] when-stmt on 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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 19 Nov 2015 09:38:56 -0000

Andy Bierman <andy@yumaworks.com> wrote:
> Hi,
> 
> This text in 7.21.5 is not clear:
> 
>    A leaf that is a list key MUST NOT have a "when" statement.
> 
> I think you mean that no when-stmt can use the key leaf as
> a context node.
>
> These are illegal in YANG 1.1 I think:
> 
> 
>    augment /listX {
>       when "foo";
>       leaf key1 { ... }
>    }

Why would this be illegal?  You didn't show the definition of listX,
but it cannot have "key1" as one of its keys.

> OR
> 
> 
>     list listX {
>        key key1;
>        uses grouping1 {
>           when "foo";
>            // leaf key1 added via grouping
>        }
>     }

Why would this be illegal?

> There are more ways that the key-leaf can inherit a when-stmt
> but you get the idea.

I don't think a key leaf can "inherit" a when statement.

> The phrase "have a when-stmt" should be clear.
> It implies that the when-stmt is a sub-statement of the leaf-stmt
> but this is only 1 way the key leaf can be conditional.



/martin


From nobody Thu Nov 19 02:13: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 565BB1B3161 for <netmod@ietfa.amsl.com>; Thu, 19 Nov 2015 02:11:22 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.936
X-Spam-Level: 
X-Spam-Status: No, score=-5.936 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, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-0.585] 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 eiMx26G4pmdw for <netmod@ietfa.amsl.com>; Thu, 19 Nov 2015 02:11:20 -0800 (PST)
Received: from mail.nic.cz (mail.nic.cz [217.31.204.67]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 54D7C1B315F for <netmod@ietf.org>; Thu, 19 Nov 2015 02:11:19 -0800 (PST)
Received: from [172.20.6.161] (unknown [172.20.6.161]) by mail.nic.cz (Postfix) with ESMTPSA id 68FD6181AFC; Thu, 19 Nov 2015 11:11:17 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nic.cz; s=default; t=1447927877; bh=HzMO6ECJGrmeQdgIbLTNBAfv5x96hbDpbHAUMr7e1Zo=; h=From:Date:To; b=gF7B/77HfOW/GpHNZ4v5DLMXDW16Gq0jIwose0qTjhEn6CMOuIrOgTYUaMqsn/ayD f9dfV5Dov3DZ+CWL1+lHIsanLfy7EFDU1TGcLcGnSgDwxGOa9NNRseRXWbmUtuVxuF 6k+kKQvDsE7dlqWoXTKJDyiTwpr6JM4QoPeRGank=
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
From: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <20151119.103853.1177859553256480716.mbj@tail-f.com>
Date: Thu, 19 Nov 2015 11:11:18 +0100
Content-Transfer-Encoding: quoted-printable
Message-Id: <DEDC8558-1911-4A1A-9AA7-BD7971B50BE9@nic.cz>
References: <CABCOCHSAC4euYPpnY_jePw6Eg2WVo6b22V1Mcz+M9PuxZt6KHg@mail.gmail.com> <20151119.103853.1177859553256480716.mbj@tail-f.com>
To: =?utf-8?Q?Martin_Bj=C3=B6rklund?= <mbj@tail-f.com>
X-Mailer: Apple Mail (2.3096.5)
X-Virus-Scanned: clamav-milter 0.98.7 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/ucTaTsbAcbuPUBVbEAhbey37mcI>
Cc: netmod@ietf.org
Subject: Re: [netmod] when-stmt on 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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 19 Nov 2015 10:11:22 -0000

> On 19 Nov 2015, at 10:38, Martin Bjorklund <mbj@tail-f.com> wrote:
>=20
> Andy Bierman <andy@yumaworks.com> wrote:
>> Hi,
>>=20
>> This text in 7.21.5 is not clear:
>>=20
>>   A leaf that is a list key MUST NOT have a "when" statement.
>>=20
>> I think you mean that no when-stmt can use the key leaf as
>> a context node.
>>=20
>> These are illegal in YANG 1.1 I think:
>>=20
>>=20
>>   augment /listX {
>>      when "foo";
>>      leaf key1 { ... }
>>   }
>=20
> Why would this be illegal?  You didn't show the definition of listX,
> but it cannot have "key1" as one of its keys.

I think Andy has a point, here is a complete example:

  leaf foo {
    type empty;
  }
  list array {
    key "key1";
    leaf bar {
      type empty;
    }
  }
  augment "/array" {
    when "../foo";
    leaf key1 {
      type uint8;
    }
  }

Without the "when" statement it is perfectly okay but here the presence =
of "foo" makes "key1" disappear but "array" remains.

>=20
>> OR
>>=20
>>=20
>>    list listX {
>>       key key1;
>>       uses grouping1 {
>>          when "foo";
>>           // leaf key1 added via grouping
>>       }
>>    }
>=20
> Why would this be illegal?

Similar as above.

Lada

>=20
>> There are more ways that the key-leaf can inherit a when-stmt
>> but you get the idea.
>=20
> I don't think a key leaf can "inherit" a when statement.
>=20
>> The phrase "have a when-stmt" should be clear.
>> It implies that the when-stmt is a sub-statement of the leaf-stmt
>> but this is only 1 way the key leaf can be conditional.
>=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 Thu Nov 19 02:17:46 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 1DC271B3170 for <netmod@ietfa.amsl.com>; Thu, 19 Nov 2015 02:15:41 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.936
X-Spam-Level: 
X-Spam-Status: No, score=-5.936 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, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-0.585] 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 iEagpAg2eadu for <netmod@ietfa.amsl.com>; Thu, 19 Nov 2015 02:15:39 -0800 (PST)
Received: from mail.nic.cz (mail.nic.cz [217.31.204.67]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 932E91B316A for <netmod@ietf.org>; Thu, 19 Nov 2015 02:15:39 -0800 (PST)
Received: from [IPv6:2001:1488:fffe:6:ffff:ffff:ffff:22] (unknown [IPv6:2001:1488:fffe:6:ffff:ffff:ffff:22]) by mail.nic.cz (Postfix) with ESMTPSA id 40ABD181852; Thu, 19 Nov 2015 11:15:38 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nic.cz; s=default; t=1447928138; bh=e158JOiilDnpnO3u/GEeU9WrAKjRl6QFVpZLTdO3+Mk=; h=From:Date:To; b=djxISo0P/Gn9vnrGvzS/nglGNQ5Wd2JOjMNxR9+PP6FpRtZk91+QAfEZ/NtUVy4iO pq+jD6oxYc0pXvpD0mQ8HuC88zmBDNHc3MNvhn2Z8tcL++/ifWalmw/b76WWo2Nf0t U9stPYrvGqjj0KcFBkxhuHxGapk9TebdYRw3U95A=
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
From: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <DEDC8558-1911-4A1A-9AA7-BD7971B50BE9@nic.cz>
Date: Thu, 19 Nov 2015 11:15:39 +0100
Content-Transfer-Encoding: quoted-printable
Message-Id: <57900E89-309C-416D-8D1A-57C3644F1CF7@nic.cz>
References: <CABCOCHSAC4euYPpnY_jePw6Eg2WVo6b22V1Mcz+M9PuxZt6KHg@mail.gmail.com> <20151119.103853.1177859553256480716.mbj@tail-f.com> <DEDC8558-1911-4A1A-9AA7-BD7971B50BE9@nic.cz>
To: =?utf-8?Q?Martin_Bj=C3=B6rklund?= <mbj@tail-f.com>
X-Mailer: Apple Mail (2.3096.5)
X-Virus-Scanned: clamav-milter 0.98.7 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/FqiuIZ6G1f_CZTkpysHvIEr9KPA>
Cc: netmod@ietf.org
Subject: Re: [netmod] when-stmt on 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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 19 Nov 2015 10:15:41 -0000

> On 19 Nov 2015, at 11:11, Ladislav Lhotka <lhotka@nic.cz> wrote:
>=20
>>=20
>> On 19 Nov 2015, at 10:38, Martin Bjorklund <mbj@tail-f.com> wrote:
>>=20
>> Andy Bierman <andy@yumaworks.com> wrote:
>>> Hi,
>>>=20
>>> This text in 7.21.5 is not clear:
>>>=20
>>>  A leaf that is a list key MUST NOT have a "when" statement.
>>>=20
>>> I think you mean that no when-stmt can use the key leaf as
>>> a context node.
>>>=20
>>> These are illegal in YANG 1.1 I think:
>>>=20
>>>=20
>>>  augment /listX {
>>>     when "foo";
>>>     leaf key1 { ... }
>>>  }
>>=20
>> Why would this be illegal?  You didn't show the definition of listX,
>> but it cannot have "key1" as one of its keys.
>=20
> I think Andy has a point, here is a complete example:
>=20
>  leaf foo {
>    type empty;
>  }
>  list array {
>    key "key1";
>    leaf bar {
>      type empty;
>    }
>  }
>  augment "/array" {
>    when "../foo";
>    leaf key1 {
>      type uint8;
>    }
>  }
>=20
> Without the "when" statement it is perfectly okay but here the =
presence of "foo" makes "key1" disappear but "array" remains.

s/presence/absence/ --------------------------------------------^^^^^^^^

Lada

>=20
>>=20
>>> OR
>>>=20
>>>=20
>>>   list listX {
>>>      key key1;
>>>      uses grouping1 {
>>>         when "foo";
>>>          // leaf key1 added via grouping
>>>      }
>>>   }
>>=20
>> Why would this be illegal?
>=20
> Similar as above.
>=20
> Lada
>=20
>>=20
>>> There are more ways that the key-leaf can inherit a when-stmt
>>> but you get the idea.
>>=20
>> I don't think a key leaf can "inherit" a when statement.
>>=20
>>> The phrase "have a when-stmt" should be clear.
>>> It implies that the when-stmt is a sub-statement of the leaf-stmt
>>> but this is only 1 way the key leaf can be conditional.
>>=20
>>=20
>>=20
>> /martin
>>=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
> _______________________________________________
> 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 Nov 19 03:38:58 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 33E821AC3F2 for <netmod@ietfa.amsl.com>; Thu, 19 Nov 2015 03:38:56 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.486
X-Spam-Level: 
X-Spam-Status: No, score=-2.486 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-0.585, 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 6t5RwzCIIcbA for <netmod@ietfa.amsl.com>; Thu, 19 Nov 2015 03:38:54 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id 6C8CA1A909C for <netmod@ietf.org>; Thu, 19 Nov 2015 03:38:54 -0800 (PST)
Received: from localhost (unknown [173.38.220.62]) by mail.tail-f.com (Postfix) with ESMTPSA id BA1B81AE0404; Thu, 19 Nov 2015 12:38:51 +0100 (CET)
Date: Thu, 19 Nov 2015 12:38:51 +0100 (CET)
Message-Id: <20151119.123851.162590989253260818.mbj@tail-f.com>
To: lhotka@nic.cz
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <DEDC8558-1911-4A1A-9AA7-BD7971B50BE9@nic.cz>
References: <CABCOCHSAC4euYPpnY_jePw6Eg2WVo6b22V1Mcz+M9PuxZt6KHg@mail.gmail.com> <20151119.103853.1177859553256480716.mbj@tail-f.com> <DEDC8558-1911-4A1A-9AA7-BD7971B50BE9@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=us-ascii
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/CAtqQrDTRFvnpQZPzWoJdy5syOE>
Cc: netmod@ietf.org
Subject: Re: [netmod] when-stmt on 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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 19 Nov 2015 11:38:56 -0000

Ladislav Lhotka <lhotka@nic.cz> wrote:
> 
> > On 19 Nov 2015, at 10:38, Martin Bjorklund <mbj@tail-f.com> wrote:
> > 
> > Andy Bierman <andy@yumaworks.com> wrote:
> >> Hi,
> >> 
> >> This text in 7.21.5 is not clear:
> >> 
> >>   A leaf that is a list key MUST NOT have a "when" statement.
> >> 
> >> I think you mean that no when-stmt can use the key leaf as
> >> a context node.
> >> 
> >> These are illegal in YANG 1.1 I think:
> >> 
> >> 
> >>   augment /listX {
> >>      when "foo";
> >>      leaf key1 { ... }
> >>   }
> > 
> > Why would this be illegal?  You didn't show the definition of listX,
> > but it cannot have "key1" as one of its keys.
> 
> I think Andy has a point, here is a complete example:
> 
>   leaf foo {
>     type empty;
>   }
>   list array {
>     key "key1";
>     leaf bar {
>       type empty;
>     }
>   }
>   augment "/array" {
>     when "../foo";
>     leaf key1 {
>       type uint8;
>     }
>   }

I don't think this is legal even w/o the "when" statement.  RFC 6020
says in 7.8.2 about the "key" statetement:

   Each such leaf identifier MUST refer to a child leaf of the
   list.  The leafs can be defined directly in substatements to the
   list, or in groupings used in the list.


I.e., it is not legal to augment a key.  (I noticed that pyang doesn't
detect this...)

> Without the "when" statement it is perfectly okay but here the
> presence of "foo" makes "key1" disappear but "array" remains.
> 
> > 
> >> OR
> >> 
> >> 
> >>    list listX {
> >>       key key1;
> >>       uses grouping1 {
> >>          when "foo";
> >>           // leaf key1 added via grouping
> >>       }
> >>    }
> > 
> > Why would this be illegal?
> 
> Similar as above.

Ah, ok, yes this should be illegal.

I think we need to add specific text for this scenario:

  If a leaf key is defined in a grouping that is used in a list, the
  "uses" statement MUST NOT have a "when" statement.


/martin



> 
> Lada
> 
> > 
> >> There are more ways that the key-leaf can inherit a when-stmt
> >> but you get the idea.
> > 
> > I don't think a key leaf can "inherit" a when statement.
> > 
> >> The phrase "have a when-stmt" should be clear.
> >> It implies that the when-stmt is a sub-statement of the leaf-stmt
> >> but this is only 1 way the key leaf can be conditional.
> > 
> > 
> > 
> > /martin
> > 
> > _______________________________________________
> > 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 Nov 19 03:59: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 BA4CF1ACDDE for <netmod@ietfa.amsl.com>; Thu, 19 Nov 2015 03:59:36 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.936
X-Spam-Level: 
X-Spam-Status: No, score=-5.936 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, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-0.585] 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 lmflGdyElTSK for <netmod@ietfa.amsl.com>; Thu, 19 Nov 2015 03:59:32 -0800 (PST)
Received: from mail.nic.cz (mail.nic.cz [217.31.204.67]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 869B41ACDF2 for <netmod@ietf.org>; Thu, 19 Nov 2015 03:59:28 -0800 (PST)
Received: from [IPv6:2001:1488:fffe:6:ffff:ffff:ffff:22] (unknown [IPv6:2001:1488:fffe:6:ffff:ffff:ffff:22]) by mail.nic.cz (Postfix) with ESMTPSA id 4B623181A7D; Thu, 19 Nov 2015 12:59:26 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nic.cz; s=default; t=1447934366; bh=ctxWMQra0TBWSieILUzvi9FOp2mx8ntM3V1B3CD43vs=; h=From:Date:To; b=oMRoTSr7ssxunoiegvW4EPdbahz5iUVorrlV2wILrTwmLSNeu6jjDnXTeGws5oZuB ylmpvUEDi7Y0X114YGTHPWbmE3/OI0qFRxM9W7VKO8N/PKJfrMpkC+7q5YBMOlNWSV UYiMAuZuVIrCnRHqDYsbiFZpjLf75e+TalnuLQdE=
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
From: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <20151119.123851.162590989253260818.mbj@tail-f.com>
Date: Thu, 19 Nov 2015 12:59:27 +0100
Content-Transfer-Encoding: quoted-printable
Message-Id: <72A9DEE9-C1C2-4673-ADF8-16C9797129AD@nic.cz>
References: <CABCOCHSAC4euYPpnY_jePw6Eg2WVo6b22V1Mcz+M9PuxZt6KHg@mail.gmail.com> <20151119.103853.1177859553256480716.mbj@tail-f.com> <DEDC8558-1911-4A1A-9AA7-BD7971B50BE9@nic.cz> <20151119.123851.162590989253260818.mbj@tail-f.com>
To: =?utf-8?Q?Martin_Bj=C3=B6rklund?= <mbj@tail-f.com>
X-Mailer: Apple Mail (2.3096.5)
X-Virus-Scanned: clamav-milter 0.98.7 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/E_L-iYzP_o30aU3P9_GK2beFkb0>
Cc: netmod@ietf.org
Subject: Re: [netmod] when-stmt on 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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 19 Nov 2015 11:59:36 -0000

> On 19 Nov 2015, at 12:38, Martin Bjorklund <mbj@tail-f.com> wrote:
>=20
> Ladislav Lhotka <lhotka@nic.cz> wrote:
>>=20
>>> On 19 Nov 2015, at 10:38, Martin Bjorklund <mbj@tail-f.com> wrote:
>>>=20
>>> Andy Bierman <andy@yumaworks.com> wrote:
>>>> Hi,
>>>>=20
>>>> This text in 7.21.5 is not clear:
>>>>=20
>>>>  A leaf that is a list key MUST NOT have a "when" statement.
>>>>=20
>>>> I think you mean that no when-stmt can use the key leaf as
>>>> a context node.
>>>>=20
>>>> These are illegal in YANG 1.1 I think:
>>>>=20
>>>>=20
>>>>  augment /listX {
>>>>     when "foo";
>>>>     leaf key1 { ... }
>>>>  }
>>>=20
>>> Why would this be illegal?  You didn't show the definition of listX,
>>> but it cannot have "key1" as one of its keys.
>>=20
>> I think Andy has a point, here is a complete example:
>>=20
>>  leaf foo {
>>    type empty;
>>  }
>>  list array {
>>    key "key1";
>>    leaf bar {
>>      type empty;
>>    }
>>  }
>>  augment "/array" {
>>    when "../foo";
>>    leaf key1 {
>>      type uint8;
>>    }
>>  }
>=20
> I don't think this is legal even w/o the "when" statement.  RFC 6020
> says in 7.8.2 about the "key" statetement:
>=20
>   Each such leaf identifier MUST refer to a child leaf of the
>   list.  The leafs can be defined directly in substatements to the
>   list, or in groupings used in the list.
>=20

OK, makes sense.

>=20
> I.e., it is not legal to augment a key.  (I noticed that pyang doesn't
> detect this...)

Yes, I tried it. :-)

>=20
>> Without the "when" statement it is perfectly okay but here the
>> presence of "foo" makes "key1" disappear but "array" remains.
>>=20
>>>=20
>>>> OR
>>>>=20
>>>>=20
>>>>   list listX {
>>>>      key key1;
>>>>      uses grouping1 {
>>>>         when "foo";
>>>>          // leaf key1 added via grouping
>>>>      }
>>>>   }
>>>=20
>>> Why would this be illegal?
>>=20
>> Similar as above.
>=20
> Ah, ok, yes this should be illegal.
>=20
> I think we need to add specific text for this scenario:
>=20
>  If a leaf key is defined in a grouping that is used in a list, the
>  "uses" statement MUST NOT have a "when" statement.

And the same holds for "if-feature". I think these restrictions on list =
keys should be stated in sec. 7.8.2 (and possibly in 7.21.5, too).

Lada

>=20
>=20
> /martin
>=20
>=20
>=20
>>=20
>> Lada
>>=20
>>>=20
>>>> There are more ways that the key-leaf can inherit a when-stmt
>>>> but you get the idea.
>>>=20
>>> I don't think a key leaf can "inherit" a when statement.
>>>=20
>>>> The phrase "have a when-stmt" should be clear.
>>>> It implies that the when-stmt is a sub-statement of the leaf-stmt
>>>> but this is only 1 way the key leaf can be conditional.
>>>=20
>>>=20
>>>=20
>>> /martin
>>>=20
>>> _______________________________________________
>>> netmod mailing list
>>> netmod@ietf.org
>>> https://www.ietf.org/mailman/listinfo/netmod
>>=20
>> --
>> Ladislav Lhotka, CZ.NIC Labs
>> PGP Key ID: E74E8C0C

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





From nobody Thu Nov 19 05:41:01 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 A59451ADEB6 for <netmod@ietfa.amsl.com>; Thu, 19 Nov 2015 05:41:00 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.236
X-Spam-Level: 
X-Spam-Status: No, score=-1.236 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, RP_MATCHES_RCVD=-0.585] 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 41WzsxlVzlUh for <netmod@ietfa.amsl.com>; Thu, 19 Nov 2015 05:40:59 -0800 (PST)
Received: from mail.nic.cz (mail.nic.cz [IPv6:2001:1488:800:400::400]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 65B0B1AD481 for <netmod@ietf.org>; Thu, 19 Nov 2015 05:40:58 -0800 (PST)
Received: from [IPv6:2001:1488:fffe:6:ffff:ffff:ffff:22] (unknown [IPv6:2001:1488:fffe:6:ffff:ffff:ffff:22]) by mail.nic.cz (Postfix) with ESMTPSA id 42232181752 for <netmod@ietf.org>; Thu, 19 Nov 2015 14:40:57 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nic.cz; s=default; t=1447940457; bh=4uafcjpp0VIh6rar1jX9NcUntBGb4DOZZ+UcWdVzJjU=; h=From:Date:To; b=MjGkTiW0nFo9PKwrl+s89+wFZE0TnyDMKhJCj6W46GuiqG88ay0iIxyVFcjHvZ/U2 WHrOrjP7AnuHc+ZRfTwHF2t3gdeogH7MuX/kY1cnpRk+kZaB7q6qRM4tG+7DuOoYUt cvu6IiDGsRR+R1IYAbjKPaGuoAiA1sewOPg2I+r4=
From: Ladislav Lhotka <lhotka@nic.cz>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: quoted-printable
Message-Id: <09858705-2365-4B77-A233-91019B6BC681@nic.cz>
Date: Thu, 19 Nov 2015 14:40:58 +0100
To: NETMOD WG <netmod@ietf.org>
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
X-Mailer: Apple Mail (2.3096.5)
X-Virus-Scanned: clamav-milter 0.98.7 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/nNze2KvIVngQ3B63boYpDFnlUuc>
Subject: [netmod] Y02: context 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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 19 Nov 2015 13:41:00 -0000

Hi,

Y02-01 allows "must" as a substatement of "input", "output" and =
"notification" but for these cases the specification of the context node =
in sec. 7.5.3 doesn't work.

   o  The context node is the node in the accessible tree for which the
      "must" statement is defined.

Moreover, it is not clear how the context node could be defined for the =
"output" case - in NETCONF, the only candidate would be the "rpc-reply" =
node, which however doesn't work for RESTCONF.

I think it would be better to allow "must" only under "input" and =
"notification".

Lada

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





From nobody Thu Nov 19 07:18: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 5AC301B2B55 for <netmod@ietfa.amsl.com>; Thu, 19 Nov 2015 07:18:08 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level: 
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=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 uUJs9OhJJcs7 for <netmod@ietfa.amsl.com>; Thu, 19 Nov 2015 07:18:06 -0800 (PST)
Received: from mail-lb0-x229.google.com (mail-lb0-x229.google.com [IPv6:2a00:1450:4010:c04::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 B905D1B2B51 for <netmod@ietf.org>; Thu, 19 Nov 2015 07:18:05 -0800 (PST)
Received: by lbbkw15 with SMTP id kw15so45516388lbb.0 for <netmod@ietf.org>; Thu, 19 Nov 2015 07:18:03 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=QWPS1Tvs7Aw+TYvNznR/zzl5azNPXfOdEtH0hKWMi/M=; b=VEgjqmZeTYJ5zjUNafvLb3qPg14A+w32uEFh6Wtas96mkCL8mCF8iIdlFOewqqwMKY YjVGLvkqsuegesIYwHfRABkWKkhyLKmRgn+H9nAh8J/RBsmR11nrNDUqqJ6u9O8Xadna R7tOecqEWy32Uf9O114bJm2NR3HqaCCszhWmUmZHG3n+d1RKSqlR4403gNB8m3b1gzd7 pdIRyS1zgeCK11lWQFwB4tdz7ukOQzHiqlEwFALxGvwsKOjFU/oOTw20asYgOYSDPtiu oW0sckwQdu6ibQvrv8Gmeen3eNRPH+alnlQP7XKb7bGKPfzNArGGxg81Aj7+JBoMGqzy bA+A==
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=QWPS1Tvs7Aw+TYvNznR/zzl5azNPXfOdEtH0hKWMi/M=; b=mCxhL/Wc8fRZqGA6RgZ9VSX3df+GEhlhPWTW0aTxy7jjNGahXPyitRPmQztOkd0Wqh lsInsuzfe97WD37hGxldLzPVyx04zIC+2a6gS44UKMIDOCOqC7ZdWpjgRSlpq4st/P7B bKKJWdDxlO5N/h6XgVfq4Rp+sKxlFxYatVNonwRcBE5eGC0AUvmBAi4gRg2uipoIBtHi +qfSC9cBAR8Yag6+YvQhDZRNaNYOizrcR4TNhYaRoI1mbphTNY3IgvtbSKmDX4O/9Z/x 2FdycMP1E6uGsTJPtJlekroze3PrrJxpuXs+9E9FnHTaGdIlOmjQsrV206pFFvuvb5AI JRWQ==
X-Gm-Message-State: ALoCoQmtsTz/SWYcOPlF219Ugpx44wtvTohJs+oirNPuExBQMvX72V4eSMLDsF9JnENpa4ipIxgN
MIME-Version: 1.0
X-Received: by 10.112.134.169 with SMTP id pl9mr3555486lbb.145.1447946283832;  Thu, 19 Nov 2015 07:18:03 -0800 (PST)
Received: by 10.112.144.106 with HTTP; Thu, 19 Nov 2015 07:18:03 -0800 (PST)
In-Reply-To: <20151119.123851.162590989253260818.mbj@tail-f.com>
References: <CABCOCHSAC4euYPpnY_jePw6Eg2WVo6b22V1Mcz+M9PuxZt6KHg@mail.gmail.com> <20151119.103853.1177859553256480716.mbj@tail-f.com> <DEDC8558-1911-4A1A-9AA7-BD7971B50BE9@nic.cz> <20151119.123851.162590989253260818.mbj@tail-f.com>
Date: Thu, 19 Nov 2015 07:18:03 -0800
Message-ID: <CABCOCHTTa5XDdf=Vj9uv-9D=x9+ooOFY-suyJ+8ZH_whdp1qhw@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Martin Bjorklund <mbj@tail-f.com>
Content-Type: multipart/alternative; boundary=089e011767e9e6f24f0524e64352
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/6hUT5YEwOHuF5s-Zpm1FlM5LhRU>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] when-stmt on 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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 19 Nov 2015 15:18:08 -0000

--089e011767e9e6f24f0524e64352
Content-Type: text/plain; charset=UTF-8

On Thu, Nov 19, 2015 at 3:38 AM, Martin Bjorklund <mbj@tail-f.com> wrote:

> Ladislav Lhotka <lhotka@nic.cz> wrote:
> >
> > > On 19 Nov 2015, at 10:38, Martin Bjorklund <mbj@tail-f.com> wrote:
> > >
> > > Andy Bierman <andy@yumaworks.com> wrote:
> > >> Hi,
> > >>
> > >> This text in 7.21.5 is not clear:
> > >>
> > >>   A leaf that is a list key MUST NOT have a "when" statement.
> > >>
> > >> I think you mean that no when-stmt can use the key leaf as
> > >> a context node.
> > >>
> > >> These are illegal in YANG 1.1 I think:
> > >>
> > >>
> > >>   augment /listX {
> > >>      when "foo";
> > >>      leaf key1 { ... }
> > >>   }
> > >
> > > Why would this be illegal?  You didn't show the definition of listX,
> > > but it cannot have "key1" as one of its keys.
> >
> > I think Andy has a point, here is a complete example:
> >
> >   leaf foo {
> >     type empty;
> >   }
> >   list array {
> >     key "key1";
> >     leaf bar {
> >       type empty;
> >     }
> >   }
> >   augment "/array" {
> >     when "../foo";
> >     leaf key1 {
> >       type uint8;
> >     }
> >   }
>
> I don't think this is legal even w/o the "when" statement.  RFC 6020
> says in 7.8.2 about the "key" statetement:
>
>    Each such leaf identifier MUST refer to a child leaf of the
>    list.  The leafs can be defined directly in substatements to the
>    list, or in groupings used in the list.
>
>
> I.e., it is not legal to augment a key.  (I noticed that pyang doesn't
> detect this...)
>
> > Without the "when" statement it is perfectly okay but here the
> > presence of "foo" makes "key1" disappear but "array" remains.
> >
> > >
> > >> OR
> > >>
> > >>
> > >>    list listX {
> > >>       key key1;
> > >>       uses grouping1 {
> > >>          when "foo";
> > >>           // leaf key1 added via grouping
> > >>       }
> > >>    }
> > >
> > > Why would this be illegal?
> >
> > Similar as above.
>
> Ah, ok, yes this should be illegal.
>
> I think we need to add specific text for this scenario:
>
>   If a leaf key is defined in a grouping that is used in a list, the
>   "uses" statement MUST NOT have a "when" statement.
>
>
Don't forget that a "uses" statement can inherit when-stmts as well,
e.g., inside a case-stmt.

IMO it is difficult to describe the true complexity of the when-stmt.
It is by far the hardest part of YANG to get right.  But usually developers
can interpret the simplistic text in the draft when writing the code.

BTW, I am still strongly opposed to modifying the datastore to evaluate
when-stmts.  I do not see why YANG should assume that different
implementations
will be evaluating different conceptual instance documents.
IMO the easiest and most interoperable behavior would be to just
evaluate the XPath on the document.  If somebody codes useless
garbage like "augment foo with bar when bar=3" then who cares?
This is operational garbage, not a use-case.



> /martin
>
>
>

Andy


>
> >
> > Lada
> >
> > >
> > >> There are more ways that the key-leaf can inherit a when-stmt
> > >> but you get the idea.
> > >
> > > I don't think a key leaf can "inherit" a when statement.
> > >
> > >> The phrase "have a when-stmt" should be clear.
> > >> It implies that the when-stmt is a sub-statement of the leaf-stmt
> > >> but this is only 1 way the key leaf can be conditional.
> > >
> > >
> > >
> > > /martin
> > >
> > > _______________________________________________
> > > netmod mailing list
> > > netmod@ietf.org
> > > https://www.ietf.org/mailman/listinfo/netmod
> >
> > --
> > Ladislav Lhotka, CZ.NIC Labs
> > PGP Key ID: E74E8C0C
> >
> >
> >
> >
>

--089e011767e9e6f24f0524e64352
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Thu, Nov 19, 2015 at 3:38 AM, Martin Bjorklund <span dir=3D"ltr">&lt=
;<a href=3D"mailto:mbj@tail-f.com" target=3D"_blank">mbj@tail-f.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">Ladislav Lhotka &lt;<a hre=
f=3D"mailto:lhotka@nic.cz">lhotka@nic.cz</a>&gt; wrote:<br>
&gt;<br>
&gt; &gt; On 19 Nov 2015, at 10:38, Martin Bjorklund &lt;<a href=3D"mailto:=
mbj@tail-f.com">mbj@tail-f.com</a>&gt; wrote:<br>
&gt; &gt;<br>
&gt; &gt; Andy Bierman &lt;<a href=3D"mailto:andy@yumaworks.com">andy@yumaw=
orks.com</a>&gt; wrote:<br>
&gt; &gt;&gt; Hi,<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; This text in 7.21.5 is not clear:<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt;=C2=A0 =C2=A0A leaf that is a list key MUST NOT have a &quot;w=
hen&quot; statement.<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; I think you mean that no when-stmt can use the key leaf as<br=
>
&gt; &gt;&gt; a context node.<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; These are illegal in YANG 1.1 I think:<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt;=C2=A0 =C2=A0augment /listX {<br>
&gt; &gt;&gt;=C2=A0 =C2=A0 =C2=A0 when &quot;foo&quot;;<br>
&gt; &gt;&gt;=C2=A0 =C2=A0 =C2=A0 leaf key1 { ... }<br>
&gt; &gt;&gt;=C2=A0 =C2=A0}<br>
&gt; &gt;<br>
&gt; &gt; Why would this be illegal?=C2=A0 You didn&#39;t show the definiti=
on of listX,<br>
&gt; &gt; but it cannot have &quot;key1&quot; as one of its keys.<br>
&gt;<br>
&gt; I think Andy has a point, here is a complete example:<br>
&gt;<br>
&gt;=C2=A0 =C2=A0leaf foo {<br>
&gt;=C2=A0 =C2=A0 =C2=A0type empty;<br>
&gt;=C2=A0 =C2=A0}<br>
&gt;=C2=A0 =C2=A0list array {<br>
&gt;=C2=A0 =C2=A0 =C2=A0key &quot;key1&quot;;<br>
&gt;=C2=A0 =C2=A0 =C2=A0leaf bar {<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0type empty;<br>
&gt;=C2=A0 =C2=A0 =C2=A0}<br>
&gt;=C2=A0 =C2=A0}<br>
&gt;=C2=A0 =C2=A0augment &quot;/array&quot; {<br>
&gt;=C2=A0 =C2=A0 =C2=A0when &quot;../foo&quot;;<br>
&gt;=C2=A0 =C2=A0 =C2=A0leaf key1 {<br>
&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0type uint8;<br>
&gt;=C2=A0 =C2=A0 =C2=A0}<br>
&gt;=C2=A0 =C2=A0}<br>
<br>
I don&#39;t think this is legal even w/o the &quot;when&quot; statement.=C2=
=A0 RFC 6020<br>
says in 7.8.2 about the &quot;key&quot; statetement:<br>
<br>
=C2=A0 =C2=A0Each such leaf identifier MUST refer to a child leaf of the<br=
>
=C2=A0 =C2=A0list.=C2=A0 The leafs can be defined directly in substatements=
 to the<br>
=C2=A0 =C2=A0list, or in groupings used in the list.<br>
<br>
<br>
I.e., it is not legal to augment a key.=C2=A0 (I noticed that pyang doesn&#=
39;t<br>
detect this...)<br>
<br>
&gt; Without the &quot;when&quot; statement it is perfectly okay but here t=
he<br>
&gt; presence of &quot;foo&quot; makes &quot;key1&quot; disappear but &quot=
;array&quot; remains.<br>
&gt;<br>
&gt; &gt;<br>
&gt; &gt;&gt; OR<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt;=C2=A0 =C2=A0 list listX {<br>
&gt; &gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0key key1;<br>
&gt; &gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0uses grouping1 {<br>
&gt; &gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 when &quot;foo&quot;;<br>
&gt; &gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0// leaf key1 added vi=
a grouping<br>
&gt; &gt;&gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
&gt; &gt;&gt;=C2=A0 =C2=A0 }<br>
&gt; &gt;<br>
&gt; &gt; Why would this be illegal?<br>
&gt;<br>
&gt; Similar as above.<br>
<br>
Ah, ok, yes this should be illegal.<br>
<br>
I think we need to add specific text for this scenario:<br>
<br>
=C2=A0 If a leaf key is defined in a grouping that is used in a list, the<b=
r>
=C2=A0 &quot;uses&quot; statement MUST NOT have a &quot;when&quot; statemen=
t.<br>
<br></blockquote><div><br></div><div>Don&#39;t forget that a &quot;uses&quo=
t; statement can inherit when-stmts as well,</div><div>e.g., inside a case-=
stmt.</div><div><br></div><div>IMO it is difficult to describe the true com=
plexity of the when-stmt.</div><div>It is by far the hardest part of YANG t=
o get right.=C2=A0 But usually developers</div><div>can interpret the simpl=
istic text in the draft when writing the code.</div><div><br></div><div>BTW=
, I am still strongly opposed to modifying the datastore to evaluate</div><=
div>when-stmts.=C2=A0 I do not see why YANG should assume that different im=
plementations</div><div>will be evaluating different conceptual instance do=
cuments.</div><div>IMO the easiest and most interoperable behavior would be=
 to just</div><div>evaluate the XPath on the document.=C2=A0 If somebody co=
des useless</div><div>garbage like &quot;augment foo with bar when bar=3D3&=
quot; then who cares?</div><div>This is operational garbage, not a use-case=
.</div><div><br></div><div><br></div><blockquote class=3D"gmail_quote" styl=
e=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
/martin<br>
<br>
<br></blockquote><div><br></div><div><br></div><div>Andy</div><div>=C2=A0</=
div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-lef=
t:1px #ccc solid;padding-left:1ex">
<br>
&gt;<br>
&gt; Lada<br>
&gt;<br>
&gt; &gt;<br>
&gt; &gt;&gt; There are more ways that the key-leaf can inherit a when-stmt=
<br>
&gt; &gt;&gt; but you get the idea.<br>
&gt; &gt;<br>
&gt; &gt; I don&#39;t think a key leaf can &quot;inherit&quot; a when state=
ment.<br>
&gt; &gt;<br>
&gt; &gt;&gt; The phrase &quot;have a when-stmt&quot; should be clear.<br>
&gt; &gt;&gt; It implies that the when-stmt is a sub-statement of the leaf-=
stmt<br>
&gt; &gt;&gt; but this is only 1 way the key leaf can be conditional.<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; /martin<br>
&gt; &gt;<br>
&gt; &gt; _______________________________________________<br>
&gt; &gt; netmod mailing list<br>
&gt; &gt; <a href=3D"mailto:netmod@ietf.org">netmod@ietf.org</a><br>
&gt; &gt; <a href=3D"https://www.ietf.org/mailman/listinfo/netmod" rel=3D"n=
oreferrer" target=3D"_blank">https://www.ietf.org/mailman/listinfo/netmod</=
a><br>
<span class=3D"HOEnZb"><font color=3D"#888888">&gt;<br>
&gt; --<br>
&gt; Ladislav Lhotka, CZ.NIC Labs<br>
&gt; PGP Key ID: E74E8C0C<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
</font></span></blockquote></div><br></div></div>

--089e011767e9e6f24f0524e64352--


From nobody Thu Nov 19 09:34:46 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 12B3A1B2F0B; Thu, 19 Nov 2015 09:34:45 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -15.085
X-Spam-Level: 
X-Spam-Status: No, score=-15.085 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, RP_MATCHES_RCVD=-0.585, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id pV_s3yvd84cI; Thu, 19 Nov 2015 09:34:43 -0800 (PST)
Received: from aer-iport-3.cisco.com (aer-iport-3.cisco.com [173.38.203.53]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id F234A1B2B7F; Thu, 19 Nov 2015 09:34:42 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=2446; q=dns/txt; s=iport; t=1447954483; x=1449164083; h=to:from:subject:cc:message-id:date:mime-version; bh=R+/TTLwXE2BzfFXCRiIop9cD5FboU0OaKHD+HMzrN3g=; b=j5vLdwiFGFJDVZ+FmKyx6nnbRqNnT6YnQt1SEN1FZnL62KsvEEZuOHtW 9Ru/sQdR8wxATMiAsw7UpUcyiyxTuj6lTJfarn+xxxrw10IzO9ys3XWlJ gW74KrPRmqiaOjjh6QrmOIjxRoUKbu3ahSm0i/8iCjCbH2UtaNzurHAzJ s=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0CqBADbB05W/xbLJq1ehA5vvFyEDSOFb?= =?us-ascii?q?IIcAQEBAQEBgQuENydVAR8BHBYLAgsDAgECAUsNCAEBBYglDa9tkD8BAQEBAQE?= =?us-ascii?q?EAQEBAQEBARyGVIdohQuBRAWWTIUjiAuCJIZ5hUqNYGOEBT00AXSEKwEBAQ?=
X-IronPort-AV: E=Sophos;i="5.20,318,1444694400";  d="scan'208,217";a="606407836"
Received: from aer-iport-nat.cisco.com (HELO aer-core-1.cisco.com) ([173.38.203.22]) by aer-iport-3.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 19 Nov 2015 17:34:39 +0000
Received: from [10.60.67.93] (ams-bclaise-89112.cisco.com [10.60.67.93]) by aer-core-1.cisco.com (8.14.5/8.14.5) with ESMTP id tAJHYdH8023773; Thu, 19 Nov 2015 17:34:39 GMT
To: NETMOD Working Group <netmod@ietf.org>
From: Benoit Claise <bclaise@cisco.com>
Message-ID: <564E082F.7010602@cisco.com>
Date: Thu, 19 Nov 2015 18:34:39 +0100
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="------------060309020709060509080408"
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/3eAhQJam80HqESIVv_Xk4uvsKBQ>
Cc: "yang-coord@ietf.org" <yang-coord@ietf.org>
Subject: [netmod] NETCONF, YANG, pyang tutorials posted
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 19 Nov 2015 17:34:45 -0000

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

Dear all,

The tutorial materials is now posted.

Videos on youtube:
- YANG by Example: https://www.youtube.com/watch?v=AhYZhbANiwE
- NETCONF by Example: https://www.youtube.com/watch?v=N7fb11dLztA
- PYANG: https://www.youtube.com/watch?v=aPFTzgdYDw0

http://ietf.org/edu/technical-tutorials.html#netconfandyang contains:
     - the slides
     - the Meetecho video downloads

Thanks to the EDU and Meetecho teams.
Thanks to Carl and Lada for the great presentations.

Note: Lada's slides on pyang will posted soon.

Regards, Benoit (for the YANG Model Coordination Group) 
<http://www.ietf.org/iesg/directorate/yang-model-coordination-group.html>



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

<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Dear all,<br>
    <br>
    The tutorial materials is now posted.<br>
    <br>
    Videos on youtube:<br>
    - YANG by Example: <a class="moz-txt-link-freetext"
      href="https://www.youtube.com/watch?v=AhYZhbANiwE">https://www.youtube.com/watch?v=AhYZhbANiwE</a>
    <br>
    - NETCONF by Example: <a class="moz-txt-link-freetext"
      href="https://www.youtube.com/watch?v=N7fb11dLztA">https://www.youtube.com/watch?v=N7fb11dLztA</a>
    <br>
    - PYANG: <a class="moz-txt-link-freetext"
      href="https://www.youtube.com/watch?v=aPFTzgdYDw0">https://www.youtube.com/watch?v=aPFTzgdYDw0</a><br>
    <br>
    <a class="moz-txt-link-freetext" href="http://ietf.org/edu/technical-tutorials.html#netconfandyang">http://ietf.org/edu/technical-tutorials.html#netconfandyang</a>
    contains:<br>
    Â Â Â  - the slides <br>
    Â Â Â  - the Meetecho video downloads<br>
    <br>
    Thanks to the EDU and Meetecho teams.<br>
    Thanks to Carl and Lada for the great presentations.<br>
    <br>
    Note: Lada's slides on pyang will posted soon.<br>
    <br>
    Regards, Benoit (for the <a
href="http://www.ietf.org/iesg/directorate/yang-model-coordination-group.html">YANG
      Model Coordination Group)</a><br>
    <br>
    <br>
  </body>
</html>

--------------060309020709060509080408--


From nobody Thu Nov 19 15:50:45 2015
Return-Path: <gregory.mirsky@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 1EAD81B37C7; Thu, 19 Nov 2015 15:50:39 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -103
X-Spam-Level: 
X-Spam-Status: No, score=-103 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, J_CHICKENPOX_34=0.6, J_CHICKENPOX_44=0.6, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001, 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 e5QqBgfNXtDc; Thu, 19 Nov 2015 15:50:35 -0800 (PST)
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 BB5221B37C3; Thu, 19 Nov 2015 15:50:34 -0800 (PST)
X-AuditID: c6180641-f792c6d00000686a-5f-564df20e3a4a
Received: from EUSAAHC008.ericsson.se (Unknown_Domain [147.117.188.96]) by usevmg21.ericsson.net (Symantec Mail Security) with SMTP id CB.4E.26730.E02FD465; Thu, 19 Nov 2015 17:00:15 +0100 (CET)
Received: from EUSAAMB103.ericsson.se ([147.117.188.120]) by EUSAAHC008.ericsson.se ([147.117.188.96]) with mapi id 14.03.0248.002; Thu, 19 Nov 2015 18:50:33 -0500
From: Gregory Mirsky <gregory.mirsky@ericsson.com>
To: NETMOD Working Group <netmod@ietf.org>
Thread-Topic: Question to inet:dscp
Thread-Index: AdEjIc0y7m/Zek7HQxqosWMknLMH6Q==
Date: Thu, 19 Nov 2015 23:50:32 +0000
Message-ID: <7347100B5761DC41A166AC17F22DF11221944BEF@eusaamb103.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_7347100B5761DC41A166AC17F22DF11221944BEFeusaamb103erics_"
MIME-Version: 1.0
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrMLMWRmVeSWpSXmKPExsUyuXRPgi7/J98wg9b5fBbzLzayWrS05Dsw eSxZ8pMpgDGKyyYlNSezLLVI3y6BK+Nfy1Gmggl9jBUX18g1MK7oYuxi5OSQEDCRmHP7A5Qt JnHh3no2EFtI4AijxI8trl2MXED2ckaJNUvmsIAk2ASMJF5s7GHvYuTgEBHQkjj6WQ4kzCyg LzFl3RcmEFtYQE5i1ooVYOUiAsoSl5e1MEPYehKv5y8Cs1kEVCXu3GxmBhnDK+Ar0f1BAyTM CHTC91NrmCBGikvcejKfCeI0AYkle84zQ9iiEi8f/2OFsJUkJi09xwpRny+x/ftBsHpeAUGJ kzOfsExgFJ6FZNQsJGWzkJTNArqCWUBTYv0ufYgSRYkp3Q/ZIWwNidY5c9mRxRcwsq9i5Cgt Ti3LTTcy3MQIjIpjEmyOOxgXfLI8xCjAwajEw7thtW+YEGtiWXFl7iFGCQ5mJRHepX5+YUK8 KYmVValF+fFFpTmpxYcYpTlYlMR55824HyokkJ5YkpqdmlqQWgSTZeLglGpglLywsGix+u5g Davjzy/c9eGK76+aHfpT/GrfDI3jd/Zbb16htGm1J9s5O/HPzZtiqzLkLPenpa/z0T2wp75P b/euhdlauvUv3Jta2WaKfDfRrNmoyaFwc+upAMG7O7eG3zuQvPL5vtBVM5O1Z62dnGHjIzxt 2fQS5fra11+frF7+eY/GYWX9EiWW4oxEQy3mouJEAFRY0gaGAgAA
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/ldXmhZGjs_SmuR-s13k8pEWUGlM>
Cc: "yang-coord@ietf.org" <yang-coord@ietf.org>
Subject: [netmod] Question to inet:dscp
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 19 Nov 2015 23:50:39 -0000

--_000_7347100B5761DC41A166AC17F22DF11221944BEFeusaamb103erics_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

RGVhciBBbGwsDQpJIGJlbGlldmUgSSBoYXZlIGNvdXBsZSBxdWVzdGlvbiB0byBob3cgaW5ldDpk
c2NwIGRlZmluZWQgYW5kIHdvdWxkIGdyZWF0bHkgYXBwcmVjaWF0ZSB5b3VyIGd1aWRhbmNlLCBz
dWdnZXN0aW9ucyBhbmQgaGVscC4NCknigJl2ZSBmb3VuZCBpbnQ6ZHNjcCBkZWZpbml0aW9uIGFz
Og0KICAgIHR5cGVkZWYgZHNjcCB7DQogICAgICB0eXBlIHVpbnQ4IHsNCiAgICAgICAgcmFuZ2Ug
IjAuLjYzIjsNCiAgICAgIH0NCiAgICAgIGRlc2NyaXB0aW9uDQogICAgICAgICJUaGUgZHNjcCB0
eXBlIHJlcHJlc2VudHMgYSBEaWZmZXJlbnRpYXRlZCBTZXJ2aWNlcyBDb2RlIFBvaW50DQogICAg
ICB0aGF0IG1heSBiZSB1c2VkIGZvciBtYXJraW5nIHBhY2tldHMgaW4gYSB0cmFmZmljIHN0cmVh
bS4NCiAgICAgIEluIHRoZSB2YWx1ZSBzZXQgYW5kIGl0cyBzZW1hbnRpY3MsIHRoaXMgdHlwZSBp
cyBlcXVpdmFsZW50DQogICAgICB0byB0aGUgRHNjcCB0ZXh0dWFsIGNvbnZlbnRpb24gb2YgdGhl
IFNNSXYyLiI7DQogICAgICByZWZlcmVuY2UNCiAgICAgICAgIlJGQyAzMjg5PGh0dHA6Ly93d3cu
aWV0Zi5vcmcvcmZjL3JmYzMyODkudHh0PjogTWFuYWdlbWVudCBJbmZvcm1hdGlvbiBCYXNlIGZv
ciB0aGUgRGlmZmVyZW50aWF0ZWQNCiAgICAgICAgICAgICAgICAgIFNlcnZpY2VzIEFyY2hpdGVj
dHVyZQ0KICAgICAgICAgUkZDIDI0NzQ8aHR0cDovL3d3dy5pZXRmLm9yZy9yZmMvcmZjMjQ3NC50
eHQ+OiBEZWZpbml0aW9uIG9mIHRoZSBEaWZmZXJlbnRpYXRlZCBTZXJ2aWNlcyBGaWVsZA0KICAg
ICAgICAgICAgICAgICAgKERTIEZpZWxkKSBpbiB0aGUgSVB2NCBhbmQgSVB2NiBIZWFkZXJzDQog
ICAgICAgICBSRkMgMjc4MDxodHRwOi8vd3d3LmlldGYub3JnL3JmYy9yZmMyNzgwLnR4dD46IElB
TkEgQWxsb2NhdGlvbiBHdWlkZWxpbmVzIEZvciBWYWx1ZXMgSW4NCiAgICAgICAgICAgICAgICAg
IHRoZSBJbnRlcm5ldCBQcm90b2NvbCBhbmQgUmVsYXRlZCBIZWFkZXJzIjsNCg0KICAgIH0NCkNv
dXBsZSBub3RlcyBvbiB0aGUgZGVmaW5pdGlvbjoNCg0KwrcgICAgICAgICBEU0NQIGRlZmluZWQg
aW4gUkZDIDI0NzQgYW5kIFJGQyAzMjYwLiBSRkMgMzI2MCBpcyBub3QgbGlzdGVkIGFzIHJlZmVy
ZW5jZTsNCg0KwrcgICAgICAgICBUaG91Z2ggRGlmZlNlcnYgTUlCLCBkZWZpbmVkIGluIFJGQyAz
Mjg5LCBoYWQgZGVmaW5lZCBEU0NQIHZhbHVlcyB0byBiZSBpbiAw4oCmNjMgcmFuZ2UsIFJGQyAz
MjYwIGV4cGxpY2l0bHkgZGlmZmVyZW50aWF0ZWQgc3RhbmRhcmRpemVkIGNvZGVwb2ludHMgZnJv
bSB1bmtub3duIG9yIGltcHJvcGVybHkgbWFwcGVkIERTQ1AgY29kZXBvaW50cy4gVGhlIGZhY3Qg
aXMgdGhhdCBzdGFuZGFyZGl6ZWQgRFNDUCBjb2RlcG9pbnRzIGRvIG5vdCByZXByZXNlbnQgY29u
dGlndW91cyByYW5nZSBhcyByZWNvcmRlZCBpbiBJQU5BIERTQ1AgUmVnaXN0cnk8aHR0cDovL3d3
dy5pYW5hLm9yZy9hc3NpZ25tZW50cy9kc2NwLXJlZ2lzdHJ5L2RzY3AtcmVnaXN0cnkueGh0bWw+
Lg0KDQrCtyAgICAgICAgIEFuZCBoZXJl4oCZcyBteSBxdWVzdGlvbiBTaG91bGQgaW5ldDpkc2Nw
IGJlIGRlZmluZWQgYmFzZWQgZXhjbHVzaXZlbHkgb24gc3RhbmRhcmRpemVkIERTQ1AgY29kZXBv
aW50cyBhcyBvdGhlciB2YWx1ZXMgYXJlIG5vbi1zdGFuZGFyZD8NCg0KUmVnYXJkcywNCiAgICAg
ICAgR3JlZw0K

--_000_7347100B5761DC41A166AC17F22DF11221944BEFeusaamb103erics_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTQgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl
PjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6
V2luZ2RpbmdzOw0KCXBhbm9zZS0xOjUgMCAwIDAgMCAwIDAgMCAwIDA7fQ0KQGZvbnQtZmFjZQ0K
CXtmb250LWZhbWlseTpXaW5nZGluZ3M7DQoJcGFub3NlLTE6NSAwIDAgMCAwIDAgMCAwIDAgMDt9
DQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7DQoJcGFub3NlLTE6MiAxNSA1IDIg
MiAyIDQgMyAyIDQ7fQ0KLyogU3R5bGUgRGVmaW5pdGlvbnMgKi8NCnAuTXNvTm9ybWFsLCBsaS5N
c29Ob3JtYWwsIGRpdi5Nc29Ob3JtYWwNCgl7bWFyZ2luOjBpbjsNCgltYXJnaW4tYm90dG9tOi4w
MDAxcHQ7DQoJZm9udC1zaXplOjEyLjBwdDsNCglmb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFu
Iiwic2VyaWYiOw0KCWNvbG9yOmJsYWNrO30NCmE6bGluaywgc3Bhbi5Nc29IeXBlcmxpbmsNCgl7
bXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCWNvbG9yOmJsdWU7DQoJdGV4dC1kZWNvcmF0aW9uOnVu
ZGVybGluZTt9DQphOnZpc2l0ZWQsIHNwYW4uTXNvSHlwZXJsaW5rRm9sbG93ZWQNCgl7bXNvLXN0
eWxlLXByaW9yaXR5Ojk5Ow0KCWNvbG9yOnB1cnBsZTsNCgl0ZXh0LWRlY29yYXRpb246dW5kZXJs
aW5lO30NCnAuTXNvTGlzdFBhcmFncmFwaCwgbGkuTXNvTGlzdFBhcmFncmFwaCwgZGl2Lk1zb0xp
c3RQYXJhZ3JhcGgNCgl7bXNvLXN0eWxlLXByaW9yaXR5OjM0Ow0KCW1hcmdpbi10b3A6MGluOw0K
CW1hcmdpbi1yaWdodDowaW47DQoJbWFyZ2luLWJvdHRvbTowaW47DQoJbWFyZ2luLWxlZnQ6LjVp
bjsNCgltYXJnaW4tYm90dG9tOi4wMDAxcHQ7DQoJZm9udC1zaXplOjEyLjBwdDsNCglmb250LWZh
bWlseToiVGltZXMgTmV3IFJvbWFuIiwic2VyaWYiOw0KCWNvbG9yOmJsYWNrO30NCnNwYW4uRW1h
aWxTdHlsZTE3DQoJe21zby1zdHlsZS10eXBlOnBlcnNvbmFsLXJlcGx5Ow0KCWZvbnQtZmFtaWx5
OiJDYWxpYnJpIiwic2Fucy1zZXJpZiI7DQoJY29sb3I6IzFGNDk3RDt9DQouTXNvQ2hwRGVmYXVs
dA0KCXttc28tc3R5bGUtdHlwZTpleHBvcnQtb25seTsNCglmb250LXNpemU6MTAuMHB0O30NCkBw
YWdlIFdvcmRTZWN0aW9uMQ0KCXtzaXplOjguNWluIDExLjBpbjsNCgltYXJnaW46MS4waW4gMS4w
aW4gMS4waW4gMS4waW47fQ0KZGl2LldvcmRTZWN0aW9uMQ0KCXtwYWdlOldvcmRTZWN0aW9uMTt9
DQovKiBMaXN0IERlZmluaXRpb25zICovDQpAbGlzdCBsMA0KCXttc28tbGlzdC1pZDoxNDQ4NTA3
MTc1Ow0KCW1zby1saXN0LXR5cGU6aHlicmlkOw0KCW1zby1saXN0LXRlbXBsYXRlLWlkczotMTMz
MDM1NDY3NCA2NzY5ODY4OSA2NzY5ODY5MSA2NzY5ODY5MyA2NzY5ODY4OSA2NzY5ODY5MSA2NzY5
ODY5MyA2NzY5ODY4OSA2NzY5ODY5MSA2NzY5ODY5Mzt9DQpAbGlzdCBsMDpsZXZlbDENCgl7bXNv
LWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CtzsNCgltc28t
bGV2ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJ
dGV4dC1pbmRlbnQ6LS4yNWluOw0KCWZvbnQtZmFtaWx5OlN5bWJvbDt9DQpAbGlzdCBsMDpsZXZl
bDINCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Om87
DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjps
ZWZ0Ow0KCXRleHQtaW5kZW50Oi0uMjVpbjsNCglmb250LWZhbWlseToiQ291cmllciBOZXciO30N
CkBsaXN0IGwwOmxldmVsMw0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNv
LWxldmVsLXRleHQ674KnOw0KCW1zby1sZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1u
dW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotLjI1aW47DQoJZm9udC1mYW1pbHk6
V2luZ2RpbmdzO30NCkBsaXN0IGwwOmxldmVsNA0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpi
dWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674K3Ow0KCW1zby1sZXZlbC10YWItc3RvcDpub25lOw0K
CW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotLjI1aW47DQoJ
Zm9udC1mYW1pbHk6U3ltYm9sO30NCkBsaXN0IGwwOmxldmVsNQ0KCXttc28tbGV2ZWwtbnVtYmVy
LWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ6bzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6
bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LS4y
NWluOw0KCWZvbnQtZmFtaWx5OiJDb3VyaWVyIE5ldyI7fQ0KQGxpc3QgbDA6bGV2ZWw2DQoJe21z
by1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgqc7DQoJbXNv
LWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0K
CXRleHQtaW5kZW50Oi0uMjVpbjsNCglmb250LWZhbWlseTpXaW5nZGluZ3M7fQ0KQGxpc3QgbDA6
bGV2ZWw3DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4
dDrvgrc7DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1wb3Np
dGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0uMjVpbjsNCglmb250LWZhbWlseTpTeW1ib2w7fQ0K
QGxpc3QgbDA6bGV2ZWw4DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28t
bGV2ZWwtdGV4dDpvOw0KCW1zby1sZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1i
ZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotLjI1aW47DQoJZm9udC1mYW1pbHk6IkNv
dXJpZXIgTmV3Ijt9DQpAbGlzdCBsMDpsZXZlbDkNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6
YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CpzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsN
Cgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LS4yNWluOw0K
CWZvbnQtZmFtaWx5OldpbmdkaW5nczt9DQpvbA0KCXttYXJnaW4tYm90dG9tOjBpbjt9DQp1bA0K
CXttYXJnaW4tYm90dG9tOjBpbjt9DQotLT48L3N0eWxlPjwhLS1baWYgZ3RlIG1zbyA5XT48eG1s
Pg0KPG86c2hhcGVkZWZhdWx0cyB2OmV4dD0iZWRpdCIgc3BpZG1heD0iMTAyNiIgLz4NCjwveG1s
PjwhW2VuZGlmXS0tPjwhLS1baWYgZ3RlIG1zbyA5XT48eG1sPg0KPG86c2hhcGVsYXlvdXQgdjpl
eHQ9ImVkaXQiPg0KPG86aWRtYXAgdjpleHQ9ImVkaXQiIGRhdGE9IjEiIC8+DQo8L286c2hhcGVs
YXlvdXQ+PC94bWw+PCFbZW5kaWZdLS0+DQo8L2hlYWQ+DQo8Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIg
bGFuZz0iRU4tVVMiIGxpbms9ImJsdWUiIHZsaW5rPSJwdXJwbGUiPg0KPGRpdiBjbGFzcz0iV29y
ZFNlY3Rpb24xIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6
MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZx
dW90Oztjb2xvcjojMUY0OTdEIj5EZWFyIEFsbCw8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWls
eTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3
RCI+SSBiZWxpZXZlIEkgaGF2ZSBjb3VwbGUgcXVlc3Rpb24gdG8gaG93IGluZXQ6ZHNjcCBkZWZp
bmVkIGFuZCB3b3VsZCBncmVhdGx5IGFwcHJlY2lhdGUgeW91ciBndWlkYW5jZSwgc3VnZ2VzdGlv
bnMgYW5kIGhlbHAuPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZx
dW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPknigJl2ZSBmb3VuZCBp
bnQ6ZHNjcCBkZWZpbml0aW9uIGFzOjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90
O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj4mbmJz
cDsmbmJzcDsmbmJzcDsNCjxhIG5hbWU9ImRzY3AuODgiPjwvYT50eXBlZGVmIGRzY3AgezxvOnA+
PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1z
ZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsg
dHlwZSB1aW50OCB7PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZx
dW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPiZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyByYW5nZSAmcXVvdDswLi42MyZxdW90Ozs8bzpw
PjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMt
c2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
IH08bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90
O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7IGRlc2NyaXB0aW9uPG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2Fs
aWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPiZuYnNwOyAm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmcXVvdDtUaGUgZHNjcCB0eXBlIHJl
cHJlc2VudHMgYSBEaWZmZXJlbnRpYXRlZCBTZXJ2aWNlcyBDb2RlIFBvaW50PG86cD48L286cD48
L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1
b3Q7O2NvbG9yOiMxRjQ5N0QiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB0aGF0IG1h
eSBiZSB1c2VkIGZvciBtYXJraW5nIHBhY2tldHMgaW4gYSB0cmFmZmljIHN0cmVhbS48bzpwPjwv
bzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2Vy
aWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IElu
IHRoZSB2YWx1ZSBzZXQgYW5kIGl0cyBzZW1hbnRpY3MsIHRoaXMgdHlwZSBpcyBlcXVpdmFsZW50
PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtz
YW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyB0byB0aGUgRHNjcCB0ZXh0dWFsIGNvbnZlbnRpb24gb2YgdGhlIFNNSXYyLiZxdW90Ozs8
bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0i
Zm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3Nh
bnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyZu
YnNwO3JlZmVyZW5jZTxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkm
cXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj4mbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJnF1b3Q7PGEgaHJlZj0iaHR0cDovL3d3dy5p
ZXRmLm9yZy9yZmMvcmZjMzI4OS50eHQiPlJGQyAzMjg5PC9hPjogTWFuYWdlbWVudCBJbmZvcm1h
dGlvbiBCYXNlIGZvciB0aGUgRGlmZmVyZW50aWF0ZWQ8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZh
bWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFG
NDk3RCI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsmbmJzcDtTZXJ2aWNlcyBB
cmNoaXRlY3R1cmU8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48
c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1
b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7DQo8YSBocmVmPSJodHRwOi8vd3d3Lmll
dGYub3JnL3JmYy9yZmMyNDc0LnR4dCI+UkZDIDI0NzQ8L2E+OiBEZWZpbml0aW9uIG9mIHRoZSBE
aWZmZXJlbnRpYXRlZCBTZXJ2aWNlcyBGaWVsZDxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5
OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdE
Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyZuYnNwOyhEUyBGaWVsZCkgaW4g
dGhlIElQdjQgYW5kIElQdjYgSGVhZGVyczxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZx
dW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj4m
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsNCjxhIGhyZWY9
Imh0dHA6Ly93d3cuaWV0Zi5vcmcvcmZjL3JmYzI3ODAudHh0Ij5SRkMgMjc4MDwvYT46IElBTkEg
QWxsb2NhdGlvbiBHdWlkZWxpbmVzIEZvciBWYWx1ZXMgSW48bzpwPjwvbzpwPjwvc3Bhbj48L3A+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250
LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6
IzFGNDk3RCI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsmbmJzcDt0aGUgSW50
ZXJuZXQgUHJvdG9jb2wgYW5kIFJlbGF0ZWQgSGVhZGVycyZxdW90Ozs8bzpwPjwvbzpwPjwvc3Bh
bj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBw
dDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7
Y29sb3I6IzFGNDk3RCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7
Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPiZuYnNw
OyZuYnNwOyZuYnNwOyB9PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJy
aSZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPkNvdXBsZSBub3Rl
cyBvbiB0aGUgZGVmaW5pdGlvbjo8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNv
TGlzdFBhcmFncmFwaCIgc3R5bGU9InRleHQtaW5kZW50Oi0uMjVpbjttc28tbGlzdDpsMCBsZXZl
bDEgbGZvMSI+PCFbaWYgIXN1cHBvcnRMaXN0c10+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4w
cHQ7Zm9udC1mYW1pbHk6U3ltYm9sO2NvbG9yOiMxRjQ5N0QiPjxzcGFuIHN0eWxlPSJtc28tbGlz
dDpJZ25vcmUiPsK3PHNwYW4gc3R5bGU9ImZvbnQ6Ny4wcHQgJnF1b3Q7VGltZXMgTmV3IFJvbWFu
JnF1b3Q7Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsN
Cjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwhW2VuZGlmXT48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEx
LjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVv
dDs7Y29sb3I6IzFGNDk3RCI+RFNDUCBkZWZpbmVkIGluIFJGQyAyNDc0IGFuZCBSRkMgMzI2MC4g
UkZDIDMyNjAgaXMgbm90IGxpc3RlZCBhcyByZWZlcmVuY2U7PG86cD48L286cD48L3NwYW4+PC9w
Pg0KPHAgY2xhc3M9Ik1zb0xpc3RQYXJhZ3JhcGgiIHN0eWxlPSJ0ZXh0LWluZGVudDotLjI1aW47
bXNvLWxpc3Q6bDAgbGV2ZWwxIGxmbzEiPjwhW2lmICFzdXBwb3J0TGlzdHNdPjxzcGFuIHN0eWxl
PSJmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OlN5bWJvbDtjb2xvcjojMUY0OTdEIj48c3Bh
biBzdHlsZT0ibXNvLWxpc3Q6SWdub3JlIj7CtzxzcGFuIHN0eWxlPSJmb250OjcuMHB0ICZxdW90
O1RpbWVzIE5ldyBSb21hbiZxdW90OyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7DQo8L3NwYW4+PC9zcGFuPjwvc3Bhbj48IVtlbmRpZl0+PHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVv
dDtzYW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPlRob3VnaCBEaWZmU2VydiBNSUIsIGRl
ZmluZWQgaW4gUkZDIDMyODksIGhhZCBkZWZpbmVkIERTQ1AgdmFsdWVzIHRvIGJlIGluIDDigKY2
MyByYW5nZSwgUkZDIDMyNjAgZXhwbGljaXRseSBkaWZmZXJlbnRpYXRlZCBzdGFuZGFyZGl6ZWQg
Y29kZXBvaW50cw0KIGZyb20gdW5rbm93biBvciBpbXByb3Blcmx5IG1hcHBlZCBEU0NQIGNvZGVw
b2ludHMuIFRoZSBmYWN0IGlzIHRoYXQgc3RhbmRhcmRpemVkIERTQ1AgY29kZXBvaW50cyBkbyBu
b3QgcmVwcmVzZW50IGNvbnRpZ3VvdXMgcmFuZ2UgYXMgcmVjb3JkZWQgaW4NCjxhIGhyZWY9Imh0
dHA6Ly93d3cuaWFuYS5vcmcvYXNzaWdubWVudHMvZHNjcC1yZWdpc3RyeS9kc2NwLXJlZ2lzdHJ5
LnhodG1sIj5JQU5BIERTQ1AgUmVnaXN0cnk8L2E+LjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4NCjxw
IGNsYXNzPSJNc29MaXN0UGFyYWdyYXBoIiBzdHlsZT0idGV4dC1pbmRlbnQ6LS4yNWluO21zby1s
aXN0OmwwIGxldmVsMSBsZm8xIj48IVtpZiAhc3VwcG9ydExpc3RzXT48c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjExLjBwdDtmb250LWZhbWlseTpTeW1ib2w7Y29sb3I6IzFGNDk3RCI+PHNwYW4gc3R5
bGU9Im1zby1saXN0Oklnbm9yZSI+wrc8c3BhbiBzdHlsZT0iZm9udDo3LjBwdCAmcXVvdDtUaW1l
cyBOZXcgUm9tYW4mcXVvdDsiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOw0KPC9zcGFuPjwvc3Bhbj48L3NwYW4+PCFbZW5kaWZdPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiZxdW90O0NhbGlicmkmcXVvdDssJnF1b3Q7c2Fu
cy1zZXJpZiZxdW90Oztjb2xvcjojMUY0OTdEIj5BbmQgaGVyZeKAmXMgbXkgcXVlc3Rpb24gU2hv
dWxkIGluZXQ6ZHNjcCBiZSBkZWZpbmVkIGJhc2VkIGV4Y2x1c2l2ZWx5IG9uIHN0YW5kYXJkaXpl
ZCBEU0NQIGNvZGVwb2ludHMgYXMgb3RoZXIgdmFsdWVzIGFyZSBub24tc3RhbmRhcmQ/PG86cD48
L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtzYW5zLXNl
cmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiIHN0eWxlPSJtYXJnaW4tbGVmdDouMjVpbiI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6JnF1b3Q7Q2FsaWJyaSZxdW90OywmcXVvdDtz
YW5zLXNlcmlmJnF1b3Q7O2NvbG9yOiMxRjQ5N0QiPlJlZ2FyZHMsPG86cD48L286cD48L3NwYW4+
PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1hcmdpbi1sZWZ0Oi4yNWluIj48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseTomcXVvdDtDYWxpYnJpJnF1b3Q7
LCZxdW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6IzFGNDk3RCI+Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IEdyZWc8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rp
dj4NCjwvYm9keT4NCjwvaHRtbD4NCg==

--_000_7347100B5761DC41A166AC17F22DF11221944BEFeusaamb103erics_--


From nobody Fri Nov 20 00:47: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 AECFD1B2BD3; Fri, 20 Nov 2015 00:47:47 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.235
X-Spam-Level: 
X-Spam-Status: No, score=-3.235 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, J_CHICKENPOX_34=0.6, J_CHICKENPOX_44=0.6, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-0.585] 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 QpA4SMxZ_YHm; Fri, 20 Nov 2015 00:47:46 -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 B0E931B2BC5; Fri, 20 Nov 2015 00:47:45 -0800 (PST)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id 8585D1421; Fri, 20 Nov 2015 09:47: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 o4MgMMmVtoRa; Fri, 20 Nov 2015 09:47:43 +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, 20 Nov 2015 09:47:43 +0100 (CET)
Received: from localhost (demetrius3.jacobs-university.de [212.201.44.48]) by hermes.jacobs-university.de (Postfix) with ESMTP id 64E192004E; Fri, 20 Nov 2015 09:47: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 pl8NKLWyda9H; Fri, 20 Nov 2015 09:47:42 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id ADAA12003B; Fri, 20 Nov 2015 09:47:41 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id 9636138E3FD1; Fri, 20 Nov 2015 09:47:41 +0100 (CET)
Date: Fri, 20 Nov 2015 09:47:41 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Gregory Mirsky <gregory.mirsky@ericsson.com>
Message-ID: <20151120084741.GB5315@elstar.local>
Mail-Followup-To: Gregory Mirsky <gregory.mirsky@ericsson.com>, NETMOD Working Group <netmod@ietf.org>, "yang-coord@ietf.org" <yang-coord@ietf.org>
References: <7347100B5761DC41A166AC17F22DF11221944BEF@eusaamb103.ericsson.se>
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: <7347100B5761DC41A166AC17F22DF11221944BEF@eusaamb103.ericsson.se>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/BbkvqVSO7hZzioFzxySRA5SQGBs>
Cc: "yang-coord@ietf.org" <yang-coord@ietf.org>, NETMOD Working Group <netmod@ietf.org>
Subject: Re: [netmod] Question to inet:dscp
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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 20 Nov 2015 08:47:47 -0000

On Thu, Nov 19, 2015 at 11:50:32PM +0000, Gregory Mirsky wrote:
> Dear All,
> I believe I have couple question to how inet:dscp defined and would greatly appreciate your guidance, suggestions and help.
> Iâ€™ve found int:dscp definition as:
>     typedef dscp {
>       type uint8 {
>         range "0..63";
>       }
>       description
>         "The dscp type represents a Differentiated Services Code Point
>       that may be used for marking packets in a traffic stream.
>       In the value set and its semantics, this type is equivalent
>       to the Dscp textual convention of the SMIv2.";
>       reference
>         "RFC 3289<http://www.ietf.org/rfc/rfc3289.txt>: Management Information Base for the Differentiated
>                   Services Architecture
>          RFC 2474<http://www.ietf.org/rfc/rfc2474.txt>: Definition of the Differentiated Services Field
>                   (DS Field) in the IPv4 and IPv6 Headers
>          RFC 2780<http://www.ietf.org/rfc/rfc2780.txt>: IANA Allocation Guidelines For Values In
>                   the Internet Protocol and Related Headers";
> 
>     }
> Couple notes on the definition:
> 
> Â·         DSCP defined in RFC 2474 and RFC 3260. RFC 3260 is not listed as reference;
> 
> Â·         Though DiffServ MIB, defined in RFC 3289, had defined DSCP values to be in 0â€¦63 range, RFC 3260 explicitly differentiated standardized codepoints from unknown or improperly mapped DSCP codepoints. The fact is that standardized DSCP codepoints do not represent contiguous range as recorded in IANA DSCP Registry<http://www.iana.org/assignments/dscp-registry/dscp-registry.xhtml>.
> 
> Â·         And hereâ€™s my question Should inet:dscp be defined based exclusively on standardized DSCP codepoints as other values are non-standard?
>

The inet:dscp type models the 6-bit DSCP value, it does not
distinguish between standard and experimental values within the
codepoint space.

/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 Nov 23 02:38:54 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 0A12F1A8F50; Mon, 23 Nov 2015 02:38:53 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -12.56
X-Spam-Level: 
X-Spam-Status: No, score=-12.56 tagged_above=-999 required=5 tests=[BAYES_05=-0.5, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, HTTP_ESCAPED_HOST=1.125, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-0.585, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id dkjX6eZAMoYj; Mon, 23 Nov 2015 02:38:51 -0800 (PST)
Received: from aer-iport-3.cisco.com (aer-iport-3.cisco.com [173.38.203.53]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 029B71A8ACA; Mon, 23 Nov 2015 02:38:50 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=3022; q=dns/txt; s=iport; t=1448275131; x=1449484731; h=from:subject:to:cc:message-id:date:mime-version; bh=h27KaQ44bvfQNrZXWXitE4Dv6jHFQ5X+Pq9a+GUn9Yo=; b=lgzaTbJ0NpTNpbg+egJhUp9bSOdALMe7N4yaMFiwXusKW7Zl6igdOEpM K7ET10wl8ei9EvaVQZjNMX3R6uj58gU3pztHWtu0fYTBipvAgjPJ6sl4J KUEQIpnMGIsB4tdsRd3mZhHS4FJ/CjBvY2IGLFOtke0zd1vy9zgpdCk4v o=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0CpBAAg7FJW/xbLJq1ehA5vvQOEDSOFb?= =?us-ascii?q?IIFAQEBAQEBgQuENydWHwEcIQIRAkwNCAEBBQ0GiBINrgaPdQEBAQEBBQEBAQE?= =?us-ascii?q?BAR2GVIdohQuBRAWWUI0xiR2LaIdGY4QFPTQBhSoBAQE?=
X-IronPort-AV: E=Sophos;i="5.20,336,1444694400";  d="scan'208,217";a="606458284"
Received: from aer-iport-nat.cisco.com (HELO aer-core-2.cisco.com) ([173.38.203.22]) by aer-iport-3.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 23 Nov 2015 10:38:42 +0000
Received: from [10.60.67.93] (ams-bclaise-89112.cisco.com [10.60.67.93]) by aer-core-2.cisco.com (8.14.5/8.14.5) with ESMTP id tANAcfbg015769; Mon, 23 Nov 2015 10:38:41 GMT
From: Benoit Claise <bclaise@cisco.com>
To: NETMOD Working Group <netmod@ietf.org>
Message-ID: <5652ECB1.40304@cisco.com>
Date: Mon, 23 Nov 2015 11:38:41 +0100
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="------------070507010005070003040401"
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/25d-nkFIFGObnbNdoJyUBrDm37M>
Cc: "yang-coord@ietf.org" <yang-coord@ietf.org>
Subject: [netmod] YANG model coordination group: Welcome Qin Wu as a new member
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 23 Nov 2015 10:38:53 -0000

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

Dear all,

As you know, YANG data modeling is getting more and more important these 
days.
Graph of the day, with only the IETF YANG data models, is here 
<http://www.claise.be/modules.png>.

To help with the YANG Model Coordination Group 
<http://www.ietf.org/iesg/directorate/yang-model-coordination-group.html>, 
we would like to welcome Qin Wu.
At the same time, I would like to thank Eric Osborne for his 
participation to the group. Unfortunately, Eric could not dedicate all 
the time he wanted to this task.

Right now, the YANG Model Coordination Group is composed of:
     Carl Moberg
     Dean Bogdanovic
     Qin Wu
     Benoit Claise

As mentioned in the NETMOD meeting at IETF 94 
<03%20-%20YANG%20Model%20Coordination%20Group>, our current phase 
approach is:

    Phase 1: List of the YANG models (inventory)
    Phase 2: Tooling
    Phase 3: Help with compilation
    Phase 4: Training/Education
    Phase 5: Coordination across SDOs/Opensource
    Phase 6: Model Coordination within the IETF
    Phase 7: Standardization Priorities

Regards, Benoit





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

<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Dear all,<br>
    <br>
    As you know, YANG data modeling is getting more and more important
    these days.<br>
    Graph of the day, with only the IETF YANG data models, is <a
      href="http://www.claise.be/modules.png">here</a>.<br>
    <br>
    To help with the <a
href="http://www.ietf.org/iesg/directorate/yang-model-coordination-group.html">YANG
      Model Coordination Group</a>, we would like to welcome Qin Wu.<br>
    At the same time, I would like to thank Eric Osborne for his
    participation to the group. Unfortunately, Eric could not dedicate
    all the time he wanted to this task. <br>
    <br>
    Right now, the YANG Model Coordination Group is composed of:<br>
    Â Â Â  Carl Moberg<br>
    Â Â Â  Dean Bogdanovic <br>
    Â Â Â  Qin Wu<br>
    Â Â Â  Benoit Claise<br>
    <br>
    As mentioned in the <a
      href="03%20-%20YANG%20Model%20Coordination%20Group">NETMOD meeting
      at IETF 94</a>, our current phase approach is:<br>
    <blockquote>Phase 1: List of the YANG models (inventory)<br>
      Phase 2: Tooling<br>
      Phase 3: Help with compilation<br>
      Phase 4: Training/Education<br>
      Phase 5: Coordination across SDOs/Opensource<br>
      Phase 6: Model Coordination within the IETF<br>
      Phase 7: Standardization Priorities<br>
    </blockquote>
    Regards, Benoit<br>
    <br>
    <br>
    <br>
    <br>
  </body>
</html>

--------------070507010005070003040401--


From nobody Mon Nov 23 04:19: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 B40F81A8795 for <netmod@ietfa.amsl.com>; Mon, 23 Nov 2015 04:19:17 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.486
X-Spam-Level: 
X-Spam-Status: No, score=-2.486 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-0.585, 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 9mTbKsRATpjY for <netmod@ietfa.amsl.com>; Mon, 23 Nov 2015 04:19:16 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id B2AD81A8794 for <netmod@ietf.org>; Mon, 23 Nov 2015 04:19:16 -0800 (PST)
Received: from localhost (unknown [173.38.220.62]) by mail.tail-f.com (Postfix) with ESMTPSA id E43961AE0478 for <netmod@ietf.org>; Mon, 23 Nov 2015 13:19:15 +0100 (CET)
Date: Mon, 23 Nov 2015 13:19:15 +0100 (CET)
Message-Id: <20151123.131915.1835459992599944022.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/BCIkugFjnLffvtP98gUuybGmZXc>
Subject: [netmod] derived-from 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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 23 Nov 2015 12:19:17 -0000

Hi,

derived-from is defined as:

    boolean derived-from(node-set nodes,
                         string module-name,
                         string identity-name)
  
  The derived-from() function returns true if the first node in
  document order in the argument "nodes" is a node of type
  identityref, and its value is an identity that is derived from the
  identity "identity-name" defined in the YANG module "module-name";
  otherwise it returns false.


The "first node in the node set" doesn't work well with leaf lists.  I
suggest this change:

NEW:

  The derived-from() function returns true if any node in
  the argument "nodes" is a node of type
  identityref, and its value is an identity that is derived from the
  identity "identity-name" defined in the YANG module "module-name";
  otherwise it returns false.


(and similar for derived-from-or-self)


As an example, consider this model:

   leaf-list yang-protocol {
     type identityref {
       base yang-protocol;
     }
  }

and this query:

   /modules/module[not derived-from-or-self(restricted-protocol,
                                            "ietf-yang-library",
                                            "netconf-1.1")]



/martin


From nobody Mon Nov 23 04:39: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 25EF81A90C4 for <netmod@ietfa.amsl.com>; Mon, 23 Nov 2015 04:39:51 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.936
X-Spam-Level: 
X-Spam-Status: No, score=-5.936 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, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-0.585] 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 mTOuQLMfvquh for <netmod@ietfa.amsl.com>; Mon, 23 Nov 2015 04:39:49 -0800 (PST)
Received: from mail.nic.cz (mail.nic.cz [217.31.204.67]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1D5981A90BF for <netmod@ietf.org>; Mon, 23 Nov 2015 04:39:48 -0800 (PST)
Received: from [IPv6:2001:718:1a02:1:7dfb:2b2c:ee1c:c3fc] (unknown [IPv6:2001:718:1a02:1:7dfb:2b2c:ee1c:c3fc]) by mail.nic.cz (Postfix) with ESMTPSA id 46C65181B09; Mon, 23 Nov 2015 13:39:46 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nic.cz; s=default; t=1448282386; bh=57Dnxj6Gv0oBBzuQGia4mP6HjYn0/KaFdYNWFQwyepg=; h=From:Date:To; b=DxnB4irUgpKvAdw9f6g7ICzToLqi+oIROUGN2SFDdO8+Dg+Euch1O1dFLpOS5gBd6 54slKkcxDmYxh8CEPwU/DLUzMeIXhb2FiP4ASD53k5k/339ANBMy9nBIIMItxGvw2e WJRVcXX8Vovkz+WpmCtTES3W5STkk0UWD9ILVfn0=
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
From: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <20151123.131915.1835459992599944022.mbj@tail-f.com>
Date: Mon, 23 Nov 2015 13:39:47 +0100
Content-Transfer-Encoding: quoted-printable
Message-Id: <7F117F16-FAA7-43EA-850D-E8180BF6E432@nic.cz>
References: <20151123.131915.1835459992599944022.mbj@tail-f.com>
To: =?utf-8?Q?Martin_Bj=C3=B6rklund?= <mbj@tail-f.com>
X-Mailer: Apple Mail (2.3096.5)
X-Virus-Scanned: clamav-milter 0.98.7 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/Sy8BzSIaLgfAaPXJwYi2LBXGf24>
Cc: netmod@ietf.org
Subject: Re: [netmod] derived-from 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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 23 Nov 2015 12:39:51 -0000

> On 23 Nov 2015, at 13:19, Martin Bjorklund <mbj@tail-f.com> wrote:
>=20
> Hi,
>=20
> derived-from is defined as:
>=20
>    boolean derived-from(node-set nodes,
>                         string module-name,
>                         string identity-name)
>=20
>  The derived-from() function returns true if the first node in
>  document order in the argument "nodes" is a node of type
>  identityref, and its value is an identity that is derived from the
>  identity "identity-name" defined in the YANG module "module-name";
>  otherwise it returns false.
>=20
>=20
> The "first node in the node set" doesn't work well with leaf lists.  I
> suggest this change:
>=20
> NEW:
>=20
>  The derived-from() function returns true if any node in
>  the argument "nodes" is a node of type
>  identityref, and its value is an identity that is derived from the
>  identity "identity-name" defined in the YANG module "module-name";
>  otherwise it returns false.

This makes sense. In fact, other XPath functions (deref() and =
enum-value()) are also defined using "the first node in document order". =
This seems to be at odds with sec. 6.4 that says: "This means that XPath =
expressions in YANG modules SHOULD not rely on any specific document =
order." Is it OK that the result of such functions is undefined if the =
node-set argument contains multiple nodes?

Lada=20

>=20
>=20
> (and similar for derived-from-or-self)
>=20
>=20
> As an example, consider this model:
>=20
>   leaf-list yang-protocol {
>     type identityref {
>       base yang-protocol;
>     }
>  }
>=20
> and this query:
>=20
>   /modules/module[not derived-from-or-self(restricted-protocol,
>                                            "ietf-yang-library",
>                                            "netconf-1.1")]
>=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 Mon Nov 23 04:57:44 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 F0C2A1A0636 for <netmod@ietfa.amsl.com>; Mon, 23 Nov 2015 04:57:42 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.486
X-Spam-Level: 
X-Spam-Status: No, score=-2.486 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-0.585, 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 RibxR93v-wxl for <netmod@ietfa.amsl.com>; Mon, 23 Nov 2015 04:57:42 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id E0C231A002F for <netmod@ietf.org>; Mon, 23 Nov 2015 04:57:41 -0800 (PST)
Received: from localhost (unknown [173.38.220.62]) by mail.tail-f.com (Postfix) with ESMTPSA id 988D91AE0478; Mon, 23 Nov 2015 13:57:40 +0100 (CET)
Date: Mon, 23 Nov 2015 13:57:40 +0100 (CET)
Message-Id: <20151123.135740.301112642892609871.mbj@tail-f.com>
To: lhotka@nic.cz
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <7F117F16-FAA7-43EA-850D-E8180BF6E432@nic.cz>
References: <20151123.131915.1835459992599944022.mbj@tail-f.com> <7F117F16-FAA7-43EA-850D-E8180BF6E432@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=us-ascii
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/1HNzJFWqF2DoRRCyJE7QVXdvJ8c>
Cc: netmod@ietf.org
Subject: Re: [netmod] derived-from 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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 23 Nov 2015 12:57:43 -0000

Ladislav Lhotka <lhotka@nic.cz> wrote:
> 
> > On 23 Nov 2015, at 13:19, Martin Bjorklund <mbj@tail-f.com> wrote:
> > 
> > Hi,
> > 
> > derived-from is defined as:
> > 
> >    boolean derived-from(node-set nodes,
> >                         string module-name,
> >                         string identity-name)
> > 
> >  The derived-from() function returns true if the first node in
> >  document order in the argument "nodes" is a node of type
> >  identityref, and its value is an identity that is derived from the
> >  identity "identity-name" defined in the YANG module "module-name";
> >  otherwise it returns false.
> > 
> > 
> > The "first node in the node set" doesn't work well with leaf lists.  I
> > suggest this change:
> > 
> > NEW:
> > 
> >  The derived-from() function returns true if any node in
> >  the argument "nodes" is a node of type
> >  identityref, and its value is an identity that is derived from the
> >  identity "identity-name" defined in the YANG module "module-name";
> >  otherwise it returns false.
> 
> This makes sense.

Good.


> In fact, other XPath functions (deref() and
> enum-value()) are also defined using "the first node in document
> order". This seems to be at odds with sec. 6.4 that says: "This means
> that XPath expressions in YANG modules SHOULD not rely on any specific
> document order." Is it OK that the result of such functions is
> undefined if the node-set argument contains multiple nodes?

I think so.  These functions are intended for single leafs (what is
the enum value of a leaf-list?).  The alternative would be to say that
it is an error if the node set contains more than one node, but XPath
functions rarely returns errors.


/martin


From nobody Mon Nov 23 05:05: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 9EAB11A87DF for <netmod@ietfa.amsl.com>; Mon, 23 Nov 2015 05:05:11 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.936
X-Spam-Level: 
X-Spam-Status: No, score=-5.936 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, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-0.585] 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 1lfG_8LGY187 for <netmod@ietfa.amsl.com>; Mon, 23 Nov 2015 05:05:07 -0800 (PST)
Received: from mail.nic.cz (mail.nic.cz [217.31.204.67]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B96521A87D4 for <netmod@ietf.org>; Mon, 23 Nov 2015 05:05:06 -0800 (PST)
Received: from [IPv6:2001:718:1a02:1:7dfb:2b2c:ee1c:c3fc] (unknown [IPv6:2001:718:1a02:1:7dfb:2b2c:ee1c:c3fc]) by mail.nic.cz (Postfix) with ESMTPSA id 5738F180C69; Mon, 23 Nov 2015 14:05:05 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nic.cz; s=default; t=1448283905; bh=NBrTuuii9T4vFnEdDgl4FE00I4zdTgtY1dSbPvvcyrQ=; h=From:Date:To; b=ENrhaUrp2qDK1ZzVgoZKCu3b/wEagH87ZekFE0p86Q+iiaqungoTfjYkKmK6snr86 896C2l+/zG32+X1BS6inIGz+EP9w5eDr+IltVtO6jH2MzrHtL/9Xvy1+AOs3QKdtiO buNnrZtS+CuZ4k6vsHwYFqvmj8/EMjXkqwTE5gbo=
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
From: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <20151123.135740.301112642892609871.mbj@tail-f.com>
Date: Mon, 23 Nov 2015 14:05:06 +0100
Content-Transfer-Encoding: quoted-printable
Message-Id: <1FCBBCEB-1F9F-49B7-AAED-243219606891@nic.cz>
References: <20151123.131915.1835459992599944022.mbj@tail-f.com> <7F117F16-FAA7-43EA-850D-E8180BF6E432@nic.cz> <20151123.135740.301112642892609871.mbj@tail-f.com>
To: =?utf-8?Q?Martin_Bj=C3=B6rklund?= <mbj@tail-f.com>
X-Mailer: Apple Mail (2.3096.5)
X-Virus-Scanned: clamav-milter 0.98.7 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/6WjjIKi7oQXuQMuBUD0Xi51pUvE>
Cc: netmod@ietf.org
Subject: Re: [netmod] derived-from 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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 23 Nov 2015 13:05:11 -0000

> On 23 Nov 2015, at 13:57, Martin Bjorklund <mbj@tail-f.com> wrote:
>=20
> Ladislav Lhotka <lhotka@nic.cz> wrote:
>>=20
>>> On 23 Nov 2015, at 13:19, Martin Bjorklund <mbj@tail-f.com> wrote:
>>>=20
>>> Hi,
>>>=20
>>> derived-from is defined as:
>>>=20
>>>   boolean derived-from(node-set nodes,
>>>                        string module-name,
>>>                        string identity-name)
>>>=20
>>> The derived-from() function returns true if the first node in
>>> document order in the argument "nodes" is a node of type
>>> identityref, and its value is an identity that is derived from the
>>> identity "identity-name" defined in the YANG module "module-name";
>>> otherwise it returns false.
>>>=20
>>>=20
>>> The "first node in the node set" doesn't work well with leaf lists.  =
I
>>> suggest this change:
>>>=20
>>> NEW:
>>>=20
>>> The derived-from() function returns true if any node in
>>> the argument "nodes" is a node of type
>>> identityref, and its value is an identity that is derived from the
>>> identity "identity-name" defined in the YANG module "module-name";
>>> otherwise it returns false.
>>=20
>> This makes sense.
>=20
> Good.
>=20
>=20
>> In fact, other XPath functions (deref() and
>> enum-value()) are also defined using "the first node in document
>> order". This seems to be at odds with sec. 6.4 that says: "This means
>> that XPath expressions in YANG modules SHOULD not rely on any =
specific
>> document order." Is it OK that the result of such functions is
>> undefined if the node-set argument contains multiple nodes?
>=20
> I think so.  These functions are intended for single leafs (what is
> the enum value of a leaf-list?).  The alternative would be to say that
> it is an error if the node set contains more than one node, but XPath
> functions rarely returns errors.

I don't think it should be an error but it might be useful to explicitly =
state that the result of deref() and enum-value() is undefined if the =
node-set involves multiple nodes, with reference to sec. 6.4.

Lada

>=20
>=20
> /martin

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





From nobody Mon Nov 23 05:09: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 0152A1A9239 for <netmod@ietfa.amsl.com>; Mon, 23 Nov 2015 05:09:58 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.486
X-Spam-Level: 
X-Spam-Status: No, score=-2.486 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-0.585, 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 LACbzuvsQvZy for <netmod@ietfa.amsl.com>; Mon, 23 Nov 2015 05:09:57 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id 148261A9237 for <netmod@ietf.org>; Mon, 23 Nov 2015 05:09:57 -0800 (PST)
Received: from localhost (unknown [173.38.220.62]) by mail.tail-f.com (Postfix) with ESMTPSA id 019A41AE0478; Mon, 23 Nov 2015 14:09:55 +0100 (CET)
Date: Mon, 23 Nov 2015 14:09:56 +0100 (CET)
Message-Id: <20151123.140956.1414405859229447636.mbj@tail-f.com>
To: lhotka@nic.cz
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <09858705-2365-4B77-A233-91019B6BC681@nic.cz>
References: <09858705-2365-4B77-A233-91019B6BC681@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=us-ascii
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/gI0TTHrcms-OqqbipBJtQhj76pA>
Cc: netmod@ietf.org
Subject: Re: [netmod] Y02: context 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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 23 Nov 2015 13:09:58 -0000

Ladislav Lhotka <lhotka@nic.cz> wrote:
> Hi,
> 
> Y02-01 allows "must" as a substatement of "input", "output" and
> "notification" but for these cases the specification of the context
> node in sec. 7.5.3 doesn't work.
> 
>    o  The context node is the node in the accessible tree for which the
>       "must" statement is defined.

You are right.  But note how the accessible tree is defined.  There is
a node for the operation / notification.  This node should be the
context node:

   o  If the "must" statement is a substatement of a "notification"
      statement, the context node is the node representing the
      notification in the accessible tree.

   o  If the "must" statement is a substatement of a "input"
      statement, the context node is the node representing the
      operation in the accessible tree.

   o  If the "must" statement is a substatement of a "output"
      statement, the context node is the node representing the
      operation in the accessible tree.


/martin


From nobody Mon Nov 23 05:24:46 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 1EFC81B38CC for <netmod@ietfa.amsl.com>; Mon, 23 Nov 2015 05:24:45 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.936
X-Spam-Level: 
X-Spam-Status: No, score=-5.936 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, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-0.585] 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 fEGl1jQoVF-g for <netmod@ietfa.amsl.com>; Mon, 23 Nov 2015 05:24:43 -0800 (PST)
Received: from mail.nic.cz (mail.nic.cz [217.31.204.67]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 36E521B38CB for <netmod@ietf.org>; Mon, 23 Nov 2015 05:24:43 -0800 (PST)
Received: from [IPv6:2001:718:1a02:1:7dfb:2b2c:ee1c:c3fc] (unknown [IPv6:2001:718:1a02:1:7dfb:2b2c:ee1c:c3fc]) by mail.nic.cz (Postfix) with ESMTPSA id AC8041813F7; Mon, 23 Nov 2015 14:24:41 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nic.cz; s=default; t=1448285081; bh=5aRASL8QCxjdW2zfZ9n25zZtN9tVJyaecl2xK44GdxM=; h=From:Date:To; b=eSQtZPqlEXrfMyJ4GdkjHDKOoARGmALIADnqhKY4mtQ+5KK/EVGgyDjnxfUh6BUTN TlB4IHeQzcrgN1mGv9RJLTR0KAexKQ/6K2cJ5WToXJZ5hqowemBIgmperjIEE3/UZa jb9m28jlj5Z0ZDRPKRkZszbx5mJUet3B45lHuBEA=
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
From: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <20151123.140956.1414405859229447636.mbj@tail-f.com>
Date: Mon, 23 Nov 2015 14:24:42 +0100
Content-Transfer-Encoding: quoted-printable
Message-Id: <082F61F5-23B8-470C-808E-292D8DBBED3B@nic.cz>
References: <09858705-2365-4B77-A233-91019B6BC681@nic.cz> <20151123.140956.1414405859229447636.mbj@tail-f.com>
To: =?utf-8?Q?Martin_Bj=C3=B6rklund?= <mbj@tail-f.com>
X-Mailer: Apple Mail (2.3096.5)
X-Virus-Scanned: clamav-milter 0.98.7 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/T3kyO5WLMAdq3yWjzMkOxTPeMeU>
Cc: netmod@ietf.org
Subject: Re: [netmod] Y02: context 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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 23 Nov 2015 13:24:45 -0000

> On 23 Nov 2015, at 14:09, Martin Bjorklund <mbj@tail-f.com> wrote:
>=20
> Ladislav Lhotka <lhotka@nic.cz> wrote:
>> Hi,
>>=20
>> Y02-01 allows "must" as a substatement of "input", "output" and
>> "notification" but for these cases the specification of the context
>> node in sec. 7.5.3 doesn't work.
>>=20
>>   o  The context node is the node in the accessible tree for which =
the
>>      "must" statement is defined.
>=20
> You are right.  But note how the accessible tree is defined.  There is
> a node for the operation / notification.  This node should be the

Not in rpc/action output:

     <rpc-reply message-id=3D"101"
                xmlns=3D"urn:ietf:params:xml:ns:netconf:base:1.0">
       <reset-finished-at xmlns=3D"http://example.net/server-farm">
         2014-07-29T13:42:12Z
       </reset-finished-at>
     </rpc-reply>



> context node:
>=20
>   o  If the "must" statement is a substatement of a "notification"
>      statement, the context node is the node representing the
>      notification in the accessible tree.
>=20
>   o  If the "must" statement is a substatement of a "input"
>      statement, the context node is the node representing the
>      operation in the accessible tree.
>=20
>   o  If the "must" statement is a substatement of a "output"
>      statement, the context node is the node representing the
>      operation in the accessible tree.

In the last bullet, I don't know what the node representing the =
operation is. In XML encoding, the request is

<rpc ...>
  <opname ...>
    ...
  </opname>
</rpc>

so I understand the <opname> element is the node representing the =
operation, but in a reply the <opname> element isn't present.

Am I missing something?

Lada

>=20
>=20
> /martin

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





From nobody Mon Nov 23 05:38: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 3276E1B38FE for <netmod@ietfa.amsl.com>; Mon, 23 Nov 2015 05:38:06 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.486
X-Spam-Level: 
X-Spam-Status: No, score=-2.486 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-0.585, 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 IMoKBq4AUJUt for <netmod@ietfa.amsl.com>; Mon, 23 Nov 2015 05:38:05 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id ADDF01B38FC for <netmod@ietf.org>; Mon, 23 Nov 2015 05:38:04 -0800 (PST)
Received: from localhost (unknown [173.38.220.62]) by mail.tail-f.com (Postfix) with ESMTPSA id 87C081AE0478; Mon, 23 Nov 2015 14:38:03 +0100 (CET)
Date: Mon, 23 Nov 2015 14:38:03 +0100 (CET)
Message-Id: <20151123.143803.490586134586800546.mbj@tail-f.com>
To: lhotka@nic.cz
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <082F61F5-23B8-470C-808E-292D8DBBED3B@nic.cz>
References: <09858705-2365-4B77-A233-91019B6BC681@nic.cz> <20151123.140956.1414405859229447636.mbj@tail-f.com> <082F61F5-23B8-470C-808E-292D8DBBED3B@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=us-ascii
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/OyDnXGMm6rAILWxlkbS2a7RxO5A>
Cc: netmod@ietf.org
Subject: Re: [netmod] Y02: context 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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 23 Nov 2015 13:38:06 -0000

Ladislav Lhotka <lhotka@nic.cz> wrote:
> 
> > On 23 Nov 2015, at 14:09, Martin Bjorklund <mbj@tail-f.com> wrote:
> > 
> > Ladislav Lhotka <lhotka@nic.cz> wrote:
> >> Hi,
> >> 
> >> Y02-01 allows "must" as a substatement of "input", "output" and
> >> "notification" but for these cases the specification of the context
> >> node in sec. 7.5.3 doesn't work.
> >> 
> >>   o  The context node is the node in the accessible tree for which the
> >>      "must" statement is defined.
> > 
> > You are right.  But note how the accessible tree is defined.  There is
> > a node for the operation / notification.  This node should be the
> 
> Not in rpc/action output:
> 
>      <rpc-reply message-id="101"
>                 xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
>        <reset-finished-at xmlns="http://example.net/server-farm">
>          2014-07-29T13:42:12Z
>        </reset-finished-at>
>      </rpc-reply>
> 
> 
> 
> > context node:
> > 
> >   o  If the "must" statement is a substatement of a "notification"
> >      statement, the context node is the node representing the
> >      notification in the accessible tree.
> > 
> >   o  If the "must" statement is a substatement of a "input"
> >      statement, the context node is the node representing the
> >      operation in the accessible tree.
> > 
> >   o  If the "must" statement is a substatement of a "output"
> >      statement, the context node is the node representing the
> >      operation in the accessible tree.
> 
> In the last bullet, I don't know what the node representing the
> operation is. In XML encoding, the request is
> 
> <rpc ...>
>   <opname ...>
>     ...
>   </opname>
> </rpc>
> 
> so I understand the <opname> element is the node representing the
> operation, but in a reply the <opname> element isn't present.
> 
> Am I missing something?

The accessible tree is the same regardless of encoding.  This means
that an implementation must (conceptually) decode the received data
and put it in this tree.  It should work with XML, JSON, and any other
encoding we might define.  So, the exact node names and structure in
the XML encoding does not really matter.


/martin


From nobody Mon Nov 23 05:53:23 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 616A41B397C for <netmod@ietfa.amsl.com>; Mon, 23 Nov 2015 05:53:21 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.486
X-Spam-Level: 
X-Spam-Status: No, score=-2.486 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-0.585, 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_qIAjccdevq for <netmod@ietfa.amsl.com>; Mon, 23 Nov 2015 05:53:19 -0800 (PST)
Received: from galileo.mg-soft.si (gate.mg-soft.si [212.30.73.66]) by ietfa.amsl.com (Postfix) with ESMTP id 02CCE1B3977 for <netmod@ietf.org>; Mon, 23 Nov 2015 05:53:18 -0800 (PST)
Received: from [10.0.0.222] (tp-x61t.mg-soft.si [10.0.0.222]) by galileo.mg-soft.si (Postfix) with ESMTP id 4A47FC4175C2; Mon, 23 Nov 2015 14:53:17 +0100 (CET)
To: Martin Bjorklund <mbj@tail-f.com>, lhotka@nic.cz
References: <09858705-2365-4B77-A233-91019B6BC681@nic.cz> <20151123.140956.1414405859229447636.mbj@tail-f.com> <082F61F5-23B8-470C-808E-292D8DBBED3B@nic.cz> <20151123.143803.490586134586800546.mbj@tail-f.com>
From: Jernej Tuljak <jernejt@mg-soft.si>
Message-ID: <56531A49.70309@mg-soft.si>
Date: Mon, 23 Nov 2015 14:53:13 +0100
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0
MIME-Version: 1.0
In-Reply-To: <20151123.143803.490586134586800546.mbj@tail-f.com>
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/NIc5Tx_UJJB3QzhVCDQjtg3rPpA>
Cc: netmod@ietf.org
Subject: Re: [netmod] Y02: context 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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 23 Nov 2015 13:53:21 -0000

Martin Bjorklund je 23.11.2015 ob 14:38 napisal:
> Ladislav Lhotka <lhotka@nic.cz> wrote:
>>> On 23 Nov 2015, at 14:09, Martin Bjorklund <mbj@tail-f.com> wrote:
>>>
>>> Ladislav Lhotka <lhotka@nic.cz> wrote:
>>>> Hi,
>>>>
>>>> Y02-01 allows "must" as a substatement of "input", "output" and
>>>> "notification" but for these cases the specification of the context
>>>> node in sec. 7.5.3 doesn't work.
>>>>
>>>>    o  The context node is the node in the accessible tree for which the
>>>>       "must" statement is defined.
>>> You are right.  But note how the accessible tree is defined.  There is
>>> a node for the operation / notification.  This node should be the
>> Not in rpc/action output:
>>
>>       <rpc-reply message-id="101"
>>                  xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
>>         <reset-finished-at xmlns="http://example.net/server-farm">
>>           2014-07-29T13:42:12Z
>>         </reset-finished-at>
>>       </rpc-reply>
>>
>>
>>
>>> context node:
>>>
>>>    o  If the "must" statement is a substatement of a "notification"
>>>       statement, the context node is the node representing the
>>>       notification in the accessible tree.
>>>
>>>    o  If the "must" statement is a substatement of a "input"
>>>       statement, the context node is the node representing the
>>>       operation in the accessible tree.
>>>
>>>    o  If the "must" statement is a substatement of a "output"
>>>       statement, the context node is the node representing the
>>>       operation in the accessible tree.
>> In the last bullet, I don't know what the node representing the
>> operation is. In XML encoding, the request is
>>
>> <rpc ...>
>>    <opname ...>
>>      ...
>>    </opname>
>> </rpc>
>>
>> so I understand the <opname> element is the node representing the
>> operation, but in a reply the <opname> element isn't present.
>>
>> Am I missing something?
> The accessible tree is the same regardless of encoding.  This means
> that an implementation must (conceptually) decode the received data
> and put it in this tree.  It should work with XML, JSON, and any other
> encoding we might define.  So, the exact node names and structure in
> the XML encoding does not really matter.

There may be multiple 'top-level' nodes in output, yet the text assumes 
a single node context node. Not every modeler will be nice enough to 
wrap stuff into a single "container" as a child to "output"...

Jernej

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


From nobody Mon Nov 23 06:00:40 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 B87631B39A3 for <netmod@ietfa.amsl.com>; Mon, 23 Nov 2015 06:00:38 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.486
X-Spam-Level: 
X-Spam-Status: No, score=-2.486 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-0.585, 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 Ja4LuufCaGCy for <netmod@ietfa.amsl.com>; Mon, 23 Nov 2015 06:00:37 -0800 (PST)
Received: from galileo.mg-soft.si (gate.mg-soft.si [212.30.73.66]) by ietfa.amsl.com (Postfix) with ESMTP id 040F51B399C for <netmod@ietf.org>; Mon, 23 Nov 2015 06:00:37 -0800 (PST)
Received: from [10.0.0.222] (tp-x61t.mg-soft.si [10.0.0.222]) by galileo.mg-soft.si (Postfix) with ESMTP id 63C2AC4175C2; Mon, 23 Nov 2015 15:00:36 +0100 (CET)
To: Martin Bjorklund <mbj@tail-f.com>, lhotka@nic.cz
References: <09858705-2365-4B77-A233-91019B6BC681@nic.cz> <20151123.140956.1414405859229447636.mbj@tail-f.com> <082F61F5-23B8-470C-808E-292D8DBBED3B@nic.cz> <20151123.143803.490586134586800546.mbj@tail-f.com> <56531A49.70309@mg-soft.si>
From: Jernej Tuljak <jernejt@mg-soft.si>
Message-ID: <56531C01.4020307@mg-soft.si>
Date: Mon, 23 Nov 2015 15:00:33 +0100
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0
MIME-Version: 1.0
In-Reply-To: <56531A49.70309@mg-soft.si>
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/dk2ecdPY9BiAztnhf8uIlcqFOgQ>
Cc: netmod@ietf.org
Subject: Re: [netmod] Y02: context 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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 23 Nov 2015 14:00:38 -0000

Jernej Tuljak je 23.11.2015 ob 14:53 napisal:
> Martin Bjorklund je 23.11.2015 ob 14:38 napisal:
>> Ladislav Lhotka <lhotka@nic.cz> wrote:
>>>> On 23 Nov 2015, at 14:09, Martin Bjorklund <mbj@tail-f.com> wrote:
>>>>
>>>> Ladislav Lhotka <lhotka@nic.cz> wrote:
>>>>> Hi,
>>>>>
>>>>> Y02-01 allows "must" as a substatement of "input", "output" and
>>>>> "notification" but for these cases the specification of the context
>>>>> node in sec. 7.5.3 doesn't work.
>>>>>
>>>>>    o  The context node is the node in the accessible tree for 
>>>>> which the
>>>>>       "must" statement is defined.
>>>> You are right.  But note how the accessible tree is defined.  There is
>>>> a node for the operation / notification.  This node should be the
>>> Not in rpc/action output:
>>>
>>>       <rpc-reply message-id="101"
>>> xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
>>>         <reset-finished-at xmlns="http://example.net/server-farm">
>>>           2014-07-29T13:42:12Z
>>>         </reset-finished-at>
>>>       </rpc-reply>
>>>
>>>
>>>
>>>> context node:
>>>>
>>>>    o  If the "must" statement is a substatement of a "notification"
>>>>       statement, the context node is the node representing the
>>>>       notification in the accessible tree.
>>>>
>>>>    o  If the "must" statement is a substatement of a "input"
>>>>       statement, the context node is the node representing the
>>>>       operation in the accessible tree.
>>>>
>>>>    o  If the "must" statement is a substatement of a "output"
>>>>       statement, the context node is the node representing the
>>>>       operation in the accessible tree.
>>> In the last bullet, I don't know what the node representing the
>>> operation is. In XML encoding, the request is
>>>
>>> <rpc ...>
>>>    <opname ...>
>>>      ...
>>>    </opname>
>>> </rpc>
>>>
>>> so I understand the <opname> element is the node representing the
>>> operation, but in a reply the <opname> element isn't present.
>>>
>>> Am I missing something?
>> The accessible tree is the same regardless of encoding.  This means
>> that an implementation must (conceptually) decode the received data
>> and put it in this tree.  It should work with XML, JSON, and any other
>> encoding we might define.  So, the exact node names and structure in
>> the XML encoding does not really matter.
>
> There may be multiple 'top-level' nodes in output, yet the text 
> assumes a single node context node. Not every modeler will be nice 
> enough to wrap stuff into a single "container" as a child to "output"...

Yeah. This is not an issue. Just ignore it. I was over-thinking again.

Jernej

>
> Jernej
>
>>
>>
>> /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 Mon Nov 23 06:06: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 E826B1B39A8 for <netmod@ietfa.amsl.com>; Mon, 23 Nov 2015 06:06:31 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.936
X-Spam-Level: 
X-Spam-Status: No, score=-5.936 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, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-0.585] 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 qt-32NqKFHdd for <netmod@ietfa.amsl.com>; Mon, 23 Nov 2015 06:06:29 -0800 (PST)
Received: from mail.nic.cz (mail.nic.cz [217.31.204.67]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 821541B399C for <netmod@ietf.org>; Mon, 23 Nov 2015 06:06:29 -0800 (PST)
Received: from birdie.labs.nic.cz (unknown [195.113.220.110]) by mail.nic.cz (Postfix) with ESMTPSA id 2B138181717; Mon, 23 Nov 2015 15:06:28 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nic.cz; s=default; t=1448287588; bh=JAjZdxwVRMF7R1cEQ0z/B1dtglee/1Pg1QmWOFawRms=; h=From:Date:To; b=LuqNyu49BNc9FD1RXLE0TS1ywedr5qUYFCHE6+t9TAIql9QnNuxxficFTe0y2u5Lr RgzZNkD/+oLvtp3acZDP1CN//zlxP9Ms6aTj9shhASmvF2dq7U0Swz24bRs8JHjfmr VH/Pdi4H8jGJ3PAXuihMPiTaJl13qIHKl7VKMz+o=
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
From: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <20151123.143803.490586134586800546.mbj@tail-f.com>
Date: Mon, 23 Nov 2015 15:06:29 +0100
Content-Transfer-Encoding: quoted-printable
Message-Id: <4E801E31-DFED-487A-A618-B5903C1A1195@nic.cz>
References: <09858705-2365-4B77-A233-91019B6BC681@nic.cz> <20151123.140956.1414405859229447636.mbj@tail-f.com> <082F61F5-23B8-470C-808E-292D8DBBED3B@nic.cz> <20151123.143803.490586134586800546.mbj@tail-f.com>
To: =?utf-8?Q?Martin_Bj=C3=B6rklund?= <mbj@tail-f.com>
X-Mailer: Apple Mail (2.3096.5)
X-Virus-Scanned: clamav-milter 0.98.7 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/lOKxZRsfD3N7Ta1JACVDuJX1gBw>
Cc: netmod@ietf.org
Subject: Re: [netmod] Y02: context 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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 23 Nov 2015 14:06:32 -0000

> On 23 Nov 2015, at 14:38, Martin Bjorklund <mbj@tail-f.com> wrote:
>=20
> Ladislav Lhotka <lhotka@nic.cz> wrote:
>>=20
>>> On 23 Nov 2015, at 14:09, Martin Bjorklund <mbj@tail-f.com> wrote:
>>>=20
>>> Ladislav Lhotka <lhotka@nic.cz> wrote:
>>>> Hi,
>>>>=20
>>>> Y02-01 allows "must" as a substatement of "input", "output" and
>>>> "notification" but for these cases the specification of the context
>>>> node in sec. 7.5.3 doesn't work.
>>>>=20
>>>>  o  The context node is the node in the accessible tree for which =
the
>>>>     "must" statement is defined.
>>>=20
>>> You are right.  But note how the accessible tree is defined.  There =
is
>>> a node for the operation / notification.  This node should be the
>>=20
>> Not in rpc/action output:
>>=20
>>     <rpc-reply message-id=3D"101"
>>                xmlns=3D"urn:ietf:params:xml:ns:netconf:base:1.0">
>>       <reset-finished-at xmlns=3D"http://example.net/server-farm">
>>         2014-07-29T13:42:12Z
>>       </reset-finished-at>
>>     </rpc-reply>
>>=20
>>=20
>>=20
>>> context node:
>>>=20
>>>  o  If the "must" statement is a substatement of a "notification"
>>>     statement, the context node is the node representing the
>>>     notification in the accessible tree.
>>>=20
>>>  o  If the "must" statement is a substatement of a "input"
>>>     statement, the context node is the node representing the
>>>     operation in the accessible tree.
>>>=20
>>>  o  If the "must" statement is a substatement of a "output"
>>>     statement, the context node is the node representing the
>>>     operation in the accessible tree.
>>=20
>> In the last bullet, I don't know what the node representing the
>> operation is. In XML encoding, the request is
>>=20
>> <rpc ...>
>>  <opname ...>
>>    ...
>>  </opname>
>> </rpc>
>>=20
>> so I understand the <opname> element is the node representing the
>> operation, but in a reply the <opname> element isn't present.
>>=20
>> Am I missing something?
>=20
> The accessible tree is the same regardless of encoding.  This means
> that an implementation must (conceptually) decode the received data
> and put it in this tree.  It should work with XML, JSON, and any other
> encoding we might define.  So, the exact node names and structure in
> the XML encoding does not really matter.

Then I don't get what the accessible tree is. It contains instance data, =
and examples in 6020bis are only given in XML, unless some extra dummy =
node is added, I don't see any "node representing the operation" in RPC =
or action *output*. Note that RESTCONF has the "output" node as in

      HTTP/1.1 200 OK
      Date: Mon, 25 Apr 2012 11:10:30 GMT
      Server: example-server
      Content-Type: application/yang.operation+json

      {
        "example-ops:output" : {
          "reboot-time" : 30,
          "message" : "Going down for system maintenance",
          "language" : "en-US"
        }
      }

which could serve as the context node but no such thing is mentioned in =
6020bis.

Lada

>=20
>=20
> /martin

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





From nobody Mon Nov 23 10:20:29 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 8B8461ACD10; Mon, 23 Nov 2015 10:20:26 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -15.086
X-Spam-Level: 
X-Spam-Status: No, score=-15.086 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-0.585, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 4GXx5cfeS6oS; Mon, 23 Nov 2015 10:20:23 -0800 (PST)
Received: from rcdn-iport-6.cisco.com (rcdn-iport-6.cisco.com [173.37.86.77]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1C9181ACD08; Mon, 23 Nov 2015 10:20:23 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=892; q=dns/txt; s=iport; t=1448302823; x=1449512423; h=from:to:cc:subject:date:message-id:content-id: content-transfer-encoding:mime-version; bh=B71y949k/FXuMkLGtJkhT2HQdZfkbrpPVXGzf/b9T34=; b=YvuoR+vfrdILs60k/VC/ADNi1qrAom2pNAd9bL4DqNq21jrdAnILFADS /p/3+ylqpKiFuayCblCamEEkiETU/G/82ffs4KYzQoeu/9sOtoDGwJYgi da5VIabOz94mUPSo9vQ+s0nooZBHuZvkvePBty5WgITPHcNQ8udLxG2Zh s=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0D8AQCLV1NW/4sNJK1egztTbwa/GAENg?= =?us-ascii?q?WUhhW4egSs4FAEBAQEBAQGBCoQ3BCMRRRIBIgImAgQwFRIEDogzDa8AkA0BAQE?= =?us-ascii?q?BAQEBAQEBAQEBAQEBAQEXBIEBkkaBRAWWUAGNMJxKAR8BAUKEBHIBhCOBBwEBA?= =?us-ascii?q?Q?=
X-IronPort-AV: E=Sophos;i="5.20,338,1444694400"; d="scan'208";a="49514341"
Received: from alln-core-6.cisco.com ([173.36.13.139]) by rcdn-iport-6.cisco.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 23 Nov 2015 18:20:22 +0000
Received: from XCH-RTP-014.cisco.com (xch-rtp-014.cisco.com [64.101.220.154]) by alln-core-6.cisco.com (8.14.5/8.14.5) with ESMTP id tANIKLKF031350 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Mon, 23 Nov 2015 18:20:22 GMT
Received: from xch-rtp-015.cisco.com (64.101.220.155) by XCH-RTP-014.cisco.com (64.101.220.154) with Microsoft SMTP Server (TLS) id 15.0.1104.5; Mon, 23 Nov 2015 13:20:21 -0500
Received: from xch-rtp-015.cisco.com ([64.101.220.155]) by XCH-RTP-015.cisco.com ([64.101.220.155]) with mapi id 15.00.1104.000; Mon, 23 Nov 2015 13:20:21 -0500
From: "Acee Lindem (acee)" <acee@cisco.com>
To: NETMOD WG <netmod@ietf.org>
Thread-Topic: draft-ietf-netmod-routing-cfg 
Thread-Index: AQHRJhudyOc8SOAKk0S6HrhFMaX1uw==
Date: Mon, 23 Nov 2015 18:20:21 +0000
Message-ID: <D278C312.3EDF3%acee@cisco.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.116.152.196]
Content-Type: text/plain; charset="utf-8"
Content-ID: <2245822C6243A145B8F426F7E8A4F84F@emea.cisco.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/gMurti1BsRNVuESHINrEykSiChE>
Cc: Routing YANG <rtg-yang-coord@ietf.org>, RTG YANG Design Team <rtg-dt-yang-arch@ietf.org>
Subject: [netmod] draft-ietf-netmod-routing-cfg
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 23 Nov 2015 18:20:26 -0000

V2UgaGFkIGEgbG90IG9mIGdvb2QgZGlzY3Vzc2lvbnMgYXQgSUVURiA5NCB3aXRoIHJlc3BlY3Qg
dG8gdGhlDQppZXRmLXJvdXRpbmcgYW5kIGhvdyBpdCBjb3VsZCBiZSBhdWdtZW50ZWQgaW4gdGhl
IGZ1dHVyZSB0byBzdXBwb3J0IEkyUlMuDQpUaGVzZSBkaXNjdXNzaW9ucyBhcmUgb25nb2luZy4N
Cg0KT25lIGN1cnJlbnQgY2hhbmdlIHRoYXQgSSB3b3VsZCBsaWtlIHRvIHByb3Bvc2UgaXMgdG8g
Y2hhbmdlIHRoZSBiYXNlDQppbnN0YW5jZSBjb250YWluZXIgZnJvbSByb3V0aW5nLWluc3RhbmNl
IHRvIG5ldHdvcmtpbmctaW5zdGFuY2UuIFRoaXMNCndvdWxkIHByb3ZpZGUgYW4gaW5zdGFuY2Ug
ZGVmaW5pdGlvbiB0aGF0IGNvdWxkIGJlIGF1Z21lbnRlZCBmb3IgTDINCnByb3RvY29scyBhbmQg
c2VydmljZSBmdW5jdGlvbmFsaXR5IGFzIHdlbGwgYXMgTDMuIEl0IGlzIGFsc28gY29uc2lzdGVu
dA0Kd2l0aCB0aGUgdGVybSB1c2VkIGluIGJvdGgNCmh0dHBzOi8vd3d3LmlldGYub3JnL2lkL2Ry
YWZ0LXJ0Z3lhbmdkdC1ydGd3Zy1kZXZpY2UtbW9kZWwtMDEudHh0IGFuZA0KaHR0cHM6Ly93d3cu
aWV0Zi5vcmcvaWQvZHJhZnQtb3BlbmNvbmZpZy1ydGd3Zy1uZXR3b3JrLWluc3RhbmNlLTAxLnR4
dC4NCg0KVGhhbmtzLA0KQWNlZSANCg0K


From nobody Tue Nov 24 01:24:46 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 315881ACDCD; Tue, 24 Nov 2015 01:24:44 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.486
X-Spam-Level: 
X-Spam-Status: No, score=-2.486 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-0.585, 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 Nio71seakEIk; Tue, 24 Nov 2015 01:24:43 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id CD5FD1A9142; Tue, 24 Nov 2015 01:24:42 -0800 (PST)
Received: from localhost (unknown [173.38.220.62]) by mail.tail-f.com (Postfix) with ESMTPSA id D64961AE0987; Tue, 24 Nov 2015 10:24:41 +0100 (CET)
Date: Tue, 24 Nov 2015 10:24:41 +0100 (CET)
Message-Id: <20151124.102441.1278595679799542000.mbj@tail-f.com>
To: acee@cisco.com
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <D278C312.3EDF3%acee@cisco.com>
References: <D278C312.3EDF3%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=us-ascii
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/Lb5ojxhrgpzTtR80_NAaJqFHRJQ>
Cc: rtg-yang-coord@ietf.org, rtg-dt-yang-arch@ietf.org, netmod@ietf.org
Subject: Re: [netmod] draft-ietf-netmod-routing-cfg
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 24 Nov 2015 09:24:44 -0000

Hi,

"Acee Lindem (acee)" <acee@cisco.com> wrote:
> We had a lot of good discussions at IETF 94 with respect to the
> ietf-routing and how it could be augmented in the future to support I2RS.
> These discussions are ongoing.
> 
> One current change that I would like to propose is to change the base
> instance container from routing-instance to networking-instance.

Is the idea to simply rename the "routing-instance" container to
"networking-instance"?

Then we would have:

   +--rw routing
      +--rw networking-instance

Would you keep the top-level name "routing"?




/martin




> This
> would provide an instance definition that could be augmented for L2
> protocols and service functionality as well as L3. It is also consistent
> with the term used in both
> https://www.ietf.org/id/draft-rtgyangdt-rtgwg-device-model-01.txt and
> https://www.ietf.org/id/draft-openconfig-rtgwg-network-instance-01.txt.
> 
> Thanks,
> Acee 
> 
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod
> 


From nobody Tue Nov 24 06:22:39 2015
Return-Path: <rwilton@cisco.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id DF1171A7011 for <netmod@ietfa.amsl.com>; Tue, 24 Nov 2015 06:22:38 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -15.085
X-Spam-Level: 
X-Spam-Status: No, score=-15.085 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, RP_MATCHES_RCVD=-0.585, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id WapnU-lFFZgp for <netmod@ietfa.amsl.com>; Tue, 24 Nov 2015 06:22:37 -0800 (PST)
Received: from aer-iport-4.cisco.com (aer-iport-4.cisco.com [173.38.203.54]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4425E1A6FF8 for <netmod@ietf.org>; Tue, 24 Nov 2015 06:22:37 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=3266; q=dns/txt; s=iport; t=1448374957; x=1449584557; h=subject:to:references:from:message-id:date:mime-version: in-reply-to; bh=y2lWORM29pkZEik4/Gm5+FAJcFFpSf9UBlgDkAs/9+c=; b=C1iwK2wVKmsmdqwzhsIY88SAz0i5/mw3uo1OSnQmI3luU9SDYzbdso/a cPYNvZsG9Ei3y8/Zhicdk7Y27wR48D9rAtkOUSzMhwJ8uDLwQnYgO2QmP L7HzyBHTK3LjPdg0krSsSQuG2iw8wPD0O6NOvP8m9A2OGrayqCf0p4zvK 0=;
X-IronPort-AV: E=Sophos;i="5.20,338,1444694400";  d="scan'208,217";a="608413768"
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/TLS/DHE-RSA-AES256-GCM-SHA384; 24 Nov 2015 14:22:35 +0000
Received: from [10.61.171.197] ([10.61.171.197]) by aer-core-4.cisco.com (8.14.5/8.14.5) with ESMTP id tAOEMZIf002047; Tue, 24 Nov 2015 14:22:35 GMT
To: Kent Watsen <kwatsen@juniper.net>, "netmod@ietf.org" <netmod@ietf.org>, "Andrew McLachlan (amclachl)" <amclachl@cisco.com>
References: <0CEFE89F-65C6-4C97-BC2E-723C9995BCE4@juniper.net>
From: Robert Wilton <rwilton@cisco.com>
Message-ID: <565472AA.301@cisco.com>
Date: Tue, 24 Nov 2015 14:22:34 +0000
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0
MIME-Version: 1.0
In-Reply-To: <0CEFE89F-65C6-4C97-BC2E-723C9995BCE4@juniper.net>
Content-Type: multipart/alternative; boundary="------------080407020103050304040008"
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/tiX46VnxA_hr2I9iHr7DdyiPWbc>
Subject: Re: [netmod] draft netmod 94 minutes posted
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 24 Nov 2015 14:22:39 -0000

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

Hi Kent, Andrew

Do you have a pointer to the recordings please?  I tried the audio 
streams on the link below, but I can't seem to get them to work.

https://tools.ietf.org/wg/netmod/minutes?item=minutes-94-netmod.html

Thanks,
Rob


On 17/11/2015 18:32, Kent Watsen wrote:
>
> All,
>
> The minutes for the two NETMOD sessions have been posted:
>
> https://www.ietf.org/proceedings/94/minutes/minutes-94-netmod
>
> Please provide comments/corrections on these draft minutes by Wed, Nov 
> 25th.
>
> PS: huge thanks to Ignas and Andrew for putting these together!
>
> Thanks,
> Kent
>
>
>
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod


--------------080407020103050304040008
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">
    Hi Kent, Andrew<br>
    <br>
    Do you have a pointer to the recordings please?  I tried the audio
    streams on the link below, but I can't seem to get them to work.<br>
    <br>
    <a class="moz-txt-link-freetext" href="https://tools.ietf.org/wg/netmod/minutes?item=minutes-94-netmod.html">https://tools.ietf.org/wg/netmod/minutes?item=minutes-94-netmod.html</a><br>
    <br>
    Thanks,<br>
    Rob<br>
    <br>
    <br>
    <div class="moz-cite-prefix">On 17/11/2015 18:32, Kent Watsen wrote:<br>
    </div>
    <blockquote
      cite="mid:0CEFE89F-65C6-4C97-BC2E-723C9995BCE4@juniper.net"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html;
        charset=windows-1252">
      <div><br>
      </div>
      <div>All,</div>
      <div><br>
      </div>
      <div>The minutes for the two NETMOD sessions have been posted:</div>
      <div><br>
      </div>
      <div>   
        <a class="moz-txt-link-freetext" href="https://www.ietf.org/proceedings/94/minutes/minutes-94-netmod">https://www.ietf.org/proceedings/94/minutes/minutes-94-netmod</a></div>
      <div><br>
      </div>
      <div>
        <div>Please provide comments/corrections on these draft minutes
          by Wed, Nov 25th.</div>
      </div>
      <div><br>
      </div>
      <div>PS: huge thanks to Ignas and Andrew for putting these
        together!</div>
      <div><br>
      </div>
      <div>Thanks,</div>
      <div>Kent</div>
      <div><br>
      </div>
      <div>
      </div>
      <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>

--------------080407020103050304040008--


From nobody Tue Nov 24 06:33:33 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 D361B1A7030 for <netmod@ietfa.amsl.com>; Tue, 24 Nov 2015 06:33:32 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.586
X-Spam-Level: 
X-Spam-Status: No, score=-2.586 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, RP_MATCHES_RCVD=-0.585, 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 GPzF558809Fo for <netmod@ietfa.amsl.com>; Tue, 24 Nov 2015 06:33:31 -0800 (PST)
Received: from lucidvision.com (lucidvision.com [64.71.170.115]) (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 E0ACF1A702C for <netmod@ietf.org>; Tue, 24 Nov 2015 06:33:30 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lucidvision.com; s=default; t=1448375599; bh=3qaWV4seIsnjWuhVbEcfsykQRO2HMCi9NqWABUnGKFk=; h=Subject:From:In-Reply-To:Date:Cc:References:To; b=Ov8M/cGwPEetu6mHXdAr51+R8G4K5ZbDVQFD1gkpmi4l+zfvC6WmVorOCCC6sBodx wE5qzFvRODuA2Ej7pgL4UWbV2YeeADlB1AIxzqCShDc3biLKSyMxj2uUSx5QbWq4tb xpOsbE0Y31fTocJlMiLBYaBy05nsDm4d24LCoTXk=
X-Default-Received-SPF: pass (skip=loggedin (res=PASS)) x-ip-name=50.255.148.181; 
Content-Type: multipart/alternative; boundary="Apple-Mail=_420C4615-9A62-4F23-90A0-7B9C7CC6A2A2"
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
From: Nadeau Thomas <tnadeau@lucidvision.com>
In-Reply-To: <565472AA.301@cisco.com>
Date: Tue, 24 Nov 2015 09:32:52 -0500
Message-Id: <D0D46596-900E-4CDD-A6D4-83EDB95FDB34@lucidvision.com>
References: <0CEFE89F-65C6-4C97-BC2E-723C9995BCE4@juniper.net> <565472AA.301@cisco.com>
To: Robert Wilton <rwilton@cisco.com>
X-Mailer: Apple Mail (2.3096.5)
X-Authenticated-User: tnadeau@lucidvision.com 
X-Info: aspam skipped due to (g_smite_skip_relay)
X-Encryption: SSL encrypted
X-MyRbl: Color=Yellow Age=0 Spam=0 Notspam=1 Stars=0 Good=0 Friend=0 Surbl=0 Catch=0 r=0 ip=50.255.148.181
X-IP-stats: Notspam Incoming Last 0, First 193, in=2765, out=0, spam=0 Known=true ip=50.255.148.181
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/02YPdiQgO-nsBZaV3n-A1prUezs>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] draft netmod 94 minutes posted
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 24 Nov 2015 14:33:33 -0000

--Apple-Mail=_420C4615-9A62-4F23-90A0-7B9C7CC6A2A2
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=windows-1252


	It doesn't work for me either. I=92ll file a case with the =
support folks to take a look.

	=97Tom

> On Nov 24, 2015:9:22 AM, at 9:22 AM, Robert Wilton <rwilton@cisco.com> =
wrote:
>=20
> Hi Kent, Andrew
>=20
> Do you have a pointer to the recordings please?  I tried the audio =
streams on the link below, but I can't seem to get them to work.
>=20
> https://tools.ietf.org/wg/netmod/minutes?item=3Dminutes-94-netmod.html =
<https://tools.ietf.org/wg/netmod/minutes?item=3Dminutes-94-netmod.html>
>=20
> Thanks,
> Rob
>=20
>=20
> On 17/11/2015 18:32, Kent Watsen wrote:
>>=20
>> All,
>>=20
>> The minutes for the two NETMOD sessions have been posted:
>>=20
>>     https://www.ietf.org/proceedings/94/minutes/minutes-94-netmod =
<https://www.ietf.org/proceedings/94/minutes/minutes-94-netmod>
>>=20
>> Please provide comments/corrections on these draft minutes by Wed, =
Nov 25th.
>>=20
>> PS: huge thanks to Ignas and Andrew for putting these together!
>>=20
>> Thanks,
>> Kent
>>=20
>>=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
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod


--Apple-Mail=_420C4615-9A62-4F23-90A0-7B9C7CC6A2A2
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""><div class=3D""><br class=3D""></div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	</span>It =
doesn't work for me either. I=92ll file a case with the support folks to =
take a look.<div class=3D""><br class=3D""></div><div class=3D""><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">	=
</span>=97Tom</div><div class=3D""><br class=3D""><div><blockquote =
type=3D"cite" class=3D""><div class=3D"">On Nov 24, 2015:9:22 AM, at =
9:22 AM, Robert Wilton &lt;<a href=3D"mailto:rwilton@cisco.com" =
class=3D"">rwilton@cisco.com</a>&gt; wrote:</div><br =
class=3D"Apple-interchange-newline"><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"">
    Hi Kent, Andrew<br class=3D"">
    <br class=3D"">
    Do you have a pointer to the recordings please?&nbsp; I tried the =
audio
    streams on the link below, but I can't seem to get them to work.<br =
class=3D"">
    <br class=3D"">
    <a class=3D"moz-txt-link-freetext" =
href=3D"https://tools.ietf.org/wg/netmod/minutes?item=3Dminutes-94-netmod.=
html">https://tools.ietf.org/wg/netmod/minutes?item=3Dminutes-94-netmod.ht=
ml</a><br class=3D"">
    <br class=3D"">
    Thanks,<br class=3D"">
    Rob<br class=3D"">
    <br class=3D"">
    <br class=3D"">
    <div class=3D"moz-cite-prefix">On 17/11/2015 18:32, Kent Watsen =
wrote:<br class=3D"">
    </div>
    <blockquote =
cite=3D"mid:0CEFE89F-65C6-4C97-BC2E-723C9995BCE4@juniper.net" =
type=3D"cite" class=3D"">
      <meta http-equiv=3D"Content-Type" content=3D"text/html;
        charset=3Dwindows-1252" class=3D"">
      <div class=3D""><br class=3D"">
      </div>
      <div class=3D"">All,</div>
      <div class=3D""><br class=3D"">
      </div>
      <div class=3D"">The minutes for the two NETMOD sessions have been =
posted:</div>
      <div class=3D""><br class=3D"">
      </div>
      <div class=3D"">&nbsp; &nbsp;
        <a class=3D"moz-txt-link-freetext" =
href=3D"https://www.ietf.org/proceedings/94/minutes/minutes-94-netmod">htt=
ps://www.ietf.org/proceedings/94/minutes/minutes-94-netmod</a></div>
      <div class=3D""><br class=3D"">
      </div>
      <div class=3D"">
        <div class=3D"">Please provide comments/corrections on these =
draft minutes
          by Wed, Nov 25th.</div>
      </div>
      <div class=3D""><br class=3D"">
      </div>
      <div class=3D"">PS: huge thanks to&nbsp;Ignas&nbsp;and Andrew for =
putting these
        together!</div>
      <div class=3D""><br class=3D"">
      </div>
      <div class=3D"">Thanks,</div>
      <div class=3D"">Kent</div>
      <div class=3D""><br class=3D"">
      </div>
      <div class=3D"">
      </div>
      <br class=3D"">
      <fieldset class=3D"mimeAttachmentHeader"></fieldset>
      <br class=3D"">
      <pre wrap=3D"" =
class=3D"">_______________________________________________
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 class=3D"">
  </div>

_______________________________________________<br class=3D"">netmod =
mailing list<br class=3D""><a href=3D"mailto:netmod@ietf.org" =
class=3D"">netmod@ietf.org</a><br =
class=3D"">https://www.ietf.org/mailman/listinfo/netmod<br =
class=3D""></div></blockquote></div><br class=3D""></div></body></html>=

--Apple-Mail=_420C4615-9A62-4F23-90A0-7B9C7CC6A2A2--


From nobody Tue Nov 24 06:36: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 F17481A7030 for <netmod@ietfa.amsl.com>; Tue, 24 Nov 2015 06:36:29 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.486
X-Spam-Level: 
X-Spam-Status: No, score=-2.486 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-0.585, 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 4G98Qf0q3SPi for <netmod@ietfa.amsl.com>; Tue, 24 Nov 2015 06:36:28 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id 4676D1A702F for <netmod@ietf.org>; Tue, 24 Nov 2015 06:36:28 -0800 (PST)
Received: from localhost (unknown [173.38.220.62]) by mail.tail-f.com (Postfix) with ESMTPSA id 6F4E51AE0987; Tue, 24 Nov 2015 15:36:26 +0100 (CET)
Date: Tue, 24 Nov 2015 15:36:26 +0100 (CET)
Message-Id: <20151124.153626.1483706727890192553.mbj@tail-f.com>
To: rwilton@cisco.com
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <565472AA.301@cisco.com>
References: <0CEFE89F-65C6-4C97-BC2E-723C9995BCE4@juniper.net> <565472AA.301@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/iZs72O_0ZbWpPdDUv-qmNaZdMDI>
Cc: netmod@ietf.org
Subject: Re: [netmod] draft netmod 94 minutes posted
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 24 Nov 2015 14:36:30 -0000

Robert Wilton <rwilton@cisco.com> wrote:
> Hi Kent, Andrew
> 
> Do you have a pointer to the recordings please?  I tried the audio
> streams on the link below, but I can't seem to get them to work.
> 
> https://tools.ietf.org/wg/netmod/minutes?item=minutes-94-netmod.html

Try this one:

http://ietf94.conf.meetecho.com/index.php/Recordings


/martin


From nobody Tue Nov 24 06:48:14 2015
Return-Path: <rwilton@cisco.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A82031A86F2 for <netmod@ietfa.amsl.com>; Tue, 24 Nov 2015 06:48:12 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -15.086
X-Spam-Level: 
X-Spam-Status: No, score=-15.086 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-0.585, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id U5hbabalaLDy for <netmod@ietfa.amsl.com>; Tue, 24 Nov 2015 06:48:11 -0800 (PST)
Received: from aer-iport-4.cisco.com (aer-iport-4.cisco.com [173.38.203.54]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2328A1A86EF for <netmod@ietf.org>; Tue, 24 Nov 2015 06:48:10 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=473; q=dns/txt; s=iport; t=1448376491; x=1449586091; h=subject:to:references:cc:from:message-id:date: mime-version:in-reply-to:content-transfer-encoding; bh=2V6sQnQOYSIw9hSPDZbgWHCU3vc3wuqfSfH1bWsljBA=; b=O4hnkPtuobZW+QUIj0nLzKgDOPCxt4ZoewHimfdvV5LVUFHTVpU+gRPa HKs+4UVzjFFiiqqE7w8/v0zjO8BXEMB15tM4QSyG75IUiz4wwPns3BVHO pqufbg7HygH+v7CvdCULTlTZ+i+aL4PvkWFlDJgiJu3k+qd7IeBiTb0Kq s=;
X-IronPort-AV: E=Sophos;i="5.20,338,1444694400"; d="scan'208";a="608414176"
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/TLS/DHE-RSA-AES256-GCM-SHA384; 24 Nov 2015 14:48:09 +0000
Received: from [10.61.171.197] ([10.61.171.197]) by aer-core-1.cisco.com (8.14.5/8.14.5) with ESMTP id tAOEm9S2021677; Tue, 24 Nov 2015 14:48:09 GMT
To: Martin Bjorklund <mbj@tail-f.com>
References: <0CEFE89F-65C6-4C97-BC2E-723C9995BCE4@juniper.net> <565472AA.301@cisco.com> <20151124.153626.1483706727890192553.mbj@tail-f.com>
From: Robert Wilton <rwilton@cisco.com>
Message-ID: <565478A9.3090803@cisco.com>
Date: Tue, 24 Nov 2015 14:48:09 +0000
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0
MIME-Version: 1.0
In-Reply-To: <20151124.153626.1483706727890192553.mbj@tail-f.com>
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/-rmvWKGg8uqlSubARzozueKcL0Y>
Cc: netmod@ietf.org
Subject: Re: [netmod] draft netmod 94 minutes posted
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 24 Nov 2015 14:48:12 -0000

Thanks, Martin.  That works.

Rob


On 24/11/2015 14:36, Martin Bjorklund wrote:
> Robert Wilton <rwilton@cisco.com> wrote:
>> Hi Kent, Andrew
>>
>> Do you have a pointer to the recordings please?  I tried the audio
>> streams on the link below, but I can't seem to get them to work.
>>
>> https://tools.ietf.org/wg/netmod/minutes?item=minutes-94-netmod.html
> Try this one:
>
> http://ietf94.conf.meetecho.com/index.php/Recordings
>
>
> /martin
> .
>


From nobody Tue Nov 24 06:53:37 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 CF51C1A86FC for <netmod@ietfa.amsl.com>; Tue, 24 Nov 2015 06:53:35 -0800 (PST)
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, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, 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 vGAPYDHHrD3F for <netmod@ietfa.amsl.com>; Tue, 24 Nov 2015 06:53:30 -0800 (PST)
Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1bon0797.outbound.protection.outlook.com [IPv6:2a01:111:f400:fc10::1:797]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id AC05A1A86F7 for <netmod@ietf.org>; Tue, 24 Nov 2015 06:53:30 -0800 (PST)
Received: from BN3PR0501MB1442.namprd05.prod.outlook.com (10.160.117.151) by BN3PR0501MB1442.namprd05.prod.outlook.com (10.160.117.151) with Microsoft SMTP Server (TLS) id 15.1.331.20; Tue, 24 Nov 2015 14:53:13 +0000
Received: from BN3PR0501MB1442.namprd05.prod.outlook.com ([10.160.117.151]) by BN3PR0501MB1442.namprd05.prod.outlook.com ([10.160.117.151]) with mapi id 15.01.0331.019; Tue, 24 Nov 2015 14:53:13 +0000
From: Kent Watsen <kwatsen@juniper.net>
To: Martin Bjorklund <mbj@tail-f.com>, "rwilton@cisco.com" <rwilton@cisco.com>
Thread-Topic: [netmod] draft netmod 94 minutes posted
Thread-Index: AQHRIWZCVNrfkutNUE6T1zoomY4ClJ6rRFIAgAAD4AD//7DfgA==
Date: Tue, 24 Nov 2015 14:53:13 +0000
Message-ID: <AAF4CB59-A9D2-47ED-99EE-F9EA90379795@juniper.net>
References: <0CEFE89F-65C6-4C97-BC2E-723C9995BCE4@juniper.net> <565472AA.301@cisco.com> <20151124.153626.1483706727890192553.mbj@tail-f.com>
In-Reply-To: <20151124.153626.1483706727890192553.mbj@tail-f.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/0.0.0.151105
authentication-results: spf=none (sender IP is ) smtp.mailfrom=kwatsen@juniper.net; 
x-ms-exchange-messagesentrepresentingtype: 1
x-originating-ip: [66.129.241.14]
x-microsoft-exchange-diagnostics: 1; BN3PR0501MB1442; 5:wc7YTgNaPjs9BuI7E9qI59dUa6gEhdbASIlE4b+eWJ1yrBm3FX1vzbXIv5UBaRFLkpGEvMwFOK2d2guEWyrQmf6frsBylZ51HGTtwQNA6iyEkAdY7PTpHN5MXBrKqP/tPsyCYdQUNONjinvWQOrmHg==; 24:Bcz6kWqt4qrswxh9aHXSdYJXkSmsgyefa5AjEbmq30BVmRmz3xNZn6lqOLScE7MwXWF9pEbNm1rrN+vpapMSJ7sdXr+8C6FCkhPf0H/K+XU=
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN3PR0501MB1442;
x-microsoft-antispam-prvs: <BN3PR0501MB14425D53E6905494EEDE523AA5060@BN3PR0501MB1442.namprd05.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:(95692535739014);
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(2401047)(5005006)(520078)(8121501046)(3002001)(10201501046); SRVR:BN3PR0501MB1442; BCL:0; PCL:0; RULEID:; SRVR:BN3PR0501MB1442; 
x-forefront-prvs: 0770F75EA9
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(6009001)(279900001)(24454002)(377454003)(479174004)(189002)(199003)(164054003)(5001770100001)(5001960100002)(10400500002)(36756003)(5002640100001)(106116001)(5007970100001)(101416001)(87936001)(122556002)(40100003)(11100500001)(33656002)(5004730100002)(83506001)(15975445007)(54356999)(77096005)(82746002)(83716003)(189998001)(76176999)(97736004)(2900100001)(2950100001)(19625735002)(19625305001)(5001920100001)(81156007)(86362001)(19580395003)(5008740100001)(50986999)(19580405001)(105586002)(106356001)(92566002)(4001350100001)(3846002)(586003)(99286002)(16799955002)(102836003)(2501003)(6116002)(66066001)(104396002); DIR:OUT; SFP:1102; SCL:1; SRVR:BN3PR0501MB1442; H:BN3PR0501MB1442.namprd05.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; 
received-spf: None (protection.outlook.com: juniper.net does not designate permitted sender hosts)
spamdiagnosticoutput: 1:23
spamdiagnosticmetadata: NSPM
Content-Type: text/plain; charset="utf-8"
Content-ID: <BC2B5A74B33B6549869E2B29A65898BE@namprd05.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Nov 2015 14:53:13.6600 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR0501MB1442
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/3VBecGDlW11CHIqmbBUPhxWK6KQ>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] draft netmod 94 minutes posted
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 24 Nov 2015 14:53:36 -0000

DQoNCk9uIDExLzI0LzE1LCA5OjM2IEFNLCAiTWFydGluIEJqb3JrbHVuZCIgPG1iakB0YWlsLWYu
Y29tPiB3cm90ZToNCg0KPlJvYmVydCBXaWx0b24gPHJ3aWx0b25AY2lzY28uY29tPiB3cm90ZToN
Cj4+IEhpIEtlbnQsIEFuZHJldw0KPj4gDQo+PiBEbyB5b3UgaGF2ZSBhIHBvaW50ZXIgdG8gdGhl
IHJlY29yZGluZ3MgcGxlYXNlPyAgSSB0cmllZCB0aGUgYXVkaW8NCj4+IHN0cmVhbXMgb24gdGhl
IGxpbmsgYmVsb3csIGJ1dCBJIGNhbid0IHNlZW0gdG8gZ2V0IHRoZW0gdG8gd29yay4NCj4+IA0K
Pj4gaHR0cHM6Ly90b29scy5pZXRmLm9yZy93Zy9uZXRtb2QvbWludXRlcz9pdGVtPW1pbnV0ZXMt
OTQtbmV0bW9kLmh0bWwNCg0KDQpXaGVuIGNsaWNraW5nIG9uIHRoZSDigJxhdWRpbyBzdHJlYW3i
gJ0gbGluazoNCg0KICAtIFNhZmFyaSBzYXlzIOKAnCBUaGlzIHdlYnBhZ2UgaGFzIGNvbnRlbnQg
dGhhdCByZXF1aXJlcyBhbiBJbnRlcm5ldCBwbHVnLWluLg0KICAgIFRoaXMgcGFnZSBjb250YWlu
cyBjb250ZW50IG9mIOKAnGF1ZGlvL3gtbXBlZ3VybOKAnSB0eXBlLiBZb3UgZG8gbm90IGhhdmUg
dGhlDQogICAgcGx1Zy1pbiByZXF1aXJlZCB0byB2aWV3IHRoaXMgY29udGVudC4gIEkgY2xpY2tl
ZCB0aGUg4oCcbWlzc2luZyBwbHVnaW7igJ0NCiAgICBsaW5rLCBidXQgaXQgZGlkbuKAmXQgZG8g
YW55dGhpbmcuDQoNCiAgLSBGaXJlZm94IG9mZmVycyB0byBzYXZlIHRoZSBmaWxlIG9yIGxvYWQg
d2l0aCBpVHVuZXMuICBMb2FkaW5nIHdpdGggaVR1bmVzDQogICAgZG9lc27igJl0IHdvcmsuICBT
YXZpbmcgdG8gZmlsZSBhbmQgdGhlbiBleGFtaW5pbmcgaXRzIGNvbnRlbnRzIHNob3dzDQogICAg
Imh0dHA6Ly9pY2VjYXN0LWlldGYuY29uZi5tZWV0ZWNoby5jb206ODAwMC9yb29tMzAxLm1wM+KA
nSwgd2hpY2ggbG9va3MNCiAgICBsaWtlIGl04oCZcyBtb3JlIGZvciB0aGUgbGl2ZSBzdHJlYW0g
YXMgb3Bwb3NlIGZvciBhIHJlY29yZGVkIHN0cmVhbS4NCg0KDQoNCg0KPlRyeSB0aGlzIG9uZToN
Cj4NCj5odHRwOi8vaWV0Zjk0LmNvbmYubWVldGVjaG8uY29tL2luZGV4LnBocC9SZWNvcmRpbmdz
DQo+DQo+DQo+L21hcnRpbg0KDQoNClRoaXMgd29ya2VkIGZvciBtZSBpbiBGaXJlZm94LCBidXQg
bm90IFNhZmFyaSAoaXQgc3BpbnMgZm9yZXZlciB0cnlpbmcgdG8gbG9hZCB0aGUgcGFnZSkNCg0K
VGhhbmtzLA0KS2VudA0KDQoNCg0K


From nobody Tue Nov 24 08:59:29 2015
Return-Path: <rwilton@cisco.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CDFD21ACE57 for <netmod@ietfa.amsl.com>; Tue, 24 Nov 2015 08:59:27 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -15.085
X-Spam-Level: 
X-Spam-Status: No, score=-15.085 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, RP_MATCHES_RCVD=-0.585, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id wIdnE93qruBQ for <netmod@ietfa.amsl.com>; Tue, 24 Nov 2015 08:59:24 -0800 (PST)
Received: from aer-iport-2.cisco.com (aer-iport-2.cisco.com [173.38.203.52]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A06DC1A899A for <netmod@ietf.org>; Tue, 24 Nov 2015 08:59:23 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=22567; q=dns/txt; s=iport; t=1448384363; x=1449593963; h=subject:to:references:from:message-id:date:mime-version: in-reply-to; bh=KYCVC/oOMv/+aL2mO3OBj+8SrpmNSCn9qTbeRNchIA0=; b=UMDnb7as8seABsSP1Ymagq9no0MfafYR6t496ZvJGhWd365HtHiwoJBT 4JRStr46Ktp/Ps7zWl/IY9TqDyq64mALSztx4nBKeye3HC7C637hs+skS KGZ2J28ucsjPbxe1qZqsQKsIiTuT3isxJOwWtMGZ/TBdsBu6RiBT/mIHU s=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0DPAQBEllRW/xbLJq1VCYQOb78pAQ2BZ?= =?us-ascii?q?RcBCYUkSgKBeRQBAQEBAQEBgQqENQEBBAEBARpRChELDgoJDAoPCQMCAQIBFTA?= =?us-ascii?q?GAQwGAgEBF4gTDb5BAQEBAQEBAQECAQEBAQEBAQEBFgSGVIR+hDEKAQFdhB8Fi?= =?us-ascii?q?SqNJodRhWCBW4RAgwIjkwsfAQFCghEdgVY+NINqgUEBAQE?=
X-IronPort-AV: E=Sophos;i="5.20,338,1444694400";  d="scan'208,217";a="612955885"
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/TLS/DHE-RSA-AES256-GCM-SHA384; 24 Nov 2015 16:59:21 +0000
Received: from [10.61.171.197] ([10.61.171.197]) by aer-core-4.cisco.com (8.14.5/8.14.5) with ESMTP id tAOGxKL4000886; Tue, 24 Nov 2015 16:59:21 GMT
To: Kent Watsen <kwatsen@juniper.net>, "netmod@ietf.org" <netmod@ietf.org>
References: <0CEFE89F-65C6-4C97-BC2E-723C9995BCE4@juniper.net>
From: Robert Wilton <rwilton@cisco.com>
Message-ID: <56549768.1090104@cisco.com>
Date: Tue, 24 Nov 2015 16:59:20 +0000
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0
MIME-Version: 1.0
In-Reply-To: <0CEFE89F-65C6-4C97-BC2E-723C9995BCE4@juniper.net>
Content-Type: multipart/alternative; boundary="------------020702050003080403070000"
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/GmzjcjGLMqDm6sYIOebIzrF5z30>
Subject: Re: [netmod] draft netmod 94 minutes posted
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 24 Nov 2015 16:59:28 -0000

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

Hi Kent,

I've some minor modifications of some of the minutes, mainly just to 
clarify who was asking some of the questions/comments (mostly between 
Rob Shakir and myself), but also some other minor clarifications when I 
was listening back to the audio.

[Before]

10 min: draft-ietf-openconfig-netmod-opstate-01    (Anees Shaikh or [RS] Shakir)
Rob Shakir presenting.
[LL] Would it be possible to have multiple management interfaces (NETCONF, RESTONF, other) - is the intended configuration supposed to be private per transport protocol?
[RS]  Would think no. There is one intended configuration per device.
[LL] this may have some locking implications.
[TC]  Why did you chose to use intended/applied approach?
[RS]  This allows us to use YANG today.
[KW] there were 3 solutions drafts.
[TC]	we are doing the same thing in BBF, and would like to mimic the solution agreed here.
[AS] There is a section i a draft that addresses this.
[LB]  I am confused on the process for the requirements. You said you will make consensus call for requirements today?
[KW] we will do a consensus call on solutions. I believe there is consensus on requirements.
[LB]  on a list there was a discussion on planning to poll for consensus but that did not seem to happen.
[KW] confirming consensus on requirements now by humming - consensus achieved.


[After]
10 min: draft-ietf-openconfig-netmod-opstate-01    (Anees Shaikh or [RS] 
Shakir)
Rob Shakir presenting.
[LL] Would it be possible to have multiple management interfaces 
(NETCONF, RESTONF, other) - is the intended configuration supposed to be 
private per transport protocol?
[RS]  Would think no. There is one intended configuration per device.
[LL] this may have some locking implications.
[TC]  Why did you chose to use intended/applied approach rather than 
using datastores?
[RS]  1. No such thing as an applied datastore today.  This solution 
allows us to use YANG today. 2. Our solution allows for a single path 
that is not dependent on the datastore.
[KW] there were 3 solutions drafts.
[TC]    we are doing the same thing in BBF, and would like to mimic the 
solution agreed here.
[AS] There is a section in our draft that addresses some of these 
questions.
[LB]  I am confused on the process for the requirements. You said you 
will make consensus call for requirements today?
[KW] we will do a consensus call on solutions. I believe there is 
consensus on requirements.
[LB]  on a list there was a discussion on planning to poll for consensus 
but that did not seem to happen.
[KW] confirming consensus on requirements now by humming - consensus 
achieved.


[Before]

10 min: other solutions for the opstate-reqs (Robert Wilton)
Robert Wilton presenting.
[RW]  no changes to existing YANG models - that does not seem to be practical. There are vendor extensions anyway.
[RW] Wilton  if models are standardised in IETF, they should work in all cases.

[KW] we would like to know which of those solutions should progress forward.
[Rw]  would be nice to poil for who has read the solutions drafts?
[KW] who would favor solution 1. Humm. 2. Humm (most). 3. Humm
[KW] Does anyone object to solution 2? Please go to mike?
[Rw]  Didn't we do that already? We seem not to going anywhere forward with this discussion. We did clarify wording, but that is mostly it. It is noting for operator to help with configuring a network. Is it a perfection problem here? Can we produce something practically useful?
[CM] There are large installations based on existing YANG specifications.
[RW]	I take that into account. I have none in my network though that use existing model. I am not saying that we should throw away the existing solution in favor of the future solution.
[CM] There is a technology shift.
[CH] We are not forcing to implement some particular data store technology. This is more of a way of thinking of it.


[After]
10 min: other solutions for the opstate-reqs (Robert Wilton)
Robert Wilton presenting.
[RS] No changes to existing YANG models - that does not seem to be 
practical. There are vendor extensions anyway.
[RW]   if models are standardised in IETF, they should work in all cases.

[KW] we would like to know which of those solutions should progress 
forward.
[RS] Would be nice to poll for who has read the solutions drafts?
[KW] [Show of hands] About half the room have read the three drafts.
[KW] Who would favor solution 1. Humm. 2. Humm (most). 3. Humm
[KW] Does anyone object to solution 2? Please go to mike?
[RS]  Didn't we do that already? We seem not to going anywhere forward 
with this discussion. We did clarify wording, but that is mostly it. It 
is nothing for operator to help with configuring a network. Is it a 
perfection problem here? Can we produce something practically useful?
[CM] There are large installations based on existing YANG and NETCONF 
specifications.
[RS]    I take that into account. I have none in my network though that 
use existing model. I am not saying that we should throw away the 
existing solution in favor of the future solution.
[CM] There is a technology shift.
[CH] We are not forcing to implement some particular data store 
technology. This is more of a way of thinking of it.


[Before]

10 min: draft-openconfig-netmod-model-catalog-00   (Anees Shaikh)
Anees Shaikh presenting.
...
[KW] Maybe IETF tools could host this too.
[KW] please hum if this is important work.


[After]
10 min: draft-openconfig-netmod-model-catalog-00   (Anees Shaikh)
Anees Shaikh presenting.
...
[KW] please hum if this is important work.
[KW] [Humm]  It's important.


[Before]

5 min: draft-wilton-netmod-intf-ext-yang-01  (Robert Wilton)
Moved from morning session.Robert Wilton presenting.
[LL] I think this is really necessary to do, and that is one of the reasons why derive functionality was introduced. [IF] aift types served purposes for SNMP MIBs. I do not propose to obsolete these types. We likely need a tree of identities that could be used.
[RS] Wilton  this is more of a label of the interface type.
[MB]   This seems to be a nice idea. Defining these identities that define the properties of interface seems useful, and then derive the actual interface identities from those interface technology type identities. Maybe property identities could be a separate model.
[RS]  augmentation needs to be in the same ??
[MB]   that is a side effect of allowing mandatory augments?
[KW] who has read the draft  ~10. Who supports the interface extension being adopted?
[DR] waiting for IEEE 802.1Q WG chair - what is that?
[MJ]  Glen thinks that the extension of VLAN YANG model should be happening there.
[RS]  this is related to overlapping of the bridging model implementation?
[DR] do you have any mail exchanges for this? Maybe this could be raised in IEEE plenary. Please forward me any emails on this discussion.


[After]

5 min: draft-wilton-netmod-intf-ext-yang-01  (Robert Wilton)
Moved from morning session.Robert Wilton presenting.
[LL] I think this is really necessary to do, and that is one of the reasons why derive functionality was introduced. [IF] aift types served purposes for SNMP MIBs. I do not propose to obsolete these types. We likely need a tree of identities that could be used.
[RW] This is more of a label of the interface type.
[MB]   This seems to be a nice idea. Defining these identities that define the properties of interface seems useful, and then derive the actual interface identities from those interface technology type identities. Maybe property identities could be a separate model.
[RW]  augmentation needs to be in the same module as the identity definition.
[MB]   that is a side effect of allowing mandatory augments.
[KW] who has read the draft  ~10. Who supports the interface extension being adopted?
[KW] [Support indicated].  OK, good.  Will confirm on the WG mailing list.
[DR] waiting for IEEE 802.1Q WG chair - what is that?
[MJ]  Glen thinks that the extension of VLAN YANG model should be happening there.
[RW] Concern is overlap with the 802.1Q YANG model for bridges.  But this model doesn't overlap because it it only defines an interface based model for classification.
[DR] do you have any mail exchanges for this? Maybe this could be raised in IEEE plenary. Please forward me any emails on this discussion.


Thanks,
Rob


On 17/11/2015 18:32, Kent Watsen wrote:
>
> All,
>
> The minutes for the two NETMOD sessions have been posted:
>
> https://www.ietf.org/proceedings/94/minutes/minutes-94-netmod
>
> Please provide comments/corrections on these draft minutes by Wed, Nov 
> 25th.
>
> PS: huge thanks to Ignas and Andrew for putting these together!
>
> Thanks,
> Kent
>
>
>
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod


--------------020702050003080403070000
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">
    Hi Kent,<br>
    <br>
    I've some minor modifications of some of the minutes, mainly just to
    clarify who was asking some of the questions/comments (mostly
    between Rob Shakir and myself), but also some other minor
    clarifications when I was listening back to the audio.<br>
    <br>
    [Before]<br>
    <pre style="color: rgb(0, 0, 0); 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; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; white-space: pre-wrap;">10 min: draft-ietf-openconfig-netmod-opstate-01    (Anees Shaikh or [RS] Shakir)
Rob Shakir presenting. 
[LL] Would it be possible to have multiple management interfaces (NETCONF, RESTONF, other) - is the intended configuration supposed to be private per transport protocol? 
[RS]  Would think no. There is one intended configuration per device. 
[LL] this may have some locking implications.  
[TC]  Why did you chose to use intended/applied approach?
[RS]  This allows us to use YANG today. 
[KW] there were 3 solutions drafts. 
[TC]	we are doing the same thing in BBF, and would like to mimic the solution agreed here. 
[AS] There is a section i a draft that addresses this.  
[LB]  I am confused on the process for the requirements. You said you will make consensus call for requirements today?
[KW] we will do a consensus call on solutions. I believe there is consensus on requirements. 
[LB]  on a list there was a discussion on planning to poll for consensus but that did not seem to happen. 
[KW] confirming consensus on requirements now by humming - consensus achieved. 
</pre>
    <br>
    [After]<br>
    <tt>10 min: draft-ietf-openconfig-netmod-opstate-01    (Anees Shaikh
      or [RS] Shakir)</tt><tt><br>
    </tt><tt>Rob Shakir presenting. </tt><tt><br>
    </tt><tt>[LL] Would it be possible to have multiple management
      interfaces (NETCONF, RESTONF, other) - is the intended
      configuration supposed to be private per transport protocol? </tt><tt><br>
    </tt><tt>[RS]  Would think no. There is one intended configuration
      per device. </tt><tt><br>
    </tt><tt>[LL] this may have some locking implications.  </tt><tt><br>
    </tt><tt>[TC]  Why did you chose to use intended/applied approach
      rather than using datastores?</tt><tt><br>
    </tt><tt>[RS]  1. No such thing as an applied datastore today.  This
      solution allows us to use YANG today. 2. Our solution allows for a
      single path that is not dependent on the datastore.</tt><tt><br>
    </tt><tt>[KW] there were 3 solutions drafts. </tt><tt><br>
    </tt><tt>[TC]    we are doing the same thing in BBF, and would like
      to mimic the solution agreed here. </tt><tt><br>
    </tt><tt>[AS] There is a section in our draft that addresses some of
      these questions.  </tt><tt><br>
    </tt><tt>[LB]  I am confused on the process for the requirements.
      You said you will make consensus call for requirements today?</tt><tt><br>
    </tt><tt>[KW] we will do a consensus call on solutions. I believe
      there is consensus on requirements. </tt><tt><br>
    </tt><tt>[LB]  on a list there was a discussion on planning to poll
      for consensus but that did not seem to happen. </tt><tt><br>
    </tt><tt>[KW] confirming consensus on requirements now by humming -
      consensus achieved. </tt><br>
    <br>
    <br>
    [Before]<br>
    <pre style="color: rgb(0, 0, 0); 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; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; white-space: pre-wrap;">10 min: other solutions for the opstate-reqs (Robert Wilton)
Robert Wilton presenting. 
[RW]  no changes to existing YANG models - that does not seem to be practical. There are vendor extensions anyway. 
[RW] Wilton  if models are standardised in IETF, they should work in all cases. 

[KW] we would like to know which of those solutions should progress forward. 
[Rw]  would be nice to poil for who has read the solutions drafts? 
[KW] who would favor solution 1. Humm. 2. Humm (most). 3. Humm
[KW] Does anyone object to solution 2? Please go to mike?
[Rw]  Didn't we do that already? We seem not to going anywhere forward with this discussion. We did clarify wording, but that is mostly it. It is noting for operator to help with configuring a network. Is it a perfection problem here? Can we produce something practically useful? 
[CM] There are large installations based on existing YANG specifications. 
[RW]	I take that into account. I have none in my network though that use existing model. I am not saying that we should throw away the existing solution in favor of the future solution. 
[CM] There is a technology shift. 
[CH] We are not forcing to implement some particular data store technology. This is more of a way of thinking of it. 
</pre>
    <br>
    [After]<br>
    <tt>10 min: other solutions for the opstate-reqs (Robert Wilton)</tt><tt><br>
    </tt><tt>Robert Wilton presenting. </tt><tt><br>
    </tt><tt>[RS] No changes to existing YANG models - that does not
      seem to be practical. There are vendor extensions anyway. </tt><tt><br>
    </tt><tt>[RW]   if models are standardised in IETF, they should work
      in all cases.</tt><tt><br>
      <br>
    </tt><tt>[KW] we would like to know which of those solutions should
      progress forward. </tt><tt><br>
    </tt><tt>[RS] Would be nice to poll for who has read the solutions
      drafts?</tt><tt><br>
    </tt><tt>[KW] [Show of hands] About half the room have read the
      three drafts.</tt><tt><br>
    </tt><tt>[KW] Who would favor solution 1. Humm. 2. Humm (most). 3.
      Humm</tt><tt><br>
    </tt><tt>[KW] Does anyone object to solution 2? Please go to mike?</tt><tt><br>
    </tt><tt>[RS]  Didn't we do that already? We seem not to going
      anywhere forward with this discussion. We did clarify wording, but
      that is mostly it. It is nothing for operator to help with
      configuring a network. Is it a perfection problem here? Can we
      produce something practically useful? </tt><tt><br>
    </tt><tt>[CM] There are large installations based on existing YANG
      and NETCONF specifications. </tt><tt><br>
    </tt><tt>[RS]    I take that into account. I have none in my network
      though that use existing model. I am not saying that we should
      throw away the existing solution in favor of the future solution.
    </tt><tt><br>
    </tt><tt>[CM] There is a technology shift. </tt><tt><br>
    </tt><tt>[CH] We are not forcing to implement some particular data
      store technology. This is more of a way of thinking of it. </tt><br>
    <br>
    <br>
    [Before]<br>
    <pre style="color: rgb(0, 0, 0); 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; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; white-space: pre-wrap;">10 min: draft-openconfig-netmod-model-catalog-00   (Anees Shaikh)
Anees Shaikh presenting. 
...
[KW] Maybe IETF tools could host this too. 
[KW] please hum if this is important work. 
</pre>
    <br>
    [After]<br>
    <tt>10 min: draft-openconfig-netmod-model-catalog-00   (Anees
      Shaikh)</tt><tt><br>
    </tt><tt>Anees Shaikh presenting. </tt><tt><br>
    </tt><tt>...</tt><tt></tt><tt><br>
    </tt><tt>[KW] please hum if this is important work. </tt><tt><br>
    </tt><tt>[KW] [Humm]  It's important.</tt><br>
    <br>
    <br>
    [Before]<br>
    <pre style="color: rgb(0, 0, 0); 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; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; white-space: pre-wrap;"><font><font class="">5 min: draft-wilton-netmod-intf-ext-yang-01  (Robert Wilton)</font></font>
Moved from morning session.<font><font>
Robert Wilton presenting. </font></font>
[LL] I think this is really necessary to do, and that is one of the reasons why derive functionality was introduced. [IF] aift types served purposes for SNMP MIBs. I do not propose to obsolete these types. We likely need a tree of identities that could be used. 
[RS] Wilton  this is more of a label of the interface type. 
[MB]   This seems to be a nice idea. Defining these identities that define the properties of interface seems useful, and then derive the actual interface identities from those interface technology type identities. Maybe property identities could be a separate model. 
[RS]  augmentation needs to be in the same ??
[MB]   that is a side effect of allowing mandatory augments? 
[KW] who has read the draft  ~10. Who supports the interface extension being adopted? 
[DR] waiting for IEEE 802.1Q WG chair - what is that? 
[MJ]  Glen thinks that the extension of VLAN YANG model should be happening there. 
[RS]  this is related to overlapping of the bridging model implementation? 
[DR] do you have any mail exchanges for this? Maybe this could be raised in IEEE plenary. Please forward me any emails on this discussion. 
</pre>
    <br>
    [After]<br>
    <pre style="color: rgb(0, 0, 0); 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; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; white-space: pre-wrap;"><font><font class="">5 min: draft-wilton-netmod-intf-ext-yang-01  (Robert Wilton)</font></font>
Moved from morning session.<font><font>
Robert Wilton presenting. </font></font>
[LL] I think this is really necessary to do, and that is one of the reasons why derive functionality was introduced. [IF] aift types served purposes for SNMP MIBs. I do not propose to obsolete these types. We likely need a tree of identities that could be used. 
[RW] This is more of a label of the interface type. 
[MB]   This seems to be a nice idea. Defining these identities that define the properties of interface seems useful, and then derive the actual interface identities from those interface technology type identities. Maybe property identities could be a separate model. 
[RW]  augmentation needs to be in the same module as the identity definition.
[MB]   that is a side effect of allowing mandatory augments. 
[KW] who has read the draft  ~10. Who supports the interface extension being adopted?
[KW] [Support indicated].  OK, good.  Will confirm on the WG mailing list.
[DR] waiting for IEEE 802.1Q WG chair - what is that? 
[MJ]  Glen thinks that the extension of VLAN YANG model should be happening there. 
[RW] Concern is overlap with the 802.1Q YANG model for bridges.  But this model doesn't overlap because it it only defines an interface based model for classification. 
[DR] do you have any mail exchanges for this? Maybe this could be raised in IEEE plenary. Please forward me any emails on this discussion. 
</pre>
    <br>
    Thanks,<br>
    Rob<br>
    <br>
    <br>
    <div class="moz-cite-prefix">On 17/11/2015 18:32, Kent Watsen wrote:<br>
    </div>
    <blockquote
      cite="mid:0CEFE89F-65C6-4C97-BC2E-723C9995BCE4@juniper.net"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html;
        charset=windows-1252">
      <div><br>
      </div>
      <div>All,</div>
      <div><br>
      </div>
      <div>The minutes for the two NETMOD sessions have been posted:</div>
      <div><br>
      </div>
      <div>   
        <a class="moz-txt-link-freetext" href="https://www.ietf.org/proceedings/94/minutes/minutes-94-netmod">https://www.ietf.org/proceedings/94/minutes/minutes-94-netmod</a></div>
      <div><br>
      </div>
      <div>
        <div>Please provide comments/corrections on these draft minutes
          by Wed, Nov 25th.</div>
      </div>
      <div><br>
      </div>
      <div>PS: huge thanks to Ignas and Andrew for putting these
        together!</div>
      <div><br>
      </div>
      <div>Thanks,</div>
      <div>Kent</div>
      <div><br>
      </div>
      <div>
      </div>
      <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>

--------------020702050003080403070000--


From nobody Tue Nov 24 12:11:27 2015
Return-Path: <ivandean@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 008AB1A8937; Tue, 24 Nov 2015 12:11:26 -0800 (PST)
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 LkkETnYru6K8; Tue, 24 Nov 2015 12:11:24 -0800 (PST)
Received: from mail-qg0-x232.google.com (mail-qg0-x232.google.com [IPv6:2607:f8b0:400d:c04::232]) (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 81FA71A8902; Tue, 24 Nov 2015 12:11:24 -0800 (PST)
Received: by qgcc31 with SMTP id c31so18539943qgc.3; Tue, 24 Nov 2015 12:11:23 -0800 (PST)
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=LpqWjsJwOp4p2G2jFZCAa9epE5Vy0yZ5bzDZkOnQHDw=; b=DOiCSD9hyU9OIKqSSnlejkLiYgJPTLmRxNvj5nvdxYXVIt+jbYRe5YzIZSV0tw7FU8 J6Wlw6mGnMx4QvjSMB53gglR2k6bkyio3eKIg8IdKBJc5fJ6EEV2/lFCL2JJkYq6GGyq chOR3Z9n31HBpu3thuekR8Phzs/KNMZMgyx+5XSsAew0SzgLhFVd7r6CwK+TJBM9uf4z PFp62WRaZZH2ouP06TcOcoWgVt7hqGj+umxoWMjlHIrH5uRaLddte98YxTFhMQnU7pIy uSxQ1LgPq0/M3uyJxqwG6F+L5ZpjFe3u8aMJ2pKNC8hUgVuT6H6cBwU2yp0B3EcB8OQh w0Mw==
X-Received: by 10.140.155.75 with SMTP id b72mr35455364qhb.29.1448395883698; Tue, 24 Nov 2015 12:11:23 -0800 (PST)
Received: from [192.168.128.73] ([192.64.64.178]) by smtp.gmail.com with ESMTPSA id w10sm4561052qhc.16.2015.11.24.12.11.23 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 24 Nov 2015 12:11:23 -0800 (PST)
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
From: Dean Bogdanovic <ivandean@gmail.com>
In-Reply-To: <20151124.102441.1278595679799542000.mbj@tail-f.com>
Date: Tue, 24 Nov 2015 15:11:22 -0500
Content-Transfer-Encoding: quoted-printable
Message-Id: <A9DE6AFB-14DC-46FB-B2EE-C993BEEC67E2@gmail.com>
References: <D278C312.3EDF3%acee@cisco.com> <20151124.102441.1278595679799542000.mbj@tail-f.com>
To: Martin Bjorklund <mbj@tail-f.com>
X-Mailer: Apple Mail (2.3096.5)
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/-8OoK2UC_lS3KfDAUyruhf0d2lU>
Cc: rtg-yang-coord@ietf.org, rtg-dt-yang-arch@ietf.org, netmod@ietf.org
Subject: Re: [netmod] [Rtg-dt-yang-arch]  draft-ietf-netmod-routing-cfg
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 24 Nov 2015 20:11:26 -0000

Martin,
> n Nov 24, 2015, at 4:24 AM, Martin Bjorklund <mbj@tail-f.com> wrote:
>=20
> Hi,
>=20
> "Acee Lindem (acee)" <acee@cisco.com> wrote:
>> We had a lot of good discussions at IETF 94 with respect to the
>> ietf-routing and how it could be augmented in the future to support =
I2RS.
>> These discussions are ongoing.
>>=20
>> One current change that I would like to propose is to change the base
>> instance container from routing-instance to networking-instance.
>=20
> Is the idea to simply rename the "routing-instance" container to
> "networking-instance"?
>=20
> Then we would have:
>=20
>   +--rw routing
>      +--rw networking-instance
>=20
> Would you keep the top-level name "routing=E2=80=9D?

Yes, routing is not confined to IP only. TRILL and PBB do routing at MAC =
layer, so routing as top level domain can stay. OTH, routing instance is =
well defined term in the industry, so there is a need to have a term =
that can encompass L2 and L3.

Dean

>=20
>=20
>=20
>=20
> /martin
>=20
>=20
>=20
>=20
>> This
>> would provide an instance definition that could be augmented for L2
>> protocols and service functionality as well as L3. It is also =
consistent
>> with the term used in both
>> https://www.ietf.org/id/draft-rtgyangdt-rtgwg-device-model-01.txt and
>> =
https://www.ietf.org/id/draft-openconfig-rtgwg-network-instance-01.txt.
>>=20
>> Thanks,
>> Acee=20
>>=20
>> _______________________________________________
>> netmod mailing list
>> netmod@ietf.org
>> https://www.ietf.org/mailman/listinfo/netmod
>>=20
>=20
> _______________________________________________
> Rtg-dt-yang-arch mailing list
> Rtg-dt-yang-arch@ietf.org
> https://www.ietf.org/mailman/listinfo/rtg-dt-yang-arch


From nobody Tue Nov 24 12:30:53 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 33F6D1A8979; Tue, 24 Nov 2015 12:30:49 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -15.086
X-Spam-Level: 
X-Spam-Status: No, score=-15.086 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-0.585, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Q2lHb58WI1EV; Tue, 24 Nov 2015 12:30:47 -0800 (PST)
Received: from rcdn-iport-1.cisco.com (rcdn-iport-1.cisco.com [173.37.86.72]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 74CAE1A8953; Tue, 24 Nov 2015 12:30:47 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=2718; q=dns/txt; s=iport; t=1448397047; x=1449606647; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=FdBGIfQ4KqvDpNYeQ+bkgpMEwNouci+L+3hAWKnPJF0=; b=mkwLrlbVSF99RORM//ZHM96DmDuqEx5RDSRaXbvgVUFbwP15ydKo7guD 91AwIn0tYbEsvmNAG8ww/gNewClZCZ3HwxrqCaAeUad5hz2RhApebu21C tC1ANKx+9tJkgUjiWgUuHPy5tv0fjV6Ka1cFgMfBL+jCMmSrD4UOHhbEM c=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0D7AQCvx1RW/4cNJK1egztTbwa+OAENg?= =?us-ascii?q?WcXCoUkSgIcgSc4FAEBAQEBAQGBCoQ1AQEEAQEBIBE6CxACAQgOCgICJgICAiU?= =?us-ascii?q?LFRACBA4FiC4NrXKQJgEBAQEBAQEBAQEBAQEBAQEBAQEBARQEgQGKUYRZgxyBR?= =?us-ascii?q?AWNIYk0AYUkiA2cVwEfAQFChARyAYQkgQcBAQE?=
X-IronPort-AV: E=Sophos;i="5.20,339,1444694400"; d="scan'208";a="53587896"
Received: from alln-core-2.cisco.com ([173.36.13.135]) by rcdn-iport-1.cisco.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 24 Nov 2015 20:30:46 +0000
Received: from XCH-RTP-014.cisco.com (xch-rtp-014.cisco.com [64.101.220.154]) by alln-core-2.cisco.com (8.14.5/8.14.5) with ESMTP id tAOKUkue015243 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Tue, 24 Nov 2015 20:30:46 GMT
Received: from xch-rtp-015.cisco.com (64.101.220.155) by XCH-RTP-014.cisco.com (64.101.220.154) with Microsoft SMTP Server (TLS) id 15.0.1104.5; Tue, 24 Nov 2015 15:30:46 -0500
Received: from xch-rtp-015.cisco.com ([64.101.220.155]) by XCH-RTP-015.cisco.com ([64.101.220.155]) with mapi id 15.00.1104.000; Tue, 24 Nov 2015 15:30:45 -0500
From: "Acee Lindem (acee)" <acee@cisco.com>
To: Martin Bjorklund <mbj@tail-f.com>
Thread-Topic: [netmod] draft-ietf-netmod-routing-cfg
Thread-Index: AQHRJpn047JQ40dIlkSrKyodTLwzgp6roMYA
Date: Tue, 24 Nov 2015 20:30:45 +0000
Message-ID: <D27A2EC8.3F0A6%acee@cisco.com>
References: <D278C312.3EDF3%acee@cisco.com> <20151124.102441.1278595679799542000.mbj@tail-f.com>
In-Reply-To: <20151124.102441.1278595679799542000.mbj@tail-f.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.116.152.196]
Content-Type: text/plain; charset="utf-8"
Content-ID: <11BA6BE841045740A60A50539C8EF341@emea.cisco.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/OvilnhaGmHbsWkD29li8qMAebHY>
Cc: "rtg-yang-coord@ietf.org" <rtg-yang-coord@ietf.org>, "rtg-dt-yang-arch@ietf.org" <rtg-dt-yang-arch@ietf.org>, "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] draft-ietf-netmod-routing-cfg
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 24 Nov 2015 20:30:49 -0000

SGkgTWFydGluLA0KIA0KSSB0aGluayB1c2luZyB0aGUgbW9yZSBnZW5lcmljIHRlcm0sIOKAnG5l
dHdvcmtpbmfigJ0sIGF0IHRoZSB0b3Agd291bGQgYmUNCnByZWZlcmFibGUuIFdoYXQgd2UgbmVl
ZCBpcyBhbiBpbnN0YW5jZSBhYnN0cmFjdGlvbiB0aGF0IGNvdmVycyBMMyAoZS5nLiwNCnZpcnR1
YWwgcm91dGVyIG9yIFZSRiksIEwyIChlLmcuLCBWaXJ0dWFsIFN3aXRjaCBJbnN0YW5jZSksIG9y
IGENCmNvbWJpbmF0aW9uIChzb21lIEVWUE4sIFRSSUxMLCBldGMpLiBUaGlzIGNvdWxkIGJlIHVz
ZWQgaW4gbGlldSBvZiBlYWNoIEwyDQptb2RlbCBjcmVhdGluZyB0aGVpciBvd24gdG9wIHNlcGFy
YXRlIGxpc3Qgb2YgaW5zdGFuY2VzLiBGb3IgZXhhbXBsZSwgdGhlDQpuZXR3b3JraW5nLWluc3Rh
bmNlIGNvdWxkIGJlIGF1Z21lbnRlZCB3aXRoIGJvdGggdGhlIFZQTFMgYW5kIFZQV1MNCmluc3Rh
bmNlcyBpbiBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtc2hhaC1iZXNzLWwydnBu
LXlhbmctMDAuDQoNClNvbWUgWUFORyBtb2RlbHMgYXNjcmliZSBncmVhdG5lc3MgZnJvbSB0aGUg
c3RhcnQsIG90aGVycyBhY2hpZXZlDQpncmVhdG5lc3MgdGhyb3VnaCByZWZpbmVtZW50LCB3aGls
ZSBzdGlsbCBvdGhlcnMgaGF2ZSBncmVhdG5lc3MgdGhydXN0DQp1cG9uIHRoZW0uIHJvdXRpbmct
Y2ZnIHdvdWxkIGZhbGwgaW50byB0aGUgbGFzdCBjYXRlZ29yeeKApg0KDQpUaGFua3MsDQpBY2Vl
IA0KDQpPbiAxMS8yNC8xNSwgNDoyNCBBTSwgIk1hcnRpbiBCam9ya2x1bmQiIDxtYmpAdGFpbC1m
LmNvbT4gd3JvdGU6DQoNCj5IaSwNCj4NCj4iQWNlZSBMaW5kZW0gKGFjZWUpIiA8YWNlZUBjaXNj
by5jb20+IHdyb3RlOg0KPj4gV2UgaGFkIGEgbG90IG9mIGdvb2QgZGlzY3Vzc2lvbnMgYXQgSUVU
RiA5NCB3aXRoIHJlc3BlY3QgdG8gdGhlDQo+PiBpZXRmLXJvdXRpbmcgYW5kIGhvdyBpdCBjb3Vs
ZCBiZSBhdWdtZW50ZWQgaW4gdGhlIGZ1dHVyZSB0byBzdXBwb3J0DQo+PkkyUlMuDQo+PiBUaGVz
ZSBkaXNjdXNzaW9ucyBhcmUgb25nb2luZy4NCj4+IA0KPj4gT25lIGN1cnJlbnQgY2hhbmdlIHRo
YXQgSSB3b3VsZCBsaWtlIHRvIHByb3Bvc2UgaXMgdG8gY2hhbmdlIHRoZSBiYXNlDQo+PiBpbnN0
YW5jZSBjb250YWluZXIgZnJvbSByb3V0aW5nLWluc3RhbmNlIHRvIG5ldHdvcmtpbmctaW5zdGFu
Y2UuDQo+DQo+SXMgdGhlIGlkZWEgdG8gc2ltcGx5IHJlbmFtZSB0aGUgInJvdXRpbmctaW5zdGFu
Y2UiIGNvbnRhaW5lciB0bw0KPiJuZXR3b3JraW5nLWluc3RhbmNlIj8NCj4NCj5UaGVuIHdlIHdv
dWxkIGhhdmU6DQo+DQo+ICAgKy0tcncgcm91dGluZw0KPiAgICAgICstLXJ3IG5ldHdvcmtpbmct
aW5zdGFuY2UNCj4NCj5Xb3VsZCB5b3Uga2VlcCB0aGUgdG9wLWxldmVsIG5hbWUgInJvdXRpbmci
Pw0KPg0KPg0KPg0KPg0KPi9tYXJ0aW4NCj4NCj4NCj4NCj4NCj4+IFRoaXMNCj4+IHdvdWxkIHBy
b3ZpZGUgYW4gaW5zdGFuY2UgZGVmaW5pdGlvbiB0aGF0IGNvdWxkIGJlIGF1Z21lbnRlZCBmb3Ig
TDINCj4+IHByb3RvY29scyBhbmQgc2VydmljZSBmdW5jdGlvbmFsaXR5IGFzIHdlbGwgYXMgTDMu
IEl0IGlzIGFsc28gY29uc2lzdGVudA0KPj4gd2l0aCB0aGUgdGVybSB1c2VkIGluIGJvdGgNCj4+
IGh0dHBzOi8vd3d3LmlldGYub3JnL2lkL2RyYWZ0LXJ0Z3lhbmdkdC1ydGd3Zy1kZXZpY2UtbW9k
ZWwtMDEudHh0IGFuZA0KPj4gaHR0cHM6Ly93d3cuaWV0Zi5vcmcvaWQvZHJhZnQtb3BlbmNvbmZp
Zy1ydGd3Zy1uZXR3b3JrLWluc3RhbmNlLTAxLnR4dC4NCj4+IA0KPj4gVGhhbmtzLA0KPj4gQWNl
ZSANCj4+IA0KPj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18NCj4+IG5ldG1vZCBtYWlsaW5nIGxpc3QNCj4+IG5ldG1vZEBpZXRmLm9yZw0KPj4gaHR0cHM6
Ly93d3cuaWV0Zi5vcmcvbWFpbG1hbi9saXN0aW5mby9uZXRtb2QNCj4+IA0KDQo=


From nobody Tue Nov 24 17: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 4AFAE1AC7E7 for <netmod@ietfa.amsl.com>; Tue, 24 Nov 2015 17:12:42 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.701
X-Spam-Level: 
X-Spam-Status: No, score=-0.701 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, J_CHICKENPOX_12=0.6, J_CHICKENPOX_31=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 WwnwOTF_POrU for <netmod@ietfa.amsl.com>; Tue, 24 Nov 2015 17:12:33 -0800 (PST)
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 DEFEC1AC529 for <netmod@ietf.org>; Tue, 24 Nov 2015 17:12:32 -0800 (PST)
Received: from BN3PR0501MB1442.namprd05.prod.outlook.com (10.160.117.151) by BN3PR0501MB1441.namprd05.prod.outlook.com (10.160.117.150) with Microsoft SMTP Server (TLS) id 15.1.331.20; Wed, 25 Nov 2015 01:12:28 +0000
Received: from BN3PR0501MB1442.namprd05.prod.outlook.com ([10.160.117.151]) by BN3PR0501MB1442.namprd05.prod.outlook.com ([10.160.117.151]) with mapi id 15.01.0331.019; Wed, 25 Nov 2015 01:12:28 +0000
From: Kent Watsen <kwatsen@juniper.net>
To: "netmod@ietf.org" <netmod@ietf.org>
Thread-Topic: [netmod] draft netmod 94 minutes posted
Thread-Index: AQHRIWZCVNrfkutNUE6T1zoomY4ClJ6rcB8AgAA19AA=
Date: Wed, 25 Nov 2015 01:12:28 +0000
Message-ID: <289891D5-5025-4CA7-AE79-F5B2A0291016@juniper.net>
References: <0CEFE89F-65C6-4C97-BC2E-723C9995BCE4@juniper.net> <56549768.1090104@cisco.com>
In-Reply-To: <56549768.1090104@cisco.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
user-agent: Microsoft-MacOutlook/0.0.0.151105
authentication-results: spf=none (sender IP is ) smtp.mailfrom=kwatsen@juniper.net; 
x-ms-exchange-messagesentrepresentingtype: 1
x-originating-ip: [66.129.241.14]
x-microsoft-exchange-diagnostics: 1; BN3PR0501MB1441; 5:UVmXnV7lKPkUlCGaa63Yj0DOAH/Cs5/mrsTu1XrVQU9WwYOYW6lLkO3Z8qtS81N1gYJ7gZSHvj4AM9LOhBdVP//lSCxMECSU288W+9MWJbnVd3q5DzlRbuqcAOMN3VgmnX+YOgwsQqkqTnP458zmOA==; 24:4KqbV+8y3iFDwgZOsjDTzDgWUsjHHXM8Odh/8CEJAlMh3VFObInse9dP2DpVSRSSaJ6iKJIIVPmHDSBb4NDmZQBTELIfPgZ1DHpi5u6QoXo=
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN3PR0501MB1441;
x-microsoft-antispam-prvs: <BN3PR0501MB1441B0939E59F4A4B8291B47A5050@BN3PR0501MB1441.namprd05.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:(138986009662008)(95692535739014);
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(2401047)(8121501046)(520078)(5005006)(3002001)(10201501046); SRVR:BN3PR0501MB1441; BCL:0; PCL:0; RULEID:; SRVR:BN3PR0501MB1441; 
x-forefront-prvs: 0771670921
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(377454003)(479174004)(199003)(51884002)(164054003)(24454002)(189002)(16236675004)(50986999)(101416001)(122556002)(105586002)(99286002)(54356999)(82746002)(11100500001)(76176999)(99936001)(19617315012)(15975445007)(106356001)(83506001)(36756003)(40100003)(5007970100001)(5004730100002)(66066001)(77096005)(2351001)(19580405001)(5008740100001)(5890100001)(97736004)(19580395003)(4001350100001)(92566002)(81156007)(5001920100001)(106116001)(189998001)(5001960100002)(110136002)(5002640100001)(33656002)(2501003)(102836003)(6116002)(2900100001)(10400500002)(2950100001)(83716003)(586003)(3846002)(86362001)(87936001)(104396002); DIR:OUT; SFP:1102; SCL:1; SRVR:BN3PR0501MB1441; H:BN3PR0501MB1442.namprd05.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; 
received-spf: None (protection.outlook.com: juniper.net does not designate permitted sender hosts)
spamdiagnosticoutput: 1:23
spamdiagnosticmetadata: NSPM
Content-Type: multipart/mixed; boundary="_004_289891D550254CA7AE79F5B2A0291016junipernet_"
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Nov 2015 01:12:28.4999 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR0501MB1441
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/5bGId0F14Hm9MF2ALCyg8i8Kneg>
Subject: Re: [netmod] draft netmod 94 minutes posted
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 25 Nov 2015 01:12:42 -0000

--_004_289891D550254CA7AE79F5B2A0291016junipernet_
Content-Type: multipart/alternative;
	boundary="_000_289891D550254CA7AE79F5B2A0291016junipernet_"

--_000_289891D550254CA7AE79F5B2A0291016junipernet_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

DQpBbGwsDQoNCkkgaGF2ZSBjb21waWxlZCBNYXJ0aW4gYW5kIFJvYmVydOKAmXMgdXBkYXRlcyBp
bnRvIHRoZSBhdHRhY2hlZCBmaWxlLCBhbmQgYmVsb3cgaXMgdGhlIGRpZmYuICBBcyBmYXIgYXMg
SSBjYW4gdGVsbCwgdGhlc2UgdXBkYXRlcyBhcmUgYWxsIHdlbGwgYW5kIGdvb2QuICAgVGhhbmsg
eW91IE1hcnRpbiBhbmQgUm9iZXJ0Lg0KDQpHaXZlbiB0aGF0IGl04oCZcyBhIGhvbGlkYXkgaW4g
dGhlIFN0YXRlcywgcGxlYXNlIHNlbmQgYW55IGZpbmFsIGNvcnJlY3Rpb25zIGJ5IE1vbmRheSwg
Tm92IDMwdGguDQoNCktlbnQNCg0KDQojIGRpZmYgbWludXRlcy05NC1uZXRtb2QtbmV3LnR4dCBt
aW51dGVzLTk0LW5ldG1vZC50eHQNCjE5MCwxOTFjMTkwLDE5MQ0KPCBbVENdIFdoeSBkaWQgeW91
IGNob3NlIHRvIHVzZSBpbnRlbmRlZC9hcHBsaWVkIGFwcHJvYWNoIHJhdGhlciB0aGFuIHVzaW5n
IGRhdGFzdG9yZXM/DQo8IFtSU10gMS4gTm8gc3VjaCB0aGluZyBhcyBhbiBhcHBsaWVkIGRhdGFz
dG9yZSB0b2RheS4gIFRoaXMgc29sdXRpb24gYWxsb3dzIHVzIHRvIHVzZSBZQU5HIHRvZGF5LiAy
LiBPdXIgc29sdXRpb24gYWxsb3dzIGZvciBhIHNpbmdsZSBwYXRoIHRoYXQgaXMgbm90IGRlcGVu
ZGVudCBvbiB0aGUgZGF0YXN0b3JlLg0KLS0tDQo+IFtUQ10gV2h5IGRpZCB5b3UgY2hvc2UgdG8g
dXNlIGludGVuZGVkL2FwcGxpZWQgYXBwcm9hY2g/DQo+IFtSU10gVGhpcyBhbGxvd3MgdXMgdG8g
dXNlIFlBTkcgdG9kYXkuDQoxOTRjMTk0DQo8IFtBU10gVGhlcmUgaXMgYSBzZWN0aW9uIGluIG91
ciBkcmFmdCB0aGF0IGFkZHJlc3NlcyBzb21lIG9mIHRoZXNlIHF1ZXN0aW9ucy4NCi0tLQ0KPiBb
QVNdIFRoZXJlIGlzIGEgc2VjdGlvbiBpIGEgZHJhZnQgdGhhdCBhZGRyZXNzZXMgdGhpcy4NCjIw
MywyMDRjMjAzLDIwNA0KPCBbUlNdIE5vIGNoYW5nZXMgdG8gZXhpc3RpbmcgWUFORyBtb2RlbHMg
LSB0aGF0IGRvZXMgbm90IHNlZW0gdG8gYmUgcHJhY3RpY2FsLiBUaGVyZSBhcmUgdmVuZG9yIGV4
dGVuc2lvbnMgYW55d2F5Lg0KPCBbUlddIGlmIG1vZGVscyBhcmUgc3RhbmRhcmRpc2VkIGluIElF
VEYsIHRoZXkgc2hvdWxkIHdvcmsgaW4gYWxsIGNhc2VzLg0KLS0tDQo+IFtSV10gIG5vIGNoYW5n
ZXMgdG8gZXhpc3RpbmcgWUFORyBtb2RlbHMgLSB0aGF0IGRvZXMgbm90IHNlZW0gdG8gYmUgcHJh
Y3RpY2FsLiBUaGVyZSBhcmUgdmVuZG9yIGV4dGVuc2lvbnMgYW55d2F5Lg0KPiBbUlddIFdpbHRv
biAgaWYgbW9kZWxzIGFyZSBzdGFuZGFyZGlzZWQgaW4gSUVURiwgdGhleSBzaG91bGQgd29yayBp
biBhbGwgY2FzZXMuDQoyMDYsMjA4YzIwNiwyMDcNCjwgW1JTXSBXb3VsZCBiZSBuaWNlIHRvIHBv
bGwgZm9yIHdobyBoYXMgcmVhZCB0aGUgc29sdXRpb25zIGRyYWZ0cz8NCjwgW0tXXSBbU2hvdyBv
ZiBoYW5kc10gQWJvdXQgaGFsZiB0aGUgcm9vbSBoYXZlIHJlYWQgdGhlIHRocmVlIGRyYWZ0cy4N
CjwgW0tXXSBXaG8gd291bGQgZmF2b3Igc29sdXRpb24gMS4gSHVtbS4gMi4gSHVtbSAobW9zdCku
IDMuIEh1bW0NCi0tLQ0KPiBbUlddIHdvdWxkIGJlIG5pY2UgdG8gcG9pbCBmb3Igd2hvIGhhcyBy
ZWFkIHRoZSBzb2x1dGlvbnMgZHJhZnRzPw0KPiBbS1ddIHdobyB3b3VsZCBmYXZvciBzb2x1dGlv
biAxLiBIdW1tLiAyLiBIdW1tIChtb3N0KS4gMy4gSHVtbQ0KMjEwLDIxMmMyMDksMjExDQo8IFtS
U10gRGlkbid0IHdlIGRvIHRoYXQgYWxyZWFkeT8gV2Ugc2VlbSBub3QgdG8gZ29pbmcgYW55d2hl
cmUgZm9yd2FyZCB3aXRoIHRoaXMgZGlzY3Vzc2lvbi4gV2UgZGlkIGNsYXJpZnkgd29yZGluZywg
YnV0IHRoYXQgaXMgbW9zdGx5IGl0LiBJdCBpcyBub3RoaW5nIGZvciBvcGVyYXRvciB0byBoZWxw
IHdpdGggY29uZmlndXJpbmcgYSBuZXR3b3JrLiBJcyBpdCBhIHBlcmZlY3Rpb24gcHJvYmxlbSBo
ZXJlPyBDYW4gd2UgcHJvZHVjZSBzb21ldGhpbmcgcHJhY3RpY2FsbHkgdXNlZnVsPw0KPCBbQ01d
IFRoZXJlIGFyZSBsYXJnZSBpbnN0YWxsYXRpb25zIGJhc2VkIG9uIGV4aXN0aW5nIFlBTkcgYW5k
IE5FVENPTkYgc3BlY2lmaWNhdGlvbnMuDQo8IFtSU10gSSB0YWtlIHRoYXQgaW50byBhY2NvdW50
LiBJIGhhdmUgbm9uZSBpbiBteSBuZXR3b3JrIHRob3VnaCB0aGF0IHVzZSBleGlzdGluZyBtb2Rl
bC4gSSBhbSBub3Qgc2F5aW5nIHRoYXQgd2Ugc2hvdWxkIHRocm93IGF3YXkgdGhlIGV4aXN0aW5n
IHNvbHV0aW9uIGluIGZhdm9yIG9mIHRoZSBmdXR1cmUgc29sdXRpb24uDQotLS0NCj4gW1J3XSBE
aWRuJ3Qgd2UgZG8gdGhhdCBhbHJlYWR5PyBXZSBzZWVtIG5vdCB0byBnb2luZyBhbnl3aGVyZSBm
b3J3YXJkIHdpdGggdGhpcyBkaXNjdXNzaW9uLiBXZSBkaWQgY2xhcmlmeSB3b3JkaW5nLCBidXQg
dGhhdCBpcyBtb3N0bHkgaXQuIEl0IGlzIG5vdGluZyBmb3Igb3BlcmF0b3IgdG8gaGVscCB3aXRo
IGNvbmZpZ3VyaW5nIGEgbmV0d29yay4gSXMgaXQgYSBwZXJmZWN0aW9uIHByb2JsZW0gaGVyZT8g
Q2FuIHdlIHByb2R1Y2Ugc29tZXRoaW5nIHByYWN0aWNhbGx5IHVzZWZ1bD8NCj4gW0NNXSBUaGVy
ZSBhcmUgbGFyZ2UgaW5zdGFsbGF0aW9ucyBiYXNlZCBvbiBleGlzdGluZyBZQU5HIHNwZWNpZmlj
YXRpb25zLg0KPiBbUlddIEkgdGFrZSB0aGF0IGludG8gYWNjb3VudC4gSSBoYXZlIG5vbmUgaW4g
bXkgbmV0d29yayB0aG91Z2ggdGhhdCB1c2UgZXhpc3RpbmcgbW9kZWwuIEkgYW0gbm90IHNheWlu
ZyB0aGF0IHdlIHNob3VsZCB0aHJvdyBhd2F5IHRoZSBleGlzdGluZyBzb2x1dGlvbiBpbiBmYXZv
ciBvZiB0aGUgZnV0dXJlIHNvbHV0aW9uLg0KMjE0YzIxMw0KPCBbQ0hdIFdlIGFyZSBub3QgZm9y
Y2luZyB0byBpbXBsZW1lbnQgc29tZSBwYXJ0aWN1bGFyIGRhdGEgc3RvcmUgdGVjaG5vbG9neS4g
VGhpcyBpcyBtb3JlIG9mIGEgd2F5IG9mIHRoaW5raW5nIG9mIGl0Lg0KLS0tDQo+IFtDSF0gV2Ug
YXJlIG5vdCBmb3JjaW5nIHRvIGltcGxlbWVudCBzb21lIHBhcnRpY3VsYXIgZGF0YSBzdG9yZSB0
ZWNobm9sb2d5LiBUaGlzIGlzIG1vcmUgb2YgYSB3YXkgb2YgdGhpbmtpbmcgb2YgaXQuDQoyMzJk
MjMwDQo8IFtLV10gW0h1bW1dICBJdCdzIGltcG9ydGFudC4NCjMxNCwzMTdjMzEyLDMxNQ0KPCBb
UlNdIGlmIHdlIHdhbnQgdG8gc2ltcGxpZnkgdGhpbmdzLCB3ZSBuZWVkIHRvIHJlbW92ZSBjaG9p
Y2UgY29tcGxldGVseS4gIEkgYW0gbm90IHByb3Bvc2luZyB0aGF0IHdlIGRvIHRoaXMuDQo8IFtN
Ql0gSSBhZ3JlZS4NCjwgW1JTXSB5b3UgbmVlZCB0byB0cmFjayB3aGljaCBicmFuY2ggZ2V0cyB1
c2VkLiBJdCBkb2VzIG5vdCBleHBsaWNpdGx5IHNob3cgaW4gdGhlIHRyZWUuIEFuZCBmb3IgdGhv
c2Ugd2hvIGRvIG5vdCBsaWtlIHRoZXkgY291bGQgbm90IGltcGxlbWVudCBpdC4NCjwgW01CXSBU
aGUgZGF0YSBtb2RlbCBkZXNpZ25lciBuZWVkcyB0byB1c2UgdGhlc2UgY29uc3RydWN0cyBjYXJl
ZnVsbHkuICAiY2hvaWNlIiBpcyBvZnRlbiB1c2VkIGluIHZlcnkgc21hbGwgdHJlZXMgb25seS4N
Ci0tLQ0KPiBbUlNdIGlmIHdlIHdhbnQgdG8gc2ltcGxpZnkgdGhpbmdzLCB3ZSBuZWVkIHRvIHJl
bW92ZSBjaG9pY2UgY29tcGxldGVseS4NCj4gW01CXSBMIHRoYXQgaXMgbGlrZWx5IGEgZ29vZCBp
ZGVhLg0KPiBbUlNdIHlvdSBuZWVkIHRvIHRyYWNrIHdoaWNoIGJyYW5jaCBnZXRzIHVzZWQuIEl0
IGRvZXMgbm90IGV4cGxpY2l0bHkgZG9lcyBub3Qgc2hvdyBpbiB0aGUgdHJlZS4gQW5kIGZvciB0
aG9zZSB3aG8gZG8gbm90IGxpa2UgdGhleSBjb3VsZCBub3QgaW1wbGVtZW50IGl0Lg0KPiBbTUJd
IG1heWJlIGl0IGlzIG9ubHkgYXBwbGljYWJsZSB0byB2ZXJ5IHNtYWxsIHRyZWVzIG9ubHkuDQo0
MDFjMzk5DQo8IFtSV10gVGhpcyBpcyBtb3JlIG9mIGEgbGFiZWwgb2YgdGhlIGludGVyZmFjZSB0
eXBlLg0KLS0tDQo+IFtSU10gV2lsdG9uICB0aGlzIGlzIG1vcmUgb2YgYSBsYWJlbCBvZiB0aGUg
aW50ZXJmYWNlIHR5cGUuDQo0MDMsNDA0YzQwMSw0MDINCjwgW1JXXSAgYXVnbWVudGF0aW9uIG5l
ZWRzIHRvIGJlIGluIHRoZSBzYW1lIG1vZHVsZSBhcyB0aGUgaWRlbnRpdHkgZGVmaW5pdGlvbi4N
CjwgW01CXSAgIHRoYXQgaXMgYSBzaWRlIGVmZmVjdCBvZiBhbGxvd2luZyBtYW5kYXRvcnkgYXVn
bWVudHMuDQotLS0NCj4gW1JTXSAgYXVnbWVudGF0aW9uIG5lZWRzIHRvIGJlIGluIHRoZSBzYW1l
ID8/DQo+IFtNQl0gICB0aGF0IGlzIGEgc2lkZSBlZmZlY3Qgb2YgYWxsb3dpbmcgbWFuZGF0b3J5
IGF1Z21lbnRzPw0KNDA2LDQxMGM0MDQsNDA3DQo8IFtLV10gW1N1cHBvcnQgaW5kaWNhdGVkXS4g
IE9LLCBnb29kLiAgV2lsbCBjb25maXJtIG9uIHRoZSBXRyBtYWlsaW5nIGxpc3QuDQo8IFtEUl0g
d2FpdGluZyBmb3IgSUVFRSA4MDIuMVEgV0cgY2hhaXIgLSB3aGF0IGlzIHRoYXQNCjwgW01KXSAg
R2xlbiB0aGlua3MgdGhhdCB0aGUgZXh0ZW5zaW9uIG9mIFZMQU4gWUFORyBtb2RlbCBzaG91bGQg
YmUgaGFwcGVuaW5nIHRoZXJlDQo8IFtSV10gQ29uY2VybiBpcyBvdmVybGFwIHdpdGggdGhlIDgw
Mi4xUSBZQU5HIG1vZGVsIGZvciBicmlkZ2VzLiAgQnV0IHRoaXMgbW9kZWwgZG9lc24ndCBvdmVy
bGFwIGJlY2F1c2UgaXQgaXQgb25seSBkZWZpbmVzIGFuIGludGVyZmFjZSBiYXNlZCBtb2RlbCBm
b3IgY2xhc3NpZmljYXRpb24uDQo8IFtEUl0gZG8geW91IGhhdmUgYW55IG1haWwgZXhjaGFuZ2Vz
IGZvciB0aGlzPyBNYXliZSB0aGlzIGNvdWxkIGJlIHJhaXNlZCBpbiBJRUVFIHBsZW5hcnkuIFBs
ZWFzZSBmb3J3YXJkIG1lIGFueSBlbWFpbHMgb24gdGhpcyBkaXNjdXNzaW9uLg0KLS0tDQo+IFtE
Ul0gd2FpdGluZyBmb3IgSUVFRSA4MDIuMVEgV0cgY2hhaXIgLSB3aGF0IGlzIHRoYXQ/DQo+IFtN
Sl0gIEdsZW4gdGhpbmtzIHRoYXQgdGhlIGV4dGVuc2lvbiBvZiBWTEFOIFlBTkcgbW9kZWwgc2hv
dWxkIGJlIGhhcHBlbmluZyB0aGVyZS4NCj4gW1JTXSAgdGhpcyBpcyByZWxhdGVkIHRvIG92ZXJs
YXBwaW5nIG9mIHRoZSBicmlkZ2luZyBtb2RlbCBpbXBsZW1lbnRhdGlvbj8NCj4gW0RSXSBkbyB5
b3UgaGF2ZSBhbnkgbWFpbCBleGNoYW5nZXMgZm9yIHRoaXM/IE1heWJlIHRoaXMgY291bGQgYmUg
cmFpc2VkIGluIElFRUUgcGxlbmFyeS4gUGxlYXNlIGZvcndhcmQgbWUgYW55IGVtYWlscyBvbiB0
aGlzIGRpc2N1c3Npb24NCg0KDQoNCkZyb206IFJvYmVydCBXaWx0b24gPHJ3aWx0b25AY2lzY28u
Y29tPG1haWx0bzpyd2lsdG9uQGNpc2NvLmNvbT4+DQpEYXRlOiBUdWVzZGF5LCBOb3ZlbWJlciAy
NCwgMjAxNSBhdCAxMTo1OSBBTQ0KVG86IEtlbnQgV2F0c2VuIDxrd2F0c2VuQGp1bmlwZXIubmV0
PG1haWx0bzprd2F0c2VuQGp1bmlwZXIubmV0Pj4sICJuZXRtb2RAaWV0Zi5vcmc8bWFpbHRvOm5l
dG1vZEBpZXRmLm9yZz4iIDxuZXRtb2RAaWV0Zi5vcmc8bWFpbHRvOm5ldG1vZEBpZXRmLm9yZz4+
DQpTdWJqZWN0OiBSZTogW25ldG1vZF0gZHJhZnQgbmV0bW9kIDk0IG1pbnV0ZXMgcG9zdGVkDQoN
CkhpIEtlbnQsDQoNCkkndmUgc29tZSBtaW5vciBtb2RpZmljYXRpb25zIG9mIHNvbWUgb2YgdGhl
IG1pbnV0ZXMsIG1haW5seSBqdXN0IHRvIGNsYXJpZnkgd2hvIHdhcyBhc2tpbmcgc29tZSBvZiB0
aGUgcXVlc3Rpb25zL2NvbW1lbnRzIChtb3N0bHkgYmV0d2VlbiBSb2IgU2hha2lyIGFuZCBteXNl
bGYpLCBidXQgYWxzbyBzb21lIG90aGVyIG1pbm9yIGNsYXJpZmljYXRpb25zIHdoZW4gSSB3YXMg
bGlzdGVuaW5nIGJhY2sgdG8gdGhlIGF1ZGlvLg0KDQpbQmVmb3JlXQ0KDQoxMCBtaW46IGRyYWZ0
LWlldGYtb3BlbmNvbmZpZy1uZXRtb2Qtb3BzdGF0ZS0wMSAgICAoQW5lZXMgU2hhaWtoIG9yIFtS
U10gU2hha2lyKQ0KUm9iIFNoYWtpciBwcmVzZW50aW5nLg0KW0xMXSBXb3VsZCBpdCBiZSBwb3Nz
aWJsZSB0byBoYXZlIG11bHRpcGxlIG1hbmFnZW1lbnQgaW50ZXJmYWNlcyAoTkVUQ09ORiwgUkVT
VE9ORiwgb3RoZXIpIC0gaXMgdGhlIGludGVuZGVkIGNvbmZpZ3VyYXRpb24gc3VwcG9zZWQgdG8g
YmUgcHJpdmF0ZSBwZXIgdHJhbnNwb3J0IHByb3RvY29sPw0KW1JTXSAgV291bGQgdGhpbmsgbm8u
IFRoZXJlIGlzIG9uZSBpbnRlbmRlZCBjb25maWd1cmF0aW9uIHBlciBkZXZpY2UuDQpbTExdIHRo
aXMgbWF5IGhhdmUgc29tZSBsb2NraW5nIGltcGxpY2F0aW9ucy4NCltUQ10gIFdoeSBkaWQgeW91
IGNob3NlIHRvIHVzZSBpbnRlbmRlZC9hcHBsaWVkIGFwcHJvYWNoPw0KW1JTXSAgVGhpcyBhbGxv
d3MgdXMgdG8gdXNlIFlBTkcgdG9kYXkuDQpbS1ddIHRoZXJlIHdlcmUgMyBzb2x1dGlvbnMgZHJh
ZnRzLg0KW1RDXSAgICB3ZSBhcmUgZG9pbmcgdGhlIHNhbWUgdGhpbmcgaW4gQkJGLCBhbmQgd291
bGQgbGlrZSB0byBtaW1pYyB0aGUgc29sdXRpb24gYWdyZWVkIGhlcmUuDQpbQVNdIFRoZXJlIGlz
IGEgc2VjdGlvbiBpIGEgZHJhZnQgdGhhdCBhZGRyZXNzZXMgdGhpcy4NCltMQl0gIEkgYW0gY29u
ZnVzZWQgb24gdGhlIHByb2Nlc3MgZm9yIHRoZSByZXF1aXJlbWVudHMuIFlvdSBzYWlkIHlvdSB3
aWxsIG1ha2UgY29uc2Vuc3VzIGNhbGwgZm9yIHJlcXVpcmVtZW50cyB0b2RheT8NCltLV10gd2Ug
d2lsbCBkbyBhIGNvbnNlbnN1cyBjYWxsIG9uIHNvbHV0aW9ucy4gSSBiZWxpZXZlIHRoZXJlIGlz
IGNvbnNlbnN1cyBvbiByZXF1aXJlbWVudHMuDQpbTEJdICBvbiBhIGxpc3QgdGhlcmUgd2FzIGEg
ZGlzY3Vzc2lvbiBvbiBwbGFubmluZyB0byBwb2xsIGZvciBjb25zZW5zdXMgYnV0IHRoYXQgZGlk
IG5vdCBzZWVtIHRvIGhhcHBlbi4NCltLV10gY29uZmlybWluZyBjb25zZW5zdXMgb24gcmVxdWly
ZW1lbnRzIG5vdyBieSBodW1taW5nIC0gY29uc2Vuc3VzIGFjaGlldmVkLg0KDQoNCltBZnRlcl0N
CjEwIG1pbjogZHJhZnQtaWV0Zi1vcGVuY29uZmlnLW5ldG1vZC1vcHN0YXRlLTAxICAgIChBbmVl
cyBTaGFpa2ggb3IgW1JTXSBTaGFraXIpDQpSb2IgU2hha2lyIHByZXNlbnRpbmcuDQpbTExdIFdv
dWxkIGl0IGJlIHBvc3NpYmxlIHRvIGhhdmUgbXVsdGlwbGUgbWFuYWdlbWVudCBpbnRlcmZhY2Vz
IChORVRDT05GLCBSRVNUT05GLCBvdGhlcikgLSBpcyB0aGUgaW50ZW5kZWQgY29uZmlndXJhdGlv
biBzdXBwb3NlZCB0byBiZSBwcml2YXRlIHBlciB0cmFuc3BvcnQgcHJvdG9jb2w/DQpbUlNdICBX
b3VsZCB0aGluayBuby4gVGhlcmUgaXMgb25lIGludGVuZGVkIGNvbmZpZ3VyYXRpb24gcGVyIGRl
dmljZS4NCltMTF0gdGhpcyBtYXkgaGF2ZSBzb21lIGxvY2tpbmcgaW1wbGljYXRpb25zLg0KW1RD
XSAgV2h5IGRpZCB5b3UgY2hvc2UgdG8gdXNlIGludGVuZGVkL2FwcGxpZWQgYXBwcm9hY2ggcmF0
aGVyIHRoYW4gdXNpbmcgZGF0YXN0b3Jlcz8NCltSU10gIDEuIE5vIHN1Y2ggdGhpbmcgYXMgYW4g
YXBwbGllZCBkYXRhc3RvcmUgdG9kYXkuICBUaGlzIHNvbHV0aW9uIGFsbG93cyB1cyB0byB1c2Ug
WUFORyB0b2RheS4gMi4gT3VyIHNvbHV0aW9uIGFsbG93cyBmb3IgYSBzaW5nbGUgcGF0aCB0aGF0
IGlzIG5vdCBkZXBlbmRlbnQgb24gdGhlIGRhdGFzdG9yZS4NCltLV10gdGhlcmUgd2VyZSAzIHNv
bHV0aW9ucyBkcmFmdHMuDQpbVENdICAgIHdlIGFyZSBkb2luZyB0aGUgc2FtZSB0aGluZyBpbiBC
QkYsIGFuZCB3b3VsZCBsaWtlIHRvIG1pbWljIHRoZSBzb2x1dGlvbiBhZ3JlZWQgaGVyZS4NCltB
U10gVGhlcmUgaXMgYSBzZWN0aW9uIGluIG91ciBkcmFmdCB0aGF0IGFkZHJlc3NlcyBzb21lIG9m
IHRoZXNlIHF1ZXN0aW9ucy4NCltMQl0gIEkgYW0gY29uZnVzZWQgb24gdGhlIHByb2Nlc3MgZm9y
IHRoZSByZXF1aXJlbWVudHMuIFlvdSBzYWlkIHlvdSB3aWxsIG1ha2UgY29uc2Vuc3VzIGNhbGwg
Zm9yIHJlcXVpcmVtZW50cyB0b2RheT8NCltLV10gd2Ugd2lsbCBkbyBhIGNvbnNlbnN1cyBjYWxs
IG9uIHNvbHV0aW9ucy4gSSBiZWxpZXZlIHRoZXJlIGlzIGNvbnNlbnN1cyBvbiByZXF1aXJlbWVu
dHMuDQpbTEJdICBvbiBhIGxpc3QgdGhlcmUgd2FzIGEgZGlzY3Vzc2lvbiBvbiBwbGFubmluZyB0
byBwb2xsIGZvciBjb25zZW5zdXMgYnV0IHRoYXQgZGlkIG5vdCBzZWVtIHRvIGhhcHBlbi4NCltL
V10gY29uZmlybWluZyBjb25zZW5zdXMgb24gcmVxdWlyZW1lbnRzIG5vdyBieSBodW1taW5nIC0g
Y29uc2Vuc3VzIGFjaGlldmVkLg0KDQoNCltCZWZvcmVdDQoNCjEwIG1pbjogb3RoZXIgc29sdXRp
b25zIGZvciB0aGUgb3BzdGF0ZS1yZXFzIChSb2JlcnQgV2lsdG9uKQ0KUm9iZXJ0IFdpbHRvbiBw
cmVzZW50aW5nLg0KW1JXXSAgbm8gY2hhbmdlcyB0byBleGlzdGluZyBZQU5HIG1vZGVscyAtIHRo
YXQgZG9lcyBub3Qgc2VlbSB0byBiZSBwcmFjdGljYWwuIFRoZXJlIGFyZSB2ZW5kb3IgZXh0ZW5z
aW9ucyBhbnl3YXkuDQpbUlddIFdpbHRvbiAgaWYgbW9kZWxzIGFyZSBzdGFuZGFyZGlzZWQgaW4g
SUVURiwgdGhleSBzaG91bGQgd29yayBpbiBhbGwgY2FzZXMuDQoNCltLV10gd2Ugd291bGQgbGlr
ZSB0byBrbm93IHdoaWNoIG9mIHRob3NlIHNvbHV0aW9ucyBzaG91bGQgcHJvZ3Jlc3MgZm9yd2Fy
ZC4NCltSd10gIHdvdWxkIGJlIG5pY2UgdG8gcG9pbCBmb3Igd2hvIGhhcyByZWFkIHRoZSBzb2x1
dGlvbnMgZHJhZnRzPw0KW0tXXSB3aG8gd291bGQgZmF2b3Igc29sdXRpb24gMS4gSHVtbS4gMi4g
SHVtbSAobW9zdCkuIDMuIEh1bW0NCltLV10gRG9lcyBhbnlvbmUgb2JqZWN0IHRvIHNvbHV0aW9u
IDI/IFBsZWFzZSBnbyB0byBtaWtlPw0KW1J3XSAgRGlkbid0IHdlIGRvIHRoYXQgYWxyZWFkeT8g
V2Ugc2VlbSBub3QgdG8gZ29pbmcgYW55d2hlcmUgZm9yd2FyZCB3aXRoIHRoaXMgZGlzY3Vzc2lv
bi4gV2UgZGlkIGNsYXJpZnkgd29yZGluZywgYnV0IHRoYXQgaXMgbW9zdGx5IGl0LiBJdCBpcyBu
b3RpbmcgZm9yIG9wZXJhdG9yIHRvIGhlbHAgd2l0aCBjb25maWd1cmluZyBhIG5ldHdvcmsuIElz
IGl0IGEgcGVyZmVjdGlvbiBwcm9ibGVtIGhlcmU/IENhbiB3ZSBwcm9kdWNlIHNvbWV0aGluZyBw
cmFjdGljYWxseSB1c2VmdWw/DQpbQ01dIFRoZXJlIGFyZSBsYXJnZSBpbnN0YWxsYXRpb25zIGJh
c2VkIG9uIGV4aXN0aW5nIFlBTkcgc3BlY2lmaWNhdGlvbnMuDQpbUlddICAgIEkgdGFrZSB0aGF0
IGludG8gYWNjb3VudC4gSSBoYXZlIG5vbmUgaW4gbXkgbmV0d29yayB0aG91Z2ggdGhhdCB1c2Ug
ZXhpc3RpbmcgbW9kZWwuIEkgYW0gbm90IHNheWluZyB0aGF0IHdlIHNob3VsZCB0aHJvdyBhd2F5
IHRoZSBleGlzdGluZyBzb2x1dGlvbiBpbiBmYXZvciBvZiB0aGUgZnV0dXJlIHNvbHV0aW9uLg0K
W0NNXSBUaGVyZSBpcyBhIHRlY2hub2xvZ3kgc2hpZnQuDQpbQ0hdIFdlIGFyZSBub3QgZm9yY2lu
ZyB0byBpbXBsZW1lbnQgc29tZSBwYXJ0aWN1bGFyIGRhdGEgc3RvcmUgdGVjaG5vbG9neS4gVGhp
cyBpcyBtb3JlIG9mIGEgd2F5IG9mIHRoaW5raW5nIG9mIGl0Lg0KDQoNCltBZnRlcl0NCjEwIG1p
bjogb3RoZXIgc29sdXRpb25zIGZvciB0aGUgb3BzdGF0ZS1yZXFzIChSb2JlcnQgV2lsdG9uKQ0K
Um9iZXJ0IFdpbHRvbiBwcmVzZW50aW5nLg0KW1JTXSBObyBjaGFuZ2VzIHRvIGV4aXN0aW5nIFlB
TkcgbW9kZWxzIC0gdGhhdCBkb2VzIG5vdCBzZWVtIHRvIGJlIHByYWN0aWNhbC4gVGhlcmUgYXJl
IHZlbmRvciBleHRlbnNpb25zIGFueXdheS4NCltSV10gICBpZiBtb2RlbHMgYXJlIHN0YW5kYXJk
aXNlZCBpbiBJRVRGLCB0aGV5IHNob3VsZCB3b3JrIGluIGFsbCBjYXNlcy4NCg0KW0tXXSB3ZSB3
b3VsZCBsaWtlIHRvIGtub3cgd2hpY2ggb2YgdGhvc2Ugc29sdXRpb25zIHNob3VsZCBwcm9ncmVz
cyBmb3J3YXJkLg0KW1JTXSBXb3VsZCBiZSBuaWNlIHRvIHBvbGwgZm9yIHdobyBoYXMgcmVhZCB0
aGUgc29sdXRpb25zIGRyYWZ0cz8NCltLV10gW1Nob3cgb2YgaGFuZHNdIEFib3V0IGhhbGYgdGhl
IHJvb20gaGF2ZSByZWFkIHRoZSB0aHJlZSBkcmFmdHMuDQpbS1ddIFdobyB3b3VsZCBmYXZvciBz
b2x1dGlvbiAxLiBIdW1tLiAyLiBIdW1tIChtb3N0KS4gMy4gSHVtbQ0KW0tXXSBEb2VzIGFueW9u
ZSBvYmplY3QgdG8gc29sdXRpb24gMj8gUGxlYXNlIGdvIHRvIG1pa2U/DQpbUlNdICBEaWRuJ3Qg
d2UgZG8gdGhhdCBhbHJlYWR5PyBXZSBzZWVtIG5vdCB0byBnb2luZyBhbnl3aGVyZSBmb3J3YXJk
IHdpdGggdGhpcyBkaXNjdXNzaW9uLiBXZSBkaWQgY2xhcmlmeSB3b3JkaW5nLCBidXQgdGhhdCBp
cyBtb3N0bHkgaXQuIEl0IGlzIG5vdGhpbmcgZm9yIG9wZXJhdG9yIHRvIGhlbHAgd2l0aCBjb25m
aWd1cmluZyBhIG5ldHdvcmsuIElzIGl0IGEgcGVyZmVjdGlvbiBwcm9ibGVtIGhlcmU/IENhbiB3
ZSBwcm9kdWNlIHNvbWV0aGluZyBwcmFjdGljYWxseSB1c2VmdWw/DQpbQ01dIFRoZXJlIGFyZSBs
YXJnZSBpbnN0YWxsYXRpb25zIGJhc2VkIG9uIGV4aXN0aW5nIFlBTkcgYW5kIE5FVENPTkYgc3Bl
Y2lmaWNhdGlvbnMuDQpbUlNdICAgIEkgdGFrZSB0aGF0IGludG8gYWNjb3VudC4gSSBoYXZlIG5v
bmUgaW4gbXkgbmV0d29yayB0aG91Z2ggdGhhdCB1c2UgZXhpc3RpbmcgbW9kZWwuIEkgYW0gbm90
IHNheWluZyB0aGF0IHdlIHNob3VsZCB0aHJvdyBhd2F5IHRoZSBleGlzdGluZyBzb2x1dGlvbiBp
biBmYXZvciBvZiB0aGUgZnV0dXJlIHNvbHV0aW9uLg0KW0NNXSBUaGVyZSBpcyBhIHRlY2hub2xv
Z3kgc2hpZnQuDQpbQ0hdIFdlIGFyZSBub3QgZm9yY2luZyB0byBpbXBsZW1lbnQgc29tZSBwYXJ0
aWN1bGFyIGRhdGEgc3RvcmUgdGVjaG5vbG9neS4gVGhpcyBpcyBtb3JlIG9mIGEgd2F5IG9mIHRo
aW5raW5nIG9mIGl0Lg0KDQoNCltCZWZvcmVdDQoNCjEwIG1pbjogZHJhZnQtb3BlbmNvbmZpZy1u
ZXRtb2QtbW9kZWwtY2F0YWxvZy0wMCAgIChBbmVlcyBTaGFpa2gpDQpBbmVlcyBTaGFpa2ggcHJl
c2VudGluZy4NCi4uLg0KW0tXXSBNYXliZSBJRVRGIHRvb2xzIGNvdWxkIGhvc3QgdGhpcyB0b28u
DQpbS1ddIHBsZWFzZSBodW0gaWYgdGhpcyBpcyBpbXBvcnRhbnQgd29yay4NCg0KDQpbQWZ0ZXJd
DQoxMCBtaW46IGRyYWZ0LW9wZW5jb25maWctbmV0bW9kLW1vZGVsLWNhdGFsb2ctMDAgICAoQW5l
ZXMgU2hhaWtoKQ0KQW5lZXMgU2hhaWtoIHByZXNlbnRpbmcuDQouLi4NCltLV10gcGxlYXNlIGh1
bSBpZiB0aGlzIGlzIGltcG9ydGFudCB3b3JrLg0KW0tXXSBbSHVtbV0gIEl0J3MgaW1wb3J0YW50
Lg0KDQoNCltCZWZvcmVdDQoNCjUgbWluOiBkcmFmdC13aWx0b24tbmV0bW9kLWludGYtZXh0LXlh
bmctMDEgIChSb2JlcnQgV2lsdG9uKQ0KTW92ZWQgZnJvbSBtb3JuaW5nIHNlc3Npb24uDQpSb2Jl
cnQgV2lsdG9uIHByZXNlbnRpbmcuDQpbTExdIEkgdGhpbmsgdGhpcyBpcyByZWFsbHkgbmVjZXNz
YXJ5IHRvIGRvLCBhbmQgdGhhdCBpcyBvbmUgb2YgdGhlIHJlYXNvbnMgd2h5IGRlcml2ZSBmdW5j
dGlvbmFsaXR5IHdhcyBpbnRyb2R1Y2VkLiBbSUZdIGFpZnQgdHlwZXMgc2VydmVkIHB1cnBvc2Vz
IGZvciBTTk1QIE1JQnMuIEkgZG8gbm90IHByb3Bvc2UgdG8gb2Jzb2xldGUgdGhlc2UgdHlwZXMu
IFdlIGxpa2VseSBuZWVkIGEgdHJlZSBvZiBpZGVudGl0aWVzIHRoYXQgY291bGQgYmUgdXNlZC4N
CltSU10gV2lsdG9uICB0aGlzIGlzIG1vcmUgb2YgYSBsYWJlbCBvZiB0aGUgaW50ZXJmYWNlIHR5
cGUuDQpbTUJdICAgVGhpcyBzZWVtcyB0byBiZSBhIG5pY2UgaWRlYS4gRGVmaW5pbmcgdGhlc2Ug
aWRlbnRpdGllcyB0aGF0IGRlZmluZSB0aGUgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugc2VlbXMg
dXNlZnVsLCBhbmQgdGhlbiBkZXJpdmUgdGhlIGFjdHVhbCBpbnRlcmZhY2UgaWRlbnRpdGllcyBm
cm9tIHRob3NlIGludGVyZmFjZSB0ZWNobm9sb2d5IHR5cGUgaWRlbnRpdGllcy4gTWF5YmUgcHJv
cGVydHkgaWRlbnRpdGllcyBjb3VsZCBiZSBhIHNlcGFyYXRlIG1vZGVsLg0KW1JTXSAgYXVnbWVu
dGF0aW9uIG5lZWRzIHRvIGJlIGluIHRoZSBzYW1lID8/DQpbTUJdICAgdGhhdCBpcyBhIHNpZGUg
ZWZmZWN0IG9mIGFsbG93aW5nIG1hbmRhdG9yeSBhdWdtZW50cz8NCltLV10gd2hvIGhhcyByZWFk
IHRoZSBkcmFmdCAgfjEwLiBXaG8gc3VwcG9ydHMgdGhlIGludGVyZmFjZSBleHRlbnNpb24gYmVp
bmcgYWRvcHRlZD8NCltEUl0gd2FpdGluZyBmb3IgSUVFRSA4MDIuMVEgV0cgY2hhaXIgLSB3aGF0
IGlzIHRoYXQ/DQpbTUpdICBHbGVuIHRoaW5rcyB0aGF0IHRoZSBleHRlbnNpb24gb2YgVkxBTiBZ
QU5HIG1vZGVsIHNob3VsZCBiZSBoYXBwZW5pbmcgdGhlcmUuDQpbUlNdICB0aGlzIGlzIHJlbGF0
ZWQgdG8gb3ZlcmxhcHBpbmcgb2YgdGhlIGJyaWRnaW5nIG1vZGVsIGltcGxlbWVudGF0aW9uPw0K
W0RSXSBkbyB5b3UgaGF2ZSBhbnkgbWFpbCBleGNoYW5nZXMgZm9yIHRoaXM/IE1heWJlIHRoaXMg
Y291bGQgYmUgcmFpc2VkIGluIElFRUUgcGxlbmFyeS4gUGxlYXNlIGZvcndhcmQgbWUgYW55IGVt
YWlscyBvbiB0aGlzIGRpc2N1c3Npb24uDQoNCg0KW0FmdGVyXQ0KDQo1IG1pbjogZHJhZnQtd2ls
dG9uLW5ldG1vZC1pbnRmLWV4dC15YW5nLTAxICAoUm9iZXJ0IFdpbHRvbikNCk1vdmVkIGZyb20g
bW9ybmluZyBzZXNzaW9uLg0KUm9iZXJ0IFdpbHRvbiBwcmVzZW50aW5nLg0KW0xMXSBJIHRoaW5r
IHRoaXMgaXMgcmVhbGx5IG5lY2Vzc2FyeSB0byBkbywgYW5kIHRoYXQgaXMgb25lIG9mIHRoZSBy
ZWFzb25zIHdoeSBkZXJpdmUgZnVuY3Rpb25hbGl0eSB3YXMgaW50cm9kdWNlZC4gW0lGXSBhaWZ0
IHR5cGVzIHNlcnZlZCBwdXJwb3NlcyBmb3IgU05NUCBNSUJzLiBJIGRvIG5vdCBwcm9wb3NlIHRv
IG9ic29sZXRlIHRoZXNlIHR5cGVzLiBXZSBsaWtlbHkgbmVlZCBhIHRyZWUgb2YgaWRlbnRpdGll
cyB0aGF0IGNvdWxkIGJlIHVzZWQuDQpbUlddIFRoaXMgaXMgbW9yZSBvZiBhIGxhYmVsIG9mIHRo
ZSBpbnRlcmZhY2UgdHlwZS4NCltNQl0gICBUaGlzIHNlZW1zIHRvIGJlIGEgbmljZSBpZGVhLiBE
ZWZpbmluZyB0aGVzZSBpZGVudGl0aWVzIHRoYXQgZGVmaW5lIHRoZSBwcm9wZXJ0aWVzIG9mIGlu
dGVyZmFjZSBzZWVtcyB1c2VmdWwsIGFuZCB0aGVuIGRlcml2ZSB0aGUgYWN0dWFsIGludGVyZmFj
ZSBpZGVudGl0aWVzIGZyb20gdGhvc2UgaW50ZXJmYWNlIHRlY2hub2xvZ3kgdHlwZSBpZGVudGl0
aWVzLiBNYXliZSBwcm9wZXJ0eSBpZGVudGl0aWVzIGNvdWxkIGJlIGEgc2VwYXJhdGUgbW9kZWwu
DQpbUlddICBhdWdtZW50YXRpb24gbmVlZHMgdG8gYmUgaW4gdGhlIHNhbWUgbW9kdWxlIGFzIHRo
ZSBpZGVudGl0eSBkZWZpbml0aW9uLg0KW01CXSAgIHRoYXQgaXMgYSBzaWRlIGVmZmVjdCBvZiBh
bGxvd2luZyBtYW5kYXRvcnkgYXVnbWVudHMuDQpbS1ddIHdobyBoYXMgcmVhZCB0aGUgZHJhZnQg
IH4xMC4gV2hvIHN1cHBvcnRzIHRoZSBpbnRlcmZhY2UgZXh0ZW5zaW9uIGJlaW5nIGFkb3B0ZWQ/
DQpbS1ddIFtTdXBwb3J0IGluZGljYXRlZF0uICBPSywgZ29vZC4gIFdpbGwgY29uZmlybSBvbiB0
aGUgV0cgbWFpbGluZyBsaXN0Lg0KW0RSXSB3YWl0aW5nIGZvciBJRUVFIDgwMi4xUSBXRyBjaGFp
ciAtIHdoYXQgaXMgdGhhdD8NCltNSl0gIEdsZW4gdGhpbmtzIHRoYXQgdGhlIGV4dGVuc2lvbiBv
ZiBWTEFOIFlBTkcgbW9kZWwgc2hvdWxkIGJlIGhhcHBlbmluZyB0aGVyZS4NCltSV10gQ29uY2Vy
biBpcyBvdmVybGFwIHdpdGggdGhlIDgwMi4xUSBZQU5HIG1vZGVsIGZvciBicmlkZ2VzLiAgQnV0
IHRoaXMgbW9kZWwgZG9lc24ndCBvdmVybGFwIGJlY2F1c2UgaXQgaXQgb25seSBkZWZpbmVzIGFu
IGludGVyZmFjZSBiYXNlZCBtb2RlbCBmb3IgY2xhc3NpZmljYXRpb24uDQpbRFJdIGRvIHlvdSBo
YXZlIGFueSBtYWlsIGV4Y2hhbmdlcyBmb3IgdGhpcz8gTWF5YmUgdGhpcyBjb3VsZCBiZSByYWlz
ZWQgaW4gSUVFRSBwbGVuYXJ5LiBQbGVhc2UgZm9yd2FyZCBtZSBhbnkgZW1haWxzIG9uIHRoaXMg
ZGlzY3Vzc2lvbi4NCg0KDQpUaGFua3MsDQpSb2INCg0KDQpPbiAxNy8xMS8yMDE1IDE4OjMyLCBL
ZW50IFdhdHNlbiB3cm90ZToNCg0KQWxsLA0KDQpUaGUgbWludXRlcyBmb3IgdGhlIHR3byBORVRN
T0Qgc2Vzc2lvbnMgaGF2ZSBiZWVuIHBvc3RlZDoNCg0KICAgIGh0dHBzOi8vd3d3LmlldGYub3Jn
L3Byb2NlZWRpbmdzLzk0L21pbnV0ZXMvbWludXRlcy05NC1uZXRtb2QNCg0KUGxlYXNlIHByb3Zp
ZGUgY29tbWVudHMvY29ycmVjdGlvbnMgb24gdGhlc2UgZHJhZnQgbWludXRlcyBieSBXZWQsIE5v
diAyNXRoLg0KDQpQUzogaHVnZSB0aGFua3MgdG8gSWduYXMgYW5kIEFuZHJldyBmb3IgcHV0dGlu
ZyB0aGVzZSB0b2dldGhlciENCg0KVGhhbmtzLA0KS2VudA0KDQoNCg0KDQpfX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KbmV0bW9kIG1haWxpbmcgbGlzdA0K
bmV0bW9kQGlldGYub3JnPG1haWx0bzpuZXRtb2RAaWV0Zi5vcmc+aHR0cHM6Ly93d3cuaWV0Zi5v
cmcvbWFpbG1hbi9saXN0aW5mby9uZXRtb2QNCg0K

--_000_289891D550254CA7AE79F5B2A0291016junipernet_
Content-Type: text/html; charset="utf-8"
Content-ID: <16CF2600C8F0274FBFFE182A4CC7CCAE@namprd05.prod.outlook.com>
Content-Transfer-Encoding: base64

PGh0bWw+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0i
dGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjwvaGVhZD4NCjxib2R5IHN0eWxlPSJ3b3JkLXdy
YXA6IGJyZWFrLXdvcmQ7IC13ZWJraXQtbmJzcC1tb2RlOiBzcGFjZTsgLXdlYmtpdC1saW5lLWJy
ZWFrOiBhZnRlci13aGl0ZS1zcGFjZTsgY29sb3I6IHJnYigwLCAwLCAwKTsgZm9udC1zaXplOiAx
NHB4OyBmb250LWZhbWlseTogQ2FsaWJyaSwgc2Fucy1zZXJpZjsiPg0KPGRpdj4NCjxkaXY+DQo8
ZGl2Pjxicj4NCjwvZGl2Pg0KPGRpdj5BbGwsPC9kaXY+DQo8ZGl2Pjxicj4NCjwvZGl2Pg0KPGRp
dj5JIGhhdmUgY29tcGlsZWQgTWFydGluIGFuZCBSb2JlcnTigJlzIHVwZGF0ZXMgaW50byB0aGUg
YXR0YWNoZWQgZmlsZSwgYW5kIGJlbG93IGlzIHRoZSBkaWZmLiAmbmJzcDtBcyBmYXIgYXMgSSBj
YW4gdGVsbCwgdGhlc2UgdXBkYXRlcyBhcmUgYWxsIHdlbGwgYW5kIGdvb2QuICZuYnNwOyBUaGFu
ayB5b3UgTWFydGluIGFuZCBSb2JlcnQuPC9kaXY+DQo8ZGl2Pjxicj4NCjwvZGl2Pg0KPGRpdj5H
aXZlbiB0aGF0IGl04oCZcyBhIGhvbGlkYXkgaW4gdGhlIFN0YXRlcywgcGxlYXNlIHNlbmQgYW55
IGZpbmFsIGNvcnJlY3Rpb25zIGJ5IE1vbmRheSwgTm92IDMwdGguPC9kaXY+DQo8ZGl2Pjxicj4N
CjwvZGl2Pg0KPGRpdj5LZW50PC9kaXY+DQo8ZGl2Pjxicj4NCjwvZGl2Pg0KPGRpdj48YnI+DQo8
L2Rpdj4NCjxkaXY+IyBkaWZmIG1pbnV0ZXMtOTQtbmV0bW9kLW5ldy50eHQgbWludXRlcy05NC1u
ZXRtb2QudHh0Jm5ic3A7PC9kaXY+DQo8ZGl2PjE5MCwxOTFjMTkwLDE5MTwvZGl2Pg0KPGRpdj4m
bHQ7IFtUQ10gV2h5IGRpZCB5b3UgY2hvc2UgdG8gdXNlIGludGVuZGVkL2FwcGxpZWQgYXBwcm9h
Y2ggcmF0aGVyIHRoYW4gdXNpbmcgZGF0YXN0b3Jlcz88L2Rpdj4NCjxkaXY+Jmx0OyBbUlNdIDEu
IE5vIHN1Y2ggdGhpbmcgYXMgYW4gYXBwbGllZCBkYXRhc3RvcmUgdG9kYXkuICZuYnNwO1RoaXMg
c29sdXRpb24gYWxsb3dzIHVzIHRvIHVzZSBZQU5HIHRvZGF5LiAyLiBPdXIgc29sdXRpb24gYWxs
b3dzIGZvciBhIHNpbmdsZSBwYXRoIHRoYXQgaXMgbm90IGRlcGVuZGVudCBvbiB0aGUgZGF0YXN0
b3JlLjwvZGl2Pg0KPGRpdj4tLS08L2Rpdj4NCjxkaXY+Jmd0OyBbVENdIFdoeSBkaWQgeW91IGNo
b3NlIHRvIHVzZSBpbnRlbmRlZC9hcHBsaWVkIGFwcHJvYWNoPzwvZGl2Pg0KPGRpdj4mZ3Q7IFtS
U10gVGhpcyBhbGxvd3MgdXMgdG8gdXNlIFlBTkcgdG9kYXkuPC9kaXY+DQo8ZGl2PjE5NGMxOTQ8
L2Rpdj4NCjxkaXY+Jmx0OyBbQVNdIFRoZXJlIGlzIGEgc2VjdGlvbiBpbiBvdXIgZHJhZnQgdGhh
dCBhZGRyZXNzZXMgc29tZSBvZiB0aGVzZSBxdWVzdGlvbnMuPC9kaXY+DQo8ZGl2Pi0tLTwvZGl2
Pg0KPGRpdj4mZ3Q7IFtBU10gVGhlcmUgaXMgYSBzZWN0aW9uIGkgYSBkcmFmdCB0aGF0IGFkZHJl
c3NlcyB0aGlzLjwvZGl2Pg0KPGRpdj4yMDMsMjA0YzIwMywyMDQ8L2Rpdj4NCjxkaXY+Jmx0OyBb
UlNdIE5vIGNoYW5nZXMgdG8gZXhpc3RpbmcgWUFORyBtb2RlbHMgLSB0aGF0IGRvZXMgbm90IHNl
ZW0gdG8gYmUgcHJhY3RpY2FsLiBUaGVyZSBhcmUgdmVuZG9yIGV4dGVuc2lvbnMgYW55d2F5Ljwv
ZGl2Pg0KPGRpdj4mbHQ7IFtSV10gaWYgbW9kZWxzIGFyZSBzdGFuZGFyZGlzZWQgaW4gSUVURiwg
dGhleSBzaG91bGQgd29yayBpbiBhbGwgY2FzZXMuPC9kaXY+DQo8ZGl2Pi0tLTwvZGl2Pg0KPGRp
dj4mZ3Q7IFtSV10gJm5ic3A7bm8gY2hhbmdlcyB0byBleGlzdGluZyBZQU5HIG1vZGVscyAtIHRo
YXQgZG9lcyBub3Qgc2VlbSB0byBiZSBwcmFjdGljYWwuIFRoZXJlIGFyZSB2ZW5kb3IgZXh0ZW5z
aW9ucyBhbnl3YXkuPC9kaXY+DQo8ZGl2PiZndDsgW1JXXSBXaWx0b24gJm5ic3A7aWYgbW9kZWxz
IGFyZSBzdGFuZGFyZGlzZWQgaW4gSUVURiwgdGhleSBzaG91bGQgd29yayBpbiBhbGwgY2FzZXMu
PC9kaXY+DQo8ZGl2PjIwNiwyMDhjMjA2LDIwNzwvZGl2Pg0KPGRpdj4mbHQ7IFtSU10gV291bGQg
YmUgbmljZSB0byBwb2xsIGZvciB3aG8gaGFzIHJlYWQgdGhlIHNvbHV0aW9ucyBkcmFmdHM/PC9k
aXY+DQo8ZGl2PiZsdDsgW0tXXSBbU2hvdyBvZiBoYW5kc10gQWJvdXQgaGFsZiB0aGUgcm9vbSBo
YXZlIHJlYWQgdGhlIHRocmVlIGRyYWZ0cy48L2Rpdj4NCjxkaXY+Jmx0OyBbS1ddIFdobyB3b3Vs
ZCBmYXZvciBzb2x1dGlvbiAxLiBIdW1tLiAyLiBIdW1tIChtb3N0KS4gMy4gSHVtbTwvZGl2Pg0K
PGRpdj4tLS08L2Rpdj4NCjxkaXY+Jmd0OyBbUlddIHdvdWxkIGJlIG5pY2UgdG8gcG9pbCBmb3Ig
d2hvIGhhcyByZWFkIHRoZSBzb2x1dGlvbnMgZHJhZnRzPzwvZGl2Pg0KPGRpdj4mZ3Q7IFtLV10g
d2hvIHdvdWxkIGZhdm9yIHNvbHV0aW9uIDEuIEh1bW0uIDIuIEh1bW0gKG1vc3QpLiAzLiBIdW1t
PC9kaXY+DQo8ZGl2PjIxMCwyMTJjMjA5LDIxMTwvZGl2Pg0KPGRpdj4mbHQ7IFtSU10gRGlkbid0
IHdlIGRvIHRoYXQgYWxyZWFkeT8gV2Ugc2VlbSBub3QgdG8gZ29pbmcgYW55d2hlcmUgZm9yd2Fy
ZCB3aXRoIHRoaXMgZGlzY3Vzc2lvbi4gV2UgZGlkIGNsYXJpZnkgd29yZGluZywgYnV0IHRoYXQg
aXMgbW9zdGx5IGl0LiBJdCBpcyBub3RoaW5nIGZvciBvcGVyYXRvciB0byBoZWxwIHdpdGggY29u
ZmlndXJpbmcgYSBuZXR3b3JrLiBJcyBpdCBhIHBlcmZlY3Rpb24gcHJvYmxlbSBoZXJlPyBDYW4g
d2UgcHJvZHVjZQ0KIHNvbWV0aGluZyBwcmFjdGljYWxseSB1c2VmdWw/PC9kaXY+DQo8ZGl2PiZs
dDsgW0NNXSBUaGVyZSBhcmUgbGFyZ2UgaW5zdGFsbGF0aW9ucyBiYXNlZCBvbiBleGlzdGluZyBZ
QU5HIGFuZCBORVRDT05GIHNwZWNpZmljYXRpb25zLjwvZGl2Pg0KPGRpdj4mbHQ7IFtSU10gSSB0
YWtlIHRoYXQgaW50byBhY2NvdW50LiBJIGhhdmUgbm9uZSBpbiBteSBuZXR3b3JrIHRob3VnaCB0
aGF0IHVzZSBleGlzdGluZyBtb2RlbC4gSSBhbSBub3Qgc2F5aW5nIHRoYXQgd2Ugc2hvdWxkIHRo
cm93IGF3YXkgdGhlIGV4aXN0aW5nIHNvbHV0aW9uIGluIGZhdm9yIG9mIHRoZSBmdXR1cmUgc29s
dXRpb24uPC9kaXY+DQo8ZGl2Pi0tLTwvZGl2Pg0KPGRpdj4mZ3Q7IFtSd10gRGlkbid0IHdlIGRv
IHRoYXQgYWxyZWFkeT8gV2Ugc2VlbSBub3QgdG8gZ29pbmcgYW55d2hlcmUgZm9yd2FyZCB3aXRo
IHRoaXMgZGlzY3Vzc2lvbi4gV2UgZGlkIGNsYXJpZnkgd29yZGluZywgYnV0IHRoYXQgaXMgbW9z
dGx5IGl0LiBJdCBpcyBub3RpbmcgZm9yIG9wZXJhdG9yIHRvIGhlbHAgd2l0aCBjb25maWd1cmlu
ZyBhIG5ldHdvcmsuIElzIGl0IGEgcGVyZmVjdGlvbiBwcm9ibGVtIGhlcmU/IENhbiB3ZSBwcm9k
dWNlIHNvbWV0aGluZw0KIHByYWN0aWNhbGx5IHVzZWZ1bD88L2Rpdj4NCjxkaXY+Jmd0OyBbQ01d
IFRoZXJlIGFyZSBsYXJnZSBpbnN0YWxsYXRpb25zIGJhc2VkIG9uIGV4aXN0aW5nIFlBTkcgc3Bl
Y2lmaWNhdGlvbnMuPC9kaXY+DQo8ZGl2PiZndDsgW1JXXSBJIHRha2UgdGhhdCBpbnRvIGFjY291
bnQuIEkgaGF2ZSBub25lIGluIG15IG5ldHdvcmsgdGhvdWdoIHRoYXQgdXNlIGV4aXN0aW5nIG1v
ZGVsLiBJIGFtIG5vdCBzYXlpbmcgdGhhdCB3ZSBzaG91bGQgdGhyb3cgYXdheSB0aGUgZXhpc3Rp
bmcgc29sdXRpb24gaW4gZmF2b3Igb2YgdGhlIGZ1dHVyZSBzb2x1dGlvbi48L2Rpdj4NCjxkaXY+
MjE0YzIxMzwvZGl2Pg0KPGRpdj4mbHQ7IFtDSF0gV2UgYXJlIG5vdCBmb3JjaW5nIHRvIGltcGxl
bWVudCBzb21lIHBhcnRpY3VsYXIgZGF0YSBzdG9yZSB0ZWNobm9sb2d5LiBUaGlzIGlzIG1vcmUg
b2YgYSB3YXkgb2YgdGhpbmtpbmcgb2YgaXQuJm5ic3A7PC9kaXY+DQo8ZGl2Pi0tLTwvZGl2Pg0K
PGRpdj4mZ3Q7IFtDSF0gV2UgYXJlIG5vdCBmb3JjaW5nIHRvIGltcGxlbWVudCBzb21lIHBhcnRp
Y3VsYXIgZGF0YSBzdG9yZSB0ZWNobm9sb2d5LiBUaGlzIGlzIG1vcmUgb2YgYSB3YXkgb2YgdGhp
bmtpbmcgb2YgaXQuPC9kaXY+DQo8ZGl2PjIzMmQyMzA8L2Rpdj4NCjxkaXY+Jmx0OyBbS1ddIFtI
dW1tXSAmbmJzcDtJdCdzIGltcG9ydGFudC48L2Rpdj4NCjxkaXY+MzE0LDMxN2MzMTIsMzE1PC9k
aXY+DQo8ZGl2PiZsdDsgW1JTXSBpZiB3ZSB3YW50IHRvIHNpbXBsaWZ5IHRoaW5ncywgd2UgbmVl
ZCB0byByZW1vdmUgY2hvaWNlIGNvbXBsZXRlbHkuICZuYnNwO0kgYW0gbm90IHByb3Bvc2luZyB0
aGF0IHdlIGRvIHRoaXMuPC9kaXY+DQo8ZGl2PiZsdDsgW01CXSBJIGFncmVlLjwvZGl2Pg0KPGRp
dj4mbHQ7IFtSU10geW91IG5lZWQgdG8gdHJhY2sgd2hpY2ggYnJhbmNoIGdldHMgdXNlZC4gSXQg
ZG9lcyBub3QgZXhwbGljaXRseSBzaG93IGluIHRoZSB0cmVlLiBBbmQgZm9yIHRob3NlIHdobyBk
byBub3QgbGlrZSB0aGV5IGNvdWxkIG5vdCBpbXBsZW1lbnQgaXQuPC9kaXY+DQo8ZGl2PiZsdDsg
W01CXSBUaGUgZGF0YSBtb2RlbCBkZXNpZ25lciBuZWVkcyB0byB1c2UgdGhlc2UgY29uc3RydWN0
cyBjYXJlZnVsbHkuICZuYnNwOyZxdW90O2Nob2ljZSZxdW90OyBpcyBvZnRlbiB1c2VkIGluIHZl
cnkgc21hbGwgdHJlZXMgb25seS48L2Rpdj4NCjxkaXY+LS0tPC9kaXY+DQo8ZGl2PiZndDsgW1JT
XSBpZiB3ZSB3YW50IHRvIHNpbXBsaWZ5IHRoaW5ncywgd2UgbmVlZCB0byByZW1vdmUgY2hvaWNl
IGNvbXBsZXRlbHkuPC9kaXY+DQo8ZGl2PiZndDsgW01CXSBMIHRoYXQgaXMgbGlrZWx5IGEgZ29v
ZCBpZGVhLjwvZGl2Pg0KPGRpdj4mZ3Q7IFtSU10geW91IG5lZWQgdG8gdHJhY2sgd2hpY2ggYnJh
bmNoIGdldHMgdXNlZC4gSXQgZG9lcyBub3QgZXhwbGljaXRseSBkb2VzIG5vdCBzaG93IGluIHRo
ZSB0cmVlLiBBbmQgZm9yIHRob3NlIHdobyBkbyBub3QgbGlrZSB0aGV5IGNvdWxkIG5vdCBpbXBs
ZW1lbnQgaXQuPC9kaXY+DQo8ZGl2PiZndDsgW01CXSBtYXliZSBpdCBpcyBvbmx5IGFwcGxpY2Fi
bGUgdG8gdmVyeSBzbWFsbCB0cmVlcyBvbmx5LjwvZGl2Pg0KPGRpdj40MDFjMzk5PC9kaXY+DQo8
ZGl2PiZsdDsgW1JXXSBUaGlzIGlzIG1vcmUgb2YgYSBsYWJlbCBvZiB0aGUgaW50ZXJmYWNlIHR5
cGUuPC9kaXY+DQo8ZGl2Pi0tLTwvZGl2Pg0KPGRpdj4mZ3Q7IFtSU10gV2lsdG9uICZuYnNwO3Ro
aXMgaXMgbW9yZSBvZiBhIGxhYmVsIG9mIHRoZSBpbnRlcmZhY2UgdHlwZS48L2Rpdj4NCjxkaXY+
NDAzLDQwNGM0MDEsNDAyPC9kaXY+DQo8ZGl2PiZsdDsgW1JXXSAmbmJzcDthdWdtZW50YXRpb24g
bmVlZHMgdG8gYmUgaW4gdGhlIHNhbWUgbW9kdWxlIGFzIHRoZSBpZGVudGl0eSBkZWZpbml0aW9u
LjwvZGl2Pg0KPGRpdj4mbHQ7IFtNQl0gJm5ic3A7IHRoYXQgaXMgYSBzaWRlIGVmZmVjdCBvZiBh
bGxvd2luZyBtYW5kYXRvcnkgYXVnbWVudHMuPC9kaXY+DQo8ZGl2Pi0tLTwvZGl2Pg0KPGRpdj4m
Z3Q7IFtSU10gJm5ic3A7YXVnbWVudGF0aW9uIG5lZWRzIHRvIGJlIGluIHRoZSBzYW1lID8/PC9k
aXY+DQo8ZGl2PiZndDsgW01CXSAmbmJzcDsgdGhhdCBpcyBhIHNpZGUgZWZmZWN0IG9mIGFsbG93
aW5nIG1hbmRhdG9yeSBhdWdtZW50cz88L2Rpdj4NCjxkaXY+NDA2LDQxMGM0MDQsNDA3PC9kaXY+
DQo8ZGl2PiZsdDsgW0tXXSBbU3VwcG9ydCBpbmRpY2F0ZWRdLiAmbmJzcDtPSywgZ29vZC4gJm5i
c3A7V2lsbCBjb25maXJtIG9uIHRoZSBXRyBtYWlsaW5nIGxpc3QuPC9kaXY+DQo8ZGl2PiZsdDsg
W0RSXSB3YWl0aW5nIGZvciBJRUVFIDgwMi4xUSBXRyBjaGFpciAtIHdoYXQgaXMgdGhhdCZuYnNw
OzwvZGl2Pg0KPGRpdj4mbHQ7IFtNSl0gJm5ic3A7R2xlbiB0aGlua3MgdGhhdCB0aGUgZXh0ZW5z
aW9uIG9mIFZMQU4gWUFORyBtb2RlbCBzaG91bGQgYmUgaGFwcGVuaW5nIHRoZXJlJm5ic3A7PC9k
aXY+DQo8ZGl2PiZsdDsgW1JXXSBDb25jZXJuIGlzIG92ZXJsYXAgd2l0aCB0aGUgODAyLjFRIFlB
TkcgbW9kZWwgZm9yIGJyaWRnZXMuICZuYnNwO0J1dCB0aGlzIG1vZGVsIGRvZXNuJ3Qgb3Zlcmxh
cCBiZWNhdXNlIGl0IGl0IG9ubHkgZGVmaW5lcyBhbiBpbnRlcmZhY2UgYmFzZWQgbW9kZWwgZm9y
IGNsYXNzaWZpY2F0aW9uLjwvZGl2Pg0KPGRpdj4mbHQ7IFtEUl0gZG8geW91IGhhdmUgYW55IG1h
aWwgZXhjaGFuZ2VzIGZvciB0aGlzPyBNYXliZSB0aGlzIGNvdWxkIGJlIHJhaXNlZCBpbiBJRUVF
IHBsZW5hcnkuIFBsZWFzZSBmb3J3YXJkIG1lIGFueSBlbWFpbHMgb24gdGhpcyBkaXNjdXNzaW9u
LjwvZGl2Pg0KPGRpdj4tLS08L2Rpdj4NCjxkaXY+Jmd0OyBbRFJdIHdhaXRpbmcgZm9yIElFRUUg
ODAyLjFRIFdHIGNoYWlyIC0gd2hhdCBpcyB0aGF0PzwvZGl2Pg0KPGRpdj4mZ3Q7IFtNSl0gJm5i
c3A7R2xlbiB0aGlua3MgdGhhdCB0aGUgZXh0ZW5zaW9uIG9mIFZMQU4gWUFORyBtb2RlbCBzaG91
bGQgYmUgaGFwcGVuaW5nIHRoZXJlLjwvZGl2Pg0KPGRpdj4mZ3Q7IFtSU10gJm5ic3A7dGhpcyBp
cyByZWxhdGVkIHRvIG92ZXJsYXBwaW5nIG9mIHRoZSBicmlkZ2luZyBtb2RlbCBpbXBsZW1lbnRh
dGlvbj88L2Rpdj4NCjxkaXY+Jmd0OyBbRFJdIGRvIHlvdSBoYXZlIGFueSBtYWlsIGV4Y2hhbmdl
cyBmb3IgdGhpcz8gTWF5YmUgdGhpcyBjb3VsZCBiZSByYWlzZWQgaW4gSUVFRSBwbGVuYXJ5LiBQ
bGVhc2UgZm9yd2FyZCBtZSBhbnkgZW1haWxzIG9uIHRoaXMgZGlzY3Vzc2lvbiZuYnNwOzwvZGl2
Pg0KPGRpdj4mbmJzcDs8L2Rpdj4NCjwvZGl2Pg0KPGRpdj48YnI+DQo8L2Rpdj4NCjxkaXY+DQo8
ZGl2IGlkPSJNQUNfT1VUTE9PS19TSUdOQVRVUkUiPjwvZGl2Pg0KPC9kaXY+DQo8L2Rpdj4NCjxk
aXY+PGJyPg0KPC9kaXY+DQo8c3BhbiBpZD0iT0xLX1NSQ19CT0RZX1NFQ1RJT04iPg0KPGRpdiBz
dHlsZT0iZm9udC1mYW1pbHk6Q2FsaWJyaTsgZm9udC1zaXplOjEycHQ7IHRleHQtYWxpZ246bGVm
dDsgY29sb3I6YmxhY2s7IEJPUkRFUi1CT1RUT006IG1lZGl1bSBub25lOyBCT1JERVItTEVGVDog
bWVkaXVtIG5vbmU7IFBBRERJTkctQk9UVE9NOiAwaW47IFBBRERJTkctTEVGVDogMGluOyBQQURE
SU5HLVJJR0hUOiAwaW47IEJPUkRFUi1UT1A6ICNiNWM0ZGYgMXB0IHNvbGlkOyBCT1JERVItUklH
SFQ6IG1lZGl1bSBub25lOyBQQURESU5HLVRPUDogM3B0Ij4NCjxzcGFuIHN0eWxlPSJmb250LXdl
aWdodDpib2xkIj5Gcm9tOiA8L3NwYW4+Um9iZXJ0IFdpbHRvbiAmbHQ7PGEgaHJlZj0ibWFpbHRv
OnJ3aWx0b25AY2lzY28uY29tIj5yd2lsdG9uQGNpc2NvLmNvbTwvYT4mZ3Q7PGJyPg0KPHNwYW4g
c3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQiPkRhdGU6IDwvc3Bhbj5UdWVzZGF5LCBOb3ZlbWJlciAy
NCwgMjAxNSBhdCAxMTo1OSBBTTxicj4NCjxzcGFuIHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5U
bzogPC9zcGFuPktlbnQgV2F0c2VuICZsdDs8YSBocmVmPSJtYWlsdG86a3dhdHNlbkBqdW5pcGVy
Lm5ldCI+a3dhdHNlbkBqdW5pcGVyLm5ldDwvYT4mZ3Q7LCAmcXVvdDs8YSBocmVmPSJtYWlsdG86
bmV0bW9kQGlldGYub3JnIj5uZXRtb2RAaWV0Zi5vcmc8L2E+JnF1b3Q7ICZsdDs8YSBocmVmPSJt
YWlsdG86bmV0bW9kQGlldGYub3JnIj5uZXRtb2RAaWV0Zi5vcmc8L2E+Jmd0Ozxicj4NCjxzcGFu
IHN0eWxlPSJmb250LXdlaWdodDpib2xkIj5TdWJqZWN0OiA8L3NwYW4+UmU6IFtuZXRtb2RdIGRy
YWZ0IG5ldG1vZCA5NCBtaW51dGVzIHBvc3RlZDxicj4NCjwvZGl2Pg0KPGRpdj48YnI+DQo8L2Rp
dj4NCjxkaXY+DQo8ZGl2IGJnY29sb3I9IiNGRkZGRkYiIHRleHQ9IiMwMDAwMDAiPkhpIEtlbnQs
PGJyPg0KPGJyPg0KSSd2ZSBzb21lIG1pbm9yIG1vZGlmaWNhdGlvbnMgb2Ygc29tZSBvZiB0aGUg
bWludXRlcywgbWFpbmx5IGp1c3QgdG8gY2xhcmlmeSB3aG8gd2FzIGFza2luZyBzb21lIG9mIHRo
ZSBxdWVzdGlvbnMvY29tbWVudHMgKG1vc3RseSBiZXR3ZWVuIFJvYiBTaGFraXIgYW5kIG15c2Vs
ZiksIGJ1dCBhbHNvIHNvbWUgb3RoZXIgbWlub3IgY2xhcmlmaWNhdGlvbnMgd2hlbiBJIHdhcyBs
aXN0ZW5pbmcgYmFjayB0byB0aGUgYXVkaW8uPGJyPg0KPGJyPg0KW0JlZm9yZV08YnI+DQo8cHJl
IHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDApOyBmb250LXN0eWxlOiBub3JtYWw7IGZvbnQtdmFy
aWFudDogbm9ybWFsOyBmb250LXdlaWdodDogbm9ybWFsOyBsZXR0ZXItc3BhY2luZzogbm9ybWFs
OyBsaW5lLWhlaWdodDogbm9ybWFsOyBvcnBoYW5zOiBhdXRvOyB0ZXh0LWFsaWduOiBzdGFydDsg
dGV4dC1pbmRlbnQ6IDBweDsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IHdpZG93czogMTsgd29yZC1z
cGFjaW5nOiAwcHg7IC13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDBweDsgd29yZC13cmFwOiBi
cmVhay13b3JkOyB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7Ij4xMCBtaW46IGRyYWZ0LWlldGYtb3Bl
bmNvbmZpZy1uZXRtb2Qtb3BzdGF0ZS0wMSZuYnNwOyZuYnNwOyZuYnNwOyAoQW5lZXMgU2hhaWto
IG9yIFtSU10gU2hha2lyKQ0KUm9iIFNoYWtpciBwcmVzZW50aW5nLiZuYnNwOw0KW0xMXSBXb3Vs
ZCBpdCBiZSBwb3NzaWJsZSB0byBoYXZlIG11bHRpcGxlIG1hbmFnZW1lbnQgaW50ZXJmYWNlcyAo
TkVUQ09ORiwgUkVTVE9ORiwgb3RoZXIpIC0gaXMgdGhlIGludGVuZGVkIGNvbmZpZ3VyYXRpb24g
c3VwcG9zZWQgdG8gYmUgcHJpdmF0ZSBwZXIgdHJhbnNwb3J0IHByb3RvY29sPyZuYnNwOw0KW1JT
XSAgV291bGQgdGhpbmsgbm8uIFRoZXJlIGlzIG9uZSBpbnRlbmRlZCBjb25maWd1cmF0aW9uIHBl
ciBkZXZpY2UuJm5ic3A7DQpbTExdIHRoaXMgbWF5IGhhdmUgc29tZSBsb2NraW5nIGltcGxpY2F0
aW9ucy4mbmJzcDsmbmJzcDsNCltUQ10gIFdoeSBkaWQgeW91IGNob3NlIHRvIHVzZSBpbnRlbmRl
ZC9hcHBsaWVkIGFwcHJvYWNoPw0KW1JTXSAgVGhpcyBhbGxvd3MgdXMgdG8gdXNlIFlBTkcgdG9k
YXkuJm5ic3A7DQpbS1ddIHRoZXJlIHdlcmUgMyBzb2x1dGlvbnMgZHJhZnRzLiZuYnNwOw0KW1RD
XQl3ZSBhcmUgZG9pbmcgdGhlIHNhbWUgdGhpbmcgaW4gQkJGLCBhbmQgd291bGQgbGlrZSB0byBt
aW1pYyB0aGUgc29sdXRpb24gYWdyZWVkIGhlcmUuJm5ic3A7DQpbQVNdIFRoZXJlIGlzIGEgc2Vj
dGlvbiBpIGEgZHJhZnQgdGhhdCBhZGRyZXNzZXMgdGhpcy4mbmJzcDsmbmJzcDsNCltMQl0gIEkg
YW0gY29uZnVzZWQgb24gdGhlIHByb2Nlc3MgZm9yIHRoZSByZXF1aXJlbWVudHMuIFlvdSBzYWlk
IHlvdSB3aWxsIG1ha2UgY29uc2Vuc3VzIGNhbGwgZm9yIHJlcXVpcmVtZW50cyB0b2RheT8NCltL
V10gd2Ugd2lsbCBkbyBhIGNvbnNlbnN1cyBjYWxsIG9uIHNvbHV0aW9ucy4gSSBiZWxpZXZlIHRo
ZXJlIGlzIGNvbnNlbnN1cyBvbiByZXF1aXJlbWVudHMuJm5ic3A7DQpbTEJdICBvbiBhIGxpc3Qg
dGhlcmUgd2FzIGEgZGlzY3Vzc2lvbiBvbiBwbGFubmluZyB0byBwb2xsIGZvciBjb25zZW5zdXMg
YnV0IHRoYXQgZGlkIG5vdCBzZWVtIHRvIGhhcHBlbi4mbmJzcDsNCltLV10gY29uZmlybWluZyBj
b25zZW5zdXMgb24gcmVxdWlyZW1lbnRzIG5vdyBieSBodW1taW5nIC0gY29uc2Vuc3VzIGFjaGll
dmVkLiANCjwvcHJlPg0KPGJyPg0KW0FmdGVyXTxicj4NCjx0dD4xMCBtaW46IGRyYWZ0LWlldGYt
b3BlbmNvbmZpZy1uZXRtb2Qtb3BzdGF0ZS0wMSZuYnNwOyZuYnNwOyZuYnNwOyAoQW5lZXMgU2hh
aWtoIG9yIFtSU10gU2hha2lyKTwvdHQ+PHR0Pjxicj4NCjwvdHQ+PHR0PlJvYiBTaGFraXIgcHJl
c2VudGluZy4gPC90dD48dHQ+PGJyPg0KPC90dD48dHQ+W0xMXSBXb3VsZCBpdCBiZSBwb3NzaWJs
ZSB0byBoYXZlIG11bHRpcGxlIG1hbmFnZW1lbnQgaW50ZXJmYWNlcyAoTkVUQ09ORiwgUkVTVE9O
Riwgb3RoZXIpIC0gaXMgdGhlIGludGVuZGVkIGNvbmZpZ3VyYXRpb24gc3VwcG9zZWQgdG8gYmUg
cHJpdmF0ZSBwZXIgdHJhbnNwb3J0IHByb3RvY29sPw0KPC90dD48dHQ+PGJyPg0KPC90dD48dHQ+
W1JTXSZuYnNwOyBXb3VsZCB0aGluayBuby4gVGhlcmUgaXMgb25lIGludGVuZGVkIGNvbmZpZ3Vy
YXRpb24gcGVyIGRldmljZS4gPC90dD4NCjx0dD48YnI+DQo8L3R0Pjx0dD5bTExdIHRoaXMgbWF5
IGhhdmUgc29tZSBsb2NraW5nIGltcGxpY2F0aW9ucy4mbmJzcDsgPC90dD48dHQ+PGJyPg0KPC90
dD48dHQ+W1RDXSZuYnNwOyBXaHkgZGlkIHlvdSBjaG9zZSB0byB1c2UgaW50ZW5kZWQvYXBwbGll
ZCBhcHByb2FjaCByYXRoZXIgdGhhbiB1c2luZyBkYXRhc3RvcmVzPzwvdHQ+PHR0Pjxicj4NCjwv
dHQ+PHR0PltSU10mbmJzcDsgMS4gTm8gc3VjaCB0aGluZyBhcyBhbiBhcHBsaWVkIGRhdGFzdG9y
ZSB0b2RheS4mbmJzcDsgVGhpcyBzb2x1dGlvbiBhbGxvd3MgdXMgdG8gdXNlIFlBTkcgdG9kYXku
IDIuIE91ciBzb2x1dGlvbiBhbGxvd3MgZm9yIGEgc2luZ2xlIHBhdGggdGhhdCBpcyBub3QgZGVw
ZW5kZW50IG9uIHRoZSBkYXRhc3RvcmUuPC90dD48dHQ+PGJyPg0KPC90dD48dHQ+W0tXXSB0aGVy
ZSB3ZXJlIDMgc29sdXRpb25zIGRyYWZ0cy4gPC90dD48dHQ+PGJyPg0KPC90dD48dHQ+W1RDXSZu
YnNwOyZuYnNwOyZuYnNwOyB3ZSBhcmUgZG9pbmcgdGhlIHNhbWUgdGhpbmcgaW4gQkJGLCBhbmQg
d291bGQgbGlrZSB0byBtaW1pYyB0aGUgc29sdXRpb24gYWdyZWVkIGhlcmUuDQo8L3R0Pjx0dD48
YnI+DQo8L3R0Pjx0dD5bQVNdIFRoZXJlIGlzIGEgc2VjdGlvbiBpbiBvdXIgZHJhZnQgdGhhdCBh
ZGRyZXNzZXMgc29tZSBvZiB0aGVzZSBxdWVzdGlvbnMuJm5ic3A7DQo8L3R0Pjx0dD48YnI+DQo8
L3R0Pjx0dD5bTEJdJm5ic3A7IEkgYW0gY29uZnVzZWQgb24gdGhlIHByb2Nlc3MgZm9yIHRoZSBy
ZXF1aXJlbWVudHMuIFlvdSBzYWlkIHlvdSB3aWxsIG1ha2UgY29uc2Vuc3VzIGNhbGwgZm9yIHJl
cXVpcmVtZW50cyB0b2RheT88L3R0Pjx0dD48YnI+DQo8L3R0Pjx0dD5bS1ddIHdlIHdpbGwgZG8g
YSBjb25zZW5zdXMgY2FsbCBvbiBzb2x1dGlvbnMuIEkgYmVsaWV2ZSB0aGVyZSBpcyBjb25zZW5z
dXMgb24gcmVxdWlyZW1lbnRzLg0KPC90dD48dHQ+PGJyPg0KPC90dD48dHQ+W0xCXSZuYnNwOyBv
biBhIGxpc3QgdGhlcmUgd2FzIGEgZGlzY3Vzc2lvbiBvbiBwbGFubmluZyB0byBwb2xsIGZvciBj
b25zZW5zdXMgYnV0IHRoYXQgZGlkIG5vdCBzZWVtIHRvIGhhcHBlbi4NCjwvdHQ+PHR0Pjxicj4N
CjwvdHQ+PHR0PltLV10gY29uZmlybWluZyBjb25zZW5zdXMgb24gcmVxdWlyZW1lbnRzIG5vdyBi
eSBodW1taW5nIC0gY29uc2Vuc3VzIGFjaGlldmVkLg0KPC90dD48YnI+DQo8YnI+DQo8YnI+DQpb
QmVmb3JlXTxicj4NCjxwcmUgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMCk7IGZvbnQtc3R5bGU6
IG5vcm1hbDsgZm9udC12YXJpYW50OiBub3JtYWw7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IGxldHRl
ci1zcGFjaW5nOiBub3JtYWw7IGxpbmUtaGVpZ2h0OiBub3JtYWw7IG9ycGhhbnM6IGF1dG87IHRl
eHQtYWxpZ246IHN0YXJ0OyB0ZXh0LWluZGVudDogMHB4OyB0ZXh0LXRyYW5zZm9ybTogbm9uZTsg
d2lkb3dzOiAxOyB3b3JkLXNwYWNpbmc6IDBweDsgLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDog
MHB4OyB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7IHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsiPjEwIG1p
bjogb3RoZXIgc29sdXRpb25zIGZvciB0aGUgb3BzdGF0ZS1yZXFzIChSb2JlcnQgV2lsdG9uKQ0K
Um9iZXJ0IFdpbHRvbiBwcmVzZW50aW5nLiZuYnNwOw0KW1JXXSAgbm8gY2hhbmdlcyB0byBleGlz
dGluZyBZQU5HIG1vZGVscyAtIHRoYXQgZG9lcyBub3Qgc2VlbSB0byBiZSBwcmFjdGljYWwuIFRo
ZXJlIGFyZSB2ZW5kb3IgZXh0ZW5zaW9ucyBhbnl3YXkuJm5ic3A7DQpbUlddIFdpbHRvbiAgaWYg
bW9kZWxzIGFyZSBzdGFuZGFyZGlzZWQgaW4gSUVURiwgdGhleSBzaG91bGQgd29yayBpbiBhbGwg
Y2FzZXMuJm5ic3A7DQoNCltLV10gd2Ugd291bGQgbGlrZSB0byBrbm93IHdoaWNoIG9mIHRob3Nl
IHNvbHV0aW9ucyBzaG91bGQgcHJvZ3Jlc3MgZm9yd2FyZC4mbmJzcDsNCltSd10gIHdvdWxkIGJl
IG5pY2UgdG8gcG9pbCBmb3Igd2hvIGhhcyByZWFkIHRoZSBzb2x1dGlvbnMgZHJhZnRzPyZuYnNw
Ow0KW0tXXSB3aG8gd291bGQgZmF2b3Igc29sdXRpb24gMS4gSHVtbS4gMi4gSHVtbSAobW9zdCku
IDMuIEh1bW0NCltLV10gRG9lcyBhbnlvbmUgb2JqZWN0IHRvIHNvbHV0aW9uIDI/IFBsZWFzZSBn
byB0byBtaWtlPw0KW1J3XSAgRGlkbid0IHdlIGRvIHRoYXQgYWxyZWFkeT8gV2Ugc2VlbSBub3Qg
dG8gZ29pbmcgYW55d2hlcmUgZm9yd2FyZCB3aXRoIHRoaXMgZGlzY3Vzc2lvbi4gV2UgZGlkIGNs
YXJpZnkgd29yZGluZywgYnV0IHRoYXQgaXMgbW9zdGx5IGl0LiBJdCBpcyBub3RpbmcgZm9yIG9w
ZXJhdG9yIHRvIGhlbHAgd2l0aCBjb25maWd1cmluZyBhIG5ldHdvcmsuIElzIGl0IGEgcGVyZmVj
dGlvbiBwcm9ibGVtIGhlcmU/IENhbiB3ZSBwcm9kdWNlIHNvbWV0aGluZyBwcmFjdGljYWxseSB1
c2VmdWw/Jm5ic3A7DQpbQ01dIFRoZXJlIGFyZSBsYXJnZSBpbnN0YWxsYXRpb25zIGJhc2VkIG9u
IGV4aXN0aW5nIFlBTkcgc3BlY2lmaWNhdGlvbnMuJm5ic3A7DQpbUlddCUkgdGFrZSB0aGF0IGlu
dG8gYWNjb3VudC4gSSBoYXZlIG5vbmUgaW4gbXkgbmV0d29yayB0aG91Z2ggdGhhdCB1c2UgZXhp
c3RpbmcgbW9kZWwuIEkgYW0gbm90IHNheWluZyB0aGF0IHdlIHNob3VsZCB0aHJvdyBhd2F5IHRo
ZSBleGlzdGluZyBzb2x1dGlvbiBpbiBmYXZvciBvZiB0aGUgZnV0dXJlIHNvbHV0aW9uLiZuYnNw
Ow0KW0NNXSBUaGVyZSBpcyBhIHRlY2hub2xvZ3kgc2hpZnQuJm5ic3A7DQpbQ0hdIFdlIGFyZSBu
b3QgZm9yY2luZyB0byBpbXBsZW1lbnQgc29tZSBwYXJ0aWN1bGFyIGRhdGEgc3RvcmUgdGVjaG5v
bG9neS4gVGhpcyBpcyBtb3JlIG9mIGEgd2F5IG9mIHRoaW5raW5nIG9mIGl0LiANCjwvcHJlPg0K
PGJyPg0KW0FmdGVyXTxicj4NCjx0dD4xMCBtaW46IG90aGVyIHNvbHV0aW9ucyBmb3IgdGhlIG9w
c3RhdGUtcmVxcyAoUm9iZXJ0IFdpbHRvbik8L3R0Pjx0dD48YnI+DQo8L3R0Pjx0dD5Sb2JlcnQg
V2lsdG9uIHByZXNlbnRpbmcuIDwvdHQ+PHR0Pjxicj4NCjwvdHQ+PHR0PltSU10gTm8gY2hhbmdl
cyB0byBleGlzdGluZyBZQU5HIG1vZGVscyAtIHRoYXQgZG9lcyBub3Qgc2VlbSB0byBiZSBwcmFj
dGljYWwuIFRoZXJlIGFyZSB2ZW5kb3IgZXh0ZW5zaW9ucyBhbnl3YXkuDQo8L3R0Pjx0dD48YnI+
DQo8L3R0Pjx0dD5bUlddJm5ic3A7Jm5ic3A7IGlmIG1vZGVscyBhcmUgc3RhbmRhcmRpc2VkIGlu
IElFVEYsIHRoZXkgc2hvdWxkIHdvcmsgaW4gYWxsIGNhc2VzLjwvdHQ+PHR0Pjxicj4NCjxicj4N
CjwvdHQ+PHR0PltLV10gd2Ugd291bGQgbGlrZSB0byBrbm93IHdoaWNoIG9mIHRob3NlIHNvbHV0
aW9ucyBzaG91bGQgcHJvZ3Jlc3MgZm9yd2FyZC4NCjwvdHQ+PHR0Pjxicj4NCjwvdHQ+PHR0PltS
U10gV291bGQgYmUgbmljZSB0byBwb2xsIGZvciB3aG8gaGFzIHJlYWQgdGhlIHNvbHV0aW9ucyBk
cmFmdHM/PC90dD48dHQ+PGJyPg0KPC90dD48dHQ+W0tXXSBbU2hvdyBvZiBoYW5kc10gQWJvdXQg
aGFsZiB0aGUgcm9vbSBoYXZlIHJlYWQgdGhlIHRocmVlIGRyYWZ0cy48L3R0Pjx0dD48YnI+DQo8
L3R0Pjx0dD5bS1ddIFdobyB3b3VsZCBmYXZvciBzb2x1dGlvbiAxLiBIdW1tLiAyLiBIdW1tICht
b3N0KS4gMy4gSHVtbTwvdHQ+PHR0Pjxicj4NCjwvdHQ+PHR0PltLV10gRG9lcyBhbnlvbmUgb2Jq
ZWN0IHRvIHNvbHV0aW9uIDI/IFBsZWFzZSBnbyB0byBtaWtlPzwvdHQ+PHR0Pjxicj4NCjwvdHQ+
PHR0PltSU10mbmJzcDsgRGlkbid0IHdlIGRvIHRoYXQgYWxyZWFkeT8gV2Ugc2VlbSBub3QgdG8g
Z29pbmcgYW55d2hlcmUgZm9yd2FyZCB3aXRoIHRoaXMgZGlzY3Vzc2lvbi4gV2UgZGlkIGNsYXJp
Znkgd29yZGluZywgYnV0IHRoYXQgaXMgbW9zdGx5IGl0LiBJdCBpcyBub3RoaW5nIGZvciBvcGVy
YXRvciB0byBoZWxwIHdpdGggY29uZmlndXJpbmcgYSBuZXR3b3JrLiBJcyBpdCBhIHBlcmZlY3Rp
b24gcHJvYmxlbSBoZXJlPyBDYW4gd2UgcHJvZHVjZQ0KIHNvbWV0aGluZyBwcmFjdGljYWxseSB1
c2VmdWw/IDwvdHQ+PHR0Pjxicj4NCjwvdHQ+PHR0PltDTV0gVGhlcmUgYXJlIGxhcmdlIGluc3Rh
bGxhdGlvbnMgYmFzZWQgb24gZXhpc3RpbmcgWUFORyBhbmQgTkVUQ09ORiBzcGVjaWZpY2F0aW9u
cy4NCjwvdHQ+PHR0Pjxicj4NCjwvdHQ+PHR0PltSU10mbmJzcDsmbmJzcDsmbmJzcDsgSSB0YWtl
IHRoYXQgaW50byBhY2NvdW50LiBJIGhhdmUgbm9uZSBpbiBteSBuZXR3b3JrIHRob3VnaCB0aGF0
IHVzZSBleGlzdGluZyBtb2RlbC4gSSBhbSBub3Qgc2F5aW5nIHRoYXQgd2Ugc2hvdWxkIHRocm93
IGF3YXkgdGhlIGV4aXN0aW5nIHNvbHV0aW9uIGluIGZhdm9yIG9mIHRoZSBmdXR1cmUgc29sdXRp
b24uDQo8L3R0Pjx0dD48YnI+DQo8L3R0Pjx0dD5bQ01dIFRoZXJlIGlzIGEgdGVjaG5vbG9neSBz
aGlmdC4gPC90dD48dHQ+PGJyPg0KPC90dD48dHQ+W0NIXSBXZSBhcmUgbm90IGZvcmNpbmcgdG8g
aW1wbGVtZW50IHNvbWUgcGFydGljdWxhciBkYXRhIHN0b3JlIHRlY2hub2xvZ3kuIFRoaXMgaXMg
bW9yZSBvZiBhIHdheSBvZiB0aGlua2luZyBvZiBpdC4NCjwvdHQ+PGJyPg0KPGJyPg0KPGJyPg0K
W0JlZm9yZV08YnI+DQo8cHJlIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDApOyBmb250LXN0eWxl
OiBub3JtYWw7IGZvbnQtdmFyaWFudDogbm9ybWFsOyBmb250LXdlaWdodDogbm9ybWFsOyBsZXR0
ZXItc3BhY2luZzogbm9ybWFsOyBsaW5lLWhlaWdodDogbm9ybWFsOyBvcnBoYW5zOiBhdXRvOyB0
ZXh0LWFsaWduOiBzdGFydDsgdGV4dC1pbmRlbnQ6IDBweDsgdGV4dC10cmFuc2Zvcm06IG5vbmU7
IHdpZG93czogMTsgd29yZC1zcGFjaW5nOiAwcHg7IC13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6
IDBweDsgd29yZC13cmFwOiBicmVhay13b3JkOyB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7Ij4xMCBt
aW46IGRyYWZ0LW9wZW5jb25maWctbmV0bW9kLW1vZGVsLWNhdGFsb2ctMDAmbmJzcDsmbmJzcDsg
KEFuZWVzIFNoYWlraCkNCkFuZWVzIFNoYWlraCBwcmVzZW50aW5nLiZuYnNwOw0KLi4uDQpbS1dd
IE1heWJlIElFVEYgdG9vbHMgY291bGQgaG9zdCB0aGlzIHRvby4mbmJzcDsNCltLV10gcGxlYXNl
IGh1bSBpZiB0aGlzIGlzIGltcG9ydGFudCB3b3JrLiANCjwvcHJlPg0KPGJyPg0KW0FmdGVyXTxi
cj4NCjx0dD4xMCBtaW46IGRyYWZ0LW9wZW5jb25maWctbmV0bW9kLW1vZGVsLWNhdGFsb2ctMDAm
bmJzcDsmbmJzcDsgKEFuZWVzIFNoYWlraCk8L3R0Pjx0dD48YnI+DQo8L3R0Pjx0dD5BbmVlcyBT
aGFpa2ggcHJlc2VudGluZy4gPC90dD48dHQ+PGJyPg0KPC90dD48dHQ+Li4uPC90dD48dHQ+PC90
dD48dHQ+PGJyPg0KPC90dD48dHQ+W0tXXSBwbGVhc2UgaHVtIGlmIHRoaXMgaXMgaW1wb3J0YW50
IHdvcmsuIDwvdHQ+PHR0Pjxicj4NCjwvdHQ+PHR0PltLV10gW0h1bW1dJm5ic3A7IEl0J3MgaW1w
b3J0YW50LjwvdHQ+PGJyPg0KPGJyPg0KPGJyPg0KW0JlZm9yZV08YnI+DQo8cHJlIHN0eWxlPSJj
b2xvcjogcmdiKDAsIDAsIDApOyBmb250LXN0eWxlOiBub3JtYWw7IGZvbnQtdmFyaWFudDogbm9y
bWFsOyBmb250LXdlaWdodDogbm9ybWFsOyBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyBsaW5lLWhl
aWdodDogbm9ybWFsOyBvcnBoYW5zOiBhdXRvOyB0ZXh0LWFsaWduOiBzdGFydDsgdGV4dC1pbmRl
bnQ6IDBweDsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IHdpZG93czogMTsgd29yZC1zcGFjaW5nOiAw
cHg7IC13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDBweDsgd29yZC13cmFwOiBicmVhay13b3Jk
OyB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7Ij48Zm9udD48Zm9udCBjbGFzcz0iIj41IG1pbjogZHJh
ZnQtd2lsdG9uLW5ldG1vZC1pbnRmLWV4dC15YW5nLTAxJm5ic3A7IChSb2JlcnQgV2lsdG9uKTwv
Zm9udD48L2ZvbnQ+DQpNb3ZlZCBmcm9tIG1vcm5pbmcgc2Vzc2lvbi48Zm9udD48Zm9udD4NClJv
YmVydCBXaWx0b24gcHJlc2VudGluZy4mbmJzcDs8L2ZvbnQ+PC9mb250Pg0KW0xMXSBJIHRoaW5r
IHRoaXMgaXMgcmVhbGx5IG5lY2Vzc2FyeSB0byBkbywgYW5kIHRoYXQgaXMgb25lIG9mIHRoZSBy
ZWFzb25zIHdoeSBkZXJpdmUgZnVuY3Rpb25hbGl0eSB3YXMgaW50cm9kdWNlZC4gW0lGXSBhaWZ0
IHR5cGVzIHNlcnZlZCBwdXJwb3NlcyBmb3IgU05NUCBNSUJzLiBJIGRvIG5vdCBwcm9wb3NlIHRv
IG9ic29sZXRlIHRoZXNlIHR5cGVzLiBXZSBsaWtlbHkgbmVlZCBhIHRyZWUgb2YgaWRlbnRpdGll
cyB0aGF0IGNvdWxkIGJlIHVzZWQuJm5ic3A7DQpbUlNdIFdpbHRvbiAgdGhpcyBpcyBtb3JlIG9m
IGEgbGFiZWwgb2YgdGhlIGludGVyZmFjZSB0eXBlLiZuYnNwOw0KW01CXSAgIFRoaXMgc2VlbXMg
dG8gYmUgYSBuaWNlIGlkZWEuIERlZmluaW5nIHRoZXNlIGlkZW50aXRpZXMgdGhhdCBkZWZpbmUg
dGhlIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHNlZW1zIHVzZWZ1bCwgYW5kIHRoZW4gZGVyaXZl
IHRoZSBhY3R1YWwgaW50ZXJmYWNlIGlkZW50aXRpZXMgZnJvbSB0aG9zZSBpbnRlcmZhY2UgdGVj
aG5vbG9neSB0eXBlIGlkZW50aXRpZXMuIE1heWJlIHByb3BlcnR5IGlkZW50aXRpZXMgY291bGQg
YmUgYSBzZXBhcmF0ZSBtb2RlbC4mbmJzcDsNCltSU10gIGF1Z21lbnRhdGlvbiBuZWVkcyB0byBi
ZSBpbiB0aGUgc2FtZSA/Pw0KW01CXSAgIHRoYXQgaXMgYSBzaWRlIGVmZmVjdCBvZiBhbGxvd2lu
ZyBtYW5kYXRvcnkgYXVnbWVudHM/Jm5ic3A7DQpbS1ddIHdobyBoYXMgcmVhZCB0aGUgZHJhZnQg
IH4xMC4gV2hvIHN1cHBvcnRzIHRoZSBpbnRlcmZhY2UgZXh0ZW5zaW9uIGJlaW5nIGFkb3B0ZWQ/
Jm5ic3A7DQpbRFJdIHdhaXRpbmcgZm9yIElFRUUgODAyLjFRIFdHIGNoYWlyIC0gd2hhdCBpcyB0
aGF0PyZuYnNwOw0KW01KXSAgR2xlbiB0aGlua3MgdGhhdCB0aGUgZXh0ZW5zaW9uIG9mIFZMQU4g
WUFORyBtb2RlbCBzaG91bGQgYmUgaGFwcGVuaW5nIHRoZXJlLiZuYnNwOw0KW1JTXSAgdGhpcyBp
cyByZWxhdGVkIHRvIG92ZXJsYXBwaW5nIG9mIHRoZSBicmlkZ2luZyBtb2RlbCBpbXBsZW1lbnRh
dGlvbj8mbmJzcDsNCltEUl0gZG8geW91IGhhdmUgYW55IG1haWwgZXhjaGFuZ2VzIGZvciB0aGlz
PyBNYXliZSB0aGlzIGNvdWxkIGJlIHJhaXNlZCBpbiBJRUVFIHBsZW5hcnkuIFBsZWFzZSBmb3J3
YXJkIG1lIGFueSBlbWFpbHMgb24gdGhpcyBkaXNjdXNzaW9uLiANCjwvcHJlPg0KPGJyPg0KW0Fm
dGVyXTxicj4NCjxwcmUgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMCk7IGZvbnQtc3R5bGU6IG5v
cm1hbDsgZm9udC12YXJpYW50OiBub3JtYWw7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IGxldHRlci1z
cGFjaW5nOiBub3JtYWw7IGxpbmUtaGVpZ2h0OiBub3JtYWw7IG9ycGhhbnM6IGF1dG87IHRleHQt
YWxpZ246IHN0YXJ0OyB0ZXh0LWluZGVudDogMHB4OyB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgd2lk
b3dzOiAxOyB3b3JkLXNwYWNpbmc6IDBweDsgLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMHB4
OyB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7IHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsiPjxmb250Pjxm
b250IGNsYXNzPSIiPjUgbWluOiBkcmFmdC13aWx0b24tbmV0bW9kLWludGYtZXh0LXlhbmctMDEm
bmJzcDsgKFJvYmVydCBXaWx0b24pPC9mb250PjwvZm9udD4NCk1vdmVkIGZyb20gbW9ybmluZyBz
ZXNzaW9uLjxmb250Pjxmb250Pg0KUm9iZXJ0IFdpbHRvbiBwcmVzZW50aW5nLiZuYnNwOzwvZm9u
dD48L2ZvbnQ+DQpbTExdIEkgdGhpbmsgdGhpcyBpcyByZWFsbHkgbmVjZXNzYXJ5IHRvIGRvLCBh
bmQgdGhhdCBpcyBvbmUgb2YgdGhlIHJlYXNvbnMgd2h5IGRlcml2ZSBmdW5jdGlvbmFsaXR5IHdh
cyBpbnRyb2R1Y2VkLiBbSUZdIGFpZnQgdHlwZXMgc2VydmVkIHB1cnBvc2VzIGZvciBTTk1QIE1J
QnMuIEkgZG8gbm90IHByb3Bvc2UgdG8gb2Jzb2xldGUgdGhlc2UgdHlwZXMuIFdlIGxpa2VseSBu
ZWVkIGEgdHJlZSBvZiBpZGVudGl0aWVzIHRoYXQgY291bGQgYmUgdXNlZC4mbmJzcDsNCltSV10g
VGhpcyBpcyBtb3JlIG9mIGEgbGFiZWwgb2YgdGhlIGludGVyZmFjZSB0eXBlLiZuYnNwOw0KW01C
XSAgIFRoaXMgc2VlbXMgdG8gYmUgYSBuaWNlIGlkZWEuIERlZmluaW5nIHRoZXNlIGlkZW50aXRp
ZXMgdGhhdCBkZWZpbmUgdGhlIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHNlZW1zIHVzZWZ1bCwg
YW5kIHRoZW4gZGVyaXZlIHRoZSBhY3R1YWwgaW50ZXJmYWNlIGlkZW50aXRpZXMgZnJvbSB0aG9z
ZSBpbnRlcmZhY2UgdGVjaG5vbG9neSB0eXBlIGlkZW50aXRpZXMuIE1heWJlIHByb3BlcnR5IGlk
ZW50aXRpZXMgY291bGQgYmUgYSBzZXBhcmF0ZSBtb2RlbC4mbmJzcDsNCltSV10gIGF1Z21lbnRh
dGlvbiBuZWVkcyB0byBiZSBpbiB0aGUgc2FtZSBtb2R1bGUgYXMgdGhlIGlkZW50aXR5IGRlZmlu
aXRpb24uDQpbTUJdICAgdGhhdCBpcyBhIHNpZGUgZWZmZWN0IG9mIGFsbG93aW5nIG1hbmRhdG9y
eSBhdWdtZW50cy4mbmJzcDsNCltLV10gd2hvIGhhcyByZWFkIHRoZSBkcmFmdCAgfjEwLiBXaG8g
c3VwcG9ydHMgdGhlIGludGVyZmFjZSBleHRlbnNpb24gYmVpbmcgYWRvcHRlZD8NCltLV10gW1N1
cHBvcnQgaW5kaWNhdGVkXS4gIE9LLCBnb29kLiAgV2lsbCBjb25maXJtIG9uIHRoZSBXRyBtYWls
aW5nIGxpc3QuDQpbRFJdIHdhaXRpbmcgZm9yIElFRUUgODAyLjFRIFdHIGNoYWlyIC0gd2hhdCBp
cyB0aGF0PyZuYnNwOw0KW01KXSAgR2xlbiB0aGlua3MgdGhhdCB0aGUgZXh0ZW5zaW9uIG9mIFZM
QU4gWUFORyBtb2RlbCBzaG91bGQgYmUgaGFwcGVuaW5nIHRoZXJlLiZuYnNwOw0KW1JXXSBDb25j
ZXJuIGlzIG92ZXJsYXAgd2l0aCB0aGUgODAyLjFRIFlBTkcgbW9kZWwgZm9yIGJyaWRnZXMuICBC
dXQgdGhpcyBtb2RlbCBkb2Vzbid0IG92ZXJsYXAgYmVjYXVzZSBpdCBpdCBvbmx5IGRlZmluZXMg
YW4gaW50ZXJmYWNlIGJhc2VkIG1vZGVsIGZvciBjbGFzc2lmaWNhdGlvbi4mbmJzcDsNCltEUl0g
ZG8geW91IGhhdmUgYW55IG1haWwgZXhjaGFuZ2VzIGZvciB0aGlzPyBNYXliZSB0aGlzIGNvdWxk
IGJlIHJhaXNlZCBpbiBJRUVFIHBsZW5hcnkuIFBsZWFzZSBmb3J3YXJkIG1lIGFueSBlbWFpbHMg
b24gdGhpcyBkaXNjdXNzaW9uLiANCjwvcHJlPg0KPGJyPg0KVGhhbmtzLDxicj4NClJvYjxicj4N
Cjxicj4NCjxicj4NCjxkaXYgY2xhc3M9Im1vei1jaXRlLXByZWZpeCI+T24gMTcvMTEvMjAxNSAx
ODozMiwgS2VudCBXYXRzZW4gd3JvdGU6PGJyPg0KPC9kaXY+DQo8YmxvY2txdW90ZSBjaXRlPSJt
aWQ6MENFRkU4OUYtNjVDNi00Qzk3LUJDMkUtNzIzQzk5OTVCQ0U0QGp1bmlwZXIubmV0IiB0eXBl
PSJjaXRlIj4NCjxkaXY+PGJyPg0KPC9kaXY+DQo8ZGl2PkFsbCw8L2Rpdj4NCjxkaXY+PGJyPg0K
PC9kaXY+DQo8ZGl2PlRoZSBtaW51dGVzIGZvciB0aGUgdHdvIE5FVE1PRCBzZXNzaW9ucyBoYXZl
IGJlZW4gcG9zdGVkOjwvZGl2Pg0KPGRpdj48YnI+DQo8L2Rpdj4NCjxkaXY+Jm5ic3A7ICZuYnNw
OyA8YSBjbGFzcz0ibW96LXR4dC1saW5rLWZyZWV0ZXh0IiBocmVmPSJodHRwczovL3d3dy5pZXRm
Lm9yZy9wcm9jZWVkaW5ncy85NC9taW51dGVzL21pbnV0ZXMtOTQtbmV0bW9kIj4NCmh0dHBzOi8v
d3d3LmlldGYub3JnL3Byb2NlZWRpbmdzLzk0L21pbnV0ZXMvbWludXRlcy05NC1uZXRtb2Q8L2E+
PC9kaXY+DQo8ZGl2Pjxicj4NCjwvZGl2Pg0KPGRpdj4NCjxkaXY+UGxlYXNlIHByb3ZpZGUgY29t
bWVudHMvY29ycmVjdGlvbnMgb24gdGhlc2UgZHJhZnQgbWludXRlcyBieSBXZWQsIE5vdiAyNXRo
LjwvZGl2Pg0KPC9kaXY+DQo8ZGl2Pjxicj4NCjwvZGl2Pg0KPGRpdj5QUzogaHVnZSB0aGFua3Mg
dG8mbmJzcDtJZ25hcyZuYnNwO2FuZCBBbmRyZXcgZm9yIHB1dHRpbmcgdGhlc2UgdG9nZXRoZXIh
PC9kaXY+DQo8ZGl2Pjxicj4NCjwvZGl2Pg0KPGRpdj5UaGFua3MsPC9kaXY+DQo8ZGl2PktlbnQ8
L2Rpdj4NCjxkaXY+PGJyPg0KPC9kaXY+DQo8ZGl2PjwvZGl2Pg0KPGJyPg0KPGZpZWxkc2V0IGNs
YXNzPSJtaW1lQXR0YWNobWVudEhlYWRlciI+PC9maWVsZHNldD4gPGJyPg0KPHByZSB3cmFwPSIi
Pl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQpuZXRtb2Qg
bWFpbGluZyBsaXN0DQo8YSBjbGFzcz0ibW96LXR4dC1saW5rLWFiYnJldmlhdGVkIiBocmVmPSJt
YWlsdG86bmV0bW9kQGlldGYub3JnIj5uZXRtb2RAaWV0Zi5vcmc8L2E+PGEgY2xhc3M9Im1vei10
eHQtbGluay1mcmVldGV4dCIgaHJlZj0iaHR0cHM6Ly93d3cuaWV0Zi5vcmcvbWFpbG1hbi9saXN0
aW5mby9uZXRtb2QiPmh0dHBzOi8vd3d3LmlldGYub3JnL21haWxtYW4vbGlzdGluZm8vbmV0bW9k
PC9hPjwvcHJlPg0KPC9ibG9ja3F1b3RlPg0KPGJyPg0KPC9kaXY+DQo8L2Rpdj4NCjwvc3Bhbj4N
CjwvYm9keT4NCjwvaHRtbD4NCg==

--_000_289891D550254CA7AE79F5B2A0291016junipernet_--

--_004_289891D550254CA7AE79F5B2A0291016junipernet_
Content-Type: text/plain; name="minutes-94-netmod-new.txt"
Content-Description: minutes-94-netmod-new.txt
Content-Disposition: attachment; filename="minutes-94-netmod-new.txt";
	size=27676; creation-date="Wed, 25 Nov 2015 01:12:28 GMT";
	modification-date="Wed, 25 Nov 2015 01:12:28 GMT"
Content-ID: <6D62299772E21C4196BEF23E6D06C85D@namprd05.prod.outlook.com>
Content-Transfer-Encoding: base64

CklFVEYtOTQgbmV0bW9kIG1pbnV0ZXMKClNlc3Npb24gMSAtIDIwMTUtMTEtMDQgMDkwMC0xMTMw
OiBSb29tIDMwMSAtIEF1ZGlvIHN0cmVhbSAtIG5ldG1vZCBjaGF0cm9vbQoKCsKgwqDCoMKgwqDC
oMKgwqDCoMKgCk5FVE1PRCBXRyBBZ2VuZGEgZm9yIElFVEYgOTQgKFlva29oYW1hKQpDaGFpcnM6
IEtlbnQgV2F0c2VuLCBUb20gTmFkZWF1LCBhbmQgSnVlcmdlbiBTY2hvZW53YWVsZGVyCsKgwqDC
oMKgwqDCoMKgwqAKCgpbQUxdCUFjZWUgTGluZHVtCltBQ10JQWxleCBDbGVtbSAKW0FBXQlBbGlh
IEF0bGFzCltBU10JQW5lZXMgU2hhaWtoCltCQ10JQmVub2l0IENsYWlzZQpbQlJdCUJlciBXaWpu
ZW4KW0NIXSAgICBDaHJpcyBIb3BwcwpbQ01dCUNhcmwgTW9iZXJnCltEQl0JRGVhbiBCb2dkb25h
dmljCltEUl0JRGFuIFJvbWFzY2FudQpbRFNdCURhdmlkIFNpbmljcm9wZQpbR0ddCUdlcnQgR3Jh
bW1lbCAKW0lGXQlJYW4gRmFycmVyCltJQ10JSW5nLVdoZXIgQ2hlbiAoSGVsZW4pCltKSF0JSmVm
ZiBIYWFzwqAKW0pTXSAgICBKdWVyZ2VuIFNjaG9lbndhZWxkZXIKW0pTXQlKYXNvbiBTdGVybmUK
W0tQXQlLZXl1ciBQYXRlbApbTEJdCUxvdSBCZXJnZXIKW0xMXQlMYWRhIEwKW01KXQlNYWhlc2gg
SmV0aGFuYW5kYW5pCltNQl0JTWFydGluIEJqb3JrbHVuZApbUVddCVFpbiBXdQpbUlRdCVJpY2sg
VGF5bG9yCltSV10JUm9iZXJ0IFdpbHRvbgpbUlNdCVtSU10gU2hha2lyCltTSF0JU3VlIEhhcmVz
CltUQ10JVGltb3RoeSBDYXJleQpbV0hdCVdlcyBIYXJkYWtlcgoKwqDCoMKgwqDCoMKgwqDCoMKg
wqAKV0VETkVTREFZLCBOb3ZlbWJlciA0LCAyMDE1CjA5MDAtMTEzMCAoTW9ybmluZyBTZXNzaW9u
IEkpClBhY2lmaWNvIFlva29oYW1hIFJvb20gMzAxCjIuNSBob3VycyBvbiBORVRNT0QgTW9kZWxz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09IArCoMKgwqDCoMKgwqDCoMKgwqDCoAo1IG1p
bjogQmx1ZSBzaGVldHMsIE5vdGUgd2VsbCwgU2NyaWJlcywgQWdlbmRhIEJhc2hpbmcgKENoYWly
cykKCkNoYXJ0ZXJlZCBpdGVtczoKCgoxNSBtaW46IGRyYWZ0LWlldGYtbmV0bW9kLXJvdXRpbmct
Y2ZnLTIwIChMYWRpc2xhdiBMaG90a2EpCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KTGFkYSBwcmVzZW50aW5nLsKgCk92ZXJ2aWV3IG9m
IGNoYW5nZXMgc2luY2UgbGFzdCBtZWV0aW5nLsKgClJlbWFpbmluZyBvcGVuIGlzc3VlIGlzIGlu
dGVyZmFjZSBhbmQgcm91dGluZyBpbnN0YW5jZSByZWxhdGlvbnNoaXAuwqAKW0xMXSAJeWVzdGVy
ZGF5IFlBTkcgRFQgbWV0IGFuZCBkaXNjdXNzZWQgd2hldGhlciB3ZSB3b3VsZCBiZSBhYmxlIHRv
IGNvbnZlcmdlIG9uIHRoaXMgdG9waWMuIE5ldHdvcmsgaW5zdGFuY2UgZHJhZnQgY292ZXJzIHRo
YXQuIEkyUlMgY291bGQgYWxzbyBhdWdtZW50IHRoaXMgdG8gbWVldCB0aGVpciByZXF1aXJlbWVu
dHMuIFNhbWUgaW50ZXJmYWNlIGluIHR3byBzZXBhcmF0ZSBpbnN0YW5jZXMsIG9uZSBmb3IgaXB2
NCwgYW5vdGhlciBmb3IgaXB2NiBpcyBvbmUgb2YgdGhvc2UgcHJvYmxlbXMuIFdlIGRvIG5vdCB3
YW50IHRvIGRvIGEgc29sdXRpb24gc3BlY2lmaWMgb25seSB0byBJMlJTIHRob3VnaC7CoApbQkNd
CWRvIEkgdW5kZXJzdGFuZCBjb3JyZWN0bHkgdGhhdCB0aGUgbWVudGlvbmVkIGlzc3VlIHdpbGwg
YmUgc29sdmVkIHdpdGhpbiBhIHdlZWs/wqAKW0xCXQl0aGVyZSBpcyBhIG5lZWQgZm9yIHNvbWUg
YWxpZ25tZW50IG9uIHRoZSB0d28gd29yayBzdHJlYW1zLCBpdCB3aWxsIHRha2Ugc29tZSB0aW1l
IHRvIGFjaGlldmUgdGhhdC7CoAoKCjUgbWluOiBkcmFmdC1pZXRmLW5ldG1vZC1hY2wtbW9kZWwt
MDUgKERlYW4gQm9nZGFub3ZpYykKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQpObyBxdWVzdGlvbnMKCgpOb24tQ2hhcnRlcmVkIGl0ZW1zOgoK
CjE1IG1pbjogWUFORyBNb2RlbCBDb29yZGluYXRpb24gR3JvdXAgKEJlbm9pdCBDbGFpc2UpCkJl
bm9pdCBwcmVzZW50aW5nIG9uIFlBTkcgbW9kZWwgY29vcmRpbmF0aW9uIGdyb3VwLsKgCltBU10J
RGVwZW5kZW5jeSBtYXkgYmUgYSBzaW1wbGUgYXVnbWVudCwgb3IgbW9yZSBjb21wbGV4IC0gdGhh
dCBpcyBub3QgdGhlIHNhbWUuwqAKW0JDXQlZZXMsIHRoaXMgaXMgaW5kaWNhdGlvbiBvZiBwb3Rl
bnRpYWwgaW1wYWN0LsKgCltDTV0JVGhpcyBpcyBkb25lIGJhc2VkIG9uIHRoZSBZQU5HIGNhdGFs
b2cgZHJhZnQuIEl0IHByb3ZpZGVzIGEgY2VudHJhbCBlbnRyeSBwb2ludCB0byBxdWVyeSBmb3Ig
bW9kZWwgbWV0YWRhdGEuIFRvIHJlc29sdmUgdGhlIGRlcGVuZGVuY2llcyBhY3Jvc3MgdGhlIG1v
ZGVscy4gSW4gbG9uZyB0ZXJtIHRoaXMgd2lsbCB0cmFjayBhY3Jvc3MgbXVsdGlwbGUgU0RPcyBh
bmQgdGltZWxpbmVzLsKgCltUQ10JSSBhbSB3b3JraW5nIGluIEJCRiBvbiBZQU5HLiBUb29scyBh
cmUgZ29vZCBidXQgdGhleSBhcmUganVzdCB0b29scy4gVGhlIHByb2Nlc3MgaXMgaW1wb3J0YW50
LiBXZSBkbyBub3Qga25vdyBob3cgdG8gZW5nYWdlIHdpdGggdGhlIElFVEYuIFBsZWFzZSBnaXZl
IHVzIHRoZSBwcm9jZWR1cmVzIGhvdyB3ZSBjb3VsZCBlbmdhZ2UgYW5kIG1lZXQgeW91ciBnb2Fs
LsKgCgoKMTUgbWluOiBJRVRGIFlBTkcgTW9kZWxzIFVwZGF0ZSAoUWluIFd1KQpRaW4gcHJlc2Vu
dGluZy7CoApbQVNdCXRlcm1pbm9sb2d5IGNvbW1lbnQvcXVlc3Rpb24gLSBiYXNlIGFuZCBleHRl
bnNpb24gbW9kZWwgYXJlIHVzZWQgaW4gZGlmZmVyZW50IHdheXMgaW4gZGlmZmVyZW50IHBsYWNl
cy4gQW4gZXhhbXBsZSBvZiBCR1AgLSBiYXNlIG1vZGVsIGRlZmluZXMgY29yZSBmdW5jdGlvbmFs
aXR5IGFuZCB0aGVuIHRoZXJlIG1heSBiZSB2ZW5kb3IgZXh0ZW5zaW9ucyBhcyBhbiBleHRlbnNp
b24gbW9kZWwuwqAKW0pTXQltYXliZSB3ZSBjb3VsZCBjb25zb2xpZGF0ZSB0aGF0IHdpdGggY2xh
c3NpZmljYXRpb24gZHJhZnQgdG8gaGF2ZSBhIHNpbmdsZSBwbGFjZSBmb3IgdGVybWlub2xvZ3kg
ZGVmaW5pdGlvbnM/CltRV10JeWVzLsKgCltEQl0JUW9TIG1vZGVsIERUIGlzIG1vdmluZyB0b3dh
cmRzIERTQ1AgYmFzZWQgbW9kZWwuwqBRb1MgbW9kZWwgaXMgbW92aW5nIHRvIENvUyBtb2RlbCBm
cm9tIGRpZmZzZXJ2IHRvIGNvdmVyIEwyLgpbU0hdCUFzIFRSSUxMIGNoYWlyOiBUUklMTCBZQU5H
IG1vZGVscyB3ZXJlIGNyZWF0ZWQgYmVmb3JlIExJTUUgbW9kZWwuIFllc3RlcmRheSB3ZSBkaXNj
dXNzZWQgdHJ5aW5nIHRvIGdldCBhIGNvbWJpbmVkIE9BTSBtb2RlbCBib3RoIGluIElFVEYgYW5k
IElFRUUuIEl0IHNlZW1zIHRvIGJlIHN0dWNrIGJldHdlZW4gdGhlIGRpZmZlcmVuY2VzIG9mIEJG
RCBhbmQgQ0ZNLiBJIHdvdWxkIGxpa2UgdG8gc2VlIGEgc2luZ2xlIE9BTSBtb2RlbC4gT3RoZXJ3
aXNlIHdlIHdpbGwgdGFrZSBwYXJ0cyBmcm9tIExJTUUgYW5kIHB1dCBpdCBpbnRvIFRSSUxMLiBJ
IHdvdWxkIGV4cGVjdCB5b3VyIGhlbHAgd2l0aCB0aGlzLiBGb3IgdGhlIEJHUCBwYXJ0LCBJIGhv
cGUgcm91dGluZyBjb29yZGluYXRpb24gZ3JvdXAgd2lsbCB3b3JrIHRvIGNvdmVyIHRoYXQuwqAK
W0FMXQlBIGNvbW1lbnQgLSBJIGRvbid0IHRoaW5rIHRob3NlIGFyZSBtdXR1YWxseSBleGNsdXNp
dmUgW2NvbnRleHQgaW4gc2xpZGVzXS7CoApbSkhdCVRoYW5rIHlvdSBmb3IgdGhlIHdvcmsuIFRv
b2xzIGZvciByZWxhdGlvbnNoaXBzIGFyZSB2ZXJ5IGhlbHBmdWwuIE1vZGVscyB0aGF0IGhhdmUg
b3ZlcmxhcHBpbmcgcGFydHMgbmVlZCB0byBiZSByZWZhY3RvcmVkIGludG8gY29tbW9uIG1vZGVs
cy7CoFdlIG5lZWQgdG8gZmluZCBhIHdheSB0byBsb29rIGZvciB0aGF0IG92ZXJsYXAgc2luY2Ug
aXQgY2FuJ3QgYmUgYXV0b21hdGVkLgoKCjE1IG1pbjogUm91dGluZyBZQU5HIERlc2lnbiBUZWFt
IFVwZGF0ZSAoQWNlZSBMaW5kZW0gb3IgTG91IEJlcmdlcikKTG91IEJlcmdlciBwcmVzZW50aW5n
LsKgCgpbUlNdCVRoZSBpbXBhY3Qgb2Ygbm90IGNoYW5naW5nIHRoZSBpbnRlcmZhY2VzIGlzIGFu
bm95aW5nIGhlcmUuIEludGVyZmFjZSBjb25maWcgaXMgbm93IG91dHNpZGUgb2YgdGhlIGxvZ2lj
YWwgZWxlbWVudCwgYW5kIHRoYXQgZG9lcyBub3QgbWFrZSBzZW5zZSBub3cuwqAKW0xCXQlJIGFn
cmVlIHdpdGggUm9iLiBBcyBhIERUIHdlIGRlY2lkZWQgbm90IHRvIGRpc3J1cHQgdGhlIHdheSBo
aW93IGludGVyZmFjZXMgYXJlIGRlZmluZWQuwqAKW0pIXQlJIGFncmVlIGFuZCBkaXNhZ3JlZSB3
aXRoIHlvdS4gVGhlcmUgYXJlIHRoaW5ncyB0aGF0IG5lZWQgdG8gYmUgZG9uZSBmcm9tIHJlc291
cmNlIGFsbG9jYXRpb24gcGVyc3BlY3RpdmUgYW5kIHN0YXRpc3RpY3MuIFRoZXJlIGFyZSBkaWZm
ZXJlbnQgdmlld3MgZm9yIGRpZmZlcmVudCBwYXJ0aXRpb25zLCBhbmQgdGhlcmUgbmVlZHMgdG8g
YmUgYSBtYXBwaW5nIG9mIHRob3NlIHRvIGN1c3RvbWVycy7CoApbTEJdCXdlIHRoaW5rIHRoYXQg
d2UgaGF2ZSBhIHNvbHV0aW9uIGZvciB0aGF0IGFuZCB0aGlzIHNvbHV0aW9uIHdpbGwgY2hhbmdl
IGludGVyZmFjZXMgZGVmaW5pdGlvbi4gV2UgaGF2ZSBhbm90aGVyIHNvbHV0aW9uIHdpdGggaWQ9
MCB0aGF0IHdpbGwgc2hvdyBhbGwgaW50ZXJmYWNlcy4gUGh5c2ljYWwgaW50ZXJmYWNlcyBhcmUg
Ym91bmQgdG8gbG9naWNhbCBpbnN0YW5jZXMsIGFuZCBsb2dpY2FsIGludGVyZmFjZXMgYXJlIGJv
dW5kIHRvIFZSRnMuIFRoYXQgYWxsb3dzIGZvciB0aGUgc2VwYXJhdGlvbiBlcXVpdmFsZW50IHRv
IHN1YmludGVyZmFjZXMuwqAKW0pIXQlteSByZWNvbW1lbmRhdGlvbiBpcyB0byBsZWF2ZSBpbnRl
cmZhY2VzIGFsb25lIGFuZCBwcm92aWRlIGEgc2hhZG93IHZpZXcgaW4gdGhlIGNvbnRleHQgb2Yg
dGhlIGluc3RhbmNlLgpbTEJdCXdlIG5lZWQgdG8gdGFsayBhYm91dCBvZmZsaW5lLsKgCltNQl0J
SXMgdGhlcmUgYSBzZXBhcmF0ZSBORVRDT05GIGludGVyZmFjZSBwZXIgbG9naWNhbiBuZXR3b3Jr
IGVsZW1lbnQ/wqAKW0xCXQloZXkgd2lsbCBoYXZlIHNlcGFyYXRlIGRhdGFzdG9yZXMuIElmIHlv
dSBhcmUgaW4gTE5FPTAsIHRoZW4geW91IGhhdmUgYSBmdWxsIHZpZXcgaW50byBkYXRhc3RvcmVz
IG9mIGFsbCBlbGVtZW50LCBvdGhlcndpc2UgaW50byBhIExORS1zcGVjaWZpYyBkYXRhc3RvcmUg
b25seS4gWW91IGNhbiBhbHdheXMgYWNjZXNzIHlvdXJzZWxmIHZpYSBpZD0wLsKgCltNQl0Jd291
bGQgaXQgbWFrZSBtb3JlIHNlbnNlIHRvIHNlZSBvbmx5IHRoZSBpbnRlcmZhY2VzwqAKW0RCXQl0
aGUgYmFzZSBpZGVhIHRoYXQgZXZlcnl0aGluZyBpcyB0cmVhdGVkIGFzIExORS4gWW91IGhhdmUg
dG8gc2VwYXJhdGUgdGhlIG1hbmFnZW1lbnQgZG9tYWlucyBwZXIgTE5FLsKgCltMQl0JVGhpcyBp
cyBnb29kIGRpc2N1c3Npb24gYnV0IHdlIGRvIG5vdCBoYXZlIHRpbWUuIFBsZWFzZSBkaXNjdXNz
IG9mZmxpbmUuwqAKW0FTXQk5IG1vbnRocyBhZ28gd2Ugc3RhcnRlZCBkaXNjdXNzaW5nIHJvdXRp
bmcgaW5zdGFuY2VzIHF1ZXN0aW9uIGFuZCB3ZSBzdGlsbCBkaWQgbm90IGNvbmNsdWRlLsKgCltB
TF0JV2UgZm9jdXNlZCBvbiBoYXZpbmcgdGhlIHN0cnVjdHVyZSBhbmQgbm90IG5lY2Vzc2FyeSB0
aGUgY29tcGxldGUgbGlzdC7CoApbU0hdCXBsZWFzZSBhZGQgZXBoZW1lcmFsIHN0YXRlIHRvIHRo
ZSBsaXN0IG9mIG9wZW4gaXNzdWVzLsKgCltDSF0Jd2Ugd2lsbCBwcmVzZW50IHRoaXMgaW4gcnRn
d2cgdG9vLiBUaGUgaWQ9MCBzZWVtcyB0byBiZSBjb25mdXNpbmcsIHRoaXMgc2VlbXMgdG8gYmUg
c2ltaWxhciB0byBmb3JrKCkuwqAKW0tXXQlhcmUgdGhlIG5leHQgc3RlcHMgdG8gdXBkYXRlIHRo
ZSBkb2N1bWVudCBhbmQgc2VlayBtb3JlIGNvbW1lbnRzP8KgCltMQl0JdGhlIHBsYW4gaXMgdG8g
bGVhdmUgdGhlIERUIGFuZCBtb3ZlIHRvIHRoZSBzdGFuZGFyZHMgcHJvY2Vzcy7CoAoKCjEwIG1p
bjogZHJhZnQtYm9nZGFub3ZpYy1uZXRtb2QteWFuZy1tb2RlbC1jbGFzc2lmaWNhdGlvbi0wNSAo
RGVhbiBCb2dkYW5vdmljKQpDYXJsIE1vYmVyZyBwcmVzZW50aW5nLsKgCltEUl0JWWVzdGVyZGF5
IHRoZXJlIGFzIGEgZGlzY3Vzc2lvbiBpbiBzYWNtPyBXRyB0byBkaXNjb3VyYWdlIHRoZSB1c2Ug
b2YgWUFORyBtb2RlbHMuwqAKW0NNXQlUaGVyZSBpcyBhIGRvY3VtZW50IGV4cGxhaW5pbmcgdGhl
IGRhdGEgYW5kIGluZm9ybWF0aW9uYWwgbW9kZWxzLsKgCltEUl0Jd2hhdCBpcyBpbXBvcnRhbnQg
aXMgdG8gZXhwbGFpbiB3aGF0IG5vdCB0byBkby7CoApbSlNdCUkgY2FuIHNlZSBob3cgTDNTTSBt
b2RlbCBmaXRzIGludG8gc2VydmljZSBtb2RlbCBkZWZpbml0aW9uLiBMMlZQTiBtb2RlbCBzZWVt
IG1vcmUgb2YgYSBkZXZpY2UgdHlwZSBtb2RlbC7CoApbREJ9CXlvdSBuZWVkIHRvIHNlZSBMMlZQ
TiBib3RoIGZyb20gZGV2aWNlIGxldmVsIGNvbmZpZ3VyYXRpb24gYW5kIG5ldHdvcmsgbGV2ZWwg
Y29uZmlndXJhdGlvbiwgYnJvYWRlciB0aGFuIGEgc2luZ2xlIGVsZW1lbnQgY29uZmlndXJhdGlv
bi7CoApbSlNdCWluIHRoZSBzY2VuYXJpbyB3aXRoIG9uZSBOQiBvcmNoZXN0cmF0b3IgY29udHJv
bGxpbmcgc2VydmljZSBsZXZlbCBhbmQgdGhhdCBtYXBzIHRvIGRldmljZSBsZXZlbC7CoApbQ01d
CVRoYXQgaXMgYSBnb29kIGZlZWRiYWNrLCB5ZXMsIHRoZXJlIGlzIGEgbmVlZCBmb3Igc2VwYXJh
dGUgbmV0d29yayB3aWRlIGFuZCBkZXZpY2Ugd2lkZSBtb2RlbHMuwqAKW0pIXQl2ZW5kb3Igc3Bl
Y2lmaWMgZXh0ZW5zaW9ucyBhcmUgZ29vZC4gQnV0IHRoZXJlIG1heSBiZSBjb2xsaXNpb25zLsKg
CltEUl0JeW91IHNob3VsZCBhbHNvIGFkZCBhIHNlcnZpY2Ugc3BlY2lmaWMgbW9kZWxzIGZvciBT
UCBleHRlbnNpb25zLsKgCltLV11hcmUgdGhlcmUgb2JqZWN0aW9ucyB0byBhZG9wdGluZyB0aGlz
IGFzIFdHIGRvY3VtZW50PyBObyBvYmplY3Rpb25zLgoKCjEwIG1pbjogZHJhZnQtZmFxLW5ldG1v
ZC1jcGUteWFuZy1wcm9maWxlLTAwwqAgKFtJRl0gIEZhcnJlcikKSWFuIEZhcnJlciBwcmVzZW50
aW5nLsKgCltVbmtub3duL1RzaW5naHVhIFVuaXZlcnNpdHldIFRoaXMgbWF5IG5lZWQgc29tZSBn
dWlkZWxpbmVzIG9yIHJlY29tbWVuZGF0aW9ucyBvbiBob3cgdG8gdXNlIHRob3NlIG1vZGVscyBh
cyB0aGVyZSBhcmUgb3ZlcmxhcHMuIFdoaWNoIGlzIG9wdGlvbmFsIGFuZCBob3cgdGhleSBjYW4g
YmUgY29tYmluZWQuwqAKW0lGXQl0aGF0IGlzIGFuIGludGVyZXN0aW5nIGNhc2UuIFllcywgdGhl
cmUgaXMgYSBwb3NzaWJpbGl0eSBmb3IgY29uZmxpY3RzLiBJIGRvbjt0IGJlbGlldmUgeW91IGNh
biBkbyBtdWNoIGFib3V0IHRoaXMuwqAKW0tQXQl0aGVyZSBhcmUgZGlmZmVyZW50IGNsYXNzZXMg
YW5kIGZsYXZvcnMgb2YgQ1BFcywgd291bGQgYmUgZ29vZCB0byBjbGFyaWZ5IHdoYXQga2luZCBv
ZiBwcm9maWxlIHlvdSBhcmUgdGFyZ2V0aW5nLsKgCltJRl0JeWVzLCBDUEUgaXMgYSBnZW5lcmlj
IHRlcm0sIGFuZCB1c2VkIHJhdGhlciBmcmVlbHkuIFdlIG5lZWQgbW9yZSBpbnB1dCBmcm9tIG90
aGVyIG9wZXJhdG9ycyBhbmQgdGhhdCB3b3VsZCBoZWxwIGluIGNsYXJpZnlpbmcgd2hhdCB3ZSBh
cmUgdGFsa2luZyBhYm91dC7CoApbSkhdCVN1Y2ggZ2FwIGFuYWx5c2lzIHdvdWxkIGJlIHZhbHVh
YmxlLCBhbiBleGFtcGxlIG9mIE9BTS4gQWZ0ZXIgdGhhdCBpcyBkb25lLCBwbGVhc2UgZmVlZCBi
YWNrIHRvIExJTUUgV0csIHRoaXMgaXMgYSBnb29kIHVzZSBjYXNlIGZvciB0aGVtLsKgCltSU10g
IEJCRiBnaXZlcyBhIGRldmljZSBwcm9maWxlIGZvciBDUEUuIElzIHRoaXMgYSBsYW5ndWFnZSB0
cmFuc2xhdGlvbiBleGVyY2lzZT8KW0lGXSAgIE5vLiBXZSBhcyBhbiBvcGVyYXRvciBsb29rZWQg
aW50byB0aGUgbGFuZ3VhZ2UgdG8gYmUgc2VsZWN0ZWQgZnJvbSB0aGUgcGVyc3BlY3RpdmUgb2Yg
aGF2aW5nIHRoZSBtaW5pbXVtIG51bWJlciBvZiB0cmFuc2xhdGlvbnMgcmVxdWlyZWQuwqAKW1JT
XSAgaGF2aW5nIHRoZSBjb21tb25hbGl0eSBhY3Jvc3MgdGhlIGRpZmZlcmVudCB0eXBlcyBvZiBu
b2RlcyAtIHdvdWxkIHRoYXQgYmUgaW1wb3J0YW50IHRvIGFkZHJlc3M/wqAKW0lGXSAgIHllcy7C
oApbUlNdICBUaGVuIGxpa2VseSBmcm9tIHRoZSByb3V0aW5nIERUIHBlcnNwZWN0aXZlIHdlIHNo
b3VsZCBjb29yZGluYXRlLsKgCltUQ10gIChCQkYpICBJcyB0aGVyZSBhbnkgaW50ZXJlc3QgaW4g
dXRpbGlzaW5nIFlBTkcgZm9yIG1hbmFnaW5nIGRpZmZlcmVudCBjbGFzc2VzIG9mIENQRXM/IEhv
dyBjb3VsZCBUUi0wNjkgbW9kZXMgYmUgYXBwbGljYWJsZSBpbiB0aGlzIGNvbnRleHQgaGVyZT8g
VGhlcmUgaXMgYSBwcm9vZiBvZiBjb25jZXB0IGRldmVsb3BtZW50IHN0YXJ0ZWQgdG8gbG9vayBp
bnRvIGFwcGxpY2FiaWxpdHkgb2YgWUFORy7CoApbSUZdICAgSSBkbyBub3QgaGF2ZSB0aGF0IG11
Y2ggaW5zaWdodCBpbnRvIEJCRi4gV2UgaGFkIHNvbWUgZGlzY3Vzc2lvbnMgYnV0IG5vdCBlbm91
Z2guIFdvdWxkIGJlIGdvb2QgdG8gZ2V0IG1vcmUgY29udGFjdHMuwqAKW0JDXSAgSSBtZW50aW9u
ZWQgTDNTTSB0cnlpbmcgdG8gY29tZSB3aXRoIGEgY2F0YWxvZy4gVGhlIHRyYWNraW5nwqBhc3Bl
Y3Qgb2bCoGRvY3VtZW50IG1heWJlIGlzIG5vdCB0aGUgcmlnaHQgcGxhY2UgdG8gZG8gaGVyZSwg
YnV0IGxvb2tzIGludGVyZXN0aW5nLgpbSUZdICAgVGhpcyBpcyBtb3JlIGFib3V0IHRoZSByZXF1
aXJlbWVudC7CoApbUlRdICBUaGlzIHNlZW1zIHRvIGJlIHRoZSByaWdodCBhcHByb2FjaC4gQSBn
dWlkZWxpbmUgb2Ygd2hhdCBpcyByZWxldmFudCBhbmQgd2hhdCB0byBpbXBsZW1lbnQgc2VlbXMg
dXNlZnVsLsKgCltEQl0gV2h5IGRvIHlvdSBuZWVkIHRoaXMgZHJhZnQgaWYgeW91IGhhdmUgZGV2
aWNlIG1vZGVsIGRyYWZ0LCBvciB2aWNlIHZlcnNhP8KgCltCQ10gwqBUaGVyZSBhcmUgcGxlbnR5
IG9mIG1pc3NpbmcgWUFORyBtb2RlbHMgbWlzc2luZwpbSUZdICAgV2UgY2FuIGRpc2N1c3MgaWYg
dGhpcyBpcyBwYXJhbGxlbC7CoApbTEJdICBCb3RoIGRvY3VtZW50cyBicmluZyB2YWx1ZS7CoEV4
ICBmb3IgQ1BFLCB0aGlzIGlzIGhvdyB5b3UgdXNlIHRoZSBnZW5lcmljIG1vZGVscy5UaGlzIGNh
biBzcGVjaWZ5IHdoaWNoIGNvbnRyb2wgcGxhbmUgbW9kZWxzIG5lZWQgdG8gYmUgaW5jbHVkZWQg
YXMgYW4gZXhhbXBsZS7CoApbS1ddIHRoZXJlIHNlZW1zIHRvIGJlIG11Y2ggc3VwcG9ydC4gRG8g
eW91IHRoaW5rIHRoaXMgZG9jdW1lbnQgc2hvdWxkIHByb2dyZXNzIGEgYml0IGJlZm9yZSBhZG9w
dGlvbj8KW0lGXSAgIFdoYXQgSSB3b3VsZCBsaWtlIHRvIHVuZGVyc3RhbmQgd2hldGhlciB0aGlz
IG92ZXJsYXBzIHdpdGggcm91dGluZyBEVCB3b3JrLiBDUEVzIHNlZW0gdG8gYmUgc29tZXdoYXQg
ZGlmZmVyZW50IGNsYXNzIG9mIGVxdWlwbWVudC7CoApbSkhdIFRoaXMgaXMgdmFsdWFibGUuIEl0
IGNvdWxkIGJlIGV4dGVuZGVkIHRvIGxpc3QgYSBzZXQgb2YgZmVhdHVyZXMgdGhhdCBjb3VsZCBi
ZSBzdXBwb3J0ZWQsIGFuZCB0aGF0IG1heSBpbXBhY3QgWUFORyBsYW5ndWFnZSBpdHNlbGYgdG8g
ZXhwcmVzcyB0aGF0LiBUaGlzIG1heSBiZSBhIHVzZWZ1bCBleGVyY2lzZSwgYnV0IEkgYW0gbm90
IGNlcnRhaW4gd2hldGhlciBJRVRGIGlzIHRoZSByaWdodCBvcmdhbml6YXRpb24gdG8gaG9zdCBz
dWNoIGEgZG9jdW1lbnQuwqAKW0lGXSAgIFRoaXMgZGVwZW5kcyBvbiBob3cgQkJGIGFwcHJvYWNo
IGV2b2x2ZXMuIFdlIGFzIGFuIG9wZXJhdG9yIHVzZSBZQU5HLCBhbmQgd291bGQgcHJlZmVyIHRv
IGRvIHRoaXMgaGVyZSB0aGFuIGluIEJCRi7CoApbTEJdICBEb2luZyBpdCBpbiBJRVRGIGlzIGdv
b2QgYXMgeW91IG1heSBmaW5kIGJyb2FkZXIgaW1wYWN0LiBTb21lIENQRSBmdW5jdGlvbnMgbWF5
IGJlIG91dHNpZGUgb2Ygc2NvcGUgb2YgZGV2aWNlIG1vZGVsLiBXZSBuZWVkIHRvIHVuZGVyc3Rh
bmQgdGhlIGRpZmZlcmVudGlhdGlvbiBiZXR3ZWVuIGRldmljZSBhbmQgc2VydmljZSBtb2RlbC4g
VGhpcyBpcyBub3QgbmVjZXNzYXJ5IGtub3duIGF0IHRoZSBtb21lbnQuIElmIGRldmljZSBtb2Rl
bCBkb2VzIG5vdCBzdWl0IHlvdXIgbmVlZHMgZm9yIGRldmljZSBsZXZlbCBjb25maWd1cmF0aW9u
IHRoZW4gdGhhdCBuZWVkcyB0byBiZSBmaXhlZC7CoApbSUZdICAgeWVzLsKgCltMQl0gIElmIENQ
RSBpcyBzbWFsbCBwbGF0Zm9ybSB0aGF0IGhhcyBubyBsb2dpY2FsIHN5c3RlbXMgdGhlbiB5b3Ug
YWx3YXlzIHdpbGwgaGF2ZSBMTkUgaWQ9MDsKW0FBXSAgdGhlcmUgaXMgYWxzbyBvdGhlciBpbnRl
cmVzdCBpbmNsdWRpbmcgZnJvbSBCQkYgd2hldGhlciBtb2RlbGxpbmcgZm9yIENQRSBpcyB1c2Vm
dWwsIHdvdWxkIHN1Z2dlc3QgdG8gcmVhY2ggdG8gdGhlbS7CoApbQUFdICB0aGlzIHR5cGUgb2Yg
YXBwcm9hY2ggc2VlbXMgdG8gYmUgcmVhbGx5IHVzZWZ1bCBmb3IgdW5kZXJzdGFuZGluZyBvZiB3
aGF0IGlzIG5lZWRlZCBmb3IgdGhpcyBwYXJ0aWN1bGFyIHVzZSBjYXNlLiBDUEUgaXRzZWxmIGlz
IGJleW9uZCB0aGUgc2NvcGUgb2Ygcm91dGluZy7CoApbTUJdICDCoGluZGl2aWR1YWwgZHJhZnQg
ZnJvbSBBbmR5IEJpZXJtYW4gYWJvdXQgcGFja2FnZS7CoFlvdSBtYXkgd2FudCB0byBoYXZlIGEg
bG9vayBhdCB0aGUgbGlzdCBvZiBtb2R1bGVzIHRoYXQgbmVlZCB0byBiZSBpbXBsZW1lbnRlZC4g
Pz8KW0RTXSAgYXMgQkJGL0lFVEbCoGxpYWlzb24gbWFuYWdlciAgd2UgY2FuIGRpc2N1c3Mgb2Zm
bGluZSBob3cgdG8gY29vcmRpbmF0ZSBpbnRlcndvcmtpbmcgd2l0aCBCQkYuwqAKCgo1IG1pbiA6
IGRyYWZ0LWlldGYtbmV0bW9kLWFjbC1tb2RlbC0wNSAoRGVhbiBCb2dkYW5vdmljKQpEZWFuIEJv
Z2RvbmF2aWMgcHJlc2VudGluZy7CoApbQkNdICBJcyB0aW1lIHJhbmdlIHN1aXRhYmxlIHBsYWNl
IHRvIGRpc2N1c3MgaW4gU1VQQSBXRz8KW0RCXSB5ZXMuwqAKW1RDXSAgVGhlcmUgaXMgd29yayBv
biBtb2RlbGxpbmcgZXZlbnRzwqBpbiBMTUFQIGJ5IEp1ZXJnbmUgU2Nob2Vud2FlbGRlci4gWW91
IG1heSB3YW50IHRvIGxvb2sgYXQgdGhhdC7CoApbREJdIFdlIHdpbGwgc3VibWl0IHVwZGF0ZWQg
ZG9jdW1lbnQuwqAKCgoxMCBtaW46IGlldGYtbmV0bW9kLW9wc3RhdGUtcmVxcy0wMMKgIChLZW50
IFdhdHNlbikKCktlbnQgV2F0c2VuIHByZXNlbnRpbmcuwqAKCltSU10gIHdoYXQgaXMgbm9uLWRl
cml2ZWQgc3RhdGU/wqAKW0tXXSB0aGF0IHdvdWxkIGJlIHRoZSBpbnRlbmRlZCBhbmQgYXBwbGll
ZCBjb25maWd1cmF0aW9ucy7CoApbREJdIFdoZW4gY29uZmlndXJhdGlvbiBoYXMgYmVlbiBhcHBs
aWVkIGJ1dCBzdGlsbCBub3QgcnVubmluZyBvbiB0aGUgd2lyZSwgdGhlcmUgaXMgYSBkZWx0YSB0
aW1lIGJldHdlZW4uIFdoYXQgaXMgdGhhdCBzdGF0ZSB0aGVuP8KgCltLV10gdGhhdCB3b3VsZCBi
ZSBhcHBsaWVkLsKgCltDSF0JSXMgdGhhdCBhY3R1YWxseSBjb25maWc/wqAKW0tXXSB5ZXMuwqAK
W0tXXSB3ZSB3aWxsIHVwZGF0ZSB0aGUgZHJhZnQuwqAKW0xCXSAgYXQgd2hhdCBwb2ludCBkbyB3
ZSB0YWxrIGFib3V0IHRoZSBjb25zZW5zdXM/wqAKW0tXXSBBZnRlciB0aGUgb3BzdGF0ZSBkcmFm
dHMgZGlzY3Vzc2lvbi7CoAoKCjEwIG1pbjogZHJhZnQtaWV0Zi1vcGVuY29uZmlnLW5ldG1vZC1v
cHN0YXRlLTAxICAgKEFuZWVzIFNoYWlraCBvciBbUlNdIFNoYWtpcikKUm9iIFNoYWtpciBwcmVz
ZW50aW5nLgpbTExdIFdvdWxkIGl0IGJlIHBvc3NpYmxlIHRvIGhhdmUgbXVsdGlwbGUgbWFuYWdl
bWVudCBpbnRlcmZhY2VzIChORVRDT05GLCBSRVNUT05GLCBvdGhlcikgLSBpcyB0aGUgaW50ZW5k
ZWQgY29uZmlndXJhdGlvbiBzdXBwb3NlZCB0byBiZSBwcml2YXRlIHBlciB0cmFuc3BvcnQgcHJv
dG9jb2w/CltSU10gV291bGQgdGhpbmsgbm8uIFRoZXJlIGlzIG9uZSBpbnRlbmRlZCBjb25maWd1
cmF0aW9uIHBlciBkZXZpY2UuCltMTF0gdGhpcyBtYXkgaGF2ZSBzb21lIGxvY2tpbmcgaW1wbGlj
YXRpb25zLgpbVENdIFdoeSBkaWQgeW91IGNob3NlIHRvIHVzZSBpbnRlbmRlZC9hcHBsaWVkIGFw
cHJvYWNoIHJhdGhlciB0aGFuIHVzaW5nIGRhdGFzdG9yZXM/CltSU10gMS4gTm8gc3VjaCB0aGlu
ZyBhcyBhbiBhcHBsaWVkIGRhdGFzdG9yZSB0b2RheS4gIFRoaXMgc29sdXRpb24gYWxsb3dzIHVz
IHRvIHVzZSBZQU5HIHRvZGF5LiAyLiBPdXIgc29sdXRpb24gYWxsb3dzIGZvciBhIHNpbmdsZSBw
YXRoIHRoYXQgaXMgbm90IGRlcGVuZGVudCBvbiB0aGUgZGF0YXN0b3JlLgpbS1ddIHRoZXJlIHdl
cmUgMyBzb2x1dGlvbnMgZHJhZnRzLgpbVENdIHdlIGFyZSBkb2luZyB0aGUgc2FtZSB0aGluZyBp
biBCQkYsIGFuZCB3b3VsZCBsaWtlIHRvIG1pbWljIHRoZSBzb2x1dGlvbiBhZ3JlZWQgaGVyZS4K
W0FTXSBUaGVyZSBpcyBhIHNlY3Rpb24gaW4gb3VyIGRyYWZ0IHRoYXQgYWRkcmVzc2VzIHNvbWUg
b2YgdGhlc2UgcXVlc3Rpb25zLgpbTEJdIEkgYW0gY29uZnVzZWQgb24gdGhlIHByb2Nlc3MgZm9y
IHRoZSByZXF1aXJlbWVudHMuIFlvdSBzYWlkIHlvdSB3aWxsIG1ha2UgY29uc2Vuc3VzIGNhbGwg
Zm9yIHJlcXVpcmVtZW50cyB0b2RheT8KW0tXXSB3ZSB3aWxsIGRvIGEgY29uc2Vuc3VzIGNhbGwg
b24gc29sdXRpb25zLiBJIGJlbGlldmUgdGhlcmUgaXMgY29uc2Vuc3VzIG9uIHJlcXVpcmVtZW50
cy4KW0xCXSBvbiBhIGxpc3QgdGhlcmUgd2FzIGEgZGlzY3Vzc2lvbiBvbiBwbGFubmluZyB0byBw
b2xsIGZvciBjb25zZW5zdXMgYnV0IHRoYXQgZGlkIG5vdCBzZWVtIHRvIGhhcHBlbi4KW0tXXSBj
b25maXJtaW5nIGNvbnNlbnN1cyBvbiByZXF1aXJlbWVudHMgbm93IGJ5IGh1bW1pbmcgLSBjb25z
ZW5zdXMgYWNoaWV2ZWQuCgoKMTAgbWluOiBvdGhlciBzb2x1dGlvbnMgZm9yIHRoZSBvcHN0YXRl
LXJlcXMgKFJvYmVydCBXaWx0b24pClJvYmVydCBXaWx0b24gcHJlc2VudGluZy4KW1JTXSBObyBj
aGFuZ2VzIHRvIGV4aXN0aW5nIFlBTkcgbW9kZWxzIC0gdGhhdCBkb2VzIG5vdCBzZWVtIHRvIGJl
IHByYWN0aWNhbC4gVGhlcmUgYXJlIHZlbmRvciBleHRlbnNpb25zIGFueXdheS4KW1JXXSBpZiBt
b2RlbHMgYXJlIHN0YW5kYXJkaXNlZCBpbiBJRVRGLCB0aGV5IHNob3VsZCB3b3JrIGluIGFsbCBj
YXNlcy4KW0tXXSB3ZSB3b3VsZCBsaWtlIHRvIGtub3cgd2hpY2ggb2YgdGhvc2Ugc29sdXRpb25z
IHNob3VsZCBwcm9ncmVzcyBmb3J3YXJkLgpbUlNdIFdvdWxkIGJlIG5pY2UgdG8gcG9sbCBmb3Ig
d2hvIGhhcyByZWFkIHRoZSBzb2x1dGlvbnMgZHJhZnRzPwpbS1ddIFtTaG93IG9mIGhhbmRzXSBB
Ym91dCBoYWxmIHRoZSByb29tIGhhdmUgcmVhZCB0aGUgdGhyZWUgZHJhZnRzLgpbS1ddIFdobyB3
b3VsZCBmYXZvciBzb2x1dGlvbiAxLiBIdW1tLiAyLiBIdW1tIChtb3N0KS4gMy4gSHVtbQpbS1dd
IERvZXMgYW55b25lIG9iamVjdCB0byBzb2x1dGlvbiAyPyBQbGVhc2UgZ28gdG8gbWlrZT8KW1JT
XSBEaWRuJ3Qgd2UgZG8gdGhhdCBhbHJlYWR5PyBXZSBzZWVtIG5vdCB0byBnb2luZyBhbnl3aGVy
ZSBmb3J3YXJkIHdpdGggdGhpcyBkaXNjdXNzaW9uLiBXZSBkaWQgY2xhcmlmeSB3b3JkaW5nLCBi
dXQgdGhhdCBpcyBtb3N0bHkgaXQuIEl0IGlzIG5vdGhpbmcgZm9yIG9wZXJhdG9yIHRvIGhlbHAg
d2l0aCBjb25maWd1cmluZyBhIG5ldHdvcmsuIElzIGl0IGEgcGVyZmVjdGlvbiBwcm9ibGVtIGhl
cmU/IENhbiB3ZSBwcm9kdWNlIHNvbWV0aGluZyBwcmFjdGljYWxseSB1c2VmdWw/CltDTV0gVGhl
cmUgYXJlIGxhcmdlIGluc3RhbGxhdGlvbnMgYmFzZWQgb24gZXhpc3RpbmcgWUFORyBhbmQgTkVU
Q09ORiBzcGVjaWZpY2F0aW9ucy4KW1JTXSBJIHRha2UgdGhhdCBpbnRvIGFjY291bnQuIEkgaGF2
ZSBub25lIGluIG15IG5ldHdvcmsgdGhvdWdoIHRoYXQgdXNlIGV4aXN0aW5nIG1vZGVsLiBJIGFt
IG5vdCBzYXlpbmcgdGhhdCB3ZSBzaG91bGQgdGhyb3cgYXdheSB0aGUgZXhpc3Rpbmcgc29sdXRp
b24gaW4gZmF2b3Igb2YgdGhlIGZ1dHVyZSBzb2x1dGlvbi4KW0NNXSBUaGVyZSBpcyBhIHRlY2hu
b2xvZ3kgc2hpZnQuCltDSF0gV2UgYXJlIG5vdCBmb3JjaW5nIHRvIGltcGxlbWVudCBzb21lIHBh
cnRpY3VsYXIgZGF0YSBzdG9yZSB0ZWNobm9sb2d5LiBUaGlzIGlzIG1vcmUgb2YgYSB3YXkgb2Yg
dGhpbmtpbmcgb2YgaXQuwqAKCgoxMCBtaW46IGRyYWZ0LW9wZW5jb25maWctbmV0bW9kLW1vZGVs
LWNhdGFsb2ctMDDCoMKgIChBbmVlcyBTaGFpa2gpCkFuZWVzIFNoYWlraCBwcmVzZW50aW5nLsKg
CltLV10gV2hhdCBkbyB5b3UgZXhwZWN0IGZvciBuZXh0IHN0ZXBzP8KgCltBU10gVG8gY29udGlu
dWUgd2l0aCB1c2luZyBpdCBhbmQgc2VlIHdoZXRoZXIgdGhlIHNjaGVtYSBpcyBjb21wbGV0ZS7C
oApbS1ddIHdvdWxkIHlvdSBzZWUgaXQgYmVpbmcgYWRvcHRlZCBhcyBhIHdnIGRvY3VtZW50Pwpb
QVNdIHllcy7CoApbSkhdIFRoaXMgaXMgbWV0YWRhdGEgdGhhdCBjYW4gZ28gaW50byBtb2RlbCBp
dHNlbGYuIFRoaXMgaXMgYWxvcyBvcmdhbml6YXRpb24tc3BlY2lmaWMgdmlldyBvZiB0aGluZ3Ms
IElFVEYgbWF5IGhhdmUgb25lLCBCQkYgbWF5IGhhdmUgYSBkaWZmZXJlbnQgdmlldy4gTm90IGNl
cnRhaW4gd2hldGhlciBvbmUgcmVwb3NpdG9yeSB3b3VsZCB3b3JrLsKgCltBU10gbG9jYWwgY2F0
YWxvZ3MgY2FuIHJlZmxlY3QgdGhlIGRhdGEgdGhhdCBpbmRpdmlkdWFsIG9yZ2FuaXphdGlvbnMg
bmVlZCB0byBoYXZlLiBTb21lIG1ldGFkYXRhIHNob3VsZCBiZSBwYXJ0IG9mIHRoZSBzY2hlbWEu
wqAKSmVmZiAgc29tZSBtZXRhZGF0YSBpcyBjb21tb24sIHNvbWUgaXMgc3BlY2lmaWMuwqAKW1dI
XQljYXRhbG9ncyB0cmFkaXRpb25hbGx5IGhhdmUgYmVlbiBpbXBsZW1lbnRlZCBhbmQgbWFpbnRh
aW5lZCBieSB2ZW5kb3JzLCBbSUZdIEEgbWF5IG5vdCBoYXZlIGVub3VnaCByZXNvdXJjZXMgdG8g
bWFpbnRhaW4gaXQuIFlvdSBzaG91bGQgY29uc2lkZXIgdGhlIGFkZGl0aW9uYWwgbG9hZCBvbiBb
SUZdIEEuIFRoaXMgaXMgYW4gb3Bwb3J0dW5pdHkgZm9yIHNvbWUgZXh0ZXJuYWwgZW50aXR5LCBt
YXliZSBvcGVuc291cmNlLCB0byB0YWtlIGNhcmUgb2YuwqAKW0FTXSB5ZXMsIHRoZXJlIGFyZSBt
YW55IG9wdGlvbnMuwqAKW0xCXSAgd2Ugc2hvdWxkIGNvbWUgd2l0aCB0ZWNobmljYWwgc29sdXRp
b24gZmlyc3QuIFtJRl0gQSBhc3BlY3RzIGNhbiBiZSBhZGRyZXNzZWQgbGF0ZXIuCltBU10gSSBh
bSBoYXBweSB3aXRoIHRoaXMgYXBwcm9hY2guwqAKW0tXXSBNYXliZSBJRVRGIHRvb2xzIGNvdWxk
IGhvc3QgdGhpcyB0b28uwqAKW0tXXSBwbGVhc2UgaHVtIGlmIHRoaXMgaXMgaW1wb3J0YW50IHdv
cmsuwqAKW0tXXSBbSHVtbV0gIEl0J3MgaW1wb3J0YW50LgoKCjE1IG1pbjogZHJhZnQtZW50aXR5
ZHQtbmV0bW9kLWVudGl0eS0wMMKgIChNYXJ0aW4gQmpvcmtsdW5kKQpNb3ZlZCB0byBhZnRlcm5v
b24gc2Vzc2lvbi4KCgo1IG1pbjogZHJhZnQtd2lsdG9uLW5ldG1vZC1pbnRmLWV4dC15YW5nLTAx
wqAgKFJvYmVydCBXaWx0b24pCk1vdmVkIHRvIGFmdGVybm9vbiBzZXNzaW9uLgoKCjUgbWluOiBk
cmFmdC13aWx0b24tbmV0bW9kLWludGYtdmxhbi15YW5nLTAxwqAgKFJvYmVydCBXaWx0b24pCk1v
dmVkIHRvIGFmdGVybm9vbiBzZXNzaW9uLgoKCjUgbWluOiBkcmFmdC1kaGFyaW5pLW5ldG1vZC1k
d2RtLWlmLXlhbmctMDDCoCAoR2VydCBHcmFtbWVsKQpbR0ddIEdyYW1tZWwgcHJlc2VudGluZy7C
oApbTEJdIGlzIHRoaXMgbmV0bW9kLCBvciBjY2FtcD/CoApbR0ddICBzb21lIGNvbmZ1c2lvbiBo
ZXJlIGluIHRoZSBkb2N1bWVudCBuYW1lLsKgwqAKW0JDXSBJZiB0aGVyZSBpcyBhIFlBTkcgbW9k
ZWwgb24gc3BlY2lmaWMgdGVjaG5vbG9neSwgaXQgc2hvdWxkIGdvIGludG8gc3BlY2lmaWMgV0cs
IGlmIHRoZXJlIGlzIG5vIHNwZWNpZmljIFdHLCBpdCBzaG91bGQgYmUgaW4gbmV0bW9kLsKgCltM
Ql0gIGFyZSB0aGVyZSBhbnkgbGFuZ3VhZ2UgaXNzdWVzIGluIHRoaXMgZG9jdW1lbnQ/IEkgYW0g
c3VycHJpc2VkIHRvIHNlZSB0aGlzIHByZXNlbnRlZCBhZ2FpbiBhbmQgbm90IGluIENDQU1QLsKg
CltHR10gIHRoaXMgaXMgZGVwZW5kaW5nIG9uIGdlbmVyaWMgaW50ZXJmYWNlIG1vZGVsLiBXZSBj
YW4gdGFsayBvZmZsaW5lLsKgCltLV10gZW5kIG9mIHRoaXMgcGFydCBvZiBtZWV0aW5nLsKgCgoK
PT09PT09PT09PT09PT09PT09Ck1vcm5pbmcgU2Vzc2lvbiBFbmRzCj09PT09PT09PT09PT09PT09
PQoKCgo9PT09PT09PT09PT09PT09PT09PQpBZnRlcm5vb24gU2Vzc2lvbiBCZWdpbnMKPT09PT09
PT09PT09PT09PT09PT0KCgoKU2Vzc2lvbiAyMDE1LTExLTA0IDEzMDAtMTUwMDogUm9vbXMgNDEx
LzQxMiAtIEF1ZGlvIHN0cmVhbSAtIG5ldG1vZCBjaGF0cm9vbQoKV0VETkVTREFZLCBOb3ZlbWJl
ciA0LCAyMDE1CjAxMzAwLTE1MDAgKEFmdGVybm9vbiBTZXNzaW9uIDIpClBhY2lmaWNvIFlva29o
YW1hIFJvb21zIDQxMS80MTIKMiBob3VycyBvbiBORVRNT0QgTGFuZ3VhZ2UKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0gCgrCoMKgwqDCoMKgwqDCoMKgwqDCoAo1IG1pbjogQmx1ZSBzaGVl
dHMsIE5vdGUgd2VsbCwgU2NyaWJlcywgQWdlbmRhIEJhc2hpbmcgKENoYWlycykKwqDCoMKgwqDC
oMKgwqDCoMKgwqAKQ2hhcnRlcmVkIGl0ZW1zOgoKCjMwIG1pbjogZHJhZnQtaWV0Zi1uZXRtb2Qt
cmZjNjAyMGJpcy0wOMKgIChNYXJ0aW4gQmpvcmtsdW5kKQrCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqAKTWFydGluIEJqb3JrbHVuZCBwcmVzZW50aW5nLsKgCltMTF0gT3B0aW9uIEIgZG9lcyBub3Qg
bWFrZSBzZW5zZS4gSXQgbWFrZXMgc3VyZSB0aGF0IHRoZSBkZWZhdWx0IHZhbHVlcyBkbyBub3Qg
YmVjb21lIGludmFsaWQuIEl0IHNob3VsZCBiZSByZW1vdmVkIGJ5IHRoZSBpZi1mZWF0dXJlLiBJ
dCBpcyBnb29kIHRvIGlnbm9yZSB0aGUgZGVmYXVsdCB2YWx1ZXMuIEkgcHJvcG9zZSB0aGUgQyBv
cHRpb24uIE90aGVycyBhZGQgdW5uZWVkZWQgY29tcGxpY2F0aW9ucy7CoApbQlJdIFdoZW4gdGhl
IGZlYXR1cmUgaXMgbm90IHRoZXJlIHRoZW4gdGhlIGRlZmF1bHQgZG9lcyBub3QgbWFrZSBzZW5z
ZS4gV2hhdCB3b3VsZCBiZSB0aGUgZGVmYXVsdCB3aGVuIHRoZSBpZi1mZWF0dXJlIGlzIG5vdCB0
aGVyZT/CoApbTUJdIHRoZXJlIHdvdWxkIGJlIG5vIGRlZmF1bHQgdGhlbi7CoApbS1ddCUJSIG1h
a2VzIHNlbnNlLsKgCltNQl0gICBBcmUgeW91IHN1Z2dlc3RpbmcgbW9yZSB0aGFuIG9uZSBkZWZh
dWx0IGRlcGVuZGluZyBvbiBpZi1mZWF0dXJlP8KgCltLV10geWVzLsKgCltNQl0gICB0aGlzIGlz
IGNvbXBsaWNhdGVkLsKgCltLV10gbmVlZCB0byBzZWUgdXNlIGNhc2VzLsKgCltXSF0gdGhlcmUg
YXJlIHR3byBjb3JuZXIgY2FzZXMuIGlmIGRlZmF1bHQgZmVhdHVyZSBpcyBub3QgdGhlcmUsIGFu
ZCB3aGF0IGlmIHRoZSBmZWF0dXJlIGlzIG9uZSBvciBhbm90aGVyLCB0aGVuIHRoZXJlIGNvdWxk
IGJlIGRpZmZlcmVudCBkZWZhdWx0IHZhbHVlcy7CoApbTUJdICAgWWVzLCB0aGlzIGdldHMgY29t
cGxpY2F0ZWQuwqAKW01CXSAgIFdlIG5lZWQgdG8gY29udGludWUgdGhpcyBkaXNjdXNzaW9uIG9u
IHRoZSBsaXN0LsKgCltMTF0gW1JTXSBXaWx0b27igJlzIGRyYWZ0IGFscmVhZHkgdXNlcyB0aGlz
IGF1Z21lbnQgZmVhdHVyZS4gTXkgcHJvcG9zYWwgd291bGQgYmUgdG8gY2hhbmdlIG11c3Qgbm90
IHRvIHNob3VsZCBub3QsIGFuZCBiZSBhd2FyZSBvZiB3aHkgdGhpcyBpcyBuZWNlc3NhcnkuIFdl
IGNhbm5vdCBjaGVjayB3aGF0IHRoZSBhbGwgc2FmZSB1c2VzIGFyZS4gVGhlcmUgYXJlIHVzZSBj
YXNlcyB3aGVyZSB5b3UgbWF5IG5lZWQgdGhpcyBmdW5jdGlvbmFsaXR5LsKgCltNQl0gICB5ZXMu
wqAKW0xMXSB0aGluZ3MgbWF5IGJyZWFrIHdoZW4gcGVvcGxlIHVzZSBjb252b2x1dGVkIHdoZW4g
ZXhwcmVzc2lvbnMuIEhvd2V2ZXIsIHRoaXMgaXMgbm90IGRlZmF1bHQgYW5kIG5uZWVkcyB0byBi
ZSBlbmFibGVkIHNwZWNpZmljYWxseS4gVmVuZG9ycyBjYW4gdXNlIHRoaXMgdG8gZW5mb3JjZSBz
b21lIGNoZWNrcy7CoApbUlNdIFdpbHRvbi4gNjA4N2JpcyBoYXMgcHJvcG9zZWQgLi4uLi4KW01C
XSAgIHllcyB0aGVyZSBpcyBzb21lIHRleHQgaW4gNjA4N2JpcyB0aGF0IGRpc2N1c3NlcyB0aGUg
Y29uY2VybnMuwqAKW0xMXSBJcyB0aGlzIG5ldyBrZXl3b3JkIHJlYWxseSByZXF1aXJlZD/CoApb
TUJdICAgd2hlbiB5b3UgZG9uO3QgaGF2ZSBhIGtleSBzdGF0ZW1lbnQsIHRoZW4gdGhlcmUgaXMg
bm8gcmVzdHJpY3Rpb24gb24gdmFsdWVzLiBBbGwgdGhlIGxpc3QgdmFsdWVzIHRoYXQgYXJlIGNv
bnRhaW5lZCB0aGVyZSBhcmUgdW5pcXVlLiBUaGlzIHdvdWxkIG5lZWQgdG8gYmUgcmVsYXhlZC7C
oApbQVNdIHdoZW4geW91IHJldHJpZXZlIHRoZW0sIHRoZSBzZXJ2ZXIgcG90ZW50aWFsbHkgbmVl
ZHMgdG8gYmVoYXZlIGRpZmZlcmVudGx5LCBhcyB0aGUgdmFsdWVzIG1heSBiZSB0aGUgc2FtZT/C
oApbTUJdICAgdGhlIGRpZmZlcmVudCBrZXl3b3JkIHdvdWxkIGFsbG93IHRvIGhhdmUgdGhlIHNh
bWUgdmFsdWVzIGluIHRoZSBsaXN0LiBUaGUgY2xpZW50IHdvdWxkIGtub3cgdGhhdCB0aGUgdmFs
dWVzIG1heSBiZSB0aGUgc2FtZS7CoApbQVNdIHRoZSBzZXJ2ZXIgY291bGQganVzdCByZXR1cm4g
b25lIG9mIHRoZSB2YWx1ZXMuwqAKW01CXSAgIGlzIHRoaXMgYSBnb29kIGlkZWEgdG8gc3VwcG9y
dCwgYW5kIHRoZW4gcHJvY2VzcyB0aGluZyAtIGhvdyB0byBkbyB0aGF0LCBpcyBpdCBhIGZpeCB0
byB0aGUgY3VycmVudCBzcGVjLsKgCktlbnQvY29udHJpYnV0b3IgIEkgd29uZGVyIHdoZXRoZXIg
d2UgbmVlZCB0byBoYXZlIGEgc2VwYXJhdGUga2V5d29yZC4gVGhlIGlzc3VlIG1heSBiZSBmcm9t
IHRoZSBkYXRhIGRyaXZlbiBjbGllbnQuIFRoaXMgd291bGQgYmUgWUFORyAxLjEsIHNvIHRoZSBj
b21wbFtJRl0gdCBjbGllbnQgd291bGQgaGF2ZSB0byBzdXBwb3J0IHRoaXMuwqAKW01CXSAgIGNo
YW5naW5nIHRoZSBzZW1hbnRpY3Mgb2YgbGVhZi1saXN0IHNlZW1zIHNvbWV3aGF0IGF3a3dhcmQg
dG8gbWUgaWYgeW91IGRvbid0IGhhdmUgYSBrZXl3b3JkIGZvciB0aGlzLsKgCltMTF0gbWF5YmUg
aXQgaXMgd29ydGggbWVudGlvbmluZyB0aGF0IHRoZcKgQ09NSSBwcm90b2NvbCB1c2VzIHRoZSBt
YXBzIGluIG1hcHMgbWVjaGFuaXNtLCBhbmQgZ2VuZXJhbGx5IHBlb3BsZSB1c2UgWUFORyBmZWF0
dXJlcyBpbiBhIHdheSB0aGF0IHdlIGRpZCBub3QgaW5pdGlhbGx5IGV4cGVjdC4gUGVyaGFwcyBp
dCBjb3VsZCBiZSBkb25lIGluIFJFU1RPTkYgd2l0aCBubyBjaGFuZ2VzLCBidXQgSSBkb247dCBz
ZWUgdGhpcyBpbiBORVRDT05GLsKgCltSU10gIHRoaXMgaXMgYSBuaWNlIGZlYXR1cmUsIGEga2lu
ZCBvZiBsaXN0IGluIGEgbGlzdC4gSXQgd291bGQgYmUgZ29vZCB0byBoYXZlIHRoaXMgaW4gdGhl
IHNwZWNpZmljYXRpb24uwqAKW0xMXSB0aGUgY3VycmVudCB0ZXh0IHRhbGtzIGFib3V0IE5FVENP
TkYgc2VydmVyIGJlaGF2aW91ciwgYW5kIHRoZXJlIGNhbiBiZSB0d28gaW50ZXJwcmV0YXRpb25z
IG9uIHRoaXMuIEkgd291bGQgcHJvcG9zZSB0aGlzIHdoZXRoZXIgaXQgaXMgYXBwbGljYWJsZSB0
byB0aGUgZ2VuZXJpYyBiZWhhdmlvdXIuIFRoaXMgc2VlbXMgdG8gYmUgYSBiaW5nIGNoYW5nZSwg
YW5kIG5vdCBjZXJ0YWluIHdoZXRoZXIgdGhpcyBtYWtlcyBzZW5zZSBmb3IgYWxsIHByb3RvY29s
cy7CoApbV0hdwqAoQmVsYXN6IG9uIEphYmJlcinCoHRoZSBjdXJyZW50IGludGVyYWN0aW9ucyBh
cmUgdG9vIGNvbXBsaWNhdGVkLCB3ZSBuZWVkIHRvIHNpbXBsaWZ5IGl0LgpbUlNdIGlmIHdlIHdh
bnQgdG8gc2ltcGxpZnkgdGhpbmdzLCB3ZSBuZWVkIHRvIHJlbW92ZSBjaG9pY2UgY29tcGxldGVs
eS4gIEkgYW0gbm90IHByb3Bvc2luZyB0aGF0IHdlIGRvIHRoaXMuCltNQl0gSSBhZ3JlZS4KW1JT
XSB5b3UgbmVlZCB0byB0cmFjayB3aGljaCBicmFuY2ggZ2V0cyB1c2VkLiBJdCBkb2VzIG5vdCBl
eHBsaWNpdGx5IHNob3cgaW4gdGhlIHRyZWUuIEFuZCBmb3IgdGhvc2Ugd2hvIGRvIG5vdCBsaWtl
IHRoZXkgY291bGQgbm90IGltcGxlbWVudCBpdC4KW01CXSBUaGUgZGF0YSBtb2RlbCBkZXNpZ25l
ciBuZWVkcyB0byB1c2UgdGhlc2UgY29uc3RydWN0cyBjYXJlZnVsbHkuICAiY2hvaWNlIiBpcyBv
ZnRlbiB1c2VkIGluIHZlcnkgc21hbGwgdHJlZXMgb25seS4KCgoxMCBtaW46IGlldGYtbmV0bW9k
LXJmYzYwODdiaXMtMDXCoMKgwqDCoCAoQW5keSBCaWVybWFuKQpLZW50IFdhdHNvbiBwcmVzZW50
aW5nLgpObyBjb21tZW50cyBhbmQgcXVlc3Rpb25zLsKgCgoKNSBtaW46IGRyYWZ0LWlldGYtbmV0
bW9kLXlhbmctanNvbi0wNiAoTGFkaXNsYXYgTGhvdGthKQpMYWRpc2xhdiBMaG90a2EgcHJlc2Vu
dGluZy7CoApbTUJdICAgZW5jb2Rpbmcgb2YgYW55eG1sIC0gd2UgaGFkIHRoYXQgYmVmb3JlIHdl
IGhhZCBhbnlkYXRhLiBUaGUgY3VycmVudCBkb2N1bWVudCBzYXlzIHRoYXQgaW1wbGVtZW50YXRp
b24gY2FuIGRvIHdoYXRldmVyLCBhbmQgdGhhdCBpcyBub3QgaW50ZXJvcGVyYWJsZS4gV291bGQg
aXQgbWFrZSBzZW5zZSB0byBzYXkgdGhhdCBhbnl4bWwgaXMgZW5jb2RlZCBhcyBhIHN0cmVhbT8g
Tm90IHRoZSBuaWNlc3QgZW5jb2RpbmcgYnV0IHRoYXQgd291bGQgYmUgaW50ZXJvcGVyYWJsZS7C
oApbTExdIGFueXhtbCBpcyBhIGNvbnRhaW5lciBmb3IgYXJiaXRyYXJ5IGRhdGEgZXhjaGFuZ2Uu
IFRoZSBvbmx5IHJlc3RyaWN0aW9uIHRoYXQgdGhlIGRhdGEgZG9lcyBub3QgYnJlYWsgdGhlIHN5
bnRheC4gYW55eG1sIGlzIGZvciBlbmNvZGluZyBhcmJpdHJhcnkgeG1kIGRhdGEuIEl0IGNhbiBi
ZSBpbnRlcnByZXRlZCBpbiBkaWZmZXJlbnQgd2F5cyAtIHdoZXRoZXIgaXQgaXMgeG1sIGZvciBu
ZXRjb25mLCBvciAuLi4KW01CXSAgIGlmIGFueXhtbCBtZWFucyBzb21ldGhpbmcgbW9yZSB0aGFu
IGp1c3QgdHJhbnNwYXJlbnQgeG1sLCBtYXliZSB3ZSBuZWVkIHRvIGNoYW5nZSB0aGUgZGVmaW5p
dGlvbi4gd2UgaGF2ZSBhbnl4bWwgYW5kIGFueWRhdGEuwqAKW0xMXSBhbnlkYXRhIGlzIGZvciBk
YXRhIHRoYXQgY2FuIGJlIG1vZGVsbGVkLiBhbnl4bWwgd291bGQgYmUgZ29vZCB0aGF0IGRvZXMg
bm90IGZvbGxvdyBZQU5HIHJ1bGVzLsKgCltNQl0gICB0aGVuIGl0IGNvdWxkIGJlIHVzZWQgYXMg
YSBzcGVjaWFsIHR5cGUuwqAKW0xMXSBpdCBpcyBzaW1pbGFyIHByb2JsZW0gYXMgaW50ZXJwcmV0
aW5nIFJFU1RDT05GIGRlZmluaXRpb25zLsKgCihqYWJiZXIgLSBBbmR5KSAgc3RyaW5nIHdvdWxk
IG5vdCBiZSBuZWVkZWQgaWYgYW55ZGF0YSB3b3VsZCBub3QgYmUgdXNlZCBpbiB0aGUgZmlyc3Qg
cGxhY2UuCltMTF0gdGhlc2Ugc2VlbSB0byBiZSBtYXJnaW5hbCBpc3N1ZXMgb24gdGhlIGFueWRh
dGEgYW5kIGFueXhtbCB5ZXQgdGhleSBoYXBwZW4gb3ZlciBtYW55IElFVEYgbWVldGluZ3MuwqDC
oAoKCjEwIG1pbjogZHJhZnQtaWV0Zi1uZXRtb2QteWFuZy1tZXRhZGF0YS0wMiAoTGFkaXNsYXYg
TGhvdGthKQpMYWRpc2xhdiBMaG90a2EgcHJlc2VudGluZy7CoApbTUJdICAgaWYgd2UgZW5mb3Jj
ZSBhbm5vdGF0aW9ucywgc2hvdWxkIHRoZXkgYmUgYSBtb3JlIGdlbmVyaWMgb25lcz8gU2hvdWxk
IHRoZXJlIGJlIGEgbW9yZSBnZW5lcmljIFhNTCBlbmNvZGluZz8KW0xMXSB3ZSBoYXZlIHR3byBl
bmNvZGluZ3Mgc28gZmFyLiBFdmVyeSBpbXBsZW1lbnRhdGlvbiBzdXBwb3J0aW5nIGFueSBvZiB0
aG9zZSBzaG91bGQgYWxzbyBzdXBwb3J0IHRoaXMgYWRkaXRpb25hbCBlbmNvZGluZy7CoApbTUJd
ICAgY2xpZW50cyBzaG91bGQgaWdub3JlIHRoZSB1bmtub3duIGF0dHJpYnV0ZXMuCltKU10gLSBq
YWJiZXIgIGVuY29kaW5nIGlzc3VlcyBhcmUgZW5jb2RpbmcgYW5kIHByb3RvY29sIGNvbmNlcm4u
CltMTF0gd2UgbmVlZCB0byBkaXNjdXNzIHRoaXMgb24gdGhlIGxpc3QuwqDCoApbTUJdICAgYW5u
b3RhdGlvbnMgYXJlIHN1cHBvc2VkIHRvIGJlIHVzZWQgYXMgbGFzdCBtb2RpZmllZCwgb3IgbGFz
dCB1c2VkLiBPcHRpb24gQyBoZXJlIHdvdWxkIG1ha2UgYSBwYXJ0IG9mIGRhdGEgbW9kZWwuwqAK
W01CXSAgIEkgZG8gbm90IHRoaW5rIG9wdGlvbiBDIGlzIHByYWN0aWNhbC4gUmVnYXJkaW5nIG9w
dGlvbiBCIC0gYWxsIHRoZSBwcm9ibGVtcyB3aXRoIHdoZW4gYW5kIGlmLWZlYXR1cmU/IHdvdWxk
IGJlIGFwcGxpY2FibGUgaGVyZSB0b28uIFdvdWxkIGJlIGJldHRlciB0byB1c2UgZGVzY3JpcHRp
b24gc3RhdGVtZW50cy7CoApbS1ddIG9uZSBhcHByb2FjaCBjb3VsZCBiZSBZQU5HIHBhdGNoLiBC
dXQgZm9yIHRoYXQgeW91IG5lZWQgdG8gcmVmZXJlbmNlIGEgc3BlY2lmaWMgbW9kZWwuIE9wdGlv
biBCIC4uCltMTF0gaXQgc2VlbXMgdG8gYmUgZGlmZmljdWx0IHRvIGRvIC4uLi4gLsKgCltMTF0g
QW55IG9iamVjdGlvbnMgdG8gZ28gd2l0aCBvcHRpb24gQT/CoAoKCgpOb24tQ2hhcnRlcmVkIGl0
ZW1zOgoKMTUgbWluOiB2b2l0LW5ldG1vZC1wZWVyLW1vdW50LXJlcXVpcmVtZW50cy0wMyAoQWxl
eCBDbGVtbSkKQWxleCBDbGVtbSBwcmVzZW50aW5nLsKgCltKU10gIHdoZW4geW91IGFyZSByZWxv
Y2F0aW5nIHNvbWUgb2YgdGhlIG1vZGVscywgaXNuJ3QgdGhlcmUgYSBwcm9ibGVtIHdpdGggbGVh
ZiByZWZzIHdpdGggYWJzb2x1dGUgcGF0aHM/wqAKW0FDXSAgZ29vZCBwb2ludC4gQXV0aG9yaXRh
dGl2ZSBvd25lciBvZiB0aGUgbW9kZWwgcHJvdmlkZXMgYSB2aWV3LCBhbmQgdGhlIHVuZGVybHlp
bmcgbW9kZWwgaXRzZWxmIGRvZXMgbm90IGNoYW5nZS4gQnV0IHRoYXQgaXMgYSB2YWxpZCBpc3N1
ZS7CoApbTExdIGFyZSB5b3UgZGVhbGluZyBoZXJlIHdpdGggdHdvIGRpZmZlcmVudCBjb25jZXB0
cyAtIGFuIGFsdGVybmF0aXZlIHdheSBvZiBjb21iaW5pbmcgc2NoZW1hcywgbW9yZSBsaWtlIGEg
cHVsbCB0eXBlLCBhbmQgYW5vdGhlciBvbmUgaXMgYSBjb21iaW5hdGlvbiBvZiBkYXRhIHRyZWVz
IGZyb20gZGlmZmVyZW50IHJlbW90ZSBzb3VyY2VzLiBJIHRoaW5rIHRoZXNlIHR3byBjYXNlcyBz
aG91bGQgYmUgc2VwYXJhdGVkLiBJIHdvdWxkIGxpa2UgdG8gaGF2ZSB0aGUgYWJpbGl0eSB0byBj
b21iaW5lIHNjaGVtYXMsIGJ1dCBwZWVyIG1vdW50IGludm9sdmVzwqAgbG90IG9mIG5hc3R5IGlz
c3Vlcywgc2ltaWxhciBsaWtlIE5GUyBtb3VudCBkb2VzLiBXb3VsZCBiZSBiZXR0ZXIgdG8gc2Vw
YXJhdGXCoGFuZCBmb2N1cyBvbsKgbG9jYWwgaXNzdWVzIGZpcnN0LsKgCltBQ10gIHRoZXJlIGFy
ZSBpc3N1ZXMgd2l0aCB0aGUgcmVtb3RlIG1vdW50LiBTaG91bGQgd2UgcHJvdmlkZSBvbmx5IGEg
dmlldywgb2YgYWxzbyBhIGNvbmZpZ3VyYXRpb24gb3BlcmF0aW9uLiBUaGUgZm9jdXMgaXMgdG8g
cHJvdmlkZSBqdXN0IGEgdmlldywgYW5kIHRoZW4geW91IGF2b2lkIHRoZSBkZWFsaW5nIHdpdGgg
dHJhbnNhY3Rpb25zIGFuZCBsb2NraW5nLiBBbGlhcyBtb3VudMKgaXMgYSBzdWJzZXQgb2YgcmVt
b3RlIG1vdW50LCBhbmQgaXQgbWFrZXMgc2Vuc2UgdG8gc3RhcnQgd2l0aCBpdC4gVGhlcmUgYXJl
IGltcG9ydGFudCB1c2UgY2FzZXMgZm9yIGxvY2FsIG1vdW50LiBSZWdhcmRpbmcgc2NoZW1hIGV4
dGVuc2lvbiAtIG5vdCBzbyBjZXJ0YWluIHdoZXRoZXIgSSB3b3VsZCBsaWtlIHRvIHRha2UgaXQg
dGhlcmUuIEluaXRpYWwgcHVycG9zZSB3YXMganVzdCB0byBwcm92aWRlIGEgdmlldyBieSBtb3Vu
dGluZyBhIHN1YnRyZWUsIGJ1dCB5b3Ugc3RpbGwgaGF2ZSB0aGUgYXV0aG9yaXRhdGl2ZSB2YWxp
ZGF0ZWQgaW5mb3JtYXRpb24gbGl2aW5nIGVsc2V3aGVyZSwgeW91IGp1c3QgYWNjZXNzIGEgY29w
eSBvZiBpdCB2aWEgb3RoZXIgcGF0aC7CoApbTUJdICAgaXMgYWxpYXMgbW91bnQgcmVhZC1vbmx5
P8KgCltBQ10gIHllcywgaXQgZm9jdXNlcyBvbiByZXRyaWV2YWwuwqAKW01CXSAgIHRoYXQgc2Vl
bXMgdXNlZnVsIGluIHRoZSBjb250ZXh0IG9mIG9wZXJhdGlvbmFsIHN0YXRlIHJlcXVpcmVtZW50
c8Kgd2hlcmUgdGhlIG9wZXJhdGlvbmFsIHN0YXRlIGlzIGluIGEgZGlmZmVyZW50IHN0b3JlIGZy
b20gdGhlIGNvbmZpZy4KW0FDXSAgdGhlIGNvbmNlcHQgYXBwbGllcyB0byBhbnkgb3BlcmF0aW9u
LCBidXQgaW5pdGlhbCBmb2N1cyB3YXMgb24gcmV0cmlldmFsIGFzIHdlIGhhZCB1c2UgY2FzZXMg
Zm9yIHRoYXQuIFRoZXJlIGFyZSBhbHNvIG5vdGlmaWNhdGlvbnMgdGhhdCBuZWVkIHRvIGJlIGFk
ZHJlc3NlZC7CoApbS1ddIG5leHQgc3RlcHMgLSBpdCB3b3VsZCBiZSBnb29kIHRvIGZvY3VzIG9u
IHNjaGVtYSBjb21iaW5hdGlvbiBhbmQgcHV0IGEgZHJhZnQgdGhhdCBmb2N1c2VzIG9ubHkgb24g
dGhhdC7CoAoKCjEwIG1pbjogZHJhZnQtbWFuc2ZpZWxkLXVtbC10by15YW5nLTAxIChTY290dCBN
YW5zZmllbGQpClNjb3R0IE1hbnNmaWVsZCBwcmVzZW50aW5nLsKgCk5vIGNvbW1lbnRzIGFuZCBx
dWVzdGlvbnMuwqAKCgoxMCBtaW46IGJldHRzLW5ldG1vZC1mcmFtZXdvcmstZGF0YS1zY2hlbWEt
dW1sLTAyIChTY290dCBNYW5zZmllbGQpClNjb3R0IE1hbnNmaWVsZCBwcmVzZW50aW5nLsKgCltL
V10gSSBhbSBjdXJpb3VzIGFib3V0IHBlb3BsZSBpbnRlcmVzdGVkIGluIHRoaXMgd29yayAtIHBs
ZWFzZSBodW0uIEEgZmV3LsKgCgoKMTAgbWluOiBkcmFmdC1jaGVuLW5ldG1vZC1lbnRlcnByaXNl
LXlhbmctbmFtZXNwYWNlLTAwwqAgKEluZy1XaGVyIENoZW4pCkhlbGVuIChJbmctV2hlciBDaGVu
KSBwcmVzZW50aW5nLsKgCltLV10gbm90IGNlcnRhaW4gYWJvdXQgdGhlIHJ1bGVzIGZvciBjaGFu
Z2luZyB0aGUgbmFtZSBzcGFjZSBVUk5zLiBIYXZlIHlvdSBjaGVja2VkIHRoYXQ/CltJQ10uIFll
cy4gV2UgYXJlIHByb3Bvc2luZyBhIHNob3J0Y3V0IGZvciBkb2luZyB0aGF0LsKgCltLV10gYW5k
IHRoZSBhZHZhbnRhZ2Ugd291bGQgYmUgdGhhdCB0aG9zZSBtYXkgYmUgbWlzbGVhZGluZz/CoApb
TUJdICAgSXQgc2hvdWxkIGZvbGxvdyB0aGUgcnVsZXMgb2YgcmVnaXN0ZXJpbmcgdGhlIHVybi4g
TWF5YmUgd2UgbmVlZCB0byBkZWZpbmUgc29tZXRoaW5nIGdlbmVyaWMgdGhhdCBjb3VsZCBjb250
YWluIHNwZWNpZmljIG9uZXMgYmVuZWF0aD8KW0lDXSAgYWx0ZXJuYXRpdmUgcGF0dGVybsKgY291
bGQgYmUgdXJuICBmb2xsb3dlZCBieSByZXZlcnNlZCBETlMgbmFtZT/CoApbS1ddIHBsZWFzZSB0
YWtlIHRvIHRoZSBsaXN0LsKgCgoKMTUgbWluOiBkcmFmdC1lbnRpdHlkdC1uZXRtb2QtZW50aXR5
LTAwwqAgKE1hcnRpbiBCam9ya2x1bmQpCk1vdmVkIGZyb20gbW9ybmluZyBzZXNzaW9uLiAKTWFy
dGluIEJqb3JrbHVuZCBwcmVzZW50aW5nLsKgCltNQl0gICBob3cgbWFueSBoYXZlIHJlYWQgdGhl
IGRvY3VtZW50PyB2ZXJ5IGZldy4KW0tXXSB0aGlzIHNlZW1zIHRvIGJlIGltcG9ydGFudCB3b3Jr
IGJ1dCB0b28gZmV3IHBlb3BsZSBoYXZlIHJlYWQgaXQuwqAKW0RCXSBUaGlzIGlzIGltcG9ydGFu
dCB3b3JrLiBTRlBzIGFyZSBoYXJkd2FyZSwgYW5kIHRvIGZpbmQgb3V0IHdoYXQgU0ZQcyBhcmUg
aW4gdGhlIHBsYXRmb3JtIHdvdWxkIGJlIHZlcnkgdXNlZnVsLiBOb3QgY2VydGFpbiB3aGVyZSB0
aGlzIHdvcmsgY291bGQgYmUgZG9uZS7CoApbRFJdIGFuIG9ic2VydmF0aW9uIG9uIHRoZSBsb2dp
Y2FsIHBhcnQuIEVudGl0eSBNSUIgd2FzIGFsc28gdXBkYXRlZC7CoApbQkNdICB3ZSBoYXZlIHRv
IGRvIHRoaXMgYW55d2F5LCBhbmQgd2Uga25ldyB0aGF0IGZvciBzb21lIHRpbWUuwqAKCgo1IG1p
bjogZHJhZnQtd2lsdG9uLW5ldG1vZC1pbnRmLWV4dC15YW5nLTAxwqAgKFJvYmVydCBXaWx0b24p
Ck1vdmVkIGZyb20gbW9ybmluZyBzZXNzaW9uLgpSb2JlcnQgV2lsdG9uIHByZXNlbnRpbmcuCltM
TF0gSSB0aGluayB0aGlzIGlzIHJlYWxseSBuZWNlc3NhcnkgdG8gZG8sIGFuZCB0aGF0IGlzIG9u
ZSBvZiB0aGUgcmVhc29ucyB3aHkgZGVyaXZlIGZ1bmN0aW9uYWxpdHkgd2FzIGludHJvZHVjZWQu
IFtJRl0gYWlmdCB0eXBlcyBzZXJ2ZWQgcHVycG9zZXMgZm9yIFNOTVAgTUlCcy4gSSBkbyBub3Qg
cHJvcG9zZSB0byBvYnNvbGV0ZSB0aGVzZSB0eXBlcy4gV2UgbGlrZWx5IG5lZWQgYSB0cmVlIG9m
IGlkZW50aXRpZXMgdGhhdCBjb3VsZCBiZSB1c2VkLgpbUlddIFRoaXMgaXMgbW9yZSBvZiBhIGxh
YmVsIG9mIHRoZSBpbnRlcmZhY2UgdHlwZS4KW01CXSAgIFRoaXMgc2VlbXMgdG8gYmUgYSBuaWNl
IGlkZWEuIERlZmluaW5nIHRoZXNlIGlkZW50aXRpZXMgdGhhdCBkZWZpbmUgdGhlIHByb3BlcnRp
ZXMgb2YgaW50ZXJmYWNlIHNlZW1zIHVzZWZ1bCwgYW5kIHRoZW4gZGVyaXZlIHRoZSBhY3R1YWwg
aW50ZXJmYWNlIGlkZW50aXRpZXMgZnJvbSB0aG9zZSBpbnRlcmZhY2UgdGVjaG5vbG9neSB0eXBl
IGlkZW50aXRpZXMuIE1heWJlIHByb3BlcnR5IGlkZW50aXRpZXMgY291bGQgYmUgYSBzZXBhcmF0
ZSBtb2RlbC4KW1JXXSAgYXVnbWVudGF0aW9uIG5lZWRzIHRvIGJlIGluIHRoZSBzYW1lIG1vZHVs
ZSBhcyB0aGUgaWRlbnRpdHkgZGVmaW5pdGlvbi4KW01CXSAgIHRoYXQgaXMgYSBzaWRlIGVmZmVj
dCBvZiBhbGxvd2luZyBtYW5kYXRvcnkgYXVnbWVudHMuCltLV10gd2hvIGhhcyByZWFkIHRoZSBk
cmFmdCAgfjEwLiBXaG8gc3VwcG9ydHMgdGhlIGludGVyZmFjZSBleHRlbnNpb24gYmVpbmcgYWRv
cHRlZD8KW0tXXSBbU3VwcG9ydCBpbmRpY2F0ZWRdLiAgT0ssIGdvb2QuICBXaWxsIGNvbmZpcm0g
b24gdGhlIFdHIG1haWxpbmcgbGlzdC4KW0RSXSB3YWl0aW5nIGZvciBJRUVFIDgwMi4xUSBXRyBj
aGFpciAtIHdoYXQgaXMgdGhhdCAKW01KXSAgR2xlbiB0aGlua3MgdGhhdCB0aGUgZXh0ZW5zaW9u
IG9mIFZMQU4gWUFORyBtb2RlbCBzaG91bGQgYmUgaGFwcGVuaW5nIHRoZXJlIApbUlddIENvbmNl
cm4gaXMgb3ZlcmxhcCB3aXRoIHRoZSA4MDIuMVEgWUFORyBtb2RlbCBmb3IgYnJpZGdlcy4gIEJ1
dCB0aGlzIG1vZGVsIGRvZXNuJ3Qgb3ZlcmxhcCBiZWNhdXNlIGl0IGl0IG9ubHkgZGVmaW5lcyBh
biBpbnRlcmZhY2UgYmFzZWQgbW9kZWwgZm9yIGNsYXNzaWZpY2F0aW9uLgpbRFJdIGRvIHlvdSBo
YXZlIGFueSBtYWlsIGV4Y2hhbmdlcyBmb3IgdGhpcz8gTWF5YmUgdGhpcyBjb3VsZCBiZSByYWlz
ZWQgaW4gSUVFRSBwbGVuYXJ5LiBQbGVhc2UgZm9yd2FyZCBtZSBhbnkgZW1haWxzIG9uIHRoaXMg
ZGlzY3Vzc2lvbi4KCgo1IG1pbjogZHJhZnQtd2lsdG9uLW5ldG1vZC1pbnRmLXZsYW4teWFuZy0w
McKgIChSb2JlcnQgV2lsdG9uKQpNb3ZlZCBmcm9tIG1vcm5pbmcgc2Vzc2lvbi4KTm8gY29tbWVu
dHMgYW5kIHF1ZXN0aW9ucy7CoAoKCj09PT09PT09PT09PT09PT09PT09CkFmdGVybm9vbiBTZXNz
aW9uIEVuZHMKPT09PT09PT09PT09PT09PT09PT0KCg==

--_004_289891D550254CA7AE79F5B2A0291016junipernet_--


From nobody Wed Nov 25 00:26: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 EF0121A8AC8; Wed, 25 Nov 2015 00:26:43 -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 voh5LcxZOiZG; Wed, 25 Nov 2015 00:26:40 -0800 (PST)
Received: from trail.lhotka.name (trail.lhotka.name [77.48.224.143]) by ietfa.amsl.com (Postfix) with ESMTP id B31911A8AC6; Wed, 25 Nov 2015 00:26:39 -0800 (PST)
Received: from localhost (unknown [195.113.220.110]) by trail.lhotka.name (Postfix) with ESMTPSA id 0F83C1CC0187; Wed, 25 Nov 2015 09:26:39 +0100 (CET)
From: Ladislav Lhotka <lhotka@nic.cz>
To: "Acee Lindem \(acee\)" <acee@cisco.com>, Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <D27A2EC8.3F0A6%acee@cisco.com>
References: <D278C312.3EDF3%acee@cisco.com> <20151124.102441.1278595679799542000.mbj@tail-f.com> <D27A2EC8.3F0A6%acee@cisco.com>
User-Agent: Notmuch/0.21 (http://notmuchmail.org) Emacs/24.4.51.2 (x86_64-apple-darwin14.0.0)
Date: Wed, 25 Nov 2015 09:26:36 +0100
Message-ID: <m28u5mjxhf.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/1UD9XUmidJf0HXKIDv0kMidAXeE>
Cc: "rtg-yang-coord@ietf.org" <rtg-yang-coord@ietf.org>, "rtg-dt-yang-arch@ietf.org" <rtg-dt-yang-arch@ietf.org>, "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] [Rtg-yang-coord]  draft-ietf-netmod-routing-cfg
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 25 Nov 2015 08:26:44 -0000

"Acee Lindem (acee)" <acee@cisco.com> writes:

> Hi Martin,
>=20=20
> I think using the more generic term, =E2=80=9Cnetworking=E2=80=9D, at the=
 top would be
> preferable. What we need is an instance abstraction that covers L3

Hmm, shall we also rename "routing-protocol" to "networking-protocol"?
Seriously, I am concerned that we are drifting away from the original
focus of the data model. We should keep in mind it needs to remain
usable by hosts (even constrained ones) and simple routers because there
is no other model such devices could use.

> (e.g., virtual router or VRF), L2 (e.g., Virtual Switch Instance), or
> a combination (some EVPN, TRILL, etc). This could be used in lieu of
> each L2 model creating their own top separate list of instances. For
> example, the networking-instance could be augmented with both the VPLS
> and VPWS instances in
> https://tools.ietf.org/html/draft-shah-bess-l2vpn-yang-00.
>
> Some YANG models ascribe greatness from the start, others achieve
> greatness through refinement, while still others have greatness thrust
> upon them. routing-cfg would fall into the last category=E2=80=A6

If it ever gets finished.

Lada

>
> Thanks,
> Acee=20
>
> On 11/24/15, 4:24 AM, "Martin Bjorklund" <mbj@tail-f.com> wrote:
>
>>Hi,
>>
>>"Acee Lindem (acee)" <acee@cisco.com> wrote:
>>> We had a lot of good discussions at IETF 94 with respect to the
>>> ietf-routing and how it could be augmented in the future to support
>>>I2RS.
>>> These discussions are ongoing.
>>>=20
>>> One current change that I would like to propose is to change the base
>>> instance container from routing-instance to networking-instance.
>>
>>Is the idea to simply rename the "routing-instance" container to
>>"networking-instance"?
>>
>>Then we would have:
>>
>>   +--rw routing
>>      +--rw networking-instance
>>
>>Would you keep the top-level name "routing"?
>>
>>
>>
>>
>>/martin
>>
>>
>>
>>
>>> This
>>> would provide an instance definition that could be augmented for L2
>>> protocols and service functionality as well as L3. It is also consistent
>>> with the term used in both
>>> https://www.ietf.org/id/draft-rtgyangdt-rtgwg-device-model-01.txt and
>>> https://www.ietf.org/id/draft-openconfig-rtgwg-network-instance-01.txt.
>>>=20
>>> Thanks,
>>> Acee=20
>>>=20
>>> _______________________________________________
>>> netmod mailing list
>>> netmod@ietf.org
>>> https://www.ietf.org/mailman/listinfo/netmod
>>>=20
>
> _______________________________________________
> Rtg-yang-coord mailing list
> Rtg-yang-coord@ietf.org
> https://www.ietf.org/mailman/listinfo/rtg-yang-coord

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


From nobody Wed Nov 25 00:48:58 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 6C68D1B2AEF for <netmod@ietfa.amsl.com>; Wed, 25 Nov 2015 00:48:57 -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 RYwr4aDhd4ep for <netmod@ietfa.amsl.com>; Wed, 25 Nov 2015 00:48:56 -0800 (PST)
Received: from trail.lhotka.name (trail.lhotka.name [77.48.224.143]) by ietfa.amsl.com (Postfix) with ESMTP id C05C31B2AEE for <netmod@ietf.org>; Wed, 25 Nov 2015 00:48:55 -0800 (PST)
Received: from localhost (unknown [195.113.220.110]) by trail.lhotka.name (Postfix) with ESMTPSA id 8E70F1CC0187; Wed, 25 Nov 2015 09:48:58 +0100 (CET)
From: Ladislav Lhotka <lhotka@nic.cz>
To: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <20151123.140956.1414405859229447636.mbj@tail-f.com>
References: <09858705-2365-4B77-A233-91019B6BC681@nic.cz> <20151123.140956.1414405859229447636.mbj@tail-f.com>
User-Agent: Notmuch/0.21 (http://notmuchmail.org) Emacs/24.4.51.2 (x86_64-apple-darwin14.0.0)
Date: Wed, 25 Nov 2015 09:48:55 +0100
Message-ID: <m2610qjwg8.fsf@birdie.labs.nic.cz>
MIME-Version: 1.0
Content-Type: text/plain
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/UkRohffZXLpGBZe7aV7bE15Koms>
Cc: netmod@ietf.org
Subject: Re: [netmod] Y02: context 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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 25 Nov 2015 08:48:57 -0000

Hi,

I'd like to resolve this issue. Here is a complete example (valid, I believe):

module context {
  namespace "http://example.com/context";
  prefix ctx;

  leaf foo {
    config false;
    type uint32;
  }
  rpc oper {
    output {
      must "/foo mod foo = 0";
      leaf foo {
        type uint32;
      }
    }
  }
}

1. What does the accessible tree look like?

2. What is the context node for the "must" expression?

Thanks, Lada

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

> Ladislav Lhotka <lhotka@nic.cz> wrote:
>> Hi,
>> 
>> Y02-01 allows "must" as a substatement of "input", "output" and
>> "notification" but for these cases the specification of the context
>> node in sec. 7.5.3 doesn't work.
>> 
>>    o  The context node is the node in the accessible tree for which the
>>       "must" statement is defined.
>
> You are right.  But note how the accessible tree is defined.  There is
> a node for the operation / notification.  This node should be the
> context node:
>
>    o  If the "must" statement is a substatement of a "notification"
>       statement, the context node is the node representing the
>       notification in the accessible tree.
>
>    o  If the "must" statement is a substatement of a "input"
>       statement, the context node is the node representing the
>       operation in the accessible tree.
>
>    o  If the "must" statement is a substatement of a "output"
>       statement, the context node is the node representing the
>       operation in the accessible tree.
>
>
> /martin

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


From nobody Wed Nov 25 02:16: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 045B61A1A58 for <netmod@ietfa.amsl.com>; Wed, 25 Nov 2015 02:16:26 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.486
X-Spam-Level: 
X-Spam-Status: No, score=-2.486 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-0.585, 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 kLn_NyCOCAsR for <netmod@ietfa.amsl.com>; Wed, 25 Nov 2015 02:16:24 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id 5789F1A1A56 for <netmod@ietf.org>; Wed, 25 Nov 2015 02:16:24 -0800 (PST)
Received: from localhost (unknown [173.38.220.62]) by mail.tail-f.com (Postfix) with ESMTPSA id AE49D1AE0478; Wed, 25 Nov 2015 11:16:22 +0100 (CET)
Date: Wed, 25 Nov 2015 11:16:22 +0100 (CET)
Message-Id: <20151125.111622.1788981016001119642.mbj@tail-f.com>
To: lhotka@nic.cz
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <m2610qjwg8.fsf@birdie.labs.nic.cz>
References: <09858705-2365-4B77-A233-91019B6BC681@nic.cz> <20151123.140956.1414405859229447636.mbj@tail-f.com> <m2610qjwg8.fsf@birdie.labs.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=us-ascii
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/vSD-of_Bo0KWOjQXt91czv1tFss>
Cc: netmod@ietf.org
Subject: Re: [netmod] Y02: context 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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 25 Nov 2015 10:16:26 -0000

Ladislav Lhotka <lhotka@nic.cz> wrote:
> Hi,
> 
> I'd like to resolve this issue. Here is a complete example (valid, I believe):
> 
> module context {
>   namespace "http://example.com/context";
>   prefix ctx;
> 
>   leaf foo {
>     config false;
>     type uint32;
>   }
>   rpc oper {
>     output {
>       must "/foo mod foo = 0";
>       leaf foo {
>         type uint32;
>       }
>     }
>   }
> }
> 
> 1. What does the accessible tree look like?

Note that the anser to this depends on the outcomne of Y04.  Andy has
strong objections to Y04-02, and proposed Y04-04 instead.

Assuming Y04-02, and assuming /foo has the value 20 and the oper rpc's
result has foo = 10, the accessible tree would look like this:

   <root>
     +-- oper
     |   +-- foo = 10
     +-- foo = 20


(If we instead move back to Y04-04, the accessible tree would be:

   <root>
     +-- oper
         +-- foo = 10

)

> 2. What is the context node for the "must" expression?

 /oper


/martin



> 
> Thanks, Lada
> 
> Martin Bjorklund <mbj@tail-f.com> writes:
> 
> > Ladislav Lhotka <lhotka@nic.cz> wrote:
> >> Hi,
> >> 
> >> Y02-01 allows "must" as a substatement of "input", "output" and
> >> "notification" but for these cases the specification of the context
> >> node in sec. 7.5.3 doesn't work.
> >> 
> >>    o  The context node is the node in the accessible tree for which the
> >>       "must" statement is defined.
> >
> > You are right.  But note how the accessible tree is defined.  There is
> > a node for the operation / notification.  This node should be the
> > context node:
> >
> >    o  If the "must" statement is a substatement of a "notification"
> >       statement, the context node is the node representing the
> >       notification in the accessible tree.
> >
> >    o  If the "must" statement is a substatement of a "input"
> >       statement, the context node is the node representing the
> >       operation in the accessible tree.
> >
> >    o  If the "must" statement is a substatement of a "output"
> >       statement, the context node is the node representing the
> >       operation in the accessible tree.
> >
> >
> > /martin
> 
> -- 
> Ladislav Lhotka, CZ.NIC Labs
> PGP Key ID: E74E8C0C
> 


From nobody Wed Nov 25 02:30:53 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 63D3E1A1A7D for <netmod@ietfa.amsl.com>; Wed, 25 Nov 2015 02:30:52 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.936
X-Spam-Level: 
X-Spam-Status: No, score=-0.936 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, RP_MATCHES_RCVD=-0.585] 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 RT1sKA4qitiy for <netmod@ietfa.amsl.com>; Wed, 25 Nov 2015 02:30:50 -0800 (PST)
Received: from mail.nic.cz (mail.nic.cz [IPv6:2001:1488:800:400::400]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0AB8E1A1A79 for <netmod@ietf.org>; Wed, 25 Nov 2015 02:30:50 -0800 (PST)
Received: from [IPv6:2001:1488:fffe:6:ffff:ffff:ffff:22] (unknown [IPv6:2001:1488:fffe:6:ffff:ffff:ffff:22]) by mail.nic.cz (Postfix) with ESMTPSA id A1CC3181716; Wed, 25 Nov 2015 11:30:48 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nic.cz; s=default; t=1448447448; bh=WGMf2AbNsevTRwKZVU7SF1G8nD428sgL2vT8kK441A4=; h=From:Date:To; b=DYk8HCV1mSSFI9cJLWVw8XS8Jq66BS/PdQMK8GzHCYVxuhvn4CGVE0VN20QcKGbih RrY/vTaqggDCLjJyehYC8I2M8ACWM27rqh56gb2UzJ24F8255GRFK+NGbIHq90BR59 iEBznrH6aoUEshrzZhmVnTvPCj7nksZusHZVZZg4=
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
From: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <20151125.111622.1788981016001119642.mbj@tail-f.com>
Date: Wed, 25 Nov 2015 11:30:49 +0100
Content-Transfer-Encoding: quoted-printable
Message-Id: <DE6E5816-2610-4C06-8520-1A826983547C@nic.cz>
References: <09858705-2365-4B77-A233-91019B6BC681@nic.cz> <20151123.140956.1414405859229447636.mbj@tail-f.com> <m2610qjwg8.fsf@birdie.labs.nic.cz> <20151125.111622.1788981016001119642.mbj@tail-f.com>
To: =?utf-8?Q?Martin_Bj=C3=B6rklund?= <mbj@tail-f.com>
X-Mailer: Apple Mail (2.3096.5)
X-Virus-Scanned: clamav-milter 0.98.7 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/6h4Bnd6aQG5fP0fgxYsoSoDdMrs>
Cc: netmod@ietf.org
Subject: Re: [netmod] Y02: context 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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 25 Nov 2015 10:30:52 -0000

> On 25 Nov 2015, at 11:16, Martin Bjorklund <mbj@tail-f.com> wrote:
>=20
> Ladislav Lhotka <lhotka@nic.cz> wrote:
>> Hi,
>>=20
>> I'd like to resolve this issue. Here is a complete example (valid, I =
believe):
>>=20
>> module context {
>>  namespace "http://example.com/context";
>>  prefix ctx;
>>=20
>>  leaf foo {
>>    config false;
>>    type uint32;
>>  }
>>  rpc oper {
>>    output {
>>      must "/foo mod foo =3D 0";
>>      leaf foo {
>>        type uint32;
>>      }
>>    }
>>  }
>> }
>>=20
>> 1. What does the accessible tree look like?
>=20
> Note that the anser to this depends on the outcomne of Y04.  Andy has
> strong objections to Y04-02, and proposed Y04-04 instead.

Yes, I know.

>=20
> Assuming Y04-02, and assuming /foo has the value 20 and the oper rpc's
> result has foo =3D 10, the accessible tree would look like this:
>=20
>   <root>
>     +-- oper
>     |   +-- foo =3D 10
>     +-- foo =3D 20
>=20
>=20
> (If we instead move back to Y04-04, the accessible tree would be:
>=20
>   <root>
>     +-- oper
>         +-- foo =3D 10

IMO, neither option works. The accessible tree has to consist of =
existing instances of data nodes and <ctx:oper> doesn't exist in a RPC =
reply (as opposed to the corresponding RPC request), which is only

<nc:rpc-reply>
  <ctx:foo>42</ctx:foo>
</nc:rpc-reply>

Do you see what I mean?

Lada

> )
>=20
>> 2. What is the context node for the "must" expression?
>=20
> /oper
>=20
>=20
> /martin
>=20
>=20
>=20
>>=20
>> Thanks, Lada
>>=20
>> Martin Bjorklund <mbj@tail-f.com> writes:
>>=20
>>> Ladislav Lhotka <lhotka@nic.cz> wrote:
>>>> Hi,
>>>>=20
>>>> Y02-01 allows "must" as a substatement of "input", "output" and
>>>> "notification" but for these cases the specification of the context
>>>> node in sec. 7.5.3 doesn't work.
>>>>=20
>>>>   o  The context node is the node in the accessible tree for which =
the
>>>>      "must" statement is defined.
>>>=20
>>> You are right.  But note how the accessible tree is defined.  There =
is
>>> a node for the operation / notification.  This node should be the
>>> context node:
>>>=20
>>>   o  If the "must" statement is a substatement of a "notification"
>>>      statement, the context node is the node representing the
>>>      notification in the accessible tree.
>>>=20
>>>   o  If the "must" statement is a substatement of a "input"
>>>      statement, the context node is the node representing the
>>>      operation in the accessible tree.
>>>=20
>>>   o  If the "must" statement is a substatement of a "output"
>>>      statement, the context node is the node representing the
>>>      operation in the accessible tree.
>>>=20
>>>=20
>>> /martin
>>=20
>> --=20
>> Ladislav Lhotka, CZ.NIC Labs
>> PGP Key ID: E74E8C0C

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





From nobody Wed Nov 25 03: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 DF7D31A891D for <netmod@ietfa.amsl.com>; Wed, 25 Nov 2015 03:02:07 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.486
X-Spam-Level: 
X-Spam-Status: No, score=-2.486 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-0.585, 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 9ujgTGABHfpa for <netmod@ietfa.amsl.com>; Wed, 25 Nov 2015 03:02:02 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id 7710B1A88A7 for <netmod@ietf.org>; Wed, 25 Nov 2015 03:02:02 -0800 (PST)
Received: from localhost (unknown [173.38.220.62]) by mail.tail-f.com (Postfix) with ESMTPSA id 843DC1AE0478; Wed, 25 Nov 2015 12:02:01 +0100 (CET)
Date: Wed, 25 Nov 2015 12:02:01 +0100 (CET)
Message-Id: <20151125.120201.1741267874034609975.mbj@tail-f.com>
To: lhotka@nic.cz
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <DE6E5816-2610-4C06-8520-1A826983547C@nic.cz>
References: <m2610qjwg8.fsf@birdie.labs.nic.cz> <20151125.111622.1788981016001119642.mbj@tail-f.com> <DE6E5816-2610-4C06-8520-1A826983547C@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=us-ascii
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/TG9fTXuvK-B7-ZbF6eZ6NqSawMM>
Cc: netmod@ietf.org
Subject: Re: [netmod] Y02: context 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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 25 Nov 2015 11:02:08 -0000

Ladislav Lhotka <lhotka@nic.cz> wrote:
> 
> > On 25 Nov 2015, at 11:16, Martin Bjorklund <mbj@tail-f.com> wrote:
> > 
> > Ladislav Lhotka <lhotka@nic.cz> wrote:
> >> Hi,
> >> 
> >> I'd like to resolve this issue. Here is a complete example (valid, I believe):
> >> 
> >> module context {
> >>  namespace "http://example.com/context";
> >>  prefix ctx;
> >> 
> >>  leaf foo {
> >>    config false;
> >>    type uint32;
> >>  }
> >>  rpc oper {
> >>    output {
> >>      must "/foo mod foo = 0";
> >>      leaf foo {
> >>        type uint32;
> >>      }
> >>    }
> >>  }
> >> }
> >> 
> >> 1. What does the accessible tree look like?
> > 
> > Note that the anser to this depends on the outcomne of Y04.  Andy has
> > strong objections to Y04-02, and proposed Y04-04 instead.
> 
> Yes, I know.
> 
> > 
> > Assuming Y04-02, and assuming /foo has the value 20 and the oper rpc's
> > result has foo = 10, the accessible tree would look like this:
> > 
> >   <root>
> >     +-- oper
> >     |   +-- foo = 10
> >     +-- foo = 20
> > 
> > 
> > (If we instead move back to Y04-04, the accessible tree would be:
> > 
> >   <root>
> >     +-- oper
> >         +-- foo = 10
> 
> IMO, neither option works. The accessible tree has to consist of existing instances of data nodes and <ctx:oper> doesn't exist in a RPC reply (as opposed to the corresponding RPC request), which is only
> 
> <nc:rpc-reply>
>   <ctx:foo>42</ctx:foo>
> </nc:rpc-reply>
> 
> Do you see what I mean?

Yes, but this is NETCONF-specific.  We need to have a solution that
works for other protocol.  IMO, the peer must conceptually build a
tree that looks like the one I showed above.


/martin


From nobody Wed Nov 25 03:28:09 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 1DE041B2B9E for <netmod@ietfa.amsl.com>; Wed, 25 Nov 2015 03:28:08 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.936
X-Spam-Level: 
X-Spam-Status: No, score=-5.936 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, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-0.585] 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 D7aYZ81Q3bek for <netmod@ietfa.amsl.com>; Wed, 25 Nov 2015 03:28:06 -0800 (PST)
Received: from mail.nic.cz (mail.nic.cz [217.31.204.67]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1E0681B2B9C for <netmod@ietf.org>; Wed, 25 Nov 2015 03:28:04 -0800 (PST)
Received: from [IPv6:2001:1488:fffe:6:ffff:ffff:ffff:22] (unknown [IPv6:2001:1488:fffe:6:ffff:ffff:ffff:22]) by mail.nic.cz (Postfix) with ESMTPSA id 6F146181441; Wed, 25 Nov 2015 12:28:01 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nic.cz; s=default; t=1448450881; bh=zX9mvLvvo+hjPXo4pSdBkO4GCLn/wbu/vn3Stq7a1I4=; h=From:Date:To; b=GT6mYwE7kFSb/qTjFAPR/SiX0YIwIfiwgISkPiH3iattVUcVkRYvpn5drvD2mAr2S oolZ6rQS4CvUSGlRotigeXrB/+X4Yj1y2pt3cr2SIJ6OM1nHOKr1Ta6UPhYHe7w43s AQ0PAc0W7D85Ki2QfVSZ8Q3kFeeZqYpRxtKjN3Zw=
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
From: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <20151125.120201.1741267874034609975.mbj@tail-f.com>
Date: Wed, 25 Nov 2015 12:28:01 +0100
Content-Transfer-Encoding: quoted-printable
Message-Id: <8E67E2F8-49BA-4528-88C4-A5D2CBCD6FD2@nic.cz>
References: <m2610qjwg8.fsf@birdie.labs.nic.cz> <20151125.111622.1788981016001119642.mbj@tail-f.com> <DE6E5816-2610-4C06-8520-1A826983547C@nic.cz> <20151125.120201.1741267874034609975.mbj@tail-f.com>
To: =?utf-8?Q?Martin_Bj=C3=B6rklund?= <mbj@tail-f.com>
X-Mailer: Apple Mail (2.3096.5)
X-Virus-Scanned: clamav-milter 0.98.7 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/vu4-wSKp0btNQrYx_qh_aVlJt4Q>
Cc: netmod@ietf.org
Subject: Re: [netmod] Y02: context 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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 25 Nov 2015 11:28:08 -0000

> On 25 Nov 2015, at 12:02, Martin Bjorklund <mbj@tail-f.com> wrote:
>=20
> Ladislav Lhotka <lhotka@nic.cz> wrote:
>>=20
>>> On 25 Nov 2015, at 11:16, Martin Bjorklund <mbj@tail-f.com> wrote:
>>>=20
>>> Ladislav Lhotka <lhotka@nic.cz> wrote:
>>>> Hi,
>>>>=20
>>>> I'd like to resolve this issue. Here is a complete example (valid, =
I believe):
>>>>=20
>>>> module context {
>>>> namespace "http://example.com/context";
>>>> prefix ctx;
>>>>=20
>>>> leaf foo {
>>>>   config false;
>>>>   type uint32;
>>>> }
>>>> rpc oper {
>>>>   output {
>>>>     must "/foo mod foo =3D 0";
>>>>     leaf foo {
>>>>       type uint32;
>>>>     }
>>>>   }
>>>> }
>>>> }
>>>>=20
>>>> 1. What does the accessible tree look like?
>>>=20
>>> Note that the anser to this depends on the outcomne of Y04.  Andy =
has
>>> strong objections to Y04-02, and proposed Y04-04 instead.
>>=20
>> Yes, I know.
>>=20
>>>=20
>>> Assuming Y04-02, and assuming /foo has the value 20 and the oper =
rpc's
>>> result has foo =3D 10, the accessible tree would look like this:
>>>=20
>>>  <root>
>>>    +-- oper
>>>    |   +-- foo =3D 10
>>>    +-- foo =3D 20
>>>=20
>>>=20
>>> (If we instead move back to Y04-04, the accessible tree would be:
>>>=20
>>>  <root>
>>>    +-- oper
>>>        +-- foo =3D 10
>>=20
>> IMO, neither option works. The accessible tree has to consist of =
existing instances of data nodes and <ctx:oper> doesn't exist in a RPC =
reply (as opposed to the corresponding RPC request), which is only
>>=20
>> <nc:rpc-reply>
>>  <ctx:foo>42</ctx:foo>
>> </nc:rpc-reply>
>>=20
>> Do you see what I mean?
>=20
> Yes, but this is NETCONF-specific.  We need to have a solution that
> works for other protocol.  IMO, the peer must conceptually build a
> tree that looks like the one I showed above.

OK, but if so, it has to be described in the spec. If we don't combine =
the input/output trees with configuration and state data (Y04-04), then =
the accessible tree in my example could be simply

<root>
  +-- foo =3D 10

Lada

>=20
>=20
> /martin

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





From nobody Wed Nov 25 04:25:36 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 81AE01B2C1A for <netmod@ietfa.amsl.com>; Wed, 25 Nov 2015 04:25:34 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.435
X-Spam-Level: 
X-Spam-Status: No, score=-4.435 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-0.585] autolearn=unavailable
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id KkE3AFaNqptY for <netmod@ietfa.amsl.com>; Wed, 25 Nov 2015 04:25:23 -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 BAA061B2C19 for <netmod@ietf.org>; Wed, 25 Nov 2015 04:25:22 -0800 (PST)
Received: from localhost (demetrius5.irc-it.jacobs-university.de [10.70.0.222]) by atlas3.jacobs-university.de (Postfix) with ESMTP id E36EB111C; Wed, 25 Nov 2015 13:25:20 +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 xavYMHyI9SMQ; Wed, 25 Nov 2015 13:25: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; Wed, 25 Nov 2015 13:25:20 +0100 (CET)
Received: from localhost (demetrius3.jacobs-university.de [212.201.44.48]) by hermes.jacobs-university.de (Postfix) with ESMTP id 31E2F2004E; Wed, 25 Nov 2015 13:25:20 +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 QCRfpMv9E8HW; Wed, 25 Nov 2015 13:25:19 +0100 (CET)
Received: from elstar.local (elstar.jacobs.jacobs-university.de [10.50.231.133]) by hermes.jacobs-university.de (Postfix) with ESMTP id 643F62003B; Wed, 25 Nov 2015 13:25:19 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id EB9A83906207; Wed, 25 Nov 2015 13:25:17 +0100 (CET)
Date: Wed, 25 Nov 2015 13:25:16 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Ladislav Lhotka <lhotka@nic.cz>
Message-ID: <20151125122516.GA33432@elstar.local>
Mail-Followup-To: Ladislav Lhotka <lhotka@nic.cz>, Martin Bjorklund <mbj@tail-f.com>, netmod@ietf.org
References: <09858705-2365-4B77-A233-91019B6BC681@nic.cz> <20151123.140956.1414405859229447636.mbj@tail-f.com> <m2610qjwg8.fsf@birdie.labs.nic.cz>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <m2610qjwg8.fsf@birdie.labs.nic.cz>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/r_4rGDjciBnycRspTlAbmOMGwX8>
Cc: netmod@ietf.org
Subject: Re: [netmod] Y02: context node
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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 25 Nov 2015 12:25:34 -0000

On Wed, Nov 25, 2015 at 09:48:55AM +0100, Ladislav Lhotka wrote:
> Hi,
> 
> I'd like to resolve this issue. Here is a complete example (valid, I believe):
>

Sorry for asking a stupid question but what is the use case of
referencing state data from an xpath expression in RPC input or
output parameters?

/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 Nov 25 04:31: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 DC7901B2C1F for <netmod@ietfa.amsl.com>; Wed, 25 Nov 2015 04:31:08 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.486
X-Spam-Level: 
X-Spam-Status: No, score=-2.486 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-0.585, 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 8Uk0mKdVzdPQ for <netmod@ietfa.amsl.com>; Wed, 25 Nov 2015 04:31:03 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id CD5DA1B2C1E for <netmod@ietf.org>; Wed, 25 Nov 2015 04:31:02 -0800 (PST)
Received: from localhost (unknown [173.38.220.62]) by mail.tail-f.com (Postfix) with ESMTPSA id 1DB141AE0478; Wed, 25 Nov 2015 13:31:01 +0100 (CET)
Date: Wed, 25 Nov 2015 13:31:01 +0100 (CET)
Message-Id: <20151125.133101.1267926465819295694.mbj@tail-f.com>
To: j.schoenwaelder@jacobs-university.de
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <20151125122516.GA33432@elstar.local>
References: <20151123.140956.1414405859229447636.mbj@tail-f.com> <m2610qjwg8.fsf@birdie.labs.nic.cz> <20151125122516.GA33432@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/FlBdw4drKxGzxTPyp9yxEUkDugY>
Cc: netmod@ietf.org
Subject: Re: [netmod] Y02: context 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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 25 Nov 2015 12:31:09 -0000

Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote:
> On Wed, Nov 25, 2015 at 09:48:55AM +0100, Ladislav Lhotka wrote:
> > Hi,
> > 
> > I'd like to resolve this issue. Here is a complete example (valid, I believe):
> >
> 
> Sorry for asking a stupid question but what is the use case of
> referencing state data from an xpath expression in RPC input or
> output parameters?

It all started with leafrefs in notifications.  The algorithm in RFC
6643 produces leafrefs from notifications to state data.  See Y04.

For the same reason, you may want to reference let's say an interface
name in the /interfaces-state/interface list from an RPC input
parameter.


/martin


From nobody Wed Nov 25 05:06: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 E399D1B2C33 for <netmod@ietfa.amsl.com>; Wed, 25 Nov 2015 05:06:40 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.435
X-Spam-Level: 
X-Spam-Status: No, score=-4.435 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-0.585] 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 NusIoRtUNmXq for <netmod@ietfa.amsl.com>; Wed, 25 Nov 2015 05:06: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 3658D1B2C48 for <netmod@ietf.org>; Wed, 25 Nov 2015 05:06: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 0BB94FB5; Wed, 25 Nov 2015 14:06: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 vRsdqqPE-7G5; Wed, 25 Nov 2015 14:06:32 +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 Nov 2015 14:06:32 +0100 (CET)
Received: from localhost (demetrius1.jacobs-university.de [212.201.44.46]) by hermes.jacobs-university.de (Postfix) with ESMTP id 240782004E; Wed, 25 Nov 2015 14:06: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 VLDBkTWJ5DuV; Wed, 25 Nov 2015 14:06: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 A9AF72003B; Wed, 25 Nov 2015 14:06:30 +0100 (CET)
Received: by elstar.local (Postfix, from userid 501) id 7837F390631E; Wed, 25 Nov 2015 14:06:29 +0100 (CET)
Date: Wed, 25 Nov 2015 14:06:28 +0100
From: Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>
To: Martin Bjorklund <mbj@tail-f.com>
Message-ID: <20151125130626.GC33563@elstar.local>
Mail-Followup-To: Martin Bjorklund <mbj@tail-f.com>, lhotka@nic.cz, netmod@ietf.org
References: <20151123.140956.1414405859229447636.mbj@tail-f.com> <m2610qjwg8.fsf@birdie.labs.nic.cz> <20151125122516.GA33432@elstar.local> <20151125.133101.1267926465819295694.mbj@tail-f.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20151125.133101.1267926465819295694.mbj@tail-f.com>
User-Agent: Mutt/1.4.2.3i
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/3v7hSr10n9PdngpyrY0w3T9a8ws>
Cc: netmod@ietf.org
Subject: Re: [netmod] Y02: context node
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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 25 Nov 2015 13:06:41 -0000

On Wed, Nov 25, 2015 at 01:31:01PM +0100, Martin Bjorklund wrote:
> Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote:
> > On Wed, Nov 25, 2015 at 09:48:55AM +0100, Ladislav Lhotka wrote:
> > > Hi,
> > > 
> > > I'd like to resolve this issue. Here is a complete example (valid, I believe):
> > >
> > 
> > Sorry for asking a stupid question but what is the use case of
> > referencing state data from an xpath expression in RPC input or
> > output parameters?
> 
> It all started with leafrefs in notifications.  The algorithm in RFC
> 6643 produces leafrefs from notifications to state data.  See Y04.
> 
> For the same reason, you may want to reference let's say an interface
> name in the /interfaces-state/interface list from an RPC input
> parameter.
>

Yes, but where does xpath come into play?

/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 Nov 25 05:15:55 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 40A831A1C06 for <netmod@ietfa.amsl.com>; Wed, 25 Nov 2015 05:15:53 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.486
X-Spam-Level: 
X-Spam-Status: No, score=-2.486 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-0.585, 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 oDiXlYZi67Sn for <netmod@ietfa.amsl.com>; Wed, 25 Nov 2015 05:15:52 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id 276941A1C00 for <netmod@ietf.org>; Wed, 25 Nov 2015 05:15:52 -0800 (PST)
Received: from localhost (unknown [173.38.220.62]) by mail.tail-f.com (Postfix) with ESMTPSA id 251FD1AE049B; Wed, 25 Nov 2015 14:15:51 +0100 (CET)
Date: Wed, 25 Nov 2015 14:15:51 +0100 (CET)
Message-Id: <20151125.141551.983592954992865289.mbj@tail-f.com>
To: j.schoenwaelder@jacobs-university.de
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <20151125130626.GC33563@elstar.local>
References: <20151125122516.GA33432@elstar.local> <20151125.133101.1267926465819295694.mbj@tail-f.com> <20151125130626.GC33563@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/AcpU969xTZ2l6syx0-Ug9TPA2Do>
Cc: netmod@ietf.org
Subject: Re: [netmod] Y02: context 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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 25 Nov 2015 13:15:53 -0000

Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote:
> On Wed, Nov 25, 2015 at 01:31:01PM +0100, Martin Bjorklund wrote:
> > Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote:
> > > On Wed, Nov 25, 2015 at 09:48:55AM +0100, Ladislav Lhotka wrote:
> > > > Hi,
> > > > 
> > > > I'd like to resolve this issue. Here is a complete example (valid, I believe):
> > > >
> > > 
> > > Sorry for asking a stupid question but what is the use case of
> > > referencing state data from an xpath expression in RPC input or
> > > output parameters?
> > 
> > It all started with leafrefs in notifications.  The algorithm in RFC
> > 6643 produces leafrefs from notifications to state data.  See Y04.
> > 
> > For the same reason, you may want to reference let's say an interface
> > name in the /interfaces-state/interface list from an RPC input
> > parameter.
> >
> 
> Yes, but where does xpath come into play?

The leafref's path is XPath.  See the example in Y04.  It might be
surprising that this is illegal (if we do Y04-04):

   rpc foo {
     input {
       leaf ifref {
         type leafref {
           path "/if:interfaces-state/if:interface/if:name";
         }
         must "/if:interfaces-state/if:interface[if:name = current()/ifref]"
            + "/if:enabled";
       }
     }
   }

The leafref is legal, but the must expression would be illegal.


/martin

         


From nobody Wed Nov 25 09:02: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 0956A1A21C4 for <netmod@ietfa.amsl.com>; Wed, 25 Nov 2015 09:02:01 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level: 
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=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 ioYU5w2W-83c for <netmod@ietfa.amsl.com>; Wed, 25 Nov 2015 09:01:58 -0800 (PST)
Received: from mail-lf0-x22a.google.com (mail-lf0-x22a.google.com [IPv6:2a00:1450:4010:c07::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 54A061A21B0 for <netmod@ietf.org>; Wed, 25 Nov 2015 09:01:58 -0800 (PST)
Received: by lfs39 with SMTP id 39so65504857lfs.3 for <netmod@ietf.org>; Wed, 25 Nov 2015 09:01:56 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=wZaO1H9S7A9O/UdtYg2C7ilw2TfToVKIcv8/HlAaT4A=; b=vqQxIJ7Kq/nqr/OMCy3BiVK1ggExqkBOtFM3e3HRMNGzynOODiCFFNtiHgKtedNCKP w1kXbCJhhDazCzMyJyUxyRvSPYcSnLGWS7ov6og6L6SXwPKXdvsN4PdT42X2nE3pL4xd H/eUgUVNffpgxKfXsRLGLuOiSjoU/Gwpt0NKSUcbb08QZuwSIBGwZwr0N0oTNXOlqFOe /vJU2DfY/A3toon3azFruePIQ6sI7HRHceorWK6MPggOf9IUP5p9vBLyN+U1pqZVSj7Q aIDeImC1C84ggteHx52wT8ZozgemB7FUtK01iIyG1XxJ0/bqQliDFRKvQImEl9XlIxJj Wkbw==
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=wZaO1H9S7A9O/UdtYg2C7ilw2TfToVKIcv8/HlAaT4A=; b=YYZQfO30DeFAiMvOzjt56db89OLAPSaK3wZGWGhQjie4Q/PS23N5QhU7Py+Gq3IHCX r3180j2KquTOiNZkrNvuCSHvT8mYEfX6qnZfG9/kEkYHcdT12HtF2R5PmP9nBXbX/4Ab PVbfbN1rjbq4V35eH2wk986oRQJeZFRnB4t6f4Ow4UiMM95eHZX4TudO26lgC7Smz7l/ qXxQDuBtqcexQhn5Ovh13LhNGd6KwMmxQ1wthrh1X11IOiHQj99MwUSb52NV+i1EMd65 V/ciBTl2ATXig/akdcgFo/NYMs7i0rGqg0oU+Hib1s9ishr39MijrFCGrGJpUza+YaXs BwWw==
X-Gm-Message-State: ALoCoQmQYQ9gszbXlKYmdrpBFRXxpcQkvCseBMkEDGlRWvJW9CcYC4+QXSMuxM/evRC72mHMK9zU
MIME-Version: 1.0
X-Received: by 10.112.157.166 with SMTP id wn6mr15855143lbb.30.1448470916359;  Wed, 25 Nov 2015 09:01:56 -0800 (PST)
Received: by 10.112.144.36 with HTTP; Wed, 25 Nov 2015 09:01:56 -0800 (PST)
In-Reply-To: <20151125.141551.983592954992865289.mbj@tail-f.com>
References: <20151125122516.GA33432@elstar.local> <20151125.133101.1267926465819295694.mbj@tail-f.com> <20151125130626.GC33563@elstar.local> <20151125.141551.983592954992865289.mbj@tail-f.com>
Date: Wed, 25 Nov 2015 09:01:56 -0800
Message-ID: <CABCOCHSUd-+f5tEEGae0b4FZ9k-8syCAaz5YbJrm9Cxt9wF7xQ@mail.gmail.com>
From: Andy Bierman <andy@yumaworks.com>
To: Martin Bjorklund <mbj@tail-f.com>
Content-Type: multipart/alternative; boundary=001a11c264167005930525606abd
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/PGEzBoJ8DLhw85KrymleIlKasZI>
Cc: "netmod@ietf.org" <netmod@ietf.org>
Subject: Re: [netmod] Y02: context 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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 25 Nov 2015 17:02:01 -0000

--001a11c264167005930525606abd
Content-Type: text/plain; charset=UTF-8

On Wed, Nov 25, 2015 at 5:15 AM, Martin Bjorklund <mbj@tail-f.com> wrote:

> Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote:
> > On Wed, Nov 25, 2015 at 01:31:01PM +0100, Martin Bjorklund wrote:
> > > Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de> wrote:
> > > > On Wed, Nov 25, 2015 at 09:48:55AM +0100, Ladislav Lhotka wrote:
> > > > > Hi,
> > > > >
> > > > > I'd like to resolve this issue. Here is a complete example (valid,
> I believe):
> > > > >
> > > >
> > > > Sorry for asking a stupid question but what is the use case of
> > > > referencing state data from an xpath expression in RPC input or
> > > > output parameters?
> > >
> > > It all started with leafrefs in notifications.  The algorithm in RFC
> > > 6643 produces leafrefs from notifications to state data.  See Y04.
> > >
> > > For the same reason, you may want to reference let's say an interface
> > > name in the /interfaces-state/interface list from an RPC input
> > > parameter.
> > >
> >
> > Yes, but where does xpath come into play?
>
> The leafref's path is XPath.  See the example in Y04.  It might be
> surprising that this is illegal (if we do Y04-04):
>
>    rpc foo {
>      input {
>        leaf ifref {
>          type leafref {
>            path "/if:interfaces-state/if:interface/if:name";
>          }
>          must "/if:interfaces-state/if:interface[if:name =
> current()/ifref]"
>             + "/if:enabled";
>        }
>      }
>    }
>
> The leafref is legal, but the must expression would be illegal.
>
>
>
I agree with Juergen about questioning the need for this new feature.
The path expression is limited.  XPath is not limited at all.
The code to find the "pointed-at" leaf is much simpler than full XPath.



> /martin
>
>
Andy


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

--001a11c264167005930525606abd
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On Wed, Nov 25, 2015 at 5:15 AM, Martin Bjorklund <span dir=3D"ltr">&lt=
;<a href=3D"mailto:mbj@tail-f.com" target=3D"_blank">mbj@tail-f.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">Juergen Schoenwaelder &lt;=
<a href=3D"mailto:j.schoenwaelder@jacobs-university.de">j.schoenwaelder@jac=
obs-university.de</a>&gt; wrote:<br>
&gt; On Wed, Nov 25, 2015 at 01:31:01PM +0100, Martin Bjorklund wrote:<br>
&gt; &gt; Juergen Schoenwaelder &lt;<a href=3D"mailto:j.schoenwaelder@jacob=
s-university.de">j.schoenwaelder@jacobs-university.de</a>&gt; wrote:<br>
&gt; &gt; &gt; On Wed, Nov 25, 2015 at 09:48:55AM +0100, Ladislav Lhotka wr=
ote:<br>
&gt; &gt; &gt; &gt; Hi,<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; I&#39;d like to resolve this issue. Here is a complete =
example (valid, I believe):<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Sorry for asking a stupid question but what is the use case =
of<br>
&gt; &gt; &gt; referencing state data from an xpath expression in RPC input=
 or<br>
&gt; &gt; &gt; output parameters?<br>
&gt; &gt;<br>
&gt; &gt; It all started with leafrefs in notifications.=C2=A0 The algorith=
m in RFC<br>
&gt; &gt; 6643 produces leafrefs from notifications to state data.=C2=A0 Se=
e Y04.<br>
&gt; &gt;<br>
&gt; &gt; For the same reason, you may want to reference let&#39;s say an i=
nterface<br>
&gt; &gt; name in the /interfaces-state/interface list from an RPC input<br=
>
&gt; &gt; parameter.<br>
&gt; &gt;<br>
&gt;<br>
&gt; Yes, but where does xpath come into play?<br>
<br>
The leafref&#39;s path is XPath.=C2=A0 See the example in Y04.=C2=A0 It mig=
ht be<br>
surprising that this is illegal (if we do Y04-04):<br>
<br>
=C2=A0 =C2=A0rpc foo {<br>
=C2=A0 =C2=A0 =C2=A0input {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0leaf ifref {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0type leafref {<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0path &quot;/if:interfaces-state/if=
:interface/if:name&quot;;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0must &quot;/if:interfaces-state/if:interf=
ace[if:name =3D current()/ifref]&quot;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 + &quot;/if:enabled&quot;;<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0 =C2=A0}<br>
=C2=A0 =C2=A0}<br>
<br>
The leafref is legal, but the must expression would be illegal.<br>
<br>
<br></blockquote><div><br></div><div>I agree with Juergen about questioning=
 the need for this new feature.</div><div>The path expression is limited.=
=C2=A0 XPath is not limited at all.</div><div>The code to find the &quot;po=
inted-at&quot; leaf is much simpler than full XPath.</div><div><br></div><d=
iv>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex=
;border-left:1px #ccc solid;padding-left:1ex">
/martin<br>
<br></blockquote><div><br></div><div>Andy</div><div>=C2=A0</div><blockquote=
 class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc soli=
d;padding-left:1ex">
<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" rel=3D"noreferrer"=
 target=3D"_blank">https://www.ietf.org/mailman/listinfo/netmod</a><br>
</blockquote></div><br></div></div>

--001a11c264167005930525606abd--


From nobody Thu Nov 26 10:27: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 F38F41A1EFA for <netmod@ietfa.amsl.com>; Thu, 26 Nov 2015 10:27:47 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -15.085
X-Spam-Level: 
X-Spam-Status: No, score=-15.085 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, RP_MATCHES_RCVD=-0.585, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 2_o44yYRN29V for <netmod@ietfa.amsl.com>; Thu, 26 Nov 2015 10:27:46 -0800 (PST)
Received: from aer-iport-2.cisco.com (aer-iport-2.cisco.com [173.38.203.52]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id F2F531A1EF9 for <netmod@ietf.org>; Thu, 26 Nov 2015 10:27:45 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=4798; q=dns/txt; s=iport; t=1448562466; x=1449772066; h=subject:to:references:cc:from:message-id:date: mime-version:in-reply-to; bh=utTB3HRGWoqjr0d++jtMdoOYFe2zUNYlMDbBNAvLdus=; b=M8gfWri/jNgK0HqULYq37RNRet+X7D6Ht9OCauIrQKy100yR8gQMdyGe /9XmKLhm6uCiihcN33TAo/c4XiEYwmOVr5dUfX+Mbqa9/uTdU1m6aM/aE ntwjrOLjTfGPWR6ksKcRVqx+xiBNcNdkkNpwo0InCuvdLFTEAF9/WbKgJ 8=;
X-IronPort-AV: E=Sophos;i="5.20,347,1444694400";  d="scan'208,217";a="613058682"
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/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Nov 2015 18:27:44 +0000
Received: from [10.60.67.93] (ams-bclaise-89112.cisco.com [10.60.67.93]) by aer-core-4.cisco.com (8.14.5/8.14.5) with ESMTP id tAQIRhKq028169; Thu, 26 Nov 2015 18:27:44 GMT
To: Martin Bjorklund <mbj@tail-f.com>, rwilton@cisco.com
References: <CABCOCHT8t55c8Fn5h+TYHBT_ybC2u=zEN8xYEOQkbkr-rbW8-g@mail.gmail.com> <5626465D.8080506@cisco.com> <20151020.160153.1860469323996980043.mbj@tail-f.com>
From: Benoit Claise <bclaise@cisco.com>
Message-ID: <56574F1F.5030507@cisco.com>
Date: Thu, 26 Nov 2015 19:27:43 +0100
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0
MIME-Version: 1.0
In-Reply-To: <20151020.160153.1860469323996980043.mbj@tail-f.com>
Content-Type: multipart/alternative; boundary="------------090903020103020005070807"
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/lGNVIzrpeGqPjVV10ky6kpy1qI8>
Cc: netmod@ietf.org
Subject: Re: [netmod] draft-ietf-netmod-rfc6087bis-05.txt
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 26 Nov 2015 18:27:48 -0000

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

Andy,
> Robert Wilton <rwilton@cisco.com> wrote:
>> Hi,
>>
>> I have one question related to "5.1.  Module Naming Conventions".
>>
>> Currently, the YANG modules that I have included as part of my
>> individual IDs don't currently use an "ietf-" prefix because the
>> drafts haven't been adopted as WG documents yet.
>>
>> However, this means that the pyang tool throws up a warning for this.
>> E.g.
>> interfaces-common@2015-10-19.yang:1: warning: RFC 6087: 4.1: no module
>> name prefix used, suggest ietf-interfaces-common
>>
>> So, am I right in not including the ietf prefix for non WG adopted
>> drafts?  If so, should the above warning in pyang be made
>> informational instead?
> I think it wiuld be useful if 6087bis provided guidelines for these
> kinds of modules as well.
>
> That said, I think that pyang --ietf should still flag this as an
> error.  When checking a non-WG module, use --lint instead of --ietf.
Section 4.9 mentions:


      4.9
      <https://tools.ietf.org/html/draft-ietf-netmod-rfc6087bis-05#section-4.9>.
      Validation Tools



    All modules need to be validated before submission in an Internet
    Draft.  The 'pyang' YANG compiler is freely available from github:

       https://github.com/mbj4668/pyang

    If the 'pyang' compiler is used, then the "--ietf" command line
    option SHOULD be used to identify any IETF guideline issues.


You might want to insert the new pyang --lint options for other SDOs.

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


--------------090903020103020005070807
Content-Type: text/html; charset=windows-1252
Content-Transfer-Encoding: 7bit

<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">Andy, <br>
    </div>
    <blockquote
      cite="mid:20151020.160153.1860469323996980043.mbj@tail-f.com"
      type="cite">
      <pre wrap="">Robert Wilton <a class="moz-txt-link-rfc2396E" href="mailto:rwilton@cisco.com">&lt;rwilton@cisco.com&gt;</a> wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="">Hi,

I have one question related to "5.1.  Module Naming Conventions".

Currently, the YANG modules that I have included as part of my
individual IDs don't currently use an "ietf-" prefix because the
drafts haven't been adopted as WG documents yet.

However, this means that the pyang tool throws up a warning for this.
E.g.
<a class="moz-txt-link-abbreviated" href="mailto:interfaces-common@2015-10-19.yang:1">interfaces-common@2015-10-19.yang:1</a>: warning: RFC 6087: 4.1: no module
name prefix used, suggest ietf-interfaces-common

So, am I right in not including the ietf prefix for non WG adopted
drafts?  If so, should the above warning in pyang be made
informational instead?
</pre>
      </blockquote>
      <pre wrap="">
I think it wiuld be useful if 6087bis provided guidelines for these
kinds of modules as well.

That said, I think that pyang --ietf should still flag this as an
error.  When checking a non-WG module, use --lint instead of --ietf.</pre>
    </blockquote>
    Section 4.9 mentions: <br>
    <pre class="newpage"><span class="h3"><h3><a class="selflink" name="section-4.9" href="https://tools.ietf.org/html/draft-ietf-netmod-rfc6087bis-05#section-4.9">4.9</a>.  Validation Tools</h3></span>

   All modules need to be validated before submission in an Internet
   Draft.  The 'pyang' YANG compiler is freely available from github:

      <a href="https://github.com/mbj4668/pyang">https://github.com/mbj4668/pyang</a>

   If the 'pyang' compiler is used, then the "--ietf" command line
   option SHOULD be used to identify any IETF guideline issues.</pre>
    <br>
    You might want to insert the new pyang --lint options for other
    SDOs.<br>
    <br>
    Regards, Benoit
    <blockquote
      cite="mid:20151020.160153.1860469323996980043.mbj@tail-f.com"
      type="cite">
      <pre wrap="">


/martin

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

--------------090903020103020005070807--


From nobody Mon Nov 30 04:40:19 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 EC8DB1A0110 for <netmod@ietfa.amsl.com>; Mon, 30 Nov 2015 04:40:14 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.688
X-Spam-Level: 
X-Spam-Status: No, score=0.688 tagged_above=-999 required=5 tests=[BAYES_50=0.8, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, SPF_HELO_PASS=-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 R8ot_TFYBg4i for <netmod@ietfa.amsl.com>; Mon, 30 Nov 2015 04:40:13 -0800 (PST)
Received: from lucidvision.com (lucidvision.com [64.71.170.115]) (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 8A8B51A00F9 for <netmod@ietf.org>; Mon, 30 Nov 2015 04:40:13 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lucidvision.com; s=default; t=1448887197; bh=46vS8GsJ7jo/V0te3VCC/UY8hPASp+l+K3y8WVf6Bv4=; h=From:Subject:Date:To; b=F3Sycnr/Nm05cOIPAa82pJczv4jgLG2FEt42VmwPt0n5o6Qz1ql5iSzl7JSMa9vq9 PVKuIErMOGLwfbVLS+whFyxPCjZyRVM/lT27j2ep9nT5Yg2KYYh9zknhUat0hMY+4r bUzGwdsYjJyamDxK3c46hB9UNBze6h+TwR+2GxLo=
X-Default-Received-SPF: pass (skip=loggedin (res=PASS)) x-ip-name=50.255.148.181; 
From: Nadeau Thomas <tnadeau@lucidvision.com>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: quoted-printable
Message-Id: <9E8B211C-DBCA-4BBF-92E6-A2240874579C@lucidvision.com>
Date: Mon, 30 Nov 2015 07:40:09 -0500
To: netmod WG <netmod@ietf.org>
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
X-Mailer: Apple Mail (2.3096.5)
X-Authenticated-User: tnadeau@lucidvision.com 
X-Info: aspam skipped due to (g_smite_skip_relay)
X-Encryption: SSL encrypted
X-MyRbl: Color=Unknown ip=50.255.148.181
X-IP-stats: Notspam Incoming Last 1, First 199, in=2771, out=0, spam=0 Known=true ip=50.255.148.181
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/z3m4f1W6XuAfLNH6BE11q0fYDmI>
Subject: [netmod] Call to adopt draft-bogdanovic-netmod-yang-model-classification-05 as NETMOD WG Draft
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 30 Nov 2015 12:40:15 -0000

	NETMOD:

	This is an official call to adopt =
draft-bogdanovic-netmod-yang-model-classification-05=20
as a NETMOD WG draft.  Joel our AD has agreed with the chairs and =
authors that it is a good idea=20
for this to go through the working group rather than it going as an =
AD-sponsored draft.  This=20
will explicitly give the draft feedback from the working group and make =
it a better
document.  Please provide any feedback you might have on this by Monday, =
December 7, 2015 at=20
8AM EST.=20

	Kent and Tom (as NETMOD co-chairs)





From nobody Mon Nov 30 06:35:26 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 CB6C61ACE0D; Mon, 30 Nov 2015 06:35:23 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.661
X-Spam-Level: 
X-Spam-Status: No, score=-5.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, 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 GqqUZhfm1-eg; Mon, 30 Nov 2015 06:35:21 -0800 (PST)
Received: from mail.nic.cz (mail.nic.cz [217.31.204.67]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D90391ACE02; Mon, 30 Nov 2015 06:35:17 -0800 (PST)
Received: from [IPv6:2001:718:1a02:1:19fb:a759:e2e:72d2] (unknown [IPv6:2001:718:1a02:1:19fb:a759:e2e:72d2]) by mail.nic.cz (Postfix) with ESMTPSA id 573B51804C4; Mon, 30 Nov 2015 15:35:16 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nic.cz; s=default; t=1448894116; bh=LdXg57zNWk37EN69yk2TK9ebOTfGWnaUlVf4/OcCgzE=; h=From:Date:To; b=ABT3P2AuSbieQiFjOA2NjR8Sd1MOYKyAGqlIauwKkfaDPKoAhqtns2zrzmtJ2CHZE KI8yLJT6VNBRSd/uMFLvS/h5GBj5VYpyQqhFHfKF/dB2asO/sbNNzmvfBFihLtIfCd WdonAQ2IIaP+nfUW5RLy7jLGOe6njLW97xq2chF4=
From: Ladislav Lhotka <lhotka@nic.cz>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: quoted-printable
Date: Mon, 30 Nov 2015 15:35:16 +0100
References: <20151130142522.18198.19361.idtracker@ietfa.amsl.com>
To: NETMOD WG <netmod@ietf.org>, Routing YANG <Rtg-yang-coord@ietf.org>
Message-Id: <1CFD1728-236E-4FEA-9C70-80F12F709F4E@nic.cz>
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
X-Mailer: Apple Mail (2.3096.5)
X-Virus-Scanned: clamav-milter 0.98.7 at mail
X-Virus-Status: Clean
Archived-At: <http://mailarchive.ietf.org/arch/msg/netmod/lbBwR7Z5DOd4pAg2U_RO6Xfb7oc>
Subject: [netmod] Fwd: New Version Notification for draft-lhotka-netmod-ysdl-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: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 30 Nov 2015 14:35:24 -0000

Hi,

this draft defines a (very small) meta-schema language that enables =
various combinations of YANG schemas. In particular, one schema can be =
embedded as a subschema of another. This would allow for reusing the =
existing modules such as "ietf-interfaces" in non-root contexts, e.g. as =
suggested in draft-rtgyangdt-rtgwg-device-model-01.

Such a meta-schema also allows for specifying a schema for anydata =
content at run time, which could partly alleviate the problems we are =
facing wing anydata.

Comments and suggestions are certainly welcome.

Thanks, Lada

> Begin forwarded message:
>=20
> From: internet-drafts@ietf.org
> Date: 30 November 2015 at 15:25:22 GMT+1
> To: "Ladislav Lhotka" <lhotka@nic.cz>
> Subject: New Version Notification for draft-lhotka-netmod-ysdl-00.txt
>=20
>=20
> A new version of I-D, draft-lhotka-netmod-ysdl-00.txt
> has been successfully submitted by Ladislav Lhotka and posted to the
> IETF repository.
>=20
> Name:		draft-lhotka-netmod-ysdl
> Revision:	00
> Title:		YANG Schema Dispatching Language
> Document date:	2015-11-30
> Group:		Individual Submission
> Pages:		13
> URL:            =
https://www.ietf.org/internet-drafts/draft-lhotka-netmod-ysdl-00.txt
> Status:         =
https://datatracker.ietf.org/doc/draft-lhotka-netmod-ysdl/
> Htmlized:       =
https://tools.ietf.org/html/draft-lhotka-netmod-ysdl-00
>=20
>=20
> Abstract:
>   This document defines YANG Schema Dispatching Language (YSDL).  It =
is
>   a meta-schema language that allows for combining YANG modules into
>   any number of schemas, and arranging these schemas in a hierarchical
>   structure.
>=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

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




