YumaWorks Overview

Multi-protocol Management Features for Your Networking Devices

YumaPro SDK and our development team will help you:

  • Shorten your development schedule with automated management plane development (SIL/SIL-SA).
  • Free up your developers to focus on their product’s features rather than standards implementation.
  • Create more robust products with consistent YANG model driven deployment.
  • Automatically keep up to date with the latest YANG & NETCONF features (roadmap).
  • Provide over 350x performance improvements over Open Source (performance).
  • Provide developer blocking fixes in as little as 48 hours.
  • Shorten your product’s time to market.
  • Provide timely fixes and upgrades for your product’s support teams.

 


Why NETCONF?

NETCONF is an IETF defined configuration management protocol to “install, manipulate, and delete the configuration of network devices”. NETCONF operations are conveyed in a Remote Procedure Call (RPC) layer using XML encoding to provide a basic set of operations to edit and query configurations on a network device.

  • next generation Internet services configuration and management
  • transactions allow all or nothing deployment of services
  • configuration and operational data are identified seperately
  • has sets of configuration rather than sequences making backup and restore easier and more robust
  • multiple configurations (running, startup, candidate)
  • filtering allowing retrieval of only the data requested
  • uses standard security and encryption mechanisms
  • can augment or replace legacy CLI & SNMP
  • decreases:
    • downtime
    • service degradation
    • expensive failure analysis

YumaWorks’ YumaPro SDK implements the NETCONF standard fully, including optional requirements.

Key features of YumaPro SDK’s NETCONF implementation:

  • high performance
  • keeps current with evolving standard’s features
  • configuration can be tested and validated
  • uses standard security and access control models
  • event notifications

Key IETF NETCONF RFCs and YumaPro SDK support:

Expand All Collapse All

NETCONF Standards
RFC 4741 (version 1.0)
The first version of the NETCONF protocol is fully supported. View the RFC here.
RFC 4742 (SSH transport v1)
The first version of the NETCONF over SSH transport is fully supported. View the RFC here.
RFC 5277 (notifications)
NETCONF Notifications are fully supported. View the RFC here.
RFC 5717 (partial locking)
Partial configuration sub-tree locking is fully supported to allow concurrent editing transactions on different parts of the configuration. View the RFC here.
RFC 6022 (monitoring)
The standard NETCONF monitoring data is fully supported. View the RFC here.
RFC 6241 (base:1.1)
The second version of the NETCONF protocol is fully supported. View the RFC here.
RFC 6242 (SSH transport v2)
The second version of the NETCONF over SSH transport is fully supported. View the RFC here.
RFC 6243 (defaults filtering)
The with-defaults capability to retrieve default leaf information is fully supported. View the RFC here.
RFC 6470 (notification events)
The NETCONF base notification events that allow clients to know when the server configuration or capabilities have changed. View the RFC here.
RFC 6536 (access control)
The NETCONF Access Control Model (NACM) provides role-based access control for all server database content, operations, and notifications. View the RFC here.

 


Why YANG?

YANG is a powerful and versatile data modeling language that was designed from the requirements of network operators for an easy to use and robust mechanism for provisioning devices and services across networks. It was originally designed at the Internet Engineering Task Force (IETF) and has been so successful that it has been adopted as the standard for modeling design in many other standards bodies such as the Metro Ethernet Forum, OpenDaylight, OpenConfig, and others. The number of YANG modules being implemented for interfaces, devices, and service is exploding.

The YANG RFC 6020 has many very readable examples.

YANG Example of reusable groups

grouping target {
         leaf address {
             type inet:ip-address;
             description "Target IP address";
         }
         leaf port {
             type inet:port-number;
             description "Target port number";
         }
     }

     container peer {
         container destination {
             uses target;
         }
     }

 NETCONF XML Example for the above

     <peer>
       <destination>
         <address>192.0.2.1</address>
         <port>830</port>
       </destination>
     </peer>


YANG Example of must and error-message

container interface {
         leaf ifType {
             type enumeration {
                 enum ethernet;
                 enum atm;
             }
         }
         leaf ifMTU {
             type uint32;
         }
         must "ifType != 'ethernet' or " +
              "(ifType = 'ethernet' and ifMTU = 1500)" {
             error-message "An ethernet MTU must be 1500";
         }
         must "ifType != 'atm' or " +
              "(ifType = 'atm' and ifMTU <= 17966 and ifMTU >= 64)" {
             error-message "An atm MTU must be  64 .. 17966";
         }
     }



