/NX-SDK

NX-OS SDK

Primary LanguageC++Apache License 2.0Apache-2.0

NX-SDK

Table of Contents

Cisco NX-SDK

Cisco NX-SDK provides a simple, flexible, modernized and powerful tool for off the box third party custom Application development to gain access to Nexus infrastructure functionalities which when run inside (or) outside the Nexus switches allow the custom applications to run natively just like any other Cisco native Nexus applications. It is appropriate for Do-it-Yourself Automation to develop custom applications to fit your needs thereby decoupling application development from Nexus releases. NX-SDK offers various functionalities like ability to generate custom CLIs, Syslogs, Event manager, HA, Route Manager, Streaming Telemetry and much more.

NX-SDK provides Abstraction/plugin Library Layer thereby decoupling the Application from underlying infrastructure being used. Hence, its easy and simple to change infra without affecting the applications. Hence, NX-SDK is being used for developing native Cisco Applications as well.

It is built using C++ language. Other language (python, go, ruby etc) bindings will also be provided for NX-SDK hence custom applications can be developed and built in any language of users choice. Starting from NX-SDK v2.0.0, NX-SDK applications can run anywhere (inside or outside of NX-OS).

This github provides NX-SDK toolkit for custom application development in your favorite Linux environment to gain access to NX-OS infrastructure.

Release

  • Refer to NX-SDK versions for more details on different versions and its supported features.
  • Refer to NX-SDK releases to get older NX-SDK toolkit versions.

Documentation and Usage

  • For C++ custom Application development, public APIs are available in include/. Its description and usage are available in API documentation (doxygen generated).
  • Python and other language bindings will be auto-generated from the above C++ APIs using SWIG. Refer to version for more details on supported language bindings in each NX-SDK version.
  • Refer to example NX-SDK applications for more details.

Description

For detailed description and directory structure of Cisco NX-SDK toolkit, refer to description.

NX-SDK Deployment Modes

Inside NX-OS (on box)

Refer to steps to deploy NX-SDK applications in NX-OS.

Sample Custom Applications created using NX-SDK

Refer to example NX-SDK applications for more details.

Notes

  • Ensure that the name of the custom application does not collide with any existing Native Nexus applications.
  • For NX-SDK applications to be started in VSH, please name the application as one word containing alphabets.
  • NX-SDK docker images already has NX-SDK toolkit installed in (/NX-SDK). To get latest versions do a git pull.
  • Perform all NX-SDK related initializations in one thread. Refer to sample example custom applications for sample template and usage.
  • Each API defined returns an error (or) throws an exception in case of any failures. Refer to the generated doxygen and usage for each API and the different exceptions they throw.

readme