Using Juniper Networks YANG Modules

 

Juniper Networks provides YANG modules that define the configuration hierarchies and operational commands, as well as YANG extensions, for devices running Junos OS. The following sections detail how to obtain Juniper Networks YANG modules and how to import them into another module:

Obtaining Juniper Networks YANG Modules

You can download the Junos OS YANG modules from the Juniper Networks website or from the Juniper Networks GitHub repository for YANG, or you can generate the modules on a device running Junos OS. When generated on the local device, the YANG modules include hierarchies both from native modules and from any standard or custom modules that have been added to the device. Starting in Junos OS Release 17.4R1, the native YANG modules generated on a local device contain family-specific schemas, which are identical across all devices in the given device family. In Junos OS Release 17.3 and earlier, the native YANG modules generated on the local device contain device-specific schemas.

In Junos OS Release 17.1 and earlier, the YANG modules for the Junos OS configuration and command hierarchies that are posted on the Juniper Networks website define the schema for all devices running that Junos OS release. Starting in Junos OS Release 17.2, Junos OS YANG modules are specific to a device family. The YANG modules download file includes a separate directory for each device family as well as a common directory. Each family-specific directory contains the configuration and operational command modules that are supported on the platforms in that family, and the common directory contains the modules that are common to all device families. For more information about the device families, see Understanding Junos OS YANG Modules.

To download the Juniper Networks YANG modules:

  1. Access the downloads page at https://www.juniper.net/support/downloads/junos.html.
  2. Select your product.
  3. In the drop-down menus, select the appropriate release type and version.
  4. Select the Software tab.
  5. In the Tools section, click the YANG module link.

To generate the YANG modules from the CLI on a device running Junos OS:

  1. Log in to the device running Junos OS.
  2. Execute the show system schema operational mode command and specify the module name, the YANG format, and optionally, include any desired command options.

    The module names and command options depend on the Junos OS release running on the device.

    • In Junos OS Release 15.1 and earlier, to save the output to a specific file, include the output-file-name option, and specify an absolute or relative path for the output file.

    • Starting in Junos OS Release 16.1, you can save a module in a specific directory by including the output-directory option.

      In Junos OS Release 16.1 through 17.3, you can specify an alternate name for the module and the filename by including the module-name option.

      Note

      In Junos OS Release 17.3 and earlier, you can filter for specific sections of the configuration module by including the filter command option and specifying which hierarchies to return.

For a detailed list of command options, see show system schema.

To generate the modules from a remote session:

  1. Connect to the device running Junos OS. For example:
  2. Execute the <get-yang-schema> RPC, and specify the module name, the YANG format, and optionally, include any desired command options.

    The module names and command options depend on the Junos OS release running on the device.

    • To retrieve a single module, specify the module name.

    • To generate one or more modules on the local device running Junos OS, specify the module name or collection name and the output directory.

      Note

      You can also use the <get-schema> Network Configuration Protocol (NETCONF) operation to retrieve a YANG module from the device.

Importing Juniper Networks YANG Modules

You can use YANG-based tools to leverage the Juniper Networks YANG modules. If you are developing custom YANG modules, you can reference definitions in the Juniper Networks YANG modules by importing the modules into your custom module.

To import a Juniper Networks YANG module into an existing module:

  1. Include the import statement, specify the module name, and assign the prefix to use with the definitions from the imported module.

    Note

    The naming convention for the module names, filenames, namespaces, and prefixes of the native Junos OS YANG modules depends on the Junos OS release.

  2. Reference definitions in the module by using the locally defined prefix, a colon, and the node identifier or keyword.

    For example, to reference the interface node defined in the configuration module, use jc:interface.

Release History Table
Release
Description
Starting in Junos OS Release 17.2, Junos OS YANG modules are specific to a device family.