Mapping Junos OS Commands and Command Output to Junos XML Tag Elements
The Junos XML API is an XML representation of Junos OS configuration statements and operational mode commands. It defines an XML equivalent for all statements in the Junos OS configuration hierarchy and many of the commands that you issue in CLI operational mode. Each operational mode command with a Junos XML counterpart maps to a request tag element and, if necessary, a response tag element.
Request tag elements are used in remote procedure calls (RPCs)
within NETCONF and Junos XML protocol sessions to request information
from a device running Junos OS. The server returns the response using
Junos XML tag elements enclosed within the response tag element. For
example, the show interfaces command maps to the
<get-interface-information> request tag, and the
server returns the
<interface-information> response tag.
The following sections outline how to map commands, command options, and command output to Junos XML tag elements.
Mapping Command Output to Junos XML Elements
On the Junos OS command-line interface (CLI), to display command output as Junos XML tag elements instead of as the default formatted ASCII text, include the | display xml option after the command. The tag elements that describe the Junos OS configuration or operational data belong to the Junos XML API, which defines the Junos OS content that can be retrieved and manipulated by NETCONF and Junos XML management protocol operations.
The following example shows the output from the show chassis hardware command issued on an M20 router that is running Junos OS Release
9.3 (the opening
<chassis-inventory> tag appears on two lines only for legibility). This is identical
to the server’s response for the
<get-chassis-inventory> RPC request.
user@host> show chassis hardware | display xml
<rpc-reply xmlns:junos="http://xml.juniper.net/junos/9.3R1/junos"> <chassis-inventory \ xmlns="http://xml.juniper.net/junos/9.3R1/junos-chassis"> <chassis junos:style="inventory"> <name>Chassis</name> <serial-number>00118</serial-number> <description>M20</description> <chassis-module> <name>Backplane</name> <version>REV 06</version> <part-number>710-001517</part-number> <serial-number>AB5911</serial-number> </chassis-module> <chassis-module> <name>Power Supply A</name> <!-- other child tags of <chassis-module> --> </chassis-module> <!-- other child tags of <chassis> --> </chassis> </chassis-inventory> </rpc-reply>
Mapping Commands to Junos XML Request Tag Elements
You can find information about the available Junos OS operational mode commands and their equivalent Junos XML RPC request tags in the Junos XML API Explorer - Operational Tags tool and the Junos OS CLI. You can use the tool to verify a command, map the command to its equivalent Junos XML RPC request tag and child tags, and view the expected response tag for various Junos OS releases.
You can also display the Junos XML request tag elements for any operational mode command that has a Junos XML counterpart on the Junos OS CLI. To display the Junos XML RPC request tags for an operational mode command, enter the command and pipe it to the display xml rpc command.
The following example displays the RPC tags for the show route command:
user@host> show route | display xml rpc
<rpc-reply xmlns:junos="http://xml.juniper.net/junos/10.1I0/junos"> <rpc> <get-route-information> </get-route-information> </rpc> <cli> <banner></banner> </cli> </rpc-reply>
Starting in Junos OS Release 20.3R1, the names of some Junos XML RPC request tags have been updated to ensure consistency across the Junos XML API. Devices running Junos OS will still accept the old request tag names for backwards compatibility, but we recommend using the new names going forward. To verify the Junos XML RPC request tag for an operational mode command in a given Junos OS release, see the Junos XML API Explorer - Operational Tags tool.
Mapping for Command Options with Variable Values
Many CLI commands have options that identify the object that the command affects or reports about, distinguishing the object from other objects of the same type. In some cases, the CLI does not precede the identifier with a fixed-form keyword, but XML convention requires that the Junos XML API define a tag element for every option. To learn the names for each identifier (and any other child tag elements) for an operational request tag element, consult the tag element’s entry in the appropriate DTD or in the Junos XML API Operational Developer Reference, or issue the command and command option in the CLI and append the | display xml rpc option.
The following example shows the Junos XML tag elements for two CLI operational commands that have variable-form options. In the show interfaces command, t3-5/1/0:0 is the name of the interface. In the show bgp neighbor command, 10.168.1.222 is the IP address for the BGP peer of interest.
You can display the Junos XML RPC tags for a command and its options in the CLI by executing the command and command option and appending | display xml rpc.
user@host> show interfaces t3-5/1/0:0 | display xml rpc
<rpc-reply xmlns:junos="http://xml.juniper.net/junos/16.1R1/junos"> <rpc> <get-interface-information> <interface-name>t3-5/1/0:0</interface-name> </get-interface-information> </rpc> <cli> <banner></banner> </cli> </rpc-reply>
Mapping for Fixed-Form Command Options
Some CLI commands include options that have a fixed form, such as the brief and detail strings, which specify the amount of detail to include in the output. The Junos XML API usually maps such an option to an empty tag whose name matches the option name.
The following example shows the Junos XML tag elements for the show isis adjacency command, which has a fixed-form option called detail:
To view the tags in the CLI:
user@host> show isis adjacency detail | display xml rpc
<rpc-reply xmlns:junos="http://xml.juniper.net/junos/16.1R1/junos"> <rpc> <get-isis-adjacency-information> <detail/> </get-isis-adjacency-information> </rpc> <cli> <banner></banner> </cli> </rpc-reply>