Sometimes I'm asked: how is YDK different from other alternatives? Instead of doing a direct comparison, I'll share some criteria that can be used to evaluate model-driven APIs. But, before doing so, let me say that YDK is not a commercial product. It is an open source project that attempts to facilitate the adoption of programmatic interfaces and network automation in general. Any open source project that contributes to that goal is a good thing. Now, what are some of the criteria to evaluate alternatives?
Language support. YDK has been designed to be language agnostic. Today, it generates Python bindings (YDK-Py) and we hope to generate C++ in the near future. We aspire to support other languages (e.g. go, Ruby, C#) down the road.
Services/providers. YDK was built from day one with an extensible architecture that relies on services and service providers. YDK does much more than encoding and decoding model data (which is implemented by the Codec service). For instance, it has services (e.g. CRUD, Executor) and providers (e.g. NETCONF) to manage network devices directly. For NETCONF users today, YDK provides a simple NETCONF interface that integrates data validation, encoding/decoding and NETCONF exchanges.
Data validation. An area that YDK has put a lot of attention on is data validation. We validate config vs state nodes, types, type values, semantics (e.g. list key uniqueness), deviations, etc. This is a lot of code you save on your automation application.
Project activity. For open source projects (and even commercial products), you want to make sure the project is active. What's the release cadence? Are new futures introduced regularly? Is there a feature roadmap? How often are issues being filed? Are issues being fixed? How many contributors are there? How frequent is new code committed? How detailed is the documentation? Are there guides and examples to get users started? GitHub gives you a panel with the monthly pulse of a project which can be a good starting point (ydk-gen pulse, ydk-py-samples pulse) to assess a the level of activity in a project.
These are some of the criteria you can use today to evaluate alternatives. There is certainly a fair amount of room left for innovation in this area.
I'm able to pull the topology using the API GEThttps://n.n.n.n/api/node/mo/topology/pod-1.json?query-target=children&target-subtree-class=fabricNode(after authenticating and getting a cookie, of course) But the version field is empty. I don't see...
FOSDEM is a truly unique experience and arguably the best open source conference of the year. It is a weekend event (February 1-2 this year) organized by open source enthusiasts to promote the widespread use of free and open source software...
Introduction:https://github.com/jeremyschulman/genie-quickstartAs a network automation engineer responsible for creating tools for use with Cisco devices I am always on the lookout for software products and technologies. I’ve been following the Cisco DevN...
Would you like to know how TRex helps in supporting BGP/OSPF/RIP/ISIS on both ipv4/v6, and how network emulation or routing emulation is possible, is all here in the nerdlunch video.
Know more about how DevX has added more capabilities, much stable builds...
NBI Notifications API will be deprecated in Prime 3.7 and removed in future releases. We will update API documentation to reflect this.
NBI Server-Sent Events API is official replacement for the Notifications API. In 3.7 we will provid...