On Tue, May 29, 2018 at 10:09 AM, Juergen Schoenwaelder < j.schoenwael...@jacobs-university.de> wrote:
> On Tue, May 29, 2018 at 03:58:33PM +0000, Kent Watsen wrote: > > [resurrecting this thread] > > > > Currently the zerotouch draft has a normative reference to this draft. > > I will this week post an update to the zerotouch draft to resolve the > > netconf list thread "a couple zerotouch-21 issues". It would be easy > > for me to also switch back to using rc:yang-data, but I won't do so if > > this draft remains an active work-in-progress. > > > > Please see below for more. > > > > > > On Wed, 2018-05-02 at 11:36 +0200, Juergen Schoenwaelder wrote: > > >On Wed, May 02, 2018 at 11:25:06AM +0200, Martin Bjorklund wrote: > > >> > > >> The primary use case is not "generic RPC messages", but standalone > > >> instance documents, error-info structures, etc. > > > > > > The proper solution for rpcs and actions is to define error > > > information as part of the rpc/action. YANG 1.1 does not support > > > this but this is where it should be fixed. > > > > Agreed, but note that the subscribed-notifications draft (both the > > published -12 and unpublished -13) are relying on being able to do > > just this, and YANG-next is years away... > > There is a description statement. > Automation tools generally use machine-readable statements, and avoid using description-stmts. The yang-data extensions do not solve this "rpc/action to error-info" mapping problem, so this problem is not a real factor here. > > > Standalone instance documents (not tied to datastores) may have their > > > use cases as well but it feels odd to create support for standalone > > > instance documents as extensions and then to create even more > > > extensions to support augmentation of these instance documents and > > > whoever knows what comes next. > > > > What feels "odd" about this? Is it not using the extension statement > > as it was intended? > > For me, extensions that define new data definition statements are > borderline. RFC 7950 has this nice statement: > > o extension: An extension attaches non-YANG semantics to statements. > The "extension" statement defines new statements to express these > semantics. > > This does not help since we lack a definition for 'non-YANG semantics' > and yes I know that yang-data is today defined as an extension. But > for me, this is a hack and instead of creating a slightly more > generalized version of this hack, I prefer to stick to yang-data in > favor of a proper solution as part of YANG. > > The yang-data and augment-yang-data extensions do not re-define YANG data nodes. They define a new context for data nodes and prevent plain YANG tools from confusing this new context with data for configuration or operational datastores. > > > For short-term needs, there is yang-data defined in RFC 8040. > > > > To be clear, the "short-term needs" are: > > > > a) zerotouch: to define a standalone instance document > > b) notification-messages: to define a new notification message > > c) subscribed-notifications: to define error-info structures > > > > As I recall, this draft (not RFC 8040) is needed: > > > > - for (a), because rc:yang-data doesn't support a top-level > > "choice" statement spanning "container" statements. > > So create a container. > I tend to agree that a top-level choice could be avoided. This is not a really compelling use-case. > > > - for (b), in order to augment a base yang-data "message" > > structure with additional nodes. > > So you are creating another augmentation mechanism. I am concerned > about ending up with a zoo of different mechanisms if we go down this > path, we may end up with every project or vendor creating their own > variants. > > With NMDA in place, YANG 1.1 is decribing schemas for datastores plus > operations and notifications. It is not a protocol message description > language or a standalone file format description language. If this is > needed, I prefer to create YANG X.Y - and if we manage the complexity > we have something that is ideally integrated and consistent. > Yes it is a protocol message description language, but only in an incomplete, hacky way. Specific subtrees within protocol messages are defined as special YANG data-defined portions and the rest is somehow out of scope for YANG. The way nested roots (e.g., <config> or <data>) are handled is the worst hack of all. But IMO a new version of YANG is needed to really fix these problems. > > - AFAIAA, RFC 8040 is sufficient for (c) > > > > Has anything changed? I don't think that we can un-adopt this > > draft with said dependencies, right? > > I am just voicing my opinion. It may very well be that the WG prefers > to go the route of not touching YANG 1.1 and instead patching around > its limitations with extensions. > > My concern is simply driven that some want to patch in via extensions > support for describing protocol messages and standalone documents, > others want to patch via extensions and updates a different versioning > system, and who knows what comes next. In the long run, I am afraid > this will become a mess. And yes, it is always difficult to predict > the future - we need crystal balls. Perhaps as an extension. ;-) > This is a separate (but important) topic -- YANG 1.1 + a vendor-selected set of optional extensions is not the same as a new version of YANG (with mandatory-to-implement statements). YANG designers cannot really rely on optional extensions across tool-chains. > > /js > Andy > > -- > Juergen Schoenwaelder Jacobs University Bremen gGmbH > Phone: +49 421 200 3587 Campus Ring 1 | 28759 Bremen | Germany > Fax: +49 421 200 3103 <https://www.jacobs-university.de/> > > _______________________________________________ > netmod mailing list > netmod@ietf.org > https://www.ietf.org/mailman/listinfo/netmod >
_______________________________________________ netmod mailing list netmod@ietf.org https://www.ietf.org/mailman/listinfo/netmod