Subject: [netmod] VRFY :Y13: allow multiple inheritance for identities

From: Juergen Schoenwaelder <[email-masked]>
Date: Wed, 5 Nov 2014 15:08:17 +0100

The 2014-10-15 virtual interim meeting proposal is to adopt Y13-01.
Please speak up by Wednesday 2014-11-12 if you disagree with this
proposal.

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

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

/js

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

---

From: Andy Bierman <[email-masked]>
Date: Wed, 5 Nov 2014 08:24:31 -0800

Hi,

IMO this new feature is very complicated and I don't really understand
why it is really needed. Are there other examples besides the one
shown in solution Y13-01?

A YANG compiler needs to check every possible path for loops.
Each node in the "identity tree" that has multiple bases effectively
created multiple paths back to the root. All paths have to be
checked.  Finding all identities that have the same set of tags
may not be easy (for tools or the operator to understand).

Can you identify some existing YANG modules where the designers
wanted to use multiple bases for an identityref?

Andy

On Wed, Nov 5, 2014 at 6:08 AM, Juergen Schoenwaelder
<[email-masked]> wrote:
> _______________________________________________
> netmod mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/netmod

---

From: Ladislav Lhotka <[email-masked]>
Date: Wed, 5 Nov 2014 21:40:58 +0100

> IMO this new feature is very complicated and I don't really understand

Identities would form a directed acyclic graph instead of a tree. It is somewhat more complicated but not THAT complicated.

> shown in solution Y13-01?

Any identity with multiple orthogonal facets. I think the question is whether we need to restrict identity relations to simple tree-like hierarchies.

> A YANG compiler needs to check every possible path for loops.

Effective algorithms are available. Checking circular references in when expressions is much worse.

> wanted to use multiple bases for an identityref?

In the routing module I would have used address family (IPv4/IPv6) as one base and “cast” (unicast/multicast) as another.

Lada

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

---

From: Martin Bjorklund <[email-masked]>
Date: Wed, 05 Nov 2014 21:54:31 +0100 (CET)

Ladislav Lhotka <[email-masked]> wrote:
> Identities would form a directed acyclic graph instead of a tree. It is
> somewhat more complicated but not THAT complicated.

+1

> Any identity with multiple orthogonal facets. I think the question is whether
> we need to restrict identity relations to simple tree-like hierarchies.
> 
> > 

FWIW, I implemented this in pyang, and the way the code was written I
had to change a single character in the grammar to handle this case.
Ok, this was extreme, but I really don't think that it is a big deal.
> In the routing module I would have used address family (IPv4/IPv6) as one base
> and “cast” (unicast/multicast) as another.

The other example that has come up is in interface types.  I believe
Lada had an example with 'radio-properties' and
'ethernet-properties'.  A certain interface can inherit from one or
both.

/martin