MG-SOFT YANG Explorer Professional Edition

Main features and Screen shots

MG-SOFT YANG Explorer Professional Edition is special application that lets you load NETCONF YANG or YIN modules and explore their structure and properties in the intuitive graphical user interface.

The following is a brief list of the main features in MG-SOFT YANG Explorer Professional Edition.

Load and browse YANG and YIN modules
MG-SOFT YANG Explorer lets you load any set of valid YANG 1.1 and YANG 1 modules (as well as YIN 1.1. and YIN 1 modules) and display their contents in a visual manner, where module elements are represented in a hierarchical tree structure. YANG Explorer also checks the syntax and semantics of every YANG module it loads. The hierarchy of YANG statements may be fully explored and a special property page viewed for each node. The software expands the YANG statement tree defined in the modules into an actual schema tree. This means that all uses statements are replaced with appropriate grouping contents and augment targets actually contain the augmented nodes (screen shot).
Resolve YANG module dependencies
YANG Explorer automatically scans all new YANG and YIN modules for dependencies (imported and included modules) and lets you scan user-specified locations for the matching modules. The entire information about the 'registered' modules and submodules is stored in a single place and can be viewed in the Known Modules window. The latter also enables loading modules that have many dependencies with a single click of a button, as well as keeping and loading different revisions of YANG modules (screen shot).
Explore cross-references in YANG modules
(Find Usages, Go to Definition, Find Leafrefs, Find Leafref References, Go to Target, etc.)

YANG Explorer offers a wealth of features that let you effectively explore references between YANG statements within one or more YANG modules and submodules. While exploring YANG modules, it is vital to be able to quickly navigate between a reference of a definition and the definition itself, for example, to be able to select an "if-feature" statement and quickly locate the definition of a matching "feature" statement. YANG Explorer offers such navigation whenever a reference exists. The software also provides a reverse functionality that lets you quickly find all usages of a definition in the loaded YANG/YIN modules, for example, to find all "if-features" that reference a specific "feature" definition. This is supported for "typedef", "grouping", "identity", "feature" and "extension" statements. 'Leafrefs' (YANG statements with the "leafref" type) are also an important concept in YANG, and the software offers a quick way to find all 'leafrefs' and their target schema nodes in a module. Furthermore, you can also select any "leaf" or "leaf-list" node in the YANG tree and search for 'leafrefs' that reference it by using the "Find Referencing Leafrefs" functionality (screen shot 1, screen shot 2).
UML class diagrams
MG-SOFT YANG Explorer can visualize YANG 1.1 and 1.0 modules in form of a UML (Unified Modeling Language) class diagram. UML class diagram displays different types of YANG nodes as classes, with their attributes, methods and relationships (e.g., dependency, composition, inheritance, etc.). You can explore the classes and their relationships either within the scope of a single or several associated YANG modules. Furthermore, YANG Explorer lets you focus on the desired elements of YANG modules by specifying excludes (excluding specific, user-selected classes) and by setting various display options (to toggle displaying certain types of classes globally, etc.). You can zoom in and out of the UML class diagram, pan the diagram, reposition classes and connections in the diagram, print the diagram to a printer and save it as an image file for external use (screen shot).
YANG Dependency graph and dependency tree view
YANG Explorer lets you explore and view the dependencies between loaded YANG modules, i.e., you can select one or more YANG modules and quickly determine which modules and submodules the selected modules import and include (this is done recursively). In addition, the software provides also the reverse functionality, i.e., it lets you quickly see which modules, from the list of all loaded modules, import a given module. In both cases, the dependencies are presented in form of a dependency graph or dependency tree. The latter view displays also the module set summary, i.e., the minimum set of modules and submodules that satisfy all imports/includes (screen shot 1), (screen shot 2).
Compare YANG modules
The YANG Compare window lets you compare two YANG or YIN modules side-by-side in graphical form and explore the differences between them. For example, you can compare different revisions of a YANG module to quickly determine what has changed between revisions (e.g., added nodes, modified node properties, etc.). YANG Explorer makes the differences between modules visible by displaying inequality symbols in the compared trees and provides functions that let you quickly locate the next and previous difference. Furthermore, you can use pre-configured comparison filters, for example, to display only the mismatching nodes or only orphaned nodes in both modules. Additionally, the software provides a set of options that let you compare also certain non-semantical differences, for example, module imports, includes, prefixes, etc. Last but not least, the tool can ignore certain differences if considered unimportant, like the differences in description text, etc. (screen shot 1), (screen shot 2).
Export YANG to HTML
YANG Explorer lets you select YANG modules and export them to HTML format using CSS and JavaScript, featuring an expandable and clickable YANG tree view of selected YANG module, as well as the complete YANG definition of all modules with hyperlinks between the referenced nodes. The resulting HTML files let you effectively explore the YANG modules by expanding the YANG tree and viewing the definition of clicked nodes in a Web browser application, such as Chrome, Firefox, Edge, etc. (screen shot 1), (screen shot 2).
Textual data tree view
Since YANG may be quite complex to read and understand, it is useful to examine the data tree defined by YANG statements in form of a concise textual tree diagram. YANG Explorer provides this functionality by utilizing the notation defined in RFC 8340, which is often used in IETF discussions and publications. The contents of this view changes with current selection in the YANG Tree, so you can quickly obtain the textual tree representation of an arbitrary data tree branch (screen shot).
Source file view
Besides displaying YANG or YIN modules' contents in a visual manner, where module elements are represented in a hierarchical tree structure, YANG Explorer now also features a view that displays the content of the YANG source file (i.e., YANG code). You can click any node or sub-node in the YANG Tree panel to view the corresponding section of the YANG source file that defines the node/statement. In addition, the built-in Find toolbar lets you quickly find a specified text phrase in the YANG source file (screen shot).
RFC 6110-based NETCONF Content Editor and Validator supporting NETCONF and RESTCONF content
The advanced NETCONF Content Editor tool allows you to easily compose any type of NETCONF XML or RESTCONF XML or JSON document and validate it using the DSDL schemas, which are automatically generated from selected YANG modules (the DSDL schema validation defined in RFC 6110 has been extended by MG-SOFT to properly support also YANG 1.1, NMDA, and RESTCONF protocol). The tool contains templates for composing typical NETCONF document types, like RPC requests, in particular <edit-config> and <edit-data> requests, entire configuration datastores, notifications, etc. It also incorporates a RESTCONF toolbar that provides an easy way to select the desired RESTCONF method (GET, POST, PATCH, etc.) and to create a target resource URI using the resource auto-completion feature. In this tool you can edit NETCONF or RESTCONF message payload either in:
  • textual manner by using the full-fledged XML/JSON editor with syntax coloring and YANG based auto-complete feature (screen shot) (screen shot), or in
  • visual manner by building a graphical document tree structure with nodes representing the XML or JSON constructs, their attributes and values (screen shot).