YANG Example of <edit-config> operations
Given the following container definition:

     container system {
         description "Contains various system parameters";
         container services {
             description "Configure externally available services";
             container "ssh" {
                 presence "Enables SSH";
                 description "SSH service specific configuration";
                 // more leafs, containers and stuff here...
             }
         }
     }

 A corresponding XML instance example:

     <system>
       <services>
         <ssh/>
       </services>
     </system>

 Since the <ssh> element is present, ssh is enabled.

 To delete a container with an <edit-config>:

     <rpc message-id="101"
          xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"
          xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">
       <edit-config>
         <target>
           <running/>
         </target>
         <config>
           <system xmlns="http://example.com/schema/config">
             <services>
               <ssh nc:operation="delete"/>
             </services>
           </system>
         </config>
       </edit-config>
     </rpc>

  • YANG is the data modeling language for NETCONF
  • designed to be human readable and easy to understand
  • composed of hierarchical schema encoded in XML that can closely resemble an implementation’s native data structures
  • organizes the semantics and data representation
  • augments inserts nodes into an existing hierarchy so they can augment existing YANG modules, e.g. a standard module where the implementation provides additional vendor specific data/service
  • deviations over-ride nodes in an existing hierarchy so they can deviate from existing YANG modules, e.g. a standard module where the implementation cannot provide the data/service for a particular node
  • “if”, “when”, and “choice” constructs
  • contains a rich set of standard types and can create derived types and unions of types
  • grouping allows collections of nodes to be reused
  • “rpc” statement defines methods, input and output parameters
  • provides notifications
  • robust development is supported with versioning and with modularity. Modules can include sub-modules, which in turn can include yet more sub-modules.

YumaWorks’ YumaPro SDK implements the YANG standard fully, including optional requirements.

Key features of YumaPro’s YANG implementation:

  • YumaPro is a 100% “native YANG” implementation – YANG modules are used directly by all the tools to control all aspects of NETCONF protocol usage
  • all YumaPro programs use the same centralized YANG language parser
  • keeps current with evolving standard’s features
  • YumaPro programs support concurrent usage of different revisions of the same module or sub-module
  • translation of existing investment in SNMP MIB data into YANG with freely available smidump tool

Key IETF YANG RFCs and YumaPro support:

Expand All Collapse All

RFC 6020 (YANG)
The YANG data modeling language is fully supported. View the RFC here.
RFC 6021 (YANG Data Types)
The standard YANG data type extensions are fully supported. View the RFC here.

Key YANG Module support:

ietf-inet-types
Standard YANG networking data types from RFC 6021. View the RFC here.
ietf-netconf
Standard YANG data model for NETCONF protocol operations from RFC 6241. View the RFC here.
ietf-netconf-acm
Standard NETCONF Access Control Model (NACM) from RFC 6536. View the RFC here.
ietf-netconf-monitoring
Standard NETCONF monitoring data model and <get-schema> operation from RFC 6022 to retrieve YANG modules from the server. View the RFC here.
ietf-netconf-notifications
Standard NETCONF Notification delivery with replay buffer and command interleave mode from RFC 5217. View the RFC here.
ietf-netconf-partial-lock
Standard NETCONF <partial-lock> and <partial-unlock> operations from RFC 5717 to support concurrent non-overlapping database edits. View the RFC here.
ietf-netconf-with-defaults
Standard NETCONF :with-defaults capability extensions to the <get> and <get-config> operations.
ietf-yang-types
Standard YANG data types from RFC 6021. View the RFC here.
nc-notifications
Netconf Central YANG module for notification monitoring data model from RFC 5277. View the RFC here.
notifications
Netconf Central YANG module for <create-subscription> operation from RFC 5277. View the RFC here.
yuma-arp
Netconf Central YANG module for Linux ARP management.
yuma-interfaces
Netconf Central YANG module for Linux interface monitoring.
yuma-mysession
Netconf Central YANG module for setting and retrieving session-specific session parameters.
yuma-nacm
Netconf Central YANG module for NETCONF Access Control, used as the starting point for NACM in RFC 6536. View the RFC here.
yuma-ncx
Netconf Central YANG language extensions.
yuma-proc
Netconf Central YANG module for Linux /proc system information.
yuma-system
Netconf Central YANG module for NETCONF system management and notifications, which was used as the starting point for RFC 6470. View the RFC here.
yuma-time-filter
Netconf Central YANG module for time-stamp based filtered of configuration data.
yuma-types
Netconf Central YANG module for extended data types.
yumaworks-extensions
YumaWorks YANG language extensions.
yumaworks-types
YumaWorks YANG data type extensions.
yumaworks-system
YumaWorks extensions for CM maintenance such as the backup, restore, and delete-backup operations.

 


Why YumaWorks?

YumaWorks is a fast-growing SDN startup developing network management and control plane automation tools, used by the world’s leading networking companies. YumaPro SDK is a multi-protocol distributed server toolkit comprised of YANG data-driven tools to automate configuration and network management interfaces. NETCONF, RESTCONF, and CLI protocols are derived from the same YANG data models to provide a consistent and protocol-independent programmatic API.

