Monthly Archives: November 2017

YANG Catalog Latest Developments (IETF 100 Hackathon)

The YANG team delivered again at the IETF 100 hackathon.¬†With our goal to help YANG model users and designers, we developed new automation tools. As a reminder, we have been present since the very first hackathon at IETF 92. Even though many were not physically present in Singapore, we represented a virtual team of many members. This virtual team included those who have worked through on the year on projects, including some full time on tool development and maintenance. The team won the “Best Continuing Work” award during this IETF 100 hackathon and this is well deserved. And no, I’m not THAT biased ūüôā .

This summary contains the hackathon achievements and an update since the previous hackathon in July. As background information on the previous developments, feel free to review the YANG Catalog Latest Developments (IETF 99 Hackathon) here.

Dave Ward stressed the importance of the YANG Catalog during his presentation at IETF 100 titled, ‚Äú3 years on: Open Standards, Open Source, Open Loop.‚ÄĚ (video¬†here, slides here). His point (among others) was that the IETF should focus on the deployment of the product of the RFCs (so YANG modules in this case) as opposed to the RFC publication. Here are a couple of Dave’s relevant quotes: “Publishing an RFC SHOULD not be the metric for IETF success!”, “A technology is successful when it‚Äôs deployed.”, “Develop tooling & metadata at the same time as specification.”, “Create your dependency map and reach out to your IETF customers.”. The YANG catalog was taken as THE example in this train of thought.

At this hackathon, Joe Clarke and Miroslav Kovac demonstrated a new tool called YANG Suite, along with its integration with the YANG catalog set of tools and its integration with the YANG Development Kit (YDK).

You might remember the YANG Explorer tool, an useful tool, demonstrated a few IETF hachatons ago. It has been suffering from an important inconvenience: it is flash-based. YANG Suite is the next generation YANG Explorer, without this limitation.

YANG Suite automatically imports YANG modules (and dependent YANG modules) from the catalog.  The YANG module trees are parsed and displayed. From there we can generate CRUD (Create, Read, Update, Delete) RPCs, by interacting with the GUI. YANG Suite also integrates with YDK, which facilitates network programmability using YANG data models. YDK can generate APIs in a variety of programming languages using YANG models. These APIs can then be used to simplify the implementation of applications for network automation. YDK has two main components: an API generator (YDK-gen) and a set of generated APIs. Today, YDK-gen takes YANG models as input and produces Python APIs (YDK-Py) that mirror the structure of the models.

If you prefer a different set of python tool, YANG Suite also offers ncclient python library for NETCONF server. If you want to generate APIs from another language, you can develop a new YANG Suite package. As always, the tools are opensource: This is work in progress and the documentation will follow soon.

With the goal in mind to create a full toolchain, we integrated the YANG Suite directly in the YANG catalog, as shown in the previous figure. What does it mean? From the YANG catalog, you search for the relevant YANG module(s), evaluate its relevance with some health metrics (validation result, maturity, number of import, etc.), check the related metadata, launch the YANG Suite, and generate the python script based on the introduced value in the GUI such as YANG module content, CRUD operations, datastore, etc. The end user can now focus on automation as opposed to having to know the YANG language. For the end user, YANG is a means to an end, and should be hidden.

For the IETF draft writers, Henrik Levkowetz added links to the YANG catalog metadata and impact analysis directly in the data tracker. A real gain of productivity! The next step is to work on the  synchronization of the data, with an direct update as soon as the draft is posted.

In terms of metadata, we have introduced new ones (see draft-clacla-netmod-model-catalog):

  • ¬†Dependencies and dependent YANG modules
    Use case: Provide a comprehensive store for metadata from which to drive tools
  • ¬†Tree type: NMDA, transitional-extra, openconfig
    Use case: Illustrate whether or not modules are NMDA-compliant
  • ¬†Add leafs for semantic versioning (semver): semantic_version and derived_semantic_version
    Use case: Given a module, compare its semantic version over multiple revisions to understand what types of changes (e.g., backward-incompatible changes) have been made.Do the same given a vendor, platform, software release for all modules

