YumaPro's modular architecture provides developers with control and flexibility


This article is a high-level overview designed to familiarize you with the various components and features of YumaPro SDK. In-depth articles about these components/features can be found in the links below and in our various documentation.


Architecture Overview


Below is a list of some of YumaPro SDK's features:

  • YP-gRPC – provides Google’s gRPC functionality with a gRPC server controlled and monitored by YumaPro’s netconfd-pro server (YumaPro gRPC Manual)
  • YP-gNMI – self-contained Google's RPC Network Management Interface (gNMI) server that connects with netconfd-pro to provide access to the YANG datastores via Google’s gRPC (YumaPro gNMI Manual)
  • YP-Shell – embedded CLI for the server (Access the CLI on netconfd-pro)
  • YControl – user extensible sub-system for higher layer asynchronous operation with the server. Enables:
    • auto-restart, full server configuration, and services sync
    • SIL-SA – distributed Sub-Agents for SIL callbacks from remote sub-systems (Working with SIL or SIL-SA code)
    • Configuration Replay – replay configuration just to a specific sub-system if it restarts
    • DB-API – send configuration edits to the server from sub-systems (Database)
  • SYSLOG support 
  • NACM – Standard NETCONF Access Control Model (How do I control user access to server content?)
  • YP-System – distributed framework system APIs to allow easy integration to existing systems without the need to modify source code
  • ypwatcher – lightweight proto-HA (High Availability) process adds support to restart the server
  • YP-HA – Full 1:n Active/Standby High Availability for netconfd-pro servers (Configuring a YP-HA High Availability server pool)
  • POSIX Threads  POSIX multi-threading support with each session running in its own thread
  • NETCONF notifications
  • RESTCONF –  a REST like protocol running over an HTTP interface to access the YumaPro NETCONF server datastores (RESTCONF)
  • RESTCONF notifications
  • Call Home – reverse SSH protocol allows programmatic provisioning of dispersed and fluid network elements (Establishing a Call Home Connection)
  • SNMP – Incorporate and/or convert legacy SNMP networks into your YANG-based management solution (YumaPro yp-snmp Manual)
  • IoT support – Architectural optimizations, along with support for Yocto and buildroot, allow you to bring YANG-based management solutions to the smallest networking devices (Yocto Introduction)
  • Ongoing and up-to-date standards support for NETCONF, RESTCONF, Call Home, and YANG
  • Server Interface Library (SIL) Bundles – module groups loaded as a single entity (Server Code Generation)
  • Crypt hash is used to encode passwords rather than being transmitted in the clear
  • Provides support for YANG Deviations, Augments, and XPath (XML Path Language) (YANG Constraints Explained)
  • Config Templates – fill in Configuration Templates to automate deployment of common configuration sets based on your use cases
  • yangcli-pro – NETCONF client with sessions, config mode, test suites, command and response validation, command line history, context sensitive help and command completion (YumaPro yangcli-pro Manual)
  • Transaction performance increase – up to 20,000 times faster than OpenYuma (Performance)
  • Support for concurrent client sessions (Using Named Sessions)
  • NGINX support for RESTCONF
  • XPath evaluation optimizations
  • Provides dynamic error strings with expressions and variable substitution (How do I customize the server error messages?)
  • Support for multi-language error messages (How do I customize the server error messages?)
  • NETCONF over TLS support
  • RESTCONF over TLS support
  • Logrotate support
  • Support for maintenance mode
  • More than 150 CLI parameters provide total configuration control. (Configure Server Protocol Features)
  • More than 750,000 new lines of source code with flexible make options allow you to build the server customized to your project


What have we learned here?


NETCONF and YANG have many features which interact with many of your components to create a highly configurable system.


Next Lesson: Getting Started with Important Configuration Parameters