In NETCONF, the YANG push and event stream subscriptions have three drafts now in Working Group last call. YANG Push was referenced often by other drafts in the I2NSF & SACM Working Groups.
In the IETF Hackathon, Joe Clarke and I dedicated our time to the maintenance of the YANG catalog, while Mahesh Jethanandani added the MEF YANG modules, and Vladimir Vassilev focused on the validating YANG examples. The YANG catalog now contains information about 3455 unique YANG modules from the entire industry: IETF, IEEE, Broadand Forum, MEF, cz.nic, sysrepo, openconfig, and some vendors (Cisco, Huawei).
Do we still have some issues in the world of YANG & data model-driven management? Absolutely, but we passed the advertisement phase (YANG is used), we are on the right track for the coordination phase (the YANG knowledge is spread across IETF Working Groups and the industry), and we should now focus on the optimization phase. To mention just a few problems to tackle next:
- Knowing that examples are key to help implementations, we should develop the toolchain to validate examples automatically. And we should have the ability to add more examples to existing published YANG modules.
- We should define a way to update YANG modules in a backward incompatible way. Indeed, because the RFC7950 update rules are so strict, the YANG module needs to perfect day one, which causes some delay in the specifications. It would also solve an important issue for generated YANG module, also known as native models.
- Publishing the RFC might be perceived as the end goal, however let’s not forget that the YANG module is really the useful part of the RFC, as it can generate code. IMO, IANA should be the source of truth for YANG modules. This is work-in-progress, with the goal to retrieve all YANG in a single rsync command: the latest IANA-maintained modules such as the iana-if-type.yang, the newly published modules from RFCs with potentially the inclusion of errata.
- Also, at some point in time, we might have to run our IETF process directly on the product of the RFCs (read the YANG modules), as opposed to the RFC itself.