Below is an example of semantically different YANG module revisions.

Vladimir Vassilev worked on automated testcases, running against confd and netconfd based raw NETCONF session scripting. Practically he focused on the the ietf-routing YANG modules in netconfd, both the non-NMDA and the NMDA (in progress) versions. I believe associating some validation tests with YANG modules in the catalog would be an extremely useful addition. Recently, I received the feedback that working on very simple scenarios for service YANG modules is a complex task: working from example is the way to go.

Pieter Lewyllie developed an REST API for the regex validator,¬† the YANG regular expression validator to experiment with W3C YANG “pattern” statements.

 

We’re committed to maintaining and continuing to develop these tools. If you want to join the effort, you know where to find us:

Regards, Benoit

IETF 100 Preview

Sunrise over MarinaBay in Singapore

Sunrise over MarinaBay in Singapore

IETF 100 is just around the corner. It will offer all the usual opportunities for high-bandwidth exchange among IETF participants and collaboration around specs, coding and interop work. See the post below for some highlights. With the 100th meeting being viewed as a milestone by some, we’ll also be marking the occasion in a few small but special ways here and there throughout the week. Be sure to look out for those on the ground in Singapore.

Pre-meeting events

We will once again be hosting the¬†Hackathon¬†on Saturday and Sunday. We’ll have a number of teams returning to carry forward their work from past hackathons, plus teams bringing new projects focusing on IPv6 transition technologies, JMAP, and more.

Folks are invited as always to join the Code Sprint on Saturday to work on tools for the IETF community. We’re always looking for more volunteers, so please join!

Sunday afternoon’s tutorial sessions will focus on two standardization efforts nearing completion in the IETF: TLS 1.3 and WebRTC. Come learn from the experts!

Meeting events

The two working-group-forming Birds of a Feather (BoF) sessions at this meeting will both be in the security area. Trusted Execution Environment Provisioning (TEEP) aims to standardize protocol(s) for provisioning applications into trusted execution environments (TEEs). Software Updates for Internet of Things (SUIT) is looking at firmware update solutions for Internet of Things (IoT) devices. Energy and interest in solutions to securely bootstrap constrained devices onto the network continues to grow.

We’ll have two working groups meeting for the first time, both in the Applications and Real-Time (ART) area. The DNS over HTTPS (DOH) working group is standardizing encodings for DNS queries and responses that are suitable for use in HTTPS, allowing the DNS to function in environments where problems are experienced with existing DNS transports. The¬†Email mailstore and eXtensions To Revise or Amend (EXTRA) working group is dealing with updates and extensions to key email related protocols. Also meeting for the first time will be the proposed¬†Decentralized Internet Infrastructure Research Group (DINRG), which is investigating open research issues in decentralizing infrastructure services such as trust management, identity management, name resolution, resource/asset ownership management, and resource discovery.

Folks looking for interesting area-wide discussions might want to check out the open area meetings in the transport and routing areas. The former will feature a discussion about current practices in coordinating specs and interop testing for QUIC and HTTP, while the latter will include an update from the routing area YANG architecture design team.

While for some the 100th meeting is an occasion to reflect on the IETF’s history, the technical plenary will be taking a look forward. The plenary will present a panel discussion featuring Monique Morrow, Jun Murai, and Henning Schulzrinne. They’ll be sharing their unique perspectives on what the Internet will look like in thirty years.

We’ll be running a new experiment at this meeting to give working group chairs the ability to organize sessions focused on running code. This will allow for groups to informally meet to brainstorm, code, and test ideas in the Code Lounge, a portion of the IETF lounge set aside for such activities. Working group chairs can sign up¬†to reserve a time slot.

Thank you

We wouldn’t be able to hold IETF meetings without the support of our sponsors. Big thanks to IETF 100 host Cisco! And to all of our sponsors for the meeting.

Cisco Logo

See you in Singapore!