summaryrefslogtreecommitdiff
path: root/interface-definitions/include
diff options
context:
space:
mode:
Diffstat (limited to 'interface-definitions/include')
-rw-r--r--interface-definitions/include/accel-ppp/auth-mode.xml.i2
-rw-r--r--interface-definitions/include/accel-ppp/idle-timeout.xml.i15
-rw-r--r--interface-definitions/include/accel-ppp/max-concurrent-sessions.xml.i2
-rw-r--r--interface-definitions/include/accel-ppp/radius-additions.xml.i11
-rw-r--r--interface-definitions/include/accel-ppp/thread-count.xml.i27
-rw-r--r--interface-definitions/include/auth-psk-secret.xml.i2
-rw-r--r--interface-definitions/include/bgp/bmp-monitor-afi-policy.xml.i6
-rw-r--r--interface-definitions/include/bgp/neighbor-afi-link-state.xml.i8
-rw-r--r--interface-definitions/include/bgp/neighbor-bfd.xml.i19
-rw-r--r--interface-definitions/include/bgp/neighbor-local-role.xml.i2
-rw-r--r--interface-definitions/include/bgp/protocol-common-config.xml.i73
-rw-r--r--interface-definitions/include/bgp/remote-as.xml.i8
-rw-r--r--interface-definitions/include/bgp/solo.xml.i8
-rw-r--r--interface-definitions/include/constraint/interface-name-with-wildcard.xml.i3
-rw-r--r--interface-definitions/include/constraint/vrf.xml.i2
-rw-r--r--interface-definitions/include/dhcp-interface-multi.xml.i22
-rw-r--r--interface-definitions/include/dhcp-interface-properties.xml.i13
-rw-r--r--interface-definitions/include/dhcp-interface.xml.i14
-rw-r--r--interface-definitions/include/dhcp/ddns-dns-server.xml.i19
-rw-r--r--interface-definitions/include/dhcp/ddns-settings.xml.i172
-rw-r--r--interface-definitions/include/dhcp/dhcp-server-common-config.xml.i393
-rw-r--r--interface-definitions/include/dhcp/dhcpv6-server-common-config.xml.i268
-rw-r--r--interface-definitions/include/dhcp/log-level.xml.i34
-rw-r--r--interface-definitions/include/dhcp/option-v4.xml.i24
-rw-r--r--interface-definitions/include/dhcp/option-v6.xml.i23
-rw-r--r--interface-definitions/include/dhcp/ping-check.xml.i8
-rw-r--r--interface-definitions/include/dhcp/subnet-id.xml.i14
-rw-r--r--interface-definitions/include/failover/common-failover.xml.i105
-rw-r--r--interface-definitions/include/failover/protocol-common-config.xml.i35
-rw-r--r--interface-definitions/include/firewall/common-rule-ipv4-raw.xml.i16
-rw-r--r--interface-definitions/include/firewall/common-rule-ipv4.xml.i16
-rw-r--r--interface-definitions/include/firewall/common-rule-ipv6.xml.i4
-rw-r--r--interface-definitions/include/firewall/disable-conntrack.xml.i8
-rw-r--r--interface-definitions/include/firewall/domain-group.xml.i10
-rw-r--r--interface-definitions/include/firewall/geoip.xml.i7
-rw-r--r--interface-definitions/include/firewall/global-options.xml.i102
-rw-r--r--interface-definitions/include/firewall/icmpv6.xml.i12
-rw-r--r--interface-definitions/include/firewall/ipv4-hook-forward.xml.i1
-rw-r--r--interface-definitions/include/firewall/ipv4-hook-input.xml.i1
-rw-r--r--interface-definitions/include/firewall/ipv4-hook-output.xml.i1
-rw-r--r--interface-definitions/include/firewall/ipv6-hook-forward.xml.i1
-rw-r--r--interface-definitions/include/firewall/ipv6-hook-input.xml.i1
-rw-r--r--interface-definitions/include/firewall/ipv6-hook-output.xml.i1
-rw-r--r--interface-definitions/include/firewall/match-ether-type.xml.i2
-rw-r--r--interface-definitions/include/firewall/port-group.xml.i10
-rw-r--r--interface-definitions/include/firewall/source-destination-group-inet.xml.i11
-rw-r--r--interface-definitions/include/firewall/source-destination-group-ipv4.xml.i18
-rw-r--r--interface-definitions/include/firewall/source-destination-group-ipv6.xml.i20
-rw-r--r--interface-definitions/include/firewall/source-destination-group.xml.i42
-rw-r--r--interface-definitions/include/generic-password.xml.i4
-rw-r--r--interface-definitions/include/haproxy/listen-address.xml.i30
-rw-r--r--interface-definitions/include/haproxy/logging.xml.i132
-rw-r--r--interface-definitions/include/haproxy/rule-backend.xml.i22
-rw-r--r--interface-definitions/include/haproxy/rule-frontend.xml.i28
-rw-r--r--interface-definitions/include/haproxy/rule-match-domain.xml.i21
-rw-r--r--interface-definitions/include/interface/address-ipv4-ipv6-dhcp.xml.i2
-rw-r--r--interface-definitions/include/interface/address-ipv4-ipv6.xml.i2
-rw-r--r--interface-definitions/include/interface/arp-cache-timeout.xml.i2
-rw-r--r--interface-definitions/include/interface/dhcpv6-options.xml.i19
-rw-r--r--interface-definitions/include/interface/ipv6-address-interface-identifier.xml.i15
-rw-r--r--interface-definitions/include/interface/ipv6-address.xml.i12
-rw-r--r--interface-definitions/include/interface/ipv6-dup-addr-detect-transmits.xml.i2
-rw-r--r--interface-definitions/include/interface/ipv6-options-with-nd.xml.i9
-rw-r--r--interface-definitions/include/interface/ipv6-options.xml.i11
-rw-r--r--interface-definitions/include/interface/vif-s.xml.i2
-rw-r--r--interface-definitions/include/interface/vif.xml.i1
-rw-r--r--interface-definitions/include/ipsec/childless.xml.i29
-rw-r--r--interface-definitions/include/ipsec/ppk.xml.i24
-rw-r--r--interface-definitions/include/isis/exclude-interface.xml.i10
-rw-r--r--interface-definitions/include/isis/frr-maxmetric.xml.i14
-rw-r--r--interface-definitions/include/isis/node-protection.xml.i15
-rw-r--r--interface-definitions/include/isis/protocol-common-config.xml.i195
-rw-r--r--interface-definitions/include/isis/remote_lfa_tunnel.xml.i15
-rw-r--r--interface-definitions/include/nat-rule.xml.i14
-rw-r--r--interface-definitions/include/nat64/protocol.xml.i2
-rw-r--r--interface-definitions/include/ospf/authentication.xml.i6
-rw-r--r--interface-definitions/include/ospf/default-information.xml.i2
-rw-r--r--interface-definitions/include/ospf/protocol-common-config.xml.i5
-rw-r--r--interface-definitions/include/policy/route-ipv4.xml.i14
-rw-r--r--interface-definitions/include/policy/route-ipv6.xml.i196
-rw-r--r--interface-definitions/include/rip/timers.xml.i2
-rw-r--r--interface-definitions/include/rpki/protocol-common-config.xml.i87
-rw-r--r--interface-definitions/include/segment-routing/algorithm.xml.i20
-rw-r--r--interface-definitions/include/source-interface-broadcast.xml.i14
-rw-r--r--interface-definitions/include/source-interface-ethernet.xml.i2
-rw-r--r--interface-definitions/include/static/static-route.xml.i2
-rw-r--r--interface-definitions/include/stunnel/protocol-value-cifs.xml.i2
-rw-r--r--interface-definitions/include/system-ip-protocol.xml.i14
-rw-r--r--interface-definitions/include/system-ipv6-protocol.xml.i12
-rw-r--r--interface-definitions/include/unformat_log2_page_size.xml.i20
-rw-r--r--interface-definitions/include/unformat_memory_size.xml.i22
-rw-r--r--interface-definitions/include/version/conntrack-version.xml.i2
-rw-r--r--interface-definitions/include/version/container-version.xml.i2
-rw-r--r--interface-definitions/include/version/firewall-version.xml.i2
-rw-r--r--interface-definitions/include/version/flow-accounting-version.xml.i2
-rw-r--r--interface-definitions/include/version/ids-version.xml.i2
-rw-r--r--interface-definitions/include/version/interfaces-version.xml.i2
-rw-r--r--interface-definitions/include/version/ipsec-version.xml.i2
-rw-r--r--interface-definitions/include/version/openvpn-version.xml.i2
-rw-r--r--interface-definitions/include/version/pppoe-server-version.xml.i2
-rw-r--r--interface-definitions/include/version/reverseproxy-version.xml.i2
-rw-r--r--interface-definitions/include/version/ssh-version.xml.i2
-rw-r--r--interface-definitions/include/version/system-version.xml.i2
-rw-r--r--interface-definitions/include/version/vpp-version.xml.i3
-rw-r--r--interface-definitions/include/version/vrf-version.xml.i2
-rw-r--r--interface-definitions/include/vpp/acl_common_interface_ip_rule.xml.i25
-rw-r--r--interface-definitions/include/vpp/acl_port_range.xml.i19
-rw-r--r--interface-definitions/include/vpp/acl_prefix.xml.i20
-rw-r--r--interface-definitions/include/vpp/acl_tcp_flags.xml.i41
-rw-r--r--interface-definitions/include/vpp/iface_rx_mode.xml.i25
-rw-r--r--interface-definitions/include/vpp/nat_address_range.xml.i20
-rw-r--r--interface-definitions/include/vpp/nat_interface.xml.i11
-rw-r--r--interface-definitions/include/vpp/nat_protocol.xml.i30
-rw-r--r--interface-definitions/include/vpp/netlink.xml.i45
-rw-r--r--interface-definitions/include/vpp/queue_size.xml.i44
-rw-r--r--interface-definitions/include/vpp/vif.xml.i21
-rw-r--r--interface-definitions/include/vrrp/garp.xml.i4
117 files changed, 2530 insertions, 472 deletions
diff --git a/interface-definitions/include/accel-ppp/auth-mode.xml.i b/interface-definitions/include/accel-ppp/auth-mode.xml.i
index ccaed6f04..476cf7b62 100644
--- a/interface-definitions/include/accel-ppp/auth-mode.xml.i
+++ b/interface-definitions/include/accel-ppp/auth-mode.xml.i
@@ -8,7 +8,7 @@
</valueHelp>
<valueHelp>
<format>radius</format>
- <description>Use RADIUS server for user autentication</description>
+ <description>Use RADIUS server for user authentication</description>
</valueHelp>
<valueHelp>
<format>noauth</format>
diff --git a/interface-definitions/include/accel-ppp/idle-timeout.xml.i b/interface-definitions/include/accel-ppp/idle-timeout.xml.i
new file mode 100644
index 000000000..98af5aa85
--- /dev/null
+++ b/interface-definitions/include/accel-ppp/idle-timeout.xml.i
@@ -0,0 +1,15 @@
+<!-- include start from accel-ppp/idle-timeout.xml.i -->
+<leafNode name="idle-timeout">
+ <properties>
+ <help>Disconnect idle sessions after the specified time (in seconds)</help>
+ <valueHelp>
+ <format>u32:0-86400</format>
+ <description>Idle timeout in seconds</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 0-86400"/>
+ </constraint>
+ <constraintErrorMessage>Idle timeout must be in range 0 to 86400</constraintErrorMessage>
+ </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/accel-ppp/max-concurrent-sessions.xml.i b/interface-definitions/include/accel-ppp/max-concurrent-sessions.xml.i
index f6ef41019..20b40f60e 100644
--- a/interface-definitions/include/accel-ppp/max-concurrent-sessions.xml.i
+++ b/interface-definitions/include/accel-ppp/max-concurrent-sessions.xml.i
@@ -9,7 +9,7 @@
<constraint>
<validator name="numeric" argument="--allow-range --range 0-65535"/>
</constraint>
- <constraintErrorMessage>Maximum concurent sessions must be in range 0-65535</constraintErrorMessage>
+ <constraintErrorMessage>Maximum concurrent sessions must be in range 0-65535</constraintErrorMessage>
</properties>
</leafNode>
<!-- include end -->
diff --git a/interface-definitions/include/accel-ppp/radius-additions.xml.i b/interface-definitions/include/accel-ppp/radius-additions.xml.i
index 5222ba864..b6c88c6e8 100644
--- a/interface-definitions/include/accel-ppp/radius-additions.xml.i
+++ b/interface-definitions/include/accel-ppp/radius-additions.xml.i
@@ -133,17 +133,8 @@
</valueHelp>
</properties>
</leafNode>
+ #include <include/port-number.xml.i>
<leafNode name="port">
- <properties>
- <help>Port for Dynamic Authorization Extension server (DM/CoA)</help>
- <valueHelp>
- <format>u32:1-65535</format>
- <description>TCP port</description>
- </valueHelp>
- <constraint>
- <validator name="numeric" argument="--range 1-65535"/>
- </constraint>
- </properties>
<defaultValue>1700</defaultValue>
</leafNode>
<leafNode name="key">
diff --git a/interface-definitions/include/accel-ppp/thread-count.xml.i b/interface-definitions/include/accel-ppp/thread-count.xml.i
new file mode 100644
index 000000000..84d9224d0
--- /dev/null
+++ b/interface-definitions/include/accel-ppp/thread-count.xml.i
@@ -0,0 +1,27 @@
+<!-- include start from accel-ppp/thread-count.xml.i -->
+<leafNode name="thread-count">
+ <properties>
+ <help>Number of working threads</help>
+ <completionHelp>
+ <list>all half</list>
+ </completionHelp>
+ <valueHelp>
+ <format>all</format>
+ <description>Use all available CPU cores</description>
+ </valueHelp>
+ <valueHelp>
+ <format>half</format>
+ <description>Use half of available CPU cores</description>
+ </valueHelp>
+ <valueHelp>
+ <format>u32:1-512</format>
+ <description>Thread count</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 1-512"/>
+ <regex>(all|half)</regex>
+ </constraint>
+ </properties>
+ <defaultValue>all</defaultValue>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/auth-psk-secret.xml.i b/interface-definitions/include/auth-psk-secret.xml.i
index 24257dcab..4577d2ac1 100644
--- a/interface-definitions/include/auth-psk-secret.xml.i
+++ b/interface-definitions/include/auth-psk-secret.xml.i
@@ -9,7 +9,7 @@
<constraint>
<validator name="psk-secret"/>
</constraint>
- <constraintErrorMessage>Pre-Shared-Keys must be at leas 16 bytes long, which implies at least 32 characterss</constraintErrorMessage>
+ <constraintErrorMessage>Pre-Shared-Keys must be at least 16 bytes long, which implies at least 32 characters</constraintErrorMessage>
</properties>
</leafNode>
<!-- include end -->
diff --git a/interface-definitions/include/bgp/bmp-monitor-afi-policy.xml.i b/interface-definitions/include/bgp/bmp-monitor-afi-policy.xml.i
index 261d60232..d4bb0093e 100644
--- a/interface-definitions/include/bgp/bmp-monitor-afi-policy.xml.i
+++ b/interface-definitions/include/bgp/bmp-monitor-afi-policy.xml.i
@@ -1,4 +1,10 @@
<!-- include start from bgp/bmp-monitor-afi-policy.xml.i -->
+<leafNode name="local-rib">
+ <properties>
+ <help>Enable BMP monitoring of local RIB</help>
+ <valueless/>
+ </properties>
+</leafNode>
<leafNode name="pre-policy">
<properties>
<help>Send state before policy and filter processing</help>
diff --git a/interface-definitions/include/bgp/neighbor-afi-link-state.xml.i b/interface-definitions/include/bgp/neighbor-afi-link-state.xml.i
new file mode 100644
index 000000000..fa31f5c46
--- /dev/null
+++ b/interface-definitions/include/bgp/neighbor-afi-link-state.xml.i
@@ -0,0 +1,8 @@
+<!-- include start from bgp/neighbor-afi-link-state.xml.i -->
+<leafNode name="link-state">
+ <properties>
+ <help>Link State BGP address family</help>
+ <valueless/>
+ </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/bgp/neighbor-bfd.xml.i b/interface-definitions/include/bgp/neighbor-bfd.xml.i
index fac2a1166..6de4c9373 100644
--- a/interface-definitions/include/bgp/neighbor-bfd.xml.i
+++ b/interface-definitions/include/bgp/neighbor-bfd.xml.i
@@ -11,6 +11,25 @@
<valueless/>
</properties>
</leafNode>
+ <node name="strict">
+ <properties>
+ <help>Strict mode</help>
+ </properties>
+ <children>
+ <leafNode name="hold-time">
+ <properties>
+ <help>BFD hold time</help>
+ <valueHelp>
+ <format>u32:1-4294967295</format>
+ <description>BFD hold time in seconds</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 1-4294967295"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ </children>
+ </node>
</children>
</node>
<!-- include end -->
diff --git a/interface-definitions/include/bgp/neighbor-local-role.xml.i b/interface-definitions/include/bgp/neighbor-local-role.xml.i
index 6ddb4908f..472e5ab8b 100644
--- a/interface-definitions/include/bgp/neighbor-local-role.xml.i
+++ b/interface-definitions/include/bgp/neighbor-local-role.xml.i
@@ -33,7 +33,7 @@
<children>
<leafNode name="strict">
<properties>
- <help>Neighbor must send this exact capability, otherwise a role missmatch notification will be sent</help>
+ <help>Neighbor must send this exact capability, otherwise a role mismatch notification will be sent</help>
<valueless/>
</properties>
</leafNode>
diff --git a/interface-definitions/include/bgp/protocol-common-config.xml.i b/interface-definitions/include/bgp/protocol-common-config.xml.i
index 31c8cafea..f342402bb 100644
--- a/interface-definitions/include/bgp/protocol-common-config.xml.i
+++ b/interface-definitions/include/bgp/protocol-common-config.xml.i
@@ -1036,6 +1036,8 @@
<validator name="ip-address"/>
#include <include/constraint/interface-name.xml.i>
</constraint>
+ <constraintSilenceOutput/>
+ <constraintErrorMessage>BGP neighbor must be one of: IP address, IPv6 address, or interface name</constraintErrorMessage>
</properties>
<children>
<node name="address-family">
@@ -1054,6 +1056,7 @@
#include <include/bgp/neighbor-afi-ipv4-multicast.xml.i>
#include <include/bgp/neighbor-afi-ipv6-multicast.xml.i>
#include <include/bgp/neighbor-afi-l2vpn-evpn.xml.i>
+ #include <include/bgp/neighbor-afi-link-state.xml.i>
</children>
</node>
<leafNode name="advertisement-interval">
@@ -1103,12 +1106,7 @@
#include <include/bgp/peer-group.xml.i>
#include <include/bgp/remote-as.xml.i>
#include <include/bgp/neighbor-shutdown.xml.i>
- <leafNode name="solo">
- <properties>
- <help>Do not send back prefixes learned from the neighbor</help>
- <valueless/>
- </properties>
- </leafNode>
+ #include <include/bgp/solo.xml.i>
<leafNode name="enforce-first-as">
<properties>
<help>Ensure the first AS in the AS path matches the peer AS</help>
@@ -1156,6 +1154,25 @@
<help>BGP parameters</help>
</properties>
<children>
+ <leafNode name="as-notation">
+ <properties>
+ <help>BGP AS-notation output format</help>
+ <completionHelp>
+ <list>asdot asdot+</list>
+ </completionHelp>
+ <valueHelp>
+ <format>asdot</format>
+ <description>Use asdot notation only for 4 byte AS numbers</description>
+ </valueHelp>
+ <valueHelp>
+ <format>asdot+</format>
+ <description>Use asdot notation for all AS numbers</description>
+ </valueHelp>
+ <constraint>
+ <regex>(asdot\+|asdot)</regex>
+ </constraint>
+ </properties>
+ </leafNode>
<leafNode name="allow-martian-nexthop">
<properties>
<help>Allow Martian nexthops to be received in the NLRI from a peer</help>
@@ -1596,6 +1613,12 @@
<valueless/>
</properties>
</leafNode>
+ <leafNode name="no-ipv6-auto-ra">
+ <properties>
+ <help>Disable IPv6 automatic router advertisement</help>
+ <valueless/>
+ </properties>
+ </leafNode>
<leafNode name="no-suppress-duplicates">
<properties>
<help>Disable suppress duplicate updates if the route actually not changed</help>
@@ -1664,6 +1687,41 @@
</leafNode>
</children>
</node>
+ <node name="update-delay">
+ <properties>
+ <help>BGP update-delay read-only mode</help>
+ </properties>
+ <children>
+ <leafNode name="max-delay">
+ <properties>
+ <help>Maximum delay before exiting read-only mode</help>
+ <valueHelp>
+ <format>u32:0</format>
+ <description>Disable feature</description>
+ </valueHelp>
+ <valueHelp>
+ <format>u32:1-3600</format>
+ <description>Delay in seconds</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 0-3600"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ <leafNode name="establish-wait">
+ <properties>
+ <help>Time to wait for peers to reach Established state before determining expected peers</help>
+ <valueHelp>
+ <format>u32:1-3600</format>
+ <description>Wait time in seconds</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 1-3600"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ </children>
+ </node>
</children>
</node>
<tagNode name="peer-group">
@@ -1686,6 +1744,7 @@
#include <include/bgp/neighbor-afi-ipv6-labeled-unicast.xml.i>
#include <include/bgp/neighbor-afi-ipv6-vpn.xml.i>
#include <include/bgp/neighbor-afi-l2vpn-evpn.xml.i>
+ #include <include/bgp/neighbor-afi-link-state.xml.i>
</children>
</node>
#include <include/generic-description.xml.i>
@@ -1695,7 +1754,6 @@
#include <include/bgp/neighbor-disable-connected-check.xml.i>
#include <include/bgp/neighbor-ebgp-multihop.xml.i>
#include <include/bgp/neighbor-graceful-restart.xml.i>
- #include <include/bgp/neighbor-graceful-restart.xml.i>
#include <include/bgp/neighbor-local-as.xml.i>
#include <include/bgp/neighbor-local-role.xml.i>
#include <include/bgp/neighbor-override-capability.xml.i>
@@ -1707,6 +1765,7 @@
#include <include/bgp/neighbor-update-source.xml.i>
#include <include/bgp/remote-as.xml.i>
#include <include/port-number.xml.i>
+ #include <include/bgp/solo.xml.i>
</children>
</tagNode>
<node name="srv6">
diff --git a/interface-definitions/include/bgp/remote-as.xml.i b/interface-definitions/include/bgp/remote-as.xml.i
index 79d3b95a9..4c622b831 100644
--- a/interface-definitions/include/bgp/remote-as.xml.i
+++ b/interface-definitions/include/bgp/remote-as.xml.i
@@ -3,13 +3,17 @@
<properties>
<help>Neighbor BGP AS number</help>
<completionHelp>
- <list>external internal</list>
+ <list>auto external internal</list>
</completionHelp>
<valueHelp>
<format>u32:1-4294967294</format>
<description>Neighbor AS number</description>
</valueHelp>
<valueHelp>
+ <format>auto</format>
+ <description>Automatically detect remote AS</description>
+ </valueHelp>
+ <valueHelp>
<format>external</format>
<description>Any AS different from the local AS</description>
</valueHelp>
@@ -19,7 +23,7 @@
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 1-4294967294"/>
- <regex>(external|internal)</regex>
+ <regex>(auto|external|internal)</regex>
</constraint>
<constraintErrorMessage>Invalid AS number</constraintErrorMessage>
</properties>
diff --git a/interface-definitions/include/bgp/solo.xml.i b/interface-definitions/include/bgp/solo.xml.i
new file mode 100644
index 000000000..2b26b5af3
--- /dev/null
+++ b/interface-definitions/include/bgp/solo.xml.i
@@ -0,0 +1,8 @@
+<!-- include start from bgp/solo.xml.i -->
+<leafNode name="solo">
+ <properties>
+ <help>Do not send back prefixes learned from the neighbor</help>
+ <valueless/>
+ </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/constraint/interface-name-with-wildcard.xml.i b/interface-definitions/include/constraint/interface-name-with-wildcard.xml.i
index adff530b6..aa40017e9 100644
--- a/interface-definitions/include/constraint/interface-name-with-wildcard.xml.i
+++ b/interface-definitions/include/constraint/interface-name-with-wildcard.xml.i
@@ -1,4 +1,5 @@
<!-- include start from constraint/interface-name-with-wildcard.xml.i -->
-<regex>(bond|br|dum|en|ersp|eth|gnv|ifb|lan|l2tp|l2tpeth|macsec|peth|ppp|pppoe|pptp|sstp|tun|veth|vti|vtun|vxlan|wg|wlan|wwan)([0-9]?)(\*?)(.+)?|lo</regex>
+<regex>(bond|br|dum|en|ersp|eth|gnv|ifb|ipoe|lan|l2tp|l2tpeth|macsec|peth|ppp|pppoe|pptp|sstp|sstpc|tun|veth|vpptap|vpptun|vti|vtun|vxlan|wg|wlan|wwan)([0-9]?)(\*?)(.+)?|lo</regex>
+<regex>(pod-[-_a-zA-Z0-9]{1,11})</regex>
<validator name="file-path --lookup-path /sys/class/net --directory"/>
<!-- include end -->
diff --git a/interface-definitions/include/constraint/vrf.xml.i b/interface-definitions/include/constraint/vrf.xml.i
index a1922bb6d..fa0518dad 100644
--- a/interface-definitions/include/constraint/vrf.xml.i
+++ b/interface-definitions/include/constraint/vrf.xml.i
@@ -2,5 +2,5 @@
<constraint>
<validator name="vrf-name"/>
</constraint>
-<constraintErrorMessage>VRF instance name must be 15 characters or less and can not\nbe named as regular network interfaces.\nA name must starts from a letter.\n</constraintErrorMessage>
+<constraintErrorMessage>VRF instance name must be 15 characters or less and can not be named as a\nregular network interfaces. VRF name must start with a letter.\n</constraintErrorMessage>
<!-- include end -->
diff --git a/interface-definitions/include/dhcp-interface-multi.xml.i b/interface-definitions/include/dhcp-interface-multi.xml.i
index 0db11cf79..5f5c54cfd 100644
--- a/interface-definitions/include/dhcp-interface-multi.xml.i
+++ b/interface-definitions/include/dhcp-interface-multi.xml.i
@@ -1,18 +1,8 @@
<!-- include start from dhcp-interface-multi.xml.i -->
-<leafNode name="dhcp-interface">
- <properties>
- <help>DHCP interface supplying next-hop IP address</help>
- <completionHelp>
- <script>${vyos_completion_dir}/list_interfaces</script>
- </completionHelp>
- <valueHelp>
- <format>txt</format>
- <description>DHCP interface name</description>
- </valueHelp>
- <constraint>
- #include <include/constraint/interface-name.xml.i>
- </constraint>
- <multi/>
- </properties>
+ <leafNode name="dhcp-interface">
+ <properties>
+ #include <include/dhcp-interface-properties.xml.i>
+ <multi/>
+ </properties>
</leafNode>
-<!-- include end --> \ No newline at end of file
+<!-- include end -->
diff --git a/interface-definitions/include/dhcp-interface-properties.xml.i b/interface-definitions/include/dhcp-interface-properties.xml.i
new file mode 100644
index 000000000..b184b8f0a
--- /dev/null
+++ b/interface-definitions/include/dhcp-interface-properties.xml.i
@@ -0,0 +1,13 @@
+<!-- include end -->
+ <help>DHCP interface supplying next-hop IP address</help>
+ <completionHelp>
+ <script>${vyos_completion_dir}/list_interfaces</script>
+ </completionHelp>
+ <valueHelp>
+ <format>txt</format>
+ <description>DHCP interface name</description>
+ </valueHelp>
+ <constraint>
+ #include <include/constraint/interface-name.xml.i>
+ </constraint>
+<!-- include end -->
diff --git a/interface-definitions/include/dhcp-interface.xml.i b/interface-definitions/include/dhcp-interface.xml.i
index b5c94cb24..e056b3fe1 100644
--- a/interface-definitions/include/dhcp-interface.xml.i
+++ b/interface-definitions/include/dhcp-interface.xml.i
@@ -1,15 +1,7 @@
+<!-- include start from dhcp-interface.xml.i -->
<leafNode name="dhcp-interface">
<properties>
- <help>DHCP interface supplying next-hop IP address</help>
- <completionHelp>
- <script>${vyos_completion_dir}/list_interfaces</script>
- </completionHelp>
- <valueHelp>
- <format>txt</format>
- <description>DHCP interface name</description>
- </valueHelp>
- <constraint>
- #include <include/constraint/interface-name.xml.i>
- </constraint>
+ #include <include/dhcp-interface-properties.xml.i>
</properties>
</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/dhcp/ddns-dns-server.xml.i b/interface-definitions/include/dhcp/ddns-dns-server.xml.i
new file mode 100644
index 000000000..ba9f186d0
--- /dev/null
+++ b/interface-definitions/include/dhcp/ddns-dns-server.xml.i
@@ -0,0 +1,19 @@
+<!-- include start from dhcp/ddns-dns-server.xml.i -->
+<tagNode name="dns-server">
+ <properties>
+ <help>DNS server specification</help>
+ <valueHelp>
+ <format>u32:1-999999</format>
+ <description>Number for this DNS server</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 1-999999"/>
+ </constraint>
+ <constraintErrorMessage>DNS server number must be between 1 and 999999</constraintErrorMessage>
+ </properties>
+ <children>
+ #include <include/address-ipv4-ipv6-single.xml.i>
+ #include <include/port-number.xml.i>
+ </children>
+</tagNode>
+<!-- include end -->
diff --git a/interface-definitions/include/dhcp/ddns-settings.xml.i b/interface-definitions/include/dhcp/ddns-settings.xml.i
new file mode 100644
index 000000000..3e202685e
--- /dev/null
+++ b/interface-definitions/include/dhcp/ddns-settings.xml.i
@@ -0,0 +1,172 @@
+<!-- include start from dhcp/ddns-settings.xml.i -->
+<leafNode name="send-updates">
+ <properties>
+ <help>Enable or disable updates for this scope</help>
+ <completionHelp>
+ <list>enable disable</list>
+ </completionHelp>
+ <valueHelp>
+ <format>enable</format>
+ <description>Enable updates for this scope</description>
+ </valueHelp>
+ <valueHelp>
+ <format>disable</format>
+ <description>Disable updates for this scope</description>
+ </valueHelp>
+ <constraint>
+ <regex>(enable|disable)</regex>
+ </constraint>
+ <constraintErrorMessage>Set it to either enable or disable</constraintErrorMessage>
+ </properties>
+</leafNode>
+<leafNode name="override-client-update">
+ <properties>
+ <help>Always update both forward and reverse DNS data, regardless of the client's request</help>
+ <completionHelp>
+ <list>enable disable</list>
+ </completionHelp>
+ <valueHelp>
+ <format>enable</format>
+ <description>Force update both forward and reverse DNS records</description>
+ </valueHelp>
+ <valueHelp>
+ <format>disable</format>
+ <description>Respect client request settings</description>
+ </valueHelp>
+ <constraint>
+ <regex>(enable|disable)</regex>
+ </constraint>
+ <constraintErrorMessage>Set it to either enable or disable</constraintErrorMessage>
+ </properties>
+</leafNode>
+<leafNode name="override-no-update">
+ <properties>
+ <help>Perform a DDNS update, even if the client instructs the server not to</help>
+ <completionHelp>
+ <list>enable disable</list>
+ </completionHelp>
+ <valueHelp>
+ <format>enable</format>
+ <description>Force DDNS updates regardless of client request</description>
+ </valueHelp>
+ <valueHelp>
+ <format>disable</format>
+ <description>Respect client request settings</description>
+ </valueHelp>
+ <constraint>
+ <regex>(enable|disable)</regex>
+ </constraint>
+ <constraintErrorMessage>Set it to either enable or disable</constraintErrorMessage>
+ </properties>
+</leafNode>
+<leafNode name="replace-client-name">
+ <properties>
+ <help>Replace client name mode</help>
+ <completionHelp>
+ <list>never always when-present when-not-present</list>
+ </completionHelp>
+ <valueHelp>
+ <format>never</format>
+ <description>Use the name the client sent. If the client sent no name, do not generate
+ one</description>
+ </valueHelp>
+ <valueHelp>
+ <format>always</format>
+ <description>Replace the name the client sent. If the client sent no name, generate one
+ for the client</description>
+ </valueHelp>
+ <valueHelp>
+ <format>when-present</format>
+ <description>Replace the name the client sent. If the client sent no name, do not
+ generate one</description>
+ </valueHelp>
+ <valueHelp>
+ <format>when-not-present</format>
+ <description>Use the name the client sent. If the client sent no name, generate one for
+ the client</description>
+ </valueHelp>
+ <constraint>
+ <regex>(never|always|when-present|when-not-present)</regex>
+ </constraint>
+ <constraintErrorMessage>Invalid replace client name mode</constraintErrorMessage>
+ </properties>
+</leafNode>
+<leafNode name="generated-prefix">
+ <properties>
+ <help>The prefix used in the generation of an FQDN</help>
+ <constraint>
+ <validator name="fqdn" />
+ </constraint>
+ <constraintErrorMessage>Invalid generated prefix</constraintErrorMessage>
+ </properties>
+</leafNode>
+<leafNode name="qualifying-suffix">
+ <properties>
+ <help>The suffix used when generating an FQDN, or when qualifying a partial name</help>
+ <constraint>
+ <validator name="fqdn" />
+ </constraint>
+ <constraintErrorMessage>Invalid qualifying suffix</constraintErrorMessage>
+ </properties>
+</leafNode>
+<leafNode name="update-on-renew">
+ <properties>
+ <help>Update DNS record on lease renew</help>
+ <completionHelp>
+ <list>enable disable</list>
+ </completionHelp>
+ <valueHelp>
+ <format>enable</format>
+ <description>Update DNS record on lease renew</description>
+ </valueHelp>
+ <valueHelp>
+ <format>disable</format>
+ <description>Do not update DNS record on lease renew</description>
+ </valueHelp>
+ <constraint>
+ <regex>(enable|disable)</regex>
+ </constraint>
+ <constraintErrorMessage>Set it to either enable or disable</constraintErrorMessage>
+ </properties>
+</leafNode>
+<leafNode name="conflict-resolution">
+ <properties>
+ <help>DNS conflict resolution behavior</help>
+ <completionHelp>
+ <list>enable disable</list>
+ </completionHelp>
+ <valueHelp>
+ <format>enable</format>
+ <description>Enable DNS conflict resolution</description>
+ </valueHelp>
+ <valueHelp>
+ <format>disable</format>
+ <description>Disable DNS conflict resolution</description>
+ </valueHelp>
+ <constraint>
+ <regex>(enable|disable)</regex>
+ </constraint>
+ <constraintErrorMessage>Set it to either enable or disable</constraintErrorMessage>
+ </properties>
+</leafNode>
+<leafNode name="ttl-percent">
+ <properties>
+ <help>Calculate TTL of the DNS record as a percentage of the lease lifetime</help>
+ <constraint>
+ <validator name="numeric" argument="--range 1-100" />
+ </constraint>
+ <constraintErrorMessage>Invalid qualifying suffix</constraintErrorMessage>
+ </properties>
+</leafNode>
+<leafNode name="hostname-char-set">
+ <properties>
+ <help>A regular expression describing the invalid character set in the host name</help>
+ </properties>
+</leafNode>
+<leafNode name="hostname-char-replacement">
+ <properties>
+ <help>A string of zero or more characters with which to replace each invalid character in
+ the host name</help>
+ </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/dhcp/dhcp-server-common-config.xml.i b/interface-definitions/include/dhcp/dhcp-server-common-config.xml.i
new file mode 100644
index 000000000..64f9707f7
--- /dev/null
+++ b/interface-definitions/include/dhcp/dhcp-server-common-config.xml.i
@@ -0,0 +1,393 @@
+<!-- include start from dhcp/dhcp-server-common-config.xml.i -->
+<tagNode name="client-class">
+ <properties>
+ <help>Client class name</help>
+ <constraint>
+ #include <include/constraint/alpha-numeric-hyphen-underscore-dot.xml.i>
+ </constraint>
+ <constraintErrorMessage>Client class name may only contain letters, numbers, dots, underscores, and hyphens</constraintErrorMessage>
+ </properties>
+ <children>
+ #include <include/generic-disable-node.xml.i>
+ <node name="relay-agent-information">
+ <properties>
+ <help>Match DHCP Option 82 (relay agent information)</help>
+ </properties>
+ <children>
+ <leafNode name="circuit-id">
+ <properties>
+ <help>Filters on the contents of the circuit-id sub option</help>
+ <valueHelp>
+ <format>hex</format>
+ <description>Values that start with 0x are interpreted as raw hex. This must only be hexadecimal characters e.g. 0x1234567890ABCDEF</description>
+ </valueHelp>
+ <valueHelp>
+ <format>txt</format>
+ <description>Any other text string is interpreted as ASCII text</description>
+ </valueHelp>
+ </properties>
+ </leafNode>
+ <leafNode name="remote-id">
+ <properties>
+ <help>Filters on the contents of the remote-id sub option</help>
+ <valueHelp>
+ <format>hex</format>
+ <description>Values that start with 0x are interpreted as raw hex. This must only be hexadecimal characters e.g. 0x1234567890ABCDEF</description>
+ </valueHelp>
+ <valueHelp>
+ <format>txt</format>
+ <description>Any other text string is interpreted as ASCII text</description>
+ </valueHelp>
+ </properties>
+ </leafNode>
+ </children>
+ </node>
+ </children>
+</tagNode>
+#include <include/generic-disable-node.xml.i>
+<node name="dynamic-dns-update">
+ <properties>
+ <help>Dynamically update Domain Name System (RFC4702)</help>
+ </properties>
+ <children>
+ #include <include/dhcp/ddns-settings.xml.i>
+ <tagNode name="tsig-key">
+ <properties>
+ <help>TSIG key definition for DNS updates</help>
+ <constraint>
+ #include <include/constraint/alpha-numeric-hyphen-underscore.xml.i>
+ </constraint>
+ <constraintErrorMessage>Invalid TSIG key name. May only contain letters, numbers, hyphen and underscore</constraintErrorMessage>
+ </properties>
+ <children>
+ <leafNode name="algorithm">
+ <properties>
+ <help>TSIG key algorithm</help>
+ <completionHelp>
+ <list>md5 sha1 sha224 sha256 sha384 sha512</list>
+ </completionHelp>
+ <valueHelp>
+ <format>md5</format>
+ <description>MD5 HMAC algorithm</description>
+ </valueHelp>
+ <valueHelp>
+ <format>sha1</format>
+ <description>SHA1 HMAC algorithm</description>
+ </valueHelp>
+ <valueHelp>
+ <format>sha224</format>
+ <description>SHA224 HMAC algorithm</description>
+ </valueHelp>
+ <valueHelp>
+ <format>sha256</format>
+ <description>SHA256 HMAC algorithm</description>
+ </valueHelp>
+ <valueHelp>
+ <format>sha384</format>
+ <description>SHA384 HMAC algorithm</description>
+ </valueHelp>
+ <valueHelp>
+ <format>sha512</format>
+ <description>SHA512 HMAC algorithm</description>
+ </valueHelp>
+ <constraint>
+ <regex>(md5|sha1|sha224|sha256|sha384|sha512)</regex>
+ </constraint>
+ <constraintErrorMessage>Invalid TSIG key algorithm</constraintErrorMessage>
+ </properties>
+ </leafNode>
+ <leafNode name="secret">
+ <properties>
+ <help>TSIG key secret (base64-encoded)</help>
+ <constraint>
+ <validator name="base64"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ </children>
+ </tagNode>
+ <tagNode name="forward-domain">
+ <properties>
+ <help>Forward DNS domain name</help>
+ <constraint>
+ <validator name="fqdn"/>
+ </constraint>
+ <constraintErrorMessage>Invalid forward DNS domain name</constraintErrorMessage>
+ </properties>
+ <children>
+ <leafNode name="key-name">
+ <properties>
+ <help>TSIG key name for forward DNS updates</help>
+ <constraint>
+ #include <include/constraint/alpha-numeric-hyphen-underscore.xml.i>
+ </constraint>
+ <constraintErrorMessage>Invalid TSIG key name. May only contain letters, numbers, numbers, hyphen and underscore</constraintErrorMessage>
+ </properties>
+ </leafNode>
+ #include <include/dhcp/ddns-dns-server.xml.i>
+ </children>
+ </tagNode>
+ <tagNode name="reverse-domain">
+ <properties>
+ <help>Reverse DNS domain name</help>
+ <constraint>
+ <validator name="fqdn"/>
+ </constraint>
+ <constraintErrorMessage>Invalid reverse DNS domain name</constraintErrorMessage>
+ </properties>
+ <children>
+ <leafNode name="key-name">
+ <properties>
+ <help>TSIG key name for reverse DNS updates</help>
+ <constraint>
+ #include <include/constraint/alpha-numeric-hyphen-underscore.xml.i>
+ </constraint>
+ <constraintErrorMessage>Invalid TSIG key name. May only contain letters, numbers, numbers, hyphen and underscore</constraintErrorMessage>
+ </properties>
+ </leafNode>
+ #include <include/dhcp/ddns-dns-server.xml.i>
+ </children>
+ </tagNode>
+ </children>
+</node>
+<node name="high-availability">
+ <properties>
+ <help>DHCP high availability configuration</help>
+ </properties>
+ <children>
+ #include <include/source-address-ipv4.xml.i>
+ <leafNode name="mode">
+ <properties>
+ <help>Configure high availability mode</help>
+ <completionHelp>
+ <list>active-active active-passive</list>
+ </completionHelp>
+ <valueHelp>
+ <format>active-active</format>
+ <description>Both server attend DHCP requests</description>
+ </valueHelp>
+ <valueHelp>
+ <format>active-passive</format>
+ <description>Only primary server attends DHCP requests</description>
+ </valueHelp>
+ <constraint>
+ <regex>(active-active|active-passive)</regex>
+ </constraint>
+ <constraintErrorMessage>Invalid DHCP high availability mode</constraintErrorMessage>
+ </properties>
+ <defaultValue>active-active</defaultValue>
+ </leafNode>
+ <leafNode name="remote">
+ <properties>
+ <help>IPv4 remote address used for connection</help>
+ <valueHelp>
+ <format>ipv4</format>
+ <description>IPv4 address of high availability peer</description>
+ </valueHelp>
+ <constraint>
+ <validator name="ipv4-address"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ <leafNode name="name">
+ <properties>
+ <help>Peer name used to identify connection</help>
+ <constraint>
+ #include <include/constraint/alpha-numeric-hyphen-underscore-dot.xml.i>
+ </constraint>
+ <constraintErrorMessage>Invalid failover peer name. May only contain letters, numbers and .-_</constraintErrorMessage>
+ </properties>
+ </leafNode>
+ <leafNode name="status">
+ <properties>
+ <help>High availability hierarchy</help>
+ <completionHelp>
+ <list>primary secondary</list>
+ </completionHelp>
+ <valueHelp>
+ <format>primary</format>
+ <description>Configure this server to be the primary node</description>
+ </valueHelp>
+ <valueHelp>
+ <format>secondary</format>
+ <description>Configure this server to be the secondary node</description>
+ </valueHelp>
+ <constraint>
+ <regex>(primary|secondary)</regex>
+ </constraint>
+ <constraintErrorMessage>Invalid DHCP high availability peer status</constraintErrorMessage>
+ </properties>
+ </leafNode>
+ #include <include/pki/ca-certificate.xml.i>
+ #include <include/pki/certificate.xml.i>
+ </children>
+</node>
+<leafNode name="hostfile-update">
+ <properties>
+ <help>Updating /etc/hosts file (per client lease)</help>
+ <valueless/>
+ </properties>
+</leafNode>
+#include <include/dhcp/log-level.xml.i>
+#include <include/listen-address-ipv4.xml.i>
+#include <include/listen-interface-multi-broadcast.xml.i>
+<tagNode name="shared-network-name">
+ <properties>
+ <help>Name of DHCP shared network</help>
+ <constraint>
+ #include <include/constraint/alpha-numeric-hyphen-underscore-dot.xml.i>
+ </constraint>
+ <constraintErrorMessage>Invalid shared network name. May only contain letters, numbers and .-_</constraintErrorMessage>
+ </properties>
+ <children>
+ <node name="dynamic-dns-update">
+ <properties>
+ <help>Dynamically update Domain Name System (RFC4702)</help>
+ </properties>
+ <children>
+ #include <include/dhcp/ddns-settings.xml.i>
+ </children>
+ </node>
+ <leafNode name="authoritative">
+ <properties>
+ <help>Option to make DHCP server authoritative for this physical network</help>
+ <valueless/>
+ </properties>
+ </leafNode>
+ #include <include/dhcp/option-v4.xml.i>
+ #include <include/dhcp/ping-check.xml.i>
+ #include <include/generic-description.xml.i>
+ #include <include/generic-disable-node.xml.i>
+ <tagNode name="subnet">
+ <properties>
+ <help>DHCP subnet for shared network</help>
+ <valueHelp>
+ <format>ipv4net</format>
+ <description>IPv4 address and prefix length</description>
+ </valueHelp>
+ <constraint>
+ <validator name="ipv4-prefix"/>
+ </constraint>
+ <constraintErrorMessage>Invalid IPv4 subnet definition</constraintErrorMessage>
+ </properties>
+ <children>
+ #include <include/dhcp/option-v4.xml.i>
+ #include <include/dhcp/ping-check.xml.i>
+ #include <include/generic-description.xml.i>
+ #include <include/generic-disable-node.xml.i>
+ <leafNode name="client-class">
+ <properties>
+ <help>DHCP client class</help>
+ <completionHelp>
+ <path>service dhcp-server client-class</path>
+ </completionHelp>
+ </properties>
+ </leafNode>
+ <node name="dynamic-dns-update">
+ <properties>
+ <help>Dynamically update Domain Name System (RFC4702)</help>
+ </properties>
+ <children>
+ #include <include/dhcp/ddns-settings.xml.i>
+ </children>
+ </node>
+ <leafNode name="exclude">
+ <properties>
+ <help>IP address to exclude from DHCP lease range</help>
+ <valueHelp>
+ <format>ipv4</format>
+ <description>IPv4 address to exclude from lease range</description>
+ </valueHelp>
+ <constraint>
+ <validator name="ipv4-address"/>
+ </constraint>
+ <multi/>
+ </properties>
+ </leafNode>
+ <leafNode name="ignore-client-id">
+ <properties>
+ <help>Ignore client identifier for lease lookups</help>
+ <valueless/>
+ </properties>
+ </leafNode>
+ <leafNode name="lease">
+ <properties>
+ <help>Lease timeout in seconds</help>
+ <valueHelp>
+ <format>u32</format>
+ <description>DHCP lease time in seconds</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 0-4294967295"/>
+ </constraint>
+ <constraintErrorMessage>DHCP lease time must be between 0 and 4294967295 (49 days)</constraintErrorMessage>
+ </properties>
+ <defaultValue>86400</defaultValue>
+ </leafNode>
+ <tagNode name="range">
+ <properties>
+ <help>DHCP lease range</help>
+ <constraint>
+ #include <include/constraint/alpha-numeric-hyphen-underscore-dot.xml.i>
+ </constraint>
+ <constraintErrorMessage>Invalid range name, may only be alphanumeric, dot and hyphen</constraintErrorMessage>
+ </properties>
+ <children>
+ #include <include/dhcp/option-v4.xml.i>
+ <leafNode name="client-class">
+ <properties>
+ <help>DHCP client class</help>
+ <completionHelp>
+ <path>service dhcp-server client-class</path>
+ </completionHelp>
+ </properties>
+ </leafNode>
+ <leafNode name="start">
+ <properties>
+ <help>First IP address for DHCP lease range</help>
+ <valueHelp>
+ <format>ipv4</format>
+ <description>IPv4 start address of pool</description>
+ </valueHelp>
+ <constraint>
+ <validator name="ipv4-address"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ <leafNode name="stop">
+ <properties>
+ <help>Last IP address for DHCP lease range</help>
+ <valueHelp>
+ <format>ipv4</format>
+ <description>IPv4 end address of pool</description>
+ </valueHelp>
+ <constraint>
+ <validator name="ipv4-address"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ </children>
+ </tagNode>
+ <tagNode name="static-mapping">
+ <properties>
+ <help>Hostname for static mapping reservation</help>
+ <constraint>
+ <validator name="fqdn"/>
+ </constraint>
+ <constraintErrorMessage>Invalid static mapping hostname</constraintErrorMessage>
+ </properties>
+ <children>
+ #include <include/dhcp/option-v4.xml.i>
+ #include <include/generic-description.xml.i>
+ #include <include/generic-disable-node.xml.i>
+ #include <include/ip-address.xml.i>
+ #include <include/interface/mac.xml.i>
+ #include <include/interface/duid.xml.i>
+ </children>
+ </tagNode>
+ #include <include/dhcp/subnet-id.xml.i>
+ </children>
+ </tagNode>
+ </children>
+</tagNode>
+<!-- include end -->
diff --git a/interface-definitions/include/dhcp/dhcpv6-server-common-config.xml.i b/interface-definitions/include/dhcp/dhcpv6-server-common-config.xml.i
new file mode 100644
index 000000000..6e40fbcd4
--- /dev/null
+++ b/interface-definitions/include/dhcp/dhcpv6-server-common-config.xml.i
@@ -0,0 +1,268 @@
+<!-- include start from dhcp/dhcpv6-server-common-config.xml.i -->
+#include <include/generic-disable-node.xml.i>
+#include <include/listen-interface-multi-broadcast.xml.i>
+<leafNode name="disable-route-autoinstall">
+ <properties>
+ <help>Do not install routes for delegated prefixes</help>
+ <valueless/>
+ </properties>
+</leafNode>
+<node name="global-parameters">
+ <properties>
+ <help>Additional global parameters for DHCPv6 server</help>
+ </properties>
+ <children>
+ #include <include/name-server-ipv6.xml.i>
+ </children>
+</node>
+<leafNode name="preference">
+ <properties>
+ <help>Preference of this DHCPv6 server compared with others</help>
+ <valueHelp>
+ <format>u32:0-255</format>
+ <description>DHCPv6 server preference (0-255)</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 0-255"/>
+ </constraint>
+ <constraintErrorMessage>Preference must be between 0 and 255</constraintErrorMessage>
+ </properties>
+</leafNode>
+#include <include/dhcp/log-level.xml.i>
+<tagNode name="shared-network-name">
+ <properties>
+ <help>DHCPv6 shared network name</help>
+ <constraint>
+ #include <include/constraint/alpha-numeric-hyphen-underscore-dot.xml.i>
+ </constraint>
+ <constraintErrorMessage>Invalid DHCPv6 shared network name. May only contain letters, numbers and .-_</constraintErrorMessage>
+ </properties>
+ <children>
+ #include <include/generic-disable-node.xml.i>
+ #include <include/generic-description.xml.i>
+ #include <include/generic-interface.xml.i>
+ #include <include/dhcp/option-v6.xml.i>
+ <tagNode name="subnet">
+ <properties>
+ <help>IPv6 DHCP subnet for this shared network</help>
+ <valueHelp>
+ <format>ipv6net</format>
+ <description>IPv6 address and prefix length</description>
+ </valueHelp>
+ <constraint>
+ <validator name="ipv6-prefix"/>
+ </constraint>
+ </properties>
+ <children>
+ #include <include/dhcp/option-v6.xml.i>
+ #include <include/generic-interface.xml.i>
+ <tagNode name="range">
+ <properties>
+ <help>Parameters setting ranges for assigning IPv6 addresses</help>
+ <constraint>
+ #include <include/constraint/alpha-numeric-hyphen-underscore-dot.xml.i>
+ </constraint>
+ <constraintErrorMessage>Invalid range name, may only be alphanumeric, dot and hyphen</constraintErrorMessage>
+ </properties>
+ <children>
+ #include <include/dhcp/option-v6.xml.i>
+ <leafNode name="prefix">
+ <properties>
+ <help>IPv6 prefix defining range of addresses to assign</help>
+ <valueHelp>
+ <format>ipv6net</format>
+ <description>IPv6 address and prefix length</description>
+ </valueHelp>
+ <constraint>
+ <validator name="ipv6-prefix"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ <leafNode name="start">
+ <properties>
+ <help>First in range of consecutive IPv6 addresses to assign</help>
+ <valueHelp>
+ <format>ipv6</format>
+ <description>IPv6 address</description>
+ </valueHelp>
+ <constraint>
+ <validator name="ipv6-address"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ <leafNode name="stop">
+ <properties>
+ <help>Last in range of consecutive IPv6 addresses</help>
+ <valueHelp>
+ <format>ipv6</format>
+ <description>IPv6 address</description>
+ </valueHelp>
+ <constraint>
+ <validator name="ipv6-address"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ </children>
+ </tagNode>
+ <node name="lease-time">
+ <properties>
+ <help>Parameters relating to the lease time</help>
+ </properties>
+ <children>
+ <leafNode name="default">
+ <properties>
+ <help>Default time (in seconds) that will be assigned to a lease</help>
+ <valueHelp>
+ <format>u32:1-4294967295</format>
+ <description>DHCPv6 valid lifetime</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 1-4294967295"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ <leafNode name="maximum">
+ <properties>
+ <help>Maximum time (in seconds) that will be assigned to a lease</help>
+ <valueHelp>
+ <format>u32:1-4294967295</format>
+ <description>Maximum lease time in seconds</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 1-4294967295"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ <leafNode name="minimum">
+ <properties>
+ <help>Minimum time (in seconds) that will be assigned to a lease</help>
+ <valueHelp>
+ <format>u32:1-4294967295</format>
+ <description>Minimum lease time in seconds</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 1-4294967295"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ </children>
+ </node>
+ <node name="prefix-delegation">
+ <properties>
+ <help>Parameters relating to IPv6 prefix delegation</help>
+ </properties>
+ <children>
+ <tagNode name="prefix">
+ <properties>
+ <help>IPv6 prefix to be used in prefix delegation</help>
+ <valueHelp>
+ <format>ipv6</format>
+ <description>IPv6 prefix used in prefix delegation</description>
+ </valueHelp>
+ <constraint>
+ <validator name="ipv6-address"/>
+ </constraint>
+ </properties>
+ <children>
+ <leafNode name="prefix-length">
+ <properties>
+ <help>Length in bits of prefix</help>
+ <valueHelp>
+ <format>u32:32-64</format>
+ <description>Prefix length (32-64)</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 32-64"/>
+ </constraint>
+ <constraintErrorMessage>Prefix length must be between 32 and 64</constraintErrorMessage>
+ </properties>
+ </leafNode>
+ <leafNode name="delegated-length">
+ <properties>
+ <help>Length in bits of prefixes to be delegated</help>
+ <valueHelp>
+ <format>u32:32-64</format>
+ <description>Delegated prefix length (32-64)</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 32-96"/>
+ </constraint>
+ <constraintErrorMessage>Delegated prefix length must be between 32 and 96</constraintErrorMessage>
+ </properties>
+ </leafNode>
+ <leafNode name="excluded-prefix">
+ <properties>
+ <help>IPv6 prefix to be excluded from prefix delegation</help>
+ <valueHelp>
+ <format>ipv6</format>
+ <description>IPv6 prefix excluded from prefix delegation</description>
+ </valueHelp>
+ <constraint>
+ <validator name="ipv6-address"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ <leafNode name="excluded-prefix-length">
+ <properties>
+ <help>Length in bits of excluded prefix</help>
+ <valueHelp>
+ <format>u32:33-64</format>
+ <description>Excluded prefix length (33-128)</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 33-128"/>
+ </constraint>
+ <constraintErrorMessage>Prefix length must be between 33 and 128</constraintErrorMessage>
+ </properties>
+ </leafNode>
+ </children>
+ </tagNode>
+ </children>
+ </node>
+ <tagNode name="static-mapping">
+ <properties>
+ <help>Hostname for static mapping reservation</help>
+ <constraint>
+ <validator name="fqdn"/>
+ </constraint>
+ <constraintErrorMessage>Invalid static mapping hostname</constraintErrorMessage>
+ </properties>
+ <children>
+ #include <include/dhcp/option-v6.xml.i>
+ #include <include/generic-disable-node.xml.i>
+ #include <include/interface/mac.xml.i>
+ #include <include/interface/duid.xml.i>
+ <leafNode name="ipv6-address">
+ <properties>
+ <help>Client IPv6 address for this static mapping</help>
+ <valueHelp>
+ <format>ipv6</format>
+ <description>IPv6 address for this static mapping</description>
+ </valueHelp>
+ <constraint>
+ <validator name="ipv6-address"/>
+ </constraint>
+ <multi/>
+ </properties>
+ </leafNode>
+ <leafNode name="ipv6-prefix">
+ <properties>
+ <help>Client IPv6 prefix for this static mapping</help>
+ <valueHelp>
+ <format>ipv6net</format>
+ <description>IPv6 prefix for this static mapping</description>
+ </valueHelp>
+ <constraint>
+ <validator name="ipv6-prefix"/>
+ </constraint>
+ <multi/>
+ </properties>
+ </leafNode>
+ </children>
+ </tagNode>
+ #include <include/dhcp/subnet-id.xml.i>
+ </children>
+ </tagNode>
+ </children>
+</tagNode>
+<!-- include end -->
diff --git a/interface-definitions/include/dhcp/log-level.xml.i b/interface-definitions/include/dhcp/log-level.xml.i
new file mode 100644
index 000000000..d9a9e9931
--- /dev/null
+++ b/interface-definitions/include/dhcp/log-level.xml.i
@@ -0,0 +1,34 @@
+<!-- include start from dhcp/log-level.xml.i -->
+<leafNode name="log-level">
+ <properties>
+ <help>Logging level</help>
+ <completionHelp>
+ <list>fatal error warn info debug</list>
+ </completionHelp>
+ <valueHelp>
+ <format>fatal</format>
+ <description>Fatal log level</description>
+ </valueHelp>
+ <valueHelp>
+ <format>error</format>
+ <description>Error log level</description>
+ </valueHelp>
+ <valueHelp>
+ <format>warn</format>
+ <description>Warning log level</description>
+ </valueHelp>
+ <valueHelp>
+ <format>info</format>
+ <description>Informational log level</description>
+ </valueHelp>
+ <valueHelp>
+ <format>debug</format>
+ <description>Debug log level</description>
+ </valueHelp>
+ <constraint>
+ <regex>(fatal|error|warn|info|debug)</regex>
+ </constraint>
+ </properties>
+ <defaultValue>info</defaultValue>
+</leafNode>
+<!-- include end --> \ No newline at end of file
diff --git a/interface-definitions/include/dhcp/option-v4.xml.i b/interface-definitions/include/dhcp/option-v4.xml.i
index bd6fc6043..0f446c9a9 100644
--- a/interface-definitions/include/dhcp/option-v4.xml.i
+++ b/interface-definitions/include/dhcp/option-v4.xml.i
@@ -59,6 +59,18 @@
<constraintErrorMessage>DHCP client prefix length must be 0 to 32</constraintErrorMessage>
</properties>
</leafNode>
+ <leafNode name="capwap-controller">
+ <properties>
+ <help>IP address of CAPWAP access controller (Option 138)</help>
+ <valueHelp>
+ <format>ipv4</format>
+ <description>CAPWAP AC controller</description>
+ </valueHelp>
+ <constraint>
+ <validator name="ipv4-address"/>
+ </constraint>
+ </properties>
+ </leafNode>
<leafNode name="default-router">
<properties>
<help>IP address of default router</help>
@@ -71,6 +83,18 @@
</constraint>
</properties>
</leafNode>
+ <leafNode name="interface-mtu">
+ <properties>
+ <help>Interface MTU</help>
+ <valueHelp>
+ <format>u16:576-9000</format>
+ <description>Client interface MTU</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 576-9000"/>
+ </constraint>
+ </properties>
+ </leafNode>
<leafNode name="ip-forwarding">
<properties>
<help>Enable IP forwarding on client</help>
diff --git a/interface-definitions/include/dhcp/option-v6.xml.i b/interface-definitions/include/dhcp/option-v6.xml.i
index e1897f52d..c97d652b6 100644
--- a/interface-definitions/include/dhcp/option-v6.xml.i
+++ b/interface-definitions/include/dhcp/option-v6.xml.i
@@ -7,6 +7,18 @@
#include <include/dhcp/captive-portal.xml.i>
#include <include/dhcp/domain-search.xml.i>
#include <include/name-server-ipv6.xml.i>
+ <leafNode name="capwap-controller">
+ <properties>
+ <help>IP address of CAPWAP access controller (Option 52)</help>
+ <valueHelp>
+ <format>ipv6</format>
+ <description>CAPWAP AC controller</description>
+ </valueHelp>
+ <constraint>
+ <validator name="ipv6-address"/>
+ </constraint>
+ </properties>
+ </leafNode>
<leafNode name="nis-domain">
<properties>
<help>NIS domain name for client to use</help>
@@ -90,6 +102,17 @@
</constraint>
</properties>
</leafNode>
+ <leafNode name="time-zone">
+ <properties>
+ <help>Time zone to send to clients. Uses RFC4833 options 41 and 42</help>
+ <completionHelp>
+ <script>timedatectl list-timezones</script>
+ </completionHelp>
+ <constraint>
+ <validator name="timezone" argument="--validate"/>
+ </constraint>
+ </properties>
+ </leafNode>
<node name="vendor-option">
<properties>
<help>Vendor Specific Options</help>
diff --git a/interface-definitions/include/dhcp/ping-check.xml.i b/interface-definitions/include/dhcp/ping-check.xml.i
new file mode 100644
index 000000000..a506f68e4
--- /dev/null
+++ b/interface-definitions/include/dhcp/ping-check.xml.i
@@ -0,0 +1,8 @@
+<!-- include start from dhcp/ping-check.xml.i -->
+<leafNode name="ping-check">
+ <properties>
+ <help>Sends ICMP Echo request to the address being assigned</help>
+ <valueless/>
+ </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/dhcp/subnet-id.xml.i b/interface-definitions/include/dhcp/subnet-id.xml.i
new file mode 100644
index 000000000..c7e88250d
--- /dev/null
+++ b/interface-definitions/include/dhcp/subnet-id.xml.i
@@ -0,0 +1,14 @@
+<!-- include start from dhcp/subnet-id.xml.i -->
+<leafNode name="subnet-id">
+ <properties>
+ <help>Unique ID mapped to leases in the lease file</help>
+ <valueHelp>
+ <format>u32:1-4294967294</format>
+ <description>Unique subnet ID</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 1-4294967294"/>
+ </constraint>
+ </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/failover/common-failover.xml.i b/interface-definitions/include/failover/common-failover.xml.i
new file mode 100644
index 000000000..b147a0f8d
--- /dev/null
+++ b/interface-definitions/include/failover/common-failover.xml.i
@@ -0,0 +1,105 @@
+<!-- include start from include/failover/common-failover.xml.i -->
+<children>
+ <node name="check">
+ <properties>
+ <help>Check target options</help>
+ </properties>
+ <children>
+ <leafNode name="policy">
+ <properties>
+ <help>Policy for check targets</help>
+ <completionHelp>
+ <list>any-available all-available</list>
+ </completionHelp>
+ <valueHelp>
+ <format>all-available</format>
+ <description>All targets must be alive</description>
+ </valueHelp>
+ <valueHelp>
+ <format>any-available</format>
+ <description>Any target must be alive</description>
+ </valueHelp>
+ <constraint>
+ <regex>(all-available|any-available)</regex>
+ </constraint>
+ </properties>
+ <defaultValue>any-available</defaultValue>
+ </leafNode>
+ #include <include/port-number.xml.i>
+ <tagNode name="target">
+ <properties>
+ <help>Check target address</help>
+ <valueHelp>
+ <format>ipv4</format>
+ <description>Address to check</description>
+ </valueHelp>
+ <constraint>
+ <validator name="ipv4-address"/>
+ </constraint>
+ </properties>
+ <children>
+ #include <include/interface/vrf.xml.i>
+ #include <include/generic-interface.xml.i>
+ </children>
+ </tagNode>
+ <leafNode name="timeout">
+ <properties>
+ <help>Timeout between checks</help>
+ <valueHelp>
+ <format>u32:1-300</format>
+ <description>Timeout in seconds between checks</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 1-255"/>
+ </constraint>
+ </properties>
+ <defaultValue>10</defaultValue>
+ </leafNode>
+ <leafNode name="type">
+ <properties>
+ <help>Check type</help>
+ <completionHelp>
+ <list>arp icmp tcp</list>
+ </completionHelp>
+ <valueHelp>
+ <format>arp</format>
+ <description>Check target by ARP</description>
+ </valueHelp>
+ <valueHelp>
+ <format>icmp</format>
+ <description>Check target by ICMP</description>
+ </valueHelp>
+ <valueHelp>
+ <format>tcp</format>
+ <description>Check target by TCP</description>
+ </valueHelp>
+ <constraint>
+ <regex>(arp|icmp|tcp)</regex>
+ </constraint>
+ </properties>
+ <defaultValue>icmp</defaultValue>
+ </leafNode>
+ </children>
+ </node>
+ #include <include/generic-interface.xml.i>
+ <leafNode name="metric">
+ <properties>
+ <help>Route metric for this gateway</help>
+ <valueHelp>
+ <format>u32:1-255</format>
+ <description>Route metric</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 1-255"/>
+ </constraint>
+ </properties>
+ <defaultValue>1</defaultValue>
+ </leafNode>
+ <leafNode name="onlink">
+ <properties>
+ <help>The next hop is directly connected to the interface, even if it does not match interface prefix</help>
+ <valueless/>
+ </properties>
+ </leafNode>
+</children>
+<!-- include end -->
diff --git a/interface-definitions/include/failover/protocol-common-config.xml.i b/interface-definitions/include/failover/protocol-common-config.xml.i
new file mode 100644
index 000000000..56c9d8f90
--- /dev/null
+++ b/interface-definitions/include/failover/protocol-common-config.xml.i
@@ -0,0 +1,35 @@
+<!-- include start from failover/protocol-common-config.xml.i -->
+<tagNode name="route">
+ <properties>
+ <help>Failover IPv4 route</help>
+ <valueHelp>
+ <format>ipv4net</format>
+ <description>IPv4 failover route</description>
+ </valueHelp>
+ <constraint>
+ <validator name="ipv4-prefix"/>
+ </constraint>
+ </properties>
+ <children>
+ <tagNode name="next-hop">
+ <properties>
+ <help>Next-hop IPv4 router address</help>
+ <valueHelp>
+ <format>ipv4</format>
+ <description>Next-hop router address</description>
+ </valueHelp>
+ <constraint>
+ <validator name="ipv4-address"/>
+ </constraint>
+ </properties>
+ #include <include/failover/common-failover.xml.i>
+ </tagNode>
+ <tagNode name="dhcp-interface">
+ <properties>
+ #include <include/dhcp-interface-properties.xml.i>
+ </properties>
+ #include <include/failover/common-failover.xml.i>
+ </tagNode>
+ </children>
+</tagNode>
+<!-- include end -->
diff --git a/interface-definitions/include/firewall/common-rule-ipv4-raw.xml.i b/interface-definitions/include/firewall/common-rule-ipv4-raw.xml.i
index e8da1a0e1..85f1071a6 100644
--- a/interface-definitions/include/firewall/common-rule-ipv4-raw.xml.i
+++ b/interface-definitions/include/firewall/common-rule-ipv4-raw.xml.i
@@ -27,7 +27,12 @@
#include <include/firewall/geoip.xml.i>
#include <include/firewall/mac-address.xml.i>
#include <include/firewall/port.xml.i>
- #include <include/firewall/source-destination-group.xml.i>
+ #include <include/firewall/source-destination-group-ipv4.xml.i>
+ <node name="group">
+ <children>
+ #include <include/firewall/mac-group.xml.i>
+ </children>
+ </node>
</children>
</node>
<node name="source">
@@ -41,7 +46,12 @@
#include <include/firewall/geoip.xml.i>
#include <include/firewall/mac-address.xml.i>
#include <include/firewall/port.xml.i>
- #include <include/firewall/source-destination-group.xml.i>
+ #include <include/firewall/source-destination-group-ipv4.xml.i>
+ <node name="group">
+ <children>
+ #include <include/firewall/mac-group.xml.i>
+ </children>
+ </node>
</children>
</node>
-<!-- include end --> \ No newline at end of file
+<!-- include end -->
diff --git a/interface-definitions/include/firewall/common-rule-ipv4.xml.i b/interface-definitions/include/firewall/common-rule-ipv4.xml.i
index b67ef25dc..b6c1b13b3 100644
--- a/interface-definitions/include/firewall/common-rule-ipv4.xml.i
+++ b/interface-definitions/include/firewall/common-rule-ipv4.xml.i
@@ -14,7 +14,12 @@
#include <include/firewall/geoip.xml.i>
#include <include/firewall/mac-address.xml.i>
#include <include/firewall/port.xml.i>
- #include <include/firewall/source-destination-group.xml.i>
+ #include <include/firewall/source-destination-group-ipv4.xml.i>
+ <node name="group">
+ <children>
+ #include <include/firewall/mac-group.xml.i>
+ </children>
+ </node>
#include <include/firewall/source-destination-dynamic-group.xml.i>
#include <include/firewall/source-destination-remote-group.xml.i>
</children>
@@ -38,9 +43,14 @@
#include <include/firewall/geoip.xml.i>
#include <include/firewall/mac-address.xml.i>
#include <include/firewall/port.xml.i>
- #include <include/firewall/source-destination-group.xml.i>
+ #include <include/firewall/source-destination-group-ipv4.xml.i>
+ <node name="group">
+ <children>
+ #include <include/firewall/mac-group.xml.i>
+ </children>
+ </node>
#include <include/firewall/source-destination-dynamic-group.xml.i>
#include <include/firewall/source-destination-remote-group.xml.i>
</children>
</node>
-<!-- include end --> \ No newline at end of file
+<!-- include end -->
diff --git a/interface-definitions/include/firewall/common-rule-ipv6.xml.i b/interface-definitions/include/firewall/common-rule-ipv6.xml.i
index bb176fe71..65ec415fb 100644
--- a/interface-definitions/include/firewall/common-rule-ipv6.xml.i
+++ b/interface-definitions/include/firewall/common-rule-ipv6.xml.i
@@ -16,6 +16,7 @@
#include <include/firewall/port.xml.i>
#include <include/firewall/source-destination-group-ipv6.xml.i>
#include <include/firewall/source-destination-dynamic-group-ipv6.xml.i>
+ #include <include/firewall/source-destination-remote-group.xml.i>
</children>
</node>
<leafNode name="jump-target">
@@ -39,6 +40,7 @@
#include <include/firewall/port.xml.i>
#include <include/firewall/source-destination-group-ipv6.xml.i>
#include <include/firewall/source-destination-dynamic-group-ipv6.xml.i>
+ #include <include/firewall/source-destination-remote-group.xml.i>
</children>
</node>
-<!-- include end --> \ No newline at end of file
+<!-- include end -->
diff --git a/interface-definitions/include/firewall/disable-conntrack.xml.i b/interface-definitions/include/firewall/disable-conntrack.xml.i
new file mode 100644
index 000000000..96a692166
--- /dev/null
+++ b/interface-definitions/include/firewall/disable-conntrack.xml.i
@@ -0,0 +1,8 @@
+<!-- include start from firewall/disable-conntrack.xml.i -->
+<leafNode name="disable-conntrack">
+ <properties>
+ <help>Disable conntrack within this chain</help>
+ <valueless/>
+ </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/firewall/domain-group.xml.i b/interface-definitions/include/firewall/domain-group.xml.i
new file mode 100644
index 000000000..46e00ce09
--- /dev/null
+++ b/interface-definitions/include/firewall/domain-group.xml.i
@@ -0,0 +1,10 @@
+<!-- include start from firewall/domain-group.xml.i -->
+<leafNode name="domain-group">
+ <properties>
+ <help>Group of domains</help>
+ <completionHelp>
+ <path>firewall group domain-group</path>
+ </completionHelp>
+ </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/firewall/geoip.xml.i b/interface-definitions/include/firewall/geoip.xml.i
index 9fb37a574..09b2da663 100644
--- a/interface-definitions/include/firewall/geoip.xml.i
+++ b/interface-definitions/include/firewall/geoip.xml.i
@@ -7,12 +7,15 @@
<leafNode name="country-code">
<properties>
<help>GeoIP country code</help>
+ <completionHelp>
+ <list>ad ae af ag ai al am ao aq ar as at au aw ax az ba bb bd be bf bg bh bi bj bl bm bn bo bq br bs bt bv bw by bz ca cc cd cf cg ch ci ck cl cm cn co cr cu cv cw cx cy cz de dj dk dm do dz ec ee eg eh er es et fi fj fk fm fo fr ga gb gd ge gf gg gh gi gl gm gn gp gq gr gs gt gu gw gy hk hm hn hr ht hu id ie il im in io iq ir is it je jm jo jp ke kg kh ki km kn kp kr kw ky kz la lb lc li lk lr ls lt lu lv ly ma mc md me mf mg mh mk ml mm mn mo mp mq mr ms mt mu mv mw mx my mz na nc ne nf ng ni nl no np nr nu nz om pa pe pf pg ph pk pl pm pn pr ps pt pw py qa re ro rs ru rw sa sb sc sd se sg sh si sj sk sl sm sn so sr ss st sv sx sy sz tc td tf tg th tj tk tl tm tn to tr tt tv tw tz ua ug um us uy uz va vc ve vg vi vn vu wf ws ye yt za zm zw</list>
+ </completionHelp>
<valueHelp>
<format>&lt;country&gt;</format>
- <description>Country code (2 characters)</description>
+ <description>Country code (2 characters, lowercase)</description>
</valueHelp>
<constraint>
- <regex>^(ad|ae|af|ag|ai|al|am|ao|aq|ar|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bl|bm|bn|bo|bq|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cw|cx|cy|cz|de|dj|dk|dm|do|dz|ec|ee|eg|eh|er|es|et|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mf|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|ss|st|sv|sx|sy|sz|tc|td|tf|tg|th|tj|tk|tl|tm|tn|to|tr|tt|tv|tw|tz|ua|ug|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|za|zm|zw)$</regex>
+ <regex>(ad|ae|af|ag|ai|al|am|ao|aq|ar|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bl|bm|bn|bo|bq|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cw|cx|cy|cz|de|dj|dk|dm|do|dz|ec|ee|eg|eh|er|es|et|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mf|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|ss|st|sv|sx|sy|sz|tc|td|tf|tg|th|tj|tk|tl|tm|tn|to|tr|tt|tv|tw|tz|ua|ug|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|za|zm|zw)</regex>
</constraint>
<multi />
</properties>
diff --git a/interface-definitions/include/firewall/global-options.xml.i b/interface-definitions/include/firewall/global-options.xml.i
index 355b41fde..5ff5acfd8 100644
--- a/interface-definitions/include/firewall/global-options.xml.i
+++ b/interface-definitions/include/firewall/global-options.xml.i
@@ -49,12 +49,53 @@
<help>Apply configured firewall rules to traffic switched by bridges</help>
</properties>
<children>
- <leafNode name="invalid-connections">
+ <node name="accept-invalid">
<properties>
- <help>Accept ARP, DHCP and PPPoE despite they are marked as invalid connection</help>
- <valueless/>
+ <help>Accept connections despite they are marked as invalid</help>
</properties>
- </leafNode>
+ <children>
+ <leafNode name="ethernet-type">
+ <properties>
+ <help>Ethernet type</help>
+ <completionHelp>
+ <list>arp dhcp pppoe 802.1q 802.1ad pppoe-discovery wol</list>
+ </completionHelp>
+ <valueHelp>
+ <format>arp</format>
+ <description>Address Resolution Protocol (ARP)</description>
+ </valueHelp>
+ <valueHelp>
+ <format>dhcp</format>
+ <description>Dynamic Host Configuration Protocol (DHCP)</description>
+ </valueHelp>
+ <valueHelp>
+ <format>pppoe</format>
+ <description>Point to Point over Ethernet (PPPoE) Session</description>
+ </valueHelp>
+ <valueHelp>
+ <format>pppoe-discovery</format>
+ <description>PPPoE Discovery</description>
+ </valueHelp>
+ <valueHelp>
+ <format>802.1q</format>
+ <description>Customer VLAN tag type (802.1Q)</description>
+ </valueHelp>
+ <valueHelp>
+ <format>802.1ad</format>
+ <description>Service VLAN tag type (802.1ad)</description>
+ </valueHelp>
+ <valueHelp>
+ <format>wol</format>
+ <description>Wake-on-LAN magic packet</description>
+ </valueHelp>
+ <constraint>
+ <regex>(arp|dhcp|pppoe|pppoe-discovery|802.1q|802.1ad|wol)</regex>
+ </constraint>
+ <multi/>
+ </properties>
+ </leafNode>
+ </children>
+ </node>
<leafNode name="ipv4">
<properties>
<help>Apply configured IPv4 firewall rules</help>
@@ -89,6 +130,49 @@
</properties>
<defaultValue>enable</defaultValue>
</leafNode>
+ <node name="geoip">
+ <properties>
+ <help>GeoIP options</help>
+ </properties>
+ <children>
+ <leafNode name="provider">
+ <properties>
+ <help>GeoIP database provider</help>
+ <completionHelp>
+ <list>db-ip maxmind</list>
+ </completionHelp>
+ <valueHelp>
+ <format>db-ip</format>
+ <description>Use GeoIP database by DB-IP.com</description>
+ </valueHelp>
+ <valueHelp>
+ <format>maxmind</format>
+ <description>Use GeoIP database by MaxMind (Requires API key)</description>
+ </valueHelp>
+ <constraint>
+ <regex>(db-ip|maxmind)</regex>
+ </constraint>
+ </properties>
+ <defaultValue>db-ip</defaultValue>
+ </leafNode>
+ <leafNode name="maxmind-account-id">
+ <properties>
+ <help>Account ID for MaxMind GeoIP database</help>
+ </properties>
+ </leafNode>
+ <leafNode name="maxmind-license-key">
+ <properties>
+ <help>License key for MaxMind GeoIP database</help>
+ </properties>
+ </leafNode>
+ <leafNode name="maxmind-lite">
+ <properties>
+ <help>Use MaxMind GeoLite2 database</help>
+ <valueless/>
+ </properties>
+ </leafNode>
+ </children>
+ </node>
<leafNode name="ip-src-route">
<properties>
<help>Policy for handling IPv4 packets with source route option</help>
@@ -217,6 +301,14 @@
<help>Global firewall state-policy</help>
</properties>
<children>
+ <node name="offload">
+ <properties>
+ <help>All stateful forward traffic is offloaded to a flowtable</help>
+ </properties>
+ <children>
+ #include <include/firewall/offload-target.xml.i>
+ </children>
+ </node>
<node name="established">
<properties>
<help>Global firewall policy for packets part of an established connection</help>
@@ -279,7 +371,7 @@
</node>
<leafNode name="twa-hazards-protection">
<properties>
- <help>RFC1337 TCP TIME-WAIT assasination hazards protection</help>
+ <help>RFC1337 TCP TIME-WAIT assassination hazards protection</help>
<completionHelp>
<list>enable disable</list>
</completionHelp>
diff --git a/interface-definitions/include/firewall/icmpv6.xml.i b/interface-definitions/include/firewall/icmpv6.xml.i
index c0118626e..9631f0012 100644
--- a/interface-definitions/include/firewall/icmpv6.xml.i
+++ b/interface-definitions/include/firewall/icmpv6.xml.i
@@ -6,7 +6,7 @@
<children>
<leafNode name="code">
<properties>
- <help>ICMPv6 code</help>
+ <help>ICMPv6 code field - depends on the message type</help>
<valueHelp>
<format>u32:0-255</format>
<description>ICMPv6 code (0-255)</description>
@@ -18,10 +18,14 @@
</leafNode>
<leafNode name="type">
<properties>
- <help>ICMPv6 type</help>
+ <help>ICMPv6 message type</help>
<valueHelp>
- <format>u32:0-255</format>
- <description>ICMPv6 type (0-255)</description>
+ <format>u32:0-127</format>
+ <description>ICMPv6 error message</description>
+ </valueHelp>
+ <valueHelp>
+ <format>u32:128-255</format>
+ <description>ICMPv6 information message</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 0-255"/>
diff --git a/interface-definitions/include/firewall/ipv4-hook-forward.xml.i b/interface-definitions/include/firewall/ipv4-hook-forward.xml.i
index a2da4b701..8f04d6739 100644
--- a/interface-definitions/include/firewall/ipv4-hook-forward.xml.i
+++ b/interface-definitions/include/firewall/ipv4-hook-forward.xml.i
@@ -9,6 +9,7 @@
<help>IPv4 firewall forward filter</help>
</properties>
<children>
+ #include <include/firewall/disable-conntrack.xml.i>
#include <include/firewall/default-action-base-chains.xml.i>
#include <include/firewall/default-log.xml.i>
#include <include/generic-description.xml.i>
diff --git a/interface-definitions/include/firewall/ipv4-hook-input.xml.i b/interface-definitions/include/firewall/ipv4-hook-input.xml.i
index 491d1a9f3..64366eac0 100644
--- a/interface-definitions/include/firewall/ipv4-hook-input.xml.i
+++ b/interface-definitions/include/firewall/ipv4-hook-input.xml.i
@@ -9,6 +9,7 @@
<help>IPv4 firewall input filter</help>
</properties>
<children>
+ #include <include/firewall/disable-conntrack.xml.i>
#include <include/firewall/default-action-base-chains.xml.i>
#include <include/firewall/default-log.xml.i>
#include <include/generic-description.xml.i>
diff --git a/interface-definitions/include/firewall/ipv4-hook-output.xml.i b/interface-definitions/include/firewall/ipv4-hook-output.xml.i
index f68136557..14ea1073b 100644
--- a/interface-definitions/include/firewall/ipv4-hook-output.xml.i
+++ b/interface-definitions/include/firewall/ipv4-hook-output.xml.i
@@ -9,6 +9,7 @@
<help>IPv4 firewall output filter</help>
</properties>
<children>
+ #include <include/firewall/disable-conntrack.xml.i>
#include <include/firewall/default-action-base-chains.xml.i>
#include <include/firewall/default-log.xml.i>
#include <include/generic-description.xml.i>
diff --git a/interface-definitions/include/firewall/ipv6-hook-forward.xml.i b/interface-definitions/include/firewall/ipv6-hook-forward.xml.i
index 79898d691..0319c915a 100644
--- a/interface-definitions/include/firewall/ipv6-hook-forward.xml.i
+++ b/interface-definitions/include/firewall/ipv6-hook-forward.xml.i
@@ -9,6 +9,7 @@
<help>IPv6 firewall forward filter</help>
</properties>
<children>
+ #include <include/firewall/disable-conntrack.xml.i>
#include <include/firewall/default-action-base-chains.xml.i>
#include <include/firewall/default-log.xml.i>
#include <include/generic-description.xml.i>
diff --git a/interface-definitions/include/firewall/ipv6-hook-input.xml.i b/interface-definitions/include/firewall/ipv6-hook-input.xml.i
index 154b10259..ae78f8910 100644
--- a/interface-definitions/include/firewall/ipv6-hook-input.xml.i
+++ b/interface-definitions/include/firewall/ipv6-hook-input.xml.i
@@ -9,6 +9,7 @@
<help>IPv6 firewall input filter</help>
</properties>
<children>
+ #include <include/firewall/disable-conntrack.xml.i>
#include <include/firewall/default-action-base-chains.xml.i>
#include <include/firewall/default-log.xml.i>
#include <include/generic-description.xml.i>
diff --git a/interface-definitions/include/firewall/ipv6-hook-output.xml.i b/interface-definitions/include/firewall/ipv6-hook-output.xml.i
index 9a6d0bb77..96976b4a8 100644
--- a/interface-definitions/include/firewall/ipv6-hook-output.xml.i
+++ b/interface-definitions/include/firewall/ipv6-hook-output.xml.i
@@ -9,6 +9,7 @@
<help>IPv6 firewall output filter</help>
</properties>
<children>
+ #include <include/firewall/disable-conntrack.xml.i>
#include <include/firewall/default-action-base-chains.xml.i>
#include <include/firewall/default-log.xml.i>
#include <include/generic-description.xml.i>
diff --git a/interface-definitions/include/firewall/match-ether-type.xml.i b/interface-definitions/include/firewall/match-ether-type.xml.i
index abfa9034d..536e59bb3 100644
--- a/interface-definitions/include/firewall/match-ether-type.xml.i
+++ b/interface-definitions/include/firewall/match-ether-type.xml.i
@@ -15,7 +15,7 @@
</valueHelp>
<valueHelp>
<format>arp</format>
- <description>Adress Resolution Protocol</description>
+ <description>Address Resolution Protocol</description>
</valueHelp>
<valueHelp>
<format>_ipv4</format>
diff --git a/interface-definitions/include/firewall/port-group.xml.i b/interface-definitions/include/firewall/port-group.xml.i
new file mode 100644
index 000000000..297f0d781
--- /dev/null
+++ b/interface-definitions/include/firewall/port-group.xml.i
@@ -0,0 +1,10 @@
+ <!-- include start from firewall/port-group.xml.i -->
+ <leafNode name="port-group">
+ <properties>
+ <help>Group of ports</help>
+ <completionHelp>
+ <path>firewall group port-group</path>
+ </completionHelp>
+ </properties>
+ </leafNode>
+ <!-- include end -->
diff --git a/interface-definitions/include/firewall/source-destination-group-inet.xml.i b/interface-definitions/include/firewall/source-destination-group-inet.xml.i
index 174051624..775fda9b3 100644
--- a/interface-definitions/include/firewall/source-destination-group-inet.xml.i
+++ b/interface-definitions/include/firewall/source-destination-group-inet.xml.i
@@ -20,7 +20,6 @@
</completionHelp>
</properties>
</leafNode>
- #include <include/firewall/mac-group.xml.i>
<leafNode name="ipv4-network-group">
<properties>
<help>Group of IPv4 networks</help>
@@ -37,14 +36,8 @@
</completionHelp>
</properties>
</leafNode>
- <leafNode name="port-group">
- <properties>
- <help>Group of ports</help>
- <completionHelp>
- <path>firewall group port-group</path>
- </completionHelp>
- </properties>
- </leafNode>
+ #include <include/firewall/mac-group.xml.i>
+ #include <include/firewall/port-group.xml.i>
</children>
</node>
<!-- include end -->
diff --git a/interface-definitions/include/firewall/source-destination-group-ipv4.xml.i b/interface-definitions/include/firewall/source-destination-group-ipv4.xml.i
index 8c34fb933..ccee5b247 100644
--- a/interface-definitions/include/firewall/source-destination-group-ipv4.xml.i
+++ b/interface-definitions/include/firewall/source-destination-group-ipv4.xml.i
@@ -12,14 +12,6 @@
</completionHelp>
</properties>
</leafNode>
- <leafNode name="domain-group">
- <properties>
- <help>Group of domains</help>
- <completionHelp>
- <path>firewall group domain-group</path>
- </completionHelp>
- </properties>
- </leafNode>
<leafNode name="network-group">
<properties>
<help>Group of networks</help>
@@ -28,14 +20,8 @@
</completionHelp>
</properties>
</leafNode>
- <leafNode name="port-group">
- <properties>
- <help>Group of ports</help>
- <completionHelp>
- <path>firewall group port-group</path>
- </completionHelp>
- </properties>
- </leafNode>
+ #include <include/firewall/domain-group.xml.i>
+ #include <include/firewall/port-group.xml.i>
</children>
</node>
<!-- include end -->
diff --git a/interface-definitions/include/firewall/source-destination-group-ipv6.xml.i b/interface-definitions/include/firewall/source-destination-group-ipv6.xml.i
index 2a42d236c..43a9e9cf5 100644
--- a/interface-definitions/include/firewall/source-destination-group-ipv6.xml.i
+++ b/interface-definitions/include/firewall/source-destination-group-ipv6.xml.i
@@ -12,15 +12,6 @@
</completionHelp>
</properties>
</leafNode>
- <leafNode name="domain-group">
- <properties>
- <help>Group of domains</help>
- <completionHelp>
- <path>firewall group domain-group</path>
- </completionHelp>
- </properties>
- </leafNode>
- #include <include/firewall/mac-group.xml.i>
<leafNode name="network-group">
<properties>
<help>Group of networks</help>
@@ -29,14 +20,9 @@
</completionHelp>
</properties>
</leafNode>
- <leafNode name="port-group">
- <properties>
- <help>Group of ports</help>
- <completionHelp>
- <path>firewall group port-group</path>
- </completionHelp>
- </properties>
- </leafNode>
+ #include <include/firewall/mac-group.xml.i>
+ #include <include/firewall/domain-group.xml.i>
+ #include <include/firewall/port-group.xml.i>
</children>
</node>
<!-- include end -->
diff --git a/interface-definitions/include/firewall/source-destination-group.xml.i b/interface-definitions/include/firewall/source-destination-group.xml.i
deleted file mode 100644
index 6ebee356c..000000000
--- a/interface-definitions/include/firewall/source-destination-group.xml.i
+++ /dev/null
@@ -1,42 +0,0 @@
-<!-- include start from firewall/source-destination-group.xml.i -->
-<node name="group">
- <properties>
- <help>Group</help>
- </properties>
- <children>
- <leafNode name="address-group">
- <properties>
- <help>Group of addresses</help>
- <completionHelp>
- <path>firewall group address-group</path>
- </completionHelp>
- </properties>
- </leafNode>
- <leafNode name="domain-group">
- <properties>
- <help>Group of domains</help>
- <completionHelp>
- <path>firewall group domain-group</path>
- </completionHelp>
- </properties>
- </leafNode>
- #include <include/firewall/mac-group.xml.i>
- <leafNode name="network-group">
- <properties>
- <help>Group of networks</help>
- <completionHelp>
- <path>firewall group network-group</path>
- </completionHelp>
- </properties>
- </leafNode>
- <leafNode name="port-group">
- <properties>
- <help>Group of ports</help>
- <completionHelp>
- <path>firewall group port-group</path>
- </completionHelp>
- </properties>
- </leafNode>
- </children>
-</node>
-<!-- include end -->
diff --git a/interface-definitions/include/generic-password.xml.i b/interface-definitions/include/generic-password.xml.i
index 76d5f12d8..0048e5173 100644
--- a/interface-definitions/include/generic-password.xml.i
+++ b/interface-definitions/include/generic-password.xml.i
@@ -7,9 +7,9 @@
<description>Password</description>
</valueHelp>
<constraint>
- <regex>[[:ascii:]]{1,128}</regex>
+ <regex>[[:ascii:]]{1,512}</regex>
</constraint>
- <constraintErrorMessage>Password is limited to ASCII characters only, with a total length of 128</constraintErrorMessage>
+ <constraintErrorMessage>Password is limited to ASCII characters only, with a total length of 512</constraintErrorMessage>
</properties>
</leafNode>
<!-- include end -->
diff --git a/interface-definitions/include/haproxy/listen-address.xml.i b/interface-definitions/include/haproxy/listen-address.xml.i
new file mode 100644
index 000000000..785b46117
--- /dev/null
+++ b/interface-definitions/include/haproxy/listen-address.xml.i
@@ -0,0 +1,30 @@
+<!-- include start from haproxy/listen-address.xml.i -->
+<tagNode name="listen-address">
+ <properties>
+ <help>Local IP addresses to listen on</help>
+ <completionHelp>
+ <script>${vyos_completion_dir}/list_local_ips.sh --both</script>
+ </completionHelp>
+ <valueHelp>
+ <format>ipv4</format>
+ <description>IPv4 address to listen for incoming connections</description>
+ </valueHelp>
+ <valueHelp>
+ <format>ipv6</format>
+ <description>IPv6 address to listen for incoming connections</description>
+ </valueHelp>
+ <constraint>
+ <validator name="ip-address"/>
+ <validator name="ipv6-link-local"/>
+ </constraint>
+ </properties>
+ <children>
+ <leafNode name="accept-proxy">
+ <properties>
+ <help>Accept PROXY protocol</help>
+ <valueless/>
+ </properties>
+ </leafNode>
+ </children>
+</tagNode>
+<!-- include end -->
diff --git a/interface-definitions/include/haproxy/logging.xml.i b/interface-definitions/include/haproxy/logging.xml.i
index e0af54fa4..315c959bf 100644
--- a/interface-definitions/include/haproxy/logging.xml.i
+++ b/interface-definitions/include/haproxy/logging.xml.i
@@ -4,7 +4,137 @@
<help>Logging parameters</help>
</properties>
<children>
- #include <include/syslog-facility.xml.i>
+ <tagNode name="facility">
+ <properties>
+ <help>Facility for logging</help>
+ <completionHelp>
+ <list>auth cron daemon kern lpr mail news syslog user uucp local0 local1 local2 local3 local4 local5 local6 local7</list>
+ </completionHelp>
+ <constraint>
+ <regex>(auth|cron|daemon|kern|lpr|mail|news|syslog|user|uucp|local0|local1|local2|local3|local4|local5|local6|local7)</regex>
+ </constraint>
+ <constraintErrorMessage>Invalid facility type</constraintErrorMessage>
+ <valueHelp>
+ <format>auth</format>
+ <description>Authentication and authorization</description>
+ </valueHelp>
+ <valueHelp>
+ <format>cron</format>
+ <description>Cron daemon</description>
+ </valueHelp>
+ <valueHelp>
+ <format>daemon</format>
+ <description>System daemons</description>
+ </valueHelp>
+ <valueHelp>
+ <format>kern</format>
+ <description>Kernel</description>
+ </valueHelp>
+ <valueHelp>
+ <format>lpr</format>
+ <description>Line printer spooler</description>
+ </valueHelp>
+ <valueHelp>
+ <format>mail</format>
+ <description>Mail subsystem</description>
+ </valueHelp>
+ <valueHelp>
+ <format>news</format>
+ <description>USENET subsystem</description>
+ </valueHelp>
+ <valueHelp>
+ <format>syslog</format>
+ <description>Authentication and authorization</description>
+ </valueHelp>
+ <valueHelp>
+ <format>user</format>
+ <description>Application processes</description>
+ </valueHelp>
+ <valueHelp>
+ <format>uucp</format>
+ <description>UUCP subsystem</description>
+ </valueHelp>
+ <valueHelp>
+ <format>local0</format>
+ <description>Local facility 0</description>
+ </valueHelp>
+ <valueHelp>
+ <format>local1</format>
+ <description>Local facility 1</description>
+ </valueHelp>
+ <valueHelp>
+ <format>local2</format>
+ <description>Local facility 2</description>
+ </valueHelp>
+ <valueHelp>
+ <format>local3</format>
+ <description>Local facility 3</description>
+ </valueHelp>
+ <valueHelp>
+ <format>local4</format>
+ <description>Local facility 4</description>
+ </valueHelp>
+ <valueHelp>
+ <format>local5</format>
+ <description>Local facility 5</description>
+ </valueHelp>
+ <valueHelp>
+ <format>local6</format>
+ <description>Local facility 6</description>
+ </valueHelp>
+ <valueHelp>
+ <format>local7</format>
+ <description>Local facility 7</description>
+ </valueHelp>
+ </properties>
+ <children>
+ <leafNode name="level">
+ <properties>
+ <help>Logging level</help>
+ <completionHelp>
+ <list>emerg alert crit err warning notice info debug</list>
+ </completionHelp>
+ <valueHelp>
+ <format>emerg</format>
+ <description>Emergency messages</description>
+ </valueHelp>
+ <valueHelp>
+ <format>alert</format>
+ <description>Urgent messages</description>
+ </valueHelp>
+ <valueHelp>
+ <format>crit</format>
+ <description>Critical messages</description>
+ </valueHelp>
+ <valueHelp>
+ <format>err</format>
+ <description>Error messages</description>
+ </valueHelp>
+ <valueHelp>
+ <format>warning</format>
+ <description>Warning messages</description>
+ </valueHelp>
+ <valueHelp>
+ <format>notice</format>
+ <description>Messages for further investigation</description>
+ </valueHelp>
+ <valueHelp>
+ <format>info</format>
+ <description>Informational messages</description>
+ </valueHelp>
+ <valueHelp>
+ <format>debug</format>
+ <description>Debug messages</description>
+ </valueHelp>
+ <constraint>
+ <regex>(emerg|alert|crit|err|warning|notice|info|debug)</regex>
+ </constraint>
+ <constraintErrorMessage>Invalid loglevel</constraintErrorMessage>
+ </properties>
+ <defaultValue>err</defaultValue>
+ </leafNode>
+ </children>
+ </tagNode>
</children>
</node>
<!-- include end -->
diff --git a/interface-definitions/include/haproxy/rule-backend.xml.i b/interface-definitions/include/haproxy/rule-backend.xml.i
index 1df9d5dcf..20263c23c 100644
--- a/interface-definitions/include/haproxy/rule-backend.xml.i
+++ b/interface-definitions/include/haproxy/rule-backend.xml.i
@@ -12,19 +12,7 @@
<constraintErrorMessage>Proxy rule number must be between 1 and 10000</constraintErrorMessage>
</properties>
<children>
- <leafNode name="domain-name">
- <properties>
- <help>Domain name to match</help>
- <valueHelp>
- <format>txt</format>
- <description>Domain address to match</description>
- </valueHelp>
- <constraint>
- <validator name="fqdn"/>
- </constraint>
- <multi/>
- </properties>
- </leafNode>
+ #include <include/haproxy/rule-match-domain.xml.i>
<node name="set">
<properties>
<help>Proxy modifications</help>
@@ -38,7 +26,7 @@
<description>Set URL location</description>
</valueHelp>
<constraint>
- <regex>^\/[\w\-.\/]+$</regex>
+ <regex>\/[\w\-.\/]+</regex>
</constraint>
<constraintErrorMessage>Incorrect URL format</constraintErrorMessage>
</properties>
@@ -90,7 +78,7 @@
<description>Begin URL</description>
</valueHelp>
<constraint>
- <regex>^\/[\w\-.\/]+$</regex>
+ <regex>\/[\w\-.\/]+</regex>
</constraint>
<constraintErrorMessage>Incorrect URL format</constraintErrorMessage>
<multi/>
@@ -104,7 +92,7 @@
<description>End URL</description>
</valueHelp>
<constraint>
- <regex>^\/[\w\-.\/]+$</regex>
+ <regex>\/[\w\-.\/]+</regex>
</constraint>
<constraintErrorMessage>Incorrect URL format</constraintErrorMessage>
<multi/>
@@ -118,7 +106,7 @@
<description>Exactly URL</description>
</valueHelp>
<constraint>
- <regex>^\/[\w\-.\/]*$</regex>
+ <regex>\/[\w\-.\/]*</regex>
</constraint>
<constraintErrorMessage>Incorrect URL format</constraintErrorMessage>
<multi/>
diff --git a/interface-definitions/include/haproxy/rule-frontend.xml.i b/interface-definitions/include/haproxy/rule-frontend.xml.i
index eabdd8632..6237fd44b 100644
--- a/interface-definitions/include/haproxy/rule-frontend.xml.i
+++ b/interface-definitions/include/haproxy/rule-frontend.xml.i
@@ -12,19 +12,7 @@
<constraintErrorMessage>Proxy rule number must be between 1 and 10000</constraintErrorMessage>
</properties>
<children>
- <leafNode name="domain-name">
- <properties>
- <help>Domain name to match</help>
- <valueHelp>
- <format>txt</format>
- <description>Domain address to match</description>
- </valueHelp>
- <constraint>
- <validator name="fqdn"/>
- </constraint>
- <multi/>
- </properties>
- </leafNode>
+ #include <include/haproxy/rule-match-domain.xml.i>
<node name="set">
<properties>
<help>Proxy modifications</help>
@@ -32,15 +20,15 @@
<children>
<leafNode name="redirect-location">
<properties>
- <help>Set URL location</help>
+ <help>Set path location</help>
<valueHelp>
<format>url</format>
- <description>Set URL location</description>
+ <description>Set path location</description>
</valueHelp>
<constraint>
- <regex>^\/[\w\-.\/]+$</regex>
+ <regex>\/[\w\-.\/]+</regex>
</constraint>
- <constraintErrorMessage>Incorrect URL format</constraintErrorMessage>
+ <constraintErrorMessage>Incorrect path format</constraintErrorMessage>
</properties>
</leafNode>
<leafNode name="backend">
@@ -93,7 +81,7 @@
<description>Begin URL</description>
</valueHelp>
<constraint>
- <regex>^\/[\w\-.\/]+$</regex>
+ <regex>\/[\w\-.\/]+</regex>
</constraint>
<constraintErrorMessage>Incorrect URL format</constraintErrorMessage>
<multi/>
@@ -107,7 +95,7 @@
<description>End URL</description>
</valueHelp>
<constraint>
- <regex>^\/[\w\-.\/]+$</regex>
+ <regex>\/[\w\-.\/]+</regex>
</constraint>
<constraintErrorMessage>Incorrect URL format</constraintErrorMessage>
<multi/>
@@ -121,7 +109,7 @@
<description>Exactly URL</description>
</valueHelp>
<constraint>
- <regex>^\/[\w\-.\/]+$</regex>
+ <regex>\/[\w\-.\/]+</regex>
</constraint>
<constraintErrorMessage>Incorrect URL format</constraintErrorMessage>
<multi/>
diff --git a/interface-definitions/include/haproxy/rule-match-domain.xml.i b/interface-definitions/include/haproxy/rule-match-domain.xml.i
new file mode 100644
index 000000000..2ec61a940
--- /dev/null
+++ b/interface-definitions/include/haproxy/rule-match-domain.xml.i
@@ -0,0 +1,21 @@
+<!-- include start from haproxy/rule-match-domain.xml.i -->
+<leafNode name="domain-name">
+ <properties>
+ <help>Domain name to match</help>
+ <valueHelp>
+ <format>txt</format>
+ <description>Domain address to match</description>
+ </valueHelp>
+ <constraint>
+ <validator name="fqdn"/>
+ </constraint>
+ <multi/>
+ </properties>
+</leafNode>
+<leafNode name="wildcard-domain">
+ <properties>
+ <help>Match subdomains of specified domain(s)</help>
+ <valueless/>
+ </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/interface/address-ipv4-ipv6-dhcp.xml.i b/interface-definitions/include/interface/address-ipv4-ipv6-dhcp.xml.i
index 5057ed9ae..6e96185e7 100644
--- a/interface-definitions/include/interface/address-ipv4-ipv6-dhcp.xml.i
+++ b/interface-definitions/include/interface/address-ipv4-ipv6-dhcp.xml.i
@@ -22,7 +22,7 @@
<description>Dynamic Host Configuration Protocol for IPv6</description>
</valueHelp>
<constraint>
- <validator name="ip-host"/>
+ <validator name="interface-address"/>
<regex>(dhcp|dhcpv6)</regex>
</constraint>
<multi/>
diff --git a/interface-definitions/include/interface/address-ipv4-ipv6.xml.i b/interface-definitions/include/interface/address-ipv4-ipv6.xml.i
index d689da5aa..48802c4dc 100644
--- a/interface-definitions/include/interface/address-ipv4-ipv6.xml.i
+++ b/interface-definitions/include/interface/address-ipv4-ipv6.xml.i
@@ -11,7 +11,7 @@
<description>IPv6 address and prefix length</description>
</valueHelp>
<constraint>
- <validator name="ip-host"/>
+ <validator name="interface-address"/>
</constraint>
<multi/>
</properties>
diff --git a/interface-definitions/include/interface/arp-cache-timeout.xml.i b/interface-definitions/include/interface/arp-cache-timeout.xml.i
index 06d7ffe96..f3cbac24d 100644
--- a/interface-definitions/include/interface/arp-cache-timeout.xml.i
+++ b/interface-definitions/include/interface/arp-cache-timeout.xml.i
@@ -4,7 +4,7 @@
<help>ARP cache entry timeout in seconds</help>
<valueHelp>
<format>u32:1-86400</format>
- <description>ARP cache entry timout in seconds</description>
+ <description>ARP cache entry timeout in seconds</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 1-86400"/>
diff --git a/interface-definitions/include/interface/dhcpv6-options.xml.i b/interface-definitions/include/interface/dhcpv6-options.xml.i
index 68d1b172f..2dc0c0aaa 100644
--- a/interface-definitions/include/interface/dhcpv6-options.xml.i
+++ b/interface-definitions/include/interface/dhcpv6-options.xml.i
@@ -11,6 +11,18 @@
<valueless/>
</properties>
</leafNode>
+ <leafNode name="no-request-domain-name">
+ <properties>
+ <help>Do not request domain name</help>
+ <valueless/>
+ </properties>
+ </leafNode>
+ <leafNode name="no-request-dns">
+ <properties>
+ <help>Do not request DNS servers</help>
+ <valueless/>
+ </properties>
+ </leafNode>
<tagNode name="pd">
<properties>
<help>DHCPv6 prefix delegation interface statement</help>
@@ -42,6 +54,13 @@
<completionHelp>
<script>${vyos_completion_dir}/list_interfaces --broadcast</script>
</completionHelp>
+ <valueHelp>
+ <format>txt</format>
+ <description>Interface name</description>
+ </valueHelp>
+ <constraint>
+ #include <include/constraint/interface-name.xml.i>
+ </constraint>
</properties>
<children>
<leafNode name="address">
diff --git a/interface-definitions/include/interface/ipv6-address-interface-identifier.xml.i b/interface-definitions/include/interface/ipv6-address-interface-identifier.xml.i
new file mode 100644
index 000000000..d173dfdb8
--- /dev/null
+++ b/interface-definitions/include/interface/ipv6-address-interface-identifier.xml.i
@@ -0,0 +1,15 @@
+<!-- include start from interface/ipv6-address-interface-identifier.xml.i -->
+<leafNode name="interface-identifier">
+ <properties>
+ <help>SLAAC interface identifier</help>
+ <valueHelp>
+ <format>::h:h:h:h</format>
+ <description>Interface identifier</description>
+ </valueHelp>
+ <constraint>
+ <regex>::([0-9a-fA-F]{1,4}(:[0-9a-fA-F]{1,4}){0,3})</regex>
+ </constraint>
+ <constraintErrorMessage>Interface identifier format must start with :: and may contain up four hextets (::h:h:h:h)</constraintErrorMessage>
+ </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/interface/ipv6-address.xml.i b/interface-definitions/include/interface/ipv6-address.xml.i
deleted file mode 100644
index e1bdf02fd..000000000
--- a/interface-definitions/include/interface/ipv6-address.xml.i
+++ /dev/null
@@ -1,12 +0,0 @@
-<!-- include start from interface/ipv6-address.xml.i -->
-<node name="address">
- <properties>
- <help>IPv6 address configuration modes</help>
- </properties>
- <children>
- #include <include/interface/ipv6-address-autoconf.xml.i>
- #include <include/interface/ipv6-address-eui64.xml.i>
- #include <include/interface/ipv6-address-no-default-link-local.xml.i>
- </children>
-</node>
-<!-- include end -->
diff --git a/interface-definitions/include/interface/ipv6-dup-addr-detect-transmits.xml.i b/interface-definitions/include/interface/ipv6-dup-addr-detect-transmits.xml.i
index 3b9294dd0..82bf52876 100644
--- a/interface-definitions/include/interface/ipv6-dup-addr-detect-transmits.xml.i
+++ b/interface-definitions/include/interface/ipv6-dup-addr-detect-transmits.xml.i
@@ -4,7 +4,7 @@
<help>Number of NS messages to send while performing DAD</help>
<valueHelp>
<format>u32:0</format>
- <description>Disable Duplicate Address Dectection (DAD)</description>
+ <description>Disable Duplicate Address Detection (DAD)</description>
</valueHelp>
<valueHelp>
<format>u32:1-n</format>
diff --git a/interface-definitions/include/interface/ipv6-options-with-nd.xml.i b/interface-definitions/include/interface/ipv6-options-with-nd.xml.i
new file mode 100644
index 000000000..5894104b3
--- /dev/null
+++ b/interface-definitions/include/interface/ipv6-options-with-nd.xml.i
@@ -0,0 +1,9 @@
+ <node name="ipv6">
+ <children>
+ <node name="address">
+ <children>
+ #include <include/interface/ipv6-address-interface-identifier.xml.i>
+ </children>
+ </node>
+ </children>
+ </node>
diff --git a/interface-definitions/include/interface/ipv6-options.xml.i b/interface-definitions/include/interface/ipv6-options.xml.i
index ec6ec64ee..f84a9f2cd 100644
--- a/interface-definitions/include/interface/ipv6-options.xml.i
+++ b/interface-definitions/include/interface/ipv6-options.xml.i
@@ -8,9 +8,18 @@
#include <include/interface/base-reachable-time.xml.i>
#include <include/interface/disable-forwarding.xml.i>
#include <include/interface/ipv6-accept-dad.xml.i>
- #include <include/interface/ipv6-address.xml.i>
#include <include/interface/ipv6-dup-addr-detect-transmits.xml.i>
#include <include/interface/source-validation.xml.i>
+ <node name="address">
+ <properties>
+ <help>IPv6 address configuration modes</help>
+ </properties>
+ <children>
+ #include <include/interface/ipv6-address-autoconf.xml.i>
+ #include <include/interface/ipv6-address-eui64.xml.i>
+ #include <include/interface/ipv6-address-no-default-link-local.xml.i>
+ </children>
+ </node>
</children>
</node>
<!-- include end -->
diff --git a/interface-definitions/include/interface/vif-s.xml.i b/interface-definitions/include/interface/vif-s.xml.i
index 02e7ab057..65ca10207 100644
--- a/interface-definitions/include/interface/vif-s.xml.i
+++ b/interface-definitions/include/interface/vif-s.xml.i
@@ -21,6 +21,7 @@
#include <include/interface/vlan-protocol.xml.i>
#include <include/interface/ipv4-options.xml.i>
#include <include/interface/ipv6-options.xml.i>
+ #include <include/interface/ipv6-options-with-nd.xml.i>
#include <include/interface/mac.xml.i>
#include <include/interface/mirror.xml.i>
#include <include/interface/mtu-68-16000.xml.i>
@@ -41,6 +42,7 @@
#include <include/interface/disable.xml.i>
#include <include/interface/ipv4-options.xml.i>
#include <include/interface/ipv6-options.xml.i>
+ #include <include/interface/ipv6-options-with-nd.xml.i>
#include <include/interface/mac.xml.i>
#include <include/interface/mirror.xml.i>
#include <include/interface/mtu-68-16000.xml.i>
diff --git a/interface-definitions/include/interface/vif.xml.i b/interface-definitions/include/interface/vif.xml.i
index ec3921bf6..87f91c5ce 100644
--- a/interface-definitions/include/interface/vif.xml.i
+++ b/interface-definitions/include/interface/vif.xml.i
@@ -46,6 +46,7 @@
</leafNode>
#include <include/interface/ipv4-options.xml.i>
#include <include/interface/ipv6-options.xml.i>
+ #include <include/interface/ipv6-options-with-nd.xml.i>
#include <include/interface/mac.xml.i>
#include <include/interface/mirror.xml.i>
#include <include/interface/mtu-68-16000.xml.i>
diff --git a/interface-definitions/include/ipsec/childless.xml.i b/interface-definitions/include/ipsec/childless.xml.i
new file mode 100644
index 000000000..76ba8d548
--- /dev/null
+++ b/interface-definitions/include/ipsec/childless.xml.i
@@ -0,0 +1,29 @@
+<!-- include start from ipsec/childless.xml.i -->
+<leafNode name="childless">
+ <properties>
+ <help>Enable support for childless IKE SA initiation</help>
+ <completionHelp>
+ <list>allow prefer force never</list>
+ </completionHelp>
+ <valueHelp>
+ <format>allow</format>
+ <description>Accept childless IKE SA in responder mode. Create regular IKE SA in initiator mode</description>
+ </valueHelp>
+ <valueHelp>
+ <format>prefer</format>
+ <description>In both responder and initiator modes, accept and create childless IKE SA correspondingly</description>
+ </valueHelp>
+ <valueHelp>
+ <format>force</format>
+ <description>Require the use of childless IKE SA in both responder and initiator modes</description>
+ </valueHelp>
+ <valueHelp>
+ <format>never</format>
+ <description>Disable support for childless IKE SAs when acting as a responder</description>
+ </valueHelp>
+ <constraint>
+ <regex>(allow|prefer|force|never)</regex>
+ </constraint>
+ </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/ipsec/ppk.xml.i b/interface-definitions/include/ipsec/ppk.xml.i
new file mode 100644
index 000000000..bd420766c
--- /dev/null
+++ b/interface-definitions/include/ipsec/ppk.xml.i
@@ -0,0 +1,24 @@
+<!-- include start from ipsec/ppk.xml.i -->
+<node name="ppk">
+ <properties>
+ <help>Post-quantum preshared key</help>
+ </properties>
+ <children>
+ <leafNode name="id">
+ <properties>
+ <help>Post-quantum preshared key for this connection</help>
+ <valueHelp>
+ <format>txt</format>
+ <description>ID used for PPK</description>
+ </valueHelp>
+ </properties>
+ </leafNode>
+ <leafNode name="required">
+ <properties>
+ <help>Require a valid PPK for connection to establish</help>
+ <valueless/>
+ </properties>
+ </leafNode>
+ </children>
+</node>
+<!-- include end -->
diff --git a/interface-definitions/include/isis/exclude-interface.xml.i b/interface-definitions/include/isis/exclude-interface.xml.i
new file mode 100644
index 000000000..87399b43f
--- /dev/null
+++ b/interface-definitions/include/isis/exclude-interface.xml.i
@@ -0,0 +1,10 @@
+<!-- include start from isis/exclude-interface.xml.i -->
+<node name="exclude">
+ <properties>
+ <help>Exclude interfaces from fast reroute</help>
+ </properties>
+ <children>
+ #include <include/generic-interface-multi.xml.i>
+ </children>
+</node>
+<!-- include end --> \ No newline at end of file
diff --git a/interface-definitions/include/isis/frr-maxmetric.xml.i b/interface-definitions/include/isis/frr-maxmetric.xml.i
new file mode 100644
index 000000000..2e1cad19d
--- /dev/null
+++ b/interface-definitions/include/isis/frr-maxmetric.xml.i
@@ -0,0 +1,14 @@
+<!-- include start from isis/frr-maxmetric.xml.i -->
+<leafNode name="maximum-metric">
+ <properties>
+ <help>Limit remote LFA node selection within the metric</help>
+ <valueHelp>
+ <format>u32:1-16777215</format>
+ <description>Metric value</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 1-16777215"/>
+ </constraint>
+ </properties>
+</leafNode>
+<!-- include end --> \ No newline at end of file
diff --git a/interface-definitions/include/isis/node-protection.xml.i b/interface-definitions/include/isis/node-protection.xml.i
new file mode 100644
index 000000000..2dda81c0c
--- /dev/null
+++ b/interface-definitions/include/isis/node-protection.xml.i
@@ -0,0 +1,15 @@
+<!-- include start from isis/node-protection.xml.i -->
+<node name="node-protection">
+ <properties>
+ <help>Protect against node failures</help>
+ </properties>
+ <children>
+ <leafNode name="link-fallback">
+ <properties>
+ <help>Enable link-protection fallback</help>
+ <valueless/>
+ </properties>
+ </leafNode>
+ </children>
+</node>
+<!-- include end --> \ No newline at end of file
diff --git a/interface-definitions/include/isis/protocol-common-config.xml.i b/interface-definitions/include/isis/protocol-common-config.xml.i
index e0a7e62b6..6a7388c99 100644
--- a/interface-definitions/include/isis/protocol-common-config.xml.i
+++ b/interface-definitions/include/isis/protocol-common-config.xml.i
@@ -98,6 +98,7 @@
<validator name="numeric" argument="--range 1-120"/>
</constraint>
</properties>
+ <defaultValue>30</defaultValue>
</leafNode>
<leafNode name="lsp-mtu">
<properties>
@@ -116,13 +117,14 @@
<properties>
<help>LSP refresh interval</help>
<valueHelp>
- <format>u32:1-65235</format>
+ <format>u32:2-65235</format>
<description>LSP refresh interval in seconds</description>
</valueHelp>
<constraint>
- <validator name="numeric" argument="--range 1-65235"/>
+ <validator name="numeric" argument="--range 2-65235"/>
</constraint>
</properties>
+ <defaultValue>900</defaultValue>
</leafNode>
<leafNode name="max-lsp-lifetime">
<properties>
@@ -135,6 +137,7 @@
<validator name="numeric" argument="--range 1-65535"/>
</constraint>
</properties>
+ <defaultValue>1200</defaultValue>
</leafNode>
<leafNode name="metric-style">
<properties>
@@ -266,6 +269,12 @@
</constraint>
</properties>
</leafNode>
+ <leafNode name="export">
+ <properties>
+ <help>Export Traffic Engineering Database, see options under protocols traffic-engineering</help>
+ <valueless/>
+ </properties>
+ </leafNode>
</children>
</node>
<node name="segment-routing">
@@ -275,7 +284,7 @@
<children>
<node name="global-block">
<properties>
- <help>Segment Routing Global Block label range</help>
+ <help>Segment-Routing Global Block label range</help>
</properties>
<children>
#include <include/segment-routing-label-value.xml.i>
@@ -283,7 +292,7 @@
</node>
<node name="local-block">
<properties>
- <help>Segment Routing Local Block label range</help>
+ <help>Segment-Routing Local Block label range</help>
</properties>
<children>
#include <include/segment-routing-label-value.xml.i>
@@ -382,6 +391,94 @@
</node>
</children>
</tagNode>
+ <node name="srv6">
+ <properties>
+ <help>Segment-Routing over IPv6 (SRv6) configuration</help>
+ </properties>
+ <children>
+ <leafNode name="locator">
+ <properties>
+ <help>Specify SRv6 locator</help>
+ <valueHelp>
+ <format>txt</format>
+ <description>SRv6 locator name</description>
+ </valueHelp>
+ <completionHelp>
+ <script>${vyos_completion_dir}/list_srv6_locators.sh</script>
+ </completionHelp>
+ <constraint>
+ #include <include/constraint/alpha-numeric-hyphen-underscore.xml.i>
+ </constraint>
+ </properties>
+ </leafNode>
+ <node name="node-msd">
+ <properties>
+ <help>SRv6 Maximum Segment ID (SID) Depth (MSD)</help>
+ </properties>
+ <children>
+ <leafNode name="max-end-d">
+ <properties>
+ <help>Maximum Segment Identifier for End-of-Data</help>
+ <valueHelp>
+ <format>u32:0-255</format>
+ <description>Maximum End D MSD</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 0-255"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ <leafNode name="max-end-pop">
+ <properties>
+ <help>Maximum number of SIDs in Segment-Routing Header (SRH) for segment pop</help>
+ <valueHelp>
+ <format>u32:0-255</format>
+ <description>Maximum End Pop MSD</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 0-255"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ <leafNode name="max-h-encaps">
+ <properties>
+ <help>Maximum Headend Encapsulation in MSD</help>
+ <valueHelp>
+ <format>u32:0-255</format>
+ <description>Maximum Headend encaps in MSD</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 0-255"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ <leafNode name="max-segs-left">
+ <properties>
+ <help>Maximum Segments left in MSD</help>
+ <valueHelp>
+ <format>u32:0-255</format>
+ <description>Maximum Segments Left</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 0-255"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ </children>
+ </node>
+ <leafNode name="interface">
+ <properties>
+ <help>Interface for Segment-Routing over IPv6 (SRv6)</help>
+ <completionHelp>
+ <script>${vyos_completion_dir}/list_interfaces</script>
+ </completionHelp>
+ <constraint>
+ #include <include/constraint/interface-name.xml.i>
+ </constraint>
+ </properties>
+ </leafNode>
+ </children>
+ </node>
</children>
</node>
<node name="redistribute">
@@ -648,6 +745,96 @@
</constraint>
</properties>
</leafNode>
+ <node name="fast-reroute">
+ <properties>
+ <help>IS-IS fast reroute</help>
+ </properties>
+ <children>
+ <node name="lfa">
+ <properties>
+ <help>Enable LFA computation</help>
+ </properties>
+ <children>
+ <node name="level-1">
+ <properties>
+ <help> Enable LFA computation for Level 1 only</help>
+ </properties>
+ <children>
+ <leafNode name="enable">
+ <properties>
+ <help>Enable LFA</help>
+ <valueless/>
+ </properties>
+ </leafNode>
+ #include <include/isis/exclude-interface.xml.i>
+ </children>
+ </node>
+ <node name="level-2">
+ <properties>
+ <help>Enable LFA computation for Level 2 only</help>
+ </properties>
+ <children>
+ <leafNode name="enable">
+ <properties>
+ <help>Enable LFA</help>
+ <valueless/>
+ </properties>
+ </leafNode>
+ #include <include/isis/exclude-interface.xml.i>
+ </children>
+ </node>
+ </children>
+ </node>
+ <node name="remote-lfa">
+ <properties>
+ <help>Enable remote LFA computation</help>
+ </properties>
+ <children>
+ <node name="level-1">
+ <properties>
+ <help> Enable remote LFA computation for Level 1 only</help>
+ </properties>
+ <children>
+ #include <include/isis/frr-maxmetric.xml.i>
+ #include <include/isis/remote_lfa_tunnel.xml.i>
+ </children>
+ </node>
+ <node name="level-2">
+ <properties>
+ <help>Enable remote LFA computation for Level 2 only</help>
+ </properties>
+ <children>
+ #include <include/isis/frr-maxmetric.xml.i>
+ #include <include/isis/remote_lfa_tunnel.xml.i>
+ </children>
+ </node>
+ </children>
+ </node>
+ <node name="ti-lfa">
+ <properties>
+ <help> Enable TI-LFA computation</help>
+ </properties>
+ <children>
+ <node name="level-1">
+ <properties>
+ <help>Enable TI-LFA computation for Level 1 only</help>
+ </properties>
+ <children>
+ #include <include/isis/node-protection.xml.i>
+ </children>
+ </node>
+ <node name="level-2">
+ <properties>
+ <help>Enable TI-LFA computation for Level 2 only</help>
+ </properties>
+ <children>
+ #include <include/isis/node-protection.xml.i>
+ </children>
+ </node>
+ </children>
+ </node>
+ </children>
+ </node>
<leafNode name="hello-padding">
<properties>
<help>Add padding to IS-IS hello packets</help>
diff --git a/interface-definitions/include/isis/remote_lfa_tunnel.xml.i b/interface-definitions/include/isis/remote_lfa_tunnel.xml.i
new file mode 100644
index 000000000..62091a5ee
--- /dev/null
+++ b/interface-definitions/include/isis/remote_lfa_tunnel.xml.i
@@ -0,0 +1,15 @@
+<!-- include start from isis/remote_lfa_tunnel.xml.i -->
+<node name="tunnel">
+ <properties>
+ <help>Enable remote LFA computation using tunnels</help>
+ </properties>
+ <children>
+ <leafNode name="mpls-ldp">
+ <properties>
+ <help>Use MPLS LDP tunnel to reach the remote LFA node</help>
+ <valueless/>
+ </properties>
+ </leafNode>
+ </children>
+</node>
+<!-- include end --> \ No newline at end of file
diff --git a/interface-definitions/include/nat-rule.xml.i b/interface-definitions/include/nat-rule.xml.i
index 0a7179ff1..3d5a6ede1 100644
--- a/interface-definitions/include/nat-rule.xml.i
+++ b/interface-definitions/include/nat-rule.xml.i
@@ -21,7 +21,12 @@
#include <include/firewall/fqdn.xml.i>
#include <include/nat-address.xml.i>
#include <include/nat-port.xml.i>
- #include <include/firewall/source-destination-group.xml.i>
+ #include <include/firewall/source-destination-group-ipv4.xml.i>
+ <node name="group">
+ <children>
+ #include <include/firewall/mac-group.xml.i>
+ </children>
+ </node>
</children>
</node>
#include <include/generic-disable-node.xml.i>
@@ -319,7 +324,12 @@
#include <include/firewall/fqdn.xml.i>
#include <include/nat-address.xml.i>
#include <include/nat-port.xml.i>
- #include <include/firewall/source-destination-group.xml.i>
+ #include <include/firewall/source-destination-group-ipv4.xml.i>
+ <node name="group">
+ <children>
+ #include <include/firewall/mac-group.xml.i>
+ </children>
+ </node>
</children>
</node>
</children>
diff --git a/interface-definitions/include/nat64/protocol.xml.i b/interface-definitions/include/nat64/protocol.xml.i
index a640873b5..3905f8190 100644
--- a/interface-definitions/include/nat64/protocol.xml.i
+++ b/interface-definitions/include/nat64/protocol.xml.i
@@ -1,7 +1,7 @@
<!-- include start from nat64/protocol.xml.i -->
<node name="protocol">
<properties>
- <help>Apply translation address to a specfic protocol</help>
+ <help>Apply translation address to a specific protocol</help>
</properties>
<children>
<leafNode name="tcp">
diff --git a/interface-definitions/include/ospf/authentication.xml.i b/interface-definitions/include/ospf/authentication.xml.i
index 8e8cad067..f38a37269 100644
--- a/interface-definitions/include/ospf/authentication.xml.i
+++ b/interface-definitions/include/ospf/authentication.xml.i
@@ -38,6 +38,12 @@
</tagNode>
</children>
</node>
+ <leafNode name="null">
+ <properties>
+ <help>Use null authentication</help>
+ <valueless/>
+ </properties>
+ </leafNode>
<leafNode name="plaintext-password">
<properties>
<help>Plain text password</help>
diff --git a/interface-definitions/include/ospf/default-information.xml.i b/interface-definitions/include/ospf/default-information.xml.i
index 50cda54a4..dc44617f7 100644
--- a/interface-definitions/include/ospf/default-information.xml.i
+++ b/interface-definitions/include/ospf/default-information.xml.i
@@ -1,7 +1,7 @@
<!-- include start from ospf/intervals.xml.i -->
<node name="default-information">
<properties>
- <help>Default route advertisment settings</help>
+ <help>Default route advertisement settings</help>
</properties>
<children>
<node name="originate">
diff --git a/interface-definitions/include/ospf/protocol-common-config.xml.i b/interface-definitions/include/ospf/protocol-common-config.xml.i
index f597be64e..93d718ed4 100644
--- a/interface-definitions/include/ospf/protocol-common-config.xml.i
+++ b/interface-definitions/include/ospf/protocol-common-config.xml.i
@@ -314,7 +314,6 @@
<description>OSPF area in dotted decimal notation</description>
</valueHelp>
<constraint>
- <validator name="numeric" argument="--range 0-4294967295"/>
<validator name="ip-address"/>
</constraint>
</properties>
@@ -680,7 +679,7 @@
<children>
<node name="global-block">
<properties>
- <help>Segment Routing Global Block label range</help>
+ <help>Segment-Routing Global Block label range</help>
</properties>
<children>
#include <include/segment-routing-label-value.xml.i>
@@ -688,7 +687,7 @@
</node>
<node name="local-block">
<properties>
- <help>Segment Routing Local Block label range</help>
+ <help>Segment-Routing Local Block label range</help>
</properties>
<children>
#include <include/segment-routing-label-value.xml.i>
diff --git a/interface-definitions/include/policy/route-ipv4.xml.i b/interface-definitions/include/policy/route-ipv4.xml.i
deleted file mode 100644
index c12abcae2..000000000
--- a/interface-definitions/include/policy/route-ipv4.xml.i
+++ /dev/null
@@ -1,14 +0,0 @@
-<!-- include start from policy/route-ipv4.xml.i -->
-<node name="source">
- <properties>
- <help>Source parameters</help>
- </properties>
- <children>
- #include <include/firewall/address.xml.i>
- #include <include/firewall/source-destination-group.xml.i>
- #include <include/firewall/mac-address.xml.i>
- #include <include/firewall/port.xml.i>
- </children>
-</node>
-#include <include/firewall/icmp.xml.i>
-<!-- include end -->
diff --git a/interface-definitions/include/policy/route-ipv6.xml.i b/interface-definitions/include/policy/route-ipv6.xml.i
deleted file mode 100644
index d636a654b..000000000
--- a/interface-definitions/include/policy/route-ipv6.xml.i
+++ /dev/null
@@ -1,196 +0,0 @@
-<!-- include start from policy/route-ipv6.xml.i -->
-<node name="source">
- <properties>
- <help>Source parameters</help>
- </properties>
- <children>
- #include <include/firewall/address-ipv6.xml.i>
- #include <include/firewall/source-destination-group.xml.i>
- #include <include/firewall/mac-address.xml.i>
- #include <include/firewall/port.xml.i>
- </children>
-</node>
-<node name="icmpv6">
- <properties>
- <help>ICMPv6 type and code information</help>
- </properties>
- <children>
- <leafNode name="type">
- <properties>
- <help>ICMP type-name</help>
- <completionHelp>
- <list>any echo-reply pong destination-unreachable network-unreachable host-unreachable protocol-unreachable port-unreachable fragmentation-needed source-route-failed network-unknown host-unknown network-prohibited host-prohibited TOS-network-unreachable TOS-host-unreachable communication-prohibited host-precedence-violation precedence-cutoff source-quench redirect network-redirect host-redirect TOS-network-redirect TOS host-redirect echo-request ping router-advertisement router-solicitation time-exceeded ttl-exceeded ttl-zero-during-transit ttl-zero-during-reassembly parameter-problem ip-header-bad required-option-missing timestamp-request timestamp-reply address-mask-request address-mask-reply packet-too-big</list>
- </completionHelp>
- <valueHelp>
- <format>any</format>
- <description>Any ICMP type/code</description>
- </valueHelp>
- <valueHelp>
- <format>echo-reply</format>
- <description>ICMP type/code name</description>
- </valueHelp>
- <valueHelp>
- <format>pong</format>
- <description>ICMP type/code name</description>
- </valueHelp>
- <valueHelp>
- <format>destination-unreachable</format>
- <description>ICMP type/code name</description>
- </valueHelp>
- <valueHelp>
- <format>network-unreachable</format>
- <description>ICMP type/code name</description>
- </valueHelp>
- <valueHelp>
- <format>host-unreachable</format>
- <description>ICMP type/code name</description>
- </valueHelp>
- <valueHelp>
- <format>protocol-unreachable</format>
- <description>ICMP type/code name</description>
- </valueHelp>
- <valueHelp>
- <format>port-unreachable</format>
- <description>ICMP type/code name</description>
- </valueHelp>
- <valueHelp>
- <format>fragmentation-needed</format>
- <description>ICMP type/code name</description>
- </valueHelp>
- <valueHelp>
- <format>source-route-failed</format>
- <description>ICMP type/code name</description>
- </valueHelp>
- <valueHelp>
- <format>network-unknown</format>
- <description>ICMP type/code name</description>
- </valueHelp>
- <valueHelp>
- <format>host-unknown</format>
- <description>ICMP type/code name</description>
- </valueHelp>
- <valueHelp>
- <format>network-prohibited</format>
- <description>ICMP type/code name</description>
- </valueHelp>
- <valueHelp>
- <format>host-prohibited</format>
- <description>ICMP type/code name</description>
- </valueHelp>
- <valueHelp>
- <format>TOS-network-unreachable</format>
- <description>ICMP type/code name</description>
- </valueHelp>
- <valueHelp>
- <format>TOS-host-unreachable</format>
- <description>ICMP type/code name</description>
- </valueHelp>
- <valueHelp>
- <format>communication-prohibited</format>
- <description>ICMP type/code name</description>
- </valueHelp>
- <valueHelp>
- <format>host-precedence-violation</format>
- <description>ICMP type/code name</description>
- </valueHelp>
- <valueHelp>
- <format>precedence-cutoff</format>
- <description>ICMP type/code name</description>
- </valueHelp>
- <valueHelp>
- <format>source-quench</format>
- <description>ICMP type/code name</description>
- </valueHelp>
- <valueHelp>
- <format>redirect</format>
- <description>ICMP type/code name</description>
- </valueHelp>
- <valueHelp>
- <format>network-redirect</format>
- <description>ICMP type/code name</description>
- </valueHelp>
- <valueHelp>
- <format>host-redirect</format>
- <description>ICMP type/code name</description>
- </valueHelp>
- <valueHelp>
- <format>TOS-network-redirect</format>
- <description>ICMP type/code name</description>
- </valueHelp>
- <valueHelp>
- <format>TOS host-redirect</format>
- <description>ICMP type/code name</description>
- </valueHelp>
- <valueHelp>
- <format>echo-request</format>
- <description>ICMP type/code name</description>
- </valueHelp>
- <valueHelp>
- <format>ping</format>
- <description>ICMP type/code name</description>
- </valueHelp>
- <valueHelp>
- <format>router-advertisement</format>
- <description>ICMP type/code name</description>
- </valueHelp>
- <valueHelp>
- <format>router-solicitation</format>
- <description>ICMP type/code name</description>
- </valueHelp>
- <valueHelp>
- <format>time-exceeded</format>
- <description>ICMP type/code name</description>
- </valueHelp>
- <valueHelp>
- <format>ttl-exceeded</format>
- <description>ICMP type/code name</description>
- </valueHelp>
- <valueHelp>
- <format>ttl-zero-during-transit</format>
- <description>ICMP type/code name</description>
- </valueHelp>
- <valueHelp>
- <format>ttl-zero-during-reassembly</format>
- <description>ICMP type/code name</description>
- </valueHelp>
- <valueHelp>
- <format>parameter-problem</format>
- <description>ICMP type/code name</description>
- </valueHelp>
- <valueHelp>
- <format>ip-header-bad</format>
- <description>ICMP type/code name</description>
- </valueHelp>
- <valueHelp>
- <format>required-option-missing</format>
- <description>ICMP type/code name</description>
- </valueHelp>
- <valueHelp>
- <format>timestamp-request</format>
- <description>ICMP type/code name</description>
- </valueHelp>
- <valueHelp>
- <format>timestamp-reply</format>
- <description>ICMP type/code name</description>
- </valueHelp>
- <valueHelp>
- <format>address-mask-request</format>
- <description>ICMP type/code name</description>
- </valueHelp>
- <valueHelp>
- <format>address-mask-reply</format>
- <description>ICMP type/code name</description>
- </valueHelp>
- <valueHelp>
- <format>packet-too-big</format>
- <description>ICMP type/code name</description>
- </valueHelp>
- <constraint>
- <regex>(any|echo-reply|pong|destination-unreachable|network-unreachable|host-unreachable|protocol-unreachable|port-unreachable|fragmentation-needed|source-route-failed|network-unknown|host-unknown|network-prohibited|host-prohibited|TOS-network-unreachable|TOS-host-unreachable|communication-prohibited|host-precedence-violation|precedence-cutoff|source-quench|redirect|network-redirect|host-redirect|TOS-network-redirect|TOS host-redirect|echo-request|ping|router-advertisement|router-solicitation|time-exceeded|ttl-exceeded|ttl-zero-during-transit|ttl-zero-during-reassembly|parameter-problem|ip-header-bad|required-option-missing|timestamp-request|timestamp-reply|address-mask-request|address-mask-reply|packet-too-big)</regex>
- <validator name="numeric" argument="--range 0-255"/>
- </constraint>
- </properties>
- </leafNode>
- </children>
-</node>
-<!-- include end -->
diff --git a/interface-definitions/include/rip/timers.xml.i b/interface-definitions/include/rip/timers.xml.i
index 771a6700e..e8b9d99c6 100644
--- a/interface-definitions/include/rip/timers.xml.i
+++ b/interface-definitions/include/rip/timers.xml.i
@@ -9,7 +9,7 @@
<help>Garbage collection timer</help>
<valueHelp>
<format>u32:5-2147483647</format>
- <description>Garbage colletion time</description>
+ <description>Garbage collection time</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 5-2147483647"/>
diff --git a/interface-definitions/include/rpki/protocol-common-config.xml.i b/interface-definitions/include/rpki/protocol-common-config.xml.i
new file mode 100644
index 000000000..0b3356604
--- /dev/null
+++ b/interface-definitions/include/rpki/protocol-common-config.xml.i
@@ -0,0 +1,87 @@
+<!-- include start from rpki/protocol-common-config.xml.i -->
+<tagNode name="cache">
+ <properties>
+ <help>RPKI cache server address</help>
+ <valueHelp>
+ <format>ipv4</format>
+ <description>IP address of RPKI server</description>
+ </valueHelp>
+ <valueHelp>
+ <format>ipv6</format>
+ <description>IPv6 address of RPKI server</description>
+ </valueHelp>
+ <valueHelp>
+ <format>hostname</format>
+ <description>Fully qualified domain name of RPKI server</description>
+ </valueHelp>
+ <constraint>
+ <validator name="ip-address"/>
+ <validator name="fqdn"/>
+ </constraint>
+ </properties>
+ <children>
+ #include <include/port-number.xml.i>
+ <leafNode name="preference">
+ <properties>
+ <help>Preference of the cache server</help>
+ <valueHelp>
+ <format>u32:1-255</format>
+ <description>Preference of the cache server</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 1-255"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ #include <include/source-address-ipv4.xml.i>
+ <node name="ssh">
+ <properties>
+ <help>RPKI SSH connection settings</help>
+ </properties>
+ <children>
+ #include <include/pki/openssh-key.xml.i>
+ #include <include/generic-username.xml.i>
+ </children>
+ </node>
+ </children>
+</tagNode>
+<leafNode name="expire-interval">
+ <properties>
+ <help>Interval to wait before expiring the cache</help>
+ <valueHelp>
+ <format>u32:600-172800</format>
+ <description>Interval in seconds</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 600-172800"/>
+ </constraint>
+ </properties>
+ <defaultValue>7200</defaultValue>
+</leafNode>
+<leafNode name="polling-period">
+ <properties>
+ <help>Cache polling interval</help>
+ <valueHelp>
+ <format>u32:1-86400</format>
+ <description>Interval in seconds</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 1-86400"/>
+ </constraint>
+ </properties>
+ <defaultValue>300</defaultValue>
+</leafNode>
+<leafNode name="retry-interval">
+ <properties>
+ <help>Retry interval to connect to the cache server</help>
+ <valueHelp>
+ <format>u32:1-7200</format>
+ <description>Interval in seconds</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 1-7200"/>
+ </constraint>
+ </properties>
+ <defaultValue>600</defaultValue>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/segment-routing/algorithm.xml.i b/interface-definitions/include/segment-routing/algorithm.xml.i
new file mode 100644
index 000000000..dae019b22
--- /dev/null
+++ b/interface-definitions/include/segment-routing/algorithm.xml.i
@@ -0,0 +1,20 @@
+<!-- include start from segment-routing/algorithm.xml.i -->
+<node name="algorithm">
+ <properties>
+ <help>IGP prefix algorithm style</help>
+ </properties>
+ <children>
+ <leafNode name="spf">
+ <properties>
+ <help>Shortest Path First (SPF)</help>
+ <valueless/>
+ </properties>
+ </leafNode>
+ <leafNode name="strict-spf">
+ <properties>
+ <help>Strict Shortest Path First (SPF) - ignore any possible local policy overriding the SPF along the path</help>
+ <valueless/>
+ </properties>
+ </leafNode>
+ </children>
+</node> \ No newline at end of file
diff --git a/interface-definitions/include/source-interface-broadcast.xml.i b/interface-definitions/include/source-interface-broadcast.xml.i
new file mode 100644
index 000000000..344a49024
--- /dev/null
+++ b/interface-definitions/include/source-interface-broadcast.xml.i
@@ -0,0 +1,14 @@
+<!-- include start from source-interface-broadcast.xml.i -->
+<leafNode name="source-interface">
+ <properties>
+ <help>Physical interface the traffic will go through</help>
+ <valueHelp>
+ <format>interface</format>
+ <description>Interface name</description>
+ </valueHelp>
+ <completionHelp>
+ <script>${vyos_completion_dir}/list_interfaces --broadcast</script>
+ </completionHelp>
+ </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/source-interface-ethernet.xml.i b/interface-definitions/include/source-interface-ethernet.xml.i
index e06e47d6c..ff6948090 100644
--- a/interface-definitions/include/source-interface-ethernet.xml.i
+++ b/interface-definitions/include/source-interface-ethernet.xml.i
@@ -4,7 +4,7 @@
<help>Physical interface the traffic will go through</help>
<valueHelp>
<format>interface</format>
- <description>Physical interface used for traffic forwarding</description>
+ <description>Interface name</description>
</valueHelp>
<completionHelp>
<script>${vyos_completion_dir}/list_interfaces --type ethernet</script>
diff --git a/interface-definitions/include/static/static-route.xml.i b/interface-definitions/include/static/static-route.xml.i
index c261874f5..59742dd3b 100644
--- a/interface-definitions/include/static/static-route.xml.i
+++ b/interface-definitions/include/static/static-route.xml.i
@@ -32,6 +32,7 @@
<children>
#include <include/generic-disable-node.xml.i>
#include <include/static/static-route-distance.xml.i>
+ #include <include/static/static-route-segments.xml.i>
#include <include/static/static-route-vrf.xml.i>
</children>
</tagNode>
@@ -50,6 +51,7 @@
#include <include/generic-disable-node.xml.i>
#include <include/static/static-route-distance.xml.i>
#include <include/generic-interface.xml.i>
+ #include <include/static/static-route-segments.xml.i>
#include <include/static/static-route-vrf.xml.i>
<node name="bfd">
<properties>
diff --git a/interface-definitions/include/stunnel/protocol-value-cifs.xml.i b/interface-definitions/include/stunnel/protocol-value-cifs.xml.i
index 5b9484750..12eae6584 100644
--- a/interface-definitions/include/stunnel/protocol-value-cifs.xml.i
+++ b/interface-definitions/include/stunnel/protocol-value-cifs.xml.i
@@ -1,6 +1,6 @@
<!-- include start from stunnel/protocol-value-cifs.xml.i -->
<valueHelp>
<format>cifs</format>
- <description>Proprietary (undocummented) extension of CIFS protocol</description>
+ <description>Proprietary (undocumented) extension of CIFS protocol</description>
</valueHelp>
<!-- include end -->
diff --git a/interface-definitions/include/system-ip-protocol.xml.i b/interface-definitions/include/system-ip-protocol.xml.i
index c630eb3f7..30d7ab04e 100644
--- a/interface-definitions/include/system-ip-protocol.xml.i
+++ b/interface-definitions/include/system-ip-protocol.xml.i
@@ -3,7 +3,7 @@
<properties>
<help>Filter routing info exchanged between routing protocol and zebra</help>
<completionHelp>
- <list>any babel bgp connected eigrp isis kernel ospf rip static table</list>
+ <list>any babel bgp eigrp isis ospf rip static</list>
</completionHelp>
<valueHelp>
<format>any</format>
@@ -18,10 +18,6 @@
<description>Border Gateway Protocol</description>
</valueHelp>
<valueHelp>
- <format>connected</format>
- <description>Connected routes (directly attached subnet or host)</description>
- </valueHelp>
- <valueHelp>
<format>eigrp</format>
<description>Enhanced Interior Gateway Routing Protocol</description>
</valueHelp>
@@ -30,10 +26,6 @@
<description>Intermediate System to Intermediate System</description>
</valueHelp>
<valueHelp>
- <format>kernel</format>
- <description>Kernel routes (not installed via the zebra RIB)</description>
- </valueHelp>
- <valueHelp>
<format>ospf</format>
<description>Open Shortest Path First (OSPFv2)</description>
</valueHelp>
@@ -46,11 +38,11 @@
<description>Statically configured routes</description>
</valueHelp>
<constraint>
- <regex>(any|babel|bgp|connected|eigrp|isis|kernel|ospf|rip|static|table)</regex>
+ <regex>(any|babel|bgp|eigrp|isis|ospf|rip|static)</regex>
</constraint>
</properties>
<children>
#include <include/route-map.xml.i>
</children>
</tagNode>
-<!-- include end --> \ No newline at end of file
+<!-- include end -->
diff --git a/interface-definitions/include/system-ipv6-protocol.xml.i b/interface-definitions/include/system-ipv6-protocol.xml.i
index 485776a71..1a8123cb2 100644
--- a/interface-definitions/include/system-ipv6-protocol.xml.i
+++ b/interface-definitions/include/system-ipv6-protocol.xml.i
@@ -3,7 +3,7 @@
<properties>
<help>Filter routing info exchanged between routing protocol and zebra</help>
<completionHelp>
- <list>any babel bgp connected isis kernel ospfv3 ripng static table</list>
+ <list>any babel bgp isis ospfv3 ripng static</list>
</completionHelp>
<valueHelp>
<format>any</format>
@@ -18,18 +18,10 @@
<description>Border Gateway Protocol</description>
</valueHelp>
<valueHelp>
- <format>connected</format>
- <description>Connected routes (directly attached subnet or host)</description>
- </valueHelp>
- <valueHelp>
<format>isis</format>
<description>Intermediate System to Intermediate System</description>
</valueHelp>
<valueHelp>
- <format>kernel</format>
- <description>Kernel routes (not installed via the zebra RIB)</description>
- </valueHelp>
- <valueHelp>
<format>ospfv3</format>
<description>Open Shortest Path First (OSPFv3)</description>
</valueHelp>
@@ -42,7 +34,7 @@
<description>Statically configured routes</description>
</valueHelp>
<constraint>
- <regex>(any|babel|bgp|connected|isis|kernel|ospfv3|ripng|static|table)</regex>
+ <regex>(any|babel|bgp|isis|ospfv3|ripng|static)</regex>
</constraint>
</properties>
<children>
diff --git a/interface-definitions/include/unformat_log2_page_size.xml.i b/interface-definitions/include/unformat_log2_page_size.xml.i
new file mode 100644
index 000000000..7678c1860
--- /dev/null
+++ b/interface-definitions/include/unformat_log2_page_size.xml.i
@@ -0,0 +1,20 @@
+<!-- include start from unformat_log2_page_size.xml.i -->
+<completionHelp>
+ <list>4K 2M 1G</list>
+</completionHelp>
+<valueHelp>
+ <format>4K</format>
+ <description>4 kilobytes</description>
+</valueHelp>
+<valueHelp>
+ <format>2M</format>
+ <description>2 megabytes</description>
+</valueHelp>
+<valueHelp>
+ <format>1G</format>
+ <description>1 gigabyte</description>
+</valueHelp>
+<constraint>
+ <regex>(4K|2M|1G)</regex>
+</constraint>
+<!-- include end -->
diff --git a/interface-definitions/include/unformat_memory_size.xml.i b/interface-definitions/include/unformat_memory_size.xml.i
new file mode 100644
index 000000000..bb8f4ae67
--- /dev/null
+++ b/interface-definitions/include/unformat_memory_size.xml.i
@@ -0,0 +1,22 @@
+<!-- include start from unformat_memory_size.xml.i -->
+<valueHelp>
+ <format>&lt;number&gt;</format>
+ <description>byte</description>
+</valueHelp>
+<valueHelp>
+ <format>&lt;number&gt;K</format>
+ <description>Kilobyte</description>
+</valueHelp>
+<valueHelp>
+ <format>&lt;number&gt;M</format>
+ <description>Megabyte</description>
+</valueHelp>
+<valueHelp>
+ <format>&lt;number&gt;G</format>
+ <description>Gigabyte</description>
+</valueHelp>
+<constraint>
+ <validator name="numeric" argument="--range 0-4294967295"/>
+ <regex>(\d+|\d+K|\d+M|\d+G)</regex>
+</constraint>
+<!-- include end -->
diff --git a/interface-definitions/include/version/conntrack-version.xml.i b/interface-definitions/include/version/conntrack-version.xml.i
index 6995ce119..517424034 100644
--- a/interface-definitions/include/version/conntrack-version.xml.i
+++ b/interface-definitions/include/version/conntrack-version.xml.i
@@ -1,3 +1,3 @@
<!-- include start from include/version/conntrack-version.xml.i -->
-<syntaxVersion component='conntrack' version='5'></syntaxVersion>
+<syntaxVersion component='conntrack' version='6'></syntaxVersion>
<!-- include end -->
diff --git a/interface-definitions/include/version/container-version.xml.i b/interface-definitions/include/version/container-version.xml.i
index ed6e942cd..046bacfdc 100644
--- a/interface-definitions/include/version/container-version.xml.i
+++ b/interface-definitions/include/version/container-version.xml.i
@@ -1,3 +1,3 @@
<!-- include start from include/version/container-version.xml.i -->
-<syntaxVersion component='container' version='2'></syntaxVersion>
+<syntaxVersion component='container' version='3'></syntaxVersion>
<!-- include end -->
diff --git a/interface-definitions/include/version/firewall-version.xml.i b/interface-definitions/include/version/firewall-version.xml.i
index 1a8098297..f50c450ef 100644
--- a/interface-definitions/include/version/firewall-version.xml.i
+++ b/interface-definitions/include/version/firewall-version.xml.i
@@ -1,3 +1,3 @@
<!-- include start from include/version/firewall-version.xml.i -->
-<syntaxVersion component='firewall' version='18'></syntaxVersion>
+<syntaxVersion component='firewall' version='20'></syntaxVersion>
<!-- include end -->
diff --git a/interface-definitions/include/version/flow-accounting-version.xml.i b/interface-definitions/include/version/flow-accounting-version.xml.i
index 95d1e20db..3a22d391c 100644
--- a/interface-definitions/include/version/flow-accounting-version.xml.i
+++ b/interface-definitions/include/version/flow-accounting-version.xml.i
@@ -1,3 +1,3 @@
<!-- include start from include/version/flow-accounting-version.xml.i -->
-<syntaxVersion component='flow-accounting' version='2'></syntaxVersion>
+<syntaxVersion component='flow-accounting' version='3'></syntaxVersion>
<!-- include end -->
diff --git a/interface-definitions/include/version/ids-version.xml.i b/interface-definitions/include/version/ids-version.xml.i
index 9133be02b..6d4e92c21 100644
--- a/interface-definitions/include/version/ids-version.xml.i
+++ b/interface-definitions/include/version/ids-version.xml.i
@@ -1,3 +1,3 @@
<!-- include start from include/version/ids-version.xml.i -->
-<syntaxVersion component='ids' version='1'></syntaxVersion>
+<syntaxVersion component='ids' version='2'></syntaxVersion>
<!-- include end -->
diff --git a/interface-definitions/include/version/interfaces-version.xml.i b/interface-definitions/include/version/interfaces-version.xml.i
index 2915b318e..28564b3d7 100644
--- a/interface-definitions/include/version/interfaces-version.xml.i
+++ b/interface-definitions/include/version/interfaces-version.xml.i
@@ -1,3 +1,3 @@
<!-- include start from include/version/interfaces-version.xml.i -->
-<syntaxVersion component='interfaces' version='33'></syntaxVersion>
+<syntaxVersion component='interfaces' version='34'></syntaxVersion>
<!-- include end -->
diff --git a/interface-definitions/include/version/ipsec-version.xml.i b/interface-definitions/include/version/ipsec-version.xml.i
index a4d556cfc..6c24b0b2d 100644
--- a/interface-definitions/include/version/ipsec-version.xml.i
+++ b/interface-definitions/include/version/ipsec-version.xml.i
@@ -1,3 +1,3 @@
<!-- include start from include/version/ipsec-version.xml.i -->
-<syntaxVersion component='ipsec' version='13'></syntaxVersion>
+<syntaxVersion component='ipsec' version='14'></syntaxVersion>
<!-- include end -->
diff --git a/interface-definitions/include/version/openvpn-version.xml.i b/interface-definitions/include/version/openvpn-version.xml.i
index 67ef21983..6bc2b2da6 100644
--- a/interface-definitions/include/version/openvpn-version.xml.i
+++ b/interface-definitions/include/version/openvpn-version.xml.i
@@ -1,3 +1,3 @@
<!-- include start from include/version/openvpn-version.xml.i -->
-<syntaxVersion component='openvpn' version='4'></syntaxVersion>
+<syntaxVersion component='openvpn' version='5'></syntaxVersion>
<!-- include end -->
diff --git a/interface-definitions/include/version/pppoe-server-version.xml.i b/interface-definitions/include/version/pppoe-server-version.xml.i
index 2e020faa3..1b2718d61 100644
--- a/interface-definitions/include/version/pppoe-server-version.xml.i
+++ b/interface-definitions/include/version/pppoe-server-version.xml.i
@@ -1,3 +1,3 @@
<!-- include start from include/version/pppoe-server-version.xml.i -->
-<syntaxVersion component='pppoe-server' version='11'></syntaxVersion>
+<syntaxVersion component='pppoe-server' version='12'></syntaxVersion>
<!-- include end -->
diff --git a/interface-definitions/include/version/reverseproxy-version.xml.i b/interface-definitions/include/version/reverseproxy-version.xml.i
index 4f09f2848..71f7def1a 100644
--- a/interface-definitions/include/version/reverseproxy-version.xml.i
+++ b/interface-definitions/include/version/reverseproxy-version.xml.i
@@ -1,3 +1,3 @@
<!-- include start from include/version/reverseproxy-version.xml.i -->
-<syntaxVersion component='reverse-proxy' version='2'></syntaxVersion>
+<syntaxVersion component='reverse-proxy' version='3'></syntaxVersion>
<!-- include end -->
diff --git a/interface-definitions/include/version/ssh-version.xml.i b/interface-definitions/include/version/ssh-version.xml.i
index 0f25caf98..05cf431a7 100644
--- a/interface-definitions/include/version/ssh-version.xml.i
+++ b/interface-definitions/include/version/ssh-version.xml.i
@@ -1,3 +1,3 @@
<!-- include start from include/version/ssh-version.xml.i -->
-<syntaxVersion component='ssh' version='2'></syntaxVersion>
+<syntaxVersion component='ssh' version='3'></syntaxVersion>
<!-- include end -->
diff --git a/interface-definitions/include/version/system-version.xml.i b/interface-definitions/include/version/system-version.xml.i
index 5cdece74a..f29226c03 100644
--- a/interface-definitions/include/version/system-version.xml.i
+++ b/interface-definitions/include/version/system-version.xml.i
@@ -1,3 +1,3 @@
<!-- include start from include/version/system-version.xml.i -->
-<syntaxVersion component='system' version='29'></syntaxVersion>
+<syntaxVersion component='system' version='32'></syntaxVersion>
<!-- include end -->
diff --git a/interface-definitions/include/version/vpp-version.xml.i b/interface-definitions/include/version/vpp-version.xml.i
new file mode 100644
index 000000000..c12e3786c
--- /dev/null
+++ b/interface-definitions/include/version/vpp-version.xml.i
@@ -0,0 +1,3 @@
+<!-- include start from include/version/vpp-version.xml.i -->
+<syntaxVersion component='vpp' version='6'></syntaxVersion>
+<!-- include end -->
diff --git a/interface-definitions/include/version/vrf-version.xml.i b/interface-definitions/include/version/vrf-version.xml.i
index 9d7ff35fe..1c7c81155 100644
--- a/interface-definitions/include/version/vrf-version.xml.i
+++ b/interface-definitions/include/version/vrf-version.xml.i
@@ -1,3 +1,3 @@
<!-- include start from include/version/vrf-version.xml.i -->
-<syntaxVersion component='vrf' version='3'></syntaxVersion>
+<syntaxVersion component='vrf' version='4'></syntaxVersion>
<!-- include end -->
diff --git a/interface-definitions/include/vpp/acl_common_interface_ip_rule.xml.i b/interface-definitions/include/vpp/acl_common_interface_ip_rule.xml.i
new file mode 100644
index 000000000..a719a6223
--- /dev/null
+++ b/interface-definitions/include/vpp/acl_common_interface_ip_rule.xml.i
@@ -0,0 +1,25 @@
+<!-- include start from vpp/acl_common_interface_ip_rule.xml.i -->
+<tagNode name="acl-tag">
+ <properties>
+ <help>ACL rule (tag) number</help>
+ <valueHelp>
+ <format>u32</format>
+ <description>Number</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 1-4294967295"/>
+ </constraint>
+ <constraintErrorMessage>Number must be between 1 and 4294967295</constraintErrorMessage>
+ </properties>
+ <children>
+ <leafNode name="tag-name">
+ <properties>
+ <help>ACL tag name</help>
+ <completionHelp>
+ <path>vpp acl ip tag-name</path>
+ </completionHelp>
+ </properties>
+ </leafNode>
+ </children>
+</tagNode>
+<!-- include end -->
diff --git a/interface-definitions/include/vpp/acl_port_range.xml.i b/interface-definitions/include/vpp/acl_port_range.xml.i
new file mode 100644
index 000000000..ba4a133bb
--- /dev/null
+++ b/interface-definitions/include/vpp/acl_port_range.xml.i
@@ -0,0 +1,19 @@
+<!-- include start from vpp/acl_port_range.xml.i -->
+<leafNode name="port">
+ <properties>
+ <help>Port number or range</help>
+ <valueHelp>
+ <format>u32:1-65535</format>
+ <description>Numeric IP port</description>
+ </valueHelp>
+ <valueHelp>
+ <format>range</format>
+ <description>Numbered port range (e.g., 1001-1005)</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--allow-range --range 1-65535"/>
+ </constraint>
+ <constraintErrorMessage>Invalid port or port range</constraintErrorMessage>
+ </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/vpp/acl_prefix.xml.i b/interface-definitions/include/vpp/acl_prefix.xml.i
new file mode 100644
index 000000000..790153c8f
--- /dev/null
+++ b/interface-definitions/include/vpp/acl_prefix.xml.i
@@ -0,0 +1,20 @@
+<!-- include start from vpp/acl_prefix.xml.i -->
+<leafNode name="prefix">
+ <properties>
+ <help>IP prefix</help>
+ <valueHelp>
+ <format>ipv4net</format>
+ <description>IPv4 prefix</description>
+ </valueHelp>
+ <valueHelp>
+ <format>ipv6net</format>
+ <description>IPv6 prefix</description>
+ </valueHelp>
+ <constraint>
+ <validator name="ipv4-prefix"/>
+ <validator name="ipv6-prefix"/>
+ </constraint>
+ </properties>
+</leafNode>
+<!-- include end -->
+
diff --git a/interface-definitions/include/vpp/acl_tcp_flags.xml.i b/interface-definitions/include/vpp/acl_tcp_flags.xml.i
new file mode 100644
index 000000000..380df33a0
--- /dev/null
+++ b/interface-definitions/include/vpp/acl_tcp_flags.xml.i
@@ -0,0 +1,41 @@
+<!-- include start from vpp/acl_tcp_flags.xml.i -->
+<completionHelp>
+ <list>ack cwr ecn fin psh rst syn urg</list>
+</completionHelp>
+<valueHelp>
+ <format>ack</format>
+ <description>Acknowledge flag</description>
+</valueHelp>
+<valueHelp>
+ <format>cwr</format>
+ <description>Congestion Window Reduced flag</description>
+</valueHelp>
+<valueHelp>
+ <format>ecn</format>
+ <description>Explicit Congestion Notification flag</description>
+</valueHelp>
+<valueHelp>
+ <format>fin</format>
+ <description>Finish flag</description>
+</valueHelp>
+<valueHelp>
+ <format>psh</format>
+ <description>Push flag</description>
+</valueHelp>
+<valueHelp>
+ <format>rst</format>
+ <description>Reset flag</description>
+</valueHelp>
+<valueHelp>
+ <format>syn</format>
+ <description>Synchronise flag</description>
+</valueHelp>
+<valueHelp>
+ <format>urg</format>
+ <description>Urgent flag</description>
+</valueHelp>
+<constraint>
+ <regex>(syn|ack|fin|rst|urg|psh|ecn|cwr)</regex>
+</constraint>
+<multi/>
+<!-- include end -->
diff --git a/interface-definitions/include/vpp/iface_rx_mode.xml.i b/interface-definitions/include/vpp/iface_rx_mode.xml.i
new file mode 100644
index 000000000..36aa7e28b
--- /dev/null
+++ b/interface-definitions/include/vpp/iface_rx_mode.xml.i
@@ -0,0 +1,25 @@
+<!-- include start from vpp/iface_rx_mode.xml.i -->
+<leafNode name="interface-rx-mode">
+ <properties>
+ <help>Receive packet processing mode</help>
+ <completionHelp>
+ <list>polling interrupt adaptive</list>
+ </completionHelp>
+ <valueHelp>
+ <format>polling</format>
+ <description>Constantly check for new data</description>
+ </valueHelp>
+ <valueHelp>
+ <format>interrupt</format>
+ <description>Interrupt mode</description>
+ </valueHelp>
+ <valueHelp>
+ <format>adaptive</format>
+ <description>Adaptive mode</description>
+ </valueHelp>
+ <constraint>
+ <regex>(polling|interrupt|adaptive)</regex>
+ </constraint>
+ </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/vpp/nat_address_range.xml.i b/interface-definitions/include/vpp/nat_address_range.xml.i
new file mode 100644
index 000000000..48648f91a
--- /dev/null
+++ b/interface-definitions/include/vpp/nat_address_range.xml.i
@@ -0,0 +1,20 @@
+<!-- include start from vpp/nat_address_range.xml.i -->
+<leafNode name="address">
+ <properties>
+ <help>IP address or range</help>
+ <valueHelp>
+ <format>ipv4</format>
+ <description>IPv4 address</description>
+ </valueHelp>
+ <valueHelp>
+ <format>ipv4range</format>
+ <description>IPv4 address range</description>
+ </valueHelp>
+ <constraint>
+ <validator name="ipv4-address"/>
+ <validator name="ipv4-range"/>
+ </constraint>
+ <multi/>
+ </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/vpp/nat_interface.xml.i b/interface-definitions/include/vpp/nat_interface.xml.i
new file mode 100644
index 000000000..20a7356bf
--- /dev/null
+++ b/interface-definitions/include/vpp/nat_interface.xml.i
@@ -0,0 +1,11 @@
+<!-- include start from vpp/nat_interface.xml.i -->
+<leafNode name="interface">
+ <properties>
+ <help>Add IP address from an interface</help>
+ <completionHelp>
+ <script>${vyos_completion_dir}/list_interfaces</script>
+ </completionHelp>
+ <multi/>
+ </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/vpp/nat_protocol.xml.i b/interface-definitions/include/vpp/nat_protocol.xml.i
new file mode 100644
index 000000000..b88fd2b62
--- /dev/null
+++ b/interface-definitions/include/vpp/nat_protocol.xml.i
@@ -0,0 +1,30 @@
+<!-- include start from vpp/nat_protocol.xml.i -->
+<leafNode name="protocol">
+ <properties>
+ <help>Protocol</help>
+ <completionHelp>
+ <list>tcp udp icmp all</list>
+ </completionHelp>
+ <valueHelp>
+ <format>all</format>
+ <description>All protocols (TCP, UDP, and ICMP)</description>
+ </valueHelp>
+ <valueHelp>
+ <format>icmp</format>
+ <description>Internet Control Message Protocol (ICMP)</description>
+ </valueHelp>
+ <valueHelp>
+ <format>tcp</format>
+ <description>Transmission Control Protocol (TCP)</description>
+ </valueHelp>
+ <valueHelp>
+ <format>udp</format>
+ <description>User Datagram Protocol (UDP)</description>
+ </valueHelp>
+ <constraint>
+ <regex>(tcp|udp|icmp|all)</regex>
+ </constraint>
+ </properties>
+ <defaultValue>all</defaultValue>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/vpp/netlink.xml.i b/interface-definitions/include/vpp/netlink.xml.i
new file mode 100644
index 000000000..903100d00
--- /dev/null
+++ b/interface-definitions/include/vpp/netlink.xml.i
@@ -0,0 +1,45 @@
+<!-- include start from vpp/netlink.xml.i -->
+<node name="netlink">
+ <properties>
+ <help>Netlink options</help>
+ </properties>
+ <children>
+ <leafNode name="rx-buffer-size">
+ <properties>
+ <help>Receive buffer size</help>
+ <valueHelp>
+ <format>u32:0-4294967295</format>
+ <description>Receive buffer size</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 0-4294967295"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ <leafNode name="batch-size">
+ <properties>
+ <help>Batch size</help>
+ <valueHelp>
+ <format>u32:0-4294967295</format>
+ <description>Batch size</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 0-4294967295"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ <leafNode name="batch-delay-ms">
+ <properties>
+ <help>Batch delay</help>
+ <valueHelp>
+ <format>u32:0-4294967295</format>
+ <description>Batch delay (in ms)</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 0-4294967295"/>
+ </constraint>
+ </properties>
+ </leafNode>
+</children>
+</node>
+<!-- include end -->
diff --git a/interface-definitions/include/vpp/queue_size.xml.i b/interface-definitions/include/vpp/queue_size.xml.i
new file mode 100644
index 000000000..dc25df04d
--- /dev/null
+++ b/interface-definitions/include/vpp/queue_size.xml.i
@@ -0,0 +1,44 @@
+<!-- include start from vpp/queue_size.xml.i -->
+<completionHelp>
+ <list>0 256 512 1024 2048 4096 8192 16384 32468</list>
+</completionHelp>
+<valueHelp>
+ <format>0</format>
+ <description>Use default VPP queue size</description>
+</valueHelp>
+<valueHelp>
+ <format>256</format>
+ <description>256 descriptors</description>
+</valueHelp>
+<valueHelp>
+ <format>512</format>
+ <description>512 descriptors</description>
+</valueHelp>
+<valueHelp>
+ <format>1024</format>
+ <description>1024 descriptors</description>
+</valueHelp>
+<valueHelp>
+ <format>2048</format>
+ <description>2048 descriptors</description>
+</valueHelp>
+<valueHelp>
+ <format>4096</format>
+ <description>4096 descriptors</description>
+</valueHelp>
+<valueHelp>
+ <format>8192</format>
+ <description>8192 descriptors</description>
+</valueHelp>
+<valueHelp>
+ <format>16384</format>
+ <description>16384 descriptors</description>
+</valueHelp>
+<valueHelp>
+ <format>32468</format>
+ <description>32468 descriptors</description>
+</valueHelp>
+<constraint>
+ <regex>(0|256|512|1024|2048|4096|8192|16384|32468)</regex>
+</constraint>
+<!-- include end -->
diff --git a/interface-definitions/include/vpp/vif.xml.i b/interface-definitions/include/vpp/vif.xml.i
new file mode 100644
index 000000000..8f0e9772f
--- /dev/null
+++ b/interface-definitions/include/vpp/vif.xml.i
@@ -0,0 +1,21 @@
+<!-- include start from vpp/vif.xml.i -->
+<tagNode name="vif">
+ <properties>
+ <help>Virtual Local Area Network (VLAN) ID</help>
+ <valueHelp>
+ <format>u32: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/generic-description.xml.i>
+ #include <include/interface/address-ipv4-ipv6-dhcp.xml.i>
+ #include <include/interface/disable.xml.i>
+ #include <include/interface/mtu-68-16000.xml.i>
+ </children>
+</tagNode>
+<!-- include end -->
diff --git a/interface-definitions/include/vrrp/garp.xml.i b/interface-definitions/include/vrrp/garp.xml.i
index b56b490df..54bb34572 100644
--- a/interface-definitions/include/vrrp/garp.xml.i
+++ b/interface-definitions/include/vrrp/garp.xml.i
@@ -32,7 +32,7 @@
</leafNode>
<leafNode name="master-refresh">
<properties>
- <help>Minimum time interval for refreshing gratuitous ARPs while beeing master</help>
+ <help>Minimum time interval for refreshing gratuitous ARPs while being master</help>
<valueHelp>
<format>u32:0</format>
<description>No refresh</description>
@@ -49,7 +49,7 @@
</leafNode>
<leafNode name="master-refresh-repeat">
<properties>
- <help>Number of gratuitous ARP messages to send at a time while beeing master</help>
+ <help>Number of gratuitous ARP messages to send at a time while being master</help>
<valueHelp>
<format>u32:1-255</format>
<description>Number of gratuitous ARP messages</description>