Both editors guide you while composing the content by offering you to add only those elements that are valid at the given location.

By default, the tool automatically validates the content you are editing and displays an easy-to-understand error or warning message if any inconsistency is detected. This way, you can quickly fix all syntax and semantic inconsistencies and save the finished document to a file or load it into MG-SOFT NetConf Browser and send it to a NETCONF or RESTCONF device.

Generating configuration from YANG data model (NETCONF and RESTCONF)
MG-SOFT YANG Explorer lets you select, e.g., a subtree node in the YANG Tree panel and generate a NETCONF XML instance document or RESTCONF XML or JSON document for an <edit-config>/<edit-data> or PUT/PATCH request, respectively (screen shot). The generated content includes at least one instance of all config=true data nodes (leaf, leaf-list, list, container, anyxml, etc.) from the given subtree. The generated leaf and leaf-list elements have valid, yet dummy values that can be easily edited in the NETCONF Content Editor (screen shot). This powerful feature allows you to quickly create a (part of) configuration from scratch.
Efficient Find Nodes functionality
The Find Nodes feature lets you search through all loaded YANG/YIN modules for nodes of a specific type (e.g., a "container" or "leaf" or "description" or "config" or "base", etc.). Furthermore, you can combine the regular text search condition with the node type search condition to quickly find a node of a certain type whose argument contains a user-specified string (screen shot).
Complete YANG 1.1 and YANG 1 validation
YANG Explorer checks the validity of all YANG and YIN modules it loads. In addition to the syntax checking, it also checks the semantics of YANG and YIN modules. The built-in YANG validation engine has been extended to fully support all YANG 1.1 syntax and semantics (besides YANG 1), including the new statements ("action", "anydata"), new "XPath" functions, modified rules for "notifications", changed lexical rules and the new submodule scoping rules, to name some of the more important changes in YANG 1.1. Furthermore, MG-SOFT YANG Explorer goes beyond the 'standard' YANG validation offered by other products on the market and performs a complete validation of XPath expression syntax and semantics in YANG "must" and "when" statements (screen shot).
Generating RPC operations and actions
The software lets you select an arbitrary "rpc" or "action" type of node in the YANG tree and generate the corresponding RPC (NETCONF) or POST (RESTCONF) request with all required input elements as defined in YANG (screen shot). You can review or edit the auto-generated RPC or action content to match your preferences and save the content to a file (screen shot).
Dark and light theme
In addition to the classic (light theme), the application graphical user interface features also dark theme using darker color tones. Dark theme offers a modern look and feel and may reduce eyestrain, especially in lower lit environments. One can switch between the dark and classic (light) mode at any time in the program preferences (screen shot 1), (screen shot 2).
Support for HiDPI displays
YANG Explorer user interface, including all icons, buttons and other GUI components have been revised to properly support high pixel density (HiDPI) displays. This means that when using YANG Explorer with Java 9+ that supports HiDPI, the program windows, graphics, and text are scaled automatically according to the system settings, which enables YANG Explorer user interface to look perfect also on modern HiDPI displays (e.g., 4K/UHD).
Runs on every Java(TM) 8+ enabled platform
MG-SOFT YANG Explorer Professional Edition has been designed and developed in Java and as such it runs on every OS that has installed Java runtime environment (V8 or later), for example, on Windows, Linux, and macOS operating systems (screen shot).