Cisco Network Service Orchestrator (NSO) version 5.7.19
is an evolution of the Tail-f Network Control System (NCS).
Tail-f was acquired by Cisco in 2014. The product has been enhanced
and forms the base for Cisco NSO.
Note that the terms 'ncs' and 'tail-f' are used extensively in file
names, command-line command names, YANG models, application
programming interfaces (API), etc. Throughout this document we will
use NSO to mean the product, which consists of a number of
tools and executables. These executable components will be referred
to by their command line name, e.g. ncs,
ncs-netsim, ncs_cli, etc.
This chapter describes the various northbound programmatic APIs
in NSO NETCONF, REST, and SNMP. These APIs are used by
external systems that need to communicate with NSO, such as
portals, OSS, or BSS systems.
NSO has two northbound interfaces intended for human usage, the
CLI and the WebUI. These interfaces are described in
The NSO CLI
in NSO 5.7 User Guide
and
The Web User Interface
in NSO 5.7 User Guide
respectively.
There are also programmatic Java, Python, and Erlang APIs intended to be used
by applications integrated with NSO itself. See
the section called “Running Application Code” in NSO 5.7 Development Guide
for more information about these APIs.
Integrating an External System with NSO
There are two APIs to choose from when an external system should
communicate with NSO NETCONF and REST. Which one to choose is
mostly a subjective matter. REST may at first sight appear to
be simpler to use, but is not as feature-rich as NETCONF. By
using a NETCONF client library such as the open source Java
library JNC or
python library ncclient, the
integration task is significantly reduced.
Both NETCONF and REST provides functions for manipulating the
configuration (including creating services) and reading
operational state from NSO. NETCONF provides more powerful
filtering functions than REST.
NETCONF and SNMP can be used to receive alarms as notifications
from NSO. NETCONF provides a reliable mechanism to receive
notifications over SSH, whereas SNMP notifications are sent over
UDP.