NX-SDK

About the NX-SDK

The Cisco NX-OS SDK (NX-SDK) is a C++ abstraction and plugin-library layer that streamlines access to infrastructure for automation and custom application creation, such as generating custom:

You can use C++, Python, or Go for application development with NX-SDK.

Requirements

The NX-SDK has the following requirements:

About On-Box (Local) Applications

With on-box (local) applications, you install the NX-SDK, build your application in whichever supported language you choose, package the app as an .rpm file which can be installed on the switch, then install and run your applications on the switch. The .rpm files can be manually generated or autogenerated.

Application development occurs in the containers that are provided by NX-SDK. You will use a different container and tools for local applications than remote applications. For more information, see Default Docker Images.

For information about building, installing, and running local applications, see Cisco DevNet NX-SDK.

Default Docker Images

NX-SDK has the following Docker images and tools by default for local or remote use.

Usage Contents
On Switch Cisco ENXOS SDK
Wind River Linux (WRL) tool chain for cross compiling
Multi-language binding toolkit
Beginning with NX-SDK 1.75, a Go compiler
Off switch (remote) NX-SDK multi-language binding Toolkit with pre-built libnxsdk.so
A Go compiler
RapidJSON
gRPC for remote API support

For more information, see https://github.com/CiscoDevNet/NX-SDK#readme.

Guidelines and Limitations for NX-SDK

NX-SDK has usage guidelines and limitations for running applications locally (on box) or remotely (off box).

For guidelines and limitations, see "Helpful Notes" at Cisco DevNet NX-SDK.

About NX-SDK 2.0

The NX-SDK version 2.0 enables execution-environment flexibility for developers to run their applications wherever needed. With this version of NX-SDK, your applications are still developed off the switch in containers, but you can run the apps either on the switch or off the switch, for example in a cloud.

NX-SDK 2.0 offers the following benefits:

For more information, see https://github.com/CiscoDevNet/NX-SDK/blob/master/readmes/NXSDK_in_NXOS.md.

About NX-SDK 2.5

Beginning with Cisco NX-OS Release 9.3(3), support is added for the Streaming Syslog feature.

For more information, see CiscoDevNet.

Table 1: Syslog Events

Features Details
Syslog Events Ability for custom applications to register for Cisco NX-OS syslog events.
Refer to watchSyslog and postSyslogCb APIs in nx_trace.h for more details.

About Remote Applications

Remote applications can be on a different switch that is not a Cisco Nexus switch. Remote, or off-box, applications call through the NX-SDK layer to interact with the switch to read information (get) or write information (set).

Both local and remote NX-SDK applications use the same APIs, which offer you the flexibility to deploy NX-SDK applications on- or off-box.

To run remotely, an application must meet specific requirements. For information, see https://github.com/CiscoDevNet/NX-SDK/blob/master/readmes/NXSDK_in_NXOS.md.

Backward Compatibility for Pre-2.0 NX-SDK Applications

NX-SDK 2.0 has conditional backward compatibility for NX-SDK v1.75 applications depending on how these applications were developed:

For more information, see https://github.com/CiscoDevNet/NX-SDK/blob/master/readmes/NXSDK_in_NXOS.md.

NX-SDK Security

Beginning with NX-OS 9.3(1), NX-SDK 2.0 supports the following security features:

If your NX-SDK server already has a custom certificate that is installed, for example, if you are upgrading from a previous NX-SDK version to NX-SDK 2.0, your existing certificate is retained and used after upgrade.

Security Profiles for NX SDK 2.0

In previous releases, the APIs for SDK version 1.75 were permitted only to read and get data for events. Beginning in Cisco NX-OS Release 9.3(1), NX-SDK 2.0 supports different types of operations, including write calls.

The ability of an app to read or write to the switch can be controlled through a security profile. A security profile is an optional object that is attached to the applications' service running in the switch. Security profiles control an application's ability to write to the switch, and in turn, control the applications ability to modify, delete, or configure switch functionality. By default, application writes are disallowed, so for each application, you will need to create a security profile that enables write access to the switch.

Cisco's NX-SDK offers the following security profiles.

Profile Description Values
Deny Prevents any API calls from writing to the switch except for adding CLIs. This is the default profile.
Throttle Allows APIs that modify the switch, but only up to a specified number of calls. This security profile applies throttling to control the number of API calls.
The application is allowed to write up to the limit, but when the limit is exceeded, writing stops, and the reply sends an error message.
The throttle is 50 API calls, and the throttle resets after five seconds.
Permit APIs that modify the switch are allowed without restriction

For more information about security profiles in NX-SDK, see Security Profiles for NX-SDK Applications.

PDF preview unavailable. Download the PDF instead.

m-n9k-nx-sdk-101x DITA Open Toolkit XEP 4.30.961; modified using iText 2.1.7 by 1T3XT

Related Documents

Preview Cisco Nexus 9000 Series NX-OS Release Notes, Release 10.2(2)F
This document details the features, issues, and exceptions of Cisco NX-OS Release 10.2(2)F software for Cisco Nexus 9000 Series switches, including new and enhanced software features, unsupported features, and resolved and open issues.
Preview Configuring the MPLS Feature Set on Cisco Nexus 7000 Series NX-OS
A comprehensive guide to installing, enabling, and configuring the Multiprotocol Label Switching (MPLS) feature set on Cisco NX-OS devices, including prerequisites, guidelines, and examples.
Preview Cisco Nexus 3000 Series NX-OS Fundamentals Configuration Guide, Release 10.1(x)
A comprehensive guide for network administrators on configuring Cisco Nexus 3000 Series switches using NX-OS. Covers CLI operations, terminal settings, device management, POAP, file systems, and configuration file handling.
Preview Cisco Nexus 9000 NX-OS Fundamentals Configuration Guide, Release 10.2(x)
A comprehensive guide to configuring Cisco Nexus 9000 Series switches running NX-OS Release 10.2(x), covering fundamental concepts, features, and best practices for network management and operation.
Preview Cisco Nexus 3600 NX-OS Software Upgrade and Downgrade Guide
Comprehensive guide for upgrading and downgrading Cisco Nexus 3600 Series NX-OS software, detailing procedures, prerequisites, and upgrade history.
Preview Cisco NX-OS Python API Guide
Explore the Cisco NX-OS Python API for network automation. Learn to write and execute Python scripts to manage network devices, access core modules like interfaces, VLANs, VRFs, ACLs, and routes. This guide covers CLI command APIs, display formats, and security considerations.
Preview Cisco NX-OS ソフトウェア機能のライセンス ガイド
Cisco NX-OSソフトウェア機能のライセンスに関する包括的なガイド。Cisco Nexusスイッチでの永続ライセンス、サブスクリプション、階層型パッケージ(Essentials、Advantage、Premier)の導入と管理について、各プラットフォーム別に詳しく解説します。
Preview Cisco Nexus 3000 Series NX-OS Release Notes, Release 9.3(7)
This document details the features, issues, and exceptions for Cisco NX-OS Release 9.3(7) software used on Cisco Nexus 3000 Series switches. It includes information on new and enhanced software features, open and resolved issues with bug IDs and descriptions, and a comprehensive list of supported hardware, including switches, fans, and power supplies for various Nexus series.