<?xml version="1.0"?>
<interfaceDefinition>
  <node name="service">
    <children>
      <node name="lldp" owner="${vyos_conf_scripts_dir}/lldp.py">
        <properties>
          <help>LLDP settings</help>
          <priority>985</priority>
        </properties>
        <children>
          <tagNode name="interface">
            <properties>
              <help>Location data for interface</help>
              <valueHelp>
                <format>all</format>
                <description>Location data all interfaces</description>
              </valueHelp>
              <valueHelp>
                <format>txt</format>
                <description>Location data for a specific interface</description>
              </valueHelp>
              <completionHelp>
                <script>${vyatta_sbindir}/vyatta-interfaces.pl --show all</script>
                <list>all</list>
              </completionHelp>
            </properties>
            <children>
              #include <include/generic-disable-node.xml.i>
              <node name="location">
                <properties>
                  <help>LLDP-MED location data</help>
                </properties>
                <children>
                  <node name="coordinate-based">
                    <properties>
                      <help>Coordinate based location</help>
                    </properties>
                    <children>
                      <leafNode name="altitude">
                        <properties>
                          <help>Altitude in meters</help>
                          <valueHelp>
                            <format>0</format>
                            <description>No altitude</description>
                          </valueHelp>
                          <valueHelp>
                            <format>[+-]&lt;meters&gt;</format>
                            <description>Altitude in meters</description>
                          </valueHelp>
                          <constraintErrorMessage>Altitude should be a positive or negative number</constraintErrorMessage>
                          <constraint>
                            <validator name="numeric"/>
                          </constraint>
                        </properties>
                        <defaultValue>0</defaultValue>
                      </leafNode>
                      <leafNode name="datum">
                        <properties>
                          <help>Coordinate datum type</help>
                          <valueHelp>
                            <format>WGS84</format>
                            <description>WGS84</description>
                          </valueHelp>
                          <valueHelp>
                            <format>NAD83</format>
                            <description>NAD83</description>
                          </valueHelp>
                          <valueHelp>
                            <format>MLLW</format>
                            <description>NAD83/MLLW</description>
                          </valueHelp>
                          <completionHelp>
                            <list>WGS84 NAD83 MLLW</list>
                          </completionHelp>
                          <constraintErrorMessage>Datum should be WGS84, NAD83, or MLLW</constraintErrorMessage>
                          <constraint>
                            <regex>(WGS84|NAD83|MLLW)</regex>
                          </constraint>
                        </properties>
                        <defaultValue>WGS84</defaultValue>
                      </leafNode>
                      <leafNode name="latitude">
                        <properties>
                          <help>Latitude</help>
                          <valueHelp>
                            <format>&lt;latitude&gt;</format>
                            <description>Latitude (example "37.524449N")</description>
                          </valueHelp>
                          <constraintErrorMessage>Latitude should be a number followed by S or N</constraintErrorMessage>
                          <constraint>
                            <regex>(\d+)(\.\d+)?[nNsS]</regex>
                          </constraint>
                        </properties>
                      </leafNode>
                      <leafNode name="longitude">
                        <properties>
                          <help>Longitude</help>
                          <valueHelp>
                            <format>&lt;longitude&gt;</format>
                            <description>Longitude (example "122.267255W")</description>
                          </valueHelp>
                          <constraintErrorMessage>Longiture should be a number followed by E or W</constraintErrorMessage>
                          <constraint>
                            <regex>(\d+)(\.\d+)?[eEwW]</regex>
                          </constraint>
                        </properties>
                      </leafNode>
                    </children>
                  </node>
                  <leafNode name="elin">
                    <properties>
                      <help>ECS ELIN (Emergency location identifier number)</help>
                      <valueHelp>
                        <format>u32:0-9999999999</format>
                        <description>Emergency Call Service ELIN number (between 10-25 numbers)</description>
                      </valueHelp>
                      <constraint>
                        <regex>[0-9]{10,25}</regex>
                      </constraint>
                      <constraintErrorMessage>ELIN number must be between 10-25 numbers</constraintErrorMessage>
                    </properties>
                  </leafNode>
                </children>
              </node>
            </children>
          </tagNode>
          <node name="legacy-protocols">
            <properties>
              <help>Legacy (vendor specific) protocols</help>
            </properties>
            <children>
              <leafNode name="cdp">
                <properties>
                  <help>Listen for CDP for Cisco routers/switches</help>
                  <valueless/>
                </properties>
              </leafNode>
              <leafNode name="edp">
                <properties>
                  <help>Listen for EDP for Extreme routers/switches</help>
                  <valueless/>
                </properties>
              </leafNode>
              <leafNode name="fdp">
                <properties>
                  <help>Listen for FDP for Foundry routers/switches</help>
                  <valueless/>
                </properties>
              </leafNode>
              <leafNode name="sonmp">
                <properties>
                  <help>Listen for SONMP for Nortel routers/switches</help>
                  <valueless/>
                </properties>
              </leafNode>
            </children>
          </node>
          <leafNode name="management-address">
            <properties>
              <help>Management IP Address</help>
              <completionHelp>
                <script>${vyos_completion_dir}/list_local_ips.sh --both</script>
              </completionHelp>
              <valueHelp>
                <format>ipv4</format>
                <description>IPv4 Management Address</description>
              </valueHelp>
              <valueHelp>
                <format>ipv6</format>
                <description>IPv6 Management Address</description>
              </valueHelp>
              <constraint>
                <validator name="ip-address"/>
              </constraint>
              <multi/>
            </properties>
          </leafNode>
          <node name="snmp">
            <properties>
              <help>SNMP parameters for LLDP</help>
            </properties>
            <children>
              <leafNode name="enable">
                <properties>
                  <help>Enable SNMP queries of the LLDP database</help>
                  <valueless/>
                </properties>
              </leafNode>
            </children>
          </node>
        </children>
      </node>
    </children>
  </node>
</interfaceDefinition>