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.
How can I (dynamically) create resource pools that assign resources on a per-device basis? Basically, I'd like to generate a pool for every device that assigns an index to some of the device's interfaces. The following will re-use the same indexes fo...
Is it possible to perform a rollback through NSO RESTCONF API specifying parameters such as "no-deploy"? I have tried the following procedure, but the "no-deploy" flag is not working/ignored:POST /restconf/data/tailf-rollback:rollback-files/apply-rol...
Step 1 : configure debug server in Pycharm
Go to Run => Edit Configurations, click on "+" => Python Remote Debug
In "Local Host name " enter ip or host name of your local machine. Enter a available port in "Port :"
Give a name, here it's "NSO debug...
Abstract: RFM services can be hard to implement. Especially the lifecycle management of the delete case of the service can be a challenge. Nano Services uses an executable plan and kickers to supports the full lifecycle of a RFM service.
I'm trying to add a device through NCS CLI after reloading the NED packages. However, the CLI doesn't accept my input and I'm getting an incomplete path error. Getting the same error with J login CLI. This is for NSO 5.3 system install. The NED packages a...