diff --git a/interface-definitions/include/tunnel-parameters-ip.xml.i b/interface-definitions/include/tunnel-parameters-ip.xml.i index c304bd3ff..cbecb94a4 100644 --- a/interface-definitions/include/tunnel-parameters-ip.xml.i +++ b/interface-definitions/include/tunnel-parameters-ip.xml.i @@ -1,49 +1,42 @@ <!-- included start from tunnel-parameters-ip.xml.i --> -<node name="ip"> +<leafNode name="ttl"> <properties> - <help>IPv4 specific tunnel parameters</help> + <help>Time to live field</help> + <valueHelp> + <format>0-255</format> + <description>Time to live (default 255)</description> + </valueHelp> + <constraint> + <validator name="numeric" argument="--range 0-255"/> + </constraint> + <constraintErrorMessage>TTL must be between 0 and 255</constraintErrorMessage> </properties> - <children> - <leafNode name="ttl"> - <properties> - <help>Time to live field</help> - <valueHelp> - <format>0-255</format> - <description>Time to live (default 255)</description> - </valueHelp> - <constraint> - <validator name="numeric" argument="--range 0-255"/> - </constraint> - <constraintErrorMessage>TTL must be between 0 and 255</constraintErrorMessage> - </properties> - <defaultValue>255</defaultValue> - </leafNode> - <leafNode name="tos"> - <properties> - <help>Type of Service (TOS)</help> - <valueHelp> - <format>0-99</format> - <description>Type of Service (TOS)</description> - </valueHelp> - <constraint> - <validator name="numeric" argument="--range 0-99"/> - </constraint> - <constraintErrorMessage>TOS must be between 0 and 99</constraintErrorMessage> - </properties> - <defaultValue>inherit</defaultValue> - </leafNode> - <leafNode name="key"> - <properties> - <help>Tunnel key</help> - <valueHelp> - <format>u32</format> - <description>Tunnel key</description> - </valueHelp> - <constraint> - <validator name="numeric" argument="--range 0-4294967295"/> - </constraint> - <constraintErrorMessage>key must be between 0-4294967295</constraintErrorMessage> - </properties> - </leafNode> - </children> -</node> + <defaultValue>255</defaultValue> +</leafNode> +<leafNode name="tos"> + <properties> + <help>Type of Service (TOS)</help> + <valueHelp> + <format>0-99</format> + <description>Type of Service (TOS)</description> + </valueHelp> + <constraint> + <validator name="numeric" argument="--range 0-99"/> + </constraint> + <constraintErrorMessage>TOS must be between 0 and 99</constraintErrorMessage> + </properties> + <defaultValue>inherit</defaultValue> +</leafNode> +<leafNode name="key"> + <properties> + <help>Tunnel key</help> + <valueHelp> + <format>u32</format> + <description>Tunnel key</description> + </valueHelp> + <constraint> + <validator name="numeric" argument="--range 0-4294967295"/> + </constraint> + <constraintErrorMessage>key must be between 0-4294967295</constraintErrorMessage> + </properties> +</leafNode> diff --git a/interface-definitions/interfaces-erspan.xml.in b/interface-definitions/interfaces-erspan.xml.in index afc29a658..64b3af61a 100644 --- a/interface-definitions/interfaces-erspan.xml.in +++ b/interface-definitions/interfaces-erspan.xml.in @@ -1,104 +1,111 @@ <?xml version="1.0"?> <interfaceDefinition> <node name="interfaces"> <children> <tagNode name="erspan" owner="${vyos_conf_scripts_dir}/interfaces-erspan.py"> <properties> <help>Encapsulated Remote SPAN over GRE and IPv4/IPv6 Tunnel Interface</help> <priority>310</priority> <constraint> <regex>^ersp[0-9]+$</regex> </constraint> <constraintErrorMessage>ERSPAN tunnel interface must be named erspN</constraintErrorMessage> <valueHelp> <format>erspN</format> <description>ERSPAN Tunnel interface name</description> </valueHelp> </properties> <children> #include <include/interface-description.xml.i> #include <include/interface-disable.xml.i> #include <include/interface-disable-link-detect.xml.i> #include <include/interface-mtu-64-8024.xml.i> #include <include/tunnel-local-remote-ip.xml.i> <leafNode name="encapsulation"> <properties> <help>Encapsulation of this tunnel interface</help> <completionHelp> <list>erspan ip6erspan</list> </completionHelp> <valueHelp> <format>erspan</format> <description>Generic Routing Encapsulation</description> </valueHelp> <valueHelp> <format>ip6erspan</format> <description>Generic Routing Encapsulation bridge interface</description> </valueHelp> <constraint> <regex>^(erspan|ip6erspan)$</regex> </constraint> <constraintErrorMessage>Invalid encapsulation, must be one of: erspan, ip6erspan</constraintErrorMessage> </properties> </leafNode> <node name="parameters"> <properties> <help>ERSPAN Tunnel parameters</help> </properties> <children> - #include <include/tunnel-parameters-ip.xml.i> + <node name="ip"> + <properties> + <help>IPv4 specific tunnel parameters</help> + </properties> + <children> + #include <include/tunnel-parameters-ip.xml.i> + </children> + </node> <leafNode name="version"> <properties> <help>ERSPAN version number setting(default:1)</help> <constraint> <validator name="numeric" argument="--range 1-2"/> </constraint> <constraintErrorMessage>The version number of ERSPAN must be 1 or 2</constraintErrorMessage> </properties> <defaultValue>1</defaultValue> </leafNode> <leafNode name="direction"> <properties> <help>specifies the ERSPAN mirrored traffic's direction</help> <completionHelp> <list>ingress egress</list> </completionHelp> <valueHelp> <format>ingress</format> <description>Mirror ingress direction</description> </valueHelp> <valueHelp> <format>egress</format> <description>Mirror egress direction</description> </valueHelp> <constraint> <regex>^(ingress|egress)$</regex> </constraint> <constraintErrorMessage>The mirror direction of ERSPAN must be ingress or egress</constraintErrorMessage> </properties> </leafNode> <leafNode name="hwid"> <properties> <help>an unique identifier of an ERSPAN v2 engine within a system</help> <constraint> <validator name="numeric" argument="--range 1-1048575"/> </constraint> <constraintErrorMessage>ERSPAN hwid must be a number(range:0-1048575)</constraintErrorMessage> </properties> </leafNode> <leafNode name="idx"> <properties> <help>specifies the ERSPAN v1 index field</help> <constraint> <validator name="numeric" argument="--range 0-63"/> </constraint> <constraintErrorMessage>ERSPAN idx must be a number(range:0-63)</constraintErrorMessage> </properties> </leafNode> </children> </node> </children> </tagNode> </children> </node> </interfaceDefinition> diff --git a/interface-definitions/interfaces-tunnel.xml.in b/interface-definitions/interfaces-tunnel.xml.in index 279c05cca..45573a826 100644 --- a/interface-definitions/interfaces-tunnel.xml.in +++ b/interface-definitions/interfaces-tunnel.xml.in @@ -1,213 +1,226 @@ <?xml version="1.0"?> <interfaceDefinition> <node name="interfaces"> <children> <tagNode name="tunnel" owner="${vyos_conf_scripts_dir}/interfaces-tunnel.py"> <properties> <help>Tunnel interface</help> <priority>380</priority> <constraint> <regex>^tun[0-9]+$</regex> </constraint> <constraintErrorMessage>tunnel interface must be named tunN</constraintErrorMessage> <valueHelp> <format>tunN</format> <description>Tunnel interface name</description> </valueHelp> </properties> <children> #include <include/interface-description.xml.i> #include <include/address-ipv4-ipv6.xml.i> #include <include/interface-disable.xml.i> #include <include/interface-disable-link-detect.xml.i> #include <include/interface-vrf.xml.i> #include <include/interface-mtu-64-8024.xml.i> <leafNode name="mtu"> <defaultValue>1476</defaultValue> </leafNode> #include <include/interface-ipv4-options.xml.i> #include <include/interface-ipv6-options.xml.i> #include <include/tunnel-local-remote-ip.xml.i> <leafNode name="source-interface"> <properties> <help>Physical Interface used for underlaying traffic</help> <completionHelp> <script>${vyos_completion_dir}/list_interfaces.py</script> </completionHelp> </properties> </leafNode> <leafNode name="6rd-prefix"> <properties> <help>6rd network prefix</help> <valueHelp> <format>ipv6</format> <description>IPv6 address and prefix length</description> </valueHelp> <constraint> <validator name="ipv6-prefix"/> </constraint> </properties> </leafNode> <leafNode name="6rd-relay-prefix"> <properties> <help>6rd relay prefix</help> <valueHelp> <format>ipv4net</format> <description>IPv4 prefix of interface for 6rd</description> </valueHelp> <constraint> <validator name="ipv4-prefix"/> </constraint> </properties> </leafNode> <leafNode name="dhcp-interface"> <properties> <help>dhcp interface</help> <valueHelp> <format>interface</format> <description>DHCP interface that supplies the local IP address for this tunnel</description> </valueHelp> <completionHelp> <script>${vyos_completion_dir}/list_interfaces.py</script> </completionHelp> <constraint> <regex>^(en|eth|br|bond|gnv|vxlan|wg|tun)[0-9]+$</regex> </constraint> </properties> </leafNode> <leafNode name="encapsulation"> <properties> <help>Encapsulation of this tunnel interface</help> <completionHelp> <list>gre gre-bridge ip6gre ip6ip6 ipip ipip6 sit</list> </completionHelp> <valueHelp> <format>gre</format> <description>Generic Routing Encapsulation</description> </valueHelp> <valueHelp> <format>gre-bridge</format> <description>Generic Routing Encapsulation bridge interface</description> </valueHelp> <valueHelp> <format>ip6gre</format> <description>GRE over IPv6 network</description> </valueHelp> <valueHelp> <format>ip6ip6</format> <description>IP6 in IP6 encapsulation</description> </valueHelp> <valueHelp> <format>ipip</format> <description>IP in IP encapsulation</description> </valueHelp> <valueHelp> <format>ipip6</format> <description>IP in IP6 encapsulation</description> </valueHelp> <valueHelp> <format>sit</format> <description>Simple Internet Transition encapsulation</description> </valueHelp> <constraint> <regex>^(gre|gre-bridge|ip6gre|ip6ip6|ipip|ipip6|sit)$</regex> </constraint> <constraintErrorMessage>Invalid encapsulation, must be one of: gre, gre-bridge, ipip, sit, ipip6, ip6ip6, ip6gre</constraintErrorMessage> </properties> </leafNode> <leafNode name="multicast"> <properties> <help>Multicast operation over tunnel</help> <completionHelp> <list>enable disable</list> </completionHelp> <valueHelp> <format>enable</format> <description>Enable Multicast</description> </valueHelp> <valueHelp> <format>disable</format> <description>Disable Multicast (default)</description> </valueHelp> <constraint> <regex>^(enable|disable)$</regex> </constraint> <constraintErrorMessage>Must be 'disable' or 'enable'</constraintErrorMessage> </properties> </leafNode> <node name="parameters"> <properties> <help>Tunnel parameters</help> </properties> <children> - #include <include/tunnel-parameters-ip.xml.i> + <node name="ip"> + <properties> + <help>IPv4 specific tunnel parameters</help> + </properties> + <children> + <leafNode name="no-pmtu-discovery"> + <properties> + <help>Disable path MTU discovery</help> + <valueless/> + </properties> + </leafNode> + #include <include/tunnel-parameters-ip.xml.i> + </children> + </node> <node name="ipv6"> <properties> <help>IPv6 specific tunnel parameters</help> </properties> <children> <leafNode name="encaplimit"> <properties> <help>Encaplimit field</help> <valueHelp> <format>0-255</format> <description>Encaplimit (default: 4)</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 0-255"/> </constraint> <constraintErrorMessage>key must be between 0-255</constraintErrorMessage> </properties> <defaultValue>4</defaultValue> </leafNode> <leafNode name="flowlabel"> <properties> <help>Flowlabel</help> <valueHelp> <format>0x0-0x0FFFFF</format> <description>Tunnel key, 'inherit' or hex value</description> </valueHelp> <constraint> <regex>(0x){0,1}(0?[0-9A-Fa-f]{1,5})</regex> </constraint> <constraintErrorMessage>Must be 'inherit' or a number</constraintErrorMessage> </properties> <defaultValue>inherit</defaultValue> </leafNode> <leafNode name="hoplimit"> <properties> <help>Hoplimit</help> <valueHelp> <format>0-255</format> <description>Hoplimit (default 64)</description> </valueHelp> <constraint> <validator name="numeric" argument="--range 0-255"/> </constraint> <constraintErrorMessage>hoplimit must be between 0-255</constraintErrorMessage> </properties> <defaultValue>64</defaultValue> </leafNode> <leafNode name="tclass"> <properties> <help>Traffic class (Tclass)</help> <valueHelp> <format>0x0-0x0FFFFF</format> <description>Traffic class, 'inherit' or hex value</description> </valueHelp> <constraint> <regex>(0x){0,1}(0?[0-9A-Fa-f]{1,2})</regex> </constraint> <constraintErrorMessage>Must be 'inherit' or a number</constraintErrorMessage> </properties> <defaultValue>inherit</defaultValue> </leafNode> </children> </node> </children> </node> </children> </tagNode> </children> </node> </interfaceDefinition>