Model-driven interfaces in IOS XE, model-driven programmability

Learn about model-driven programmability with IOS XE. Explore YANG Data Models with NETCONF and RESTCONF; Streaming Telemetry.

Model-Based Management Introduction

Model-driven interfaces are an improved way to manage network devices. Model-based interfaces exhibit a number of properties:

  • Structured configuration data and operational data
    • Eliminates need for off-box screen scraping
  • Data objects defined
    • Includes type information including range checking, values, other constraint checks
    • Facilitates specific data values based on label or tags association
  • Facilitates automation using Python and other scripting languages
  • Data representing multiple operations can be combined into a single message
  • Configuration operations are transactional
    • All configuration is applied successfully, or none is applied
    • Automatic roll back of any failed configuration attempt

Starting in IOS-XE 16.3, model-based interfaces co-exist and interoperate with existing device CLI, Syslog, and SNMP interfaces. These interfaces are optionally exposed northbound from network devices. YANG is used to model each protocol/encoding based on RFC 6020. Once enabled, a collection of Linux processes run natively on the device representing the implementation inside IOS-XE. These processes map configuration messages from a YANG model to a form that can be used to manifest CLI commands.

Data Models

The following models are supported for IOS-XE:

Open Models

Open models are models designed to be independent of the underlying platform implementation. Their intent is to normalize per-vendor configuration of network devices. Open YANG Models are developed and promoted by Vendors, Standards bodies, e.g. IETF and customers, e.g. the OpenConfig group.

Native Models

Native models provide a transition from CLI-based device management and represent a model-based interface of current CLI of device operation. These models are specific to the underlying platform operating system and feature implementations. Native models are designed to integrate with platform OS-specific feature implementations with minimal translation between the information exposed by the model-based interface and the feature implementation.

What now?

Look for docs on NETCONF, RESTCONF and how to begin integrating machine interfaces in with AAA to get started with implementing model-driven interfaces in IOS-XE.