NSO has had support for Junos devices pretty much since day one. The classical Junos NED is NETCONF based, but Juniper did not originally provide any YANG files, so the Tail-f team built a complex machinery to translate Juniper’s XML Schema Description (XSD) files into YANGs for the Juniper-Junos NED.
Some time ago, Juniper started to provide native YANG files for Junos, and a few NSO users experimented with using them instead. Unfortunately, the Junos NETCONF hello message didn’t match the Junos YANG files, so things did not work out.
In NSO 5.3, after a thorough discussion with Juniper engineering about how Junos devices behave, new device manager code in NSO works around the hello issue. Finally, the native Junos YANG files can be used directly in NSO.
This article describes how to make an existing NSO application work against a native Junos NETCONF NED. For application, I took the NSO mpls-vpn example from the NSO examples collection. Here are the high level steps:
1. Make the MPLS example run on a real Junos device with a classic NED
2. Build a Junos native NETCONF NED and configure NSO to use it
3. Update the service package to also work with the new NED
4. Reconcile service instances using new service
Much of this article may also be relevant if you’re thinking about how to port a service package from using one NED to another.
Sounds interesting? Just follow along. Both hands-on and high level readers are welcome. In order to get reasonable formatting, I wrote the actual article in word. Have a look at the attached pdf file.