summaryrefslogtreecommitdiff
path: root/interface-definitions/include/interface
diff options
context:
space:
mode:
Diffstat (limited to 'interface-definitions/include/interface')
-rw-r--r--interface-definitions/include/interface/address-ipv4-ipv6-dhcp.xml.i31
-rw-r--r--interface-definitions/include/interface/address-ipv4-ipv6.xml.i19
-rw-r--r--interface-definitions/include/interface/dhcp-options.xml.i60
-rw-r--r--interface-definitions/include/interface/dhcpv6-options.xml.i100
-rw-r--r--interface-definitions/include/interface/interface-arp-cache-timeout.xml.i16
-rw-r--r--interface-definitions/include/interface/interface-description.xml.i11
-rw-r--r--interface-definitions/include/interface/interface-dial-on-demand.xml.i8
-rw-r--r--interface-definitions/include/interface/interface-disable-arp-filter.xml.i8
-rw-r--r--interface-definitions/include/interface/interface-disable-forwarding.xml.i8
-rw-r--r--interface-definitions/include/interface/interface-disable-link-detect.xml.i8
-rw-r--r--interface-definitions/include/interface/interface-disable.xml.i8
-rw-r--r--interface-definitions/include/interface/interface-eapol.xml.i12
-rw-r--r--interface-definitions/include/interface/interface-enable-arp-accept.xml.i8
-rw-r--r--interface-definitions/include/interface/interface-enable-arp-announce.xml.i8
-rw-r--r--interface-definitions/include/interface/interface-enable-arp-ignore.xml.i8
-rw-r--r--interface-definitions/include/interface/interface-enable-proxy-arp.xml.i8
-rw-r--r--interface-definitions/include/interface/interface-hw-id.xml.i14
-rw-r--r--interface-definitions/include/interface/interface-ipv4-options.xml.i18
-rw-r--r--interface-definitions/include/interface/interface-ipv6-options.xml.i12
-rw-r--r--interface-definitions/include/interface/interface-mac.xml.i14
-rw-r--r--interface-definitions/include/interface/interface-mirror.xml.i25
-rw-r--r--interface-definitions/include/interface/interface-mtu-1200-16000.xml.i16
-rw-r--r--interface-definitions/include/interface/interface-mtu-1450-16000.xml.i16
-rw-r--r--interface-definitions/include/interface/interface-mtu-64-8024.xml.i16
-rw-r--r--interface-definitions/include/interface/interface-mtu-68-1500.xml.i16
-rw-r--r--interface-definitions/include/interface/interface-mtu-68-16000.xml.i16
-rw-r--r--interface-definitions/include/interface/interface-parameters-dont-fragment.xml.i8
-rw-r--r--interface-definitions/include/interface/interface-parameters-flowlabel.xml.i15
-rw-r--r--interface-definitions/include/interface/interface-parameters-key.xml.i15
-rw-r--r--interface-definitions/include/interface/interface-parameters-tos.xml.i16
-rw-r--r--interface-definitions/include/interface/interface-parameters-ttl.xml.i20
-rw-r--r--interface-definitions/include/interface/interface-proxy-arp-pvlan.xml.i8
-rw-r--r--interface-definitions/include/interface/interface-source-validation.xml.i25
-rw-r--r--interface-definitions/include/interface/interface-vrf.xml.i14
-rw-r--r--interface-definitions/include/interface/interface-xdp.xml.i8
-rw-r--r--interface-definitions/include/interface/ipv6-address-autoconf.xml.i8
-rw-r--r--interface-definitions/include/interface/ipv6-address-eui64.xml.i16
-rw-r--r--interface-definitions/include/interface/ipv6-address-no-default-link-local.xml.i8
-rw-r--r--interface-definitions/include/interface/ipv6-address.xml.i12
-rw-r--r--interface-definitions/include/interface/ipv6-disable-forwarding.xml.i8
-rw-r--r--interface-definitions/include/interface/ipv6-dup-addr-detect-transmits.xml.i18
-rw-r--r--interface-definitions/include/interface/tunnel-remote.xml.i18
-rw-r--r--interface-definitions/include/interface/vif-s.xml.i67
-rw-r--r--interface-definitions/include/interface/vif.xml.i52
44 files changed, 820 insertions, 0 deletions
diff --git a/interface-definitions/include/interface/address-ipv4-ipv6-dhcp.xml.i b/interface-definitions/include/interface/address-ipv4-ipv6-dhcp.xml.i
new file mode 100644
index 000000000..b9dd59bea
--- /dev/null
+++ b/interface-definitions/include/interface/address-ipv4-ipv6-dhcp.xml.i
@@ -0,0 +1,31 @@
+<!-- include start from address-ipv4-ipv6-dhcp.xml.i -->
+<leafNode name="address">
+ <properties>
+ <help>IP address</help>
+ <completionHelp>
+ <list>dhcp dhcpv6</list>
+ </completionHelp>
+ <valueHelp>
+ <format>ipv4net</format>
+ <description>IPv4 address and prefix length</description>
+ </valueHelp>
+ <valueHelp>
+ <format>ipv6net</format>
+ <description>IPv6 address and prefix length</description>
+ </valueHelp>
+ <valueHelp>
+ <format>dhcp</format>
+ <description>Dynamic Host Configuration Protocol</description>
+ </valueHelp>
+ <valueHelp>
+ <format>dhcpv6</format>
+ <description>Dynamic Host Configuration Protocol for IPv6</description>
+ </valueHelp>
+ <constraint>
+ <validator name="ip-host"/>
+ <regex>(dhcp|dhcpv6)</regex>
+ </constraint>
+ <multi/>
+ </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/interface/address-ipv4-ipv6.xml.i b/interface-definitions/include/interface/address-ipv4-ipv6.xml.i
new file mode 100644
index 000000000..519622050
--- /dev/null
+++ b/interface-definitions/include/interface/address-ipv4-ipv6.xml.i
@@ -0,0 +1,19 @@
+<!-- include start from address-ipv4-ipv6.xml.i -->
+<leafNode name="address">
+ <properties>
+ <help>IP address</help>
+ <valueHelp>
+ <format>ipv4net</format>
+ <description>IPv4 address and prefix length</description>
+ </valueHelp>
+ <valueHelp>
+ <format>ipv6net</format>
+ <description>IPv6 address and prefix length</description>
+ </valueHelp>
+ <constraint>
+ <validator name="ip-host"/>
+ </constraint>
+ <multi/>
+ </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/interface/dhcp-options.xml.i b/interface-definitions/include/interface/dhcp-options.xml.i
new file mode 100644
index 000000000..b65b0802a
--- /dev/null
+++ b/interface-definitions/include/interface/dhcp-options.xml.i
@@ -0,0 +1,60 @@
+<!-- include start from interface/dhcp-options.xml.i -->
+<node name="dhcp-options">
+ <properties>
+ <help>DHCP client settings/options</help>
+ </properties>
+ <children>
+ <leafNode name="client-id">
+ <properties>
+ <help>Identifier used by client to identify itself to the DHCP server</help>
+ </properties>
+ </leafNode>
+ <leafNode name="host-name">
+ <properties>
+ <help>Override system host-name sent to DHCP server</help>
+ </properties>
+ </leafNode>
+ <leafNode name="vendor-class-id">
+ <properties>
+ <help>Identify the vendor client type to the DHCP server</help>
+ </properties>
+ </leafNode>
+ <leafNode name="no-default-route">
+ <properties>
+ <help>Do not request routers from DHCP server</help>
+ <valueless/>
+ </properties>
+ </leafNode>
+ <leafNode name="default-route-distance">
+ <properties>
+ <help>Distance for the default route from DHCP server</help>
+ <valueHelp>
+ <format>u32:1-255</format>
+ <description>Distance for the default route from DHCP server (default 210)</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 1-255"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ <leafNode name="reject">
+ <properties>
+ <help>IP addresses or subnets from which to reject DHCP leases</help>
+ <valueHelp>
+ <format>ipv4</format>
+ <description>IPv4 address to match</description>
+ </valueHelp>
+ <valueHelp>
+ <format>ipv4net</format>
+ <description>IPv4 prefix to match</description>
+ </valueHelp>
+ <constraint>
+ <validator name="ipv4-address"/>
+ <validator name="ipv4-prefix"/>
+ </constraint>
+ <multi/>
+ </properties>
+ </leafNode>
+ </children>
+</node>
+<!-- include end -->
diff --git a/interface-definitions/include/interface/dhcpv6-options.xml.i b/interface-definitions/include/interface/dhcpv6-options.xml.i
new file mode 100644
index 000000000..ca478a3eb
--- /dev/null
+++ b/interface-definitions/include/interface/dhcpv6-options.xml.i
@@ -0,0 +1,100 @@
+<!-- include start from interface/dhcpv6-options.xml.i -->
+<node name="dhcpv6-options">
+ <properties>
+ <help>DHCPv6 client settings/options</help>
+ </properties>
+ <children>
+ <leafNode name="duid">
+ <properties>
+ <help>DHCP unique identifier (DUID) to be sent by dhcpv6 client</help>
+ <valueHelp>
+ <format>duid</format>
+ <description>DHCP unique identifier (DUID)</description>
+ </valueHelp>
+ <constraint>
+ <validator name="ipv6-duid"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ <leafNode name="parameters-only">
+ <properties>
+ <help>Acquire only config parameters, no address</help>
+ <valueless/>
+ </properties>
+ </leafNode>
+ <tagNode name="pd">
+ <properties>
+ <help>DHCPv6 prefix delegation interface statement</help>
+ <valueHelp>
+ <format>instance number</format>
+ <description>Prefix delegation instance (>= 0)</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--non-negative"/>
+ </constraint>
+ </properties>
+ <children>
+ <leafNode name="length">
+ <properties>
+ <help>Request IPv6 prefix length from peer</help>
+ <valueHelp>
+ <format>32-64</format>
+ <description>Length of delegated prefix</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 32-64"/>
+ </constraint>
+ </properties>
+ <defaultValue>64</defaultValue>
+ </leafNode>
+ <tagNode name="interface">
+ <properties>
+ <help>Delegate IPv6 prefix from provider to this interface</help>
+ <completionHelp>
+ <script>${vyos_completion_dir}/list_interfaces.py --broadcast</script>
+ </completionHelp>
+ </properties>
+ <children>
+ <leafNode name="address">
+ <properties>
+ <help>Local interface address assigned to interface</help>
+ <valueHelp>
+ <format>&gt;0</format>
+ <description>Used to form IPv6 interface address (default: EUI-64)</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--non-negative"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ <leafNode name="sla-id">
+ <properties>
+ <help>Interface site-Level aggregator (SLA)</help>
+ <valueHelp>
+ <format>0-128</format>
+ <description>Decimal integer which fits in the length of SLA IDs</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 0-128"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ </children>
+ </tagNode>
+ </children>
+ </tagNode>
+ <leafNode name="rapid-commit">
+ <properties>
+ <help>Wait for immediate reply instead of advertisements</help>
+ <valueless/>
+ </properties>
+ </leafNode>
+ <leafNode name="temporary">
+ <properties>
+ <help>IPv6 temporary address</help>
+ <valueless/>
+ </properties>
+ </leafNode>
+ </children>
+</node>
+<!-- include end -->
diff --git a/interface-definitions/include/interface/interface-arp-cache-timeout.xml.i b/interface-definitions/include/interface/interface-arp-cache-timeout.xml.i
new file mode 100644
index 000000000..b269fecd8
--- /dev/null
+++ b/interface-definitions/include/interface/interface-arp-cache-timeout.xml.i
@@ -0,0 +1,16 @@
+<!-- include start from interface/interface-arp-cache-timeout.xml.i -->
+<leafNode name="arp-cache-timeout">
+ <properties>
+ <help>ARP cache entry timeout in seconds</help>
+ <valueHelp>
+ <format>1-86400</format>
+ <description>ARP cache entry timout in seconds (default 30)</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 1-86400"/>
+ </constraint>
+ <constraintErrorMessage>ARP cache entry timeout must be between 1 and 86400 seconds</constraintErrorMessage>
+ </properties>
+ <defaultValue>30</defaultValue>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/interface/interface-description.xml.i b/interface-definitions/include/interface/interface-description.xml.i
new file mode 100644
index 000000000..d618b50d2
--- /dev/null
+++ b/interface-definitions/include/interface/interface-description.xml.i
@@ -0,0 +1,11 @@
+<!-- include start from interface/interface-description.xml.i -->
+<leafNode name="description">
+ <properties>
+ <help>Interface specific description</help>
+ <constraint>
+ <regex>.{1,256}$</regex>
+ </constraint>
+ <constraintErrorMessage>Description too long (limit 256 characters)</constraintErrorMessage>
+ </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/interface/interface-dial-on-demand.xml.i b/interface-definitions/include/interface/interface-dial-on-demand.xml.i
new file mode 100644
index 000000000..66edd9678
--- /dev/null
+++ b/interface-definitions/include/interface/interface-dial-on-demand.xml.i
@@ -0,0 +1,8 @@
+<!-- include start from interface/interface-dial-on-demand.xml.i -->
+<leafNode name="connect-on-demand">
+ <properties>
+ <help>Establishment connection automatically when traffic is sent</help>
+ <valueless/>
+ </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/interface/interface-disable-arp-filter.xml.i b/interface-definitions/include/interface/interface-disable-arp-filter.xml.i
new file mode 100644
index 000000000..49cddaf76
--- /dev/null
+++ b/interface-definitions/include/interface/interface-disable-arp-filter.xml.i
@@ -0,0 +1,8 @@
+<!-- include start from interface/interface-disable-arp-filter.xml.i -->
+<leafNode name="disable-arp-filter">
+ <properties>
+ <help>Disable ARP filter on this interface</help>
+ <valueless/>
+ </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/interface/interface-disable-forwarding.xml.i b/interface-definitions/include/interface/interface-disable-forwarding.xml.i
new file mode 100644
index 000000000..cb6ef0475
--- /dev/null
+++ b/interface-definitions/include/interface/interface-disable-forwarding.xml.i
@@ -0,0 +1,8 @@
+<!-- include start from interface/interface-disable-forwarding.xml.i -->
+<leafNode name="disable-forwarding">
+ <properties>
+ <help>Disable IPv4 forwarding on this interface</help>
+ <valueless/>
+ </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/interface/interface-disable-link-detect.xml.i b/interface-definitions/include/interface/interface-disable-link-detect.xml.i
new file mode 100644
index 000000000..c528885b2
--- /dev/null
+++ b/interface-definitions/include/interface/interface-disable-link-detect.xml.i
@@ -0,0 +1,8 @@
+<!-- include start from interface/interface-disable-link-detect.xml.i -->
+<leafNode name="disable-link-detect">
+ <properties>
+ <help>Ignore link state changes</help>
+ <valueless/>
+ </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/interface/interface-disable.xml.i b/interface-definitions/include/interface/interface-disable.xml.i
new file mode 100644
index 000000000..d90e6395b
--- /dev/null
+++ b/interface-definitions/include/interface/interface-disable.xml.i
@@ -0,0 +1,8 @@
+<!-- include start from interface/interface-disable.xml.i -->
+<leafNode name="disable">
+ <properties>
+ <help>Administratively disable interface</help>
+ <valueless/>
+ </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/interface/interface-eapol.xml.i b/interface-definitions/include/interface/interface-eapol.xml.i
new file mode 100644
index 000000000..92b7a3f35
--- /dev/null
+++ b/interface-definitions/include/interface/interface-eapol.xml.i
@@ -0,0 +1,12 @@
+<!-- include start from interface/interface-eapol.xml.i -->
+<node name="eapol">
+ <properties>
+ <help>Extensible Authentication Protocol over Local Area Network</help>
+ </properties>
+ <children>
+ #include <include/certificate.xml.i>
+ #include <include/certificate-ca.xml.i>
+ #include <include/certificate-key.xml.i>
+ </children>
+</node>
+<!-- include end -->
diff --git a/interface-definitions/include/interface/interface-enable-arp-accept.xml.i b/interface-definitions/include/interface/interface-enable-arp-accept.xml.i
new file mode 100644
index 000000000..7c5d51857
--- /dev/null
+++ b/interface-definitions/include/interface/interface-enable-arp-accept.xml.i
@@ -0,0 +1,8 @@
+<!-- include start from interface/interface-enable-arp-accept.xml.i -->
+<leafNode name="enable-arp-accept">
+ <properties>
+ <help>Enable ARP accept on this interface</help>
+ <valueless/>
+ </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/interface/interface-enable-arp-announce.xml.i b/interface-definitions/include/interface/interface-enable-arp-announce.xml.i
new file mode 100644
index 000000000..f44599c54
--- /dev/null
+++ b/interface-definitions/include/interface/interface-enable-arp-announce.xml.i
@@ -0,0 +1,8 @@
+<!-- include start from interface/interface-enable-arp-announce.xml.i -->
+<leafNode name="enable-arp-announce">
+ <properties>
+ <help>Enable ARP announce on this interface</help>
+ <valueless/>
+ </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/interface/interface-enable-arp-ignore.xml.i b/interface-definitions/include/interface/interface-enable-arp-ignore.xml.i
new file mode 100644
index 000000000..3ea39613c
--- /dev/null
+++ b/interface-definitions/include/interface/interface-enable-arp-ignore.xml.i
@@ -0,0 +1,8 @@
+<!-- include start from interface/interface-enable-arp-ignore.xml.i -->
+<leafNode name="enable-arp-ignore">
+ <properties>
+ <help>Enable ARP ignore on this interface</help>
+ <valueless/>
+ </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/interface/interface-enable-proxy-arp.xml.i b/interface-definitions/include/interface/interface-enable-proxy-arp.xml.i
new file mode 100644
index 000000000..dbdeeb7a7
--- /dev/null
+++ b/interface-definitions/include/interface/interface-enable-proxy-arp.xml.i
@@ -0,0 +1,8 @@
+<!-- include start from interface/interface-enable-proxy-arp.xml.i -->
+<leafNode name="enable-proxy-arp">
+ <properties>
+ <help>Enable proxy-arp on this interface</help>
+ <valueless/>
+ </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/interface/interface-hw-id.xml.i b/interface-definitions/include/interface/interface-hw-id.xml.i
new file mode 100644
index 000000000..989cd9cb7
--- /dev/null
+++ b/interface-definitions/include/interface/interface-hw-id.xml.i
@@ -0,0 +1,14 @@
+<!-- include start from interface/interface-hw-id.xml.i -->
+<leafNode name="hw-id">
+ <properties>
+ <help>Associate Ethernet Interface with given Media Access Control (MAC) address</help>
+ <valueHelp>
+ <format>macaddr</format>
+ <description>Hardware (MAC) address</description>
+ </valueHelp>
+ <constraint>
+ <validator name="mac-address"/>
+ </constraint>
+ </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/interface/interface-ipv4-options.xml.i b/interface-definitions/include/interface/interface-ipv4-options.xml.i
new file mode 100644
index 000000000..c2d0677b7
--- /dev/null
+++ b/interface-definitions/include/interface/interface-ipv4-options.xml.i
@@ -0,0 +1,18 @@
+<!-- include start from interface/interface-ipv4-options.xml.i -->
+<node name="ip">
+ <properties>
+ <help>IPv4 routing parameters</help>
+ </properties>
+ <children>
+ #include <include/interface/interface-arp-cache-timeout.xml.i>
+ #include <include/interface/interface-disable-arp-filter.xml.i>
+ #include <include/interface/interface-disable-forwarding.xml.i>
+ #include <include/interface/interface-enable-arp-accept.xml.i>
+ #include <include/interface/interface-enable-arp-announce.xml.i>
+ #include <include/interface/interface-enable-arp-ignore.xml.i>
+ #include <include/interface/interface-enable-proxy-arp.xml.i>
+ #include <include/interface/interface-proxy-arp-pvlan.xml.i>
+ #include <include/interface/interface-source-validation.xml.i>
+ </children>
+</node>
+<!-- include end -->
diff --git a/interface-definitions/include/interface/interface-ipv6-options.xml.i b/interface-definitions/include/interface/interface-ipv6-options.xml.i
new file mode 100644
index 000000000..dcd5a8710
--- /dev/null
+++ b/interface-definitions/include/interface/interface-ipv6-options.xml.i
@@ -0,0 +1,12 @@
+<!-- include start from interface/interface-ipv6-options.xml.i -->
+<node name="ipv6">
+ <properties>
+ <help>IPv6 routing parameters</help>
+ </properties>
+ <children>
+ #include <include/interface/ipv6-address.xml.i>
+ #include <include/interface/ipv6-disable-forwarding.xml.i>
+ #include <include/interface/ipv6-dup-addr-detect-transmits.xml.i>
+ </children>
+</node>
+<!-- include end -->
diff --git a/interface-definitions/include/interface/interface-mac.xml.i b/interface-definitions/include/interface/interface-mac.xml.i
new file mode 100644
index 000000000..d7107ad23
--- /dev/null
+++ b/interface-definitions/include/interface/interface-mac.xml.i
@@ -0,0 +1,14 @@
+<!-- include start from interface/interface-mac.xml.i -->
+<leafNode name="mac">
+ <properties>
+ <help>Media Access Control (MAC) address</help>
+ <valueHelp>
+ <format>macaddr</format>
+ <description>Hardware (MAC) address</description>
+ </valueHelp>
+ <constraint>
+ <validator name="mac-address"/>
+ </constraint>
+ </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/interface/interface-mirror.xml.i b/interface-definitions/include/interface/interface-mirror.xml.i
new file mode 100644
index 000000000..b3b45fb43
--- /dev/null
+++ b/interface-definitions/include/interface/interface-mirror.xml.i
@@ -0,0 +1,25 @@
+<!-- include start from interface/interface-mirror.xml.i -->
+<node name="mirror">
+ <properties>
+ <help>Incoming/outgoing packet mirroring destination</help>
+ </properties>
+ <children>
+ <leafNode name="ingress">
+ <properties>
+ <help>Mirror the ingress traffic of the interface to the destination interface</help>
+ <completionHelp>
+ <script>${vyos_completion_dir}/list_interfaces.py</script>
+ </completionHelp>
+ </properties>
+ </leafNode>
+ <leafNode name="egress">
+ <properties>
+ <help>Mirror the egress traffic of the interface to the destination interface</help>
+ <completionHelp>
+ <script>${vyos_completion_dir}/list_interfaces.py</script>
+ </completionHelp>
+ </properties>
+ </leafNode>
+ </children>
+</node>
+<!-- include end -->
diff --git a/interface-definitions/include/interface/interface-mtu-1200-16000.xml.i b/interface-definitions/include/interface/interface-mtu-1200-16000.xml.i
new file mode 100644
index 000000000..3241ba912
--- /dev/null
+++ b/interface-definitions/include/interface/interface-mtu-1200-16000.xml.i
@@ -0,0 +1,16 @@
+<!-- include start from interface/interface-mtu-1200-16000.xml.i -->
+<leafNode name="mtu">
+ <properties>
+ <help>Maximum Transmission Unit (MTU)</help>
+ <valueHelp>
+ <format>1200-16000</format>
+ <description>Maximum Transmission Unit in byte</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 1200-16000"/>
+ </constraint>
+ <constraintErrorMessage>MTU must be between 1200 and 16000</constraintErrorMessage>
+ </properties>
+ <defaultValue>1500</defaultValue>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/interface/interface-mtu-1450-16000.xml.i b/interface-definitions/include/interface/interface-mtu-1450-16000.xml.i
new file mode 100644
index 000000000..0a35bbbaa
--- /dev/null
+++ b/interface-definitions/include/interface/interface-mtu-1450-16000.xml.i
@@ -0,0 +1,16 @@
+<!-- include start from interface/interface-mtu-1450-16000.xml.i -->
+<leafNode name="mtu">
+ <properties>
+ <help>Maximum Transmission Unit (MTU)</help>
+ <valueHelp>
+ <format>1450-16000</format>
+ <description>Maximum Transmission Unit in byte</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 1450-16000"/>
+ </constraint>
+ <constraintErrorMessage>MTU must be between 1450 and 16000</constraintErrorMessage>
+ </properties>
+ <defaultValue>1500</defaultValue>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/interface/interface-mtu-64-8024.xml.i b/interface-definitions/include/interface/interface-mtu-64-8024.xml.i
new file mode 100644
index 000000000..f75de02ba
--- /dev/null
+++ b/interface-definitions/include/interface/interface-mtu-64-8024.xml.i
@@ -0,0 +1,16 @@
+<!-- include start from interface/interface-mtu-68-8024.xml.i -->
+<leafNode name="mtu">
+ <properties>
+ <help>Maximum Transmission Unit (MTU)</help>
+ <valueHelp>
+ <format>64-8024</format>
+ <description>Maximum Transmission Unit in byte</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 64-8024"/>
+ </constraint>
+ <constraintErrorMessage>MTU must be between 64 and 8024</constraintErrorMessage>
+ </properties>
+ <defaultValue>1500</defaultValue>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/interface/interface-mtu-68-1500.xml.i b/interface-definitions/include/interface/interface-mtu-68-1500.xml.i
new file mode 100644
index 000000000..9e6fe8760
--- /dev/null
+++ b/interface-definitions/include/interface/interface-mtu-68-1500.xml.i
@@ -0,0 +1,16 @@
+<!-- include start from interface/interface-mtu-68-1500.xml.i -->
+<leafNode name="mtu">
+ <properties>
+ <help>Maximum Transmission Unit (MTU)</help>
+ <valueHelp>
+ <format>68-1500</format>
+ <description>Maximum Transmission Unit in byte</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 68-1500"/>
+ </constraint>
+ <constraintErrorMessage>MTU must be between 68 and 1500</constraintErrorMessage>
+ </properties>
+ <defaultValue>1500</defaultValue>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/interface/interface-mtu-68-16000.xml.i b/interface-definitions/include/interface/interface-mtu-68-16000.xml.i
new file mode 100644
index 000000000..83af7bbd4
--- /dev/null
+++ b/interface-definitions/include/interface/interface-mtu-68-16000.xml.i
@@ -0,0 +1,16 @@
+<!-- include start from interface/interface-mtu-68-16000.xml.i -->
+<leafNode name="mtu">
+ <properties>
+ <help>Maximum Transmission Unit (MTU)</help>
+ <valueHelp>
+ <format>68-16000</format>
+ <description>Maximum Transmission Unit in byte</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 68-16000"/>
+ </constraint>
+ <constraintErrorMessage>MTU must be between 68 and 16000</constraintErrorMessage>
+ </properties>
+ <defaultValue>1500</defaultValue>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/interface/interface-parameters-dont-fragment.xml.i b/interface-definitions/include/interface/interface-parameters-dont-fragment.xml.i
new file mode 100644
index 000000000..166c31115
--- /dev/null
+++ b/interface-definitions/include/interface/interface-parameters-dont-fragment.xml.i
@@ -0,0 +1,8 @@
+<!-- include start from interface/interface-parameters-df.xml.i -->
+<leafNode name="dont-fragment">
+ <properties>
+ <help>Specifies the usage of the dont fragment (DF) bit</help>
+ <valueless/>
+ </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/interface/interface-parameters-flowlabel.xml.i b/interface-definitions/include/interface/interface-parameters-flowlabel.xml.i
new file mode 100644
index 000000000..ed075e40d
--- /dev/null
+++ b/interface-definitions/include/interface/interface-parameters-flowlabel.xml.i
@@ -0,0 +1,15 @@
+<!-- include start from interface/interface-parameters-flowlabel.xml.i -->
+<leafNode name="flowlabel">
+ <properties>
+ <help>Specifies the flow label to use in outgoing packets</help>
+ <valueHelp>
+ <format>0x0-0x0FFFFF</format>
+ <description>Tunnel key, 'inherit' or hex value</description>
+ </valueHelp>
+ <constraint>
+ <regex>^((0x){0,1}(0?[0-9A-Fa-f]{1,5})|inherit)$</regex>
+ </constraint>
+ <constraintErrorMessage>Must be 'inherit' or a number</constraintErrorMessage>
+ </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/interface/interface-parameters-key.xml.i b/interface-definitions/include/interface/interface-parameters-key.xml.i
new file mode 100644
index 000000000..1b1d67174
--- /dev/null
+++ b/interface-definitions/include/interface/interface-parameters-key.xml.i
@@ -0,0 +1,15 @@
+<!-- include start from interface/interface-parameters-key.xml.i -->
+<leafNode name="key">
+ <properties>
+ <help>Tunnel key</help>
+ <valueHelp>
+ <format>u32</format>
+ <description>Tunnel key</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 0-4294967295"/>
+ </constraint>
+ <constraintErrorMessage>key must be between 0-4294967295</constraintErrorMessage>
+ </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/interface/interface-parameters-tos.xml.i b/interface-definitions/include/interface/interface-parameters-tos.xml.i
new file mode 100644
index 000000000..83b4e0671
--- /dev/null
+++ b/interface-definitions/include/interface/interface-parameters-tos.xml.i
@@ -0,0 +1,16 @@
+<!-- include start from interface/tunnel-parameters-tos.xml.i -->
+<leafNode name="tos">
+ <properties>
+ <help>Specifies TOS value to use in outgoing packets</help>
+ <valueHelp>
+ <format>0-99</format>
+ <description>Type of Service (TOS)</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 0-99"/>
+ </constraint>
+ <constraintErrorMessage>TOS must be between 0 and 99</constraintErrorMessage>
+ </properties>
+ <defaultValue>inherit</defaultValue>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/interface/interface-parameters-ttl.xml.i b/interface-definitions/include/interface/interface-parameters-ttl.xml.i
new file mode 100644
index 000000000..df193cf24
--- /dev/null
+++ b/interface-definitions/include/interface/interface-parameters-ttl.xml.i
@@ -0,0 +1,20 @@
+<!-- include start from interface/interface-parameters-ttl.xml.i -->
+<leafNode name="ttl">
+ <properties>
+ <help>Specifies TTL value to use in outgoing packets</help>
+ <valueHelp>
+ <format>0</format>
+ <description>Inherit - copy value from original IP header</description>
+ </valueHelp>
+ <valueHelp>
+ <format>1-255</format>
+ <description>Time to Live</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 0-255"/>
+ </constraint>
+ <constraintErrorMessage>TTL must be between 0 and 255</constraintErrorMessage>
+ </properties>
+ <defaultValue>0</defaultValue>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/interface/interface-proxy-arp-pvlan.xml.i b/interface-definitions/include/interface/interface-proxy-arp-pvlan.xml.i
new file mode 100644
index 000000000..153dfc072
--- /dev/null
+++ b/interface-definitions/include/interface/interface-proxy-arp-pvlan.xml.i
@@ -0,0 +1,8 @@
+<!-- include start from interface/interface-proxy-arp-pvlan.xml.i -->
+<leafNode name="proxy-arp-pvlan">
+ <properties>
+ <help>Enable private VLAN proxy ARP on this interface</help>
+ <valueless/>
+ </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/interface/interface-source-validation.xml.i b/interface-definitions/include/interface/interface-source-validation.xml.i
new file mode 100644
index 000000000..70914f2e9
--- /dev/null
+++ b/interface-definitions/include/interface/interface-source-validation.xml.i
@@ -0,0 +1,25 @@
+<!-- include start from interface/interface-source-validation.xml.i -->
+<leafNode name="source-validation">
+ <properties>
+ <help>Source validation by reversed path (RFC3704)</help>
+ <completionHelp>
+ <list>strict loose disable</list>
+ </completionHelp>
+ <valueHelp>
+ <format>strict</format>
+ <description>Enable Strict Reverse Path Forwarding as defined in RFC3704</description>
+ </valueHelp>
+ <valueHelp>
+ <format>loose</format>
+ <description>Enable Loose Reverse Path Forwarding as defined in RFC3704</description>
+ </valueHelp>
+ <valueHelp>
+ <format>disable</format>
+ <description>No source validation</description>
+ </valueHelp>
+ <constraint>
+ <regex>^(strict|loose|disable)$</regex>
+ </constraint>
+ </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/interface/interface-vrf.xml.i b/interface-definitions/include/interface/interface-vrf.xml.i
new file mode 100644
index 000000000..ef6ca1241
--- /dev/null
+++ b/interface-definitions/include/interface/interface-vrf.xml.i
@@ -0,0 +1,14 @@
+<!-- include start from interface/interface-vrf.xml.i -->
+<leafNode name="vrf">
+ <properties>
+ <help>VRF instance name</help>
+ <valueHelp>
+ <format>text</format>
+ <description>VRF instance name</description>
+ </valueHelp>
+ <completionHelp>
+ <path>vrf name</path>
+ </completionHelp>
+ </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/interface/interface-xdp.xml.i b/interface-definitions/include/interface/interface-xdp.xml.i
new file mode 100644
index 000000000..0253f6dad
--- /dev/null
+++ b/interface-definitions/include/interface/interface-xdp.xml.i
@@ -0,0 +1,8 @@
+<!-- include start from interface/interface-xdp.xml.i -->
+<leafNode name="xdp">
+ <properties>
+ <help>Enable eXpress Data Path</help>
+ <valueless/>
+ </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/interface/ipv6-address-autoconf.xml.i b/interface-definitions/include/interface/ipv6-address-autoconf.xml.i
new file mode 100644
index 000000000..cd1483bc1
--- /dev/null
+++ b/interface-definitions/include/interface/ipv6-address-autoconf.xml.i
@@ -0,0 +1,8 @@
+<!-- include start from interface/ipv6-address-autoconf.xml.i -->
+<leafNode name="autoconf">
+ <properties>
+ <help>Enable acquisition of IPv6 address using stateless autoconfig (SLAAC)</help>
+ <valueless/>
+ </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/interface/ipv6-address-eui64.xml.i b/interface-definitions/include/interface/ipv6-address-eui64.xml.i
new file mode 100644
index 000000000..fe1f43df4
--- /dev/null
+++ b/interface-definitions/include/interface/ipv6-address-eui64.xml.i
@@ -0,0 +1,16 @@
+<!-- include start from interface/ipv6-address-eui64.xml.i -->
+<leafNode name="eui64">
+ <properties>
+ <help>Prefix for IPv6 address with MAC-based EUI-64</help>
+ <valueHelp>
+ <format>&lt;h:h:h:h:h:h:h:h/64&gt;</format>
+ <description>IPv6 /64 network</description>
+ </valueHelp>
+ <constraint>
+ <validator name="ipv6-eui64-prefix"/>
+ </constraint>
+ <constraintErrorMessage>EUI64 prefix length must be 64</constraintErrorMessage>
+ <multi/>
+ </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/interface/ipv6-address-no-default-link-local.xml.i b/interface-definitions/include/interface/ipv6-address-no-default-link-local.xml.i
new file mode 100644
index 000000000..012490edc
--- /dev/null
+++ b/interface-definitions/include/interface/ipv6-address-no-default-link-local.xml.i
@@ -0,0 +1,8 @@
+<!-- include start from interface/ipv6-address-no-default-link-local.xml.i -->
+<leafNode name="no-default-link-local">
+ <properties>
+ <help>Remove the default link-local address from the interface</help>
+ <valueless/>
+ </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/interface/ipv6-address.xml.i b/interface-definitions/include/interface/ipv6-address.xml.i
new file mode 100644
index 000000000..e1bdf02fd
--- /dev/null
+++ b/interface-definitions/include/interface/ipv6-address.xml.i
@@ -0,0 +1,12 @@
+<!-- include start from interface/ipv6-address.xml.i -->
+<node name="address">
+ <properties>
+ <help>IPv6 address configuration modes</help>
+ </properties>
+ <children>
+ #include <include/interface/ipv6-address-autoconf.xml.i>
+ #include <include/interface/ipv6-address-eui64.xml.i>
+ #include <include/interface/ipv6-address-no-default-link-local.xml.i>
+ </children>
+</node>
+<!-- include end -->
diff --git a/interface-definitions/include/interface/ipv6-disable-forwarding.xml.i b/interface-definitions/include/interface/ipv6-disable-forwarding.xml.i
new file mode 100644
index 000000000..4adb77d1b
--- /dev/null
+++ b/interface-definitions/include/interface/ipv6-disable-forwarding.xml.i
@@ -0,0 +1,8 @@
+<!-- include start from interface/ipv6-disable-forwarding.xml.i -->
+<leafNode name="disable-forwarding">
+ <properties>
+ <help>Disable IPv6 forwarding on this interface</help>
+ <valueless/>
+ </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/interface/ipv6-dup-addr-detect-transmits.xml.i b/interface-definitions/include/interface/ipv6-dup-addr-detect-transmits.xml.i
new file mode 100644
index 000000000..2b5ec0281
--- /dev/null
+++ b/interface-definitions/include/interface/ipv6-dup-addr-detect-transmits.xml.i
@@ -0,0 +1,18 @@
+<!-- include start from interface/ipv6-dup-addr-detect-transmits.xml.i -->
+<leafNode name="dup-addr-detect-transmits">
+ <properties>
+ <help>Number of NS messages to send while performing DAD (default: 1)</help>
+ <valueHelp>
+ <format>1-n</format>
+ <description>Number of NS messages to send while performing DAD</description>
+ </valueHelp>
+ <valueHelp>
+ <format>0</format>
+ <description>Disable Duplicate Address Dectection (DAD)</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--non-negative"/>
+ </constraint>
+ </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/interface/tunnel-remote.xml.i b/interface-definitions/include/interface/tunnel-remote.xml.i
new file mode 100644
index 000000000..1ba9b0382
--- /dev/null
+++ b/interface-definitions/include/interface/tunnel-remote.xml.i
@@ -0,0 +1,18 @@
+<!-- include start from rip/tunnel-remote.xml.i -->
+<leafNode name="remote">
+ <properties>
+ <help>Tunnel remote address</help>
+ <valueHelp>
+ <format>ipv4</format>
+ <description>Tunnel remote IPv4 address</description>
+ </valueHelp>
+ <valueHelp>
+ <format>ipv6</format>
+ <description>Tunnel remote IPv6 address</description>
+ </valueHelp>
+ <constraint>
+ <validator name="ip-address"/>
+ </constraint>
+ </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/interface/vif-s.xml.i b/interface-definitions/include/interface/vif-s.xml.i
new file mode 100644
index 000000000..045fd3e24
--- /dev/null
+++ b/interface-definitions/include/interface/vif-s.xml.i
@@ -0,0 +1,67 @@
+<!-- include start from interface/vif-s.xml.i -->
+<tagNode name="vif-s">
+ <properties>
+ <help>QinQ TAG-S Virtual Local Area Network (VLAN) ID</help>
+ <constraint>
+ <validator name="numeric" argument="--range 0-4094"/>
+ </constraint>
+ <constraintErrorMessage>VLAN ID must be between 0 and 4094</constraintErrorMessage>
+ </properties>
+ <children>
+ #include <include/interface/address-ipv4-ipv6-dhcp.xml.i>
+ #include <include/interface/interface-description.xml.i>
+ #include <include/interface/dhcp-options.xml.i>
+ #include <include/interface/dhcpv6-options.xml.i>
+ #include <include/interface/interface-disable-link-detect.xml.i>
+ #include <include/interface/interface-disable.xml.i>
+ <leafNode name="protocol">
+ <properties>
+ <help>Protocol used for service VLAN (default: 802.1ad)</help>
+ <completionHelp>
+ <list>802.1ad 802.1q</list>
+ </completionHelp>
+ <valueHelp>
+ <format>802.1ad</format>
+ <description>Provider Bridging (IEEE 802.1ad, Q-inQ), ethertype 0x88a8</description>
+ </valueHelp>
+ <valueHelp>
+ <format>802.1q</format>
+ <description>VLAN-tagged frame (IEEE 802.1q), ethertype 0x8100</description>
+ </valueHelp>
+ <constraint>
+ <regex>(802.1q|802.1ad)</regex>
+ </constraint>
+ <constraintErrorMessage>Ethertype must be 802.1ad or 802.1q</constraintErrorMessage>
+ </properties>
+ <defaultValue>802.1ad</defaultValue>
+ </leafNode>
+ #include <include/interface/interface-ipv4-options.xml.i>
+ #include <include/interface/interface-ipv6-options.xml.i>
+ #include <include/interface/interface-mac.xml.i>
+ #include <include/interface/interface-mtu-68-16000.xml.i>
+ <tagNode name="vif-c">
+ <properties>
+ <help>QinQ TAG-C Virtual Local Area Network (VLAN) ID</help>
+ <constraint>
+ <validator name="numeric" argument="--range 0-4094"/>
+ </constraint>
+ <constraintErrorMessage>VLAN ID must be between 0 and 4094</constraintErrorMessage>
+ </properties>
+ <children>
+ #include <include/interface/address-ipv4-ipv6-dhcp.xml.i>
+ #include <include/interface/interface-description.xml.i>
+ #include <include/interface/dhcp-options.xml.i>
+ #include <include/interface/dhcpv6-options.xml.i>
+ #include <include/interface/interface-disable-link-detect.xml.i>
+ #include <include/interface/interface-disable.xml.i>
+ #include <include/interface/interface-ipv4-options.xml.i>
+ #include <include/interface/interface-ipv6-options.xml.i>
+ #include <include/interface/interface-mac.xml.i>
+ #include <include/interface/interface-mtu-68-16000.xml.i>
+ #include <include/interface/interface-vrf.xml.i>
+ </children>
+ </tagNode>
+ #include <include/interface/interface-vrf.xml.i>
+ </children>
+</tagNode>
+<!-- include end -->
diff --git a/interface-definitions/include/interface/vif.xml.i b/interface-definitions/include/interface/vif.xml.i
new file mode 100644
index 000000000..0355054a4
--- /dev/null
+++ b/interface-definitions/include/interface/vif.xml.i
@@ -0,0 +1,52 @@
+<!-- include start from interface/vif.xml.i -->
+<tagNode name="vif">
+ <properties>
+ <help>Virtual Local Area Network (VLAN) ID</help>
+ <valueHelp>
+ <format>0-4094</format>
+ <description>Virtual Local Area Network (VLAN) ID</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 0-4094"/>
+ </constraint>
+ <constraintErrorMessage>VLAN ID must be between 0 and 4094</constraintErrorMessage>
+ </properties>
+ <children>
+ #include <include/interface/address-ipv4-ipv6-dhcp.xml.i>
+ #include <include/interface/interface-description.xml.i>
+ #include <include/interface/dhcp-options.xml.i>
+ #include <include/interface/dhcpv6-options.xml.i>
+ #include <include/interface/interface-disable-link-detect.xml.i>
+ #include <include/interface/interface-disable.xml.i>
+ #include <include/interface/interface-vrf.xml.i>
+ <leafNode name="egress-qos">
+ <properties>
+ <help>VLAN egress QoS</help>
+ <completionHelp>
+ <script>echo Format for qos mapping, e.g.: '0:1 1:6 7:6'</script>
+ </completionHelp>
+ <constraint>
+ <regex>[:0-7 ]+$</regex>
+ </constraint>
+ <constraintErrorMessage>QoS mapping should be in the format of '0:7 2:3' with numbers 0-9</constraintErrorMessage>
+ </properties>
+ </leafNode>
+ <leafNode name="ingress-qos">
+ <properties>
+ <help>VLAN ingress QoS</help>
+ <completionHelp>
+ <script>echo Format for qos mapping '0:1 1:6 7:6'</script>
+ </completionHelp>
+ <constraint>
+ <regex>[:0-7 ]+$</regex>
+ </constraint>
+ <constraintErrorMessage>QoS mapping should be in the format of '0:7 2:3' with numbers 0-9</constraintErrorMessage>
+ </properties>
+ </leafNode>
+ #include <include/interface/interface-ipv4-options.xml.i>
+ #include <include/interface/interface-ipv6-options.xml.i>
+ #include <include/interface/interface-mac.xml.i>
+ #include <include/interface/interface-mtu-68-16000.xml.i>
+ </children>
+</tagNode>
+<!-- include end -->