# Exploring Control Features in Nokia Altiplano
:::info
**Resources**
1. Northbound Interface Guide Documentation of Nokia Altiplano Access Controller and FastMile
2. https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/prog/configuration/168/b_168_programmability_cg/NETCONG_YANG.pdf
3. https://info.support.huawei.com/info-finder/encyclopedia/en/NETCONF.html
4. https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/prog/configuration/168/b_168_programmability_cg/RESTCONF.pdf
5. https://youtu.be/k-9uBMn0J8k
:::
[toc]
## Overview
The Nokia Altiplano solution comprises two essential logical blocks, namely the Virtualizer and the Controller, which synergistically collaborate to deliver an integrated and robust functionality.
The Network Virtualizer, a pivotal component, acts as a host for virtual functions designed specifically for NETCONF/YANG devices. It fulfills a crucial aggregation role towards these devices, seamlessly integrating their configuration, performance management, and alarm database into the cloud. By leveraging the power of virtualization, the Network Virtualizer enables efficient and scalable management of these devices, ensuring optimal performance and streamlined operations.
Complementing the Network Virtualizer, the Controller layer augments its capabilities by advancing automation and abstraction functionalities. Serving as the orchestration hub, the Controller empowers network administrators with comprehensive life cycle automation for all connected devices. It plays a pivotal role in deployment, provisioning, monitoring, and troubleshooting, providing a centralized platform for managing the network ecosystem. With its intuitive and powerful features, the Controller streamlines complex operations, enhancing efficiency and reducing manual efforts.
## Nokia Altiplano Access Controller Interface and Its Protocol Stacks
Nokia Altiplano Access Controller provides NETCONF, RESTCONF and REST NBI interface for the OSS clients to access Nokia Altiplano Access Controller and manage the various features.
:::info
In the field of telecommunications, OSS stands for **Operations Support System**. It refers to a set of software applications and systems that are designed to manage and support the day-to-day operations of a telecommunications network.
:::
### Northbound Interface (NBI)

> Source: [SDN - Northbound and Southbound Interfaces. (2020, April 15). YouTube.](https://www.youtube.com/watch?v=k-9uBMn0J8k)
The Northbound Interface in Software-Defined Networking (SDN) architecture serves as a link between the application layer and the control layer. It enables seamless communication, empowering applications to control and optimize network behavior while providing valuable network information to applications.
### NETCONF
NETCONF is a network management protocol that provides a mechanism to install, manipulate, and delete the configuration of network devices. It uses an Extensible Markup Language (XML)-based data encoding for the configuration data as well as the protocol messages.
NETCONF has emerged as a pivotal technology in network automation, serving as a highly capable successor to traditional network management methods such as command-line interfaces (CLI) and Simple Network Management Protocol (SNMP).
By embracing NETCONF, organizations can achieve significant benefits in terms of operational efficiency, scalability, and agility. Automation workflows can be streamlined, reducing manual intervention and freeing up valuable human resources to focus on more strategic tasks.
#### NETCONF Protocol Framework

> Source: [Chunrong, Z. (2021, July 1). What Is NETCONF? Why Do We Need It? - Huawei.](https://info.support.huawei.com/info-finder/encyclopedia/en/NETCONF.html)
The NETCONF protocol can be conceptually partitioned into four layers:
1. The Content layer consists of configuration data and notification data.
2. The Operations layer defines a set of base protocol operations to retrieve and edit the configuration data.
3. The Messages layer provides a mechanism for encoding remote procedure calls (RPCs) and notifications.
4. The Secure Transport layer provides a secure and reliable transport of messages between a client and a server.
:::info
**Remote Procedure Call** is a software communication protocol that one program can use to request a service from a program located in another computer on a network without having to understand the network's details.
:::
#### Network Architecture of NETCONF

> Source: [Chunrong, Z. (2021, July 1). What Is NETCONF? Why Do We Need It? - Huawei.](https://info.support.huawei.com/info-finder/encyclopedia/en/NETCONF.html)
The NETCONF architecture consists of two roles, namely client and server. A client provides the following functions:
* Manages network devices using NETCONF.
* Sends RPC requests to a NETCONF server to query or modify one or more parameter values.
* Learns the status of a managed device based on the alarms and events sent by the NETCONF server of the managed device.
A server maintains information about managed devices and responds to the client-initiated requests. When receiving a request from a NETCONF client, the NETCONF server parses the request and sends a reply to the client. However, if a fault or another type of event occurs on a managed device, the NETCONF server reports an alarm or event to the client through the notification mechanism. This allows the client to learn the status of the managed device.
#### NETCONF Session Process

> Source: [Chunrong, Z. (2021, July 1). What Is NETCONF? Why Do We Need It? - Huawei.](https://info.support.huawei.com/info-finder/encyclopedia/en/NETCONF.html)
The process of establishing and terminating a NETCONF session is similar to three-way handshake method in the TCP/IP network.
1. A client establishes an SSH connection with a server, and then establishes a NETCONF session with the server after authentication and authorization are complete.
2. The client and server send Hello messages to negotiate capabilities.
3. The client sends one or more RPC requests to the server. The following lists some request examples:
4. Modify and commit the configuration.
5. Query the configuration data or status.
6. Perform maintenance operations on the device.
7. The client terminates the NETCONF session.
8. The SSH connection is terminated.
### RESTCONF
RESTCONF uses structured data (XML or JSON) to provide a REST-like APIs, enabling access to different network devices. RESTCONF APIs use HTTPs methods. This protocol uses YANG as the modelling language for configuration and operational features. YANG determines the scope and the kind of functions that can be performed by NETCONF and RESTCONF APIs.
## YANG Models Applications in Nokia Altiplano
Most of the applications of Access Controller use a YANG model which is available transparently to the OSS application. The Access Controller applications provide a set of feature-specific YANG modules that express the model of the application and its capabilities. The OSS application can directly access the Access Controller application's feature models by loading the application namespace and object model. The application's configuration datastore is managed directly using NETCONF operations by the users with the right entitlements.
The NBIs in Nokia Altiplano manage the Access Controller via operations that can modify the configuration datastore. The YANG modules for the application feature models are an essential reference for using the NBIs as the specification for the operations are described in the modules.
## Using NBI for Access controller features
The Access Controller NBI use cases can be grouped in the following categories:
* **Provisioning**: Allows a client application to configure a device, and use Intent-Based networking provisioning operations.
* **Configuration Inventory Retrieval**: Allow a client application to retrieve information about configured devices, and the existing configuration Intent Types.
* **Audit and Reconciliation**: Facilitate the alignment of devices with the Access Controller.
### Example Use Cases of Access Controller NBI
From Northbound Interface Guide Documentation of Nokia Altiplano Access Controller and FastMile, here is the list of some of the use cases of the NBI operations that can be performed with Access Controller.
1. Add a device manager (say Network Virtualizer, AMS) to Access Controller
2. Delete/Replace the manager from Access Controller
3. Get the list of all managers of Access Controller
4. Synchronize the manager devices in Access Controller
5. Search for devices managed by Access Controller
6. Get the list of all the Intent Types in Access Controller
7. Search for intent types
8. Search for intents
9. Audit the Intent
10. Synchronize the Intent with target
11. Get the list of mobility strategies
12. Get the list of policies
13. Trigger policy execution
14. Search policy executions
15. Retrieve the details of a given policy execution
16. Retrieve active alarms from Access Controller
17. Add a PM collection model for the intent
18. Start a live collection
19. Stop the live collection
20. Set network utilization threshold values