<?xml version="1.0"?>
<!-- Policy local-route -->
<interfaceDefinition>
  <node name="policy">
    <children>
      <node name="local-route" owner="${vyos_conf_scripts_dir}/policy-local-route.py">
        <properties>
          <help>IPv4 policy route of local traffic</help>
          <priority>500</priority>
        </properties>
        <children>
          <tagNode name="rule">
            <properties>
              <help>Policy local-route rule set number</help>
              <valueHelp>
                <!-- table main with prio 32766 -->
                <format>u32:1-32765</format>
                <description>Local-route rule number (1-32765)</description>
              </valueHelp>
              <constraint>
                <validator name="numeric" argument="--range 1-32765"/>
              </constraint>
            </properties>
            <children>
              <node name="set">
                <properties>
                  <help>Packet modifications</help>
                </properties>
                <children>
                  <leafNode name="table">
                    <properties>
                      <help>Routing table to forward packet with</help>
                      <valueHelp>
                        <format>u32:1-200</format>
                        <description>Table number</description>
                      </valueHelp>
                      <completionHelp>
                        <list>main</list>
                      </completionHelp>
                    </properties>
                  </leafNode>
                </children>
              </node>
              <leafNode name="fwmark">
                <properties>
                  <help>Match fwmark value</help>
                  <valueHelp>
                    <format>u32:1-2147483647</format>
                    <description>Address to match against</description>
                  </valueHelp>
                  <constraint>
                    <validator name="numeric" argument="--range 1-2147483647"/>
                  </constraint>
                </properties>
              </leafNode>
              <leafNode name="source">
                <properties>
                  <help>Source address or prefix</help>
                  <valueHelp>
                    <format>ipv4</format>
                    <description>Address to match against</description>
                  </valueHelp>
                  <valueHelp>
                    <format>ipv4net</format>
                    <description>Prefix to match against</description>
                  </valueHelp>
                  <constraint>
                    <validator name="ipv4-address"/>
                    <validator name="ip-prefix"/>
                  </constraint>
                  <multi/>
                </properties>
              </leafNode>
              <leafNode name="destination">
                <properties>
                  <help>Destination address or prefix</help>
                  <valueHelp>
                    <format>ipv4</format>
                    <description>Address to match against</description>
                  </valueHelp>
                  <valueHelp>
                    <format>ipv4net</format>
                    <description>Prefix to match against</description>
                  </valueHelp>
                  <constraint>
                    <validator name="ipv4-address"/>
                    <validator name="ip-prefix"/>
                  </constraint>
                  <multi/>
                </properties>
              </leafNode>
              #include <include/interface/inbound-interface.xml.i>
            </children>
          </tagNode>
        </children>
      </node>
      <node name="local-route6" owner="${vyos_conf_scripts_dir}/policy-local-route.py">
        <properties>
          <help>IPv6 policy route of local traffic</help>
          <priority>500</priority>
        </properties>
        <children>
          <tagNode name="rule">
            <properties>
              <help>IPv6 policy local-route rule set number</help>
              <valueHelp>
                <!-- table main with prio 32766 -->
                <format>u32:1-32765</format>
                <description>Local-route rule number (1-32765)</description>
              </valueHelp>
              <constraint>
                <validator name="numeric" argument="--range 1-32765"/>
              </constraint>
            </properties>
            <children>
              <node name="set">
                <properties>
                  <help>Packet modifications</help>
                </properties>
                <children>
                  <leafNode name="table">
                    <properties>
                      <help>Routing table to forward packet with</help>
                      <valueHelp>
                        <format>u32:1-200</format>
                        <description>Table number</description>
                      </valueHelp>
                      <completionHelp>
                        <list>main</list>
                      </completionHelp>
                    </properties>
                  </leafNode>
                </children>
              </node>
              <leafNode name="fwmark">
                <properties>
                  <help>Match fwmark value</help>
                  <valueHelp>
                    <format>u32:1-2147483647</format>
                    <description>Address to match against</description>
                  </valueHelp>
                  <constraint>
                    <validator name="numeric" argument="--range 1-2147483647"/>
                  </constraint>
                </properties>
              </leafNode>
              <leafNode name="source">
                <properties>
                  <help>Source address or prefix</help>
                  <valueHelp>
                    <format>ipv6</format>
                    <description>Address to match against</description>
                  </valueHelp>
                  <valueHelp>
                    <format>ipv6net</format>
                    <description>Prefix to match against</description>
                  </valueHelp>
                  <constraint>
                    <validator name="ipv6-address"/>
                    <validator name="ipv6-prefix"/>
                  </constraint>
                  <multi/>
                </properties>
              </leafNode>
              <leafNode name="destination">
                <properties>
                  <help>Destination address or prefix</help>
                  <valueHelp>
                    <format>ipv6</format>
                    <description>Address to match against</description>
                  </valueHelp>
                  <valueHelp>
                    <format>ipv6net</format>
                    <description>Prefix to match against</description>
                  </valueHelp>
                  <constraint>
                    <validator name="ipv6-address"/>
                    <validator name="ipv6-prefix"/>
                  </constraint>
                  <multi/>
                </properties>
              </leafNode>
              #include <include/interface/inbound-interface.xml.i>
            </children>
          </tagNode>
        </children>
      </node>
    </children>
  </node>
</interfaceDefinition>