Page Menu
Home
VyOS Platform
Search
Configure Global Search
Log In
Files
F119063443
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
132 KB
Referenced Files
None
Subscribers
None
View Options
diff --git a/interface-definitions/include/accel-ppp/client-ip-pool.xml.i b/interface-definitions/include/accel-ppp/client-ip-pool.xml.i
index dff574e6c..71fe69f8d 100644
--- a/interface-definitions/include/accel-ppp/client-ip-pool.xml.i
+++ b/interface-definitions/include/accel-ppp/client-ip-pool.xml.i
@@ -1,46 +1,46 @@
<!-- include start from accel-ppp/client-ip-pool.xml.i -->
<tagNode name="client-ip-pool">
<properties>
<help>Client IP pool</help>
<valueHelp>
<format>txt</format>
<description>Name of IP pool</description>
</valueHelp>
<constraint>
- <regex>[-_a-zA-Z0-9.]+</regex>
+ #include <include/constraint/alpha-numeric-hyphen-underscore-dot.xml.i>
</constraint>
</properties>
<children>
<leafNode name="range">
<properties>
<help>Range of IP addresses</help>
<valueHelp>
<format>ipv4net</format>
<description>IPv4 prefix</description>
</valueHelp>
<valueHelp>
<format>ipv4range</format>
<description>IPv4 address range inside /24 network</description>
</valueHelp>
<constraint>
<validator name="ipv4-prefix"/>
<validator name="ipv4-host"/>
<validator name="ipv4-range-mask" argument="-m 24 -r"/>
</constraint>
</properties>
</leafNode>
<leafNode name="next-pool">
<properties>
<help>Next pool name</help>
<valueHelp>
<format>txt</format>
<description>Name of IP pool</description>
</valueHelp>
<constraint>
- <regex>[-_a-zA-Z0-9.]+</regex>
+ #include <include/constraint/alpha-numeric-hyphen-underscore-dot.xml.i>
</constraint>
</properties>
</leafNode>
</children>
</tagNode>
<!-- include end -->
diff --git a/interface-definitions/include/accel-ppp/default-pool.xml.i b/interface-definitions/include/accel-ppp/default-pool.xml.i
index 832594c12..a08b066b1 100644
--- a/interface-definitions/include/accel-ppp/default-pool.xml.i
+++ b/interface-definitions/include/accel-ppp/default-pool.xml.i
@@ -1,14 +1,14 @@
<!-- include start from accel-ppp/default-pool.xml.i -->
<leafNode name="default-pool">
<properties>
<help>Default client IP pool name</help>
<valueHelp>
<format>txt</format>
<description>Default IP pool</description>
</valueHelp>
<constraint>
- <regex>[-_a-zA-Z0-9.]+</regex>
+ #include <include/constraint/alpha-numeric-hyphen-underscore-dot.xml.i>
</constraint>
</properties>
</leafNode>
<!-- include end -->
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 c218937c8..388991241 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
@@ -1,34 +1,34 @@
<!-- include start from bgp/afi-route-map.xml.i -->
<leafNode name="export">
<properties>
<help>Route-map to filter outgoing route updates</help>
<completionHelp>
<path>policy route-map</path>
</completionHelp>
<valueHelp>
<format>txt</format>
<description>Route map name</description>
</valueHelp>
<constraint>
- <regex>[-_a-zA-Z0-9.]+</regex>
+ #include <include/constraint/alpha-numeric-hyphen-underscore-dot.xml.i>
</constraint>
<constraintErrorMessage>Name of route-map can only contain alpha-numeric letters, hyphen and underscores</constraintErrorMessage>
</properties>
</leafNode>
<leafNode name="import">
<properties>
<help>Route-map to filter incoming route updates</help>
<completionHelp>
<path>policy route-map</path>
</completionHelp>
<valueHelp>
<format>txt</format>
<description>Route map name</description>
</valueHelp>
<constraint>
- <regex>[-_a-zA-Z0-9.]+</regex>
+ #include <include/constraint/alpha-numeric-hyphen-underscore-dot.xml.i>
</constraint>
<constraintErrorMessage>Name of route-map can only contain alpha-numeric letters, hyphen and underscores</constraintErrorMessage>
</properties>
</leafNode>
<!-- include end -->
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 9ec513da9..c8ad68700 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
@@ -1,205 +1,205 @@
<!-- include start from bgp/neighbor-afi-ipv4-ipv6-common.xml.i -->
<leafNode name="addpath-tx-all">
<properties>
<help>Use addpath to advertise all paths to a neighbor</help>
<valueless/>
</properties>
</leafNode>
<leafNode name="addpath-tx-per-as">
<properties>
<help>Use addpath to advertise the bestpath per each neighboring AS</help>
<valueless/>
</properties>
</leafNode>
<node name="conditionally-advertise">
<properties>
<help>Use route-map to conditionally advertise routes</help>
</properties>
<children>
<leafNode name="advertise-map">
<properties>
<help>Route-map to conditionally advertise routes</help>
<completionHelp>
<path>policy route-map</path>
</completionHelp>
<valueHelp>
<format>txt</format>
<description>Route map name</description>
</valueHelp>
<constraint>
- <regex>[-_a-zA-Z0-9.]+</regex>
+ #include <include/constraint/alpha-numeric-hyphen-underscore-dot.xml.i>
</constraint>
<constraintErrorMessage>Name of route-map can only contain alpha-numeric letters, hyphen and underscores</constraintErrorMessage>
</properties>
</leafNode>
<leafNode name="exist-map">
<properties>
<help>Advertise routes only if prefixes in exist-map are installed in BGP table</help>
<completionHelp>
<path>policy route-map</path>
</completionHelp>
<valueHelp>
<format>txt</format>
<description>Route map name</description>
</valueHelp>
<constraint>
- <regex>[-_a-zA-Z0-9.]+</regex>
+ #include <include/constraint/alpha-numeric-hyphen-underscore-dot.xml.i>
</constraint>
<constraintErrorMessage>Name of route-map can only contain alpha-numeric letters, hyphen and underscores</constraintErrorMessage>
</properties>
</leafNode>
<leafNode name="non-exist-map">
<properties>
<help>Advertise routes only if prefixes in non-exist-map are not installed in BGP table</help>
<completionHelp>
<path>policy route-map</path>
</completionHelp>
<valueHelp>
<format>txt</format>
<description>Route map name</description>
</valueHelp>
<constraint>
- <regex>[-_a-zA-Z0-9.]+</regex>
+ #include <include/constraint/alpha-numeric-hyphen-underscore-dot.xml.i>
</constraint>
<constraintErrorMessage>Name of route-map can only contain alpha-numeric letters, hyphen and underscores</constraintErrorMessage>
</properties>
</leafNode>
</children>
</node>
#include <include/bgp/afi-allowas-in.xml.i>
<leafNode name="as-override">
<properties>
<help>Override ASN in outbound updates to configured neighbor local-as</help>
<valueless/>
</properties>
</leafNode>
#include <include/bgp/afi-attribute-unchanged.xml.i>
<node name="disable-send-community">
<properties>
<help>Disable sending community attributes to this peer</help>
</properties>
<children>
<leafNode name="extended">
<properties>
<help>Disable sending extended community attributes to this peer</help>
<valueless/>
</properties>
</leafNode>
<leafNode name="standard">
<properties>
<help>Disable sending standard community attributes to this peer</help>
<valueless/>
</properties>
</leafNode>
</children>
</node>
<node name="distribute-list">
<properties>
<help>Access-list to filter route updates to/from this peer-group</help>
</properties>
<children>
<leafNode name="export">
<properties>
<help>Access-list to filter outgoing route updates to this peer-group</help>
<completionHelp>
<path>policy access-list</path>
</completionHelp>
<valueHelp>
<format>u32:1-65535</format>
<description>Access-list to filter outgoing route updates to this peer-group</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 1-65535"/>
</constraint>
</properties>
</leafNode>
<leafNode name="import">
<properties>
<help>Access-list to filter incoming route updates from this peer-group</help>
<completionHelp>
<path>policy access-list</path>
</completionHelp>
<valueHelp>
<format>u32:1-65535</format>
<description>Access-list to filter incoming route updates from this peer-group</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 1-65535"/>
</constraint>
</properties>
</leafNode>
</children>
</node>
#include <include/bgp/afi-filter-list.xml.i>
<leafNode name="maximum-prefix">
<properties>
<help>Maximum number of prefixes to accept from this peer</help>
<valueHelp>
<format>u32:1-4294967295</format>
<description>Prefix limit</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 1-4294967295"/>
</constraint>
</properties>
</leafNode>
<leafNode name="maximum-prefix-out">
<properties>
<help>Maximum number of prefixes to be sent to this peer</help>
<valueHelp>
<format>u32:1-4294967295</format>
<description>Prefix limit</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 1-4294967295"/>
</constraint>
</properties>
</leafNode>
#include <include/bgp/afi-nexthop-self.xml.i>
<node name="remove-private-as">
<properties>
<help>Remove private AS numbers from AS path in outbound route updates</help>
</properties>
<children>
<leafNode name="all">
<properties>
<help>Remove private AS numbers to all AS numbers in outbound route updates</help>
<valueless/>
</properties>
</leafNode>
</children>
</node>
#include <include/bgp/afi-route-map.xml.i>
#include <include/bgp/afi-route-reflector-client.xml.i>
#include <include/bgp/afi-route-server-client.xml.i>
#include <include/bgp/afi-soft-reconfiguration.xml.i>
<leafNode name="unsuppress-map">
<properties>
<help>Route-map to selectively unsuppress suppressed routes</help>
<completionHelp>
<path>policy route-map</path>
</completionHelp>
<valueHelp>
<format>txt</format>
<description>Route map name</description>
</valueHelp>
<constraint>
- <regex>[-_a-zA-Z0-9.]+</regex>
+ #include <include/constraint/alpha-numeric-hyphen-underscore-dot.xml.i>
</constraint>
<constraintErrorMessage>Name of route-map can only contain alpha-numeric letters, hyphen and underscores</constraintErrorMessage>
</properties>
</leafNode>
<leafNode name="weight">
<properties>
<help>Default weight for routes from this peer</help>
<valueHelp>
<format>u32:1-65535</format>
<description>Default weight</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 1-65535"/>
</constraint>
</properties>
</leafNode>
<!-- include end -->
diff --git a/interface-definitions/include/constraint/alpha-numeric-hyphen-underscore-dot.xml.i b/interface-definitions/include/constraint/alpha-numeric-hyphen-underscore-dot.xml.i
new file mode 100644
index 000000000..7aeb85260
--- /dev/null
+++ b/interface-definitions/include/constraint/alpha-numeric-hyphen-underscore-dot.xml.i
@@ -0,0 +1,3 @@
+<!-- include start from constraint/alpha-numeric-hyphen-underscore-dot.xml.i -->
+<regex>[-_a-zA-Z0-9.]+</regex>
+<!-- include end -->
diff --git a/interface-definitions/include/route-map.xml.i b/interface-definitions/include/route-map.xml.i
index 019868373..e49c388d6 100644
--- a/interface-definitions/include/route-map.xml.i
+++ b/interface-definitions/include/route-map.xml.i
@@ -1,18 +1,18 @@
<!-- include start from route-map.xml.i -->
<leafNode name="route-map">
<properties>
<help>Specify route-map name to use</help>
<completionHelp>
<path>policy route-map</path>
</completionHelp>
<valueHelp>
<format>txt</format>
<description>Route map name</description>
</valueHelp>
<constraint>
- <regex>[-_a-zA-Z0-9.]+</regex>
+ #include <include/constraint/alpha-numeric-hyphen-underscore-dot.xml.i>
</constraint>
<constraintErrorMessage>Name of route-map can only contain alpha-numeric letters, hyphen and underscores</constraintErrorMessage>
</properties>
</leafNode>
<!-- include end -->
diff --git a/interface-definitions/pki.xml.in b/interface-definitions/pki.xml.in
index 3449819be..097c541ac 100644
--- a/interface-definitions/pki.xml.in
+++ b/interface-definitions/pki.xml.in
@@ -1,234 +1,243 @@
<?xml version="1.0"?>
<interfaceDefinition>
<node name="pki" owner="${vyos_conf_scripts_dir}/pki.py">
<properties>
<help>VyOS PKI configuration</help>
<priority>300</priority>
</properties>
<children>
<tagNode name="ca">
<properties>
<help>Certificate Authority</help>
+ <constraint>
+ #include <include/constraint/alpha-numeric-hyphen-underscore-dot.xml.i>
+ </constraint>
</properties>
<children>
<leafNode name="certificate">
<properties>
<help>CA certificate in PEM format</help>
<constraint>
<validator name="base64"/>
</constraint>
<constraintErrorMessage>CA certificate is not base64-encoded</constraintErrorMessage>
</properties>
</leafNode>
#include <include/generic-description.xml.i>
<node name="private">
<properties>
<help>CA private key in PEM format</help>
</properties>
<children>
<leafNode name="key">
<properties>
<help>CA private key in PEM format</help>
<constraint>
<validator name="base64"/>
</constraint>
<constraintErrorMessage>CA private key is not base64-encoded</constraintErrorMessage>
</properties>
</leafNode>
<leafNode name="password-protected">
<properties>
<help>CA private key is password protected</help>
<valueless/>
</properties>
</leafNode>
</children>
</node>
<leafNode name="crl">
<properties>
<help>Certificate revocation list in PEM format</help>
<constraint>
<validator name="base64"/>
</constraint>
<constraintErrorMessage>CRL is not base64-encoded</constraintErrorMessage>
<multi/>
</properties>
</leafNode>
<leafNode name="revoke">
<properties>
<help>If parent CA is present, this CA certificate will be included in generated CRLs</help>
<valueless/>
</properties>
</leafNode>
</children>
</tagNode>
<tagNode name="certificate">
<properties>
<help>Certificate</help>
+ <constraint>
+ #include <include/constraint/alpha-numeric-hyphen-underscore-dot.xml.i>
+ </constraint>
</properties>
<children>
<leafNode name="certificate">
<properties>
<help>Certificate in PEM format</help>
<constraint>
<validator name="base64"/>
</constraint>
<constraintErrorMessage>Certificate is not base64-encoded</constraintErrorMessage>
</properties>
</leafNode>
#include <include/generic-description.xml.i>
<node name="private">
<properties>
<help>Certificate private key</help>
</properties>
<children>
<leafNode name="key">
<properties>
<help>Certificate private key in PEM format</help>
<constraint>
<validator name="base64"/>
</constraint>
<constraintErrorMessage>Certificate private key is not base64-encoded</constraintErrorMessage>
</properties>
</leafNode>
<leafNode name="password-protected">
<properties>
<help>Certificate private key is password protected</help>
<valueless/>
</properties>
</leafNode>
</children>
</node>
<leafNode name="revoke">
<properties>
<help>If CA is present, this certificate will be included in generated CRLs</help>
<valueless/>
</properties>
</leafNode>
</children>
</tagNode>
<tagNode name="dh">
<properties>
<help>Diffie-Hellman parameters</help>
+ <constraint>
+ #include <include/constraint/alpha-numeric-hyphen-underscore-dot.xml.i>
+ </constraint>
</properties>
<children>
<leafNode name="parameters">
<properties>
<help>DH parameters in PEM format</help>
<constraint>
<validator name="base64"/>
</constraint>
<constraintErrorMessage>DH parameters are not base64-encoded</constraintErrorMessage>
</properties>
</leafNode>
</children>
</tagNode>
<tagNode name="key-pair">
<properties>
<help>Public and private keys</help>
</properties>
<children>
<node name="public">
<properties>
<help>Public key</help>
</properties>
<children>
<leafNode name="key">
<properties>
<help>Public key in PEM format</help>
<constraint>
<validator name="base64"/>
</constraint>
<constraintErrorMessage>Public key is not base64-encoded</constraintErrorMessage>
</properties>
</leafNode>
</children>
</node>
<node name="private">
<properties>
<help>Private key</help>
</properties>
<children>
<leafNode name="key">
<properties>
<help>Private key in PEM format</help>
<constraint>
<validator name="base64"/>
</constraint>
<constraintErrorMessage>Private key is not base64-encoded</constraintErrorMessage>
</properties>
</leafNode>
<leafNode name="password-protected">
<properties>
<help>Private key is password protected</help>
<valueless/>
</properties>
</leafNode>
</children>
</node>
</children>
</tagNode>
<node name="openvpn">
<properties>
<help>OpenVPN keys</help>
</properties>
<children>
<tagNode name="shared-secret">
<properties>
<help>OpenVPN shared secret key</help>
</properties>
<children>
<leafNode name="key">
<properties>
<help>OpenVPN shared secret key data</help>
</properties>
</leafNode>
<leafNode name="version">
<properties>
<help>OpenVPN shared secret key version</help>
</properties>
</leafNode>
</children>
</tagNode>
</children>
</node>
<node name="x509">
<properties>
<help>X509 Settings</help>
</properties>
<children>
<node name="default">
<properties>
<help>X509 Default Values</help>
</properties>
<children>
<leafNode name="country">
<properties>
<help>Default country</help>
</properties>
<defaultValue>GB</defaultValue>
</leafNode>
<leafNode name="state">
<properties>
<help>Default state</help>
</properties>
<defaultValue>Some-State</defaultValue>
</leafNode>
<leafNode name="locality">
<properties>
<help>Default locality</help>
</properties>
<defaultValue>Some-City</defaultValue>
</leafNode>
<leafNode name="organization">
<properties>
<help>Default organization</help>
</properties>
<defaultValue>VyOS</defaultValue>
</leafNode>
</children>
</node>
</children>
</node>
</children>
</node>
</interfaceDefinition>
diff --git a/interface-definitions/policy.xml.in b/interface-definitions/policy.xml.in
index 0d2ed9746..0d82cd3f8 100644
--- a/interface-definitions/policy.xml.in
+++ b/interface-definitions/policy.xml.in
@@ -1,1570 +1,1570 @@
<?xml version="1.0"?>
<interfaceDefinition>
<node name="policy" owner="${vyos_conf_scripts_dir}/policy.py">
<properties>
<priority>200</priority>
<help>Routing policy</help>
</properties>
<children>
<tagNode name="access-list">
<properties>
<help>IP access-list filter</help>
<valueHelp>
<format>u32:1-99</format>
<description>IP standard access list</description>
</valueHelp>
<valueHelp>
<format>u32:100-199</format>
<description>IP extended access list</description>
</valueHelp>
<valueHelp>
<format>u32:1300-1999</format>
<description>IP standard access list (expanded range)</description>
</valueHelp>
<valueHelp>
<format>u32:2000-2699</format>
<description>IP extended access list (expanded range)</description>
</valueHelp>
</properties>
<children>
#include <include/generic-description.xml.i>
<tagNode name="rule">
<properties>
<help>Rule for this access-list</help>
<valueHelp>
<format>u32:1-65535</format>
<description>Access-list rule number</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 1-65535"/>
</constraint>
</properties>
<children>
#include <include/policy/action.xml.i>
#include <include/generic-description.xml.i>
<node name="destination">
<properties>
<help>Destination network or address</help>
</properties>
<children>
<leafNode name="any">
<properties>
<help>Any IP address to match</help>
<valueless/>
</properties>
</leafNode>
#include <include/policy/host.xml.i>
#include <include/policy/inverse-mask.xml.i>
#include <include/policy/network.xml.i>
</children>
</node>
<node name="source">
<properties>
<help>Source network or address to match</help>
</properties>
<children>
<leafNode name="any">
<properties>
<help>Any IP address to match</help>
<valueless/>
</properties>
</leafNode>
#include <include/policy/host.xml.i>
#include <include/policy/inverse-mask.xml.i>
#include <include/policy/network.xml.i>
</children>
</node>
</children>
</tagNode>
</children>
</tagNode>
<tagNode name="access-list6">
<properties>
<help>IPv6 access-list filter</help>
<valueHelp>
<format>txt</format>
<description>Name of IPv6 access-list</description>
</valueHelp>
</properties>
<children>
#include <include/generic-description.xml.i>
<tagNode name="rule">
<properties>
<help>Rule for this access-list6</help>
<valueHelp>
<format>u32:1-65535</format>
<description>Access-list6 rule number</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 1-65535"/>
</constraint>
</properties>
<children>
#include <include/policy/action.xml.i>
#include <include/generic-description.xml.i>
<node name="source">
<properties>
<help>Source IPv6 network to match</help>
</properties>
<children>
<leafNode name="any">
<properties>
<help>Any IP address to match</help>
<valueless/>
</properties>
</leafNode>
<leafNode name="exact-match">
<properties>
<help>Exact match of the network prefixes</help>
<valueless/>
</properties>
</leafNode>
<leafNode name="network">
<properties>
<help>Network/netmask to match</help>
<valueHelp>
<format>ipv6net</format>
<description>IPv6 address and prefix length</description>
</valueHelp>
<constraint>
<validator name="ipv6-prefix"/>
</constraint>
</properties>
</leafNode>
</children>
</node>
</children>
</tagNode>
</children>
</tagNode>
<tagNode name="as-path-list">
<properties>
<help>Add a BGP autonomous system path filter</help>
<valueHelp>
<format>txt</format>
<description>AS path list name</description>
</valueHelp>
</properties>
<children>
#include <include/generic-description.xml.i>
<tagNode name="rule">
<properties>
<help>Rule for this as-path-list</help>
<valueHelp>
<format>u32:1-65535</format>
<description>AS path list rule number</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 1-65535"/>
</constraint>
</properties>
<children>
#include <include/policy/action.xml.i>
#include <include/generic-description.xml.i>
<leafNode name="regex">
<properties>
<help>Regular expression to match against an AS path</help>
<valueHelp>
<format>txt</format>
<description>AS path regular expression (ex: "64501 64502")</description>
</valueHelp>
</properties>
</leafNode>
</children>
</tagNode>
</children>
</tagNode>
<tagNode name="community-list">
<properties>
<help>Add a BGP community list entry</help>
<valueHelp>
<format>txt</format>
<description>BGP community-list name</description>
</valueHelp>
</properties>
<children>
#include <include/generic-description.xml.i>
<tagNode name="rule">
<properties>
<help>Rule for this BGP community list</help>
<valueHelp>
<format>u32:1-65535</format>
<description>Community-list rule number</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 1-65535"/>
</constraint>
</properties>
<children>
#include <include/policy/action.xml.i>
#include <include/generic-description.xml.i>
<leafNode name="regex">
<properties>
<help>Regular expression to match against a community-list</help>
<completionHelp>
<list>local-AS no-advertise no-export internet additive</list>
</completionHelp>
<valueHelp>
<format><aa:nn></format>
<description>Community number in AA:NN format</description>
</valueHelp>
<valueHelp>
<format>local-AS</format>
<description>Well-known communities value NO_EXPORT_SUBCONFED 0xFFFFFF03</description>
</valueHelp>
<valueHelp>
<format>no-advertise</format>
<description>Well-known communities value NO_ADVERTISE 0xFFFFFF02</description>
</valueHelp>
<valueHelp>
<format>no-export</format>
<description>Well-known communities value NO_EXPORT 0xFFFFFF01</description>
</valueHelp>
<valueHelp>
<format>internet</format>
<description>Well-known communities value 0</description>
</valueHelp>
<valueHelp>
<format>additive</format>
<description>New value is appended to the existing value</description>
</valueHelp>
</properties>
</leafNode>
</children>
</tagNode>
</children>
</tagNode>
<tagNode name="extcommunity-list">
<properties>
<help>Add a BGP extended community list entry</help>
<valueHelp>
<format>txt</format>
<description>BGP extended community-list name</description>
</valueHelp>
<constraint>
#include <include/constraint/alpha-numeric-hyphen-underscore.xml.i>
</constraint>
<constraintErrorMessage>Should be an alphanumeric name</constraintErrorMessage>
</properties>
<children>
#include <include/generic-description.xml.i>
<tagNode name="rule">
<properties>
<help>Rule for this BGP extended community list</help>
<valueHelp>
<format>u32:1-65535</format>
<description>Extended community-list rule number</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 1-65535"/>
</constraint>
</properties>
<children>
#include <include/policy/action.xml.i>
#include <include/generic-description.xml.i>
<leafNode name="regex">
<properties>
<help>Regular expression to match against an extended community list</help>
<valueHelp>
<format><aa:nn:nn></format>
<description>Extended community list regular expression</description>
</valueHelp>
<valueHelp>
<format><rt aa:nn:nn></format>
<description>Route Target regular expression</description>
</valueHelp>
<valueHelp>
<format><soo aa:nn:nn></format>
<description>Site of Origin regular expression</description>
</valueHelp>
</properties>
</leafNode>
</children>
</tagNode>
</children>
</tagNode>
<tagNode name="large-community-list">
<properties>
<help>Add a BGP large community list entry</help>
<valueHelp>
<format>txt</format>
<description>BGP large-community-list name</description>
</valueHelp>
<constraint>
#include <include/constraint/alpha-numeric-hyphen-underscore.xml.i>
</constraint>
<constraintErrorMessage>Should be an alphanumeric name</constraintErrorMessage>
</properties>
<children>
#include <include/generic-description.xml.i>
<tagNode name="rule">
<properties>
<help>Rule for this BGP extended community list</help>
<valueHelp>
<format>u32:1-65535</format>
<description>Large community-list rule number</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 1-65535"/>
</constraint>
</properties>
<children>
#include <include/policy/action.xml.i>
#include <include/generic-description.xml.i>
<leafNode name="regex">
<properties>
<help>Regular expression to match against a large community list</help>
<valueHelp>
<format>ASN:NN:NN</format>
<description>BGP large-community-list filter</description>
</valueHelp>
<valueHelp>
<format>IP:NN:NN</format>
<description>BGP large-community-list filter (IPv4 address format)</description>
</valueHelp>
<constraint>
<validator name="bgp-large-community-list"/>
</constraint>
<constraintErrorMessage>Malformed large-community-list</constraintErrorMessage>
</properties>
</leafNode>
</children>
</tagNode>
</children>
</tagNode>
<tagNode name="prefix-list">
<properties>
<help>IP prefix-list filter</help>
<valueHelp>
<format>txt</format>
<description>Name of IPv4 prefix-list</description>
</valueHelp>
<constraint>
#include <include/constraint/alpha-numeric-hyphen-underscore.xml.i>
</constraint>
<constraintErrorMessage>Name of prefix-list can only contain alpha-numeric letters, hyphen and underscores</constraintErrorMessage>
</properties>
<children>
#include <include/generic-description.xml.i>
<tagNode name="rule">
<properties>
<help>Rule for this prefix-list</help>
<valueHelp>
<format>u32:1-65535</format>
<description>Prefix-list rule number</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 1-65535"/>
</constraint>
</properties>
<children>
#include <include/policy/action.xml.i>
#include <include/generic-description.xml.i>
<leafNode name="ge">
<properties>
<help>Prefix length to match a netmask greater than or equal to it</help>
<valueHelp>
<format>u32:0-32</format>
<description>Netmask greater than length</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 0-32"/>
</constraint>
</properties>
</leafNode>
<leafNode name="le">
<properties>
<help>Prefix length to match a netmask less than or equal to it</help>
<valueHelp>
<format>u32:0-32</format>
<description>Netmask less than length</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 0-32"/>
</constraint>
</properties>
</leafNode>
<leafNode name="prefix">
<properties>
<help>Prefix to match</help>
<valueHelp>
<format>ipv4net</format>
<description>Prefix to match against</description>
</valueHelp>
<constraint>
<validator name="ipv4-prefix"/>
</constraint>
</properties>
</leafNode>
</children>
</tagNode>
</children>
</tagNode>
<tagNode name="prefix-list6">
<properties>
<help>IPv6 prefix-list filter</help>
<valueHelp>
<format>txt</format>
<description>Name of IPv6 prefix-list</description>
</valueHelp>
<constraint>
#include <include/constraint/alpha-numeric-hyphen-underscore.xml.i>
</constraint>
<constraintErrorMessage>Name of prefix-list6 can only contain alpha-numeric letters, hyphen and underscores</constraintErrorMessage>
</properties>
<children>
#include <include/generic-description.xml.i>
<tagNode name="rule">
<properties>
<help>Rule for this prefix-list6</help>
<valueHelp>
<format>u32:1-65535</format>
<description>Prefix-list rule number</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 1-65535"/>
</constraint>
</properties>
<children>
#include <include/policy/action.xml.i>
#include <include/generic-description.xml.i>
<leafNode name="ge">
<properties>
<help>Prefix length to match a netmask greater than or equal to it</help>
<valueHelp>
<format>u32:0-128</format>
<description>Netmask greater than length</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 0-128"/>
</constraint>
</properties>
</leafNode>
<leafNode name="le">
<properties>
<help>Prefix length to match a netmask less than or equal to it</help>
<valueHelp>
<format>u32:0-128</format>
<description>Netmask less than length</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 0-128"/>
</constraint>
</properties>
</leafNode>
<leafNode name="prefix">
<properties>
<help>Prefix to match</help>
<valueHelp>
<format>ipv6net</format>
<description>IPv6 prefix</description>
</valueHelp>
<constraint>
<validator name="ipv6-prefix"/>
</constraint>
</properties>
</leafNode>
</children>
</tagNode>
</children>
</tagNode>
<tagNode name="route-map">
<properties>
<help>IP route-map</help>
<valueHelp>
<format>txt</format>
<description>Route map name</description>
</valueHelp>
<constraint>
- <regex>[-_a-zA-Z0-9.]+</regex>
+ #include <include/constraint/alpha-numeric-hyphen-underscore-dot.xml.i>
</constraint>
<constraintErrorMessage>Name of route-map can only contain alpha-numeric letters, hyphen and underscores</constraintErrorMessage>
</properties>
<children>
#include <include/generic-description.xml.i>
<tagNode name="rule">
<properties>
<help>Rule for this route-map</help>
<valueHelp>
<format>u32:1-65535</format>
<description>Route-map rule number</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 1-65535"/>
</constraint>
</properties>
<children>
#include <include/policy/action.xml.i>
<leafNode name="call">
<properties>
<help>Call another route-map on match</help>
<valueHelp>
<format>txt</format>
<description>Route map name</description>
</valueHelp>
<completionHelp>
<path>policy route-map</path>
</completionHelp>
</properties>
</leafNode>
<leafNode name="continue">
<properties>
<help>Jump to a different rule in this route-map on a match</help>
<valueHelp>
<format>u32:1-65535</format>
<description>Rule number</description>
</valueHelp>
</properties>
</leafNode>
#include <include/generic-description.xml.i>
<node name="match">
<properties>
<help>Route parameters to match</help>
</properties>
<children>
<leafNode name="as-path">
<properties>
<help>BGP as-path-list to match</help>
<completionHelp>
<path>policy as-path-list</path>
</completionHelp>
</properties>
</leafNode>
<node name="community">
<properties>
<help>BGP community-list to match</help>
</properties>
<children>
<leafNode name="community-list">
<properties>
<help>BGP community-list to match</help>
<completionHelp>
<path>policy community-list</path>
</completionHelp>
</properties>
</leafNode>
<leafNode name="exact-match">
<properties>
<help>Community-list to exactly match</help>
<valueless/>
</properties>
</leafNode>
</children>
</node>
<node name="evpn">
<properties>
<help>Ethernet Virtual Private Network</help>
</properties>
<children>
<leafNode name="default-route">
<properties>
<help>Default EVPN type-5 route</help>
<valueless/>
</properties>
</leafNode>
#include <include/bgp/route-distinguisher.xml.i>
<leafNode name="route-type">
<properties>
<help>Match route-type</help>
<completionHelp>
<list>macip multicast prefix</list>
</completionHelp>
<valueHelp>
<format>macip</format>
<description>mac-ip route</description>
</valueHelp>
<valueHelp>
<format>multicast</format>
<description>IMET route</description>
</valueHelp>
<valueHelp>
<format>prefix</format>
<description>Prefix route</description>
</valueHelp>
<constraint>
<regex>(macip|multicast|prefix)</regex>
</constraint>
</properties>
</leafNode>
#include <include/vni.xml.i>
</children>
</node>
<leafNode name="extcommunity">
<properties>
<help>BGP extended community to match</help>
<completionHelp>
<path>policy extcommunity-list</path>
</completionHelp>
</properties>
</leafNode>
#include <include/generic-interface.xml.i>
<node name="ip">
<properties>
<help>IP prefix parameters to match</help>
</properties>
<children>
<node name="address">
<properties>
<help>IP address of route to match</help>
</properties>
<children>
<leafNode name="access-list">
<properties>
<help>IP access-list to match</help>
<valueHelp>
<format>u32:1-99</format>
<description>IP standard access list</description>
</valueHelp>
<valueHelp>
<format>u32:100-199</format>
<description>IP extended access list</description>
</valueHelp>
<valueHelp>
<format>u32:1300-1999</format>
<description>IP standard access list (expanded range)</description>
</valueHelp>
<valueHelp>
<format>u32:2000-2699</format>
<description>IP extended access list (expanded range)</description>
</valueHelp>
</properties>
</leafNode>
<leafNode name="prefix-list">
<properties>
<help>IP prefix-list to match</help>
<completionHelp>
<path>policy prefix-list</path>
</completionHelp>
</properties>
</leafNode>
<leafNode name="prefix-len">
<properties>
<help>IP prefix-length to match (can be used for kernel routes only)</help>
<valueHelp>
<format>u32:0-32</format>
<description>Prefix length</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 0-32"/>
</constraint>
</properties>
</leafNode>
</children>
</node>
<!-- T3304 but it overwrite node nexthop
<leafNode name="nexthop">
<properties>
<help>IP next-hop of route to match</help>
<valueHelp>
<format>ipv4</format>
<description>Next-hop IPv4 router address</description>
</valueHelp>
<constraint>
<validator name="ipv4-address"/>
</constraint>
</properties>
</leafNode> -->
<node name="nexthop">
<properties>
<help>IP next-hop of route to match</help>
</properties>
<children>
<leafNode name="address">
<properties>
<help>IP address to match</help>
<valueHelp>
<format>ipv4</format>
<description>Nexthop IP address</description>
</valueHelp>
<constraint>
<validator name="ipv4-address"/>
</constraint>
</properties>
</leafNode>
<leafNode name="access-list">
<properties>
<help>IP access-list to match</help>
<valueHelp>
<format>u32:1-99</format>
<description>IP standard access list</description>
</valueHelp>
<valueHelp>
<format>u32:100-199</format>
<description>IP extended access list</description>
</valueHelp>
<valueHelp>
<format>u32:1300-1999</format>
<description>IP standard access list (expanded range)</description>
</valueHelp>
<valueHelp>
<format>u32:2000-2699</format>
<description>IP extended access list (expanded range)</description>
</valueHelp>
</properties>
</leafNode>
<leafNode name="prefix-len">
<properties>
<help>IP prefix-length to match</help>
<valueHelp>
<format>u32:0-32</format>
<description>Prefix length</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 0-32"/>
</constraint>
</properties>
</leafNode>
<leafNode name="prefix-list">
<properties>
<help>IP prefix-list to match</help>
<completionHelp>
<path>policy prefix-list</path>
</completionHelp>
</properties>
</leafNode>
<leafNode name="type">
<properties>
<help>Match type</help>
<completionHelp>
<list>blackhole</list>
</completionHelp>
<valueHelp>
<format>blackhole</format>
<description>Blackhole</description>
</valueHelp>
<constraint>
<regex>(blackhole)</regex>
</constraint>
</properties>
</leafNode>
</children>
</node>
<node name="route-source">
<properties>
<help>Match advertising source address of route</help>
</properties>
<children>
<leafNode name="access-list">
<properties>
<help>IP access-list to match</help>
<valueHelp>
<format>u32:1-99</format>
<description>IP standard access list</description>
</valueHelp>
<valueHelp>
<format>u32:100-199</format>
<description>IP extended access list</description>
</valueHelp>
<valueHelp>
<format>u32:1300-1999</format>
<description>IP standard access list (expanded range)</description>
</valueHelp>
<valueHelp>
<format>u32:2000-2699</format>
<description>IP extended access list (expanded range)</description>
</valueHelp>
</properties>
</leafNode>
<leafNode name="prefix-list">
<properties>
<help>IP prefix-list to match</help>
<completionHelp>
<path>policy prefix-list</path>
</completionHelp>
</properties>
</leafNode>
</children>
</node>
</children>
</node>
<node name="ipv6">
<properties>
<help>IPv6 prefix parameters to match</help>
</properties>
<children>
<node name="address">
<properties>
<help>IPv6 address of route to match</help>
</properties>
<children>
<leafNode name="access-list">
<properties>
<help>IPv6 access-list to match</help>
<valueHelp>
<format>txt</format>
<description>IPV6 access list name</description>
</valueHelp>
<completionHelp>
<path>policy access-list6</path>
</completionHelp>
</properties>
</leafNode>
<leafNode name="prefix-list">
<properties>
<help>IPv6 prefix-list to match</help>
<completionHelp>
<path>policy prefix-list6</path>
</completionHelp>
</properties>
</leafNode>
<leafNode name="prefix-len">
<properties>
<help>IPv6 prefix-length to match (can be used for kernel routes only)</help>
<valueHelp>
<format>u32:0-128</format>
<description>Prefix length</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 0-128"/>
</constraint>
</properties>
</leafNode>
</children>
</node>
<!-- T3976 but it overwrite node nexthop
<leafNode name="nexthop">
<properties>
<help>IPv6 next-hop of route to match</help>
<valueHelp>
<format>ipv6</format>
<description>Nexthop IPv6 address</description>
</valueHelp>
<constraint>
<validator name="ipv6-address"/>
</constraint>
</properties>
</leafNode>
</children>
</node> -->
<node name="nexthop">
<properties>
<help>IPv6 next-hop of route to match</help>
</properties>
<children>
<leafNode name="address">
<properties>
<help>IPv6 address of next-hop</help>
<valueHelp>
<format>ipv6</format>
<description>Nexthop IPv6 address</description>
</valueHelp>
<constraint>
<validator name="ipv6-address"/>
</constraint>
</properties>
</leafNode>
<leafNode name="access-list">
<properties>
<help>IPv6 access-list to match</help>
<valueHelp>
<format>txt</format>
<description>IPV6 access list name</description>
</valueHelp>
<completionHelp>
<path>policy access-list6</path>
</completionHelp>
</properties>
</leafNode>
<leafNode name="prefix-list">
<properties>
<help>IPv6 prefix-list to match</help>
<completionHelp>
<path>policy prefix-list6</path>
</completionHelp>
</properties>
</leafNode>
<leafNode name="type">
<properties>
<help>Match type</help>
<completionHelp>
<list>blackhole</list>
</completionHelp>
<valueHelp>
<format>blackhole</format>
<description>Blackhole</description>
</valueHelp>
<constraint>
<regex>(blackhole)</regex>
</constraint>
</properties>
</leafNode>
</children>
</node>
</children>
</node>
<node name="large-community">
<properties>
<help>Match BGP large communities</help>
</properties>
<children>
<leafNode name="large-community-list">
<properties>
<help>BGP large-community-list to match</help>
<completionHelp>
<path>policy large-community-list</path>
</completionHelp>
</properties>
</leafNode>
</children>
</node>
<leafNode name="local-preference">
<properties>
<help>Local Preference</help>
<valueHelp>
<format>u32:0-4294967295</format>
<description>Local Preference</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 0-4294967295"/>
</constraint>
</properties>
</leafNode>
<leafNode name="metric">
<properties>
<help>Metric of route to match</help>
<valueHelp>
<format>u32:1-65535</format>
<description>Route metric</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 1-65535"/>
</constraint>
</properties>
</leafNode>
<leafNode name="origin">
<properties>
<help>BGP origin code to match</help>
<completionHelp>
<list>egp igp incomplete</list>
</completionHelp>
<valueHelp>
<format>egp</format>
<description>Exterior gateway protocol origin</description>
</valueHelp>
<valueHelp>
<format>igp</format>
<description>Interior gateway protocol origin</description>
</valueHelp>
<valueHelp>
<format>incomplete</format>
<description>Incomplete origin</description>
</valueHelp>
<constraint>
<regex>(egp|igp|incomplete)</regex>
</constraint>
</properties>
</leafNode>
<leafNode name="peer">
<properties>
<help>Peer address to match</help>
<valueHelp>
<format>ipv4</format>
<description>Peer IP address</description>
</valueHelp>
<valueHelp>
<format>ipv6</format>
<description>Peer IPv6 address</description>
</valueHelp>
<constraint>
<validator name="ip-address"/>
</constraint>
</properties>
</leafNode>
<leafNode name="protocol">
<properties>
<help>Match protocol via which the route was learnt</help>
<completionHelp>
<list>babel bgp connected isis kernel ospf ospfv3 rip ripng static table vnc</list>
</completionHelp>
<valueHelp>
<format>babel</format>
<description>Babel routing protocol (Babel)</description>
</valueHelp>
<valueHelp>
<format>bgp</format>
<description>Border Gateway Protocol (BGP)</description>
</valueHelp>
<valueHelp>
<format>connected</format>
<description>Connected routes (directly attached subnet or host)</description>
</valueHelp>
<valueHelp>
<format>isis</format>
<description>Intermediate System to Intermediate System (IS-IS)</description>
</valueHelp>
<valueHelp>
<format>kernel</format>
<description>Kernel routes</description>
</valueHelp>
<valueHelp>
<format>ospf</format>
<description>Open Shortest Path First (OSPFv2)</description>
</valueHelp>
<valueHelp>
<format>ospfv3</format>
<description>Open Shortest Path First (IPv6) (OSPFv3)</description>
</valueHelp>
<valueHelp>
<format>rip</format>
<description>Routing Information Protocol (RIP)</description>
</valueHelp>
<valueHelp>
<format>ripng</format>
<description>Routing Information Protocol next-generation (IPv6) (RIPng)</description>
</valueHelp>
<valueHelp>
<format>static</format>
<description>Statically configured routes</description>
</valueHelp>
<valueHelp>
<format>table</format>
<description>Non-main Kernel Routing Table</description>
</valueHelp>
<valueHelp>
<format>vnc</format>
<description>Virtual Network Control (VNC)</description>
</valueHelp>
<constraint>
<regex>(babel|bgp|connected|isis|kernel|ospf|ospfv3|rip|ripng|static|table|vnc)</regex>
</constraint>
</properties>
</leafNode>
<leafNode name="rpki">
<properties>
<help>Match RPKI validation result</help>
<completionHelp>
<list>invalid notfound valid</list>
</completionHelp>
<valueHelp>
<format>invalid</format>
<description>Match invalid entries</description>
</valueHelp>
<valueHelp>
<format>notfound</format>
<description>Match notfound entries</description>
</valueHelp>
<valueHelp>
<format>valid</format>
<description>Match valid entries</description>
</valueHelp>
<constraint>
<regex>(invalid|notfound|valid)</regex>
</constraint>
</properties>
</leafNode>
#include <include/policy/tag.xml.i>
</children>
</node>
<node name="on-match">
<properties>
<help>Exit policy on matches</help>
</properties>
<children>
<leafNode name="goto">
<properties>
<help>Rule number to goto on match</help>
<valueHelp>
<format>u32:1-65535</format>
<description>Rule number</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 1-65535"/>
</constraint>
</properties>
</leafNode>
<leafNode name="next">
<properties>
<help>Next sequence number to goto on match</help>
<valueless/>
</properties>
</leafNode>
</children>
</node>
<node name="set">
<properties>
<help>Route parameters</help>
</properties>
<children>
<node name="aggregator">
<properties>
<help>BGP aggregator attribute</help>
</properties>
<children>
<leafNode name="as">
<properties>
<help>AS number of an aggregation</help>
<valueHelp>
<format>u32:1-4294967295</format>
<description>Rule number</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 1-4294967295"/>
</constraint>
</properties>
</leafNode>
<leafNode name="ip">
<properties>
<help>IP address of an aggregation</help>
<valueHelp>
<format>ipv4</format>
<description>IP address</description>
</valueHelp>
<constraint>
<validator name="ipv4-address"/>
</constraint>
</properties>
</leafNode>
</children>
</node>
<node name="as-path">
<properties>
<help>Transform BGP AS_PATH attribute</help>
</properties>
<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>
<valueless/>
</properties>
</leafNode>
<node name="community">
<properties>
<help>BGP community attribute</help>
</properties>
<children>
<leafNode name="add">
<properties>
<help>Add communities to a prefix</help>
#include <include/policy/community-value-list.xml.i>
</properties>
</leafNode>
<leafNode name="replace">
<properties>
<help>Set communities for a prefix</help>
#include <include/policy/community-value-list.xml.i>
</properties>
</leafNode>
#include <include/policy/community-clear.xml.i>
<leafNode name="delete">
<properties>
<help>Remove communities defined in a list from a prefix</help>
<completionHelp>
<path>policy community-list</path>
</completionHelp>
<valueHelp>
<description>Community-list</description>
<format>txt</format>
</valueHelp>
</properties>
</leafNode>
</children>
</node>
<node name="large-community">
<properties>
<help>BGP large community attribute</help>
</properties>
<children>
<leafNode name="add">
<properties>
<help>Add large communities to a prefix ;</help>
#include <include/policy/large-community-value-list.xml.i>
</properties>
</leafNode>
<leafNode name="replace">
<properties>
<help>Set large communities for a prefix</help>
#include <include/policy/large-community-value-list.xml.i>
</properties>
</leafNode>
#include <include/policy/community-clear.xml.i>
<leafNode name="delete">
<properties>
<help>Remove communities defined in a list from a prefix</help>
<completionHelp>
<path>policy large-community-list</path>
</completionHelp>
<valueHelp>
<description>Community-list</description>
<format>txt</format>
</valueHelp>
</properties>
</leafNode>
</children>
</node>
<node name="extcommunity">
<properties>
<help>BGP extended community attribute</help>
</properties>
<children>
<leafNode name="bandwidth">
<properties>
<help>Bandwidth value in Mbps</help>
<completionHelp>
<list>cumulative num-multipaths</list>
</completionHelp>
<valueHelp>
<format>u32:1-25600</format>
<description>Bandwidth value in Mbps</description>
</valueHelp>
<valueHelp>
<format>cumulative</format>
<description>Cumulative bandwidth of all multipaths (outbound-only)</description>
</valueHelp>
<valueHelp>
<format>num-multipaths</format>
<description>Internally computed bandwidth based on number of multipaths (outbound-only)</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 1-25600"/>
<regex>(cumulative|num-multipaths)</regex>
</constraint>
</properties>
</leafNode>
<leafNode name="bandwidth-non-transitive">
<properties>
<help>The link bandwidth extended community is encoded as non-transitive</help>
<valueless/>
</properties>
</leafNode>
<leafNode name="rt">
<properties>
<help>Set route target value</help>
#include <include/policy/extended-community-value-list.xml.i>
</properties>
</leafNode>
<leafNode name="soo">
<properties>
<help>Set Site of Origin value</help>
#include <include/policy/extended-community-value-list.xml.i>
</properties>
</leafNode>
#include <include/policy/community-clear.xml.i>
</children>
</node>
<leafNode name="distance">
<properties>
<help>Locally significant administrative distance</help>
<valueHelp>
<format>u32:0-255</format>
<description>Distance value</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 0-255"/>
</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>
<leafNode name="ip-next-hop">
<properties>
<help>Nexthop IP address</help>
<completionHelp>
<script>${vyos_completion_dir}/list_local_ips.sh --ipv4</script>
<list>unchanged peer-address</list>
</completionHelp>
<valueHelp>
<format>ipv4</format>
<description>IP address</description>
</valueHelp>
<valueHelp>
<format>unchanged</format>
<description>Set the BGP nexthop address as unchanged</description>
</valueHelp>
<valueHelp>
<format>peer-address</format>
<description>Set the BGP nexthop address to the address of the peer</description>
</valueHelp>
<constraint>
<validator name="ipv4-address"/>
<regex>(unchanged|peer-address)</regex>
</constraint>
</properties>
</leafNode>
<node name="ipv6-next-hop">
<properties>
<help>Nexthop IPv6 address</help>
</properties>
<children>
<leafNode name="global">
<properties>
<help>Nexthop IPv6 global address</help>
<completionHelp>
<script>${vyos_completion_dir}/list_local_ips.sh --ipv6</script>
</completionHelp>
<valueHelp>
<format>ipv6</format>
<description>IPv6 address and prefix length</description>
</valueHelp>
<constraint>
<validator name="ipv6-address"/>
</constraint>
</properties>
</leafNode>
<leafNode name="local">
<properties>
<help>Nexthop IPv6 local address</help>
<completionHelp>
<script>${vyos_completion_dir}/list_local_ips.sh --ipv6</script>
</completionHelp>
<valueHelp>
<format>ipv6</format>
<description>IPv6 address and prefix length</description>
</valueHelp>
<constraint>
<validator name="ipv6-address"/>
</constraint>
</properties>
</leafNode>
<leafNode name="peer-address">
<properties>
<help>Use peer address (for BGP only)</help>
<valueless/>
</properties>
</leafNode>
<leafNode name="prefer-global">
<properties>
<help>Prefer global address as the nexthop</help>
<valueless/>
</properties>
</leafNode>
</children>
</node>
<node name="l3vpn-nexthop">
<properties>
<help>Next hop Information</help>
</properties>
<children>
<node name="encapsulation">
<properties>
<help>Encapsulation options (for BGP only)</help>
</properties>
<children>
<leafNode name="gre">
<properties>
<help>Accept L3VPN traffic over GRE encapsulation</help>
<valueless/>
</properties>
</leafNode>
</children>
</node>
</children>
</node>
<leafNode name="local-preference">
<properties>
<help>BGP local preference attribute</help>
<valueHelp>
<format>u32:0-4294967295</format>
<description>Local preference value</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 0-4294967295"/>
</constraint>
</properties>
</leafNode>
<leafNode name="metric">
<properties>
<help>Destination routing protocol metric</help>
<valueHelp>
<format><+/-metric></format>
<description>Add or subtract metric</description>
</valueHelp>
<valueHelp>
<format>u32:0-4294967295</format>
<description>Metric value</description>
</valueHelp>
<valueHelp>
<format><+/-rtt></format>
<description>Add or subtract round trip time</description>
</valueHelp>
<valueHelp>
<format><rtt></format>
<description>Round trip time</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--relative --"/>
<validator name="numeric" argument="--range 0-4294967295"/>
<regex>^[+|-]?rtt$</regex>
</constraint>
</properties>
</leafNode>
<leafNode name="metric-type">
<properties>
<help>Open Shortest Path First (OSPF) external metric-type</help>
<completionHelp>
<list>type-1 type-2</list>
</completionHelp>
<valueHelp>
<format>type-1</format>
<description>OSPF external type 1 metric</description>
</valueHelp>
<valueHelp>
<format>type-2</format>
<description>OSPF external type 2 metric</description>
</valueHelp>
<constraint>
<regex>(type-1|type-2)</regex>
</constraint>
</properties>
</leafNode>
<leafNode name="origin">
<properties>
<help>Border Gateway Protocl (BGP) origin code</help>
<completionHelp>
<list>igp egp incomplete</list>
</completionHelp>
<valueHelp>
<format>igp</format>
<description>Interior gateway protocol origin</description>
</valueHelp>
<valueHelp>
<format>egp</format>
<description>Exterior gateway protocol origin</description>
</valueHelp>
<valueHelp>
<format>incomplete</format>
<description>Incomplete origin</description>
</valueHelp>
<constraint>
<regex>(igp|egp|incomplete)</regex>
</constraint>
</properties>
</leafNode>
<leafNode name="originator-id">
<properties>
<help>BGP originator ID attribute</help>
<valueHelp>
<format>ipv4</format>
<description>Orignator IP address</description>
</valueHelp>
<constraint>
<validator name="ipv4-address"/>
</constraint>
</properties>
</leafNode>
<leafNode name="src">
<properties>
<help>Source address for route</help>
<completionHelp>
<script>${vyos_completion_dir}/list_local_ips.sh --both</script>
</completionHelp>
<valueHelp>
<format>ipv4</format>
<description>IPv4 address</description>
</valueHelp>
<valueHelp>
<format>ipv6</format>
<description>IPv6 address</description>
</valueHelp>
<constraint>
<validator name="ip-address"/>
</constraint>
</properties>
</leafNode>
<leafNode name="table">
<properties>
<help>Set prefixes to table</help>
<valueHelp>
<format>u32:1-200</format>
<description>Table value</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 1-200"/>
</constraint>
</properties>
</leafNode>
#include <include/policy/tag.xml.i>
<leafNode name="weight">
<properties>
<help>BGP weight attribute</help>
<valueHelp>
<format>u32:0-4294967295</format>
<description>BGP weight</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 0-4294967295"/>
</constraint>
</properties>
</leafNode>
</children>
</node>
</children>
</tagNode>
</children>
</tagNode>
</children>
</node>
</interfaceDefinition>
diff --git a/interface-definitions/service_dhcp-server.xml.in b/interface-definitions/service_dhcp-server.xml.in
index e35d845f1..8e13f9372 100644
--- a/interface-definitions/service_dhcp-server.xml.in
+++ b/interface-definitions/service_dhcp-server.xml.in
@@ -1,456 +1,456 @@
<?xml version="1.0"?>
<!-- DHCP server configuration -->
<interfaceDefinition>
<node name="service">
<children>
<node name="dhcp-server" owner="${vyos_conf_scripts_dir}/service_dhcp-server.py">
<properties>
<help>Dynamic Host Configuration Protocol (DHCP) for DHCP server</help>
<priority>911</priority>
</properties>
<children>
#include <include/generic-disable-node.xml.i>
<leafNode name="dynamic-dns-update">
<properties>
<help>Dynamically update Domain Name System (RFC4702)</help>
<valueless/>
</properties>
</leafNode>
<node name="failover">
<properties>
<help>DHCP failover configuration</help>
</properties>
<children>
#include <include/source-address-ipv4.xml.i>
<leafNode name="remote">
<properties>
<help>IPv4 remote address used for connectio</help>
<valueHelp>
<format>ipv4</format>
<description>IPv4 address of failover peer</description>
</valueHelp>
<constraint>
<validator name="ipv4-address"/>
</constraint>
</properties>
</leafNode>
<leafNode name="name">
<properties>
<help>Peer name used to identify connection</help>
<constraint>
- <regex>[-_a-zA-Z0-9.]+</regex>
+ #include <include/constraint/alpha-numeric-hyphen-underscore-dot.xml.i>
</constraint>
<constraintErrorMessage>Invalid failover peer name. May only contain letters, numbers and .-_</constraintErrorMessage>
</properties>
</leafNode>
<leafNode name="status">
<properties>
<help>Failover hierarchy</help>
<completionHelp>
<list>primary secondary</list>
</completionHelp>
<valueHelp>
<format>primary</format>
<description>Configure this server to be the primary node</description>
</valueHelp>
<valueHelp>
<format>secondary</format>
<description>Configure this server to be the secondary node</description>
</valueHelp>
<constraint>
<regex>(primary|secondary)</regex>
</constraint>
<constraintErrorMessage>Invalid DHCP failover peer status</constraintErrorMessage>
</properties>
</leafNode>
#include <include/pki/ca-certificate.xml.i>
#include <include/pki/certificate.xml.i>
</children>
</node>
<leafNode name="hostfile-update">
<properties>
<help>Updating /etc/hosts file (per client lease)</help>
<valueless/>
</properties>
</leafNode>
#include <include/listen-address-ipv4.xml.i>
<tagNode name="shared-network-name">
<properties>
<help>Name of DHCP shared network</help>
<constraint>
- <regex>[-_a-zA-Z0-9.]+</regex>
+ #include <include/constraint/alpha-numeric-hyphen-underscore-dot.xml.i>
</constraint>
<constraintErrorMessage>Invalid shared network name. May only contain letters, numbers and .-_</constraintErrorMessage>
</properties>
<children>
<leafNode name="authoritative">
<properties>
<help>Option to make DHCP server authoritative for this physical network</help>
<valueless/>
</properties>
</leafNode>
#include <include/dhcp/domain-name.xml.i>
#include <include/dhcp/domain-search.xml.i>
#include <include/dhcp/ntp-server.xml.i>
#include <include/generic-description.xml.i>
#include <include/generic-disable-node.xml.i>
#include <include/name-server-ipv4.xml.i>
<tagNode name="subnet">
<properties>
<help>DHCP subnet for shared network</help>
<valueHelp>
<format>ipv4net</format>
<description>IPv4 address and prefix length</description>
</valueHelp>
<constraint>
<validator name="ipv4-prefix"/>
</constraint>
<constraintErrorMessage>Invalid IPv4 subnet definition</constraintErrorMessage>
</properties>
<children>
<leafNode name="bootfile-name">
<properties>
<help>Bootstrap file name</help>
<constraint>
<regex>[[:ascii:]]{1,253}</regex>
</constraint>
</properties>
</leafNode>
<leafNode name="bootfile-server">
<properties>
<help>Server from which the initial boot file is to be loaded</help>
<valueHelp>
<format>ipv4</format>
<description>Bootfile server IPv4 address</description>
</valueHelp>
<valueHelp>
<format>hostname</format>
<description>Bootfile server FQDN</description>
</valueHelp>
<constraint>
<validator name="ipv4-address"/>
<validator name="fqdn"/>
</constraint>
</properties>
</leafNode>
<leafNode name="bootfile-size">
<properties>
<help>Bootstrap file size</help>
<valueHelp>
<format>u32:1-16</format>
<description>Bootstrap file size in 512 byte blocks</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 1-16"/>
</constraint>
</properties>
</leafNode>
#include <include/dhcp/captive-portal.xml.i>
<leafNode name="client-prefix-length">
<properties>
<help>Specifies the clients subnet mask as per RFC 950. If unset, subnet declaration is used.</help>
<valueHelp>
<format>u32:0-32</format>
<description>DHCP client prefix length must be 0 to 32</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 0-32"/>
</constraint>
<constraintErrorMessage>DHCP client prefix length must be 0 to 32</constraintErrorMessage>
</properties>
</leafNode>
<leafNode name="default-router">
<properties>
<help>IP address of default router</help>
<valueHelp>
<format>ipv4</format>
<description>Default router IPv4 address</description>
</valueHelp>
<constraint>
<validator name="ipv4-address"/>
</constraint>
</properties>
</leafNode>
#include <include/dhcp/domain-name.xml.i>
#include <include/dhcp/domain-search.xml.i>
#include <include/generic-description.xml.i>
#include <include/name-server-ipv4.xml.i>
<leafNode name="exclude">
<properties>
<help>IP address to exclude from DHCP lease range</help>
<valueHelp>
<format>ipv4</format>
<description>IPv4 address to exclude from lease range</description>
</valueHelp>
<constraint>
<validator name="ipv4-address"/>
</constraint>
<multi/>
</properties>
</leafNode>
<leafNode name="ip-forwarding">
<properties>
<help>Enable IP forwarding on client</help>
<valueless/>
</properties>
</leafNode>
<leafNode name="lease">
<properties>
<help>Lease timeout in seconds</help>
<valueHelp>
<format>u32</format>
<description>DHCP lease time in seconds</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 0-4294967295"/>
</constraint>
<constraintErrorMessage>DHCP lease time must be between 0 and 4294967295 (49 days)</constraintErrorMessage>
</properties>
<defaultValue>86400</defaultValue>
</leafNode>
#include <include/dhcp/ntp-server.xml.i>
<leafNode name="pop-server">
<properties>
<help>IP address of POP3 server</help>
<valueHelp>
<format>ipv4</format>
<description>POP3 server IPv4 address</description>
</valueHelp>
<constraint>
<validator name="ipv4-address"/>
</constraint>
<multi/>
</properties>
</leafNode>
<leafNode name="server-identifier">
<properties>
<help>Address for DHCP server identifier</help>
<valueHelp>
<format>ipv4</format>
<description>DHCP server identifier IPv4 address</description>
</valueHelp>
<constraint>
<validator name="ipv4-address"/>
</constraint>
</properties>
</leafNode>
<leafNode name="smtp-server">
<properties>
<help>IP address of SMTP server</help>
<valueHelp>
<format>ipv4</format>
<description>SMTP server IPv4 address</description>
</valueHelp>
<constraint>
<validator name="ipv4-address"/>
</constraint>
<multi/>
</properties>
</leafNode>
<tagNode name="range">
<properties>
<help>DHCP lease range</help>
<constraint>
- <regex>[-_a-zA-Z0-9.]+</regex>
+ #include <include/constraint/alpha-numeric-hyphen-underscore-dot.xml.i>
</constraint>
<constraintErrorMessage>Invalid range name, may only be alphanumeric, dot and hyphen</constraintErrorMessage>
</properties>
<children>
<leafNode name="start">
<properties>
<help>First IP address for DHCP lease range</help>
<valueHelp>
<format>ipv4</format>
<description>IPv4 start address of pool</description>
</valueHelp>
<constraint>
<validator name="ipv4-address"/>
</constraint>
</properties>
</leafNode>
<leafNode name="stop">
<properties>
<help>Last IP address for DHCP lease range</help>
<valueHelp>
<format>ipv4</format>
<description>IPv4 end address of pool</description>
</valueHelp>
<constraint>
<validator name="ipv4-address"/>
</constraint>
</properties>
</leafNode>
</children>
</tagNode>
<tagNode name="static-mapping">
<properties>
<help>Hostname for static mapping reservation</help>
<constraint>
<validator name="fqdn"/>
</constraint>
<constraintErrorMessage>Invalid static mapping hostname</constraintErrorMessage>
</properties>
<children>
#include <include/generic-disable-node.xml.i>
<leafNode name="ip-address">
<properties>
<help>Fixed IP address of static mapping</help>
<valueHelp>
<format>ipv4</format>
<description>IPv4 address used in static mapping</description>
</valueHelp>
<constraint>
<validator name="ipv4-address"/>
</constraint>
</properties>
</leafNode>
#include <include/interface/mac.xml.i>
#include <include/interface/duid.xml.i>
</children>
</tagNode>
<tagNode name="static-route">
<properties>
<help>Classless static route destination subnet</help>
<valueHelp>
<format>ipv4net</format>
<description>IPv4 address and prefix length</description>
</valueHelp>
<constraint>
<validator name="ipv4-prefix"/>
</constraint>
</properties>
<children>
<leafNode name="next-hop">
<properties>
<help>IP address of router to be used to reach the destination subnet</help>
<valueHelp>
<format>ipv4</format>
<description>IPv4 address of router</description>
</valueHelp>
<constraint>
<validator name="ip-address"/>
</constraint>
</properties>
</leafNode>
</children>
</tagNode >
<leafNode name="ipv6-only-preferred">
<properties>
<help>Disable IPv4 on IPv6 only hosts (RFC 8925)</help>
<valueHelp>
<format>u32</format>
<description>Seconds</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 0-4294967295"/>
</constraint>
<constraintErrorMessage>Seconds must be between 0 and 4294967295 (49 days)</constraintErrorMessage>
</properties>
</leafNode>
<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">
<properties>
<help>Client subnet offset in seconds from Coordinated Universal Time (UTC)</help>
<valueHelp>
<format>[-]N</format>
<description>Time offset (number, may be negative)</description>
</valueHelp>
<constraint>
<regex>-?[0-9]+</regex>
</constraint>
<constraintErrorMessage>Invalid time offset value</constraintErrorMessage>
</properties>
</leafNode>
<leafNode name="time-server">
<properties>
<help>IP address of time server</help>
<valueHelp>
<format>ipv4</format>
<description>Time server IPv4 address</description>
</valueHelp>
<constraint>
<validator name="ipv4-address"/>
</constraint>
<multi/>
</properties>
</leafNode>
<leafNode name="time-zone">
<properties>
<help>Time zone to send to clients. Uses RFC4833 options 100 and 101</help>
<completionHelp>
<script>timedatectl list-timezones</script>
</completionHelp>
<constraint>
<validator name="timezone" argument="--validate"/>
</constraint>
</properties>
</leafNode>
<node name="vendor-option">
<properties>
<help>Vendor Specific Options</help>
</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>
<valueHelp>
<format>ipv4</format>
<description>WINS server IPv4 address</description>
</valueHelp>
<constraint>
<validator name="ipv4-address"/>
</constraint>
<multi/>
</properties>
</leafNode>
<leafNode name="wpad-url">
<properties>
<help>Web Proxy Autodiscovery (WPAD) URL</help>
</properties>
</leafNode>
</children>
</tagNode>
</children>
</tagNode>
</children>
</node>
</children>
</node>
</interfaceDefinition>
diff --git a/interface-definitions/service_dhcpv6-server.xml.in b/interface-definitions/service_dhcpv6-server.xml.in
index 102c164a6..6f7f3c1da 100644
--- a/interface-definitions/service_dhcpv6-server.xml.in
+++ b/interface-definitions/service_dhcpv6-server.xml.in
@@ -1,375 +1,375 @@
<?xml version="1.0"?>
<interfaceDefinition>
<node name="service">
<children>
<node name="dhcpv6-server" owner="${vyos_conf_scripts_dir}/service_dhcpv6-server.py">
<properties>
<help>DHCP for IPv6 (DHCPv6) server</help>
<priority>900</priority>
</properties>
<children>
#include <include/generic-disable-node.xml.i>
<node name="global-parameters">
<properties>
<help>Additional global parameters for DHCPv6 server</help>
</properties>
<children>
#include <include/name-server-ipv6.xml.i>
</children>
</node>
<leafNode name="preference">
<properties>
<help>Preference of this DHCPv6 server compared with others</help>
<valueHelp>
<format>u32:0-255</format>
<description>DHCPv6 server preference (0-255)</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 0-255"/>
</constraint>
<constraintErrorMessage>Preference must be between 0 and 255</constraintErrorMessage>
</properties>
</leafNode>
<tagNode name="shared-network-name">
<properties>
<help>DHCPv6 shared network name</help>
<constraint>
- <regex>[-_a-zA-Z0-9.]+</regex>
+ #include <include/constraint/alpha-numeric-hyphen-underscore-dot.xml.i>
</constraint>
<constraintErrorMessage>Invalid DHCPv6 shared network name. May only contain letters, numbers and .-_</constraintErrorMessage>
</properties>
<children>
#include <include/generic-disable-node.xml.i>
#include <include/generic-description.xml.i>
<leafNode name="interface">
<properties>
<help>Optional interface for this shared network to accept requests from</help>
<completionHelp>
<script>${vyos_completion_dir}/list_interfaces</script>
</completionHelp>
<valueHelp>
<format>txt</format>
<description>Interface name</description>
</valueHelp>
<constraint>
#include <include/constraint/interface-name.xml.i>
</constraint>
</properties>
</leafNode>
<node name="common-options">
<properties>
<help>Common options to distribute to all clients, including stateless clients</help>
</properties>
<children>
<leafNode name="info-refresh-time">
<properties>
<help>Time (in seconds) that stateless clients should wait between refreshing the information they were given</help>
<valueHelp>
<format>u32:1-4294967295</format>
<description>DHCPv6 information refresh time</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 1-4294967295"/>
</constraint>
</properties>
</leafNode>
#include <include/dhcp/domain-search.xml.i>
#include <include/name-server-ipv6.xml.i>
</children>
</node>
<tagNode name="subnet">
<properties>
<help>IPv6 DHCP subnet for this shared network</help>
<valueHelp>
<format>ipv6net</format>
<description>IPv6 address and prefix length</description>
</valueHelp>
<constraint>
<validator name="ipv6-prefix"/>
</constraint>
</properties>
<children>
<node name="address-range">
<properties>
<help>Parameters setting ranges for assigning IPv6 addresses</help>
</properties>
<children>
<leafNode name="prefix">
<properties>
<help>IPv6 prefix defining range of addresses to assign</help>
<valueHelp>
<format>ipv6net</format>
<description>IPv6 address and prefix length</description>
</valueHelp>
<constraint>
<validator name="ipv6-prefix"/>
</constraint>
<multi/>
</properties>
</leafNode>
<tagNode name="start">
<properties>
<help>First in range of consecutive IPv6 addresses to assign</help>
<valueHelp>
<format>ipv6</format>
<description>IPv6 address</description>
</valueHelp>
<constraint>
<validator name="ipv6-address"/>
</constraint>
</properties>
<children>
<leafNode name="stop">
<properties>
<help>Last in range of consecutive IPv6 addresses</help>
<valueHelp>
<format>ipv6</format>
<description>IPv6 address</description>
</valueHelp>
<constraint>
<validator name="ipv6-address"/>
</constraint>
</properties>
</leafNode>
</children>
</tagNode>
</children>
</node>
#include <include/dhcp/captive-portal.xml.i>
#include <include/dhcp/domain-search.xml.i>
<node name="lease-time">
<properties>
<help>Parameters relating to the lease time</help>
</properties>
<children>
<leafNode name="default">
<properties>
<help>Default time (in seconds) that will be assigned to a lease</help>
<valueHelp>
<format>u32:1-4294967295</format>
<description>DHCPv6 valid lifetime</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 1-4294967295"/>
</constraint>
</properties>
</leafNode>
<leafNode name="maximum">
<properties>
<help>Maximum time (in seconds) that will be assigned to a lease</help>
<valueHelp>
<format>u32:1-4294967295</format>
<description>Maximum lease time in seconds</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 1-4294967295"/>
</constraint>
</properties>
</leafNode>
<leafNode name="minimum">
<properties>
<help>Minimum time (in seconds) that will be assigned to a lease</help>
<valueHelp>
<format>u32:1-4294967295</format>
<description>Minimum lease time in seconds</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 1-4294967295"/>
</constraint>
</properties>
</leafNode>
</children>
</node>
#include <include/name-server-ipv6.xml.i>
<leafNode name="nis-domain">
<properties>
<help>NIS domain name for client to use</help>
<constraint>
- <regex>[-_a-zA-Z0-9.]+</regex>
+ #include <include/constraint/alpha-numeric-hyphen-underscore-dot.xml.i>
</constraint>
<constraintErrorMessage>Invalid NIS domain name</constraintErrorMessage>
</properties>
</leafNode>
<leafNode name="nis-server">
<properties>
<help>IPv6 address of a NIS Server</help>
<valueHelp>
<format>ipv6</format>
<description>IPv6 address of NIS server</description>
</valueHelp>
<constraint>
<validator name="ipv6-address"/>
</constraint>
<multi/>
</properties>
</leafNode>
<leafNode name="nisplus-domain">
<properties>
<help>NIS+ domain name for client to use</help>
<constraint>
- <regex>[-_a-zA-Z0-9.]+</regex>
+ #include <include/constraint/alpha-numeric-hyphen-underscore-dot.xml.i>
</constraint>
<constraintErrorMessage>Invalid NIS+ domain name. May only contain letters, numbers and .-_</constraintErrorMessage>
</properties>
</leafNode>
<leafNode name="nisplus-server">
<properties>
<help>IPv6 address of a NIS+ Server</help>
<valueHelp>
<format>ipv6</format>
<description>IPv6 address of NIS+ server</description>
</valueHelp>
<constraint>
<validator name="ipv6-address"/>
</constraint>
<multi/>
</properties>
</leafNode>
<node name="prefix-delegation">
<properties>
<help>Parameters relating to IPv6 prefix delegation</help>
</properties>
<children>
<tagNode name="prefix">
<properties>
<help>IPv6 prefix to be used in prefix delegation</help>
<valueHelp>
<format>ipv6</format>
<description>IPv6 prefix used in prefix delegation</description>
</valueHelp>
<constraint>
<validator name="ipv6-address"/>
</constraint>
</properties>
<children>
<leafNode name="prefix-length">
<properties>
<help>Length in bits of prefix</help>
<valueHelp>
<format>u32:32-64</format>
<description>Prefix length (32-64)</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 32-64"/>
</constraint>
<constraintErrorMessage>Prefix length must be between 32 and 64</constraintErrorMessage>
</properties>
</leafNode>
<leafNode name="delegated-length">
<properties>
<help>Length in bits of prefixes to be delegated</help>
<valueHelp>
<format>u32:32-64</format>
<description>Delegated prefix length (32-64)</description>
</valueHelp>
<constraint>
<validator name="numeric" argument="--range 32-96"/>
</constraint>
<constraintErrorMessage>Delegated prefix length must be between 32 and 96</constraintErrorMessage>
</properties>
</leafNode>
</children>
</tagNode>
</children>
</node>
<leafNode name="sip-server">
<properties>
<help>IPv6 address of SIP server</help>
<valueHelp>
<format>ipv6</format>
<description>IPv6 address of SIP server</description>
</valueHelp>
<valueHelp>
<format>hostname</format>
<description>FQDN of SIP server</description>
</valueHelp>
<constraint>
<validator name="ipv6-address"/>
<validator name="fqdn"/>
</constraint>
<multi/>
</properties>
</leafNode>
<leafNode name="sntp-server">
<properties>
<help>IPv6 address of an SNTP server for client to use</help>
<constraint>
<validator name="ipv6-address"/>
</constraint>
<multi/>
</properties>
</leafNode>
<tagNode name="static-mapping">
<properties>
<help>Hostname for static mapping reservation</help>
<constraint>
<validator name="fqdn"/>
</constraint>
<constraintErrorMessage>Invalid static mapping hostname</constraintErrorMessage>
</properties>
<children>
#include <include/generic-disable-node.xml.i>
#include <include/interface/mac.xml.i>
#include <include/interface/duid.xml.i>
<leafNode name="ipv6-address">
<properties>
<help>Client IPv6 address for this static mapping</help>
<valueHelp>
<format>ipv6</format>
<description>IPv6 address for this static mapping</description>
</valueHelp>
<constraint>
<validator name="ipv6-address"/>
</constraint>
</properties>
</leafNode>
<leafNode name="ipv6-prefix">
<properties>
<help>Client IPv6 prefix for this static mapping</help>
<valueHelp>
<format>ipv6net</format>
<description>IPv6 prefix for this static mapping</description>
</valueHelp>
<constraint>
<validator name="ipv6-prefix"/>
</constraint>
</properties>
</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>
</tagNode>
</children>
</node>
</children>
</node>
</interfaceDefinition>
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Fri, Nov 6, 8:44 AM (1 d, 14 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
4653512
Default Alt Text
(132 KB)
Attached To
Mode
rVYOSONEX vyos-1x
Attached
Detach File
Event Timeline
Log In to Comment