Fully Programmable Network Configuration
The YumaPro Server supports the complete NETCONF protocol. Any protocol operation, database object or notification message can be easily added to the server by providing a YANG data model defining the API. All mandatory and optional protocol features are supported, and fully configurable at boot-time.
High Performance Network-wide Commit and Rollback
The YumaPro Server includes a high performance transaction engine and internal database. All of the NETCONF features including XPath and Confirmed Commit are supported. An application can use the standard procedure (double commit) or use the YumaPro backup and restore operations to safely apply network-wide configuration changes.
What is 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 separately
- 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:
* = partially supported
NETCONF Capabilities Implemented in YumaPro Server
Name | Description | Requirements |
---|---|---|
base:1.0 | RFC 4741 protocol version | none |
base:1.1 | RFC 6241 protocol version | none |
candidate:1.0 | Candidate database | –target=candidate [default] |
confirmed-commit:1.0 | Confirmed commit operations | –target=candidate [default] |
confirmed-commit:1.1 | Confirmed commit operations (base:1.1 version) | –target=candidate [default] |
writable-running:1.0 | Running database is the <edit-config> target | –target=running |
rollback-on-error:1.0 | Rollback on error for <edit-config> | none |
validate:1.0 | <validate> operation and ‘test-only’ <edit-config> test-option are supported; | –with-validate=true [default] |
validate:1.1 | <validate> operation and ‘test-only’ <edit-config> test-option are supported; (base:1.1 version) | –with-validate=true [default] |
startup:1.0 | Distinct startup database; <copy-config> to startup config needed to NV-save the running config | –with-startup=true |
url:1.0 | URL parameter support; The ‘file’ scheme is allowed in the <url> parameter to backup and restore named config files | –with-url=true [default] |
xpath:1.0 | Full XPath 1.0 + YANG extensions for <get> and <get-config> operations | none |
notification:1.0 | NETCONF notifications; use <create-subscription> operation to start | none |
interleave:1.0 | Allow <rpc> requests while notifications are active | none |
partial-lock:1.0 | <partial-lock> and <partial-unlock> operations | –target=running |
with-defaults:1.0 | <with-defaults> parameter for ‘report-all’, ‘trim’ and ‘explicit’ modes | –default-style used to pick basic-mode [default=explicit] |
YANG Modules Included with YumaPro Server
YANG Module Name | Description |
---|---|
iana-crypt-hash | Standard type for storing passwords using a hash function and features to indicate which hash functions are supported by an implementation, from RFC 7317. |
iana-if-type | Standard YANG identities for IANA-registered interface types from RFC 7224. |
ietf-datastores | Standard set of identities for identifying datastores for use with NMDA, from RFC 8342. |
ietf-interfaces | Standard YANG definitions for managing network interfaces from RFC 7223. |
ietf-inet-types | Standard YANG networking data types from RFC 6021. |
ietf-netconf | Standard YANG data model for NETCONF protocol operations from RFC 6241. |
ietf-netconf-acm | Standard NETCONF Access Control Model (NACM) from RFC 6536. |
ietf-netconf-monitoring | Standard NETCONF monitoring data model and |
ietf-netconf-nmda | Standard set of NETCONF operations to support the Network Management Datastore Architecture (NMDA) from RFC 8526. |
ietf-netconf-notifications | Standard NETCONF Notification delivery with replay buffer and command interleave mode from RFC 5277. |
ietf-origin | Defines an 'origin' metadata annotation and a set of identities for the origin value for use with NMDA, from RFC 8342. |
ietf-netconf-partial-lock | Standard NETCONF |
ietf-netconf-with-defaults | Standard NETCONF :with-defaults capability extensions to the |
ietf-restconf | Standard RESTCONF protocol message artifacts from RFC 8040. |
ietf-restconf-monitoring | Standard RESTCONF monitoring from RFC 8040. |
ietf-yang-library | Standard YANG Module Library for RESTCONF and YANG 1.1 from RFC 7895 |
ietf-yang-patch | Standard YANG Patch Media Type used by RESTCONF and DB-API from RFC 8072 |
ietf-yang-types | Standard YANG data types from RFC 6021. |
nc-notifications | Netconf Central YANG module for notification monitoring data model from RFC 5277. |
notifications | Netconf Central YANG module for |
toaster | Example SIL module. |
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. |
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. |
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-attrs | This module contains abstract object definitions for the last-modified and etag XML attributes. |
yumaworks-config-change | YumaPro common identities. |
yumaworks-event-filter | YumaWorks YANG module adds configurable event type filtering for notification delivery. |
yumaworks-extensions | YumaWorks YANG language extensions. |
yumaworks-getbulk | YumaWorks |
yumaworks-ids | YumaWorks YANG identities. |
yumaworks-restconf | YumaWorks RESTCONF monitoring extensions. |
yumaworks-restconf-commit | YumaWorks RESTCONF confirmed commit extensions. |
yumaworks-server | Runtime access to netconfd-pro server parameters. |
yumaworks-support-save | This module contains the get-support-save operation and the support-save-data yang-data structure. |
yumaworks-system | YumaWorks extensions for CM maintenance such as the backup, restore, and delete-backup operations. |
yumaworks-templates | YumaWorks configuration templates extension to edit-config. |
yumaworks-term-msg | Notification event for terminal message feature. |
yumaworks-test | This module contains data structures representing replayable test suites for specific use cases and YANG modules for use with yangcli-pro. |
yumaworks-types | YumaWorks YANG data type extensions. |
yumaworks-yangmap | YANG model mapping control block parameters for yangcli-pro. |