Showing results for 
Search instead for 
Did you mean: 

Why is YDK 0.6.0 different?

Cisco Employee
Cisco Employee


YDK 0.6.0 represents a major leap forward to enable the adoption of model-driven network manageability.  In earlier releases, YDK-Py and YDK-Cpp relied on separate infrastructures.  Sometimes, they had minor differences in functionality and behavior.  Now, they share the same richer and faster infrastructure (libydk). Here are four new important capabilities supported in the new YDK infrastructure:

  • New service providers.  YDK has always provided an extensible set of services and service providers to act on YANG data.  It is one of the characteristics of YDK that makes it unique.  In addition to the NETCONF and Codec service providers, you now have RESTCONF and OpenDaylight service providers.  These services allow you manage devices with a RESTCONF interface either directly or through an OpenDaylight controller.

  • Path API.  In some cases, you may want to manage a device for which no YDK model bundle is available.  In some other cases, you may prefer to use a path-based approach to handle YANG data instead of the language bindings provided by model bundles.  In either case, YDK now provides a path API that allows you to do just that.

  • Dynamic model downloads.  Since its first release, YDK has paid special attention to providing comprehensive data validation against YANG models.  Now, data is validated with the exact model version supported by NETCONF devices that support the retrieval of data models (get-schema RPC).  This enhancement means smarter clients that can provide better and faster local error handling.

  • Better data filtering.  YDK has not only provided services to manage network devices directly but also mechanisms to specify filters when retrieving data from devices. These filtering capabilities haven been revamped.  You can now specify filters for containers, entire lists, list members or leaves.  Furthermore, filters can now be arbitrarily nested.  A pattern that can be particularly common in numerous data models that make use of deeply nested lists.

While I'm highlighting four improvements, the list of enhancements doesn't end there.  You will now experience a dramatic improvement in the speed of data encoding and decoding, comprehensive support for JSON encoding, equality/inequality operators for simple YANG data comparison, more granular logging (DEBUG vs INFO), among other improvements.

We are not stopping here.  We want to make sure that YDK continues to be the most complete SDK for model-driven programmability of networking devices.  That means more services, greater model coverage, richer language support.  The benefits of data models and programmatic interfaces still remain pretty much untapped in most production networks.  We are excited to see YDK enable the world of automation for so many users.

Keep calm and code on!

0 Replies 0