Subject: [netmod] comments on draft-bierman-netmod-yang-conformance-04

From: Juergen Schoenwaelder <[email-masked]>
Date: Wed, 18 Feb 2015 12:16:33 +0100

Hi,

this is very valuable input to the conformance issue discussion. There
is likely useful terminology in section 1.1.3 as well.

- Typedef drift vs. grouping drift: I think typedef drift can be
  handled partially.  A module update can narrow the value space to an
  earlier version of a meanwhile expanded typedef. For groupings, we
  do not have a mechanism to do the same. If a grouping got expanded
  but a module wants to continue to use the unexpanded definition,
  there does not seem to be a way to do this. Options: (i) do not
  allow groupings to change, (ii) enhance the uses statement so it can
  'subset' a grouping, (iii) enhance the uses statement so that it can
  refer to a specific version of a grouping (which however we do not
  do for typedefs).

/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, 18 Feb 2015 09:59:39 -0800

>   refer to a specific version of a grouping (which however we do not

I am concerned that we try to isolate the problems and produce a
partial solution,
but the actual YANG usage in the wild will not fit the isolated cases.
There will
be complex combinations of the typdef, grouping, augment, and cross-reference
problems.

Here are some high-level issues that should be considered:

  - Each update rule in RFC 6020 sec. 10 should be examined wrt/ its
    impact on conformance. They are tightly coupled.

 - Conformance for protocol-accessible objects and other importable statements
   are different.  Combining PA objects and reusable statements in the same
   module is common, so the conformance should adapt instead of forcing
   designers to create separate modules

 - The use-cases for updating a module should be examined wrt/ conformance
    focusing on typedef, grouping, and augment.

    Type 1) Corrections: Defects or omissions are being addressed.
    Do not change the name, but all implementations of previous versions
    may need to be updated.

    Type 2) New functionality:  This type of change should
    correlate to a change in the thing being modeled.  If that thing
is identified
    with a new version, (e.g, SSHv1 SSHv2) then new typedefs and groupings
    SHOULD be defined reflecting the new names.  (This SHOULD can be
    raised to a MUST for IETF modules via YANG guidelines).

> /js

Andy

> _______________________________________________
> netmod mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/netmod