YumaPro SDK automates management plane development and run-time:

  • faster time to market
  • consistent implementation across platforms and versions
  • your engineers focus on the product features
  • YumaPro SDK keeps your product up-to-date with management standards
  • YumaPro provides the YANG-based protocols and hides the details from the instrumentation
  • YANG defines the APIs between the layers
  • YumaPro tools generate instrumentation code stubs from the YANG modules
  • your engineers fill in the code stubs with their platform code
  • the code is built and can then be dynamically loaded at run time

Benefit from our experience and expertise:

Andy Bierman, the founder of YumaWorks, has been an integral part of the IETF’s development of NETCONF & YANG and has co-authored many of the RFCs as well as in other network management areas

YumaWorks continues to drive innovation in the NETCONF & YANG standards

YumaWorks has over 50 years of collective experience in the network management arena with large networking equipment vendors and service providers

YumaWorks can help your organization shed the legacy technology of CLI & SNMP and move efficiently to the rich and robust management model of YANG over NETCONF/RESTCONF

YumaPro offers our customers cost of ownership advantages by letting YumaWorks keep abreast of new developments and standards in the NETCONF & YANG arena and upgrading YumaPro on a regular basis with these new features

Key YumaPro SDK product features:

YumaPro SDK server – netconfd-pro

  • the server deals with all the protocols
  • the YumaPro SDK tools create the Server Instrumentation Library (SIL) code from YANG modules
  • SIL is easily distributed with SIL-SA for Sub-Agents
  • developers only need to create the system management code
  • Multi-thread, multi-core scalability with true concurrency
  • YANG/instrumentation code (SIL/SIL-SA) dynamically loaded at runtime
  • syslog support
  • yp-shell, based on yangcli-pro, provides the YumaPro server with an IOS-like CLI shell
  • yang-api provides WEB Apps API for the YumaPro Server with HTTP/REST CRUDX operations on YANG content
  • ycontrol provides a user extensible sub-system for higher layer asynchronous operation with the server
  • DB-API provides an API so configuration edits can be sent from sub-systems to the server
  • yp-system allows flexible connection to vendor specific functions

For the full list of features see: https://www.yumaworks.com/netconfd-pro/#YumaPro-Server-Features

YumaPro SDK client – yangcli-pro

  • automatic mirror of running config
  • automatic notification setup
  • automatic config-change handling
  • automatic lock management
  • notification callback handler framework
  • extended “Tab” support for list key completion with aliases and variables
  • “?” key context-sensitive help mode
  • IOS-like configuration mode for simplified editing, using YANG node names as keywords
  • test suites are regression test templates
  • layered: suites > tests > steps, each step can be a local or remote command
  • expected result can be error, specific error, ok, data, specific data, etc.
  • users can build custom repeatable server regression test libraries for any server feature or YANG module
  • test results and reports can be generated from the last test run
  • automatic recording of tests

For the full list of features see: https://www.yumaworks.com/yangcli-pro/#yangcli-pro-Features

 


Open Source?

 

YumaPro SDK was forked from Yuma, commonly called OpenYuma, in 2011. Since then YumaWorks has vastly increased the reliability, robustness, and performance of YumaPro SDK. We’ve also added a myriad of new features, all while implementing standards compliance. By contrast, OpenYuma has remained largely untouched and is not commercially supported by anyone.

There have been hundreds of performance improvements, including bug fixes and new features. Below is a list of some of the enhancements:

  • YP-Shell – embedded CLI for the server
  • YANG-API – programmable interface for web support using REST operations and JSON over HTTP
  • 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
    • Configuration Replay – replay configuration just to a specific sub-system if it restarts
    • DB-API – send configuration edits to the server from sub-systems
  • SYSLOG Support
  • NACM – Standard NETCONF Access Control Model
  • YP-System – distributed framework system APIs to allow easy integration to existing systems without the need to modify source code
  • YPWatcher – High Availability (HA) support to restart the server
  • NETCONF notifications
  • RESTCONF –  a REST like protocol running over an HTTP interface to access the YumaPro NETCONF server datastores
  • Ongoing and up-to-date standards support for NETCONF, RESTCONF and YANG
  • Server Interface Library (SIL) Bundles – module groups loaded as a single entity https://www.yumaworks.com/netconfd-pro/sil_overview/
  • 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)
  • yangcli-pro – NETCONF client with sessions, config mode, test suites, command and response validation, command line history, context sensitive help and command completion https://www.yumaworks.com/yangcli-pro/
  • Transaction performance increase – over 350 times faster than OpenYuma (https://www.yumaworks.com/netconfd-pro/#Transaction-Performance)
  • Support for concurrent client sessions https://www.yumaworks.com/netconfd-pro/#Concurrent-Sessions

Users of OpenYuma can easily migrate to YumaPro without rewriting code! Let YumaWorks:

  • Reduce your time to market
  • Decrease your development costs
  • Provide your team top-notch support through the development process

 

Login

Lost your password?