On 17/04/18 07:35, Ladislav Lhotka wrote:
> Hi,
> 
> this is a slippery slope. If we want to turn YANG into a general-purpose
> schema language, it should IMO be done the other way around: design a
> general-purpose schema language with a sound architecture, and then use
> it for defining schemas of datastores, protocol messages or whatever.
> 
> YANG extensions make changes to the original YANG architecture way too
> easy, but the result may be a bastard with no architecture at all.

+1 in general, although I am not convinced we need to start from scratch.

The problem is that the metamodel behind YANG is not formally defined,
which means every implementer has to reverse-engineer it from
RFC6020/7960 (and 6241, and others). Since there is no metamodel spec,
it is very hard to reason about how an extension affects it, especially
in edge cases -- which can (and most probably will) lead to bastardization.

One example: YANG 1.1 was supposed to be a backwards-compatible, yet it
introduced multiple-inheritence to a language which was previously
strictly single-inheritence. That sort of change is a major revision of
the metamodel and certainly does not qualify as backwards-compatible at
that level of abstraction.

It may not be important for run-of-the-mill NETCONF operations, but
becomes pivotal when you are mapping YANG to other languages.

Regards,
Robert

Attachment: signature.asc
Description: OpenPGP digital signature

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

Reply via email to