summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile34
-rw-r--r--interface-definitions/arp.xml.in (renamed from interface-definitions/arp.xml)0
-rw-r--r--interface-definitions/bcast-relay.xml.in (renamed from interface-definitions/bcast-relay.xml)0
-rw-r--r--interface-definitions/beep-on-boot.xml.in (renamed from interface-definitions/beep-on-boot.xml)0
-rw-r--r--interface-definitions/cron.xml.in (renamed from interface-definitions/cron.xml)0
-rw-r--r--interface-definitions/dhcp-relay.xml.in (renamed from interface-definitions/dhcp-relay.xml)0
-rw-r--r--interface-definitions/dhcp-server.xml.in (renamed from interface-definitions/dhcp-server.xml)2
-rw-r--r--interface-definitions/dhcpv6-relay.xml.in (renamed from interface-definitions/dhcpv6-relay.xml)0
-rw-r--r--interface-definitions/dhcpv6-server.xml.in (renamed from interface-definitions/dhcpv6-server.xml)2
-rw-r--r--interface-definitions/dns-domain-name.xml.in (renamed from interface-definitions/dns-domain-name.xml)0
-rw-r--r--interface-definitions/dns-dynamic.xml.in (renamed from interface-definitions/dns-dynamic.xml)0
-rw-r--r--interface-definitions/dns-forwarding.xml.in (renamed from interface-definitions/dns-forwarding.xml)2
-rw-r--r--interface-definitions/firewall-options.xml.in (renamed from interface-definitions/firewall-options.xml)0
-rw-r--r--interface-definitions/https.xml.in (renamed from interface-definitions/https.xml)1
-rw-r--r--interface-definitions/igmp-proxy.xml.in (renamed from interface-definitions/igmp-proxy.xml)2
-rw-r--r--interface-definitions/include/address-ipv4-ipv6-dhcp.xml.i29
-rw-r--r--interface-definitions/include/address-ipv4-ipv6.xml.i17
-rw-r--r--interface-definitions/include/dhcp-dhcpv6-options.xml.i42
-rw-r--r--interface-definitions/include/interface-arp-cache-timeout.xml.i13
-rw-r--r--interface-definitions/include/interface-description.xml.i9
-rw-r--r--interface-definitions/include/interface-disable-link-detect.xml.i6
-rw-r--r--interface-definitions/include/interface-disable.xml.i6
-rw-r--r--interface-definitions/include/interface-enable-proxy-arp.xml.i6
-rw-r--r--interface-definitions/include/interface-mac.xml.i12
-rw-r--r--interface-definitions/include/interface-mtu-1450-9000.xml.i13
-rw-r--r--interface-definitions/include/interface-mtu-68-9000.xml.i13
-rw-r--r--interface-definitions/include/interface-proxy-arp-pvlan.xml.i6
-rw-r--r--interface-definitions/include/vif-s.xml.i56
-rw-r--r--interface-definitions/include/vif.xml.i52
-rw-r--r--interface-definitions/intel_qat.xml.in (renamed from interface-definitions/intel_qat.xml)1
-rw-r--r--interface-definitions/interfaces-bonding.xml693
-rw-r--r--interface-definitions/interfaces-bonding.xml.in159
-rw-r--r--interface-definitions/interfaces-bridge.xml.in (renamed from interface-definitions/interfaces-bridge.xml)124
-rw-r--r--interface-definitions/interfaces-dummy.xml55
-rw-r--r--interface-definitions/interfaces-dummy.xml.in26
-rw-r--r--interface-definitions/interfaces-ethernet.xml904
-rw-r--r--interface-definitions/interfaces-ethernet.xml.in273
-rw-r--r--interface-definitions/interfaces-geneve.xml118
-rw-r--r--interface-definitions/interfaces-geneve.xml.in60
-rw-r--r--interface-definitions/interfaces-loopback.xml46
-rw-r--r--interface-definitions/interfaces-loopback.xml.in25
-rw-r--r--interface-definitions/interfaces-openvpn.xml.in (renamed from interface-definitions/interfaces-openvpn.xml)17
-rw-r--r--interface-definitions/interfaces-vxlan.xml.in (renamed from interface-definitions/interfaces-vxlan.xml)70
-rw-r--r--interface-definitions/interfaces-wireguard.xml.in (renamed from interface-definitions/interfaces-wireguard.xml)35
-rw-r--r--interface-definitions/interfaces-wireless.xml.in (renamed from interface-definitions/interfaces-wireless.xml)203
-rw-r--r--interface-definitions/ipoe-server.xml.in (renamed from interface-definitions/ipoe-server.xml)2
-rw-r--r--interface-definitions/ipsec-settings.xml.in (renamed from interface-definitions/ipsec-settings.xml)0
-rw-r--r--interface-definitions/l2tp-server.xml.in (renamed from interface-definitions/l2tp-server.xml)4
-rw-r--r--interface-definitions/mdns-repeater.xml.in (renamed from interface-definitions/mdns-repeater.xml)0
-rw-r--r--interface-definitions/ntp.xml.in (renamed from interface-definitions/ntp.xml)0
-rw-r--r--interface-definitions/pppoe-server.xml.in (renamed from interface-definitions/pppoe-server.xml)20
-rw-r--r--interface-definitions/pptp-server.xml.in (renamed from interface-definitions/pptp-server.xml)6
-rw-r--r--interface-definitions/protocols-bfd.xml.in (renamed from interface-definitions/protocols-bfd.xml)0
-rw-r--r--interface-definitions/snmp.xml.in (renamed from interface-definitions/snmp.xml)0
-rw-r--r--interface-definitions/ssh.xml.in (renamed from interface-definitions/ssh.xml)4
-rw-r--r--interface-definitions/sstp.xml.in (renamed from interface-definitions/sstp.xml)2
-rw-r--r--interface-definitions/system-proxy.xml.in (renamed from interface-definitions/system-proxy.xml)2
-rw-r--r--interface-definitions/system-syslog.xml.in (renamed from interface-definitions/system-syslog.xml)6
-rw-r--r--interface-definitions/tftp-server.xml.in (renamed from interface-definitions/tftp-server.xml)0
-rw-r--r--interface-definitions/vrrp.xml.in (renamed from interface-definitions/vrrp.xml)0
-rw-r--r--python/vyos/config.py5
-rwxr-xr-xsrc/op_mode/powerctrl.py5
62 files changed, 914 insertions, 2274 deletions
diff --git a/Makefile b/Makefile
index 7986ccdc9..97e933694 100644
--- a/Makefile
+++ b/Makefile
@@ -1,23 +1,48 @@
TMPL_DIR := templates-cfg
OP_TMPL_DIR := templates-op
+BUILD_DIR := build
+CFLAGS :=
+
+src = $(wildcard interface-definitions/*.xml.in)
+obj = $(src:.xml.in=.xml)
+
+%.xml: %.xml.in
+ @echo Generating $(BUILD_DIR)/$@ from $<
+ # -ansi This turns off certain features of GCC that are incompatible
+ # with ISO C90. Without this regexes containing '/' as in an URL
+ # won't work
+ # -x c By default GCC guesses the input language from its file extension,
+ # thus XML is unknown. Force it to C language
+ # -E Stop after the preprocessing stage
+ # -undef Do not predefine any system-specific or GCC-specific macros.
+ # -nostdinc Do not search the standard system directories for header files
+ # -P Inhibit generation of linemarkers in the output from the
+ # preprocessor
+ @$(CC) -ansi -x c -E -undef -nostdinc -P -I$(CURDIR)/interface-definitions -o $(BUILD_DIR)/$@ -c $<
+
+$(BUILD_DIR):
+ install -d -m 0755 $(BUILD_DIR)/interface-definitions
+ install -d -m 0755 $(BUILD_DIR)/op-mode-definitions
.PHONY: interface_definitions
.ONESHELL:
-interface_definitions:
+interface_definitions: $(BUILD_DIR) $(obj)
mkdir -p $(TMPL_DIR)
- find $(CURDIR)/interface-definitions/ -type f -name "*.xml" | xargs -I {} $(CURDIR)/scripts/build-command-templates {} $(CURDIR)/schema/interface_definition.rng $(TMPL_DIR) || exit 1
+ find $(BUILD_DIR)/interface-definitions -type f -name "*.xml" | xargs -I {} $(CURDIR)/scripts/build-command-templates {} $(CURDIR)/schema/interface_definition.rng $(TMPL_DIR) || exit 1
# XXX: delete top level node.def's that now live in other packages
rm -f $(TMPL_DIR)/firewall/node.def
rm -f $(TMPL_DIR)/interfaces/node.def
rm -f $(TMPL_DIR)/interfaces/bonding/node.tag/ip/node.def
+ rm -f $(TMPL_DIR)/interfaces/bonding/node.tag/vif/node.tag/ip/node.def
rm -f $(TMPL_DIR)/interfaces/bridge/node.tag/ip/node.def
rm -f $(TMPL_DIR)/interfaces/ethernet/node.tag/ip/node.def
rm -f $(TMPL_DIR)/interfaces/ethernet/node.tag/vif/node.tag/ip/node.def
rm -f $(TMPL_DIR)/interfaces/ethernet/node.tag/vif-s/node.tag/ip/node.def
rm -f $(TMPL_DIR)/interfaces/ethernet/node.tag/vif-s/node.tag/vif-c/node.tag/ip/node.def
rm -f $(TMPL_DIR)/interfaces/vxlan/node.tag/ip/node.def
+ rm -f $(TMPL_DIR)/interfaces/wireless/node.tag/vif/node.tag/ip/node.def
rm -f $(TMPL_DIR)/protocols/node.def
rm -f $(TMPL_DIR)/protocols/static/node.def
rm -f $(TMPL_DIR)/system/node.def
@@ -56,8 +81,9 @@ all: clean interface_definitions op_mode_definitions
.PHONY: clean
clean:
- rm -rf $(TMPL_DIR)/*
- rm -rf $(OP_TMPL_DIR)/*
+ rm -rf $(BUILD_DIR)
+ rm -rf $(TMPL_DIR)
+ rm -rf $(OP_TMPL_DIR)
.PHONY: test
test:
diff --git a/interface-definitions/arp.xml b/interface-definitions/arp.xml.in
index b72f025a8..b72f025a8 100644
--- a/interface-definitions/arp.xml
+++ b/interface-definitions/arp.xml.in
diff --git a/interface-definitions/bcast-relay.xml b/interface-definitions/bcast-relay.xml.in
index 96ce16639..96ce16639 100644
--- a/interface-definitions/bcast-relay.xml
+++ b/interface-definitions/bcast-relay.xml.in
diff --git a/interface-definitions/beep-on-boot.xml b/interface-definitions/beep-on-boot.xml.in
index 0da7d0de4..0da7d0de4 100644
--- a/interface-definitions/beep-on-boot.xml
+++ b/interface-definitions/beep-on-boot.xml.in
diff --git a/interface-definitions/cron.xml b/interface-definitions/cron.xml.in
index 2d4921bf0..2d4921bf0 100644
--- a/interface-definitions/cron.xml
+++ b/interface-definitions/cron.xml.in
diff --git a/interface-definitions/dhcp-relay.xml b/interface-definitions/dhcp-relay.xml.in
index b83402aa1..b83402aa1 100644
--- a/interface-definitions/dhcp-relay.xml
+++ b/interface-definitions/dhcp-relay.xml.in
diff --git a/interface-definitions/dhcp-server.xml b/interface-definitions/dhcp-server.xml.in
index 7d42294e8..e8bdff3df 100644
--- a/interface-definitions/dhcp-server.xml
+++ b/interface-definitions/dhcp-server.xml.in
@@ -414,7 +414,7 @@
</leafNode>
<leafNode name="time-offset">
<properties>
- <help>Offset of the client's subnet in seconds from Coordinated Universal Time (UTC)</help>
+ <help>Client subnet offset in seconds from Coordinated Universal Time (UTC)</help>
<valueHelp>
<format>[-]N</format>
<description>Time offset (number, may be negative)</description>
diff --git a/interface-definitions/dhcpv6-relay.xml b/interface-definitions/dhcpv6-relay.xml.in
index 0beb09d05..0beb09d05 100644
--- a/interface-definitions/dhcpv6-relay.xml
+++ b/interface-definitions/dhcpv6-relay.xml.in
diff --git a/interface-definitions/dhcpv6-server.xml b/interface-definitions/dhcpv6-server.xml.in
index 28b56a64d..7d4c0de23 100644
--- a/interface-definitions/dhcpv6-server.xml
+++ b/interface-definitions/dhcpv6-server.xml.in
@@ -300,7 +300,7 @@
<constraint>
<regex>([0-9A-Fa-f]{1,2}[:])*([0-9A-Fa-f]{1,2})</regex>
</constraint>
- <constraintErrorMessage>Invalid DUID. Must be in the format h[[:h]...] where each \"h\" is 1 to 2 hex characters.</constraintErrorMessage>
+ <constraintErrorMessage>Invalid DUID, must be in the format h[[:h]...]</constraintErrorMessage>
</properties>
</leafNode>
<leafNode name="ipv6-address">
diff --git a/interface-definitions/dns-domain-name.xml b/interface-definitions/dns-domain-name.xml.in
index c16f0b02a..c16f0b02a 100644
--- a/interface-definitions/dns-domain-name.xml
+++ b/interface-definitions/dns-domain-name.xml.in
diff --git a/interface-definitions/dns-dynamic.xml b/interface-definitions/dns-dynamic.xml.in
index 8e7e77475..8e7e77475 100644
--- a/interface-definitions/dns-dynamic.xml
+++ b/interface-definitions/dns-dynamic.xml.in
diff --git a/interface-definitions/dns-forwarding.xml b/interface-definitions/dns-forwarding.xml.in
index a88c174e3..8b89bf758 100644
--- a/interface-definitions/dns-forwarding.xml
+++ b/interface-definitions/dns-forwarding.xml.in
@@ -47,7 +47,7 @@
</valueHelp>
<valueHelp>
<format>process-no-validate</format>
- <description>Respond with DNSSEC records to clients that ask for it. Don't do any validation.</description>
+ <description>Respond with DNSSEC records to clients that ask for it. No validation done at all!</description>
</valueHelp>
<valueHelp>
<format>process</format>
diff --git a/interface-definitions/firewall-options.xml b/interface-definitions/firewall-options.xml.in
index 2936cc703..2936cc703 100644
--- a/interface-definitions/firewall-options.xml
+++ b/interface-definitions/firewall-options.xml.in
diff --git a/interface-definitions/https.xml b/interface-definitions/https.xml.in
index d9874a1f9..923aac811 100644
--- a/interface-definitions/https.xml
+++ b/interface-definitions/https.xml.in
@@ -132,4 +132,3 @@
</children>
</node>
</interfaceDefinition>
-
diff --git a/interface-definitions/igmp-proxy.xml b/interface-definitions/igmp-proxy.xml.in
index ab56019b4..74fec6b48 100644
--- a/interface-definitions/igmp-proxy.xml
+++ b/interface-definitions/igmp-proxy.xml.in
@@ -31,7 +31,7 @@
<children>
<leafNode name="alt-subnet">
<properties>
- <help>Allowed unicast sources for multicast traffic to be proxy'ed</help>
+ <help>Unicast source networks allowed for multicast traffic to be proxyed</help>
<valueHelp>
<format>ipv4net</format>
<description>IPv4 network</description>
diff --git a/interface-definitions/include/address-ipv4-ipv6-dhcp.xml.i b/interface-definitions/include/address-ipv4-ipv6-dhcp.xml.i
new file mode 100644
index 000000000..fb46f2c09
--- /dev/null
+++ b/interface-definitions/include/address-ipv4-ipv6-dhcp.xml.i
@@ -0,0 +1,29 @@
+<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-cidr"/>
+ <regex>(dhcp|dhcpv6)</regex>
+ </constraint>
+ <multi/>
+ </properties>
+</leafNode>
diff --git a/interface-definitions/include/address-ipv4-ipv6.xml.i b/interface-definitions/include/address-ipv4-ipv6.xml.i
new file mode 100644
index 000000000..aa84a5640
--- /dev/null
+++ b/interface-definitions/include/address-ipv4-ipv6.xml.i
@@ -0,0 +1,17 @@
+<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-cidr"/>
+ </constraint>
+ <multi/>
+ </properties>
+</leafNode>
diff --git a/interface-definitions/include/dhcp-dhcpv6-options.xml.i b/interface-definitions/include/dhcp-dhcpv6-options.xml.i
new file mode 100644
index 000000000..104b1fbe0
--- /dev/null
+++ b/interface-definitions/include/dhcp-dhcpv6-options.xml.i
@@ -0,0 +1,42 @@
+<node name="dhcp-options">
+ <properties>
+ <help>DHCP options</help>
+ </properties>
+ <children>
+ <leafNode name="client-id">
+ <properties>
+ <help>DHCP client identifier</help>
+ </properties>
+ </leafNode>
+ <leafNode name="host-name">
+ <properties>
+ <help>DHCP client host name (overrides system host name)</help>
+ </properties>
+ </leafNode>
+ <leafNode name="vendor-class-id">
+ <properties>
+ <help>DHCP client vendor type</help>
+ </properties>
+ </leafNode>
+ </children>
+</node>
+<node name="dhcpv6-options">
+ <properties>
+ <help>DHCPv6 options</help>
+ <priority>319</priority>
+ </properties>
+ <children>
+ <leafNode name="parameters-only">
+ <properties>
+ <help>Acquire only config parameters, no address</help>
+ <valueless/>
+ </properties>
+ </leafNode>
+ <leafNode name="temporary">
+ <properties>
+ <help>IPv6 "temporary" address</help>
+ <valueless/>
+ </properties>
+ </leafNode>
+ </children>
+</node>
diff --git a/interface-definitions/include/interface-arp-cache-timeout.xml.i b/interface-definitions/include/interface-arp-cache-timeout.xml.i
new file mode 100644
index 000000000..81d35f593
--- /dev/null
+++ b/interface-definitions/include/interface-arp-cache-timeout.xml.i
@@ -0,0 +1,13 @@
+<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>
+</leafNode>
diff --git a/interface-definitions/include/interface-description.xml.i b/interface-definitions/include/interface-description.xml.i
new file mode 100644
index 000000000..6356888da
--- /dev/null
+++ b/interface-definitions/include/interface-description.xml.i
@@ -0,0 +1,9 @@
+<leafNode name="description">
+ <properties>
+ <help>Interface description</help>
+ <constraint>
+ <regex>^.{1,256}$</regex>
+ </constraint>
+ <constraintErrorMessage>Interface description too long (limit 256 characters)</constraintErrorMessage>
+ </properties>
+</leafNode>
diff --git a/interface-definitions/include/interface-disable-link-detect.xml.i b/interface-definitions/include/interface-disable-link-detect.xml.i
new file mode 100644
index 000000000..619cd03b0
--- /dev/null
+++ b/interface-definitions/include/interface-disable-link-detect.xml.i
@@ -0,0 +1,6 @@
+<leafNode name="disable-link-detect">
+ <properties>
+ <help>Ignore link state changes</help>
+ <valueless/>
+ </properties>
+</leafNode>
diff --git a/interface-definitions/include/interface-disable.xml.i b/interface-definitions/include/interface-disable.xml.i
new file mode 100644
index 000000000..c6c24f867
--- /dev/null
+++ b/interface-definitions/include/interface-disable.xml.i
@@ -0,0 +1,6 @@
+<leafNode name="disable">
+ <properties>
+ <help>Set interface to Administratively down</help>
+ <valueless/>
+ </properties>
+</leafNode>
diff --git a/interface-definitions/include/interface-enable-proxy-arp.xml.i b/interface-definitions/include/interface-enable-proxy-arp.xml.i
new file mode 100644
index 000000000..14ab08875
--- /dev/null
+++ b/interface-definitions/include/interface-enable-proxy-arp.xml.i
@@ -0,0 +1,6 @@
+<leafNode name="enable-proxy-arp">
+ <properties>
+ <help>Enable proxy-arp on this interface</help>
+ <valueless/>
+ </properties>
+</leafNode>
diff --git a/interface-definitions/include/interface-mac.xml.i b/interface-definitions/include/interface-mac.xml.i
new file mode 100644
index 000000000..7b2456236
--- /dev/null
+++ b/interface-definitions/include/interface-mac.xml.i
@@ -0,0 +1,12 @@
+<leafNode name="mac">
+ <properties>
+ <help>Media Access Control (MAC) address</help>
+ <valueHelp>
+ <format>h:h:h:h:h:h</format>
+ <description>Hardware (MAC) address</description>
+ </valueHelp>
+ <constraint>
+ <validator name="mac-address"/>
+ </constraint>
+ </properties>
+</leafNode>
diff --git a/interface-definitions/include/interface-mtu-1450-9000.xml.i b/interface-definitions/include/interface-mtu-1450-9000.xml.i
new file mode 100644
index 000000000..87296a050
--- /dev/null
+++ b/interface-definitions/include/interface-mtu-1450-9000.xml.i
@@ -0,0 +1,13 @@
+<leafNode name="mtu">
+ <properties>
+ <help>Maximum Transmission Unit (MTU)</help>
+ <valueHelp>
+ <format>1450-9000</format>
+ <description>Maximum Transmission Unit</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 1450-9000"/>
+ </constraint>
+ <constraintErrorMessage>MTU must be between 1450 and 9000</constraintErrorMessage>
+ </properties>
+</leafNode>
diff --git a/interface-definitions/include/interface-mtu-68-9000.xml.i b/interface-definitions/include/interface-mtu-68-9000.xml.i
new file mode 100644
index 000000000..ad11afa80
--- /dev/null
+++ b/interface-definitions/include/interface-mtu-68-9000.xml.i
@@ -0,0 +1,13 @@
+<leafNode name="mtu">
+ <properties>
+ <help>Maximum Transmission Unit (MTU)</help>
+ <valueHelp>
+ <format>68-9000</format>
+ <description>Maximum Transmission Unit</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 68-9000"/>
+ </constraint>
+ <constraintErrorMessage>MTU must be between 68 and 9000</constraintErrorMessage>
+ </properties>
+</leafNode>
diff --git a/interface-definitions/include/interface-proxy-arp-pvlan.xml.i b/interface-definitions/include/interface-proxy-arp-pvlan.xml.i
new file mode 100644
index 000000000..7e72b3800
--- /dev/null
+++ b/interface-definitions/include/interface-proxy-arp-pvlan.xml.i
@@ -0,0 +1,6 @@
+<leafNode name="proxy-arp-pvlan">
+ <properties>
+ <help>Enable private VLAN proxy ARP on this interface</help>
+ <valueless/>
+ </properties>
+</leafNode>
diff --git a/interface-definitions/include/vif-s.xml.i b/interface-definitions/include/vif-s.xml.i
new file mode 100644
index 000000000..772804f53
--- /dev/null
+++ b/interface-definitions/include/vif-s.xml.i
@@ -0,0 +1,56 @@
+<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/address-ipv4-ipv6-dhcp.xml.i>
+ #include <include/interface-description.xml.i>
+ #include <include/dhcp-dhcpv6-options.xml.i>
+ #include <include/interface-disable-link-detect.xml.i>
+ #include <include/interface-disable.xml.i>
+ <leafNode name="ethertype">
+ <properties>
+ <help>Set Ethertype</help>
+ <completionHelp>
+ <list>0x88A8 0x8100</list>
+ </completionHelp>
+ <valueHelp>
+ <format>0x88A8</format>
+ <description>802.1ad</description>
+ </valueHelp>
+ <valueHelp>
+ <format>0x8100</format>
+ <description>802.1q</description>
+ </valueHelp>
+ <constraint>
+ <regex>(0x88A8|0x8100)</regex>
+ </constraint>
+ <constraintErrorMessage>Ethertype must be 0x88A8 or 0x8100</constraintErrorMessage>
+ </properties>
+ </leafNode>
+ #include <include/interface-mac.xml.i>
+ #include <include/interface-mtu-68-9000.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/address-ipv4-ipv6-dhcp.xml.i>
+ #include <include/interface-description.xml.i>
+ #include <include/dhcp-dhcpv6-options.xml.i>
+ #include <include/interface-disable-link-detect.xml.i>
+ #include <include/interface-disable.xml.i>
+ #include <include/interface-mac.xml.i>
+ #include <include/interface-mtu-68-9000.xml.i>
+ </children>
+ </tagNode>
+ </children>
+</tagNode>
diff --git a/interface-definitions/include/vif.xml.i b/interface-definitions/include/vif.xml.i
new file mode 100644
index 000000000..7c8a29a93
--- /dev/null
+++ b/interface-definitions/include/vif.xml.i
@@ -0,0 +1,52 @@
+<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/address-ipv4-ipv6-dhcp.xml.i>
+ #include <include/interface-description.xml.i>
+ #include <include/dhcp-dhcpv6-options.xml.i>
+ #include <include/interface-disable-link-detect.xml.i>
+ #include <include/interface-disable.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>
+ <node name="ip">
+ <children>
+ #include <include/interface-arp-cache-timeout.xml.i>
+ #include <include/interface-enable-proxy-arp.xml.i>
+ </children>
+ </node>
+ #include <include/interface-mac.xml.i>
+ #include <include/interface-mtu-68-9000.xml.i>
+ </children>
+</tagNode>
diff --git a/interface-definitions/intel_qat.xml b/interface-definitions/intel_qat.xml.in
index 5e4d5b190..812484184 100644
--- a/interface-definitions/intel_qat.xml
+++ b/interface-definitions/intel_qat.xml.in
@@ -19,4 +19,3 @@
</children>
</node>
</interfaceDefinition>
-
diff --git a/interface-definitions/interfaces-bonding.xml b/interface-definitions/interfaces-bonding.xml
deleted file mode 100644
index 821dd15fa..000000000
--- a/interface-definitions/interfaces-bonding.xml
+++ /dev/null
@@ -1,693 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
- <node name="interfaces">
- <children>
- <tagNode name="bonding" owner="${vyos_conf_scripts_dir}/interfaces-bonding.py">
- <properties>
- <help>Bonding interface name</help>
- <priority>320</priority>
- <constraint>
- <regex>bond[0-9]+$</regex>
- </constraint>
- <constraintErrorMessage>Bonding interface must be named bondN</constraintErrorMessage>
- <valueHelp>
- <format>bondN</format>
- <description>Bonding interface name</description>
- </valueHelp>
- </properties>
- <children>
- <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-cidr"/>
- <regex>(dhcp|dhcpv6)</regex>
- </constraint>
- <multi/>
- </properties>
- </leafNode>
- <node name="arp-monitor">
- <properties>
- <help>ARP link monitoring parameters</help>
- </properties>
- <children>
- <leafNode name="interval">
- <properties>
- <help>ARP link monitoring interval</help>
- <valueHelp>
- <format>0-4294967295</format>
- <description>Specifies the ARP link monitoring frequency in milliseconds</description>
- </valueHelp>
- <constraint>
- <validator name="numeric" argument="--range 0-4294967295"/>
- </constraint>
- </properties>
- </leafNode>
- <leafNode name="target">
- <properties>
- <help>IP address used for ARP monitoring</help>
- <valueHelp>
- <format>ipv4</format>
- <description>Network Time Protocol (NTP) IPv4 address</description>
- </valueHelp>
- <constraint>
- <validator name="ipv4-address"/>
- </constraint>
- <multi/>
- </properties>
- </leafNode>
- </children>
- </node>
- <leafNode name="description">
- <properties>
- <help>Interface description</help>
- <constraint>
- <regex>^.{1,256}$</regex>
- </constraint>
- <constraintErrorMessage>Interface description too long (limit 256 characters)</constraintErrorMessage>
- </properties>
- </leafNode>
- <node name="dhcp-options">
- <properties>
- <help>DHCP options</help>
- </properties>
- <children>
- <leafNode name="client-id">
- <properties>
- <help>DHCP client identifier</help>
- </properties>
- </leafNode>
- <leafNode name="host-name">
- <properties>
- <help>DHCP client host name (overrides the system host name)</help>
- </properties>
- </leafNode>
- <leafNode name="vendor-class-id">
- <properties>
- <help>DHCP client vendor type</help>
- </properties>
- </leafNode>
- </children>
- </node>
- <node name="dhcpv6-options">
- <properties>
- <help>DHCPv6 options</help>
- <priority>319</priority>
- </properties>
- <children>
- <leafNode name="parameters-only">
- <properties>
- <help>Acquire only config parameters, no address</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="temporary">
- <properties>
- <help>IPv6 "temporary" address</help>
- <valueless/>
- </properties>
- </leafNode>
- </children>
- </node>
- <leafNode name="disable-link-detect">
- <properties>
- <help>Ignore link state changes</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="disable">
- <properties>
- <help>Disable this bridge interface</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="hash-policy">
- <properties>
- <help>Bonding transmit hash policy</help>
- <completionHelp>
- <list>layer2 layer2+3 layer3+4</list>
- </completionHelp>
- <valueHelp>
- <format>layer2</format>
- <description>use MAC addresses to generate the hash (802.3ad, default)</description>
- </valueHelp>
- <valueHelp>
- <format>layer2+3</format>
- <description>combine MAC address and IP address to make hash</description>
- </valueHelp>
- <valueHelp>
- <format>layer3+4</format>
- <description>combine IP address and port to make hash</description>
- </valueHelp>
- <constraint>
- <regex>(layer2\+3|layer3\+4|layer2)</regex>
- </constraint>
- <constraintErrorMessage>hash-policy must be layer2 layer2+3 or layer3+4</constraintErrorMessage>
- </properties>
- </leafNode>
- <node name="ip">
- <children>
- <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>
- </leafNode>
- <leafNode name="enable-proxy-arp">
- <properties>
- <help>Enable proxy-arp on this interface</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="proxy-arp-pvlan">
- <properties>
- <help>Enable private VLAN proxy ARP on this interface</help>
- <valueless/>
- </properties>
- </leafNode>
- </children>
- </node>
- <leafNode name="mac">
- <properties>
- <help>Media Access Control (MAC) address</help>
- <valueHelp>
- <format>h:h:h:h:h:h</format>
- <description>Hardware (MAC) address</description>
- </valueHelp>
- <constraint>
- <validator name="mac-address"/>
- </constraint>
- </properties>
- </leafNode>
- <leafNode name="mode">
- <properties>
- <help>Bonding mode</help>
- <completionHelp>
- <list>802.3ad active-backup broadcast round-robin transmit-load-balance adaptive-load-balance xor-hash</list>
- </completionHelp>
- <valueHelp>
- <format>802.3ad</format>
- <description>IEEE 802.3ad Dynamic link aggregation (Default)</description>
- </valueHelp>
- <valueHelp>
- <format>active-backup</format>
- <description>Fault tolerant: only one slave in the bond is active</description>
- </valueHelp>
- <valueHelp>
- <format>broadcast</format>
- <description>Fault tolerant: transmits everything on all slave interfaces</description>
- </valueHelp>
- <valueHelp>
- <format>round-robin</format>
- <description>Load balance: transmit packets in sequential order</description>
- </valueHelp>
- <valueHelp>
- <format>transmit-load-balance</format>
- <description>Load balance: adapts based on transmit load and speed</description>
- </valueHelp>
- <valueHelp>
- <format>adaptive-load-balance</format>
- <description>Load balance: adapts based on transmit and receive plus ARP</description>
- </valueHelp>
- <valueHelp>
- <format>xor-hash</format>
- <description>Distribute based on MAC address</description>
- </valueHelp>
- <constraint>
- <regex>(802.3ad|active-backup|broadcast|round-robin|transmit-load-balance|adaptive-load-balance|xor-hash)</regex>
- </constraint>
- <constraintErrorMessage>mode must be 802.3ad, active-backup, broadcast, round-robin, transmit-load-balance, adaptive-load-balance, or xor</constraintErrorMessage>
- </properties>
- </leafNode>
- <node name="member">
- <properties>
- <help>Bridge member interfaces</help>
- </properties>
- <children>
- <leafNode name="interface">
- <properties>
- <help>Member interface name</help>
- <completionHelp>
- <script>${vyos_completion_dir}/list_interfaces.py --bondable</script>
- </completionHelp>
- <multi/>
- </properties>
- </leafNode>
- </children>
- </node>
- <leafNode name="mtu">
- <properties>
- <help>Maximum Transmission Unit (MTU)</help>
- <valueHelp>
- <format>68-9000</format>
- <description>Maximum Transmission Unit</description>
- </valueHelp>
- <constraint>
- <validator name="numeric" argument="--range 68-9000"/>
- </constraint>
- <constraintErrorMessage>MTU must be between 68 and 9000</constraintErrorMessage>
- </properties>
- </leafNode>
- <leafNode name="primary">
- <properties>
- <help>Primary device interface</help>
- <completionHelp>
- <script>${vyos_completion_dir}/list_interfaces.py --bondable</script>
- </completionHelp>
- </properties>
- </leafNode>
- <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>
- <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-cidr"/>
- <regex>(dhcp|dhcpv6)</regex>
- </constraint>
- <multi/>
- </properties>
- </leafNode>
- <leafNode name="description">
- <properties>
- <help>Interface description</help>
- <constraint>
- <regex>^.{1,256}$</regex>
- </constraint>
- <constraintErrorMessage>Interface description too long (limit 256 characters)</constraintErrorMessage>
- </properties>
- </leafNode>
- <node name="dhcp-options">
- <properties>
- <help>DHCP options</help>
- </properties>
- <children>
- <leafNode name="client-id">
- <properties>
- <help>DHCP client identifier</help>
- </properties>
- </leafNode>
- <leafNode name="host-name">
- <properties>
- <help>DHCP client host name (overrides the system host name)</help>
- </properties>
- </leafNode>
- <leafNode name="vendor-class-id">
- <properties>
- <help>DHCP client vendor type</help>
- </properties>
- </leafNode>
- </children>
- </node>
- <node name="dhcpv6-options">
- <properties>
- <help>DHCPv6 options</help>
- <priority>319</priority>
- </properties>
- <children>
- <leafNode name="parameters-only">
- <properties>
- <help>Acquire only config parameters, no address</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="temporary">
- <properties>
- <help>IPv6 "temporary" address</help>
- <valueless/>
- </properties>
- </leafNode>
- </children>
- </node>
- <leafNode name="disable-link-detect">
- <properties>
- <help>Ignore link state changes</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="disable">
- <properties>
- <help>Disable this bridge interface</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="ethertype">
- <properties>
- <help>Set Ethertype</help>
- <completionHelp>
- <list>0x88A8 0x8100</list>
- </completionHelp>
- <valueHelp>
- <format>0x88A8</format>
- <description>802.1ad</description>
- </valueHelp>
- <valueHelp>
- <format>0x8100</format>
- <description>802.1q</description>
- </valueHelp>
- <constraint>
- <regex>(0x88A8|0x8100)</regex>
- </constraint>
- <constraintErrorMessage>Ethertype must be 0x88A8 or 0x8100</constraintErrorMessage>
- </properties>
- </leafNode>
- <leafNode name="mac">
- <properties>
- <help>Media Access Control (MAC) address</help>
- <valueHelp>
- <format>h:h:h:h:h:h</format>
- <description>Hardware (MAC) address</description>
- </valueHelp>
- <constraint>
- <validator name="mac-address"/>
- </constraint>
- </properties>
- </leafNode>
- <leafNode name="mtu">
- <properties>
- <help>Maximum Transmission Unit (MTU)</help>
- <valueHelp>
- <format>68-9000</format>
- <description>Maximum Transmission Unit</description>
- </valueHelp>
- <constraint>
- <validator name="numeric" argument="--range 68-9000"/>
- </constraint>
- <constraintErrorMessage>MTU must be between 68 and 9000</constraintErrorMessage>
- </properties>
- </leafNode>
- <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>
- <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-cidr"/>
- <regex>(dhcp|dhcpv6)</regex>
- </constraint>
- <multi/>
- </properties>
- </leafNode>
- <leafNode name="description">
- <properties>
- <help>Interface description</help>
- <constraint>
- <regex>^.{1,256}$</regex>
- </constraint>
- <constraintErrorMessage>Interface description too long (limit 256 characters)</constraintErrorMessage>
- </properties>
- </leafNode>
- <node name="dhcp-options">
- <properties>
- <help>DHCP options</help>
- </properties>
- <children>
- <leafNode name="client-id">
- <properties>
- <help>DHCP client identifier</help>
- </properties>
- </leafNode>
- <leafNode name="host-name">
- <properties>
- <help>DHCP client host name (overrides the system host name)</help>
- </properties>
- </leafNode>
- <leafNode name="vendor-class-id">
- <properties>
- <help>DHCP client vendor type</help>
- </properties>
- </leafNode>
- </children>
- </node>
- <node name="dhcpv6-options">
- <properties>
- <help>DHCPv6 options</help>
- <priority>319</priority>
- </properties>
- <children>
- <leafNode name="parameters-only">
- <properties>
- <help>Acquire only config parameters, no address</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="temporary">
- <properties>
- <help>IPv6 "temporary" address</help>
- <valueless/>
- </properties>
- </leafNode>
- </children>
- </node>
- <leafNode name="disable-link-detect">
- <properties>
- <help>Ignore link state changes</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="disable">
- <properties>
- <help>Disable this bridge interface</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="mac">
- <properties>
- <help>Media Access Control (MAC) address</help>
- <valueHelp>
- <format>h:h:h:h:h:h</format>
- <description>Hardware (MAC) address</description>
- </valueHelp>
- <constraint>
- <validator name="mac-address"/>
- </constraint>
- </properties>
- </leafNode>
- <leafNode name="mtu">
- <properties>
- <help>Maximum Transmission Unit (MTU)</help>
- <valueHelp>
- <format>68-9000</format>
- <description>Maximum Transmission Unit</description>
- </valueHelp>
- <constraint>
- <validator name="numeric" argument="--range 68-9000"/>
- </constraint>
- <constraintErrorMessage>MTU must be between 68 and 9000</constraintErrorMessage>
- </properties>
- </leafNode>
- </children>
- </tagNode>
- </children>
- </tagNode>
- <tagNode name="vif">
- <properties>
- <help>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>
- <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-cidr"/>
- <regex>(dhcp|dhcpv6)</regex>
- </constraint>
- <multi/>
- </properties>
- </leafNode>
- <leafNode name="description">
- <properties>
- <help>Interface description</help>
- <constraint>
- <regex>^.{1,256}$</regex>
- </constraint>
- <constraintErrorMessage>Interface description too long (limit 256 characters)</constraintErrorMessage>
- </properties>
- </leafNode>
- <node name="dhcp-options">
- <properties>
- <help>DHCP options</help>
- </properties>
- <children>
- <leafNode name="client-id">
- <properties>
- <help>DHCP client identifier</help>
- </properties>
- </leafNode>
- <leafNode name="host-name">
- <properties>
- <help>DHCP client host name (overrides the system host name)</help>
- </properties>
- </leafNode>
- <leafNode name="vendor-class-id">
- <properties>
- <help>DHCP client vendor type</help>
- </properties>
- </leafNode>
- </children>
- </node>
- <node name="dhcpv6-options">
- <properties>
- <help>DHCPv6 options</help>
- <priority>319</priority>
- </properties>
- <children>
- <leafNode name="parameters-only">
- <properties>
- <help>Acquire only config parameters, no address</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="temporary">
- <properties>
- <help>IPv6 "temporary" address</help>
- <valueless/>
- </properties>
- </leafNode>
- </children>
- </node>
- <leafNode name="disable-link-detect">
- <properties>
- <help>Ignore link state changes</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="disable">
- <properties>
- <help>Disable this bridge interface</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="mac">
- <properties>
- <help>Media Access Control (MAC) address</help>
- <valueHelp>
- <format>h:h:h:h:h:h</format>
- <description>Hardware (MAC) address</description>
- </valueHelp>
- <constraint>
- <validator name="mac-address"/>
- </constraint>
- </properties>
- </leafNode>
- <leafNode name="mtu">
- <properties>
- <help>Maximum Transmission Unit (MTU)</help>
- <valueHelp>
- <format>68-9000</format>
- <description>Maximum Transmission Unit</description>
- </valueHelp>
- <constraint>
- <validator name="numeric" argument="--range 68-9000"/>
- </constraint>
- <constraintErrorMessage>MTU must be between 68 and 9000</constraintErrorMessage>
- </properties>
- </leafNode>
- </children>
- </tagNode>
- </children>
- </tagNode>
- </children>
- </node>
-</interfaceDefinition>
diff --git a/interface-definitions/interfaces-bonding.xml.in b/interface-definitions/interfaces-bonding.xml.in
new file mode 100644
index 000000000..e6557a967
--- /dev/null
+++ b/interface-definitions/interfaces-bonding.xml.in
@@ -0,0 +1,159 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+ <node name="interfaces">
+ <children>
+ <tagNode name="bonding" owner="${vyos_conf_scripts_dir}/interfaces-bonding.py">
+ <properties>
+ <help>Bonding interface name</help>
+ <priority>320</priority>
+ <constraint>
+ <regex>bond[0-9]+$</regex>
+ </constraint>
+ <constraintErrorMessage>Bonding interface must be named bondN</constraintErrorMessage>
+ <valueHelp>
+ <format>bondN</format>
+ <description>Bonding interface name</description>
+ </valueHelp>
+ </properties>
+ <children>
+ #include <include/address-ipv4-ipv6-dhcp.xml.i>
+ <node name="arp-monitor">
+ <properties>
+ <help>ARP link monitoring parameters</help>
+ </properties>
+ <children>
+ <leafNode name="interval">
+ <properties>
+ <help>ARP link monitoring interval</help>
+ <valueHelp>
+ <format>0-4294967295</format>
+ <description>Specifies the ARP link monitoring frequency in milliseconds</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 0-4294967295"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ <leafNode name="target">
+ <properties>
+ <help>IP address used for ARP monitoring</help>
+ <valueHelp>
+ <format>ipv4</format>
+ <description>Network Time Protocol (NTP) IPv4 address</description>
+ </valueHelp>
+ <constraint>
+ <validator name="ipv4-address"/>
+ </constraint>
+ <multi/>
+ </properties>
+ </leafNode>
+ </children>
+ </node>
+ #include <include/interface-description.xml.i>
+ #include <include/dhcp-dhcpv6-options.xml.i>
+ #include <include/interface-disable-link-detect.xml.i>
+ #include <include/interface-disable.xml.i>
+ <leafNode name="hash-policy">
+ <properties>
+ <help>Bonding transmit hash policy</help>
+ <completionHelp>
+ <list>layer2 layer2+3 layer3+4</list>
+ </completionHelp>
+ <valueHelp>
+ <format>layer2</format>
+ <description>use MAC addresses to generate the hash (802.3ad, default)</description>
+ </valueHelp>
+ <valueHelp>
+ <format>layer2+3</format>
+ <description>combine MAC address and IP address to make hash</description>
+ </valueHelp>
+ <valueHelp>
+ <format>layer3+4</format>
+ <description>combine IP address and port to make hash</description>
+ </valueHelp>
+ <constraint>
+ <regex>(layer2\+3|layer3\+4|layer2)</regex>
+ </constraint>
+ <constraintErrorMessage>hash-policy must be layer2 layer2+3 or layer3+4</constraintErrorMessage>
+ </properties>
+ </leafNode>
+ <node name="ip">
+ <children>
+ #include <include/interface-arp-cache-timeout.xml.i>
+ #include <include/interface-enable-proxy-arp.xml.i>
+ #include <include/interface-proxy-arp-pvlan.xml.i>
+ </children>
+ </node>
+ #include <include/interface-mac.xml.i>
+ <leafNode name="mode">
+ <properties>
+ <help>Bonding mode</help>
+ <completionHelp>
+ <list>802.3ad active-backup broadcast round-robin transmit-load-balance adaptive-load-balance xor-hash</list>
+ </completionHelp>
+ <valueHelp>
+ <format>802.3ad</format>
+ <description>IEEE 802.3ad Dynamic link aggregation (Default)</description>
+ </valueHelp>
+ <valueHelp>
+ <format>active-backup</format>
+ <description>Fault tolerant: only one slave in the bond is active</description>
+ </valueHelp>
+ <valueHelp>
+ <format>broadcast</format>
+ <description>Fault tolerant: transmits everything on all slave interfaces</description>
+ </valueHelp>
+ <valueHelp>
+ <format>round-robin</format>
+ <description>Load balance: transmit packets in sequential order</description>
+ </valueHelp>
+ <valueHelp>
+ <format>transmit-load-balance</format>
+ <description>Load balance: adapts based on transmit load and speed</description>
+ </valueHelp>
+ <valueHelp>
+ <format>adaptive-load-balance</format>
+ <description>Load balance: adapts based on transmit and receive plus ARP</description>
+ </valueHelp>
+ <valueHelp>
+ <format>xor-hash</format>
+ <description>Distribute based on MAC address</description>
+ </valueHelp>
+ <constraint>
+ <regex>(802.3ad|active-backup|broadcast|round-robin|transmit-load-balance|adaptive-load-balance|xor-hash)</regex>
+ </constraint>
+ <constraintErrorMessage>mode must be 802.3ad, active-backup, broadcast, round-robin, transmit-load-balance, adaptive-load-balance, or xor</constraintErrorMessage>
+ </properties>
+ </leafNode>
+ <node name="member">
+ <properties>
+ <help>Bridge member interfaces</help>
+ </properties>
+ <children>
+ <leafNode name="interface">
+ <properties>
+ <help>Member interface name</help>
+ <completionHelp>
+ <script>${vyos_completion_dir}/list_interfaces.py --bondable</script>
+ </completionHelp>
+ <multi/>
+ </properties>
+ </leafNode>
+ </children>
+ </node>
+ #include <include/interface-mtu-68-9000.xml.i>
+ <leafNode name="primary">
+ <properties>
+ <help>Primary device interface</help>
+ <completionHelp>
+ <script>${vyos_completion_dir}/list_interfaces.py --bondable</script>
+ </completionHelp>
+ </properties>
+ </leafNode>
+ #include <include/vif-s.xml.i>
+ #include <include/vif.xml.i>
+ </children>
+ </tagNode>
+ </children>
+ </node>
+</interfaceDefinition>
diff --git a/interface-definitions/interfaces-bridge.xml b/interface-definitions/interfaces-bridge.xml.in
index 40505d7de..a28daeba6 100644
--- a/interface-definitions/interfaces-bridge.xml
+++ b/interface-definitions/interfaces-bridge.xml.in
@@ -16,35 +16,7 @@
</valueHelp>
</properties>
<children>
- <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-cidr"/>
- <regex>(dhcp|dhcpv6)</regex>
- </constraint>
- <multi/>
- </properties>
- </leafNode>
+ #include <include/address-ipv4-ipv6-dhcp.xml.i>
<leafNode name="aging">
<properties>
<help>MAC address aging interval</help>
@@ -61,69 +33,10 @@
</constraint>
</properties>
</leafNode>
- <leafNode name="description">
- <properties>
- <help>Interface description</help>
- <constraint>
- <regex>^.{1,256}$</regex>
- </constraint>
- <constraintErrorMessage>Interface description too long (limit 256 characters)</constraintErrorMessage>
- </properties>
- </leafNode>
- <node name="dhcp-options">
- <properties>
- <help>DHCP options</help>
- </properties>
- <children>
- <leafNode name="client-id">
- <properties>
- <help>DHCP client identifier</help>
- </properties>
- </leafNode>
- <leafNode name="host-name">
- <properties>
- <help>DHCP client host name (overrides the system host name)</help>
- </properties>
- </leafNode>
- <leafNode name="vendor-class-id">
- <properties>
- <help>DHCP client vendor type</help>
- </properties>
- </leafNode>
- </children>
- </node>
- <node name="dhcpv6-options">
- <properties>
- <help>DHCPv6 options</help>
- <priority>319</priority>
- </properties>
- <children>
- <leafNode name="parameters-only">
- <properties>
- <help>Acquire only config parameters, no address</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="temporary">
- <properties>
- <help>IPv6 "temporary" address</help>
- <valueless/>
- </properties>
- </leafNode>
- </children>
- </node>
- <leafNode name="disable-link-detect">
- <properties>
- <help>Ignore link state changes</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="disable">
- <properties>
- <help>Disable this bridge interface</help>
- <valueless/>
- </properties>
- </leafNode>
+ #include <include/interface-description.xml.i>
+ #include <include/dhcp-dhcpv6-options.xml.i>
+ #include <include/interface-disable-link-detect.xml.i>
+ #include <include/interface-disable.xml.i>
<leafNode name="forwarding-delay">
<properties>
<help>Forwarding delay</help>
@@ -165,33 +78,10 @@
</node>
<node name="ip">
<children>
- <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>
- </leafNode>
+ #include <include/interface-arp-cache-timeout.xml.i>
</children>
</node>
- <leafNode name="mac">
- <properties>
- <help>Media Access Control (MAC) address</help>
- <valueHelp>
- <format>h:h:h:h:h:h</format>
- <description>Hardware (MAC) address</description>
- </valueHelp>
- <constraint>
- <validator name="mac-address"/>
- </constraint>
- </properties>
- </leafNode>
+ #include <include/interface-mac.xml.i>
<leafNode name="max-age">
<properties>
<help>Interval at which neighbor bridges are removed</help>
diff --git a/interface-definitions/interfaces-dummy.xml b/interface-definitions/interfaces-dummy.xml
deleted file mode 100644
index 3bc4330e4..000000000
--- a/interface-definitions/interfaces-dummy.xml
+++ /dev/null
@@ -1,55 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
- <node name="interfaces">
- <children>
- <tagNode name="dummy" owner="${vyos_conf_scripts_dir}/interfaces-dummy.py">
- <properties>
- <help>Dummy interface name</help>
- <priority>300</priority>
- <constraint>
- <regex>dum[0-9]+$</regex>
- </constraint>
- <constraintErrorMessage>Dummy interface must be named dumN</constraintErrorMessage>
- <valueHelp>
- <format>dumN</format>
- <description>Dummy interface name</description>
- </valueHelp>
- </properties>
- <children>
- <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>
- <multi/>
- <constraint>
- <validator name="ip-cidr"/>
- </constraint>
- </properties>
- </leafNode>
- <leafNode name="description">
- <properties>
- <help>Interface description</help>
- <constraint>
- <regex>^.{1,256}$</regex>
- </constraint>
- <constraintErrorMessage>Interface description too long (limit 256 characters)</constraintErrorMessage>
- </properties>
- </leafNode>
- <leafNode name="disable">
- <properties>
- <help>Disable interface</help>
- <valueless/>
- </properties>
- </leafNode>
- </children>
- </tagNode>
- </children>
- </node>
-</interfaceDefinition>
diff --git a/interface-definitions/interfaces-dummy.xml.in b/interface-definitions/interfaces-dummy.xml.in
new file mode 100644
index 000000000..445f6b2d4
--- /dev/null
+++ b/interface-definitions/interfaces-dummy.xml.in
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+ <node name="interfaces">
+ <children>
+ <tagNode name="dummy" owner="${vyos_conf_scripts_dir}/interfaces-dummy.py">
+ <properties>
+ <help>Dummy interface name</help>
+ <priority>300</priority>
+ <constraint>
+ <regex>dum[0-9]+$</regex>
+ </constraint>
+ <constraintErrorMessage>Dummy interface must be named dumN</constraintErrorMessage>
+ <valueHelp>
+ <format>dumN</format>
+ <description>Dummy interface name</description>
+ </valueHelp>
+ </properties>
+ <children>
+ #include <include/address-ipv4-ipv6.xml.i>
+ #include <include/interface-description.xml.i>
+ #include <include/interface-disable.xml.i>
+ </children>
+ </tagNode>
+ </children>
+ </node>
+</interfaceDefinition>
diff --git a/interface-definitions/interfaces-ethernet.xml b/interface-definitions/interfaces-ethernet.xml
deleted file mode 100644
index f51bb3d87..000000000
--- a/interface-definitions/interfaces-ethernet.xml
+++ /dev/null
@@ -1,904 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
- <node name="interfaces">
- <children>
- <tagNode name="ethernet" owner="${vyos_conf_scripts_dir}/interfaces-ethernet.py">
- <properties>
- <help>Ethernet interface name</help>
- <priority>318</priority>
- <constraint>
- <regex>((eth|lan)[0-9]+|(eno|ens|enp|enx).+)$</regex>
- </constraint>
- <constraintErrorMessage>Invalid Ethernet interface name</constraintErrorMessage>
- <valueHelp>
- <format>ethN</format>
- <description>Ethernet interface name</description>
- </valueHelp>
- <valueHelp>
- <format>en[ospx]N</format>
- <description>Ethernet interface name</description>
- </valueHelp>
- </properties>
- <children>
- <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-cidr"/>
- <regex>(dhcp|dhcpv6)</regex>
- </constraint>
- <multi/>
- </properties>
- </leafNode>
- <leafNode name="description">
- <properties>
- <help>Interface description</help>
- <constraint>
- <regex>^.{1,256}$</regex>
- </constraint>
- <constraintErrorMessage>Interface description too long (limit 256 characters)</constraintErrorMessage>
- </properties>
- </leafNode>
- <node name="dhcp-options">
- <properties>
- <help>DHCP options</help>
- </properties>
- <children>
- <leafNode name="client-id">
- <properties>
- <help>DHCP client identifier</help>
- </properties>
- </leafNode>
- <leafNode name="host-name">
- <properties>
- <help>DHCP client host name (overrides system host name)</help>
- </properties>
- </leafNode>
- <leafNode name="vendor-class-id">
- <properties>
- <help>DHCP client vendor type</help>
- </properties>
- </leafNode>
- </children>
- </node>
- <node name="dhcpv6-options">
- <properties>
- <help>DHCPv6 options</help>
- <priority>319</priority>
- </properties>
- <children>
- <leafNode name="parameters-only">
- <properties>
- <help>Acquire only config parameters, no address</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="temporary">
- <properties>
- <help>IPv6 "temporary" address</help>
- <valueless/>
- </properties>
- </leafNode>
- </children>
- </node>
- <leafNode name="disable-flow-control">
- <properties>
- <help>Disable Ethernet flow control (pause frames)</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="disable-link-detect">
- <properties>
- <help>Ignore link state changes</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="disable">
- <properties>
- <help>Disable this bridge interface</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="duplex">
- <properties>
- <help>Duplex mode</help>
- <completionHelp>
- <list>auto half full</list>
- </completionHelp>
- <valueHelp>
- <format>auto</format>
- <description>Auto negotiation (default)</description>
- </valueHelp>
- <valueHelp>
- <format>half</format>
- <description>Half duplex</description>
- </valueHelp>
- <valueHelp>
- <format>full</format>
- <description>Full duplex</description>
- </valueHelp>
- <constraint>
- <regex>(auto|half|full)</regex>
- </constraint>
- <constraintErrorMessage>duplex must be auto, half or full</constraintErrorMessage>
- </properties>
- </leafNode>
- <leafNode name="hw-id">
- <properties>
- <help>Media Access Control (MAC) address</help>
- <valueHelp>
- <format>h:h:h:h:h:h</format>
- <description>Hardware (MAC) address</description>
- </valueHelp>
- <constraint>
- <validator name="mac-address"/>
- </constraint>
- </properties>
- </leafNode>
- <node name="ip">
- <children>
- <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>
- </leafNode>
- <leafNode name="enable-proxy-arp">
- <properties>
- <help>Enable proxy-arp on this interface</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="proxy-arp-pvlan">
- <properties>
- <help>Enable private VLAN proxy ARP on this interface</help>
- <valueless/>
- </properties>
- </leafNode>
- </children>
- </node>
- <leafNode name="mac">
- <properties>
- <help>Media Access Control (MAC) address</help>
- <valueHelp>
- <format>h:h:h:h:h:h</format>
- <description>Hardware (MAC) address</description>
- </valueHelp>
- <constraint>
- <validator name="mac-address"/>
- </constraint>
- </properties>
- </leafNode>
- <leafNode name="mtu">
- <properties>
- <help>Maximum Transmission Unit (MTU)</help>
- <valueHelp>
- <format>68-9000</format>
- <description>Maximum Transmission Unit</description>
- </valueHelp>
- <constraint>
- <validator name="numeric" argument="--range 68-9000"/>
- </constraint>
- <constraintErrorMessage>MTU must be between 68 and 9000</constraintErrorMessage>
- </properties>
- </leafNode>
- <node name="offload-options">
- <properties>
- <help>Configurable offload options</help>
- </properties>
- <children>
- <leafNode name="generic-receive">
- <properties>
- <help>Configure GRO (generic receive offload)</help>
- <completionHelp>
- <list>on off</list>
- </completionHelp>
- <valueHelp>
- <format>on</format>
- <description>Enable GRO (generic receive offload)</description>
- </valueHelp>
- <valueHelp>
- <format>off</format>
- <description>Disable GRO (generic receive offload)</description>
- </valueHelp>
- <constraint>
- <regex>(on|off)</regex>
- </constraint>
- <constraintErrorMessage>Must be either 'on' or 'off'</constraintErrorMessage>
- </properties>
- </leafNode>
- <leafNode name="generic-segmentation">
- <properties>
- <help>Configure GSO (generic segmentation offload)</help>
- <completionHelp>
- <list>on off</list>
- </completionHelp>
- <valueHelp>
- <format>on</format>
- <description>Enable GSO (generic segmentation offload)</description>
- </valueHelp>
- <valueHelp>
- <format>off</format>
- <description>Disable GSO (generic segmentation offload)</description>
- </valueHelp>
- <constraint>
- <regex>(on|off)</regex>
- </constraint>
- <constraintErrorMessage>Must be either 'on' or 'off'</constraintErrorMessage>
- </properties>
- </leafNode>
- <leafNode name="scatter-gather">
- <properties>
- <help>Configure scatter-gather option</help>
- <completionHelp>
- <list>on off</list>
- </completionHelp>
- <valueHelp>
- <format>on</format>
- <description>Enable scatter-gather</description>
- </valueHelp>
- <valueHelp>
- <format>off</format>
- <description>Disable scatter-gather</description>
- </valueHelp>
- <constraint>
- <regex>(on|off)</regex>
- </constraint>
- <constraintErrorMessage>Must be either 'on' or 'off'</constraintErrorMessage>
- </properties>
- </leafNode>
- <leafNode name="tcp-segmentation">
- <properties>
- <help>Configure TSO (TCP segmentation offloading)</help>
- <completionHelp>
- <list>on off</list>
- </completionHelp>
- <valueHelp>
- <format>on</format>
- <description>Enable TSO (TCP segmentation offloading)</description>
- </valueHelp>
- <valueHelp>
- <format>off</format>
- <description>Disable TSO (TCP segmentation offloading)</description>
- </valueHelp>
- <constraint>
- <regex>(on|off)</regex>
- </constraint>
- <constraintErrorMessage>Must be either 'on' or 'off'</constraintErrorMessage>
- </properties>
- </leafNode>
- <leafNode name="udp-fragmentation">
- <properties>
- <help>Configure UDP fragmentation offloading</help>
- <completionHelp>
- <list>on off</list>
- </completionHelp>
- <valueHelp>
- <format>on</format>
- <description>Enable UDP fragmentation offloading</description>
- </valueHelp>
- <valueHelp>
- <format>off</format>
- <description>Disable UDP fragmentation offloading</description>
- </valueHelp>
- <constraint>
- <regex>(on|off)</regex>
- </constraint>
- <constraintErrorMessage>Must be either 'on' or 'off'</constraintErrorMessage>
- </properties>
- </leafNode>
- </children>
- </node>
- <leafNode name="smp-affinity">
- <properties>
- <help>CPU interrupt affinity mask</help>
- <completionHelp>
- <list>auto 10 100 1000 2500 5000 10000</list>
- </completionHelp>
- <valueHelp>
- <format>auto</format>
- <description>Auto negotiation (default)</description>
- </valueHelp>
- <valueHelp>
- <format>hex</format>
- <description>Bitmask representing CPUs that this NIC will interrupt</description>
- </valueHelp>
- <valueHelp>
- <format>hex,hex</format>
- <description>Bitmasks representing CPUs for interrupt and receive processing</description>
- </valueHelp>
- <constraint>
- <regex>(auto)</regex>
- <regex>[0-9a-f]+(|,[0-9a-f]+)$</regex>
- </constraint>
- <constraintErrorMessage>IRQ affinity mask must be hex value or auto</constraintErrorMessage>
- </properties>
- </leafNode>
- <leafNode name="speed">
- <properties>
- <help>Link speed</help>
- <completionHelp>
- <list>auto 10 100 1000 2500 5000 10000 25000 40000 50000 100000</list>
- </completionHelp>
- <valueHelp>
- <format>auto</format>
- <description>Auto negotiation (default)</description>
- </valueHelp>
- <valueHelp>
- <format>10</format>
- <description>10 Mbit/sec</description>
- </valueHelp>
- <valueHelp>
- <format>100</format>
- <description>100 Mbit/sec</description>
- </valueHelp>
- <valueHelp>
- <format>1000</format>
- <description>1 Gbit/sec</description>
- </valueHelp>
- <valueHelp>
- <format>2500</format>
- <description>2.5 Gbit/sec</description>
- </valueHelp>
- <valueHelp>
- <format>5000</format>
- <description>5 Gbit/sec</description>
- </valueHelp>
- <valueHelp>
- <format>10000</format>
- <description>10 Gbit/sec</description>
- </valueHelp>
- <valueHelp>
- <format>25000</format>
- <description>25 Gbit/sec</description>
- </valueHelp>
- <valueHelp>
- <format>40000</format>
- <description>40 Gbit/sec</description>
- </valueHelp>
- <valueHelp>
- <format>50000</format>
- <description>50 Gbit/sec</description>
- </valueHelp>
- <valueHelp>
- <format>100000</format>
- <description>100 Gbit/sec</description>
- </valueHelp>
- <constraint>
- <regex>(auto|10|100|1000|2500|5000|10000|25000|40000|50000|100000)</regex>
- </constraint>
- <constraintErrorMessage>Speed must be auto, 10, 100, 1000, 2500, 5000, 10000, 25000, 40000, 50000 or 100000</constraintErrorMessage>
- </properties>
- </leafNode>
- <tagNode name="vif-s">
- <properties>
- <help>QinQ TAG-S Virtual Local Area Network (VLAN) ID</help>
- <valueHelp>
- <format>0-4094</format>
- <description>QinQ TAG-S 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>
- <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-cidr"/>
- <regex>(dhcp|dhcpv6)</regex>
- </constraint>
- <multi/>
- </properties>
- </leafNode>
- <leafNode name="description">
- <properties>
- <help>Interface description</help>
- <constraint>
- <regex>^.{1,256}$</regex>
- </constraint>
- <constraintErrorMessage>Interface description too long (limit 256 characters)</constraintErrorMessage>
- </properties>
- </leafNode>
- <node name="dhcp-options">
- <properties>
- <help>DHCP options</help>
- </properties>
- <children>
- <leafNode name="client-id">
- <properties>
- <help>DHCP client identifier</help>
- </properties>
- </leafNode>
- <leafNode name="host-name">
- <properties>
- <help>DHCP client host name (overrides system host name)</help>
- </properties>
- </leafNode>
- <leafNode name="vendor-class-id">
- <properties>
- <help>DHCP client vendor type</help>
- </properties>
- </leafNode>
- </children>
- </node>
- <node name="dhcpv6-options">
- <properties>
- <help>DHCPv6 options</help>
- <priority>319</priority>
- </properties>
- <children>
- <leafNode name="parameters-only">
- <properties>
- <help>Acquire only config parameters, no address</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="temporary">
- <properties>
- <help>IPv6 "temporary" address</help>
- <valueless/>
- </properties>
- </leafNode>
- </children>
- </node>
- <leafNode name="disable-link-detect">
- <properties>
- <help>Ignore link state changes</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="disable">
- <properties>
- <help>Disable this bridge interface</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="ethertype">
- <properties>
- <help>Set Ethertype</help>
- <completionHelp>
- <list>0x88A8 0x8100</list>
- </completionHelp>
- <valueHelp>
- <format>0x88A8</format>
- <description>802.1ad</description>
- </valueHelp>
- <valueHelp>
- <format>0x8100</format>
- <description>802.1q</description>
- </valueHelp>
- <constraint>
- <regex>(0x88A8|0x8100)</regex>
- </constraint>
- <constraintErrorMessage>Ethertype must be 0x88A8 or 0x8100</constraintErrorMessage>
- </properties>
- </leafNode>
- <node name="ip">
- <children>
- <leafNode name="enable-proxy-arp">
- <properties>
- <help>Enable proxy-arp on this interface</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="proxy-arp-pvlan">
- <properties>
- <help>Enable private VLAN proxy ARP on this interface</help>
- <valueless/>
- </properties>
- </leafNode>
- </children>
- </node>
- <leafNode name="mac">
- <properties>
- <help>Media Access Control (MAC) address</help>
- <valueHelp>
- <format>h:h:h:h:h:h</format>
- <description>Hardware (MAC) address</description>
- </valueHelp>
- <constraint>
- <validator name="mac-address"/>
- </constraint>
- </properties>
- </leafNode>
- <leafNode name="mtu">
- <properties>
- <help>Maximum Transmission Unit (MTU)</help>
- <valueHelp>
- <format>68-9000</format>
- <description>Maximum Transmission Unit</description>
- </valueHelp>
- <constraint>
- <validator name="numeric" argument="--range 68-9000"/>
- </constraint>
- <constraintErrorMessage>MTU must be between 68 and 9000</constraintErrorMessage>
- </properties>
- </leafNode>
- <tagNode name="vif-c">
- <properties>
- <help>QinQ TAG-C Virtual Local Area Network (VLAN) ID</help>
- <valueHelp>
- <format>0-4094</format>
- <description>QinQ TAG-C 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>
- <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-cidr"/>
- <regex>(dhcp|dhcpv6)</regex>
- </constraint>
- <multi/>
- </properties>
- </leafNode>
- <leafNode name="description">
- <properties>
- <help>Interface description</help>
- <constraint>
- <regex>^.{1,256}$</regex>
- </constraint>
- <constraintErrorMessage>Interface description too long (limit 256 characters)</constraintErrorMessage>
- </properties>
- </leafNode>
- <node name="dhcp-options">
- <properties>
- <help>DHCP options</help>
- </properties>
- <children>
- <leafNode name="client-id">
- <properties>
- <help>DHCP client identifier</help>
- </properties>
- </leafNode>
- <leafNode name="host-name">
- <properties>
- <help>DHCP client host name (overrides system host name)</help>
- </properties>
- </leafNode>
- <leafNode name="vendor-class-id">
- <properties>
- <help>DHCP client vendor type</help>
- </properties>
- </leafNode>
- </children>
- </node>
- <node name="dhcpv6-options">
- <properties>
- <help>DHCPv6 options</help>
- <priority>319</priority>
- </properties>
- <children>
- <leafNode name="parameters-only">
- <properties>
- <help>Acquire only config parameters, no address</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="temporary">
- <properties>
- <help>IPv6 "temporary" address</help>
- <valueless/>
- </properties>
- </leafNode>
- </children>
- </node>
- <leafNode name="disable-link-detect">
- <properties>
- <help>Ignore link state changes</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="disable">
- <properties>
- <help>Disable this bridge interface</help>
- <valueless/>
- </properties>
- </leafNode>
- <node name="ip">
- <children>
- <leafNode name="enable-proxy-arp">
- <properties>
- <help>Enable proxy-arp on this interface</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="proxy-arp-pvlan">
- <properties>
- <help>Enable private VLAN proxy ARP on this interface</help>
- <valueless/>
- </properties>
- </leafNode>
- </children>
- </node>
- <leafNode name="mac">
- <properties>
- <help>Media Access Control (MAC) address</help>
- <valueHelp>
- <format>h:h:h:h:h:h</format>
- <description>Hardware (MAC) address</description>
- </valueHelp>
- <constraint>
- <validator name="mac-address"/>
- </constraint>
- </properties>
- </leafNode>
- <leafNode name="mtu">
- <properties>
- <help>Maximum Transmission Unit (MTU)</help>
- <valueHelp>
- <format>68-9000</format>
- <description>Maximum Transmission Unit</description>
- </valueHelp>
- <constraint>
- <validator name="numeric" argument="--range 68-9000"/>
- </constraint>
- <constraintErrorMessage>MTU must be between 68 and 9000</constraintErrorMessage>
- </properties>
- </leafNode>
- </children>
- </tagNode>
- </children>
- </tagNode>
- <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>
- <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-cidr"/>
- <regex>(dhcp|dhcpv6)</regex>
- </constraint>
- <multi/>
- </properties>
- </leafNode>
- <leafNode name="description">
- <properties>
- <help>Interface description</help>
- <constraint>
- <regex>^.{1,256}$</regex>
- </constraint>
- <constraintErrorMessage>Interface description too long (limit 256 characters)</constraintErrorMessage>
- </properties>
- </leafNode>
- <node name="dhcp-options">
- <properties>
- <help>DHCP options</help>
- </properties>
- <children>
- <leafNode name="client-id">
- <properties>
- <help>DHCP client identifier</help>
- </properties>
- </leafNode>
- <leafNode name="host-name">
- <properties>
- <help>DHCP client host name (overrides system host name)</help>
- </properties>
- </leafNode>
- <leafNode name="vendor-class-id">
- <properties>
- <help>DHCP client vendor type</help>
- </properties>
- </leafNode>
- </children>
- </node>
- <node name="dhcpv6-options">
- <properties>
- <help>DHCPv6 options</help>
- <priority>319</priority>
- </properties>
- <children>
- <leafNode name="parameters-only">
- <properties>
- <help>Acquire only config parameters, no address</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="temporary">
- <properties>
- <help>IPv6 "temporary" address</help>
- <valueless/>
- </properties>
- </leafNode>
- </children>
- </node>
- <leafNode name="disable-link-detect">
- <properties>
- <help>Ignore link state changes</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="disable">
- <properties>
- <help>Disable this bridge interface</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="egress-qos">
- <properties>
- <help>VLAN egress 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>
- <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>
- <node name="ip">
- <children>
- <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>
- </leafNode>
- <leafNode name="enable-proxy-arp">
- <properties>
- <help>Enable proxy-arp on this interface</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="proxy-arp-pvlan">
- <properties>
- <help>Enable private VLAN proxy ARP on this interface</help>
- <valueless/>
- </properties>
- </leafNode>
- </children>
- </node>
- <leafNode name="mac">
- <properties>
- <help>Media Access Control (MAC) address</help>
- <valueHelp>
- <format>h:h:h:h:h:h</format>
- <description>Hardware (MAC) address</description>
- </valueHelp>
- <constraint>
- <validator name="mac-address"/>
- </constraint>
- </properties>
- </leafNode>
- <leafNode name="mtu">
- <properties>
- <help>Maximum Transmission Unit (MTU)</help>
- <valueHelp>
- <format>68-9000</format>
- <description>Maximum Transmission Unit</description>
- </valueHelp>
- <constraint>
- <validator name="numeric" argument="--range 68-9000"/>
- </constraint>
- <constraintErrorMessage>MTU must be between 68 and 9000</constraintErrorMessage>
- </properties>
- </leafNode>
- </children>
- </tagNode>
- </children>
- </tagNode>
- </children>
- </node>
-</interfaceDefinition>
diff --git a/interface-definitions/interfaces-ethernet.xml.in b/interface-definitions/interfaces-ethernet.xml.in
new file mode 100644
index 000000000..7fa20ac18
--- /dev/null
+++ b/interface-definitions/interfaces-ethernet.xml.in
@@ -0,0 +1,273 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+ <node name="interfaces">
+ <children>
+ <tagNode name="ethernet" owner="${vyos_conf_scripts_dir}/interfaces-ethernet.py">
+ <properties>
+ <help>Ethernet interface name</help>
+ <priority>318</priority>
+ <constraint>
+ <regex>((eth|lan)[0-9]+|(eno|ens|enp|enx).+)$</regex>
+ </constraint>
+ <constraintErrorMessage>Invalid Ethernet interface name</constraintErrorMessage>
+ <valueHelp>
+ <format>ethN</format>
+ <description>Ethernet interface name</description>
+ </valueHelp>
+ <valueHelp>
+ <format>en[ospx]N</format>
+ <description>Ethernet interface name</description>
+ </valueHelp>
+ </properties>
+ <children>
+ #include <include/address-ipv4-ipv6-dhcp.xml.i>
+ #include <include/interface-description.xml.i>
+ #include <include/dhcp-dhcpv6-options.xml.i>
+ <leafNode name="disable-flow-control">
+ <properties>
+ <help>Disable Ethernet flow control (pause frames)</help>
+ <valueless/>
+ </properties>
+ </leafNode>
+ #include <include/interface-disable-link-detect.xml.i>
+ #include <include/interface-disable.xml.i>
+ <leafNode name="duplex">
+ <properties>
+ <help>Duplex mode</help>
+ <completionHelp>
+ <list>auto half full</list>
+ </completionHelp>
+ <valueHelp>
+ <format>auto</format>
+ <description>Auto negotiation (default)</description>
+ </valueHelp>
+ <valueHelp>
+ <format>half</format>
+ <description>Half duplex</description>
+ </valueHelp>
+ <valueHelp>
+ <format>full</format>
+ <description>Full duplex</description>
+ </valueHelp>
+ <constraint>
+ <regex>(auto|half|full)</regex>
+ </constraint>
+ <constraintErrorMessage>duplex must be auto, half or full</constraintErrorMessage>
+ </properties>
+ </leafNode>
+ <leafNode name="hw-id">
+ <properties>
+ <help>Media Access Control (MAC) address</help>
+ <valueHelp>
+ <format>h:h:h:h:h:h</format>
+ <description>Hardware (MAC) address</description>
+ </valueHelp>
+ <constraint>
+ <validator name="mac-address"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ <node name="ip">
+ <children>
+ #include <include/interface-arp-cache-timeout.xml.i>
+ #include <include/interface-enable-proxy-arp.xml.i>
+ #include <include/interface-proxy-arp-pvlan.xml.i>
+ </children>
+ </node>
+ #include <include/interface-mac.xml.i>
+ #include <include/interface-mtu-68-9000.xml.i>
+ <node name="offload-options">
+ <properties>
+ <help>Configurable offload options</help>
+ </properties>
+ <children>
+ <leafNode name="generic-receive">
+ <properties>
+ <help>Configure GRO (generic receive offload)</help>
+ <completionHelp>
+ <list>on off</list>
+ </completionHelp>
+ <valueHelp>
+ <format>on</format>
+ <description>Enable GRO (generic receive offload)</description>
+ </valueHelp>
+ <valueHelp>
+ <format>off</format>
+ <description>Disable GRO (generic receive offload)</description>
+ </valueHelp>
+ <constraint>
+ <regex>(on|off)</regex>
+ </constraint>
+ <constraintErrorMessage>Must be either 'on' or 'off'</constraintErrorMessage>
+ </properties>
+ </leafNode>
+ <leafNode name="generic-segmentation">
+ <properties>
+ <help>Configure GSO (generic segmentation offload)</help>
+ <completionHelp>
+ <list>on off</list>
+ </completionHelp>
+ <valueHelp>
+ <format>on</format>
+ <description>Enable GSO (generic segmentation offload)</description>
+ </valueHelp>
+ <valueHelp>
+ <format>off</format>
+ <description>Disable GSO (generic segmentation offload)</description>
+ </valueHelp>
+ <constraint>
+ <regex>(on|off)</regex>
+ </constraint>
+ <constraintErrorMessage>Must be either 'on' or 'off'</constraintErrorMessage>
+ </properties>
+ </leafNode>
+ <leafNode name="scatter-gather">
+ <properties>
+ <help>Configure scatter-gather option</help>
+ <completionHelp>
+ <list>on off</list>
+ </completionHelp>
+ <valueHelp>
+ <format>on</format>
+ <description>Enable scatter-gather</description>
+ </valueHelp>
+ <valueHelp>
+ <format>off</format>
+ <description>Disable scatter-gather</description>
+ </valueHelp>
+ <constraint>
+ <regex>(on|off)</regex>
+ </constraint>
+ <constraintErrorMessage>Must be either 'on' or 'off'</constraintErrorMessage>
+ </properties>
+ </leafNode>
+ <leafNode name="tcp-segmentation">
+ <properties>
+ <help>Configure TSO (TCP segmentation offloading)</help>
+ <completionHelp>
+ <list>on off</list>
+ </completionHelp>
+ <valueHelp>
+ <format>on</format>
+ <description>Enable TSO (TCP segmentation offloading)</description>
+ </valueHelp>
+ <valueHelp>
+ <format>off</format>
+ <description>Disable TSO (TCP segmentation offloading)</description>
+ </valueHelp>
+ <constraint>
+ <regex>(on|off)</regex>
+ </constraint>
+ <constraintErrorMessage>Must be either 'on' or 'off'</constraintErrorMessage>
+ </properties>
+ </leafNode>
+ <leafNode name="udp-fragmentation">
+ <properties>
+ <help>Configure UDP fragmentation offloading</help>
+ <completionHelp>
+ <list>on off</list>
+ </completionHelp>
+ <valueHelp>
+ <format>on</format>
+ <description>Enable UDP fragmentation offloading</description>
+ </valueHelp>
+ <valueHelp>
+ <format>off</format>
+ <description>Disable UDP fragmentation offloading</description>
+ </valueHelp>
+ <constraint>
+ <regex>(on|off)</regex>
+ </constraint>
+ <constraintErrorMessage>Must be either 'on' or 'off'</constraintErrorMessage>
+ </properties>
+ </leafNode>
+ </children>
+ </node>
+ <leafNode name="smp-affinity">
+ <properties>
+ <help>CPU interrupt affinity mask</help>
+ <completionHelp>
+ <list>auto 10 100 1000 2500 5000 10000</list>
+ </completionHelp>
+ <valueHelp>
+ <format>auto</format>
+ <description>Auto negotiation (default)</description>
+ </valueHelp>
+ <valueHelp>
+ <format>hex</format>
+ <description>Bitmask representing CPUs that this NIC will interrupt</description>
+ </valueHelp>
+ <valueHelp>
+ <format>hex,hex</format>
+ <description>Bitmasks representing CPUs for interrupt and receive processing</description>
+ </valueHelp>
+ <constraint>
+ <regex>(auto)</regex>
+ <regex>[0-9a-f]+(|,[0-9a-f]+)$</regex>
+ </constraint>
+ <constraintErrorMessage>IRQ affinity mask must be hex value or auto</constraintErrorMessage>
+ </properties>
+ </leafNode>
+ <leafNode name="speed">
+ <properties>
+ <help>Link speed</help>
+ <completionHelp>
+ <list>auto 10 100 1000 2500 5000 10000 25000 40000 50000 100000</list>
+ </completionHelp>
+ <valueHelp>
+ <format>auto</format>
+ <description>Auto negotiation (default)</description>
+ </valueHelp>
+ <valueHelp>
+ <format>10</format>
+ <description>10 Mbit/sec</description>
+ </valueHelp>
+ <valueHelp>
+ <format>100</format>
+ <description>100 Mbit/sec</description>
+ </valueHelp>
+ <valueHelp>
+ <format>1000</format>
+ <description>1 Gbit/sec</description>
+ </valueHelp>
+ <valueHelp>
+ <format>2500</format>
+ <description>2.5 Gbit/sec</description>
+ </valueHelp>
+ <valueHelp>
+ <format>5000</format>
+ <description>5 Gbit/sec</description>
+ </valueHelp>
+ <valueHelp>
+ <format>10000</format>
+ <description>10 Gbit/sec</description>
+ </valueHelp>
+ <valueHelp>
+ <format>25000</format>
+ <description>25 Gbit/sec</description>
+ </valueHelp>
+ <valueHelp>
+ <format>40000</format>
+ <description>40 Gbit/sec</description>
+ </valueHelp>
+ <valueHelp>
+ <format>50000</format>
+ <description>50 Gbit/sec</description>
+ </valueHelp>
+ <valueHelp>
+ <format>100000</format>
+ <description>100 Gbit/sec</description>
+ </valueHelp>
+ <constraint>
+ <regex>(auto|10|100|1000|2500|5000|10000|25000|40000|50000|100000)</regex>
+ </constraint>
+ <constraintErrorMessage>Speed must be auto, 10, 100, 1000, 2500, 5000, 10000, 25000, 40000, 50000 or 100000</constraintErrorMessage>
+ </properties>
+ </leafNode>
+ #include <include/vif-s.xml.i>
+ #include <include/vif.xml.i>
+ </children>
+ </tagNode>
+ </children>
+ </node>
+</interfaceDefinition>
diff --git a/interface-definitions/interfaces-geneve.xml b/interface-definitions/interfaces-geneve.xml
deleted file mode 100644
index e65ce6826..000000000
--- a/interface-definitions/interfaces-geneve.xml
+++ /dev/null
@@ -1,118 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
- <node name="interfaces">
- <children>
- <tagNode name="geneve" owner="${vyos_conf_scripts_dir}/interfaces-geneve.py">
- <properties>
- <help>Generic Network Virtualization Encapsulation (GENEVE)</help>
- <priority>460</priority>
- <constraint>
- <regex>gnv[0-9]+$</regex>
- </constraint>
- <constraintErrorMessage>GENEVE interface must be named gnvN</constraintErrorMessage>
- <valueHelp>
- <format>gnvN</format>
- <description>GENEVE interface name</description>
- </valueHelp>
- </properties>
- <children>
- <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>
- <multi/>
- <constraint>
- <validator name="ip-cidr"/>
- </constraint>
- </properties>
- </leafNode>
- <leafNode name="description">
- <properties>
- <help>Interface description</help>
- <constraint>
- <regex>^.{1,256}$</regex>
- </constraint>
- <constraintErrorMessage>Interface description too long (limit 256 characters)</constraintErrorMessage>
- </properties>
- </leafNode>
- <leafNode name="disable">
- <properties>
- <help>Disable interface</help>
- <valueless/>
- </properties>
- </leafNode>
- <node name="ip">
- <properties>
- <help>IPv4 routing parameters</help>
- </properties>
- <children>
- <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>
- </leafNode>
- <leafNode name="enable-proxy-arp">
- <properties>
- <help>Enable proxy-arp on this interface</help>
- <valueless/>
- </properties>
- </leafNode>
- </children>
- </node>
- <leafNode name="mtu">
- <properties>
- <help>Maximum Transmission Unit (MTU)</help>
- <valueHelp>
- <format>1450-9000</format>
- <description>Maximum Transmission Unit</description>
- </valueHelp>
- <constraint>
- <validator name="numeric" argument="--range 1500-9000"/>
- </constraint>
- <constraintErrorMessage>MTU must be between 1500 and 9000</constraintErrorMessage>
- </properties>
- </leafNode>
- <leafNode name="remote">
- <properties>
- <help>Remote address of GENEVE tunnel</help>
- <valueHelp>
- <format>ipv4</format>
- <description>Remote address of GENEVE tunnel</description>
- </valueHelp>
- <constraint>
- <validator name="ipv4-address"/>
- </constraint>
- </properties>
- </leafNode>
- <leafNode name="vni">
- <properties>
- <help>Virtual Network Identifier</help>
- <valueHelp>
- <format>0-16777214</format>
- <description>GENEVE virtual network identifier</description>
- </valueHelp>
- <constraint>
- <validator name="numeric" argument="--range 0-16777214"/>
- </constraint>
- </properties>
- </leafNode>
- </children>
- </tagNode>
- </children>
- </node>
-</interfaceDefinition>
diff --git a/interface-definitions/interfaces-geneve.xml.in b/interface-definitions/interfaces-geneve.xml.in
new file mode 100644
index 000000000..0a866143e
--- /dev/null
+++ b/interface-definitions/interfaces-geneve.xml.in
@@ -0,0 +1,60 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+ <node name="interfaces">
+ <children>
+ <tagNode name="geneve" owner="${vyos_conf_scripts_dir}/interfaces-geneve.py">
+ <properties>
+ <help>Generic Network Virtualization Encapsulation (GENEVE)</help>
+ <priority>460</priority>
+ <constraint>
+ <regex>gnv[0-9]+$</regex>
+ </constraint>
+ <constraintErrorMessage>GENEVE interface must be named gnvN</constraintErrorMessage>
+ <valueHelp>
+ <format>gnvN</format>
+ <description>GENEVE interface name</description>
+ </valueHelp>
+ </properties>
+ <children>
+ #include <include/address-ipv4-ipv6.xml.i>
+ #include <include/interface-description.xml.i>
+ #include <include/interface-disable.xml.i>
+ <node name="ip">
+ <properties>
+ <help>IPv4 routing parameters</help>
+ </properties>
+ <children>
+ #include <include/interface-arp-cache-timeout.xml.i>
+ #include <include/interface-enable-proxy-arp.xml.i>
+ </children>
+ </node>
+ #include <include/interface-mtu-1450-9000.xml.i>
+ <leafNode name="remote">
+ <properties>
+ <help>Remote address of GENEVE tunnel</help>
+ <valueHelp>
+ <format>ipv4</format>
+ <description>Remote address of GENEVE tunnel</description>
+ </valueHelp>
+ <constraint>
+ <validator name="ipv4-address"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ <leafNode name="vni">
+ <properties>
+ <help>Virtual Network Identifier</help>
+ <valueHelp>
+ <format>0-16777214</format>
+ <description>GENEVE virtual network identifier</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 0-16777214"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ </children>
+ </tagNode>
+ </children>
+ </node>
+</interfaceDefinition>
diff --git a/interface-definitions/interfaces-loopback.xml b/interface-definitions/interfaces-loopback.xml
deleted file mode 100644
index 0f003bc64..000000000
--- a/interface-definitions/interfaces-loopback.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0"?>
-<interfaceDefinition>
- <node name="interfaces">
- <children>
- <tagNode name="loopback" owner="${vyos_conf_scripts_dir}/interfaces-loopback.py">
- <properties>
- <help>Loopback interface</help>
- <priority>300</priority>
- <constraint>
- <regex>lo$</regex>
- </constraint>
- <constraintErrorMessage>Loopback interface must be named lo</constraintErrorMessage>
- <valueHelp>
- <format>lo</format>
- <description>Loopback interface</description>
- </valueHelp>
- </properties>
- <children>
- <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>
- <multi/>
- </properties>
- </leafNode>
- <leafNode name="description">
- <properties>
- <help>Interface description</help>
- <constraint>
- <regex>^.{1,256}$</regex>
- </constraint>
- <constraintErrorMessage>Interface description too long (limit 256 characters)</constraintErrorMessage>
- </properties>
- </leafNode>
- </children>
- </tagNode>
- </children>
- </node>
-</interfaceDefinition>
diff --git a/interface-definitions/interfaces-loopback.xml.in b/interface-definitions/interfaces-loopback.xml.in
new file mode 100644
index 000000000..007a0f189
--- /dev/null
+++ b/interface-definitions/interfaces-loopback.xml.in
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<interfaceDefinition>
+ <node name="interfaces">
+ <children>
+ <tagNode name="loopback" owner="${vyos_conf_scripts_dir}/interfaces-loopback.py">
+ <properties>
+ <help>Loopback interface</help>
+ <priority>300</priority>
+ <constraint>
+ <regex>lo$</regex>
+ </constraint>
+ <constraintErrorMessage>Loopback interface must be named lo</constraintErrorMessage>
+ <valueHelp>
+ <format>lo</format>
+ <description>Loopback interface</description>
+ </valueHelp>
+ </properties>
+ <children>
+ #include <include/address-ipv4-ipv6.xml.i>
+ #include <include/interface-description.xml.i>
+ </children>
+ </tagNode>
+ </children>
+ </node>
+</interfaceDefinition>
diff --git a/interface-definitions/interfaces-openvpn.xml b/interface-definitions/interfaces-openvpn.xml.in
index 2c2556f45..638e9048b 100644
--- a/interface-definitions/interfaces-openvpn.xml
+++ b/interface-definitions/interfaces-openvpn.xml.in
@@ -33,11 +33,7 @@
</leafNode>
</children>
</node>
- <leafNode name="description">
- <properties>
- <help>Description</help>
- </properties>
- </leafNode>
+ #include <include/interface-description.xml.i>
<leafNode name="device-type">
<properties>
<help>OpenVPN interface device-type</help>
@@ -57,12 +53,7 @@
</constraint>
</properties>
</leafNode>
- <leafNode name="disable">
- <properties>
- <help>Disable interface</help>
- <valueless/>
- </properties>
- </leafNode>
+ #include <include/interface-disable.xml.i>
<node name="encryption">
<properties>
<help>Data Encryption settings</help>
@@ -610,7 +601,7 @@
</leafNode>
<leafNode name="key-file">
<properties>
- <help>File containing this host's private key</help>
+ <help>Private key for this host</help>
<valueHelp>
<format>file</format>
<description>File in /config/auth directory</description>
@@ -645,7 +636,7 @@
</leafNode>
<leafNode name="role">
<properties>
- <help>File containing this host's private key</help>
+ <help>Private key for this host</help>
<completionHelp>
<list>active passive</list>
</completionHelp>
diff --git a/interface-definitions/interfaces-vxlan.xml b/interface-definitions/interfaces-vxlan.xml.in
index f93711741..f6b5cadac 100644
--- a/interface-definitions/interfaces-vxlan.xml
+++ b/interface-definitions/interfaces-vxlan.xml.in
@@ -16,38 +16,9 @@
</valueHelp>
</properties>
<children>
- <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>
- <multi/>
- <constraint>
- <validator name="ip-cidr"/>
- </constraint>
- </properties>
- </leafNode>
- <leafNode name="description">
- <properties>
- <help>Interface description</help>
- <constraint>
- <regex>^.{1,256}$</regex>
- </constraint>
- <constraintErrorMessage>Interface description too long (limit 256 characters)</constraintErrorMessage>
- </properties>
- </leafNode>
- <leafNode name="disable">
- <properties>
- <help>Disable interface</help>
- <valueless/>
- </properties>
- </leafNode>
+ #include <include/address-ipv4-ipv6.xml.i>
+ #include <include/interface-description.xml.i>
+ #include <include/interface-disable.xml.i>
<leafNode name="group">
<properties>
<help>Multicast group address for VXLAN interface</help>
@@ -62,25 +33,8 @@
</leafNode>
<node name="ip">
<children>
- <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>
- </leafNode>
- <leafNode name="enable-proxy-arp">
- <properties>
- <help>Enable proxy-arp on this interface</help>
- <valueless/>
- </properties>
- </leafNode>
+ #include <include/interface-arp-cache-timeout.xml.i>
+ #include <include/interface-enable-proxy-arp.xml.i>
</children>
</node>
<leafNode name="link">
@@ -95,19 +49,7 @@
</completionHelp>
</properties>
</leafNode>
- <leafNode name="mtu">
- <properties>
- <help>Maximum Transmission Unit (MTU)</help>
- <valueHelp>
- <format>1450-9000</format>
- <description>Maximum Transmission Unit</description>
- </valueHelp>
- <constraint>
- <validator name="numeric" argument="--range 1450-9000"/>
- </constraint>
- <constraintErrorMessage>MTU must be between 1450 and 9000</constraintErrorMessage>
- </properties>
- </leafNode>
+ #include <include/interface-mtu-1450-9000.xml.i>
<leafNode name="remote">
<properties>
<help>Remote address of VXLAN tunnel</help>
diff --git a/interface-definitions/interfaces-wireguard.xml b/interface-definitions/interfaces-wireguard.xml.in
index 0c32a3bc1..6be0292a1 100644
--- a/interface-definitions/interfaces-wireguard.xml
+++ b/interface-definitions/interfaces-wireguard.xml.in
@@ -17,38 +17,9 @@
</valueHelp>
</properties>
<children>
- <leafNode name="address">
- <properties>
- <help>IP address</help>
- <constraint>
- <validator name="ip-cidr"/>
- </constraint>
- <valueHelp>
- <format>ipv4net</format>
- <description>IPv4 address and prefix length</description>
- </valueHelp>
- <valueHelp>
- <format>ipv6net</format>
- <description>IPv6 address and prefix length</description>
- </valueHelp>
- <multi/>
- </properties>
- </leafNode>
- <leafNode name="description">
- <properties>
- <help>description</help>
- <constraint>
- <regex>^.{1,100}$</regex>
- </constraint>
- <constraintErrorMessage>interface description is too long (limit 100 characters)</constraintErrorMessage>
- </properties>
- </leafNode>
- <leafNode name="disable">
- <properties>
- <help>disables interface</help>
- <valueless/>
- </properties>
- </leafNode>
+ #include <include/address-ipv4-ipv6.xml.i>
+ #include <include/interface-description.xml.i>
+ #include <include/interface-disable.xml.i>
<leafNode name="port">
<properties>
<help>Local port number to accept connections</help>
diff --git a/interface-definitions/interfaces-wireless.xml b/interface-definitions/interfaces-wireless.xml.in
index 6bc49dddb..53c448930 100644
--- a/interface-definitions/interfaces-wireless.xml
+++ b/interface-definitions/interfaces-wireless.xml.in
@@ -16,35 +16,7 @@
</valueHelp>
</properties>
<children>
- <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-cidr"/>
- <regex>(dhcp|dhcpv6)</regex>
- </constraint>
- <multi/>
- </properties>
- </leafNode>
+ #include <include/address-ipv4-ipv6-dhcp.xml.i>
<node name="capabilities">
<properties>
<help>HT and VHT capabilities for your card</help>
@@ -473,74 +445,15 @@
</constraint>
</properties>
</leafNode>
- <leafNode name="description">
- <properties>
- <help>Interface description</help>
- <constraint>
- <regex>.{1,256}$</regex>
- </constraint>
- <constraintErrorMessage>Interface description too long (limit 256 characters)</constraintErrorMessage>
- </properties>
- </leafNode>
- <node name="dhcp-options">
- <properties>
- <help>DHCP options</help>
- </properties>
- <children>
- <leafNode name="client-id">
- <properties>
- <help>DHCP client identifier</help>
- </properties>
- </leafNode>
- <leafNode name="host-name">
- <properties>
- <help>DHCP client host name (overrides system host name)</help>
- </properties>
- </leafNode>
- <leafNode name="vendor-class-id">
- <properties>
- <help>DHCP client vendor type</help>
- </properties>
- </leafNode>
- </children>
- </node>
- <node name="dhcpv6-options">
- <properties>
- <help>DHCPv6 options</help>
- <priority>319</priority>
- </properties>
- <children>
- <leafNode name="parameters-only">
- <properties>
- <help>Acquire only config parameters, no address</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="temporary">
- <properties>
- <help>IPv6 "temporary" address</help>
- <valueless/>
- </properties>
- </leafNode>
- </children>
- </node>
+ #include <include/interface-description.xml.i>
+ #include <include/dhcp-dhcpv6-options.xml.i>
<leafNode name="disable-broadcast-ssid">
<properties>
<help>Disable broadcast of SSID from access-point</help>
</properties>
</leafNode>
- <leafNode name="disable-link-detect">
- <properties>
- <help>Ignore link state changes</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="disable">
- <properties>
- <help>Disable this bridge interface</help>
- <valueless/>
- </properties>
- </leafNode>
+ #include <include/interface-disable-link-detect.xml.i>
+ #include <include/interface-disable.xml.i>
<leafNode name="expunge-failing-stations">
<properties>
<help>Disassociate stations based on excessive transmission failures</help>
@@ -565,18 +478,7 @@
<valueless/>
</properties>
</leafNode>
- <leafNode name="mac">
- <properties>
- <help>Media Access Control (MAC) address</help>
- <valueHelp>
- <format>h:h:h:h:h:h</format>
- <description>Hardware (MAC) address</description>
- </valueHelp>
- <constraint>
- <validator name="mac-address"/>
- </constraint>
- </properties>
- </leafNode>
+ #include <include/interface-mac.xml.i>
<leafNode name="max-stations">
<properties>
<help>Maximum number of wireless radio stations. Excess stations will be rejected upon authentication request.</help>
@@ -843,98 +745,7 @@
<constraintErrorMessage>Type must be access-point, station or monitor</constraintErrorMessage>
</properties>
</leafNode>
- <tagNode name="vif">
- <properties>
- <help>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>
- <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-cidr"/>
- <regex>(dhcp|dhcpv6)</regex>
- </constraint>
- <multi/>
- </properties>
- </leafNode>
- <leafNode name="description">
- <properties>
- <help>Interface description</help>
- <constraint>
- <regex>^.{1,256}$</regex>
- </constraint>
- <constraintErrorMessage>Interface description too long (limit 256 characters)</constraintErrorMessage>
- </properties>
- </leafNode>
- <node name="dhcpv6-options">
- <properties>
- <help>DHCPv6 options</help>
- </properties>
- <children>
- <leafNode name="parameters-only">
- <properties>
- <help>Acquire only config parameters, no address</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="temporary">
- <properties>
- <help>IPv6 "temporary" address</help>
- <valueless/>
- </properties>
- </leafNode>
- </children>
- </node>
- <leafNode name="disable-link-detect">
- <properties>
- <help>Ignore link state changes</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="disable">
- <properties>
- <help>Disable this bridge interface</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="mac">
- <properties>
- <help>Media Access Control (MAC) address</help>
- <valueHelp>
- <format>h:h:h:h:h:h</format>
- <description>Hardware (MAC) address</description>
- </valueHelp>
- <constraint>
- <validator name="mac-address"/>
- </constraint>
- </properties>
- </leafNode>
- </children>
- </tagNode>
+ #include <include/vif.xml.i>
</children>
</tagNode>
</children>
diff --git a/interface-definitions/ipoe-server.xml b/interface-definitions/ipoe-server.xml.in
index 48f3e0fd9..5fee02614 100644
--- a/interface-definitions/ipoe-server.xml
+++ b/interface-definitions/ipoe-server.xml.in
@@ -289,7 +289,7 @@
</leafNode>
<leafNode name="fail-time">
<properties>
- <help>If server doesn't responds mark it as unavailable for this amount of time in seconds</help>
+ <help>If server does not respond, mark it unavailable for this time (seconds)</help>
</properties>
</leafNode>
</children>
diff --git a/interface-definitions/ipsec-settings.xml b/interface-definitions/ipsec-settings.xml.in
index bc54baa27..bc54baa27 100644
--- a/interface-definitions/ipsec-settings.xml
+++ b/interface-definitions/ipsec-settings.xml.in
diff --git a/interface-definitions/l2tp-server.xml b/interface-definitions/l2tp-server.xml.in
index e76b92b23..4e3a49b24 100644
--- a/interface-definitions/l2tp-server.xml
+++ b/interface-definitions/l2tp-server.xml.in
@@ -359,7 +359,7 @@
</valueHelp>
<valueHelp>
<format>prefer</format>
- <description>ask client for mppe, if it rejects don't fail</description>
+ <description>Ask client for mppe, if it rejects do not fail</description>
</valueHelp>
<valueHelp>
<format>require</format>
@@ -471,7 +471,7 @@
</leafNode>
<leafNode name="fail-time">
<properties>
- <help>If server doesn't responds mark it as unavailable for this amount of time in seconds</help>
+ <help>If server doesn not responds mark it unavailable for this time (seconds)</help>
</properties>
</leafNode>
</children>
diff --git a/interface-definitions/mdns-repeater.xml b/interface-definitions/mdns-repeater.xml.in
index a59321294..a59321294 100644
--- a/interface-definitions/mdns-repeater.xml
+++ b/interface-definitions/mdns-repeater.xml.in
diff --git a/interface-definitions/ntp.xml b/interface-definitions/ntp.xml.in
index 945345898..945345898 100644
--- a/interface-definitions/ntp.xml
+++ b/interface-definitions/ntp.xml.in
diff --git a/interface-definitions/pppoe-server.xml b/interface-definitions/pppoe-server.xml.in
index c2feef65b..6e99c2fd7 100644
--- a/interface-definitions/pppoe-server.xml
+++ b/interface-definitions/pppoe-server.xml.in
@@ -28,7 +28,7 @@
<regex>^[a-zA-Z0-9]{1,100}</regex>
</constraint>
<constraintErrorMessage>access-concentrator name limited to alphanumerical characters only (max. 100)</constraintErrorMessage>
- </properties>
+ </properties>
</leafNode>
<node name="authentication">
<properties>
@@ -127,7 +127,7 @@
</leafNode>
<leafNode name="fail-time">
<properties>
- <help>If server doesn't responds mark it as unavailable for this amount of time in seconds</help>
+ <help>If server does not responds mark it as unavailable for this amount of time in seconds</help>
</properties>
</leafNode>
</children>
@@ -293,7 +293,7 @@
</properties>
</leafNode>
</children>
- </node>
+ </node>
<node name="dnsv6-servers">
<properties>
<help>IPv6 Domain Name Service (DNS) server</help>
@@ -481,7 +481,7 @@
</leafNode>
<leafNode name="prefer">
<properties>
- <help>Ask client for MPPE, if it rejects don't fail</help>
+ <help>Ask client for MPPE, if it rejects do not fail</help>
<valueless />
</properties>
</leafNode>
@@ -526,7 +526,7 @@
<constraintErrorMessage>invalid value</constraintErrorMessage>
<valueHelp>
<format>deny</format>
- <description>Don't negotiate IPv4</description>
+ <description>Do not negotiate IPv4</description>
</valueHelp>
<valueHelp>
<format>allow</format>
@@ -534,7 +534,7 @@
</valueHelp>
<valueHelp>
<format>prefer</format>
- <description>Ask client for IPv4 negotiation, don't fail if it rejects</description>
+ <description>Ask client for IPv4 negotiation, do not fail if it rejects</description>
</valueHelp>
<valueHelp>
<format>require</format>
@@ -551,7 +551,7 @@
<constraintErrorMessage>invalid value</constraintErrorMessage>
<valueHelp>
<format>deny</format>
- <description>Don't negotiate IPv6</description>
+ <description>Do not negotiate IPv6</description>
</valueHelp>
<valueHelp>
<format>allow</format>
@@ -559,7 +559,7 @@
</valueHelp>
<valueHelp>
<format>prefer</format>
- <description>Ask client for IPv6 negotiation, don't fail if it rejects</description>
+ <description>Ask client for IPv6 negotiation, do not fail if it rejects</description>
</valueHelp>
<valueHelp>
<format>require</format>
@@ -603,8 +603,8 @@
</leafNode>
<leafNode name="ipv6-accept-peer-intf-id">
<properties>
- <help>Accept peer's interface identifier</help>
- <valueless />
+ <help>Accept peer interface identifier</help>
+ <valueless />
</properties>
</leafNode>
</children>
diff --git a/interface-definitions/pptp-server.xml b/interface-definitions/pptp-server.xml.in
index 5d16f8b9f..3b4ea4f17 100644
--- a/interface-definitions/pptp-server.xml
+++ b/interface-definitions/pptp-server.xml.in
@@ -58,7 +58,7 @@
</properties>
</leafNode>
</children>
- </node>
+ </node>
<node name="wins-servers">
<properties>
<help>Windows Internet Name Service (WINS) server settings</help>
@@ -148,7 +148,7 @@
</valueHelp>
<valueHelp>
<format>prefer</format>
- <description>ask client for mppe, if it rejects don't fail</description>
+ <description>ask client for mppe, if it rejects do not fail</description>
</valueHelp>
<valueHelp>
<format>require</format>
@@ -236,7 +236,7 @@
</leafNode>
<leafNode name="fail-time">
<properties>
- <help>If server doesn't responds mark it as unavailable for this amount of time in seconds</help>
+ <help>If server does not responds mark it as unavailable for this time (seconds)</help>
</properties>
</leafNode>
</children>
diff --git a/interface-definitions/protocols-bfd.xml b/interface-definitions/protocols-bfd.xml.in
index 62e2c87b9..62e2c87b9 100644
--- a/interface-definitions/protocols-bfd.xml
+++ b/interface-definitions/protocols-bfd.xml.in
diff --git a/interface-definitions/snmp.xml b/interface-definitions/snmp.xml.in
index bdfbd4ab6..bdfbd4ab6 100644
--- a/interface-definitions/snmp.xml
+++ b/interface-definitions/snmp.xml.in
diff --git a/interface-definitions/ssh.xml b/interface-definitions/ssh.xml.in
index c0ce976d6..8dea94d05 100644
--- a/interface-definitions/ssh.xml
+++ b/interface-definitions/ssh.xml.in
@@ -83,7 +83,7 @@
</leafNode>
<leafNode name="disable-host-validation">
<properties>
- <help>Don't validate the remote host name with DNS</help>
+ <help>Disable IP Address to Hostname lookup</help>
<valueless/>
</properties>
</leafNode>
@@ -171,7 +171,7 @@
<properties>
<help>how often send keep alives in seconds</help>
<constraint>
- <validator name="numeric" argument="--range 1-65535"/>
+ <validator name="numeric" argument="--range 1-65535"/>
</constraint>
</properties>
</leafNode>
diff --git a/interface-definitions/sstp.xml b/interface-definitions/sstp.xml.in
index d944baaad..290b45a98 100644
--- a/interface-definitions/sstp.xml
+++ b/interface-definitions/sstp.xml.in
@@ -134,7 +134,7 @@
</leafNode>
<leafNode name="fail-time">
<properties>
- <help>If server doesn't responds mark it as unavailable for this amount of time in seconds</help>
+ <help>If server does not responds mark it as unavailable for this time (seconds)</help>
</properties>
</leafNode>
</children>
diff --git a/interface-definitions/system-proxy.xml b/interface-definitions/system-proxy.xml.in
index f43702fc8..4b21139a6 100644
--- a/interface-definitions/system-proxy.xml
+++ b/interface-definitions/system-proxy.xml.in
@@ -11,7 +11,7 @@
<properties>
<help>Proxy URL</help>
<constraint>
- <regex>^http://[a-z0-9\.]+$</regex>
+ <regex>http://[a-z0-9\.]+$</regex>
</constraint>
</properties>
</leafNode>
diff --git a/interface-definitions/system-syslog.xml b/interface-definitions/system-syslog.xml.in
index 8f4b105c8..cce79a4c2 100644
--- a/interface-definitions/system-syslog.xml
+++ b/interface-definitions/system-syslog.xml.in
@@ -10,7 +10,7 @@
<children>
<tagNode name="user">
<properties>
- <help>Logging to specific user's terminal</help>
+ <help>Logging to specific terminal of given user</help>
<constraint>
<regex>^[a-z_][a-z0-9_-]{1,31}[$]?</regex>
</constraint>
@@ -213,7 +213,7 @@
<constraint>
<regex>(auth|authpriv|cron|daemon|kern|lpr|mail|mark|news|protocols|security|syslog|user|uucp|local0|local1|local2|local3|local4|local5|local6|local7|all)</regex>
</constraint>
- <constraintErrorMessage>Invalid facility type</constraintErrorMessage>
+ <constraintErrorMessage>Invalid facility type</constraintErrorMessage>
<valueHelp>
<format>all</format>
<description>All facilities excluding "mark"</description>
@@ -574,7 +574,7 @@
<help>time interval how often a mark message is being sent in seconds (default: 1200)</help>
<constraint>
<validator name="numeric" argument="--positive"/>
- </constraint>
+ </constraint>
</properties>
</leafNode>
</children>
diff --git a/interface-definitions/tftp-server.xml b/interface-definitions/tftp-server.xml.in
index 2874b034c..2874b034c 100644
--- a/interface-definitions/tftp-server.xml
+++ b/interface-definitions/tftp-server.xml.in
diff --git a/interface-definitions/vrrp.xml b/interface-definitions/vrrp.xml.in
index 2884ef613..2884ef613 100644
--- a/interface-definitions/vrrp.xml
+++ b/interface-definitions/vrrp.xml.in
diff --git a/python/vyos/config.py b/python/vyos/config.py
index 892dcbff7..1a0da3e54 100644
--- a/python/vyos/config.py
+++ b/python/vyos/config.py
@@ -107,7 +107,7 @@ class Config(object):
# Session config ("active") only exists in conf mode.
# In op mode, we'll just use the same running config for both active and session configs.
if self.in_session():
- session_config_text = self._run([self._cli_shell_api, '--show-working-only', '--show-show-defaults', 'showConfig'])
+ session_config_text = self._run([self._cli_shell_api, '--show-working-only', '--show-show-defaults', '--show-ignore-edit', 'showConfig'])
else:
session_config_text = running_config_text
@@ -194,7 +194,8 @@ class Config(object):
else:
# libvyosconfig exists() works only for _nodes_, not _values_
# libvyattacfg one also worked for values, so we emulate that case here
- path = re.split(r'\s+', path)
+ if isinstance(path, str):
+ path = re.split(r'\s*', path)
path_without_value = path[:-1]
path_str = " ".join(path_without_value)
try:
diff --git a/src/op_mode/powerctrl.py b/src/op_mode/powerctrl.py
index 8de25d752..a6188ec74 100755
--- a/src/op_mode/powerctrl.py
+++ b/src/op_mode/powerctrl.py
@@ -27,7 +27,10 @@ from vyos.util import ask_yes_no
def parse_time(s):
try:
- return datetime.strptime(s, "%H:%M").time()
+ if re.match(r'^\d{1,2}$', s):
+ return datetime.strptime(s, "%M").time()
+ else:
+ return datetime.strptime(s, "%H:%M").time()
except ValueError:
return None