summaryrefslogtreecommitdiff
path: root/interface-definitions
diff options
context:
space:
mode:
Diffstat (limited to 'interface-definitions')
-rw-r--r--interface-definitions/container.xml.in (renamed from interface-definitions/containers.xml.in)16
-rw-r--r--interface-definitions/dhcp-relay.xml.in2
-rw-r--r--interface-definitions/dhcp-server.xml.in44
-rw-r--r--interface-definitions/dhcpv6-server.xml.in27
-rw-r--r--interface-definitions/dns-domain-name.xml.in6
-rw-r--r--interface-definitions/dns-dynamic.xml.in4
-rw-r--r--interface-definitions/dns-forwarding.xml.in34
-rw-r--r--interface-definitions/firewall.xml.in40
-rw-r--r--interface-definitions/flow-accounting-conf.xml.in4
-rw-r--r--interface-definitions/high-availability.xml.in8
-rw-r--r--interface-definitions/https.xml.in2
-rw-r--r--interface-definitions/igmp-proxy.xml.in2
-rw-r--r--interface-definitions/include/accel-ppp/auth-mode.xml.i2
-rw-r--r--interface-definitions/include/accel-ppp/auth-protocols.xml.i2
-rw-r--r--interface-definitions/include/accel-ppp/ppp-mppe.xml.i2
-rw-r--r--interface-definitions/include/accel-ppp/ppp-options-ipv4.xml.i2
-rw-r--r--interface-definitions/include/accel-ppp/ppp-options-ipv6.xml.i2
-rw-r--r--interface-definitions/include/auth-local-users.xml.i68
-rw-r--r--interface-definitions/include/bgp/afi-ipv4-prefix-list.xml.i4
-rw-r--r--interface-definitions/include/bgp/afi-ipv6-prefix-list.xml.i4
-rw-r--r--interface-definitions/include/bgp/afi-label.xml.i2
-rw-r--r--interface-definitions/include/bgp/afi-rd.xml.i2
-rw-r--r--interface-definitions/include/bgp/afi-route-map-export-import.xml.i4
-rw-r--r--interface-definitions/include/bgp/neighbor-afi-ipv4-ipv6-common.xml.i8
-rw-r--r--interface-definitions/include/bgp/neighbor-graceful-restart.xml.i2
-rw-r--r--interface-definitions/include/bgp/protocol-common-config.xml.i4
-rw-r--r--interface-definitions/include/bgp/remote-as.xml.i2
-rw-r--r--interface-definitions/include/firewall/action-accept-drop-reject.xml.i2
-rw-r--r--interface-definitions/include/firewall/action.xml.i2
-rw-r--r--interface-definitions/include/firewall/common-rule.xml.i48
-rw-r--r--interface-definitions/include/firewall/icmp-type-name.xml.i2
-rw-r--r--interface-definitions/include/firewall/icmpv6-type-name.xml.i2
-rw-r--r--interface-definitions/include/firewall/name-default-action.xml.i2
-rw-r--r--interface-definitions/include/interface/address-ipv4-ipv6-dhcp.xml.i2
-rw-r--r--interface-definitions/include/interface/adjust-mss.xml.i2
-rw-r--r--interface-definitions/include/interface/default-route-distance.xml.i15
-rw-r--r--interface-definitions/include/interface/description.xml.i2
-rw-r--r--interface-definitions/include/interface/dhcp-options.xml.i21
-rw-r--r--interface-definitions/include/interface/no-default-route.xml.i8
-rw-r--r--interface-definitions/include/interface/parameters-flowlabel.xml.i2
-rw-r--r--interface-definitions/include/interface/source-validation.xml.i2
-rw-r--r--interface-definitions/include/interface/vif-s.xml.i2
-rw-r--r--interface-definitions/include/interface/vif.xml.i4
-rw-r--r--interface-definitions/include/ipsec/local-address.xml.i2
-rw-r--r--interface-definitions/include/nat-translation-options.xml.i4
-rw-r--r--interface-definitions/include/ospf/authentication.xml.i4
-rw-r--r--interface-definitions/include/ospf/protocol-common-config.xml.i14
-rw-r--r--interface-definitions/include/ospfv3/protocol-common-config.xml.i2
-rw-r--r--interface-definitions/include/policy/action.xml.i2
-rw-r--r--interface-definitions/include/policy/route-common-rule-ipv6.xml.i14
-rw-r--r--interface-definitions/include/policy/route-common-rule.xml.i12
-rw-r--r--interface-definitions/include/policy/route-rule-action.xml.i2
-rw-r--r--interface-definitions/include/route-map.xml.i2
-rw-r--r--interface-definitions/include/routing-passive-interface.xml.i2
-rw-r--r--interface-definitions/include/snmp/access-mode.xml.i2
-rw-r--r--interface-definitions/include/snmp/authentication-type.xml.i2
-rw-r--r--interface-definitions/include/snmp/privacy-type.xml.i2
-rw-r--r--interface-definitions/include/snmp/protocol.xml.i2
-rw-r--r--interface-definitions/include/ssh-user.xml.i2
-rw-r--r--interface-definitions/include/static/static-route-vrf.xml.i2
-rw-r--r--interface-definitions/include/version/interfaces-version.xml.i2
-rw-r--r--interface-definitions/include/version/quagga-version.xml.i2
-rw-r--r--interface-definitions/include/version/system-version.xml.i2
-rw-r--r--interface-definitions/include/vpn-ipsec-encryption.xml.i2
-rw-r--r--interface-definitions/include/vpn-ipsec-hash.xml.i2
-rw-r--r--interface-definitions/include/webproxy-url-filtering.xml.i2
-rw-r--r--interface-definitions/interfaces-bonding.xml.in8
-rw-r--r--interface-definitions/interfaces-bridge.xml.in2
-rw-r--r--interface-definitions/interfaces-dummy.xml.in2
-rw-r--r--interface-definitions/interfaces-ethernet.xml.in6
-rw-r--r--interface-definitions/interfaces-geneve.xml.in2
-rw-r--r--interface-definitions/interfaces-l2tpv3.xml.in4
-rw-r--r--interface-definitions/interfaces-loopback.xml.in2
-rw-r--r--interface-definitions/interfaces-macsec.xml.in8
-rw-r--r--interface-definitions/interfaces-openvpn.xml.in22
-rw-r--r--interface-definitions/interfaces-pppoe.xml.in31
-rw-r--r--interface-definitions/interfaces-pseudo-ethernet.xml.in4
-rw-r--r--interface-definitions/interfaces-tunnel.xml.in10
-rw-r--r--interface-definitions/interfaces-vti.xml.in2
-rw-r--r--interface-definitions/interfaces-vxlan.xml.in2
-rw-r--r--interface-definitions/interfaces-wireguard.xml.in10
-rw-r--r--interface-definitions/interfaces-wireless.xml.in40
-rw-r--r--interface-definitions/interfaces-wwan.xml.in2
-rw-r--r--interface-definitions/nat.xml.in2
-rw-r--r--interface-definitions/nat66.xml.in2
-rw-r--r--interface-definitions/netns.xml.in2
-rw-r--r--interface-definitions/policy-local-route.xml.in4
-rw-r--r--interface-definitions/policy-route.xml.in4
-rw-r--r--interface-definitions/policy.xml.in123
-rw-r--r--interface-definitions/protocols-bfd.xml.in2
-rw-r--r--interface-definitions/protocols-nhrp.xml.in4
-rw-r--r--interface-definitions/protocols-rip.xml.in4
-rw-r--r--interface-definitions/protocols-static-arp.xml.in44
-rw-r--r--interface-definitions/service-ids-ddos-protection.xml.in2
-rw-r--r--interface-definitions/service_conntrack-sync.xml.in7
-rw-r--r--interface-definitions/service_console-server.xml.in6
-rw-r--r--interface-definitions/service_ipoe-server.xml.in6
-rw-r--r--interface-definitions/service_monitoring_telegraf.xml.in129
-rw-r--r--interface-definitions/service_pppoe-server.xml.in8
-rw-r--r--interface-definitions/service_router-advert.xml.in10
-rw-r--r--interface-definitions/service_upnp.xml.in2
-rw-r--r--interface-definitions/service_webproxy.xml.in12
-rw-r--r--interface-definitions/snmp.xml.in46
-rw-r--r--interface-definitions/ssh.xml.in72
-rw-r--r--interface-definitions/system-conntrack.xml.in2
-rw-r--r--interface-definitions/system-console.xml.in4
-rw-r--r--interface-definitions/system-lcd.xml.in4
-rw-r--r--interface-definitions/system-login.xml.in8
-rw-r--r--interface-definitions/system-option.xml.in4
-rw-r--r--interface-definitions/system-proxy.xml.in4
-rw-r--r--interface-definitions/system-syslog.xml.in22
-rw-r--r--interface-definitions/vpn_ipsec.xml.in36
-rw-r--r--interface-definitions/vpn_l2tp.xml.in4
-rw-r--r--interface-definitions/vpn_openconnect.xml.in78
-rw-r--r--interface-definitions/vpn_pptp.xml.in2
-rw-r--r--interface-definitions/vrf.xml.in16
-rw-r--r--interface-definitions/zone-policy.xml.in6
117 files changed, 854 insertions, 485 deletions
diff --git a/interface-definitions/containers.xml.in b/interface-definitions/container.xml.in
index 9cd2b0902..51171d881 100644
--- a/interface-definitions/containers.xml.in
+++ b/interface-definitions/container.xml.in
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
<interfaceDefinition>
- <node name="container" owner="${vyos_conf_scripts_dir}/containers.py">
+ <node name="container" owner="${vyos_conf_scripts_dir}/container.py">
<properties>
<help>Container applications</help>
<priority>1280</priority>
@@ -10,7 +10,7 @@
<properties>
<help>Container name</help>
<constraint>
- <regex>^[-a-zA-Z0-9]+$</regex>
+ <regex>[-a-zA-Z0-9]+</regex>
</constraint>
<constraintErrorMessage>Container name must be alphanumeric and can contain hyphens</constraintErrorMessage>
</properties>
@@ -52,7 +52,7 @@
<description>Permission to set system clock</description>
</valueHelp>
<constraint>
- <regex>^(net-admin|net-bind-service|net-raw|setpcap|sys-admin|sys-time)$</regex>
+ <regex>(net-admin|net-bind-service|net-raw|setpcap|sys-admin|sys-time)</regex>
</constraint>
<multi/>
</properties>
@@ -88,7 +88,7 @@
<properties>
<help>Add custom environment variables</help>
<constraint>
- <regex>^[-_a-zA-Z0-9]+$</regex>
+ <regex>[-_a-zA-Z0-9]+</regex>
</constraint>
<constraintErrorMessage>Environment variable name must be alphanumeric and can contain hyphen and underscores</constraintErrorMessage>
</properties>
@@ -194,7 +194,7 @@
<list>tcp udp</list>
</completionHelp>
<constraint>
- <regex>^(tcp|udp)$</regex>
+ <regex>(tcp|udp)</regex>
</constraint>
</properties>
</leafNode>
@@ -219,7 +219,7 @@
<description>Restart containers when they exit, regardless of status, retrying indefinitely</description>
</valueHelp>
<constraint>
- <regex>^(no|on-failure|always)$</regex>
+ <regex>(no|on-failure|always)</regex>
</constraint>
</properties>
<defaultValue>on-failure</defaultValue>
@@ -283,10 +283,10 @@
</tagNode>
<leafNode name="registry">
<properties>
- <help>Add registry</help>
+ <help>Registry Name</help>
<multi/>
</properties>
- <defaultValue>docker.io</defaultValue>
+ <defaultValue>docker.io quay.io</defaultValue>
</leafNode>
</children>
</node>
diff --git a/interface-definitions/dhcp-relay.xml.in b/interface-definitions/dhcp-relay.xml.in
index 339941e65..27d0a3e6c 100644
--- a/interface-definitions/dhcp-relay.xml.in
+++ b/interface-definitions/dhcp-relay.xml.in
@@ -66,7 +66,7 @@
<description>discard packet (default action if giaddr not set in packet)</description>
</valueHelp>
<constraint>
- <regex>^(append|replace|forward|discard)$</regex>
+ <regex>(append|replace|forward|discard)</regex>
</constraint>
</properties>
<defaultValue>forward</defaultValue>
diff --git a/interface-definitions/dhcp-server.xml.in b/interface-definitions/dhcp-server.xml.in
index 4ea2d471d..60e738e01 100644
--- a/interface-definitions/dhcp-server.xml.in
+++ b/interface-definitions/dhcp-server.xml.in
@@ -58,7 +58,7 @@
<description>Configure this server to be the secondary node</description>
</valueHelp>
<constraint>
- <regex>^(primary|secondary)$</regex>
+ <regex>(primary|secondary)</regex>
</constraint>
<constraintErrorMessage>Invalid DHCP failover peer status</constraintErrorMessage>
</properties>
@@ -259,7 +259,7 @@
<properties>
<help>DHCP lease range</help>
<constraint>
- <regex>^[-_a-zA-Z0-9.]+$</regex>
+ <regex>[-_a-zA-Z0-9.]+</regex>
</constraint>
<constraintErrorMessage>Invalid range name, may only be alphanumeric, dot and hyphen</constraintErrorMessage>
</properties>
@@ -294,7 +294,7 @@
<properties>
<help>Name of static mapping</help>
<constraint>
- <regex>^[-_a-zA-Z0-9.]+$</regex>
+ <regex>[-_a-zA-Z0-9.]+</regex>
</constraint>
<constraintErrorMessage>Invalid static mapping name, may only be alphanumeric, dot and hyphen</constraintErrorMessage>
</properties>
@@ -374,6 +374,18 @@
<leafNode name="tftp-server-name">
<properties>
<help>TFTP server name</help>
+ <valueHelp>
+ <format>ipv4</format>
+ <description>TFTP server IPv4 address</description>
+ </valueHelp>
+ <valueHelp>
+ <format>hostname</format>
+ <description>TFTP server FQDN</description>
+ </valueHelp>
+ <constraint>
+ <validator name="ipv4-address"/>
+ <validator name="fqdn"/>
+ </constraint>
</properties>
</leafNode>
<leafNode name="time-offset">
@@ -402,6 +414,32 @@
<multi/>
</properties>
</leafNode>
+ <node name="vendor-option">
+ <properties>
+ <help>Vendor Specific Options</help>
+ </properties>
+ <children>
+ <node name="ubiquiti">
+ <properties>
+ <help>Ubiquiti specific parameters</help>
+ </properties>
+ <children>
+ <leafNode name="unifi-controller">
+ <properties>
+ <help>Address of UniFi controller</help>
+ <valueHelp>
+ <format>ipv4</format>
+ <description>IP address of UniFi controller</description>
+ </valueHelp>
+ <constraint>
+ <validator name="ipv4-address"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ </children>
+ </node>
+ </children>
+ </node>
<leafNode name="wins-server">
<properties>
<help>IP address for Windows Internet Name Service (WINS) server</help>
diff --git a/interface-definitions/dhcpv6-server.xml.in b/interface-definitions/dhcpv6-server.xml.in
index fb96571f5..10335b07e 100644
--- a/interface-definitions/dhcpv6-server.xml.in
+++ b/interface-definitions/dhcpv6-server.xml.in
@@ -338,6 +338,33 @@
</leafNode>
</children>
</tagNode>
+ <node name="vendor-option">
+ <properties>
+ <help>Vendor Specific Options</help>
+ </properties>
+ <children>
+ <node name="cisco">
+ <properties>
+ <help>Cisco specific parameters</help>
+ </properties>
+ <children>
+ <leafNode name="tftp-server">
+ <properties>
+ <help>TFTP server name</help>
+ <valueHelp>
+ <format>ipv6</format>
+ <description>TFTP server IPv6 address</description>
+ </valueHelp>
+ <constraint>
+ <validator name="ipv6-address"/>
+ </constraint>
+ <multi/>
+ </properties>
+ </leafNode>
+ </children>
+ </node>
+ </children>
+ </node>
</children>
</tagNode>
</children>
diff --git a/interface-definitions/dns-domain-name.xml.in b/interface-definitions/dns-domain-name.xml.in
index 7ae537d00..0d6418272 100644
--- a/interface-definitions/dns-domain-name.xml.in
+++ b/interface-definitions/dns-domain-name.xml.in
@@ -56,7 +56,7 @@
<properties>
<help>DNS domain completion order</help>
<constraint>
- <regex>[-a-zA-Z0-9.]+$</regex>
+ <regex>[-a-zA-Z0-9.]+</regex>
</constraint>
<constraintErrorMessage>Invalid domain name</constraintErrorMessage>
<multi/>
@@ -74,7 +74,7 @@
<properties>
<help>Host name for static address mapping</help>
<constraint>
- <regex>[A-Za-z0-9][-.A-Za-z0-9]*[A-Za-z0-9]$</regex>
+ <regex>[A-Za-z0-9][-.A-Za-z0-9]*[A-Za-z0-9]</regex>
</constraint>
<constraintErrorMessage>invalid hostname</constraintErrorMessage>
</properties>
@@ -83,7 +83,7 @@
<properties>
<help>Alias for this address</help>
<constraint>
- <regex>.{1,63}$</regex>
+ <regex>.{1,63}</regex>
</constraint>
<constraintErrorMessage>invalid alias hostname, needs to be between 1 and 63 charactes</constraintErrorMessage>
<multi />
diff --git a/interface-definitions/dns-dynamic.xml.in b/interface-definitions/dns-dynamic.xml.in
index 64826516e..6bc467b76 100644
--- a/interface-definitions/dns-dynamic.xml.in
+++ b/interface-definitions/dns-dynamic.xml.in
@@ -120,7 +120,7 @@
<description>zoneedit.com Services</description>
</valueHelp>
<constraint>
- <regex>^(custom|afraid|changeip|cloudflare|dnspark|dslreports|dyndns|easydns|namecheap|noip|sitelutions|zoneedit|\w+)$</regex>
+ <regex>(custom|afraid|changeip|cloudflare|dnspark|dslreports|dyndns|easydns|namecheap|noip|sitelutions|zoneedit|\w+)</regex>
</constraint>
<constraintErrorMessage>You can use only predefined list of services or word characters (_, a-z, A-Z, 0-9) as service name</constraintErrorMessage>
</properties>
@@ -232,7 +232,7 @@
<description>Zoneedit protocol</description>
</valueHelp>
<constraint>
- <regex>^(changeip|cloudflare|dnsmadeeasy|dnspark|dondominio|dslreports1|dtdns|duckdns|dyndns2|easydns|freedns|freemyip|googledomains|hammernode1|namecheap|nfsn|noip|sitelutions|woima|yandex|zoneedit1)$</regex>
+ <regex>(changeip|cloudflare|dnsmadeeasy|dnspark|dondominio|dslreports1|dtdns|duckdns|dyndns2|easydns|freedns|freemyip|googledomains|hammernode1|namecheap|nfsn|noip|sitelutions|woima|yandex|zoneedit1)</regex>
</constraint>
<constraintErrorMessage>Please choose from the list of allowed protocols</constraintErrorMessage>
</properties>
diff --git a/interface-definitions/dns-forwarding.xml.in b/interface-definitions/dns-forwarding.xml.in
index 08501a4b5..6ead3e199 100644
--- a/interface-definitions/dns-forwarding.xml.in
+++ b/interface-definitions/dns-forwarding.xml.in
@@ -63,7 +63,7 @@
<description>Full blown DNSSEC validation. Send SERVFAIL to clients on bogus responses.</description>
</valueHelp>
<constraint>
- <regex>^(off|process-no-validate|process|log-fail|validate)$</regex>
+ <regex>(off|process-no-validate|process|log-fail|validate)</regex>
</constraint>
</properties>
<defaultValue>process-no-validate</defaultValue>
@@ -113,7 +113,7 @@
<description>An absolute DNS name</description>
</valueHelp>
<constraint>
- <regex>^[-_a-zA-Z0-9.]{1,63}$</regex>
+ <regex>[-_a-zA-Z0-9.]{1,63}</regex>
</constraint>
</properties>
<children>
@@ -134,7 +134,7 @@
<description>Root record</description>
</valueHelp>
<constraint>
- <regex>^([-_a-zA-Z0-9.]{1,63}|@)(?&lt;!\.)$</regex>
+ <regex>([-_a-zA-Z0-9.]{1,63}|@)(?&lt;!\.)</regex>
</constraint>
</properties>
<children>
@@ -167,7 +167,7 @@
<description>Root record</description>
</valueHelp>
<constraint>
- <regex>^([-_a-zA-Z0-9.]{1,63}|@)(?&lt;!\.)$</regex>
+ <regex>([-_a-zA-Z0-9.]{1,63}|@)(?&lt;!\.)</regex>
</constraint>
</properties>
<children>
@@ -200,7 +200,7 @@
<description>Root record</description>
</valueHelp>
<constraint>
- <regex>^([-_a-zA-Z0-9.]{1,63}|@)(?&lt;!\.)$</regex>
+ <regex>([-_a-zA-Z0-9.]{1,63}|@)(?&lt;!\.)</regex>
</constraint>
</properties>
<children>
@@ -212,7 +212,7 @@
<description>An absolute DNS name</description>
</valueHelp>
<constraint>
- <regex>^[-_a-zA-Z0-9.]{1,63}(?&lt;!\.)$</regex>
+ <regex>[-_a-zA-Z0-9.]{1,63}(?&lt;!\.)</regex>
</constraint>
</properties>
</leafNode>
@@ -232,7 +232,7 @@
<description>Root record</description>
</valueHelp>
<constraint>
- <regex>^([-_a-zA-Z0-9.]{1,63}|@)(?&lt;!\.)$</regex>
+ <regex>([-_a-zA-Z0-9.]{1,63}|@)(?&lt;!\.)</regex>
</constraint>
</properties>
<children>
@@ -244,7 +244,7 @@
<description>An absolute DNS name</description>
</valueHelp>
<constraint>
- <regex>^[-_a-zA-Z0-9.]{1,63}(?&lt;!\.)$</regex>
+ <regex>[-_a-zA-Z0-9.]{1,63}(?&lt;!\.)</regex>
</constraint>
</properties>
<children>
@@ -279,7 +279,7 @@
<description>Root record</description>
</valueHelp>
<constraint>
- <regex>^([-_a-zA-Z0-9.]{1,63}|@)(?&lt;!\.)$</regex>
+ <regex>([-_a-zA-Z0-9.]{1,63}|@)(?&lt;!\.)</regex>
</constraint>
</properties>
<children>
@@ -291,7 +291,7 @@
<description>An absolute DNS name</description>
</valueHelp>
<constraint>
- <regex>^[-_a-zA-Z0-9.]{1,63}(?&lt;!\.)$</regex>
+ <regex>[-_a-zA-Z0-9.]{1,63}(?&lt;!\.)</regex>
</constraint>
</properties>
</leafNode>
@@ -311,7 +311,7 @@
<description>Root record</description>
</valueHelp>
<constraint>
- <regex>^([-_a-zA-Z0-9.]{1,63}|@)(?&lt;!\.)$</regex>
+ <regex>([-_a-zA-Z0-9.]{1,63}|@)(?&lt;!\.)</regex>
</constraint>
</properties>
<children>
@@ -341,7 +341,7 @@
<description>Root record</description>
</valueHelp>
<constraint>
- <regex>^([-_a-zA-Z0-9.]{1,63}|@)(?&lt;!\.)$</regex>
+ <regex>([-_a-zA-Z0-9.]{1,63}|@)(?&lt;!\.)</regex>
</constraint>
</properties>
<children>
@@ -370,7 +370,7 @@
<description>Root record</description>
</valueHelp>
<constraint>
- <regex>^([-_a-zA-Z0-9.]{1,63}|@)(?&lt;!\.)$</regex>
+ <regex>([-_a-zA-Z0-9.]{1,63}|@)(?&lt;!\.)</regex>
</constraint>
</properties>
<children>
@@ -394,7 +394,7 @@
<description>An absolute DNS name</description>
</valueHelp>
<constraint>
- <regex>^[-_a-zA-Z0-9.]{1,63}(?&lt;!\.)$</regex>
+ <regex>[-_a-zA-Z0-9.]{1,63}(?&lt;!\.)</regex>
</constraint>
</properties>
</leafNode>
@@ -454,7 +454,7 @@
<description>Root record</description>
</valueHelp>
<constraint>
- <regex>^([-_a-zA-Z0-9.]{1,63}|@)(?&lt;!\.)$</regex>
+ <regex>([-_a-zA-Z0-9.]{1,63}|@)(?&lt;!\.)</regex>
</constraint>
</properties>
<children>
@@ -523,7 +523,7 @@
<properties>
<help>Service type</help>
<constraint>
- <regex>^[a-zA-Z][a-zA-Z0-9]{0,31}(\+[a-zA-Z][a-zA-Z0-9]{0,31})?$</regex>
+ <regex>[a-zA-Z][a-zA-Z0-9]{0,31}(\+[a-zA-Z][a-zA-Z0-9]{0,31})?</regex>
</constraint>
</properties>
</leafNode>
@@ -540,7 +540,7 @@
<description>An absolute DNS name</description>
</valueHelp>
<constraint>
- <regex>^[-_a-zA-Z0-9.]{1,63}(?&lt;!\.)$</regex>
+ <regex>[-_a-zA-Z0-9.]{1,63}(?&lt;!\.)</regex>
</constraint>
</properties>
</leafNode>
diff --git a/interface-definitions/firewall.xml.in b/interface-definitions/firewall.xml.in
index f2aca4b3a..ff8d92a24 100644
--- a/interface-definitions/firewall.xml.in
+++ b/interface-definitions/firewall.xml.in
@@ -21,7 +21,7 @@
<description>Disable processing of all IPv4 ICMP echo requests</description>
</valueHelp>
<constraint>
- <regex>^(enable|disable)$</regex>
+ <regex>(enable|disable)</regex>
</constraint>
</properties>
<defaultValue>enable</defaultValue>
@@ -41,7 +41,7 @@
<description>Disable processing of broadcast IPv4 ICMP echo/timestamp requests</description>
</valueHelp>
<constraint>
- <regex>^(enable|disable)$</regex>
+ <regex>(enable|disable)</regex>
</constraint>
</properties>
<defaultValue>disable</defaultValue>
@@ -61,7 +61,7 @@
<description>Disable sending SNMP trap on firewall configuration change</description>
</valueHelp>
<constraint>
- <regex>^(enable|disable)$</regex>
+ <regex>(enable|disable)</regex>
</constraint>
</properties>
<defaultValue>disable</defaultValue>
@@ -75,7 +75,7 @@
<properties>
<help>Firewall address-group</help>
<constraint>
- <regex>^[a-zA-Z0-9][\w\-\.]*$</regex>
+ <regex>[a-zA-Z0-9][\w\-\.]*</regex>
</constraint>
</properties>
<children>
@@ -104,7 +104,7 @@
<properties>
<help>Firewall ipv6-address-group</help>
<constraint>
- <regex>^[a-zA-Z0-9][\w\-\.]*$</regex>
+ <regex>[a-zA-Z0-9][\w\-\.]*</regex>
</constraint>
</properties>
<children>
@@ -133,7 +133,7 @@
<properties>
<help>Firewall ipv6-network-group</help>
<constraint>
- <regex>^[a-zA-Z0-9][\w\-\.]*$</regex>
+ <regex>[a-zA-Z0-9][\w\-\.]*</regex>
</constraint>
</properties>
<children>
@@ -157,7 +157,7 @@
<properties>
<help>Firewall mac-group</help>
<constraint>
- <regex>^[a-zA-Z0-9][\w\-\.]*$</regex>
+ <regex>[a-zA-Z0-9][\w\-\.]*</regex>
</constraint>
</properties>
<children>
@@ -181,7 +181,7 @@
<properties>
<help>Firewall network-group</help>
<constraint>
- <regex>^[a-zA-Z0-9][\w\-\.]*$</regex>
+ <regex>[a-zA-Z0-9][\w\-\.]*</regex>
</constraint>
</properties>
<children>
@@ -205,7 +205,7 @@
<properties>
<help>Firewall port-group</help>
<constraint>
- <regex>^[a-zA-Z0-9][\w\-\.]*$</regex>
+ <regex>[a-zA-Z0-9][\w\-\.]*</regex>
</constraint>
</properties>
<children>
@@ -250,7 +250,7 @@
<description>Disable processing of IPv4 packets with source route option</description>
</valueHelp>
<constraint>
- <regex>^(enable|disable)$</regex>
+ <regex>(enable|disable)</regex>
</constraint>
</properties>
<defaultValue>disable</defaultValue>
@@ -259,7 +259,7 @@
<properties>
<help>IPv6 firewall rule-set name</help>
<constraint>
- <regex>^[a-zA-Z0-9][\w\-\.]*$</regex>
+ <regex>[a-zA-Z0-9][\w\-\.]*</regex>
</constraint>
</properties>
<children>
@@ -396,7 +396,7 @@
<description>Disable processing of received ICMPv6 redirect messages</description>
</valueHelp>
<constraint>
- <regex>^(enable|disable)$</regex>
+ <regex>(enable|disable)</regex>
</constraint>
</properties>
<defaultValue>disable</defaultValue>
@@ -416,7 +416,7 @@
<description>Disable processing of IPv6 packets with routing header</description>
</valueHelp>
<constraint>
- <regex>^(enable|disable)$</regex>
+ <regex>(enable|disable)</regex>
</constraint>
</properties>
<defaultValue>disable</defaultValue>
@@ -436,7 +436,7 @@
<description>Disable logging of Ipv4 packets with invalid addresses</description>
</valueHelp>
<constraint>
- <regex>^(enable|disable)$</regex>
+ <regex>(enable|disable)</regex>
</constraint>
</properties>
<defaultValue>enable</defaultValue>
@@ -445,7 +445,7 @@
<properties>
<help>IPv4 firewall rule-set name</help>
<constraint>
- <regex>^[a-zA-Z0-9][\w\-\.]*$</regex>
+ <regex>[a-zA-Z0-9][\w\-\.]*</regex>
</constraint>
</properties>
<children>
@@ -539,7 +539,7 @@
<description>Disable processing of received IPv4 ICMP redirect messages</description>
</valueHelp>
<constraint>
- <regex>^(enable|disable)$</regex>
+ <regex>(enable|disable)</regex>
</constraint>
</properties>
<defaultValue>disable</defaultValue>
@@ -559,7 +559,7 @@
<description>Disable sending IPv4 ICMP redirect messages</description>
</valueHelp>
<constraint>
- <regex>^(enable|disable)$</regex>
+ <regex>(enable|disable)</regex>
</constraint>
</properties>
<defaultValue>enable</defaultValue>
@@ -583,7 +583,7 @@
<description>No source validation</description>
</valueHelp>
<constraint>
- <regex>^(strict|loose|disable)$</regex>
+ <regex>(strict|loose|disable)</regex>
</constraint>
</properties>
<defaultValue>disable</defaultValue>
@@ -637,7 +637,7 @@
<description>Disable use of TCP SYN cookies with IPv4</description>
</valueHelp>
<constraint>
- <regex>^(enable|disable)$</regex>
+ <regex>(enable|disable)</regex>
</constraint>
</properties>
<defaultValue>enable</defaultValue>
@@ -657,7 +657,7 @@
<description>Disable RFC1337 TIME-WAIT hazards protection</description>
</valueHelp>
<constraint>
- <regex>^(enable|disable)$</regex>
+ <regex>(enable|disable)</regex>
</constraint>
</properties>
<defaultValue>disable</defaultValue>
diff --git a/interface-definitions/flow-accounting-conf.xml.in b/interface-definitions/flow-accounting-conf.xml.in
index 133e45c72..fc59f8ab3 100644
--- a/interface-definitions/flow-accounting-conf.xml.in
+++ b/interface-definitions/flow-accounting-conf.xml.in
@@ -146,7 +146,7 @@
<description>Authentication and authorization</description>
</valueHelp>
<constraint>
- <regex>^(auth|authpriv|cron|daemon|kern|lpr|mail|mark|news|protocols|security|syslog|user|uucp|local0|local1|local2|local3|local4|local5|local6|local7|all)$</regex>
+ <regex>(auth|authpriv|cron|daemon|kern|lpr|mail|mark|news|protocols|security|syslog|user|uucp|local0|local1|local2|local3|local4|local5|local6|local7|all)</regex>
</constraint>
</properties>
</leafNode>
@@ -168,7 +168,7 @@
<description>NetFlow engine-id for v9 / IPFIX</description>
</valueHelp>
<constraint>
- <regex>(\d|[1-9]\d{1,8}|[1-3]\d{9}|4[01]\d{8}|42[0-8]\d{7}|429[0-3]\d{6}|4294[0-8]\d{5}|42949[0-5]\d{4}|429496[0-6]\d{3}|4294967[01]\d{2}|42949672[0-8]\d|429496729[0-5])$|^(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5]):(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])$</regex>
+ <regex>(\d|[1-9]\d{1,8}|[1-3]\d{9}|4[01]\d{8}|42[0-8]\d{7}|429[0-3]\d{6}|4294[0-8]\d{5}|42949[0-5]\d{4}|429496[0-6]\d{3}|4294967[01]\d{2}|42949672[0-8]\d|429496729[0-5])$|^(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5]):(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])</regex>
</constraint>
</properties>
</leafNode>
diff --git a/interface-definitions/high-availability.xml.in b/interface-definitions/high-availability.xml.in
index 662052e12..0631acdda 100644
--- a/interface-definitions/high-availability.xml.in
+++ b/interface-definitions/high-availability.xml.in
@@ -63,7 +63,7 @@
<description>AH - IPSEC (not recommended)</description>
</valueHelp>
<constraint>
- <regex>^(plaintext-password|ah)$</regex>
+ <regex>(plaintext-password|ah)</regex>
</constraint>
<constraintErrorMessage>Authentication type must be plaintext-password or ah</constraintErrorMessage>
</properties>
@@ -323,7 +323,7 @@
<description>Locality-Based least connection</description>
</valueHelp>
<constraint>
- <regex>^(round-robin|weighted-round-robin|least-connection|weighted-least-connection|source-hashing|destination-hashing|locality-based-least-connection)$</regex>
+ <regex>(round-robin|weighted-round-robin|least-connection|weighted-least-connection|source-hashing|destination-hashing|locality-based-least-connection)</regex>
</constraint>
</properties>
<defaultValue>least-connection</defaultValue>
@@ -360,7 +360,7 @@
<description>Tunneling</description>
</valueHelp>
<constraint>
- <regex>^(direct|nat|tunnel)$</regex>
+ <regex>(direct|nat|tunnel)</regex>
</constraint>
</properties>
<defaultValue>nat</defaultValue>
@@ -394,7 +394,7 @@
<description>UDP</description>
</valueHelp>
<constraint>
- <regex>^(tcp|udp)$</regex>
+ <regex>(tcp|udp)</regex>
</constraint>
</properties>
<defaultValue>tcp</defaultValue>
diff --git a/interface-definitions/https.xml.in b/interface-definitions/https.xml.in
index 6fea2f1f6..d2c393036 100644
--- a/interface-definitions/https.xml.in
+++ b/interface-definitions/https.xml.in
@@ -38,7 +38,7 @@
<constraint>
<validator name="ipv4-address"/>
<validator name="ipv6-address"/>
- <regex>\*$</regex>
+ <regex>\*</regex>
</constraint>
</properties>
</leafNode>
diff --git a/interface-definitions/igmp-proxy.xml.in b/interface-definitions/igmp-proxy.xml.in
index c7ab60929..8e738fa7f 100644
--- a/interface-definitions/igmp-proxy.xml.in
+++ b/interface-definitions/igmp-proxy.xml.in
@@ -56,7 +56,7 @@
<description>Disabled interface</description>
</valueHelp>
<constraint>
- <regex>^(upstream|downstream|disabled)$</regex>
+ <regex>(upstream|downstream|disabled)</regex>
</constraint>
</properties>
<defaultValue>downstream</defaultValue>
diff --git a/interface-definitions/include/accel-ppp/auth-mode.xml.i b/interface-definitions/include/accel-ppp/auth-mode.xml.i
index a7711b675..c1a87cfe3 100644
--- a/interface-definitions/include/accel-ppp/auth-mode.xml.i
+++ b/interface-definitions/include/accel-ppp/auth-mode.xml.i
@@ -11,7 +11,7 @@
<description>Use RADIUS server for user autentication</description>
</valueHelp>
<constraint>
- <regex>^(local|radius)$</regex>
+ <regex>(local|radius)</regex>
</constraint>
<completionHelp>
<list>local radius</list>
diff --git a/interface-definitions/include/accel-ppp/auth-protocols.xml.i b/interface-definitions/include/accel-ppp/auth-protocols.xml.i
index 480747f53..d43266152 100644
--- a/interface-definitions/include/accel-ppp/auth-protocols.xml.i
+++ b/interface-definitions/include/accel-ppp/auth-protocols.xml.i
@@ -22,7 +22,7 @@
<description>Authentication via MS-CHAPv2 (Microsoft Challenge Handshake Authentication Protocol, version 2)</description>
</valueHelp>
<constraint>
- <regex>^(pap|chap|mschap|mschap-v2)$</regex>
+ <regex>(pap|chap|mschap|mschap-v2)</regex>
</constraint>
<multi/>
</properties>
diff --git a/interface-definitions/include/accel-ppp/ppp-mppe.xml.i b/interface-definitions/include/accel-ppp/ppp-mppe.xml.i
index e8370180b..4c2e84c25 100644
--- a/interface-definitions/include/accel-ppp/ppp-mppe.xml.i
+++ b/interface-definitions/include/accel-ppp/ppp-mppe.xml.i
@@ -18,7 +18,7 @@
<description>drop all mppe</description>
</valueHelp>
<constraint>
- <regex>^(require|prefer|deny)$</regex>
+ <regex>(require|prefer|deny)</regex>
</constraint>
</properties>
<defaultValue>prefer</defaultValue>
diff --git a/interface-definitions/include/accel-ppp/ppp-options-ipv4.xml.i b/interface-definitions/include/accel-ppp/ppp-options-ipv4.xml.i
index 3e065329d..a45390f43 100644
--- a/interface-definitions/include/accel-ppp/ppp-options-ipv4.xml.i
+++ b/interface-definitions/include/accel-ppp/ppp-options-ipv4.xml.i
@@ -3,7 +3,7 @@
<properties>
<help>IPv4 negotiation algorithm</help>
<constraint>
- <regex>^(deny|allow)$</regex>
+ <regex>(deny|allow)</regex>
</constraint>
<constraintErrorMessage>invalid value</constraintErrorMessage>
<valueHelp>
diff --git a/interface-definitions/include/accel-ppp/ppp-options-ipv6.xml.i b/interface-definitions/include/accel-ppp/ppp-options-ipv6.xml.i
index b9fbac5c6..98abc1111 100644
--- a/interface-definitions/include/accel-ppp/ppp-options-ipv6.xml.i
+++ b/interface-definitions/include/accel-ppp/ppp-options-ipv6.xml.i
@@ -3,7 +3,7 @@
<properties>
<help>IPv6 (IPCP6) negotiation algorithm</help>
<constraint>
- <regex>^(deny|allow|prefer|require)$</regex>
+ <regex>(deny|allow|prefer|require)</regex>
</constraint>
<constraintErrorMessage>invalid value</constraintErrorMessage>
<valueHelp>
diff --git a/interface-definitions/include/auth-local-users.xml.i b/interface-definitions/include/auth-local-users.xml.i
index cb456eecf..9fb507474 100644
--- a/interface-definitions/include/auth-local-users.xml.i
+++ b/interface-definitions/include/auth-local-users.xml.i
@@ -19,74 +19,6 @@
<help>Password used for authentication</help>
</properties>
</leafNode>
- <node name="otp">
- <properties>
- <help>2FA OTP authentication parameters</help>
- </properties>
- <children>
- <leafNode name="key">
- <properties>
- <help>Token Key Secret key for the token algorithm (see RFC 4226)</help>
- <valueHelp>
- <format>txt</format>
- <description>OTP key in hex-encoded format</description>
- </valueHelp>
- <constraint>
- <regex>[a-fA-F0-9]{20,10000}</regex>
- </constraint>
- <constraintErrorMessage>Key name must only include hex characters and be at least 20 characters long</constraintErrorMessage>
- </properties>
- </leafNode>
- <leafNode name="otp-length">
- <properties>
- <help>Number of digits in OTP code</help>
- <valueHelp>
- <format>u32:6-8</format>
- <description>Number of digits in OTP code</description>
- </valueHelp>
- <constraint>
- <validator name="numeric" argument="--range 6-8"/>
- </constraint>
- <constraintErrorMessage>Number of digits in OTP code must be between 6 and 8</constraintErrorMessage>
- </properties>
- <defaultValue>6</defaultValue>
- </leafNode>
- <leafNode name="interval">
- <properties>
- <help>Time tokens interval in seconds</help>
- <valueHelp>
- <format>u32:5-86400</format>
- <description>Time tokens interval in seconds.</description>
- </valueHelp>
- <constraint>
- <validator name="numeric" argument="--range 5-86400"/>
- </constraint>
- <constraintErrorMessage>Time token interval must be between 5 and 86400 seconds</constraintErrorMessage>
- </properties>
- <defaultValue>30</defaultValue>
- </leafNode>
- <leafNode name="token-type">
- <properties>
- <help>Token type</help>
- <valueHelp>
- <format>hotp-time</format>
- <description>Time-based OTP algorithm</description>
- </valueHelp>
- <valueHelp>
- <format>hotp-event</format>
- <description>Event-based OTP algorithm</description>
- </valueHelp>
- <constraint>
- <regex>(hotp-time|hotp-event)</regex>
- </constraint>
- <completionHelp>
- <list>hotp-time hotp-event</list>
- </completionHelp>
- </properties>
- <defaultValue>hotp-time</defaultValue>
- </leafNode>
- </children>
- </node>
</children>
</tagNode>
</children>
diff --git a/interface-definitions/include/bgp/afi-ipv4-prefix-list.xml.i b/interface-definitions/include/bgp/afi-ipv4-prefix-list.xml.i
index de42eeac9..34b5ec7d7 100644
--- a/interface-definitions/include/bgp/afi-ipv4-prefix-list.xml.i
+++ b/interface-definitions/include/bgp/afi-ipv4-prefix-list.xml.i
@@ -15,7 +15,7 @@
<description>Name of IPv4 prefix-list</description>
</valueHelp>
<constraint>
- <regex>^[-_a-zA-Z0-9]+$</regex>
+ <regex>[-_a-zA-Z0-9]+</regex>
</constraint>
<constraintErrorMessage>Name of prefix-list can only contain alpha-numeric letters, hyphen and underscores</constraintErrorMessage>
</properties>
@@ -31,7 +31,7 @@
<description>Name of IPv4 prefix-list</description>
</valueHelp>
<constraint>
- <regex>^[-_a-zA-Z0-9]+$</regex>
+ <regex>[-_a-zA-Z0-9]+</regex>
</constraint>
<constraintErrorMessage>Name of prefix-list can only contain alpha-numeric letters, hyphen and underscores</constraintErrorMessage>
</properties>
diff --git a/interface-definitions/include/bgp/afi-ipv6-prefix-list.xml.i b/interface-definitions/include/bgp/afi-ipv6-prefix-list.xml.i
index 2bf4753be..06c661a90 100644
--- a/interface-definitions/include/bgp/afi-ipv6-prefix-list.xml.i
+++ b/interface-definitions/include/bgp/afi-ipv6-prefix-list.xml.i
@@ -15,7 +15,7 @@
<description>Name of IPv6 prefix-list</description>
</valueHelp>
<constraint>
- <regex>^[-_a-zA-Z0-9]+$</regex>
+ <regex>[-_a-zA-Z0-9]+</regex>
</constraint>
<constraintErrorMessage>Name of prefix-list6 can only contain alpha-numeric letters, hyphen and underscores</constraintErrorMessage>
</properties>
@@ -31,7 +31,7 @@
<description>Name of IPv6 prefix-list</description>
</valueHelp>
<constraint>
- <regex>^[-_a-zA-Z0-9]+$</regex>
+ <regex>[-_a-zA-Z0-9]+</regex>
</constraint>
<constraintErrorMessage>Name of prefix-list6 can only contain alpha-numeric letters, hyphen and underscores</constraintErrorMessage>
</properties>
diff --git a/interface-definitions/include/bgp/afi-label.xml.i b/interface-definitions/include/bgp/afi-label.xml.i
index f7a1f609f..9535d19e8 100644
--- a/interface-definitions/include/bgp/afi-label.xml.i
+++ b/interface-definitions/include/bgp/afi-label.xml.i
@@ -25,7 +25,7 @@
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 0-1048575"/>
- <regex>^(auto)$</regex>
+ <regex>(auto)</regex>
</constraint>
</properties>
</leafNode>
diff --git a/interface-definitions/include/bgp/afi-rd.xml.i b/interface-definitions/include/bgp/afi-rd.xml.i
index c4d29268c..767502094 100644
--- a/interface-definitions/include/bgp/afi-rd.xml.i
+++ b/interface-definitions/include/bgp/afi-rd.xml.i
@@ -17,7 +17,7 @@
<description>Route Distinguisher, (x.x.x.x:yyy|xxxx:yyyy)</description>
</valueHelp>
<constraint>
- <regex>^((25[0-5]|2[0-4][0-9]|[1][0-9][0-9]|[1-9][0-9]|[0-9]?)(\.(25[0-5]|2[0-4][0-9]|[1][0-9][0-9]|[1-9][0-9]|[0-9]?)){3}|[0-9]{1,10}):[0-9]{1,5}$</regex>
+ <regex>((25[0-5]|2[0-4][0-9]|[1][0-9][0-9]|[1-9][0-9]|[0-9]?)(\.(25[0-5]|2[0-4][0-9]|[1][0-9][0-9]|[1-9][0-9]|[0-9]?)){3}|[0-9]{1,10}):[0-9]{1,5}</regex>
</constraint>
</properties>
</leafNode>
diff --git a/interface-definitions/include/bgp/afi-route-map-export-import.xml.i b/interface-definitions/include/bgp/afi-route-map-export-import.xml.i
index eae10d312..c218937c8 100644
--- a/interface-definitions/include/bgp/afi-route-map-export-import.xml.i
+++ b/interface-definitions/include/bgp/afi-route-map-export-import.xml.i
@@ -10,7 +10,7 @@
<description>Route map name</description>
</valueHelp>
<constraint>
- <regex>^[-_a-zA-Z0-9.]+$</regex>
+ <regex>[-_a-zA-Z0-9.]+</regex>
</constraint>
<constraintErrorMessage>Name of route-map can only contain alpha-numeric letters, hyphen and underscores</constraintErrorMessage>
</properties>
@@ -26,7 +26,7 @@
<description>Route map name</description>
</valueHelp>
<constraint>
- <regex>^[-_a-zA-Z0-9.]+$</regex>
+ <regex>[-_a-zA-Z0-9.]+</regex>
</constraint>
<constraintErrorMessage>Name of route-map can only contain alpha-numeric letters, hyphen and underscores</constraintErrorMessage>
</properties>
diff --git a/interface-definitions/include/bgp/neighbor-afi-ipv4-ipv6-common.xml.i b/interface-definitions/include/bgp/neighbor-afi-ipv4-ipv6-common.xml.i
index a56745380..75221a348 100644
--- a/interface-definitions/include/bgp/neighbor-afi-ipv4-ipv6-common.xml.i
+++ b/interface-definitions/include/bgp/neighbor-afi-ipv4-ipv6-common.xml.i
@@ -27,7 +27,7 @@
<description>Route map name</description>
</valueHelp>
<constraint>
- <regex>^[-_a-zA-Z0-9.]+$</regex>
+ <regex>[-_a-zA-Z0-9.]+</regex>
</constraint>
<constraintErrorMessage>Name of route-map can only contain alpha-numeric letters, hyphen and underscores</constraintErrorMessage>
</properties>
@@ -43,7 +43,7 @@
<description>Route map name</description>
</valueHelp>
<constraint>
- <regex>^[-_a-zA-Z0-9.]+$</regex>
+ <regex>[-_a-zA-Z0-9.]+</regex>
</constraint>
<constraintErrorMessage>Name of route-map can only contain alpha-numeric letters, hyphen and underscores</constraintErrorMessage>
</properties>
@@ -59,7 +59,7 @@
<description>Route map name</description>
</valueHelp>
<constraint>
- <regex>^[-_a-zA-Z0-9.]+$</regex>
+ <regex>[-_a-zA-Z0-9.]+</regex>
</constraint>
<constraintErrorMessage>Name of route-map can only contain alpha-numeric letters, hyphen and underscores</constraintErrorMessage>
</properties>
@@ -177,7 +177,7 @@
<description>Route map name</description>
</valueHelp>
<constraint>
- <regex>^[-_a-zA-Z0-9.]+$</regex>
+ <regex>[-_a-zA-Z0-9.]+</regex>
</constraint>
<constraintErrorMessage>Name of route-map can only contain alpha-numeric letters, hyphen and underscores</constraintErrorMessage>
</properties>
diff --git a/interface-definitions/include/bgp/neighbor-graceful-restart.xml.i b/interface-definitions/include/bgp/neighbor-graceful-restart.xml.i
index 25558cd5c..4399d7988 100644
--- a/interface-definitions/include/bgp/neighbor-graceful-restart.xml.i
+++ b/interface-definitions/include/bgp/neighbor-graceful-restart.xml.i
@@ -18,7 +18,7 @@
<description>Enable BGP graceful restart helper only functionality</description>
</valueHelp>
<constraint>
- <regex>^(enable|disable|restart-helper)$</regex>
+ <regex>(enable|disable|restart-helper)</regex>
</constraint>
</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 b59ff0287..abaff5232 100644
--- a/interface-definitions/include/bgp/protocol-common-config.xml.i
+++ b/interface-definitions/include/bgp/protocol-common-config.xml.i
@@ -1106,7 +1106,7 @@
<description>Ignore paths without link bandwidth for ECMP (if other paths have it)</description>
</valueHelp>
<constraint>
- <regex>^(default-weight-for-missing|ignore|skip-missing)$</regex>
+ <regex>(default-weight-for-missing|ignore|skip-missing)</regex>
</constraint>
</properties>
</leafNode>
@@ -1461,7 +1461,7 @@
<properties>
<help>Name of peer-group</help>
<constraint>
- <regex>^[-_a-zA-Z0-9]+$</regex>
+ <regex>[-_a-zA-Z0-9]+</regex>
</constraint>
</properties>
<children>
diff --git a/interface-definitions/include/bgp/remote-as.xml.i b/interface-definitions/include/bgp/remote-as.xml.i
index 11eb7c256..58595b3b9 100644
--- a/interface-definitions/include/bgp/remote-as.xml.i
+++ b/interface-definitions/include/bgp/remote-as.xml.i
@@ -19,7 +19,7 @@
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 1-4294967294"/>
- <regex>^(external|internal)$</regex>
+ <regex>(external|internal)</regex>
</constraint>
<constraintErrorMessage>Invalid AS number</constraintErrorMessage>
</properties>
diff --git a/interface-definitions/include/firewall/action-accept-drop-reject.xml.i b/interface-definitions/include/firewall/action-accept-drop-reject.xml.i
index 9f8baa884..7fd52319a 100644
--- a/interface-definitions/include/firewall/action-accept-drop-reject.xml.i
+++ b/interface-definitions/include/firewall/action-accept-drop-reject.xml.i
@@ -18,7 +18,7 @@
<description>Action to reject</description>
</valueHelp>
<constraint>
- <regex>^(accept|drop|reject)$</regex>
+ <regex>(accept|drop|reject)</regex>
</constraint>
</properties>
</leafNode>
diff --git a/interface-definitions/include/firewall/action.xml.i b/interface-definitions/include/firewall/action.xml.i
index 4ba93e3aa..0f60e3c38 100644
--- a/interface-definitions/include/firewall/action.xml.i
+++ b/interface-definitions/include/firewall/action.xml.i
@@ -18,7 +18,7 @@
<description>Drop matching entries</description>
</valueHelp>
<constraint>
- <regex>^(accept|reject|drop)$</regex>
+ <regex>(accept|reject|drop)</regex>
</constraint>
</properties>
</leafNode>
diff --git a/interface-definitions/include/firewall/common-rule.xml.i b/interface-definitions/include/firewall/common-rule.xml.i
index cd80b7e28..2a5137dbf 100644
--- a/interface-definitions/include/firewall/common-rule.xml.i
+++ b/interface-definitions/include/firewall/common-rule.xml.i
@@ -70,7 +70,7 @@
<description>integer/unit (Example: 5/minute)</description>
</valueHelp>
<constraint>
- <regex>^\d+/(second|minute|hour|day)$</regex>
+ <regex>\d+/(second|minute|hour|day)</regex>
</constraint>
</properties>
</leafNode>
@@ -91,10 +91,36 @@
<description>Disable log</description>
</valueHelp>
<constraint>
- <regex>^(enable|disable)$</regex>
+ <regex>(enable|disable)</regex>
</constraint>
</properties>
</leafNode>
+<node name="connection-status">
+ <properties>
+ <help>Connection status</help>
+ </properties>
+ <children>
+ <leafNode name="nat">
+ <properties>
+ <help>NAT connection status</help>
+ <completionHelp>
+ <list>destination source</list>
+ </completionHelp>
+ <valueHelp>
+ <format>destination</format>
+ <description>Match connections that are subject to destination NAT</description>
+ </valueHelp>
+ <valueHelp>
+ <format>source</format>
+ <description>Match connections that are subject to source NAT</description>
+ </valueHelp>
+ <constraint>
+ <regex>^(destination|source)$</regex>
+ </constraint>
+ </properties>
+ </leafNode>
+ </children>
+</node>
<leafNode name="protocol">
<properties>
<help>Protocol to match (protocol name, number, or "all")</help>
@@ -163,7 +189,7 @@
<description>Source addresses seen COUNT times in the last hour</description>
</valueHelp>
<constraint>
- <regex>^(second|minute|hour)$</regex>
+ <regex>(second|minute|hour)</regex>
</constraint>
</properties>
</leafNode>
@@ -215,7 +241,7 @@
<description>Disable</description>
</valueHelp>
<constraint>
- <regex>^(enable|disable)$</regex>
+ <regex>(enable|disable)</regex>
</constraint>
</properties>
</leafNode>
@@ -234,7 +260,7 @@
<description>Disable</description>
</valueHelp>
<constraint>
- <regex>^(enable|disable)$</regex>
+ <regex>(enable|disable)</regex>
</constraint>
</properties>
</leafNode>
@@ -253,7 +279,7 @@
<description>Disable</description>
</valueHelp>
<constraint>
- <regex>^(enable|disable)$</regex>
+ <regex>(enable|disable)</regex>
</constraint>
</properties>
</leafNode>
@@ -272,7 +298,7 @@
<description>Disable</description>
</valueHelp>
<constraint>
- <regex>^(enable|disable)$</regex>
+ <regex>(enable|disable)</regex>
</constraint>
</properties>
</leafNode>
@@ -292,7 +318,7 @@
<description>Enter date using following notation - YYYY-MM-DD</description>
</valueHelp>
<constraint>
- <regex>^(\d{4}\-\d{2}\-\d{2})$</regex>
+ <regex>(\d{4}\-\d{2}\-\d{2})</regex>
</constraint>
</properties>
</leafNode>
@@ -304,7 +330,7 @@
<description>Enter time using using 24 hour notation - hh:mm:ss</description>
</valueHelp>
<constraint>
- <regex>^([0-2][0-9](\:[0-5][0-9]){1,2})$</regex>
+ <regex>([0-2][0-9](\:[0-5][0-9]){1,2})</regex>
</constraint>
</properties>
</leafNode>
@@ -316,7 +342,7 @@
<description>Enter date using following notation - YYYY-MM-DD</description>
</valueHelp>
<constraint>
- <regex>^(\d{4}\-\d{2}\-\d{2})$</regex>
+ <regex>(\d{4}\-\d{2}\-\d{2})</regex>
</constraint>
</properties>
</leafNode>
@@ -328,7 +354,7 @@
<description>Enter time using using 24 hour notation - hh:mm:ss</description>
</valueHelp>
<constraint>
- <regex>^([0-2][0-9](\:[0-5][0-9]){1,2})$</regex>
+ <regex>([0-2][0-9](\:[0-5][0-9]){1,2})</regex>
</constraint>
</properties>
</leafNode>
diff --git a/interface-definitions/include/firewall/icmp-type-name.xml.i b/interface-definitions/include/firewall/icmp-type-name.xml.i
index f57def3e1..d4197cf82 100644
--- a/interface-definitions/include/firewall/icmp-type-name.xml.i
+++ b/interface-definitions/include/firewall/icmp-type-name.xml.i
@@ -66,7 +66,7 @@
<description>ICMP type 18: address-mask-reply</description>
</valueHelp>
<constraint>
- <regex>^(echo-reply|destination-unreachable|source-quench|redirect|echo-request|router-advertisement|router-solicitation|time-exceeded|parameter-problem|timestamp-request|timestamp-reply|info-request|info-reply|address-mask-request|address-mask-reply)$</regex>
+ <regex>(echo-reply|destination-unreachable|source-quench|redirect|echo-request|router-advertisement|router-solicitation|time-exceeded|parameter-problem|timestamp-request|timestamp-reply|info-request|info-reply|address-mask-request|address-mask-reply)</regex>
</constraint>
</properties>
</leafNode>
diff --git a/interface-definitions/include/firewall/icmpv6-type-name.xml.i b/interface-definitions/include/firewall/icmpv6-type-name.xml.i
index b13cf02c4..a2e68abfb 100644
--- a/interface-definitions/include/firewall/icmpv6-type-name.xml.i
+++ b/interface-definitions/include/firewall/icmpv6-type-name.xml.i
@@ -66,7 +66,7 @@
<description>ICMPv6 type 138: router-renumbering</description>
</valueHelp>
<constraint>
- <regex>^(destination-unreachable|packet-too-big|time-exceeded|echo-request|echo-reply|mld-listener-query|mld-listener-report|mld-listener-reduction|nd-router-solicit|nd-router-advert|nd-neighbor-solicit|nd-neighbor-advert|nd-redirect|parameter-problem|router-renumbering)$</regex>
+ <regex>(destination-unreachable|packet-too-big|time-exceeded|echo-request|echo-reply|mld-listener-query|mld-listener-report|mld-listener-reduction|nd-router-solicit|nd-router-advert|nd-neighbor-solicit|nd-neighbor-advert|nd-redirect|parameter-problem|router-renumbering)</regex>
</constraint>
</properties>
</leafNode>
diff --git a/interface-definitions/include/firewall/name-default-action.xml.i b/interface-definitions/include/firewall/name-default-action.xml.i
index 8470a29a9..512b0296f 100644
--- a/interface-definitions/include/firewall/name-default-action.xml.i
+++ b/interface-definitions/include/firewall/name-default-action.xml.i
@@ -18,7 +18,7 @@
<description>Accept if no prior rules are hit</description>
</valueHelp>
<constraint>
- <regex>^(drop|reject|accept)$</regex>
+ <regex>(drop|reject|accept)</regex>
</constraint>
</properties>
</leafNode>
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 123590c08..b9dd59bea 100644
--- a/interface-definitions/include/interface/address-ipv4-ipv6-dhcp.xml.i
+++ b/interface-definitions/include/interface/address-ipv4-ipv6-dhcp.xml.i
@@ -23,7 +23,7 @@
</valueHelp>
<constraint>
<validator name="ip-host"/>
- <regex>^(dhcp|dhcpv6)$</regex>
+ <regex>(dhcp|dhcpv6)</regex>
</constraint>
<multi/>
</properties>
diff --git a/interface-definitions/include/interface/adjust-mss.xml.i b/interface-definitions/include/interface/adjust-mss.xml.i
index 57019f02c..41140ffe1 100644
--- a/interface-definitions/include/interface/adjust-mss.xml.i
+++ b/interface-definitions/include/interface/adjust-mss.xml.i
@@ -16,7 +16,7 @@
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 500-65535"/>
- <regex>^(clamp-mss-to-pmtu)$</regex>
+ <regex>(clamp-mss-to-pmtu)</regex>
</constraint>
</properties>
</leafNode>
diff --git a/interface-definitions/include/interface/default-route-distance.xml.i b/interface-definitions/include/interface/default-route-distance.xml.i
new file mode 100644
index 000000000..6eda52c91
--- /dev/null
+++ b/interface-definitions/include/interface/default-route-distance.xml.i
@@ -0,0 +1,15 @@
+<!-- include start from interface/default-route-distance.xml.i -->
+<leafNode name="default-route-distance">
+ <properties>
+ <help>Distance for installed default route</help>
+ <valueHelp>
+ <format>u32:1-255</format>
+ <description>Distance for the default route from DHCP server</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 1-255"/>
+ </constraint>
+ </properties>
+ <defaultValue>210</defaultValue>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/interface/description.xml.i b/interface-definitions/include/interface/description.xml.i
index 8579cf7d1..de01d22ca 100644
--- a/interface-definitions/include/interface/description.xml.i
+++ b/interface-definitions/include/interface/description.xml.i
@@ -3,7 +3,7 @@
<properties>
<help>Interface specific description</help>
<constraint>
- <regex>.{1,256}$</regex>
+ <regex>.{1,256}</regex>
</constraint>
<constraintErrorMessage>Description too long (limit 256 characters)</constraintErrorMessage>
</properties>
diff --git a/interface-definitions/include/interface/dhcp-options.xml.i b/interface-definitions/include/interface/dhcp-options.xml.i
index 098d02919..914b60503 100644
--- a/interface-definitions/include/interface/dhcp-options.xml.i
+++ b/interface-definitions/include/interface/dhcp-options.xml.i
@@ -19,25 +19,8 @@
<help>Identify the vendor client type to the DHCP server</help>
</properties>
</leafNode>
- <leafNode name="no-default-route">
- <properties>
- <help>Do not request routers from DHCP server</help>
- <valueless/>
- </properties>
- </leafNode>
- <leafNode name="default-route-distance">
- <properties>
- <help>Distance for the default route from DHCP server</help>
- <valueHelp>
- <format>u32:1-255</format>
- <description>Distance for the default route from DHCP server</description>
- </valueHelp>
- <constraint>
- <validator name="numeric" argument="--range 1-255"/>
- </constraint>
- </properties>
- <defaultValue>210</defaultValue>
- </leafNode>
+ #include <include/interface/no-default-route.xml.i>
+ #include <include/interface/default-route-distance.xml.i>
<leafNode name="reject">
<properties>
<help>IP addresses or subnets from which to reject DHCP leases</help>
diff --git a/interface-definitions/include/interface/no-default-route.xml.i b/interface-definitions/include/interface/no-default-route.xml.i
new file mode 100644
index 000000000..307fcff1e
--- /dev/null
+++ b/interface-definitions/include/interface/no-default-route.xml.i
@@ -0,0 +1,8 @@
+<!-- include start from interface/dhcp-options.xml.i -->
+<leafNode name="no-default-route">
+ <properties>
+ <help>Do not install default route to system</help>
+ <valueless/>
+ </properties>
+</leafNode>
+<!-- include end -->
diff --git a/interface-definitions/include/interface/parameters-flowlabel.xml.i b/interface-definitions/include/interface/parameters-flowlabel.xml.i
index bd0d1e070..b2e88215b 100644
--- a/interface-definitions/include/interface/parameters-flowlabel.xml.i
+++ b/interface-definitions/include/interface/parameters-flowlabel.xml.i
@@ -14,7 +14,7 @@
<description>Tunnel key, or hex value</description>
</valueHelp>
<constraint>
- <regex>^((0x){0,1}(0?[0-9A-Fa-f]{1,5})|inherit)$</regex>
+ <regex>((0x){0,1}(0?[0-9A-Fa-f]{1,5})|inherit)</regex>
</constraint>
<constraintErrorMessage>Must be 'inherit' or a number</constraintErrorMessage>
</properties>
diff --git a/interface-definitions/include/interface/source-validation.xml.i b/interface-definitions/include/interface/source-validation.xml.i
index f38065f4d..fc9a7d376 100644
--- a/interface-definitions/include/interface/source-validation.xml.i
+++ b/interface-definitions/include/interface/source-validation.xml.i
@@ -18,7 +18,7 @@
<description>No source validation</description>
</valueHelp>
<constraint>
- <regex>^(strict|loose|disable)$</regex>
+ <regex>(strict|loose|disable)</regex>
</constraint>
</properties>
</leafNode>
diff --git a/interface-definitions/include/interface/vif-s.xml.i b/interface-definitions/include/interface/vif-s.xml.i
index 3b305618e..c1af9f9e3 100644
--- a/interface-definitions/include/interface/vif-s.xml.i
+++ b/interface-definitions/include/interface/vif-s.xml.i
@@ -35,7 +35,7 @@
<description>VLAN-tagged frame (IEEE 802.1q), ethertype 0x8100</description>
</valueHelp>
<constraint>
- <regex>^(802.1q|802.1ad)$</regex>
+ <regex>(802.1q|802.1ad)</regex>
</constraint>
<constraintErrorMessage>Ethertype must be 802.1ad or 802.1q</constraintErrorMessage>
</properties>
diff --git a/interface-definitions/include/interface/vif.xml.i b/interface-definitions/include/interface/vif.xml.i
index 4e7f9b3c2..57ef8d64c 100644
--- a/interface-definitions/include/interface/vif.xml.i
+++ b/interface-definitions/include/interface/vif.xml.i
@@ -28,7 +28,7 @@
<description>Format for qos mapping, e.g.: '0:1 1:6 7:6'</description>
</valueHelp>
<constraint>
- <regex>[:0-7 ]+$</regex>
+ <regex>[:0-7 ]+</regex>
</constraint>
<constraintErrorMessage>QoS mapping should be in the format of '0:7 2:3' with numbers 0-9</constraintErrorMessage>
</properties>
@@ -41,7 +41,7 @@
<description>Format for qos mapping, e.g.: '0:1 1:6 7:6'</description>
</valueHelp>
<constraint>
- <regex>[:0-7 ]+$</regex>
+ <regex>[:0-7 ]+</regex>
</constraint>
<constraintErrorMessage>QoS mapping should be in the format of '0:7 2:3' with numbers 0-9</constraintErrorMessage>
</properties>
diff --git a/interface-definitions/include/ipsec/local-address.xml.i b/interface-definitions/include/ipsec/local-address.xml.i
index 2de6ecb1f..dc5653ce7 100644
--- a/interface-definitions/include/ipsec/local-address.xml.i
+++ b/interface-definitions/include/ipsec/local-address.xml.i
@@ -20,7 +20,7 @@
<constraint>
<validator name="ipv4-address"/>
<validator name="ipv6-address"/>
- <regex>^(any)$</regex>
+ <regex>(any)</regex>
</constraint>
</properties>
</leafNode>
diff --git a/interface-definitions/include/nat-translation-options.xml.i b/interface-definitions/include/nat-translation-options.xml.i
index 925f90106..6b95de045 100644
--- a/interface-definitions/include/nat-translation-options.xml.i
+++ b/interface-definitions/include/nat-translation-options.xml.i
@@ -19,7 +19,7 @@
<description>Random source or destination address allocation for each connection</description>
</valueHelp>
<constraint>
- <regex>^(persistent|random)$</regex>
+ <regex>(persistent|random)</regex>
</constraint>
</properties>
<defaultValue>random</defaultValue>
@@ -43,7 +43,7 @@
<description>Do not apply port randomization</description>
</valueHelp>
<constraint>
- <regex>^(random|fully-random|none)$</regex>
+ <regex>(random|fully-random|none)</regex>
</constraint>
</properties>
<defaultValue>none</defaultValue>
diff --git a/interface-definitions/include/ospf/authentication.xml.i b/interface-definitions/include/ospf/authentication.xml.i
index 1e6050b97..8e8cad067 100644
--- a/interface-definitions/include/ospf/authentication.xml.i
+++ b/interface-definitions/include/ospf/authentication.xml.i
@@ -29,7 +29,7 @@
<description>MD5 Key (16 characters or less)</description>
</valueHelp>
<constraint>
- <regex>^[^[:space:]]{1,16}$</regex>
+ <regex>[^[:space:]]{1,16}</regex>
</constraint>
<constraintErrorMessage>Password must be 16 characters or less</constraintErrorMessage>
</properties>
@@ -46,7 +46,7 @@
<description>Plain text password (8 characters or less)</description>
</valueHelp>
<constraint>
- <regex>^[^[:space:]]{1,8}$</regex>
+ <regex>[^[:space:]]{1,8}</regex>
</constraint>
<constraintErrorMessage>Password must be 8 characters or less</constraintErrorMessage>
</properties>
diff --git a/interface-definitions/include/ospf/protocol-common-config.xml.i b/interface-definitions/include/ospf/protocol-common-config.xml.i
index 3a3372e47..c156d5b1c 100644
--- a/interface-definitions/include/ospf/protocol-common-config.xml.i
+++ b/interface-definitions/include/ospf/protocol-common-config.xml.i
@@ -45,7 +45,7 @@
<description>Filter static routes</description>
</valueHelp>
<constraint>
- <regex>^(bgp|connected|isis|kernel|rip|static)$</regex>
+ <regex>(bgp|connected|isis|kernel|rip|static)</regex>
</constraint>
<constraintErrorMessage>Must be bgp, connected, kernel, rip, or static</constraintErrorMessage>
<multi/>
@@ -123,7 +123,7 @@
<description>Never translate LSA types</description>
</valueHelp>
<constraint>
- <regex>^(always|candidate|never)$</regex>
+ <regex>(always|candidate|never)</regex>
</constraint>
</properties>
<defaultValue>candidate</defaultValue>
@@ -172,7 +172,7 @@
<description>Use MD5 authentication</description>
</valueHelp>
<constraint>
- <regex>^(plaintext-password|md5)$</regex>
+ <regex>(plaintext-password|md5)</regex>
</constraint>
</properties>
</leafNode>
@@ -252,7 +252,7 @@
<description>Enable shortcutting mode</description>
</valueHelp>
<constraint>
- <regex>^(default|disable|enable)$</regex>
+ <regex>(default|disable|enable)</regex>
</constraint>
</properties>
</leafNode>
@@ -432,7 +432,7 @@
<description>Point-to-point network type</description>
</valueHelp>
<constraint>
- <regex>^(broadcast|non-broadcast|point-to-multipoint|point-to-point)$</regex>
+ <regex>(broadcast|non-broadcast|point-to-multipoint|point-to-point)</regex>
</constraint>
<constraintErrorMessage>Must be broadcast, non-broadcast, point-to-multipoint or point-to-point</constraintErrorMessage>
</properties>
@@ -586,7 +586,7 @@
<description>Standard ABR type</description>
</valueHelp>
<constraint>
- <regex>^(cisco|ibm|shortcut|standard)$</regex>
+ <regex>(cisco|ibm|shortcut|standard)</regex>
</constraint>
</properties>
<defaultValue>cisco</defaultValue>
@@ -617,7 +617,7 @@
<description>Default to suppress routing updates on all interfaces</description>
</valueHelp>
<constraint>
- <regex>^(default)$</regex>
+ <regex>(default)</regex>
</constraint>
</properties>
</leafNode>
diff --git a/interface-definitions/include/ospfv3/protocol-common-config.xml.i b/interface-definitions/include/ospfv3/protocol-common-config.xml.i
index 792c873c8..630534eea 100644
--- a/interface-definitions/include/ospfv3/protocol-common-config.xml.i
+++ b/interface-definitions/include/ospfv3/protocol-common-config.xml.i
@@ -184,7 +184,7 @@
<description>Point-to-point network type</description>
</valueHelp>
<constraint>
- <regex>^(broadcast|point-to-point)$</regex>
+ <regex>(broadcast|point-to-point)</regex>
</constraint>
<constraintErrorMessage>Must be broadcast or point-to-point</constraintErrorMessage>
</properties>
diff --git a/interface-definitions/include/policy/action.xml.i b/interface-definitions/include/policy/action.xml.i
index 3b9b458d4..0a3dc158a 100644
--- a/interface-definitions/include/policy/action.xml.i
+++ b/interface-definitions/include/policy/action.xml.i
@@ -14,7 +14,7 @@
<description>Deny matching entries</description>
</valueHelp>
<constraint>
- <regex>^(permit|deny)$</regex>
+ <regex>(permit|deny)</regex>
</constraint>
</properties>
</leafNode>
diff --git a/interface-definitions/include/policy/route-common-rule-ipv6.xml.i b/interface-definitions/include/policy/route-common-rule-ipv6.xml.i
index 406125e55..cfeba1a6c 100644
--- a/interface-definitions/include/policy/route-common-rule-ipv6.xml.i
+++ b/interface-definitions/include/policy/route-common-rule-ipv6.xml.i
@@ -91,7 +91,7 @@
<description>Disable log</description>
</valueHelp>
<constraint>
- <regex>^(enable|disable)$</regex>
+ <regex>(enable|disable)</regex>
</constraint>
</properties>
</leafNode>
@@ -196,7 +196,7 @@
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 1-200"/>
- <regex>^(main)$</regex>
+ <regex>(main)</regex>
</constraint>
</properties>
</leafNode>
@@ -260,7 +260,7 @@
<description>Disable</description>
</valueHelp>
<constraint>
- <regex>^(enable|disable)$</regex>
+ <regex>(enable|disable)</regex>
</constraint>
</properties>
</leafNode>
@@ -279,7 +279,7 @@
<description>Disable</description>
</valueHelp>
<constraint>
- <regex>^(enable|disable)$</regex>
+ <regex>(enable|disable)</regex>
</constraint>
</properties>
</leafNode>
@@ -298,7 +298,7 @@
<description>Disable</description>
</valueHelp>
<constraint>
- <regex>^(enable|disable)$</regex>
+ <regex>(enable|disable)</regex>
</constraint>
</properties>
</leafNode>
@@ -317,7 +317,7 @@
<description>Disable</description>
</valueHelp>
<constraint>
- <regex>^(enable|disable)$</regex>
+ <regex>(enable|disable)</regex>
</constraint>
</properties>
</leafNode>
@@ -543,7 +543,7 @@
<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>
+ <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>
diff --git a/interface-definitions/include/policy/route-common-rule.xml.i b/interface-definitions/include/policy/route-common-rule.xml.i
index 33c4ba77c..5a17dbc95 100644
--- a/interface-definitions/include/policy/route-common-rule.xml.i
+++ b/interface-definitions/include/policy/route-common-rule.xml.i
@@ -91,7 +91,7 @@
<description>Disable log</description>
</valueHelp>
<constraint>
- <regex>^(enable|disable)$</regex>
+ <regex>(enable|disable)</regex>
</constraint>
</properties>
</leafNode>
@@ -196,7 +196,7 @@
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 1-200"/>
- <regex>^(main)$</regex>
+ <regex>(main)</regex>
</constraint>
</properties>
</leafNode>
@@ -260,7 +260,7 @@
<description>Disable</description>
</valueHelp>
<constraint>
- <regex>^(enable|disable)$</regex>
+ <regex>(enable|disable)</regex>
</constraint>
</properties>
</leafNode>
@@ -279,7 +279,7 @@
<description>Disable</description>
</valueHelp>
<constraint>
- <regex>^(enable|disable)$</regex>
+ <regex>(enable|disable)</regex>
</constraint>
</properties>
</leafNode>
@@ -298,7 +298,7 @@
<description>Disable</description>
</valueHelp>
<constraint>
- <regex>^(enable|disable)$</regex>
+ <regex>(enable|disable)</regex>
</constraint>
</properties>
</leafNode>
@@ -317,7 +317,7 @@
<description>Disable</description>
</valueHelp>
<constraint>
- <regex>^(enable|disable)$</regex>
+ <regex>(enable|disable)</regex>
</constraint>
</properties>
</leafNode>
diff --git a/interface-definitions/include/policy/route-rule-action.xml.i b/interface-definitions/include/policy/route-rule-action.xml.i
index 9c880579d..1217055f2 100644
--- a/interface-definitions/include/policy/route-rule-action.xml.i
+++ b/interface-definitions/include/policy/route-rule-action.xml.i
@@ -10,7 +10,7 @@
<description>Drop matching entries</description>
</valueHelp>
<constraint>
- <regex>^(drop)$</regex>
+ <regex>(drop)</regex>
</constraint>
</properties>
</leafNode>
diff --git a/interface-definitions/include/route-map.xml.i b/interface-definitions/include/route-map.xml.i
index 88092b7d4..019868373 100644
--- a/interface-definitions/include/route-map.xml.i
+++ b/interface-definitions/include/route-map.xml.i
@@ -10,7 +10,7 @@
<description>Route map name</description>
</valueHelp>
<constraint>
- <regex>^[-_a-zA-Z0-9.]+$</regex>
+ <regex>[-_a-zA-Z0-9.]+</regex>
</constraint>
<constraintErrorMessage>Name of route-map can only contain alpha-numeric letters, hyphen and underscores</constraintErrorMessage>
</properties>
diff --git a/interface-definitions/include/routing-passive-interface.xml.i b/interface-definitions/include/routing-passive-interface.xml.i
index 43dfb5e44..095b683de 100644
--- a/interface-definitions/include/routing-passive-interface.xml.i
+++ b/interface-definitions/include/routing-passive-interface.xml.i
@@ -15,7 +15,7 @@
<description>Default to suppress routing updates on all interfaces</description>
</valueHelp>
<constraint>
- <regex>^(default)$</regex>
+ <regex>(default)</regex>
<validator name="interface-name"/>
</constraint>
<multi/>
diff --git a/interface-definitions/include/snmp/access-mode.xml.i b/interface-definitions/include/snmp/access-mode.xml.i
index 71c766774..7469805ac 100644
--- a/interface-definitions/include/snmp/access-mode.xml.i
+++ b/interface-definitions/include/snmp/access-mode.xml.i
@@ -14,7 +14,7 @@
<description>read write</description>
</valueHelp>
<constraint>
- <regex>^(ro|rw)$</regex>
+ <regex>(ro|rw)</regex>
</constraint>
<constraintErrorMessage>Authorization type must be either 'rw' or 'ro'</constraintErrorMessage>
</properties>
diff --git a/interface-definitions/include/snmp/authentication-type.xml.i b/interface-definitions/include/snmp/authentication-type.xml.i
index ca0bb10a6..047d8cff4 100644
--- a/interface-definitions/include/snmp/authentication-type.xml.i
+++ b/interface-definitions/include/snmp/authentication-type.xml.i
@@ -14,7 +14,7 @@
<description>Secure Hash Algorithm</description>
</valueHelp>
<constraint>
- <regex>^(md5|sha)$</regex>
+ <regex>(md5|sha)</regex>
</constraint>
</properties>
<defaultValue>md5</defaultValue>
diff --git a/interface-definitions/include/snmp/privacy-type.xml.i b/interface-definitions/include/snmp/privacy-type.xml.i
index 94029a6c6..d5fd1e811 100644
--- a/interface-definitions/include/snmp/privacy-type.xml.i
+++ b/interface-definitions/include/snmp/privacy-type.xml.i
@@ -14,7 +14,7 @@
<description>Advanced Encryption Standard</description>
</valueHelp>
<constraint>
- <regex>^(des|aes)$</regex>
+ <regex>(des|aes)</regex>
</constraint>
</properties>
<defaultValue>des</defaultValue>
diff --git a/interface-definitions/include/snmp/protocol.xml.i b/interface-definitions/include/snmp/protocol.xml.i
index ebdeef87e..d7e6752ad 100644
--- a/interface-definitions/include/snmp/protocol.xml.i
+++ b/interface-definitions/include/snmp/protocol.xml.i
@@ -14,7 +14,7 @@
<description>Listen protocol TCP</description>
</valueHelp>
<constraint>
- <regex>^(udp|tcp)$</regex>
+ <regex>(udp|tcp)</regex>
</constraint>
</properties>
<defaultValue>udp</defaultValue>
diff --git a/interface-definitions/include/ssh-user.xml.i b/interface-definitions/include/ssh-user.xml.i
index 17ba05a90..6ac1f35bc 100644
--- a/interface-definitions/include/ssh-user.xml.i
+++ b/interface-definitions/include/ssh-user.xml.i
@@ -3,7 +3,7 @@
<properties>
<help>Allow specific users to login</help>
<constraint>
- <regex>^[-_a-zA-Z0-9.]{1,100}</regex>
+ <regex>[-_a-zA-Z0-9.]{1,100}</regex>
</constraint>
<constraintErrorMessage>Illegal characters or more than 100 characters</constraintErrorMessage>
<multi/>
diff --git a/interface-definitions/include/static/static-route-vrf.xml.i b/interface-definitions/include/static/static-route-vrf.xml.i
index 69aba253c..e1968f04a 100644
--- a/interface-definitions/include/static/static-route-vrf.xml.i
+++ b/interface-definitions/include/static/static-route-vrf.xml.i
@@ -11,7 +11,7 @@
<description>Name of VRF to leak to</description>
</valueHelp>
<constraint>
- <regex>^(default)$</regex>
+ <regex>(default)</regex>
<validator name="vrf-name"/>
</constraint>
</properties>
diff --git a/interface-definitions/include/version/interfaces-version.xml.i b/interface-definitions/include/version/interfaces-version.xml.i
index b97971531..0a209bc3a 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='25'></syntaxVersion>
+<syntaxVersion component='interfaces' version='26'></syntaxVersion>
<!-- include end -->
diff --git a/interface-definitions/include/version/quagga-version.xml.i b/interface-definitions/include/version/quagga-version.xml.i
index bb8ad7f82..f9944acce 100644
--- a/interface-definitions/include/version/quagga-version.xml.i
+++ b/interface-definitions/include/version/quagga-version.xml.i
@@ -1,3 +1,3 @@
<!-- include start from include/version/quagga-version.xml.i -->
-<syntaxVersion component='quagga' version='9'></syntaxVersion>
+<syntaxVersion component='quagga' version='10'></syntaxVersion>
<!-- include end -->
diff --git a/interface-definitions/include/version/system-version.xml.i b/interface-definitions/include/version/system-version.xml.i
index 19591256d..3cf92001c 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='23'></syntaxVersion>
+<syntaxVersion component='system' version='24'></syntaxVersion>
<!-- include end -->
diff --git a/interface-definitions/include/vpn-ipsec-encryption.xml.i b/interface-definitions/include/vpn-ipsec-encryption.xml.i
index eb0678aa9..629e6a0b9 100644
--- a/interface-definitions/include/vpn-ipsec-encryption.xml.i
+++ b/interface-definitions/include/vpn-ipsec-encryption.xml.i
@@ -226,7 +226,7 @@
<description>256 bit ChaCha20/Poly1305 with 128 bit ICV</description>
</valueHelp>
<constraint>
- <regex>^(null|aes128|aes192|aes256|aes128ctr|aes192ctr|aes256ctr|aes128ccm64|aes192ccm64|aes256ccm64|aes128ccm96|aes192ccm96|aes256ccm96|aes128ccm128|aes192ccm128|aes256ccm128|aes128gcm64|aes192gcm64|aes256gcm64|aes128gcm96|aes192gcm96|aes256gcm96|aes128gcm128|aes192gcm128|aes256gcm128|aes128gmac|aes192gmac|aes256gmac|3des|blowfish128|blowfish192|blowfish256|camellia128|camellia192|camellia256|camellia128ctr|camellia192ctr|camellia256ctr|camellia128ccm64|camellia192ccm64|camellia256ccm64|camellia128ccm96|camellia192ccm96|camellia256ccm96|camellia128ccm128|camellia192ccm128|camellia256ccm128|serpent128|serpent192|serpent256|twofish128|twofish192|twofish256|cast128|chacha20poly1305)$</regex>
+ <regex>(null|aes128|aes192|aes256|aes128ctr|aes192ctr|aes256ctr|aes128ccm64|aes192ccm64|aes256ccm64|aes128ccm96|aes192ccm96|aes256ccm96|aes128ccm128|aes192ccm128|aes256ccm128|aes128gcm64|aes192gcm64|aes256gcm64|aes128gcm96|aes192gcm96|aes256gcm96|aes128gcm128|aes192gcm128|aes256gcm128|aes128gmac|aes192gmac|aes256gmac|3des|blowfish128|blowfish192|blowfish256|camellia128|camellia192|camellia256|camellia128ctr|camellia192ctr|camellia256ctr|camellia128ccm64|camellia192ccm64|camellia256ccm64|camellia128ccm96|camellia192ccm96|camellia256ccm96|camellia128ccm128|camellia192ccm128|camellia256ccm128|serpent128|serpent192|serpent256|twofish128|twofish192|twofish256|cast128|chacha20poly1305)</regex>
</constraint>
</properties>
<defaultValue>aes128</defaultValue>
diff --git a/interface-definitions/include/vpn-ipsec-hash.xml.i b/interface-definitions/include/vpn-ipsec-hash.xml.i
index d6259574a..73d19c24b 100644
--- a/interface-definitions/include/vpn-ipsec-hash.xml.i
+++ b/interface-definitions/include/vpn-ipsec-hash.xml.i
@@ -58,7 +58,7 @@
<description>256-bit AES-GMAC</description>
</valueHelp>
<constraint>
- <regex>^(md5|md5_128|sha1|sha1_160|sha256|sha256_96|sha384|sha512|aesxcbc|aescmac|aes128gmac|aes192gmac|aes256gmac)$</regex>
+ <regex>(md5|md5_128|sha1|sha1_160|sha256|sha256_96|sha384|sha512|aesxcbc|aescmac|aes128gmac|aes192gmac|aes256gmac)</regex>
</constraint>
</properties>
<defaultValue>sha1</defaultValue>
diff --git a/interface-definitions/include/webproxy-url-filtering.xml.i b/interface-definitions/include/webproxy-url-filtering.xml.i
index 265bbff94..7763cb393 100644
--- a/interface-definitions/include/webproxy-url-filtering.xml.i
+++ b/interface-definitions/include/webproxy-url-filtering.xml.i
@@ -38,7 +38,7 @@
<description>Default filter action is block</description>
</valueHelp>
<constraint>
- <regex>^(allow|block)$</regex>
+ <regex>(allow|block)</regex>
</constraint>
</properties>
</leafNode>
diff --git a/interface-definitions/interfaces-bonding.xml.in b/interface-definitions/interfaces-bonding.xml.in
index 5ae67a672..96dede723 100644
--- a/interface-definitions/interfaces-bonding.xml.in
+++ b/interface-definitions/interfaces-bonding.xml.in
@@ -7,7 +7,7 @@
<help>Bonding Interface/Link Aggregation</help>
<priority>320</priority>
<constraint>
- <regex>^bond[0-9]+$</regex>
+ <regex>bond[0-9]+</regex>
</constraint>
<constraintErrorMessage>Bonding interface must be named bondN</constraintErrorMessage>
<valueHelp>
@@ -85,7 +85,7 @@
<description>combine encapsulated IP address and port to make hash</description>
</valueHelp>
<constraint>
- <regex>^(layer2\+3|layer3\+4|layer2|encap2\+3|encap3\+4)$</regex>
+ <regex>(layer2\+3|layer3\+4|layer2|encap2\+3|encap3\+4)</regex>
</constraint>
<constraintErrorMessage>hash-policy must be layer2 layer2+3 layer3+4 encap2+3 or encap3+4</constraintErrorMessage>
</properties>
@@ -122,7 +122,7 @@
<description>Request partner to transmit LACPDUs every 1 second</description>
</valueHelp>
<constraint>
- <regex>^(slow|fast)$</regex>
+ <regex>(slow|fast)</regex>
</constraint>
</properties>
<defaultValue>slow</defaultValue>
@@ -162,7 +162,7 @@
<description>Distribute based on MAC address</description>
</valueHelp>
<constraint>
- <regex>^(802.3ad|active-backup|broadcast|round-robin|transmit-load-balance|adaptive-load-balance|xor-hash)$</regex>
+ <regex>(802.3ad|active-backup|broadcast|round-robin|transmit-load-balance|adaptive-load-balance|xor-hash)</regex>
</constraint>
<constraintErrorMessage>mode must be 802.3ad, active-backup, broadcast, round-robin, transmit-load-balance, adaptive-load-balance, or xor</constraintErrorMessage>
</properties>
diff --git a/interface-definitions/interfaces-bridge.xml.in b/interface-definitions/interfaces-bridge.xml.in
index be4c92583..60edf3ce2 100644
--- a/interface-definitions/interfaces-bridge.xml.in
+++ b/interface-definitions/interfaces-bridge.xml.in
@@ -7,7 +7,7 @@
<help>Bridge Interface</help>
<priority>310</priority>
<constraint>
- <regex>^br[0-9]+$</regex>
+ <regex>br[0-9]+</regex>
</constraint>
<constraintErrorMessage>Bridge interface must be named brN</constraintErrorMessage>
<valueHelp>
diff --git a/interface-definitions/interfaces-dummy.xml.in b/interface-definitions/interfaces-dummy.xml.in
index 7f9ae90e5..01438de31 100644
--- a/interface-definitions/interfaces-dummy.xml.in
+++ b/interface-definitions/interfaces-dummy.xml.in
@@ -7,7 +7,7 @@
<help>Dummy Interface</help>
<priority>300</priority>
<constraint>
- <regex>^dum[0-9]+$</regex>
+ <regex>dum[0-9]+</regex>
</constraint>
<constraintErrorMessage>Dummy interface must be named dumN</constraintErrorMessage>
<valueHelp>
diff --git a/interface-definitions/interfaces-ethernet.xml.in b/interface-definitions/interfaces-ethernet.xml.in
index 7fa07e9ec..c821f04b2 100644
--- a/interface-definitions/interfaces-ethernet.xml.in
+++ b/interface-definitions/interfaces-ethernet.xml.in
@@ -14,7 +14,7 @@
<description>Ethernet interface name</description>
</valueHelp>
<constraint>
- <regex>^((eth|lan)[0-9]+|(eno|ens|enp|enx).+)$</regex>
+ <regex>((eth|lan)[0-9]+|(eno|ens|enp|enx).+)</regex>
</constraint>
<constraintErrorMessage>Invalid Ethernet interface name</constraintErrorMessage>
</properties>
@@ -52,7 +52,7 @@
<description>Full duplex</description>
</valueHelp>
<constraint>
- <regex>^(auto|half|full)$</regex>
+ <regex>(auto|half|full)</regex>
</constraint>
<constraintErrorMessage>duplex must be auto, half or full</constraintErrorMessage>
</properties>
@@ -159,7 +159,7 @@
<description>100 Gbit/sec</description>
</valueHelp>
<constraint>
- <regex>^(auto|10|100|1000|2500|5000|10000|25000|40000|50000|100000)$</regex>
+ <regex>(auto|10|100|1000|2500|5000|10000|25000|40000|50000|100000)</regex>
</constraint>
<constraintErrorMessage>Speed must be auto, 10, 100, 1000, 2500, 5000, 10000, 25000, 40000, 50000 or 100000</constraintErrorMessage>
</properties>
diff --git a/interface-definitions/interfaces-geneve.xml.in b/interface-definitions/interfaces-geneve.xml.in
index 9143ba6be..6e8a8fee2 100644
--- a/interface-definitions/interfaces-geneve.xml.in
+++ b/interface-definitions/interfaces-geneve.xml.in
@@ -7,7 +7,7 @@
<help>Generic Network Virtualization Encapsulation (GENEVE) Interface</help>
<priority>460</priority>
<constraint>
- <regex>^gnv[0-9]+$</regex>
+ <regex>gnv[0-9]+</regex>
</constraint>
<constraintErrorMessage>GENEVE interface must be named gnvN</constraintErrorMessage>
<valueHelp>
diff --git a/interface-definitions/interfaces-l2tpv3.xml.in b/interface-definitions/interfaces-l2tpv3.xml.in
index 1f23a89a5..6a85064cd 100644
--- a/interface-definitions/interfaces-l2tpv3.xml.in
+++ b/interface-definitions/interfaces-l2tpv3.xml.in
@@ -7,7 +7,7 @@
<help>Layer 2 Tunnel Protocol Version 3 (L2TPv3) Interface</help>
<priority>485</priority>
<constraint>
- <regex>^l2tpeth[0-9]+$</regex>
+ <regex>l2tpeth[0-9]+</regex>
</constraint>
<constraintErrorMessage>L2TPv3 interface must be named l2tpethN</constraintErrorMessage>
<valueHelp>
@@ -49,7 +49,7 @@
<description>IP encapsulation</description>
</valueHelp>
<constraint>
- <regex>^(udp|ip)$</regex>
+ <regex>(udp|ip)</regex>
</constraint>
<constraintErrorMessage>Encapsulation must be UDP or IP</constraintErrorMessage>
</properties>
diff --git a/interface-definitions/interfaces-loopback.xml.in b/interface-definitions/interfaces-loopback.xml.in
index 7ac0545c6..7f59db543 100644
--- a/interface-definitions/interfaces-loopback.xml.in
+++ b/interface-definitions/interfaces-loopback.xml.in
@@ -7,7 +7,7 @@
<help>Loopback Interface</help>
<priority>300</priority>
<constraint>
- <regex>^lo$</regex>
+ <regex>lo</regex>
</constraint>
<constraintErrorMessage>Loopback interface must be named lo</constraintErrorMessage>
<valueHelp>
diff --git a/interface-definitions/interfaces-macsec.xml.in b/interface-definitions/interfaces-macsec.xml.in
index cb3c489aa..dbb989588 100644
--- a/interface-definitions/interfaces-macsec.xml.in
+++ b/interface-definitions/interfaces-macsec.xml.in
@@ -7,7 +7,7 @@
<help>MACsec Interface (802.1ae)</help>
<priority>461</priority>
<constraint>
- <regex>^macsec[0-9]+$</regex>
+ <regex>macsec[0-9]+</regex>
</constraint>
<constraintErrorMessage>MACsec interface must be named macsecN</constraintErrorMessage>
<valueHelp>
@@ -44,7 +44,7 @@
<description>Galois/Counter Mode of AES cipher with 256-bit key</description>
</valueHelp>
<constraint>
- <regex>^(gcm-aes-128|gcm-aes-256)$</regex>
+ <regex>(gcm-aes-128|gcm-aes-256)</regex>
</constraint>
</properties>
</leafNode>
@@ -67,7 +67,7 @@
<description>16-byte (128-bit) hex-string (32 hex-digits)</description>
</valueHelp>
<constraint>
- <regex>^[A-Fa-f0-9]{32}$</regex>
+ <regex>[A-Fa-f0-9]{32}</regex>
</constraint>
</properties>
</leafNode>
@@ -79,7 +79,7 @@
<description>32-byte (256-bit) hex-string (64 hex-digits)</description>
</valueHelp>
<constraint>
- <regex>^[A-Fa-f0-9]{64}$</regex>
+ <regex>[A-Fa-f0-9]{64}</regex>
</constraint>
</properties>
</leafNode>
diff --git a/interface-definitions/interfaces-openvpn.xml.in b/interface-definitions/interfaces-openvpn.xml.in
index c917b9312..edcf7b37f 100644
--- a/interface-definitions/interfaces-openvpn.xml.in
+++ b/interface-definitions/interfaces-openvpn.xml.in
@@ -7,7 +7,7 @@
<help>OpenVPN Tunnel Interface</help>
<priority>460</priority>
<constraint>
- <regex>^vtun[0-9]+$</regex>
+ <regex>vtun[0-9]+</regex>
</constraint>
<constraintErrorMessage>OpenVPN tunnel interface must be named vtunN</constraintErrorMessage>
<valueHelp>
@@ -51,7 +51,7 @@
<description>TAP device, required for OSI layer 2</description>
</valueHelp>
<constraint>
- <regex>^(tun|tap)$</regex>
+ <regex>(tun|tap)</regex>
</constraint>
</properties>
<defaultValue>tun</defaultValue>
@@ -113,7 +113,7 @@
<description>AES algorithm with 256-bit key GCM</description>
</valueHelp>
<constraint>
- <regex>^(none|des|3des|bf128|bf256|aes128|aes128gcm|aes192|aes192gcm|aes256|aes256gcm)$</regex>
+ <regex>(none|des|3des|bf128|bf256|aes128|aes128gcm|aes192|aes192gcm|aes256|aes256gcm)</regex>
</constraint>
</properties>
</leafNode>
@@ -160,7 +160,7 @@
<description>AES algorithm with 256-bit key GCM</description>
</valueHelp>
<constraint>
- <regex>^(none|des|3des|aes128|aes128gcm|aes192|aes192gcm|aes256|aes256gcm)$</regex>
+ <regex>(none|des|3des|aes128|aes128gcm|aes192|aes192gcm|aes256|aes256gcm)</regex>
</constraint>
<multi/>
</properties>
@@ -196,7 +196,7 @@
<description>SHA-512 algorithm</description>
</valueHelp>
<constraint>
- <regex>^(md5|sha1|sha256|sha384|sha512)$</regex>
+ <regex>(md5|sha1|sha256|sha384|sha512)</regex>
</constraint>
</properties>
</leafNode>
@@ -298,7 +298,7 @@
<description>Server in client-server mode</description>
</valueHelp>
<constraint>
- <regex>^(site-to-site|client|server)$</regex>
+ <regex>(site-to-site|client|server)</regex>
</constraint>
</properties>
</leafNode>
@@ -336,7 +336,7 @@
<description>TCP and initiates connections actively</description>
</valueHelp>
<constraint>
- <regex>^(udp|tcp-passive|tcp-active)$</regex>
+ <regex>(udp|tcp-passive|tcp-active)</regex>
</constraint>
</properties>
<defaultValue>udp</defaultValue>
@@ -631,7 +631,7 @@
<description>Subnet topology</description>
</valueHelp>
<constraint>
- <regex>^(subnet|point-to-point|net30)$</regex>
+ <regex>(subnet|point-to-point|net30)</regex>
</constraint>
</properties>
<defaultValue>net30</defaultValue>
@@ -713,7 +713,7 @@
<description>Enable chalenge-response</description>
</valueHelp>
<constraint>
- <regex>^(disable|enable)$</regex>
+ <regex>(disable|enable)</regex>
</constraint>
</properties>
<defaultValue>enable</defaultValue>
@@ -786,7 +786,7 @@
<description>TLS v1.3</description>
</valueHelp>
<constraint>
- <regex>^(1.0|1.1|1.2|1.3)$</regex>
+ <regex>(1.0|1.1|1.2|1.3)</regex>
</constraint>
</properties>
</leafNode>
@@ -805,7 +805,7 @@
<description>Wait for incoming TLS connection</description>
</valueHelp>
<constraint>
- <regex>^(active|passive)$</regex>
+ <regex>(active|passive)</regex>
</constraint>
</properties>
</leafNode>
diff --git a/interface-definitions/interfaces-pppoe.xml.in b/interface-definitions/interfaces-pppoe.xml.in
index 3a0b7a40c..664914baa 100644
--- a/interface-definitions/interfaces-pppoe.xml.in
+++ b/interface-definitions/interfaces-pppoe.xml.in
@@ -7,7 +7,7 @@
<help>Point-to-Point Protocol over Ethernet (PPPoE)</help>
<priority>322</priority>
<constraint>
- <regex>^pppoe[0-9]+$</regex>
+ <regex>pppoe[0-9]+</regex>
</constraint>
<constraintErrorMessage>PPPoE interface must be named pppoeN</constraintErrorMessage>
<valueHelp>
@@ -21,31 +21,8 @@
#include <include/interface/dial-on-demand.xml.i>
#include <include/interface/interface-firewall.xml.i>
#include <include/interface/interface-policy.xml.i>
- <leafNode name="default-route">
- <properties>
- <help>Default route insertion behaviour</help>
- <completionHelp>
- <list>auto none force</list>
- </completionHelp>
- <constraint>
- <regex>^(auto|none|force)$</regex>
- </constraint>
- <constraintErrorMessage>PPPoE default-route option must be 'auto', 'none', or 'force'</constraintErrorMessage>
- <valueHelp>
- <format>auto</format>
- <description>Automatically install a default route</description>
- </valueHelp>
- <valueHelp>
- <format>none</format>
- <description>Do not install a default route</description>
- </valueHelp>
- <valueHelp>
- <format>force</format>
- <description>Replace existing default route</description>
- </valueHelp>
- </properties>
- <defaultValue>auto</defaultValue>
- </leafNode>
+ #include <include/interface/no-default-route.xml.i>
+ #include <include/interface/default-route-distance.xml.i>
#include <include/interface/dhcpv6-options.xml.i>
#include <include/interface/description.xml.i>
#include <include/interface/disable.xml.i>
@@ -129,7 +106,7 @@
<properties>
<help>Service name, only connect to access concentrators advertising this</help>
<constraint>
- <regex>[a-zA-Z0-9]+$</regex>
+ <regex>[a-zA-Z0-9]+</regex>
</constraint>
<constraintErrorMessage>Service name must be alphanumeric only</constraintErrorMessage>
</properties>
diff --git a/interface-definitions/interfaces-pseudo-ethernet.xml.in b/interface-definitions/interfaces-pseudo-ethernet.xml.in
index 5f5e9fdef..6b62f4c61 100644
--- a/interface-definitions/interfaces-pseudo-ethernet.xml.in
+++ b/interface-definitions/interfaces-pseudo-ethernet.xml.in
@@ -7,7 +7,7 @@
<help>Pseudo Ethernet</help>
<priority>321</priority>
<constraint>
- <regex>^peth[0-9]+$</regex>
+ <regex>peth[0-9]+</regex>
</constraint>
<constraintErrorMessage>Pseudo Ethernet interface must be named pethN</constraintErrorMessage>
<valueHelp>
@@ -53,7 +53,7 @@
<description>Promicious mode passthrough of underlying device</description>
</valueHelp>
<constraint>
- <regex>^(private|vepa|bridge|passthru)$</regex>
+ <regex>(private|vepa|bridge|passthru)</regex>
</constraint>
<constraintErrorMessage>mode must be private, vepa, bridge or passthru</constraintErrorMessage>
</properties>
diff --git a/interface-definitions/interfaces-tunnel.xml.in b/interface-definitions/interfaces-tunnel.xml.in
index 42ec62775..98ff878ba 100644
--- a/interface-definitions/interfaces-tunnel.xml.in
+++ b/interface-definitions/interfaces-tunnel.xml.in
@@ -7,7 +7,7 @@
<help>Tunnel interface</help>
<priority>380</priority>
<constraint>
- <regex>^tun[0-9]+$</regex>
+ <regex>tun[0-9]+</regex>
</constraint>
<constraintErrorMessage>tunnel interface must be named tunN</constraintErrorMessage>
<valueHelp>
@@ -102,7 +102,7 @@
<description>Simple Internet Transition (IPv6 in IPv4)</description>
</valueHelp>
<constraint>
- <regex>^(erspan|gre|gretap|ip6erspan|ip6gre|ip6gretap|ip6ip6|ipip|ipip6|sit)$</regex>
+ <regex>(erspan|gre|gretap|ip6erspan|ip6gre|ip6gretap|ip6ip6|ipip|ipip6|sit)</regex>
</constraint>
<constraintErrorMessage>Invalid encapsulation, must be one of: erspan, gre, gretap, ip6erspan, ip6gre, ip6gretap, ipip, sit, ipip6 or ip6ip6</constraintErrorMessage>
</properties>
@@ -123,7 +123,7 @@
<description>Disable multicast (default)</description>
</valueHelp>
<constraint>
- <regex>^(enable|disable)$</regex>
+ <regex>(enable|disable)</regex>
</constraint>
<constraintErrorMessage>Must be 'disable' or 'enable'</constraintErrorMessage>
</properties>
@@ -153,7 +153,7 @@
<description>Mirror egress traffic</description>
</valueHelp>
<constraint>
- <regex>^(ingress|egress)$</regex>
+ <regex>(ingress|egress)</regex>
</constraint>
</properties>
</leafNode>
@@ -248,7 +248,7 @@
<description>Disable encapsulation limit</description>
</valueHelp>
<constraint>
- <regex>^(none)$</regex>
+ <regex>(none)</regex>
<validator name="numeric" argument="--range 0-255"/>
</constraint>
<constraintErrorMessage>Tunnel encaplimit must be 0-255 or none</constraintErrorMessage>
diff --git a/interface-definitions/interfaces-vti.xml.in b/interface-definitions/interfaces-vti.xml.in
index 5893e4c4c..b471c3b92 100644
--- a/interface-definitions/interfaces-vti.xml.in
+++ b/interface-definitions/interfaces-vti.xml.in
@@ -7,7 +7,7 @@
<help>Virtual Tunnel interface</help>
<priority>381</priority>
<constraint>
- <regex>^vti[0-9]+$</regex>
+ <regex>vti[0-9]+</regex>
</constraint>
<constraintErrorMessage>VTI interface must be named vtiN</constraintErrorMessage>
<valueHelp>
diff --git a/interface-definitions/interfaces-vxlan.xml.in b/interface-definitions/interfaces-vxlan.xml.in
index 8b50fe1b7..faa3dd5e0 100644
--- a/interface-definitions/interfaces-vxlan.xml.in
+++ b/interface-definitions/interfaces-vxlan.xml.in
@@ -7,7 +7,7 @@
<help>Virtual Extensible LAN (VXLAN) Interface</help>
<priority>460</priority>
<constraint>
- <regex>^vxlan[0-9]+$</regex>
+ <regex>vxlan[0-9]+</regex>
</constraint>
<constraintErrorMessage>VXLAN interface must be named vxlanN</constraintErrorMessage>
<valueHelp>
diff --git a/interface-definitions/interfaces-wireguard.xml.in b/interface-definitions/interfaces-wireguard.xml.in
index eb0892f07..4a1b4ac68 100644
--- a/interface-definitions/interfaces-wireguard.xml.in
+++ b/interface-definitions/interfaces-wireguard.xml.in
@@ -7,7 +7,7 @@
<help>WireGuard Interface</help>
<priority>459</priority>
<constraint>
- <regex>^wg[0-9]+$</regex>
+ <regex>wg[0-9]+</regex>
</constraint>
<constraintErrorMessage>WireGuard interface must be named wgN</constraintErrorMessage>
<valueHelp>
@@ -46,7 +46,7 @@
<properties>
<help>Base64 encoded private key</help>
<constraint>
- <regex>[0-9a-zA-Z\+/]{43}=$</regex>
+ <regex>[0-9a-zA-Z\+/]{43}=</regex>
</constraint>
<constraintErrorMessage>Key is not valid 44-character (32-bytes) base64</constraintErrorMessage>
</properties>
@@ -55,7 +55,7 @@
<properties>
<help>peer alias</help>
<constraint>
- <regex>[^ ]{1,100}$</regex>
+ <regex>[^ ]{1,100}</regex>
</constraint>
<constraintErrorMessage>peer alias too long (limit 100 characters)</constraintErrorMessage>
</properties>
@@ -65,7 +65,7 @@
<properties>
<help>base64 encoded public key</help>
<constraint>
- <regex>[0-9a-zA-Z\+/]{43}=$</regex>
+ <regex>[0-9a-zA-Z\+/]{43}=</regex>
</constraint>
<constraintErrorMessage>Key is not valid 44-character (32-bytes) base64</constraintErrorMessage>
</properties>
@@ -74,7 +74,7 @@
<properties>
<help>base64 encoded preshared key</help>
<constraint>
- <regex>[0-9a-zA-Z\+/]{43}=$</regex>
+ <regex>[0-9a-zA-Z\+/]{43}=</regex>
</constraint>
<constraintErrorMessage>Key is not valid 44-character (32-bytes) base64</constraintErrorMessage>
</properties>
diff --git a/interface-definitions/interfaces-wireless.xml.in b/interface-definitions/interfaces-wireless.xml.in
index db01657eb..eb6107303 100644
--- a/interface-definitions/interfaces-wireless.xml.in
+++ b/interface-definitions/interfaces-wireless.xml.in
@@ -10,7 +10,7 @@
<script>cd /sys/class/net; if compgen -G "wlan*" > /dev/null; then ls -d wlan*; fi</script>
</completionHelp>
<constraint>
- <regex>^wlan[0-9]+$</regex>
+ <regex>wlan[0-9]+</regex>
</constraint>
<constraintErrorMessage>Wireless interface must be named wlanN</constraintErrorMessage>
<valueHelp>
@@ -63,7 +63,7 @@
<description>Supported channel set width both 20 MHz and 40 MHz with secondary channel below primary channel</description>
</valueHelp>
<constraint>
- <regex>^(ht20|ht40\+|ht40-)$</regex>
+ <regex>(ht20|ht40\+|ht40-)</regex>
</constraint>
<multi/>
</properties>
@@ -113,7 +113,7 @@
<description>Set maximum A-MSDU length to 7935 octets</description>
</valueHelp>
<constraint>
- <regex>^(3839|7935)$</regex>
+ <regex>(3839|7935)</regex>
</constraint>
</properties>
</leafNode>
@@ -132,7 +132,7 @@
<description>Short GI for 40 MHz</description>
</valueHelp>
<constraint>
- <regex>^(20|40)$</regex>
+ <regex>(20|40)</regex>
</constraint>
<multi/>
</properties>
@@ -152,7 +152,7 @@
<description>DYNAMIC Spatial Multiplexing (SM) Power Save</description>
</valueHelp>
<constraint>
- <regex>^(static|dynamic)$</regex>
+ <regex>(static|dynamic)</regex>
</constraint>
</properties>
</leafNode>
@@ -169,7 +169,7 @@
<description>Number of spacial streams that can use RX STBC</description>
</valueHelp>
<constraint>
- <regex>^[1-3]+$</regex>
+ <regex>[1-3]+</regex>
</constraint>
<constraintErrorMessage>Invalid capability item</constraintErrorMessage>
</properties>
@@ -248,7 +248,7 @@
<description>Support for operation as multi user beamformee</description>
</valueHelp>
<constraint>
- <regex>^(single-user-beamformer|single-user-beamformee|multi-user-beamformer|multi-user-beamformee)$</regex>
+ <regex>(single-user-beamformer|single-user-beamformee|multi-user-beamformer|multi-user-beamformee)</regex>
</constraint>
<multi/>
</properties>
@@ -334,7 +334,7 @@
<description>Station can provide VHT MFB in response to VHT MRQ and unsolicited VHT MFB</description>
</valueHelp>
<constraint>
- <regex>^(unsolicited|both)$</regex>
+ <regex>(unsolicited|both)</regex>
</constraint>
<constraintErrorMessage>Invalid capability item</constraintErrorMessage>
</properties>
@@ -366,7 +366,7 @@
<description>ncrease Maximum MPDU length to 11454 octets</description>
</valueHelp>
<constraint>
- <regex>^(7991|11454)$</regex>
+ <regex>(7991|11454)</regex>
</constraint>
</properties>
</leafNode>
@@ -385,7 +385,7 @@
<description>Short GI for 160 MHz</description>
</valueHelp>
<constraint>
- <regex>^(80|160)$</regex>
+ <regex>(80|160)</regex>
</constraint>
<multi/>
</properties>
@@ -403,7 +403,7 @@
<description>Number of spacial streams that can use RX STBC</description>
</valueHelp>
<constraint>
- <regex>^[1-4]+$</regex>
+ <regex>[1-4]+</regex>
</constraint>
<constraintErrorMessage>Invalid capability item</constraintErrorMessage>
</properties>
@@ -464,7 +464,7 @@
<description>ISO/IEC 3166-1 Country Code</description>
</valueHelp>
<constraint>
- <regex>^[a-z][a-z]$</regex>
+ <regex>[a-z][a-z]</regex>
</constraint>
<constraintErrorMessage>Invalid ISO/IEC 3166-1 Country Code</constraintErrorMessage>
</properties>
@@ -529,7 +529,7 @@
<description>MFP enforced</description>
</valueHelp>
<constraint>
- <regex>^(disabled|optional|required)$</regex>
+ <regex>(disabled|optional|required)</regex>
</constraint>
</properties>
<defaultValue>disabled</defaultValue>
@@ -561,7 +561,7 @@
<description>802.11ac - 1300 Mbits/sec</description>
</valueHelp>
<constraint>
- <regex>^(a|b|g|n|ac)$</regex>
+ <regex>(a|b|g|n|ac)</regex>
</constraint>
</properties>
<defaultValue>g</defaultValue>
@@ -650,7 +650,7 @@
<description>Temporal Key Integrity Protocol [IEEE 802.11i/D7.0]</description>
</valueHelp>
<constraint>
- <regex>^(GCMP-256|GCMP|CCMP-256|CCMP|TKIP)$</regex>
+ <regex>(GCMP-256|GCMP|CCMP-256|CCMP|TKIP)</regex>
</constraint>
<constraintErrorMessage>Invalid cipher selection</constraintErrorMessage>
<multi/>
@@ -683,7 +683,7 @@
<description>Temporal Key Integrity Protocol [IEEE 802.11i/D7.0]</description>
</valueHelp>
<constraint>
- <regex>^(GCMP-256|GCMP|CCMP-256|CCMP|TKIP)$</regex>
+ <regex>(GCMP-256|GCMP|CCMP-256|CCMP|TKIP)</regex>
</constraint>
<constraintErrorMessage>Invalid group cipher selection</constraintErrorMessage>
<multi/>
@@ -708,7 +708,7 @@
<description>Allow both WPA and WPA2</description>
</valueHelp>
<constraint>
- <regex>^(wpa|wpa2|wpa\+wpa2|wpa3)$</regex>
+ <regex>(wpa|wpa2|wpa\+wpa2|wpa3)</regex>
</constraint>
<constraintErrorMessage>Unknown WPA mode</constraintErrorMessage>
</properties>
@@ -724,7 +724,7 @@
<description>Passphrase of at least 8 but not more than 63 printable characters</description>
</valueHelp>
<constraint>
- <regex>.{8,63}$</regex>
+ <regex>.{8,63}</regex>
</constraint>
<constraintErrorMessage>Invalid WPA pass phrase, must be 8 to 63 printable characters!</constraintErrorMessage>
</properties>
@@ -752,7 +752,7 @@
<properties>
<help>Wireless access-point service set identifier (SSID)</help>
<constraint>
- <regex>.{1,32}$</regex>
+ <regex>.{1,32}</regex>
</constraint>
<constraintErrorMessage>Invalid SSID</constraintErrorMessage>
</properties>
@@ -776,7 +776,7 @@
<description>Passively monitor all packets on the frequency/channel</description>
</valueHelp>
<constraint>
- <regex>^(access-point|station|monitor)$</regex>
+ <regex>(access-point|station|monitor)</regex>
</constraint>
<constraintErrorMessage>Type must be access-point, station or monitor</constraintErrorMessage>
</properties>
diff --git a/interface-definitions/interfaces-wwan.xml.in b/interface-definitions/interfaces-wwan.xml.in
index 3cb1645c4..3071e6091 100644
--- a/interface-definitions/interfaces-wwan.xml.in
+++ b/interface-definitions/interfaces-wwan.xml.in
@@ -10,7 +10,7 @@
<script>cd /sys/class/net; if compgen -G "wwan*" > /dev/null; then ls -d wwan*; fi</script>
</completionHelp>
<constraint>
- <regex>^wwan[0-9]+$</regex>
+ <regex>wwan[0-9]+</regex>
</constraint>
<constraintErrorMessage>Wireless Modem interface must be named wwanN</constraintErrorMessage>
<valueHelp>
diff --git a/interface-definitions/nat.xml.in b/interface-definitions/nat.xml.in
index f79680947..9295b631f 100644
--- a/interface-definitions/nat.xml.in
+++ b/interface-definitions/nat.xml.in
@@ -98,7 +98,7 @@
<validator name="ipv4-prefix"/>
<validator name="ipv4-address"/>
<validator name="ipv4-range"/>
- <regex>^(masquerade)$</regex>
+ <regex>(masquerade)</regex>
</constraint>
</properties>
</leafNode>
diff --git a/interface-definitions/nat66.xml.in b/interface-definitions/nat66.xml.in
index 11d986c96..b47f653c6 100644
--- a/interface-definitions/nat66.xml.in
+++ b/interface-definitions/nat66.xml.in
@@ -94,7 +94,7 @@
<constraint>
<validator name="ipv6-address"/>
<validator name="ipv6-prefix"/>
- <regex>^(masquerade)$</regex>
+ <regex>(masquerade)</regex>
</constraint>
</properties>
</leafNode>
diff --git a/interface-definitions/netns.xml.in b/interface-definitions/netns.xml.in
index 80de805fb..088985cb6 100644
--- a/interface-definitions/netns.xml.in
+++ b/interface-definitions/netns.xml.in
@@ -10,7 +10,7 @@
<properties>
<help>Network namespace name</help>
<constraint>
- <regex>^[a-zA-Z0-9-_]{1,100}</regex>
+ <regex>[a-zA-Z0-9-_]{1,100}</regex>
</constraint>
<constraintErrorMessage>Netns name must be alphanumeric and can contain hyphens and underscores.</constraintErrorMessage>
</properties>
diff --git a/interface-definitions/policy-local-route.xml.in b/interface-definitions/policy-local-route.xml.in
index 573a7963f..d969613b1 100644
--- a/interface-definitions/policy-local-route.xml.in
+++ b/interface-definitions/policy-local-route.xml.in
@@ -146,11 +146,11 @@
<properties>
<help>Source address or prefix</help>
<valueHelp>
- <format>ipv4</format>
+ <format>ipv6</format>
<description>Address to match against</description>
</valueHelp>
<valueHelp>
- <format>ipv4net</format>
+ <format>ipv6net</format>
<description>Prefix to match against</description>
</valueHelp>
<constraint>
diff --git a/interface-definitions/policy-route.xml.in b/interface-definitions/policy-route.xml.in
index a1c3b50de..a10c9b08f 100644
--- a/interface-definitions/policy-route.xml.in
+++ b/interface-definitions/policy-route.xml.in
@@ -6,7 +6,7 @@
<properties>
<help>Policy route rule set name for IPv6</help>
<constraint>
- <regex>^[a-zA-Z0-9][\w\-\.]*$</regex>
+ <regex>[a-zA-Z0-9][\w\-\.]*</regex>
</constraint>
<priority>201</priority>
</properties>
@@ -55,7 +55,7 @@
<properties>
<help>Policy route rule set name for IPv4</help>
<constraint>
- <regex>^[a-zA-Z0-9][\w\-\.]*$</regex>
+ <regex>[a-zA-Z0-9][\w\-\.]*</regex>
</constraint>
<priority>201</priority>
</properties>
diff --git a/interface-definitions/policy.xml.in b/interface-definitions/policy.xml.in
index 1a4781397..50b7cbc84 100644
--- a/interface-definitions/policy.xml.in
+++ b/interface-definitions/policy.xml.in
@@ -242,7 +242,7 @@
<description>BGP extended community-list name</description>
</valueHelp>
<constraint>
- <regex>^[-_a-zA-Z0-9]+$</regex>
+ <regex>[-_a-zA-Z0-9]+</regex>
</constraint>
<constraintErrorMessage>Should be an alphanumeric name</constraintErrorMessage>
</properties>
@@ -291,7 +291,7 @@
<description>BGP large-community-list name</description>
</valueHelp>
<constraint>
- <regex>^[-_a-zA-Z0-9]+$</regex>
+ <regex>[-_a-zA-Z0-9]+</regex>
</constraint>
<constraintErrorMessage>Should be an alphanumeric name</constraintErrorMessage>
</properties>
@@ -340,7 +340,7 @@
<description>Name of IPv4 prefix-list</description>
</valueHelp>
<constraint>
- <regex>^[-_a-zA-Z0-9]+$</regex>
+ <regex>[-_a-zA-Z0-9]+</regex>
</constraint>
<constraintErrorMessage>Name of prefix-list can only contain alpha-numeric letters, hyphen and underscores</constraintErrorMessage>
</properties>
@@ -408,7 +408,7 @@
<description>Name of IPv6 prefix-list</description>
</valueHelp>
<constraint>
- <regex>^[-_a-zA-Z0-9]+$</regex>
+ <regex>[-_a-zA-Z0-9]+</regex>
</constraint>
<constraintErrorMessage>Name of prefix-list6 can only contain alpha-numeric letters, hyphen and underscores</constraintErrorMessage>
</properties>
@@ -476,7 +476,7 @@
<description>Route map name</description>
</valueHelp>
<constraint>
- <regex>^[-_a-zA-Z0-9.]+$</regex>
+ <regex>[-_a-zA-Z0-9.]+</regex>
</constraint>
<constraintErrorMessage>Name of route-map can only contain alpha-numeric letters, hyphen and underscores</constraintErrorMessage>
</properties>
@@ -582,7 +582,7 @@
<description>Prefix route</description>
</valueHelp>
<constraint>
- <regex>^(macip|multicast|prefix)$</regex>
+ <regex>(macip|multicast|prefix)</regex>
</constraint>
</properties>
</leafNode>
@@ -834,7 +834,7 @@
<description>Incomplete origin</description>
</valueHelp>
<constraint>
- <regex>^(egp|igp|incomplete)$</regex>
+ <regex>(egp|igp|incomplete)</regex>
</constraint>
</properties>
</leafNode>
@@ -869,7 +869,7 @@
<description>Match valid entries</description>
</valueHelp>
<constraint>
- <regex>^(invalid|notfound|valid)$</regex>
+ <regex>(invalid|notfound|valid)</regex>
</constraint>
</properties>
</leafNode>
@@ -948,24 +948,49 @@
</leafNode>
</children>
</node>
- <leafNode name="as-path-exclude">
+ <node name="as-path">
<properties>
- <help>Remove ASN(s) from a Border Gateway Protocol (BGP) AS-path attribute</help>
- <valueHelp>
- <format>txt</format>
- <description>BGP AS path exclude string (ex: "456 64500 45001")</description>
- </valueHelp>
- </properties>
- </leafNode>
- <leafNode name="as-path-prepend">
- <properties>
- <help>Prepend string for a Border Gateway Protocol (BGP) AS-path attribute</help>
- <valueHelp>
- <format>txt</format>
- <description>BGP AS path prepend string (ex: "64501 64501")</description>
- </valueHelp>
+ <help>Transform BGP AS_PATH attribute</help>
</properties>
- </leafNode>
+ <children>
+ <leafNode name="exclude">
+ <properties>
+ <help>Remove/exclude from the as-path attribute</help>
+ <valueHelp>
+ <format>u32</format>
+ <description>AS number</description>
+ </valueHelp>
+ <constraint>
+ <validator name="as-number-list"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ <leafNode name="prepend">
+ <properties>
+ <help>Prepend to the as-path</help>
+ <valueHelp>
+ <format>u32</format>
+ <description>AS number</description>
+ </valueHelp>
+ <constraint>
+ <validator name="as-number-list"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ <leafNode name="prepend-last-as">
+ <properties>
+ <help>Use the last AS-number in the as-path</help>
+ <valueHelp>
+ <format>u32:1-10</format>
+ <description>Number of times to insert</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 1-10"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ </children>
+ </node>
<leafNode name="atomic-aggregate">
<properties>
<help>BGP atomic aggregate attribute</help>
@@ -1045,6 +1070,44 @@
</constraint>
</properties>
</leafNode>
+ <node name="evpn">
+ <properties>
+ <help>Ethernet Virtual Private Network</help>
+ </properties>
+ <children>
+ <node name="gateway">
+ <properties>
+ <help>Set gateway IP for prefix advertisement route</help>
+ </properties>
+ <children>
+ <leafNode name="ipv4">
+ <properties>
+ <help>Set gateway IPv4 address</help>
+ <valueHelp>
+ <format>ipv4</format>
+ <description>Gateway IPv4 address</description>
+ </valueHelp>
+ <constraint>
+ <validator name="ipv4-address"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ <leafNode name="ipv6">
+ <properties>
+ <help>Set gateway IPv6 address</help>
+ <valueHelp>
+ <format>ipv6</format>
+ <description>Gateway IPv6 address</description>
+ </valueHelp>
+ <constraint>
+ <validator name="ipv6-address"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ </children>
+ </node>
+ </children>
+ </node>
<node name="extcommunity">
<properties>
<help>BGP extended community attribute</help>
@@ -1070,7 +1133,7 @@
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 1-25600"/>
- <regex>^(cumulative|num-multipaths)$</regex>
+ <regex>(cumulative|num-multipaths)</regex>
</constraint>
</properties>
</leafNode>
@@ -1086,7 +1149,7 @@
<description>Based on a router-id IP address</description>
</valueHelp>
<constraint>
- <regex>^(((\b(?:(?:2(?:[0-4][0-9]|5[0-5])|[0-1]?[0-9]?[0-9])\.){3}(?:(?:2([0-4][0-9]|5[0-5])|[0-1]?[0-9]?[0-9]))\b)|(\d+)):(\d+) ?)+$</regex>
+ <regex>(((\b(?:(?:2(?:[0-4][0-9]|5[0-5])|[0-1]?[0-9]?[0-9])\.){3}(?:(?:2([0-4][0-9]|5[0-5])|[0-1]?[0-9]?[0-9]))\b)|(\d+)):(\d+) ?)+</regex>
</constraint>
<constraintErrorMessage>Should be in form: ASN:NN or IPADDR:NN where ASN is autonomous system number</constraintErrorMessage>
</properties>
@@ -1103,7 +1166,7 @@
<description>Based on a router-id IP address</description>
</valueHelp>
<constraint>
- <regex>^((?:[0-9]{1,3}\.){3}[0-9]{1,3}|\d+):\d+$</regex>
+ <regex>((?:[0-9]{1,3}\.){3}[0-9]{1,3}|\d+):\d+</regex>
</constraint>
<constraintErrorMessage>Should be in form: ASN:NN or IPADDR:NN where ASN is autonomous system number</constraintErrorMessage>
</properties>
@@ -1131,7 +1194,7 @@
</valueHelp>
<constraint>
<validator name="ipv4-address"/>
- <regex>^(unchanged|peer-address)$</regex>
+ <regex>(unchanged|peer-address)</regex>
</constraint>
</properties>
</leafNode>
@@ -1251,7 +1314,7 @@
<description>OSPF external type 2 metric</description>
</valueHelp>
<constraint>
- <regex>^(type-1|type-2)$</regex>
+ <regex>(type-1|type-2)</regex>
</constraint>
</properties>
</leafNode>
@@ -1274,7 +1337,7 @@
<description>Incomplete origin</description>
</valueHelp>
<constraint>
- <regex>^(igp|egp|incomplete)$</regex>
+ <regex>(igp|egp|incomplete)</regex>
</constraint>
</properties>
</leafNode>
diff --git a/interface-definitions/protocols-bfd.xml.in b/interface-definitions/protocols-bfd.xml.in
index a9957d884..edbac8d0e 100644
--- a/interface-definitions/protocols-bfd.xml.in
+++ b/interface-definitions/protocols-bfd.xml.in
@@ -73,7 +73,7 @@
<description>Name of BFD profile</description>
</valueHelp>
<constraint>
- <regex>^[-_a-zA-Z0-9]{1,32}$</regex>
+ <regex>[-_a-zA-Z0-9]{1,32}</regex>
</constraint>
</properties>
<children>
diff --git a/interface-definitions/protocols-nhrp.xml.in b/interface-definitions/protocols-nhrp.xml.in
index 9dd9d3389..7de3704ce 100644
--- a/interface-definitions/protocols-nhrp.xml.in
+++ b/interface-definitions/protocols-nhrp.xml.in
@@ -12,7 +12,7 @@
<properties>
<help>Tunnel for NHRP [REQUIRED]</help>
<constraint>
- <regex>^tun[0-9]+$</regex>
+ <regex>tun[0-9]+</regex>
</constraint>
<valueHelp>
<format>tunN</format>
@@ -85,7 +85,7 @@
<list>dynamic nhs</list>
</completionHelp>
<constraint>
- <regex>^(dynamic|nhs)$</regex>
+ <regex>(dynamic|nhs)</regex>
</constraint>
</properties>
</leafNode>
diff --git a/interface-definitions/protocols-rip.xml.in b/interface-definitions/protocols-rip.xml.in
index d3be4e1af..bbb88aef1 100644
--- a/interface-definitions/protocols-rip.xml.in
+++ b/interface-definitions/protocols-rip.xml.in
@@ -78,7 +78,7 @@
<description>MD5 Key (16 characters or less)</description>
</valueHelp>
<constraint>
- <regex>^[^[:space:]]{1,16}$</regex>
+ <regex>[^[:space:]]{1,16}</regex>
</constraint>
<constraintErrorMessage>Password must be 16 characters or less</constraintErrorMessage>
</properties>
@@ -93,7 +93,7 @@
<description>Plain text password (16 characters or less)</description>
</valueHelp>
<constraint>
- <regex>^[^[:space:]]{1,16}$</regex>
+ <regex>[^[:space:]]{1,16}</regex>
</constraint>
<constraintErrorMessage>Password must be 16 characters or less</constraintErrorMessage>
</properties>
diff --git a/interface-definitions/protocols-static-arp.xml.in b/interface-definitions/protocols-static-arp.xml.in
index e5e8a9ad9..8b1b3b5e1 100644
--- a/interface-definitions/protocols-static-arp.xml.in
+++ b/interface-definitions/protocols-static-arp.xml.in
@@ -4,32 +4,46 @@
<children>
<node name="static">
<children>
- <tagNode name="arp" owner="${vyos_conf_scripts_dir}/arp.py">
+ <node name="arp" owner="${vyos_conf_scripts_dir}/arp.py">
<properties>
<help>Static ARP translation</help>
- <valueHelp>
- <format>ipv4</format>
- <description>IPv4 destination address</description>
- </valueHelp>
- <constraint>
- <validator name="ipv4-address"/>
- </constraint>
</properties>
<children>
- <leafNode name="hwaddr">
+ <tagNode name="interface">
<properties>
- <help>Translation MAC address</help>
+ <help>Interface configuration</help>
+ <completionHelp>
+ <script>${vyos_completion_dir}/list_interfaces.py</script>
+ </completionHelp>
<valueHelp>
- <format>macaddr</format>
- <description>Hardware (MAC) address</description>
+ <format>txt</format>
+ <description>Interface name</description>
</valueHelp>
<constraint>
- <validator name="mac-address"/>
+ <validator name="interface-name"/>
</constraint>
</properties>
- </leafNode>
+ <children>
+ <tagNode name="address">
+ <properties>
+ <help>IP address for static ARP entry</help>
+ <valueHelp>
+ <format>ipv4</format>
+ <description>IPv4 destination address</description>
+ </valueHelp>
+ <constraint>
+ <validator name="ipv4-address"/>
+ </constraint>
+ </properties>
+ <children>
+ #include <include/generic-description.xml.i>
+ #include <include/interface/mac.xml.i>
+ </children>
+ </tagNode>
+ </children>
+ </tagNode>
</children>
- </tagNode>
+ </node>
</children>
</node>
</children>
diff --git a/interface-definitions/service-ids-ddos-protection.xml.in b/interface-definitions/service-ids-ddos-protection.xml.in
index ff4c1c24e..5e65d3106 100644
--- a/interface-definitions/service-ids-ddos-protection.xml.in
+++ b/interface-definitions/service-ids-ddos-protection.xml.in
@@ -25,7 +25,7 @@
<list>in out</list>
</completionHelp>
<constraint>
- <regex>^(in|out)$</regex>
+ <regex>(in|out)</regex>
</constraint>
<multi/>
</properties>
diff --git a/interface-definitions/service_conntrack-sync.xml.in b/interface-definitions/service_conntrack-sync.xml.in
index 584f687c7..6fa6fc5f9 100644
--- a/interface-definitions/service_conntrack-sync.xml.in
+++ b/interface-definitions/service_conntrack-sync.xml.in
@@ -5,7 +5,8 @@
<node name="conntrack-sync" owner="${vyos_conf_scripts_dir}/conntrack_sync.py">
<properties>
<help>Connection tracking synchronization</help>
- <priority>995</priority>
+ <!-- before VRRP / HA -->
+ <priority>799</priority>
</properties>
<children>
<leafNode name="accept-protocol">
@@ -39,7 +40,7 @@
<description>Sync Datagram Congestion Control Protocol entries</description>
</valueHelp>
<constraint>
- <regex>^(tcp|udp|icmp|icmp6|sctp|dccp)$</regex>
+ <regex>(tcp|udp|icmp|icmp6|sctp|dccp)</regex>
</constraint>
<constraintErrorMessage>Allowed protocols: tcp udp icmp or sctp</constraintErrorMessage>
<multi/>
@@ -68,7 +69,7 @@
<list>all ftp sip h323 nfs sqlnet</list>
</completionHelp>
<constraint>
- <regex>^(all|ftp|sip|h323|nfs|sqlnet)$</regex>
+ <regex>(all|ftp|sip|h323|nfs|sqlnet)</regex>
</constraint>
<constraintErrorMessage>Invalid protocol</constraintErrorMessage>
<multi/>
diff --git a/interface-definitions/service_console-server.xml.in b/interface-definitions/service_console-server.xml.in
index 549edb813..e9591ad87 100644
--- a/interface-definitions/service_console-server.xml.in
+++ b/interface-definitions/service_console-server.xml.in
@@ -23,7 +23,7 @@
<description>USB based serial interface</description>
</valueHelp>
<constraint>
- <regex>^(ttyS\d+|usb\d+b.*p.*)$</regex>
+ <regex>(ttyS\d+|usb\d+b.*p.*)</regex>
</constraint>
</properties>
<children>
@@ -35,7 +35,7 @@
<list>300 1200 2400 4800 9600 19200 38400 57600 115200</list>
</completionHelp>
<constraint>
- <regex>^(300|1200|2400|4800|9600|19200|38400|57600|115200)$</regex>
+ <regex>(300|1200|2400|4800|9600|19200|38400|57600|115200)</regex>
</constraint>
</properties>
</leafNode>
@@ -70,7 +70,7 @@
<list>even odd none</list>
</completionHelp>
<constraint>
- <regex>^(even|odd|none)$</regex>
+ <regex>(even|odd|none)</regex>
</constraint>
</properties>
<defaultValue>none</defaultValue>
diff --git a/interface-definitions/service_ipoe-server.xml.in b/interface-definitions/service_ipoe-server.xml.in
index 1325ba10d..e222467b1 100644
--- a/interface-definitions/service_ipoe-server.xml.in
+++ b/interface-definitions/service_ipoe-server.xml.in
@@ -23,7 +23,7 @@
<list>L2 L3</list>
</completionHelp>
<constraint>
- <regex>^(L2|L3)$</regex>
+ <regex>(L2|L3)</regex>
</constraint>
<valueHelp>
<format>L2</format>
@@ -42,7 +42,7 @@
<list>shared vlan</list>
</completionHelp>
<constraint>
- <regex>^(shared|vlan)$</regex>
+ <regex>(shared|vlan)</regex>
</constraint>
<valueHelp>
<format>shared</format>
@@ -141,7 +141,7 @@
<list>local radius noauth</list>
</completionHelp>
<constraint>
- <regex>^(local|radius|noauth)$</regex>
+ <regex>(local|radius|noauth)</regex>
</constraint>
<valueHelp>
<format>local</format>
diff --git a/interface-definitions/service_monitoring_telegraf.xml.in b/interface-definitions/service_monitoring_telegraf.xml.in
index 7db9de9f8..ff4c8c55f 100644
--- a/interface-definitions/service_monitoring_telegraf.xml.in
+++ b/interface-definitions/service_monitoring_telegraf.xml.in
@@ -22,7 +22,7 @@
<properties>
<help>Authentication organization for InfluxDB v2 [REQUIRED]</help>
<constraint>
- <regex>^[a-zA-Z][1-9a-zA-Z@_\-.]{2,50}$</regex>
+ <regex>[a-zA-Z][1-9a-zA-Z@_\-.]{2,50}</regex>
</constraint>
<constraintErrorMessage>Organization name must be alphanumeric and can contain hyphens, underscores and at symbol.</constraintErrorMessage>
</properties>
@@ -35,7 +35,7 @@
<description>Authentication token</description>
</valueHelp>
<constraint>
- <regex>^[a-zA-Z0-9-_]{86}==$</regex>
+ <regex>[a-zA-Z0-9-_]{86}==</regex>
</constraint>
<constraintErrorMessage>Token must be 88 characters long and must contain only [a-zA-Z0-9-_] and '==' characters.</constraintErrorMessage>
</properties>
@@ -79,12 +79,133 @@
<description>Telegraf internal statistics</description>
</valueHelp>
<constraint>
- <regex>^(all|hardware-utilization|logs|network|system|telegraf)$</regex>
+ <regex>(all|hardware-utilization|logs|network|system|telegraf)</regex>
</constraint>
<multi/>
</properties>
<defaultValue>all</defaultValue>
</leafNode>
+ <node name="prometheus-client">
+ <properties>
+ <help>Output plugin Prometheus client</help>
+ </properties>
+ <children>
+ <node name="authentication">
+ <properties>
+ <help>HTTP basic authentication parameters</help>
+ </properties>
+ <children>
+ <leafNode name="username">
+ <properties>
+ <help>Authentication username</help>
+ </properties>
+ </leafNode>
+ <leafNode name="password">
+ <properties>
+ <help>Authentication password</help>
+ <valueHelp>
+ <format>txt</format>
+ <description>Authentication password</description>
+ </valueHelp>
+ </properties>
+ </leafNode>
+ </children>
+ </node>
+ <leafNode name="allow-from">
+ <properties>
+ <help>Networks allowed to query this server</help>
+ <valueHelp>
+ <format>ipv4net</format>
+ <description>IP address and prefix length</description>
+ </valueHelp>
+ <valueHelp>
+ <format>ipv6net</format>
+ <description>IPv6 address and prefix length</description>
+ </valueHelp>
+ <multi/>
+ <constraint>
+ <validator name="ip-prefix"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ <leafNode 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="ipv4-address"/>
+ <validator name="ipv6-address"/>
+ <validator name="ipv6-link-local"/>
+ </constraint>
+ </properties>
+ </leafNode>
+ <leafNode name="metric-version">
+ <properties>
+ <help>Metric version control mapping from Telegraf to Prometheus format</help>
+ <valueHelp>
+ <format>u32:1-2</format>
+ <description>Metric version (default: 2)</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 1-2"/>
+ </constraint>
+ </properties>
+ <defaultValue>2</defaultValue>
+ </leafNode>
+ #include <include/port-number.xml.i>
+ <leafNode name="port">
+ <defaultValue>9273</defaultValue>
+ </leafNode>
+ </children>
+ </node>
+ <node name="splunk">
+ <properties>
+ <help>Output plugin Splunk</help>
+ </properties>
+ <children>
+ <node name="authentication">
+ <properties>
+ <help>HTTP basic authentication parameters</help>
+ </properties>
+ <children>
+ <leafNode name="token">
+ <properties>
+ <help>Authorization token</help>
+ </properties>
+ </leafNode>
+ <leafNode name="insecure">
+ <properties>
+ <help>Use TLS but skip host validation</help>
+ <valueless/>
+ </properties>
+ </leafNode>
+ </children>
+ </node>
+ <leafNode name="url">
+ <properties>
+ <help>Remote URL [REQUIRED]</help>
+ <valueHelp>
+ <format>url</format>
+ <description>Remote URL to Splunk collector</description>
+ </valueHelp>
+ <constraint>
+ <regex>^(http(s?):\/\/.*):(\d*)\/?(.*)</regex>
+ </constraint>
+ <constraintErrorMessage>Incorrect URL format</constraintErrorMessage>
+ </properties>
+ </leafNode>
+ </children>
+ </node>
<leafNode name="url">
<properties>
<help>Remote URL [REQUIRED]</help>
@@ -93,7 +214,7 @@
<description>Remote URL to InfluxDB v2</description>
</valueHelp>
<constraint>
- <regex>^(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/)?[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}?(\/.*)?$</regex>
+ <regex>(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/)?[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}?(\/.*)?</regex>
</constraint>
<constraintErrorMessage>Incorrect URL format.</constraintErrorMessage>
</properties>
diff --git a/interface-definitions/service_pppoe-server.xml.in b/interface-definitions/service_pppoe-server.xml.in
index 97952d882..50f42849b 100644
--- a/interface-definitions/service_pppoe-server.xml.in
+++ b/interface-definitions/service_pppoe-server.xml.in
@@ -32,7 +32,7 @@
<list>ifname ifname:mac</list>
</completionHelp>
<constraint>
- <regex>^(ifname|ifname:mac)$</regex>
+ <regex>(ifname|ifname:mac)</regex>
</constraint>
<constraintErrorMessage>Invalid Called-Station-Id format</constraintErrorMessage>
<valueHelp>
@@ -108,7 +108,7 @@
<properties>
<help>Acceptable rate of connections (e.g. 1/min, 60/sec)</help>
<constraint>
- <regex>[0-9]+\/(min|sec)$</regex>
+ <regex>[0-9]+\/(min|sec)</regex>
</constraint>
<constraintErrorMessage>illegal value</constraintErrorMessage>
</properties>
@@ -171,7 +171,7 @@
<properties>
<help>IPv4 (IPCP) negotiation algorithm</help>
<constraint>
- <regex>^(deny|allow|prefer|require)$</regex>
+ <regex>(deny|allow|prefer|require)</regex>
</constraint>
<constraintErrorMessage>invalid value</constraintErrorMessage>
<valueHelp>
@@ -276,7 +276,7 @@
<properties>
<help>control sessions count</help>
<constraint>
- <regex>^(deny|disable|replace)$</regex>
+ <regex>(deny|disable|replace)</regex>
</constraint>
<constraintErrorMessage>Invalid value</constraintErrorMessage>
<valueHelp>
diff --git a/interface-definitions/service_router-advert.xml.in b/interface-definitions/service_router-advert.xml.in
index ce1da85aa..bb11e9cd0 100644
--- a/interface-definitions/service_router-advert.xml.in
+++ b/interface-definitions/service_router-advert.xml.in
@@ -70,7 +70,7 @@
<description>Default router has high preference</description>
</valueHelp>
<constraint>
- <regex>^(low|medium|high)$</regex>
+ <regex>(low|medium|high)</regex>
</constraint>
<constraintErrorMessage>Default preference must be low, medium or high</constraintErrorMessage>
</properties>
@@ -170,7 +170,7 @@
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 0-4294967295"/>
- <regex>^(infinity)$</regex>
+ <regex>(infinity)</regex>
</constraint>
</properties>
<defaultValue>1800</defaultValue>
@@ -194,7 +194,7 @@
<description>Route has high preference</description>
</valueHelp>
<constraint>
- <regex>^(low|medium|high)$</regex>
+ <regex>(low|medium|high)</regex>
</constraint>
<constraintErrorMessage>Route preference must be low, medium or high</constraintErrorMessage>
</properties>
@@ -248,7 +248,7 @@
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 0-4294967295"/>
- <regex>^(infinity)$</regex>
+ <regex>(infinity)</regex>
</constraint>
</properties>
<defaultValue>14400</defaultValue>
@@ -269,7 +269,7 @@
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 0-4294967295"/>
- <regex>^(infinity)$</regex>
+ <regex>(infinity)</regex>
</constraint>
</properties>
<defaultValue>2592000</defaultValue>
diff --git a/interface-definitions/service_upnp.xml.in b/interface-definitions/service_upnp.xml.in
index 7cfe1f02e..a129b7260 100644
--- a/interface-definitions/service_upnp.xml.in
+++ b/interface-definitions/service_upnp.xml.in
@@ -211,7 +211,7 @@
<list>allow deny</list>
</completionHelp>
<constraint>
- <regex>^(allow|deny)$</regex>
+ <regex>(allow|deny)</regex>
</constraint>
</properties>
</leafNode>
diff --git a/interface-definitions/service_webproxy.xml.in b/interface-definitions/service_webproxy.xml.in
index 89c4c3910..9a75bc27d 100644
--- a/interface-definitions/service_webproxy.xml.in
+++ b/interface-definitions/service_webproxy.xml.in
@@ -136,7 +136,7 @@
<description>Lightweight Directory Access Protocol</description>
</valueHelp>
<constraint>
- <regex>^(ldap)$</regex>
+ <regex>(ldap)</regex>
</constraint>
<constraintErrorMessage>The only supported method currently is LDAP</constraintErrorMessage>
</properties>
@@ -234,7 +234,7 @@
<description>Peer is a member of a multicast group</description>
</valueHelp>
<constraint>
- <regex>^(parent|sibling|multicast)$</regex>
+ <regex>(parent|sibling|multicast)</regex>
</constraint>
</properties>
<defaultValue>parent</defaultValue>
@@ -368,7 +368,7 @@
<list>image/gif www/mime application/macbinary application/oda application/octet-stream application/pdf application/postscript application/postscript application/postscript text/rtf application/octet-stream application/octet-stream application/x-tar application/x-csh application/x-dvi application/x-hdf application/x-latex text/plain application/x-netcdf application/x-netcdf application/x-sh application/x-tcl application/x-tex application/x-texinfo application/x-texinfo application/x-troff application/x-troff application/x-troff application/x-troff-man application/x-troff-me application/x-troff-ms application/x-wais-source application/zip application/x-bcpio application/x-cpio application/x-gtar application/x-rpm application/x-shar application/x-sv4cpio application/x-sv4crc application/x-tar application/x-ustar audio/basic audio/basic audio/mpeg audio/mpeg audio/mpeg audio/x-aiff audio/x-aiff audio/x-aiff audio/x-wav image/bmp image/ief image/jpeg image/jpeg image/jpeg image/tiff image/tiff image/x-cmu-raster image/x-portable-anymap image/x-portable-bitmap image/x-portable-graymap image/x-portable-pixmap image/x-rgb image/x-xbitmap image/x-xpixmap image/x-xwindowdump text/html text/html text/css application/x-javascript text/plain text/plain text/plain text/plain text/plain text/plain text/plain text/plain text/plain text/richtext text/tab-separated-values text/x-setext video/mpeg video/mpeg video/mpeg video/quicktime video/quicktime video/x-msvideo video/x-sgi-movie application/mac-compactpro application/mac-binhex40 application/macwriteii application/msword application/msword application/vnd.ms-excel application/vnd.ms-powerpoint application/vnd.lotus-1-2-3 application/vnd.mif application/x-stuffit application/pict application/pict application/x-arj-compressed application/x-lha-compressed application/x-lha-compressed application/x-deflate text/plain application/octet-stream application/octet-stream image/png application/octet-stream application/x-xpinstall application/octet-stream text/plain application/x-director application/x-director application/x-director image/vnd.djvu image/vnd.djvu application/octet-stream application/octet-stream application/andrew-inset x-conference/x-cooltalk model/iges model/iges audio/midi audio/midi audio/midi model/mesh model/mesh video/vnd.mpegurl chemical/x-pdb application/x-chess-pgn audio/x-realaudio audio/x-pn-realaudio audio/x-pn-realaudio text/sgml text/sgml application/x-koan application/x-koan application/x-koan application/x-koan application/smil application/smil application/octet-stream application/x-futuresplash application/x-shockwave-flash application/x-cdlink model/vrml image/vnd.wap.wbmp application/vnd.wap.wbxml application/vnd.wap.wmlc application/vnd.wap.wmlscriptc application/vnd.wap.wmlscript application/xhtml application/xhtml text/xml text/xml chemical/x-xyz text/plain</list>
</completionHelp>
<constraint>
- <regex>^(image/gif|www/mime|application/macbinary|application/oda|application/octet-stream|application/pdf|application/postscript|application/postscript|application/postscript|text/rtf|application/octet-stream|application/octet-stream|application/x-tar|application/x-csh|application/x-dvi|application/x-hdf|application/x-latex|text/plain|application/x-netcdf|application/x-netcdf|application/x-sh|application/x-tcl|application/x-tex|application/x-texinfo|application/x-texinfo|application/x-troff|application/x-troff|application/x-troff|application/x-troff-man|application/x-troff-me|application/x-troff-ms|application/x-wais-source|application/zip|application/x-bcpio|application/x-cpio|application/x-gtar|application/x-rpm|application/x-shar|application/x-sv4cpio|application/x-sv4crc|application/x-tar|application/x-ustar|audio/basic|audio/basic|audio/mpeg|audio/mpeg|audio/mpeg|audio/x-aiff|audio/x-aiff|audio/x-aiff|audio/x-wav|image/bmp|image/ief|image/jpeg|image/jpeg|image/jpeg|image/tiff|image/tiff|image/x-cmu-raster|image/x-portable-anymap|image/x-portable-bitmap|image/x-portable-graymap|image/x-portable-pixmap|image/x-rgb|image/x-xbitmap|image/x-xpixmap|image/x-xwindowdump|text/html|text/html|text/css|application/x-javascript|text/plain|text/plain|text/plain|text/plain|text/plain|text/plain|text/plain|text/plain|text/plain|text/richtext|text/tab-separated-values|text/x-setext|video/mpeg|video/mpeg|video/mpeg|video/quicktime|video/quicktime|video/x-msvideo|video/x-sgi-movie|application/mac-compactpro|application/mac-binhex40|application/macwriteii|application/msword|application/msword|application/vnd.ms-excel|application/vnd.ms-powerpoint|application/vnd.lotus-1-2-3|application/vnd.mif|application/x-stuffit|application/pict|application/pict|application/x-arj-compressed|application/x-lha-compressed|application/x-lha-compressed|application/x-deflate|text/plain|application/octet-stream|application/octet-stream|image/png|application/octet-stream|application/x-xpinstall|application/octet-stream|text/plain|application/x-director|application/x-director|application/x-director|image/vnd.djvu|image/vnd.djvu|application/octet-stream|application/octet-stream|application/andrew-inset|x-conference/x-cooltalk|model/iges|model/iges|audio/midi|audio/midi|audio/midi|model/mesh|model/mesh|video/vnd.mpegurl|chemical/x-pdb|application/x-chess-pgn|audio/x-realaudio|audio/x-pn-realaudio|audio/x-pn-realaudio|text/sgml|text/sgml|application/x-koan|application/x-koan|application/x-koan|application/x-koan|application/smil|application/smil|application/octet-stream|application/x-futuresplash|application/x-shockwave-flash|application/x-cdlink|model/vrml|image/vnd.wap.wbmp|application/vnd.wap.wbxml|application/vnd.wap.wmlc|application/vnd.wap.wmlscriptc|application/vnd.wap.wmlscript|application/xhtml|application/xhtml|text/xml|text/xml|chemical/x-xyz|text/plain)$</regex>
+ <regex>(image/gif|www/mime|application/macbinary|application/oda|application/octet-stream|application/pdf|application/postscript|application/postscript|application/postscript|text/rtf|application/octet-stream|application/octet-stream|application/x-tar|application/x-csh|application/x-dvi|application/x-hdf|application/x-latex|text/plain|application/x-netcdf|application/x-netcdf|application/x-sh|application/x-tcl|application/x-tex|application/x-texinfo|application/x-texinfo|application/x-troff|application/x-troff|application/x-troff|application/x-troff-man|application/x-troff-me|application/x-troff-ms|application/x-wais-source|application/zip|application/x-bcpio|application/x-cpio|application/x-gtar|application/x-rpm|application/x-shar|application/x-sv4cpio|application/x-sv4crc|application/x-tar|application/x-ustar|audio/basic|audio/basic|audio/mpeg|audio/mpeg|audio/mpeg|audio/x-aiff|audio/x-aiff|audio/x-aiff|audio/x-wav|image/bmp|image/ief|image/jpeg|image/jpeg|image/jpeg|image/tiff|image/tiff|image/x-cmu-raster|image/x-portable-anymap|image/x-portable-bitmap|image/x-portable-graymap|image/x-portable-pixmap|image/x-rgb|image/x-xbitmap|image/x-xpixmap|image/x-xwindowdump|text/html|text/html|text/css|application/x-javascript|text/plain|text/plain|text/plain|text/plain|text/plain|text/plain|text/plain|text/plain|text/plain|text/richtext|text/tab-separated-values|text/x-setext|video/mpeg|video/mpeg|video/mpeg|video/quicktime|video/quicktime|video/x-msvideo|video/x-sgi-movie|application/mac-compactpro|application/mac-binhex40|application/macwriteii|application/msword|application/msword|application/vnd.ms-excel|application/vnd.ms-powerpoint|application/vnd.lotus-1-2-3|application/vnd.mif|application/x-stuffit|application/pict|application/pict|application/x-arj-compressed|application/x-lha-compressed|application/x-lha-compressed|application/x-deflate|text/plain|application/octet-stream|application/octet-stream|image/png|application/octet-stream|application/x-xpinstall|application/octet-stream|text/plain|application/x-director|application/x-director|application/x-director|image/vnd.djvu|image/vnd.djvu|application/octet-stream|application/octet-stream|application/andrew-inset|x-conference/x-cooltalk|model/iges|model/iges|audio/midi|audio/midi|audio/midi|model/mesh|model/mesh|video/vnd.mpegurl|chemical/x-pdb|application/x-chess-pgn|audio/x-realaudio|audio/x-pn-realaudio|audio/x-pn-realaudio|text/sgml|text/sgml|application/x-koan|application/x-koan|application/x-koan|application/x-koan|application/smil|application/smil|application/octet-stream|application/x-futuresplash|application/x-shockwave-flash|application/x-cdlink|model/vrml|image/vnd.wap.wbmp|application/vnd.wap.wbxml|application/vnd.wap.wmlc|application/vnd.wap.wmlscriptc|application/vnd.wap.wmlscript|application/xhtml|application/xhtml|text/xml|text/xml|chemical/x-xyz|text/plain)</regex>
</constraint>
<multi/>
</properties>
@@ -484,7 +484,7 @@
<description>Name of source group</description>
</valueHelp>
<constraint>
- <regex>^[^0-9]</regex>
+ <regex>[^0-9]</regex>
</constraint>
<constraintErrorMessage>URL-filter source-group cannot start with a number!</constraintErrorMessage>
</properties>
@@ -598,7 +598,7 @@
<description>All days of the week</description>
</valueHelp>
<constraint>
- <regex>^(Sun|Mon|Tue|Wed|Thu|Fri|Sat|weekdays|weekend|all)$</regex>
+ <regex>(Sun|Mon|Tue|Wed|Thu|Fri|Sat|weekdays|weekend|all)</regex>
</constraint>
</properties>
<children>
@@ -611,7 +611,7 @@
</valueHelp>
<constraint>
<!-- time range example: 12:00-13:00 -->
- <regex>^(\d\d:\d\d)-(\d\d:\d\d)$</regex>
+ <regex>(\d\d:\d\d)-(\d\d:\d\d)</regex>
</constraint>
<constraintErrorMessage>Expected time format hh:mm - hh:mm in 24hr time</constraintErrorMessage>
</properties>
diff --git a/interface-definitions/snmp.xml.in b/interface-definitions/snmp.xml.in
index b9e0f4cc5..b4f72589e 100644
--- a/interface-definitions/snmp.xml.in
+++ b/interface-definitions/snmp.xml.in
@@ -13,7 +13,7 @@
<properties>
<help>Community name</help>
<constraint>
- <regex>^[a-zA-Z0-9\-_]{1,100}$</regex>
+ <regex>[a-zA-Z0-9\-_]{1,100}</regex>
</constraint>
<constraintErrorMessage>Community string is limited to alphanumerical characters only with a total lenght of 100</constraintErrorMessage>
</properties>
@@ -33,7 +33,7 @@
<description>Read-Write</description>
</valueHelp>
<constraint>
- <regex>^(ro|rw)$</regex>
+ <regex>(ro|rw)</regex>
</constraint>
<constraintErrorMessage>Authorization type must be either 'rw' or 'ro'</constraintErrorMessage>
</properties>
@@ -72,7 +72,7 @@
<properties>
<help>Contact information</help>
<constraint>
- <regex>^.{1,255}$</regex>
+ <regex>.{1,255}</regex>
</constraint>
<constraintErrorMessage>Contact information is limited to 255 characters or less</constraintErrorMessage>
</properties>
@@ -81,7 +81,7 @@
<properties>
<help>Description information</help>
<constraint>
- <regex>^.{1,255}$</regex>
+ <regex>.{1,255}</regex>
</constraint>
<constraintErrorMessage>Description is limited to 255 characters or less</constraintErrorMessage>
</properties>
@@ -116,7 +116,7 @@
<properties>
<help>Location information</help>
<constraint>
- <regex>^.{1,255}$</regex>
+ <regex>.{1,255}</regex>
</constraint>
<constraintErrorMessage>Location is limited to 255 characters or less</constraintErrorMessage>
</properties>
@@ -132,7 +132,7 @@
<description>Enable routing table OIDs (ipCidrRouteTable inetCidrRouteTable)</description>
</valueHelp>
<constraint>
- <regex>^(route-table)$</regex>
+ <regex>(route-table)</regex>
</constraint>
<constraintErrorMessage>OID must be 'route-table'</constraintErrorMessage>
</properties>
@@ -202,7 +202,7 @@
<properties>
<help>Specifies the EngineID that uniquely identify an agent (e.g. 000000000000000000000002)</help>
<constraint>
- <regex>^([0-9a-f][0-9a-f]){1,18}$</regex>
+ <regex>([0-9a-f][0-9a-f]){1,18}</regex>
</constraint>
<constraintErrorMessage>ID must contain an even number (from 2 to 36) of hex digits</constraintErrorMessage>
</properties>
@@ -233,7 +233,7 @@
<description>Messages are authenticated and encrypted (authPriv)</description>
</valueHelp>
<constraint>
- <regex>^(noauth|auth|priv)$</regex>
+ <regex>(noauth|auth|priv)</regex>
</constraint>
</properties>
<defaultValue>auth</defaultValue>
@@ -274,7 +274,7 @@
<properties>
<help>Defines the encrypted key for authentication</help>
<constraint>
- <regex>^[0-9a-f]*$</regex>
+ <regex>[0-9a-f]*</regex>
</constraint>
<constraintErrorMessage>Encrypted key must only contain hex digits</constraintErrorMessage>
</properties>
@@ -283,7 +283,7 @@
<properties>
<help>Defines the clear text key for authentication</help>
<constraint>
- <regex>^.{8,}$</regex>
+ <regex>.{8,}</regex>
</constraint>
<constraintErrorMessage>Key must contain 8 or more characters</constraintErrorMessage>
</properties>
@@ -304,7 +304,7 @@
<properties>
<help>Defines the encrypted key for privacy protocol</help>
<constraint>
- <regex>^[0-9a-f]*$</regex>
+ <regex>[0-9a-f]*</regex>
</constraint>
<constraintErrorMessage>Encrypted key must only contain hex digits</constraintErrorMessage>
</properties>
@@ -313,7 +313,7 @@
<properties>
<help>Defines the clear text key for privacy protocol</help>
<constraint>
- <regex>^.{8,}$</regex>
+ <regex>.{8,}</regex>
</constraint>
<constraintErrorMessage>Key must contain 8 or more characters</constraintErrorMessage>
</properties>
@@ -337,7 +337,7 @@
<description>Use TRAP</description>
</valueHelp>
<constraint>
- <regex>^(inform|trap)$</regex>
+ <regex>(inform|trap)</regex>
</constraint>
</properties>
<defaultValue>inform</defaultValue>
@@ -356,7 +356,7 @@
<properties>
<help>Specifies the user with name username</help>
<constraint>
- <regex>[^\(\)\|\-]+$</regex>
+ <regex>[^\(\)\|\-]+</regex>
</constraint>
<constraintErrorMessage>Illegal characters in name</constraintErrorMessage>
</properties>
@@ -370,7 +370,7 @@
<properties>
<help>Defines the encrypted key for authentication</help>
<constraint>
- <regex>^[0-9a-f]*$</regex>
+ <regex>[0-9a-f]*</regex>
</constraint>
<constraintErrorMessage>Encrypted key must only contain hex digits</constraintErrorMessage>
</properties>
@@ -379,7 +379,7 @@
<properties>
<help>Defines the clear text key for authentication</help>
<constraint>
- <regex>^.{8,}$</regex>
+ <regex>.{8,}</regex>
</constraint>
<constraintErrorMessage>Key must contain 8 or more characters</constraintErrorMessage>
</properties>
@@ -405,7 +405,7 @@
<properties>
<help>Defines the encrypted key for privacy protocol</help>
<constraint>
- <regex>^[0-9a-f]*$</regex>
+ <regex>[0-9a-f]*</regex>
</constraint>
<constraintErrorMessage>Encrypted key must only contain hex digits</constraintErrorMessage>
</properties>
@@ -414,7 +414,7 @@
<properties>
<help>Defines the clear text key for privacy protocol</help>
<constraint>
- <regex>^.{8,}$</regex>
+ <regex>.{8,}</regex>
</constraint>
<constraintErrorMessage>Key must contain 8 or more characters</constraintErrorMessage>
</properties>
@@ -428,7 +428,7 @@
<properties>
<help>Specifies the view with name viewname</help>
<constraint>
- <regex>[^\(\)\|\-]+$</regex>
+ <regex>[^\(\)\|\-]+</regex>
</constraint>
<constraintErrorMessage>Illegal characters in name</constraintErrorMessage>
</properties>
@@ -437,7 +437,7 @@
<properties>
<help>Specifies the oid</help>
<constraint>
- <regex>^[0-9]+(\.[0-9]+)*$</regex>
+ <regex>[0-9]+(\.[0-9]+)*</regex>
</constraint>
<constraintErrorMessage>OID must start from a number</constraintErrorMessage>
</properties>
@@ -451,7 +451,7 @@
<properties>
<help>Defines a bit-mask that is indicating which subidentifiers of the associated subtree OID should be regarded as significant</help>
<constraint>
- <regex>^[0-9a-f]{2}([\.:][0-9a-f]{2})*$</regex>
+ <regex>[0-9a-f]{2}([\.:][0-9a-f]{2})*</regex>
</constraint>
<constraintErrorMessage>MASK is a list of hex octets, separated by '.' or ':'</constraintErrorMessage>
</properties>
@@ -471,7 +471,7 @@
<properties>
<help>Extension name</help>
<constraint>
- <regex>^[a-z0-9\.\-\_]+</regex>
+ <regex>[a-z0-9\.\-\_]+</regex>
</constraint>
<constraintErrorMessage>Script extension contains invalid characters</constraintErrorMessage>
</properties>
@@ -483,7 +483,7 @@
<script>ls /config/user-data</script>
</completionHelp>
<constraint>
- <regex>^[a-z0-9\.\-\_\/]+</regex>
+ <regex>[a-z0-9\.\-\_\/]+</regex>
</constraint>
<constraintErrorMessage>Script extension contains invalid characters</constraintErrorMessage>
</properties>
diff --git a/interface-definitions/ssh.xml.in b/interface-definitions/ssh.xml.in
index 8edbad110..126183162 100644
--- a/interface-definitions/ssh.xml.in
+++ b/interface-definitions/ssh.xml.in
@@ -61,6 +61,78 @@
<valueless/>
</properties>
</leafNode>
+ <node name="dynamic-protection">
+ <properties>
+ <help>Allow dynamic protection</help>
+ </properties>
+ <children>
+ <leafNode name="block-time">
+ <properties>
+ <help>Block source IP in seconds. Subsequent blocks increase by a factor of 1.5</help>
+ <valueHelp>
+ <format>u32:1-65535</format>
+ <description>Time interval in seconds for blocking</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 1-65535"/>
+ </constraint>
+ </properties>
+ <defaultValue>120</defaultValue>
+ </leafNode>
+ <leafNode name="detect-time">
+ <properties>
+ <help>Remember source IP in seconds before reset their score</help>
+ <valueHelp>
+ <format>u32:1-65535</format>
+ <description>Time interval in seconds</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 1-65535"/>
+ </constraint>
+ </properties>
+ <defaultValue>1800</defaultValue>
+ </leafNode>
+ <leafNode name="threshold">
+ <properties>
+ <help>Block source IP when their cumulative attack score exceeds threshold</help>
+ <valueHelp>
+ <format>u32:1-65535</format>
+ <description>Threshold score</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 1-65535"/>
+ </constraint>
+ </properties>
+ <defaultValue>30</defaultValue>
+ </leafNode>
+ <leafNode name="allow-from">
+ <properties>
+ <help>Always allow inbound connections from these systems</help>
+ <valueHelp>
+ <format>ipv4</format>
+ <description>Address to match against</description>
+ </valueHelp>
+ <valueHelp>
+ <format>ipv4net</format>
+ <description>IPv4 address and prefix length</description>
+ </valueHelp>
+ <valueHelp>
+ <format>ipv6</format>
+ <description>IPv6 address to match against</description>
+ </valueHelp>
+ <valueHelp>
+ <format>ipv6net</format>
+ <description>IPv6 address and prefix length</description>
+ </valueHelp>
+ <constraint>
+ <validator name="ip-address"/>
+ <validator name="ip-prefix"/>
+ </constraint>
+ <multi/>
+ </properties>
+ </leafNode>
+ </children>
+ </node>
<leafNode name="key-exchange">
<properties>
<help>Allowed key exchange (KEX) algorithms</help>
diff --git a/interface-definitions/system-conntrack.xml.in b/interface-definitions/system-conntrack.xml.in
index 65edab839..14f12b569 100644
--- a/interface-definitions/system-conntrack.xml.in
+++ b/interface-definitions/system-conntrack.xml.in
@@ -252,7 +252,7 @@
<description>Do not allow tracking of previously established connections</description>
</valueHelp>
<constraint>
- <regex>^(enable|disable)$</regex>
+ <regex>(enable|disable)</regex>
</constraint>
</properties>
<defaultValue>enable</defaultValue>
diff --git a/interface-definitions/system-console.xml.in b/interface-definitions/system-console.xml.in
index 2897e5e97..5acd3e90b 100644
--- a/interface-definitions/system-console.xml.in
+++ b/interface-definitions/system-console.xml.in
@@ -28,7 +28,7 @@
<description>Xen console</description>
</valueHelp>
<constraint>
- <regex>^(ttyS[0-9]+|hvc[0-9]+|usb[0-9]+b.*)$</regex>
+ <regex>(ttyS[0-9]+|hvc[0-9]+|usb[0-9]+b.*)</regex>
</constraint>
</properties>
<children>
@@ -71,7 +71,7 @@
<description>115200 bps</description>
</valueHelp>
<constraint>
- <regex>^(1200|2400|4800|9600|19200|38400|57600|115200)$</regex>
+ <regex>(1200|2400|4800|9600|19200|38400|57600|115200)</regex>
</constraint>
</properties>
<defaultValue>115200</defaultValue>
diff --git a/interface-definitions/system-lcd.xml.in b/interface-definitions/system-lcd.xml.in
index 4c9d5c92e..9b1a15317 100644
--- a/interface-definitions/system-lcd.xml.in
+++ b/interface-definitions/system-lcd.xml.in
@@ -39,7 +39,7 @@
<description>Lanner, Watchguard, Nexcom NSA, Sophos UTM appliances</description>
</valueHelp>
<constraint>
- <regex>^(cfa-533|cfa-631|cfa-633|cfa-635|hd44780|sdec)$</regex>
+ <regex>(cfa-533|cfa-631|cfa-633|cfa-635|hd44780|sdec)</regex>
</constraint>
</properties>
</leafNode>
@@ -59,7 +59,7 @@
<description>TTY device name, USB based</description>
</valueHelp>
<constraint>
- <regex>^(ttyS[0-9]+|usb[0-9]+b.*)$</regex>
+ <regex>(ttyS[0-9]+|usb[0-9]+b.*)</regex>
</constraint>
</properties>
</leafNode>
diff --git a/interface-definitions/system-login.xml.in b/interface-definitions/system-login.xml.in
index a5519ee88..24eeee355 100644
--- a/interface-definitions/system-login.xml.in
+++ b/interface-definitions/system-login.xml.in
@@ -12,7 +12,7 @@
<properties>
<help>Local user account information</help>
<constraint>
- <regex>^[-_a-zA-Z0-9.]{1,100}</regex>
+ <regex>[-_a-zA-Z0-9.]{1,100}</regex>
</constraint>
<constraintErrorMessage>Username contains illegal characters or\nexceeds 100 character limitation.</constraintErrorMessage>
</properties>
@@ -27,7 +27,7 @@
<help>Encrypted password</help>
<constraint>
<regex>(\*|\!)</regex>
- <regex>[a-zA-Z0-9\.\/]{13}$</regex>
+ <regex>[a-zA-Z0-9\.\/]{13}</regex>
<regex>\$1\$[a-zA-Z0-9\./]*\$[a-zA-Z0-9\./]{22}</regex>
<regex>\$5\$[a-zA-Z0-9\./]*\$[a-zA-Z0-9\./]{43}</regex>
<regex>\$6\$[a-zA-Z0-9\./]*\$[a-zA-Z0-9\./]{86}</regex>
@@ -90,7 +90,7 @@
<description/>
</valueHelp>
<constraint>
- <regex>^(ssh-dss|ssh-rsa|ecdsa-sha2-nistp256|ecdsa-sha2-nistp384|ecdsa-sha2-nistp521|ssh-ed25519)$</regex>
+ <regex>(ssh-dss|ssh-rsa|ecdsa-sha2-nistp256|ecdsa-sha2-nistp384|ecdsa-sha2-nistp521|ssh-ed25519)</regex>
</constraint>
</properties>
</leafNode>
@@ -102,7 +102,7 @@
<properties>
<help>Full name of the user (use quotes for names with spaces)</help>
<constraint>
- <regex>[^:]*$</regex>
+ <regex>[^:]*</regex>
</constraint>
<constraintErrorMessage>Cannot use ':' in full name</constraintErrorMessage>
</properties>
diff --git a/interface-definitions/system-option.xml.in b/interface-definitions/system-option.xml.in
index 75fa67271..8cd25799b 100644
--- a/interface-definitions/system-option.xml.in
+++ b/interface-definitions/system-option.xml.in
@@ -27,7 +27,7 @@
<description>Poweroff system</description>
</valueHelp>
<constraint>
- <regex>^(ignore|reboot|poweroff)$</regex>
+ <regex>(ignore|reboot|poweroff)</regex>
</constraint>
<constraintErrorMessage>Must be ignore, reboot, or poweroff</constraintErrorMessage>
</properties>
@@ -84,7 +84,7 @@
<description>Tune for low network latency</description>
</valueHelp>
<constraint>
- <regex>^(throughput|latency)$</regex>
+ <regex>(throughput|latency)</regex>
</constraint>
</properties>
</leafNode>
diff --git a/interface-definitions/system-proxy.xml.in b/interface-definitions/system-proxy.xml.in
index ade168522..1c06b347f 100644
--- a/interface-definitions/system-proxy.xml.in
+++ b/interface-definitions/system-proxy.xml.in
@@ -11,7 +11,7 @@
<properties>
<help>Proxy URL</help>
<constraint>
- <regex>http:\/\/[a-z0-9\.]+$</regex>
+ <regex>http:\/\/[a-z0-9\.]+</regex>
</constraint>
</properties>
</leafNode>
@@ -20,7 +20,7 @@
<properties>
<help>Proxy username</help>
<constraint>
- <regex>[a-z0-9-_\.]{1,100}$</regex>
+ <regex>[a-z0-9-_\.]{1,100}</regex>
</constraint>
</properties>
</leafNode>
diff --git a/interface-definitions/system-syslog.xml.in b/interface-definitions/system-syslog.xml.in
index 9280a43c8..480cb1ca6 100644
--- a/interface-definitions/system-syslog.xml.in
+++ b/interface-definitions/system-syslog.xml.in
@@ -28,7 +28,7 @@
<list>auth authpriv cron daemon kern lpr mail mark news protocols security syslog user uucp local0 local1 local2 local3 local4 local5 local6 local7 all</list>
</completionHelp>
<constraint>
- <regex>^(auth|authpriv|cron|daemon|kern|lpr|mail|mark|news|protocols|security|syslog|user|uucp|local0|local1|local2|local3|local4|local5|local6|local7|all)$</regex>
+ <regex>(auth|authpriv|cron|daemon|kern|lpr|mail|mark|news|protocols|security|syslog|user|uucp|local0|local1|local2|local3|local4|local5|local6|local7|all)</regex>
</constraint>
<constraintErrorMessage>Invalid facility type</constraintErrorMessage>
<valueHelp>
@@ -132,7 +132,7 @@
<list>emerg alert crit err warning notice info debug all</list>
</completionHelp>
<constraint>
- <regex>^(emerg|alert|crit|err|warning|notice|info|debug|all)$</regex>
+ <regex>(emerg|alert|crit|err|warning|notice|info|debug|all)</regex>
</constraint>
<constraintErrorMessage>Invalid loglevel</constraintErrorMessage>
<valueHelp>
@@ -203,7 +203,7 @@
<list>auth authpriv cron daemon kern lpr mail mark news protocols security syslog user uucp local0 local1 local2 local3 local4 local5 local6 local7 all</list>
</completionHelp>
<constraint>
- <regex>^(auth|authpriv|cron|daemon|kern|lpr|mail|mark|news|protocols|security|syslog|user|uucp|local0|local1|local2|local3|local4|local5|local6|local7|all)$</regex>
+ <regex>(auth|authpriv|cron|daemon|kern|lpr|mail|mark|news|protocols|security|syslog|user|uucp|local0|local1|local2|local3|local4|local5|local6|local7|all)</regex>
</constraint>
<constraintErrorMessage>Invalid facility type</constraintErrorMessage>
<valueHelp>
@@ -315,7 +315,7 @@
<list>udp tcp</list>
</completionHelp>
<constraint>
- <regex>^(udp|tcp)$</regex>
+ <regex>(udp|tcp)</regex>
</constraint>
<constraintErrorMessage>invalid protocol name</constraintErrorMessage>
</properties>
@@ -327,7 +327,7 @@
<list>emerg alert crit err warning notice info debug all</list>
</completionHelp>
<constraint>
- <regex>^(emerg|alert|crit|err|warning|notice|info|debug|all)$</regex>
+ <regex>(emerg|alert|crit|err|warning|notice|info|debug|all)</regex>
</constraint>
<constraintErrorMessage>Invalid loglevel</constraintErrorMessage>
<valueHelp>
@@ -422,7 +422,7 @@
<list>auth authpriv cron daemon kern lpr mail mark news protocols security syslog user uucp local0 local1 local2 local3 local4 local5 local6 local7 all</list>
</completionHelp>
<constraint>
- <regex>^(auth|authpriv|cron|daemon|kern|lpr|mail|mark|news|protocols|security|syslog|user|uucp|local0|local1|local2|local3|local4|local5|local6|local7|all)$</regex>
+ <regex>(auth|authpriv|cron|daemon|kern|lpr|mail|mark|news|protocols|security|syslog|user|uucp|local0|local1|local2|local3|local4|local5|local6|local7|all)</regex>
</constraint>
<constraintErrorMessage>Invalid facility type</constraintErrorMessage>
<valueHelp>
@@ -526,7 +526,7 @@
<list>emerg alert crit err warning notice info debug all</list>
</completionHelp>
<constraint>
- <regex>^(emerg|alert|crit|err|warning|notice|info|debug|all)$</regex>
+ <regex>(emerg|alert|crit|err|warning|notice|info|debug|all)</regex>
</constraint>
<constraintErrorMessage>Invalid loglevel</constraintErrorMessage>
<valueHelp>
@@ -633,7 +633,7 @@
<list>auth authpriv cron daemon kern lpr mail mark news protocols security syslog user uucp local0 local1 local2 local3 local4 local5 local6 local7 all</list>
</completionHelp>
<constraint>
- <regex>^(auth|authpriv|cron|daemon|kern|lpr|mail|mark|news|protocols|security|syslog|user|uucp|local0|local1|local2|local3|local4|local5|local6|local7|all)$</regex>
+ <regex>(auth|authpriv|cron|daemon|kern|lpr|mail|mark|news|protocols|security|syslog|user|uucp|local0|local1|local2|local3|local4|local5|local6|local7|all)</regex>
</constraint>
<constraintErrorMessage>Invalid facility type</constraintErrorMessage>
<valueHelp>
@@ -737,7 +737,7 @@
<list>emerg alert crit err warning notice info debug all</list>
</completionHelp>
<constraint>
- <regex>^(emerg|alert|crit|err|warning|notice|info|debug|all)$</regex>
+ <regex>(emerg|alert|crit|err|warning|notice|info|debug|all)</regex>
</constraint>
<constraintErrorMessage>Invalid loglevel</constraintErrorMessage>
<valueHelp>
@@ -794,7 +794,7 @@
<list>auth authpriv cron daemon kern lpr mail mark news protocols security syslog user uucp local0 local1 local2 local3 local4 local5 local6 local7 all</list>
</completionHelp>
<constraint>
- <regex>^(auth|authpriv|cron|daemon|kern|lpr|mail|mark|news|protocols|security|syslog|user|uucp|local0|local1|local2|local3|local4|local5|local6|local7|all)$</regex>
+ <regex>(auth|authpriv|cron|daemon|kern|lpr|mail|mark|news|protocols|security|syslog|user|uucp|local0|local1|local2|local3|local4|local5|local6|local7|all)</regex>
</constraint>
<constraintErrorMessage>Invalid facility type</constraintErrorMessage>
<valueHelp>
@@ -898,7 +898,7 @@
<list>emerg alert crit err warning notice info debug all</list>
</completionHelp>
<constraint>
- <regex>^(emerg|alert|crit|err|warning|notice|info|debug|all)$</regex>
+ <regex>(emerg|alert|crit|err|warning|notice|info|debug|all)</regex>
</constraint>
<constraintErrorMessage>Invalid loglevel</constraintErrorMessage>
<valueHelp>
diff --git a/interface-definitions/vpn_ipsec.xml.in b/interface-definitions/vpn_ipsec.xml.in
index a86951ce8..555ba689f 100644
--- a/interface-definitions/vpn_ipsec.xml.in
+++ b/interface-definitions/vpn_ipsec.xml.in
@@ -37,7 +37,7 @@
<description>Enable ESP compression</description>
</valueHelp>
<constraint>
- <regex>^(disable|enable)$</regex>
+ <regex>(disable|enable)</regex>
</constraint>
</properties>
<defaultValue>disable</defaultValue>
@@ -94,7 +94,7 @@
<description>Transport mode</description>
</valueHelp>
<constraint>
- <regex>^(tunnel|transport)$</regex>
+ <regex>(tunnel|transport)</regex>
</constraint>
</properties>
<defaultValue>tunnel</defaultValue>
@@ -202,7 +202,7 @@
<description>Disable PFS</description>
</valueHelp>
<constraint>
- <regex>^(enable|dh-group1|dh-group2|dh-group5|dh-group14|dh-group15|dh-group16|dh-group17|dh-group18|dh-group19|dh-group20|dh-group21|dh-group22|dh-group23|dh-group24|dh-group25|dh-group26|dh-group27|dh-group28|dh-group29|dh-group30|dh-group31|dh-group32|disable)$</regex>
+ <regex>(enable|dh-group1|dh-group2|dh-group5|dh-group14|dh-group15|dh-group16|dh-group17|dh-group18|dh-group19|dh-group20|dh-group21|dh-group22|dh-group23|dh-group24|dh-group25|dh-group26|dh-group27|dh-group28|dh-group29|dh-group30|dh-group31|dh-group32|disable)</regex>
</constraint>
</properties>
<defaultValue>enable</defaultValue>
@@ -246,7 +246,7 @@
<description>Attempt to re-negotiate the connection immediately</description>
</valueHelp>
<constraint>
- <regex>^(none|hold|restart)$</regex>
+ <regex>(none|hold|restart)</regex>
</constraint>
</properties>
</leafNode>
@@ -274,7 +274,7 @@
<description>Attempt to re-negotiate the connection immediately</description>
</valueHelp>
<constraint>
- <regex>^(hold|clear|restart)$</regex>
+ <regex>(hold|clear|restart)</regex>
</constraint>
</properties>
</leafNode>
@@ -321,7 +321,7 @@
<description>Disable remote host re-authenticaton during an IKE rekey</description>
</valueHelp>
<constraint>
- <regex>^(yes|no)$</regex>
+ <regex>(yes|no)</regex>
</constraint>
</properties>
</leafNode>
@@ -340,7 +340,7 @@
<description>Use IKEv2 for key exchange</description>
</valueHelp>
<constraint>
- <regex>^(ikev1|ikev2)$</regex>
+ <regex>(ikev1|ikev2)</regex>
</constraint>
</properties>
</leafNode>
@@ -372,7 +372,7 @@
<description>Disable MOBIKE</description>
</valueHelp>
<constraint>
- <regex>^(enable|disable)$</regex>
+ <regex>(enable|disable)</regex>
</constraint>
</properties>
<defaultValue>enable</defaultValue>
@@ -392,7 +392,7 @@
<description>Use the aggressive mode (insecure, not recommended)</description>
</valueHelp>
<constraint>
- <regex>^(main|aggressive)$</regex>
+ <regex>(main|aggressive)</regex>
</constraint>
</properties>
<defaultValue>main</defaultValue>
@@ -501,7 +501,7 @@
<description>Diffie-Hellman group 32 (curve448)</description>
</valueHelp>
<constraint>
- <regex>^(1|2|5|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32)$</regex>
+ <regex>(1|2|5|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32)</regex>
</constraint>
</properties>
<defaultValue>2</defaultValue>
@@ -628,7 +628,7 @@
<description>Any subsystem</description>
</valueHelp>
<constraint>
- <regex>^(dmn|mgr|ike|chd|job|cfg|knl|net|asn|enc|lib|esp|tls|tnc|imc|imv|pts|any)$</regex>
+ <regex>(dmn|mgr|ike|chd|job|cfg|knl|net|asn|enc|lib|esp|tls|tnc|imc|imv|pts|any)</regex>
</constraint>
<multi/>
</properties>
@@ -747,7 +747,7 @@
<description>Use EAP-RADIUS authentication</description>
</valueHelp>
<constraint>
- <regex>^(eap-tls|eap-mschapv2|eap-radius)$</regex>
+ <regex>(eap-tls|eap-mschapv2|eap-radius)</regex>
</constraint>
</properties>
<defaultValue>eap-mschapv2</defaultValue>
@@ -768,7 +768,7 @@
<description>Use x.509 certificate</description>
</valueHelp>
<constraint>
- <regex>^(pre-shared-secret|x509)$</regex>
+ <regex>(pre-shared-secret|x509)</regex>
</constraint>
</properties>
<defaultValue>x509</defaultValue>
@@ -840,7 +840,7 @@
<description>Delete any existing connection if a new one for the same user gets established</description>
</valueHelp>
<constraint>
- <regex>^(never|keep|replace)$</regex>
+ <regex>(never|keep|replace)</regex>
</constraint>
</properties>
</leafNode>
@@ -976,7 +976,7 @@
<description>Use x.509 certificate</description>
</valueHelp>
<constraint>
- <regex>^(pre-shared-secret|rsa|x509)$</regex>
+ <regex>(pre-shared-secret|rsa|x509)</regex>
</constraint>
</properties>
</leafNode>
@@ -1017,7 +1017,7 @@
<description>Load the connection only</description>
</valueHelp>
<constraint>
- <regex>^(initiate|respond|none)$</regex>
+ <regex>(initiate|respond|none)</regex>
</constraint>
</properties>
</leafNode>
@@ -1046,7 +1046,7 @@
<description>Do not force UDP encapsulation</description>
</valueHelp>
<constraint>
- <regex>^(enable|disable)$</regex>
+ <regex>(enable|disable)</regex>
</constraint>
</properties>
</leafNode>
@@ -1070,7 +1070,7 @@
<description>Inherit the reauth configuration form your IKE-group</description>
</valueHelp>
<constraint>
- <regex>^(yes|no|inherit)$</regex>
+ <regex>(yes|no|inherit)</regex>
</constraint>
</properties>
</leafNode>
diff --git a/interface-definitions/vpn_l2tp.xml.in b/interface-definitions/vpn_l2tp.xml.in
index 9ca7b1fad..f734283e7 100644
--- a/interface-definitions/vpn_l2tp.xml.in
+++ b/interface-definitions/vpn_l2tp.xml.in
@@ -72,7 +72,7 @@
<description>Use X.509 certificate for IPsec authentication</description>
</valueHelp>
<constraint>
- <regex>^(pre-shared-secret|x509)$</regex>
+ <regex>(pre-shared-secret|x509)</regex>
</constraint>
<completionHelp>
<list>pre-shared-secret x509</list>
@@ -167,7 +167,7 @@
<description>Require the peer to authenticate itself using MS-CHAPv2 [Microsoft Challenge Handshake Authentication Protocol, Version 2].</description>
</valueHelp>
<constraint>
- <regex>^(pap|chap|mschap|mschap-v2)$</regex>
+ <regex>(pap|chap|mschap|mschap-v2)</regex>
</constraint>
<completionHelp>
<list>pap chap mschap mschap-v2</list>
diff --git a/interface-definitions/vpn_openconnect.xml.in b/interface-definitions/vpn_openconnect.xml.in
index 05458ed34..21b47125d 100644
--- a/interface-definitions/vpn_openconnect.xml.in
+++ b/interface-definitions/vpn_openconnect.xml.in
@@ -34,7 +34,7 @@
<description>Password (first) + OTP local authentication</description>
</valueHelp>
<constraint>
- <regex>^(password|otp|password-otp)$</regex>
+ <regex>(password|otp|password-otp)</regex>
</constraint>
<constraintErrorMessage>Invalid authentication mode. Must be one of: password, otp or password-otp </constraintErrorMessage>
<completionHelp>
@@ -51,6 +51,82 @@
</children>
</node>
#include <include/auth-local-users.xml.i>
+ <node name="local-users">
+ <children>
+ <tagNode name="username">
+ <children>
+ <node name="otp">
+ <properties>
+ <help>2FA OTP authentication parameters</help>
+ </properties>
+ <children>
+ <leafNode name="key">
+ <properties>
+ <help>Token Key Secret key for the token algorithm (see RFC 4226)</help>
+ <valueHelp>
+ <format>txt</format>
+ <description>OTP key in hex-encoded format</description>
+ </valueHelp>
+ <constraint>
+ <regex>[a-fA-F0-9]{20,10000}</regex>
+ </constraint>
+ <constraintErrorMessage>Key name must only include hex characters and be at least 20 characters long</constraintErrorMessage>
+ </properties>
+ </leafNode>
+ <leafNode name="otp-length">
+ <properties>
+ <help>Number of digits in OTP code</help>
+ <valueHelp>
+ <format>u32:6-8</format>
+ <description>Number of digits in OTP code</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 6-8"/>
+ </constraint>
+ <constraintErrorMessage>Number of digits in OTP code must be between 6 and 8</constraintErrorMessage>
+ </properties>
+ <defaultValue>6</defaultValue>
+ </leafNode>
+ <leafNode name="interval">
+ <properties>
+ <help>Time tokens interval in seconds</help>
+ <valueHelp>
+ <format>u32:5-86400</format>
+ <description>Time tokens interval in seconds.</description>
+ </valueHelp>
+ <constraint>
+ <validator name="numeric" argument="--range 5-86400"/>
+ </constraint>
+ <constraintErrorMessage>Time token interval must be between 5 and 86400 seconds</constraintErrorMessage>
+ </properties>
+ <defaultValue>30</defaultValue>
+ </leafNode>
+ <leafNode name="token-type">
+ <properties>
+ <help>Token type</help>
+ <valueHelp>
+ <format>hotp-time</format>
+ <description>Time-based OTP algorithm</description>
+ </valueHelp>
+ <valueHelp>
+ <format>hotp-event</format>
+ <description>Event-based OTP algorithm</description>
+ </valueHelp>
+ <constraint>
+ <regex>(hotp-time|hotp-event)</regex>
+ </constraint>
+ <completionHelp>
+ <list>hotp-time hotp-event</list>
+ </completionHelp>
+ </properties>
+ <defaultValue>hotp-time</defaultValue>
+ </leafNode>
+ </children>
+ </node>
+ </children>
+ </tagNode>
+ </children>
+ </node>
#include <include/radius-server-ipv4.xml.i>
<node name="radius">
<children>
diff --git a/interface-definitions/vpn_pptp.xml.in b/interface-definitions/vpn_pptp.xml.in
index 0d1690013..28a53acb9 100644
--- a/interface-definitions/vpn_pptp.xml.in
+++ b/interface-definitions/vpn_pptp.xml.in
@@ -75,7 +75,7 @@
<description>ask client for mppe, if it rejects drop connection</description>
</valueHelp>
<constraint>
- <regex>^(deny|prefer|require)$</regex>
+ <regex>(deny|prefer|require)</regex>
</constraint>
<completionHelp>
<list>deny prefer require</list>
diff --git a/interface-definitions/vrf.xml.in b/interface-definitions/vrf.xml.in
index 14c31fa8a..25a573887 100644
--- a/interface-definitions/vrf.xml.in
+++ b/interface-definitions/vrf.xml.in
@@ -28,6 +28,22 @@
<children>
#include <include/interface/description.xml.i>
#include <include/interface/disable.xml.i>
+ <node name="ip">
+ <properties>
+ <help>IPv4 routing parameters</help>
+ </properties>
+ <children>
+ #include <include/interface/disable-forwarding.xml.i>
+ </children>
+ </node>
+ <node name="ipv6">
+ <properties>
+ <help>IPv6 routing parameters</help>
+ </properties>
+ <children>
+ #include <include/interface/disable-forwarding.xml.i>
+ </children>
+ </node>
<node name="protocols">
<properties>
<help>Routing protocol parameters</help>
diff --git a/interface-definitions/zone-policy.xml.in b/interface-definitions/zone-policy.xml.in
index eac63fa6b..8af0dcfb6 100644
--- a/interface-definitions/zone-policy.xml.in
+++ b/interface-definitions/zone-policy.xml.in
@@ -14,7 +14,7 @@
<description>Zone name</description>
</valueHelp>
<constraint>
- <regex>^[a-zA-Z0-9][\w\-\.]*$</regex>
+ <regex>[a-zA-Z0-9][\w\-\.]*</regex>
</constraint>
</properties>
<children>
@@ -34,7 +34,7 @@
<description>Drop and notify source</description>
</valueHelp>
<constraint>
- <regex>^(drop|reject)$</regex>
+ <regex>(drop|reject)</regex>
</constraint>
</properties>
<defaultValue>drop</defaultValue>
@@ -105,7 +105,7 @@
<description>Drop silently</description>
</valueHelp>
<constraint>
- <regex>^(accept|drop)$</regex>
+ <regex>(accept|drop)</regex>
</constraint>
</properties>
</leafNode>