Skip to content

Releases: CiscoDevNet/NX-SDK

NX-SDK v2.0.0

24 Feb 20:24
17c20b4

Choose a tag to compare

Nexus Release:

  • N9Ks, N3Ks from 9.3(0) release.

Features:

Features Details
Languages C++, Python, Go (EFT/Beta for V2.0.0 APis)
NX-API support
  • NX-API support for custom show commands generated by NX-SDK applications.
  • Refer to "showCliOutFormat" & "printConsole" API in nx_cli.h for more details.
  • This is to print the custom show command in the specified output format text (default), json, xml. ex) show <appname> blah | json
NxRibMgr
  • Extended NxRibMgr to add/delete/modify routes in NXOS RIB.
  • For more details on the NxRibMgr add/delete/modify APIs and its usage, refer to nx_rib_mgr.h
Remote NX-SDK
  • Now with Remote NX-SDK support, NX-SDK applications can not only run inside NX-OS but can run "anywhere (inside a container, in cloud, inside the switch etc)".
  • For more information refer to Remote readMe doc
Security Profiles
  • A security profile is an optional object that is attached to the NX-SDK on box service or remote server running in the switch.
  • Security profiles control an NX-SDK (on box or remote) application's ability to interact/access NX-OS.
  • For more information refer to Security Profiles Readme

Sample Applications:

 - [dupHostMonitor](readmes/dupHostMonitor_remote_NXSDK.md)

NX-SDK v1.7.5

18 Jul 00:05

Choose a tag to compare

Nexus Release:

  • N9Ks, N3Ks from 9.2(2) release.

Features:

Features Details
Languages C++, Python, Go
NxIntfMgr
  • Provides access to NX-OS Interface Manager.
  • Custom Applications can now use the NxIntfMgr APIs to get, add, delete, update and register for interface events.
  • For more details on the NxIntfMgr APIs and its usage, refer to nx_intf_mgr.h
NxMacMgr
  • Provides access to NX-OS Mac Manager.
  • Custom Applications can now use the NxMacMgr APIs to get, add, delete, update and register for MAC events.
  • For more details on the NxMacMgr APIs and its usage, refer to nx_mac_mgr.h
NxAdjMgr
  • Provides access to NX-OS Adjacency Manager.
  • Custom Applications can now use the NxAdjMgr APIs to get and register for Adjacency/Neighbour events.
  • For more details on the NxAdjMgr APIs and its usage, refer to nx_adj_mgr.h
NxDmeMgr
  • Provides access to NX-OS Data Management Engine (DME) database.
  • Custom Applications can now use the NX-SDK DmeMgr APIs to get, add, delete, update and register for datastore events.
  • DME database is keyed by distinguished name (DN) paths. For ex) To access LLDP related datastore, use DN path "sys/lldp".
  • For more details on the NxDmeMgr APIs and its usage, refer to nx_dme.h
  • Refer to DME Model documentation for supported DNs and their properties.
Go
  • For more information on how to develop NX-SDK Go Apps refer to Go README

Sample Applications:

  • featureMonitor, silentHostDiscovery. Refer to examples for more details.

Known Bugs:

  • Exception handling in GO.
  • NxMacMgr events are generated only for MACs for which there is an AM adjacency.
  • NxMacMgr, NxAmMgr APIs works only in VSH Mode and not in BASH mode.
  • NxIntfMgr can only open around 3000 interfaces before memory limits are reached.

NX-SDK v1.5.0

07 Nov 22:17
2b5c389

Choose a tag to compare

Nexus Release:

  • N9Ks, N3Ks from I7(3) release.

Features:

Features Details
Languages C++, Python
NxRibMgr
  • Ability for custom applications to register with Nexus L3 RIB for route updates & lookups.
  • For more details on the NxRibMgr APIs and its usage, refer to nx_rib_mgr.h
  • For sample application using NxRibMgr, refer to routeTracker NX-SDK application.
  • Known Bug: nx_rib_mgr.h APIs works only in VSH not in BASH.
Streaming telemetry
  • Ability to stream custom information from custom NX-SDK application through NXOS telemetry.
  • To stream custom data, define custom "show" command in your NX-SDK application to directly ouput JSON data to be streamed out of the switch.
  • Set “query-condition show-output-format=json” in the telemetry path config as follows to stream custom JSON data from custom NX-SDK Show cli.
  • For sample application using streaming telemetry, refer to routeTracker NX-SDK application.
CPU Limit
  • CGROUP support for NX-SDK Applications ensure NX-SDK user applications, do not overconsume system resources(CPU cycles, system memory) from other native system processes.
  • NX-SDK supports three cgroup modes:
    • Low: All NX-SDK apps started in this mode combined can use upto 25% of CPU and 768M of Memory in contention.
    • Med: All NX-SDK apps started in this mode combined can use upto 50% of CPU and 1GB of Memory in contention.
    • High: All NX-SDK apps started in this mode combined can use upto 75% of CPU and 1.5GB of Memory in contention.
  • By default, all NX-SDK Apps will be started as Low priority app.
  • App priority can be changed using the API, setAppPriority(nxos::prio_e prio) defined in nx_sdk.h.
Memory footprint
  • Memory footprint for all NX-SDK objects created and its sizes for an NX-SDK Application.
  • To get the memory footprint use, "show $appname nxsdk mem-stats".
Advanced Exception
  • On failure, APIs throw exceptions. Refer to the API documentation for more details on the failures cases for each & every API.
  • In v1.0.0, failures are thrown as simple exceptions as Strings.
  • From v1.5.0, applications can either catch simple or advanced exceptions. Advanced exceptions are of common type "NxException" across all languages with more detailed information on the failure.
  • Refer to nx_exception.h for more details on the supported APIs & its usage.

NX-SDK v1.0.0

20 Feb 20:48
ede005c

Choose a tag to compare

Nexus Release

N9Ks from I6(1) release.
N3Ks from I7(1) release.

Languages C++, Python
Features
  • APIs to gain access to NXOS functionalities. Refer to nx_sdk.h
  • APIs to generate custom CLIs (config and show commands) and get callbacks. Refer to nx_cli.h
  • APIs to generate custom Syslogs, Events & Error history. Refer to nx_trace.h
  • To start/stop custom Applications from VSH just like any other native Nexus applications (like feature bgp) thereby providing HA capability for custom applications.
Example Apps tmCfgBot, pbwMonitor. Refer to NX-SDK Apps for more details.