Open NX-OS provides an extensible, open and programmable network operating system across Nexus 3K/9K platforms. It features enhanced infrastructure layers including open package/application integration using RPM/YUM, an open Linux architecture with kernel networking stack, and an open NX-API REST interface using model-based APIs for automation.
2. Open NX-OS consistent across
both ToR and ModularExtensibilityAuto
Deployment
Open Application
Integration
Programmability
Tool Choice
DevOps
Enabling
POAP NXAPI
Yocto
SDK
Standard Open
Interfaces
Open
Interfaces
Automation
and Visibility
Adaptable
NXOS
Adaptable
SDK
ProgrammableBootStrap and
Provisioning
BootStrap/
Provisioning
Package and
Application
Management
Native
Application
Integration
PXE
OPEN NXOS – Enhancements across all NX-OS
Infrastructure Layers
Data
Models
OPEN NX-OS - Extensible, Open, Programmable
Server
Management
Tools
3. Open NX-OS: Infrastructure Layer Enhancements
OPEN PACKAGE/APPLICATION INTEGRATION
OPEN INTERFACE LINUX ARCHITECTURE
OPEN NX-API REST (MODEL BASED)
Open NX-OS supported across
Nexus 3K/9K
Open NXOS
4. Open NX-OS Package Management via YUM/RPM
LXC and Native Daemons
• Ability to third party packages in
Secure Guestshell or natively in NX-
OS kernel
• Install all third party applications
(Puppet/Chef, etc) as RPMs
• Daemon managed via standard Linux
interfaces
• Built-in support for YUM package
manager
• Patching and upgrade using standard
rpm/yum workflows
• NX-OS processes(BGP) can be
upgraded/patched via “yum update”
Package as RPM
C app with
standard Linux
constructs
Open Embedded
64 bit Build
Environment
Cisco/Local
Repository
RPM local
repository
RPM upload
YUM Install
Linux Daemon
Linux Kernel
• Raw Socket
• Netdevs
• Libpcap
init.d
Monitoring
server
ASIC
Build Server Target Switch
5. Third Party
Protocol Apps
Devops
Orchestration
Automation
Monitoring/
Analytics
Third Party/Custom
Applications
tcollector
64 Bit Yocto Based Linux Kernel
Switch Hardware
Routing/Switching
Packages
Kernel Route Kernel ARP Kstack/Netdevs Kernel
Space
User
Space
Base NX-OS
OpenLLDP
Open NX-OS Third Party Application Integration
SoftwareArchitecture
6. Kernel (cgroup, LSM)
NX-OS root file system
Native
Linux
Processes
Native
Linux
Processes
Bash Bash
Native
Linux
Processes
Native
Linux
Processes
Native
Linux
Processes
Guest root file system
Pkg-1.rpm Pkg-2.rpm
Pkg-2.rpm Pkg-3.rpm
Ns=globalNs=global Ns=guestshell Ns=guestshell Ns=guestshellNs=global Ns=guestshell
Native Shell, RPM +
Containers
• Secure common distribution CentOS7 environment in which customer may install their own custom
applications
• Use “guestshell resize” command to restrict CPU/memory/rootfs resources available to Guest
Shell
Open NX-OS: Third Party Application Integration
Secure Guest Shell
Pkg-4.rpm
7. Open NX-OS: Infrastructure Layer Enhancements
OPEN PACKAGE/APPLICATION INTEGRATION
OPEN INTERFACE LINUX ARCHITECTURE
OPEN NX-API REST (MODEL BASED)
Open NX-OS supported across
Nexus 3K/9K
Open NXOS
8. Open NX-OS Linux Kernel Stack Architecture
UserSpace
ASIC-1 ASIC-M
Eth1/1 Eth M/NEth1/2
Portchannel1
SubIntf
Switch Ports
LinuxKernel
• Allows 3rd party apps to
inject routes to
hardware using Linux
interfaces
• Install 3rd party routing
protocols built on Linux
interfaces
NetDevices
ASIC-2 . . .
Eth1/1
Route
Table
ARP
Table Linux
Networking
Stack
NX-OS
FIB
Routing Protocols
Adjacency
Table
HardwareApps
Linux Networking Apps Monitoring/Visibility Automation/Provisioning
9. Open NX-OS Interfaces: NX-OS Kernel Stack
Representing VRF context via Linux Name Space
UserSpace
ASIC-1 ASIC-M
Eth1/1 Eth M/NEth1/2
Portchannel1
SubIntf
Switch Ports
LinuxKernel
• Forwarding information
within the ‘VRF’ context
can be accessed via a
corresponding Linux
Name Space
• setns, ip-netns to change
VRFs and add routes
within a given
namespace.
NetDevices
ASIC-2 . . .
Eth1/1Linux Networking Stack
Hardware
Default
Name
Space
Default
VRF
Name
Space
Red
VRF
Red
Name
Space
Orange
VRF
Orange
Name
Space
Purple
VRF
Purple
Apps
Linux Networking Apps Monitoring/Visibility Automation/Provisioning
ASIC-3
10. Open NX-OS: Infrastructure Layer Enhancements
OPEN PACKAGE/APPLICATION INTEGRATION
OPEN INTERFACE LINUX ARCHITECTURE
OPEN NX-API REST (MODEL BASED)
Open NX-OS supported across
Nexus 3K/9K
Open NXOS
11. • Object models for NX-OS switch
processes (BGP, VLAN, etc) are
exposed to customer and are
programmed via RESTful API’s
asynchronously.
• SNMP goes via DME(Object Store) or
legacy path based on component
and operation type (GET/SET).
• All manageability agents over CLI are
still supported via CLI including
existing NX-API implementation
• Models are rendered as configuration
changes on backend processes via
DME(Object Store).
REST CLIENT PROCESS FLOW:
1. Client sends REST request over
HTTP
2. DME validates posted/input REST
objects against cisco models and
returns Success/Failure to calling
REST client
3. Transactions Committed on backend
processes
4. Report Status(Success/Raise Fault)
NX-API
Python
API
BashTCL
CLI(VSH)
Transport:
HTTP/HTTPS
Data: JSON/XML
NGINI
X
Server
Data Management Engine
Netconf
Transport: SSH
Data: XML
Object Store
SNMP
Agent
SNMP
Rest
Client
Netconf
Client
BGP LACP ACL QoSVLAN
Transaction Commit Status: Success/Raise
Fault
1 2
3 4
Open NX-OS Programmability
Object Model Based Automation with NX-API REST