<?xml version="1.0"?>
<interfaceDefinition>
  <node name="show">
    <children>
      <node name="ipv6">
        <properties>
          <help>Show IPv6 routing information</help>
        </properties>
        <children>
          <node name="ospfv3">
            <properties>
              <help>Show IPv6 Open Shortest Path First (OSPF)</help>
            </properties>
            <command>vtysh -c "show ipv6 ospf6"</command>
            <children>
              <node name="area">
                <properties>
                  <help>Show Shortest Path First tree information</help>
                </properties>
                <command>vtysh -c "show ipv6 ospf6 spf tree"</command>
              </node>
              <tagNode name="area">
                <properties>
                  <help>Area ID (as an IPv4 notation)</help>
                  <completionHelp>
                    <path>protocols ospfv3 area</path>
                  </completionHelp>
                </properties>
                <command>vtysh -c "show ipv6 ospf6 area $4 spf tree"</command>
                <children>
                  <tagNode name="router">
                    <properties>
                      <help> Simulate view point (Router ID)</help>
                      <completionHelp>
                        <list>&lt;x.x.x.x&gt;</list>
                      </completionHelp>
                    </properties>
                    <command>vtysh -c "show ipv6 ospf6 simulate spf-tree $7 $4 $5"</command>
                  </tagNode>
                </children>
              </tagNode>
              <node name="border-routers">
                <properties>
                  <help>Show OSPFv3 border-router (ABR and ASBR) information</help>
                </properties>
                <command>vtysh -c "show ipv6 ospf6 border-routers"</command>
                <children>
                  #include <include/ospfv3-detail.xml.i>
                </children>
              </node>
              <tagNode name="border-routers">
                <properties>
                  <help>Border router ID</help>
                  <completionHelp>
                    <list>&lt;x.x.x.x&gt;</list>
                  </completionHelp>
                </properties>
                <command>vtysh -c "show ipv6 ospf6 border-routers $5"</command>
              </tagNode>
              <node name="database">
                <properties>
                  <help>Show OSPFv3 Link state database information</help>
                </properties>
                <command>vtysh -c "show ipv6 ospf6 database"</command>
                <children>
                  <tagNode name="adv-router">
                    <properties>
                      <help>Search by Advertising Router ID</help>
                      <completionHelp>
                        <list>&lt;x.x.x.x&gt;</list>
                      </completionHelp>
                    </properties>
                    <children>
                      #include <include/ospfv3-linkstate-id.xml.i>
                    </children>
                  </tagNode>
                  <node name="any">
                    <properties>
                      <help>Search by Any Link state Type</help>
                    </properties>
                    <children>
                      <tagNode name="any">
                        <properties>
                          <help>Search by Link state ID</help>
                          <completionHelp>
                            <list>&lt;x.x.x.x&gt;</list>
                          </completionHelp>
                        </properties>
                        <children>
                          #include <include/ospfv3-detail.xml.i>
                          #include <include/ospfv3-dump.xml.i>
                          #include <include/ospfv3-internal.xml.i>
                        </children>
                      </tagNode>
                    </children>
                  </node>
                  <tagNode name="any">
                    <properties>
                      <help>Search by Link state ID</help>
                      <completionHelp>
                        <list>&lt;x.x.x.x&gt;</list>
                      </completionHelp>
                    </properties>
                    <command>vtysh -c "show ipv6 ospf6 database * $6"</command>
                    <children>
                      #include <include/ospfv3-detail.xml.i>
                      #include <include/ospfv3-dump.xml.i>
                      #include <include/ospfv3-internal.xml.i>
                      #include <include/ospfv3-adv-router-id-node-tag.xml.i>
                    </children>
                  </tagNode>
                  <node name="as-external">
                    <properties>
                      <help>Show AS-External LSAs</help>
                    </properties>
                    <command>vtysh -c "show ipv6 ospf6 database as-external"</command>
                    <children>
                      #include <include/ospfv3-adv-router.xml.i>
                      <tagNode name="any">
                        <properties>
                          <help>Search by Advertising Router ID</help>
                          <completionHelp>
                            <list>&lt;x.x.x.x&gt;</list>
                          </completionHelp>
                        </properties>
                        <command>vtysh -c "show ipv6 ospf6 database as-external * $7"</command>
                        <children>
                          #include <include/ospfv3-detail.xml.i>
                          #include <include/ospfv3-dump.xml.i>
                          #include <include/ospfv3-internal.xml.i>
                        </children>
                      </tagNode>
                      #include <include/ospfv3-detail.xml.i>
                      #include <include/ospfv3-dump.xml.i>
                      #include <include/ospfv3-internal.xml.i>
                      #include <include/ospfv3-linkstate-id.xml.i>
                      #include <include/ospfv3-self-originated.xml.i>
                    </children>
                  </node>
                  <tagNode name="as-external">
                    <properties>
                      <help>Search by Advertising Router IDs</help>
                      <completionHelp>
                        <list>&lt;x.x.x.x&gt;</list>
                      </completionHelp>
                    </properties>
                    <children>
                      #include <include/ospfv3-detail.xml.i>
                      #include <include/ospfv3-dump.xml.i>
                      #include <include/ospfv3-internal.xml.i>
                      #include <include/ospfv3-self-originated.xml.i>
                      #include <include/ospfv3-adv-router-id-node-tag.xml.i>
                    </children>
                  </tagNode>
                  #include <include/ospfv3-detail.xml.i>
                  #include <include/ospfv3-internal.xml.i>
                  #include <include/ospfv3-linkstate-id.xml.i>
                  #include <include/ospfv3-self-originated.xml.i>
                  <node name="group-membership">
                    <properties>
                      <help>Show Group-Membership LSAs</help>
                    </properties>
                    <!-- FRR uses ospf6 where we use ospfv3, thus alter the command -->
                    <command>vtysh -c "show ipv6 ospf6 ${@:4}"</command>
                    <children>
                      #include <include/ospfv3-adv-router.xml.i>
                      #include <include/ospfv3-detail.xml.i>
                      #include <include/ospfv3-dump.xml.i>
                      #include <include/ospfv3-internal.xml.i>
                      #include <include/ospfv3-linkstate-id.xml.i>
                      #include <include/ospfv3-linkstate-id-node-tag.xml.i>
                      #include <include/ospfv3-self-originated.xml.i>
                    </children>
                  </node>
                  <node name="inter-prefix">
                    <properties>
                      <help>Show Inter-Area-Prefix LSAs</help>
                    </properties>
                    <!-- FRR uses ospf6 where we use ospfv3, thus alter the command -->
                    <command>vtysh -c "show ipv6 ospf6 ${@:4}"</command>
                    <children>
                      #include <include/ospfv3-adv-router.xml.i>
                      #include <include/ospfv3-detail.xml.i>
                      #include <include/ospfv3-dump.xml.i>
                      #include <include/ospfv3-internal.xml.i>
                      #include <include/ospfv3-linkstate-id.xml.i>
                      #include <include/ospfv3-linkstate-id-node-tag.xml.i>
                      #include <include/ospfv3-self-originated.xml.i>
                    </children>
                  </node>
                  <node name="inter-router">
                    <properties>
                      <help>Show Inter-Area-Router LSAs</help>
                    </properties>
                    <!-- FRR uses ospf6 where we use ospfv3, thus alter the command -->
                    <command>vtysh -c "show ipv6 ospf6 ${@:4}"</command>
                    <children>
                      #include <include/ospfv3-adv-router.xml.i>
                      #include <include/ospfv3-detail.xml.i>
                      #include <include/ospfv3-dump.xml.i>
                      #include <include/ospfv3-internal.xml.i>
                      #include <include/ospfv3-linkstate-id.xml.i>
                      #include <include/ospfv3-linkstate-id-node-tag.xml.i>
                      #include <include/ospfv3-self-originated.xml.i>
                    </children>
                  </node>
                  <node name="intra-prefix">
                    <properties>
                      <help>Show Intra-Area-Prefix LSAs</help>
                    </properties>
                    <!-- FRR uses ospf6 where we use ospfv3, thus alter the command -->
                    <command>vtysh -c "show ipv6 ospf6 ${@:4}"</command>
                    <children>
                      #include <include/ospfv3-adv-router.xml.i>
                      #include <include/ospfv3-detail.xml.i>
                      #include <include/ospfv3-dump.xml.i>
                      #include <include/ospfv3-internal.xml.i>
                      #include <include/ospfv3-linkstate-id.xml.i>
                      #include <include/ospfv3-linkstate-id-node-tag.xml.i>
                      #include <include/ospfv3-self-originated.xml.i>
                    </children>
                  </node>
                  <node name="link">
                    <properties>
                      <help>Show Link LSAs</help>
                    </properties>
                    <!-- FRR uses ospf6 where we use ospfv3, thus alter the command -->
                    <command>vtysh -c "show ipv6 ospf6 ${@:4}"</command>
                    <children>
                      #include <include/ospfv3-adv-router.xml.i>
                      #include <include/ospfv3-detail.xml.i>
                      #include <include/ospfv3-dump.xml.i>
                      #include <include/ospfv3-internal.xml.i>
                      #include <include/ospfv3-linkstate-id.xml.i>
                      #include <include/ospfv3-linkstate-id-node-tag.xml.i>
                      #include <include/ospfv3-self-originated.xml.i>
                    </children>
                  </node>
                  <node name="network">
                    <properties>
                      <help>Show Network LSAs</help>
                    </properties>
                    <!-- FRR uses ospf6 where we use ospfv3, thus alter the command -->
                    <command>vtysh -c "show ipv6 ospf6 ${@:4}"</command>
                    <children>
                      #include <include/ospfv3-adv-router.xml.i>
                      #include <include/ospfv3-detail.xml.i>
                      #include <include/ospfv3-dump.xml.i>
                      #include <include/ospfv3-internal.xml.i>
                      #include <include/ospfv3-linkstate-id.xml.i>
                      #include <include/ospfv3-linkstate-id-node-tag.xml.i>
                      #include <include/ospfv3-self-originated.xml.i>
                    </children>
                  </node>
                  <node name="node.tag">
                    <properties>
                      <help>Show LSAs</help>
                    </properties>
                    <!-- FRR uses ospf6 where we use ospfv3, thus alter the command -->
                    <command>vtysh -c "show ipv6 ospf6 ${@:4}"</command>
                    <children>
                      #include <include/ospfv3-adv-router.xml.i>
                      #include <include/ospfv3-detail.xml.i>
                      #include <include/ospfv3-dump.xml.i>
                      #include <include/ospfv3-internal.xml.i>
                      #include <include/ospfv3-linkstate-id.xml.i>
                      #include <include/ospfv3-linkstate-id-node-tag.xml.i>
                      #include <include/ospfv3-self-originated.xml.i>
                    </children>
                  </node>
                  <node name="router">
                    <properties>
                      <help>Show router LSAs</help>
                    </properties>
                    <!-- FRR uses ospf6 where we use ospfv3, thus alter the command -->
                    <command>vtysh -c "show ipv6 ospf6 ${@:4}"</command>
                    <children>
                      #include <include/ospfv3-adv-router.xml.i>
                      #include <include/ospfv3-detail.xml.i>
                      #include <include/ospfv3-dump.xml.i>
                      #include <include/ospfv3-internal.xml.i>
                      #include <include/ospfv3-linkstate-id.xml.i>
                      #include <include/ospfv3-linkstate-id-node-tag.xml.i>
                      #include <include/ospfv3-self-originated.xml.i>
                    </children>
                  </node>
                  <node name="type-7">
                    <properties>
                      <help>Show Type-7 LSAs</help>
                    </properties>
                    <!-- FRR uses ospf6 where we use ospfv3, thus alter the command -->
                    <command>vtysh -c "show ipv6 ospf6 ${@:4}"</command>
                    <children>
                      #include <include/ospfv3-adv-router.xml.i>
                      #include <include/ospfv3-detail.xml.i>
                      #include <include/ospfv3-dump.xml.i>
                      #include <include/ospfv3-internal.xml.i>
                      #include <include/ospfv3-linkstate-id.xml.i>
                      #include <include/ospfv3-linkstate-id-node-tag.xml.i>
                      #include <include/ospfv3-self-originated.xml.i>
                    </children>
                  </node>
                </children>
              </node>
              <node name="interface">
                <properties>
                  <help>Show OSPFv3 interface information</help>
                </properties>
                <command>vtysh -c "show ipv6 ospf6 interface"</command>
                <children>
                  <node name="prefix">
                    <properties>
                      <help>Show connected prefixes to advertise</help>
                    </properties>
                    <command>vtysh -c "show ipv6 ospf6 interface prefix"</command>
                    <children>
                      #include <include/ospfv3-detail.xml.i>
                    </children>
                  </node>
                  <tagNode name="prefix">
                    <properties>
                      <help>Show interface prefix route specific information</help>
                      <completionHelp>
                        <list>&lt;h:h:h:h:h:h:h:h&gt; &lt;h:h:h:h:h:h:h:h/x&gt;</list>
                      </completionHelp>
                    </properties>
                    <command>vtysh -c "show ipv6 ospf6 interface prefix $6"</command>
                    <children>
                      #include <include/ospfv3-detail.xml.i>
                      <node name="match">
                        <properties>
                          <help>Matched interface prefix information</help>
                        </properties>
                        <command>vtysh -c "show ipv6 ospf6 interface prefix $6 match"</command>
                      </node>
                    </children>
                  </tagNode>
                </children>
              </node>
              <tagNode name="interface">
                <properties>
                  <help>Specific insterface to examine</help>
                  <completionHelp>
                    <script>${vyos_completion_dir}/list_interfaces.py</script>
                  </completionHelp>
                </properties>
                <command>vtysh -c "show ipv6 ospf6 interface $5"</command>
                <children>
                  <node name="prefix">
                    <properties>
                      <help>Show connected prefixes to advertise</help>
                    </properties>
                    <command>vtysh -c "show ipv6 ospf6 interface $5 prefix"</command>
                    <children>
                      #include <include/ospfv3-detail.xml.i>
                    </children>
                  </node>
                  <tagNode name="prefix">
                    <properties>
                      <help>Show interface prefix route specific information</help>
                      <completionHelp>
                        <list>&lt;h:h:h:h:h:h:h:h&gt; &lt;h:h:h:h:h:h:h:h/x&gt;</list>
                      </completionHelp>
                    </properties>
                    <command>vtysh -c "show ipv6 ospf6 interface $5 prefix $7"</command>
                    <children>
                      #include <include/ospfv3-detail.xml.i>
                      <node name="match">
                        <properties>
                          <help>Matched interface prefix information</help>
                        </properties>
                        <command>vtysh -c "show ipv6 ospf6 interface $5 prefix $7 match"</command>
                      </node>
                    </children>
                  </tagNode>
                </children>
              </tagNode>
              <node name="linkstate">
                <properties>
                  <help>Show OSPFv3 linkstate routing information</help>
                </properties>
                <children>
                  #include <include/ospfv3-detail.xml.i>
                  <tagNode name="network">
                    <properties>
                      <help>Show linkstate Network information (Router ID)</help>
                      <completionHelp>
                        <list>&lt;x.x.x.x&gt;</list>
                      </completionHelp>
                    </properties>
                    <children>
                      <tagNode name="link-state-id">
                        <properties>
                          <help>Specify Link state ID as IPv4 address notation</help>
                          <completionHelp>
                            <list>&lt;x.x.x.x&gt;</list>
                          </completionHelp>
                        </properties>
                        <command>vtysh -c "show ipv6 ospf6 linkstate network $6 $8"</command>
                      </tagNode>
                    </children>
                  </tagNode>
                  <tagNode name="router">
                    <properties>
                      <help>Show linkstate Router information</help>
                      <completionHelp>
                        <list>&lt;x.x.x.x&gt;</list>
                      </completionHelp>
                    </properties>
                    <command>${vyos_op_scripts_dir}/vtysh_wrapper.sh $@</command>
                  </tagNode>
                </children>
              </node>
              <node name="neighbor">
                <properties>
                  <help>Show OSPFv3 neighbor information</help>
                </properties>
                <command>vtysh -c "show ipv6 ospf6 neighbor"</command>
                <children>
                  #include <include/ospfv3-detail.xml.i>
                  <node name="drchoice">
                    <properties>
                      <help>Show neighbor DR choice information</help>
                    </properties>
                    <command>vtysh -c "show ipv6 ospf6 neighbor drchoice"</command>
                  </node>
                </children>
              </node>
              <node name="redistribute">
                <properties>
                  <help>Show OSPFv3 redistribute external information</help>
                </properties>
                <command>vtysh -c "show ipv6 ospf6 redistribute"</command>
              </node>
              <node name="route">
                <properties>
                  <help>Show OSPFv3 routing table information</help>
                </properties>
                <command>vtysh -c "show ipv6 ospf6 route"</command>
                <children>
                  <node name="external-1">
                    <properties>
                      <help>Show Type-1 External route information</help>
                    </properties>
                    <command>vtysh -c "show ipv6 ospf6 route external-1"</command>
                    <children>
                      #include <include/ospfv3-detail.xml.i>
                    </children>
                  </node>
                  <node name="external-2">
                    <properties>
                      <help>Show Type-2 External route information</help>
                    </properties>
                    <command>vtysh -c "show ipv6 ospf6 route external-2"</command>
                    <children>
                      #include <include/ospfv3-detail.xml.i>
                    </children>
                  </node>
                  <node name="inter-area">
                    <properties>
                      <help>Show Inter-Area route information</help>
                    </properties>
                    <command>vtysh -c "show ipv6 ospf6 route inter-area"</command>
                    <children>
                      #include <include/ospfv3-detail.xml.i>
                    </children>
                  </node>
                  <node name="intra-area">
                    <properties>
                      <help>Show Intra-Area route information</help>
                    </properties>
                    <command>vtysh -c "show ipv6 ospf6 route intra-area"</command>
                    <children>
                      #include <include/ospfv3-detail.xml.i>
                    </children>
                  </node>
                  #include <include/ospfv3-detail.xml.i>
                  <node name="summary">
                    <properties>
                      <help>Show route table summary</help>
                    </properties>
                    <command>vtysh -c "show ipv6 ospf6 route summary"</command>
                  </node>
                </children>
              </node>
              <tagNode name="route">
                <properties>
                  <help>Show specified route/prefix information</help>
                  <completionHelp>
                    <list>&lt;h:h:h:h:h:h:h:h&gt; &lt;h:h:h:h:h:h:h:h/x&gt;</list>
                  </completionHelp>
                </properties>
                <command>vtysh -c "show ipv6 ospf6 route $5"</command>
                <children>
                  <node name="longer">
                    <properties>
                      <help>Show routes longer than specified prefix</help>
                    </properties>
                    <command>vtysh -c "show ipv6 ospf6 route $5 longer"</command>
                  </node>
                  <node name="match">
                    <properties>
                      <help>Show routes matching specified prefix</help>
                    </properties>
                    <command>vtysh -c "show ipv6 ospf6 route $5 match"</command>
                    <children>
                      #include <include/ospfv3-detail.xml.i>
                    </children>
                  </node>
                </children>
              </tagNode>
            </children>
          </node>
        </children>
      </node>
    </children>
  </node>
</interfaceDefinition>